<?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>222002</bug_id>
          
          <creation_ts>2021-02-16 14:51:44 -0800</creation_ts>
          <short_desc>[Payment Request] add an `object data` to `PaymentDetailsBase` so that data specific to Apple Pay can be provided</short_desc>
          <delta_ts>2021-03-22 19:16:06 -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>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>221970</dependson>
          <blocked>222128</blocked>
    
    <blocked>222298</blocked>
    
    <blocked>223621</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>annulen</cc>
    
    <cc>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>eoconnor</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>japhet</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1729958</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-02-16 14:51:44 -0800</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729959</commentid>
    <comment_count>1</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-02-16 14:52:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/72319946&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1729978</commentid>
    <comment_count>2</comment_count>
      <attachid>420548</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-02-16 15:23:43 -0800</bug_when>
    <thetext>Created attachment 420548
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730735</commentid>
    <comment_count>3</comment_count>
      <attachid>420796</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-02-17 21:47:56 -0800</bug_when>
    <thetext>Created attachment 420796
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731137</commentid>
    <comment_count>4</comment_count>
      <attachid>420892</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-02-18 18:01:48 -0800</bug_when>
    <thetext>Created attachment 420892
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731142</commentid>
    <comment_count>5</comment_count>
      <attachid>420894</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-02-18 18:13:57 -0800</bug_when>
    <thetext>Created attachment 420894
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731163</commentid>
    <comment_count>6</comment_count>
      <attachid>420894</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-02-18 19:01:54 -0800</bug_when>
    <thetext>Comment on attachment 420894
Patch

Same as last time, would be good to get an Andy review post-hoc, but the mechanics seem fine and no glaring horrors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731170</commentid>
    <comment_count>7</comment_count>
      <attachid>420905</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-02-18 19:23:38 -0800</bug_when>
    <thetext>Created attachment 420905
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731213</commentid>
    <comment_count>8</comment_count>
      <attachid>420920</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2021-02-18 21:43:46 -0800</bug_when>
    <thetext>Created attachment 420920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731219</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-18 22:02:25 -0800</bug_when>
    <thetext>Found 30 new test failures: compositing/geometry/fixed-position-composited-page-scale-smaller-than-viewport.html, css3/calc/transforms-translate.html, http/tests/inspector/paymentrequest/payment-request-internal-properties.https.html, http/tests/paymentrequest/page-cache-closed-payment-request.https.html, http/tests/paymentrequest/page-cache-completed-payment-response.https.html, http/tests/paymentrequest/page-cache-created-payment-request.https.html, http/tests/paymentrequest/page-cache-created-payment-response.https.html, http/tests/paymentrequest/page-cache-interactive-payment-request.https.html, http/tests/paymentrequest/page-cache-retried-payment-response.https.html, http/tests/paymentrequest/payment-address-attributes-and-toJSON-method.https.html ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1731385</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-19 09:38:43 -0800</bug_when>
    <thetext>Committed r273143: &lt;https://commits.webkit.org/r273143&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 420920.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420548</attachid>
            <date>2021-02-16 15:23:43 -0800</date>
            <delta_ts>2021-02-17 21:47:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>72319946-OpenSource.diff</filename>
            <type>text/plain</type>
            <size>188720</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzYWQzNjcwMzEzZjEuLjM3MzlmMjZmNTVkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzNyBAQAorMjAyMS0wMi0xNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CisKKyAgICAgICAgW1BheW1lbnQgUmVxdWVzdF0gYWRkIGFuIGBvYmplY3QgZGF0YWAgdG8g
YFBheW1lbnREZXRhaWxzQmFzZWAgc28gdGhhdCBkYXRhIHNwZWNpZmljIHRvIEFwcGxlIFBheSBj
YW4gYmUgcHJvdmlkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMjAwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzIzMTk5NDY+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL3BheW1l
bnRyZXF1ZXN0L1BheW1lbnREZXRhaWxzQmFzZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9wYXlt
ZW50cmVxdWVzdC9QYXltZW50RGV0YWlsc0Jhc2UuaDoKKworICAgICAgICAqIE1vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2U6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlOjpkZWNvZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZTo6ZGVjb2RlQmFzZSk6Cisg
ICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaDoK
KyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5p
ZGw6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU6OmVuY29k
ZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50TWV0aG9k
VXBkYXRlOjpkZWNvZGUpOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxl
UGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpBcHBs
ZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZTo6ZW5jb2RlIGNvbnN0KTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZTo6ZGVjb2RlKTogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRl
LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RV
cGRhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU6
OmVuY29kZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTaGlwcGlu
Z01ldGhvZFVwZGF0ZTo6ZGVjb2RlKTogQWRkZWQuCisgICAgICAgIEludHJvZHVjZSBhIGNvbW1v
biBiYXNlIGNsYXNzIGBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlYCBpbnN0ZWFkIG9mIHJlcGVh
dGluZyBtZW1iZXJzIG9uCisgICAgICAgIGVhY2ggb2YgdGhlIGBBcHBsZVBheSpVcGRhdGVgIGZp
bmFsIGNsYXNzZXMuCisKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWls
c1VwZGF0ZURhdGEuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxl
UGF5RGV0YWlsc1VwZGF0ZURhdGEuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBh
eURldGFpbHNVcGRhdGVEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bGVQYXlEZXRhaWxzVXBkYXRlRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxl
UGF5RGV0YWlsc1VwZGF0ZURhdGE6OmRlY29kZURhdGEpOgorICAgICAgICAqIE1vZHVsZXMvcGF5
bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tB
bmRDYW5vbmljYWxpemVEZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0
OjpzZXR0bGVEZXRhaWxzUHJvbWlzZSk6CisgICAgICAgIEhhdmUgdGhlIGNvbW1vbiBiYXNlIGNs
YXNzIGFib3ZlIGV4dGVuZCBmcm9tIGBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhYCwgd2hpY2gg
aXMgdXNlZCB0bworICAgICAgICBwdWxsIHZhbHVlcyBvdXQgb2YgdGhlIGBvYmplY3QgZGF0YWAg
ZnJvbSBgUGF5bWVudERldGFpbHNCYXNlYC4gVGhpcyB3YXksIGJvdGggQXBwbGUgUGF5IEpTCisg
ICAgICAgIGFuZCBQYXltZW50UmVxdWVzdCBjYW4gYmUgZ2l2ZW4gdGhlIHNhbWUgZGF0YSAoYWxi
ZWl0IGluIHNsaWdodGx5IGRpZmZlcmVudCBwbGFjZXMpIGFuZCBoYXZlCisgICAgICAgIHRoZSBz
YW1lIGNhcGFiaWxpdGllcy4KKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlF
cnJvci5oOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlFcnJvcjo6ZW5jb2RlIGNvbnN0KTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheUVycm9yOjpkZWNvZGUpOiBBZGRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3IuY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvckNvZGUuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaDoK
KyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6c2hp
cHBpbmdNZXRob2RzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0OjpzZXRTaGlwcGluZ01ldGhvZHMpOgorICAgICAgICAqIE1vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlTZXNzaW9uLmg6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEFuZFZhbGlkYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6Y29tcGxldGVTaGlwcGluZ0NvbnRh
Y3RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uOjpkaWRTZWxl
Y3RTaGlwcGluZ01ldGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpmaW5pc2hDb252ZXJ0aW5nKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnQpOiBEZWxldGVkLgorICAgICAgICAq
IE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZDo6ZW5jb2RlIGNvbnN0KTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kOjpkZWNvZGUpOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2
ZW50Lmg6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9k
U2VsZWN0ZWRFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0
aG9kU2VsZWN0ZWRFdmVudDo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9h
cHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5
L1BheW1lbnRDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50Q29vcmRp
bmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6UGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudE1l
dGhvZFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50Q29vcmRpbmF0b3I6OmRp
ZFNlbGVjdFNoaXBwaW5nTWV0aG9kKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L1BheW1l
bnRDb29yZGluYXRvckNsaWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVu
dEhlYWRlcnMuaDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFs
aWRhdG9yLm1tOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVTaGlwcGluZ01ldGhvZCk6Cisg
ICAgICAgIChXZWJDb3JlOjp2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kcyk6CisgICAgICAgICogTW9k
dWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5oOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVw
YXkvUGF5bWVudFN1bW1hcnlJdGVtcy5oOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvY29j
b2EvUGF5bWVudFN1bW1hcnlJdGVtc0NvY29hLm1tOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVw
YXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oOgorICAgICAgICAqIE1v
ZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFsaWRhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6dmFsaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6bWVyZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6c2hvdyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBs
ZVBheVBheW1lbnRIYW5kbGVyOjpjb21wdXRlU2hpcHBpbmdNZXRob2RzKToKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVUb3RhbEFuZExpbmVJdGVtcyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJy
b3IpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcHV0ZUVy
cm9ycyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpj
b21wdXRlQWRkcmVzc0Vycm9ycyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBh
eW1lbnRIYW5kbGVyOjpjb21wdXRlUGF5ZXJFcnJvcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcHV0ZVBheW1lbnRNZXRob2RFcnJvcnMgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6c2hpcHBpbmdB
ZGRyZXNzVXBkYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRIYW5kbGVy
OjpzaGlwcGluZ09wdGlvblVwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXlt
ZW50SGFuZGxlcjo6cGF5bWVudE1ldGhvZFVwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bGVQYXlQYXltZW50SGFuZGxlcjo6cmV0cnkpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQ
YXltZW50SGFuZGxlcjo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QpOgorICAgICAgICAqIGxvYWRl
ci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIHRlc3RpbmcvTW9ja1BheW1lbnRDb29yZGlu
YXRvci5oOgorICAgICAgICAqIHRlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpzaG93UGF5bWVudFVJKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBp
bmdNZXRob2RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydCk6CisgICAgICAg
IChXZWJDb3JlOjpNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFj
dFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpj
b21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1Bh
eW1lbnRDb29yZGluYXRvcjo6Y2hhbmdlU2hpcHBpbmdPcHRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6TW9ja1BheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50U2Vzc2lvbik6CisgICAg
ICAgIChXZWJDb3JlOjpNb2NrUGF5bWVudENvb3JkaW5hdG9yOjp1cGRhdGVUb3RhbEFuZExpbmVJ
dGVtcyk6IERlbGV0ZWQuCisgICAgICAgICogdGVzdGluZy9Nb2NrUGF5bWVudEVycm9yLmg6Cisg
ICAgICAgIFVzZSBgQXBwbGVQYXkqVXBkYXRlYCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0cyBz
dHJ1Y3R1cmUgaW4gYW5vdGhlciBvYmplY3QgKGBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dDo6KlVwZGF0ZWApLgorICAgICAgICBVc2UgYEFwcGxlUGF5TGluZUl0ZW1gIGluc3RlYWQgb2Yg
ZHVwbGljYXRpbmcgaXRzIHN0cnVjdHVyZSBpbiBhbm90aGVyIG9iamVjdCAoYEFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtc2ApLgorICAgICAgICBVc2UgYEFw
cGxlUGF5U2hpcHBpbmdNZXRob2RgIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgaXRzIHN0cnVjdHVy
ZSBpbiBhbm90aGVyIG9iamVjdCAoYEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlw
cGluZ01ldGhvZGApLgorICAgICAgICBVc2UgYEFwcGxlUGF5RXJyb3IqYCBpbnN0ZWFkIG9mIGR1
cGxpY2F0aW5nIGl0cyBzdHJ1Y3R1cmUgaW4gYW5vdGhlciBvYmplY3QgKGBBcHBsZVBheVNlc3Np
b25QYXltZW50UmVxdWVzdDo6UGF5bWVudEVycm9yOjoqYCkuCisKKyAgICAgICAgKiBNb2R1bGVz
L2FwcGxlcGF5L1BheW1lbnRNZXRob2RVcGRhdGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxl
cGF5L2NvY29hL1BheW1lbnRNZXRob2RVcGRhdGVDb2NvYS5tbTogUmVtb3ZlZC4KKyAgICAgICAg
RG8gdGhlIGNvbnZlcnNpb24gZnJvbSBgQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlYCB0byBg
UEtQYXltZW50UmVxdWVzdFBheW1lbnRNZXRob2RVcGRhdGVgCisgICAgICAgIGluIHRoZSBVSVBy
b2Nlc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudFJlcXVl
c3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEFuZFZhbGlkYXRlKToKKyAgICAgICAgKiBNb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuaDoKKworICAgICAgICAqIERlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBQ
bGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0wMi0xNSAgRGV2aW4g
Um91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgW1BheW1lbnQgUmVxdWVzdF0g
YWRkIGFuIGBvYmplY3QgZGF0YWAgdG8gYFBheW1lbnRJdGVtYCBzbyB0aGF0IGRhdGEgc3BlY2lm
aWMgdG8gQXBwbGUgUGF5IGNhbiBiZSBwcm92aWRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggYmU5MGQ0M2QwYzEyLi5kMmY2ZWNjMWIw
ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dApAQCAtMjQsNiArMjQsOCBAQCAkKFBST0pFQ1RfRElSKS9EZXJpdmVkU291cmNlcy5tYWtlCiAk
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL2FpcnBsYXkvV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFi
aWxpdHlFdmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlD
YW5jZWxFdmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlD
b250YWN0RmllbGQuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
RGV0YWlsc1VwZGF0ZUJhc2UuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2FwcGxlcGF5L0Fw
cGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2FwcGxl
cGF5L0FwcGxlUGF5RXJyb3IuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2FwcGxlcGF5L0Fw
cGxlUGF5RXJyb3JDb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheUVycm9yQ29udGFjdEZpZWxkLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA4YzFmMjVmYzE3MmYuLjJjYTYzYTYxZjkzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QK
QEAgLTg2LDYgKzg2LDEwIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTQXBwbGVQYXlDYW5jZWxFdmVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlDYW5jZWxFdmVudC5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5Q29udGFjdEZpZWxk
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcHBs
ZVBheUNvbnRhY3RGaWVsZC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2Uu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcHBsZVBh
eURldGFpbHNVcGRhdGVEYXRhLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlFcnJvci5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlFcnJvci5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5
RXJyb3JDb2RlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYThkODdlZTE5
MmVhLi4xNjI2NjhlNzcxMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTMs
NiArNTMsOCBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9h
aXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDYW5jZWxFdmVudC5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5pZGwgXAor
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVCYXNl
LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWlsc1Vw
ZGF0ZURhdGEuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlF
cnJvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9y
Q29kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9y
Q29udGFjdEZpZWxkLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjc5NjA2NzEyOGM1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVCYXNl
LmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEFQUExFX1BBWSkKKworI2luY2x1ZGUgIkFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaCIK
KyNpbmNsdWRlICJBcHBsZVBheUxpbmVJdGVtLmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNl
IDogcHVibGljIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEgeworICAgIEFwcGxlUGF5TGluZUl0
ZW0gbmV3VG90YWw7CisgICAgVmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+IG5ld0xpbmVJdGVtczsK
KworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25z
dDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8QXBwbGVQYXlE
ZXRhaWxzVXBkYXRlQmFzZT4gZGVjb2RlKERlY29kZXImKTsKKworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZUJhc2UoRGVjb2RlciYpOwor
fTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQXBwbGVQYXlEZXRhaWxzVXBkYXRl
QmFzZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgQXBwbGVQYXlEZXRh
aWxzVXBkYXRlRGF0YTo6ZW5jb2RlKGVuY29kZXIpOworICAgIGVuY29kZXIgPDwgbmV3VG90YWw7
CisgICAgZW5jb2RlciA8PCBuZXdMaW5lSXRlbXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29k
ZXI+CitPcHRpb25hbDxBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlPiBBcHBsZVBheURldGFpbHNV
cGRhdGVCYXNlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBBcHBsZVBheURldGFp
bHNVcGRhdGVCYXNlIHJlc3VsdDsKKyAgICBpZiAoIXJlc3VsdC5kZWNvZGVCYXNlKGRlY29kZXIp
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
K3RlbXBsYXRlPGNsYXNzIERlY29kZXI+Citib29sIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2U6
OmRlY29kZUJhc2UoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAoIWRlY29kZURhdGEoZGVj
b2RlcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworI2RlZmluZSBERUNPREUobmFtZSwgdHlw
ZSkgXAorICAgIE9wdGlvbmFsPHR5cGU+IG5hbWU7IFwKKyAgICBkZWNvZGVyID4+IG5hbWU7IFwK
KyAgICBpZiAoIW5hbWUpIFwKKyAgICAgICAgcmV0dXJuIGZhbHNlOyBcCisgICAgdGhpcy0+bmFt
ZSA9IFdURk1vdmUoKm5hbWUpOyBcCisKKyAgICBERUNPREUobmV3VG90YWwsIEFwcGxlUGF5TGlu
ZUl0ZW0pCisgICAgREVDT0RFKG5ld0xpbmVJdGVtcywgVmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+
KQorCisjdW5kZWYgREVDT0RFCisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0
ZUJhc2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjE1ZTg2
ZGVmYzIyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9BcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworWworICAgIENvbmRpdGlvbmFsPUFQUExFX1BBWSwKK10gZGljdGlvbmFyeSBBcHBsZVBh
eURldGFpbHNVcGRhdGVCYXNlIHsKKyAgICByZXF1aXJlZCBBcHBsZVBheUxpbmVJdGVtIG5ld1Rv
dGFsOworICAgIHNlcXVlbmNlPEFwcGxlUGF5TGluZUl0ZW0+IG5ld0xpbmVJdGVtczsKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWls
c1VwZGF0ZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlE
ZXRhaWxzVXBkYXRlRGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MC4uODA3OGY5NTcyMTQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmgKQEAgLTAsMCArMSw4OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKworI2lm
IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0FwcGxl
UGF5RGV0YWlsc1VwZGF0ZURhdGFBZGRpdGlvbnMuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0cnVjdCBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhIHsKKyNpZiBkZWZpbmVk
KEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGFBZGRpdGlvbnNfbWVtYmVycykKKyAgICBBcHBsZVBh
eURldGFpbHNVcGRhdGVEYXRhQWRkaXRpb25zX21lbWJlcnMKKyNlbmRpZgorCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxBcHBsZVBheURldGFpbHNVcGRhdGVE
YXRhPiBkZWNvZGUoRGVjb2RlciYpOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gV0FS
Tl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlRGF0YShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhOjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyNpZiBkZWZpbmVkKEFwcGxlUGF5RGV0YWlsc1Vw
ZGF0ZURhdGFBZGRpdGlvbnNfZW5jb2RlKQorICAgIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGFB
ZGRpdGlvbnNfZW5jb2RlCisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmNvZGVyKTsKKyNlbmRp
ZgorfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8QXBwbGVQYXlEZXRhaWxz
VXBkYXRlRGF0YT4gQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YTo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCit7CisgICAgQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSByZXN1bHQ7CisgICAgaWYg
KCFyZXN1bHQuZGVjb2RlRGF0YShkZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorYm9v
bCBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhOjpkZWNvZGVEYXRhKERlY29kZXImIGRlY29kZXIp
Cit7CisjZGVmaW5lIERFQ09ERShuYW1lLCB0eXBlKSBcCisgICAgT3B0aW9uYWw8dHlwZT4gbmFt
ZTsgXAorICAgIGRlY29kZXIgPj4gbmFtZTsgXAorICAgIGlmICghbmFtZSkgXAorICAgICAgICBy
ZXR1cm4gZmFsc2U7IFwKKyAgICB0aGlzLT5uYW1lID0gV1RGTW92ZSgqbmFtZSk7IFwKKworI2lm
IGRlZmluZWQoQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YUFkZGl0aW9uc19kZWNvZGVEYXRhKQor
ICAgIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGFBZGRpdGlvbnNfZGVjb2RlRGF0YQorI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CisjZW5kaWYKKworI3VuZGVmIERFQ09ERQorCisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShBUFBMRV9QQVkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjY3MTg4MTQyMDUzMgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRl
RGF0YS5pZGwKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25h
bD1BUFBMRV9QQVksCitdIGRpY3Rpb25hcnkgQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSB7Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVy
cm9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvci5j
cHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3NzY3YzMwYWQ4Ny4uMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvci5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3IuaCIKLQotI2lmIEVOQUJMRShBUFBM
RV9QQVkpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUmVmPEFwcGxlUGF5RXJyb3I+IEFwcGxl
UGF5RXJyb3I6OmNyZWF0ZShDb2RlIGNvZGUsIE9wdGlvbmFsPENvbnRhY3RGaWVsZD4gY29udGFj
dEZpZWxkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQXBwbGVQYXlFcnJvciB7IGNvZGUsIGNvbnRhY3RGaWVsZCwgbWVzc2FnZSB9KTsKLX0KLQot
QXBwbGVQYXlFcnJvcjo6QXBwbGVQYXlFcnJvcihDb2RlIGNvZGUsIE9wdGlvbmFsPENvbnRhY3RG
aWVsZD4gY29udGFjdEZpZWxkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi0gICAgOiBtX2NvZGUg
eyBjb2RlIH0KLSAgICAsIG1fY29udGFjdEZpZWxkIHsgY29udGFjdEZpZWxkIH0KLSAgICAsIG1f
bWVzc2FnZSB7IG1lc3NhZ2UgfQotewotfQotCi1BcHBsZVBheUVycm9yOjp+QXBwbGVQYXlFcnJv
cigpID0gZGVmYXVsdDsKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9BcHBsZVBheUVycm9yLmgKaW5kZXggMzMxZGUxMmM0NTk2Li4yNTliMjBmNDQ0
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlF
cnJvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJv
ci5oCkBAIC0yNywzNyArMjcsNzYgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKLSNpbmNs
dWRlICJBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oIgorI2luY2x1ZGUgIkFwcGxlUGF5
RXJyb3JDb2RlLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oIgorI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcHBsZVBh
eUVycm9yIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8QXBwbGVQYXlFcnJvcj4gewogcHVibGlj
OgotICAgIHVzaW5nIENvZGUgPSBQYXltZW50RXJyb3I6OkNvZGU7Ci0gICAgdXNpbmcgQ29udGFj
dEZpZWxkID0gUGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ7CisgICAgc3RhdGljIFJlZjxBcHBs
ZVBheUVycm9yPiBjcmVhdGUoQXBwbGVQYXlFcnJvckNvZGUgY29kZSwgT3B0aW9uYWw8QXBwbGVQ
YXlFcnJvckNvbnRhY3RGaWVsZD4gY29udGFjdEZpZWxkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcHBsZVBheUVycm9yKGNvZGUs
IGNvbnRhY3RGaWVsZCwgbWVzc2FnZSkpOworICAgIH0KIAotICAgIHN0YXRpYyBSZWY8QXBwbGVQ
YXlFcnJvcj4gY3JlYXRlKENvZGUsIE9wdGlvbmFsPENvbnRhY3RGaWVsZD4sIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSk7Ci0gICAgdmlydHVhbCB+QXBwbGVQYXlFcnJvcigpOworICAgIHZpcnR1YWwg
fkFwcGxlUGF5RXJyb3IoKSA9IGRlZmF1bHQ7CiAKLSAgICBDb2RlIGNvZGUoKSBjb25zdCB7IHJl
dHVybiBtX2NvZGU7IH0KLSAgICB2b2lkIHNldENvZGUoQ29kZSBjb2RlKSB7IG1fY29kZSA9IGNv
ZGU7IH0KKyAgICBBcHBsZVBheUVycm9yQ29kZSBjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2Rl
OyB9CisgICAgdm9pZCBzZXRDb2RlKEFwcGxlUGF5RXJyb3JDb2RlIGNvZGUpIHsgbV9jb2RlID0g
Y29kZTsgfQogCi0gICAgT3B0aW9uYWw8Q29udGFjdEZpZWxkPiBjb250YWN0RmllbGQoKSBjb25z
dCB7IHJldHVybiBtX2NvbnRhY3RGaWVsZDsgfQotICAgIHZvaWQgc2V0Q29udGFjdEZpZWxkKE9w
dGlvbmFsPENvbnRhY3RGaWVsZD4gY29udGFjdEZpZWxkKSB7IG1fY29udGFjdEZpZWxkID0gY29u
dGFjdEZpZWxkOyB9CisgICAgT3B0aW9uYWw8QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZD4gY29u
dGFjdEZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV9jb250YWN0RmllbGQ7IH0KKyAgICB2b2lkIHNl
dENvbnRhY3RGaWVsZChPcHRpb25hbDxBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkPiBjb250YWN0
RmllbGQpIHsgbV9jb250YWN0RmllbGQgPSBjb250YWN0RmllbGQ7IH0KIAogICAgIFN0cmluZyBt
ZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9tZXNzYWdlOyB9CiAgICAgdm9pZCBzZXRNZXNzYWdl
KFN0cmluZyYmIG1lc3NhZ2UpIHsgbV9tZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKTsgfQogCi1w
cml2YXRlOgotICAgIEFwcGxlUGF5RXJyb3IoQ29kZSwgT3B0aW9uYWw8Q29udGFjdEZpZWxkPiwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIFJlZlB0cjxBcHBsZVBheUVycm9yPiBkZWNvZGUoRGVjb2RlciYpOwogCi0gICAgQ29kZSBt
X2NvZGU7Ci0gICAgT3B0aW9uYWw8Q29udGFjdEZpZWxkPiBtX2NvbnRhY3RGaWVsZDsKK3ByaXZh
dGU6CisgICAgQXBwbGVQYXlFcnJvcihBcHBsZVBheUVycm9yQ29kZSBjb2RlLCBPcHRpb25hbDxB
cHBsZVBheUVycm9yQ29udGFjdEZpZWxkPiBjb250YWN0RmllbGQsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKKyAgICAgICAgOiBtX2NvZGUoY29kZSkKKyAgICAgICAgLCBtX2NvbnRhY3RGaWVsZChj
b250YWN0RmllbGQpCisgICAgICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCisgICAgeworICAgIH0K
KworICAgIEFwcGxlUGF5RXJyb3JDb2RlIG1fY29kZTsKKyAgICBPcHRpb25hbDxBcHBsZVBheUVy
cm9yQ29udGFjdEZpZWxkPiBtX2NvbnRhY3RGaWVsZDsKICAgICBTdHJpbmcgbV9tZXNzYWdlOwog
fTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQXBwbGVQYXlFcnJvcjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX2NvZGU7CisgICAg
ZW5jb2RlciA8PCBtX2NvbnRhY3RGaWVsZDsKKyAgICBlbmNvZGVyIDw8IG1fbWVzc2FnZTsKIH0K
IAordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK1JlZlB0cjxBcHBsZVBheUVycm9yPiBBcHBsZVBh
eUVycm9yOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyNkZWZpbmUgREVDT0RFKG5hbWUs
IHR5cGUpIFwKKyAgICBPcHRpb25hbDx0eXBlPiBuYW1lOyBcCisgICAgZGVjb2RlciA+PiBuYW1l
OyBcCisgICAgaWYgKCFuYW1lKSBcCisgICAgICAgIHJldHVybiBudWxscHRyOyBcCisKKyAgICBE
RUNPREUoY29kZSwgQXBwbGVQYXlFcnJvckNvZGUpCisgICAgREVDT0RFKGNvbnRhY3RGaWVsZCwg
T3B0aW9uYWw8QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZD4pCisgICAgREVDT0RFKG1lc3NhZ2Us
IFN0cmluZykKKworI3VuZGVmIERFQ09ERQorCisgICAgcmV0dXJuIEFwcGxlUGF5RXJyb3I6OmNy
ZWF0ZShXVEZNb3ZlKCpjb2RlKSwgV1RGTW92ZSgqY29udGFjdEZpZWxkKSwgV1RGTW92ZSgqbWVz
c2FnZSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29kZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29kZS5oCmluZGV4
IDJmYWVlZjdkYzg3ZS4uODdjNjAxNWUzMWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3JDb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29kZS5oCkBAIC0yNywxMiArMjcsMzEgQEAK
IAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKLSNpbmNsdWRlICJBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotdXNpbmcgQXBwbGVQYXlFcnJvckNvZGUgPSBQYXltZW50RXJyb3I6OkNvZGU7Citl
bnVtIGNsYXNzIEFwcGxlUGF5RXJyb3JDb2RlIHsKKyAgICBVbmtub3duLAorICAgIFNoaXBwaW5n
Q29udGFjdEludmFsaWQsCisgICAgQmlsbGluZ0NvbnRhY3RJbnZhbGlkLAorICAgIEFkZHJlc3NV
bnNlcnZpY2VhYmxlLAorfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCituYW1lc3BhY2Ug
V1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpBcHBsZVBheUVy
cm9yQ29kZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNv
cmU6OkFwcGxlUGF5RXJyb3JDb2RlLAorICAgICAgICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29k
ZTo6VW5rbm93biwKKyAgICAgICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvZGU6OlNoaXBwaW5n
Q29udGFjdEludmFsaWQsCisgICAgICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb2RlOjpCaWxs
aW5nQ29udGFjdEludmFsaWQsCisgICAgICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb2RlOjpB
ZGRyZXNzVW5zZXJ2aWNlYWJsZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwog
I2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oCmluZGV4IGY2
YTcwZDA3MDdjYi4uMTY0ZGJmYWIyODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaApAQCAtMjcs
MTIgKzI3LDQ5IEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCi0jaW5jbHVkZSAiQXBwbGVQ
YXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQgPSBQ
YXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDsKK2VudW0gY2xhc3MgQXBwbGVQYXlFcnJvckNvbnRh
Y3RGaWVsZCB7CisgICAgUGhvbmVOdW1iZXIsCisgICAgRW1haWxBZGRyZXNzLAorICAgIE5hbWUs
CisgICAgUGhvbmV0aWNOYW1lLAorICAgIFBvc3RhbEFkZHJlc3MsCisgICAgQWRkcmVzc0xpbmVz
LAorICAgIFN1YkxvY2FsaXR5LAorICAgIExvY2FsaXR5LAorICAgIFBvc3RhbENvZGUsCisgICAg
U3ViQWRtaW5pc3RyYXRpdmVBcmVhLAorICAgIEFkbWluaXN0cmF0aXZlQXJlYSwKKyAgICBDb3Vu
dHJ5LAorICAgIENvdW50cnlDb2RlLAorfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitu
YW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpB
cHBsZVBheUVycm9yQ29udGFjdEZpZWxkPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVl
czwKKyAgICAgICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZCwKKyAgICAgICAg
V2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UGhvbmVOdW1iZXIsCisgICAgICAg
IFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OkVtYWlsQWRkcmVzcywKKyAgICAg
ICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6TmFtZSwKKyAgICAgICAgV2Vi
Q29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UGhvbmV0aWNOYW1lLAorICAgICAgICBX
ZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpQb3N0YWxBZGRyZXNzLAorICAgICAg
ICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpBZGRyZXNzTGluZXMsCisgICAg
ICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlN1YkxvY2FsaXR5LAorICAg
ICAgICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpMb2NhbGl0eSwKKyAgICAg
ICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UG9zdGFsQ29kZSwKKyAgICAg
ICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6U3ViQWRtaW5pc3RyYXRpdmVB
cmVhLAorICAgICAgICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpBZG1pbmlz
dHJhdGl2ZUFyZWEsCisgICAgICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6
OkNvdW50cnksCisgICAgICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OkNv
dW50cnlDb2RlCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCiAjZW5kaWYgLy8g
RU5BQkxFKEFQUExFX1BBWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0LmgK
aW5kZXggNDhkNGI3N2JlZDE4Li4wM2QxN2Q4MThkNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50QXV0
aG9yaXphdGlvblJlc3VsdC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKEFQUExFX1BB
WSkKIAogI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3IuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhv
ZFVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1l
bnRNZXRob2RVcGRhdGUuaAppbmRleCBkYjQ0NjY0YTVjY2YuLjI5NDZjY2M4OTk0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRo
b2RVcGRhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
UGF5bWVudE1ldGhvZFVwZGF0ZS5oCkBAIC0yNywxNiArMjcsNTQgQEAKIAogI2lmIEVOQUJMRShB
UFBMRV9QQVkpCiAKLSNpbmNsdWRlICJBcHBsZVBheUxpbmVJdGVtLmgiCisjaW5jbHVkZSAiQXBw
bGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0
cnVjdCBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUgewotICAgIEFwcGxlUGF5TGluZUl0ZW0g
bmV3VG90YWw7Ci0gICAgVmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+IG5ld0xpbmVJdGVtczsKK3N0
cnVjdCBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUgZmluYWwgOiBwdWJsaWMgQXBwbGVQYXlE
ZXRhaWxzVXBkYXRlQmFzZSB7CisjaWYgRU5BQkxFKEFQUExFX1BBWV9JTlNUQUxMTUVOVFMpCiAg
ICAgU3RyaW5nIGluc3RhbGxtZW50R3JvdXBJZGVudGlmaWVyOworI2VuZGlmIC8vIEVOQUJMRShB
UFBMRV9QQVlfSU5TVEFMTE1FTlRTKQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBPcHRpb25hbDxBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+IGRlY29kZShEZWNvZGVy
Jik7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBBcHBsZVBheVBheW1lbnRN
ZXRob2RVcGRhdGU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIEFwcGxl
UGF5RGV0YWlsc1VwZGF0ZUJhc2U6OmVuY29kZShlbmNvZGVyKTsKKyNpZiBFTkFCTEUoQVBQTEVf
UEFZX0lOU1RBTExNRU5UUykKKyAgICBlbmNvZGVyIDw8IGluc3RhbGxtZW50R3JvdXBJZGVudGlm
aWVyOworI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVlfSU5TVEFMTE1FTlRTKQogfQogCit0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRl
PiBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZSByZXN1bHQ7CisKKyAgICBpZiAoIXJl
c3VsdC5kZWNvZGVCYXNlKGRlY29kZXIpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisjZGVmaW5lIERFQ09ERShuYW1lLCB0eXBlKSBcCisgICAgT3B0aW9uYWw8dHlwZT4gbmFtZTsg
XAorICAgIGRlY29kZXIgPj4gbmFtZTsgXAorICAgIGlmICghbmFtZSkgXAorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OyBcCisgICAgcmVzdWx0Lm5hbWUgPSBXVEZNb3ZlKCpuYW1lKTsgXAor
CisjaWYgRU5BQkxFKEFQUExFX1BBWV9JTlNUQUxMTUVOVFMpCisgICAgREVDT0RFKGluc3RhbGxt
ZW50R3JvdXBJZGVudGlmaWVyLCBTdHJpbmcpCisjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWV9J
TlNUQUxMTUVOVFMpCisKKyN1bmRlZiBERUNPREUKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0
ZS5pZGwKaW5kZXggYzA2OTEwZDdiZmRjLi4yOGU4N2IxOGQxYWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1l
dGhvZFVwZGF0ZS5pZGwKQEAgLTI1LDggKzI1LDYgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPUFQ
UExFX1BBWSwKLV0gZGljdGlvbmFyeSBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUgewotICAg
IHJlcXVpcmVkIEFwcGxlUGF5TGluZUl0ZW0gbmV3VG90YWw7Ci0gICAgc2VxdWVuY2U8QXBwbGVQ
YXlMaW5lSXRlbT4gbmV3TGluZUl0ZW1zOworXSBkaWN0aW9uYXJ5IEFwcGxlUGF5UGF5bWVudE1l
dGhvZFVwZGF0ZSA6IEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UgewogICAgIFtDb25kaXRpb25h
bD1BUFBMRV9QQVlfSU5TVEFMTE1FTlRTXSBET01TdHJpbmcgaW5zdGFsbG1lbnRHcm91cElkZW50
aWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheVBheW1lbnRSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5UGF5bWVudFJlcXVlc3QuaAppbmRleCAzZjBiNjZmMTc5MzcuLmI3NTI1NjEwNWMx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBh
eW1lbnRSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVBheW1lbnRSZXF1ZXN0LmgKQEAgLTMzLDYgKzMzLDEwIEBACiAjaW5jbHVkZSAiQXBwbGVQ
YXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKICNpbmNsdWRlICJBcHBsZVBheVNoaXBwaW5nTWV0
aG9kLmgiCiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2luY2x1ZGUgPFdlYktpdEFk
ZGl0aW9ucy9BcHBsZVBheVBheW1lbnRSZXF1ZXN0QWRkaXRpb25zLmg+CisjZW5kaWYKKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgQXBwbGVQYXlQYXltZW50UmVxdWVzdCA6IEFwcGxl
UGF5UmVxdWVzdEJhc2UgewpAQCAtNDUsNiArNDksMTAgQEAgc3RydWN0IEFwcGxlUGF5UGF5bWVu
dFJlcXVlc3QgOiBBcHBsZVBheVJlcXVlc3RCYXNlIHsKIAogICAgIEFwcGxlUGF5TGluZUl0ZW0g
dG90YWw7CiAgICAgT3B0aW9uYWw8VmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+PiBsaW5lSXRlbXM7
CisKKyNpZiBkZWZpbmVkKEFwcGxlUGF5UGF5bWVudFJlcXVlc3RBZGRpdGlvbnNfbWVtYmVycykK
KyAgICBBcHBsZVBheVBheW1lbnRSZXF1ZXN0QWRkaXRpb25zX21lbWJlcnMKKyNlbmRpZgogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVJlcXVlc3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlSZXF1ZXN0QmFzZS5jcHAKaW5kZXggNzI3MGIyMDRlZDc4Li5iNzM4ZGVjYmQ0NDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVl
c3RCYXNlLmNwcApAQCAtMzEsNiArMzEsMTAgQEAKICNpbmNsdWRlICJQYXltZW50Q29vcmRpbmF0
b3IuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIAor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0Fw
cGxlUGF5UmVxdWVzdEJhc2VBZGRpdGlvbnMuY3BwPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RhdGljIGJvb2wgcmVxdWlyZXNTdXBwb3J0ZWROZXR3b3Jrcyh1bnNpZ25lZCB2
ZXJzaW9uLCBjb25zdCBBcHBsZVBheVJlcXVlc3RCYXNlJiByZXF1ZXN0KQpAQCAtMTE0LDYgKzEx
OCwxMCBAQCBFeGNlcHRpb25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdD4gY29udmVy
dEFuZFZhbGlkYXRlKERvY3VtZW50JiBkb2N1bWVudAogICAgIH0KICNlbmRpZgogCisjaWYgZGVm
aW5lZChBcHBsZVBheVJlcXVlc3RCYXNlQWRkaXRpb25zX2NvbnZlcnRBbmRWYWxpZGF0ZSkKKyAg
ICBBcHBsZVBheVJlcXVlc3RCYXNlQWRkaXRpb25zX2NvbnZlcnRBbmRWYWxpZGF0ZQorI2VuZGlm
CisKICAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5oCmluZGV4IDMzZDE2
YTc1MTBmMC4uMzIwYTczNjFlMzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuaApAQCAtMzIsNiArMzIsMTAgQEAKICNp
bmNsdWRlICJBcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5oIgogI2luY2x1ZGUgIkFwcGxlUGF5
UGF5bWVudENvbnRhY3QuaCIKIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW5jbHVk
ZSA8V2ViS2l0QWRkaXRpb25zL0FwcGxlUGF5UmVxdWVzdEJhc2VBZGRpdGlvbnMuaD4KKyNlbmRp
ZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwpAQCAtNTQsNiArNTgs
MTAgQEAgc3RydWN0IEFwcGxlUGF5UmVxdWVzdEJhc2UgewogI2lmIEVOQUJMRShBUFBMRV9QQVlf
SU5TVEFMTE1FTlRTKQogICAgIE9wdGlvbmFsPEFwcGxlUGF5SW5zdGFsbG1lbnRDb25maWd1cmF0
aW9uPiBpbnN0YWxsbWVudENvbmZpZ3VyYXRpb247CiAjZW5kaWYKKworI2lmIGRlZmluZWQoQXBw
bGVQYXlSZXF1ZXN0QmFzZUFkZGl0aW9uc19tZW1iZXJzKQorICAgIEFwcGxlUGF5UmVxdWVzdEJh
c2VBZGRpdGlvbnNfbWVtYmVycworI2VuZGlmCiB9OwogCiBFeGNlcHRpb25PcjxBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdD4gY29udmVydEFuZFZhbGlkYXRlKERvY3VtZW50JiwgdW5zaWdu
ZWQgdmVyc2lvbiwgQXBwbGVQYXlSZXF1ZXN0QmFzZSYsIGNvbnN0IFBheW1lbnRDb29yZGluYXRv
ciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNl
c3Npb24uY3BwCmluZGV4IDI4OTQ2OTIxZjlkMS4uNzQ0NWYxNzI3NzM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwCkBAIC0y
OCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCisjaW5jbHVkZSAiQXBwbGVQ
YXlFcnJvckNvZGUuaCIKKyNpbmNsdWRlICJBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmgiCiAj
aW5jbHVkZSAiQXBwbGVQYXlDYW5jZWxFdmVudC5oIgogI2luY2x1ZGUgIkFwcGxlUGF5TGluZUl0
ZW0uaCIKICNpbmNsdWRlICJBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0LmgiCkBA
IC01Niw3ICs1OCw2IEBACiAjaW5jbHVkZSAiUGF5bWVudENvb3JkaW5hdG9yLmgiCiAjaW5jbHVk
ZSAiUGF5bWVudE1lcmNoYW50U2Vzc2lvbi5oIgogI2luY2x1ZGUgIlBheW1lbnRNZXRob2QuaCIK
LSNpbmNsdWRlICJQYXltZW50TWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVkZSAiUGF5bWVudFJlcXVl
c3RWYWxpZGF0b3IuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCkBAIC02NCwxNyArNjUsMTEgQEAKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5s
aW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotc3RhdGljIHZvaWQgZmluaXNoQ29udmVydGluZyhQYXltZW50TWV0aG9kVXBkYXRlJiBjb252
ZXJ0ZWRVcGRhdGUsIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZSYmIHVwZGF0ZSkKLXsKLSNp
ZiBFTkFCTEUoQVBQTEVfUEFZX0lOU1RBTExNRU5UUykKLSAgICBjb252ZXJ0ZWRVcGRhdGUuc2V0
SW5zdGFsbG1lbnRHcm91cElkZW50aWZpZXIodXBkYXRlLmluc3RhbGxtZW50R3JvdXBJZGVudGlm
aWVyKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGNvbnZlcnRlZFVwZGF0ZSk7Ci0gICAgVU5V
U0VEX1BBUkFNKHVwZGF0ZSk7CisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRl
IDxXZWJLaXRBZGRpdGlvbnMvQXBwbGVQYXlTZXNzaW9uQWRkaXRpb25zLmNwcD4KICNlbmRpZgot
fQorCituYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChB
cHBsZVBheVNlc3Npb24pOwogCkBAIC0xODgsMjUgKzE4MywxOSBAQCBzdGF0aWMgRXhjZXB0aW9u
T3I8VmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+PiBjb252ZXJ0QW5kVmFsaWRhdGUoT3B0aW9uYWw8
VmVjdG9yPAogICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBFeGNlcHRp
b25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+IGNvbnZl
cnRBbmRWYWxpZGF0ZShBcHBsZVBheVNoaXBwaW5nTWV0aG9kJiYgc2hpcHBpbmdNZXRob2QpCitz
dGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4gY29udmVydEFuZFZhbGlk
YXRlKEFwcGxlUGF5U2hpcHBpbmdNZXRob2QmJiBzaGlwcGluZ01ldGhvZCkKIHsKICAgICBpZiAo
IXZhbGlkYXRlQW1vdW50KHNoaXBwaW5nTWV0aG9kLmFtb3VudCkpCiAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBUeXBlRXJyb3IsIG1ha2VTdHJpbmcoIlwiIiArIHNoaXBwaW5nTWV0aG9kLmFt
b3VudCwgIlwiIGlzIG5vdCBhIHZhbGlkIGFtb3VudC4iKSB9OwogCi0gICAgQXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kIHJlc3VsdDsKLSAgICByZXN1bHQuYW1v
dW50ID0gc2hpcHBpbmdNZXRob2QuYW1vdW50OwotICAgIHJlc3VsdC5sYWJlbCA9IHNoaXBwaW5n
TWV0aG9kLmxhYmVsOwotICAgIHJlc3VsdC5kZXRhaWwgPSBzaGlwcGluZ01ldGhvZC5kZXRhaWw7
Ci0gICAgcmVzdWx0LmlkZW50aWZpZXIgPSBzaGlwcGluZ01ldGhvZC5pZGVudGlmaWVyOwotCi0g
ICAgcmV0dXJuIFdURk1vdmUocmVzdWx0KTsKKyAgICByZXR1cm4gV1RGTW92ZShzaGlwcGluZ01l
dGhvZCk7CiB9CiAKLXN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8QXBwbGVQYXlTZXNzaW9uUGF5
bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPj4gY29udmVydEFuZFZhbGlkYXRlKFZlY3RvcjxB
cHBsZVBheVNoaXBwaW5nTWV0aG9kPiYmIHNoaXBwaW5nTWV0aG9kcykKK3N0YXRpYyBFeGNlcHRp
b25PcjxWZWN0b3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4+IGNvbnZlcnRBbmRWYWxpZGF0ZShW
ZWN0b3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4mJiBzaGlwcGluZ01ldGhvZHMpCiB7Ci0gICAg
VmVjdG9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4gcmVz
dWx0OworICAgIFZlY3RvcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiByZXN1bHQ7CiAgICAgcmVz
dWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc2hpcHBpbmdNZXRob2RzLnNpemUoKSk7Ci0gICAg
CisKICAgICBmb3IgKGF1dG8mIHNoaXBwaW5nTWV0aG9kIDogc2hpcHBpbmdNZXRob2RzKSB7CiAg
ICAgICAgIGF1dG8gY29udmVydGVkU2hpcHBpbmdNZXRob2QgPSBjb252ZXJ0QW5kVmFsaWRhdGUo
V1RGTW92ZShzaGlwcGluZ01ldGhvZCkpOwogICAgICAgICBpZiAoY29udmVydGVkU2hpcHBpbmdN
ZXRob2QuaGFzRXhjZXB0aW9uKCkpCkBAIC0yNDYsNiArMjM1LDEwIEBAIHN0YXRpYyBFeGNlcHRp
b25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdD4gY29udmVydEFuZFZhbGlkYXRlKERv
Y3VtZW50JiBkCiAgICAgICAgIHJlc3VsdC5zZXRTaGlwcGluZ01ldGhvZHMoc2hpcHBpbmdNZXRo
b2RzLnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKICAgICB9CiAKKyNpZiBkZWZpbmVkKEFwcGxlUGF5
U2Vzc2lvbkFkZGl0aW9uc19jb252ZXJ0QW5kVmFsaWRhdGUpCisgICAgQXBwbGVQYXlTZXNzaW9u
QWRkaXRpb25zX2NvbnZlcnRBbmRWYWxpZGF0ZQorI2VuZGlmCisKICAgICAvLyBGSVhNRTogTWVy
Z2UgdGhpcyB2YWxpZGF0aW9uIGludG8gdGhlIHZhbGlkYXRpb24gd2UgYXJlIGRvaW5nIGFib3Zl
LgogICAgIGF1dG8gdmFsaWRhdGVkUGF5bWVudFJlcXVlc3QgPSBQYXltZW50UmVxdWVzdFZhbGlk
YXRvcjo6dmFsaWRhdGUocmVzdWx0KTsKICAgICBpZiAodmFsaWRhdGVkUGF5bWVudFJlcXVlc3Qu
aGFzRXhjZXB0aW9uKCkpCkBAIC0yNTQsMjQgKzI0Nyw2IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdD4gY29udmVydEFuZFZhbGlkYXRlKERvY3VtZW50
JiBkCiAgICAgcmV0dXJuIFdURk1vdmUocmVzdWx0KTsKIH0KIAotCi1zdGF0aWMgVmVjdG9yPFBh
eW1lbnRFcnJvcj4gY29udmVydChjb25zdCBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYg
ZXJyb3JzKQotewotICAgIFZlY3RvcjxQYXltZW50RXJyb3I+IGNvbnZlcnRlZEVycm9yczsKLQot
ICAgIGZvciAoYXV0byYgZXJyb3IgOiBlcnJvcnMpIHsKLSAgICAgICAgUGF5bWVudEVycm9yIGNv
bnZlcnRlZEVycm9yOwotCi0gICAgICAgIGNvbnZlcnRlZEVycm9yLmNvZGUgPSBlcnJvci0+Y29k
ZSgpOwotICAgICAgICBjb252ZXJ0ZWRFcnJvci5tZXNzYWdlID0gZXJyb3ItPm1lc3NhZ2UoKTsK
LSAgICAgICAgY29udmVydGVkRXJyb3IuY29udGFjdEZpZWxkID0gZXJyb3ItPmNvbnRhY3RGaWVs
ZCgpOwotCi0gICAgICAgIGNvbnZlcnRlZEVycm9ycy5hcHBlbmQoY29udmVydGVkRXJyb3IpOwot
ICAgIH0KLQotICAgIHJldHVybiBjb252ZXJ0ZWRFcnJvcnM7Ci19Ci0KIHN0YXRpYyBFeGNlcHRp
b25PcjxQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4gY29udmVydEFuZFZhbGlkYXRlKEFwcGxl
UGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQmJiByZXN1bHQpCiB7CiAgICAgUGF5bWVudEF1
dGhvcml6YXRpb25SZXN1bHQgY29udmVydGVkUmVzdWx0OwpAQCAtMjg3LDE3ICsyNjIsMTcgQEAg
c3RhdGljIEV4Y2VwdGlvbk9yPFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiBjb252ZXJ0QW5k
VmFsaWRhdGUoQXBwbGVQYXlQYXltZW4KIAogICAgIGNhc2UgQXBwbGVQYXlTZXNzaW9uOjpTVEFU
VVNfSU5WQUxJRF9CSUxMSU5HX1BPU1RBTF9BRERSRVNTOgogICAgICAgICBjb252ZXJ0ZWRSZXN1
bHQuc3RhdHVzID0gUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OkZhaWx1cmU7Ci0gICAgICAg
IGNvbnZlcnRlZFJlc3VsdC5lcnJvcnMuYXBwZW5kKHsgUGF5bWVudEVycm9yOjpDb2RlOjpCaWxs
aW5nQ29udGFjdEludmFsaWQsIHsgfSwgV1RGOjpudWxsb3B0IH0pOworICAgICAgICBjb252ZXJ0
ZWRSZXN1bHQuZXJyb3JzLmFwcGVuZChBcHBsZVBheUVycm9yOjpjcmVhdGUoQXBwbGVQYXlFcnJv
ckNvZGU6OkJpbGxpbmdDb250YWN0SW52YWxpZCwgV1RGOjpudWxsb3B0LCBudWxsU3RyaW5nKCkp
KTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX0lO
VkFMSURfU0hJUFBJTkdfUE9TVEFMX0FERFJFU1M6CiAgICAgICAgIGNvbnZlcnRlZFJlc3VsdC5z
dGF0dXMgPSBQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6RmFpbHVyZTsKLSAgICAgICAgY29u
dmVydGVkUmVzdWx0LmVycm9ycy5hcHBlbmQoeyBQYXltZW50RXJyb3I6OkNvZGU6OlNoaXBwaW5n
Q29udGFjdEludmFsaWQsIHsgfSwgUGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlBvc3RhbEFk
ZHJlc3MgfSk7CisgICAgICAgIGNvbnZlcnRlZFJlc3VsdC5lcnJvcnMuYXBwZW5kKEFwcGxlUGF5
RXJyb3I6OmNyZWF0ZShBcHBsZVBheUVycm9yQ29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxpZCwg
QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UG9zdGFsQWRkcmVzcywgbnVsbFN0cmluZygpKSk7
CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBBcHBsZVBheVNlc3Npb246OlNUQVRVU19JTlZB
TElEX1NISVBQSU5HX0NPTlRBQ1Q6CiAgICAgICAgIGNvbnZlcnRlZFJlc3VsdC5zdGF0dXMgPSBQ
YXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6RmFpbHVyZTsKLSAgICAgICAgY29udmVydGVkUmVz
dWx0LmVycm9ycy5hcHBlbmQoeyBQYXltZW50RXJyb3I6OkNvZGU6OlNoaXBwaW5nQ29udGFjdElu
dmFsaWQsIHsgfSwgV1RGOjpudWxsb3B0IH0pOworICAgICAgICBjb252ZXJ0ZWRSZXN1bHQuZXJy
b3JzLmFwcGVuZChBcHBsZVBheUVycm9yOjpjcmVhdGUoQXBwbGVQYXlFcnJvckNvZGU6OlNoaXBw
aW5nQ29udGFjdEludmFsaWQsIFdURjo6bnVsbG9wdCwgbnVsbFN0cmluZygpKSk7CiAgICAgICAg
IGJyZWFrOwogCiAgICAgY2FzZSBBcHBsZVBheVNlc3Npb246OlNUQVRVU19QSU5fUkVRVUlSRUQ6
CkBAIC0zMTYsNjggKzI5MSw1OSBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8UGF5bWVudEF1dGhvcml6
YXRpb25SZXN1bHQ+IGNvbnZlcnRBbmRWYWxpZGF0ZShBcHBsZVBheVBheW1lbgogICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CiAgICAgfQogCi0gICAgY29u
dmVydGVkUmVzdWx0LmVycm9ycy5hcHBlbmRWZWN0b3IoY29udmVydChyZXN1bHQuZXJyb3JzKSk7
CisgICAgY29udmVydGVkUmVzdWx0LmVycm9ycy5hcHBlbmRWZWN0b3IoV1RGTW92ZShyZXN1bHQu
ZXJyb3JzKSk7CiAKICAgICByZXR1cm4gV1RGTW92ZShjb252ZXJ0ZWRSZXN1bHQpOwogfQogCi1z
dGF0aWMgRXhjZXB0aW9uT3I8UGF5bWVudE1ldGhvZFVwZGF0ZT4gY29udmVydEFuZFZhbGlkYXRl
KEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZSYmIHVwZGF0ZSkKK3N0YXRpYyBFeGNlcHRpb25P
cjxBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+IGNvbnZlcnRBbmRWYWxpZGF0ZShBcHBsZVBh
eVBheW1lbnRNZXRob2RVcGRhdGUmJiB1cGRhdGUpCiB7CiAgICAgYXV0byBjb252ZXJ0ZWROZXdU
b3RhbCA9IGNvbnZlcnRBbmRWYWxpZGF0ZVRvdGFsKFdURk1vdmUodXBkYXRlLm5ld1RvdGFsKSk7
CiAgICAgaWYgKGNvbnZlcnRlZE5ld1RvdGFsLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1
cm4gY29udmVydGVkTmV3VG90YWwucmVsZWFzZUV4Y2VwdGlvbigpOworICAgIHVwZGF0ZS5uZXdU
b3RhbCA9IGNvbnZlcnRlZE5ld1RvdGFsLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCiAgICAgYXV0
byBjb252ZXJ0ZWROZXdMaW5lSXRlbXMgPSBjb252ZXJ0QW5kVmFsaWRhdGUoV1RGTW92ZSh1cGRh
dGUubmV3TGluZUl0ZW1zKSk7CiAgICAgaWYgKGNvbnZlcnRlZE5ld0xpbmVJdGVtcy5oYXNFeGNl
cHRpb24oKSkKICAgICAgICAgcmV0dXJuIGNvbnZlcnRlZE5ld0xpbmVJdGVtcy5yZWxlYXNlRXhj
ZXB0aW9uKCk7CisgICAgdXBkYXRlLm5ld0xpbmVJdGVtcyA9IGNvbnZlcnRlZE5ld0xpbmVJdGVt
cy5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKIAotICAgIFBheW1lbnRNZXRob2RVcGRhdGUgY29udmVy
dGVkVXBkYXRlIHsgY29udmVydGVkTmV3VG90YWwucmVsZWFzZVJldHVyblZhbHVlKCksIGNvbnZl
cnRlZE5ld0xpbmVJdGVtcy5yZWxlYXNlUmV0dXJuVmFsdWUoKSB9OwotICAgIGZpbmlzaENvbnZl
cnRpbmcoY29udmVydGVkVXBkYXRlLCBXVEZNb3ZlKHVwZGF0ZSkpOwotCi0gICAgcmV0dXJuIFdU
Rk1vdmUoY29udmVydGVkVXBkYXRlKTsKKyAgICByZXR1cm4gV1RGTW92ZSh1cGRhdGUpOwogfQog
Ci1zdGF0aWMgRXhjZXB0aW9uT3I8U2hpcHBpbmdDb250YWN0VXBkYXRlPiBjb252ZXJ0QW5kVmFs
aWRhdGUoQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUmJiB1cGRhdGUpCitzdGF0aWMgRXhj
ZXB0aW9uT3I8QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+IGNvbnZlcnRBbmRWYWxpZGF0
ZShBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZSYmIHVwZGF0ZSkKIHsKLSAgICBTaGlwcGlu
Z0NvbnRhY3RVcGRhdGUgY29udmVydGVkVXBkYXRlOwotCi0gICAgY29udmVydGVkVXBkYXRlLmVy
cm9ycyA9IGNvbnZlcnQodXBkYXRlLmVycm9ycyk7Ci0KICAgICBhdXRvIGNvbnZlcnRlZE5ld1No
aXBwaW5nTWV0aG9kcyA9IGNvbnZlcnRBbmRWYWxpZGF0ZShXVEZNb3ZlKHVwZGF0ZS5uZXdTaGlw
cGluZ01ldGhvZHMpKTsKICAgICBpZiAoY29udmVydGVkTmV3U2hpcHBpbmdNZXRob2RzLmhhc0V4
Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gY29udmVydGVkTmV3U2hpcHBpbmdNZXRob2RzLnJl
bGVhc2VFeGNlcHRpb24oKTsKLSAgICBjb252ZXJ0ZWRVcGRhdGUubmV3U2hpcHBpbmdNZXRob2Rz
ID0gY29udmVydGVkTmV3U2hpcHBpbmdNZXRob2RzLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAg
IHVwZGF0ZS5uZXdTaGlwcGluZ01ldGhvZHMgPSBjb252ZXJ0ZWROZXdTaGlwcGluZ01ldGhvZHMu
cmVsZWFzZVJldHVyblZhbHVlKCk7CiAKICAgICBhdXRvIGNvbnZlcnRlZE5ld1RvdGFsID0gY29u
dmVydEFuZFZhbGlkYXRlVG90YWwoV1RGTW92ZSh1cGRhdGUubmV3VG90YWwpKTsKICAgICBpZiAo
Y29udmVydGVkTmV3VG90YWwuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBjb252ZXJ0
ZWROZXdUb3RhbC5yZWxlYXNlRXhjZXB0aW9uKCk7Ci0gICAgY29udmVydGVkVXBkYXRlLm5ld1Rv
dGFsQW5kTGluZUl0ZW1zLnRvdGFsID0gY29udmVydGVkTmV3VG90YWwucmVsZWFzZVJldHVyblZh
bHVlKCk7CisgICAgdXBkYXRlLm5ld1RvdGFsID0gY29udmVydGVkTmV3VG90YWwucmVsZWFzZVJl
dHVyblZhbHVlKCk7CiAKICAgICBhdXRvIGNvbnZlcnRlZE5ld0xpbmVJdGVtcyA9IGNvbnZlcnRB
bmRWYWxpZGF0ZShXVEZNb3ZlKHVwZGF0ZS5uZXdMaW5lSXRlbXMpKTsKICAgICBpZiAoY29udmVy
dGVkTmV3TGluZUl0ZW1zLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gY29udmVydGVk
TmV3TGluZUl0ZW1zLnJlbGVhc2VFeGNlcHRpb24oKTsKLSAgICBjb252ZXJ0ZWRVcGRhdGUubmV3
VG90YWxBbmRMaW5lSXRlbXMubGluZUl0ZW1zID0gY29udmVydGVkTmV3TGluZUl0ZW1zLnJlbGVh
c2VSZXR1cm5WYWx1ZSgpOworICAgIHVwZGF0ZS5uZXdMaW5lSXRlbXMgPSBjb252ZXJ0ZWROZXdM
aW5lSXRlbXMucmVsZWFzZVJldHVyblZhbHVlKCk7CiAKLSAgICByZXR1cm4gV1RGTW92ZShjb252
ZXJ0ZWRVcGRhdGUpOworICAgIHJldHVybiBXVEZNb3ZlKHVwZGF0ZSk7CiB9CiAKLXN0YXRpYyBF
eGNlcHRpb25PcjxTaGlwcGluZ01ldGhvZFVwZGF0ZT4gY29udmVydEFuZFZhbGlkYXRlKEFwcGxl
UGF5U2hpcHBpbmdNZXRob2RVcGRhdGUmJiB1cGRhdGUpCitzdGF0aWMgRXhjZXB0aW9uT3I8QXBw
bGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4gY29udmVydEFuZFZhbGlkYXRlKEFwcGxlUGF5U2hp
cHBpbmdNZXRob2RVcGRhdGUmJiB1cGRhdGUpCiB7Ci0gICAgU2hpcHBpbmdNZXRob2RVcGRhdGUg
Y29udmVydGVkVXBkYXRlOwotCiAgICAgYXV0byBjb252ZXJ0ZWROZXdUb3RhbCA9IGNvbnZlcnRB
bmRWYWxpZGF0ZVRvdGFsKFdURk1vdmUodXBkYXRlLm5ld1RvdGFsKSk7CiAgICAgaWYgKGNvbnZl
cnRlZE5ld1RvdGFsLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gY29udmVydGVkTmV3
VG90YWwucmVsZWFzZUV4Y2VwdGlvbigpOwotCi0gICAgY29udmVydGVkVXBkYXRlLm5ld1RvdGFs
QW5kTGluZUl0ZW1zLnRvdGFsID0gY29udmVydGVkTmV3VG90YWwucmVsZWFzZVJldHVyblZhbHVl
KCk7CisgICAgdXBkYXRlLm5ld1RvdGFsID0gY29udmVydGVkTmV3VG90YWwucmVsZWFzZVJldHVy
blZhbHVlKCk7CiAKICAgICBhdXRvIGNvbnZlcnRlZE5ld0xpbmVJdGVtcyA9IGNvbnZlcnRBbmRW
YWxpZGF0ZShXVEZNb3ZlKHVwZGF0ZS5uZXdMaW5lSXRlbXMpKTsKICAgICBpZiAoY29udmVydGVk
TmV3TGluZUl0ZW1zLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gY29udmVydGVkTmV3
TGluZUl0ZW1zLnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICB1cGRhdGUubmV3TGluZUl0ZW1zID0g
Y29udmVydGVkTmV3TGluZUl0ZW1zLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCi0gICAgY29udmVy
dGVkVXBkYXRlLm5ld1RvdGFsQW5kTGluZUl0ZW1zLmxpbmVJdGVtcyA9IGNvbnZlcnRlZE5ld0xp
bmVJdGVtcy5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKLQotICAgIHJldHVybiBXVEZNb3ZlKGNvbnZl
cnRlZFVwZGF0ZSk7CisgICAgcmV0dXJuIFdURk1vdmUodXBkYXRlKTsKIH0KIAogRXhjZXB0aW9u
T3I8UmVmPEFwcGxlUGF5U2Vzc2lvbj4+IEFwcGxlUGF5U2Vzc2lvbjo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCwgdW5zaWduZWQgdmVyc2lvbiwgQXBwbGVQYXlQYXltZW50UmVxdWVzdCYmIHBh
eW1lbnRSZXF1ZXN0KQpAQCAtNjYzLDggKzYyOSw4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxl
UGF5U2Vzc2lvbjo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24odW5zaWduZWQgc2hv
CiB7CiAgICAgQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUgdXBkYXRlOwogCi0gICAgT3B0
aW9uYWw8QXBwbGVQYXlFcnJvcjo6Q29kZT4gZXJyb3JDb2RlOwotICAgIE9wdGlvbmFsPEFwcGxl
UGF5RXJyb3I6OkNvbnRhY3RGaWVsZD4gY29udGFjdEZpZWxkOworICAgIE9wdGlvbmFsPEFwcGxl
UGF5RXJyb3JDb2RlPiBlcnJvckNvZGU7CisgICAgT3B0aW9uYWw8QXBwbGVQYXlFcnJvckNvbnRh
Y3RGaWVsZD4gY29udGFjdEZpZWxkOwogCiAgICAgc3dpdGNoIChzdGF0dXMpIHsKICAgICBjYXNl
IEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX1NVQ0NFU1M6CkBAIC02NzQsMjAgKzY0MCwyMCBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVNlc3Npb246OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0
U2VsZWN0aW9uKHVuc2lnbmVkIHNobwogICAgIGNhc2UgQXBwbGVQYXlTZXNzaW9uOjpTVEFUVVNf
UElOX1JFUVVJUkVEOgogICAgIGNhc2UgQXBwbGVQYXlTZXNzaW9uOjpTVEFUVVNfUElOX0lOQ09S
UkVDVDoKICAgICBjYXNlIEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX1BJTl9MT0NLT1VUOgotICAg
ICAgICBlcnJvckNvZGUgPSBBcHBsZVBheUVycm9yOjpDb2RlOjpVbmtub3duOworICAgICAgICBl
cnJvckNvZGUgPSBBcHBsZVBheUVycm9yQ29kZTo6VW5rbm93bjsKICAgICAgICAgYnJlYWs7CiAK
ICAgICBjYXNlIEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX0lOVkFMSURfQklMTElOR19QT1NUQUxf
QUREUkVTUzoKLSAgICAgICAgZXJyb3JDb2RlID0gQXBwbGVQYXlFcnJvcjo6Q29kZTo6QmlsbGlu
Z0NvbnRhY3RJbnZhbGlkOworICAgICAgICBlcnJvckNvZGUgPSBBcHBsZVBheUVycm9yQ29kZTo6
QmlsbGluZ0NvbnRhY3RJbnZhbGlkOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQXBwbGVQ
YXlTZXNzaW9uOjpTVEFUVVNfSU5WQUxJRF9TSElQUElOR19QT1NUQUxfQUREUkVTUzoKLSAgICAg
ICAgZXJyb3JDb2RlID0gQXBwbGVQYXlFcnJvcjo6Q29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxp
ZDsKLSAgICAgICAgY29udGFjdEZpZWxkID0gQXBwbGVQYXlFcnJvcjo6Q29udGFjdEZpZWxkOjpQ
b3N0YWxBZGRyZXNzOworICAgICAgICBlcnJvckNvZGUgPSBBcHBsZVBheUVycm9yQ29kZTo6U2hp
cHBpbmdDb250YWN0SW52YWxpZDsKKyAgICAgICAgY29udGFjdEZpZWxkID0gQXBwbGVQYXlFcnJv
ckNvbnRhY3RGaWVsZDo6UG9zdGFsQWRkcmVzczsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNl
IEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX0lOVkFMSURfU0hJUFBJTkdfQ09OVEFDVDoKLSAgICAg
ICAgZXJyb3JDb2RlID0gQXBwbGVQYXlFcnJvcjo6Q29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxp
ZDsKKyAgICAgICAgZXJyb3JDb2RlID0gQXBwbGVQYXlFcnJvckNvZGU6OlNoaXBwaW5nQ29udGFj
dEludmFsaWQ7CiAgICAgICAgIGJyZWFrOwogCiAgICAgZGVmYXVsdDoKQEAgLTc1OSw3ICs3MjUs
NyBAQCB2b2lkIEFwcGxlUGF5U2Vzc2lvbjo6ZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBQYXlt
ZW50JiBwYXltZW50KQogICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQuZ2V0KCkpOwogfQogCi12b2lk
IEFwcGxlUGF5U2Vzc2lvbjo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlT
ZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKK3Zv
aWQgQXBwbGVQYXlTZXNzaW9uOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKIHsKICAgICBBU1NFUlQobV9zdGF0ZSA9
PSBTdGF0ZTo6QWN0aXZlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlTZXNzaW9uLmgKaW5kZXggMzJjYzc2Yzg3ZjY1Li5hMDI0OGI5MTVmZjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24u
aApAQCAtMTE1LDcgKzExNSw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgdmVyc2lvbigpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZvaWQgdmFsaWRhdGVNZXJjaGFudChVUkwmJikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBkaWRBdXRob3JpemVQYXltZW50KGNvbnN0IFBheW1lbnQmKSBvdmVycmlkZTsK
LSAgICB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkU2Vs
ZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KGNvbnN0IFBheW1lbnRDb250YWN0
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFBheW1l
bnRNZXRob2QmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENhbmNlbFBheW1lbnRTZXNzaW9uKFBh
eW1lbnRTZXNzaW9uRXJyb3ImJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
LmgKaW5kZXggMzk4NjQ3NmUxMmRmLi4zYTc4ZDhkN2Q0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0LmgKQEAgLTI3LDE0ICsyNywyMSBAQAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkK
IAorI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3IuaCIKICNpbmNsdWRlICJBcHBsZVBheUxpbmVJdGVt
LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oIgogI2luY2x1ZGUgIlBheW1l
bnRDb250YWN0LmgiCiAjaW5jbHVkZSAiUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbldl
YkNvcmUuaCIKICNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9PcHRp
b25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKKyNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9BcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdEFkZGl0aW9ucy5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogZW51
bSBjbGFzcyBQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czsKQEAgLTk1LDE1ICsxMDIsOCBAQCBw
dWJsaWM6CiAgICAgU2hpcHBpbmdUeXBlIHNoaXBwaW5nVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
c2hpcHBpbmdUeXBlOyB9CiAgICAgdm9pZCBzZXRTaGlwcGluZ1R5cGUoU2hpcHBpbmdUeXBlIHNo
aXBwaW5nVHlwZSkgeyBtX3NoaXBwaW5nVHlwZSA9IHNoaXBwaW5nVHlwZTsgfQogCi0gICAgc3Ry
dWN0IFNoaXBwaW5nTWV0aG9kIHsKLSAgICAgICAgU3RyaW5nIGxhYmVsOwotICAgICAgICBTdHJp
bmcgZGV0YWlsOwotICAgICAgICBTdHJpbmcgYW1vdW50OwotCi0gICAgICAgIFN0cmluZyBpZGVu
dGlmaWVyOwotICAgIH07Ci0gICAgY29uc3QgVmVjdG9yPFNoaXBwaW5nTWV0aG9kPiYgc2hpcHBp
bmdNZXRob2RzKCkgY29uc3QgeyByZXR1cm4gbV9zaGlwcGluZ01ldGhvZHM7IH0KLSAgICB2b2lk
IHNldFNoaXBwaW5nTWV0aG9kcyhjb25zdCBWZWN0b3I8U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGlu
Z01ldGhvZHMpIHsgbV9zaGlwcGluZ01ldGhvZHMgPSBzaGlwcGluZ01ldGhvZHM7IH0KKyAgICBj
b25zdCBWZWN0b3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4mIHNoaXBwaW5nTWV0aG9kcygpIGNv
bnN0IHsgcmV0dXJuIG1fc2hpcHBpbmdNZXRob2RzOyB9CisgICAgdm9pZCBzZXRTaGlwcGluZ01l
dGhvZHMoY29uc3QgVmVjdG9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGluZ01ldGhv
ZHMpIHsgbV9zaGlwcGluZ01ldGhvZHMgPSBzaGlwcGluZ01ldGhvZHM7IH0KIAogICAgIGNvbnN0
IFZlY3RvcjxBcHBsZVBheUxpbmVJdGVtPiYgbGluZUl0ZW1zKCkgY29uc3QgeyByZXR1cm4gbV9s
aW5lSXRlbXM7IH0KICAgICB2b2lkIHNldExpbmVJdGVtcyhjb25zdCBWZWN0b3I8QXBwbGVQYXlM
aW5lSXRlbT4mIGxpbmVJdGVtcykgeyBtX2xpbmVJdGVtcyA9IGxpbmVJdGVtczsgfQpAQCAtMTEx
LDExICsxMTEsNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgQXBwbGVQYXlMaW5lSXRlbSYgdG90YWwo
KSBjb25zdCB7IHJldHVybiBtX3RvdGFsOyB9OwogICAgIHZvaWQgc2V0VG90YWwoY29uc3QgQXBw
bGVQYXlMaW5lSXRlbSYgdG90YWwpIHsgbV90b3RhbCA9IHRvdGFsOyB9CiAKLSAgICBzdHJ1Y3Qg
VG90YWxBbmRMaW5lSXRlbXMgewotICAgICAgICBBcHBsZVBheUxpbmVJdGVtIHRvdGFsOwotICAg
ICAgICBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4gbGluZUl0ZW1zOwotICAgIH07Ci0KICAgICBj
b25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbGljYXRp
b25EYXRhOyB9CiAgICAgdm9pZCBzZXRBcHBsaWNhdGlvbkRhdGEoY29uc3QgU3RyaW5nJiBhcHBs
aWNhdGlvbkRhdGEpIHsgbV9hcHBsaWNhdGlvbkRhdGEgPSBhcHBsaWNhdGlvbkRhdGE7IH0KIApA
QCAtMTUxLDcgKzE0Niw3IEBAIHByaXZhdGU6CiAgICAgTWVyY2hhbnRDYXBhYmlsaXRpZXMgbV9t
ZXJjaGFudENhcGFiaWxpdGllczsKIAogICAgIFNoaXBwaW5nVHlwZSBtX3NoaXBwaW5nVHlwZSB7
IFNoaXBwaW5nVHlwZTo6U2hpcHBpbmcgfTsKLSAgICBWZWN0b3I8U2hpcHBpbmdNZXRob2Q+IG1f
c2hpcHBpbmdNZXRob2RzOworICAgIFZlY3RvcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiBtX3No
aXBwaW5nTWV0aG9kczsKIAogICAgIFZlY3RvcjxBcHBsZVBheUxpbmVJdGVtPiBtX2xpbmVJdGVt
czsKICAgICBBcHBsZVBheUxpbmVJdGVtIG1fdG90YWw7CkBAIC0xNjQsNTEgKzE1OSwxNSBAQCBw
cml2YXRlOgogI2lmIEhBVkUoUEFTU0tJVF9JTlNUQUxMTUVOVFMpCiAgICAgUGF5bWVudEluc3Rh
bGxtZW50Q29uZmlndXJhdGlvbiBtX2luc3RhbGxtZW50Q29uZmlndXJhdGlvbjsKICNlbmRpZgot
fTsKIAotc3RydWN0IFBheW1lbnRFcnJvciB7Ci0gICAgZW51bSBjbGFzcyBDb2RlIHsKLSAgICAg
ICAgVW5rbm93biwKLSAgICAgICAgU2hpcHBpbmdDb250YWN0SW52YWxpZCwKLSAgICAgICAgQmls
bGluZ0NvbnRhY3RJbnZhbGlkLAotICAgICAgICBBZGRyZXNzVW5zZXJ2aWNlYWJsZSwKLSAgICB9
OwotCi0gICAgZW51bSBjbGFzcyBDb250YWN0RmllbGQgewotICAgICAgICBQaG9uZU51bWJlciwK
LSAgICAgICAgRW1haWxBZGRyZXNzLAotICAgICAgICBOYW1lLAotICAgICAgICBQaG9uZXRpY05h
bWUsCi0gICAgICAgIFBvc3RhbEFkZHJlc3MsCi0gICAgICAgIEFkZHJlc3NMaW5lcywKLSAgICAg
ICAgU3ViTG9jYWxpdHksCi0gICAgICAgIExvY2FsaXR5LAotICAgICAgICBQb3N0YWxDb2RlLAot
ICAgICAgICBTdWJBZG1pbmlzdHJhdGl2ZUFyZWEsCi0gICAgICAgIEFkbWluaXN0cmF0aXZlQXJl
YSwKLSAgICAgICAgQ291bnRyeSwKLSAgICAgICAgQ291bnRyeUNvZGUsCi0gICAgfTsKLQotICAg
IENvZGUgY29kZTsKLSAgICBTdHJpbmcgbWVzc2FnZTsKLSAgICBPcHRpb25hbDxDb250YWN0Rmll
bGQ+IGNvbnRhY3RGaWVsZDsKKyNpZiBkZWZpbmVkKEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0QWRkaXRpb25zX21lbWJlcnMpCisgICAgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3RB
ZGRpdGlvbnNfbWVtYmVycworI2VuZGlmCiB9OwogCiBzdHJ1Y3QgUGF5bWVudEF1dGhvcml6YXRp
b25SZXN1bHQgewogICAgIFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzIHN0YXR1czsKLSAgICBW
ZWN0b3I8UGF5bWVudEVycm9yPiBlcnJvcnM7Ci19OwotCi1zdHJ1Y3QgU2hpcHBpbmdDb250YWN0
VXBkYXRlIHsKLSAgICBWZWN0b3I8UGF5bWVudEVycm9yPiBlcnJvcnM7Ci0KLSAgICBWZWN0b3I8
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPiBuZXdTaGlwcGlu
Z01ldGhvZHM7Ci0gICAgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGlu
ZUl0ZW1zIG5ld1RvdGFsQW5kTGluZUl0ZW1zOwotfTsKLQotc3RydWN0IFNoaXBwaW5nTWV0aG9k
VXBkYXRlIHsKLSAgICBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5l
SXRlbXMgbmV3VG90YWxBbmRMaW5lSXRlbXM7CisgICAgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVy
cm9yPj4gZXJyb3JzOwogfTsKIAogV0VCQ09SRV9FWFBPUlQgYm9vbCBpc0ZpbmFsU3RhdGVSZXN1
bHQoY29uc3QgT3B0aW9uYWw8UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+Jik7CkBAIC0yMjcs
MzUgKzE4Niw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6QXBwbGVQ
YXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nVHlwCiAgICAgPjsKIH07CiAKLXRlbXBs
YXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb2RlPiB7Ci0g
ICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEVy
cm9yOjpDb2RlLAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU6OlVua25vd24s
Ci0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6U2hpcHBpbmdDb250YWN0SW52
YWxpZCwKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb2RlOjpCaWxsaW5nQ29udGFj
dEludmFsaWQsCi0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6QWRkcmVzc1Vu
c2VydmljZWFibGUKLSAgICA+OwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZD4gewotICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxk
LAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6UGhvbmVOdW1i
ZXIsCi0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpFbWFpbEFk
ZHJlc3MsCi0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpOYW1l
LAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6UGhvbmV0aWNO
YW1lLAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6UG9zdGFs
QWRkcmVzcywKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OkFk
ZHJlc3NMaW5lcywKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6
OlN1YkxvY2FsaXR5LAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVs
ZDo6TG9jYWxpdHksCi0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxk
OjpQb3N0YWxDb2RlLAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVs
ZDo6U3ViQWRtaW5pc3RyYXRpdmVBcmVhLAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6
OkNvbnRhY3RGaWVsZDo6QWRtaW5pc3RyYXRpdmVBcmVhLAotICAgICAgICBXZWJDb3JlOjpQYXlt
ZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6Q291bnRyeSwKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVu
dEVycm9yOjpDb250YWN0RmllbGQ6OkNvdW50cnlDb2RlCi0gICAgPjsKLX07Ci0KIH0gLy8gbmFt
ZXNwYWNlIFdURgogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaAppbmRleCA3
MjU5Nzc4ODhjOTYuLjg3NTJhMDM0Njg4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUu
aApAQCAtMjcsMjAgKzI3LDU1IEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCisjaW5jbHVk
ZSAiQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oIgogI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3Iu
aCIKLSNpbmNsdWRlICJBcHBsZVBheUxpbmVJdGVtLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlTaGlw
cGluZ01ldGhvZC5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlIHsKK3N0cnVjdCBBcHBsZVBh
eVNoaXBwaW5nQ29udGFjdFVwZGF0ZSBmaW5hbCA6IHB1YmxpYyBBcHBsZVBheURldGFpbHNVcGRh
dGVCYXNlIHsKICAgICBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiBlcnJvcnM7CiAKICAg
ICBWZWN0b3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4gbmV3U2hpcHBpbmdNZXRob2RzOwotICAg
IEFwcGxlUGF5TGluZUl0ZW0gbmV3VG90YWw7Ci0gICAgVmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+
IG5ld0xpbmVJdGVtczsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0
aW9uYWw8QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+IGRlY29kZShEZWNvZGVyJik7CiB9
OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBBcHBsZVBheVNoaXBwaW5nQ29udGFj
dFVwZGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgQXBwbGVQYXlE
ZXRhaWxzVXBkYXRlQmFzZTo6ZW5jb2RlKGVuY29kZXIpOworICAgIGVuY29kZXIgPDwgZXJyb3Jz
OworICAgIGVuY29kZXIgPDwgbmV3U2hpcHBpbmdNZXRob2RzOwogfQogCit0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgorT3B0aW9uYWw8QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+IEFwcGxl
UGF5U2hpcHBpbmdDb250YWN0VXBkYXRlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAg
ICBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZSByZXN1bHQ7CisKKyAgICBpZiAoIXJlc3Vs
dC5kZWNvZGVCYXNlKGRlY29kZXIpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisj
ZGVmaW5lIERFQ09ERShuYW1lLCB0eXBlKSBcCisgICAgT3B0aW9uYWw8dHlwZT4gbmFtZTsgXAor
ICAgIGRlY29kZXIgPj4gbmFtZTsgXAorICAgIGlmICghbmFtZSkgXAorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OyBcCisgICAgcmVzdWx0Lm5hbWUgPSBXVEZNb3ZlKCpuYW1lKTsgXAorCisg
ICAgREVDT0RFKGVycm9ycywgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4pCisgICAgREVD
T0RFKG5ld1NoaXBwaW5nTWV0aG9kcywgVmVjdG9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+KQor
CisjdW5kZWYgREVDT0RFCisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmlkbAppbmRl
eCAwNTJlODJiZmMxMTkuLmYxMWYzNWJmNjhhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVw
ZGF0ZS5pZGwKQEAgLTI1LDEwICsyNSw4IEBACiAKIFsKICAgICBDb25kaXRpb25hbD1BUFBMRV9Q
QVksCi1dIGRpY3Rpb25hcnkgQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUgeworXSBkaWN0
aW9uYXJ5IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlIDogQXBwbGVQYXlEZXRhaWxzVXBk
YXRlQmFzZSB7CiAgICAgc2VxdWVuY2U8QXBwbGVQYXlFcnJvcj4gZXJyb3JzOwogCiAgICAgc2Vx
dWVuY2U8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4gbmV3U2hpcHBpbmdNZXRob2RzOwotICAgIHJl
cXVpcmVkIEFwcGxlUGF5TGluZUl0ZW0gbmV3VG90YWw7Ci0gICAgc2VxdWVuY2U8QXBwbGVQYXlM
aW5lSXRlbT4gbmV3TGluZUl0ZW1zOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kLmgKaW5kZXggNTkzNTIxYWY0
NmJjLi5lMzk0MmExOGJkMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oCkBAIC0zNiw4ICszNiwzOSBAQCBz
dHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCB7CiAgICAgU3RyaW5nIGRldGFpbDsKICAgICBT
dHJpbmcgYW1vdW50OwogICAgIFN0cmluZyBpZGVudGlmaWVyOworCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiBkZWNv
ZGUoRGVjb2RlciYpOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAg
ZW5jb2RlciA8PCBsYWJlbDsKKyAgICBlbmNvZGVyIDw8IGRldGFpbDsKKyAgICBlbmNvZGVyIDw8
IGFtb3VudDsKKyAgICBlbmNvZGVyIDw8IGlkZW50aWZpZXI7CiB9CiAKK3RlbXBsYXRlPGNsYXNz
IERlY29kZXI+CitPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiBBcHBsZVBheVNoaXBw
aW5nTWV0aG9kOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyNkZWZpbmUgREVDT0RFKG5h
bWUsIHR5cGUpIFwKKyAgICBPcHRpb25hbDx0eXBlPiBuYW1lOyBcCisgICAgZGVjb2RlciA+PiBu
YW1lOyBcCisgICAgaWYgKCFuYW1lKSBcCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7IFwK
KworICAgIERFQ09ERShsYWJlbCwgU3RyaW5nKQorICAgIERFQ09ERShkZXRhaWwsIFN0cmluZykK
KyAgICBERUNPREUoYW1vdW50LCBTdHJpbmcpCisgICAgREVDT0RFKGlkZW50aWZpZXIsIFN0cmlu
ZykKKworI3VuZGVmIERFQ09ERQorCisgICAgcmV0dXJuIHt7IFdURk1vdmUoKmxhYmVsKSwgV1RG
TW92ZSgqZGV0YWlsKSwgV1RGTW92ZSgqYW1vdW50KSwgV1RGTW92ZSgqaWRlbnRpZmllcikgfX07
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3Rl
ZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlw
cGluZ01ldGhvZFNlbGVjdGVkRXZlbnQuY3BwCmluZGV4IGJkNzY1ZjhjNWY2ZS4uOTU3NzZhNDQ4
Zjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50LmNwcApAQCAt
MzUsMjAgKzM1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEX0lNUEwoQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQpOwogCi1zdGF0aWMg
aW5saW5lIEFwcGxlUGF5U2hpcHBpbmdNZXRob2QgY29udmVydChjb25zdCBBcHBsZVBheVNlc3Np
b25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQotewotICAg
IEFwcGxlUGF5U2hpcHBpbmdNZXRob2QgY29udmVydGVkTWV0aG9kOwotICAgIGNvbnZlcnRlZE1l
dGhvZC5sYWJlbCA9IHNoaXBwaW5nTWV0aG9kLmxhYmVsOwotICAgIGNvbnZlcnRlZE1ldGhvZC5k
ZXRhaWwgPSBzaGlwcGluZ01ldGhvZC5kZXRhaWw7Ci0gICAgY29udmVydGVkTWV0aG9kLmlkZW50
aWZpZXIgPSBzaGlwcGluZ01ldGhvZC5pZGVudGlmaWVyOwotICAgIGNvbnZlcnRlZE1ldGhvZC5h
bW91bnQgPSBzaGlwcGluZ01ldGhvZC5hbW91bnQ7Ci0KLSAgICByZXR1cm4gY29udmVydGVkTWV0
aG9kOyAKLX0KLQotQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQ6OkFwcGxlUGF5
U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0
IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdN
ZXRob2QpCitBcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudDo6QXBwbGVQYXlTaGlw
cGluZ01ldGhvZFNlbGVjdGVkRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgQXBw
bGVQYXlTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCiAgICAgOiBFdmVudCh0eXBlLCBD
YW5CdWJibGU6Ok5vLCBJc0NhbmNlbGFibGU6Ok5vKQotICAgICwgbV9zaGlwcGluZ01ldGhvZChj
b252ZXJ0KHNoaXBwaW5nTWV0aG9kKSkKKyAgICAsIG1fc2hpcHBpbmdNZXRob2Qoc2hpcHBpbmdN
ZXRob2QpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQuaApp
bmRleCBjYTMzOTA3MzI2OWIuLmY2MGEyYTVmM2I0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01l
dGhvZFNlbGVjdGVkRXZlbnQuaApAQCAtMjcsNyArMjcsNiBAQAogCiAjaWYgRU5BQkxFKEFQUExF
X1BBWSkKIAotI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAKQEAg
LTM2LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQXBwbGVQYXlTaGlwcGlu
Z01ldGhvZFNlbGVjdGVkRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogICAgIFdURl9NQUtF
X0lTT19BTExPQ0FURUQoQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQpOwogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8QXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQ+
IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQorICAgIHN0YXRpYyBS
ZWY8QXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9t
U3RyaW5nJiB0eXBlLCBjb25zdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhv
ZCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFwcGxlUGF5U2hpcHBpbmdN
ZXRob2RTZWxlY3RlZEV2ZW50KHR5cGUsIHNoaXBwaW5nTWV0aG9kKSk7CiAgICAgfQpAQCAtNDYs
NyArNDUsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYgc2hp
cHBpbmdNZXRob2QoKSBjb25zdCB7IHJldHVybiBtX3NoaXBwaW5nTWV0aG9kOyB9CiAKIHByaXZh
dGU6Ci0gICAgQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQoY29uc3QgQXRvbVN0
cmluZyYgdHlwZSwgY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5n
TWV0aG9kJik7CisgICAgQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQoY29uc3Qg
QXRvbVN0cmluZyYgdHlwZSwgY29uc3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYpOwogCiAgICAg
Ly8gRXZlbnQuCiAgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmgKaW5kZXggZGE2ZDlkNDhkZjAzLi42Mzli
ZTBkMmJiOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oCkBAIC0yNywxNSArMjcsMzIg
QEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKLSNpbmNsdWRlICJBcHBsZVBheUxpbmVJdGVt
LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXN0cnVjdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlIHsKLSAgICBB
cHBsZVBheUxpbmVJdGVtIG5ld1RvdGFsOwotICAgIFZlY3RvcjxBcHBsZVBheUxpbmVJdGVtPiBu
ZXdMaW5lSXRlbXM7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZSBmaW5hbCA6
IHB1YmxpYyBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlIHsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+IGRl
Y29kZShEZWNvZGVyJik7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBBcHBs
ZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3sKKyAgICBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlOjplbmNvZGUoZW5jb2Rlcik7CiB9CiAK
K3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nTWV0aG9k
VXBkYXRlPiBBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlOjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICBBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlIHJlc3VsdDsKKworICAg
IGlmICghcmVzdWx0LmRlY29kZUJhc2UoZGVjb2RlcikpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5pZGwKaW5kZXggODQ1OWRhOGQ3
NWQ0Li4yZTU0NGM1MDc5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmlkbApAQCAt
MjUsNyArMjUsNSBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9QVBQTEVfUEFZLAotXSBkaWN0aW9u
YXJ5IEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUgewotICAgIHJlcXVpcmVkIEFwcGxlUGF5
TGluZUl0ZW0gbmV3VG90YWw7Ci0gICAgc2VxdWVuY2U8QXBwbGVQYXlMaW5lSXRlbT4gbmV3TGlu
ZUl0ZW1zOworXSBkaWN0aW9uYXJ5IEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUgOiBBcHBs
ZVBheURldGFpbHNVcGRhdGVCYXNlIHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGluYXRvci5jcHAKaW5kZXggNmIwZDQ0NDY2MDQ2
Li4wYzVmNDg3Mzc1YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvUGF5bWVudENvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L1BheW1lbnRDb29yZGluYXRvci5jcHAKQEAgLTI4LDYgKzI4LDEwIEBACiAKICNpZiBF
TkFCTEUoQVBQTEVfUEFZKQogCisjaW5jbHVkZSAiQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRl
LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oIgorI2luY2x1ZGUgIkFwcGxl
UGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ01l
dGhvZFVwZGF0ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTGlua0ljb25D
b2xsZWN0b3IuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC0xMjgsMjEgKzEzMiwyMSBAQCB2
b2lkIFBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24oY29uc3Qg
UGF5bWVudE1lcmNoYW50U2Vzc2lvbgogICAgIG1fY2xpZW50LmNvbXBsZXRlTWVyY2hhbnRWYWxp
ZGF0aW9uKHBheW1lbnRNZXJjaGFudFNlc3Npb24pOwogfQogCi12b2lkIFBheW1lbnRDb29yZGlu
YXRvcjo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ01l
dGhvZFVwZGF0ZT4mJiB1cGRhdGUpCit2b2lkIFBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVT
aGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBk
YXRlPiYmIHVwZGF0ZSkKIHsKICAgICBBU1NFUlQobV9hY3RpdmVTZXNzaW9uKTsKICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKCkiKTsK
ICAgICBtX2NsaWVudC5jb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKFdURk1vdmUodXBk
YXRlKSk7CiB9CiAKLXZvaWQgUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nQ29u
dGFjdFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYgdXBkYXRlKQor
dm9pZCBQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9u
KE9wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmIHVwZGF0ZSkKIHsKICAg
ICBBU1NFUlQobV9hY3RpdmVTZXNzaW9uKTsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJj
b21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbigpIik7CiAgICAgbV9jbGllbnQuY29tcGxl
dGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUpKTsKIH0KIAotdm9pZCBQ
YXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25h
bDxQYXltZW50TWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKK3ZvaWQgUGF5bWVudENvb3JkaW5hdG9y
Ojpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlQYXltZW50
TWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKIHsKICAgICBBU1NFUlQobV9hY3RpdmVTZXNzaW9uKTsK
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rp
b24oKSIpOwpAQCAtMjExLDcgKzIxNSw3IEBAIHZvaWQgUGF5bWVudENvb3JkaW5hdG9yOjpkaWRT
ZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFBheW1lbnRNZXRob2QmIHBheW1lbnRNZXRoCiAgICAg
bV9hY3RpdmVTZXNzaW9uLT5kaWRTZWxlY3RQYXltZW50TWV0aG9kKHBheW1lbnRNZXRob2QpOwog
fQogCi12b2lkIFBheW1lbnRDb29yZGluYXRvcjo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29u
c3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGlu
Z01ldGhvZCkKK3ZvaWQgUGF5bWVudENvb3JkaW5hdG9yOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhv
ZChjb25zdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKIHsKICAgICBp
ZiAoIW1fYWN0aXZlU2Vzc2lvbikgewogICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhl
IHBheW1lbnQgaGFzIGJlZW4gYWJvcnRlZCBhbHJlYWR5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9yLmgKaW5kZXggN2JkNGEyNWYz
OWUzLi42NDVjNzk2MzY1ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvUGF5bWVudENvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3IuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
IkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgiCiAjaW5jbHVkZSA8d3RmL0V4cGVjdGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+
CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDEs
MTUgKzQyLDE2IEBAIGNsYXNzIFBheW1lbnRDb29yZGluYXRvckNsaWVudDsKIGNsYXNzIFBheW1l
bnRDb250YWN0OwogY2xhc3MgUGF5bWVudE1lcmNoYW50U2Vzc2lvbjsKIGNsYXNzIFBheW1lbnRN
ZXRob2Q7Ci1jbGFzcyBQYXltZW50TWV0aG9kVXBkYXRlOwogY2xhc3MgUGF5bWVudFNlc3Npb247
CiBjbGFzcyBQYXltZW50U2Vzc2lvbkVycm9yOwogZW51bSBjbGFzcyBQYXltZW50QXV0aG9yaXph
dGlvblN0YXR1czsKK3N0cnVjdCBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU7CiBzdHJ1Y3Qg
QXBwbGVQYXlTZXR1cENvbmZpZ3VyYXRpb247CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ0NvbnRh
Y3RVcGRhdGU7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZDsKK3N0cnVjdCBBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kVXBkYXRlOwogc3RydWN0IEV4Y2VwdGlvbkRldGFpbHM7CiBzdHJ1Y3Qg
UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ7Ci1zdHJ1Y3QgU2hpcHBpbmdDb250YWN0VXBkYXRl
Owotc3RydWN0IFNoaXBwaW5nTWV0aG9kVXBkYXRlOwogCiBjbGFzcyBQYXltZW50Q29vcmRpbmF0
b3IgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UGF5bWVudENvb3JkaW5hdG9yPiB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC02OCw5ICs3MCw5IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgYmVnaW5QYXltZW50U2Vzc2lvbihEb2N1bWVudCYsIFBheW1lbnRTZXNzaW9uJiwgY29uc3Qg
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmKTsKICAgICB2b2lkIGNvbXBsZXRlTWVyY2hh
bnRWYWxpZGF0aW9uKGNvbnN0IFBheW1lbnRNZXJjaGFudFNlc3Npb24mKTsKLSAgICB2b2lkIGNv
bXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8U2hpcHBpbmdNZXRob2RVcGRh
dGU+JiYpOwotICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9u
YWw8U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKTsKLSAgICB2b2lkIGNvbXBsZXRlUGF5bWVudE1l
dGhvZFNlbGVjdGlvbihPcHRpb25hbDxQYXltZW50TWV0aG9kVXBkYXRlPiYmKTsKKyAgICB2b2lk
IGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlTaGlwcGlu
Z01ldGhvZFVwZGF0ZT4mJik7CisgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVj
dGlvbihPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJik7CisgICAgdm9p
ZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlQYXltZW50
TWV0aG9kVXBkYXRlPiYmKTsKICAgICB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24oT3B0aW9u
YWw8UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+JiYpOwogICAgIHZvaWQgYWJvcnRQYXltZW50
U2Vzc2lvbigpOwogICAgIHZvaWQgY2FuY2VsUGF5bWVudFNlc3Npb24oKTsKQEAgLTc4LDcgKzgw
LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdmFsaWRhdGVNZXJjaGFudChV
UkwmJiB2YWxpZGF0aW9uVVJMKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEF1dGhvcml6
ZVBheW1lbnQoY29uc3QgUGF5bWVudCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkU2Vs
ZWN0UGF5bWVudE1ldGhvZChjb25zdCBQYXltZW50TWV0aG9kJik7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRp
ZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2QmKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChjb25zdCBQYXlt
ZW50Q29udGFjdCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQ2FuY2VsUGF5bWVudFNl
c3Npb24oUGF5bWVudFNlc3Npb25FcnJvciYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3JDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50LmgKaW5kZXgg
ZDZlMjZmYzk3NDA0Li4xNmVkYzgzZWVlYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3JDbGllbnQuaApAQCAtMzIs
MTYgKzMyLDE3IEBACiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3
dGYvT3B0aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsK
IGNsYXNzIFBheW1lbnRNZXJjaGFudFNlc3Npb247Ci1jbGFzcyBQYXltZW50TWV0aG9kVXBkYXRl
Oworc3RydWN0IEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZTsKIHN0cnVjdCBBcHBsZVBheVNl
dHVwQ29uZmlndXJhdGlvbjsKK3N0cnVjdCBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZTsK
K3N0cnVjdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlOwogc3RydWN0IFBheW1lbnRBdXRo
b3JpemF0aW9uUmVzdWx0Owotc3RydWN0IFNoaXBwaW5nQ29udGFjdFVwZGF0ZTsKLXN0cnVjdCBT
aGlwcGluZ01ldGhvZFVwZGF0ZTsKIAogY2xhc3MgUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50IHsK
IHB1YmxpYzoKQEAgLTU0LDkgKzU1LDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNo
b3dQYXltZW50VUkoY29uc3QgVVJMJiBvcmlnaW5hdGluZ1VSTCwgY29uc3QgVmVjdG9yPFVSTD4m
IGxpbmtJY29uVVJMcywgY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFBheW1l
bnRNZXJjaGFudFNlc3Npb24mKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXBsZXRlU2hpcHBp
bmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9u
YWw8U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXBs
ZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxQYXltZW50TWV0aG9kVXBkYXRlPiYm
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24o
T3B0aW9uYWw8QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBh
eVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb21wbGV0
ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlQYXltZW50TWV0aG9kVXBk
YXRlPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24oT3B0
aW9uYWw8UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgYWJvcnRQYXltZW50U2Vzc2lvbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUGF5
bWVudFNlc3Npb24oKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L1BheW1lbnRIZWFkZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L1BheW1lbnRIZWFkZXJzLmgKaW5kZXggYzU1NTExNzllZDFmLi4yZGRiMjU5YzU4ZDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudEhlYWRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRIZWFkZXJzLmgKQEAg
LTI1LDExICsyNSwxMyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkFwcGxlUGF5UGF5
bWVudE1ldGhvZFVwZGF0ZS5oIgogI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaCIKKyNpbmNs
dWRlICJBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVkZSAiUGF5bWVudC5o
IgogI2luY2x1ZGUgIlBheW1lbnRDb250YWN0LmgiCiAjaW5jbHVkZSAiUGF5bWVudE1lcmNoYW50
U2Vzc2lvbi5oIgogI2luY2x1ZGUgIlBheW1lbnRNZXRob2QuaCIKLSNpbmNsdWRlICJQYXltZW50
TWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVkZSAiUGF5bWVudFNlc3Npb25FcnJvci5oIgogI2luY2x1
ZGUgIlBheW1lbnRTdW1tYXJ5SXRlbXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvUGF5bWVudE1ldGhvZFVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9QYXltZW50TWV0aG9kVXBkYXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGQ4NDBlMTYzZDUwNS4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudE1ldGhvZFVwZGF0ZS5oCisrKyAvZGV2L251bGwKQEAg
LTEsNTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKEFQ
UExFX1BBWSkKLQotI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgiCi0j
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotCi1PQkpDX0NMQVNTIFBLUGF5bWVudFJlcXVlc3RQ
YXltZW50TWV0aG9kVXBkYXRlOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFdFQkNP
UkVfRVhQT1JUIFBheW1lbnRNZXRob2RVcGRhdGUgewotcHVibGljOgotICAgIHVzaW5nIFRvdGFs
QW5kTGluZUl0ZW1zID0gQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGlu
ZUl0ZW1zOwotCi0gICAgUGF5bWVudE1ldGhvZFVwZGF0ZShBcHBsZVBheUxpbmVJdGVtJiYgdG90
YWwsIFZlY3RvcjxBcHBsZVBheUxpbmVJdGVtPiYmKTsKLSAgICBleHBsaWNpdCBQYXltZW50TWV0
aG9kVXBkYXRlKFJldGFpblB0cjxQS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZT4m
Jik7Ci0gICAgZXhwbGljaXQgUGF5bWVudE1ldGhvZFVwZGF0ZShUb3RhbEFuZExpbmVJdGVtcyYm
KTsKLQotICAgIGNvbnN0IFRvdGFsQW5kTGluZUl0ZW1zJiB0b3RhbEFuZExpbmVJdGVtcygpIGNv
bnN0OwotICAgIFBLUGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlICpwbGF0Zm9ybVVw
ZGF0ZSgpIGNvbnN0OwotCi0jaWYgSEFWRShQQVNTS0lUX0lOU1RBTExNRU5UUykKLSAgICB2b2lk
IHNldEluc3RhbGxtZW50R3JvdXBJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYpOwotI2VuZGlmCi0K
LXByaXZhdGU6Ci0gICAgT3B0aW9uYWw8VG90YWxBbmRMaW5lSXRlbXM+IG1fdG90YWxBbmRMaW5l
SXRlbXM7Ci0gICAgUmV0YWluUHRyPFBLUGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRl
PiBtX3BsYXRmb3JtVXBkYXRlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYgLy8gRU5BQkxFKEFQUExFX1BBWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLm1tCmluZGV4IGVmOWY2ZTgy
NDg0Ni4uZDAwYzg4YzgzODhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW0KQEAgLTI5LDYgKzI5LDcg
QEAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCiAjaW1wb3J0ICJBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdC5oIgorI2ltcG9ydCAiQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oIgogI2ltcG9y
dCA8dW5pY29kZS91Y3Vyci5oPgogI2ltcG9ydCA8dW5pY29kZS91bG9jLmg+CiAKQEAgLTM4LDgg
KzM5LDggQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlQ291bnRyeUNvZGUoY29u
c3QgU3RyaW5nJik7CiBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVDdXJyZW5jeUNv
ZGUoY29uc3QgU3RyaW5nJik7CiBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVNZXJj
aGFudENhcGFiaWxpdGllcyhjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6TWVy
Y2hhbnRDYXBhYmlsaXRpZXMmKTsKIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVN1
cHBvcnRlZE5ldHdvcmtzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7Ci1zdGF0aWMgRXhjZXB0aW9u
T3I8dm9pZD4gdmFsaWRhdGVTaGlwcGluZ01ldGhvZHMoY29uc3QgVmVjdG9yPEFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4mKTsKLXN0YXRpYyBFeGNlcHRpb25P
cjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpOworc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZh
bGlkYXRlU2hpcHBpbmdNZXRob2RzKGNvbnN0IFZlY3RvcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9k
PiYpOworc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlU2hpcHBpbmdNZXRob2QoY29u
c3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYpOwogCiBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50
UmVxdWVzdFZhbGlkYXRvcjo6dmFsaWRhdGUoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3QmIHBheW1lbnRSZXF1ZXN0KQogewpAQCAtMTQxLDcgKzE0Miw3IEBAIHN0YXRpYyBFeGNl
cHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVN1cHBvcnRlZE5ldHdvcmtzKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBzdXBwb3J0CiAgICAgcmV0dXJuIHsgfTsKIH0KIAotc3RhdGljIEV4Y2VwdGlvbk9yPHZv
aWQ+IHZhbGlkYXRlU2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKK3N0YXRpYyBFeGNlcHRpb25P
cjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRo
b2QmIHNoaXBwaW5nTWV0aG9kKQogewogICAgIE5TRGVjaW1hbE51bWJlciAqYW1vdW50ID0gW05T
RGVjaW1hbE51bWJlciBkZWNpbWFsTnVtYmVyV2l0aFN0cmluZzpzaGlwcGluZ01ldGhvZC5hbW91
bnQgbG9jYWxlOkB7IE5TTG9jYWxlRGVjaW1hbFNlcGFyYXRvciA6IEAiLiIgfV07CiAgICAgaWYg
KGFtb3VudC5pbnRlZ2VyVmFsdWUgPCAwKQpAQCAtMTUwLDcgKzE1MSw3IEBAIHN0YXRpYyBFeGNl
cHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1CiAgICAgcmV0dXJuIHsgfTsKIH0KIAotc3RhdGljIEV4Y2VwdGlvbk9yPHZv
aWQ+IHZhbGlkYXRlU2hpcHBpbmdNZXRob2RzKGNvbnN0IFZlY3RvcjxBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGluZ01ldGhvZHMpCitzdGF0aWMg
RXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVTaGlwcGluZ01ldGhvZHMoY29uc3QgVmVjdG9yPEFw
cGxlUGF5U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGluZ01ldGhvZHMpCiB7CiAgICAgZm9yIChjb25z
dCBhdXRvJiBzaGlwcGluZ01ldGhvZCA6IHNoaXBwaW5nTWV0aG9kcykgewogICAgICAgICBhdXRv
IHZhbGlkYXRlZFNoaXBwaW5nTWV0aG9kID0gdmFsaWRhdGVTaGlwcGluZ01ldGhvZChzaGlwcGlu
Z01ldGhvZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1Bh
eW1lbnRTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRT
ZXNzaW9uLmgKaW5kZXggY2U1Y2Y1Mzk4ZWFiLi5mNWRmZmQwZWVjMTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNlc3Npb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uLmgKQEAgLTI3LDcgKzI3
LDYgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKLSNpbmNsdWRlICJBcHBsZVBheVNlc3Np
b25QYXltZW50UmVxdWVzdC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAi
UGF5bWVudFNlc3Npb25CYXNlLmgiCiAKQEAgLTM5LDYgKzM4LDcgQEAgY2xhc3MgUGF5bWVudENv
bnRhY3Q7CiBjbGFzcyBQYXltZW50TWV0aG9kOwogY2xhc3MgUGF5bWVudFNlc3Npb25FcnJvcjsK
IGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ01l
dGhvZDsKIAogY2xhc3MgUGF5bWVudFNlc3Npb24gOiBwdWJsaWMgdmlydHVhbCBQYXltZW50U2Vz
c2lvbkJhc2UgewogcHVibGljOgpAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB1bnNpZ25lZCB2ZXJzaW9uKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB2YWxpZGF0
ZU1lcmNoYW50KFVSTCYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEF1dGhvcml6ZVBheW1l
bnQoY29uc3QgUGF5bWVudCYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkU2VsZWN0U2hpcHBp
bmdNZXRob2QoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0
aG9kJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25z
dCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZWxl
Y3RTaGlwcGluZ0NvbnRhY3QoY29uc3QgUGF5bWVudENvbnRhY3QmKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGRpZFNlbGVjdFBheW1lbnRNZXRob2QoY29uc3QgUGF5bWVudE1ldGhvZCYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24oUGF5bWVudFNlc3Npb25F
cnJvciYmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L1BheW1lbnRTdW1tYXJ5SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
UGF5bWVudFN1bW1hcnlJdGVtcy5oCmluZGV4IGZmZjg0NGQ3Nzk1Yi4uMmJkM2VlYzkzODBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTdW1tYXJ5
SXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTdW1t
YXJ5SXRlbXMuaApAQCAtMjcsMTMgKzI3LDEyIEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQog
Ci0jaW5jbHVkZSAiQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKLQogT0JKQ19DTEFT
UyBOU0FycmF5OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdFQkNPUkVfRVhQT1JUIE5TQXJy
YXkgKnBsYXRmb3JtU3VtbWFyeUl0ZW1zKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0OjpUb3RhbEFuZExpbmVJdGVtcyYpOworc3RydWN0IEFwcGxlUGF5TGluZUl0ZW07CisKIFdF
QkNPUkVfRVhQT1JUIE5TQXJyYXkgKnBsYXRmb3JtU3VtbWFyeUl0ZW1zKGNvbnN0IEFwcGxlUGF5
TGluZUl0ZW0mIHRvdGFsLCBjb25zdCBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4mKTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9jb2NvYS9QYXltZW50TWV0aG9kVXBkYXRlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRNZXRob2RVcGRhdGVDb2NvYS5tbQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY0ZDExYjZkMDc2Li4wMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50TWV0aG9kVXBk
YXRlQ29jb2EubW0KKysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJQYXltZW50TWV0aG9kVXBkYXRlLmgiCi0KLSNp
ZiBFTkFCTEUoQVBQTEVfUEFZKQotCi0jaW1wb3J0ICJQYXltZW50U3VtbWFyeUl0ZW1zLmgiCi0j
aW1wb3J0IDxwYWwvY29jb2EvUGFzc0tpdFNvZnRMaW5rLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotUGF5bWVudE1ldGhvZFVwZGF0ZTo6UGF5bWVudE1ldGhvZFVwZGF0ZShBcHBsZVBheUxp
bmVJdGVtJiYgdG90YWwsIFZlY3RvcjxBcHBsZVBheUxpbmVJdGVtPiYmIGxpbmVJdGVtcykKLSAg
ICA6IG1fdG90YWxBbmRMaW5lSXRlbXMgeyB7IFdURk1vdmUodG90YWwpLCBXVEZNb3ZlKGxpbmVJ
dGVtcykgfSB9Ci0gICAgLCBtX3BsYXRmb3JtVXBkYXRlIHsgYWRvcHROUyhbUEFMOjphbGxvY1BL
UGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aFBheW1l
bnRTdW1tYXJ5SXRlbXM6cGxhdGZvcm1TdW1tYXJ5SXRlbXMoKm1fdG90YWxBbmRMaW5lSXRlbXMp
XSkgfQotewotfQotCi1QYXltZW50TWV0aG9kVXBkYXRlOjpQYXltZW50TWV0aG9kVXBkYXRlKFJl
dGFpblB0cjxQS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZT4mJiBwbGF0Zm9ybVVw
ZGF0ZSkKLSAgICA6IG1fcGxhdGZvcm1VcGRhdGUgeyBXVEZNb3ZlKHBsYXRmb3JtVXBkYXRlKSB9
Ci17Ci19Ci0KLVBheW1lbnRNZXRob2RVcGRhdGU6OlBheW1lbnRNZXRob2RVcGRhdGUoVG90YWxB
bmRMaW5lSXRlbXMmJiB0b3RhbEFuZExpbmVJdGVtcykKLSAgICA6IFBheW1lbnRNZXRob2RVcGRh
dGUgeyBXVEZNb3ZlKHRvdGFsQW5kTGluZUl0ZW1zLnRvdGFsKSwgV1RGTW92ZSh0b3RhbEFuZExp
bmVJdGVtcy5saW5lSXRlbXMpIH0KLXsKLX0KLQotY29uc3QgUGF5bWVudE1ldGhvZFVwZGF0ZTo6
VG90YWxBbmRMaW5lSXRlbXMmIFBheW1lbnRNZXRob2RVcGRhdGU6OnRvdGFsQW5kTGluZUl0ZW1z
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gKm1fdG90YWxBbmRMaW5lSXRlbXM7Ci19Ci0KLVBLUGF5
bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlICpQYXltZW50TWV0aG9kVXBkYXRlOjpwbGF0
Zm9ybVVwZGF0ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGxhdGZvcm1VcGRhdGUuZ2V0KCk7
Ci19Ci0KLSNpZiBIQVZFKFBBU1NLSVRfSU5TVEFMTE1FTlRTKQotdm9pZCBQYXltZW50TWV0aG9k
VXBkYXRlOjpzZXRJbnN0YWxsbWVudEdyb3VwSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGluc3Rh
bGxtZW50R3JvdXBJZGVudGlmaWVyKQotewotICAgIFttX3BsYXRmb3JtVXBkYXRlIHNldEluc3Rh
bGxtZW50R3JvdXBJZGVudGlmaWVyOmluc3RhbGxtZW50R3JvdXBJZGVudGlmaWVyXTsKLX0KLSNl
bmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoQVBQTEVf
UEFZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9Q
YXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L2NvY29hL1BheW1lbnRTdW1tYXJ5SXRlbXNDb2NvYS5tbQppbmRleCBlNzk5YTljY2Q5NTEu
LjExZWRiMGI0OTZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0KQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKKyNpbXBvcnQgIkFwcGxlUGF5
TGluZUl0ZW0uaCIKICNpbXBvcnQgPHBhbC9jb2NvYS9QYXNzS2l0U29mdExpbmsuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNjAsMTEgKzYxLDYgQEAgc3RhdGljIFBLUGF5bWVudFN1bW1h
cnlJdGVtICp0b1BLUGF5bWVudFN1bW1hcnlJdGVtKGNvbnN0IEFwcGxlUGF5TGluZUl0ZW0mIGxp
bmUKIH0KICNlbmRpZgogCi1OU0FycmF5ICpwbGF0Zm9ybVN1bW1hcnlJdGVtcyhjb25zdCBBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXMmIHRvdGFsQW5kTGlu
ZUl0ZW1zKQotewotICAgIHJldHVybiBwbGF0Zm9ybVN1bW1hcnlJdGVtcyh0b3RhbEFuZExpbmVJ
dGVtcy50b3RhbCwgdG90YWxBbmRMaW5lSXRlbXMubGluZUl0ZW1zKTsKLX0KLQogTlNBcnJheSAq
cGxhdGZvcm1TdW1tYXJ5SXRlbXMoY29uc3QgQXBwbGVQYXlMaW5lSXRlbSYgdG90YWwsIGNvbnN0
IFZlY3RvcjxBcHBsZVBheUxpbmVJdGVtPiYgbGluZUl0ZW1zKQogewogICAgIE5TTXV0YWJsZUFy
cmF5ICpwYXltZW50U3VtbWFyeUl0ZW1zID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFj
aXR5OmxpbmVJdGVtcy5zaXplKCkgKyAxXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5
UGF5bWVudEhhbmRsZXIuY3BwCmluZGV4IDdlYzAzNzBmZmVmZS4uZjM5YjE1MTAzNjU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0Fw
cGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAKQEAgLTMwLDEx
ICszMCwxOSBAQAogCiAjaW5jbHVkZSAiQWRkcmVzc0Vycm9ycy5oIgogI2luY2x1ZGUgIkFwcGxl
UGF5Q29udGFjdEZpZWxkLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5o
IgorI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3IuaCIKKyNpbmNsdWRlICJBcHBsZVBheUVycm9yQ29k
ZS5oIgorI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaCIKICNpbmNsdWRlICJB
cHBsZVBheUxpbmVJdGVtLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlNZXJjaGFudENhcGFiaWxpdHku
aCIKICNpbmNsdWRlICJBcHBsZVBheU1vZGlmaWVyLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlQYXlt
ZW50LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVk
ZSAiQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKKyNpbmNsdWRlICJBcHBsZVBheVNo
aXBwaW5nQ29udGFjdFVwZGF0ZS5oIgorI2luY2x1ZGUgIkFwcGxlUGF5U2hpcHBpbmdNZXRob2Qu
aCIKKyNpbmNsdWRlICJBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
QEAgLTU0LDcgKzYyLDYgQEAKICNpbmNsdWRlICJQYXltZW50Q29vcmRpbmF0b3IuaCIKICNpbmNs
dWRlICJQYXltZW50TWVyY2hhbnRTZXNzaW9uLmgiCiAjaW5jbHVkZSAiUGF5bWVudE1ldGhvZC5o
IgotI2luY2x1ZGUgIlBheW1lbnRNZXRob2RVcGRhdGUuaCIKICNpbmNsdWRlICJQYXltZW50UmVx
dWVzdFZhbGlkYXRvci5oIgogI2luY2x1ZGUgIlBheW1lbnRSZXNwb25zZS5oIgogI2luY2x1ZGUg
IlBheW1lbnRWYWxpZGF0aW9uRXJyb3JzLmgiCkBAIC0xOTgsMTkgKzIwNSw0NSBAQCBzdGF0aWMg
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nVHlwZSBjb252ZXJ0KFBheW1l
bnRTaGlwcGluZ1R5cGUgdAogICAgIHJldHVybiBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dDo6U2hpcHBpbmdUeXBlOjpTaGlwcGluZzsKIH0KIAotc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxl
UGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4gY29udmVydEFuZFZhbGlk
YXRlKGNvbnN0IFBheW1lbnRTaGlwcGluZ09wdGlvbiYgc2hpcHBpbmdPcHRpb24sIGNvbnN0IFN0
cmluZyYgZXhwZWN0ZWRDdXJyZW5jeSkKK3N0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheVNoaXBw
aW5nTWV0aG9kPiBjb252ZXJ0QW5kVmFsaWRhdGUoY29uc3QgUGF5bWVudFNoaXBwaW5nT3B0aW9u
JiBzaGlwcGluZ09wdGlvbiwgY29uc3QgU3RyaW5nJiBleHBlY3RlZEN1cnJlbmN5KQogewogICAg
IGF1dG8gZXhjZXB0aW9uID0gdmFsaWRhdGUoc2hpcHBpbmdPcHRpb24uYW1vdW50LCBleHBlY3Rl
ZEN1cnJlbmN5KTsKICAgICBpZiAoZXhjZXB0aW9uLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICBy
ZXR1cm4gZXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKTsKIAotICAgIEFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCByZXN1bHQ7CisgICAgQXBwbGVQYXlTaGlw
cGluZ01ldGhvZCByZXN1bHQ7CiAgICAgcmVzdWx0LmFtb3VudCA9IHNoaXBwaW5nT3B0aW9uLmFt
b3VudC52YWx1ZTsKICAgICByZXN1bHQubGFiZWwgPSBzaGlwcGluZ09wdGlvbi5sYWJlbDsKICAg
ICByZXN1bHQuaWRlbnRpZmllciA9IHNoaXBwaW5nT3B0aW9uLmlkOwogICAgIHJldHVybiB7IFdU
Rk1vdmUocmVzdWx0KSB9OwogfQogCisjaWYgIUVOQUJMRShBUFBMRV9QQVlfUEFZTUVOVF9ERVRB
SUxTX0RBVEEpCitzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGUoY29uc3QgQXBwbGVQ
YXlEZXRhaWxzVXBkYXRlRGF0YSYpIHsgfQorI2VuZGlmCisKK3N0YXRpYyBFeGNlcHRpb25PcjxB
cHBsZVBheURldGFpbHNVcGRhdGVEYXRhPiBjb252ZXJ0QW5kVmFsaWRhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgUGF5bWVudERldGFpbHNCYXNlJiBkZXRhaWxzKQor
eworICAgIGF1dG8mIGxleGljYWxHbG9iYWxPYmplY3QgPSAqY29udGV4dC5nbG9iYWxPYmplY3Qo
KTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShsZXhpY2FsR2xvYmFsT2Jq
ZWN0LnZtKCkpOworICAgIEpTQzo6SlNWYWx1ZSBkYXRhOworICAgIHsKKyAgICAgICAgSlNDOjpK
U0xvY2tIb2xkZXIgbG9jaygmbGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgICAgIGRhdGEgPSBK
U09OUGFyc2UoJmxleGljYWxHbG9iYWxPYmplY3QsIGRldGFpbHMuc2VyaWFsaXplZERhdGEpOwor
ICAgICAgICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OworICAgIH0KKworICAgIGF1dG8gYXBwbGVQ
YXlEZXRhaWxzVXBkYXRlRGF0YSA9IGNvbnZlcnREaWN0aW9uYXJ5PEFwcGxlUGF5RGV0YWlsc1Vw
ZGF0ZURhdGE+KGxleGljYWxHbG9iYWxPYmplY3QsIFdURk1vdmUoZGF0YSkpOworICAgIGlmIChz
Y29wZS5leGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhj
ZXB0aW9uRXJyb3IgfTsKKyAgICBhdXRvIGV4Y2VwdGlvbiA9IHZhbGlkYXRlKGFwcGxlUGF5RGV0
YWlsc1VwZGF0ZURhdGEpOworICAgIGlmIChleGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCisgICAg
ICAgIHJldHVybiBleGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpOworCisgICAgcmV0dXJuIGFw
cGxlUGF5RGV0YWlsc1VwZGF0ZURhdGE7Cit9CisKIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5
UGF5bWVudEhhbmRsZXI6OmNvbnZlcnREYXRhKEpTQzo6SlNWYWx1ZSBkYXRhKQogewogICAgIGF1
dG8gcmVxdWVzdE9yRXhjZXB0aW9uID0gY29udmVydEFuZFZhbGlkYXRlKCpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIGRhdGEpOwpAQCAtMjM4LDYgKzI3MSwxMCBAQCBzdGF0aWMgdm9pZCBtZXJn
ZVBheW1lbnRPcHRpb25zKGNvbnN0IFBheW1lbnRPcHRpb25zJiBvcHRpb25zLCBBcHBsZVBheVNl
c3Npb25QYQogICAgICAgICByZXF1ZXN0LnNldFNoaXBwaW5nVHlwZShjb252ZXJ0KG9wdGlvbnMu
c2hpcHBpbmdUeXBlKSk7CiB9CiAKKyNpZiAhRU5BQkxFKEFQUExFX1BBWV9QQVlNRU5UX0RFVEFJ
TFNfREFUQSkKK3N0YXRpYyB2b2lkIG1lcmdlKEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
JiwgQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSYmKSB7IH0KKyNlbmRpZiAvLyBFTkFCTEUoQVBQ
TEVfUEFZX1BBWU1FTlRfREVUQUlMU19EQVRBKQorCiBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBh
eVBheW1lbnRIYW5kbGVyOjpzaG93KERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBhdXRvIHZh
bGlkYXRlZFJlcXVlc3QgPSBjb252ZXJ0QW5kVmFsaWRhdGUoZG9jdW1lbnQsIG1fYXBwbGVQYXlS
ZXF1ZXN0LT52ZXJzaW9uLCAqbV9hcHBsZVBheVJlcXVlc3QsIHBheW1lbnRDb29yZGluYXRvcigp
KTsKQEAgLTI3MCw2ICszMDcsMTEgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50
SGFuZGxlcjo6c2hvdyhEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBzaGlwcGlu
Z01ldGhvZHMucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgIHJlcXVlc3Quc2V0U2hpcHBpbmdNZXRo
b2RzKHNoaXBwaW5nTWV0aG9kcy5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKKyAgICBhdXRvIGFw
cGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEgPSBjb252ZXJ0QW5kVmFsaWRhdGUoKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgbV9wYXltZW50UmVxdWVzdC0+cGF5bWVudERldGFpbHMoKSk7CisgICAg
aWYgKGFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJl
dHVybiBhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICBt
ZXJnZShyZXF1ZXN0LCBhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLnJlbGVhc2VSZXR1cm5WYWx1
ZSgpKTsKKwogICAgIGF1dG8gZXhjZXB0aW9uID0gUGF5bWVudFJlcXVlc3RWYWxpZGF0b3I6OnZh
bGlkYXRlKHJlcXVlc3QpOwogICAgIGlmIChleGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCiAgICAg
ICAgIHJldHVybiBleGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpOwpAQCAtMjkwLDExICszMzIs
MTEgQEAgdm9pZCBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjYW5NYWtlUGF5bWVudChEb2N1bWVu
dCYgZG9jdW1lbnQsIEZ1bmN0aW9uPHZvaWQoYm8KICAgICBjb21wbGV0aW9uSGFuZGxlcihwYXlt
ZW50Q29vcmRpbmF0b3IoKS5jYW5NYWtlUGF5bWVudHMoZG9jdW1lbnQpKTsKIH0KIAotRXhjZXB0
aW9uT3I8VmVjdG9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhv
ZD4+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVTaGlwcGluZ01ldGhvZHMoKQorRXhj
ZXB0aW9uT3I8VmVjdG9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+PiBBcHBsZVBheVBheW1lbnRI
YW5kbGVyOjpjb21wdXRlU2hpcHBpbmdNZXRob2RzKCkKIHsKICAgICBhdXRvJiBkZXRhaWxzID0g
bV9wYXltZW50UmVxdWVzdC0+cGF5bWVudERldGFpbHMoKTsKIAotICAgIFZlY3RvcjxBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+IHNoaXBwaW5nT3B0aW9uczsK
KyAgICBWZWN0b3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4gc2hpcHBpbmdPcHRpb25zOwogICAg
IGlmIChkZXRhaWxzLnNoaXBwaW5nT3B0aW9ucykgewogICAgICAgICBhdXRvJiBjdXJyZW5jeSA9
IGRldGFpbHMudG90YWwuYW1vdW50LmN1cnJlbmN5OwogCkBAIC0zMTAsNyArMzUyLDcgQEAgRXhj
ZXB0aW9uT3I8VmVjdG9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01l
dGhvZD4+IEFwcGxlUGF5UGF5bWUKICAgICByZXR1cm4gV1RGTW92ZShzaGlwcGluZ09wdGlvbnMp
OwogfQogCi1FeGNlcHRpb25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxB
bmRMaW5lSXRlbXM+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVUb3RhbEFuZExpbmVJ
dGVtcygpIGNvbnN0CitFeGNlcHRpb25PcjxzdGQ6OnR1cGxlPEFwcGxlUGF5TGluZUl0ZW0sIFZl
Y3RvcjxBcHBsZVBheUxpbmVJdGVtPj4+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVU
b3RhbEFuZExpbmVJdGVtcygpIGNvbnN0CiB7CiAgICAgYXV0byYgZGV0YWlscyA9IG1fcGF5bWVu
dFJlcXVlc3QtPnBheW1lbnREZXRhaWxzKCk7CiAgICAgU3RyaW5nIGN1cnJlbmN5ID0gZGV0YWls
cy50b3RhbC5hbW91bnQuY3VycmVuY3k7CkBAIC0zMjksNyArMzcxLDcgQEAgRXhjZXB0aW9uT3I8
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zPiBBcHBsZVBh
eVBheW1lbnRIYW4KICAgICB9CiAKICAgICBpZiAoIW1fc2VsZWN0ZWRQYXltZW50TWV0aG9kVHlw
ZSkKLSAgICAgICAgcmV0dXJuIEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFu
ZExpbmVJdGVtcyB7IFdURk1vdmUodG90YWwpLCBXVEZNb3ZlKGxpbmVJdGVtcykgfTsKKyAgICAg
ICAgcmV0dXJuIHt7IFdURk1vdmUodG90YWwpLCBXVEZNb3ZlKGxpbmVJdGVtcykgfX07CiAKICAg
ICBpZiAoZGV0YWlscy5tb2RpZmllcnMpIHsKICAgICAgICAgYXV0byYgc2VyaWFsaXplZE1vZGlm
aWVyRGF0YSA9IG1fcGF5bWVudFJlcXVlc3QtPnNlcmlhbGl6ZWRNb2RpZmllckRhdGEoKTsKQEAg
LTM3NiwxOCArNDE4LDE4IEBAIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz4gQXBwbGVQYXlQYXltZW50SGFuCiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICByZXR1cm4gQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5k
TGluZUl0ZW1zIHsgV1RGTW92ZSh0b3RhbCksIFdURk1vdmUobGluZUl0ZW1zKSB9OworICAgIHJl
dHVybiB7eyBXVEZNb3ZlKHRvdGFsKSwgV1RGTW92ZShsaW5lSXRlbXMpIH19OwogfQogCi1zdGF0
aWMgaW5saW5lIHZvaWQgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFN0cmluZyYm
IG1lc3NhZ2UsIE9wdGlvbmFsPFBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkPiBjb250YWN0Rmll
bGQsIFZlY3RvcjxQYXltZW50RXJyb3I+JiBlcnJvcnMpCitzdGF0aWMgaW5saW5lIHZvaWQgYXBw
ZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFN0cmluZyYmIG1lc3NhZ2UsIE9wdGlvbmFs
PEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ+IGNvbnRhY3RGaWVsZCwgVmVjdG9yPFJlZlB0cjxB
cHBsZVBheUVycm9yPj4mIGVycm9ycykKIHsKICAgICBpZiAoIW1lc3NhZ2UuaXNOdWxsKCkpCi0g
ICAgICAgIGVycm9ycy5hcHBlbmQoeyBQYXltZW50RXJyb3I6OkNvZGU6OlNoaXBwaW5nQ29udGFj
dEludmFsaWQsIFdURk1vdmUobWVzc2FnZSksIFdURk1vdmUoY29udGFjdEZpZWxkKSB9KTsKKyAg
ICAgICAgZXJyb3JzLmFwcGVuZChBcHBsZVBheUVycm9yOjpjcmVhdGUoQXBwbGVQYXlFcnJvckNv
ZGU6OlNoaXBwaW5nQ29udGFjdEludmFsaWQsIFdURk1vdmUoY29udGFjdEZpZWxkKSwgV1RGTW92
ZShtZXNzYWdlKSkpOwogfQogCi1WZWN0b3I8UGF5bWVudEVycm9yPiBBcHBsZVBheVBheW1lbnRI
YW5kbGVyOjpjb21wdXRlRXJyb3JzKFN0cmluZyYmIGVycm9yLCBBZGRyZXNzRXJyb3JzJiYgYWRk
cmVzc0Vycm9ycywgUGF5ZXJFcnJvckZpZWxkcyYmIHBheWVyRXJyb3JzLCBKU0M6OkpTT2JqZWN0
KiBwYXltZW50TWV0aG9kRXJyb3JzKSBjb25zdAorVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9y
Pj4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcHV0ZUVycm9ycyhTdHJpbmcmJiBlcnJvciwg
QWRkcmVzc0Vycm9ycyYmIGFkZHJlc3NFcnJvcnMsIFBheWVyRXJyb3JGaWVsZHMmJiBwYXllckVy
cm9ycywgSlNDOjpKU09iamVjdCogcGF5bWVudE1ldGhvZEVycm9ycykgY29uc3QKIHsKLSAgICBW
ZWN0b3I8UGF5bWVudEVycm9yPiBlcnJvcnM7CisgICAgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVy
cm9yPj4gZXJyb3JzOwogCiAgICAgYXV0byYgZGV0YWlscyA9IG1fcGF5bWVudFJlcXVlc3QtPnBh
eW1lbnREZXRhaWxzKCk7CiAKQEAgLTQwNiwzOSArNDQ4LDM3IEBAIFZlY3RvcjxQYXltZW50RXJy
b3I+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVFcnJvcnMoU3RyaW5nJiYgZXJyb3Is
IEFkZHJlCiAgICAgcmV0dXJuIGVycm9yczsKIH0KIAotdm9pZCBBcHBsZVBheVBheW1lbnRIYW5k
bGVyOjpjb21wdXRlQWRkcmVzc0Vycm9ycyhTdHJpbmcmJiBlcnJvciwgQWRkcmVzc0Vycm9ycyYm
IGFkZHJlc3NFcnJvcnMsIFZlY3RvcjxQYXltZW50RXJyb3I+JiBlcnJvcnMpIGNvbnN0Cit2b2lk
IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVBZGRyZXNzRXJyb3JzKFN0cmluZyYmIGVy
cm9yLCBBZGRyZXNzRXJyb3JzJiYgYWRkcmVzc0Vycm9ycywgVmVjdG9yPFJlZlB0cjxBcHBsZVBh
eUVycm9yPj4mIGVycm9ycykgY29uc3QKIHsKICAgICBpZiAoIW1fcGF5bWVudFJlcXVlc3QtPnBh
eW1lbnRPcHRpb25zKCkucmVxdWVzdFNoaXBwaW5nKQogICAgICAgICByZXR1cm47CiAKLSAgICB1
c2luZyBDb250YWN0RmllbGQgPSBQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDsKICAgICBhcHBl
bmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShlcnJvciksIFdURjo6bnVsbG9w
dCwgZXJyb3JzKTsKLSAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92
ZShhZGRyZXNzRXJyb3JzLmFkZHJlc3NMaW5lKSwgQ29udGFjdEZpZWxkOjpBZGRyZXNzTGluZXMs
IGVycm9ycyk7Ci0gICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUo
YWRkcmVzc0Vycm9ycy5jaXR5KSwgQ29udGFjdEZpZWxkOjpMb2NhbGl0eSwgZXJyb3JzKTsKLSAg
ICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShhZGRyZXNzRXJyb3Jz
LmNvdW50cnkpLCBDb250YWN0RmllbGQ6OkNvdW50cnksIGVycm9ycyk7Ci0gICAgYXBwZW5kU2hp
cHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRkcmVzc0Vycm9ycy5kZXBlbmRlbnRM
b2NhbGl0eSksIENvbnRhY3RGaWVsZDo6U3ViTG9jYWxpdHksIGVycm9ycyk7Ci0gICAgYXBwZW5k
U2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRkcmVzc0Vycm9ycy5waG9uZSks
IENvbnRhY3RGaWVsZDo6UGhvbmVOdW1iZXIsIGVycm9ycyk7Ci0gICAgYXBwZW5kU2hpcHBpbmdD
b250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRkcmVzc0Vycm9ycy5wb3N0YWxDb2RlKSwgQ29u
dGFjdEZpZWxkOjpQb3N0YWxDb2RlLCBlcnJvcnMpOwotICAgIGFwcGVuZFNoaXBwaW5nQ29udGFj
dEludmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMucmVjaXBpZW50KSwgQ29udGFjdEZp
ZWxkOjpOYW1lLCBlcnJvcnMpOwotICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJv
cihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMucmVnaW9uKSwgQ29udGFjdEZpZWxkOjpBZG1pbmlzdHJh
dGl2ZUFyZWEsIGVycm9ycyk7CisgICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9y
KFdURk1vdmUoYWRkcmVzc0Vycm9ycy5hZGRyZXNzTGluZSksIEFwcGxlUGF5RXJyb3JDb250YWN0
RmllbGQ6OkFkZHJlc3NMaW5lcywgZXJyb3JzKTsKKyAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJ
bnZhbGlkRXJyb3IoV1RGTW92ZShhZGRyZXNzRXJyb3JzLmNpdHkpLCBBcHBsZVBheUVycm9yQ29u
dGFjdEZpZWxkOjpMb2NhbGl0eSwgZXJyb3JzKTsKKyAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJ
bnZhbGlkRXJyb3IoV1RGTW92ZShhZGRyZXNzRXJyb3JzLmNvdW50cnkpLCBBcHBsZVBheUVycm9y
Q29udGFjdEZpZWxkOjpDb3VudHJ5LCBlcnJvcnMpOworICAgIGFwcGVuZFNoaXBwaW5nQ29udGFj
dEludmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMuZGVwZW5kZW50TG9jYWxpdHkpLCBB
cHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpTdWJMb2NhbGl0eSwgZXJyb3JzKTsKKyAgICBhcHBl
bmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShhZGRyZXNzRXJyb3JzLnBob25l
KSwgQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UGhvbmVOdW1iZXIsIGVycm9ycyk7CisgICAg
YXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRkcmVzc0Vycm9ycy5w
b3N0YWxDb2RlKSwgQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UG9zdGFsQ29kZSwgZXJyb3Jz
KTsKKyAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShhZGRyZXNz
RXJyb3JzLnJlY2lwaWVudCksIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6Ok5hbWUsIGVycm9y
cyk7CisgICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRkcmVz
c0Vycm9ycy5yZWdpb24pLCBBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpBZG1pbmlzdHJhdGl2
ZUFyZWEsIGVycm9ycyk7CiB9CiAKLXZvaWQgQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcHV0
ZVBheWVyRXJyb3JzKFBheWVyRXJyb3JGaWVsZHMmJiBwYXllckVycm9ycywgVmVjdG9yPFBheW1l
bnRFcnJvcj4mIGVycm9ycykgY29uc3QKK3ZvaWQgQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29t
cHV0ZVBheWVyRXJyb3JzKFBheWVyRXJyb3JGaWVsZHMmJiBwYXllckVycm9ycywgVmVjdG9yPFJl
ZlB0cjxBcHBsZVBheUVycm9yPj4mIGVycm9ycykgY29uc3QKIHsKICAgICBhdXRvJiBvcHRpb25z
ID0gbV9wYXltZW50UmVxdWVzdC0+cGF5bWVudE9wdGlvbnMoKTsKLSAgICB1c2luZyBDb250YWN0
RmllbGQgPSBQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDsKIAogICAgIGlmIChvcHRpb25zLnJl
cXVlc3RQYXllck5hbWUpCi0gICAgICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJv
cihXVEZNb3ZlKHBheWVyRXJyb3JzLm5hbWUpLCBDb250YWN0RmllbGQ6Ok5hbWUsIGVycm9ycyk7
CisgICAgICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKHBheWVy
RXJyb3JzLm5hbWUpLCBBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpOYW1lLCBlcnJvcnMpOwog
CiAgICAgaWYgKG9wdGlvbnMucmVxdWVzdFBheWVyRW1haWwpCi0gICAgICAgIGFwcGVuZFNoaXBw
aW5nQ29udGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKHBheWVyRXJyb3JzLmVtYWlsKSwgQ29udGFj
dEZpZWxkOjpFbWFpbEFkZHJlc3MsIGVycm9ycyk7CisgICAgICAgIGFwcGVuZFNoaXBwaW5nQ29u
dGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKHBheWVyRXJyb3JzLmVtYWlsKSwgQXBwbGVQYXlFcnJv
ckNvbnRhY3RGaWVsZDo6RW1haWxBZGRyZXNzLCBlcnJvcnMpOwogCiAgICAgaWYgKG9wdGlvbnMu
cmVxdWVzdFBheWVyUGhvbmUpCi0gICAgICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRF
cnJvcihXVEZNb3ZlKHBheWVyRXJyb3JzLnBob25lKSwgQ29udGFjdEZpZWxkOjpQaG9uZU51bWJl
ciwgZXJyb3JzKTsKKyAgICAgICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdU
Rk1vdmUocGF5ZXJFcnJvcnMucGhvbmUpLCBBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpQaG9u
ZU51bWJlciwgZXJyb3JzKTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50
SGFuZGxlcjo6Y29tcHV0ZVBheW1lbnRNZXRob2RFcnJvcnMoSlNDOjpKU09iamVjdCogcGF5bWVu
dE1ldGhvZEVycm9ycywgVmVjdG9yPFBheW1lbnRFcnJvcj4mIGVycm9ycykgY29uc3QKK0V4Y2Vw
dGlvbk9yPHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVQYXltZW50TWV0aG9k
RXJyb3JzKEpTQzo6SlNPYmplY3QqIHBheW1lbnRNZXRob2RFcnJvcnMsIFZlY3RvcjxSZWZQdHI8
QXBwbGVQYXlFcnJvcj4+JiBlcnJvcnMpIGNvbnN0CiB7CiAgICAgaWYgKCFwYXltZW50TWV0aG9k
RXJyb3JzKQogICAgICAgICByZXR1cm4geyB9OwpAQCAtNDQ5LDkgKzQ4OSw5IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVQYXltZW50TWV0aG9kRXJy
b3JzKEpTQzo6SlNPYmplCiAgICAgaWYgKHRocm93U2NvcGUuZXhjZXB0aW9uKCkpCiAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH07CiAKLSAgICBmb3Ig
KGF1dG8mIGFwcGxlUGF5RXJyb3IgOiBhcHBsZVBheUVycm9ycykgeworICAgIGZvciAoYXV0byYm
IGFwcGxlUGF5RXJyb3IgOiBXVEZNb3ZlKGFwcGxlUGF5RXJyb3JzKSkgewogICAgICAgICBpZiAo
YXBwbGVQYXlFcnJvcikKLSAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoeyBhcHBsZVBheUVycm9y
LT5jb2RlKCksIGFwcGxlUGF5RXJyb3ItPm1lc3NhZ2UoKSwgYXBwbGVQYXlFcnJvci0+Y29udGFj
dEZpZWxkKCkgfSk7CisgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKFdURk1vdmUoYXBwbGVQYXlF
cnJvcikpOwogICAgIH0KIAogICAgIHJldHVybiB7IH07CkBAIC00OTIsMTIgKzUzMiwxNiBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjptZXJjaGFudFZhbGlkYXRp
b25Db21wbGV0ZWQoSlNDOjpKU1ZhbAogICAgIHJldHVybiB7IH07CiB9CiAKLUV4Y2VwdGlvbk9y
PHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnNoaXBwaW5nQWRkcmVzc1VwZGF0ZWQoVmVj
dG9yPFBheW1lbnRFcnJvcj4mJiBlcnJvcnMpCisjaWYgIUVOQUJMRShBUFBMRV9QQVlfUEFZTUVO
VF9ERVRBSUxTX0RBVEEpCitzdGF0aWMgdm9pZCBtZXJnZShBcHBsZVBheURldGFpbHNVcGRhdGVC
YXNlJiwgQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSYmKSB7IH0KKyNlbmRpZiAvLyBFTkFCTEUo
QVBQTEVfUEFZX1BBWU1FTlRfREVUQUlMU19EQVRBKQorCitFeGNlcHRpb25Pcjx2b2lkPiBBcHBs
ZVBheVBheW1lbnRIYW5kbGVyOjpzaGlwcGluZ0FkZHJlc3NVcGRhdGVkKFZlY3RvcjxSZWZQdHI8
QXBwbGVQYXlFcnJvcj4+JiYgZXJyb3JzKQogewogICAgIEFTU0VSVChtX2lzVXBkYXRpbmcpOwog
ICAgIG1faXNVcGRhdGluZyA9IGZhbHNlOwogCi0gICAgU2hpcHBpbmdDb250YWN0VXBkYXRlIHVw
ZGF0ZTsKKyAgICBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZSB1cGRhdGU7CiAgICAgdXBk
YXRlLmVycm9ycyA9IFdURk1vdmUoZXJyb3JzKTsKIAogICAgIGF1dG8gbmV3U2hpcHBpbmdNZXRo
b2RzID0gY29tcHV0ZVNoaXBwaW5nTWV0aG9kcygpOwpAQCAtNTA4LDcgKzU1MiwxMiBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpzaGlwcGluZ0FkZHJlc3NVcGRh
dGVkKFZlY3RvcjxQYXltZW50RQogICAgIGF1dG8gbmV3VG90YWxBbmRMaW5lSXRlbXMgPSBjb21w
dXRlVG90YWxBbmRMaW5lSXRlbXMoKTsKICAgICBpZiAobmV3VG90YWxBbmRMaW5lSXRlbXMuaGFz
RXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBuZXdUb3RhbEFuZExpbmVJdGVtcy5yZWxlYXNl
RXhjZXB0aW9uKCk7Ci0gICAgdXBkYXRlLm5ld1RvdGFsQW5kTGluZUl0ZW1zID0gbmV3VG90YWxB
bmRMaW5lSXRlbXMucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgc3RkOjp0aWUodXBkYXRlLm5l
d1RvdGFsLCB1cGRhdGUubmV3TGluZUl0ZW1zKSA9IG5ld1RvdGFsQW5kTGluZUl0ZW1zLnJlbGVh
c2VSZXR1cm5WYWx1ZSgpOworCisgICAgYXV0byBhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhID0g
Y29udmVydEFuZFZhbGlkYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fcGF5bWVudFJl
cXVlc3QtPnBheW1lbnREZXRhaWxzKCkpOworICAgIGlmIChhcHBsZVBheURldGFpbHNVcGRhdGVE
YXRhLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gYXBwbGVQYXlEZXRhaWxzVXBkYXRl
RGF0YS5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgbWVyZ2UodXBkYXRlLCBhcHBsZVBheURldGFp
bHNVcGRhdGVEYXRhLnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAogICAgIHBheW1lbnRDb29yZGlu
YXRvcigpLmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKFdURk1vdmUodXBkYXRlKSk7
CiAgICAgcmV0dXJuIHsgfTsKQEAgLTUxOSwxMiArNTY4LDE3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnNoaXBwaW5nT3B0aW9uVXBkYXRlZCgpCiAgICAgQVNT
RVJUKG1faXNVcGRhdGluZyk7CiAgICAgbV9pc1VwZGF0aW5nID0gZmFsc2U7CiAKLSAgICBTaGlw
cGluZ01ldGhvZFVwZGF0ZSB1cGRhdGU7CisgICAgQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0
ZSB1cGRhdGU7CiAKICAgICBhdXRvIG5ld1RvdGFsQW5kTGluZUl0ZW1zID0gY29tcHV0ZVRvdGFs
QW5kTGluZUl0ZW1zKCk7CiAgICAgaWYgKG5ld1RvdGFsQW5kTGluZUl0ZW1zLmhhc0V4Y2VwdGlv
bigpKQogICAgICAgICByZXR1cm4gbmV3VG90YWxBbmRMaW5lSXRlbXMucmVsZWFzZUV4Y2VwdGlv
bigpOwotICAgIHVwZGF0ZS5uZXdUb3RhbEFuZExpbmVJdGVtcyA9IG5ld1RvdGFsQW5kTGluZUl0
ZW1zLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgIHN0ZDo6dGllKHVwZGF0ZS5uZXdUb3RhbCwg
dXBkYXRlLm5ld0xpbmVJdGVtcykgPSBuZXdUb3RhbEFuZExpbmVJdGVtcy5yZWxlYXNlUmV0dXJu
VmFsdWUoKTsKKworICAgIGF1dG8gYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSA9IGNvbnZlcnRB
bmRWYWxpZGF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3BheW1lbnRSZXF1ZXN0LT5w
YXltZW50RGV0YWlscygpKTsKKyAgICBpZiAoYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oYXNF
eGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEucmVs
ZWFzZUV4Y2VwdGlvbigpOworICAgIG1lcmdlKHVwZGF0ZSwgYXBwbGVQYXlEZXRhaWxzVXBkYXRl
RGF0YS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKICAgICBwYXltZW50Q29vcmRpbmF0b3IoKS5j
b21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKFdURk1vdmUodXBkYXRlKSk7CiAgICAgcmV0
dXJuIHsgfTsKQEAgLTUzNSwxMSArNTg5LDE5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5
UGF5bWVudEhhbmRsZXI6OnBheW1lbnRNZXRob2RVcGRhdGVkKCkKICAgICBBU1NFUlQobV9pc1Vw
ZGF0aW5nKTsKICAgICBtX2lzVXBkYXRpbmcgPSBmYWxzZTsKIAorICAgIEFwcGxlUGF5UGF5bWVu
dE1ldGhvZFVwZGF0ZSB1cGRhdGU7CisKICAgICBhdXRvIG5ld1RvdGFsQW5kTGluZUl0ZW1zID0g
Y29tcHV0ZVRvdGFsQW5kTGluZUl0ZW1zKCk7CiAgICAgaWYgKG5ld1RvdGFsQW5kTGluZUl0ZW1z
Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gbmV3VG90YWxBbmRMaW5lSXRlbXMucmVs
ZWFzZUV4Y2VwdGlvbigpOworICAgIHN0ZDo6dGllKHVwZGF0ZS5uZXdUb3RhbCwgdXBkYXRlLm5l
d0xpbmVJdGVtcykgPSBuZXdUb3RhbEFuZExpbmVJdGVtcy5yZWxlYXNlUmV0dXJuVmFsdWUoKTsK
IAotICAgIHBheW1lbnRDb29yZGluYXRvcigpLmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlv
bihQYXltZW50TWV0aG9kVXBkYXRlIHsgbmV3VG90YWxBbmRMaW5lSXRlbXMucmVsZWFzZVJldHVy
blZhbHVlKCkgfSk7CisgICAgYXV0byBhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhID0gY29udmVy
dEFuZFZhbGlkYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fcGF5bWVudFJlcXVlc3Qt
PnBheW1lbnREZXRhaWxzKCkpOworICAgIGlmIChhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmhh
c0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5y
ZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgbWVyZ2UodXBkYXRlLCBhcHBsZVBheURldGFpbHNVcGRh
dGVEYXRhLnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKKworICAgIHBheW1lbnRDb29yZGluYXRvcigp
LmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihXVEZNb3ZlKHVwZGF0ZSkpOwogICAgIHJl
dHVybiB7IH07CiB9CiAKQEAgLTU2OCw3ICs2MzAsNyBAQCB2b2lkIEFwcGxlUGF5UGF5bWVudEhh
bmRsZXI6OmNvbXBsZXRlKE9wdGlvbmFsPFBheW1lbnRDb21wbGV0ZT4mJiByZXN1bHQpCiAKIEV4
Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnJldHJ5KFBheW1lbnRWYWxp
ZGF0aW9uRXJyb3JzJiYgdmFsaWRhdGlvbkVycm9ycykKIHsKLSAgICBWZWN0b3I8UGF5bWVudEVy
cm9yPiBlcnJvcnM7CisgICAgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4gZXJyb3JzOwog
CiAgICAgY29tcHV0ZUFkZHJlc3NFcnJvcnMoV1RGTW92ZSh2YWxpZGF0aW9uRXJyb3JzLmVycm9y
KSwgV1RGTW92ZSh2YWxpZGF0aW9uRXJyb3JzLnNoaXBwaW5nQWRkcmVzcyksIGVycm9ycyk7CiAg
ICAgY29tcHV0ZVBheWVyRXJyb3JzKFdURk1vdmUodmFsaWRhdGlvbkVycm9ycy5wYXllciksIGVy
cm9ycyk7CkBAIC01NzksNyArNjQxLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXlt
ZW50SGFuZGxlcjo6cmV0cnkoUGF5bWVudFZhbGlkYXRpb25FcnJvcnMmJiB2YWxpZGEKIAogICAg
IC8vIEVuc3VyZSB0aGVyZSBpcyBhbHdheXMgYXQgbGVhc3Qgb25lIGVycm9yIHRvIGF2b2lkIGhh
dmluZyBhIGZpbmFsIHJlc3VsdC4KICAgICBpZiAoZXJyb3JzLmlzRW1wdHkoKSkKLSAgICAgICAg
ZXJyb3JzLmFwcGVuZCh7IFBheW1lbnRFcnJvcjo6Q29kZTo6VW5rbm93biwgeyB9LCBXVEY6Om51
bGxvcHQgfSk7CisgICAgICAgIGVycm9ycy5hcHBlbmQoQXBwbGVQYXlFcnJvcjo6Y3JlYXRlKEFw
cGxlUGF5RXJyb3JDb2RlOjpVbmtub3duLCBXVEY6Om51bGxvcHQsIG51bGxTdHJpbmcoKSkpOwog
CiAgICAgUGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQgYXV0aG9yaXphdGlvblJlc3VsdCB7IFBh
eW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpGYWlsdXJlLCBXVEZNb3ZlKGVycm9ycykgfTsKICAg
ICBBU1NFUlQoIWlzRmluYWxTdGF0ZVJlc3VsdChhdXRob3JpemF0aW9uUmVzdWx0KSk7CkBAIC02
MjMsNyArNjg1LDcgQEAgdm9pZCBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpkaWRBdXRob3JpemVQ
YXltZW50KGNvbnN0IFBheW1lbnQmIHBheW1lbnQpCiAgICAgbV9wYXltZW50UmVxdWVzdC0+YWNj
ZXB0KFdURjo6Z2V0PFVSTD4obV9pZGVudGlmaWVyKS5zdHJpbmcoKSwgV1RGTW92ZShkZXRhaWxz
RnVuY3Rpb24pLCBjb252ZXJ0KHNoaXBwaW5nQ29udGFjdCksIHNoaXBwaW5nQ29udGFjdC5sb2Nh
bGl6ZWROYW1lLCBzaGlwcGluZ0NvbnRhY3QuZW1haWxBZGRyZXNzLCBzaGlwcGluZ0NvbnRhY3Qu
cGhvbmVOdW1iZXIpOwogfQogCi12b2lkIEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmRpZFNlbGVj
dFNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlw
cGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCit2b2lkIEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6
OmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2QmIHNo
aXBwaW5nTWV0aG9kKQogewogICAgIEFTU0VSVCghbV9pc1VwZGF0aW5nKTsKICAgICBtX2lzVXBk
YXRpbmcgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIu
aAppbmRleCA4OWM3NTdmZGZiNGQuLjFiOTkyNjYyMDA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5k
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVz
dC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmgKQEAgLTM0LDEwICszNCwxMSBAQAogI2luY2x1ZGUg
IlBheW1lbnRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUGF5bWVudFNlc3Npb24uaCIKICNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEFwcGxlUGF5RXJyb3I7
CiBjbGFzcyBQYXltZW50Q29vcmRpbmF0b3I7CiAKIGNsYXNzIEFwcGxlUGF5UGF5bWVudEhhbmRs
ZXIgZmluYWwgOiBwdWJsaWMgUGF5bWVudEhhbmRsZXIsIHB1YmxpYyBQYXltZW50U2Vzc2lvbiwg
cHJpdmF0ZSBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CkBAIC01MywxNCArNTQsMTQgQEAg
cHJpdmF0ZToKICAgICBEb2N1bWVudCYgZG9jdW1lbnQoKSBjb25zdDsKICAgICBQYXltZW50Q29v
cmRpbmF0b3ImIHBheW1lbnRDb29yZGluYXRvcigpIGNvbnN0OwogCi0gICAgRXhjZXB0aW9uT3I8
VmVjdG9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4+IGNv
bXB1dGVTaGlwcGluZ01ldGhvZHMoKTsKLSAgICBFeGNlcHRpb25PcjxBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXM+IGNvbXB1dGVUb3RhbEFuZExpbmVJdGVt
cygpIGNvbnN0OwotICAgIFZlY3RvcjxQYXltZW50RXJyb3I+IGNvbXB1dGVFcnJvcnMoU3RyaW5n
JiYgZXJyb3IsIEFkZHJlc3NFcnJvcnMmJiwgUGF5ZXJFcnJvckZpZWxkcyYmLCBKU0M6OkpTT2Jq
ZWN0KiBwYXltZW50TWV0aG9kRXJyb3JzKSBjb25zdDsKLSAgICB2b2lkIGNvbXB1dGVBZGRyZXNz
RXJyb3JzKFN0cmluZyYmIGVycm9yLCBBZGRyZXNzRXJyb3JzJiYsIFZlY3RvcjxQYXltZW50RXJy
b3I+JikgY29uc3Q7Ci0gICAgdm9pZCBjb21wdXRlUGF5ZXJFcnJvcnMoUGF5ZXJFcnJvckZpZWxk
cyYmLCBWZWN0b3I8UGF5bWVudEVycm9yPiYpIGNvbnN0OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IGNvbXB1dGVQYXltZW50TWV0aG9kRXJyb3JzKEpTQzo6SlNPYmplY3QqIHBheW1lbnRNZXRob2RF
cnJvcnMsIFZlY3RvcjxQYXltZW50RXJyb3I+JikgY29uc3Q7CisgICAgRXhjZXB0aW9uT3I8VmVj
dG9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+PiBjb21wdXRlU2hpcHBpbmdNZXRob2RzKCk7Cisg
ICAgRXhjZXB0aW9uT3I8c3RkOjp0dXBsZTxBcHBsZVBheUxpbmVJdGVtLCBWZWN0b3I8QXBwbGVQ
YXlMaW5lSXRlbT4+PiBjb21wdXRlVG90YWxBbmRMaW5lSXRlbXMoKSBjb25zdDsKKyAgICBWZWN0
b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiBjb21wdXRlRXJyb3JzKFN0cmluZyYmIGVycm9yLCBB
ZGRyZXNzRXJyb3JzJiYsIFBheWVyRXJyb3JGaWVsZHMmJiwgSlNDOjpKU09iamVjdCogcGF5bWVu
dE1ldGhvZEVycm9ycykgY29uc3Q7CisgICAgdm9pZCBjb21wdXRlQWRkcmVzc0Vycm9ycyhTdHJp
bmcmJiBlcnJvciwgQWRkcmVzc0Vycm9ycyYmLCBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+
PiYpIGNvbnN0OworICAgIHZvaWQgY29tcHV0ZVBheWVyRXJyb3JzKFBheWVyRXJyb3JGaWVsZHMm
JiwgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4mKSBjb25zdDsKKyAgICBFeGNlcHRpb25P
cjx2b2lkPiBjb21wdXRlUGF5bWVudE1ldGhvZEVycm9ycyhKU0M6OkpTT2JqZWN0KiBwYXltZW50
TWV0aG9kRXJyb3JzLCBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYpIGNvbnN0OwogCi0g
ICAgRXhjZXB0aW9uT3I8dm9pZD4gc2hpcHBpbmdBZGRyZXNzVXBkYXRlZChWZWN0b3I8UGF5bWVu
dEVycm9yPiYmIGVycm9ycyk7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2hpcHBpbmdBZGRyZXNz
VXBkYXRlZChWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYmIGVycm9ycyk7CiAgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gc2hpcHBpbmdPcHRpb25VcGRhdGVkKCk7CiAgICAgRXhjZXB0aW9uT3I8
dm9pZD4gcGF5bWVudE1ldGhvZFVwZGF0ZWQoKTsKIApAQCAtNzgsNyArNzksNyBAQCBwcml2YXRl
OgogICAgIHVuc2lnbmVkIHZlcnNpb24oKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHZhbGlkYXRl
TWVyY2hhbnQoVVJMJiYpIGZpbmFsOwogICAgIHZvaWQgZGlkQXV0aG9yaXplUGF5bWVudChjb25z
dCBQYXltZW50JikgZmluYWw7Ci0gICAgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25z
dCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKSBmaW5hbDsK
KyAgICB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdN
ZXRob2QmKSBmaW5hbDsKICAgICB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChjb25zdCBQ
YXltZW50Q29udGFjdCYpIGZpbmFsOwogICAgIHZvaWQgZGlkU2VsZWN0UGF5bWVudE1ldGhvZChj
b25zdCBQYXltZW50TWV0aG9kJikgZmluYWw7CiAgICAgdm9pZCBkaWRDYW5jZWxQYXltZW50U2Vz
c2lvbihQYXltZW50U2Vzc2lvbkVycm9yJiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50RGV0YWlsc0Jhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudERldGFpbHNCYXNlLmgKaW5k
ZXggOTQyMmQ0MjAxMzRhLi45MGY4N2QyMDYxZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudERldGFpbHNCYXNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50RGV0YWlsc0Jhc2UuaApAQCAt
MzAsNyArMzAsMTEgQEAKICNpbmNsdWRlICJQYXltZW50RGV0YWlsc01vZGlmaWVyLmgiCiAjaW5j
bHVkZSAiUGF5bWVudEl0ZW0uaCIKICNpbmNsdWRlICJQYXltZW50U2hpcHBpbmdPcHRpb24uaCIK
KyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09iamVjdC5oPgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1N0cm9uZy5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC0zOCw2ICs0MiwxMCBAQCBzdHJ1Y3QgUGF5bWVudERldGFpbHNCYXNl
IHsKICAgICBPcHRpb25hbDxWZWN0b3I8UGF5bWVudEl0ZW0+PiBkaXNwbGF5SXRlbXM7CiAgICAg
T3B0aW9uYWw8VmVjdG9yPFBheW1lbnRTaGlwcGluZ09wdGlvbj4+IHNoaXBwaW5nT3B0aW9uczsK
ICAgICBPcHRpb25hbDxWZWN0b3I8UGF5bWVudERldGFpbHNNb2RpZmllcj4+IG1vZGlmaWVyczsK
KyAgICBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiBkYXRhOworCisgICAgLy8gTm90IGZyb20g
dGhlIElETC4gU2V0IGJ5IGBkYXRhYCB3aGVuIHRoaXMgaXMgdmFsaWRhdGVkIGJ5IGBQYXltZW50
UmVxdWVzdGAuCisgICAgU3RyaW5nIHNlcmlhbGl6ZWREYXRhOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50RGV0YWlsc0Jhc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXlt
ZW50cmVxdWVzdC9QYXltZW50RGV0YWlsc0Jhc2UuaWRsCmluZGV4IDQ0OWUzZWU5OGQyOS4uZDgw
YzQ5ZDkyMDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1
ZXN0L1BheW1lbnREZXRhaWxzQmFzZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
YXltZW50cmVxdWVzdC9QYXltZW50RGV0YWlsc0Jhc2UuaWRsCkBAIC0yOSw0ICsyOSw1IEBACiAg
ICAgc2VxdWVuY2U8UGF5bWVudEl0ZW0+IGRpc3BsYXlJdGVtczsKICAgICBzZXF1ZW5jZTxQYXlt
ZW50U2hpcHBpbmdPcHRpb24+IHNoaXBwaW5nT3B0aW9uczsKICAgICBzZXF1ZW5jZTxQYXltZW50
RGV0YWlsc01vZGlmaWVyPiBtb2RpZmllcnM7CisgICAgb2JqZWN0IGRhdGE7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVz
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1
ZXN0LmNwcAppbmRleCBlZTBkM2FhZWI2N2YuLjgxYjU1MzQ0ZmE5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5j
cHAKQEAgLTM0NSw2ICszNDUsMTQgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHN0ZDo6dHVwbGU8U3Ry
aW5nLCBWZWN0b3I8U3RyaW5nPj4+IGNoZWNrQW5kQ2Fub25pY2FsaXplRGV0YWkKICAgICB9IGVs
c2UgaWYgKGlzVXBkYXRlID09IElzVXBkYXRlOjpObykKICAgICAgICAgZGV0YWlscy5tb2RpZmll
cnMgPSB7IHsgfSB9OwogCisgICAgaWYgKGRldGFpbHMuZGF0YSkgeworICAgICAgICBhdXRvIGRh
dGFSZXN1bHQgPSBjaGVja0FuZENhbm9uaWNhbGl6ZURhdGEoY29udGV4dCwgZGV0YWlscyk7Cisg
ICAgICAgIGlmIChkYXRhUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJu
IGRhdGFSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOworCisgICAgICAgIGRldGFpbHMuc2VyaWFs
aXplZERhdGEgPSBkYXRhUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgIH0KKwogICAg
IHJldHVybiBzdGQ6Om1ha2VfdHVwbGUoV1RGTW92ZShzZWxlY3RlZFNoaXBwaW5nT3B0aW9uKSwg
V1RGTW92ZShzZXJpYWxpemVkTW9kaWZpZXJEYXRhKSk7CiB9CiAKQEAgLTczNiw2ICs3NDQsOCBA
QCB2b2lkIFBheW1lbnRSZXF1ZXN0OjpzZXR0bGVEZXRhaWxzUHJvbWlzZShVcGRhdGVSZWFzb24g
cmVhc29uKQogICAgICAgICBtX2RldGFpbHMubW9kaWZpZXJzID0gV1RGTW92ZSgqZGV0YWlsc1Vw
ZGF0ZS5tb2RpZmllcnMpOwogICAgICAgICBtX3NlcmlhbGl6ZWRNb2RpZmllckRhdGEgPSBXVEZN
b3ZlKHN0ZDo6Z2V0PDE+KHNoaXBwaW5nT3B0aW9uQW5kTW9kaWZpZXJEYXRhKSk7CiAgICAgfQor
ICAgIGlmICghZGV0YWlsc1VwZGF0ZS5zZXJpYWxpemVkRGF0YS5pc0VtcHR5KCkpCisgICAgICAg
IG1fZGV0YWlscy5zZXJpYWxpemVkRGF0YSA9IFdURk1vdmUoZGV0YWlsc1VwZGF0ZS5zZXJpYWxp
emVkRGF0YSk7CiAKICAgICBhdXRvIHJlc3VsdCA9IGFjdGl2ZVBheW1lbnRIYW5kbGVyKCktPmRl
dGFpbHNVcGRhdGVkKHJlYXNvbiwgV1RGTW92ZShkZXRhaWxzVXBkYXRlLmVycm9yKSwgV1RGTW92
ZShkZXRhaWxzVXBkYXRlLnNoaXBwaW5nQWRkcmVzc0Vycm9ycyksIFdURk1vdmUoZGV0YWlsc1Vw
ZGF0ZS5wYXllckVycm9ycyksIGRldGFpbHNVcGRhdGUucGF5bWVudE1ldGhvZEVycm9ycy5nZXQo
KSk7CiAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5j
bWFrZQppbmRleCBhOGZhMDcyYjU4YTAuLmQ2ZTlkMTQ5ZDJkZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1N
YWMuY21ha2UKQEAgLTQzNSw3ICs0MzUsNiBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMK
ICkKIAogbGlzdChBUFBFTkQgV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCi0gICAg
TW9kdWxlcy9hcHBsZXBheS9QYXltZW50TWV0aG9kVXBkYXRlLmgKICAgICBNb2R1bGVzL2FwcGxl
cGF5L1BheW1lbnRTZXNzaW9uRXJyb3IuaAogICAgIE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFN1
bW1hcnlJdGVtcy5oCiAKQEAgLTYxNiw2ICs2MTUsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKIGxpc3QoQVBQRU5EIFdlYkNvcmVfSURMX0ZJTEVTCiAg
ICAgTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNhbmNlbEV2ZW50LmlkbAogICAgIE1vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlDb250YWN0RmllbGQuaWRsCisgICAgTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmlkbAorICAgIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlEZXRhaWxzVXBkYXRlRGF0YS5pZGwKICAgICBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJy
b3IuaWRsCiAgICAgTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29kZS5pZGwKICAgICBN
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaWRsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dAppbmRleCBiZjZhZTE2MTg3YWIuLjhjODI4NDkxMmIyYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0CkBAIC0yMyw2ICsyMyw4IEBACiAKIEpTQXBwbGVQYXlDYW5jZWxFdmVudC5j
cHAKIEpTQXBwbGVQYXlDb250YWN0RmllbGQuY3BwCitKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJh
c2UuY3BwCitKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuY3BwCiBKU0FwcGxlUGF5RXJyb3Iu
Y3BwCiBKU0FwcGxlUGF5RXJyb3JDb2RlLmNwcAogSlNBcHBsZVBheUVycm9yQ29udGFjdEZpZWxk
LmNwcApAQCAtNjIsNyArNjQsNiBAQCBKU0FwcGxlUGF5VmFsaWRhdGVNZXJjaGFudEV2ZW50LmNw
cAogTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCiBNb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5Q2FuY2VsRXZlbnQuY3BwCiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
Q29udGFjdEZpZWxkLmNwcAotTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yLmNwcAogTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5jcHAKIE1vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXplZEV2ZW50LmNwcAogTW9kdWxlcy9hcHBsZXBh
eS9BcHBsZVBheVBheW1lbnRNZXRob2RTZWxlY3RlZEV2ZW50LmNwcApAQCAtODQsNyArODUsNiBA
QCBNb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRDb2NvYS5tbQogTW9kdWxlcy9hcHBsZXBh
eS9jb2NvYS9QYXltZW50Q29udGFjdENvY29hLm1tCiBNb2R1bGVzL2FwcGxlcGF5L2NvY29hL1Bh
eW1lbnRNZXJjaGFudFNlc3Npb25Db2NvYS5tbQogTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXlt
ZW50TWV0aG9kQ29jb2EubW0KLU1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudE1ldGhvZFVw
ZGF0ZUNvY29hLm1tCiBNb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRTZXNzaW9uRXJyb3JD
b2NvYS5tbQogTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2Eu
bW0KIE1vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxl
ci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAyMzdmMmE5YmYwOWYuLmE1YTY3MTNiMTlkNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjMzNyw3ICsyMzM3
LDcgQEAKIAkJN0M2NTIzMUExRTAwREJCNTAwNjc3RjIyIC8qIEpTQXBwbGVQYXlQYXltZW50UGFz
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M2NTIz
MTAxRTAwREJCNDAwNjc3RjIyIC8qIEpTQXBwbGVQYXlQYXltZW50UGFzcy5oICovOyB9OwogCQk3
QzY1NzlFMDFFMDA3OUY5MDBFM0EyN0EgLyogQXBwbGVQYXlQYXltZW50UmVxdWVzdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M2NTc5REYxRTAwNzlG
OTAwRTNBMjdBIC8qIEFwcGxlUGF5UGF5bWVudFJlcXVlc3QuaCAqLzsgfTsKIAkJN0M2NTc5RTMx
RTAwODI3MDAwRTNBMjdBIC8qIEFwcGxlUGF5TGluZUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNjU3OUUyMUUwMDgyNzAwMEUzQTI3QSAvKiBB
cHBsZVBheUxpbmVJdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJN0M2NTc5RTgxRTAwODMxNjAwRTNBMjdBIC8qIEFwcGxlUGF5U2hpcHBpbmdN
ZXRob2QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdD
NjU3OUU3MUUwMDgzMTYwMEUzQTI3QSAvKiBBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmggKi87IH07
CisJCTdDNjU3OUU4MUUwMDgzMTYwMEUzQTI3QSAvKiBBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzY1NzlFNzFF
MDA4MzE2MDBFM0EyN0EgLyogQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDNjU3OUYwMUUwMDg1NjYwMEUz
QTI3QSAvKiBKU0FwcGxlUGF5TGluZUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdDNjU3OUVBMUUwMDg1NjYwMEUzQTI3QSAvKiBKU0FwcGxlUGF5
TGluZUl0ZW0uaCAqLzsgfTsKIAkJN0M2NTc5RjIxRTAwODU2NjAwRTNBMjdBIC8qIEpTQXBwbGVQ
YXlQYXltZW50UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0M2NTc5RUMxRTAwODU2NjAwRTNBMjdBIC8qIEpTQXBwbGVQYXlQYXltZW50UmVx
dWVzdC5oICovOyB9OwogCQk3QzY1NzlGNDFFMDA4NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBheVNo
aXBwaW5nTWV0aG9kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QzY1NzlFRTFFMDA4NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBheVNoaXBwaW5nTWV0aG9k
LmggKi87IH07CkBAIC0yOTM2LDggKzI5MzYsMTIgQEAKIAkJOTRERTVDOTYxRDgzMDFCRDAwMTY0
RjJBIC8qIENTU1BhcnNlckltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk0REU1Qzk0MUQ4MzAxQjAwMDE2NEYyQSAvKiBDU1NQYXJzZXJJbXBsLmgg
Ki87IH07CiAJCTk0RTgzOTUxMURGQjJBMEUwMDdCQzZBNyAvKiBDU1NOYW1lc3BhY2VSdWxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NEU4Mzk0RjFE
RkIyNzAwMDA3QkM2QTcgLyogQ1NTTmFtZXNwYWNlUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk0RTgzOTU2MURGQjJCQzQwMDdCQzZBNyAv
KiBKU0NTU05hbWVzcGFjZVJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk0RTgzOTU0MURGQjJCQTYwMDdCQzZBNyAvKiBKU0NTU05hbWVzcGFjZVJ1
bGUuaCAqLzsgfTsKKwkJOTUwMTgzQ0QyNUQ2MzNEOTAwRDQzNDBGIC8qIEFwcGxlUGF5RGV0YWls
c1VwZGF0ZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk1MDE4M0NCMjVENjMzRDgwMEQ0MzQwRiAvKiBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTUy
MDc2MDUxRjI2NzVGRTAwN0QyQUFCIC8qIENhbGxUcmFjZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MjA3NjAxMUYyNjc1RjkwMDdEMkFBQiAvKiBD
YWxsVHJhY2VyLmggKi87IH07CiAJCTk1MjA3NjA2MUYyNjc1RkUwMDdEMkFBQiAvKiBDYWxsVHJh
Y2VyVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk1MjA3NjAyMUYyNjc1RjkwMDdEMkFBQiAvKiBDYWxsVHJhY2VyVHlwZXMuaCAqLzsgfTsKKwkJ
OTUyN0Q3QUIyNUQ1RkRFMjAwQTZFMTc2IC8qIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MjdEN0E4MjVE
NUZERTEwMEE2RTE3NiAvKiBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTUyN0Q3QUYyNUQ1RkU2QzAw
QTZFMTc2IC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUyN0Q3QUQyNUQ1RkU2QjAwQTZFMTc2IC8q
IEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oICovOyB9OworCQk5NTNCQ0VCMjI1RDYyODNE
MDBBNEEyQTEgLyogSlNBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTNCQ0VBRjI1RDYyODNDMDBBNEEyQTEg
LyogSlNBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmggKi87IH07CiAJCTk1NkZDNEJCMjVENDlD
N0IwMEY3QjNBMiAvKiBBcHBsZVBheUxpbmVJdGVtRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU2RkM0QjgyNUQ0OUM3QTAwRjdCM0EyIC8qIEFw
cGxlUGF5TGluZUl0ZW1EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOTU2RkM0QkIyNUQ0OUM3QjAwRjdCM0EzIC8qIEpTQXBwbGVQYXlMaW5l
SXRlbURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk1NkZDNEJBMjVENDlDN0QwMEY3QjNBMiAvKiBKU0FwcGxlUGF5TGluZUl0ZW1EYXRhLmggKi87
IH07CiAJCTk1QTFFMkU5MjVDQzc1QTkwMDI2OEM4RSAvKiBNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NUExRTJFNzI1Q0M3NUE4MDAyNjhDOEUgLyogTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zMTI0
LDExICszMTI4LDExIEBACiAJCUExMjUzOEQ0MTNGOUI2MEEwMDAyNDc1NCAvKiBMYXlvdXRSZXBh
aW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEx
MjBBQ0EwMTNGOTk4MzcwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTI3MDVDMzE2NTZCRDY1MDBD
MkUyN0MgLyogR3JpZFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMTI3MDVDMjE2NTZCRDY1MDBDMkUyN0MgLyogR3JpZFBvc2l0aW9uLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTEyQTEw
NTAxNjY0NDRGRDAwOEZBMzExIC8qIEdyaWRUcmFja1NpemUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMkExMDRFMTY2NDQ0REMwMDhGQTMxMSAvKiBH
cmlkVHJhY2tTaXplLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJQTEyQzU5RUUyMDM1RkM5QjAwMTIyMzZCIC8qIEFwcGxlUGF5RXJyb3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBREZERkQ2MUU3MUQ4
REYwMDhGNUQzNCAvKiBBcHBsZVBheUVycm9yLmggKi87IH07CisJCUExMkM1OUVFMjAzNUZDOUIw
MDEyMjM2QiAvKiBBcHBsZVBheUVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQURGREZENjFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlFcnJv
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUEx
MkM1OUYwMjAzNUZDQUIwMDEyMjM2QiAvKiBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVz
dWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURG
REZEODFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3Vs
dC5oICovOyB9OwotCQlBMTJDNTlGMTIwMzVGQ0JGMDAxMjIzNkIgLyogQXBwbGVQYXlQYXltZW50
TWV0aG9kVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQURGREZEQTFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kVXBk
YXRlLmggKi87IH07Ci0JCUExMkM1OUYyMjAzNUZDRDYwMDEyMjM2QiAvKiBBcHBsZVBheVNoaXBw
aW5nQ29udGFjdFVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUFERkRGREMxRTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5U2hpcHBpbmdDb250
YWN0VXBkYXRlLmggKi87IH07Ci0JCUExMkM1OUYzMjAzNUZDRTIwMDEyMjM2QiAvKiBBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQURGREZERTFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlTaGlwcGlu
Z01ldGhvZFVwZGF0ZS5oICovOyB9OworCQlBMTJDNTlGMTIwMzVGQ0JGMDAxMjIzNkIgLyogQXBw
bGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQURGREZEQTFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlQYXlt
ZW50TWV0aG9kVXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJQTEyQzU5RjIyMDM1RkNENjAwMTIyMzZCIC8qIEFwcGxlUGF5U2hpcHBpbmdD
b250YWN0VXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQURGREZEQzFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RV
cGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQlBMTJDNTlGMzIwMzVGQ0UyMDAxMjIzNkIgLyogQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRG
REUxRTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTJDNTlGOTIw
MzYwQUNCMDAxMjIzNkIgLyogSlNBcHBsZVBheUVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURGREZFMjFFNzFEQ0EwMDA4RjVEMzQgLyogSlNB
cHBsZVBheUVycm9yLmggKi87IH07CiAJCUExMkM1OUZCMjAzNjBCMDAwMDEyMjM2QiAvKiBKU0Fw
cGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBREZERkU0MUU3MURDQTAwMDhGNUQzNCAvKiBKU0Fw
cGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaCAqLzsgfTsKIAkJQTEyQzU5RkMyMDM2
MEIyNzAwMTIyMzZCIC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURGREZFNjFFNzFEQ0EwMDA4
RjVEMzQgLyogSlNBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaCAqLzsgfTsKQEAgLTMyMTIs
OCArMzIxNiw4IEBACiAJCUExQUZFREU3MUY4QkZGNkQwMDg3MDEzRiAvKiBNb2NrUGF5bWVudENv
b3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEExQUZFREU1MUY4QkZGNkQwMDg3MDEzRiAvKiBNb2NrUGF5bWVudENvb3JkaW5hdG9yLmNw
cCAqLzsgfTsKIAkJQTFCNUIyOUUxQUFBODQ2RTAwOEI2MDQyIC8qIE1vY2tDb250ZW50RmlsdGVy
U2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTFCNUIyOUMxQUFBODQ2RTAwOEI2MDQyIC8qIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3Mu
Y3BwICovOyB9OwogCQlBMUI1QjI5RjFBQUE4NDZGMDA4QjYwNDIgLyogTW9ja0NvbnRlbnRGaWx0
ZXJTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTFCNUIyOUQxQUFBODQ2RTAwOEI2MDQyIC8qIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3Mu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBMUJC
ODU5QzIxNTlBRUExMDA2N0UwN0QgLyogQXBwbGVQYXlFcnJvckNvZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQkI4NTk5MjE1OUFFQTEwMDY3RTA3
RCAvKiBBcHBsZVBheUVycm9yQ29kZS5oICovOyB9OwotCQlBMUJCODVBMzIxNTlBRjU3MDA2N0Uw
N0QgLyogQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFCQjg1QTAyMTU5QUY1NzAwNjdFMDdEIC8qIEFwcGxl
UGF5RXJyb3JDb250YWN0RmllbGQuaCAqLzsgfTsKKwkJQTFCQjg1OUMyMTU5QUVBMTAwNjdFMDdE
IC8qIEFwcGxlUGF5RXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMUJCODU5OTIxNTlBRUExMDA2N0UwN0QgLyogQXBwbGVQYXlFcnJvckNv
ZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlB
MUJCODVBMzIxNTlBRjU3MDA2N0UwN0QgLyogQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFCQjg1QTAyMTU5
QUY1NzAwNjdFMDdEIC8qIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMUJCODVBOTIxNTlCMDJDMDA2
N0UwN0QgLyogTW9ja1BheW1lbnRFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTFCQjg1QTYyMTU5QjAyQzAwNjdFMDdEIC8qIE1vY2tQYXltZW50
RXJyb3IuaCAqLzsgfTsKIAkJQTFCQjg1QjIyMTU5QjFBMTAwNjdFMDdEIC8qIEpTQXBwbGVQYXlF
cnJvckNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExQkI4NUFFMjE1OUIxQTAwMDY3RTA3RCAvKiBKU0FwcGxlUGF5RXJyb3JDb2RlLmggKi87IH07
CiAJCUExQkI4NUIzMjE1OUIxQTEwMDY3RTA3RCAvKiBKU0FwcGxlUGF5RXJyb3JDb250YWN0Rmll
bGQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQkI4
NUFGMjE1OUIxQTAwMDY3RTA3RCAvKiBKU0FwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaCAqLzsg
fTsKQEAgLTMyNDcsNyArMzI1MSw2IEBACiAJCUExREY1QUE2MUY3RjY0QkIwMDU4QTQ3NyAvKiBQ
YXltZW50SGFuZGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTFERjVBQTQxRjdGNjRCQjAwNThBNDc3IC8qIFBheW1lbnRIYW5kbGVyLmggKi87IH07
CiAJCUExREY1QUFEMUY4MDc1RjAwMDU4QTQ3NyAvKiBBcHBsZVBheVJlcXVlc3RCYXNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMURGNUFBQTFGODA3
NUYwMDA1OEE0NzcgLyogQXBwbGVQYXlSZXF1ZXN0QmFzZS5oICovOyB9OwogCQlBMURGNUFCMzFG
ODA3NzUzMDA1OEE0NzcgLyogSlNBcHBsZVBheVJlcXVlc3RCYXNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMURGNUFCMTFGODA3NzUyMDA1OEE0Nzcg
LyogSlNBcHBsZVBheVJlcXVlc3RCYXNlLmggKi87IH07Ci0JCUExREZENTI1MjMzNDU5M0YwMDQy
RkNEQiAvKiBQYXltZW50TWV0aG9kVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMURGRDUyNDIzMzQ1OTNBMDA0MkZDREIgLyogUGF5bWVudE1l
dGhvZFVwZGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUExREZENTI2MjMzNDU5NDgwMDQyRkNEQiAvKiBQYXltZW50U3VtbWFyeUl0ZW1zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMURGRDUyMjIz
MzQ1OTNBMDA0MkZDREIgLyogUGF5bWVudFN1bW1hcnlJdGVtcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExRTA4NjVGMjQ4OUQyQjUwMEU0OTZE
OSAvKiBBcHBsZVBheVNldHVwQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFFMDg2NUMyNDg5RDJCMTAwRTQ5NkQ5IC8qIEFwcGxl
UGF5U2V0dXBDb25maWd1cmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQTFFMDg2NjAyNDg5RDJCQTAwRTQ5NkQ5IC8qIEFwcGxlUGF5U2V0
dXBGZWF0dXJlU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExRTA4NjVFMjQ4OUQyQjEwMEU0OTZEOSAvKiBBcHBsZVBheVNldHVwRmVhdHVyZVN0
YXRlLmggKi87IH07CkBAIC02NjY1LDcgKzY2NjgsNiBAQAogCQkxQUQ4RjgxOTExQ0FCOUU5MDBF
OTNFNTQgLyogUGxhdGZvcm1TdHJhdGVnaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBsYXRmb3JtU3RyYXRlZ2llcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxQUQ4RjgxQTExQ0FCOUU5MDBFOTNFNTQgLyogUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtU3RyYXRlZ2llcy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBREE0QTFCMUQyMkYyQzAwMDVBOUExNSAv
KiBQYXltZW50TWVyY2hhbnRTZXNzaW9uQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBQYXltZW50TWVyY2hhbnRTZXNzaW9uQ29jb2EubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFBREZERkQ1MUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBh
eUVycm9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFwcGxlUGF5
RXJyb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQURGREZENjFFNzFEOERG
MDA4RjVEMzQgLyogQXBwbGVQYXlFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBcHBsZVBheUVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBREZE
RkQ3MUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBheUVycm9yLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBBcHBsZVBheUVycm9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUFERkRGRDgxRTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25S
ZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwbGVQYXlQYXltZW50
QXV0aG9yaXphdGlvblJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE3
NzAsMTAgKzExNzcyLDE4IEBACiAJCTk0RTgzOTUwMURGQjI5QTQwMDdCQzZBNyAvKiBDU1NOYW1l
c3BhY2VSdWxlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NOYW1lc3BhY2VSdWxlLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTRFODM5NTMxREZCMkJBNjAwN0JDNkE3
IC8qIEpTQ1NTTmFtZXNwYWNlUnVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0NTU05hbWVzcGFjZVJ1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5NEU4Mzk1NDFERkIyQkE2MDA3QkM2QTcgLyogSlNDU1NOYW1lc3BhY2VSdWxlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ1NTTmFtZXNwYWNlUnVsZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTAxODNDOTI1RDYzM0Q4MDBENDM0MEYgLyogQXBw
bGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXBwbGVQ
YXlEZXRhaWxzVXBkYXRlQmFzZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1
MDE4M0NCMjVENjMzRDgwMEQ0MzQwRiAvKiBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwQzRDMDJCRUQ4OTM2RjgxOEUyRjk5
IC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1NWR0dyYXBoaWNzRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5NTIwNzYwMDFGMjY3NUY5MDA3RDJBQUIgLyogQ2FsbFRyYWNlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDYWxsVHJhY2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUy
MDc2MDExRjI2NzVGOTAwN0QyQUFCIC8qIENhbGxUcmFjZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2Fs
bFRyYWNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTIwNzYwMjFGMjY3NUY5
MDA3RDJBQUIgLyogQ2FsbFRyYWNlclR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhbGxUcmFjZXJU
eXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTI3RDdBODI1RDVGREUxMDBB
NkUxNzYgLyogQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTk1MjdEN0FBMjVENUZERTEwMEE2RTE3NiAvKiBBcHBsZVBheURldGFp
bHNVcGRhdGVEYXRhLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBcHBsZVBheURldGFpbHNV
cGRhdGVEYXRhLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUyN0Q3QUQyNUQ1
RkU2QjAwQTZFMTc2IC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUyN0Q3QUUyNUQ1RkU2QjAwQTZFMTc2IC8qIEpT
QXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5NTNCQ0VBRjI1RDYyODNDMDBBNEEyQTEgLyogSlNBcHBsZVBheURl
dGFpbHNVcGRhdGVCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXBw
bGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
NTNCQ0VCMTI1RDYyODNDMDBBNEEyQTEgLyogSlNBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXBwbGVQYXlEZXRhaWxz
VXBkYXRlQmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1NkZDNEI4MjVE
NDlDN0EwMEY3QjNBMiAvKiBBcHBsZVBheUxpbmVJdGVtRGF0YS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBcHBsZVBheUxpbmVJdGVtRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5NTZGQzRCODI1RDQ5QzdDMDBGN0IzQTIgLyogSlNBcHBsZVBheUxpbmVJ
dGVtRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FwcGxl
UGF5TGluZUl0ZW1EYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTU2RkM0
QkEyNUQ0OUM3QjAwRjdCM0EyIC8qIEFwcGxlUGF5TGluZUl0ZW1EYXRhLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBBcHBsZVBheUxpbmVJdGVtRGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMjM4NCw5ICsxMjM5NCw3IEBACiAJCUExREY1QUIxMUY4MDc3NTIwMDU4
QTQ3NyAvKiBKU0FwcGxlUGF5UmVxdWVzdEJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNBcHBsZVBheVJlcXVlc3RCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUExREY1QUI0MUY4MDc4RjMwMDU4QTQ3NyAvKiBBcHBsZVBheUNvbnRhY3RGaWVsZC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcHBsZVBheUNvbnRhY3RGaWVsZC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExREZENTIyMjMzNDU5M0EwMDQyRkNEQiAvKiBQYXltZW50
U3VtbWFyeUl0ZW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRTdW1tYXJ5SXRlbXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTFERkQ1MjQyMzM0NTkzQTAwNDJGQ0RCIC8qIFBh
eW1lbnRNZXRob2RVcGRhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudE1ldGhvZFVwZGF0ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMURGRDUyNzIzMzQ1OTczMDA0MkZDREIg
LyogUGF5bWVudFN1bW1hcnlJdGVtc0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGF5
bWVudFN1bW1hcnlJdGVtc0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
MURGRDUyODIzMzQ1OTc0MDA0MkZDREIgLyogUGF5bWVudE1ldGhvZFVwZGF0ZUNvY29hLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gUGF5bWVudE1ldGhvZFVwZGF0ZUNvY29hLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMUUwODY1QTI0ODlEMkIwMDBFNDk2RDkgLyogQXBwbGVQ
YXlTZXR1cEZlYXR1cmVTdGF0ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXBwbGVQYXlTZXR1cEZlYXR1cmVTdGF0ZS5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExRTA4NjVDMjQ4OUQyQjEwMEU0OTZE
OSAvKiBBcHBsZVBheVNldHVwQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZVBh
eVNldHVwQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUUw
ODY1RDI0ODlEMkIxMDBFNDk2RDkgLyogQXBwbGVQYXlTZXR1cENvbmZpZ3VyYXRpb24uaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IEFwcGxlUGF5U2V0dXBDb25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE4MzMyLDcgKzE4MzQwLDEwIEBACiAJCQkJQTFERjVBQjQxRjgwNzhGMzAwNThB
NDc3IC8qIEFwcGxlUGF5Q29udGFjdEZpZWxkLmNwcCAqLywKIAkJCQlBMURGNUE5MTFGN0VDNDMy
MDA1OEE0NzcgLyogQXBwbGVQYXlDb250YWN0RmllbGQuaCAqLywKIAkJCQlBMURGNUE5MzFGN0VD
NDMyMDA1OEE0NzcgLyogQXBwbGVQYXlDb250YWN0RmllbGQuaWRsICovLAotCQkJCTFBREZERkQ1
MUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBheUVycm9yLmNwcCAqLywKKwkJCQk5NTAxODNDQjI1
RDYzM0Q4MDBENDM0MEYgLyogQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oICovLAorCQkJCTk1
MDE4M0M5MjVENjMzRDgwMEQ0MzQwRiAvKiBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmlkbCAq
LywKKwkJCQk5NTI3RDdBODI1RDVGREUxMDBBNkUxNzYgLyogQXBwbGVQYXlEZXRhaWxzVXBkYXRl
RGF0YS5oICovLAorCQkJCTk1MjdEN0FBMjVENUZERTEwMEE2RTE3NiAvKiBBcHBsZVBheURldGFp
bHNVcGRhdGVEYXRhLmlkbCAqLywKIAkJCQkxQURGREZENjFFNzFEOERGMDA4RjVEMzQgLyogQXBw
bGVQYXlFcnJvci5oICovLAogCQkJCTFBREZERkQ3MUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBh
eUVycm9yLmlkbCAqLywKIAkJCQlBMUJCODU5OTIxNTlBRUExMDA2N0UwN0QgLyogQXBwbGVQYXlF
cnJvckNvZGUuaCAqLywKQEAgLTE4NDI2LDcgKzE4NDM3LDYgQEAKIAkJCQk1QzUzRENDRTI0NDY0
NDk5MDBBOTMxMjQgLyogUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbldlYkNvcmUuaCAq
LywKIAkJCQkxQUU5NkE4NzFEMUEwQ0VCMDBCODY3NjggLyogUGF5bWVudE1lcmNoYW50U2Vzc2lv
bi5oICovLAogCQkJCTFBOEE2NDM5MUQxOUZDNTMwMEQwRTAwRiAvKiBQYXltZW50TWV0aG9kLmgg
Ki8sCi0JCQkJQTFERkQ1MjQyMzM0NTkzQTAwNDJGQ0RCIC8qIFBheW1lbnRNZXRob2RVcGRhdGUu
aCAqLywKIAkJCQkxQThBNjQ2NjFEMTlGREZGMDBEMEUwMEYgLyogUGF5bWVudFJlcXVlc3RWYWxp
ZGF0b3IuaCAqLywKIAkJCQkxQThBNjQ2NTFEMTlGREZGMDBEMEUwMEYgLyogUGF5bWVudFJlcXVl
c3RWYWxpZGF0b3IubW0gKi8sCiAJCQkJQTFDMkM1NzUxRkEyODUxNjAwQkE0NkZBIC8qIFBheW1l
bnRTZXNzaW9uLmNwcCAqLywKQEAgLTE4NDQ1LDcgKzE4NDU1LDYgQEAKIAkJCQkxQThBNjQ2QTFE
MTlGRjg3MDBEMEUwMEYgLyogUGF5bWVudENvbnRhY3RDb2NvYS5tbSAqLywKIAkJCQkxQURBNEEx
QjFEMjJGMkMwMDA1QTlBMTUgLyogUGF5bWVudE1lcmNoYW50U2Vzc2lvbkNvY29hLm1tICovLAog
CQkJCTFBOEE2NDZCMUQxOUZGODcwMEQwRTAwRiAvKiBQYXltZW50TWV0aG9kQ29jb2EubW0gKi8s
Ci0JCQkJQTFERkQ1MjgyMzM0NTk3NDAwNDJGQ0RCIC8qIFBheW1lbnRNZXRob2RVcGRhdGVDb2Nv
YS5tbSAqLywKIAkJCQlBMTEzRTAyQTIzMzE4RUJDMDA5QzMzQTAgLyogUGF5bWVudFNlc3Npb25F
cnJvckNvY29hLm1tICovLAogCQkJCUExREZENTI3MjMzNDU5NzMwMDQyRkNEQiAvKiBQYXltZW50
U3VtbWFyeUl0ZW1zQ29jb2EubW0gKi8sCiAJCQkpOwpAQCAtMTg1NDUsNiArMTg1NTQsMTAgQEAK
IAkJCQlBMTk1NkYxQjIzMzFBNjQ2MDA1N0U5RDIgLyogSlNBcHBsZVBheUNhbmNlbEV2ZW50Lmgg
Ki8sCiAJCQkJQTFERjVBOTgxRjdFQzhDMDAwNThBNDc3IC8qIEpTQXBwbGVQYXlDb250YWN0Rmll
bGQuY3BwICovLAogCQkJCUExREY1QTk3MUY3RUM4QkYwMDU4QTQ3NyAvKiBKU0FwcGxlUGF5Q29u
dGFjdEZpZWxkLmggKi8sCisJCQkJOTUzQkNFQjEyNUQ2MjgzQzAwQTRBMkExIC8qIEpTQXBwbGVQ
YXlEZXRhaWxzVXBkYXRlQmFzZS5jcHAgKi8sCisJCQkJOTUzQkNFQUYyNUQ2MjgzQzAwQTRBMkEx
IC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oICovLAorCQkJCTk1MjdEN0FFMjVENUZF
NkIwMEE2RTE3NiAvKiBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuY3BwICovLAorCQkJCTk1
MjdEN0FEMjVENUZFNkIwMEE2RTE3NiAvKiBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaCAq
LywKIAkJCQkxQURGREZFMTFFNzFEQ0EwMDA4RjVEMzQgLyogSlNBcHBsZVBheUVycm9yLmNwcCAq
LywKIAkJCQkxQURGREZFMjFFNzFEQ0EwMDA4RjVEMzQgLyogSlNBcHBsZVBheUVycm9yLmggKi8s
CiAJCQkJQTFCQjg1QUQyMTU5QjFBMDAwNjdFMDdEIC8qIEpTQXBwbGVQYXlFcnJvckNvZGUuY3Bw
ICovLApAQCAtMzExNzQsNiArMzExODcsOCBAQAogCQkJCTQ0MjUwNzA5MjU4MjlBMjcwMEMwOTM2
OCAvKiBBcHBIaWdobGlnaHRTdG9yYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTEzRTAyRTIz
MzFBMTM0MDA5QzMzQTAgLyogQXBwbGVQYXlDYW5jZWxFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTFERjVBOTQxRjdFQzQzMjAwNThBNDc3IC8qIEFwcGxlUGF5Q29udGFjdEZpZWxkLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5NTAxODNDRDI1RDYzM0Q5MDBENDM0MEYgLyogQXBwbGVQYXlEZXRh
aWxzVXBkYXRlQmFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTUyN0Q3QUIyNUQ1RkRFMjAwQTZF
MTc2IC8qIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUEx
MkM1OUVFMjAzNUZDOUIwMDEyMjM2QiAvKiBBcHBsZVBheUVycm9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBMUJCODU5QzIxNTlBRUExMDA2N0UwN0QgLyogQXBwbGVQYXlFcnJvckNvZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUExQkI4NUEzMjE1OUFGNTcwMDY3RTA3RCAvKiBBcHBsZVBheUVycm9y
Q29udGFjdEZpZWxkLmggaW4gSGVhZGVycyAqLywKQEAgLTMyNzQxLDYgKzMyNzU2LDggQEAKIAkJ
CQk3MTAyNUVERTFGOTlGMUVDMDA0QTI1MEMgLyogSlNBbmltYXRpb25UaW1lbGluZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTE5NTZGMUMyMzMxQTY3NzAwNTdFOUQyIC8qIEpTQXBwbGVQYXlDYW5j
ZWxFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFERjVBOTkxRjdFQzhDMDAwNThBNDc3IC8q
IEpTQXBwbGVQYXlDb250YWN0RmllbGQuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1M0JDRUIyMjVE
NjI4M0QwMEE0QTJBMSAvKiBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTk1MjdEN0FGMjVENUZFNkMwMEE2RTE3NiAvKiBKU0FwcGxlUGF5RGV0YWlsc1Vw
ZGF0ZURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMkM1OUY5MjAzNjBBQ0IwMDEyMjM2QiAv
KiBKU0FwcGxlUGF5RXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUExQkI4NUIyMjE1OUIxQTEw
MDY3RTA3RCAvKiBKU0FwcGxlUGF5RXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUJC
ODVCMzIxNTlCMUExMDA2N0UwN0QgLyogSlNBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmggaW4g
SGVhZGVycyAqLywKQEAgLTM0MDc2LDcgKzM0MDkzLDYgQEAKIAkJCQkxQThBNjQzQzFEMTlGQzUz
MDBEMEUwMEYgLyogUGF5bWVudE1ldGhvZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE2NEEyNDcy
MTM0QkM3MTAwNTA5MTU2IC8qIFBheW1lbnRNZXRob2RDaGFuZ2VFdmVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTFGNzZCMTkxRjQ0QzM5MDAwMTRDMzE4IC8qIFBheW1lbnRNZXRob2REYXRhLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlBMURGRDUyNTIzMzQ1OTNGMDA0MkZDREIgLyogUGF5bWVudE1l
dGhvZFVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFGNzZCMkIxRjQ0QzRFRjAwMTRDMzE4
IC8qIFBheW1lbnRPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUY3NkIxMzFGNDRDMjQ1
MDAxNEMzMTggLyogUGF5bWVudFJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUExRjYwMDQ0
MUY0NzU3QTkwMDc3RTgzRiAvKiBQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50LmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggMDRiZjhhNTIz
MWQ3Li43ZGEyYzI1YjJlYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
CkBAIC0zNjMsOSArMzYzLDkgQEAgY2xhc3MgRW1wdHlQYXltZW50Q29vcmRpbmF0b3JDbGllbnQg
ZmluYWwgOiBwdWJsaWMgUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50IHsKICAgICB2b2lkIG9wZW5Q
YXltZW50U2V0dXAoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwgeyBjYWxsT25NYWluVGhy
ZWFkKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11
dGFibGUgeyBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7IH0pOyB9CiAgICAgYm9vbCBzaG93UGF5
bWVudFVJKGNvbnN0IFVSTCYsIGNvbnN0IFZlY3RvcjxVUkw+JiwgY29uc3QgQXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3QmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZvaWQgY29t
cGxldGVNZXJjaGFudFZhbGlkYXRpb24oY29uc3QgUGF5bWVudE1lcmNoYW50U2Vzc2lvbiYpIGZp
bmFsIHsgfQotICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25h
bDxTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJikgZmluYWwgeyB9Ci0gICAgdm9pZCBjb21wbGV0ZVNo
aXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYp
IGZpbmFsIHsgfQotICAgIHZvaWQgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlv
bmFsPFBheW1lbnRNZXRob2RVcGRhdGU+JiYpIGZpbmFsIHsgfQorICAgIHZvaWQgY29tcGxldGVT
aGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBk
YXRlPiYmKSBmaW5hbCB7IH0KKyAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0
aW9uKE9wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKSBmaW5hbCB7IH0K
KyAgICB2b2lkIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBh
eVBheW1lbnRNZXRob2RVcGRhdGU+JiYpIGZpbmFsIHsgfQogICAgIHZvaWQgY29tcGxldGVQYXlt
ZW50U2Vzc2lvbihPcHRpb25hbDxQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mJikgZmluYWwg
eyB9CiAgICAgdm9pZCBjYW5jZWxQYXltZW50U2Vzc2lvbigpIGZpbmFsIHsgfQogICAgIHZvaWQg
YWJvcnRQYXltZW50U2Vzc2lvbigpIGZpbmFsIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5jcHAKaW5kZXggMTZjMWQ5Njk3MjEwLi4yMjJi
NzgxZGEwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRD
b29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudENv
b3JkaW5hdG9yLmNwcApAQCAtMjgsMTQgKzI4LDE2IEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZ
KQogCisjaW5jbHVkZSAiQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVkZSAi
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKKyNpbmNsdWRlICJBcHBsZVBheVNoaXBw
aW5nQ29udGFjdFVwZGF0ZS5oIgorI2luY2x1ZGUgIkFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRh
dGUuaCIKICNpbmNsdWRlICJNb2NrQXBwbGVQYXlTZXR1cEZlYXR1cmUuaCIKICNpbmNsdWRlICJN
b2NrUGF5bWVudC5oIgogI2luY2x1ZGUgIk1vY2tQYXltZW50Q29udGFjdC5oIgogI2luY2x1ZGUg
Ik1vY2tQYXltZW50TWV0aG9kLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBheW1l
bnRDb29yZGluYXRvci5oIgotI2luY2x1ZGUgIlBheW1lbnRNZXRob2RVcGRhdGUuaCIKICNpbmNs
dWRlICJQYXltZW50U2Vzc2lvbkVycm9yLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KQEAgLTk2LDE4ICs5OCwxMSBAQCBzdGF0
aWMgdm9pZCBkaXNwYXRjaElmU2hvd2luZyhGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCiAg
ICAgfSk7CiB9CiAKLXN0YXRpYyBWZWN0b3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4gY29udmVy
dChjb25zdCBWZWN0b3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0
aG9kPiYgc2hpcHBpbmdNZXRob2RzKQotewotICAgIHJldHVybiBXVEY6Om1hcChzaGlwcGluZ01l
dGhvZHMsIFtdIChhdXRvJiBzaGlwcGluZ01ldGhvZCkgewotICAgICAgICByZXR1cm4gQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZCB7IHNoaXBwaW5nTWV0aG9kLmxhYmVsLCBzaGlwcGluZ01ldGhvZC5k
ZXRhaWwsIHNoaXBwaW5nTWV0aG9kLmFtb3VudCwgc2hpcHBpbmdNZXRob2QuaWRlbnRpZmllciB9
OwotICAgIH0pOwotfQotCiBib29sIE1vY2tQYXltZW50Q29vcmRpbmF0b3I6OnNob3dQYXltZW50
VUkoY29uc3QgVVJMJiwgY29uc3QgVmVjdG9yPFVSTD4mLCBjb25zdCBBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBpZiAocmVxdWVzdC5zaGlwcGluZ0NvbnRh
Y3QoKS5wa0NvbnRhY3QoKSkKICAgICAgICAgbV9zaGlwcGluZ0FkZHJlc3MgPSByZXF1ZXN0LnNo
aXBwaW5nQ29udGFjdCgpLnRvQXBwbGVQYXlQYXltZW50Q29udGFjdChyZXF1ZXN0LnZlcnNpb24o
KSk7Ci0gICAgbV9zaGlwcGluZ01ldGhvZHMgPSBjb252ZXJ0KHJlcXVlc3Quc2hpcHBpbmdNZXRo
b2RzKCkpOworICAgIG1fc2hpcHBpbmdNZXRob2RzID0gcmVxdWVzdC5zaGlwcGluZ01ldGhvZHMo
KTsKICAgICBtX3JlcXVpcmVkQmlsbGluZ0NvbnRhY3RGaWVsZHMgPSByZXF1ZXN0LnJlcXVpcmVk
QmlsbGluZ0NvbnRhY3RGaWVsZHMoKTsKICAgICBtX3JlcXVpcmVkU2hpcHBpbmdDb250YWN0Rmll
bGRzID0gcmVxdWVzdC5yZXF1aXJlZFNoaXBwaW5nQ29udGFjdEZpZWxkcygpOwogI2lmIEVOQUJM
RShBUFBMRV9QQVlfSU5TVEFMTE1FTlRTKQpAQCAtMTI5LDM4ICsxMjQsNDkgQEAgdm9pZCBNb2Nr
UGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBQYXlt
ZW50TWVyY2hhbnRTZXMKICAgICB9KTsKIH0KIAotdm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9y
Ojp1cGRhdGVUb3RhbEFuZExpbmVJdGVtcyhjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVx
dWVzdDo6VG90YWxBbmRMaW5lSXRlbXMmIHRvdGFsQW5kTGluZUl0ZW1zKQordm9pZCBNb2NrUGF5
bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFs
PEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYgc2hpcHBpbmdNZXRob2RVcGRhdGUpCiB7
Ci0gICAgbV90b3RhbCA9IHRvdGFsQW5kTGluZUl0ZW1zLnRvdGFsOwotICAgIG1fbGluZUl0ZW1z
ID0gdG90YWxBbmRMaW5lSXRlbXMubGluZUl0ZW1zOworICAgIGlmICghc2hpcHBpbmdNZXRob2RV
cGRhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdG90YWwgPSBXVEZNb3ZlKHNoaXBwaW5n
TWV0aG9kVXBkYXRlLT5uZXdUb3RhbCk7CisgICAgbV9saW5lSXRlbXMgPSBXVEZNb3ZlKHNoaXBw
aW5nTWV0aG9kVXBkYXRlLT5uZXdMaW5lSXRlbXMpOwogfQogCi12b2lkIE1vY2tQYXltZW50Q29v
cmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8U2hpcHBp
bmdNZXRob2RVcGRhdGU+JiYgc2hpcHBpbmdNZXRob2RVcGRhdGUpCitzdGF0aWMgVmVjdG9yPE1v
Y2tQYXltZW50RXJyb3I+IGNvbnZlcnQoVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4mJiBl
cnJvcnMpCiB7Ci0gICAgaWYgKHNoaXBwaW5nTWV0aG9kVXBkYXRlKQotICAgICAgICB1cGRhdGVU
b3RhbEFuZExpbmVJdGVtcyhzaGlwcGluZ01ldGhvZFVwZGF0ZS0+bmV3VG90YWxBbmRMaW5lSXRl
bXMpOworICAgIFZlY3RvcjxNb2NrUGF5bWVudEVycm9yPiByZXN1bHQ7CisgICAgZm9yIChhdXRv
JiBlcnJvciA6IGVycm9ycykgeworICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICByZXN1
bHQuYXBwZW5kKHsgZXJyb3ItPmNvZGUoKSwgZXJyb3ItPm1lc3NhZ2UoKSwgZXJyb3ItPmNvbnRh
Y3RGaWVsZCgpIH0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIE1vY2tQ
YXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlv
bmFsPFNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJiBzaGlwcGluZ0NvbnRhY3RVcGRhdGUpCit2b2lk
IE1vY2tQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9u
KE9wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmIHNoaXBwaW5nQ29udGFj
dFVwZGF0ZSkKIHsKICAgICBpZiAoIXNoaXBwaW5nQ29udGFjdFVwZGF0ZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgbV9zaGlwcGluZ01ldGhvZHMgPSBjb252ZXJ0KHNoaXBwaW5nQ29udGFjdFVw
ZGF0ZS0+bmV3U2hpcHBpbmdNZXRob2RzKTsKLSAgICB1cGRhdGVUb3RhbEFuZExpbmVJdGVtcyhz
aGlwcGluZ0NvbnRhY3RVcGRhdGUtPm5ld1RvdGFsQW5kTGluZUl0ZW1zKTsKLSAgICBtX2Vycm9y
cyA9IFdURk1vdmUoc2hpcHBpbmdDb250YWN0VXBkYXRlLT5lcnJvcnMpOworICAgIG1fdG90YWwg
PSBXVEZNb3ZlKHNoaXBwaW5nQ29udGFjdFVwZGF0ZS0+bmV3VG90YWwpOworICAgIG1fbGluZUl0
ZW1zID0gV1RGTW92ZShzaGlwcGluZ0NvbnRhY3RVcGRhdGUtPm5ld0xpbmVJdGVtcyk7CisgICAg
bV9lcnJvcnMgPSBjb252ZXJ0KFdURk1vdmUoc2hpcHBpbmdDb250YWN0VXBkYXRlLT5lcnJvcnMp
KTsKKyAgICBtX3NoaXBwaW5nTWV0aG9kcyA9IFdURk1vdmUoc2hpcHBpbmdDb250YWN0VXBkYXRl
LT5uZXdTaGlwcGluZ01ldGhvZHMpOwogfQogCi12b2lkIE1vY2tQYXltZW50Q29vcmRpbmF0b3I6
OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxQYXltZW50TWV0aG9kVXBk
YXRlPiYmIHBheW1lbnRNZXRob2RVcGRhdGUpCit2b2lkIE1vY2tQYXltZW50Q29vcmRpbmF0b3I6
OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVBheW1lbnRN
ZXRob2RVcGRhdGU+JiYgcGF5bWVudE1ldGhvZFVwZGF0ZSkKIHsKLSAgICBpZiAocGF5bWVudE1l
dGhvZFVwZGF0ZSkKLSAgICAgICAgdXBkYXRlVG90YWxBbmRMaW5lSXRlbXMocGF5bWVudE1ldGhv
ZFVwZGF0ZS0+dG90YWxBbmRMaW5lSXRlbXMoKSk7CisgICAgaWYgKCFwYXltZW50TWV0aG9kVXBk
YXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3RvdGFsID0gV1RGTW92ZShwYXltZW50TWV0
aG9kVXBkYXRlLT5uZXdUb3RhbCk7CisgICAgbV9saW5lSXRlbXMgPSBXVEZNb3ZlKHBheW1lbnRN
ZXRob2RVcGRhdGUtPm5ld0xpbmVJdGVtcyk7CiB9CiAKIHZvaWQgTW9ja1BheW1lbnRDb29yZGlu
YXRvcjo6Y2hhbmdlU2hpcHBpbmdPcHRpb24oU3RyaW5nJiYgc2hpcHBpbmdPcHRpb24pCiB7CiAg
ICAgZGlzcGF0Y2hJZlNob3dpbmcoW3BhZ2UgPSAmbV9wYWdlLCBzaGlwcGluZ09wdGlvbiA9IFdU
Rk1vdmUoc2hpcHBpbmdPcHRpb24pXSgpIG11dGFibGUgewotICAgICAgICBBcHBsZVBheVNlc3Np
b25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Qgc2hpcHBpbmdNZXRob2Q7CisgICAgICAg
IEFwcGxlUGF5U2hpcHBpbmdNZXRob2Qgc2hpcHBpbmdNZXRob2Q7CiAgICAgICAgIHNoaXBwaW5n
TWV0aG9kLmlkZW50aWZpZXIgPSBXVEZNb3ZlKHNoaXBwaW5nT3B0aW9uKTsKICAgICAgICAgcGFn
ZS0+cGF5bWVudENvb3JkaW5hdG9yKCkuZGlkU2VsZWN0U2hpcHBpbmdNZXRob2Qoc2hpcHBpbmdN
ZXRob2QpOwogICAgIH0pOwpAQCAtMTk0LDcgKzIwMCw3IEBAIHZvaWQgTW9ja1BheW1lbnRDb29y
ZGluYXRvcjo6Y2FuY2VsUGF5bWVudCgpCiB2b2lkIE1vY2tQYXltZW50Q29vcmRpbmF0b3I6OmNv
bXBsZXRlUGF5bWVudFNlc3Npb24oT3B0aW9uYWw8UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+
JiYgcmVzdWx0KQogewogICAgIGF1dG8gaXNGaW5hbFN0YXRlID0gaXNGaW5hbFN0YXRlUmVzdWx0
KHJlc3VsdCk7Ci0gICAgbV9lcnJvcnMgPSBXVEZNb3ZlKHJlc3VsdC0+ZXJyb3JzKTsKKyAgICBt
X2Vycm9ycyA9IGNvbnZlcnQoV1RGTW92ZShyZXN1bHQtPmVycm9ycykpOwogCiAgICAgaWYgKCFp
c0ZpbmFsU3RhdGUpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmgKaW5kZXggNDM0YWU1NjUwMjI5Li5iN2RiMDkwNjJk
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGlu
YXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRv
ci5oCkBAIC04Miw5ICs4Miw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBvcGVuUGF5bWVudFNldHVw
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpIGZpbmFsOwogICAgIGJvb2wgc2hvd1BheW1lbnRVSShjb25zdCBVUkwmLCBjb25zdCBW
ZWN0b3I8VVJMPiYsIGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0JikgZmluYWw7
CiAgICAgdm9pZCBjb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBQYXltZW50TWVyY2hh
bnRTZXNzaW9uJikgZmluYWw7Ci0gICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0
aW9uKE9wdGlvbmFsPFNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKSBmaW5hbDsKLSAgICB2b2lkIGNv
bXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFNoaXBwaW5nQ29udGFjdFVw
ZGF0ZT4mJikgZmluYWw7Ci0gICAgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24o
T3B0aW9uYWw8UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikgZmluYWw7CisgICAgdm9pZCBjb21wbGV0
ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdNZXRob2RV
cGRhdGU+JiYpIGZpbmFsOworICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rp
b24oT3B0aW9uYWw8QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYpIGZpbmFsOworICAg
IHZvaWQgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5UGF5
bWVudE1ldGhvZFVwZGF0ZT4mJikgZmluYWw7CiAgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRTZXNz
aW9uKE9wdGlvbmFsPFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYmKSBmaW5hbDsKICAgICB2
b2lkIGFib3J0UGF5bWVudFNlc3Npb24oKSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbFBheW1lbnRT
ZXNzaW9uKCkgZmluYWw7CkBAIC05Nyw4ICs5Nyw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRT
ZXR1cEZlYXR1cmVzKGNvbnN0IEFwcGxlUGF5U2V0dXBDb25maWd1cmF0aW9uJiwgY29uc3QgVVJM
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8UmVmPEFwcGxlUGF5U2V0dXBGZWF0dXJl
Pj4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgYmVnaW5BcHBsZVBheVNldHVwKGNvbnN0IEFwcGxl
UGF5U2V0dXBDb25maWd1cmF0aW9uJiwgY29uc3QgVVJMJiwgVmVjdG9yPFJlZlB0cjxBcHBsZVBh
eVNldHVwRmVhdHVyZT4+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFs
OwogCi0gICAgdm9pZCB1cGRhdGVUb3RhbEFuZExpbmVJdGVtcyhjb25zdCBBcHBsZVBheVNlc3Np
b25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXMmKTsKLQogICAgIFBhZ2UmIG1fcGFn
ZTsKICAgICBib29sIG1fY2FuTWFrZVBheW1lbnRzIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9jYW5N
YWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZCB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRFcnJvci5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrUGF5bWVudEVycm9yLmgKaW5kZXggY2RlMzhlZjUwMWM2Li41YmMxY2ExMTk2MzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRFcnJvci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRFcnJvci5oCkBAIC0yNywxMSArMjcs
MTYgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKLSNpbmNsdWRlICJBcHBsZVBheVNlc3Np
b25QYXltZW50UmVxdWVzdC5oIgorI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3JDb2RlLmgiCisjaW5j
bHVkZSAiQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXVzaW5nIE1vY2tQYXltZW50RXJyb3IgPSBQYXltZW50RXJyb3I7CitzdHJ1Y3QgTW9ja1Bh
eW1lbnRFcnJvciB7CisgICAgQXBwbGVQYXlFcnJvckNvZGUgY29kZTsKKyAgICBTdHJpbmcgbWVz
c2FnZTsKKyAgICBPcHRpb25hbDxBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkPiBjb250YWN0Rmll
bGQ7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDE4NDJkZjUx
ZWM4Li45MTBjZjhjMzk2MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjEtMDItMTYg
IERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtQYXltZW50IFJl
cXVlc3RdIGFkZCBhbiBgb2JqZWN0IGRhdGFgIHRvIGBQYXltZW50RGV0YWlsc0Jhc2VgIHNvIHRo
YXQgZGF0YSBzcGVjaWZpYyB0byBBcHBsZSBQYXkgY2FuIGJlIHByb3ZpZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMDIKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzcyMzE5OTQ2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogUGxhdGZvcm0vY29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVz
ZW50ZXIuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlvblBy
ZXNlbnRlci5tbToKKyAgICAgICAgKFdlYktpdDo6dG9QS1BheW1lbnRFcnJvckNvZGUpOgorICAg
ICAgICAoV2ViS2l0Ojp0b05TRXJyb3IpOgorICAgICAgICAoV2ViS2l0Ojp0b05TRXJyb3JzKToK
KyAgICAgICAgKFdlYktpdDo6dG9QS1NoaXBwaW5nTWV0aG9kcyk6CisgICAgICAgIChXZWJLaXQ6
OlBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyOjpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxl
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6
Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXlt
ZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlv
bik6CisgICAgICAgICogUGxhdGZvcm0vY29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVn
YXRlLm1tOgorICAgICAgICAodG9TaGlwcGluZ01ldGhvZCk6CisgICAgICAgICogU2NyaXB0cy93
ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRD
b29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFNoYXJlZC9BcHBsZVBheS9X
ZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAqIFNoYXJlZC9BcHBsZVBheS9X
ZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1l
bnRDb29yZGluYXRvclByb3h5Ojpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OmNvbXBsZXRlU2hpcHBp
bmdDb250YWN0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5h
dG9yUHJveHk6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwcmVzZW50ZXJEaWRTZWxlY3RTaGlwcGlu
Z01ldGhvZCk6CisgICAgICAgICogU2hhcmVkL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29y
ZGluYXRvclByb3h5Q29jb2EuaDoKKyAgICAgICAgKiBTaGFyZWQvQXBwbGVQYXkvY29jb2EvV2Vi
UGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6dG9QS1No
aXBwaW5nTWV0aG9kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHk6OnBsYXRmb3JtUGF5bWVudFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50
Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1Db21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3Jt
Q29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1Db21wbGV0ZVBheW1lbnRNZXRob2RTZWxl
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpmaW5pc2hDcmVhdGluZyk6IERlbGV0ZWQuCisgICAg
ICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9D
b2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbToKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD46OmRlY29kZSk6Cisg
ICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q+
OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFZlY3RvcjxSZWZQdHI8QXBw
bGVQYXlFcnJvcj4+Pjo6ZW5jb2RlKTogQWRkZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8VmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4+OjpkZWNvZGUpOiBBZGRlZC4KKyAgICAg
ICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50RXJyb3I+OjplbmNvZGUpOiBE
ZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRFcnJv
cj46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT46OmRlY29kZSk6IERl
bGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QXBwbGVQYXlTZXNzaW9uUGF5bWVu
dFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdN
ZXRob2Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz46OmVuY29kZSk6
IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QXBwbGVQYXlTZXNzaW9uUGF5
bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAg
ICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+Ojpl
bmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNo
aXBwaW5nQ29udGFjdFVwZGF0ZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+OjplbmNvZGUpOiBEZWxl
dGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9k
VXBkYXRlPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0FwcGxlUGF5
L1dlYlBheW1lbnRDb29yZGluYXRvci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
QXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nQ29u
dGFjdFNlbGVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1lbnRDb29yZGluYXRvcjo6
Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5
bWVudENvb3JkaW5hdG9yOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZCk6CisgICAgICAgIFVzZSBg
QXBwbGVQYXkqVXBkYXRlYCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0cyBzdHJ1Y3R1cmUgaW4g
YW5vdGhlciBvYmplY3QgKGBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6KlVwZGF0ZWAp
LgorICAgICAgICBVc2UgYEFwcGxlUGF5U2hpcHBpbmdNZXRob2RgIGluc3RlYWQgb2YgZHVwbGlj
YXRpbmcgaXRzIHN0cnVjdHVyZSBpbiBhbm90aGVyIG9iamVjdCAoYEFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZGApLgorICAgICAgICBVc2UgYEFwcGxlUGF5RXJy
b3IqYCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0cyBzdHJ1Y3R1cmUgaW4gYW5vdGhlciBvYmpl
Y3QgKGBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6UGF5bWVudEVycm9yOjoqYCkuCisK
IDIwMjEtMDItMTUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAg
IFtQYXltZW50IFJlcXVlc3RdIGFkZCBhbiBgb2JqZWN0IGRhdGFgIHRvIGBQYXltZW50SXRlbWAg
c28gdGhhdCBkYXRhIHNwZWNpZmljIHRvIEFwcGxlIFBheSBjYW4gYmUgcHJvdmlkZWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25Q
cmVzZW50ZXIuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvUGF5bWVudEF1dGhvcml6
YXRpb25QcmVzZW50ZXIuaAppbmRleCBmYzc2NGExMDBlNTIuLjg2MWM4NThkYWU2MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlvblBy
ZXNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvUGF5bWVudEF1dGhv
cml6YXRpb25QcmVzZW50ZXIuaApAQCAtNDEsOCArNDEsMTEgQEAgY2xhc3MgUGF5bWVudDsKIGNs
YXNzIFBheW1lbnRDb250YWN0OwogY2xhc3MgUGF5bWVudE1lcmNoYW50U2Vzc2lvbjsKIGNsYXNz
IFBheW1lbnRNZXRob2Q7Ci1jbGFzcyBQYXltZW50TWV0aG9kVXBkYXRlOwogY2xhc3MgUGF5bWVu
dFNlc3Npb25FcnJvcjsKK3N0cnVjdCBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU7CitzdHJ1
Y3QgQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGlu
Z01ldGhvZDsKK3N0cnVjdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlOwogfQogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTU4LDcgKzYxLDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFs
IHZvaWQgcHJlc2VudGVyRGlkRmluaXNoKFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyJiwg
V2ViQ29yZTo6UGF5bWVudFNlc3Npb25FcnJvciYmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBwcmVzZW50ZXJEaWRTZWxlY3RQYXltZW50TWV0aG9kKFBheW1lbnRBdXRob3JpemF0aW9uUHJl
c2VudGVyJiwgY29uc3QgV2ViQ29yZTo6UGF5bWVudE1ldGhvZCYpID0gMDsKICAgICAgICAgdmly
dHVhbCB2b2lkIHByZXNlbnRlckRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChQYXltZW50QXV0aG9y
aXphdGlvblByZXNlbnRlciYsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnRDb250YWN0JikgPSAwOwot
ICAgICAgICB2aXJ0dWFsIHZvaWQgcHJlc2VudGVyRGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoUGF5
bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXImLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Np
b25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKSA9IDA7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBwcmVzZW50ZXJEaWRTZWxlY3RTaGlwcGluZ01ldGhvZChQYXltZW50QXV0aG9yaXphdGlv
blByZXNlbnRlciYsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2QmKSA9IDA7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwcmVzZW50ZXJXaWxsVmFsaWRhdGVNZXJjaGFudChQYXlt
ZW50QXV0aG9yaXphdGlvblByZXNlbnRlciYsIGNvbnN0IFVSTCYpID0gMDsKICAgICB9OwogCkBA
IC02NywxMCArNzAsMTAgQEAgcHVibGljOgogICAgIENsaWVudCYgY2xpZW50KCkgeyByZXR1cm4g
bV9jbGllbnQ7IH0KIAogICAgIHZvaWQgY29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24oY29uc3Qg
V2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vzc2lvbiYpOwotICAgIHZvaWQgY29tcGxldGVQYXlt
ZW50TWV0aG9kU2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RV
cGRhdGU+Jik7CisgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9u
YWw8V2ViQ29yZTo6QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlPiYmKTsKICAgICB2b2lkIGNv
bXBsZXRlUGF5bWVudFNlc3Npb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhv
cml6YXRpb25SZXN1bHQ+Jik7Ci0gICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVj
dGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+Jik7Ci0g
ICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFdl
YkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPiYpOworICAgIHZvaWQgY29tcGxldGVTaGlwcGlu
Z0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ0NvbnRh
Y3RVcGRhdGU+JiYpOworICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihP
cHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKTsKIAogICAg
IHZpcnR1YWwgdm9pZCBkaXNtaXNzKCkgPSAwOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL1BheW1lbnRBdXRob3JpemF0
aW9uUHJlc2VudGVyLm1tIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9QYXltZW50QXV0
aG9yaXphdGlvblByZXNlbnRlci5tbQppbmRleCBhZTM3MDkzMTViYjcuLmEwNWJjNzJkNTNkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9QYXltZW50QXV0aG9yaXph
dGlvblByZXNlbnRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL1BheW1l
bnRBdXRob3JpemF0aW9uUHJlc2VudGVyLm1tCkBAIC0zMCwxNCArMzAsMjQgQEAKIAogI2ltcG9y
dCAiV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLmgiCiAjaW1wb3J0ICJXZWJQYXltZW50
Q29vcmRpbmF0b3JQcm94eUNvY29hLmgiCisjaW1wb3J0IDxXZWJDb3JlL0FwcGxlUGF5RGV0YWls
c1VwZGF0ZURhdGEuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQXBwbGVQYXlFcnJvci5oPgorI2ltcG9y
dCA8V2ViQ29yZS9BcHBsZVBheUVycm9yQ29kZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBh
eUVycm9yQ29udGFjdEZpZWxkLmg+CisjaW1wb3J0IDxXZWJDb3JlL0FwcGxlUGF5UGF5bWVudE1l
dGhvZFVwZGF0ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVw
ZGF0ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1BheW1lbnRNZXJjaGFudFNlc3Npb24uaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGF5
bWVudE1ldGhvZFVwZGF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYXltZW50U3VtbWFyeUl0ZW1z
Lmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KIAogI2ltcG9ydCA8cGFsL2Nv
Y29hL1Bhc3NLaXRTb2Z0TGluay5oPgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNp
bmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXJBZGRp
dGlvbnMubW0+CisjZW5kaWYKKwogLy8gRklYTUU6IFN0b3Agc29mdCBsaW5raW5nIENvbnRhY3Rz
IG9uY2UgdGhlIGRlcGVuZGVuY3kgY3ljbGUgaXMgcmVtb3ZlZCBvbiBtYWNPUyAoPHJkYXI6Ly9w
cm9ibGVtLzcwODg3OTM0PiksCiAvLyBvciB3aGVuIENvbnRhY3RzIGNhbiBiZSB1cHdhcmQgbGlu
a2VkICg8cmRhcjovL3Byb2JsZW0vMzYxMzUxMzc+KS4KIFNPRlRfTElOS19GUkFNRVdPUksoQ29u
dGFjdHMpOwpAQCAtNzEsODYgKzgxLDg2IEBAIHN0YXRpYyBQS1BheW1lbnRBdXRob3JpemF0aW9u
U3RhdHVzIHRvUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyhXZWJDb3JlOjpQYXltCiAgICAg
fQogfQogCi1zdGF0aWMgUEtQYXltZW50RXJyb3JDb2RlIHRvUEtQYXltZW50RXJyb3JDb2RlKFdl
YkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZSBjb2RlKQorc3RhdGljIFBLUGF5bWVudEVycm9yQ29k
ZSB0b1BLUGF5bWVudEVycm9yQ29kZShXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29kZSBjb2RlKQog
ewogICAgIHN3aXRjaCAoY29kZSkgewotICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpD
b2RlOjpVbmtub3duOgorICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvZGU6OlVua25v
d246CiAgICAgICAgIHJldHVybiBQS1BheW1lbnRVbmtub3duRXJyb3I7Ci0gICAgY2FzZSBXZWJD
b3JlOjpQYXltZW50RXJyb3I6OkNvZGU6OlNoaXBwaW5nQ29udGFjdEludmFsaWQ6CisgICAgY2Fz
ZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxpZDoKICAg
ICAgICAgcmV0dXJuIFBLUGF5bWVudFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJvcjsKLSAgICBj
YXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6QmlsbGluZ0NvbnRhY3RJbnZhbGlkOgor
ICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvZGU6OkJpbGxpbmdDb250YWN0SW52YWxp
ZDoKICAgICAgICAgcmV0dXJuIFBLUGF5bWVudEJpbGxpbmdDb250YWN0SW52YWxpZEVycm9yOwot
ICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb2RlOjpBZGRyZXNzVW5zZXJ2aWNlYWJs
ZToKKyAgICBjYXNlIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb2RlOjpBZGRyZXNzVW5zZXJ2aWNl
YWJsZToKICAgICAgICAgcmV0dXJuIFBLUGF5bWVudFNoaXBwaW5nQWRkcmVzc1Vuc2VydmljZWFi
bGVFcnJvcjsKICAgICB9CiB9CiAKLXN0YXRpYyBOU0Vycm9yICp0b05TRXJyb3IoY29uc3QgV2Vi
Q29yZTo6UGF5bWVudEVycm9yJiBlcnJvcikKK3N0YXRpYyBOU0Vycm9yICp0b05TRXJyb3IoY29u
c3QgV2ViQ29yZTo6QXBwbGVQYXlFcnJvciYgZXJyb3IpCiB7CiAgICAgYXV0byB1c2VySW5mbyA9
IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XSk7Ci0gICAgW3VzZXJJ
bmZvIHNldE9iamVjdDplcnJvci5tZXNzYWdlIGZvcktleTpOU0xvY2FsaXplZERlc2NyaXB0aW9u
S2V5XTsKKyAgICBbdXNlckluZm8gc2V0T2JqZWN0OmVycm9yLm1lc3NhZ2UoKSBmb3JLZXk6TlNM
b2NhbGl6ZWREZXNjcmlwdGlvbktleV07CiAKLSAgICBpZiAoZXJyb3IuY29udGFjdEZpZWxkKSB7
CisgICAgaWYgKGF1dG8gY29udGFjdEZpZWxkID0gZXJyb3IuY29udGFjdEZpZWxkKCkpIHsKICAg
ICAgICAgTlNTdHJpbmcgKnBrQ29udGFjdEZpZWxkID0gbmlsOwogICAgICAgICBOU1N0cmluZyAq
cG9zdGFsQWRkcmVzc0tleSA9IG5pbDsKIAotICAgICAgICBzd2l0Y2ggKCplcnJvci5jb250YWN0
RmllbGQpIHsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVs
ZDo6UGhvbmVOdW1iZXI6CisgICAgICAgIHN3aXRjaCAoKmNvbnRhY3RGaWVsZCkgeworICAgICAg
ICBjYXNlIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlBob25lTnVtYmVyOgog
ICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZp
ZWxkUGhvbmVOdW1iZXIoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAg
ICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OkVtYWlsQWRkcmVz
czoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpFbWFp
bEFkZHJlc3M6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRf
UEtDb250YWN0RmllbGRFbWFpbEFkZHJlc3MoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6
Ok5hbWU6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6
TmFtZToKICAgICAgICAgICAgIHBrQ29udGFjdEZpZWxkID0gUEFMOjpnZXRfUGFzc0tpdF9QS0Nv
bnRhY3RGaWVsZE5hbWUoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAg
ICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlBob25ldGljTmFt
ZToKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpQaG9u
ZXRpY05hbWU6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRf
UEtDb250YWN0RmllbGRQaG9uZXRpY05hbWUoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6
OlBvc3RhbEFkZHJlc3M6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRh
Y3RGaWVsZDo6UG9zdGFsQWRkcmVzczoKICAgICAgICAgICAgIHBrQ29udGFjdEZpZWxkID0gUEFM
OjpnZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBvc3RhbEFkZHJlc3MoKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9y
OjpDb250YWN0RmllbGQ6OkFkZHJlc3NMaW5lczoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBs
ZVBheUVycm9yQ29udGFjdEZpZWxkOjpBZGRyZXNzTGluZXM6CiAgICAgICAgICAgICBwa0NvbnRh
Y3RGaWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7
CiAgICAgICAgICAgICBwb3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzU3RyZWV0
S2V5KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAotICAgICAgICBjYXNlIFdl
YkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpTdWJMb2NhbGl0eToKKyAgICAgICAg
Y2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpTdWJMb2NhbGl0eToKICAg
ICAgICAgICAgIHBrQ29udGFjdEZpZWxkID0gUEFMOjpnZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVs
ZFBvc3RhbEFkZHJlc3MoKTsKICAgICAgICAgICAgIHBvc3RhbEFkZHJlc3NLZXkgPSBnZXRDTlBv
c3RhbEFkZHJlc3NTdWJMb2NhbGl0eUtleSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICAKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6
TG9jYWxpdHk6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVs
ZDo6TG9jYWxpdHk6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0X1Bhc3NL
aXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CiAgICAgICAgICAgICBwb3N0YWxBZGRy
ZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzQ2l0eUtleSgpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRh
Y3RGaWVsZDo6UG9zdGFsQ29kZToKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9y
Q29udGFjdEZpZWxkOjpQb3N0YWxDb2RlOgogICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQ
QUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRkcmVzcygpOwogICAgICAgICAg
ICAgcG9zdGFsQWRkcmVzc0tleSA9IGdldENOUG9zdGFsQWRkcmVzc1Bvc3RhbENvZGVLZXkoKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6
UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlN1YkFkbWluaXN0cmF0aXZlQXJlYToKKyAgICAg
ICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpTdWJBZG1pbmlzdHJh
dGl2ZUFyZWE6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRf
UEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CiAgICAgICAgICAgICBwb3N0YWxBZGRyZXNz
S2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzU3ViQWRtaW5pc3RyYXRpdmVBcmVhS2V5KCk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIAotICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1l
bnRFcnJvcjo6Q29udGFjdEZpZWxkOjpBZG1pbmlzdHJhdGl2ZUFyZWE6CisgICAgICAgIGNhc2Ug
V2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6QWRtaW5pc3RyYXRpdmVBcmVhOgog
ICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZp
ZWxkUG9zdGFsQWRkcmVzcygpOwogICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdldENO
UG9zdGFsQWRkcmVzc1N0YXRlS2V5KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IAotICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpDb3Vu
dHJ5OgorICAgICAgICBjYXNlIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OkNv
dW50cnk6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtD
b250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CiAgICAgICAgICAgICBwb3N0YWxBZGRyZXNzS2V5
ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzQ291bnRyeUtleSgpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RG
aWVsZDo6Q291bnRyeUNvZGU6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNv
bnRhY3RGaWVsZDo6Q291bnRyeUNvZGU6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBB
TDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CiAgICAgICAgICAg
ICBwb3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzSVNPQ291bnRyeUNvZGVLZXko
KTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTYxLDE3ICsxNzEsMjAgQEAgc3RhdGljIE5TRXJy
b3IgKnRvTlNFcnJvcihjb25zdCBXZWJDb3JlOjpQYXltZW50RXJyb3ImIGVycm9yKQogICAgICAg
ICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDpwb3N0YWxBZGRyZXNzS2V5IGZvcktleTpQQUw6Omdl
dF9QYXNzS2l0X1BLUGF5bWVudEVycm9yUG9zdGFsQWRkcmVzc1VzZXJJbmZvS2V5KCldOwogICAg
IH0KIAotICAgIHJldHVybiBbTlNFcnJvciBlcnJvcldpdGhEb21haW46UEFMOjpnZXRfUGFzc0tp
dF9QS1BheW1lbnRFcnJvckRvbWFpbigpIGNvZGU6dG9QS1BheW1lbnRFcnJvckNvZGUoZXJyb3Iu
Y29kZSkgdXNlckluZm86dXNlckluZm8uZ2V0KCldOworICAgIHJldHVybiBbTlNFcnJvciBlcnJv
cldpdGhEb21haW46UEFMOjpnZXRfUGFzc0tpdF9QS1BheW1lbnRFcnJvckRvbWFpbigpIGNvZGU6
dG9QS1BheW1lbnRFcnJvckNvZGUoZXJyb3IuY29kZSgpKSB1c2VySW5mbzp1c2VySW5mby5nZXQo
KV07CiB9CiAKLXN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gdG9OU0Vycm9ycyhjb25zdCBWZWN0
b3I8V2ViQ29yZTo6UGF5bWVudEVycm9yPiYgZXJyb3JzKQorc3RhdGljIFJldGFpblB0cjxOU0Fy
cmF5PiB0b05TRXJyb3JzKGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6QXBwbGVQYXlFcnJv
cj4+JiBlcnJvcnMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZU5TQXJyYXkoZXJyb3JzLCBbXSAoYXV0
byYgZXJyb3IpIHsKLSAgICAgICAgcmV0dXJuIHRvTlNFcnJvcihlcnJvcik7Ci0gICAgfSk7Cisg
ICAgYXV0byBhcnJheSA9IGFkb3B0TlMoTlNNdXRhYmxlQXJyYXkuYXJyYXkpOworICAgIGZvciAo
YXV0byYgZXJyb3IgOiBlcnJvcnMpIHsKKyAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAg
W2FycmF5IGFkZE9iamVjdDp0b05TRXJyb3IoKmVycm9yKV07CisgICAgfQorICAgIHJldHVybiBh
cnJheTsKIH0KIAotc3RhdGljIFJldGFpblB0cjxOU0FycmF5PiB0b1BLU2hpcHBpbmdNZXRob2Rz
KGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hp
cHBpbmdNZXRob2Q+JiBzaGlwcGluZ01ldGhvZHMpCitzdGF0aWMgUmV0YWluUHRyPE5TQXJyYXk+
IHRvUEtTaGlwcGluZ01ldGhvZHMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBp
bmdNZXRob2Q+JiBzaGlwcGluZ01ldGhvZHMpCiB7CiAgICAgcmV0dXJuIGNyZWF0ZU5TQXJyYXko
c2hpcHBpbmdNZXRob2RzLCBbXSAoYXV0byYgbWV0aG9kKSB7CiAgICAgICAgIHJldHVybiB0b1BL
U2hpcHBpbmdNZXRob2QobWV0aG9kKTsKQEAgLTE4NCw3ICsxOTcsNyBAQCB2b2lkIFBheW1lbnRB
dXRob3JpemF0aW9uUHJlc2VudGVyOjpjb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBX
ZWJDb3JlOjpQYQogICAgIFtwbGF0Zm9ybURlbGVnYXRlKCkgY29tcGxldGVNZXJjaGFudFZhbGlk
YXRpb246bWVyY2hhbnRTZXNzaW9uLnBrUGF5bWVudE1lcmNoYW50U2Vzc2lvbigpIGVycm9yOm5p
bF07CiB9CiAKLXZvaWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlUGF5
bWVudE1ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9k
VXBkYXRlPiYgdXBkYXRlKQordm9pZCBQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29t
cGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5UGF5
bWVudE1ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCiB7CiAgICAgQVNTRVJUKHBsYXRmb3JtRGVsZWdh
dGUoKSk7CiAgICAgaWYgKCF1cGRhdGUpIHsKQEAgLTE5Miw3ICsyMDUsMTQgQEAgdm9pZCBQYXlt
ZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9u
KGNvbnN0IE9wdGlvbmEKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFtwbGF0Zm9ybURl
bGVnYXRlKCkgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uOnVwZGF0ZS0+cGxhdGZvcm1V
cGRhdGUoKV07CisgICAgYXV0byBwYXltZW50TWV0aG9kVXBkYXRlID0gYWRvcHROUyhbUEFMOjph
bGxvY1BLUGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0
aFBheW1lbnRTdW1tYXJ5SXRlbXM6V2ViQ29yZTo6cGxhdGZvcm1TdW1tYXJ5SXRlbXMoV1RGTW92
ZSh1cGRhdGUtPm5ld1RvdGFsKSwgV1RGTW92ZSh1cGRhdGUtPm5ld0xpbmVJdGVtcykpXSk7Cisj
aWYgSEFWRShQQVNTS0lUX0lOU1RBTExNRU5UUykgJiYgRU5BQkxFKEFQUExFX1BBWV9JTlNUQUxM
TUVOVFMpCisgICAgW3BheW1lbnRNZXRob2RVcGRhdGUgc2V0SW5zdGFsbG1lbnRHcm91cElkZW50
aWZpZXI6V1RGTW92ZSh1cGRhdGUtPmluc3RhbGxtZW50R3JvdXBJZGVudGlmaWVyKV07CisjZW5k
aWYgLy8gSEFWRShQQVNTS0lUX0lOU1RBTExNRU5UUykgJiYgRU5BQkxFKEFQUExFX1BBWV9JTlNU
QUxMTUVOVFMpCisjaWYgZGVmaW5lZChQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlckFkZGl0
aW9uc19jb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24pCisgICAgUGF5bWVudEF1dGhvcml6
YXRpb25QcmVzZW50ZXJBZGRpdGlvbnNfY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uCisj
ZW5kaWYKKyAgICBbcGxhdGZvcm1EZWxlZ2F0ZSgpIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVj
dGlvbjpwYXltZW50TWV0aG9kVXBkYXRlLmdldCgpXTsKIH0KIAogdm9pZCBQYXltZW50QXV0aG9y
aXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVQYXltZW50U2Vzc2lvbihjb25zdCBPcHRpb25hbDxX
ZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mIHJlc3VsdCkKQEAgLTIwMyw3ICsy
MjMsNyBAQCB2b2lkIFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyOjpjb21wbGV0ZVBheW1l
bnRTZXNzaW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNvcgogICAgIFtwbGF0Zm9ybURlbGVnYXRlKCkg
Y29tcGxldGVQYXltZW50U2Vzc2lvbjpzdGF0dXMgZXJyb3JzOmVycm9ycy5nZXQoKV07CiB9CiAK
LXZvaWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlU2hpcHBpbmdDb250
YWN0U2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0
ZT4mIHVwZGF0ZSkKK3ZvaWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRl
U2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBp
bmdDb250YWN0VXBkYXRlPiYmIHVwZGF0ZSkKIHsKICAgICBBU1NFUlQocGxhdGZvcm1EZWxlZ2F0
ZSgpKTsKICAgICBpZiAoIXVwZGF0ZSkgewpAQCAtMjExLDE0ICsyMzEsMTYgQEAgdm9pZCBQYXlt
ZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rp
b24oY29uc3QgT3B0aW8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBX
ZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGUgc2hvdWxkIGtub3cgaG93IHRvIGNvbnZlcnQg
aXRzZWxmIHRvIGEgUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nQ29udGFjdFVwZGF0ZS4KLSAgICBh
dXRvIHNoaXBwaW5nQ29udGFjdFVwZGF0ZSA9IGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRS
ZXF1ZXN0U2hpcHBpbmdDb250YWN0VXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aEVycm9yczp0b05T
RXJyb3JzKHVwZGF0ZS0+ZXJyb3JzKS5nZXQoKQotICAgICAgICBwYXltZW50U3VtbWFyeUl0ZW1z
OldlYkNvcmU6OnBsYXRmb3JtU3VtbWFyeUl0ZW1zKHVwZGF0ZS0+bmV3VG90YWxBbmRMaW5lSXRl
bXMpCi0gICAgICAgIHNoaXBwaW5nTWV0aG9kczp0b1BLU2hpcHBpbmdNZXRob2RzKHVwZGF0ZS0+
bmV3U2hpcHBpbmdNZXRob2RzKS5nZXQoKV0pOworICAgIGF1dG8gc2hpcHBpbmdDb250YWN0VXBk
YXRlID0gYWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVudFJlcXVlc3RTaGlwcGluZ0NvbnRhY3RV
cGRhdGVJbnN0YW5jZSgpIGluaXRXaXRoRXJyb3JzOnRvTlNFcnJvcnMoV1RGTW92ZSh1cGRhdGUt
PmVycm9ycykpLmdldCgpCisgICAgICAgIHBheW1lbnRTdW1tYXJ5SXRlbXM6V2ViQ29yZTo6cGxh
dGZvcm1TdW1tYXJ5SXRlbXMoV1RGTW92ZSh1cGRhdGUtPm5ld1RvdGFsKSwgV1RGTW92ZSh1cGRh
dGUtPm5ld0xpbmVJdGVtcykpCisgICAgICAgIHNoaXBwaW5nTWV0aG9kczp0b1BLU2hpcHBpbmdN
ZXRob2RzKFdURk1vdmUodXBkYXRlLT5uZXdTaGlwcGluZ01ldGhvZHMpKS5nZXQoKV0pOworI2lm
IGRlZmluZWQoUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXJBZGRpdGlvbnNfY29tcGxldGVT
aGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24pCisgICAgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50
ZXJBZGRpdGlvbnNfY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24KKyNlbmRpZgogICAg
IFtwbGF0Zm9ybURlbGVnYXRlKCkgY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb246c2hp
cHBpbmdDb250YWN0VXBkYXRlLmdldCgpXTsKIH0KIAotdm9pZCBQYXltZW50QXV0aG9yaXphdGlv
blByZXNlbnRlcjo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25h
bDxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4mIHVwZGF0ZSkKK3ZvaWQgUGF5bWVudEF1
dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0
aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCiB7
CiAgICAgQVNTRVJUKHBsYXRmb3JtRGVsZWdhdGUoKSk7CiAgICAgaWYgKCF1cGRhdGUpIHsKQEAg
LTIyNiw4ICsyNDgsMTAgQEAgdm9pZCBQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29t
cGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb24KICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZSBz
aG91bGQga25vdyBob3cgdG8gY29udmVydCBpdHNlbGYgdG8gYSBQS1BheW1lbnRSZXF1ZXN0U2hp
cHBpbmdNZXRob2RVcGRhdGUuCi0gICAgYXV0byBzaGlwcGluZ01ldGhvZFVwZGF0ZSA9IGFkb3B0
TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdNZXRob2RVcGRhdGVJbnN0YW5j
ZSgpIGluaXRXaXRoUGF5bWVudFN1bW1hcnlJdGVtczpXZWJDb3JlOjpwbGF0Zm9ybVN1bW1hcnlJ
dGVtcyh1cGRhdGUtPm5ld1RvdGFsQW5kTGluZUl0ZW1zKV0pOworICAgIGF1dG8gc2hpcHBpbmdN
ZXRob2RVcGRhdGUgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdFNoaXBwaW5n
TWV0aG9kVXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aFBheW1lbnRTdW1tYXJ5SXRlbXM6V2ViQ29y
ZTo6cGxhdGZvcm1TdW1tYXJ5SXRlbXMoV1RGTW92ZSh1cGRhdGUtPm5ld1RvdGFsKSwgV1RGTW92
ZSh1cGRhdGUtPm5ld0xpbmVJdGVtcykpXSk7CisjaWYgZGVmaW5lZChQYXltZW50QXV0aG9yaXph
dGlvblByZXNlbnRlckFkZGl0aW9uc19jb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKQor
ICAgIFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyQWRkaXRpb25zX2NvbXBsZXRlU2hpcHBp
bmdNZXRob2RTZWxlY3Rpb24KKyNlbmRpZgogICAgIFtwbGF0Zm9ybURlbGVnYXRlKCkgY29tcGxl
dGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbjpzaGlwcGluZ01ldGhvZFVwZGF0ZS5nZXQoKV07CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvV0tQYXltZW50QXV0
aG9yaXphdGlvbkRlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9XS1Bh
eW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0KaW5kZXggMzE2YWE1NmVjMTI3Li5iMWI1ZWI4
Yjk1NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvV0tQYXltZW50
QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29j
b2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tCkBAIC0xNzMsMTYgKzE3MywxNSBA
QCAtICh2b2lkKV9kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3Q6KFBLQ29udGFjdCAqKWNvbnRhY3Qg
Y29tcGxldGlvbjooV2ViS2l0OjpEaWRTZQogICAgIHByZXNlbnRlci0+Y2xpZW50KCkucHJlc2Vu
dGVyRGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KCpwcmVzZW50ZXIsIFdlYkNvcmU6OlBheW1lbnRD
b250YWN0KGNvbnRhY3QpKTsKIH0KIAotc3RhdGljIFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCB0b1NoaXBwaW5nTWV0aG9kKFBLU2hpcHBpbmdN
ZXRob2QgKnNoaXBwaW5nTWV0aG9kKQorc3RhdGljIFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdN
ZXRob2QgdG9TaGlwcGluZ01ldGhvZChQS1NoaXBwaW5nTWV0aG9kICpzaGlwcGluZ01ldGhvZCkK
IHsKICAgICBBU1NFUlQoc2hpcHBpbmdNZXRob2QpOwogCi0gICAgV2ViQ29yZTo6QXBwbGVQYXlT
ZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kIHJlc3VsdDsKKyAgICBXZWJDb3Jl
OjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kIHJlc3VsdDsKICAgICByZXN1bHQuYW1vdW50ID0gc2hp
cHBpbmdNZXRob2QuYW1vdW50LnN0cmluZ1ZhbHVlOwogICAgIHJlc3VsdC5kZXRhaWwgPSBzaGlw
cGluZ01ldGhvZC5kZXRhaWw7CiAgICAgcmVzdWx0LmlkZW50aWZpZXIgPSBzaGlwcGluZ01ldGhv
ZC5pZGVudGlmaWVyOwogICAgIHJlc3VsdC5sYWJlbCA9IHNoaXBwaW5nTWV0aG9kLmxhYmVsOwot
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKaW5kZXggYmQzNDdjMzZmYjMxLi5kOTZkZTIyNWVjNjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktp
dC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtNzE0LDggKzcxNCw2IEBAIGRlZiBoZWFk
ZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlJzogWyc8V2Vi
Q29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VX
b3JrZXJTdGF0ZSc6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCi0gICAgICAg
ICdXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGUnOiBbJzxXZWJDb3JlL0FwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0Lmg+J10sCi0gICAgICAgICdXZWJDb3JlOjpTaGlwcGluZ01ldGhv
ZFVwZGF0ZSc6IFsnPFdlYkNvcmUvQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaD4nXSwK
ICAgICAgICAgJ1dlYkNvcmU6OlNob3VsZEFza0lUUCc6IFsnPFdlYkNvcmUvTmV0d29ya1N0b3Jh
Z2VTZXNzaW9uLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTaG91bGROb3RpZnlXaGVuUmVzb2x2
ZWQnOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29y
ZTo6U2hvdWxkU2FtcGxlJzogWyc8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPidd
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENv
b3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IGM1ODkwZTBhMmZmYy4uZjVjYTQxNzdhMTgz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29v
cmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2Vi
UGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0zMyw2ICszMyw5IEBACiAjaW5jbHVkZSAi
V2ViUGF5bWVudENvb3JkaW5hdG9yTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYXltZW50Q29v
cmRpbmF0b3JQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0FwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
YXltZW50QXV0aG9yaXphdGlvblN0YXR1cy5oPgogCiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0soYXNz
ZXJ0aW9uKSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0aW9uLCBtZXNzYWdlU2VuZGVyQ29ubmVj
dGlvbigpKQpAQCAtMTI4LDcgKzEzMSw3IEBAIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHk6OmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFdlYkNvcmU6OlBheW1lCiAgICAg
bV9tZXJjaGFudFZhbGlkYXRpb25TdGF0ZSA9IE1lcmNoYW50VmFsaWRhdGlvblN0YXRlOjpWYWxp
ZGF0aW9uQ29tcGxldGU7CiB9CiAKLXZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OmNv
bXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hp
cHBpbmdNZXRob2RVcGRhdGU+JiB1cGRhdGUpCit2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclBy
b3h5Ojpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFw
cGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYgdXBkYXRlKQogewogICAgIC8vIEl0J3MgcG9z
c2libGUgdGhhdCB0aGUgcGF5bWVudCBoYXMgYmVlbiBjYW5jZWxlZCBhbHJlYWR5LgogICAgIGlm
IChtX3N0YXRlID09IFN0YXRlOjpJZGxlKQpAQCAtMTM2LDExICsxMzksMTEgQEAgdm9pZCBXZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihj
b25zdCBPcHRpb25hbDwKIAogICAgIE1FU1NBR0VfQ0hFQ0sobV9zdGF0ZSA9PSBTdGF0ZTo6U2hp
cHBpbmdNZXRob2RTZWxlY3RlZCk7CiAKLSAgICBwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdNZXRo
b2RTZWxlY3Rpb24odXBkYXRlKTsKKyAgICBwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdNZXRob2RT
ZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUpKTsKICAgICBtX3N0YXRlID0gU3RhdGU6OkFjdGl2ZTsK
IH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxldGVTaGlwcGluZ0Nv
bnRhY3RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBk
YXRlPiYgdXBkYXRlKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxldGVT
aGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGlu
Z0NvbnRhY3RVcGRhdGU+JiYgdXBkYXRlKQogewogICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0
aGUgcGF5bWVudCBoYXMgYmVlbiBjYW5jZWxlZCBhbHJlYWR5LgogICAgIGlmIChtX3N0YXRlID09
IFN0YXRlOjpJZGxlKQpAQCAtMTQ4LDExICsxNTEsMTEgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eTo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oY29uc3QgT3B0aW9u
YWwKIAogICAgIE1FU1NBR0VfQ0hFQ0sobV9zdGF0ZSA9PSBTdGF0ZTo6U2hpcHBpbmdDb250YWN0
U2VsZWN0ZWQpOwogCi0gICAgcGxhdGZvcm1Db21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlv
bih1cGRhdGUpOworICAgIHBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24o
V1RGTW92ZSh1cGRhdGUpKTsKICAgICBtX3N0YXRlID0gU3RhdGU6OkFjdGl2ZTsKIH0KIAotdm9p
ZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0
aW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+JiB1cGRhdGUp
Cit2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5Ojpjb21wbGV0ZVBheW1lbnRNZXRob2RT
ZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlPiYm
IHVwZGF0ZSkKIHsKICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHBheW1lbnQgaGFzIGJl
ZW4gY2FuY2VsZWQgYWxyZWFkeS4KICAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SWRsZSkKQEAg
LTE2MCw3ICsxNjMsNyBAQCB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5Ojpjb21wbGV0
ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8VwogCiAgICAgTUVTU0FHRV9D
SEVDSyhtX3N0YXRlID09IFN0YXRlOjpQYXltZW50TWV0aG9kU2VsZWN0ZWQpOwogCi0gICAgcGxh
dGZvcm1Db21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24odXBkYXRlKTsKKyAgICBwbGF0Zm9y
bUNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihXVEZNb3ZlKHVwZGF0ZSkpOwogICAgIG1f
c3RhdGUgPSBTdGF0ZTo6QWN0aXZlOwogfQogCkBAIC0yMTgsNyArMjIxLDcgQEAgdm9pZCBXZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eTo6cHJlc2VudGVyRGlkRmluaXNoKFBheW1lbnRBdXRob3Jp
emF0aW9uUHJlc2VudGUKICAgICBkaWRSZWFjaEZpbmFsU3RhdGUoV1RGTW92ZShlcnJvcikpOwog
fQogCi12b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwcmVzZW50ZXJEaWRTZWxlY3RT
aGlwcGluZ01ldGhvZChQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlciYsIGNvbnN0IFdlYkNv
cmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYgc2hpcHBp
bmdNZXRob2QpCit2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwcmVzZW50ZXJEaWRT
ZWxlY3RTaGlwcGluZ01ldGhvZChQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlciYsIGNvbnN0
IFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQogewogICAg
IEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpBY3RpdmUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuaApp
bmRleCA2NTFjNzEwMTk2N2YuLmUwY2QyYzZjNjMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oCkBA
IC01MSw3ICs1MSwxMCBAQCBjbGFzcyBQYXltZW50OwogY2xhc3MgUGF5bWVudENvbnRhY3Q7CiBj
bGFzcyBQYXltZW50TWVyY2hhbnRTZXNzaW9uOwogY2xhc3MgUGF5bWVudE1ldGhvZDsKLWNsYXNz
IFBheW1lbnRNZXRob2RVcGRhdGU7CitzdHJ1Y3QgQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRl
Oworc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlOworc3RydWN0IEFwcGxlUGF5
U2hpcHBpbmdNZXRob2Q7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZTsKIH0K
IAogT0JKQ19DTEFTUyBOU09iamVjdDsKQEAgLTExNCw3ICsxMTcsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgcHJlc2VudGVyRGlkRmluaXNoKFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyJiwg
V2ViQ29yZTo6UGF5bWVudFNlc3Npb25FcnJvciYmKSBmaW5hbDsKICAgICB2b2lkIHByZXNlbnRl
ckRpZFNlbGVjdFBheW1lbnRNZXRob2QoUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXImLCBj
b25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9kJikgZmluYWw7CiAgICAgdm9pZCBwcmVzZW50ZXJE
aWRTZWxlY3RTaGlwcGluZ0NvbnRhY3QoUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXImLCBj
b25zdCBXZWJDb3JlOjpQYXltZW50Q29udGFjdCYpIGZpbmFsOwotICAgIHZvaWQgcHJlc2VudGVy
RGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXImLCBj
b25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRo
b2QmKSBmaW5hbDsKKyAgICB2b2lkIHByZXNlbnRlckRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKFBh
eW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyJiwgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTaGlw
cGluZ01ldGhvZCYpIGZpbmFsOwogICAgIHZvaWQgcHJlc2VudGVyV2lsbFZhbGlkYXRlTWVyY2hh
bnQoUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXImLCBjb25zdCBVUkwmKSBmaW5hbDsKIAog
ICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKQEAgLTEyMyw5ICsxMjYsOSBAQCBwcml2YXRlOgogICAg
IHZvaWQgb3BlblBheW1lbnRTZXR1cChjb25zdCBTdHJpbmcmIG1lcmNoYW50SWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKICAgICB2b2lkIHNob3dQYXltZW50VUkoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgZGVzdGlu
YXRpb25JRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5hdGluZ1VSTFN0cmluZywgY29uc3QgVmVjdG9y
PFN0cmluZz4mIGxpbmtJY29uVVJMU3RyaW5ncywgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3QmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAg
ICB2b2lkIGNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRN
ZXJjaGFudFNlc3Npb24mKTsKLSAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rp
b24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+Jik7Ci0gICAg
dm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJD
b3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+Jik7Ci0gICAgdm9pZCBjb21wbGV0ZVBheW1lbnRN
ZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0
ZT4mKTsKKyAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8
V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJik7CisgICAgdm9pZCBjb21w
bGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNo
aXBwaW5nQ29udGFjdFVwZGF0ZT4mJik7CisgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRob2RT
ZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlPiYm
KTsKICAgICB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24oY29uc3QgT3B0aW9uYWw8V2ViQ29y
ZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+Jik7CiAgICAgdm9pZCBhYm9ydFBheW1lbnRT
ZXNzaW9uKCk7CiAgICAgdm9pZCBjYW5jZWxQYXltZW50U2Vzc2lvbigpOwpAQCAtMTQ4LDkgKzE1
MSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybU9wZW5QYXltZW50U2V0dXAoY29uc3Qg
U3RyaW5nJiBtZXJjaGFudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG9tYWluTmFtZSwgV1RG
OjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKICAgICB2b2lkIHBs
YXRmb3JtU2hvd1BheW1lbnRVSShjb25zdCBVUkwmIG9yaWdpbmF0aW5nVVJMLCBjb25zdCBWZWN0
b3I8VVJMPiYgbGlua0ljb25VUkxzLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQg
cGxhdGZvcm1Db21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpQYXltZW50
TWVyY2hhbnRTZXNzaW9uJik7Ci0gICAgdm9pZCBwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdNZXRo
b2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+
Jik7Ci0gICAgdm9pZCBwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKGNv
bnN0IE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mKTsKLSAgICB2b2lk
IHBsYXRmb3JtQ29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFdl
YkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+Jik7CisgICAgdm9pZCBwbGF0Zm9ybUNvbXBsZXRl
U2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGlu
Z01ldGhvZFVwZGF0ZT4mJik7CisgICAgdm9pZCBwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdDb250
YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBk
YXRlPiYmKTsKKyAgICB2b2lkIHBsYXRmb3JtQ29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9u
KE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJik7CiAgICAg
dm9pZCBwbGF0Zm9ybUNvbXBsZXRlUGF5bWVudFNlc3Npb24oY29uc3QgT3B0aW9uYWw8V2ViQ29y
ZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+Jik7CiAgICAgdm9pZCBwbGF0Zm9ybUhpZGVQ
YXltZW50VUkoKTsKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggYzE0OWU0ZDJlYzI5Li40YzU0Y2ZiMmY0YmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclBy
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBh
eW1lbnRDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMiw5ICszMiw5IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5IE5vdFJlZkNvdW50ZWQgewogCiAgICAg
U2hvd1BheW1lbnRVSShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBkZXN0aW5hdGlvbklELCBTdHJp
bmcgb3JpZ2luYXRpbmdVUkxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+IGxpbmtJY29uVVJMU3RyaW5n
cywgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QgcGF5bWVudFJlcXVlc3Qp
IC0+IChib29sIHJlc3VsdCkgU3luY2hyb25vdXMKICAgICBDb21wbGV0ZU1lcmNoYW50VmFsaWRh
dGlvbihXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uIHBheW1lbnRNZXJjaGFudFNlc3Np
b24pCi0gICAgQ29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3Jl
OjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4gdXBkYXRlKQotICAgIENvbXBsZXRlU2hpcHBpbmdDb250
YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT4gdXBk
YXRlKQotICAgIENvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3Jl
OjpQYXltZW50TWV0aG9kVXBkYXRlPiB1cGRhdGUpCisgICAgQ29tcGxldGVTaGlwcGluZ01ldGhv
ZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRl
PiB1cGRhdGUpCisgICAgQ29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8
V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+IHVwZGF0ZSkKKyAgICBDb21w
bGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlQYXlt
ZW50TWV0aG9kVXBkYXRlPiB1cGRhdGUpCiAgICAgQ29tcGxldGVQYXltZW50U2Vzc2lvbihPcHRp
b25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4gcmVzdWx0KQogICAgIEFi
b3J0UGF5bWVudFNlc3Npb24oKQogICAgIENhbmNlbFBheW1lbnRTZXNzaW9uKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5Q29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L2NvY29hL1dl
YlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EuaAppbmRleCA5Mjc5OTA5MjdhZjIuLjIzNjY2
YjczNjQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvY29jb2Ev
V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EuaApAQCAt
MjcsMTYgKzI3LDE4IEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCi0jaW1wb3J0IDxXZWJD
b3JlL0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Lmg+Ci0KIE9CSkNfQ0xBU1MgUEtTaGlw
cGluZ01ldGhvZDsKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IEFwcGxlUGF5U2hpcHBp
bmdNZXRob2Q7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAvLyBGSVhNRTogUmF0aGVyIHRo
YW4gaGF2aW5nIHRoZXNlIGZyZWUgZnVuY3Rpb25zIHNjYXR0ZXJlZCBhYm91dCwgQXBwbGUgUGF5
IGRhdGEgdHlwZXMgc2hvdWxkIGtub3cKIC8vIGhvdyB0byBjb252ZXJ0IHRoZW1zZWx2ZXMgdG8g
YW5kIGZyb20gdGhlaXIgcGxhdGZvcm0gcmVwcmVzZW50YXRpb25zLgogTlNEZWNpbWFsTnVtYmVy
ICp0b0RlY2ltYWxOdW1iZXIoY29uc3QgU3RyaW5nJiBhbW91bnQpOwotUEtTaGlwcGluZ01ldGhv
ZCAqdG9QS1NoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpOworUEtTaGlwcGluZ01ldGhvZCAqdG9QS1NoaXBw
aW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2QmKTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Fw
cGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNv
Y29hLm1tCmluZGV4IDQ0MDJhNDkwOTE5Ni4uOGZjYjVhZjFiZTNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94
eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L2NvY29hL1dlYlBh
eW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EubW0KQEAgLTM2LDYgKzM2LDEwIEBACiAjaW1wb3J0
ICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oIgogI2ltcG9ydCAiV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW1w
b3J0IDxXZWJDb3JlL0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9B
cHBsZVBheVNoaXBwaW5nTWV0aG9kLmg+CisjaW1wb3J0IDxXZWJDb3JlL0FwcGxlUGF5U2hpcHBp
bmdNZXRob2RVcGRhdGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGF5bWVudEF1dGhvcml6YXRpb25T
dGF0dXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGF5bWVudEhlYWRlcnMuaD4KICNpbXBvcnQgPHd0
Zi9CbG9ja1B0ci5oPgpAQCAtNDUsNiArNDksMTAgQEAKIAogI2ltcG9ydCA8cGFsL2NvY29hL1Bh
c3NLaXRTb2Z0TGluay5oPgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRl
IDxXZWJLaXRBZGRpdGlvbnMvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYUFkZGl0aW9u
cy5tbT4KKyNlbmRpZgorCiAvLyBGSVhNRTogV2UgZG9uJ3Qgc3VwcG9ydCBhbnkgcGxhdGZvcm1z
IHdpdGhvdXQgLXNldFRodW1ibmFpbFVSTHM6LCBzbyB0aGlzIGNhbiBiZSByZW1vdmVkLgogQGlu
dGVyZmFjZSBQS1BheW1lbnRSZXF1ZXN0ICgpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc3Ryb25n
KSBOU1VSTCAqdGh1bWJuYWlsVVJMOwpAQCAtNTIsMTkgKzYwLDYgQEAgQGVuZAogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotc3RhdGljIHZvaWQgZmluaXNoQ3JlYXRpbmcoUEtQYXltZW50UmVxdWVz
dCAqcGxhdGZvcm1SZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdCYgcmVxdWVzdCkKLXsKLSNpZiBIQVZFKFBBU1NLSVRfSU5TVEFMTE1FTlRTKQotICAg
IGlmIChQS1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb24gPSBy
ZXF1ZXN0Lmluc3RhbGxtZW50Q29uZmlndXJhdGlvbigpLnBsYXRmb3JtQ29uZmlndXJhdGlvbigp
KSB7Ci0gICAgICAgIHBsYXRmb3JtUmVxdWVzdC5pbnN0YWxsbWVudENvbmZpZ3VyYXRpb24gPSBj
b25maWd1cmF0aW9uOwotICAgICAgICBwbGF0Zm9ybVJlcXVlc3QucmVxdWVzdFR5cGUgPSBQS1Bh
eW1lbnRSZXF1ZXN0VHlwZUluc3RhbGxtZW50OwotICAgIH0KLSNlbHNlCi0gICAgVU5VU0VEX1BB
UkFNKHBsYXRmb3JtUmVxdWVzdCk7Ci0gICAgVU5VU0VEX1BBUkFNKHJlcXVlc3QpOwotI2VuZGlm
Ci19Ci0KIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpXZWJQYXltZW50Q29vcmRpbmF0b3JQ
cm94eShXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Q2xpZW50JiBjbGllbnQpCiAgICAgOiBt
X2NsaWVudChjbGllbnQpCiAgICAgLCBtX2Nhbk1ha2VQYXltZW50c1F1ZXVlKFdvcmtRdWV1ZTo6
Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkNhbk1ha2VQYXltZW50cyIpKQpAQCAtMTY5LDE1ICsx
NjQsMTQgQEAgc3RhdGljIFBLU2hpcHBpbmdUeXBlIHRvUEtTaGlwcGluZ1R5cGUoV2ViQ29yZTo6
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlMKICAgICB9CiB9CiAKLVBLU2hpcHBpbmdN
ZXRob2QgKnRvUEtTaGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQorUEtTaGlwcGlu
Z01ldGhvZCAqdG9QS1NoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBp
bmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQogewogICAgIFBLU2hpcHBpbmdNZXRob2QgKnJlc3Vs
dCA9IFtQQUw6OmdldFBLU2hpcHBpbmdNZXRob2RDbGFzcygpIHN1bW1hcnlJdGVtV2l0aExhYmVs
OnNoaXBwaW5nTWV0aG9kLmxhYmVsIGFtb3VudDp0b0RlY2ltYWxOdW1iZXIoc2hpcHBpbmdNZXRo
b2QuYW1vdW50KV07CiAgICAgW3Jlc3VsdCBzZXRJZGVudGlmaWVyOnNoaXBwaW5nTWV0aG9kLmlk
ZW50aWZpZXJdOwogICAgIFtyZXN1bHQgc2V0RGV0YWlsOnNoaXBwaW5nTWV0aG9kLmRldGFpbF07
Ci0KICAgICByZXR1cm4gcmVzdWx0OwogfQotICAgIAorCiBzdGF0aWMgUmV0YWluUHRyPE5TU2V0
PiB0b05TU2V0KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdHJpbmdzKQogewogICAgIGlmIChzdHJp
bmdzLmlzRW1wdHkoKSkKQEAgLTI2MCw3ICsyNTQsMTYgQEAgUmV0YWluUHRyPFBLUGF5bWVudFJl
cXVlc3Q+IFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybVBheW1lbnRSZXF1ZXN0
KGMKICAgICAgICAgW3Jlc3VsdCBzZXRDVERhdGFDb25uZWN0aW9uU2VydmljZVR5cGU6c2Vydmlj
ZVR5cGVdOwogI2VuZGlmCiAKLSAgICBmaW5pc2hDcmVhdGluZyhyZXN1bHQuZ2V0KCksIHBheW1l
bnRSZXF1ZXN0KTsKKyNpZiBIQVZFKFBBU1NLSVRfSU5TVEFMTE1FTlRTKQorICAgIGlmIChQS1Bh
eW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb24gPSBwYXltZW50UmVx
dWVzdC5pbnN0YWxsbWVudENvbmZpZ3VyYXRpb24oKS5wbGF0Zm9ybUNvbmZpZ3VyYXRpb24oKSkg
eworICAgICAgICBbcmVzdWx0IHNldEluc3RhbGxtZW50Q29uZmlndXJhdGlvbjpjb25maWd1cmF0
aW9uXTsKKyAgICAgICAgW3Jlc3VsdCBzZXRSZXF1ZXN0VHlwZTpQS1BheW1lbnRSZXF1ZXN0VHlw
ZUluc3RhbGxtZW50XTsKKyAgICB9CisjZW5kaWYKKworI2lmIGRlZmluZWQoV2ViUGF5bWVudENv
b3JkaW5hdG9yUHJveHlDb2NvYUFkZGl0aW9uc19wbGF0Zm9ybVBheW1lbnRSZXF1ZXN0KQorICAg
IFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2FBZGRpdGlvbnNfcGxhdGZvcm1QYXltZW50
UmVxdWVzdAorI2VuZGlmCiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtMjc1LDE5ICsyNzgs
MTkgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1Db21wbGV0ZU1l
cmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3IKICAgICBtX2F1dGhvcml6YXRpb25QcmVzZW50
ZXItPmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKHBheW1lbnRNZXJjaGFudFNlc3Npb24pOwog
fQogCi12b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybUNvbXBsZXRlU2hp
cHBpbmdNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRo
b2RVcGRhdGU+JiB1cGRhdGUpCit2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0
Zm9ybUNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBw
bGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCiB7Ci0gICAgbV9hdXRob3JpemF0
aW9uUHJlc2VudGVyLT5jb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKHVwZGF0ZSk7Cisg
ICAgbV9hdXRob3JpemF0aW9uUHJlc2VudGVyLT5jb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0
aW9uKFdURk1vdmUodXBkYXRlKSk7CiB9CiAKLXZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHk6OnBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oY29uc3QgT3B0aW9u
YWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYgdXBkYXRlKQordm9pZCBXZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1Db21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVj
dGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJiB1
cGRhdGUpCiB7Ci0gICAgbV9hdXRob3JpemF0aW9uUHJlc2VudGVyLT5jb21wbGV0ZVNoaXBwaW5n
Q29udGFjdFNlbGVjdGlvbih1cGRhdGUpOworICAgIG1fYXV0aG9yaXphdGlvblByZXNlbnRlci0+
Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUpKTsKIH0KIAot
dm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1Db21wbGV0ZVBheW1lbnRN
ZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0
ZT4mIHVwZGF0ZSkKK3ZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtQ29t
cGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5UGF5
bWVudE1ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCiB7Ci0gICAgbV9hdXRob3JpemF0aW9uUHJlc2Vu
dGVyLT5jb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24odXBkYXRlKTsKKyAgICBtX2F1dGhv
cml6YXRpb25QcmVzZW50ZXItPmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihXVEZNb3Zl
KHVwZGF0ZSkpOwogfQogCiB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpnZXRTZXR1
cEZlYXR1cmVzKGNvbnN0IFBheW1lbnRTZXR1cENvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24s
IE1lc3NhZ2VzOjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6R2V0U2V0dXBGZWF0dXJlczo6
QXN5bmNSZXBseSYmIHJlcGx5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29j
b2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
b2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQppbmRleCBkMzVjZjZlYWJlYmQuLjBk
YTlhNDVmMjA3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2Ev
V2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0KQEAgLTExMiw3ICsxMTIsNyBAQCBPcHRpb25h
bDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4gQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpQYXltZW50QXV0aAogICAgIGlmICghc3RhdHVzKQogICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwogCi0gICAgT3B0aW9uYWw8VmVjdG9yPFBheW1lbnRFcnJvcj4+IGVycm9yczsKKyAg
ICBPcHRpb25hbDxWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+Pj4gZXJyb3JzOwogICAgIGRl
Y29kZXIgPj4gZXJyb3JzOwogICAgIGlmICghZXJyb3JzKQogICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwpAQCAtMTM0LDMzICsxMzQsNiBAQCBPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50Q29u
dGFjdD4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50Q29udGFjdD46OmRlY29kZQogICAg
IHJldHVybiBXZWJDb3JlOjpQYXltZW50Q29udGFjdCB7IFdURk1vdmUoKmNvbnRhY3QpIH07CiB9
CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50RXJyb3I+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6UGF5bWVudEVycm9yJiBlcnJvcikKLXsKLSAg
ICBlbmNvZGVyIDw8IGVycm9yLmNvZGU7Ci0gICAgZW5jb2RlciA8PCBlcnJvci5tZXNzYWdlOwot
ICAgIGVuY29kZXIgPDwgZXJyb3IuY29udGFjdEZpZWxkOwotfQotCi1PcHRpb25hbDxXZWJDb3Jl
OjpQYXltZW50RXJyb3I+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudEVycm9yPjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEVy
cm9yOjpDb2RlPiBjb2RlOwotICAgIGRlY29kZXIgPj4gY29kZTsKLSAgICBpZiAoIWNvZGUpCi0g
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCi0gICAgT3B0aW9uYWw8U3RyaW5nPiBt
ZXNzYWdlOwotICAgIGRlY29kZXIgPj4gbWVzc2FnZTsKLSAgICBpZiAoIW1lc3NhZ2UpCi0gICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCi0gICAgT3B0aW9uYWw8T3B0aW9uYWw8V2Vi
Q29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ+PiBjb250YWN0RmllbGQ7Ci0gICAgZGVj
b2RlciA+PiBjb250YWN0RmllbGQ7Ci0gICAgaWYgKCFjb250YWN0RmllbGQpCi0gICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICByZXR1cm4ge3sgV1RGTW92ZSgqY29kZSksIFdURk1v
dmUoKm1lc3NhZ2UpLCBXVEZNb3ZlKCpjb250YWN0RmllbGQpIH19OwotfQotCiB2b2lkIEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vzc2lvbj46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJiBwYXltZW50
TWVyY2hhbnRTZXNzaW9uKQogewogICAgIGVuY29kZXIgPDwgcGF5bWVudE1lcmNoYW50U2Vzc2lv
bi5wa1BheW1lbnRNZXJjaGFudFNlc3Npb24oKTsKQEAgLTE4OSwyMCArMTYyLDYgQEAgT3B0aW9u
YWw8V2ViQ29yZTo6UGF5bWVudE1ldGhvZD4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50
TWV0aG9kPjo6ZGVjb2RlKEQKICAgICByZXR1cm4gUGF5bWVudE1ldGhvZCB7IFdURk1vdmUoKnBh
eW1lbnRNZXRob2QpIH07CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50
TWV0aG9kVXBkYXRlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OlBh
eW1lbnRNZXRob2RVcGRhdGUmIHVwZGF0ZSkKLXsKLSAgICBlbmNvZGVyIDw8IHVwZGF0ZS5wbGF0
Zm9ybVVwZGF0ZSgpOwotfQotCi1PcHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRl
PiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKLXsKLSAgICBhdXRvIHVwZGF0ZSA9IElQQzo6ZGVjb2RlPFBLUGF5bWVu
dFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlPihkZWNvZGVyLCBQQUw6OmdldFBLUGF5bWVudFJl
cXVlc3RQYXltZW50TWV0aG9kVXBkYXRlQ2xhc3MoKSk7Ci0gICAgaWYgKCF1cGRhdGUpCi0gICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICByZXR1cm4gUGF5bWVudE1ldGhvZFVwZGF0
ZSB7IFdURk1vdmUoKnVwZGF0ZSkgfTsKLX0KLQogdm9pZCBBcmd1bWVudENvZGVyPEFwcGxlUGF5
U2Vzc2lvblBheW1lbnRSZXF1ZXN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIGVuY29kZXIgPDwg
cmVxdWVzdC5jb3VudHJ5Q29kZSgpOwpAQCAtMjc0LDcgKzIzMyw3IEBAIGJvb2wgQXJndW1lbnRD
b2RlcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdD46OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyLCBBcHBsCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXF1ZXN0LnNldFNoaXBwaW5n
VHlwZShzaGlwcGluZ1R5cGUpOwogCi0gICAgVmVjdG9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRS
ZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4gc2hpcHBpbmdNZXRob2RzOworICAgIFZlY3RvcjxBcHBs
ZVBheVNoaXBwaW5nTWV0aG9kPiBzaGlwcGluZ01ldGhvZHM7CiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShzaGlwcGluZ01ldGhvZHMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmVxdWVz
dC5zZXRTaGlwcGluZ01ldGhvZHMoc2hpcHBpbmdNZXRob2RzKTsKQEAgLTM2NCw4OCArMzIzLDM4
IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6TWVy
Y2hhbnRDYXBhYmlsaXRpZXM+OjpkZWNvZGUoCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQg
QXJndW1lbnRDb2RlcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRo
b2Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVu
dFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKK3ZvaWQgQXJndW1lbnRD
b2RlcjxWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+Pj46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYgZXJyb3JzKQogewotICAg
IGVuY29kZXIgPDwgc2hpcHBpbmdNZXRob2QubGFiZWw7Ci0gICAgZW5jb2RlciA8PCBzaGlwcGlu
Z01ldGhvZC5kZXRhaWw7Ci0gICAgZW5jb2RlciA8PCBzaGlwcGluZ01ldGhvZC5hbW91bnQ7Ci0g
ICAgZW5jb2RlciA8PCBzaGlwcGluZ01ldGhvZC5pZGVudGlmaWVyOworICAgIGVuY29kZXIgPDwg
c3RhdGljX2Nhc3Q8dWludDY0X3Q+KGVycm9ycy5zaXplKCkpOworICAgIGZvciAoYXV0byYgZXJy
b3IgOiBlcnJvcnMpIHsKKyAgICAgICAgZW5jb2RlciA8PCAhIWVycm9yOworICAgICAgICBpZiAo
ZXJyb3IpCisgICAgICAgICAgICBlbmNvZGVyIDw8ICplcnJvcjsKKyAgICB9CiB9CiAKLU9wdGlv
bmFsPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4gQXJndW1l
bnRDb2RlcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK09wdGlvbmFsPFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlF
cnJvcj4+PiBBcmd1bWVudENvZGVyPFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+Pjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVl
c3Q6OlNoaXBwaW5nTWV0aG9kIHNoaXBwaW5nTWV0aG9kOwotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUoc2hpcHBpbmdNZXRob2QubGFiZWwpKQorICAgIHVpbnQ2NF90IHNpemU7CisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShzaXplKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHNoaXBwaW5nTWV0aG9kLmRldGFpbCkpCi0gICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaGlwcGluZ01ldGhvZC5h
bW91bnQpKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoc2hpcHBpbmdNZXRob2QuaWRlbnRpZmllcikpCi0gICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7Ci0gICAgcmV0dXJuIFdURk1vdmUoc2hpcHBpbmdNZXRob2QpOwotfQogCi12b2lkIEFy
Z3VtZW50Q29kZXI8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0
ZW1zPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcyYgdG90YWxBbmRMaW5lSXRlbXMpCi17Ci0gICAg
ZW5jb2RlciA8PCB0b3RhbEFuZExpbmVJdGVtcy50b3RhbDsKLSAgICBlbmNvZGVyIDw8IHRvdGFs
QW5kTGluZUl0ZW1zLmxpbmVJdGVtczsKLX0KKyAgICBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJy
b3I+PiBlcnJvcnMoc2l6ZSk7CisgICAgZm9yICh1aW50NjRfdCBpID0gMDsgaSA8IHNpemU7ICsr
aSkgeworICAgICAgICBPcHRpb25hbDxib29sPiBpc1ZhbGlkOworICAgICAgICBkZWNvZGVyID4+
IGlzVmFsaWQ7CisgICAgICAgIGlmICghaXNWYWxpZCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiAKLU9wdGlvbmFsPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3Rh
bEFuZExpbmVJdGVtcz4gQXJndW1lbnRDb2RlcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dDo6VG90YWxBbmRMaW5lSXRlbXM+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBP
cHRpb25hbDxBcHBsZVBheUxpbmVJdGVtPiB0b3RhbDsKLSAgICBkZWNvZGVyID4+IHRvdGFsOwot
ICAgIGlmICghdG90YWwpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCi0gICAg
T3B0aW9uYWw8VmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+PiBsaW5lSXRlbXM7Ci0gICAgZGVjb2Rl
ciA+PiBsaW5lSXRlbXM7Ci0gICAgaWYgKCFsaW5lSXRlbXMpCi0gICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7Ci0gICAgCi0gICAgcmV0dXJuIHt7IFdURk1vdmUoKnRvdGFsKSwgV1RGTW92ZSgq
bGluZUl0ZW1zKSB9fTsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNoaXBwaW5n
Q29udGFjdFVwZGF0ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpT
aGlwcGluZ0NvbnRhY3RVcGRhdGUmIHVwZGF0ZSkKLXsKLSAgICBlbmNvZGVyIDw8IHVwZGF0ZS5l
cnJvcnM7Ci0gICAgZW5jb2RlciA8PCB1cGRhdGUubmV3U2hpcHBpbmdNZXRob2RzOwotICAgIGVu
Y29kZXIgPDwgdXBkYXRlLm5ld1RvdGFsQW5kTGluZUl0ZW1zOwotfQotCi1PcHRpb25hbDxXZWJD
b3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2hpcHBp
bmdDb250YWN0VXBkYXRlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgT3B0aW9u
YWw8VmVjdG9yPFBheW1lbnRFcnJvcj4+IGVycm9yczsKLSAgICBkZWNvZGVyID4+IGVycm9yczsK
LSAgICBpZiAoIWVycm9ycykKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAg
ICBPcHRpb25hbDxWZWN0b3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5n
TWV0aG9kPj4gbmV3U2hpcHBpbmdNZXRob2RzOwotICAgIGRlY29kZXIgPj4gbmV3U2hpcHBpbmdN
ZXRob2RzOwotICAgIGlmICghbmV3U2hpcHBpbmdNZXRob2RzKQotICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwotICAgIAotICAgIE9wdGlvbmFsPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz4gbmV3VG90YWxBbmRMaW5lSXRlbXM7Ci0gICAgZGVjb2Rl
ciA+PiBuZXdUb3RhbEFuZExpbmVJdGVtczsKLSAgICBpZiAoIW5ld1RvdGFsQW5kTGluZUl0ZW1z
KQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAgIHJldHVybiB7eyBXVEZN
b3ZlKCplcnJvcnMpLCBXVEZNb3ZlKCpuZXdTaGlwcGluZ01ldGhvZHMpLCBXVEZNb3ZlKCpuZXdU
b3RhbEFuZExpbmVJdGVtcykgfX07Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpT
aGlwcGluZ01ldGhvZFVwZGF0ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJD
b3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZSYgdXBkYXRlKQotewotICAgIGVuY29kZXIgPDwgdXBk
YXRlLm5ld1RvdGFsQW5kTGluZUl0ZW1zOwotfQotCi1PcHRpb25hbDxXZWJDb3JlOjpTaGlwcGlu
Z01ldGhvZFVwZGF0ZT4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0
ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIE9wdGlvbmFsPEFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz4gbmV3VG90YWxBbmRMaW5lSXRl
bXM7Ci0gICAgZGVjb2RlciA+PiBuZXdUb3RhbEFuZExpbmVJdGVtczsKLSAgICBpZiAoIW5ld1Rv
dGFsQW5kTGluZUl0ZW1zKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIHJldHVy
biB7eyBXVEZNb3ZlKCpuZXdUb3RhbEFuZExpbmVJdGVtcykgfX07CisgICAgICAgIFJlZlB0cjxB
cHBsZVBheUVycm9yPiBlcnJvcjsKKyAgICAgICAgaWYgKCppc1ZhbGlkKSB7CisgICAgICAgICAg
ICBlcnJvciA9IEFwcGxlUGF5RXJyb3I6OmRlY29kZShkZWNvZGVyKTsKKyAgICAgICAgICAgIGlm
ICghZXJyb3IpCisgICAgICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAg
fQorICAgICAgICBlcnJvcnMuYXBwZW5kKFdURk1vdmUoZXJyb3IpKTsKKyAgICB9CisgICAgcmV0
dXJuIGVycm9yczsKIH0KIAogdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRTZXNz
aW9uRXJyb3I+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6UGF5bWVu
dFNlc3Npb25FcnJvciYgZXJyb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCmluZGV4IDI2MDk4ZWZkZGI0YS4uMzZhMWRmMzc5ZTRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtNjc3LDExICs2Nzcs
NiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRDb250
YWN0PiB7CiAgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRDb250YWN0PiBkZWNv
ZGUoRGVjb2RlciYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpQYXltZW50RXJyb3I+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OlBheW1lbnRFcnJvciYpOwotICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3Jl
OjpQYXltZW50RXJyb3I+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24+IHsKICAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXJjaGFu
dFNlc3Npb24mKTsKICAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudE1lcmNoYW50
U2Vzc2lvbj4gZGVjb2RlKERlY29kZXImKTsKQEAgLTY5MiwxMSArNjg3LDYgQEAgdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50TWV0aG9kPiB7CiAgICAgc3Rh
dGljIE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2Q+IGRlY29kZShEZWNvZGVyJik7CiB9
OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRNZXRo
b2RVcGRhdGU+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OlBheW1lbnRNZXRob2RVcGRhdGUmKTsKLSAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6
UGF5bWVudE1ldGhvZFVwZGF0ZT4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KIHRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVl
c3Q+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Jik7CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JF
VFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVu
dFJlcXVlc3QmKTsKQEAgLTcxMSwyNCArNzAxLDkgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6TWVyY2hhbnQK
ICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJD
b3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6TWVyY2hhbnRDYXBhYmlsaXRpZXMm
KTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QXBwbGVQ
YXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKTsKLSAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPiBkZWNvZGUoRGVj
b2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXM+IHsKLSAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcyYpOwotICAgIHN0YXRpYyBPcHRpb25h
bDxXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRl
bXM+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT4gewotICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlJik7Ci0g
ICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT4gZGVjb2Rl
KERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlJik7Ci0gICAgc3RhdGljIE9w
dGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPiBkZWNvZGUoRGVjb2RlciYpOwor
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkFw
cGxlUGF5RXJyb3I+Pj4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3Qg
VmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpBcHBsZVBheUVycm9yPj4mKTsKKyAgICBzdGF0aWMgT3B0
aW9uYWw8VmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpBcHBsZVBheUVycm9yPj4+IGRlY29kZShEZWNv
ZGVyJik7CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBh
eW1lbnRTZXNzaW9uRXJyb3I+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5jcHAKaW5kZXggODZkMDJlMTZj
NjdkLi4wYjFkNTMzODkxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9B
cHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuY3BwCkBAIC0zNiw2ICszNiw5
IEBACiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BheW1lbnRDb29yZGluYXRvci5o
PgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTEwOSwxOSArMTEyLDE5IEBAIHZvaWQgV2ViUGF5
bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3Jl
OjpQYXltZW50TWVyCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHk6OkNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKHBheW1lbnRNZXJjaGFudFNlc3Npb24pKTsK
IH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RT
ZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYgdXBkYXRl
KQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxl
Y3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJiB1
cGRhdGUpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6
OkNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24odXBkYXRlKSk7CisgICAgc2VuZChNZXNz
YWdlczo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OkNvbXBsZXRlU2hpcHBpbmdNZXRob2RT
ZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUpKSk7CiB9CiAKLXZvaWQgV2ViUGF5bWVudENvb3JkaW5h
dG9yOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpT
aGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYgdXBkYXRlKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0
b3I6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFw
cGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmIHVwZGF0ZSkKIHsKLSAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Q29tcGxldGVTaGlwcGluZ0NvbnRhY3RT
ZWxlY3Rpb24odXBkYXRlKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGF5bWVudENvb3JkaW5h
dG9yUHJveHk6OkNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKFdURk1vdmUodXBkYXRl
KSkpOwogfQogCi12b2lkIFdlYlBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50TWV0
aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+JiYgdXBk
YXRlKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNl
bGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+JiYg
dXBkYXRlKQogewotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5
OjpDb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24odXBkYXRlKSk7CisgICAgc2VuZChNZXNz
YWdlczo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OkNvbXBsZXRlUGF5bWVudE1ldGhvZFNl
bGVjdGlvbihXVEZNb3ZlKHVwZGF0ZSkpKTsKIH0KIAogdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0
b3I6OmNvbXBsZXRlUGF5bWVudFNlc3Npb24oT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhv
cml6YXRpb25SZXN1bHQ+JiYgcmVzdWx0KQpAQCAtMTg4LDcgKzE5MSw3IEBAIHZvaWQgV2ViUGF5
bWVudENvb3JkaW5hdG9yOjpkaWRBdXRob3JpemVQYXltZW50KGNvbnN0IFdlYkNvcmU6OlBheW1l
bnQmIHBheW1lbnQpCiAgICAgcGF5bWVudENvb3JkaW5hdG9yKCkuZGlkQXV0aG9yaXplUGF5bWVu
dChwYXltZW50KTsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3I6OmRpZFNlbGVjdFNo
aXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
OjpTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCit2b2lkIFdlYlBheW1lbnRDb29yZGlu
YXRvcjo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTaGlw
cGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCiB7CiAgICAgcGF5bWVudENvb3JkaW5hdG9yKCku
ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2Qoc2hpcHBpbmdNZXRob2QpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRv
ci5oCmluZGV4IGM5ZGM2ODJiODc1NC4uZTdiYTVlYTJlODdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5o
CkBAIC00MCw2ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFBheW1lbnRDb29y
ZGluYXRvcjsKIGNsYXNzIFBheW1lbnRDb250YWN0OwogY2xhc3MgUGF5bWVudFNlc3Npb25FcnJv
cjsKK3N0cnVjdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKQEAgLTY0LDkgKzY1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIG9wZW5QYXltZW50U2V0dXAo
Y29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG9tYWluTmFt
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBz
aG93UGF5bWVudFVJKGNvbnN0IFVSTCYgb3JpZ2luYXRpbmdVUkwsIGNvbnN0IFZlY3RvcjxVUkw+
JiBsaW5rSWNvblVSTHMsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25z
dCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBj
b21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5n
TWV0aG9kVXBkYXRlPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdDb250
YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJikg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9u
YWw8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBj
b21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5
U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcGxldGVTaGlw
cGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ0Nv
bnRhY3RVcGRhdGU+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcGxldGVQYXltZW50TWV0aG9k
U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4m
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRTZXNzaW9uKE9wdGlvbmFsPFdl
YkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYmKSBvdmVycmlkZTsKIAogICAgIHZv
aWQgYWJvcnRQYXltZW50U2Vzc2lvbigpIG92ZXJyaWRlOwpAQCAtOTUsNyArOTYsNyBAQCBwcml2
YXRlOgogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCiAgICAgdm9pZCB2YWxpZGF0ZU1lcmNoYW50
KGNvbnN0IFN0cmluZyYgdmFsaWRhdGlvblVSTFN0cmluZyk7CiAgICAgdm9pZCBkaWRBdXRob3Jp
emVQYXltZW50KGNvbnN0IFdlYkNvcmU6OlBheW1lbnQmKTsKLSAgICB2b2lkIGRpZFNlbGVjdFNo
aXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
OjpTaGlwcGluZ01ldGhvZCYpOworICAgIHZvaWQgZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29u
c3QgV2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZCYpOwogICAgIHZvaWQgZGlkU2VsZWN0
U2hpcHBpbmdDb250YWN0KGNvbnN0IFdlYkNvcmU6OlBheW1lbnRDb250YWN0Jik7CiAgICAgdm9p
ZCBkaWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXRob2QmKTsK
ICAgICB2b2lkIGRpZENhbmNlbFBheW1lbnRTZXNzaW9uKFdlYkNvcmU6OlBheW1lbnRTZXNzaW9u
RXJyb3ImJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkv
V2ViUGF5bWVudENvb3JkaW5hdG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5tZXNzYWdlcy5pbgppbmRleCBmYTQ2
MjcyNTY1NzMuLjM2ZWM0ZjEyM2Y4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLm1lc3Nh
Z2VzLmluCkBAIC0yOCw3ICsyOCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBheW1lbnRDb29yZGluYXRv
ciBOb3RSZWZDb3VudGVkIHsKIAogICAgIFZhbGlkYXRlTWVyY2hhbnQoU3RyaW5nIHZhbGlkYXRp
b25VUkxTdHJpbmcpCiAgICAgRGlkQXV0aG9yaXplUGF5bWVudChXZWJDb3JlOjpQYXltZW50IHBh
eW1lbnQpCi0gICAgRGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoV2ViQ29yZTo6QXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kIHNoaXBwaW5nTWV0aG9kKQorICAgIERp
ZFNlbGVjdFNoaXBwaW5nTWV0aG9kKHN0cnVjdCBXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0
aG9kIHNoaXBwaW5nTWV0aG9kKQogICAgIERpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChXZWJDb3Jl
OjpQYXltZW50Q29udGFjdCBzaGlwcGluZ0NvbnRhY3QpCiAgICAgRGlkU2VsZWN0UGF5bWVudE1l
dGhvZChXZWJDb3JlOjpQYXltZW50TWV0aG9kIHBheW1lbnRNZXRob2QpCiAgICAgRGlkQ2FuY2Vs
UGF5bWVudFNlc3Npb24oV2ViQ29yZTo6UGF5bWVudFNlc3Npb25FcnJvciBzZXNzaW9uRXJyb3Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggY2VlMzBiYTc1ZTZlLi5kMWI3NjM1OGRj
NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0w
Mi0xNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW1BheW1l
bnQgUmVxdWVzdF0gYWRkIGFuIGBvYmplY3QgZGF0YWAgdG8gYFBheW1lbnREZXRhaWxzQmFzZWAg
c28gdGhhdCBkYXRhIHNwZWNpZmljIHRvIEFwcGxlIFBheSBjYW4gYmUgcHJvdmlkZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjAwMgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNzIzMTk5NDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0
b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0
b3JDbGllbnQubW06CisgICAgICAgIChXZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQ6OmNvbXBs
ZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViUGF5bWVudENvb3JkaW5h
dG9yQ2xpZW50Ojpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbik6CisgICAgICAgIChX
ZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQ6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlv
bik6CisgICAgICAgIFVzZSBgQXBwbGVQYXkqVXBkYXRlYCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5n
IGl0cyBzdHJ1Y3R1cmUgaW4gYW5vdGhlciBvYmplY3QgKGBBcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdDo6KlVwZGF0ZWApLgorCiAyMDIxLTAyLTE2ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVkdWNlIGV4cGxpY2l0IHVzYWdlIG9mIFtvYmpDIHJlbGVh
c2VdIGluIFdlYktpdCBldmVuIG1vcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBheW1lbnRDb29yZGluYXRvckNsaWVudC5oIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xp
ZW50LmgKaW5kZXggZjQzMWE0ZGY1MzlmLi5iMDM5MzYzMjI2MTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBheW1lbnRDb29yZGluYXRvckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBh
eW1lbnRDb29yZGluYXRvckNsaWVudC5oCkBAIC00Miw5ICs0Miw5IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBvcGVuUGF5bWVudFNldHVwKGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGRvbWFpbk5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
IG92ZXJyaWRlOwogICAgIGJvb2wgc2hvd1BheW1lbnRVSShjb25zdCBVUkwmLCBjb25zdCBWZWN0
b3I8VVJMPiYgbGlua0ljb25VUkxzLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdCYpIG92ZXJyaWRlOwogICAgIHZvaWQgY29tcGxldGVNZXJjaGFudFZhbGlkYXRp
b24oY29uc3QgV2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vzc2lvbiYpIG92ZXJyaWRlOwotICAg
IHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpT
aGlwcGluZ01ldGhvZFVwZGF0ZT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21wbGV0ZVNoaXBw
aW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRh
dGU+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9u
KE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+JiYpIG92ZXJyaWRlOworICAg
IHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpB
cHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXBs
ZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hp
cHBpbmdDb250YWN0VXBkYXRlPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXBsZXRlUGF5bWVu
dE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRNZXRob2RV
cGRhdGU+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgY29tcGxldGVQYXltZW50U2Vzc2lvbihPcHRp
b25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBhYm9ydFBheW1lbnRTZXNzaW9uKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjYW5jZWxQ
YXltZW50U2Vzc2lvbigpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50Lm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGF5bWVudENvb3JkaW5hdG9y
Q2xpZW50Lm1tCmluZGV4IGJiOTk0YjM0NjlmZS4uNWQ4ZTI4NDcyYjA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0
b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50Lm1tCkBAIC03MiwxNSArNzIsMTUgQEAgdm9pZCBX
ZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQ6OmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNv
bnN0IFdlYkNvcmU6OlBheW0KIHsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JDbGll
bnQ6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6U2hp
cHBpbmdNZXRob2RVcGRhdGU+JiYpCit2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvckNsaWVudDo6
Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKQogewogfQogCi12b2lkIFdlYlBheW1lbnRDb29yZGlu
YXRvckNsaWVudDo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2Vi
Q29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0
b3JDbGllbnQ6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNv
cmU6OkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKQogewogfQogCi12b2lkIFdlYlBh
eW1lbnRDb29yZGluYXRvckNsaWVudDo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9w
dGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+JiYpCit2b2lkIFdlYlBheW1lbnRD
b29yZGluYXRvckNsaWVudDo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFs
PFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikKIHsKIH0KIAo=
</data>
<flag name="commit-queue"
          id="439093"
          type_id="3"
          status="-"
          setter="hi"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420796</attachid>
            <date>2021-02-17 21:47:56 -0800</date>
            <delta_ts>2021-02-18 18:01:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>72319946-OpenSource.diff</filename>
            <type>text/plain</type>
            <size>190186</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlZTAwZDIzZTEzMDkuLjViZTI1YTRlNGZmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzNyBAQAorMjAyMS0wMi0xNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5j
b20+CisKKyAgICAgICAgW1BheW1lbnQgUmVxdWVzdF0gYWRkIGFuIGBvYmplY3QgZGF0YWAgdG8g
YFBheW1lbnREZXRhaWxzQmFzZWAgc28gdGhhdCBkYXRhIHNwZWNpZmljIHRvIEFwcGxlIFBheSBj
YW4gYmUgcHJvdmlkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMjAwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzIzMTk5NDY+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL3BheW1l
bnRyZXF1ZXN0L1BheW1lbnREZXRhaWxzQmFzZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9wYXlt
ZW50cmVxdWVzdC9QYXltZW50RGV0YWlsc0Jhc2UuaDoKKworICAgICAgICAqIE1vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1v
ZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2U6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlOjpkZWNvZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZTo6ZGVjb2RlQmFzZSk6Cisg
ICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaDoK
KyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5p
ZGw6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU6OmVuY29k
ZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50TWV0aG9k
VXBkYXRlOjpkZWNvZGUpOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxl
UGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmg6CisgICAgICAgIChXZWJDb3JlOjpBcHBs
ZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZTo6ZW5jb2RlIGNvbnN0KTogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZTo6ZGVjb2RlKTogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRl
LmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RV
cGRhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU6
OmVuY29kZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTaGlwcGlu
Z01ldGhvZFVwZGF0ZTo6ZGVjb2RlKTogQWRkZWQuCisgICAgICAgIEludHJvZHVjZSBhIGNvbW1v
biBiYXNlIGNsYXNzIGBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlYCBpbnN0ZWFkIG9mIHJlcGVh
dGluZyBtZW1iZXJzIG9uCisgICAgICAgIGVhY2ggb2YgdGhlIGBBcHBsZVBheSpVcGRhdGVgIGZp
bmFsIGNsYXNzZXMuCisKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWls
c1VwZGF0ZURhdGEuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxl
UGF5RGV0YWlsc1VwZGF0ZURhdGEuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBh
eURldGFpbHNVcGRhdGVEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bGVQYXlEZXRhaWxzVXBkYXRlRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxl
UGF5RGV0YWlsc1VwZGF0ZURhdGE6OmRlY29kZURhdGEpOgorICAgICAgICAqIE1vZHVsZXMvcGF5
bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tB
bmRDYW5vbmljYWxpemVEZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0
OjpzZXR0bGVEZXRhaWxzUHJvbWlzZSk6CisgICAgICAgIEhhdmUgdGhlIGNvbW1vbiBiYXNlIGNs
YXNzIGFib3ZlIGV4dGVuZCBmcm9tIGBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhYCwgd2hpY2gg
aXMgdXNlZCB0bworICAgICAgICBwdWxsIHZhbHVlcyBvdXQgb2YgdGhlIGBvYmplY3QgZGF0YWAg
ZnJvbSBgUGF5bWVudERldGFpbHNCYXNlYC4gVGhpcyB3YXksIGJvdGggQXBwbGUgUGF5IEpTCisg
ICAgICAgIGFuZCBQYXltZW50UmVxdWVzdCBjYW4gYmUgZ2l2ZW4gdGhlIHNhbWUgZGF0YSAoYWxi
ZWl0IGluIHNsaWdodGx5IGRpZmZlcmVudCBwbGFjZXMpIGFuZCBoYXZlCisgICAgICAgIHRoZSBz
YW1lIGNhcGFiaWxpdGllcy4KKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlF
cnJvci5oOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlFcnJvcjo6ZW5jb2RlIGNvbnN0KTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheUVycm9yOjpkZWNvZGUpOiBBZGRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3IuY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvckNvZGUuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaDoK
KyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6c2hp
cHBpbmdNZXRob2RzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0OjpzZXRTaGlwcGluZ01ldGhvZHMpOgorICAgICAgICAqIE1vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlTZXNzaW9uLmg6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEFuZFZhbGlkYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6Y29tcGxldGVTaGlwcGluZ0NvbnRh
Y3RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uOjpkaWRTZWxl
Y3RTaGlwcGluZ01ldGhvZCk6CisgICAgICAgIChXZWJDb3JlOjpmaW5pc2hDb252ZXJ0aW5nKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnQpOiBEZWxldGVkLgorICAgICAgICAq
IE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZDo6ZW5jb2RlIGNvbnN0KTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kOjpkZWNvZGUpOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2
ZW50Lmg6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9k
U2VsZWN0ZWRFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0
aG9kU2VsZWN0ZWRFdmVudDo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9h
cHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5
L1BheW1lbnRDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50Q29vcmRp
bmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6UGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudE1l
dGhvZFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50Q29vcmRpbmF0b3I6OmRp
ZFNlbGVjdFNoaXBwaW5nTWV0aG9kKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L1BheW1l
bnRDb29yZGluYXRvckNsaWVudC5oOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVu
dEhlYWRlcnMuaDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFs
aWRhdG9yLm1tOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVTaGlwcGluZ01ldGhvZCk6Cisg
ICAgICAgIChXZWJDb3JlOjp2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kcyk6CisgICAgICAgICogTW9k
dWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5oOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVw
YXkvUGF5bWVudFN1bW1hcnlJdGVtcy5oOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvY29j
b2EvUGF5bWVudFN1bW1hcnlJdGVtc0NvY29hLm1tOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVw
YXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oOgorICAgICAgICAqIE1v
ZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFsaWRhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6dmFsaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6bWVyZ2UpOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6c2hvdyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBs
ZVBheVBheW1lbnRIYW5kbGVyOjpjb21wdXRlU2hpcHBpbmdNZXRob2RzKToKKyAgICAgICAgKFdl
YkNvcmU6OkFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVUb3RhbEFuZExpbmVJdGVtcyBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJy
b3IpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcHV0ZUVy
cm9ycyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpj
b21wdXRlQWRkcmVzc0Vycm9ycyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBh
eW1lbnRIYW5kbGVyOjpjb21wdXRlUGF5ZXJFcnJvcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcHV0ZVBheW1lbnRNZXRob2RFcnJvcnMgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6c2hpcHBpbmdB
ZGRyZXNzVXBkYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRIYW5kbGVy
OjpzaGlwcGluZ09wdGlvblVwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXlt
ZW50SGFuZGxlcjo6cGF5bWVudE1ldGhvZFVwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bGVQYXlQYXltZW50SGFuZGxlcjo6cmV0cnkpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQ
YXltZW50SGFuZGxlcjo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QpOgorICAgICAgICAqIGxvYWRl
ci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIHRlc3RpbmcvTW9ja1BheW1lbnRDb29yZGlu
YXRvci5oOgorICAgICAgICAqIHRlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpzaG93UGF5bWVudFVJKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBp
bmdNZXRob2RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydCk6CisgICAgICAg
IChXZWJDb3JlOjpNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFj
dFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpj
b21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1Bh
eW1lbnRDb29yZGluYXRvcjo6Y2hhbmdlU2hpcHBpbmdPcHRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6TW9ja1BheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50U2Vzc2lvbik6CisgICAg
ICAgIChXZWJDb3JlOjpNb2NrUGF5bWVudENvb3JkaW5hdG9yOjp1cGRhdGVUb3RhbEFuZExpbmVJ
dGVtcyk6IERlbGV0ZWQuCisgICAgICAgICogdGVzdGluZy9Nb2NrUGF5bWVudEVycm9yLmg6Cisg
ICAgICAgIFVzZSBgQXBwbGVQYXkqVXBkYXRlYCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0cyBz
dHJ1Y3R1cmUgaW4gYW5vdGhlciBvYmplY3QgKGBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dDo6KlVwZGF0ZWApLgorICAgICAgICBVc2UgYEFwcGxlUGF5TGluZUl0ZW1gIGluc3RlYWQgb2Yg
ZHVwbGljYXRpbmcgaXRzIHN0cnVjdHVyZSBpbiBhbm90aGVyIG9iamVjdCAoYEFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtc2ApLgorICAgICAgICBVc2UgYEFw
cGxlUGF5U2hpcHBpbmdNZXRob2RgIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgaXRzIHN0cnVjdHVy
ZSBpbiBhbm90aGVyIG9iamVjdCAoYEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlw
cGluZ01ldGhvZGApLgorICAgICAgICBVc2UgYEFwcGxlUGF5RXJyb3IqYCBpbnN0ZWFkIG9mIGR1
cGxpY2F0aW5nIGl0cyBzdHJ1Y3R1cmUgaW4gYW5vdGhlciBvYmplY3QgKGBBcHBsZVBheVNlc3Np
b25QYXltZW50UmVxdWVzdDo6UGF5bWVudEVycm9yOjoqYCkuCisKKyAgICAgICAgKiBNb2R1bGVz
L2FwcGxlcGF5L1BheW1lbnRNZXRob2RVcGRhdGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxl
cGF5L2NvY29hL1BheW1lbnRNZXRob2RVcGRhdGVDb2NvYS5tbTogUmVtb3ZlZC4KKyAgICAgICAg
RG8gdGhlIGNvbnZlcnNpb24gZnJvbSBgQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlYCB0byBg
UEtQYXltZW50UmVxdWVzdFBheW1lbnRNZXRob2RVcGRhdGVgCisgICAgICAgIGluIHRoZSBVSVBy
b2Nlc3MuCisKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudFJlcXVl
c3QuaDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEFuZFZhbGlkYXRlKToKKyAgICAgICAgKiBNb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuaDoKKworICAgICAgICAqIERlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBQ
bGF0Zm9ybU1hYy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMS0wMi0xNSAgRGV2aW4g
Um91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgW1BheW1lbnQgUmVxdWVzdF0g
YWRkIGFuIGBvYmplY3QgZGF0YWAgdG8gYFBheW1lbnRJdGVtYCBzbyB0aGF0IGRhdGEgc3BlY2lm
aWMgdG8gQXBwbGUgUGF5IGNhbiBiZSBwcm92aWRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggYmU5MGQ0M2QwYzEyLi5kMmY2ZWNjMWIw
ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlz
dApAQCAtMjQsNiArMjQsOCBAQCAkKFBST0pFQ1RfRElSKS9EZXJpdmVkU291cmNlcy5tYWtlCiAk
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL2FpcnBsYXkvV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFi
aWxpdHlFdmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlD
YW5jZWxFdmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlD
b250YWN0RmllbGQuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
RGV0YWlsc1VwZGF0ZUJhc2UuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2FwcGxlcGF5L0Fw
cGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2FwcGxl
cGF5L0FwcGxlUGF5RXJyb3IuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2FwcGxlcGF5L0Fw
cGxlUGF5RXJyb3JDb2RlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheUVycm9yQ29udGFjdEZpZWxkLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA4YzFmMjVmYzE3MmYuLjJjYTYzYTYxZjkzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QK
QEAgLTg2LDYgKzg2LDEwIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTQXBwbGVQYXlDYW5jZWxFdmVudC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlDYW5jZWxFdmVudC5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5Q29udGFjdEZpZWxk
LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcHBs
ZVBheUNvbnRhY3RGaWVsZC5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuY3BwCiskKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2Uu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcHBsZVBh
eURldGFpbHNVcGRhdGVEYXRhLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlFcnJvci5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlFcnJvci5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5
RXJyb3JDb2RlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggYThkODdlZTE5
MmVhLi4xNjI2NjhlNzcxMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTMs
NiArNTMsOCBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9h
aXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDYW5jZWxFdmVudC5pZGwgXAogICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5pZGwgXAor
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVCYXNl
LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWlsc1Vw
ZGF0ZURhdGEuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlF
cnJvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9y
Q29kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9y
Q29udGFjdEZpZWxkLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjc5NjA2NzEyOGM1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVCYXNl
LmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEFQUExFX1BBWSkKKworI2luY2x1ZGUgIkFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaCIK
KyNpbmNsdWRlICJBcHBsZVBheUxpbmVJdGVtLmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNl
IDogcHVibGljIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEgeworICAgIEFwcGxlUGF5TGluZUl0
ZW0gbmV3VG90YWw7CisgICAgVmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+IG5ld0xpbmVJdGVtczsK
KworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25z
dDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8QXBwbGVQYXlE
ZXRhaWxzVXBkYXRlQmFzZT4gZGVjb2RlKERlY29kZXImKTsKKworICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29kZUJhc2UoRGVjb2RlciYpOwor
fTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQXBwbGVQYXlEZXRhaWxzVXBkYXRl
QmFzZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgQXBwbGVQYXlEZXRh
aWxzVXBkYXRlRGF0YTo6ZW5jb2RlKGVuY29kZXIpOworICAgIGVuY29kZXIgPDwgbmV3VG90YWw7
CisgICAgZW5jb2RlciA8PCBuZXdMaW5lSXRlbXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29k
ZXI+CitPcHRpb25hbDxBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlPiBBcHBsZVBheURldGFpbHNV
cGRhdGVCYXNlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBBcHBsZVBheURldGFp
bHNVcGRhdGVCYXNlIHJlc3VsdDsKKyAgICBpZiAoIXJlc3VsdC5kZWNvZGVCYXNlKGRlY29kZXIp
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
K3RlbXBsYXRlPGNsYXNzIERlY29kZXI+Citib29sIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2U6
OmRlY29kZUJhc2UoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBpZiAoIWRlY29kZURhdGEoZGVj
b2RlcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworI2RlZmluZSBERUNPREUobmFtZSwgdHlw
ZSkgXAorICAgIE9wdGlvbmFsPHR5cGU+IG5hbWU7IFwKKyAgICBkZWNvZGVyID4+IG5hbWU7IFwK
KyAgICBpZiAoIW5hbWUpIFwKKyAgICAgICAgcmV0dXJuIGZhbHNlOyBcCisgICAgdGhpcy0+bmFt
ZSA9IFdURk1vdmUoKm5hbWUpOyBcCisKKyAgICBERUNPREUobmV3VG90YWwsIEFwcGxlUGF5TGlu
ZUl0ZW0pCisgICAgREVDT0RFKG5ld0xpbmVJdGVtcywgVmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+
KQorCisjdW5kZWYgREVDT0RFCisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0
ZUJhc2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjE1ZTg2
ZGVmYzIyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9BcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmlkbApAQCAtMCwwICsxLDMxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworWworICAgIENvbmRpdGlvbmFsPUFQUExFX1BBWSwKK10gZGljdGlvbmFyeSBBcHBsZVBh
eURldGFpbHNVcGRhdGVCYXNlIHsKKyAgICByZXF1aXJlZCBBcHBsZVBheUxpbmVJdGVtIG5ld1Rv
dGFsOworICAgIHNlcXVlbmNlPEFwcGxlUGF5TGluZUl0ZW0+IG5ld0xpbmVJdGVtczsKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWls
c1VwZGF0ZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlE
ZXRhaWxzVXBkYXRlRGF0YS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MC4uODA3OGY5NTcyMTQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmgKQEAgLTAsMCArMSw4OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKworI2lm
IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0FwcGxl
UGF5RGV0YWlsc1VwZGF0ZURhdGFBZGRpdGlvbnMuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0cnVjdCBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhIHsKKyNpZiBkZWZpbmVk
KEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGFBZGRpdGlvbnNfbWVtYmVycykKKyAgICBBcHBsZVBh
eURldGFpbHNVcGRhdGVEYXRhQWRkaXRpb25zX21lbWJlcnMKKyNlbmRpZgorCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxBcHBsZVBheURldGFpbHNVcGRhdGVE
YXRhPiBkZWNvZGUoRGVjb2RlciYpOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gV0FS
Tl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlRGF0YShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhOjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyNpZiBkZWZpbmVkKEFwcGxlUGF5RGV0YWlsc1Vw
ZGF0ZURhdGFBZGRpdGlvbnNfZW5jb2RlKQorICAgIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGFB
ZGRpdGlvbnNfZW5jb2RlCisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmNvZGVyKTsKKyNlbmRp
ZgorfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8QXBwbGVQYXlEZXRhaWxz
VXBkYXRlRGF0YT4gQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YTo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCit7CisgICAgQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSByZXN1bHQ7CisgICAgaWYg
KCFyZXN1bHQuZGVjb2RlRGF0YShkZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorYm9v
bCBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhOjpkZWNvZGVEYXRhKERlY29kZXImIGRlY29kZXIp
Cit7CisjZGVmaW5lIERFQ09ERShuYW1lLCB0eXBlKSBcCisgICAgT3B0aW9uYWw8dHlwZT4gbmFt
ZTsgXAorICAgIGRlY29kZXIgPj4gbmFtZTsgXAorICAgIGlmICghbmFtZSkgXAorICAgICAgICBy
ZXR1cm4gZmFsc2U7IFwKKyAgICB0aGlzLT5uYW1lID0gV1RGTW92ZSgqbmFtZSk7IFwKKworI2lm
IGRlZmluZWQoQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YUFkZGl0aW9uc19kZWNvZGVEYXRhKQor
ICAgIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGFBZGRpdGlvbnNfZGVjb2RlRGF0YQorI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CisjZW5kaWYKKworI3VuZGVmIERFQ09ERQorCisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShBUFBMRV9QQVkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjY3MTg4MTQyMDUzMgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRl
RGF0YS5pZGwKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25h
bD1BUFBMRV9QQVksCitdIGRpY3Rpb25hcnkgQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSB7Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVy
cm9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvci5j
cHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3NzY3YzMwYWQ4Ny4uMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvci5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUg
ImNvbmZpZy5oIgotI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3IuaCIKLQotI2lmIEVOQUJMRShBUFBM
RV9QQVkpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUmVmPEFwcGxlUGF5RXJyb3I+IEFwcGxl
UGF5RXJyb3I6OmNyZWF0ZShDb2RlIGNvZGUsIE9wdGlvbmFsPENvbnRhY3RGaWVsZD4gY29udGFj
dEZpZWxkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgQXBwbGVQYXlFcnJvciB7IGNvZGUsIGNvbnRhY3RGaWVsZCwgbWVzc2FnZSB9KTsKLX0KLQot
QXBwbGVQYXlFcnJvcjo6QXBwbGVQYXlFcnJvcihDb2RlIGNvZGUsIE9wdGlvbmFsPENvbnRhY3RG
aWVsZD4gY29udGFjdEZpZWxkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCi0gICAgOiBtX2NvZGUg
eyBjb2RlIH0KLSAgICAsIG1fY29udGFjdEZpZWxkIHsgY29udGFjdEZpZWxkIH0KLSAgICAsIG1f
bWVzc2FnZSB7IG1lc3NhZ2UgfQotewotfQotCi1BcHBsZVBheUVycm9yOjp+QXBwbGVQYXlFcnJv
cigpID0gZGVmYXVsdDsKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9BcHBsZVBheUVycm9yLmgKaW5kZXggMzMxZGUxMmM0NTk2Li4yNTliMjBmNDQ0
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlF
cnJvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJv
ci5oCkBAIC0yNywzNyArMjcsNzYgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKLSNpbmNs
dWRlICJBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oIgorI2luY2x1ZGUgIkFwcGxlUGF5
RXJyb3JDb2RlLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oIgorI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcHBsZVBh
eUVycm9yIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8QXBwbGVQYXlFcnJvcj4gewogcHVibGlj
OgotICAgIHVzaW5nIENvZGUgPSBQYXltZW50RXJyb3I6OkNvZGU7Ci0gICAgdXNpbmcgQ29udGFj
dEZpZWxkID0gUGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ7CisgICAgc3RhdGljIFJlZjxBcHBs
ZVBheUVycm9yPiBjcmVhdGUoQXBwbGVQYXlFcnJvckNvZGUgY29kZSwgT3B0aW9uYWw8QXBwbGVQ
YXlFcnJvckNvbnRhY3RGaWVsZD4gY29udGFjdEZpZWxkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
CisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcHBsZVBheUVycm9yKGNvZGUs
IGNvbnRhY3RGaWVsZCwgbWVzc2FnZSkpOworICAgIH0KIAotICAgIHN0YXRpYyBSZWY8QXBwbGVQ
YXlFcnJvcj4gY3JlYXRlKENvZGUsIE9wdGlvbmFsPENvbnRhY3RGaWVsZD4sIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSk7Ci0gICAgdmlydHVhbCB+QXBwbGVQYXlFcnJvcigpOworICAgIHZpcnR1YWwg
fkFwcGxlUGF5RXJyb3IoKSA9IGRlZmF1bHQ7CiAKLSAgICBDb2RlIGNvZGUoKSBjb25zdCB7IHJl
dHVybiBtX2NvZGU7IH0KLSAgICB2b2lkIHNldENvZGUoQ29kZSBjb2RlKSB7IG1fY29kZSA9IGNv
ZGU7IH0KKyAgICBBcHBsZVBheUVycm9yQ29kZSBjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2Rl
OyB9CisgICAgdm9pZCBzZXRDb2RlKEFwcGxlUGF5RXJyb3JDb2RlIGNvZGUpIHsgbV9jb2RlID0g
Y29kZTsgfQogCi0gICAgT3B0aW9uYWw8Q29udGFjdEZpZWxkPiBjb250YWN0RmllbGQoKSBjb25z
dCB7IHJldHVybiBtX2NvbnRhY3RGaWVsZDsgfQotICAgIHZvaWQgc2V0Q29udGFjdEZpZWxkKE9w
dGlvbmFsPENvbnRhY3RGaWVsZD4gY29udGFjdEZpZWxkKSB7IG1fY29udGFjdEZpZWxkID0gY29u
dGFjdEZpZWxkOyB9CisgICAgT3B0aW9uYWw8QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZD4gY29u
dGFjdEZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV9jb250YWN0RmllbGQ7IH0KKyAgICB2b2lkIHNl
dENvbnRhY3RGaWVsZChPcHRpb25hbDxBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkPiBjb250YWN0
RmllbGQpIHsgbV9jb250YWN0RmllbGQgPSBjb250YWN0RmllbGQ7IH0KIAogICAgIFN0cmluZyBt
ZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9tZXNzYWdlOyB9CiAgICAgdm9pZCBzZXRNZXNzYWdl
KFN0cmluZyYmIG1lc3NhZ2UpIHsgbV9tZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKTsgfQogCi1w
cml2YXRlOgotICAgIEFwcGxlUGF5RXJyb3IoQ29kZSwgT3B0aW9uYWw8Q29udGFjdEZpZWxkPiwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIFJlZlB0cjxBcHBsZVBheUVycm9yPiBkZWNvZGUoRGVjb2RlciYpOwogCi0gICAgQ29kZSBt
X2NvZGU7Ci0gICAgT3B0aW9uYWw8Q29udGFjdEZpZWxkPiBtX2NvbnRhY3RGaWVsZDsKK3ByaXZh
dGU6CisgICAgQXBwbGVQYXlFcnJvcihBcHBsZVBheUVycm9yQ29kZSBjb2RlLCBPcHRpb25hbDxB
cHBsZVBheUVycm9yQ29udGFjdEZpZWxkPiBjb250YWN0RmllbGQsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKKyAgICAgICAgOiBtX2NvZGUoY29kZSkKKyAgICAgICAgLCBtX2NvbnRhY3RGaWVsZChj
b250YWN0RmllbGQpCisgICAgICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCisgICAgeworICAgIH0K
KworICAgIEFwcGxlUGF5RXJyb3JDb2RlIG1fY29kZTsKKyAgICBPcHRpb25hbDxBcHBsZVBheUVy
cm9yQ29udGFjdEZpZWxkPiBtX2NvbnRhY3RGaWVsZDsKICAgICBTdHJpbmcgbV9tZXNzYWdlOwog
fTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQXBwbGVQYXlFcnJvcjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX2NvZGU7CisgICAg
ZW5jb2RlciA8PCBtX2NvbnRhY3RGaWVsZDsKKyAgICBlbmNvZGVyIDw8IG1fbWVzc2FnZTsKIH0K
IAordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK1JlZlB0cjxBcHBsZVBheUVycm9yPiBBcHBsZVBh
eUVycm9yOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyNkZWZpbmUgREVDT0RFKG5hbWUs
IHR5cGUpIFwKKyAgICBPcHRpb25hbDx0eXBlPiBuYW1lOyBcCisgICAgZGVjb2RlciA+PiBuYW1l
OyBcCisgICAgaWYgKCFuYW1lKSBcCisgICAgICAgIHJldHVybiBudWxscHRyOyBcCisKKyAgICBE
RUNPREUoY29kZSwgQXBwbGVQYXlFcnJvckNvZGUpCisgICAgREVDT0RFKGNvbnRhY3RGaWVsZCwg
T3B0aW9uYWw8QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZD4pCisgICAgREVDT0RFKG1lc3NhZ2Us
IFN0cmluZykKKworI3VuZGVmIERFQ09ERQorCisgICAgcmV0dXJuIEFwcGxlUGF5RXJyb3I6OmNy
ZWF0ZShXVEZNb3ZlKCpjb2RlKSwgV1RGTW92ZSgqY29udGFjdEZpZWxkKSwgV1RGTW92ZSgqbWVz
c2FnZSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29kZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29kZS5oCmluZGV4
IDJmYWVlZjdkYzg3ZS4uODdjNjAxNWUzMWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3JDb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29kZS5oCkBAIC0yNywxMiArMjcsMzEgQEAK
IAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKLSNpbmNsdWRlICJBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdC5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotdXNpbmcgQXBwbGVQYXlFcnJvckNvZGUgPSBQYXltZW50RXJyb3I6OkNvZGU7Citl
bnVtIGNsYXNzIEFwcGxlUGF5RXJyb3JDb2RlIHsKKyAgICBVbmtub3duLAorICAgIFNoaXBwaW5n
Q29udGFjdEludmFsaWQsCisgICAgQmlsbGluZ0NvbnRhY3RJbnZhbGlkLAorICAgIEFkZHJlc3NV
bnNlcnZpY2VhYmxlLAorfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCituYW1lc3BhY2Ug
V1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpBcHBsZVBheUVy
cm9yQ29kZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNv
cmU6OkFwcGxlUGF5RXJyb3JDb2RlLAorICAgICAgICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29k
ZTo6VW5rbm93biwKKyAgICAgICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvZGU6OlNoaXBwaW5n
Q29udGFjdEludmFsaWQsCisgICAgICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb2RlOjpCaWxs
aW5nQ29udGFjdEludmFsaWQsCisgICAgICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb2RlOjpB
ZGRyZXNzVW5zZXJ2aWNlYWJsZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwog
I2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oCmluZGV4IGY2
YTcwZDA3MDdjYi4uMTY0ZGJmYWIyODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaApAQCAtMjcs
MTIgKzI3LDQ5IEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCi0jaW5jbHVkZSAiQXBwbGVQ
YXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQgPSBQ
YXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDsKK2VudW0gY2xhc3MgQXBwbGVQYXlFcnJvckNvbnRh
Y3RGaWVsZCB7CisgICAgUGhvbmVOdW1iZXIsCisgICAgRW1haWxBZGRyZXNzLAorICAgIE5hbWUs
CisgICAgUGhvbmV0aWNOYW1lLAorICAgIFBvc3RhbEFkZHJlc3MsCisgICAgQWRkcmVzc0xpbmVz
LAorICAgIFN1YkxvY2FsaXR5LAorICAgIExvY2FsaXR5LAorICAgIFBvc3RhbENvZGUsCisgICAg
U3ViQWRtaW5pc3RyYXRpdmVBcmVhLAorICAgIEFkbWluaXN0cmF0aXZlQXJlYSwKKyAgICBDb3Vu
dHJ5LAorICAgIENvdW50cnlDb2RlLAorfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCitu
YW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpB
cHBsZVBheUVycm9yQ29udGFjdEZpZWxkPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVl
czwKKyAgICAgICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZCwKKyAgICAgICAg
V2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UGhvbmVOdW1iZXIsCisgICAgICAg
IFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OkVtYWlsQWRkcmVzcywKKyAgICAg
ICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6TmFtZSwKKyAgICAgICAgV2Vi
Q29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UGhvbmV0aWNOYW1lLAorICAgICAgICBX
ZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpQb3N0YWxBZGRyZXNzLAorICAgICAg
ICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpBZGRyZXNzTGluZXMsCisgICAg
ICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlN1YkxvY2FsaXR5LAorICAg
ICAgICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpMb2NhbGl0eSwKKyAgICAg
ICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UG9zdGFsQ29kZSwKKyAgICAg
ICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6U3ViQWRtaW5pc3RyYXRpdmVB
cmVhLAorICAgICAgICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpBZG1pbmlz
dHJhdGl2ZUFyZWEsCisgICAgICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6
OkNvdW50cnksCisgICAgICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OkNv
dW50cnlDb2RlCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCiAjZW5kaWYgLy8g
RU5BQkxFKEFQUExFX1BBWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0LmgK
aW5kZXggNDhkNGI3N2JlZDE4Li4wM2QxN2Q4MThkNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50QXV0
aG9yaXphdGlvblJlc3VsdC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKEFQUExFX1BB
WSkKIAogI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3IuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhv
ZFVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1l
bnRNZXRob2RVcGRhdGUuaAppbmRleCBkYjQ0NjY0YTVjY2YuLjI5NDZjY2M4OTk0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRo
b2RVcGRhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
UGF5bWVudE1ldGhvZFVwZGF0ZS5oCkBAIC0yNywxNiArMjcsNTQgQEAKIAogI2lmIEVOQUJMRShB
UFBMRV9QQVkpCiAKLSNpbmNsdWRlICJBcHBsZVBheUxpbmVJdGVtLmgiCisjaW5jbHVkZSAiQXBw
bGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0
cnVjdCBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUgewotICAgIEFwcGxlUGF5TGluZUl0ZW0g
bmV3VG90YWw7Ci0gICAgVmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+IG5ld0xpbmVJdGVtczsKK3N0
cnVjdCBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUgZmluYWwgOiBwdWJsaWMgQXBwbGVQYXlE
ZXRhaWxzVXBkYXRlQmFzZSB7CisjaWYgRU5BQkxFKEFQUExFX1BBWV9JTlNUQUxMTUVOVFMpCiAg
ICAgU3RyaW5nIGluc3RhbGxtZW50R3JvdXBJZGVudGlmaWVyOworI2VuZGlmIC8vIEVOQUJMRShB
UFBMRV9QQVlfSU5TVEFMTE1FTlRTKQorCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBPcHRpb25hbDxBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+IGRlY29kZShEZWNvZGVy
Jik7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBBcHBsZVBheVBheW1lbnRN
ZXRob2RVcGRhdGU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIEFwcGxl
UGF5RGV0YWlsc1VwZGF0ZUJhc2U6OmVuY29kZShlbmNvZGVyKTsKKyNpZiBFTkFCTEUoQVBQTEVf
UEFZX0lOU1RBTExNRU5UUykKKyAgICBlbmNvZGVyIDw8IGluc3RhbGxtZW50R3JvdXBJZGVudGlm
aWVyOworI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVlfSU5TVEFMTE1FTlRTKQogfQogCit0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRl
PiBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
eworICAgIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZSByZXN1bHQ7CisKKyAgICBpZiAoIXJl
c3VsdC5kZWNvZGVCYXNlKGRlY29kZXIpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisjZGVmaW5lIERFQ09ERShuYW1lLCB0eXBlKSBcCisgICAgT3B0aW9uYWw8dHlwZT4gbmFtZTsg
XAorICAgIGRlY29kZXIgPj4gbmFtZTsgXAorICAgIGlmICghbmFtZSkgXAorICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OyBcCisgICAgcmVzdWx0Lm5hbWUgPSBXVEZNb3ZlKCpuYW1lKTsgXAor
CisjaWYgRU5BQkxFKEFQUExFX1BBWV9JTlNUQUxMTUVOVFMpCisgICAgREVDT0RFKGluc3RhbGxt
ZW50R3JvdXBJZGVudGlmaWVyLCBTdHJpbmcpCisjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWV9J
TlNUQUxMTUVOVFMpCisKKyN1bmRlZiBERUNPREUKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0
ZS5pZGwKaW5kZXggYzA2OTEwZDdiZmRjLi4yOGU4N2IxOGQxYWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1l
dGhvZFVwZGF0ZS5pZGwKQEAgLTI1LDggKzI1LDYgQEAKIAogWwogICAgIENvbmRpdGlvbmFsPUFQ
UExFX1BBWSwKLV0gZGljdGlvbmFyeSBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUgewotICAg
IHJlcXVpcmVkIEFwcGxlUGF5TGluZUl0ZW0gbmV3VG90YWw7Ci0gICAgc2VxdWVuY2U8QXBwbGVQ
YXlMaW5lSXRlbT4gbmV3TGluZUl0ZW1zOworXSBkaWN0aW9uYXJ5IEFwcGxlUGF5UGF5bWVudE1l
dGhvZFVwZGF0ZSA6IEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UgewogICAgIFtDb25kaXRpb25h
bD1BUFBMRV9QQVlfSU5TVEFMTE1FTlRTXSBET01TdHJpbmcgaW5zdGFsbG1lbnRHcm91cElkZW50
aWZpZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheVBheW1lbnRSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5UGF5bWVudFJlcXVlc3QuaAppbmRleCAzZjBiNjZmMTc5MzcuLmI3NTI1NjEwNWMx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBh
eW1lbnRSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVBheW1lbnRSZXF1ZXN0LmgKQEAgLTMzLDYgKzMzLDEwIEBACiAjaW5jbHVkZSAiQXBwbGVQ
YXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKICNpbmNsdWRlICJBcHBsZVBheVNoaXBwaW5nTWV0
aG9kLmgiCiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2luY2x1ZGUgPFdlYktpdEFk
ZGl0aW9ucy9BcHBsZVBheVBheW1lbnRSZXF1ZXN0QWRkaXRpb25zLmg+CisjZW5kaWYKKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgQXBwbGVQYXlQYXltZW50UmVxdWVzdCA6IEFwcGxl
UGF5UmVxdWVzdEJhc2UgewpAQCAtNDUsNiArNDksMTAgQEAgc3RydWN0IEFwcGxlUGF5UGF5bWVu
dFJlcXVlc3QgOiBBcHBsZVBheVJlcXVlc3RCYXNlIHsKIAogICAgIEFwcGxlUGF5TGluZUl0ZW0g
dG90YWw7CiAgICAgT3B0aW9uYWw8VmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+PiBsaW5lSXRlbXM7
CisKKyNpZiBkZWZpbmVkKEFwcGxlUGF5UGF5bWVudFJlcXVlc3RBZGRpdGlvbnNfbWVtYmVycykK
KyAgICBBcHBsZVBheVBheW1lbnRSZXF1ZXN0QWRkaXRpb25zX21lbWJlcnMKKyNlbmRpZgogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVJlcXVlc3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlSZXF1ZXN0QmFzZS5jcHAKaW5kZXggNzI3MGIyMDRlZDc4Li5iNzM4ZGVjYmQ0NDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFz
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVl
c3RCYXNlLmNwcApAQCAtMzEsNiArMzEsMTAgQEAKICNpbmNsdWRlICJQYXltZW50Q29vcmRpbmF0
b3IuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIAor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0Fw
cGxlUGF5UmVxdWVzdEJhc2VBZGRpdGlvbnMuY3BwPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogc3RhdGljIGJvb2wgcmVxdWlyZXNTdXBwb3J0ZWROZXR3b3Jrcyh1bnNpZ25lZCB2
ZXJzaW9uLCBjb25zdCBBcHBsZVBheVJlcXVlc3RCYXNlJiByZXF1ZXN0KQpAQCAtMTE0LDYgKzEx
OCwxMCBAQCBFeGNlcHRpb25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdD4gY29udmVy
dEFuZFZhbGlkYXRlKERvY3VtZW50JiBkb2N1bWVudAogICAgIH0KICNlbmRpZgogCisjaWYgZGVm
aW5lZChBcHBsZVBheVJlcXVlc3RCYXNlQWRkaXRpb25zX2NvbnZlcnRBbmRWYWxpZGF0ZSkKKyAg
ICBBcHBsZVBheVJlcXVlc3RCYXNlQWRkaXRpb25zX2NvbnZlcnRBbmRWYWxpZGF0ZQorI2VuZGlm
CisKICAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5oCmluZGV4IDMzZDE2
YTc1MTBmMC4uMzIwYTczNjFlMzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuaApAQCAtMzIsNiArMzIsMTAgQEAKICNp
bmNsdWRlICJBcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5oIgogI2luY2x1ZGUgIkFwcGxlUGF5
UGF5bWVudENvbnRhY3QuaCIKIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW5jbHVk
ZSA8V2ViS2l0QWRkaXRpb25zL0FwcGxlUGF5UmVxdWVzdEJhc2VBZGRpdGlvbnMuaD4KKyNlbmRp
ZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwpAQCAtNTQsNiArNTgs
MTAgQEAgc3RydWN0IEFwcGxlUGF5UmVxdWVzdEJhc2UgewogI2lmIEVOQUJMRShBUFBMRV9QQVlf
SU5TVEFMTE1FTlRTKQogICAgIE9wdGlvbmFsPEFwcGxlUGF5SW5zdGFsbG1lbnRDb25maWd1cmF0
aW9uPiBpbnN0YWxsbWVudENvbmZpZ3VyYXRpb247CiAjZW5kaWYKKworI2lmIGRlZmluZWQoQXBw
bGVQYXlSZXF1ZXN0QmFzZUFkZGl0aW9uc19tZW1iZXJzKQorICAgIEFwcGxlUGF5UmVxdWVzdEJh
c2VBZGRpdGlvbnNfbWVtYmVycworI2VuZGlmCiB9OwogCiBFeGNlcHRpb25PcjxBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdD4gY29udmVydEFuZFZhbGlkYXRlKERvY3VtZW50JiwgdW5zaWdu
ZWQgdmVyc2lvbiwgQXBwbGVQYXlSZXF1ZXN0QmFzZSYsIGNvbnN0IFBheW1lbnRDb29yZGluYXRv
ciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNl
c3Npb24uY3BwCmluZGV4IDI4OTQ2OTIxZjlkMS4uNzQ0NWYxNzI3NzM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwCkBAIC0y
OCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCisjaW5jbHVkZSAiQXBwbGVQ
YXlFcnJvckNvZGUuaCIKKyNpbmNsdWRlICJBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmgiCiAj
aW5jbHVkZSAiQXBwbGVQYXlDYW5jZWxFdmVudC5oIgogI2luY2x1ZGUgIkFwcGxlUGF5TGluZUl0
ZW0uaCIKICNpbmNsdWRlICJBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0LmgiCkBA
IC01Niw3ICs1OCw2IEBACiAjaW5jbHVkZSAiUGF5bWVudENvb3JkaW5hdG9yLmgiCiAjaW5jbHVk
ZSAiUGF5bWVudE1lcmNoYW50U2Vzc2lvbi5oIgogI2luY2x1ZGUgIlBheW1lbnRNZXRob2QuaCIK
LSNpbmNsdWRlICJQYXltZW50TWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVkZSAiUGF5bWVudFJlcXVl
c3RWYWxpZGF0b3IuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCkBAIC02NCwxNyArNjUsMTEgQEAKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5s
aW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotc3RhdGljIHZvaWQgZmluaXNoQ29udmVydGluZyhQYXltZW50TWV0aG9kVXBkYXRlJiBjb252
ZXJ0ZWRVcGRhdGUsIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZSYmIHVwZGF0ZSkKLXsKLSNp
ZiBFTkFCTEUoQVBQTEVfUEFZX0lOU1RBTExNRU5UUykKLSAgICBjb252ZXJ0ZWRVcGRhdGUuc2V0
SW5zdGFsbG1lbnRHcm91cElkZW50aWZpZXIodXBkYXRlLmluc3RhbGxtZW50R3JvdXBJZGVudGlm
aWVyKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGNvbnZlcnRlZFVwZGF0ZSk7Ci0gICAgVU5V
U0VEX1BBUkFNKHVwZGF0ZSk7CisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRl
IDxXZWJLaXRBZGRpdGlvbnMvQXBwbGVQYXlTZXNzaW9uQWRkaXRpb25zLmNwcD4KICNlbmRpZgot
fQorCituYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChB
cHBsZVBheVNlc3Npb24pOwogCkBAIC0xODgsMjUgKzE4MywxOSBAQCBzdGF0aWMgRXhjZXB0aW9u
T3I8VmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+PiBjb252ZXJ0QW5kVmFsaWRhdGUoT3B0aW9uYWw8
VmVjdG9yPAogICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBFeGNlcHRp
b25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+IGNvbnZl
cnRBbmRWYWxpZGF0ZShBcHBsZVBheVNoaXBwaW5nTWV0aG9kJiYgc2hpcHBpbmdNZXRob2QpCitz
dGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4gY29udmVydEFuZFZhbGlk
YXRlKEFwcGxlUGF5U2hpcHBpbmdNZXRob2QmJiBzaGlwcGluZ01ldGhvZCkKIHsKICAgICBpZiAo
IXZhbGlkYXRlQW1vdW50KHNoaXBwaW5nTWV0aG9kLmFtb3VudCkpCiAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBUeXBlRXJyb3IsIG1ha2VTdHJpbmcoIlwiIiArIHNoaXBwaW5nTWV0aG9kLmFt
b3VudCwgIlwiIGlzIG5vdCBhIHZhbGlkIGFtb3VudC4iKSB9OwogCi0gICAgQXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kIHJlc3VsdDsKLSAgICByZXN1bHQuYW1v
dW50ID0gc2hpcHBpbmdNZXRob2QuYW1vdW50OwotICAgIHJlc3VsdC5sYWJlbCA9IHNoaXBwaW5n
TWV0aG9kLmxhYmVsOwotICAgIHJlc3VsdC5kZXRhaWwgPSBzaGlwcGluZ01ldGhvZC5kZXRhaWw7
Ci0gICAgcmVzdWx0LmlkZW50aWZpZXIgPSBzaGlwcGluZ01ldGhvZC5pZGVudGlmaWVyOwotCi0g
ICAgcmV0dXJuIFdURk1vdmUocmVzdWx0KTsKKyAgICByZXR1cm4gV1RGTW92ZShzaGlwcGluZ01l
dGhvZCk7CiB9CiAKLXN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8QXBwbGVQYXlTZXNzaW9uUGF5
bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPj4gY29udmVydEFuZFZhbGlkYXRlKFZlY3RvcjxB
cHBsZVBheVNoaXBwaW5nTWV0aG9kPiYmIHNoaXBwaW5nTWV0aG9kcykKK3N0YXRpYyBFeGNlcHRp
b25PcjxWZWN0b3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4+IGNvbnZlcnRBbmRWYWxpZGF0ZShW
ZWN0b3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4mJiBzaGlwcGluZ01ldGhvZHMpCiB7Ci0gICAg
VmVjdG9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4gcmVz
dWx0OworICAgIFZlY3RvcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiByZXN1bHQ7CiAgICAgcmVz
dWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoc2hpcHBpbmdNZXRob2RzLnNpemUoKSk7Ci0gICAg
CisKICAgICBmb3IgKGF1dG8mIHNoaXBwaW5nTWV0aG9kIDogc2hpcHBpbmdNZXRob2RzKSB7CiAg
ICAgICAgIGF1dG8gY29udmVydGVkU2hpcHBpbmdNZXRob2QgPSBjb252ZXJ0QW5kVmFsaWRhdGUo
V1RGTW92ZShzaGlwcGluZ01ldGhvZCkpOwogICAgICAgICBpZiAoY29udmVydGVkU2hpcHBpbmdN
ZXRob2QuaGFzRXhjZXB0aW9uKCkpCkBAIC0yNDYsNiArMjM1LDEwIEBAIHN0YXRpYyBFeGNlcHRp
b25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdD4gY29udmVydEFuZFZhbGlkYXRlKERv
Y3VtZW50JiBkCiAgICAgICAgIHJlc3VsdC5zZXRTaGlwcGluZ01ldGhvZHMoc2hpcHBpbmdNZXRo
b2RzLnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKICAgICB9CiAKKyNpZiBkZWZpbmVkKEFwcGxlUGF5
U2Vzc2lvbkFkZGl0aW9uc19jb252ZXJ0QW5kVmFsaWRhdGUpCisgICAgQXBwbGVQYXlTZXNzaW9u
QWRkaXRpb25zX2NvbnZlcnRBbmRWYWxpZGF0ZQorI2VuZGlmCisKICAgICAvLyBGSVhNRTogTWVy
Z2UgdGhpcyB2YWxpZGF0aW9uIGludG8gdGhlIHZhbGlkYXRpb24gd2UgYXJlIGRvaW5nIGFib3Zl
LgogICAgIGF1dG8gdmFsaWRhdGVkUGF5bWVudFJlcXVlc3QgPSBQYXltZW50UmVxdWVzdFZhbGlk
YXRvcjo6dmFsaWRhdGUocmVzdWx0KTsKICAgICBpZiAodmFsaWRhdGVkUGF5bWVudFJlcXVlc3Qu
aGFzRXhjZXB0aW9uKCkpCkBAIC0yNTQsMjQgKzI0Nyw2IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdD4gY29udmVydEFuZFZhbGlkYXRlKERvY3VtZW50
JiBkCiAgICAgcmV0dXJuIFdURk1vdmUocmVzdWx0KTsKIH0KIAotCi1zdGF0aWMgVmVjdG9yPFBh
eW1lbnRFcnJvcj4gY29udmVydChjb25zdCBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYg
ZXJyb3JzKQotewotICAgIFZlY3RvcjxQYXltZW50RXJyb3I+IGNvbnZlcnRlZEVycm9yczsKLQot
ICAgIGZvciAoYXV0byYgZXJyb3IgOiBlcnJvcnMpIHsKLSAgICAgICAgUGF5bWVudEVycm9yIGNv
bnZlcnRlZEVycm9yOwotCi0gICAgICAgIGNvbnZlcnRlZEVycm9yLmNvZGUgPSBlcnJvci0+Y29k
ZSgpOwotICAgICAgICBjb252ZXJ0ZWRFcnJvci5tZXNzYWdlID0gZXJyb3ItPm1lc3NhZ2UoKTsK
LSAgICAgICAgY29udmVydGVkRXJyb3IuY29udGFjdEZpZWxkID0gZXJyb3ItPmNvbnRhY3RGaWVs
ZCgpOwotCi0gICAgICAgIGNvbnZlcnRlZEVycm9ycy5hcHBlbmQoY29udmVydGVkRXJyb3IpOwot
ICAgIH0KLQotICAgIHJldHVybiBjb252ZXJ0ZWRFcnJvcnM7Ci19Ci0KIHN0YXRpYyBFeGNlcHRp
b25PcjxQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4gY29udmVydEFuZFZhbGlkYXRlKEFwcGxl
UGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQmJiByZXN1bHQpCiB7CiAgICAgUGF5bWVudEF1
dGhvcml6YXRpb25SZXN1bHQgY29udmVydGVkUmVzdWx0OwpAQCAtMjg3LDE3ICsyNjIsMTcgQEAg
c3RhdGljIEV4Y2VwdGlvbk9yPFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiBjb252ZXJ0QW5k
VmFsaWRhdGUoQXBwbGVQYXlQYXltZW4KIAogICAgIGNhc2UgQXBwbGVQYXlTZXNzaW9uOjpTVEFU
VVNfSU5WQUxJRF9CSUxMSU5HX1BPU1RBTF9BRERSRVNTOgogICAgICAgICBjb252ZXJ0ZWRSZXN1
bHQuc3RhdHVzID0gUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OkZhaWx1cmU7Ci0gICAgICAg
IGNvbnZlcnRlZFJlc3VsdC5lcnJvcnMuYXBwZW5kKHsgUGF5bWVudEVycm9yOjpDb2RlOjpCaWxs
aW5nQ29udGFjdEludmFsaWQsIHsgfSwgV1RGOjpudWxsb3B0IH0pOworICAgICAgICBjb252ZXJ0
ZWRSZXN1bHQuZXJyb3JzLmFwcGVuZChBcHBsZVBheUVycm9yOjpjcmVhdGUoQXBwbGVQYXlFcnJv
ckNvZGU6OkJpbGxpbmdDb250YWN0SW52YWxpZCwgV1RGOjpudWxsb3B0LCBudWxsU3RyaW5nKCkp
KTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX0lO
VkFMSURfU0hJUFBJTkdfUE9TVEFMX0FERFJFU1M6CiAgICAgICAgIGNvbnZlcnRlZFJlc3VsdC5z
dGF0dXMgPSBQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6RmFpbHVyZTsKLSAgICAgICAgY29u
dmVydGVkUmVzdWx0LmVycm9ycy5hcHBlbmQoeyBQYXltZW50RXJyb3I6OkNvZGU6OlNoaXBwaW5n
Q29udGFjdEludmFsaWQsIHsgfSwgUGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlBvc3RhbEFk
ZHJlc3MgfSk7CisgICAgICAgIGNvbnZlcnRlZFJlc3VsdC5lcnJvcnMuYXBwZW5kKEFwcGxlUGF5
RXJyb3I6OmNyZWF0ZShBcHBsZVBheUVycm9yQ29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxpZCwg
QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UG9zdGFsQWRkcmVzcywgbnVsbFN0cmluZygpKSk7
CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBBcHBsZVBheVNlc3Npb246OlNUQVRVU19JTlZB
TElEX1NISVBQSU5HX0NPTlRBQ1Q6CiAgICAgICAgIGNvbnZlcnRlZFJlc3VsdC5zdGF0dXMgPSBQ
YXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6RmFpbHVyZTsKLSAgICAgICAgY29udmVydGVkUmVz
dWx0LmVycm9ycy5hcHBlbmQoeyBQYXltZW50RXJyb3I6OkNvZGU6OlNoaXBwaW5nQ29udGFjdElu
dmFsaWQsIHsgfSwgV1RGOjpudWxsb3B0IH0pOworICAgICAgICBjb252ZXJ0ZWRSZXN1bHQuZXJy
b3JzLmFwcGVuZChBcHBsZVBheUVycm9yOjpjcmVhdGUoQXBwbGVQYXlFcnJvckNvZGU6OlNoaXBw
aW5nQ29udGFjdEludmFsaWQsIFdURjo6bnVsbG9wdCwgbnVsbFN0cmluZygpKSk7CiAgICAgICAg
IGJyZWFrOwogCiAgICAgY2FzZSBBcHBsZVBheVNlc3Npb246OlNUQVRVU19QSU5fUkVRVUlSRUQ6
CkBAIC0zMTYsNjggKzI5MSw1OSBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8UGF5bWVudEF1dGhvcml6
YXRpb25SZXN1bHQ+IGNvbnZlcnRBbmRWYWxpZGF0ZShBcHBsZVBheVBheW1lbgogICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CiAgICAgfQogCi0gICAgY29u
dmVydGVkUmVzdWx0LmVycm9ycy5hcHBlbmRWZWN0b3IoY29udmVydChyZXN1bHQuZXJyb3JzKSk7
CisgICAgY29udmVydGVkUmVzdWx0LmVycm9ycy5hcHBlbmRWZWN0b3IoV1RGTW92ZShyZXN1bHQu
ZXJyb3JzKSk7CiAKICAgICByZXR1cm4gV1RGTW92ZShjb252ZXJ0ZWRSZXN1bHQpOwogfQogCi1z
dGF0aWMgRXhjZXB0aW9uT3I8UGF5bWVudE1ldGhvZFVwZGF0ZT4gY29udmVydEFuZFZhbGlkYXRl
KEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZSYmIHVwZGF0ZSkKK3N0YXRpYyBFeGNlcHRpb25P
cjxBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+IGNvbnZlcnRBbmRWYWxpZGF0ZShBcHBsZVBh
eVBheW1lbnRNZXRob2RVcGRhdGUmJiB1cGRhdGUpCiB7CiAgICAgYXV0byBjb252ZXJ0ZWROZXdU
b3RhbCA9IGNvbnZlcnRBbmRWYWxpZGF0ZVRvdGFsKFdURk1vdmUodXBkYXRlLm5ld1RvdGFsKSk7
CiAgICAgaWYgKGNvbnZlcnRlZE5ld1RvdGFsLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1
cm4gY29udmVydGVkTmV3VG90YWwucmVsZWFzZUV4Y2VwdGlvbigpOworICAgIHVwZGF0ZS5uZXdU
b3RhbCA9IGNvbnZlcnRlZE5ld1RvdGFsLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCiAgICAgYXV0
byBjb252ZXJ0ZWROZXdMaW5lSXRlbXMgPSBjb252ZXJ0QW5kVmFsaWRhdGUoV1RGTW92ZSh1cGRh
dGUubmV3TGluZUl0ZW1zKSk7CiAgICAgaWYgKGNvbnZlcnRlZE5ld0xpbmVJdGVtcy5oYXNFeGNl
cHRpb24oKSkKICAgICAgICAgcmV0dXJuIGNvbnZlcnRlZE5ld0xpbmVJdGVtcy5yZWxlYXNlRXhj
ZXB0aW9uKCk7CisgICAgdXBkYXRlLm5ld0xpbmVJdGVtcyA9IGNvbnZlcnRlZE5ld0xpbmVJdGVt
cy5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKIAotICAgIFBheW1lbnRNZXRob2RVcGRhdGUgY29udmVy
dGVkVXBkYXRlIHsgY29udmVydGVkTmV3VG90YWwucmVsZWFzZVJldHVyblZhbHVlKCksIGNvbnZl
cnRlZE5ld0xpbmVJdGVtcy5yZWxlYXNlUmV0dXJuVmFsdWUoKSB9OwotICAgIGZpbmlzaENvbnZl
cnRpbmcoY29udmVydGVkVXBkYXRlLCBXVEZNb3ZlKHVwZGF0ZSkpOwotCi0gICAgcmV0dXJuIFdU
Rk1vdmUoY29udmVydGVkVXBkYXRlKTsKKyAgICByZXR1cm4gV1RGTW92ZSh1cGRhdGUpOwogfQog
Ci1zdGF0aWMgRXhjZXB0aW9uT3I8U2hpcHBpbmdDb250YWN0VXBkYXRlPiBjb252ZXJ0QW5kVmFs
aWRhdGUoQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUmJiB1cGRhdGUpCitzdGF0aWMgRXhj
ZXB0aW9uT3I8QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+IGNvbnZlcnRBbmRWYWxpZGF0
ZShBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZSYmIHVwZGF0ZSkKIHsKLSAgICBTaGlwcGlu
Z0NvbnRhY3RVcGRhdGUgY29udmVydGVkVXBkYXRlOwotCi0gICAgY29udmVydGVkVXBkYXRlLmVy
cm9ycyA9IGNvbnZlcnQodXBkYXRlLmVycm9ycyk7Ci0KICAgICBhdXRvIGNvbnZlcnRlZE5ld1No
aXBwaW5nTWV0aG9kcyA9IGNvbnZlcnRBbmRWYWxpZGF0ZShXVEZNb3ZlKHVwZGF0ZS5uZXdTaGlw
cGluZ01ldGhvZHMpKTsKICAgICBpZiAoY29udmVydGVkTmV3U2hpcHBpbmdNZXRob2RzLmhhc0V4
Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gY29udmVydGVkTmV3U2hpcHBpbmdNZXRob2RzLnJl
bGVhc2VFeGNlcHRpb24oKTsKLSAgICBjb252ZXJ0ZWRVcGRhdGUubmV3U2hpcHBpbmdNZXRob2Rz
ID0gY29udmVydGVkTmV3U2hpcHBpbmdNZXRob2RzLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAg
IHVwZGF0ZS5uZXdTaGlwcGluZ01ldGhvZHMgPSBjb252ZXJ0ZWROZXdTaGlwcGluZ01ldGhvZHMu
cmVsZWFzZVJldHVyblZhbHVlKCk7CiAKICAgICBhdXRvIGNvbnZlcnRlZE5ld1RvdGFsID0gY29u
dmVydEFuZFZhbGlkYXRlVG90YWwoV1RGTW92ZSh1cGRhdGUubmV3VG90YWwpKTsKICAgICBpZiAo
Y29udmVydGVkTmV3VG90YWwuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBjb252ZXJ0
ZWROZXdUb3RhbC5yZWxlYXNlRXhjZXB0aW9uKCk7Ci0gICAgY29udmVydGVkVXBkYXRlLm5ld1Rv
dGFsQW5kTGluZUl0ZW1zLnRvdGFsID0gY29udmVydGVkTmV3VG90YWwucmVsZWFzZVJldHVyblZh
bHVlKCk7CisgICAgdXBkYXRlLm5ld1RvdGFsID0gY29udmVydGVkTmV3VG90YWwucmVsZWFzZVJl
dHVyblZhbHVlKCk7CiAKICAgICBhdXRvIGNvbnZlcnRlZE5ld0xpbmVJdGVtcyA9IGNvbnZlcnRB
bmRWYWxpZGF0ZShXVEZNb3ZlKHVwZGF0ZS5uZXdMaW5lSXRlbXMpKTsKICAgICBpZiAoY29udmVy
dGVkTmV3TGluZUl0ZW1zLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gY29udmVydGVk
TmV3TGluZUl0ZW1zLnJlbGVhc2VFeGNlcHRpb24oKTsKLSAgICBjb252ZXJ0ZWRVcGRhdGUubmV3
VG90YWxBbmRMaW5lSXRlbXMubGluZUl0ZW1zID0gY29udmVydGVkTmV3TGluZUl0ZW1zLnJlbGVh
c2VSZXR1cm5WYWx1ZSgpOworICAgIHVwZGF0ZS5uZXdMaW5lSXRlbXMgPSBjb252ZXJ0ZWROZXdM
aW5lSXRlbXMucmVsZWFzZVJldHVyblZhbHVlKCk7CiAKLSAgICByZXR1cm4gV1RGTW92ZShjb252
ZXJ0ZWRVcGRhdGUpOworICAgIHJldHVybiBXVEZNb3ZlKHVwZGF0ZSk7CiB9CiAKLXN0YXRpYyBF
eGNlcHRpb25PcjxTaGlwcGluZ01ldGhvZFVwZGF0ZT4gY29udmVydEFuZFZhbGlkYXRlKEFwcGxl
UGF5U2hpcHBpbmdNZXRob2RVcGRhdGUmJiB1cGRhdGUpCitzdGF0aWMgRXhjZXB0aW9uT3I8QXBw
bGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4gY29udmVydEFuZFZhbGlkYXRlKEFwcGxlUGF5U2hp
cHBpbmdNZXRob2RVcGRhdGUmJiB1cGRhdGUpCiB7Ci0gICAgU2hpcHBpbmdNZXRob2RVcGRhdGUg
Y29udmVydGVkVXBkYXRlOwotCiAgICAgYXV0byBjb252ZXJ0ZWROZXdUb3RhbCA9IGNvbnZlcnRB
bmRWYWxpZGF0ZVRvdGFsKFdURk1vdmUodXBkYXRlLm5ld1RvdGFsKSk7CiAgICAgaWYgKGNvbnZl
cnRlZE5ld1RvdGFsLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gY29udmVydGVkTmV3
VG90YWwucmVsZWFzZUV4Y2VwdGlvbigpOwotCi0gICAgY29udmVydGVkVXBkYXRlLm5ld1RvdGFs
QW5kTGluZUl0ZW1zLnRvdGFsID0gY29udmVydGVkTmV3VG90YWwucmVsZWFzZVJldHVyblZhbHVl
KCk7CisgICAgdXBkYXRlLm5ld1RvdGFsID0gY29udmVydGVkTmV3VG90YWwucmVsZWFzZVJldHVy
blZhbHVlKCk7CiAKICAgICBhdXRvIGNvbnZlcnRlZE5ld0xpbmVJdGVtcyA9IGNvbnZlcnRBbmRW
YWxpZGF0ZShXVEZNb3ZlKHVwZGF0ZS5uZXdMaW5lSXRlbXMpKTsKICAgICBpZiAoY29udmVydGVk
TmV3TGluZUl0ZW1zLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gY29udmVydGVkTmV3
TGluZUl0ZW1zLnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICB1cGRhdGUubmV3TGluZUl0ZW1zID0g
Y29udmVydGVkTmV3TGluZUl0ZW1zLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCi0gICAgY29udmVy
dGVkVXBkYXRlLm5ld1RvdGFsQW5kTGluZUl0ZW1zLmxpbmVJdGVtcyA9IGNvbnZlcnRlZE5ld0xp
bmVJdGVtcy5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKLQotICAgIHJldHVybiBXVEZNb3ZlKGNvbnZl
cnRlZFVwZGF0ZSk7CisgICAgcmV0dXJuIFdURk1vdmUodXBkYXRlKTsKIH0KIAogRXhjZXB0aW9u
T3I8UmVmPEFwcGxlUGF5U2Vzc2lvbj4+IEFwcGxlUGF5U2Vzc2lvbjo6Y3JlYXRlKERvY3VtZW50
JiBkb2N1bWVudCwgdW5zaWduZWQgdmVyc2lvbiwgQXBwbGVQYXlQYXltZW50UmVxdWVzdCYmIHBh
eW1lbnRSZXF1ZXN0KQpAQCAtNjYzLDggKzYyOSw4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxl
UGF5U2Vzc2lvbjo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24odW5zaWduZWQgc2hv
CiB7CiAgICAgQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUgdXBkYXRlOwogCi0gICAgT3B0
aW9uYWw8QXBwbGVQYXlFcnJvcjo6Q29kZT4gZXJyb3JDb2RlOwotICAgIE9wdGlvbmFsPEFwcGxl
UGF5RXJyb3I6OkNvbnRhY3RGaWVsZD4gY29udGFjdEZpZWxkOworICAgIE9wdGlvbmFsPEFwcGxl
UGF5RXJyb3JDb2RlPiBlcnJvckNvZGU7CisgICAgT3B0aW9uYWw8QXBwbGVQYXlFcnJvckNvbnRh
Y3RGaWVsZD4gY29udGFjdEZpZWxkOwogCiAgICAgc3dpdGNoIChzdGF0dXMpIHsKICAgICBjYXNl
IEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX1NVQ0NFU1M6CkBAIC02NzQsMjAgKzY0MCwyMCBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVNlc3Npb246OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0
U2VsZWN0aW9uKHVuc2lnbmVkIHNobwogICAgIGNhc2UgQXBwbGVQYXlTZXNzaW9uOjpTVEFUVVNf
UElOX1JFUVVJUkVEOgogICAgIGNhc2UgQXBwbGVQYXlTZXNzaW9uOjpTVEFUVVNfUElOX0lOQ09S
UkVDVDoKICAgICBjYXNlIEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX1BJTl9MT0NLT1VUOgotICAg
ICAgICBlcnJvckNvZGUgPSBBcHBsZVBheUVycm9yOjpDb2RlOjpVbmtub3duOworICAgICAgICBl
cnJvckNvZGUgPSBBcHBsZVBheUVycm9yQ29kZTo6VW5rbm93bjsKICAgICAgICAgYnJlYWs7CiAK
ICAgICBjYXNlIEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX0lOVkFMSURfQklMTElOR19QT1NUQUxf
QUREUkVTUzoKLSAgICAgICAgZXJyb3JDb2RlID0gQXBwbGVQYXlFcnJvcjo6Q29kZTo6QmlsbGlu
Z0NvbnRhY3RJbnZhbGlkOworICAgICAgICBlcnJvckNvZGUgPSBBcHBsZVBheUVycm9yQ29kZTo6
QmlsbGluZ0NvbnRhY3RJbnZhbGlkOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQXBwbGVQ
YXlTZXNzaW9uOjpTVEFUVVNfSU5WQUxJRF9TSElQUElOR19QT1NUQUxfQUREUkVTUzoKLSAgICAg
ICAgZXJyb3JDb2RlID0gQXBwbGVQYXlFcnJvcjo6Q29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxp
ZDsKLSAgICAgICAgY29udGFjdEZpZWxkID0gQXBwbGVQYXlFcnJvcjo6Q29udGFjdEZpZWxkOjpQ
b3N0YWxBZGRyZXNzOworICAgICAgICBlcnJvckNvZGUgPSBBcHBsZVBheUVycm9yQ29kZTo6U2hp
cHBpbmdDb250YWN0SW52YWxpZDsKKyAgICAgICAgY29udGFjdEZpZWxkID0gQXBwbGVQYXlFcnJv
ckNvbnRhY3RGaWVsZDo6UG9zdGFsQWRkcmVzczsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNl
IEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX0lOVkFMSURfU0hJUFBJTkdfQ09OVEFDVDoKLSAgICAg
ICAgZXJyb3JDb2RlID0gQXBwbGVQYXlFcnJvcjo6Q29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxp
ZDsKKyAgICAgICAgZXJyb3JDb2RlID0gQXBwbGVQYXlFcnJvckNvZGU6OlNoaXBwaW5nQ29udGFj
dEludmFsaWQ7CiAgICAgICAgIGJyZWFrOwogCiAgICAgZGVmYXVsdDoKQEAgLTc1OSw3ICs3MjUs
NyBAQCB2b2lkIEFwcGxlUGF5U2Vzc2lvbjo6ZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBQYXlt
ZW50JiBwYXltZW50KQogICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQuZ2V0KCkpOwogfQogCi12b2lk
IEFwcGxlUGF5U2Vzc2lvbjo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlT
ZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKK3Zv
aWQgQXBwbGVQYXlTZXNzaW9uOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKIHsKICAgICBBU1NFUlQobV9zdGF0ZSA9
PSBTdGF0ZTo6QWN0aXZlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlTZXNzaW9uLmgKaW5kZXggMzJjYzc2Yzg3ZjY1Li5hMDI0OGI5MTVmZjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24u
aApAQCAtMTE1LDcgKzExNSw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgdmVyc2lvbigpIGNv
bnN0IG92ZXJyaWRlOwogICAgIHZvaWQgdmFsaWRhdGVNZXJjaGFudChVUkwmJikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBkaWRBdXRob3JpemVQYXltZW50KGNvbnN0IFBheW1lbnQmKSBvdmVycmlkZTsK
LSAgICB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkU2Vs
ZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KGNvbnN0IFBheW1lbnRDb250YWN0
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFBheW1l
bnRNZXRob2QmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENhbmNlbFBheW1lbnRTZXNzaW9uKFBh
eW1lbnRTZXNzaW9uRXJyb3ImJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
LmgKaW5kZXggMzk4NjQ3NmUxMmRmLi4zYTc4ZDhkN2Q0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0LmgKQEAgLTI3LDE0ICsyNywyMSBAQAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkK
IAorI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3IuaCIKICNpbmNsdWRlICJBcHBsZVBheUxpbmVJdGVt
LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oIgogI2luY2x1ZGUgIlBheW1l
bnRDb250YWN0LmgiCiAjaW5jbHVkZSAiUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbldl
YkNvcmUuaCIKICNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9PcHRp
b25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKKyNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9BcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdEFkZGl0aW9ucy5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogZW51
bSBjbGFzcyBQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czsKQEAgLTk1LDE1ICsxMDIsOCBAQCBw
dWJsaWM6CiAgICAgU2hpcHBpbmdUeXBlIHNoaXBwaW5nVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
c2hpcHBpbmdUeXBlOyB9CiAgICAgdm9pZCBzZXRTaGlwcGluZ1R5cGUoU2hpcHBpbmdUeXBlIHNo
aXBwaW5nVHlwZSkgeyBtX3NoaXBwaW5nVHlwZSA9IHNoaXBwaW5nVHlwZTsgfQogCi0gICAgc3Ry
dWN0IFNoaXBwaW5nTWV0aG9kIHsKLSAgICAgICAgU3RyaW5nIGxhYmVsOwotICAgICAgICBTdHJp
bmcgZGV0YWlsOwotICAgICAgICBTdHJpbmcgYW1vdW50OwotCi0gICAgICAgIFN0cmluZyBpZGVu
dGlmaWVyOwotICAgIH07Ci0gICAgY29uc3QgVmVjdG9yPFNoaXBwaW5nTWV0aG9kPiYgc2hpcHBp
bmdNZXRob2RzKCkgY29uc3QgeyByZXR1cm4gbV9zaGlwcGluZ01ldGhvZHM7IH0KLSAgICB2b2lk
IHNldFNoaXBwaW5nTWV0aG9kcyhjb25zdCBWZWN0b3I8U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGlu
Z01ldGhvZHMpIHsgbV9zaGlwcGluZ01ldGhvZHMgPSBzaGlwcGluZ01ldGhvZHM7IH0KKyAgICBj
b25zdCBWZWN0b3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4mIHNoaXBwaW5nTWV0aG9kcygpIGNv
bnN0IHsgcmV0dXJuIG1fc2hpcHBpbmdNZXRob2RzOyB9CisgICAgdm9pZCBzZXRTaGlwcGluZ01l
dGhvZHMoY29uc3QgVmVjdG9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGluZ01ldGhv
ZHMpIHsgbV9zaGlwcGluZ01ldGhvZHMgPSBzaGlwcGluZ01ldGhvZHM7IH0KIAogICAgIGNvbnN0
IFZlY3RvcjxBcHBsZVBheUxpbmVJdGVtPiYgbGluZUl0ZW1zKCkgY29uc3QgeyByZXR1cm4gbV9s
aW5lSXRlbXM7IH0KICAgICB2b2lkIHNldExpbmVJdGVtcyhjb25zdCBWZWN0b3I8QXBwbGVQYXlM
aW5lSXRlbT4mIGxpbmVJdGVtcykgeyBtX2xpbmVJdGVtcyA9IGxpbmVJdGVtczsgfQpAQCAtMTEx
LDExICsxMTEsNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgQXBwbGVQYXlMaW5lSXRlbSYgdG90YWwo
KSBjb25zdCB7IHJldHVybiBtX3RvdGFsOyB9OwogICAgIHZvaWQgc2V0VG90YWwoY29uc3QgQXBw
bGVQYXlMaW5lSXRlbSYgdG90YWwpIHsgbV90b3RhbCA9IHRvdGFsOyB9CiAKLSAgICBzdHJ1Y3Qg
VG90YWxBbmRMaW5lSXRlbXMgewotICAgICAgICBBcHBsZVBheUxpbmVJdGVtIHRvdGFsOwotICAg
ICAgICBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4gbGluZUl0ZW1zOwotICAgIH07Ci0KICAgICBj
b25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbGljYXRp
b25EYXRhOyB9CiAgICAgdm9pZCBzZXRBcHBsaWNhdGlvbkRhdGEoY29uc3QgU3RyaW5nJiBhcHBs
aWNhdGlvbkRhdGEpIHsgbV9hcHBsaWNhdGlvbkRhdGEgPSBhcHBsaWNhdGlvbkRhdGE7IH0KIApA
QCAtMTUxLDcgKzE0Niw3IEBAIHByaXZhdGU6CiAgICAgTWVyY2hhbnRDYXBhYmlsaXRpZXMgbV9t
ZXJjaGFudENhcGFiaWxpdGllczsKIAogICAgIFNoaXBwaW5nVHlwZSBtX3NoaXBwaW5nVHlwZSB7
IFNoaXBwaW5nVHlwZTo6U2hpcHBpbmcgfTsKLSAgICBWZWN0b3I8U2hpcHBpbmdNZXRob2Q+IG1f
c2hpcHBpbmdNZXRob2RzOworICAgIFZlY3RvcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiBtX3No
aXBwaW5nTWV0aG9kczsKIAogICAgIFZlY3RvcjxBcHBsZVBheUxpbmVJdGVtPiBtX2xpbmVJdGVt
czsKICAgICBBcHBsZVBheUxpbmVJdGVtIG1fdG90YWw7CkBAIC0xNjQsNTEgKzE1OSwxNSBAQCBw
cml2YXRlOgogI2lmIEhBVkUoUEFTU0tJVF9JTlNUQUxMTUVOVFMpCiAgICAgUGF5bWVudEluc3Rh
bGxtZW50Q29uZmlndXJhdGlvbiBtX2luc3RhbGxtZW50Q29uZmlndXJhdGlvbjsKICNlbmRpZgot
fTsKIAotc3RydWN0IFBheW1lbnRFcnJvciB7Ci0gICAgZW51bSBjbGFzcyBDb2RlIHsKLSAgICAg
ICAgVW5rbm93biwKLSAgICAgICAgU2hpcHBpbmdDb250YWN0SW52YWxpZCwKLSAgICAgICAgQmls
bGluZ0NvbnRhY3RJbnZhbGlkLAotICAgICAgICBBZGRyZXNzVW5zZXJ2aWNlYWJsZSwKLSAgICB9
OwotCi0gICAgZW51bSBjbGFzcyBDb250YWN0RmllbGQgewotICAgICAgICBQaG9uZU51bWJlciwK
LSAgICAgICAgRW1haWxBZGRyZXNzLAotICAgICAgICBOYW1lLAotICAgICAgICBQaG9uZXRpY05h
bWUsCi0gICAgICAgIFBvc3RhbEFkZHJlc3MsCi0gICAgICAgIEFkZHJlc3NMaW5lcywKLSAgICAg
ICAgU3ViTG9jYWxpdHksCi0gICAgICAgIExvY2FsaXR5LAotICAgICAgICBQb3N0YWxDb2RlLAot
ICAgICAgICBTdWJBZG1pbmlzdHJhdGl2ZUFyZWEsCi0gICAgICAgIEFkbWluaXN0cmF0aXZlQXJl
YSwKLSAgICAgICAgQ291bnRyeSwKLSAgICAgICAgQ291bnRyeUNvZGUsCi0gICAgfTsKLQotICAg
IENvZGUgY29kZTsKLSAgICBTdHJpbmcgbWVzc2FnZTsKLSAgICBPcHRpb25hbDxDb250YWN0Rmll
bGQ+IGNvbnRhY3RGaWVsZDsKKyNpZiBkZWZpbmVkKEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0QWRkaXRpb25zX21lbWJlcnMpCisgICAgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3RB
ZGRpdGlvbnNfbWVtYmVycworI2VuZGlmCiB9OwogCiBzdHJ1Y3QgUGF5bWVudEF1dGhvcml6YXRp
b25SZXN1bHQgewogICAgIFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzIHN0YXR1czsKLSAgICBW
ZWN0b3I8UGF5bWVudEVycm9yPiBlcnJvcnM7Ci19OwotCi1zdHJ1Y3QgU2hpcHBpbmdDb250YWN0
VXBkYXRlIHsKLSAgICBWZWN0b3I8UGF5bWVudEVycm9yPiBlcnJvcnM7Ci0KLSAgICBWZWN0b3I8
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPiBuZXdTaGlwcGlu
Z01ldGhvZHM7Ci0gICAgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGlu
ZUl0ZW1zIG5ld1RvdGFsQW5kTGluZUl0ZW1zOwotfTsKLQotc3RydWN0IFNoaXBwaW5nTWV0aG9k
VXBkYXRlIHsKLSAgICBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5l
SXRlbXMgbmV3VG90YWxBbmRMaW5lSXRlbXM7CisgICAgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVy
cm9yPj4gZXJyb3JzOwogfTsKIAogV0VCQ09SRV9FWFBPUlQgYm9vbCBpc0ZpbmFsU3RhdGVSZXN1
bHQoY29uc3QgT3B0aW9uYWw8UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+Jik7CkBAIC0yMjcs
MzUgKzE4Niw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6QXBwbGVQ
YXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nVHlwCiAgICAgPjsKIH07CiAKLXRlbXBs
YXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb2RlPiB7Ci0g
ICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEVy
cm9yOjpDb2RlLAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU6OlVua25vd24s
Ci0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6U2hpcHBpbmdDb250YWN0SW52
YWxpZCwKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb2RlOjpCaWxsaW5nQ29udGFj
dEludmFsaWQsCi0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6QWRkcmVzc1Vu
c2VydmljZWFibGUKLSAgICA+OwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxX
ZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZD4gewotICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxk
LAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6UGhvbmVOdW1i
ZXIsCi0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpFbWFpbEFk
ZHJlc3MsCi0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpOYW1l
LAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6UGhvbmV0aWNO
YW1lLAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6UG9zdGFs
QWRkcmVzcywKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OkFk
ZHJlc3NMaW5lcywKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6
OlN1YkxvY2FsaXR5LAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVs
ZDo6TG9jYWxpdHksCi0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxk
OjpQb3N0YWxDb2RlLAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVs
ZDo6U3ViQWRtaW5pc3RyYXRpdmVBcmVhLAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6
OkNvbnRhY3RGaWVsZDo6QWRtaW5pc3RyYXRpdmVBcmVhLAotICAgICAgICBXZWJDb3JlOjpQYXlt
ZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6Q291bnRyeSwKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVu
dEVycm9yOjpDb250YWN0RmllbGQ6OkNvdW50cnlDb2RlCi0gICAgPjsKLX07Ci0KIH0gLy8gbmFt
ZXNwYWNlIFdURgogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaAppbmRleCA3
MjU5Nzc4ODhjOTYuLjg3NTJhMDM0Njg4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUu
aApAQCAtMjcsMjAgKzI3LDU1IEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCisjaW5jbHVk
ZSAiQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oIgogI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3Iu
aCIKLSNpbmNsdWRlICJBcHBsZVBheUxpbmVJdGVtLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlTaGlw
cGluZ01ldGhvZC5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlIHsKK3N0cnVjdCBBcHBsZVBh
eVNoaXBwaW5nQ29udGFjdFVwZGF0ZSBmaW5hbCA6IHB1YmxpYyBBcHBsZVBheURldGFpbHNVcGRh
dGVCYXNlIHsKICAgICBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiBlcnJvcnM7CiAKICAg
ICBWZWN0b3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4gbmV3U2hpcHBpbmdNZXRob2RzOwotICAg
IEFwcGxlUGF5TGluZUl0ZW0gbmV3VG90YWw7Ci0gICAgVmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+
IG5ld0xpbmVJdGVtczsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0
aW9uYWw8QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+IGRlY29kZShEZWNvZGVyJik7CiB9
OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBBcHBsZVBheVNoaXBwaW5nQ29udGFj
dFVwZGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgQXBwbGVQYXlE
ZXRhaWxzVXBkYXRlQmFzZTo6ZW5jb2RlKGVuY29kZXIpOworICAgIGVuY29kZXIgPDwgZXJyb3Jz
OworICAgIGVuY29kZXIgPDwgbmV3U2hpcHBpbmdNZXRob2RzOwogfQogCit0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgorT3B0aW9uYWw8QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+IEFwcGxl
UGF5U2hpcHBpbmdDb250YWN0VXBkYXRlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAg
ICBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZSByZXN1bHQ7CisKKyAgICBpZiAoIXJlc3Vs
dC5kZWNvZGVCYXNlKGRlY29kZXIpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisj
ZGVmaW5lIERFQ09ERShuYW1lLCB0eXBlKSBcCisgICAgT3B0aW9uYWw8dHlwZT4gbmFtZTsgXAor
ICAgIGRlY29kZXIgPj4gbmFtZTsgXAorICAgIGlmICghbmFtZSkgXAorICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OyBcCisgICAgcmVzdWx0Lm5hbWUgPSBXVEZNb3ZlKCpuYW1lKTsgXAorCisg
ICAgREVDT0RFKGVycm9ycywgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4pCisgICAgREVD
T0RFKG5ld1NoaXBwaW5nTWV0aG9kcywgVmVjdG9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+KQor
CisjdW5kZWYgREVDT0RFCisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmlkbAppbmRl
eCAwNTJlODJiZmMxMTkuLmYxMWYzNWJmNjhhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVw
ZGF0ZS5pZGwKQEAgLTI1LDEwICsyNSw4IEBACiAKIFsKICAgICBDb25kaXRpb25hbD1BUFBMRV9Q
QVksCi1dIGRpY3Rpb25hcnkgQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUgeworXSBkaWN0
aW9uYXJ5IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlIDogQXBwbGVQYXlEZXRhaWxzVXBk
YXRlQmFzZSB7CiAgICAgc2VxdWVuY2U8QXBwbGVQYXlFcnJvcj4gZXJyb3JzOwogCiAgICAgc2Vx
dWVuY2U8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4gbmV3U2hpcHBpbmdNZXRob2RzOwotICAgIHJl
cXVpcmVkIEFwcGxlUGF5TGluZUl0ZW0gbmV3VG90YWw7Ci0gICAgc2VxdWVuY2U8QXBwbGVQYXlM
aW5lSXRlbT4gbmV3TGluZUl0ZW1zOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kLmgKaW5kZXggNTkzNTIxYWY0
NmJjLi5lMzk0MmExOGJkMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oCkBAIC0zNiw4ICszNiwzOSBAQCBz
dHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCB7CiAgICAgU3RyaW5nIGRldGFpbDsKICAgICBT
dHJpbmcgYW1vdW50OwogICAgIFN0cmluZyBpZGVudGlmaWVyOworCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiBkZWNv
ZGUoRGVjb2RlciYpOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAg
ZW5jb2RlciA8PCBsYWJlbDsKKyAgICBlbmNvZGVyIDw8IGRldGFpbDsKKyAgICBlbmNvZGVyIDw8
IGFtb3VudDsKKyAgICBlbmNvZGVyIDw8IGlkZW50aWZpZXI7CiB9CiAKK3RlbXBsYXRlPGNsYXNz
IERlY29kZXI+CitPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiBBcHBsZVBheVNoaXBw
aW5nTWV0aG9kOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyNkZWZpbmUgREVDT0RFKG5h
bWUsIHR5cGUpIFwKKyAgICBPcHRpb25hbDx0eXBlPiBuYW1lOyBcCisgICAgZGVjb2RlciA+PiBu
YW1lOyBcCisgICAgaWYgKCFuYW1lKSBcCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7IFwK
KworICAgIERFQ09ERShsYWJlbCwgU3RyaW5nKQorICAgIERFQ09ERShkZXRhaWwsIFN0cmluZykK
KyAgICBERUNPREUoYW1vdW50LCBTdHJpbmcpCisgICAgREVDT0RFKGlkZW50aWZpZXIsIFN0cmlu
ZykKKworI3VuZGVmIERFQ09ERQorCisgICAgcmV0dXJuIHt7IFdURk1vdmUoKmxhYmVsKSwgV1RG
TW92ZSgqZGV0YWlsKSwgV1RGTW92ZSgqYW1vdW50KSwgV1RGTW92ZSgqaWRlbnRpZmllcikgfX07
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3Rl
ZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlw
cGluZ01ldGhvZFNlbGVjdGVkRXZlbnQuY3BwCmluZGV4IGJkNzY1ZjhjNWY2ZS4uOTU3NzZhNDQ4
Zjg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50LmNwcApAQCAt
MzUsMjAgKzM1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NB
VEVEX0lNUEwoQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQpOwogCi1zdGF0aWMg
aW5saW5lIEFwcGxlUGF5U2hpcHBpbmdNZXRob2QgY29udmVydChjb25zdCBBcHBsZVBheVNlc3Np
b25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQotewotICAg
IEFwcGxlUGF5U2hpcHBpbmdNZXRob2QgY29udmVydGVkTWV0aG9kOwotICAgIGNvbnZlcnRlZE1l
dGhvZC5sYWJlbCA9IHNoaXBwaW5nTWV0aG9kLmxhYmVsOwotICAgIGNvbnZlcnRlZE1ldGhvZC5k
ZXRhaWwgPSBzaGlwcGluZ01ldGhvZC5kZXRhaWw7Ci0gICAgY29udmVydGVkTWV0aG9kLmlkZW50
aWZpZXIgPSBzaGlwcGluZ01ldGhvZC5pZGVudGlmaWVyOwotICAgIGNvbnZlcnRlZE1ldGhvZC5h
bW91bnQgPSBzaGlwcGluZ01ldGhvZC5hbW91bnQ7Ci0KLSAgICByZXR1cm4gY29udmVydGVkTWV0
aG9kOyAKLX0KLQotQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQ6OkFwcGxlUGF5
U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0
IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdN
ZXRob2QpCitBcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudDo6QXBwbGVQYXlTaGlw
cGluZ01ldGhvZFNlbGVjdGVkRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgQXBw
bGVQYXlTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCiAgICAgOiBFdmVudCh0eXBlLCBD
YW5CdWJibGU6Ok5vLCBJc0NhbmNlbGFibGU6Ok5vKQotICAgICwgbV9zaGlwcGluZ01ldGhvZChj
b252ZXJ0KHNoaXBwaW5nTWV0aG9kKSkKKyAgICAsIG1fc2hpcHBpbmdNZXRob2Qoc2hpcHBpbmdN
ZXRob2QpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQuaApp
bmRleCBjYTMzOTA3MzI2OWIuLmY2MGEyYTVmM2I0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01l
dGhvZFNlbGVjdGVkRXZlbnQuaApAQCAtMjcsNyArMjcsNiBAQAogCiAjaWYgRU5BQkxFKEFQUExF
X1BBWSkKIAotI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAKQEAg
LTM2LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQXBwbGVQYXlTaGlwcGlu
Z01ldGhvZFNlbGVjdGVkRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogICAgIFdURl9NQUtF
X0lTT19BTExPQ0FURUQoQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQpOwogcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8QXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQ+
IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQorICAgIHN0YXRpYyBS
ZWY8QXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9t
U3RyaW5nJiB0eXBlLCBjb25zdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhv
ZCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFwcGxlUGF5U2hpcHBpbmdN
ZXRob2RTZWxlY3RlZEV2ZW50KHR5cGUsIHNoaXBwaW5nTWV0aG9kKSk7CiAgICAgfQpAQCAtNDYs
NyArNDUsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYgc2hp
cHBpbmdNZXRob2QoKSBjb25zdCB7IHJldHVybiBtX3NoaXBwaW5nTWV0aG9kOyB9CiAKIHByaXZh
dGU6Ci0gICAgQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQoY29uc3QgQXRvbVN0
cmluZyYgdHlwZSwgY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5n
TWV0aG9kJik7CisgICAgQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQoY29uc3Qg
QXRvbVN0cmluZyYgdHlwZSwgY29uc3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYpOwogCiAgICAg
Ly8gRXZlbnQuCiAgICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmgKaW5kZXggZGE2ZDlkNDhkZjAzLi42Mzli
ZTBkMmJiOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oCkBAIC0yNywxNSArMjcsMzIg
QEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKLSNpbmNsdWRlICJBcHBsZVBheUxpbmVJdGVt
LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXN0cnVjdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlIHsKLSAgICBB
cHBsZVBheUxpbmVJdGVtIG5ld1RvdGFsOwotICAgIFZlY3RvcjxBcHBsZVBheUxpbmVJdGVtPiBu
ZXdMaW5lSXRlbXM7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZSBmaW5hbCA6
IHB1YmxpYyBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlIHsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBF
bmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+IGRl
Y29kZShEZWNvZGVyJik7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBBcHBs
ZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QK
K3sKKyAgICBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlOjplbmNvZGUoZW5jb2Rlcik7CiB9CiAK
K3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nTWV0aG9k
VXBkYXRlPiBBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlOjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICBBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlIHJlc3VsdDsKKworICAg
IGlmICghcmVzdWx0LmRlY29kZUJhc2UoZGVjb2RlcikpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5pZGwKaW5kZXggODQ1OWRhOGQ3
NWQ0Li4yZTU0NGM1MDc5ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmlkbApAQCAt
MjUsNyArMjUsNSBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9QVBQTEVfUEFZLAotXSBkaWN0aW9u
YXJ5IEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUgewotICAgIHJlcXVpcmVkIEFwcGxlUGF5
TGluZUl0ZW0gbmV3VG90YWw7Ci0gICAgc2VxdWVuY2U8QXBwbGVQYXlMaW5lSXRlbT4gbmV3TGlu
ZUl0ZW1zOworXSBkaWN0aW9uYXJ5IEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUgOiBBcHBs
ZVBheURldGFpbHNVcGRhdGVCYXNlIHsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGluYXRvci5jcHAKaW5kZXggNmIwZDQ0NDY2MDQ2
Li4wYzVmNDg3Mzc1YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvUGF5bWVudENvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L1BheW1lbnRDb29yZGluYXRvci5jcHAKQEAgLTI4LDYgKzI4LDEwIEBACiAKICNpZiBF
TkFCTEUoQVBQTEVfUEFZKQogCisjaW5jbHVkZSAiQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRl
LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oIgorI2luY2x1ZGUgIkFwcGxl
UGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ01l
dGhvZFVwZGF0ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTGlua0ljb25D
b2xsZWN0b3IuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC0xMjgsMjEgKzEzMiwyMSBAQCB2
b2lkIFBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24oY29uc3Qg
UGF5bWVudE1lcmNoYW50U2Vzc2lvbgogICAgIG1fY2xpZW50LmNvbXBsZXRlTWVyY2hhbnRWYWxp
ZGF0aW9uKHBheW1lbnRNZXJjaGFudFNlc3Npb24pOwogfQogCi12b2lkIFBheW1lbnRDb29yZGlu
YXRvcjo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ01l
dGhvZFVwZGF0ZT4mJiB1cGRhdGUpCit2b2lkIFBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVT
aGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBk
YXRlPiYmIHVwZGF0ZSkKIHsKICAgICBBU1NFUlQobV9hY3RpdmVTZXNzaW9uKTsKICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKCkiKTsK
ICAgICBtX2NsaWVudC5jb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKFdURk1vdmUodXBk
YXRlKSk7CiB9CiAKLXZvaWQgUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nQ29u
dGFjdFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYgdXBkYXRlKQor
dm9pZCBQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9u
KE9wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmIHVwZGF0ZSkKIHsKICAg
ICBBU1NFUlQobV9hY3RpdmVTZXNzaW9uKTsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJj
b21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbigpIik7CiAgICAgbV9jbGllbnQuY29tcGxl
dGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUpKTsKIH0KIAotdm9pZCBQ
YXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25h
bDxQYXltZW50TWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKK3ZvaWQgUGF5bWVudENvb3JkaW5hdG9y
Ojpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlQYXltZW50
TWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKIHsKICAgICBBU1NFUlQobV9hY3RpdmVTZXNzaW9uKTsK
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rp
b24oKSIpOwpAQCAtMjExLDcgKzIxNSw3IEBAIHZvaWQgUGF5bWVudENvb3JkaW5hdG9yOjpkaWRT
ZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFBheW1lbnRNZXRob2QmIHBheW1lbnRNZXRoCiAgICAg
bV9hY3RpdmVTZXNzaW9uLT5kaWRTZWxlY3RQYXltZW50TWV0aG9kKHBheW1lbnRNZXRob2QpOwog
fQogCi12b2lkIFBheW1lbnRDb29yZGluYXRvcjo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29u
c3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGlu
Z01ldGhvZCkKK3ZvaWQgUGF5bWVudENvb3JkaW5hdG9yOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhv
ZChjb25zdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKIHsKICAgICBp
ZiAoIW1fYWN0aXZlU2Vzc2lvbikgewogICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhl
IHBheW1lbnQgaGFzIGJlZW4gYWJvcnRlZCBhbHJlYWR5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9yLmgKaW5kZXggN2JkNGEyNWYz
OWUzLi42NDVjNzk2MzY1ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvUGF5bWVudENvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3IuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
IkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgiCiAjaW5jbHVkZSA8d3RmL0V4cGVjdGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+
CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDEs
MTUgKzQyLDE2IEBAIGNsYXNzIFBheW1lbnRDb29yZGluYXRvckNsaWVudDsKIGNsYXNzIFBheW1l
bnRDb250YWN0OwogY2xhc3MgUGF5bWVudE1lcmNoYW50U2Vzc2lvbjsKIGNsYXNzIFBheW1lbnRN
ZXRob2Q7Ci1jbGFzcyBQYXltZW50TWV0aG9kVXBkYXRlOwogY2xhc3MgUGF5bWVudFNlc3Npb247
CiBjbGFzcyBQYXltZW50U2Vzc2lvbkVycm9yOwogZW51bSBjbGFzcyBQYXltZW50QXV0aG9yaXph
dGlvblN0YXR1czsKK3N0cnVjdCBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU7CiBzdHJ1Y3Qg
QXBwbGVQYXlTZXR1cENvbmZpZ3VyYXRpb247CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ0NvbnRh
Y3RVcGRhdGU7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZDsKK3N0cnVjdCBBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kVXBkYXRlOwogc3RydWN0IEV4Y2VwdGlvbkRldGFpbHM7CiBzdHJ1Y3Qg
UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ7Ci1zdHJ1Y3QgU2hpcHBpbmdDb250YWN0VXBkYXRl
Owotc3RydWN0IFNoaXBwaW5nTWV0aG9kVXBkYXRlOwogCiBjbGFzcyBQYXltZW50Q29vcmRpbmF0
b3IgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UGF5bWVudENvb3JkaW5hdG9yPiB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC02OCw5ICs3MCw5IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgYmVnaW5QYXltZW50U2Vzc2lvbihEb2N1bWVudCYsIFBheW1lbnRTZXNzaW9uJiwgY29uc3Qg
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmKTsKICAgICB2b2lkIGNvbXBsZXRlTWVyY2hh
bnRWYWxpZGF0aW9uKGNvbnN0IFBheW1lbnRNZXJjaGFudFNlc3Npb24mKTsKLSAgICB2b2lkIGNv
bXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8U2hpcHBpbmdNZXRob2RVcGRh
dGU+JiYpOwotICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9u
YWw8U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKTsKLSAgICB2b2lkIGNvbXBsZXRlUGF5bWVudE1l
dGhvZFNlbGVjdGlvbihPcHRpb25hbDxQYXltZW50TWV0aG9kVXBkYXRlPiYmKTsKKyAgICB2b2lk
IGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlTaGlwcGlu
Z01ldGhvZFVwZGF0ZT4mJik7CisgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVj
dGlvbihPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJik7CisgICAgdm9p
ZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlQYXltZW50
TWV0aG9kVXBkYXRlPiYmKTsKICAgICB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24oT3B0aW9u
YWw8UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+JiYpOwogICAgIHZvaWQgYWJvcnRQYXltZW50
U2Vzc2lvbigpOwogICAgIHZvaWQgY2FuY2VsUGF5bWVudFNlc3Npb24oKTsKQEAgLTc4LDcgKzgw
LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdmFsaWRhdGVNZXJjaGFudChV
UkwmJiB2YWxpZGF0aW9uVVJMKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEF1dGhvcml6
ZVBheW1lbnQoY29uc3QgUGF5bWVudCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkU2Vs
ZWN0UGF5bWVudE1ldGhvZChjb25zdCBQYXltZW50TWV0aG9kJik7Ci0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRp
ZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2QmKTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChjb25zdCBQYXlt
ZW50Q29udGFjdCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQ2FuY2VsUGF5bWVudFNl
c3Npb24oUGF5bWVudFNlc3Npb25FcnJvciYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3JDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50LmgKaW5kZXgg
ZDZlMjZmYzk3NDA0Li4xNmVkYzgzZWVlYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3JDbGllbnQuaApAQCAtMzIs
MTYgKzMyLDE3IEBACiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3
dGYvT3B0aW9uYWwuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsK
IGNsYXNzIFBheW1lbnRNZXJjaGFudFNlc3Npb247Ci1jbGFzcyBQYXltZW50TWV0aG9kVXBkYXRl
Oworc3RydWN0IEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZTsKIHN0cnVjdCBBcHBsZVBheVNl
dHVwQ29uZmlndXJhdGlvbjsKK3N0cnVjdCBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZTsK
K3N0cnVjdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlOwogc3RydWN0IFBheW1lbnRBdXRo
b3JpemF0aW9uUmVzdWx0Owotc3RydWN0IFNoaXBwaW5nQ29udGFjdFVwZGF0ZTsKLXN0cnVjdCBT
aGlwcGluZ01ldGhvZFVwZGF0ZTsKIAogY2xhc3MgUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50IHsK
IHB1YmxpYzoKQEAgLTU0LDkgKzU1LDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNo
b3dQYXltZW50VUkoY29uc3QgVVJMJiBvcmlnaW5hdGluZ1VSTCwgY29uc3QgVmVjdG9yPFVSTD4m
IGxpbmtJY29uVVJMcywgY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFBheW1l
bnRNZXJjaGFudFNlc3Npb24mKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXBsZXRlU2hpcHBp
bmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9u
YWw8U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXBs
ZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxQYXltZW50TWV0aG9kVXBkYXRlPiYm
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24o
T3B0aW9uYWw8QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBh
eVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb21wbGV0
ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlQYXltZW50TWV0aG9kVXBk
YXRlPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24oT3B0
aW9uYWw8UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgYWJvcnRQYXltZW50U2Vzc2lvbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUGF5
bWVudFNlc3Npb24oKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L1BheW1lbnRIZWFkZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L1BheW1lbnRIZWFkZXJzLmgKaW5kZXggYzU1NTExNzllZDFmLi4yZGRiMjU5YzU4ZDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudEhlYWRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRIZWFkZXJzLmgKQEAg
LTI1LDExICsyNSwxMyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkFwcGxlUGF5UGF5
bWVudE1ldGhvZFVwZGF0ZS5oIgogI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaCIKKyNpbmNs
dWRlICJBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVkZSAiUGF5bWVudC5o
IgogI2luY2x1ZGUgIlBheW1lbnRDb250YWN0LmgiCiAjaW5jbHVkZSAiUGF5bWVudE1lcmNoYW50
U2Vzc2lvbi5oIgogI2luY2x1ZGUgIlBheW1lbnRNZXRob2QuaCIKLSNpbmNsdWRlICJQYXltZW50
TWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVkZSAiUGF5bWVudFNlc3Npb25FcnJvci5oIgogI2luY2x1
ZGUgIlBheW1lbnRTdW1tYXJ5SXRlbXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvUGF5bWVudE1ldGhvZFVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9QYXltZW50TWV0aG9kVXBkYXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGQ4NDBlMTYzZDUwNS4uMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudE1ldGhvZFVwZGF0ZS5oCisrKyAvZGV2L251bGwKQEAg
LTEsNTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKEFQ
UExFX1BBWSkKLQotI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgiCi0j
aW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotCi1PQkpDX0NMQVNTIFBLUGF5bWVudFJlcXVlc3RQ
YXltZW50TWV0aG9kVXBkYXRlOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIFdFQkNP
UkVfRVhQT1JUIFBheW1lbnRNZXRob2RVcGRhdGUgewotcHVibGljOgotICAgIHVzaW5nIFRvdGFs
QW5kTGluZUl0ZW1zID0gQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGlu
ZUl0ZW1zOwotCi0gICAgUGF5bWVudE1ldGhvZFVwZGF0ZShBcHBsZVBheUxpbmVJdGVtJiYgdG90
YWwsIFZlY3RvcjxBcHBsZVBheUxpbmVJdGVtPiYmKTsKLSAgICBleHBsaWNpdCBQYXltZW50TWV0
aG9kVXBkYXRlKFJldGFpblB0cjxQS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZT4m
Jik7Ci0gICAgZXhwbGljaXQgUGF5bWVudE1ldGhvZFVwZGF0ZShUb3RhbEFuZExpbmVJdGVtcyYm
KTsKLQotICAgIGNvbnN0IFRvdGFsQW5kTGluZUl0ZW1zJiB0b3RhbEFuZExpbmVJdGVtcygpIGNv
bnN0OwotICAgIFBLUGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlICpwbGF0Zm9ybVVw
ZGF0ZSgpIGNvbnN0OwotCi0jaWYgSEFWRShQQVNTS0lUX0lOU1RBTExNRU5UUykKLSAgICB2b2lk
IHNldEluc3RhbGxtZW50R3JvdXBJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYpOwotI2VuZGlmCi0K
LXByaXZhdGU6Ci0gICAgT3B0aW9uYWw8VG90YWxBbmRMaW5lSXRlbXM+IG1fdG90YWxBbmRMaW5l
SXRlbXM7Ci0gICAgUmV0YWluUHRyPFBLUGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRl
PiBtX3BsYXRmb3JtVXBkYXRlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYgLy8gRU5BQkxFKEFQUExFX1BBWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLm1tCmluZGV4IGVmOWY2ZTgy
NDg0Ni4uZDAwYzg4YzgzODhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW0KQEAgLTI5LDYgKzI5LDcg
QEAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCiAjaW1wb3J0ICJBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdC5oIgorI2ltcG9ydCAiQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oIgogI2ltcG9y
dCA8dW5pY29kZS91Y3Vyci5oPgogI2ltcG9ydCA8dW5pY29kZS91bG9jLmg+CiAKQEAgLTM4LDgg
KzM5LDggQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlQ291bnRyeUNvZGUoY29u
c3QgU3RyaW5nJik7CiBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVDdXJyZW5jeUNv
ZGUoY29uc3QgU3RyaW5nJik7CiBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVNZXJj
aGFudENhcGFiaWxpdGllcyhjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6TWVy
Y2hhbnRDYXBhYmlsaXRpZXMmKTsKIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVN1
cHBvcnRlZE5ldHdvcmtzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7Ci1zdGF0aWMgRXhjZXB0aW9u
T3I8dm9pZD4gdmFsaWRhdGVTaGlwcGluZ01ldGhvZHMoY29uc3QgVmVjdG9yPEFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4mKTsKLXN0YXRpYyBFeGNlcHRpb25P
cjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpOworc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZh
bGlkYXRlU2hpcHBpbmdNZXRob2RzKGNvbnN0IFZlY3RvcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9k
PiYpOworc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlU2hpcHBpbmdNZXRob2QoY29u
c3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYpOwogCiBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50
UmVxdWVzdFZhbGlkYXRvcjo6dmFsaWRhdGUoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3QmIHBheW1lbnRSZXF1ZXN0KQogewpAQCAtMTQxLDcgKzE0Miw3IEBAIHN0YXRpYyBFeGNl
cHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVN1cHBvcnRlZE5ldHdvcmtzKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBzdXBwb3J0CiAgICAgcmV0dXJuIHsgfTsKIH0KIAotc3RhdGljIEV4Y2VwdGlvbk9yPHZv
aWQ+IHZhbGlkYXRlU2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKK3N0YXRpYyBFeGNlcHRpb25P
cjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRo
b2QmIHNoaXBwaW5nTWV0aG9kKQogewogICAgIE5TRGVjaW1hbE51bWJlciAqYW1vdW50ID0gW05T
RGVjaW1hbE51bWJlciBkZWNpbWFsTnVtYmVyV2l0aFN0cmluZzpzaGlwcGluZ01ldGhvZC5hbW91
bnQgbG9jYWxlOkB7IE5TTG9jYWxlRGVjaW1hbFNlcGFyYXRvciA6IEAiLiIgfV07CiAgICAgaWYg
KGFtb3VudC5pbnRlZ2VyVmFsdWUgPCAwKQpAQCAtMTUwLDcgKzE1MSw3IEBAIHN0YXRpYyBFeGNl
cHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1CiAgICAgcmV0dXJuIHsgfTsKIH0KIAotc3RhdGljIEV4Y2VwdGlvbk9yPHZv
aWQ+IHZhbGlkYXRlU2hpcHBpbmdNZXRob2RzKGNvbnN0IFZlY3RvcjxBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGluZ01ldGhvZHMpCitzdGF0aWMg
RXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVTaGlwcGluZ01ldGhvZHMoY29uc3QgVmVjdG9yPEFw
cGxlUGF5U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGluZ01ldGhvZHMpCiB7CiAgICAgZm9yIChjb25z
dCBhdXRvJiBzaGlwcGluZ01ldGhvZCA6IHNoaXBwaW5nTWV0aG9kcykgewogICAgICAgICBhdXRv
IHZhbGlkYXRlZFNoaXBwaW5nTWV0aG9kID0gdmFsaWRhdGVTaGlwcGluZ01ldGhvZChzaGlwcGlu
Z01ldGhvZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1Bh
eW1lbnRTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRT
ZXNzaW9uLmgKaW5kZXggY2U1Y2Y1Mzk4ZWFiLi5mNWRmZmQwZWVjMTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNlc3Npb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uLmgKQEAgLTI3LDcgKzI3
LDYgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKLSNpbmNsdWRlICJBcHBsZVBheVNlc3Np
b25QYXltZW50UmVxdWVzdC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAi
UGF5bWVudFNlc3Npb25CYXNlLmgiCiAKQEAgLTM5LDYgKzM4LDcgQEAgY2xhc3MgUGF5bWVudENv
bnRhY3Q7CiBjbGFzcyBQYXltZW50TWV0aG9kOwogY2xhc3MgUGF5bWVudFNlc3Npb25FcnJvcjsK
IGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ01l
dGhvZDsKIAogY2xhc3MgUGF5bWVudFNlc3Npb24gOiBwdWJsaWMgdmlydHVhbCBQYXltZW50U2Vz
c2lvbkJhc2UgewogcHVibGljOgpAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB1bnNpZ25lZCB2ZXJzaW9uKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB2YWxpZGF0
ZU1lcmNoYW50KFVSTCYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEF1dGhvcml6ZVBheW1l
bnQoY29uc3QgUGF5bWVudCYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkU2VsZWN0U2hpcHBp
bmdNZXRob2QoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0
aG9kJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25z
dCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZWxl
Y3RTaGlwcGluZ0NvbnRhY3QoY29uc3QgUGF5bWVudENvbnRhY3QmKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGRpZFNlbGVjdFBheW1lbnRNZXRob2QoY29uc3QgUGF5bWVudE1ldGhvZCYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24oUGF5bWVudFNlc3Npb25F
cnJvciYmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L1BheW1lbnRTdW1tYXJ5SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
UGF5bWVudFN1bW1hcnlJdGVtcy5oCmluZGV4IGZmZjg0NGQ3Nzk1Yi4uMmJkM2VlYzkzODBlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTdW1tYXJ5
SXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTdW1t
YXJ5SXRlbXMuaApAQCAtMjcsMTMgKzI3LDEyIEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQog
Ci0jaW5jbHVkZSAiQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKLQogT0JKQ19DTEFT
UyBOU0FycmF5OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdFQkNPUkVfRVhQT1JUIE5TQXJy
YXkgKnBsYXRmb3JtU3VtbWFyeUl0ZW1zKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0OjpUb3RhbEFuZExpbmVJdGVtcyYpOworc3RydWN0IEFwcGxlUGF5TGluZUl0ZW07CisKIFdF
QkNPUkVfRVhQT1JUIE5TQXJyYXkgKnBsYXRmb3JtU3VtbWFyeUl0ZW1zKGNvbnN0IEFwcGxlUGF5
TGluZUl0ZW0mIHRvdGFsLCBjb25zdCBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4mKTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9jb2NvYS9QYXltZW50TWV0aG9kVXBkYXRlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRNZXRob2RVcGRhdGVDb2NvYS5tbQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY0ZDExYjZkMDc2Li4wMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50TWV0aG9kVXBk
YXRlQ29jb2EubW0KKysrIC9kZXYvbnVsbApAQCAtMSw3MSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJQYXltZW50TWV0aG9kVXBkYXRlLmgiCi0KLSNp
ZiBFTkFCTEUoQVBQTEVfUEFZKQotCi0jaW1wb3J0ICJQYXltZW50U3VtbWFyeUl0ZW1zLmgiCi0j
aW1wb3J0IDxwYWwvY29jb2EvUGFzc0tpdFNvZnRMaW5rLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotUGF5bWVudE1ldGhvZFVwZGF0ZTo6UGF5bWVudE1ldGhvZFVwZGF0ZShBcHBsZVBheUxp
bmVJdGVtJiYgdG90YWwsIFZlY3RvcjxBcHBsZVBheUxpbmVJdGVtPiYmIGxpbmVJdGVtcykKLSAg
ICA6IG1fdG90YWxBbmRMaW5lSXRlbXMgeyB7IFdURk1vdmUodG90YWwpLCBXVEZNb3ZlKGxpbmVJ
dGVtcykgfSB9Ci0gICAgLCBtX3BsYXRmb3JtVXBkYXRlIHsgYWRvcHROUyhbUEFMOjphbGxvY1BL
UGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aFBheW1l
bnRTdW1tYXJ5SXRlbXM6cGxhdGZvcm1TdW1tYXJ5SXRlbXMoKm1fdG90YWxBbmRMaW5lSXRlbXMp
XSkgfQotewotfQotCi1QYXltZW50TWV0aG9kVXBkYXRlOjpQYXltZW50TWV0aG9kVXBkYXRlKFJl
dGFpblB0cjxQS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZT4mJiBwbGF0Zm9ybVVw
ZGF0ZSkKLSAgICA6IG1fcGxhdGZvcm1VcGRhdGUgeyBXVEZNb3ZlKHBsYXRmb3JtVXBkYXRlKSB9
Ci17Ci19Ci0KLVBheW1lbnRNZXRob2RVcGRhdGU6OlBheW1lbnRNZXRob2RVcGRhdGUoVG90YWxB
bmRMaW5lSXRlbXMmJiB0b3RhbEFuZExpbmVJdGVtcykKLSAgICA6IFBheW1lbnRNZXRob2RVcGRh
dGUgeyBXVEZNb3ZlKHRvdGFsQW5kTGluZUl0ZW1zLnRvdGFsKSwgV1RGTW92ZSh0b3RhbEFuZExp
bmVJdGVtcy5saW5lSXRlbXMpIH0KLXsKLX0KLQotY29uc3QgUGF5bWVudE1ldGhvZFVwZGF0ZTo6
VG90YWxBbmRMaW5lSXRlbXMmIFBheW1lbnRNZXRob2RVcGRhdGU6OnRvdGFsQW5kTGluZUl0ZW1z
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gKm1fdG90YWxBbmRMaW5lSXRlbXM7Ci19Ci0KLVBLUGF5
bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlICpQYXltZW50TWV0aG9kVXBkYXRlOjpwbGF0
Zm9ybVVwZGF0ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGxhdGZvcm1VcGRhdGUuZ2V0KCk7
Ci19Ci0KLSNpZiBIQVZFKFBBU1NLSVRfSU5TVEFMTE1FTlRTKQotdm9pZCBQYXltZW50TWV0aG9k
VXBkYXRlOjpzZXRJbnN0YWxsbWVudEdyb3VwSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGluc3Rh
bGxtZW50R3JvdXBJZGVudGlmaWVyKQotewotICAgIFttX3BsYXRmb3JtVXBkYXRlIHNldEluc3Rh
bGxtZW50R3JvdXBJZGVudGlmaWVyOmluc3RhbGxtZW50R3JvdXBJZGVudGlmaWVyXTsKLX0KLSNl
bmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoQVBQTEVf
UEFZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9Q
YXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L2NvY29hL1BheW1lbnRTdW1tYXJ5SXRlbXNDb2NvYS5tbQppbmRleCBlNzk5YTljY2Q5NTEu
LjExZWRiMGI0OTZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0KQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKKyNpbXBvcnQgIkFwcGxlUGF5
TGluZUl0ZW0uaCIKICNpbXBvcnQgPHBhbC9jb2NvYS9QYXNzS2l0U29mdExpbmsuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNjAsMTEgKzYxLDYgQEAgc3RhdGljIFBLUGF5bWVudFN1bW1h
cnlJdGVtICp0b1BLUGF5bWVudFN1bW1hcnlJdGVtKGNvbnN0IEFwcGxlUGF5TGluZUl0ZW0mIGxp
bmUKIH0KICNlbmRpZgogCi1OU0FycmF5ICpwbGF0Zm9ybVN1bW1hcnlJdGVtcyhjb25zdCBBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXMmIHRvdGFsQW5kTGlu
ZUl0ZW1zKQotewotICAgIHJldHVybiBwbGF0Zm9ybVN1bW1hcnlJdGVtcyh0b3RhbEFuZExpbmVJ
dGVtcy50b3RhbCwgdG90YWxBbmRMaW5lSXRlbXMubGluZUl0ZW1zKTsKLX0KLQogTlNBcnJheSAq
cGxhdGZvcm1TdW1tYXJ5SXRlbXMoY29uc3QgQXBwbGVQYXlMaW5lSXRlbSYgdG90YWwsIGNvbnN0
IFZlY3RvcjxBcHBsZVBheUxpbmVJdGVtPiYgbGluZUl0ZW1zKQogewogICAgIE5TTXV0YWJsZUFy
cmF5ICpwYXltZW50U3VtbWFyeUl0ZW1zID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFj
aXR5OmxpbmVJdGVtcy5zaXplKCkgKyAxXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5
UGF5bWVudEhhbmRsZXIuY3BwCmluZGV4IDdlYzAzNzBmZmVmZS4uZjM5YjE1MTAzNjU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0Fw
cGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAKQEAgLTMwLDEx
ICszMCwxOSBAQAogCiAjaW5jbHVkZSAiQWRkcmVzc0Vycm9ycy5oIgogI2luY2x1ZGUgIkFwcGxl
UGF5Q29udGFjdEZpZWxkLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5o
IgorI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3IuaCIKKyNpbmNsdWRlICJBcHBsZVBheUVycm9yQ29k
ZS5oIgorI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaCIKICNpbmNsdWRlICJB
cHBsZVBheUxpbmVJdGVtLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlNZXJjaGFudENhcGFiaWxpdHku
aCIKICNpbmNsdWRlICJBcHBsZVBheU1vZGlmaWVyLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlQYXlt
ZW50LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVk
ZSAiQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKKyNpbmNsdWRlICJBcHBsZVBheVNo
aXBwaW5nQ29udGFjdFVwZGF0ZS5oIgorI2luY2x1ZGUgIkFwcGxlUGF5U2hpcHBpbmdNZXRob2Qu
aCIKKyNpbmNsdWRlICJBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
QEAgLTU0LDcgKzYyLDYgQEAKICNpbmNsdWRlICJQYXltZW50Q29vcmRpbmF0b3IuaCIKICNpbmNs
dWRlICJQYXltZW50TWVyY2hhbnRTZXNzaW9uLmgiCiAjaW5jbHVkZSAiUGF5bWVudE1ldGhvZC5o
IgotI2luY2x1ZGUgIlBheW1lbnRNZXRob2RVcGRhdGUuaCIKICNpbmNsdWRlICJQYXltZW50UmVx
dWVzdFZhbGlkYXRvci5oIgogI2luY2x1ZGUgIlBheW1lbnRSZXNwb25zZS5oIgogI2luY2x1ZGUg
IlBheW1lbnRWYWxpZGF0aW9uRXJyb3JzLmgiCkBAIC0xOTgsMTkgKzIwNSw0NSBAQCBzdGF0aWMg
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nVHlwZSBjb252ZXJ0KFBheW1l
bnRTaGlwcGluZ1R5cGUgdAogICAgIHJldHVybiBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dDo6U2hpcHBpbmdUeXBlOjpTaGlwcGluZzsKIH0KIAotc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxl
UGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4gY29udmVydEFuZFZhbGlk
YXRlKGNvbnN0IFBheW1lbnRTaGlwcGluZ09wdGlvbiYgc2hpcHBpbmdPcHRpb24sIGNvbnN0IFN0
cmluZyYgZXhwZWN0ZWRDdXJyZW5jeSkKK3N0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheVNoaXBw
aW5nTWV0aG9kPiBjb252ZXJ0QW5kVmFsaWRhdGUoY29uc3QgUGF5bWVudFNoaXBwaW5nT3B0aW9u
JiBzaGlwcGluZ09wdGlvbiwgY29uc3QgU3RyaW5nJiBleHBlY3RlZEN1cnJlbmN5KQogewogICAg
IGF1dG8gZXhjZXB0aW9uID0gdmFsaWRhdGUoc2hpcHBpbmdPcHRpb24uYW1vdW50LCBleHBlY3Rl
ZEN1cnJlbmN5KTsKICAgICBpZiAoZXhjZXB0aW9uLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICBy
ZXR1cm4gZXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKTsKIAotICAgIEFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCByZXN1bHQ7CisgICAgQXBwbGVQYXlTaGlw
cGluZ01ldGhvZCByZXN1bHQ7CiAgICAgcmVzdWx0LmFtb3VudCA9IHNoaXBwaW5nT3B0aW9uLmFt
b3VudC52YWx1ZTsKICAgICByZXN1bHQubGFiZWwgPSBzaGlwcGluZ09wdGlvbi5sYWJlbDsKICAg
ICByZXN1bHQuaWRlbnRpZmllciA9IHNoaXBwaW5nT3B0aW9uLmlkOwogICAgIHJldHVybiB7IFdU
Rk1vdmUocmVzdWx0KSB9OwogfQogCisjaWYgIUVOQUJMRShBUFBMRV9QQVlfUEFZTUVOVF9ERVRB
SUxTX0RBVEEpCitzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGUoY29uc3QgQXBwbGVQ
YXlEZXRhaWxzVXBkYXRlRGF0YSYpIHsgfQorI2VuZGlmCisKK3N0YXRpYyBFeGNlcHRpb25PcjxB
cHBsZVBheURldGFpbHNVcGRhdGVEYXRhPiBjb252ZXJ0QW5kVmFsaWRhdGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgUGF5bWVudERldGFpbHNCYXNlJiBkZXRhaWxzKQor
eworICAgIGF1dG8mIGxleGljYWxHbG9iYWxPYmplY3QgPSAqY29udGV4dC5nbG9iYWxPYmplY3Qo
KTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShsZXhpY2FsR2xvYmFsT2Jq
ZWN0LnZtKCkpOworICAgIEpTQzo6SlNWYWx1ZSBkYXRhOworICAgIHsKKyAgICAgICAgSlNDOjpK
U0xvY2tIb2xkZXIgbG9jaygmbGV4aWNhbEdsb2JhbE9iamVjdCk7CisgICAgICAgIGRhdGEgPSBK
U09OUGFyc2UoJmxleGljYWxHbG9iYWxPYmplY3QsIGRldGFpbHMuc2VyaWFsaXplZERhdGEpOwor
ICAgICAgICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OworICAgIH0KKworICAgIGF1dG8gYXBwbGVQ
YXlEZXRhaWxzVXBkYXRlRGF0YSA9IGNvbnZlcnREaWN0aW9uYXJ5PEFwcGxlUGF5RGV0YWlsc1Vw
ZGF0ZURhdGE+KGxleGljYWxHbG9iYWxPYmplY3QsIFdURk1vdmUoZGF0YSkpOworICAgIGlmIChz
Y29wZS5leGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhj
ZXB0aW9uRXJyb3IgfTsKKyAgICBhdXRvIGV4Y2VwdGlvbiA9IHZhbGlkYXRlKGFwcGxlUGF5RGV0
YWlsc1VwZGF0ZURhdGEpOworICAgIGlmIChleGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCisgICAg
ICAgIHJldHVybiBleGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpOworCisgICAgcmV0dXJuIGFw
cGxlUGF5RGV0YWlsc1VwZGF0ZURhdGE7Cit9CisKIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5
UGF5bWVudEhhbmRsZXI6OmNvbnZlcnREYXRhKEpTQzo6SlNWYWx1ZSBkYXRhKQogewogICAgIGF1
dG8gcmVxdWVzdE9yRXhjZXB0aW9uID0gY29udmVydEFuZFZhbGlkYXRlKCpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIGRhdGEpOwpAQCAtMjM4LDYgKzI3MSwxMCBAQCBzdGF0aWMgdm9pZCBtZXJn
ZVBheW1lbnRPcHRpb25zKGNvbnN0IFBheW1lbnRPcHRpb25zJiBvcHRpb25zLCBBcHBsZVBheVNl
c3Npb25QYQogICAgICAgICByZXF1ZXN0LnNldFNoaXBwaW5nVHlwZShjb252ZXJ0KG9wdGlvbnMu
c2hpcHBpbmdUeXBlKSk7CiB9CiAKKyNpZiAhRU5BQkxFKEFQUExFX1BBWV9QQVlNRU5UX0RFVEFJ
TFNfREFUQSkKK3N0YXRpYyB2b2lkIG1lcmdlKEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
JiwgQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSYmKSB7IH0KKyNlbmRpZiAvLyBFTkFCTEUoQVBQ
TEVfUEFZX1BBWU1FTlRfREVUQUlMU19EQVRBKQorCiBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBh
eVBheW1lbnRIYW5kbGVyOjpzaG93KERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBhdXRvIHZh
bGlkYXRlZFJlcXVlc3QgPSBjb252ZXJ0QW5kVmFsaWRhdGUoZG9jdW1lbnQsIG1fYXBwbGVQYXlS
ZXF1ZXN0LT52ZXJzaW9uLCAqbV9hcHBsZVBheVJlcXVlc3QsIHBheW1lbnRDb29yZGluYXRvcigp
KTsKQEAgLTI3MCw2ICszMDcsMTEgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50
SGFuZGxlcjo6c2hvdyhEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBzaGlwcGlu
Z01ldGhvZHMucmVsZWFzZUV4Y2VwdGlvbigpOwogICAgIHJlcXVlc3Quc2V0U2hpcHBpbmdNZXRo
b2RzKHNoaXBwaW5nTWV0aG9kcy5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKKyAgICBhdXRvIGFw
cGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEgPSBjb252ZXJ0QW5kVmFsaWRhdGUoKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgbV9wYXltZW50UmVxdWVzdC0+cGF5bWVudERldGFpbHMoKSk7CisgICAg
aWYgKGFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJl
dHVybiBhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICBt
ZXJnZShyZXF1ZXN0LCBhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLnJlbGVhc2VSZXR1cm5WYWx1
ZSgpKTsKKwogICAgIGF1dG8gZXhjZXB0aW9uID0gUGF5bWVudFJlcXVlc3RWYWxpZGF0b3I6OnZh
bGlkYXRlKHJlcXVlc3QpOwogICAgIGlmIChleGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCiAgICAg
ICAgIHJldHVybiBleGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpOwpAQCAtMjkwLDExICszMzIs
MTEgQEAgdm9pZCBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjYW5NYWtlUGF5bWVudChEb2N1bWVu
dCYgZG9jdW1lbnQsIEZ1bmN0aW9uPHZvaWQoYm8KICAgICBjb21wbGV0aW9uSGFuZGxlcihwYXlt
ZW50Q29vcmRpbmF0b3IoKS5jYW5NYWtlUGF5bWVudHMoZG9jdW1lbnQpKTsKIH0KIAotRXhjZXB0
aW9uT3I8VmVjdG9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhv
ZD4+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVTaGlwcGluZ01ldGhvZHMoKQorRXhj
ZXB0aW9uT3I8VmVjdG9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+PiBBcHBsZVBheVBheW1lbnRI
YW5kbGVyOjpjb21wdXRlU2hpcHBpbmdNZXRob2RzKCkKIHsKICAgICBhdXRvJiBkZXRhaWxzID0g
bV9wYXltZW50UmVxdWVzdC0+cGF5bWVudERldGFpbHMoKTsKIAotICAgIFZlY3RvcjxBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+IHNoaXBwaW5nT3B0aW9uczsK
KyAgICBWZWN0b3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4gc2hpcHBpbmdPcHRpb25zOwogICAg
IGlmIChkZXRhaWxzLnNoaXBwaW5nT3B0aW9ucykgewogICAgICAgICBhdXRvJiBjdXJyZW5jeSA9
IGRldGFpbHMudG90YWwuYW1vdW50LmN1cnJlbmN5OwogCkBAIC0zMTAsNyArMzUyLDcgQEAgRXhj
ZXB0aW9uT3I8VmVjdG9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01l
dGhvZD4+IEFwcGxlUGF5UGF5bWUKICAgICByZXR1cm4gV1RGTW92ZShzaGlwcGluZ09wdGlvbnMp
OwogfQogCi1FeGNlcHRpb25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxB
bmRMaW5lSXRlbXM+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVUb3RhbEFuZExpbmVJ
dGVtcygpIGNvbnN0CitFeGNlcHRpb25PcjxzdGQ6OnR1cGxlPEFwcGxlUGF5TGluZUl0ZW0sIFZl
Y3RvcjxBcHBsZVBheUxpbmVJdGVtPj4+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVU
b3RhbEFuZExpbmVJdGVtcygpIGNvbnN0CiB7CiAgICAgYXV0byYgZGV0YWlscyA9IG1fcGF5bWVu
dFJlcXVlc3QtPnBheW1lbnREZXRhaWxzKCk7CiAgICAgU3RyaW5nIGN1cnJlbmN5ID0gZGV0YWls
cy50b3RhbC5hbW91bnQuY3VycmVuY3k7CkBAIC0zMjksNyArMzcxLDcgQEAgRXhjZXB0aW9uT3I8
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zPiBBcHBsZVBh
eVBheW1lbnRIYW4KICAgICB9CiAKICAgICBpZiAoIW1fc2VsZWN0ZWRQYXltZW50TWV0aG9kVHlw
ZSkKLSAgICAgICAgcmV0dXJuIEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFu
ZExpbmVJdGVtcyB7IFdURk1vdmUodG90YWwpLCBXVEZNb3ZlKGxpbmVJdGVtcykgfTsKKyAgICAg
ICAgcmV0dXJuIHt7IFdURk1vdmUodG90YWwpLCBXVEZNb3ZlKGxpbmVJdGVtcykgfX07CiAKICAg
ICBpZiAoZGV0YWlscy5tb2RpZmllcnMpIHsKICAgICAgICAgYXV0byYgc2VyaWFsaXplZE1vZGlm
aWVyRGF0YSA9IG1fcGF5bWVudFJlcXVlc3QtPnNlcmlhbGl6ZWRNb2RpZmllckRhdGEoKTsKQEAg
LTM3NiwxOCArNDE4LDE4IEBAIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz4gQXBwbGVQYXlQYXltZW50SGFuCiAgICAgICAgIH0KICAg
ICB9CiAKLSAgICByZXR1cm4gQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5k
TGluZUl0ZW1zIHsgV1RGTW92ZSh0b3RhbCksIFdURk1vdmUobGluZUl0ZW1zKSB9OworICAgIHJl
dHVybiB7eyBXVEZNb3ZlKHRvdGFsKSwgV1RGTW92ZShsaW5lSXRlbXMpIH19OwogfQogCi1zdGF0
aWMgaW5saW5lIHZvaWQgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFN0cmluZyYm
IG1lc3NhZ2UsIE9wdGlvbmFsPFBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkPiBjb250YWN0Rmll
bGQsIFZlY3RvcjxQYXltZW50RXJyb3I+JiBlcnJvcnMpCitzdGF0aWMgaW5saW5lIHZvaWQgYXBw
ZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFN0cmluZyYmIG1lc3NhZ2UsIE9wdGlvbmFs
PEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ+IGNvbnRhY3RGaWVsZCwgVmVjdG9yPFJlZlB0cjxB
cHBsZVBheUVycm9yPj4mIGVycm9ycykKIHsKICAgICBpZiAoIW1lc3NhZ2UuaXNOdWxsKCkpCi0g
ICAgICAgIGVycm9ycy5hcHBlbmQoeyBQYXltZW50RXJyb3I6OkNvZGU6OlNoaXBwaW5nQ29udGFj
dEludmFsaWQsIFdURk1vdmUobWVzc2FnZSksIFdURk1vdmUoY29udGFjdEZpZWxkKSB9KTsKKyAg
ICAgICAgZXJyb3JzLmFwcGVuZChBcHBsZVBheUVycm9yOjpjcmVhdGUoQXBwbGVQYXlFcnJvckNv
ZGU6OlNoaXBwaW5nQ29udGFjdEludmFsaWQsIFdURk1vdmUoY29udGFjdEZpZWxkKSwgV1RGTW92
ZShtZXNzYWdlKSkpOwogfQogCi1WZWN0b3I8UGF5bWVudEVycm9yPiBBcHBsZVBheVBheW1lbnRI
YW5kbGVyOjpjb21wdXRlRXJyb3JzKFN0cmluZyYmIGVycm9yLCBBZGRyZXNzRXJyb3JzJiYgYWRk
cmVzc0Vycm9ycywgUGF5ZXJFcnJvckZpZWxkcyYmIHBheWVyRXJyb3JzLCBKU0M6OkpTT2JqZWN0
KiBwYXltZW50TWV0aG9kRXJyb3JzKSBjb25zdAorVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9y
Pj4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcHV0ZUVycm9ycyhTdHJpbmcmJiBlcnJvciwg
QWRkcmVzc0Vycm9ycyYmIGFkZHJlc3NFcnJvcnMsIFBheWVyRXJyb3JGaWVsZHMmJiBwYXllckVy
cm9ycywgSlNDOjpKU09iamVjdCogcGF5bWVudE1ldGhvZEVycm9ycykgY29uc3QKIHsKLSAgICBW
ZWN0b3I8UGF5bWVudEVycm9yPiBlcnJvcnM7CisgICAgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVy
cm9yPj4gZXJyb3JzOwogCiAgICAgYXV0byYgZGV0YWlscyA9IG1fcGF5bWVudFJlcXVlc3QtPnBh
eW1lbnREZXRhaWxzKCk7CiAKQEAgLTQwNiwzOSArNDQ4LDM3IEBAIFZlY3RvcjxQYXltZW50RXJy
b3I+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVFcnJvcnMoU3RyaW5nJiYgZXJyb3Is
IEFkZHJlCiAgICAgcmV0dXJuIGVycm9yczsKIH0KIAotdm9pZCBBcHBsZVBheVBheW1lbnRIYW5k
bGVyOjpjb21wdXRlQWRkcmVzc0Vycm9ycyhTdHJpbmcmJiBlcnJvciwgQWRkcmVzc0Vycm9ycyYm
IGFkZHJlc3NFcnJvcnMsIFZlY3RvcjxQYXltZW50RXJyb3I+JiBlcnJvcnMpIGNvbnN0Cit2b2lk
IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVBZGRyZXNzRXJyb3JzKFN0cmluZyYmIGVy
cm9yLCBBZGRyZXNzRXJyb3JzJiYgYWRkcmVzc0Vycm9ycywgVmVjdG9yPFJlZlB0cjxBcHBsZVBh
eUVycm9yPj4mIGVycm9ycykgY29uc3QKIHsKICAgICBpZiAoIW1fcGF5bWVudFJlcXVlc3QtPnBh
eW1lbnRPcHRpb25zKCkucmVxdWVzdFNoaXBwaW5nKQogICAgICAgICByZXR1cm47CiAKLSAgICB1
c2luZyBDb250YWN0RmllbGQgPSBQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDsKICAgICBhcHBl
bmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShlcnJvciksIFdURjo6bnVsbG9w
dCwgZXJyb3JzKTsKLSAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92
ZShhZGRyZXNzRXJyb3JzLmFkZHJlc3NMaW5lKSwgQ29udGFjdEZpZWxkOjpBZGRyZXNzTGluZXMs
IGVycm9ycyk7Ci0gICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUo
YWRkcmVzc0Vycm9ycy5jaXR5KSwgQ29udGFjdEZpZWxkOjpMb2NhbGl0eSwgZXJyb3JzKTsKLSAg
ICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShhZGRyZXNzRXJyb3Jz
LmNvdW50cnkpLCBDb250YWN0RmllbGQ6OkNvdW50cnksIGVycm9ycyk7Ci0gICAgYXBwZW5kU2hp
cHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRkcmVzc0Vycm9ycy5kZXBlbmRlbnRM
b2NhbGl0eSksIENvbnRhY3RGaWVsZDo6U3ViTG9jYWxpdHksIGVycm9ycyk7Ci0gICAgYXBwZW5k
U2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRkcmVzc0Vycm9ycy5waG9uZSks
IENvbnRhY3RGaWVsZDo6UGhvbmVOdW1iZXIsIGVycm9ycyk7Ci0gICAgYXBwZW5kU2hpcHBpbmdD
b250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRkcmVzc0Vycm9ycy5wb3N0YWxDb2RlKSwgQ29u
dGFjdEZpZWxkOjpQb3N0YWxDb2RlLCBlcnJvcnMpOwotICAgIGFwcGVuZFNoaXBwaW5nQ29udGFj
dEludmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMucmVjaXBpZW50KSwgQ29udGFjdEZp
ZWxkOjpOYW1lLCBlcnJvcnMpOwotICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJv
cihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMucmVnaW9uKSwgQ29udGFjdEZpZWxkOjpBZG1pbmlzdHJh
dGl2ZUFyZWEsIGVycm9ycyk7CisgICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9y
KFdURk1vdmUoYWRkcmVzc0Vycm9ycy5hZGRyZXNzTGluZSksIEFwcGxlUGF5RXJyb3JDb250YWN0
RmllbGQ6OkFkZHJlc3NMaW5lcywgZXJyb3JzKTsKKyAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJ
bnZhbGlkRXJyb3IoV1RGTW92ZShhZGRyZXNzRXJyb3JzLmNpdHkpLCBBcHBsZVBheUVycm9yQ29u
dGFjdEZpZWxkOjpMb2NhbGl0eSwgZXJyb3JzKTsKKyAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJ
bnZhbGlkRXJyb3IoV1RGTW92ZShhZGRyZXNzRXJyb3JzLmNvdW50cnkpLCBBcHBsZVBheUVycm9y
Q29udGFjdEZpZWxkOjpDb3VudHJ5LCBlcnJvcnMpOworICAgIGFwcGVuZFNoaXBwaW5nQ29udGFj
dEludmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMuZGVwZW5kZW50TG9jYWxpdHkpLCBB
cHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpTdWJMb2NhbGl0eSwgZXJyb3JzKTsKKyAgICBhcHBl
bmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShhZGRyZXNzRXJyb3JzLnBob25l
KSwgQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UGhvbmVOdW1iZXIsIGVycm9ycyk7CisgICAg
YXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRkcmVzc0Vycm9ycy5w
b3N0YWxDb2RlKSwgQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UG9zdGFsQ29kZSwgZXJyb3Jz
KTsKKyAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShhZGRyZXNz
RXJyb3JzLnJlY2lwaWVudCksIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6Ok5hbWUsIGVycm9y
cyk7CisgICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRkcmVz
c0Vycm9ycy5yZWdpb24pLCBBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpBZG1pbmlzdHJhdGl2
ZUFyZWEsIGVycm9ycyk7CiB9CiAKLXZvaWQgQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcHV0
ZVBheWVyRXJyb3JzKFBheWVyRXJyb3JGaWVsZHMmJiBwYXllckVycm9ycywgVmVjdG9yPFBheW1l
bnRFcnJvcj4mIGVycm9ycykgY29uc3QKK3ZvaWQgQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29t
cHV0ZVBheWVyRXJyb3JzKFBheWVyRXJyb3JGaWVsZHMmJiBwYXllckVycm9ycywgVmVjdG9yPFJl
ZlB0cjxBcHBsZVBheUVycm9yPj4mIGVycm9ycykgY29uc3QKIHsKICAgICBhdXRvJiBvcHRpb25z
ID0gbV9wYXltZW50UmVxdWVzdC0+cGF5bWVudE9wdGlvbnMoKTsKLSAgICB1c2luZyBDb250YWN0
RmllbGQgPSBQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDsKIAogICAgIGlmIChvcHRpb25zLnJl
cXVlc3RQYXllck5hbWUpCi0gICAgICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJv
cihXVEZNb3ZlKHBheWVyRXJyb3JzLm5hbWUpLCBDb250YWN0RmllbGQ6Ok5hbWUsIGVycm9ycyk7
CisgICAgICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKHBheWVy
RXJyb3JzLm5hbWUpLCBBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpOYW1lLCBlcnJvcnMpOwog
CiAgICAgaWYgKG9wdGlvbnMucmVxdWVzdFBheWVyRW1haWwpCi0gICAgICAgIGFwcGVuZFNoaXBw
aW5nQ29udGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKHBheWVyRXJyb3JzLmVtYWlsKSwgQ29udGFj
dEZpZWxkOjpFbWFpbEFkZHJlc3MsIGVycm9ycyk7CisgICAgICAgIGFwcGVuZFNoaXBwaW5nQ29u
dGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKHBheWVyRXJyb3JzLmVtYWlsKSwgQXBwbGVQYXlFcnJv
ckNvbnRhY3RGaWVsZDo6RW1haWxBZGRyZXNzLCBlcnJvcnMpOwogCiAgICAgaWYgKG9wdGlvbnMu
cmVxdWVzdFBheWVyUGhvbmUpCi0gICAgICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRF
cnJvcihXVEZNb3ZlKHBheWVyRXJyb3JzLnBob25lKSwgQ29udGFjdEZpZWxkOjpQaG9uZU51bWJl
ciwgZXJyb3JzKTsKKyAgICAgICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdU
Rk1vdmUocGF5ZXJFcnJvcnMucGhvbmUpLCBBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpQaG9u
ZU51bWJlciwgZXJyb3JzKTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50
SGFuZGxlcjo6Y29tcHV0ZVBheW1lbnRNZXRob2RFcnJvcnMoSlNDOjpKU09iamVjdCogcGF5bWVu
dE1ldGhvZEVycm9ycywgVmVjdG9yPFBheW1lbnRFcnJvcj4mIGVycm9ycykgY29uc3QKK0V4Y2Vw
dGlvbk9yPHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVQYXltZW50TWV0aG9k
RXJyb3JzKEpTQzo6SlNPYmplY3QqIHBheW1lbnRNZXRob2RFcnJvcnMsIFZlY3RvcjxSZWZQdHI8
QXBwbGVQYXlFcnJvcj4+JiBlcnJvcnMpIGNvbnN0CiB7CiAgICAgaWYgKCFwYXltZW50TWV0aG9k
RXJyb3JzKQogICAgICAgICByZXR1cm4geyB9OwpAQCAtNDQ5LDkgKzQ4OSw5IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVQYXltZW50TWV0aG9kRXJy
b3JzKEpTQzo6SlNPYmplCiAgICAgaWYgKHRocm93U2NvcGUuZXhjZXB0aW9uKCkpCiAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH07CiAKLSAgICBmb3Ig
KGF1dG8mIGFwcGxlUGF5RXJyb3IgOiBhcHBsZVBheUVycm9ycykgeworICAgIGZvciAoYXV0byYm
IGFwcGxlUGF5RXJyb3IgOiBXVEZNb3ZlKGFwcGxlUGF5RXJyb3JzKSkgewogICAgICAgICBpZiAo
YXBwbGVQYXlFcnJvcikKLSAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoeyBhcHBsZVBheUVycm9y
LT5jb2RlKCksIGFwcGxlUGF5RXJyb3ItPm1lc3NhZ2UoKSwgYXBwbGVQYXlFcnJvci0+Y29udGFj
dEZpZWxkKCkgfSk7CisgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKFdURk1vdmUoYXBwbGVQYXlF
cnJvcikpOwogICAgIH0KIAogICAgIHJldHVybiB7IH07CkBAIC00OTIsMTIgKzUzMiwxNiBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjptZXJjaGFudFZhbGlkYXRp
b25Db21wbGV0ZWQoSlNDOjpKU1ZhbAogICAgIHJldHVybiB7IH07CiB9CiAKLUV4Y2VwdGlvbk9y
PHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnNoaXBwaW5nQWRkcmVzc1VwZGF0ZWQoVmVj
dG9yPFBheW1lbnRFcnJvcj4mJiBlcnJvcnMpCisjaWYgIUVOQUJMRShBUFBMRV9QQVlfUEFZTUVO
VF9ERVRBSUxTX0RBVEEpCitzdGF0aWMgdm9pZCBtZXJnZShBcHBsZVBheURldGFpbHNVcGRhdGVC
YXNlJiwgQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSYmKSB7IH0KKyNlbmRpZiAvLyBFTkFCTEUo
QVBQTEVfUEFZX1BBWU1FTlRfREVUQUlMU19EQVRBKQorCitFeGNlcHRpb25Pcjx2b2lkPiBBcHBs
ZVBheVBheW1lbnRIYW5kbGVyOjpzaGlwcGluZ0FkZHJlc3NVcGRhdGVkKFZlY3RvcjxSZWZQdHI8
QXBwbGVQYXlFcnJvcj4+JiYgZXJyb3JzKQogewogICAgIEFTU0VSVChtX2lzVXBkYXRpbmcpOwog
ICAgIG1faXNVcGRhdGluZyA9IGZhbHNlOwogCi0gICAgU2hpcHBpbmdDb250YWN0VXBkYXRlIHVw
ZGF0ZTsKKyAgICBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZSB1cGRhdGU7CiAgICAgdXBk
YXRlLmVycm9ycyA9IFdURk1vdmUoZXJyb3JzKTsKIAogICAgIGF1dG8gbmV3U2hpcHBpbmdNZXRo
b2RzID0gY29tcHV0ZVNoaXBwaW5nTWV0aG9kcygpOwpAQCAtNTA4LDcgKzU1MiwxMiBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpzaGlwcGluZ0FkZHJlc3NVcGRh
dGVkKFZlY3RvcjxQYXltZW50RQogICAgIGF1dG8gbmV3VG90YWxBbmRMaW5lSXRlbXMgPSBjb21w
dXRlVG90YWxBbmRMaW5lSXRlbXMoKTsKICAgICBpZiAobmV3VG90YWxBbmRMaW5lSXRlbXMuaGFz
RXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBuZXdUb3RhbEFuZExpbmVJdGVtcy5yZWxlYXNl
RXhjZXB0aW9uKCk7Ci0gICAgdXBkYXRlLm5ld1RvdGFsQW5kTGluZUl0ZW1zID0gbmV3VG90YWxB
bmRMaW5lSXRlbXMucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgc3RkOjp0aWUodXBkYXRlLm5l
d1RvdGFsLCB1cGRhdGUubmV3TGluZUl0ZW1zKSA9IG5ld1RvdGFsQW5kTGluZUl0ZW1zLnJlbGVh
c2VSZXR1cm5WYWx1ZSgpOworCisgICAgYXV0byBhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhID0g
Y29udmVydEFuZFZhbGlkYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fcGF5bWVudFJl
cXVlc3QtPnBheW1lbnREZXRhaWxzKCkpOworICAgIGlmIChhcHBsZVBheURldGFpbHNVcGRhdGVE
YXRhLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gYXBwbGVQYXlEZXRhaWxzVXBkYXRl
RGF0YS5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgbWVyZ2UodXBkYXRlLCBhcHBsZVBheURldGFp
bHNVcGRhdGVEYXRhLnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAogICAgIHBheW1lbnRDb29yZGlu
YXRvcigpLmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKFdURk1vdmUodXBkYXRlKSk7
CiAgICAgcmV0dXJuIHsgfTsKQEAgLTUxOSwxMiArNTY4LDE3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnNoaXBwaW5nT3B0aW9uVXBkYXRlZCgpCiAgICAgQVNT
RVJUKG1faXNVcGRhdGluZyk7CiAgICAgbV9pc1VwZGF0aW5nID0gZmFsc2U7CiAKLSAgICBTaGlw
cGluZ01ldGhvZFVwZGF0ZSB1cGRhdGU7CisgICAgQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0
ZSB1cGRhdGU7CiAKICAgICBhdXRvIG5ld1RvdGFsQW5kTGluZUl0ZW1zID0gY29tcHV0ZVRvdGFs
QW5kTGluZUl0ZW1zKCk7CiAgICAgaWYgKG5ld1RvdGFsQW5kTGluZUl0ZW1zLmhhc0V4Y2VwdGlv
bigpKQogICAgICAgICByZXR1cm4gbmV3VG90YWxBbmRMaW5lSXRlbXMucmVsZWFzZUV4Y2VwdGlv
bigpOwotICAgIHVwZGF0ZS5uZXdUb3RhbEFuZExpbmVJdGVtcyA9IG5ld1RvdGFsQW5kTGluZUl0
ZW1zLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgIHN0ZDo6dGllKHVwZGF0ZS5uZXdUb3RhbCwg
dXBkYXRlLm5ld0xpbmVJdGVtcykgPSBuZXdUb3RhbEFuZExpbmVJdGVtcy5yZWxlYXNlUmV0dXJu
VmFsdWUoKTsKKworICAgIGF1dG8gYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSA9IGNvbnZlcnRB
bmRWYWxpZGF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3BheW1lbnRSZXF1ZXN0LT5w
YXltZW50RGV0YWlscygpKTsKKyAgICBpZiAoYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oYXNF
eGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEucmVs
ZWFzZUV4Y2VwdGlvbigpOworICAgIG1lcmdlKHVwZGF0ZSwgYXBwbGVQYXlEZXRhaWxzVXBkYXRl
RGF0YS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKICAgICBwYXltZW50Q29vcmRpbmF0b3IoKS5j
b21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKFdURk1vdmUodXBkYXRlKSk7CiAgICAgcmV0
dXJuIHsgfTsKQEAgLTUzNSwxMSArNTg5LDE5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5
UGF5bWVudEhhbmRsZXI6OnBheW1lbnRNZXRob2RVcGRhdGVkKCkKICAgICBBU1NFUlQobV9pc1Vw
ZGF0aW5nKTsKICAgICBtX2lzVXBkYXRpbmcgPSBmYWxzZTsKIAorICAgIEFwcGxlUGF5UGF5bWVu
dE1ldGhvZFVwZGF0ZSB1cGRhdGU7CisKICAgICBhdXRvIG5ld1RvdGFsQW5kTGluZUl0ZW1zID0g
Y29tcHV0ZVRvdGFsQW5kTGluZUl0ZW1zKCk7CiAgICAgaWYgKG5ld1RvdGFsQW5kTGluZUl0ZW1z
Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gbmV3VG90YWxBbmRMaW5lSXRlbXMucmVs
ZWFzZUV4Y2VwdGlvbigpOworICAgIHN0ZDo6dGllKHVwZGF0ZS5uZXdUb3RhbCwgdXBkYXRlLm5l
d0xpbmVJdGVtcykgPSBuZXdUb3RhbEFuZExpbmVJdGVtcy5yZWxlYXNlUmV0dXJuVmFsdWUoKTsK
IAotICAgIHBheW1lbnRDb29yZGluYXRvcigpLmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlv
bihQYXltZW50TWV0aG9kVXBkYXRlIHsgbmV3VG90YWxBbmRMaW5lSXRlbXMucmVsZWFzZVJldHVy
blZhbHVlKCkgfSk7CisgICAgYXV0byBhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhID0gY29udmVy
dEFuZFZhbGlkYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fcGF5bWVudFJlcXVlc3Qt
PnBheW1lbnREZXRhaWxzKCkpOworICAgIGlmIChhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmhh
c0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5y
ZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgbWVyZ2UodXBkYXRlLCBhcHBsZVBheURldGFpbHNVcGRh
dGVEYXRhLnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKKworICAgIHBheW1lbnRDb29yZGluYXRvcigp
LmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihXVEZNb3ZlKHVwZGF0ZSkpOwogICAgIHJl
dHVybiB7IH07CiB9CiAKQEAgLTU2OCw3ICs2MzAsNyBAQCB2b2lkIEFwcGxlUGF5UGF5bWVudEhh
bmRsZXI6OmNvbXBsZXRlKE9wdGlvbmFsPFBheW1lbnRDb21wbGV0ZT4mJiByZXN1bHQpCiAKIEV4
Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnJldHJ5KFBheW1lbnRWYWxp
ZGF0aW9uRXJyb3JzJiYgdmFsaWRhdGlvbkVycm9ycykKIHsKLSAgICBWZWN0b3I8UGF5bWVudEVy
cm9yPiBlcnJvcnM7CisgICAgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4gZXJyb3JzOwog
CiAgICAgY29tcHV0ZUFkZHJlc3NFcnJvcnMoV1RGTW92ZSh2YWxpZGF0aW9uRXJyb3JzLmVycm9y
KSwgV1RGTW92ZSh2YWxpZGF0aW9uRXJyb3JzLnNoaXBwaW5nQWRkcmVzcyksIGVycm9ycyk7CiAg
ICAgY29tcHV0ZVBheWVyRXJyb3JzKFdURk1vdmUodmFsaWRhdGlvbkVycm9ycy5wYXllciksIGVy
cm9ycyk7CkBAIC01NzksNyArNjQxLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXlt
ZW50SGFuZGxlcjo6cmV0cnkoUGF5bWVudFZhbGlkYXRpb25FcnJvcnMmJiB2YWxpZGEKIAogICAg
IC8vIEVuc3VyZSB0aGVyZSBpcyBhbHdheXMgYXQgbGVhc3Qgb25lIGVycm9yIHRvIGF2b2lkIGhh
dmluZyBhIGZpbmFsIHJlc3VsdC4KICAgICBpZiAoZXJyb3JzLmlzRW1wdHkoKSkKLSAgICAgICAg
ZXJyb3JzLmFwcGVuZCh7IFBheW1lbnRFcnJvcjo6Q29kZTo6VW5rbm93biwgeyB9LCBXVEY6Om51
bGxvcHQgfSk7CisgICAgICAgIGVycm9ycy5hcHBlbmQoQXBwbGVQYXlFcnJvcjo6Y3JlYXRlKEFw
cGxlUGF5RXJyb3JDb2RlOjpVbmtub3duLCBXVEY6Om51bGxvcHQsIG51bGxTdHJpbmcoKSkpOwog
CiAgICAgUGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQgYXV0aG9yaXphdGlvblJlc3VsdCB7IFBh
eW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpGYWlsdXJlLCBXVEZNb3ZlKGVycm9ycykgfTsKICAg
ICBBU1NFUlQoIWlzRmluYWxTdGF0ZVJlc3VsdChhdXRob3JpemF0aW9uUmVzdWx0KSk7CkBAIC02
MjMsNyArNjg1LDcgQEAgdm9pZCBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpkaWRBdXRob3JpemVQ
YXltZW50KGNvbnN0IFBheW1lbnQmIHBheW1lbnQpCiAgICAgbV9wYXltZW50UmVxdWVzdC0+YWNj
ZXB0KFdURjo6Z2V0PFVSTD4obV9pZGVudGlmaWVyKS5zdHJpbmcoKSwgV1RGTW92ZShkZXRhaWxz
RnVuY3Rpb24pLCBjb252ZXJ0KHNoaXBwaW5nQ29udGFjdCksIHNoaXBwaW5nQ29udGFjdC5sb2Nh
bGl6ZWROYW1lLCBzaGlwcGluZ0NvbnRhY3QuZW1haWxBZGRyZXNzLCBzaGlwcGluZ0NvbnRhY3Qu
cGhvbmVOdW1iZXIpOwogfQogCi12b2lkIEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmRpZFNlbGVj
dFNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlw
cGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCit2b2lkIEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6
OmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2QmIHNo
aXBwaW5nTWV0aG9kKQogewogICAgIEFTU0VSVCghbV9pc1VwZGF0aW5nKTsKICAgICBtX2lzVXBk
YXRpbmcgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIu
aAppbmRleCA4OWM3NTdmZGZiNGQuLjFiOTkyNjYyMDA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5k
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVz
dC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmgKQEAgLTM0LDEwICszNCwxMSBAQAogI2luY2x1ZGUg
IlBheW1lbnRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUGF5bWVudFNlc3Npb24uaCIKICNpbmNsdWRl
IDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEFwcGxlUGF5RXJyb3I7
CiBjbGFzcyBQYXltZW50Q29vcmRpbmF0b3I7CiAKIGNsYXNzIEFwcGxlUGF5UGF5bWVudEhhbmRs
ZXIgZmluYWwgOiBwdWJsaWMgUGF5bWVudEhhbmRsZXIsIHB1YmxpYyBQYXltZW50U2Vzc2lvbiwg
cHJpdmF0ZSBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CkBAIC01MywxNCArNTQsMTQgQEAg
cHJpdmF0ZToKICAgICBEb2N1bWVudCYgZG9jdW1lbnQoKSBjb25zdDsKICAgICBQYXltZW50Q29v
cmRpbmF0b3ImIHBheW1lbnRDb29yZGluYXRvcigpIGNvbnN0OwogCi0gICAgRXhjZXB0aW9uT3I8
VmVjdG9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4+IGNv
bXB1dGVTaGlwcGluZ01ldGhvZHMoKTsKLSAgICBFeGNlcHRpb25PcjxBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXM+IGNvbXB1dGVUb3RhbEFuZExpbmVJdGVt
cygpIGNvbnN0OwotICAgIFZlY3RvcjxQYXltZW50RXJyb3I+IGNvbXB1dGVFcnJvcnMoU3RyaW5n
JiYgZXJyb3IsIEFkZHJlc3NFcnJvcnMmJiwgUGF5ZXJFcnJvckZpZWxkcyYmLCBKU0M6OkpTT2Jq
ZWN0KiBwYXltZW50TWV0aG9kRXJyb3JzKSBjb25zdDsKLSAgICB2b2lkIGNvbXB1dGVBZGRyZXNz
RXJyb3JzKFN0cmluZyYmIGVycm9yLCBBZGRyZXNzRXJyb3JzJiYsIFZlY3RvcjxQYXltZW50RXJy
b3I+JikgY29uc3Q7Ci0gICAgdm9pZCBjb21wdXRlUGF5ZXJFcnJvcnMoUGF5ZXJFcnJvckZpZWxk
cyYmLCBWZWN0b3I8UGF5bWVudEVycm9yPiYpIGNvbnN0OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IGNvbXB1dGVQYXltZW50TWV0aG9kRXJyb3JzKEpTQzo6SlNPYmplY3QqIHBheW1lbnRNZXRob2RF
cnJvcnMsIFZlY3RvcjxQYXltZW50RXJyb3I+JikgY29uc3Q7CisgICAgRXhjZXB0aW9uT3I8VmVj
dG9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+PiBjb21wdXRlU2hpcHBpbmdNZXRob2RzKCk7Cisg
ICAgRXhjZXB0aW9uT3I8c3RkOjp0dXBsZTxBcHBsZVBheUxpbmVJdGVtLCBWZWN0b3I8QXBwbGVQ
YXlMaW5lSXRlbT4+PiBjb21wdXRlVG90YWxBbmRMaW5lSXRlbXMoKSBjb25zdDsKKyAgICBWZWN0
b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiBjb21wdXRlRXJyb3JzKFN0cmluZyYmIGVycm9yLCBB
ZGRyZXNzRXJyb3JzJiYsIFBheWVyRXJyb3JGaWVsZHMmJiwgSlNDOjpKU09iamVjdCogcGF5bWVu
dE1ldGhvZEVycm9ycykgY29uc3Q7CisgICAgdm9pZCBjb21wdXRlQWRkcmVzc0Vycm9ycyhTdHJp
bmcmJiBlcnJvciwgQWRkcmVzc0Vycm9ycyYmLCBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+
PiYpIGNvbnN0OworICAgIHZvaWQgY29tcHV0ZVBheWVyRXJyb3JzKFBheWVyRXJyb3JGaWVsZHMm
JiwgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4mKSBjb25zdDsKKyAgICBFeGNlcHRpb25P
cjx2b2lkPiBjb21wdXRlUGF5bWVudE1ldGhvZEVycm9ycyhKU0M6OkpTT2JqZWN0KiBwYXltZW50
TWV0aG9kRXJyb3JzLCBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYpIGNvbnN0OwogCi0g
ICAgRXhjZXB0aW9uT3I8dm9pZD4gc2hpcHBpbmdBZGRyZXNzVXBkYXRlZChWZWN0b3I8UGF5bWVu
dEVycm9yPiYmIGVycm9ycyk7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2hpcHBpbmdBZGRyZXNz
VXBkYXRlZChWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYmIGVycm9ycyk7CiAgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gc2hpcHBpbmdPcHRpb25VcGRhdGVkKCk7CiAgICAgRXhjZXB0aW9uT3I8
dm9pZD4gcGF5bWVudE1ldGhvZFVwZGF0ZWQoKTsKIApAQCAtNzgsNyArNzksNyBAQCBwcml2YXRl
OgogICAgIHVuc2lnbmVkIHZlcnNpb24oKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHZhbGlkYXRl
TWVyY2hhbnQoVVJMJiYpIGZpbmFsOwogICAgIHZvaWQgZGlkQXV0aG9yaXplUGF5bWVudChjb25z
dCBQYXltZW50JikgZmluYWw7Ci0gICAgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25z
dCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKSBmaW5hbDsK
KyAgICB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdN
ZXRob2QmKSBmaW5hbDsKICAgICB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChjb25zdCBQ
YXltZW50Q29udGFjdCYpIGZpbmFsOwogICAgIHZvaWQgZGlkU2VsZWN0UGF5bWVudE1ldGhvZChj
b25zdCBQYXltZW50TWV0aG9kJikgZmluYWw7CiAgICAgdm9pZCBkaWRDYW5jZWxQYXltZW50U2Vz
c2lvbihQYXltZW50U2Vzc2lvbkVycm9yJiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50RGV0YWlsc0Jhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudERldGFpbHNCYXNlLmgKaW5k
ZXggOTQyMmQ0MjAxMzRhLi45MGY4N2QyMDYxZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudERldGFpbHNCYXNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50RGV0YWlsc0Jhc2UuaApAQCAt
MzAsNyArMzAsMTEgQEAKICNpbmNsdWRlICJQYXltZW50RGV0YWlsc01vZGlmaWVyLmgiCiAjaW5j
bHVkZSAiUGF5bWVudEl0ZW0uaCIKICNpbmNsdWRlICJQYXltZW50U2hpcHBpbmdPcHRpb24uaCIK
KyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09iamVjdC5oPgorI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL1N0cm9uZy5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC0zOCw2ICs0MiwxMCBAQCBzdHJ1Y3QgUGF5bWVudERldGFpbHNCYXNl
IHsKICAgICBPcHRpb25hbDxWZWN0b3I8UGF5bWVudEl0ZW0+PiBkaXNwbGF5SXRlbXM7CiAgICAg
T3B0aW9uYWw8VmVjdG9yPFBheW1lbnRTaGlwcGluZ09wdGlvbj4+IHNoaXBwaW5nT3B0aW9uczsK
ICAgICBPcHRpb25hbDxWZWN0b3I8UGF5bWVudERldGFpbHNNb2RpZmllcj4+IG1vZGlmaWVyczsK
KyAgICBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiBkYXRhOworCisgICAgLy8gTm90IGZyb20g
dGhlIElETC4gU2V0IGJ5IGBkYXRhYCB3aGVuIHRoaXMgaXMgdmFsaWRhdGVkIGJ5IGBQYXltZW50
UmVxdWVzdGAuCisgICAgU3RyaW5nIHNlcmlhbGl6ZWREYXRhOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50RGV0YWlsc0Jhc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXlt
ZW50cmVxdWVzdC9QYXltZW50RGV0YWlsc0Jhc2UuaWRsCmluZGV4IDQ0OWUzZWU5OGQyOS4uZDgw
YzQ5ZDkyMDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1
ZXN0L1BheW1lbnREZXRhaWxzQmFzZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
YXltZW50cmVxdWVzdC9QYXltZW50RGV0YWlsc0Jhc2UuaWRsCkBAIC0yOSw0ICsyOSw1IEBACiAg
ICAgc2VxdWVuY2U8UGF5bWVudEl0ZW0+IGRpc3BsYXlJdGVtczsKICAgICBzZXF1ZW5jZTxQYXlt
ZW50U2hpcHBpbmdPcHRpb24+IHNoaXBwaW5nT3B0aW9uczsKICAgICBzZXF1ZW5jZTxQYXltZW50
RGV0YWlsc01vZGlmaWVyPiBtb2RpZmllcnM7CisgICAgb2JqZWN0IGRhdGE7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVz
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1
ZXN0LmNwcAppbmRleCBlZTBkM2FhZWI2N2YuLjgxYjU1MzQ0ZmE5ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5j
cHAKQEAgLTM0NSw2ICszNDUsMTQgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHN0ZDo6dHVwbGU8U3Ry
aW5nLCBWZWN0b3I8U3RyaW5nPj4+IGNoZWNrQW5kQ2Fub25pY2FsaXplRGV0YWkKICAgICB9IGVs
c2UgaWYgKGlzVXBkYXRlID09IElzVXBkYXRlOjpObykKICAgICAgICAgZGV0YWlscy5tb2RpZmll
cnMgPSB7IHsgfSB9OwogCisgICAgaWYgKGRldGFpbHMuZGF0YSkgeworICAgICAgICBhdXRvIGRh
dGFSZXN1bHQgPSBjaGVja0FuZENhbm9uaWNhbGl6ZURhdGEoY29udGV4dCwgZGV0YWlscyk7Cisg
ICAgICAgIGlmIChkYXRhUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJu
IGRhdGFSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOworCisgICAgICAgIGRldGFpbHMuc2VyaWFs
aXplZERhdGEgPSBkYXRhUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgIH0KKwogICAg
IHJldHVybiBzdGQ6Om1ha2VfdHVwbGUoV1RGTW92ZShzZWxlY3RlZFNoaXBwaW5nT3B0aW9uKSwg
V1RGTW92ZShzZXJpYWxpemVkTW9kaWZpZXJEYXRhKSk7CiB9CiAKQEAgLTczNiw2ICs3NDQsOCBA
QCB2b2lkIFBheW1lbnRSZXF1ZXN0OjpzZXR0bGVEZXRhaWxzUHJvbWlzZShVcGRhdGVSZWFzb24g
cmVhc29uKQogICAgICAgICBtX2RldGFpbHMubW9kaWZpZXJzID0gV1RGTW92ZSgqZGV0YWlsc1Vw
ZGF0ZS5tb2RpZmllcnMpOwogICAgICAgICBtX3NlcmlhbGl6ZWRNb2RpZmllckRhdGEgPSBXVEZN
b3ZlKHN0ZDo6Z2V0PDE+KHNoaXBwaW5nT3B0aW9uQW5kTW9kaWZpZXJEYXRhKSk7CiAgICAgfQor
ICAgIGlmICghZGV0YWlsc1VwZGF0ZS5zZXJpYWxpemVkRGF0YS5pc0VtcHR5KCkpCisgICAgICAg
IG1fZGV0YWlscy5zZXJpYWxpemVkRGF0YSA9IFdURk1vdmUoZGV0YWlsc1VwZGF0ZS5zZXJpYWxp
emVkRGF0YSk7CiAKICAgICBhdXRvIHJlc3VsdCA9IGFjdGl2ZVBheW1lbnRIYW5kbGVyKCktPmRl
dGFpbHNVcGRhdGVkKHJlYXNvbiwgV1RGTW92ZShkZXRhaWxzVXBkYXRlLmVycm9yKSwgV1RGTW92
ZShkZXRhaWxzVXBkYXRlLnNoaXBwaW5nQWRkcmVzc0Vycm9ycyksIFdURk1vdmUoZGV0YWlsc1Vw
ZGF0ZS5wYXllckVycm9ycyksIGRldGFpbHNVcGRhdGUucGF5bWVudE1ldGhvZEVycm9ycy5nZXQo
KSk7CiAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5j
bWFrZQppbmRleCBhOGZhMDcyYjU4YTAuLmQ2ZTlkMTQ5ZDJkZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1N
YWMuY21ha2UKQEAgLTQzNSw3ICs0MzUsNiBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMK
ICkKIAogbGlzdChBUFBFTkQgV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCi0gICAg
TW9kdWxlcy9hcHBsZXBheS9QYXltZW50TWV0aG9kVXBkYXRlLmgKICAgICBNb2R1bGVzL2FwcGxl
cGF5L1BheW1lbnRTZXNzaW9uRXJyb3IuaAogICAgIE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFN1
bW1hcnlJdGVtcy5oCiAKQEAgLTYxNiw2ICs2MTUsOCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKIGxpc3QoQVBQRU5EIFdlYkNvcmVfSURMX0ZJTEVTCiAg
ICAgTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNhbmNlbEV2ZW50LmlkbAogICAgIE1vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlDb250YWN0RmllbGQuaWRsCisgICAgTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmlkbAorICAgIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlEZXRhaWxzVXBkYXRlRGF0YS5pZGwKICAgICBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJy
b3IuaWRsCiAgICAgTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29kZS5pZGwKICAgICBN
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaWRsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dAppbmRleCBiZjZhZTE2MTg3YWIuLjhjODI4NDkxMmIyYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzQ29jb2EudHh0CkBAIC0yMyw2ICsyMyw4IEBACiAKIEpTQXBwbGVQYXlDYW5jZWxFdmVudC5j
cHAKIEpTQXBwbGVQYXlDb250YWN0RmllbGQuY3BwCitKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJh
c2UuY3BwCitKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuY3BwCiBKU0FwcGxlUGF5RXJyb3Iu
Y3BwCiBKU0FwcGxlUGF5RXJyb3JDb2RlLmNwcAogSlNBcHBsZVBheUVycm9yQ29udGFjdEZpZWxk
LmNwcApAQCAtNjIsNyArNjQsNiBAQCBKU0FwcGxlUGF5VmFsaWRhdGVNZXJjaGFudEV2ZW50LmNw
cAogTW9kdWxlcy9haXJwbGF5L1dlYk1lZGlhU2Vzc2lvbk1hbmFnZXIuY3BwCiBNb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5Q2FuY2VsRXZlbnQuY3BwCiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
Q29udGFjdEZpZWxkLmNwcAotTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yLmNwcAogTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5jcHAKIE1vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXplZEV2ZW50LmNwcAogTW9kdWxlcy9hcHBsZXBh
eS9BcHBsZVBheVBheW1lbnRNZXRob2RTZWxlY3RlZEV2ZW50LmNwcApAQCAtODQsNyArODUsNiBA
QCBNb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRDb2NvYS5tbQogTW9kdWxlcy9hcHBsZXBh
eS9jb2NvYS9QYXltZW50Q29udGFjdENvY29hLm1tCiBNb2R1bGVzL2FwcGxlcGF5L2NvY29hL1Bh
eW1lbnRNZXJjaGFudFNlc3Npb25Db2NvYS5tbQogTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXlt
ZW50TWV0aG9kQ29jb2EubW0KLU1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudE1ldGhvZFVw
ZGF0ZUNvY29hLm1tCiBNb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRTZXNzaW9uRXJyb3JD
b2NvYS5tbQogTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2Eu
bW0KIE1vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxl
ci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAyMjNhMzMzMjhhZWUuLjA0NjViYzdkYWMyNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjMzOCw3ICsyMzM4
LDcgQEAKIAkJN0M2NTIzMUExRTAwREJCNTAwNjc3RjIyIC8qIEpTQXBwbGVQYXlQYXltZW50UGFz
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M2NTIz
MTAxRTAwREJCNDAwNjc3RjIyIC8qIEpTQXBwbGVQYXlQYXltZW50UGFzcy5oICovOyB9OwogCQk3
QzY1NzlFMDFFMDA3OUY5MDBFM0EyN0EgLyogQXBwbGVQYXlQYXltZW50UmVxdWVzdC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M2NTc5REYxRTAwNzlG
OTAwRTNBMjdBIC8qIEFwcGxlUGF5UGF5bWVudFJlcXVlc3QuaCAqLzsgfTsKIAkJN0M2NTc5RTMx
RTAwODI3MDAwRTNBMjdBIC8qIEFwcGxlUGF5TGluZUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNjU3OUUyMUUwMDgyNzAwMEUzQTI3QSAvKiBB
cHBsZVBheUxpbmVJdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJN0M2NTc5RTgxRTAwODMxNjAwRTNBMjdBIC8qIEFwcGxlUGF5U2hpcHBpbmdN
ZXRob2QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdD
NjU3OUU3MUUwMDgzMTYwMEUzQTI3QSAvKiBBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmggKi87IH07
CisJCTdDNjU3OUU4MUUwMDgzMTYwMEUzQTI3QSAvKiBBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzY1NzlFNzFF
MDA4MzE2MDBFM0EyN0EgLyogQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDNjU3OUYwMUUwMDg1NjYwMEUz
QTI3QSAvKiBKU0FwcGxlUGF5TGluZUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdDNjU3OUVBMUUwMDg1NjYwMEUzQTI3QSAvKiBKU0FwcGxlUGF5
TGluZUl0ZW0uaCAqLzsgfTsKIAkJN0M2NTc5RjIxRTAwODU2NjAwRTNBMjdBIC8qIEpTQXBwbGVQ
YXlQYXltZW50UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gN0M2NTc5RUMxRTAwODU2NjAwRTNBMjdBIC8qIEpTQXBwbGVQYXlQYXltZW50UmVx
dWVzdC5oICovOyB9OwogCQk3QzY1NzlGNDFFMDA4NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBheVNo
aXBwaW5nTWV0aG9kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QzY1NzlFRTFFMDA4NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBheVNoaXBwaW5nTWV0aG9k
LmggKi87IH07CkBAIC0yOTM3LDggKzI5MzcsMTIgQEAKIAkJOTRERTVDOTYxRDgzMDFCRDAwMTY0
RjJBIC8qIENTU1BhcnNlckltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk0REU1Qzk0MUQ4MzAxQjAwMDE2NEYyQSAvKiBDU1NQYXJzZXJJbXBsLmgg
Ki87IH07CiAJCTk0RTgzOTUxMURGQjJBMEUwMDdCQzZBNyAvKiBDU1NOYW1lc3BhY2VSdWxlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NEU4Mzk0RjFE
RkIyNzAwMDA3QkM2QTcgLyogQ1NTTmFtZXNwYWNlUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk0RTgzOTU2MURGQjJCQzQwMDdCQzZBNyAv
KiBKU0NTU05hbWVzcGFjZVJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk0RTgzOTU0MURGQjJCQTYwMDdCQzZBNyAvKiBKU0NTU05hbWVzcGFjZVJ1
bGUuaCAqLzsgfTsKKwkJOTUwMTgzQ0QyNUQ2MzNEOTAwRDQzNDBGIC8qIEFwcGxlUGF5RGV0YWls
c1VwZGF0ZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk1MDE4M0NCMjVENjMzRDgwMEQ0MzQwRiAvKiBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTUy
MDc2MDUxRjI2NzVGRTAwN0QyQUFCIC8qIENhbGxUcmFjZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MjA3NjAxMUYyNjc1RjkwMDdEMkFBQiAvKiBD
YWxsVHJhY2VyLmggKi87IH07CiAJCTk1MjA3NjA2MUYyNjc1RkUwMDdEMkFBQiAvKiBDYWxsVHJh
Y2VyVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk1MjA3NjAyMUYyNjc1RjkwMDdEMkFBQiAvKiBDYWxsVHJhY2VyVHlwZXMuaCAqLzsgfTsKKwkJ
OTUyN0Q3QUIyNUQ1RkRFMjAwQTZFMTc2IC8qIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MjdEN0E4MjVE
NUZERTEwMEE2RTE3NiAvKiBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTUyN0Q3QUYyNUQ1RkU2QzAw
QTZFMTc2IC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUyN0Q3QUQyNUQ1RkU2QjAwQTZFMTc2IC8q
IEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oICovOyB9OworCQk5NTNCQ0VCMjI1RDYyODNE
MDBBNEEyQTEgLyogSlNBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTNCQ0VBRjI1RDYyODNDMDBBNEEyQTEg
LyogSlNBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmggKi87IH07CiAJCTk1NkZDNEJCMjVENDlD
N0IwMEY3QjNBMiAvKiBBcHBsZVBheUxpbmVJdGVtRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU2RkM0QjgyNUQ0OUM3QTAwRjdCM0EyIC8qIEFw
cGxlUGF5TGluZUl0ZW1EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJOTU2RkM0QkIyNUQ0OUM3QjAwRjdCM0EzIC8qIEpTQXBwbGVQYXlMaW5l
SXRlbURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk1NkZDNEJBMjVENDlDN0QwMEY3QjNBMiAvKiBKU0FwcGxlUGF5TGluZUl0ZW1EYXRhLmggKi87
IH07CiAJCTk1QTFFMkU5MjVDQzc1QTkwMDI2OEM4RSAvKiBNZWRpYUNvbnRyb2xzQ29udGV4dE1l
bnVJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NUExRTJFNzI1Q0M3NUE4MDAyNjhDOEUgLyogTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zMTI1
LDExICszMTI5LDExIEBACiAJCUExMjUzOEQ0MTNGOUI2MEEwMDAyNDc1NCAvKiBMYXlvdXRSZXBh
aW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEx
MjBBQ0EwMTNGOTk4MzcwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTI3MDVDMzE2NTZCRDY1MDBD
MkUyN0MgLyogR3JpZFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMTI3MDVDMjE2NTZCRDY1MDBDMkUyN0MgLyogR3JpZFBvc2l0aW9uLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTEyQTEw
NTAxNjY0NDRGRDAwOEZBMzExIC8qIEdyaWRUcmFja1NpemUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMkExMDRFMTY2NDQ0REMwMDhGQTMxMSAvKiBH
cmlkVHJhY2tTaXplLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJQTEyQzU5RUUyMDM1RkM5QjAwMTIyMzZCIC8qIEFwcGxlUGF5RXJyb3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBREZERkQ2MUU3MUQ4
REYwMDhGNUQzNCAvKiBBcHBsZVBheUVycm9yLmggKi87IH07CisJCUExMkM1OUVFMjAzNUZDOUIw
MDEyMjM2QiAvKiBBcHBsZVBheUVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQURGREZENjFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlFcnJv
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUEx
MkM1OUYwMjAzNUZDQUIwMDEyMjM2QiAvKiBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVz
dWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURG
REZEODFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3Vs
dC5oICovOyB9OwotCQlBMTJDNTlGMTIwMzVGQ0JGMDAxMjIzNkIgLyogQXBwbGVQYXlQYXltZW50
TWV0aG9kVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQURGREZEQTFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kVXBk
YXRlLmggKi87IH07Ci0JCUExMkM1OUYyMjAzNUZDRDYwMDEyMjM2QiAvKiBBcHBsZVBheVNoaXBw
aW5nQ29udGFjdFVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUFERkRGREMxRTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5U2hpcHBpbmdDb250
YWN0VXBkYXRlLmggKi87IH07Ci0JCUExMkM1OUYzMjAzNUZDRTIwMDEyMjM2QiAvKiBBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQURGREZERTFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlTaGlwcGlu
Z01ldGhvZFVwZGF0ZS5oICovOyB9OworCQlBMTJDNTlGMTIwMzVGQ0JGMDAxMjIzNkIgLyogQXBw
bGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQURGREZEQTFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlQYXlt
ZW50TWV0aG9kVXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJQTEyQzU5RjIyMDM1RkNENjAwMTIyMzZCIC8qIEFwcGxlUGF5U2hpcHBpbmdD
b250YWN0VXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQURGREZEQzFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RV
cGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQlBMTJDNTlGMzIwMzVGQ0UyMDAxMjIzNkIgLyogQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRG
REUxRTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTJDNTlGOTIw
MzYwQUNCMDAxMjIzNkIgLyogSlNBcHBsZVBheUVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURGREZFMjFFNzFEQ0EwMDA4RjVEMzQgLyogSlNB
cHBsZVBheUVycm9yLmggKi87IH07CiAJCUExMkM1OUZCMjAzNjBCMDAwMDEyMjM2QiAvKiBKU0Fw
cGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBREZERkU0MUU3MURDQTAwMDhGNUQzNCAvKiBKU0Fw
cGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaCAqLzsgfTsKIAkJQTEyQzU5RkMyMDM2
MEIyNzAwMTIyMzZCIC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURGREZFNjFFNzFEQ0EwMDA4
RjVEMzQgLyogSlNBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaCAqLzsgfTsKQEAgLTMyMTMs
OCArMzIxNyw4IEBACiAJCUExQUZFREU3MUY4QkZGNkQwMDg3MDEzRiAvKiBNb2NrUGF5bWVudENv
b3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEExQUZFREU1MUY4QkZGNkQwMDg3MDEzRiAvKiBNb2NrUGF5bWVudENvb3JkaW5hdG9yLmNw
cCAqLzsgfTsKIAkJQTFCNUIyOUUxQUFBODQ2RTAwOEI2MDQyIC8qIE1vY2tDb250ZW50RmlsdGVy
U2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTFCNUIyOUMxQUFBODQ2RTAwOEI2MDQyIC8qIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3Mu
Y3BwICovOyB9OwogCQlBMUI1QjI5RjFBQUE4NDZGMDA4QjYwNDIgLyogTW9ja0NvbnRlbnRGaWx0
ZXJTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTFCNUIyOUQxQUFBODQ2RTAwOEI2MDQyIC8qIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3Mu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBMUJC
ODU5QzIxNTlBRUExMDA2N0UwN0QgLyogQXBwbGVQYXlFcnJvckNvZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQkI4NTk5MjE1OUFFQTEwMDY3RTA3
RCAvKiBBcHBsZVBheUVycm9yQ29kZS5oICovOyB9OwotCQlBMUJCODVBMzIxNTlBRjU3MDA2N0Uw
N0QgLyogQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFCQjg1QTAyMTU5QUY1NzAwNjdFMDdEIC8qIEFwcGxl
UGF5RXJyb3JDb250YWN0RmllbGQuaCAqLzsgfTsKKwkJQTFCQjg1OUMyMTU5QUVBMTAwNjdFMDdE
IC8qIEFwcGxlUGF5RXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMUJCODU5OTIxNTlBRUExMDA2N0UwN0QgLyogQXBwbGVQYXlFcnJvckNv
ZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlB
MUJCODVBMzIxNTlBRjU3MDA2N0UwN0QgLyogQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFCQjg1QTAyMTU5
QUY1NzAwNjdFMDdEIC8qIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMUJCODVBOTIxNTlCMDJDMDA2
N0UwN0QgLyogTW9ja1BheW1lbnRFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTFCQjg1QTYyMTU5QjAyQzAwNjdFMDdEIC8qIE1vY2tQYXltZW50
RXJyb3IuaCAqLzsgfTsKIAkJQTFCQjg1QjIyMTU5QjFBMTAwNjdFMDdEIC8qIEpTQXBwbGVQYXlF
cnJvckNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEExQkI4NUFFMjE1OUIxQTAwMDY3RTA3RCAvKiBKU0FwcGxlUGF5RXJyb3JDb2RlLmggKi87IH07
CiAJCUExQkI4NUIzMjE1OUIxQTEwMDY3RTA3RCAvKiBKU0FwcGxlUGF5RXJyb3JDb250YWN0Rmll
bGQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQkI4
NUFGMjE1OUIxQTAwMDY3RTA3RCAvKiBKU0FwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaCAqLzsg
fTsKQEAgLTMyNDgsNyArMzI1Miw2IEBACiAJCUExREY1QUE2MUY3RjY0QkIwMDU4QTQ3NyAvKiBQ
YXltZW50SGFuZGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTFERjVBQTQxRjdGNjRCQjAwNThBNDc3IC8qIFBheW1lbnRIYW5kbGVyLmggKi87IH07
CiAJCUExREY1QUFEMUY4MDc1RjAwMDU4QTQ3NyAvKiBBcHBsZVBheVJlcXVlc3RCYXNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMURGNUFBQTFGODA3
NUYwMDA1OEE0NzcgLyogQXBwbGVQYXlSZXF1ZXN0QmFzZS5oICovOyB9OwogCQlBMURGNUFCMzFG
ODA3NzUzMDA1OEE0NzcgLyogSlNBcHBsZVBheVJlcXVlc3RCYXNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMURGNUFCMTFGODA3NzUyMDA1OEE0Nzcg
LyogSlNBcHBsZVBheVJlcXVlc3RCYXNlLmggKi87IH07Ci0JCUExREZENTI1MjMzNDU5M0YwMDQy
RkNEQiAvKiBQYXltZW50TWV0aG9kVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMURGRDUyNDIzMzQ1OTNBMDA0MkZDREIgLyogUGF5bWVudE1l
dGhvZFVwZGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUExREZENTI2MjMzNDU5NDgwMDQyRkNEQiAvKiBQYXltZW50U3VtbWFyeUl0ZW1zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMURGRDUyMjIz
MzQ1OTNBMDA0MkZDREIgLyogUGF5bWVudFN1bW1hcnlJdGVtcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExRTA4NjVGMjQ4OUQyQjUwMEU0OTZE
OSAvKiBBcHBsZVBheVNldHVwQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFFMDg2NUMyNDg5RDJCMTAwRTQ5NkQ5IC8qIEFwcGxl
UGF5U2V0dXBDb25maWd1cmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQTFFMDg2NjAyNDg5RDJCQTAwRTQ5NkQ5IC8qIEFwcGxlUGF5U2V0
dXBGZWF0dXJlU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExRTA4NjVFMjQ4OUQyQjEwMEU0OTZEOSAvKiBBcHBsZVBheVNldHVwRmVhdHVyZVN0
YXRlLmggKi87IH07CkBAIC02NjY2LDcgKzY2NjksNiBAQAogCQkxQUQ4RjgxOTExQ0FCOUU5MDBF
OTNFNTQgLyogUGxhdGZvcm1TdHJhdGVnaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBsYXRmb3JtU3RyYXRlZ2llcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxQUQ4RjgxQTExQ0FCOUU5MDBFOTNFNTQgLyogUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtU3RyYXRlZ2llcy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBREE0QTFCMUQyMkYyQzAwMDVBOUExNSAv
KiBQYXltZW50TWVyY2hhbnRTZXNzaW9uQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBQYXltZW50TWVyY2hhbnRTZXNzaW9uQ29jb2EubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFBREZERkQ1MUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBh
eUVycm9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFwcGxlUGF5
RXJyb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQURGREZENjFFNzFEOERG
MDA4RjVEMzQgLyogQXBwbGVQYXlFcnJvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBcHBsZVBheUVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBREZE
RkQ3MUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBheUVycm9yLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBBcHBsZVBheUVycm9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUFERkRGRDgxRTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25S
ZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwbGVQYXlQYXltZW50
QXV0aG9yaXphdGlvblJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE3
NjgsMTIgKzExNzcwLDIwIEBACiAJCTk0RTgzOTUwMURGQjI5QTQwMDdCQzZBNyAvKiBDU1NOYW1l
c3BhY2VSdWxlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NOYW1lc3BhY2VSdWxlLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTRFODM5NTMxREZCMkJBNjAwN0JDNkE3
IC8qIEpTQ1NTTmFtZXNwYWNlUnVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0NTU05hbWVzcGFjZVJ1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5NEU4Mzk1NDFERkIyQkE2MDA3QkM2QTcgLyogSlNDU1NOYW1lc3BhY2VSdWxlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ1NTTmFtZXNwYWNlUnVsZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTAxODNDOTI1RDYzM0Q4MDBENDM0MEYgLyogQXBw
bGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXBwbGVQ
YXlEZXRhaWxzVXBkYXRlQmFzZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1
MDE4M0NCMjVENjMzRDgwMEQ0MzQwRiAvKiBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwQzQ4NDkyNUQ2Nzc0MjAwQUIzRDlD
IC8qIG92ZXJmbG93LXN1cHBvcnQuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSAib3ZlcmZsb3ct
c3VwcG9ydC5qcyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MEM0ODRCMjVENjc3
NEUwMEFCM0Q5QyAvKiBvdmVyZmxvdy1idXR0b24uanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSAi
b3ZlcmZsb3ctYnV0dG9uLmpzIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwQzRD
MDJCRUQ4OTM2RjgxOEUyRjk5IC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR0dyYXBoaWNzRWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5NTIwNzYwMDFGMjY3NUY5MDA3RDJBQUIgLyogQ2FsbFRyYWNl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWxsVHJhY2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTUyMDc2MDExRjI2NzVGOTAwN0QyQUFCIC8qIENhbGxUcmFjZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ2FsbFRyYWNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5NTIwNzYwMjFGMjY3NUY5MDA3RDJBQUIgLyogQ2FsbFRyYWNlclR5cGVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENhbGxUcmFjZXJUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
NTI3RDdBODI1RDVGREUxMDBBNkUxNzYgLyogQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRh
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MjdEN0FBMjVENUZERTEwMEE2RTE3
NiAvKiBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTUyN0Q3QUQyNUQ1RkU2QjAwQTZFMTc2IC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRl
RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FwcGxlUGF5RGV0YWls
c1VwZGF0ZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUyN0Q3QUUyNUQ1
RkU2QjAwQTZFMTc2IC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTNCQ0VBRjI1RDYyODNDMDBBNEEy
QTEgLyogSlNBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk5NTNCQ0VCMTI1RDYyODNDMDBBNEEyQTEgLyogSlNBcHBsZVBheURl
dGFpbHNVcGRhdGVCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk1NkZDNEI4MjVENDlDN0EwMEY3QjNBMiAvKiBBcHBsZVBheUxpbmVJdGVtRGF0YS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZVBheUxpbmVJdGVtRGF0YS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTZGQzRCODI1RDQ5QzdDMDBGN0IzQTIg
LyogSlNBcHBsZVBheUxpbmVJdGVtRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0FwcGxlUGF5TGluZUl0ZW1EYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTU2RkM0QkEyNUQ0OUM3QjAwRjdCM0EyIC8qIEFwcGxlUGF5TGluZUl0ZW1E
YXRhLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBcHBsZVBheUxpbmVJdGVtRGF0YS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjM4NCw5ICsxMjM5NCw3IEBACiAJCUEx
REY1QUIxMUY4MDc3NTIwMDU4QTQ3NyAvKiBKU0FwcGxlUGF5UmVxdWVzdEJhc2UuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBcHBsZVBheVJlcXVlc3RCYXNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExREY1QUI0MUY4MDc4RjMwMDU4QTQ3NyAvKiBBcHBs
ZVBheUNvbnRhY3RGaWVsZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcHBsZVBheUNvbnRhY3RG
aWVsZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExREZENTIyMjMzNDU5M0Ew
MDQyRkNEQiAvKiBQYXltZW50U3VtbWFyeUl0ZW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRT
dW1tYXJ5SXRlbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTFERkQ1MjQyMzM0
NTkzQTAwNDJGQ0RCIC8qIFBheW1lbnRNZXRob2RVcGRhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5
bWVudE1ldGhvZFVwZGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMURGRDUy
NzIzMzQ1OTczMDA0MkZDREIgLyogUGF5bWVudFN1bW1hcnlJdGVtc0NvY29hLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gUGF5bWVudFN1bW1hcnlJdGVtc0NvY29hLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlBMURGRDUyODIzMzQ1OTc0MDA0MkZDREIgLyogUGF5bWVudE1ldGhv
ZFVwZGF0ZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGF5bWVudE1ldGhvZFVwZGF0
ZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUUwODY1QTI0ODlEMkIw
MDBFNDk2RDkgLyogQXBwbGVQYXlTZXR1cEZlYXR1cmVTdGF0ZS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXBwbGVQYXlT
ZXR1cEZlYXR1cmVTdGF0ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExRTA4
NjVDMjQ4OUQyQjEwMEU0OTZEOSAvKiBBcHBsZVBheVNldHVwQ29uZmlndXJhdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBcHBsZVBheVNldHVwQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlBMUUwODY1RDI0ODlEMkIxMDBFNDk2RDkgLyogQXBwbGVQYXlTZXR1cENv
bmZpZ3VyYXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IEFwcGxlUGF5U2V0dXBDb25maWd1cmF0aW9uLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MzMzLDcgKzE4MzQxLDEwIEBACiAJCQkJQTFE
RjVBQjQxRjgwNzhGMzAwNThBNDc3IC8qIEFwcGxlUGF5Q29udGFjdEZpZWxkLmNwcCAqLywKIAkJ
CQlBMURGNUE5MTFGN0VDNDMyMDA1OEE0NzcgLyogQXBwbGVQYXlDb250YWN0RmllbGQuaCAqLywK
IAkJCQlBMURGNUE5MzFGN0VDNDMyMDA1OEE0NzcgLyogQXBwbGVQYXlDb250YWN0RmllbGQuaWRs
ICovLAotCQkJCTFBREZERkQ1MUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBheUVycm9yLmNwcCAq
LywKKwkJCQk5NTAxODNDQjI1RDYzM0Q4MDBENDM0MEYgLyogQXBwbGVQYXlEZXRhaWxzVXBkYXRl
QmFzZS5oICovLAorCQkJCTk1MDE4M0M5MjVENjMzRDgwMEQ0MzQwRiAvKiBBcHBsZVBheURldGFp
bHNVcGRhdGVCYXNlLmlkbCAqLywKKwkJCQk5NTI3RDdBODI1RDVGREUxMDBBNkUxNzYgLyogQXBw
bGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oICovLAorCQkJCTk1MjdEN0FBMjVENUZERTEwMEE2RTE3
NiAvKiBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmlkbCAqLywKIAkJCQkxQURGREZENjFFNzFE
OERGMDA4RjVEMzQgLyogQXBwbGVQYXlFcnJvci5oICovLAogCQkJCTFBREZERkQ3MUU3MUQ4REYw
MDhGNUQzNCAvKiBBcHBsZVBheUVycm9yLmlkbCAqLywKIAkJCQlBMUJCODU5OTIxNTlBRUExMDA2
N0UwN0QgLyogQXBwbGVQYXlFcnJvckNvZGUuaCAqLywKQEAgLTE4NDI3LDcgKzE4NDM4LDYgQEAK
IAkJCQk1QzUzRENDRTI0NDY0NDk5MDBBOTMxMjQgLyogUGF5bWVudEluc3RhbGxtZW50Q29uZmln
dXJhdGlvbldlYkNvcmUuaCAqLywKIAkJCQkxQUU5NkE4NzFEMUEwQ0VCMDBCODY3NjggLyogUGF5
bWVudE1lcmNoYW50U2Vzc2lvbi5oICovLAogCQkJCTFBOEE2NDM5MUQxOUZDNTMwMEQwRTAwRiAv
KiBQYXltZW50TWV0aG9kLmggKi8sCi0JCQkJQTFERkQ1MjQyMzM0NTkzQTAwNDJGQ0RCIC8qIFBh
eW1lbnRNZXRob2RVcGRhdGUuaCAqLywKIAkJCQkxQThBNjQ2NjFEMTlGREZGMDBEMEUwMEYgLyog
UGF5bWVudFJlcXVlc3RWYWxpZGF0b3IuaCAqLywKIAkJCQkxQThBNjQ2NTFEMTlGREZGMDBEMEUw
MEYgLyogUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW0gKi8sCiAJCQkJQTFDMkM1NzUxRkEyODUx
NjAwQkE0NkZBIC8qIFBheW1lbnRTZXNzaW9uLmNwcCAqLywKQEAgLTE4NDQ2LDcgKzE4NDU2LDYg
QEAKIAkJCQkxQThBNjQ2QTFEMTlGRjg3MDBEMEUwMEYgLyogUGF5bWVudENvbnRhY3RDb2NvYS5t
bSAqLywKIAkJCQkxQURBNEExQjFEMjJGMkMwMDA1QTlBMTUgLyogUGF5bWVudE1lcmNoYW50U2Vz
c2lvbkNvY29hLm1tICovLAogCQkJCTFBOEE2NDZCMUQxOUZGODcwMEQwRTAwRiAvKiBQYXltZW50
TWV0aG9kQ29jb2EubW0gKi8sCi0JCQkJQTFERkQ1MjgyMzM0NTk3NDAwNDJGQ0RCIC8qIFBheW1l
bnRNZXRob2RVcGRhdGVDb2NvYS5tbSAqLywKIAkJCQlBMTEzRTAyQTIzMzE4RUJDMDA5QzMzQTAg
LyogUGF5bWVudFNlc3Npb25FcnJvckNvY29hLm1tICovLAogCQkJCUExREZENTI3MjMzNDU5NzMw
MDQyRkNEQiAvKiBQYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0gKi8sCiAJCQkpOwpAQCAtMTg1
NDYsNiArMTg1NTUsMTAgQEAKIAkJCQlBMTk1NkYxQjIzMzFBNjQ2MDA1N0U5RDIgLyogSlNBcHBs
ZVBheUNhbmNlbEV2ZW50LmggKi8sCiAJCQkJQTFERjVBOTgxRjdFQzhDMDAwNThBNDc3IC8qIEpT
QXBwbGVQYXlDb250YWN0RmllbGQuY3BwICovLAogCQkJCUExREY1QTk3MUY3RUM4QkYwMDU4QTQ3
NyAvKiBKU0FwcGxlUGF5Q29udGFjdEZpZWxkLmggKi8sCisJCQkJOTUzQkNFQjEyNUQ2MjgzQzAw
QTRBMkExIC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5jcHAgKi8sCisJCQkJOTUzQkNF
QUYyNUQ2MjgzQzAwQTRBMkExIC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oICovLAor
CQkJCTk1MjdEN0FFMjVENUZFNkIwMEE2RTE3NiAvKiBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURh
dGEuY3BwICovLAorCQkJCTk1MjdEN0FEMjVENUZFNkIwMEE2RTE3NiAvKiBKU0FwcGxlUGF5RGV0
YWlsc1VwZGF0ZURhdGEuaCAqLywKIAkJCQkxQURGREZFMTFFNzFEQ0EwMDA4RjVEMzQgLyogSlNB
cHBsZVBheUVycm9yLmNwcCAqLywKIAkJCQkxQURGREZFMjFFNzFEQ0EwMDA4RjVEMzQgLyogSlNB
cHBsZVBheUVycm9yLmggKi8sCiAJCQkJQTFCQjg1QUQyMTU5QjFBMDAwNjdFMDdEIC8qIEpTQXBw
bGVQYXlFcnJvckNvZGUuY3BwICovLApAQCAtMzExNzYsNiArMzExODksOCBAQAogCQkJCTQ0MjUw
NzA5MjU4MjlBMjcwMEMwOTM2OCAvKiBBcHBIaWdobGlnaHRTdG9yYWdlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBMTEzRTAyRTIzMzFBMTM0MDA5QzMzQTAgLyogQXBwbGVQYXlDYW5jZWxFdmVudC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTFERjVBOTQxRjdFQzQzMjAwNThBNDc3IC8qIEFwcGxlUGF5
Q29udGFjdEZpZWxkLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NTAxODNDRDI1RDYzM0Q5MDBENDM0
MEYgLyogQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTUy
N0Q3QUIyNUQ1RkRFMjAwQTZFMTc2IC8qIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUExMkM1OUVFMjAzNUZDOUIwMDEyMjM2QiAvKiBBcHBsZVBheUVycm9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUJCODU5QzIxNTlBRUExMDA2N0UwN0QgLyogQXBwbGVQ
YXlFcnJvckNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUExQkI4NUEzMjE1OUFGNTcwMDY3RTA3
RCAvKiBBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmggaW4gSGVhZGVycyAqLywKQEAgLTMyNzQz
LDYgKzMyNzU4LDggQEAKIAkJCQk3MTAyNUVERTFGOTlGMUVDMDA0QTI1MEMgLyogSlNBbmltYXRp
b25UaW1lbGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE5NTZGMUMyMzMxQTY3NzAwNTdFOUQy
IC8qIEpTQXBwbGVQYXlDYW5jZWxFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFERjVBOTkx
RjdFQzhDMDAwNThBNDc3IC8qIEpTQXBwbGVQYXlDb250YWN0RmllbGQuaCBpbiBIZWFkZXJzICov
LAorCQkJCTk1M0JDRUIyMjVENjI4M0QwMEE0QTJBMSAvKiBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0
ZUJhc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1MjdEN0FGMjVENUZFNkMwMEE2RTE3NiAvKiBK
U0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMkM1OUY5
MjAzNjBBQ0IwMDEyMjM2QiAvKiBKU0FwcGxlUGF5RXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUExQkI4NUIyMjE1OUIxQTEwMDY3RTA3RCAvKiBKU0FwcGxlUGF5RXJyb3JDb2RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBMUJCODVCMzIxNTlCMUExMDA2N0UwN0QgLyogSlNBcHBsZVBheUVycm9y
Q29udGFjdEZpZWxkLmggaW4gSGVhZGVycyAqLywKQEAgLTM0MDc4LDcgKzM0MDk1LDYgQEAKIAkJ
CQkxQThBNjQzQzFEMTlGQzUzMDBEMEUwMEYgLyogUGF5bWVudE1ldGhvZC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTE2NEEyNDcyMTM0QkM3MTAwNTA5MTU2IC8qIFBheW1lbnRNZXRob2RDaGFuZ2VF
dmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFGNzZCMTkxRjQ0QzM5MDAwMTRDMzE4IC8qIFBh
eW1lbnRNZXRob2REYXRhLmggaW4gSGVhZGVycyAqLywKLQkJCQlBMURGRDUyNTIzMzQ1OTNGMDA0
MkZDREIgLyogUGF5bWVudE1ldGhvZFVwZGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFGNzZC
MkIxRjQ0QzRFRjAwMTRDMzE4IC8qIFBheW1lbnRPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBMUY3NkIxMzFGNDRDMjQ1MDAxNEMzMTggLyogUGF5bWVudFJlcXVlc3QuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUExRjYwMDQ0MUY0NzU3QTkwMDc3RTgzRiAvKiBQYXltZW50UmVxdWVzdFVwZGF0
ZUV2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5j
cHAKaW5kZXggMmIzOWEwZDY1YmQ4Li5lYmVjNTJmOWI1ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuY3BwCkBAIC0zNjQsOSArMzY0LDkgQEAgY2xhc3MgRW1wdHlQYXltZW50
Q29vcmRpbmF0b3JDbGllbnQgZmluYWwgOiBwdWJsaWMgUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50
IHsKICAgICB2b2lkIG9wZW5QYXltZW50U2V0dXAoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmlu
YWwgeyBjYWxsT25NYWluVGhyZWFkKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeyBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7IH0pOyB9
CiAgICAgYm9vbCBzaG93UGF5bWVudFVJKGNvbnN0IFVSTCYsIGNvbnN0IFZlY3RvcjxVUkw+Jiwg
Y29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmKSBmaW5hbCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZvaWQgY29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24oY29uc3QgUGF5bWVudE1l
cmNoYW50U2Vzc2lvbiYpIGZpbmFsIHsgfQotICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhv
ZFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJikgZmluYWwgeyB9Ci0g
ICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGlu
Z0NvbnRhY3RVcGRhdGU+JiYpIGZpbmFsIHsgfQotICAgIHZvaWQgY29tcGxldGVQYXltZW50TWV0
aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFBheW1lbnRNZXRob2RVcGRhdGU+JiYpIGZpbmFsIHsgfQor
ICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKSBmaW5hbCB7IH0KKyAgICB2b2lkIGNvbXBsZXRlU2hp
cHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBk
YXRlPiYmKSBmaW5hbCB7IH0KKyAgICB2b2lkIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlv
bihPcHRpb25hbDxBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+JiYpIGZpbmFsIHsgfQogICAg
IHZvaWQgY29tcGxldGVQYXltZW50U2Vzc2lvbihPcHRpb25hbDxQYXltZW50QXV0aG9yaXphdGlv
blJlc3VsdD4mJikgZmluYWwgeyB9CiAgICAgdm9pZCBjYW5jZWxQYXltZW50U2Vzc2lvbigpIGZp
bmFsIHsgfQogICAgIHZvaWQgYWJvcnRQYXltZW50U2Vzc2lvbigpIGZpbmFsIHsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5jcHAKaW5kZXgg
MTZjMWQ5Njk3MjEwLi4yMjJiNzgxZGEwM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcApAQCAtMjgsMTQgKzI4LDE2IEBACiAKICNp
ZiBFTkFCTEUoQVBQTEVfUEFZKQogCisjaW5jbHVkZSAiQXBwbGVQYXlQYXltZW50TWV0aG9kVXBk
YXRlLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKKyNpbmNs
dWRlICJBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oIgorI2luY2x1ZGUgIkFwcGxlUGF5
U2hpcHBpbmdNZXRob2RVcGRhdGUuaCIKICNpbmNsdWRlICJNb2NrQXBwbGVQYXlTZXR1cEZlYXR1
cmUuaCIKICNpbmNsdWRlICJNb2NrUGF5bWVudC5oIgogI2luY2x1ZGUgIk1vY2tQYXltZW50Q29u
dGFjdC5oIgogI2luY2x1ZGUgIk1vY2tQYXltZW50TWV0aG9kLmgiCiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlBheW1lbnRDb29yZGluYXRvci5oIgotI2luY2x1ZGUgIlBheW1lbnRNZXRo
b2RVcGRhdGUuaCIKICNpbmNsdWRlICJQYXltZW50U2Vzc2lvbkVycm9yLmgiCiAjaW5jbHVkZSA8
d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KQEAgLTk2
LDE4ICs5OCwxMSBAQCBzdGF0aWMgdm9pZCBkaXNwYXRjaElmU2hvd2luZyhGdW5jdGlvbjx2b2lk
KCk+JiYgZnVuY3Rpb24pCiAgICAgfSk7CiB9CiAKLXN0YXRpYyBWZWN0b3I8QXBwbGVQYXlTaGlw
cGluZ01ldGhvZD4gY29udmVydChjb25zdCBWZWN0b3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3Q6OlNoaXBwaW5nTWV0aG9kPiYgc2hpcHBpbmdNZXRob2RzKQotewotICAgIHJldHVybiBX
VEY6Om1hcChzaGlwcGluZ01ldGhvZHMsIFtdIChhdXRvJiBzaGlwcGluZ01ldGhvZCkgewotICAg
ICAgICByZXR1cm4gQXBwbGVQYXlTaGlwcGluZ01ldGhvZCB7IHNoaXBwaW5nTWV0aG9kLmxhYmVs
LCBzaGlwcGluZ01ldGhvZC5kZXRhaWwsIHNoaXBwaW5nTWV0aG9kLmFtb3VudCwgc2hpcHBpbmdN
ZXRob2QuaWRlbnRpZmllciB9OwotICAgIH0pOwotfQotCiBib29sIE1vY2tQYXltZW50Q29vcmRp
bmF0b3I6OnNob3dQYXltZW50VUkoY29uc3QgVVJMJiwgY29uc3QgVmVjdG9yPFVSTD4mLCBjb25z
dCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBpZiAocmVx
dWVzdC5zaGlwcGluZ0NvbnRhY3QoKS5wa0NvbnRhY3QoKSkKICAgICAgICAgbV9zaGlwcGluZ0Fk
ZHJlc3MgPSByZXF1ZXN0LnNoaXBwaW5nQ29udGFjdCgpLnRvQXBwbGVQYXlQYXltZW50Q29udGFj
dChyZXF1ZXN0LnZlcnNpb24oKSk7Ci0gICAgbV9zaGlwcGluZ01ldGhvZHMgPSBjb252ZXJ0KHJl
cXVlc3Quc2hpcHBpbmdNZXRob2RzKCkpOworICAgIG1fc2hpcHBpbmdNZXRob2RzID0gcmVxdWVz
dC5zaGlwcGluZ01ldGhvZHMoKTsKICAgICBtX3JlcXVpcmVkQmlsbGluZ0NvbnRhY3RGaWVsZHMg
PSByZXF1ZXN0LnJlcXVpcmVkQmlsbGluZ0NvbnRhY3RGaWVsZHMoKTsKICAgICBtX3JlcXVpcmVk
U2hpcHBpbmdDb250YWN0RmllbGRzID0gcmVxdWVzdC5yZXF1aXJlZFNoaXBwaW5nQ29udGFjdEZp
ZWxkcygpOwogI2lmIEVOQUJMRShBUFBMRV9QQVlfSU5TVEFMTE1FTlRTKQpAQCAtMTI5LDM4ICsx
MjQsNDkgQEAgdm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZU1lcmNoYW50VmFs
aWRhdGlvbihjb25zdCBQYXltZW50TWVyY2hhbnRTZXMKICAgICB9KTsKIH0KIAotdm9pZCBNb2Nr
UGF5bWVudENvb3JkaW5hdG9yOjp1cGRhdGVUb3RhbEFuZExpbmVJdGVtcyhjb25zdCBBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXMmIHRvdGFsQW5kTGluZUl0
ZW1zKQordm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nTWV0aG9k
U2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYgc2hpcHBp
bmdNZXRob2RVcGRhdGUpCiB7Ci0gICAgbV90b3RhbCA9IHRvdGFsQW5kTGluZUl0ZW1zLnRvdGFs
OwotICAgIG1fbGluZUl0ZW1zID0gdG90YWxBbmRMaW5lSXRlbXMubGluZUl0ZW1zOworICAgIGlm
ICghc2hpcHBpbmdNZXRob2RVcGRhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdG90YWwg
PSBXVEZNb3ZlKHNoaXBwaW5nTWV0aG9kVXBkYXRlLT5uZXdUb3RhbCk7CisgICAgbV9saW5lSXRl
bXMgPSBXVEZNb3ZlKHNoaXBwaW5nTWV0aG9kVXBkYXRlLT5uZXdMaW5lSXRlbXMpOwogfQogCi12
b2lkIE1vY2tQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rp
b24oT3B0aW9uYWw8U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYgc2hpcHBpbmdNZXRob2RVcGRhdGUp
CitzdGF0aWMgVmVjdG9yPE1vY2tQYXltZW50RXJyb3I+IGNvbnZlcnQoVmVjdG9yPFJlZlB0cjxB
cHBsZVBheUVycm9yPj4mJiBlcnJvcnMpCiB7Ci0gICAgaWYgKHNoaXBwaW5nTWV0aG9kVXBkYXRl
KQotICAgICAgICB1cGRhdGVUb3RhbEFuZExpbmVJdGVtcyhzaGlwcGluZ01ldGhvZFVwZGF0ZS0+
bmV3VG90YWxBbmRMaW5lSXRlbXMpOworICAgIFZlY3RvcjxNb2NrUGF5bWVudEVycm9yPiByZXN1
bHQ7CisgICAgZm9yIChhdXRvJiBlcnJvciA6IGVycm9ycykgeworICAgICAgICBpZiAoZXJyb3Ip
CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHsgZXJyb3ItPmNvZGUoKSwgZXJyb3ItPm1lc3Nh
Z2UoKSwgZXJyb3ItPmNvbnRhY3RGaWVsZCgpIH0pOworICAgIH0KKyAgICByZXR1cm4gcmVzdWx0
OwogfQogCi12b2lkIE1vY2tQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdDb250
YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJiBzaGlwcGluZ0Nv
bnRhY3RVcGRhdGUpCit2b2lkIE1vY2tQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBp
bmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRl
PiYmIHNoaXBwaW5nQ29udGFjdFVwZGF0ZSkKIHsKICAgICBpZiAoIXNoaXBwaW5nQ29udGFjdFVw
ZGF0ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9zaGlwcGluZ01ldGhvZHMgPSBjb252ZXJ0
KHNoaXBwaW5nQ29udGFjdFVwZGF0ZS0+bmV3U2hpcHBpbmdNZXRob2RzKTsKLSAgICB1cGRhdGVU
b3RhbEFuZExpbmVJdGVtcyhzaGlwcGluZ0NvbnRhY3RVcGRhdGUtPm5ld1RvdGFsQW5kTGluZUl0
ZW1zKTsKLSAgICBtX2Vycm9ycyA9IFdURk1vdmUoc2hpcHBpbmdDb250YWN0VXBkYXRlLT5lcnJv
cnMpOworICAgIG1fdG90YWwgPSBXVEZNb3ZlKHNoaXBwaW5nQ29udGFjdFVwZGF0ZS0+bmV3VG90
YWwpOworICAgIG1fbGluZUl0ZW1zID0gV1RGTW92ZShzaGlwcGluZ0NvbnRhY3RVcGRhdGUtPm5l
d0xpbmVJdGVtcyk7CisgICAgbV9lcnJvcnMgPSBjb252ZXJ0KFdURk1vdmUoc2hpcHBpbmdDb250
YWN0VXBkYXRlLT5lcnJvcnMpKTsKKyAgICBtX3NoaXBwaW5nTWV0aG9kcyA9IFdURk1vdmUoc2hp
cHBpbmdDb250YWN0VXBkYXRlLT5uZXdTaGlwcGluZ01ldGhvZHMpOwogfQogCi12b2lkIE1vY2tQ
YXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25h
bDxQYXltZW50TWV0aG9kVXBkYXRlPiYmIHBheW1lbnRNZXRob2RVcGRhdGUpCit2b2lkIE1vY2tQ
YXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25h
bDxBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+JiYgcGF5bWVudE1ldGhvZFVwZGF0ZSkKIHsK
LSAgICBpZiAocGF5bWVudE1ldGhvZFVwZGF0ZSkKLSAgICAgICAgdXBkYXRlVG90YWxBbmRMaW5l
SXRlbXMocGF5bWVudE1ldGhvZFVwZGF0ZS0+dG90YWxBbmRMaW5lSXRlbXMoKSk7CisgICAgaWYg
KCFwYXltZW50TWV0aG9kVXBkYXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3RvdGFsID0g
V1RGTW92ZShwYXltZW50TWV0aG9kVXBkYXRlLT5uZXdUb3RhbCk7CisgICAgbV9saW5lSXRlbXMg
PSBXVEZNb3ZlKHBheW1lbnRNZXRob2RVcGRhdGUtPm5ld0xpbmVJdGVtcyk7CiB9CiAKIHZvaWQg
TW9ja1BheW1lbnRDb29yZGluYXRvcjo6Y2hhbmdlU2hpcHBpbmdPcHRpb24oU3RyaW5nJiYgc2hp
cHBpbmdPcHRpb24pCiB7CiAgICAgZGlzcGF0Y2hJZlNob3dpbmcoW3BhZ2UgPSAmbV9wYWdlLCBz
aGlwcGluZ09wdGlvbiA9IFdURk1vdmUoc2hpcHBpbmdPcHRpb24pXSgpIG11dGFibGUgewotICAg
ICAgICBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Qgc2hpcHBp
bmdNZXRob2Q7CisgICAgICAgIEFwcGxlUGF5U2hpcHBpbmdNZXRob2Qgc2hpcHBpbmdNZXRob2Q7
CiAgICAgICAgIHNoaXBwaW5nTWV0aG9kLmlkZW50aWZpZXIgPSBXVEZNb3ZlKHNoaXBwaW5nT3B0
aW9uKTsKICAgICAgICAgcGFnZS0+cGF5bWVudENvb3JkaW5hdG9yKCkuZGlkU2VsZWN0U2hpcHBp
bmdNZXRob2Qoc2hpcHBpbmdNZXRob2QpOwogICAgIH0pOwpAQCAtMTk0LDcgKzIwMCw3IEBAIHZv
aWQgTW9ja1BheW1lbnRDb29yZGluYXRvcjo6Y2FuY2VsUGF5bWVudCgpCiB2b2lkIE1vY2tQYXlt
ZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudFNlc3Npb24oT3B0aW9uYWw8UGF5bWVudEF1
dGhvcml6YXRpb25SZXN1bHQ+JiYgcmVzdWx0KQogewogICAgIGF1dG8gaXNGaW5hbFN0YXRlID0g
aXNGaW5hbFN0YXRlUmVzdWx0KHJlc3VsdCk7Ci0gICAgbV9lcnJvcnMgPSBXVEZNb3ZlKHJlc3Vs
dC0+ZXJyb3JzKTsKKyAgICBtX2Vycm9ycyA9IGNvbnZlcnQoV1RGTW92ZShyZXN1bHQtPmVycm9y
cykpOwogCiAgICAgaWYgKCFpc0ZpbmFsU3RhdGUpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5oIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmgKaW5kZXggNDM0YWU1
NjUwMjI5Li5iN2RiMDkwNjJkNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
TW9ja1BheW1lbnRDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9j
a1BheW1lbnRDb29yZGluYXRvci5oCkBAIC04Miw5ICs4Miw5IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBvcGVuUGF5bWVudFNldHVwKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogICAgIGJvb2wgc2hvd1BheW1lbnRVSShj
b25zdCBVUkwmLCBjb25zdCBWZWN0b3I8VVJMPiYsIGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0JikgZmluYWw7CiAgICAgdm9pZCBjb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihj
b25zdCBQYXltZW50TWVyY2hhbnRTZXNzaW9uJikgZmluYWw7Ci0gICAgdm9pZCBjb21wbGV0ZVNo
aXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKSBm
aW5hbDsKLSAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFs
PFNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJikgZmluYWw7Ci0gICAgdm9pZCBjb21wbGV0ZVBheW1l
bnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikgZmluYWw7
CisgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxl
UGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYpIGZpbmFsOworICAgIHZvaWQgY29tcGxldGVTaGlw
cGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRh
dGU+JiYpIGZpbmFsOworICAgIHZvaWQgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9w
dGlvbmFsPEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikgZmluYWw7CiAgICAgdm9pZCBj
b21wbGV0ZVBheW1lbnRTZXNzaW9uKE9wdGlvbmFsPFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0
PiYmKSBmaW5hbDsKICAgICB2b2lkIGFib3J0UGF5bWVudFNlc3Npb24oKSBmaW5hbDsKICAgICB2
b2lkIGNhbmNlbFBheW1lbnRTZXNzaW9uKCkgZmluYWw7CkBAIC05Nyw4ICs5Nyw2IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBnZXRTZXR1cEZlYXR1cmVzKGNvbnN0IEFwcGxlUGF5U2V0dXBDb25maWd1
cmF0aW9uJiwgY29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8UmVmPEFw
cGxlUGF5U2V0dXBGZWF0dXJlPj4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgYmVnaW5BcHBsZVBh
eVNldHVwKGNvbnN0IEFwcGxlUGF5U2V0dXBDb25maWd1cmF0aW9uJiwgY29uc3QgVVJMJiwgVmVj
dG9yPFJlZlB0cjxBcHBsZVBheVNldHVwRmVhdHVyZT4+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpIGZpbmFsOwogCi0gICAgdm9pZCB1cGRhdGVUb3RhbEFuZExpbmVJdGVtcyhj
b25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXMmKTsK
LQogICAgIFBhZ2UmIG1fcGFnZTsKICAgICBib29sIG1fY2FuTWFrZVBheW1lbnRzIHsgdHJ1ZSB9
OwogICAgIGJvb2wgbV9jYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZCB7IHRydWUgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRFcnJvci5oIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudEVycm9yLmgKaW5kZXggY2RlMzhlZjUwMWM2
Li41YmMxY2ExMTk2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1Bh
eW1lbnRFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRFcnJv
ci5oCkBAIC0yNywxMSArMjcsMTYgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKLSNpbmNs
dWRlICJBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oIgorI2luY2x1ZGUgIkFwcGxlUGF5
RXJyb3JDb2RlLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIE1vY2tQYXltZW50RXJyb3IgPSBQYXltZW50RXJy
b3I7CitzdHJ1Y3QgTW9ja1BheW1lbnRFcnJvciB7CisgICAgQXBwbGVQYXlFcnJvckNvZGUgY29k
ZTsKKyAgICBTdHJpbmcgbWVzc2FnZTsKKyAgICBPcHRpb25hbDxBcHBsZVBheUVycm9yQ29udGFj
dEZpZWxkPiBjb250YWN0RmllbGQ7Cit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggMTFjMTJkZThkZjdkLi4wYWJjM2M0OTgzZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NjcgQEAKKzIwMjEtMDItMTYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisg
ICAgICAgIFtQYXltZW50IFJlcXVlc3RdIGFkZCBhbiBgb2JqZWN0IGRhdGFgIHRvIGBQYXltZW50
RGV0YWlsc0Jhc2VgIHNvIHRoYXQgZGF0YSBzcGVjaWZpYyB0byBBcHBsZSBQYXkgY2FuIGJlIHBy
b3ZpZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjIwMDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcyMzE5OTQ2PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxhdGZvcm0vY29jb2EvUGF5bWVu
dEF1dGhvcml6YXRpb25QcmVzZW50ZXIuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9jb2NvYS9QYXlt
ZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5tbToKKyAgICAgICAgKFdlYktpdDo6dG9QS1BheW1l
bnRFcnJvckNvZGUpOgorICAgICAgICAoV2ViS2l0Ojp0b05TRXJyb3IpOgorICAgICAgICAoV2Vi
S2l0Ojp0b05TRXJyb3JzKToKKyAgICAgICAgKFdlYktpdDo6dG9QS1NoaXBwaW5nTWV0aG9kcyk6
CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyOjpjb21wbGV0
ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50QXV0aG9y
aXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24pOgorICAg
ICAgICAoV2ViS2l0OjpQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVTaGlw
cGluZ01ldGhvZFNlbGVjdGlvbik6CisgICAgICAgICogUGxhdGZvcm0vY29jb2EvV0tQYXltZW50
QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tOgorICAgICAgICAodG9TaGlwcGluZ01ldGhvZCk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogU2hhcmVkL0Fw
cGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFNoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAq
IFNoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5Ojpjb21wbGV0ZVNoaXBwaW5nTWV0
aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHk6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwcmVzZW50
ZXJEaWRTZWxlY3RTaGlwcGluZ01ldGhvZCk6CisgICAgICAgICogU2hhcmVkL0FwcGxlUGF5L2Nv
Y29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EuaDoKKyAgICAgICAgKiBTaGFyZWQv
QXBwbGVQYXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6dG9QS1NoaXBwaW5nTWV0aG9kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtUGF5bWVudFJlcXVlc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1Db21wbGV0ZVNoaXBw
aW5nTWV0aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5h
dG9yUHJveHk6OnBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24pOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1Db21wbGV0
ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpmaW5pc2hDcmVhdGlu
Zyk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgor
ICAgICAgICAqIFNoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbToKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJl
c3VsdD46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3Q+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVy
PFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+Pjo6ZW5jb2RlKTogQWRkZWQuCisgICAgICAg
IChJUEM6OkFyZ3VtZW50Q29kZXI8VmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4+OjpkZWNv
ZGUpOiBBZGRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50
RXJyb3I+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdl
YkNvcmU6OlBheW1lbnRFcnJvcj46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT46OmVuY29kZSk6IERlbGV0
ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVw
ZGF0ZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QXBw
bGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPjo6ZW5jb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxBcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExp
bmVJdGVtcz46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zPjo6ZGVjb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTaGlwcGlu
Z0NvbnRhY3RVcGRhdGU+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT46OmRlY29kZSk6IERlbGV0ZWQu
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRh
dGU+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNv
cmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nTWV0
aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yOjpj
b21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
eW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhv
ZCk6CisgICAgICAgIFVzZSBgQXBwbGVQYXkqVXBkYXRlYCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5n
IGl0cyBzdHJ1Y3R1cmUgaW4gYW5vdGhlciBvYmplY3QgKGBBcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdDo6KlVwZGF0ZWApLgorICAgICAgICBVc2UgYEFwcGxlUGF5U2hpcHBpbmdNZXRob2Rg
IGluc3RlYWQgb2YgZHVwbGljYXRpbmcgaXRzIHN0cnVjdHVyZSBpbiBhbm90aGVyIG9iamVjdCAo
YEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZGApLgorICAgICAg
ICBVc2UgYEFwcGxlUGF5RXJyb3IqYCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0cyBzdHJ1Y3R1
cmUgaW4gYW5vdGhlciBvYmplY3QgKGBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6UGF5
bWVudEVycm9yOjoqYCkuCisKIDIwMjEtMDItMTUgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBw
bGUuY29tPgogCiAgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIGFkZCBhbiBgb2JqZWN0IGRhdGFg
IHRvIGBQYXltZW50SXRlbWAgc28gdGhhdCBkYXRhIHNwZWNpZmljIHRvIEFwcGxlIFBheSBjYW4g
YmUgcHJvdmlkZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvUGF5
bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29j
b2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIuaAppbmRleCBmYzc2NGExMDBlNTIuLjg2
MWM4NThkYWU2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9QYXlt
ZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
Y29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIuaApAQCAtNDEsOCArNDEsMTEgQEAg
Y2xhc3MgUGF5bWVudDsKIGNsYXNzIFBheW1lbnRDb250YWN0OwogY2xhc3MgUGF5bWVudE1lcmNo
YW50U2Vzc2lvbjsKIGNsYXNzIFBheW1lbnRNZXRob2Q7Ci1jbGFzcyBQYXltZW50TWV0aG9kVXBk
YXRlOwogY2xhc3MgUGF5bWVudFNlc3Npb25FcnJvcjsKK3N0cnVjdCBBcHBsZVBheVBheW1lbnRN
ZXRob2RVcGRhdGU7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU7CitzdHJ1
Y3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZDsKK3N0cnVjdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9k
VXBkYXRlOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU4LDcgKzYxLDcgQEAgcHVibGlj
OgogICAgICAgICB2aXJ0dWFsIHZvaWQgcHJlc2VudGVyRGlkRmluaXNoKFBheW1lbnRBdXRob3Jp
emF0aW9uUHJlc2VudGVyJiwgV2ViQ29yZTo6UGF5bWVudFNlc3Npb25FcnJvciYmKSA9IDA7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBwcmVzZW50ZXJEaWRTZWxlY3RQYXltZW50TWV0aG9kKFBheW1l
bnRBdXRob3JpemF0aW9uUHJlc2VudGVyJiwgY29uc3QgV2ViQ29yZTo6UGF5bWVudE1ldGhvZCYp
ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHByZXNlbnRlckRpZFNlbGVjdFNoaXBwaW5nQ29u
dGFjdChQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlciYsIGNvbnN0IFdlYkNvcmU6OlBheW1l
bnRDb250YWN0JikgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHJlc2VudGVyRGlkU2VsZWN0
U2hpcHBpbmdNZXRob2QoUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXImLCBjb25zdCBXZWJD
b3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKSA9IDA7
CisgICAgICAgIHZpcnR1YWwgdm9pZCBwcmVzZW50ZXJEaWRTZWxlY3RTaGlwcGluZ01ldGhvZChQ
YXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlciYsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2hp
cHBpbmdNZXRob2QmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwcmVzZW50ZXJXaWxsVmFs
aWRhdGVNZXJjaGFudChQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlciYsIGNvbnN0IFVSTCYp
ID0gMDsKICAgICB9OwogCkBAIC02NywxMCArNzAsMTAgQEAgcHVibGljOgogICAgIENsaWVudCYg
Y2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAogICAgIHZvaWQgY29tcGxldGVNZXJjaGFu
dFZhbGlkYXRpb24oY29uc3QgV2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vzc2lvbiYpOwotICAg
IHZvaWQgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNv
cmU6OlBheW1lbnRNZXRob2RVcGRhdGU+Jik7CisgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRo
b2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRl
PiYmKTsKICAgICB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24oY29uc3QgT3B0aW9uYWw8V2Vi
Q29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+Jik7Ci0gICAgdm9pZCBjb21wbGV0ZVNo
aXBwaW5nQ29udGFjdFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ0Nv
bnRhY3RVcGRhdGU+Jik7Ci0gICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9u
KGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPiYpOworICAgIHZv
aWQgY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBw
bGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYpOworICAgIHZvaWQgY29tcGxldGVTaGlwcGlu
Z01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9k
VXBkYXRlPiYmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaXNtaXNzKCkgPSAwOwogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29h
L1BheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyLm1tIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5tbQppbmRleCBhZTM3MDkzMTVi
YjcuLmEwNWJjNzJkNTNkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2Nv
YS9QYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL2NvY29hL1BheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyLm1tCkBAIC0zMCwxNCAr
MzAsMjQgQEAKIAogI2ltcG9ydCAiV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLmgiCiAj
aW1wb3J0ICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29hLmgiCisjaW1wb3J0IDxXZWJD
b3JlL0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQXBwbGVQ
YXlFcnJvci5oPgorI2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBheUVycm9yQ29kZS5oPgorI2ltcG9y
dCA8V2ViQ29yZS9BcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBh
eVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBheVNoaXBw
aW5nTWV0aG9kVXBkYXRlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BheW1lbnRBdXRob3JpemF0aW9u
U3RhdHVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BheW1lbnRNZXJjaGFudFNlc3Npb24uaD4KLSNp
bXBvcnQgPFdlYkNvcmUvUGF5bWVudE1ldGhvZFVwZGF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Q
YXltZW50U3VtbWFyeUl0ZW1zLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4K
IAogI2ltcG9ydCA8cGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5oPgogCisjaWYgVVNFKEFQUExF
X0lOVEVSTkFMX1NESykKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvUGF5bWVudEF1dGhvcml6
YXRpb25QcmVzZW50ZXJBZGRpdGlvbnMubW0+CisjZW5kaWYKKwogLy8gRklYTUU6IFN0b3Agc29m
dCBsaW5raW5nIENvbnRhY3RzIG9uY2UgdGhlIGRlcGVuZGVuY3kgY3ljbGUgaXMgcmVtb3ZlZCBv
biBtYWNPUyAoPHJkYXI6Ly9wcm9ibGVtLzcwODg3OTM0PiksCiAvLyBvciB3aGVuIENvbnRhY3Rz
IGNhbiBiZSB1cHdhcmQgbGlua2VkICg8cmRhcjovL3Byb2JsZW0vMzYxMzUxMzc+KS4KIFNPRlRf
TElOS19GUkFNRVdPUksoQ29udGFjdHMpOwpAQCAtNzEsODYgKzgxLDg2IEBAIHN0YXRpYyBQS1Bh
eW1lbnRBdXRob3JpemF0aW9uU3RhdHVzIHRvUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyhX
ZWJDb3JlOjpQYXltCiAgICAgfQogfQogCi1zdGF0aWMgUEtQYXltZW50RXJyb3JDb2RlIHRvUEtQ
YXltZW50RXJyb3JDb2RlKFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZSBjb2RlKQorc3RhdGlj
IFBLUGF5bWVudEVycm9yQ29kZSB0b1BLUGF5bWVudEVycm9yQ29kZShXZWJDb3JlOjpBcHBsZVBh
eUVycm9yQ29kZSBjb2RlKQogewogICAgIHN3aXRjaCAoY29kZSkgewotICAgIGNhc2UgV2ViQ29y
ZTo6UGF5bWVudEVycm9yOjpDb2RlOjpVbmtub3duOgorICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQ
YXlFcnJvckNvZGU6OlVua25vd246CiAgICAgICAgIHJldHVybiBQS1BheW1lbnRVbmtub3duRXJy
b3I7Ci0gICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU6OlNoaXBwaW5nQ29udGFj
dEludmFsaWQ6CisgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29kZTo6U2hpcHBpbmdD
b250YWN0SW52YWxpZDoKICAgICAgICAgcmV0dXJuIFBLUGF5bWVudFNoaXBwaW5nQ29udGFjdElu
dmFsaWRFcnJvcjsKLSAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6QmlsbGlu
Z0NvbnRhY3RJbnZhbGlkOgorICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvZGU6OkJp
bGxpbmdDb250YWN0SW52YWxpZDoKICAgICAgICAgcmV0dXJuIFBLUGF5bWVudEJpbGxpbmdDb250
YWN0SW52YWxpZEVycm9yOwotICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb2RlOjpB
ZGRyZXNzVW5zZXJ2aWNlYWJsZToKKyAgICBjYXNlIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb2Rl
OjpBZGRyZXNzVW5zZXJ2aWNlYWJsZToKICAgICAgICAgcmV0dXJuIFBLUGF5bWVudFNoaXBwaW5n
QWRkcmVzc1Vuc2VydmljZWFibGVFcnJvcjsKICAgICB9CiB9CiAKLXN0YXRpYyBOU0Vycm9yICp0
b05TRXJyb3IoY29uc3QgV2ViQ29yZTo6UGF5bWVudEVycm9yJiBlcnJvcikKK3N0YXRpYyBOU0Vy
cm9yICp0b05TRXJyb3IoY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlFcnJvciYgZXJyb3IpCiB7CiAg
ICAgYXV0byB1c2VySW5mbyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBp
bml0XSk7Ci0gICAgW3VzZXJJbmZvIHNldE9iamVjdDplcnJvci5tZXNzYWdlIGZvcktleTpOU0xv
Y2FsaXplZERlc2NyaXB0aW9uS2V5XTsKKyAgICBbdXNlckluZm8gc2V0T2JqZWN0OmVycm9yLm1l
c3NhZ2UoKSBmb3JLZXk6TlNMb2NhbGl6ZWREZXNjcmlwdGlvbktleV07CiAKLSAgICBpZiAoZXJy
b3IuY29udGFjdEZpZWxkKSB7CisgICAgaWYgKGF1dG8gY29udGFjdEZpZWxkID0gZXJyb3IuY29u
dGFjdEZpZWxkKCkpIHsKICAgICAgICAgTlNTdHJpbmcgKnBrQ29udGFjdEZpZWxkID0gbmlsOwog
ICAgICAgICBOU1N0cmluZyAqcG9zdGFsQWRkcmVzc0tleSA9IG5pbDsKIAotICAgICAgICBzd2l0
Y2ggKCplcnJvci5jb250YWN0RmllbGQpIHsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50
RXJyb3I6OkNvbnRhY3RGaWVsZDo6UGhvbmVOdW1iZXI6CisgICAgICAgIHN3aXRjaCAoKmNvbnRh
Y3RGaWVsZCkgeworICAgICAgICBjYXNlIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0Rmll
bGQ6OlBob25lTnVtYmVyOgogICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9Q
YXNzS2l0X1BLQ29udGFjdEZpZWxkUGhvbmVOdW1iZXIoKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0
RmllbGQ6OkVtYWlsQWRkcmVzczoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9y
Q29udGFjdEZpZWxkOjpFbWFpbEFkZHJlc3M6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9
IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRFbWFpbEFkZHJlc3MoKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVy
cm9yOjpDb250YWN0RmllbGQ6Ok5hbWU6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlF
cnJvckNvbnRhY3RGaWVsZDo6TmFtZToKICAgICAgICAgICAgIHBrQ29udGFjdEZpZWxkID0gUEFM
OjpnZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVsZE5hbWUoKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0
RmllbGQ6OlBob25ldGljTmFtZToKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9y
Q29udGFjdEZpZWxkOjpQaG9uZXRpY05hbWU6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9
IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQaG9uZXRpY05hbWUoKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVy
cm9yOjpDb250YWN0RmllbGQ6OlBvc3RhbEFkZHJlc3M6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6
QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UG9zdGFsQWRkcmVzczoKICAgICAgICAgICAgIHBr
Q29udGFjdEZpZWxkID0gUEFMOjpnZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBvc3RhbEFkZHJl
c3MoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgV2Vi
Q29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OkFkZHJlc3NMaW5lczoKKyAgICAgICAg
Y2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpBZGRyZXNzTGluZXM6CiAg
ICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0Rmll
bGRQb3N0YWxBZGRyZXNzKCk7CiAgICAgICAgICAgICBwb3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Q
b3N0YWxBZGRyZXNzU3RyZWV0S2V5KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IAotICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpTdWJM
b2NhbGl0eToKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxk
OjpTdWJMb2NhbGl0eToKICAgICAgICAgICAgIHBrQ29udGFjdEZpZWxkID0gUEFMOjpnZXRfUGFz
c0tpdF9QS0NvbnRhY3RGaWVsZFBvc3RhbEFkZHJlc3MoKTsKICAgICAgICAgICAgIHBvc3RhbEFk
ZHJlc3NLZXkgPSBnZXRDTlBvc3RhbEFkZHJlc3NTdWJMb2NhbGl0eUtleSgpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJy
b3I6OkNvbnRhY3RGaWVsZDo6TG9jYWxpdHk6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQ
YXlFcnJvckNvbnRhY3RGaWVsZDo6TG9jYWxpdHk6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVs
ZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CiAgICAg
ICAgICAgICBwb3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzQ2l0eUtleSgpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpQ
YXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6UG9zdGFsQ29kZToKKyAgICAgICAgY2FzZSBXZWJD
b3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpQb3N0YWxDb2RlOgogICAgICAgICAgICAg
cGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRk
cmVzcygpOwogICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdldENOUG9zdGFsQWRkcmVz
c1Bvc3RhbENvZGVLZXkoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAg
ICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlN1YkFkbWluaXN0
cmF0aXZlQXJlYToKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZp
ZWxkOjpTdWJBZG1pbmlzdHJhdGl2ZUFyZWE6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9
IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CiAgICAgICAg
ICAgICBwb3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzU3ViQWRtaW5pc3RyYXRp
dmVBcmVhS2V5KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAotICAgICAgICBj
YXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpBZG1pbmlzdHJhdGl2ZUFy
ZWE6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6QWRt
aW5pc3RyYXRpdmVBcmVhOgogICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9Q
YXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRkcmVzcygpOwogICAgICAgICAgICAgcG9zdGFs
QWRkcmVzc0tleSA9IGdldENOUG9zdGFsQWRkcmVzc1N0YXRlS2V5KCk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgIAotICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6
Q29udGFjdEZpZWxkOjpDb3VudHJ5OgorICAgICAgICBjYXNlIFdlYkNvcmU6OkFwcGxlUGF5RXJy
b3JDb250YWN0RmllbGQ6OkNvdW50cnk6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBB
TDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CiAgICAgICAgICAg
ICBwb3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzQ291bnRyeUtleSgpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXlt
ZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6Q291bnRyeUNvZGU6CisgICAgICAgIGNhc2UgV2ViQ29y
ZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6Q291bnRyeUNvZGU6CiAgICAgICAgICAgICBw
a0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRy
ZXNzKCk7CiAgICAgICAgICAgICBwb3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNz
SVNPQ291bnRyeUNvZGVLZXkoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTYxLDE3ICsxNzEs
MjAgQEAgc3RhdGljIE5TRXJyb3IgKnRvTlNFcnJvcihjb25zdCBXZWJDb3JlOjpQYXltZW50RXJy
b3ImIGVycm9yKQogICAgICAgICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDpwb3N0YWxBZGRyZXNz
S2V5IGZvcktleTpQQUw6OmdldF9QYXNzS2l0X1BLUGF5bWVudEVycm9yUG9zdGFsQWRkcmVzc1Vz
ZXJJbmZvS2V5KCldOwogICAgIH0KIAotICAgIHJldHVybiBbTlNFcnJvciBlcnJvcldpdGhEb21h
aW46UEFMOjpnZXRfUGFzc0tpdF9QS1BheW1lbnRFcnJvckRvbWFpbigpIGNvZGU6dG9QS1BheW1l
bnRFcnJvckNvZGUoZXJyb3IuY29kZSkgdXNlckluZm86dXNlckluZm8uZ2V0KCldOworICAgIHJl
dHVybiBbTlNFcnJvciBlcnJvcldpdGhEb21haW46UEFMOjpnZXRfUGFzc0tpdF9QS1BheW1lbnRF
cnJvckRvbWFpbigpIGNvZGU6dG9QS1BheW1lbnRFcnJvckNvZGUoZXJyb3IuY29kZSgpKSB1c2Vy
SW5mbzp1c2VySW5mby5nZXQoKV07CiB9CiAKLXN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gdG9O
U0Vycm9ycyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6UGF5bWVudEVycm9yPiYgZXJyb3JzKQorc3Rh
dGljIFJldGFpblB0cjxOU0FycmF5PiB0b05TRXJyb3JzKGNvbnN0IFZlY3RvcjxSZWZQdHI8V2Vi
Q29yZTo6QXBwbGVQYXlFcnJvcj4+JiBlcnJvcnMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZU5TQXJy
YXkoZXJyb3JzLCBbXSAoYXV0byYgZXJyb3IpIHsKLSAgICAgICAgcmV0dXJuIHRvTlNFcnJvcihl
cnJvcik7Ci0gICAgfSk7CisgICAgYXV0byBhcnJheSA9IGFkb3B0TlMoTlNNdXRhYmxlQXJyYXku
YXJyYXkpOworICAgIGZvciAoYXV0byYgZXJyb3IgOiBlcnJvcnMpIHsKKyAgICAgICAgaWYgKGVy
cm9yKQorICAgICAgICAgICAgW2FycmF5IGFkZE9iamVjdDp0b05TRXJyb3IoKmVycm9yKV07Cisg
ICAgfQorICAgIHJldHVybiBhcnJheTsKIH0KIAotc3RhdGljIFJldGFpblB0cjxOU0FycmF5PiB0
b1BLU2hpcHBpbmdNZXRob2RzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGluZ01ldGhvZHMpCitzdGF0aWMg
UmV0YWluUHRyPE5TQXJyYXk+IHRvUEtTaGlwcGluZ01ldGhvZHMoY29uc3QgVmVjdG9yPFdlYkNv
cmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGluZ01ldGhvZHMpCiB7CiAgICAgcmV0
dXJuIGNyZWF0ZU5TQXJyYXkoc2hpcHBpbmdNZXRob2RzLCBbXSAoYXV0byYgbWV0aG9kKSB7CiAg
ICAgICAgIHJldHVybiB0b1BLU2hpcHBpbmdNZXRob2QobWV0aG9kKTsKQEAgLTE4NCw3ICsxOTcs
NyBAQCB2b2lkIFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyOjpjb21wbGV0ZU1lcmNoYW50
VmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpQYQogICAgIFtwbGF0Zm9ybURlbGVnYXRlKCkgY29t
cGxldGVNZXJjaGFudFZhbGlkYXRpb246bWVyY2hhbnRTZXNzaW9uLnBrUGF5bWVudE1lcmNoYW50
U2Vzc2lvbigpIGVycm9yOm5pbF07CiB9CiAKLXZvaWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVz
ZW50ZXI6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJD
b3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiYgdXBkYXRlKQordm9pZCBQYXltZW50QXV0aG9yaXph
dGlvblByZXNlbnRlcjo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdl
YkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCiB7CiAgICAgQVNT
RVJUKHBsYXRmb3JtRGVsZWdhdGUoKSk7CiAgICAgaWYgKCF1cGRhdGUpIHsKQEAgLTE5Miw3ICsy
MDUsMTQgQEAgdm9pZCBQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVQYXlt
ZW50TWV0aG9kU2VsZWN0aW9uKGNvbnN0IE9wdGlvbmEKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIFtwbGF0Zm9ybURlbGVnYXRlKCkgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9u
OnVwZGF0ZS0+cGxhdGZvcm1VcGRhdGUoKV07CisgICAgYXV0byBwYXltZW50TWV0aG9kVXBkYXRl
ID0gYWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRl
SW5zdGFuY2UoKSBpbml0V2l0aFBheW1lbnRTdW1tYXJ5SXRlbXM6V2ViQ29yZTo6cGxhdGZvcm1T
dW1tYXJ5SXRlbXMoV1RGTW92ZSh1cGRhdGUtPm5ld1RvdGFsKSwgV1RGTW92ZSh1cGRhdGUtPm5l
d0xpbmVJdGVtcykpXSk7CisjaWYgSEFWRShQQVNTS0lUX0lOU1RBTExNRU5UUykgJiYgRU5BQkxF
KEFQUExFX1BBWV9JTlNUQUxMTUVOVFMpCisgICAgW3BheW1lbnRNZXRob2RVcGRhdGUgc2V0SW5z
dGFsbG1lbnRHcm91cElkZW50aWZpZXI6V1RGTW92ZSh1cGRhdGUtPmluc3RhbGxtZW50R3JvdXBJ
ZGVudGlmaWVyKV07CisjZW5kaWYgLy8gSEFWRShQQVNTS0lUX0lOU1RBTExNRU5UUykgJiYgRU5B
QkxFKEFQUExFX1BBWV9JTlNUQUxMTUVOVFMpCisjaWYgZGVmaW5lZChQYXltZW50QXV0aG9yaXph
dGlvblByZXNlbnRlckFkZGl0aW9uc19jb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24pCisg
ICAgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXJBZGRpdGlvbnNfY29tcGxldGVQYXltZW50
TWV0aG9kU2VsZWN0aW9uCisjZW5kaWYKKyAgICBbcGxhdGZvcm1EZWxlZ2F0ZSgpIGNvbXBsZXRl
UGF5bWVudE1ldGhvZFNlbGVjdGlvbjpwYXltZW50TWV0aG9kVXBkYXRlLmdldCgpXTsKIH0KIAog
dm9pZCBQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVQYXltZW50U2Vzc2lv
bihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mIHJl
c3VsdCkKQEAgLTIwMyw3ICsyMjMsNyBAQCB2b2lkIFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2Vu
dGVyOjpjb21wbGV0ZVBheW1lbnRTZXNzaW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNvcgogICAgIFtw
bGF0Zm9ybURlbGVnYXRlKCkgY29tcGxldGVQYXltZW50U2Vzc2lvbjpzdGF0dXMgZXJyb3JzOmVy
cm9ycy5nZXQoKV07CiB9CiAKLXZvaWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNv
bXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlNo
aXBwaW5nQ29udGFjdFVwZGF0ZT4mIHVwZGF0ZSkKK3ZvaWQgUGF5bWVudEF1dGhvcml6YXRpb25Q
cmVzZW50ZXI6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNv
cmU6OkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmIHVwZGF0ZSkKIHsKICAgICBBU1NF
UlQocGxhdGZvcm1EZWxlZ2F0ZSgpKTsKICAgICBpZiAoIXVwZGF0ZSkgewpAQCAtMjExLDE0ICsy
MzEsMTYgQEAgdm9pZCBQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVTaGlw
cGluZ0NvbnRhY3RTZWxlY3Rpb24oY29uc3QgT3B0aW8KICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIC8vIEZJWE1FOiBXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGUgc2hvdWxkIGtu
b3cgaG93IHRvIGNvbnZlcnQgaXRzZWxmIHRvIGEgUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nQ29u
dGFjdFVwZGF0ZS4KLSAgICBhdXRvIHNoaXBwaW5nQ29udGFjdFVwZGF0ZSA9IGFkb3B0TlMoW1BB
TDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdDb250YWN0VXBkYXRlSW5zdGFuY2UoKSBp
bml0V2l0aEVycm9yczp0b05TRXJyb3JzKHVwZGF0ZS0+ZXJyb3JzKS5nZXQoKQotICAgICAgICBw
YXltZW50U3VtbWFyeUl0ZW1zOldlYkNvcmU6OnBsYXRmb3JtU3VtbWFyeUl0ZW1zKHVwZGF0ZS0+
bmV3VG90YWxBbmRMaW5lSXRlbXMpCi0gICAgICAgIHNoaXBwaW5nTWV0aG9kczp0b1BLU2hpcHBp
bmdNZXRob2RzKHVwZGF0ZS0+bmV3U2hpcHBpbmdNZXRob2RzKS5nZXQoKV0pOworICAgIGF1dG8g
c2hpcHBpbmdDb250YWN0VXBkYXRlID0gYWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVudFJlcXVl
c3RTaGlwcGluZ0NvbnRhY3RVcGRhdGVJbnN0YW5jZSgpIGluaXRXaXRoRXJyb3JzOnRvTlNFcnJv
cnMoV1RGTW92ZSh1cGRhdGUtPmVycm9ycykpLmdldCgpCisgICAgICAgIHBheW1lbnRTdW1tYXJ5
SXRlbXM6V2ViQ29yZTo6cGxhdGZvcm1TdW1tYXJ5SXRlbXMoV1RGTW92ZSh1cGRhdGUtPm5ld1Rv
dGFsKSwgV1RGTW92ZSh1cGRhdGUtPm5ld0xpbmVJdGVtcykpCisgICAgICAgIHNoaXBwaW5nTWV0
aG9kczp0b1BLU2hpcHBpbmdNZXRob2RzKFdURk1vdmUodXBkYXRlLT5uZXdTaGlwcGluZ01ldGhv
ZHMpKS5nZXQoKV0pOworI2lmIGRlZmluZWQoUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXJB
ZGRpdGlvbnNfY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24pCisgICAgUGF5bWVudEF1
dGhvcml6YXRpb25QcmVzZW50ZXJBZGRpdGlvbnNfY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxl
Y3Rpb24KKyNlbmRpZgogICAgIFtwbGF0Zm9ybURlbGVnYXRlKCkgY29tcGxldGVTaGlwcGluZ0Nv
bnRhY3RTZWxlY3Rpb246c2hpcHBpbmdDb250YWN0VXBkYXRlLmdldCgpXTsKIH0KIAotdm9pZCBQ
YXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVj
dGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4mIHVwZGF0
ZSkKK3ZvaWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlU2hpcHBpbmdN
ZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVw
ZGF0ZT4mJiB1cGRhdGUpCiB7CiAgICAgQVNTRVJUKHBsYXRmb3JtRGVsZWdhdGUoKSk7CiAgICAg
aWYgKCF1cGRhdGUpIHsKQEAgLTIyNiw4ICsyNDgsMTAgQEAgdm9pZCBQYXltZW50QXV0aG9yaXph
dGlvblByZXNlbnRlcjo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRp
b24KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBXZWJDb3JlOjpTaGlw
cGluZ01ldGhvZFVwZGF0ZSBzaG91bGQga25vdyBob3cgdG8gY29udmVydCBpdHNlbGYgdG8gYSBQ
S1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdNZXRob2RVcGRhdGUuCi0gICAgYXV0byBzaGlwcGluZ01l
dGhvZFVwZGF0ZSA9IGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdN
ZXRob2RVcGRhdGVJbnN0YW5jZSgpIGluaXRXaXRoUGF5bWVudFN1bW1hcnlJdGVtczpXZWJDb3Jl
OjpwbGF0Zm9ybVN1bW1hcnlJdGVtcyh1cGRhdGUtPm5ld1RvdGFsQW5kTGluZUl0ZW1zKV0pOwor
ICAgIGF1dG8gc2hpcHBpbmdNZXRob2RVcGRhdGUgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXlt
ZW50UmVxdWVzdFNoaXBwaW5nTWV0aG9kVXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aFBheW1lbnRT
dW1tYXJ5SXRlbXM6V2ViQ29yZTo6cGxhdGZvcm1TdW1tYXJ5SXRlbXMoV1RGTW92ZSh1cGRhdGUt
Pm5ld1RvdGFsKSwgV1RGTW92ZSh1cGRhdGUtPm5ld0xpbmVJdGVtcykpXSk7CisjaWYgZGVmaW5l
ZChQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlckFkZGl0aW9uc19jb21wbGV0ZVNoaXBwaW5n
TWV0aG9kU2VsZWN0aW9uKQorICAgIFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyQWRkaXRp
b25zX2NvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24KKyNlbmRpZgogICAgIFtwbGF0Zm9y
bURlbGVnYXRlKCkgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbjpzaGlwcGluZ01ldGhv
ZFVwZGF0ZS5nZXQoKV07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
Y29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9jb2NvYS9XS1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0KaW5kZXggY2Yz
NGE0OGVkMmZlLi5iOWRjZTdiZWRlOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vY29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vY29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tCkBA
IC0xNzMsMTYgKzE3MywxNSBAQCAtICh2b2lkKV9kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3Q6KFBL
Q29udGFjdCAqKWNvbnRhY3QgY29tcGxldGlvbjooV2ViS2l0OjpEaWRTZQogICAgIHByZXNlbnRl
ci0+Y2xpZW50KCkucHJlc2VudGVyRGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KCpwcmVzZW50ZXIs
IFdlYkNvcmU6OlBheW1lbnRDb250YWN0KGNvbnRhY3QpKTsKIH0KIAotc3RhdGljIFdlYkNvcmU6
OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCB0b1NoaXBwaW5n
TWV0aG9kKFBLU2hpcHBpbmdNZXRob2QgKnNoaXBwaW5nTWV0aG9kKQorc3RhdGljIFdlYkNvcmU6
OkFwcGxlUGF5U2hpcHBpbmdNZXRob2QgdG9TaGlwcGluZ01ldGhvZChQS1NoaXBwaW5nTWV0aG9k
ICpzaGlwcGluZ01ldGhvZCkKIHsKICAgICBBU1NFUlQoc2hpcHBpbmdNZXRob2QpOwogCi0gICAg
V2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kIHJl
c3VsdDsKKyAgICBXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kIHJlc3VsdDsKICAgICBy
ZXN1bHQuYW1vdW50ID0gc2hpcHBpbmdNZXRob2QuYW1vdW50LnN0cmluZ1ZhbHVlOwogICAgIHJl
c3VsdC5kZXRhaWwgPSBzaGlwcGluZ01ldGhvZC5kZXRhaWw7CiAgICAgcmVzdWx0LmlkZW50aWZp
ZXIgPSBzaGlwcGluZ01ldGhvZC5pZGVudGlmaWVyOwogICAgIHJlc3VsdC5sYWJlbCA9IHNoaXBw
aW5nTWV0aG9kLmxhYmVsOwotCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggNjQ5ODRkNzJmMWMwLi4yM2U4MTY5MTkw
NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
KysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtNzE3LDgg
KzcxNyw2IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VX
b3JrZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvblN0YXRlJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKICAgICAgICAg
J1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJTdGF0ZSc6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5
cGVzLmg+J10sCi0gICAgICAgICdXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGUnOiBbJzxX
ZWJDb3JlL0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Lmg+J10sCi0gICAgICAgICdXZWJD
b3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZSc6IFsnPFdlYkNvcmUvQXBwbGVQYXlTZXNzaW9uUGF5
bWVudFJlcXVlc3QuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNob3VsZEFza0lUUCc6IFsnPFdl
YkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTaG91
bGROb3RpZnlXaGVuUmVzb2x2ZWQnOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6U2hvdWxkU2FtcGxlJzogWyc8V2ViQ29yZS9EaWFnbm9zdGlj
TG9nZ2luZ0NsaWVudC5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBw
bGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IGM1ODkwZTBh
MmZmYy4uZjVjYTQxNzdhMTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBs
ZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0zMyw2ICsz
Myw5IEBACiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yTWVzc2FnZXMuaCIKICNpbmNs
dWRlICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BcHBsZVBheVBheW1lbnRNZXRob2RV
cGRhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0FwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRl
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9QYXltZW50QXV0aG9yaXphdGlvblN0YXR1cy5oPgogCiAjZGVmaW5l
IE1FU1NBR0VfQ0hFQ0soYXNzZXJ0aW9uKSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0aW9uLCBt
ZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpKQpAQCAtMTI4LDcgKzEzMSw3IEBAIHZvaWQgV2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHk6OmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFdl
YkNvcmU6OlBheW1lCiAgICAgbV9tZXJjaGFudFZhbGlkYXRpb25TdGF0ZSA9IE1lcmNoYW50VmFs
aWRhdGlvblN0YXRlOjpWYWxpZGF0aW9uQ29tcGxldGU7CiB9CiAKLXZvaWQgV2ViUGF5bWVudENv
b3JkaW5hdG9yUHJveHk6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0
aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+JiB1cGRhdGUpCit2b2lkIFdlYlBh
eW1lbnRDb29yZGluYXRvclByb3h5Ojpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9w
dGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYgdXBkYXRlKQog
ewogICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgcGF5bWVudCBoYXMgYmVlbiBjYW5jZWxl
ZCBhbHJlYWR5LgogICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpJZGxlKQpAQCAtMTM2LDExICsx
MzksMTEgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxldGVTaGlwcGlu
Z01ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDwKIAogICAgIE1FU1NBR0VfQ0hFQ0sobV9z
dGF0ZSA9PSBTdGF0ZTo6U2hpcHBpbmdNZXRob2RTZWxlY3RlZCk7CiAKLSAgICBwbGF0Zm9ybUNv
bXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24odXBkYXRlKTsKKyAgICBwbGF0Zm9ybUNvbXBs
ZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUpKTsKICAgICBtX3N0YXRl
ID0gU3RhdGU6OkFjdGl2ZTsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6
Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6
U2hpcHBpbmdDb250YWN0VXBkYXRlPiYgdXBkYXRlKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0
b3JQcm94eTo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29y
ZTo6QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYgdXBkYXRlKQogewogICAgIC8vIEl0
J3MgcG9zc2libGUgdGhhdCB0aGUgcGF5bWVudCBoYXMgYmVlbiBjYW5jZWxlZCBhbHJlYWR5Lgog
ICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpJZGxlKQpAQCAtMTQ4LDExICsxNTEsMTEgQEAgdm9p
ZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxl
Y3Rpb24oY29uc3QgT3B0aW9uYWwKIAogICAgIE1FU1NBR0VfQ0hFQ0sobV9zdGF0ZSA9PSBTdGF0
ZTo6U2hpcHBpbmdDb250YWN0U2VsZWN0ZWQpOwogCi0gICAgcGxhdGZvcm1Db21wbGV0ZVNoaXBw
aW5nQ29udGFjdFNlbGVjdGlvbih1cGRhdGUpOworICAgIHBsYXRmb3JtQ29tcGxldGVTaGlwcGlu
Z0NvbnRhY3RTZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUpKTsKICAgICBtX3N0YXRlID0gU3RhdGU6
OkFjdGl2ZTsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxldGVQ
YXltZW50TWV0aG9kU2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRo
b2RVcGRhdGU+JiB1cGRhdGUpCit2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5Ojpjb21w
bGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlQYXlt
ZW50TWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKIHsKICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQg
dGhlIHBheW1lbnQgaGFzIGJlZW4gY2FuY2VsZWQgYWxyZWFkeS4KICAgICBpZiAobV9zdGF0ZSA9
PSBTdGF0ZTo6SWRsZSkKQEAgLTE2MCw3ICsxNjMsNyBAQCB2b2lkIFdlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5Ojpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8
VwogCiAgICAgTUVTU0FHRV9DSEVDSyhtX3N0YXRlID09IFN0YXRlOjpQYXltZW50TWV0aG9kU2Vs
ZWN0ZWQpOwogCi0gICAgcGxhdGZvcm1Db21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24odXBk
YXRlKTsKKyAgICBwbGF0Zm9ybUNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihXVEZNb3Zl
KHVwZGF0ZSkpOwogICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWN0aXZlOwogfQogCkBAIC0yMTgsNyAr
MjIxLDcgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cHJlc2VudGVyRGlkRmlu
aXNoKFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGUKICAgICBkaWRSZWFjaEZpbmFsU3RhdGUo
V1RGTW92ZShlcnJvcikpOwogfQogCi12b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5Ojpw
cmVzZW50ZXJEaWRTZWxlY3RTaGlwcGluZ01ldGhvZChQYXltZW50QXV0aG9yaXphdGlvblByZXNl
bnRlciYsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlw
cGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCit2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclBy
b3h5OjpwcmVzZW50ZXJEaWRTZWxlY3RTaGlwcGluZ01ldGhvZChQYXltZW50QXV0aG9yaXphdGlv
blByZXNlbnRlciYsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2QmIHNoaXBw
aW5nTWV0aG9kKQogewogICAgIEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpBY3RpdmUpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENv
b3JkaW5hdG9yUHJveHkuaAppbmRleCA2NTFjNzEwMTk2N2YuLmUwY2QyYzZjNjMzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29v
cmRpbmF0b3JQcm94eS5oCkBAIC01MSw3ICs1MSwxMCBAQCBjbGFzcyBQYXltZW50OwogY2xhc3Mg
UGF5bWVudENvbnRhY3Q7CiBjbGFzcyBQYXltZW50TWVyY2hhbnRTZXNzaW9uOwogY2xhc3MgUGF5
bWVudE1ldGhvZDsKLWNsYXNzIFBheW1lbnRNZXRob2RVcGRhdGU7CitzdHJ1Y3QgQXBwbGVQYXlQ
YXltZW50TWV0aG9kVXBkYXRlOworc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRl
Oworc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGlu
Z01ldGhvZFVwZGF0ZTsKIH0KIAogT0JKQ19DTEFTUyBOU09iamVjdDsKQEAgLTExNCw3ICsxMTcs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJlc2VudGVyRGlkRmluaXNoKFBheW1lbnRBdXRob3Jp
emF0aW9uUHJlc2VudGVyJiwgV2ViQ29yZTo6UGF5bWVudFNlc3Npb25FcnJvciYmKSBmaW5hbDsK
ICAgICB2b2lkIHByZXNlbnRlckRpZFNlbGVjdFBheW1lbnRNZXRob2QoUGF5bWVudEF1dGhvcml6
YXRpb25QcmVzZW50ZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9kJikgZmluYWw7CiAg
ICAgdm9pZCBwcmVzZW50ZXJEaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3QoUGF5bWVudEF1dGhvcml6
YXRpb25QcmVzZW50ZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50Q29udGFjdCYpIGZpbmFsOwot
ICAgIHZvaWQgcHJlc2VudGVyRGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoUGF5bWVudEF1dGhvcml6
YXRpb25QcmVzZW50ZXImLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVx
dWVzdDo6U2hpcHBpbmdNZXRob2QmKSBmaW5hbDsKKyAgICB2b2lkIHByZXNlbnRlckRpZFNlbGVj
dFNoaXBwaW5nTWV0aG9kKFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyJiwgY29uc3QgV2Vi
Q29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZCYpIGZpbmFsOwogICAgIHZvaWQgcHJlc2VudGVy
V2lsbFZhbGlkYXRlTWVyY2hhbnQoUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXImLCBjb25z
dCBVUkwmKSBmaW5hbDsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKQEAgLTEyMyw5ICsxMjYs
OSBAQCBwcml2YXRlOgogICAgIHZvaWQgb3BlblBheW1lbnRTZXR1cChjb25zdCBTdHJpbmcmIG1l
cmNoYW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHNob3dQYXltZW50VUkoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgZGVzdGluYXRpb25JRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5hdGluZ1VSTFN0
cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxpbmtJY29uVVJMU3RyaW5ncywgY29uc3QgV2Vi
Q29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIGNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0
IFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24mKTsKLSAgICB2b2lkIGNvbXBsZXRlU2hp
cHBpbmdNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRo
b2RVcGRhdGU+Jik7Ci0gICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihj
b25zdCBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+Jik7Ci0gICAgdm9p
ZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6
UGF5bWVudE1ldGhvZFVwZGF0ZT4mKTsKKyAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RT
ZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4m
Jik7CisgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxX
ZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJik7CisgICAgdm9pZCBjb21w
bGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlQYXlt
ZW50TWV0aG9kVXBkYXRlPiYmKTsKICAgICB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24oY29u
c3QgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+Jik7CiAgICAg
dm9pZCBhYm9ydFBheW1lbnRTZXNzaW9uKCk7CiAgICAgdm9pZCBjYW5jZWxQYXltZW50U2Vzc2lv
bigpOwpAQCAtMTQ4LDkgKzE1MSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybU9wZW5Q
YXltZW50U2V0dXAoY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgZG9tYWluTmFtZSwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKTsKICAgICB2b2lkIHBsYXRmb3JtU2hvd1BheW1lbnRVSShjb25zdCBVUkwmIG9yaWdpbmF0
aW5nVVJMLCBjb25zdCBWZWN0b3I8VVJMPiYgbGlua0ljb25VUkxzLCBjb25zdCBXZWJDb3JlOjpB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Db21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25z
dCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJik7Ci0gICAgdm9pZCBwbGF0Zm9ybUNv
bXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hp
cHBpbmdNZXRob2RVcGRhdGU+Jik7Ci0gICAgdm9pZCBwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdD
b250YWN0U2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVw
ZGF0ZT4mKTsKLSAgICB2b2lkIHBsYXRmb3JtQ29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9u
KGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+Jik7CisgICAgdm9p
ZCBwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29y
ZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJik7CisgICAgdm9pZCBwbGF0Zm9ybUNv
bXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5
U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKTsKKyAgICB2b2lkIHBsYXRmb3JtQ29tcGxldGVQYXlt
ZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhv
ZFVwZGF0ZT4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUNvbXBsZXRlUGF5bWVudFNlc3Npb24oY29u
c3QgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+Jik7CiAgICAg
dm9pZCBwbGF0Zm9ybUhpZGVQYXltZW50VUkoKTsKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRv
clByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYzE0OWU0ZDJlYzI5Li40YzU0
Y2ZiMmY0YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBh
eW1lbnRDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0z
Miw5ICszMiw5IEBAIG1lc3NhZ2VzIC0+IFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5IE5vdFJl
ZkNvdW50ZWQgewogCiAgICAgU2hvd1BheW1lbnRVSShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBk
ZXN0aW5hdGlvbklELCBTdHJpbmcgb3JpZ2luYXRpbmdVUkxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+
IGxpbmtJY29uVVJMU3RyaW5ncywgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVl
c3QgcGF5bWVudFJlcXVlc3QpIC0+IChib29sIHJlc3VsdCkgU3luY2hyb25vdXMKICAgICBDb21w
bGV0ZU1lcmNoYW50VmFsaWRhdGlvbihXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uIHBh
eW1lbnRNZXJjaGFudFNlc3Npb24pCi0gICAgQ29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlv
bihPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4gdXBkYXRlKQotICAgIENv
bXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5n
Q29udGFjdFVwZGF0ZT4gdXBkYXRlKQotICAgIENvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlv
bihPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiB1cGRhdGUpCisgICAgQ29t
cGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNo
aXBwaW5nTWV0aG9kVXBkYXRlPiB1cGRhdGUpCisgICAgQ29tcGxldGVTaGlwcGluZ0NvbnRhY3RT
ZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+
IHVwZGF0ZSkKKyAgICBDb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2Vi
Q29yZTo6QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlPiB1cGRhdGUpCiAgICAgQ29tcGxldGVQ
YXltZW50U2Vzc2lvbihPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3Vs
dD4gcmVzdWx0KQogICAgIEFib3J0UGF5bWVudFNlc3Npb24oKQogICAgIENhbmNlbFBheW1lbnRT
ZXNzaW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L2NvY29h
L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EuaAppbmRleCA5
Mjc5OTA5MjdhZjIuLjIzNjY2YjczNjQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQXBwbGVQYXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRv
clByb3h5Q29jb2EuaApAQCAtMjcsMTYgKzI3LDE4IEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZ
KQogCi0jaW1wb3J0IDxXZWJDb3JlL0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Lmg+Ci0K
IE9CSkNfQ0xBU1MgUEtTaGlwcGluZ01ldGhvZDsKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworc3Ry
dWN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAv
LyBGSVhNRTogUmF0aGVyIHRoYW4gaGF2aW5nIHRoZXNlIGZyZWUgZnVuY3Rpb25zIHNjYXR0ZXJl
ZCBhYm91dCwgQXBwbGUgUGF5IGRhdGEgdHlwZXMgc2hvdWxkIGtub3cKIC8vIGhvdyB0byBjb252
ZXJ0IHRoZW1zZWx2ZXMgdG8gYW5kIGZyb20gdGhlaXIgcGxhdGZvcm0gcmVwcmVzZW50YXRpb25z
LgogTlNEZWNpbWFsTnVtYmVyICp0b0RlY2ltYWxOdW1iZXIoY29uc3QgU3RyaW5nJiBhbW91bnQp
OwotUEtTaGlwcGluZ01ldGhvZCAqdG9QS1NoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpOworUEtTaGlwcGlu
Z01ldGhvZCAqdG9QS1NoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBp
bmdNZXRob2QmKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50
Q29vcmRpbmF0b3JQcm94eUNvY29hLm1tCmluZGV4IDQ0MDJhNDkwOTE5Ni4uOGZjYjVhZjFiZTNm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9jb2NvYS9XZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Fw
cGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EubW0KQEAgLTM2LDYg
KzM2LDEwIEBACiAjaW1wb3J0ICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oIgogI2ltcG9y
dCAiV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUHJv
Y2Vzc1Byb3h5LmgiCisjaW1wb3J0IDxXZWJDb3JlL0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0
ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oPgor
I2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kLmg+CisjaW1wb3J0IDxXZWJD
b3JlL0FwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGF5
bWVudEF1dGhvcml6YXRpb25TdGF0dXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGF5bWVudEhlYWRl
cnMuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgpAQCAtNDUsNiArNDksMTAgQEAKIAogI2lt
cG9ydCA8cGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5oPgogCisjaWYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvV2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHlDb2NvYUFkZGl0aW9ucy5tbT4KKyNlbmRpZgorCiAvLyBGSVhNRTogV2UgZG9uJ3Qgc3Vw
cG9ydCBhbnkgcGxhdGZvcm1zIHdpdGhvdXQgLXNldFRodW1ibmFpbFVSTHM6LCBzbyB0aGlzIGNh
biBiZSByZW1vdmVkLgogQGludGVyZmFjZSBQS1BheW1lbnRSZXF1ZXN0ICgpCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc3Ryb25nKSBOU1VSTCAqdGh1bWJuYWlsVVJMOwpAQCAtNTIsMTkgKzYwLDYg
QEAgQGVuZAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RhdGljIHZvaWQgZmluaXNoQ3JlYXRp
bmcoUEtQYXltZW50UmVxdWVzdCAqcGxhdGZvcm1SZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYgcmVxdWVzdCkKLXsKLSNpZiBIQVZFKFBBU1NLSVRf
SU5TVEFMTE1FTlRTKQotICAgIGlmIChQS1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24g
KmNvbmZpZ3VyYXRpb24gPSByZXF1ZXN0Lmluc3RhbGxtZW50Q29uZmlndXJhdGlvbigpLnBsYXRm
b3JtQ29uZmlndXJhdGlvbigpKSB7Ci0gICAgICAgIHBsYXRmb3JtUmVxdWVzdC5pbnN0YWxsbWVu
dENvbmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uOwotICAgICAgICBwbGF0Zm9ybVJlcXVlc3Qu
cmVxdWVzdFR5cGUgPSBQS1BheW1lbnRSZXF1ZXN0VHlwZUluc3RhbGxtZW50OwotICAgIH0KLSNl
bHNlCi0gICAgVU5VU0VEX1BBUkFNKHBsYXRmb3JtUmVxdWVzdCk7Ci0gICAgVU5VU0VEX1BBUkFN
KHJlcXVlc3QpOwotI2VuZGlmCi19Ci0KIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpXZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eShXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Q2xpZW50
JiBjbGllbnQpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX2Nhbk1ha2VQYXltZW50
c1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkNhbk1ha2VQYXltZW50
cyIpKQpAQCAtMTY5LDE1ICsxNjQsMTQgQEAgc3RhdGljIFBLU2hpcHBpbmdUeXBlIHRvUEtTaGlw
cGluZ1R5cGUoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlMKICAgICB9
CiB9CiAKLVBLU2hpcHBpbmdNZXRob2QgKnRvUEtTaGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3Jl
OjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5n
TWV0aG9kKQorUEtTaGlwcGluZ01ldGhvZCAqdG9QS1NoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNv
cmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQogewogICAgIFBLU2hp
cHBpbmdNZXRob2QgKnJlc3VsdCA9IFtQQUw6OmdldFBLU2hpcHBpbmdNZXRob2RDbGFzcygpIHN1
bW1hcnlJdGVtV2l0aExhYmVsOnNoaXBwaW5nTWV0aG9kLmxhYmVsIGFtb3VudDp0b0RlY2ltYWxO
dW1iZXIoc2hpcHBpbmdNZXRob2QuYW1vdW50KV07CiAgICAgW3Jlc3VsdCBzZXRJZGVudGlmaWVy
OnNoaXBwaW5nTWV0aG9kLmlkZW50aWZpZXJdOwogICAgIFtyZXN1bHQgc2V0RGV0YWlsOnNoaXBw
aW5nTWV0aG9kLmRldGFpbF07Ci0KICAgICByZXR1cm4gcmVzdWx0OwogfQotICAgIAorCiBzdGF0
aWMgUmV0YWluUHRyPE5TU2V0PiB0b05TU2V0KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdHJpbmdz
KQogewogICAgIGlmIChzdHJpbmdzLmlzRW1wdHkoKSkKQEAgLTI2MCw3ICsyNTQsMTYgQEAgUmV0
YWluUHRyPFBLUGF5bWVudFJlcXVlc3Q+IFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0
Zm9ybVBheW1lbnRSZXF1ZXN0KGMKICAgICAgICAgW3Jlc3VsdCBzZXRDVERhdGFDb25uZWN0aW9u
U2VydmljZVR5cGU6c2VydmljZVR5cGVdOwogI2VuZGlmCiAKLSAgICBmaW5pc2hDcmVhdGluZyhy
ZXN1bHQuZ2V0KCksIHBheW1lbnRSZXF1ZXN0KTsKKyNpZiBIQVZFKFBBU1NLSVRfSU5TVEFMTE1F
TlRTKQorICAgIGlmIChQS1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24gKmNvbmZpZ3Vy
YXRpb24gPSBwYXltZW50UmVxdWVzdC5pbnN0YWxsbWVudENvbmZpZ3VyYXRpb24oKS5wbGF0Zm9y
bUNvbmZpZ3VyYXRpb24oKSkgeworICAgICAgICBbcmVzdWx0IHNldEluc3RhbGxtZW50Q29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uXTsKKyAgICAgICAgW3Jlc3VsdCBzZXRSZXF1ZXN0VHlwZTpQ
S1BheW1lbnRSZXF1ZXN0VHlwZUluc3RhbGxtZW50XTsKKyAgICB9CisjZW5kaWYKKworI2lmIGRl
ZmluZWQoV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYUFkZGl0aW9uc19wbGF0Zm9ybVBh
eW1lbnRSZXF1ZXN0KQorICAgIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2FBZGRpdGlv
bnNfcGxhdGZvcm1QYXltZW50UmVxdWVzdAorI2VuZGlmCiAKICAgICByZXR1cm4gcmVzdWx0Owog
fQpAQCAtMjc1LDE5ICsyNzgsMTkgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6
cGxhdGZvcm1Db21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3IKICAgICBtX2F1
dGhvcml6YXRpb25QcmVzZW50ZXItPmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKHBheW1lbnRN
ZXJjaGFudFNlc3Npb24pOwogfQogCi12b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5Ojpw
bGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2Vi
Q29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+JiB1cGRhdGUpCit2b2lkIFdlYlBheW1lbnRDb29y
ZGluYXRvclByb3h5OjpwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0
aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCiB7
Ci0gICAgbV9hdXRob3JpemF0aW9uUHJlc2VudGVyLT5jb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2Vs
ZWN0aW9uKHVwZGF0ZSk7CisgICAgbV9hdXRob3JpemF0aW9uUHJlc2VudGVyLT5jb21wbGV0ZVNo
aXBwaW5nTWV0aG9kU2VsZWN0aW9uKFdURk1vdmUodXBkYXRlKSk7CiB9CiAKLXZvaWQgV2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxl
Y3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYgdXBk
YXRlKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1Db21wbGV0ZVNo
aXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5n
Q29udGFjdFVwZGF0ZT4mJiB1cGRhdGUpCiB7Ci0gICAgbV9hdXRob3JpemF0aW9uUHJlc2VudGVy
LT5jb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbih1cGRhdGUpOworICAgIG1fYXV0aG9y
aXphdGlvblByZXNlbnRlci0+Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oV1RGTW92
ZSh1cGRhdGUpKTsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZv
cm1Db21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6
UGF5bWVudE1ldGhvZFVwZGF0ZT4mIHVwZGF0ZSkKK3ZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHk6OnBsYXRmb3JtQ29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdl
YkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCiB7Ci0gICAgbV9h
dXRob3JpemF0aW9uUHJlc2VudGVyLT5jb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24odXBk
YXRlKTsKKyAgICBtX2F1dGhvcml6YXRpb25QcmVzZW50ZXItPmNvbXBsZXRlUGF5bWVudE1ldGhv
ZFNlbGVjdGlvbihXVEZNb3ZlKHVwZGF0ZSkpOwogfQogCiB2b2lkIFdlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5OjpnZXRTZXR1cEZlYXR1cmVzKGNvbnN0IFBheW1lbnRTZXR1cENvbmZpZ3VyYXRp
b24mIGNvbmZpZ3VyYXRpb24sIE1lc3NhZ2VzOjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6
R2V0U2V0dXBGZWF0dXJlczo6QXN5bmNSZXBseSYmIHJlcGx5KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQppbmRl
eCBkMzVjZjZlYWJlYmQuLjc2YWZiNzJmZjJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0KQEAgLTQ2LDYg
KzQ2LDEwIEBACiAjaW1wb3J0IDxwYWwvY29jb2EvUGFzc0tpdFNvZnRMaW5rLmg+CiAjZW5kaWYK
IAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25z
L1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hQWRkaXRpb25zLm1tPgorI2VuZGlmCisKIG5hbWVz
cGFjZSBJUEMgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTExMiw3ICsxMTYsNyBA
QCBPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4gQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpQYXltZW50QXV0aAogICAgIGlmICghc3RhdHVzKQogICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogCi0gICAgT3B0aW9uYWw8VmVjdG9yPFBheW1lbnRFcnJvcj4+IGVy
cm9yczsKKyAgICBPcHRpb25hbDxWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+Pj4gZXJyb3Jz
OwogICAgIGRlY29kZXIgPj4gZXJyb3JzOwogICAgIGlmICghZXJyb3JzKQogICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwpAQCAtMTM0LDMzICsxMzgsNiBAQCBPcHRpb25hbDxXZWJDb3JlOjpQ
YXltZW50Q29udGFjdD4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50Q29udGFjdD46OmRl
Y29kZQogICAgIHJldHVybiBXZWJDb3JlOjpQYXltZW50Q29udGFjdCB7IFdURk1vdmUoKmNvbnRh
Y3QpIH07CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50RXJyb3I+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6UGF5bWVudEVycm9yJiBlcnJv
cikKLXsKLSAgICBlbmNvZGVyIDw8IGVycm9yLmNvZGU7Ci0gICAgZW5jb2RlciA8PCBlcnJvci5t
ZXNzYWdlOwotICAgIGVuY29kZXIgPDwgZXJyb3IuY29udGFjdEZpZWxkOwotfQotCi1PcHRpb25h
bDxXZWJDb3JlOjpQYXltZW50RXJyb3I+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudEVy
cm9yPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgT3B0aW9uYWw8V2ViQ29yZTo6
UGF5bWVudEVycm9yOjpDb2RlPiBjb2RlOwotICAgIGRlY29kZXIgPj4gY29kZTsKLSAgICBpZiAo
IWNvZGUpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCi0gICAgT3B0aW9uYWw8
U3RyaW5nPiBtZXNzYWdlOwotICAgIGRlY29kZXIgPj4gbWVzc2FnZTsKLSAgICBpZiAoIW1lc3Nh
Z2UpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCi0gICAgT3B0aW9uYWw8T3B0
aW9uYWw8V2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ+PiBjb250YWN0RmllbGQ7
Ci0gICAgZGVjb2RlciA+PiBjb250YWN0RmllbGQ7Ci0gICAgaWYgKCFjb250YWN0RmllbGQpCi0g
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICByZXR1cm4ge3sgV1RGTW92ZSgqY29k
ZSksIFdURk1vdmUoKm1lc3NhZ2UpLCBXVEZNb3ZlKCpjb250YWN0RmllbGQpIH19OwotfQotCiB2
b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vzc2lvbj46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9u
JiBwYXltZW50TWVyY2hhbnRTZXNzaW9uKQogewogICAgIGVuY29kZXIgPDwgcGF5bWVudE1lcmNo
YW50U2Vzc2lvbi5wa1BheW1lbnRNZXJjaGFudFNlc3Npb24oKTsKQEAgLTE4OSwyMCArMTY2LDYg
QEAgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudE1ldGhvZD4gQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpQYXltZW50TWV0aG9kPjo6ZGVjb2RlKEQKICAgICByZXR1cm4gUGF5bWVudE1ldGhvZCB7IFdU
Rk1vdmUoKnBheW1lbnRNZXRob2QpIH07CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpQYXltZW50TWV0aG9kVXBkYXRlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdl
YkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGUmIHVwZGF0ZSkKLXsKLSAgICBlbmNvZGVyIDw8IHVw
ZGF0ZS5wbGF0Zm9ybVVwZGF0ZSgpOwotfQotCi1PcHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0
aG9kVXBkYXRlPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBhdXRvIHVwZGF0ZSA9IElQQzo6ZGVjb2Rl
PFBLUGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlPihkZWNvZGVyLCBQQUw6OmdldFBL
UGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlQ2xhc3MoKSk7Ci0gICAgaWYgKCF1cGRh
dGUpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0KLSAgICByZXR1cm4gUGF5bWVudE1l
dGhvZFVwZGF0ZSB7IFdURk1vdmUoKnVwZGF0ZSkgfTsKLX0KLQogdm9pZCBBcmd1bWVudENvZGVy
PEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIGVu
Y29kZXIgPDwgcmVxdWVzdC5jb3VudHJ5Q29kZSgpOwpAQCAtMjIzLDYgKzE4Niw5IEBAIHZvaWQg
QXJndW1lbnRDb2RlcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdD46OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zCiAjaWYgRU5BQkxFKEFQUExFX1BBWV9JTlNUQUxMTUVOVFMpCiAg
ICAgZW5jb2RlciA8PCByZXF1ZXN0Lmluc3RhbGxtZW50Q29uZmlndXJhdGlvbigpOwogI2VuZGlm
CisjaWYgZGVmaW5lZChXZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYUFkZGl0aW9uc19BcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdF9lbmNvZGUpCisgICAgV2ViQ29yZUFyZ3VtZW50Q29kZXJz
Q29jb2FBZGRpdGlvbnNfQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3RfZW5jb2RlCisjZW5k
aWYKIH0KIAogYm9vbCBBcmd1bWVudENvZGVyPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
JiByZXF1ZXN0KQpAQCAtMjc0LDcgKzI0MCw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBBcHBsCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXF1ZXN0LnNldFNoaXBwaW5nVHlwZShzaGlwcGlu
Z1R5cGUpOwogCi0gICAgVmVjdG9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlw
cGluZ01ldGhvZD4gc2hpcHBpbmdNZXRob2RzOworICAgIFZlY3RvcjxBcHBsZVBheVNoaXBwaW5n
TWV0aG9kPiBzaGlwcGluZ01ldGhvZHM7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaGlwcGlu
Z01ldGhvZHMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmVxdWVzdC5zZXRTaGlwcGlu
Z01ldGhvZHMoc2hpcHBpbmdNZXRob2RzKTsKQEAgLTMxNCw2ICsyODAsMTAgQEAgYm9vbCBBcmd1
bWVudENvZGVyPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Pjo6ZGVjb2RlKERlY29kZXIm
IGRlY29kZXIsIEFwcGwKICAgICByZXF1ZXN0LnNldEluc3RhbGxtZW50Q29uZmlndXJhdGlvbihX
VEZNb3ZlKCppbnN0YWxsbWVudENvbmZpZ3VyYXRpb24pKTsKICNlbmRpZgogCisjaWYgZGVmaW5l
ZChXZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYUFkZGl0aW9uc19BcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdF9kZWNvZGUpCisgICAgV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2FBZGRpdGlv
bnNfQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3RfZGVjb2RlCisjZW5kaWYKKwogICAgIHJl
dHVybiB0cnVlOwogfQogCkBAIC0zNjQsODggKzMzNCwzOCBAQCBib29sIEFyZ3VtZW50Q29kZXI8
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzPjo6ZGVj
b2RlKAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8QXBwbGVQYXlT
ZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhv
ZCYgc2hpcHBpbmdNZXRob2QpCit2b2lkIEFyZ3VtZW50Q29kZXI8VmVjdG9yPFJlZlB0cjxBcHBs
ZVBheUVycm9yPj4+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgVmVjdG9yPFJlZlB0
cjxBcHBsZVBheUVycm9yPj4mIGVycm9ycykKIHsKLSAgICBlbmNvZGVyIDw8IHNoaXBwaW5nTWV0
aG9kLmxhYmVsOwotICAgIGVuY29kZXIgPDwgc2hpcHBpbmdNZXRob2QuZGV0YWlsOwotICAgIGVu
Y29kZXIgPDwgc2hpcHBpbmdNZXRob2QuYW1vdW50OwotICAgIGVuY29kZXIgPDwgc2hpcHBpbmdN
ZXRob2QuaWRlbnRpZmllcjsKKyAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90Pihl
cnJvcnMuc2l6ZSgpKTsKKyAgICBmb3IgKGF1dG8mIGVycm9yIDogZXJyb3JzKSB7CisgICAgICAg
IGVuY29kZXIgPDwgISFlcnJvcjsKKyAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgZW5j
b2RlciA8PCAqZXJyb3I7CisgICAgfQogfQogCi1PcHRpb25hbDxBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+IEFyZ3VtZW50Q29kZXI8QXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIp
CitPcHRpb25hbDxWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+Pj4gQXJndW1lbnRDb2RlcjxW
ZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+Pj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQog
ewotICAgIEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCBzaGlw
cGluZ01ldGhvZDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNoaXBwaW5nTWV0aG9kLmxhYmVs
KSkKKyAgICB1aW50NjRfdCBzaXplOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2l6ZSkpCiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaGlw
cGluZ01ldGhvZC5kZXRhaWwpKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoc2hpcHBpbmdNZXRob2QuYW1vdW50KSkKLSAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNoaXBwaW5nTWV0aG9kLmlk
ZW50aWZpZXIpKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIHJldHVybiBXVEZN
b3ZlKHNoaXBwaW5nTWV0aG9kKTsKLX0KIAotdm9pZCBBcmd1bWVudENvZGVyPEFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz46OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5l
SXRlbXMmIHRvdGFsQW5kTGluZUl0ZW1zKQotewotICAgIGVuY29kZXIgPDwgdG90YWxBbmRMaW5l
SXRlbXMudG90YWw7Ci0gICAgZW5jb2RlciA8PCB0b3RhbEFuZExpbmVJdGVtcy5saW5lSXRlbXM7
Ci19CisgICAgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4gZXJyb3JzKHNpemUpOworICAg
IGZvciAodWludDY0X3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgT3B0aW9uYWw8
Ym9vbD4gaXNWYWxpZDsKKyAgICAgICAgZGVjb2RlciA+PiBpc1ZhbGlkOworICAgICAgICBpZiAo
IWlzVmFsaWQpCisgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogCi1PcHRpb25hbDxB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXM+IEFyZ3VtZW50
Q29kZXI8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zPjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgT3B0aW9uYWw8QXBwbGVQYXlMaW5lSXRl
bT4gdG90YWw7Ci0gICAgZGVjb2RlciA+PiB0b3RhbDsKLSAgICBpZiAoIXRvdGFsKQotICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAgIE9wdGlvbmFsPFZlY3RvcjxBcHBsZVBh
eUxpbmVJdGVtPj4gbGluZUl0ZW1zOwotICAgIGRlY29kZXIgPj4gbGluZUl0ZW1zOwotICAgIGlm
ICghbGluZUl0ZW1zKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAgIHJl
dHVybiB7eyBXVEZNb3ZlKCp0b3RhbCksIFdURk1vdmUoKmxpbmVJdGVtcykgfX07Ci19Ci0KLXZv
aWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlJiB1
cGRhdGUpCi17Ci0gICAgZW5jb2RlciA8PCB1cGRhdGUuZXJyb3JzOwotICAgIGVuY29kZXIgPDwg
dXBkYXRlLm5ld1NoaXBwaW5nTWV0aG9kczsKLSAgICBlbmNvZGVyIDw8IHVwZGF0ZS5uZXdUb3Rh
bEFuZExpbmVJdGVtczsKLX0KLQotT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBk
YXRlPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT46OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIE9wdGlvbmFsPFZlY3RvcjxQYXltZW50RXJyb3I+
PiBlcnJvcnM7Ci0gICAgZGVjb2RlciA+PiBlcnJvcnM7Ci0gICAgaWYgKCFlcnJvcnMpCi0gICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCi0gICAgT3B0aW9uYWw8VmVjdG9yPEFwcGxl
UGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4+IG5ld1NoaXBwaW5nTWV0
aG9kczsKLSAgICBkZWNvZGVyID4+IG5ld1NoaXBwaW5nTWV0aG9kczsKLSAgICBpZiAoIW5ld1No
aXBwaW5nTWV0aG9kcykKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAgICBP
cHRpb25hbDxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXM+
IG5ld1RvdGFsQW5kTGluZUl0ZW1zOwotICAgIGRlY29kZXIgPj4gbmV3VG90YWxBbmRMaW5lSXRl
bXM7Ci0gICAgaWYgKCFuZXdUb3RhbEFuZExpbmVJdGVtcykKLSAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKLSAgICAKLSAgICByZXR1cm4ge3sgV1RGTW92ZSgqZXJyb3JzKSwgV1RGTW92ZSgq
bmV3U2hpcHBpbmdNZXRob2RzKSwgV1RGTW92ZSgqbmV3VG90YWxBbmRMaW5lSXRlbXMpIH19Owot
fQotCi12b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRh
dGUmIHVwZGF0ZSkKLXsKLSAgICBlbmNvZGVyIDw8IHVwZGF0ZS5uZXdUb3RhbEFuZExpbmVJdGVt
czsKLX0KLQotT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKLXsKLSAgICBPcHRpb25hbDxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90
YWxBbmRMaW5lSXRlbXM+IG5ld1RvdGFsQW5kTGluZUl0ZW1zOwotICAgIGRlY29kZXIgPj4gbmV3
VG90YWxBbmRMaW5lSXRlbXM7Ci0gICAgaWYgKCFuZXdUb3RhbEFuZExpbmVJdGVtcykKLSAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICByZXR1cm4ge3sgV1RGTW92ZSgqbmV3VG90YWxB
bmRMaW5lSXRlbXMpIH19OworICAgICAgICBSZWZQdHI8QXBwbGVQYXlFcnJvcj4gZXJyb3I7Cisg
ICAgICAgIGlmICgqaXNWYWxpZCkgeworICAgICAgICAgICAgZXJyb3IgPSBBcHBsZVBheUVycm9y
OjpkZWNvZGUoZGVjb2Rlcik7CisgICAgICAgICAgICBpZiAoIWVycm9yKQorICAgICAgICAgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIH0KKyAgICAgICAgZXJyb3JzLmFwcGVu
ZChXVEZNb3ZlKGVycm9yKSk7CisgICAgfQorICAgIHJldHVybiBlcnJvcnM7CiB9CiAKIHZvaWQg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50U2Vzc2lvbkVycm9yPjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnRTZXNzaW9uRXJyb3ImIGVycm9yKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCAyNjA5
OGVmZGRiNGEuLjM2YTFkZjM3OWU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTY3NywxMSArNjc3LDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50Q29udGFjdD4gewogICAgIHN0YXRpYyBPcHRp
b25hbDxXZWJDb3JlOjpQYXltZW50Q29udGFjdD4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudEVycm9yPiB7Ci0g
ICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50RXJy
b3ImKTsKLSAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEVycm9yPiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpQYXltZW50TWVyY2hhbnRTZXNzaW9uPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJik7CiAgICAgc3RhdGlj
IE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24+IGRlY29kZShEZWNvZGVy
Jik7CkBAIC02OTIsMTEgKzY4Nyw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6UGF5bWVudE1ldGhvZD4gewogICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpQ
YXltZW50TWV0aG9kPiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiB7Ci0gICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRl
Jik7Ci0gICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+IGRl
Y29kZShEZWNvZGVyJik7Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0PiB7CiAgICAgc3RhdGljIHZvaWQg
ZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVx
dWVzdCYpOwogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2Rl
ciYsIFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Jik7CkBAIC03MTEsMjQg
KzcwMSw5IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QXBwbGVQ
YXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6Ok1lcmNoYW50CiAgICAgc3RhdGljIFdBUk5fVU5VU0VE
X1JFVFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5
bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
OjpTaGlwcGluZ01ldGhvZD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9k
Jik7Ci0gICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRS
ZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxB
bmRMaW5lSXRlbXMmKTsKLSAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zPiBkZWNvZGUoRGVjb2RlciYpOwot
fTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTaGlwcGluZ0Nv
bnRhY3RVcGRhdGU+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZSYpOwotICAgIHN0YXRpYyBPcHRpb25hbDxXZWJD
b3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1w
bGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRl
PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTaGlw
cGluZ01ldGhvZFVwZGF0ZSYpOwotICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGlu
Z01ldGhvZFVwZGF0ZT4gZGVjb2RlKERlY29kZXImKTsKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8VmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpBcHBsZVBheUVycm9yPj4+IHsKKyAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6
QXBwbGVQYXlFcnJvcj4+Jik7CisgICAgc3RhdGljIE9wdGlvbmFsPFZlY3RvcjxSZWZQdHI8V2Vi
Q29yZTo6QXBwbGVQYXlFcnJvcj4+PiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAogdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50U2Vzc2lvbkVycm9yPiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENv
b3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXlt
ZW50Q29vcmRpbmF0b3IuY3BwCmluZGV4IDg2ZDAyZTE2YzY3ZC4uMGIxZDUzMzg5MTk2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3Jk
aW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5
bWVudENvb3JkaW5hdG9yLmNwcApAQCAtMzYsNiArMzYsOSBAQAogI2luY2x1ZGUgIldlYlBheW1l
bnRDb29yZGluYXRvck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJD
b3JlL0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQXBw
bGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0FwcGxlUGF5
U2hpcHBpbmdNZXRob2RVcGRhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9QYXltZW50Q29vcmRpbmF0b3IuaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+
CkBAIC0xMDksMTkgKzExMiwxOSBAQCB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxl
dGVNZXJjaGFudFZhbGlkYXRpb24oY29uc3QgV2ViQ29yZTo6UGF5bWVudE1lcgogICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpDb21wbGV0ZU1lcmNoYW50VmFs
aWRhdGlvbihwYXltZW50TWVyY2hhbnRTZXNzaW9uKSk7CiB9CiAKLXZvaWQgV2ViUGF5bWVudENv
b3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNv
cmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKK3ZvaWQgV2ViUGF5bWVudENvb3Jk
aW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6
OkFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYgdXBkYXRlKQogewotICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpDb21wbGV0ZVNoaXBwaW5nTWV0aG9k
U2VsZWN0aW9uKHVwZGF0ZSkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5OjpDb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKFdURk1vdmUodXBkYXRl
KSkpOwogfQogCi12b2lkIFdlYlBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVTaGlwcGluZ0Nv
bnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYm
IHVwZGF0ZSkKK3ZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nQ29u
dGFjdFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVw
ZGF0ZT4mJiB1cGRhdGUpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGF5bWVudENvb3JkaW5h
dG9yUHJveHk6OkNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKHVwZGF0ZSkpOworICAg
IHNlbmQoTWVzc2FnZXM6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpDb21wbGV0ZVNoaXBw
aW5nQ29udGFjdFNlbGVjdGlvbihXVEZNb3ZlKHVwZGF0ZSkpKTsKIH0KIAotdm9pZCBXZWJQYXlt
ZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxX
ZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKK3ZvaWQgV2ViUGF5bWVudENv
b3JkaW5hdG9yOjpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29y
ZTo6QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKIHsKLSAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Q29tcGxldGVQYXltZW50TWV0aG9k
U2VsZWN0aW9uKHVwZGF0ZSkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5OjpDb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUp
KSk7CiB9CiAKIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVBheW1lbnRTZXNz
aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYmIHJlc3Vs
dCkKQEAgLTE4OCw3ICsxOTEsNyBAQCB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvcjo6ZGlkQXV0
aG9yaXplUGF5bWVudChjb25zdCBXZWJDb3JlOjpQYXltZW50JiBwYXltZW50KQogICAgIHBheW1l
bnRDb29yZGluYXRvcigpLmRpZEF1dGhvcml6ZVBheW1lbnQocGF5bWVudCk7CiB9CiAKLXZvaWQg
V2ViUGF5bWVudENvb3JkaW5hdG9yOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBXZWJD
b3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBw
aW5nTWV0aG9kKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3I6OmRpZFNlbGVjdFNoaXBwaW5n
TWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0
aG9kKQogewogICAgIHBheW1lbnRDb29yZGluYXRvcigpLmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9k
KHNoaXBwaW5nTWV0aG9kKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuaAppbmRleCBjOWRjNjgyYjg3NTQu
LmU3YmE1ZWEyZTg3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxl
UGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuaApAQCAtNDAsNiArNDAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQYXltZW50Q29vcmRpbmF0b3I7CiBjbGFzcyBQYXltZW50
Q29udGFjdDsKIGNsYXNzIFBheW1lbnRTZXNzaW9uRXJyb3I7CitzdHJ1Y3QgQXBwbGVQYXlTaGlw
cGluZ01ldGhvZDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC02NCw5ICs2NSw5IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBvcGVuUGF5bWVudFNldHVwKGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvbWFpbk5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpIG92ZXJyaWRlOwogICAgIGJvb2wgc2hvd1BheW1lbnRVSShjb25zdCBVUkwm
IG9yaWdpbmF0aW5nVVJMLCBjb25zdCBWZWN0b3I8VVJMPiYgbGlua0ljb25VUkxzLCBjb25zdCBX
ZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYpIG92ZXJyaWRlOwogICAgIHZv
aWQgY29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24oY29uc3QgV2ViQ29yZTo6UGF5bWVudE1lcmNo
YW50U2Vzc2lvbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNl
bGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxX
ZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgY29t
cGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRo
b2RVcGRhdGU+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNl
bGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9w
dGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJD
b3JlOjpBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQg
Y29tcGxldGVQYXltZW50U2Vzc2lvbihPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXph
dGlvblJlc3VsdD4mJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGFib3J0UGF5bWVudFNlc3Npb24o
KSBvdmVycmlkZTsKQEAgLTk1LDcgKzk2LDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlIGhh
bmRsZXJzLgogICAgIHZvaWQgdmFsaWRhdGVNZXJjaGFudChjb25zdCBTdHJpbmcmIHZhbGlkYXRp
b25VUkxTdHJpbmcpOwogICAgIHZvaWQgZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBXZWJDb3Jl
OjpQYXltZW50Jik7Ci0gICAgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBXZWJD
b3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKTsKKyAg
ICB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2hp
cHBpbmdNZXRob2QmKTsKICAgICB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChjb25zdCBX
ZWJDb3JlOjpQYXltZW50Q29udGFjdCYpOwogICAgIHZvaWQgZGlkU2VsZWN0UGF5bWVudE1ldGhv
ZChjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9kJik7CiAgICAgdm9pZCBkaWRDYW5jZWxQYXlt
ZW50U2Vzc2lvbihXZWJDb3JlOjpQYXltZW50U2Vzc2lvbkVycm9yJiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50
Q29vcmRpbmF0b3IubWVzc2FnZXMuaW4KaW5kZXggZmE0NjI3MjU2NTczLi4zNmVjNGYxMjNmOGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50
Q29vcmRpbmF0b3IubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Fw
cGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5tZXNzYWdlcy5pbgpAQCAtMjgsNyArMjgsNyBA
QCBtZXNzYWdlcyAtPiBXZWJQYXltZW50Q29vcmRpbmF0b3IgTm90UmVmQ291bnRlZCB7CiAKICAg
ICBWYWxpZGF0ZU1lcmNoYW50KFN0cmluZyB2YWxpZGF0aW9uVVJMU3RyaW5nKQogICAgIERpZEF1
dGhvcml6ZVBheW1lbnQoV2ViQ29yZTo6UGF5bWVudCBwYXltZW50KQotICAgIERpZFNlbGVjdFNo
aXBwaW5nTWV0aG9kKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlw
cGluZ01ldGhvZCBzaGlwcGluZ01ldGhvZCkKKyAgICBEaWRTZWxlY3RTaGlwcGluZ01ldGhvZChz
dHJ1Y3QgV2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZCBzaGlwcGluZ01ldGhvZCkKICAg
ICBEaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3QoV2ViQ29yZTo6UGF5bWVudENvbnRhY3Qgc2hpcHBp
bmdDb250YWN0KQogICAgIERpZFNlbGVjdFBheW1lbnRNZXRob2QoV2ViQ29yZTo6UGF5bWVudE1l
dGhvZCBwYXltZW50TWV0aG9kKQogICAgIERpZENhbmNlbFBheW1lbnRTZXNzaW9uKFdlYkNvcmU6
OlBheW1lbnRTZXNzaW9uRXJyb3Igc2Vzc2lvbkVycm9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCmluZGV4IGNiM2EzMTNhZGIwOC4uMTNlOWZiNmFmYTJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjEtMDItMTYgIERldmluIFJvdXNzbyAgPGRy
b3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIGFkZCBhbiBgb2Jq
ZWN0IGRhdGFgIHRvIGBQYXltZW50RGV0YWlsc0Jhc2VgIHNvIHRoYXQgZGF0YSBzcGVjaWZpYyB0
byBBcHBsZSBQYXkgY2FuIGJlIHByb3ZpZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcyMzE5
OTQ2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50Lmg6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50Lm1tOgorICAgICAgICAo
V2ViUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50Ojpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0
aW9uKToKKyAgICAgICAgKFdlYlBheW1lbnRDb29yZGluYXRvckNsaWVudDo6Y29tcGxldGVTaGlw
cGluZ0NvbnRhY3RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xp
ZW50Ojpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24pOgorICAgICAgICBVc2UgYEFwcGxl
UGF5KlVwZGF0ZWAgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdHMgc3RydWN0dXJlIGluIGFub3Ro
ZXIgb2JqZWN0IChgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OipVcGRhdGVgKS4KKwog
MjAyMS0wMi0xNyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJl
ZHVjZSBleHBsaWNpdCB1c2FnZSBvZiBbb2JqQyBhdXRvcmVsZWFzZV0gaW4gV2ViS2l0IGV2ZW4g
ZnVydGhlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQuaAppbmRleCBmNDMx
YTRkZjUzOWYuLmIwMzkzNjMyMjYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGF5bWVudENvb3JkaW5hdG9y
Q2xpZW50LmgKQEAgLTQyLDkgKzQyLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIG9wZW5QYXltZW50
U2V0dXAoY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZG9t
YWluTmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgb3ZlcnJpZGU7CiAgICAg
Ym9vbCBzaG93UGF5bWVudFVJKGNvbnN0IFVSTCYsIGNvbnN0IFZlY3RvcjxVUkw+JiBsaW5rSWNv
blVSTHMsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Jikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBjb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3Jl
OjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21wbGV0ZVNo
aXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBk
YXRlPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0
aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJikgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29y
ZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21wbGV0ZVNo
aXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdN
ZXRob2RVcGRhdGU+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ0NvbnRh
Y3RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRh
dGU+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9u
KE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRTZXNzaW9uKE9wdGlvbmFsPFdlYkNvcmU6OlBh
eW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGFib3J0UGF5
bWVudFNlc3Npb24oKSBvdmVycmlkZTsKICAgICB2b2lkIGNhbmNlbFBheW1lbnRTZXNzaW9uKCkg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQubW0KaW5kZXgg
YmI5OTRiMzQ2OWZlLi41ZDhlMjg0NzJiMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBheW1lbnRDb29yZGluYXRvckNsaWVudC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRp
bmF0b3JDbGllbnQubW0KQEAgLTcyLDE1ICs3MiwxNSBAQCB2b2lkIFdlYlBheW1lbnRDb29yZGlu
YXRvckNsaWVudDo6Y29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24oY29uc3QgV2ViQ29yZTo6UGF5
bQogewogfQogCi12b2lkIFdlYlBheW1lbnRDb29yZGluYXRvckNsaWVudDo6Y29tcGxldGVTaGlw
cGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0
ZT4mJikKK3ZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50Ojpjb21wbGV0ZVNoaXBwaW5n
TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2RV
cGRhdGU+JiYpCiB7CiB9CiAKLXZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50Ojpjb21w
bGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ0Nv
bnRhY3RVcGRhdGU+JiYpCit2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvckNsaWVudDo6Y29tcGxl
dGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlw
cGluZ0NvbnRhY3RVcGRhdGU+JiYpCiB7CiB9CiAKLXZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9y
Q2xpZW50Ojpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6
UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikKK3ZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50
Ojpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQ
YXlQYXltZW50TWV0aG9kVXBkYXRlPiYmKQogewogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420892</attachid>
            <date>2021-02-18 18:01:48 -0800</date>
            <delta_ts>2021-02-18 18:41:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222002-20210218190146.patch</filename>
            <type>text/plain</type>
            <size>194022</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5OGUxZjY1M2FjZjRhZTEzYjBiYWZkYjU2OTRkYjE0NDVkOTRmMDRmLi5k
MmE3MGUyYTZkNGJmMGUzN2M1MTk3ZDAwNGJmOWI4YzQwMWViYmEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTM3IEBACisyMDIxLTAyLTE4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KKworICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBhZGQgYW4gYG9iamVjdCBkYXRhYCB0byBg
UGF5bWVudERldGFpbHNCYXNlYCBzbyB0aGF0IGRhdGEgc3BlY2lmaWMgdG8gQXBwbGUgUGF5IGNh
biBiZSBwcm92aWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIyMDAyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjMxOTk0Nj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudERldGFpbHNCYXNlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3BheW1l
bnRyZXF1ZXN0L1BheW1lbnREZXRhaWxzQmFzZS5oOgorCisgICAgICAgICogTW9kdWxlcy9hcHBs
ZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6QXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZTo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2U6OmRlY29kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlOjpkZWNvZGVCYXNlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oOgor
ICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmlk
bDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZTo6ZW5jb2Rl
IGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRNZXRob2RV
cGRhdGU6OmRlY29kZSk6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxl
UGF5U2hpcHBpbmdDb250YWN0VXBkYXRlOjplbmNvZGUgY29uc3QpOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlOjpkZWNvZGUpOiBBZGRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUu
aWRsOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVw
ZGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZTo6
ZW5jb2RlIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5n
TWV0aG9kVXBkYXRlOjpkZWNvZGUpOiBBZGRlZC4KKyAgICAgICAgSW50cm9kdWNlIGEgY29tbW9u
IGJhc2UgY2xhc3MgYEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2VgIGluc3RlYWQgb2YgcmVwZWF0
aW5nIG1lbWJlcnMgb24KKyAgICAgICAgZWFjaCBvZiB0aGUgYEFwcGxlUGF5KlVwZGF0ZWAgZmlu
YWwgY2xhc3Nlcy4KKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxz
VXBkYXRlRGF0YS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlEZXRhaWxzVXBkYXRlRGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5
RGV0YWlsc1VwZGF0ZURhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBs
ZVBheURldGFpbHNVcGRhdGVEYXRhOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQ
YXlEZXRhaWxzVXBkYXRlRGF0YTo6ZGVjb2RlRGF0YSk6CisgICAgICAgICogTW9kdWxlcy9wYXlt
ZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjaGVja0Fu
ZENhbm9uaWNhbGl6ZURldGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6
OnNldHRsZURldGFpbHNQcm9taXNlKToKKyAgICAgICAgSGF2ZSB0aGUgY29tbW9uIGJhc2UgY2xh
c3MgYWJvdmUgZXh0ZW5kIGZyb20gYEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGFgLCB3aGljaCBp
cyB1c2VkIHRvCisgICAgICAgIHB1bGwgdmFsdWVzIG91dCBvZiB0aGUgYG9iamVjdCBkYXRhYCBm
cm9tIGBQYXltZW50RGV0YWlsc0Jhc2VgLiBUaGlzIHdheSwgYm90aCBBcHBsZSBQYXkgSlMKKyAg
ICAgICAgYW5kIFBheW1lbnRSZXF1ZXN0IGNhbiBiZSBnaXZlbiB0aGUgc2FtZSBkYXRhIChhbGJl
aXQgaW4gc2xpZ2h0bHkgZGlmZmVyZW50IHBsYWNlcykgYW5kIGhhdmUKKyAgICAgICAgdGhlIHNh
bWUgY2FwYWJpbGl0aWVzLgorCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVy
cm9yLmg6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheUVycm9yOjplbmNvZGUgY29uc3QpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5RXJyb3I6OmRlY29kZSk6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvci5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29kZS5oOgorICAgICAgICAq
IE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oOgorICAgICAgICAq
IE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oOgor
ICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Qu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpzaGlw
cGluZ01ldGhvZHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5
bWVudFJlcXVlc3Q6OnNldFNoaXBwaW5nTWV0aG9kcyk6CisgICAgICAgICogTW9kdWxlcy9hcHBs
ZXBheS9BcHBsZVBheVNlc3Npb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxl
UGF5U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFsaWRhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFj
dFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246OmRpZFNlbGVj
dFNoaXBwaW5nTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbmlzaENvbnZlcnRpbmcpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kLmg6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kOjplbmNvZGUgY29uc3QpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2Q6OmRlY29kZSk6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZl
bnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RT
ZWxlY3RlZEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRo
b2RTZWxlY3RlZEV2ZW50OjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2Fw
cGxlcGF5L1BheW1lbnRDb29yZGluYXRvci5oOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkv
UGF5bWVudENvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRDb29yZGlu
YXRvcjo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50TWV0
aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRDb29yZGluYXRvcjo6ZGlk
U2VsZWN0U2hpcHBpbmdNZXRob2QpOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVu
dENvb3JkaW5hdG9yQ2xpZW50Lmg6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9QYXltZW50
SGVhZGVycy5oOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxp
ZGF0b3IubW06CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kKToKKyAg
ICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlU2hpcHBpbmdNZXRob2RzKToKKyAgICAgICAgKiBNb2R1
bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uLmg6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBh
eS9QYXltZW50U3VtbWFyeUl0ZW1zLmg6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9jb2Nv
YS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW06CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBh
eS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmg6CisgICAgICAgICogTW9k
dWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
Ojp2YWxpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjptZXJnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxl
UGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVTaGlwcGluZ01ldGhvZHMpOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcHV0ZVRvdGFsQW5kTGluZUl0ZW1zIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJv
cik6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21wdXRlRXJy
b3JzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNv
bXB1dGVBZGRyZXNzRXJyb3JzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5
bWVudEhhbmRsZXI6OmNvbXB1dGVQYXllckVycm9ycyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21wdXRlUGF5bWVudE1ldGhvZEVycm9ycyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpzaGlwcGluZ0Fk
ZHJlc3NVcGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEhhbmRsZXI6
OnNoaXBwaW5nT3B0aW9uVXBkYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1l
bnRIYW5kbGVyOjpwYXltZW50TWV0aG9kVXBkYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBs
ZVBheVBheW1lbnRIYW5kbGVyOjpyZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBh
eW1lbnRIYW5kbGVyOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZCk6CisgICAgICAgICogbG9hZGVy
L0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgICogdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5h
dG9yLmg6CisgICAgICAgICogdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vY2tQYXltZW50Q29vcmRpbmF0b3I6OnNob3dQYXltZW50VUkpOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja1BheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVTaGlwcGlu
Z01ldGhvZFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vY2tQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0
U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYXltZW50Q29vcmRpbmF0b3I6OmNv
bXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUGF5
bWVudENvb3JkaW5hdG9yOjpjaGFuZ2VTaGlwcGluZ09wdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVBheW1lbnRTZXNzaW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1vY2tQYXltZW50Q29vcmRpbmF0b3I6OnVwZGF0ZVRvdGFsQW5kTGluZUl0
ZW1zKTogRGVsZXRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL01vY2tQYXltZW50RXJyb3IuaDoKKyAg
ICAgICAgVXNlIGBBcHBsZVBheSpVcGRhdGVgIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgaXRzIHN0
cnVjdHVyZSBpbiBhbm90aGVyIG9iamVjdCAoYEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
OjoqVXBkYXRlYCkuCisgICAgICAgIFVzZSBgQXBwbGVQYXlMaW5lSXRlbWAgaW5zdGVhZCBvZiBk
dXBsaWNhdGluZyBpdHMgc3RydWN0dXJlIGluIGFub3RoZXIgb2JqZWN0IChgQXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zYCkuCisgICAgICAgIFVzZSBgQXBw
bGVQYXlTaGlwcGluZ01ldGhvZGAgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdHMgc3RydWN0dXJl
IGluIGFub3RoZXIgb2JqZWN0IChgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBw
aW5nTWV0aG9kYCkuCisgICAgICAgIFVzZSBgQXBwbGVQYXlFcnJvcipgIGluc3RlYWQgb2YgZHVw
bGljYXRpbmcgaXRzIHN0cnVjdHVyZSBpbiBhbm90aGVyIG9iamVjdCAoYEFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0OjpQYXltZW50RXJyb3I6OipgKS4KKworICAgICAgICAqIE1vZHVsZXMv
YXBwbGVwYXkvUGF5bWVudE1ldGhvZFVwZGF0ZS5oOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVw
YXkvY29jb2EvUGF5bWVudE1ldGhvZFVwZGF0ZUNvY29hLm1tOiBSZW1vdmVkLgorICAgICAgICBE
byB0aGUgY29udmVyc2lvbiBmcm9tIGBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVgIHRvIGBQ
S1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZWAKKyAgICAgICAgaW4gdGhlIFVJUHJv
Y2Vzcy4KKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50UmVxdWVz
dC5oOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFsaWRhdGUpOgorICAgICAgICAqIE1vZHVs
ZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5oOgorCisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFBs
YXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTAyLTE4ICBEZXZpbiBS
b3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBh
ZGQgYW4gYG9iamVjdCBkYXRhYCB0byBgUGF5bWVudEl0ZW1gIHNvIHRoYXQgZGF0YSBzcGVjaWZp
YyB0byBBcHBsZSBQYXkgY2FuIGJlIHByb3ZpZGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFhNDA3ZjVjNzRkMDJj
ZjE2ZjMyZWZmMGUxOGE5MTA3ZTU5YjMyZjUuLmE2ZTBkYzI0NzFiYjUzOTU2YWRkZTI0N2ZhZGQ0
MmE2YTQ4YzNlOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjEtMDItMTggIERldmlu
IFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtQYXltZW50IFJlcXVlc3Rd
IGFkZCBhbiBgb2JqZWN0IGRhdGFgIHRvIGBQYXltZW50RGV0YWlsc0Jhc2VgIHNvIHRoYXQgZGF0
YSBzcGVjaWZpYyB0byBBcHBsZSBQYXkgY2FuIGJlIHByb3ZpZGVkCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMDIKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzcyMzE5OTQ2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogUGxhdGZvcm0vY29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIu
aDoKKyAgICAgICAgKiBQbGF0Zm9ybS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRl
ci5tbToKKyAgICAgICAgKFdlYktpdDo6dG9QS1BheW1lbnRFcnJvckNvZGUpOgorICAgICAgICAo
V2ViS2l0Ojp0b05TRXJyb3IpOgorICAgICAgICAoV2ViS2l0Ojp0b05TRXJyb3JzKToKKyAgICAg
ICAgKFdlYktpdDo6dG9QS1NoaXBwaW5nTWV0aG9kcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1l
bnRBdXRob3JpemF0aW9uUHJlc2VudGVyOjpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxl
dGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50QXV0
aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbik6Cisg
ICAgICAgICogUGxhdGZvcm0vY29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1t
OgorICAgICAgICAodG9TaGlwcGluZ01ldGhvZCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHk6CisgICAgICAgICogU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFNoYXJlZC9BcHBsZVBheS9XZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eS5oOgorICAgICAgICAqIFNoYXJlZC9BcHBsZVBheS9XZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1lbnRDb29y
ZGluYXRvclByb3h5Ojpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OmNvbXBsZXRlU2hpcHBpbmdDb250
YWN0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHk6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwcmVzZW50ZXJEaWRTZWxlY3RTaGlwcGluZ01ldGhv
ZCk6CisgICAgICAgICogU2hhcmVkL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRv
clByb3h5Q29jb2EuaDoKKyAgICAgICAgKiBTaGFyZWQvQXBwbGVQYXkvY29jb2EvV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6dG9QS1NoaXBwaW5n
TWV0aG9kKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBs
YXRmb3JtUGF5bWVudFJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eTo6cGxhdGZvcm1Db21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtQ29tcGxl
dGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50
Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1Db21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24p
OgorICAgICAgICAoV2ViS2l0OjpmaW5pc2hDcmVhdGluZyk6IERlbGV0ZWQuCisgICAgICAgICog
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9X
ZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD46OmRlY29kZSk6CisgICAgICAg
IChJUEM6OkFyZ3VtZW50Q29kZXI8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q+OjpkZWNv
ZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlF
cnJvcj4+Pjo6ZW5jb2RlKTogQWRkZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VmVj
dG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4+OjpkZWNvZGUpOiBBZGRlZC4KKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50RXJyb3I+OjplbmNvZGUpOiBEZWxldGVk
LgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRFcnJvcj46OmRl
Y29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5
bWVudE1ldGhvZFVwZGF0ZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT46OmRlY29kZSk6IERlbGV0ZWQu
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVl
c3Q6OlNoaXBwaW5nTWV0aG9kPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+
OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEFwcGxlUGF5
U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz46OmVuY29kZSk6IERlbGV0
ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+OjplbmNvZGUp
OiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNoaXBwaW5n
Q29udGFjdFVwZGF0ZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+OjplbmNvZGUpOiBEZWxldGVkLgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRl
Pjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBh
eW1lbnRDb29yZGluYXRvci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0FwcGxl
UGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXBwbGVQ
YXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVu
dENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNl
bGVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxl
dGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENv
b3JkaW5hdG9yOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZCk6CisgICAgICAgIFVzZSBgQXBwbGVQ
YXkqVXBkYXRlYCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0cyBzdHJ1Y3R1cmUgaW4gYW5vdGhl
ciBvYmplY3QgKGBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6KlVwZGF0ZWApLgorICAg
ICAgICBVc2UgYEFwcGxlUGF5U2hpcHBpbmdNZXRob2RgIGluc3RlYWQgb2YgZHVwbGljYXRpbmcg
aXRzIHN0cnVjdHVyZSBpbiBhbm90aGVyIG9iamVjdCAoYEFwcGxlUGF5U2Vzc2lvblBheW1lbnRS
ZXF1ZXN0OjpTaGlwcGluZ01ldGhvZGApLgorICAgICAgICBVc2UgYEFwcGxlUGF5RXJyb3IqYCBp
bnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0cyBzdHJ1Y3R1cmUgaW4gYW5vdGhlciBvYmplY3QgKGBB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6UGF5bWVudEVycm9yOjoqYCkuCisKIDIwMjEt
MDItMTggIEp1bGlhbiBHb256YWxleiAgPGp1bGlhbl9hX2dvbnphbGV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBDcmFzaCBpbiBJUEM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8
U2VjS2V5Y2hhaW5JdGVtUmVmPiYgcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IDM0ZGEzOWUxYjlkOWNlNzRjNjc0NmQzNWJhNjk2OWMzNTIyNmU1N2MuLjdiOWM4YTJhMjFj
MzRiZmJkY2YyYzc1NDA3ZGY5ZGY2NjYxNTgyYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMS0wMi0xOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgW1BheW1lbnQgUmVxdWVzdF0gYWRkIGFuIGBvYmplY3QgZGF0
YWAgdG8gYFBheW1lbnREZXRhaWxzQmFzZWAgc28gdGhhdCBkYXRhIHNwZWNpZmljIHRvIEFwcGxl
IFBheSBjYW4gYmUgcHJvdmlkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMjAwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzIzMTk5NDY+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQubW06CisgICAgICAgIChXZWJQYXlt
ZW50Q29vcmRpbmF0b3JDbGllbnQ6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24pOgor
ICAgICAgICAoV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50Ojpjb21wbGV0ZVNoaXBwaW5nQ29u
dGFjdFNlbGVjdGlvbik6CisgICAgICAgIChXZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQ6OmNv
bXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbik6CisgICAgICAgIFVzZSBgQXBwbGVQYXkqVXBk
YXRlYCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0cyBzdHJ1Y3R1cmUgaW4gYW5vdGhlciBvYmpl
Y3QgKGBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6KlVwZGF0ZWApLgorCiAyMDIxLTAy
LTE4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFBs
dW1iIGFuIE9wdGlvbmFsPFBhZ2VJZGVudGlmaWVyPiB0aHJvdWdoIFdlYlBhc3RlYm9hcmRQcm94
eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5k
ZXggYmU5MGQ0M2QwYzEyOGIxNGVkNjMwOTUyNTJmNGFmYTRhNDAxNmUwNS4uZDJmNmVjYzFiMGY3
ZGU0YWQzOTJlZGRjM2QxNWM0NzAxMTcwMDcwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
RGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0yNCw2ICsyNCw4IEBAICQoUFJPSkVDVF9E
SVIpL0Rlcml2ZWRTb3VyY2VzLm1ha2UKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYWlycGxheS9X
ZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50LmlkbAogJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNhbmNlbEV2ZW50LmlkbAogJChQUk9KRUNUX0RJUikv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5pZGwKKyQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5pZGwKKyQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5pZGwKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvci5pZGwKICQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvckNvZGUuaWRsCiAkKFBST0pFQ1Rf
RElSKS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaWRsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDhj
MWYyNWZjMTcyZmVkYjc3YzBhNzQ3YTEyYTlkYjBhOTA4NTdjOWQuLjJjYTYzYTYxZjkzMmRiNmQz
ZjI5ZDkwNzE2MDc2M2JhMjI2YmNjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBAIC04Niw2ICs4NiwxMCBAQCAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5Q2FuY2VsRXZlbnQuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5
Q2FuY2VsRXZlbnQuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNBcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlDb250YWN0RmllbGQuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcHBsZVBheURldGFpbHNVcGRhdGVC
YXNlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNB
cHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVk
U291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5jcHAKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlEZXRhaWxzVXBk
YXRlRGF0YS5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U0FwcGxlUGF5RXJyb3IuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0FwcGxlUGF5RXJyb3IuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNBcHBsZVBheUVycm9yQ29kZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCmluZGV4IGE4ZDg3ZWUxOTJlYTdkYjhlMTcxN2FjNDBlNzAzODYwNmQ1NTM1NmIu
LjE2MjY2OGU3NzEyYzVjMWEyZmE4NWU4MWQ3NzZjYzEzZDYxMGY5NzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMubWFrZQpAQCAtNTMsNiArNTMsOCBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxh
YmlsaXR5RXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlDYW5jZWxFdmVudC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheUNvbnRhY3RGaWVsZC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaWRsIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxl
cy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmlkbCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRl
QmFzZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmI3OTYwNjcxMjhjNTY3NzU5ZTNkNGVjZWJiZTkzMGQzNDMwZjQ5
ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0Fw
cGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorCisjaW5jbHVkZSAiQXBwbGVQ
YXlEZXRhaWxzVXBkYXRlRGF0YS5oIgorI2luY2x1ZGUgIkFwcGxlUGF5TGluZUl0ZW0uaCIKKyNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEFw
cGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UgOiBwdWJsaWMgQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0
YSB7CisgICAgQXBwbGVQYXlMaW5lSXRlbSBuZXdUb3RhbDsKKyAgICBWZWN0b3I8QXBwbGVQYXlM
aW5lSXRlbT4gbmV3TGluZUl0ZW1zOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBPcHRpb25hbDxBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlPiBkZWNvZGUoRGVjb2RlciYp
OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wg
ZGVjb2RlQmFzZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9p
ZCBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKK3sKKyAgICBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhOjplbmNvZGUoZW5jb2Rlcik7Cisg
ICAgZW5jb2RlciA8PCBuZXdUb3RhbDsKKyAgICBlbmNvZGVyIDw8IG5ld0xpbmVJdGVtczsKK30K
KwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPEFwcGxlUGF5RGV0YWlsc1VwZGF0
ZUJhc2U+IEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2U6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQoreworICAgIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UgcmVzdWx0OworICAgIGlmICghcmVz
dWx0LmRlY29kZUJhc2UoZGVjb2RlcikpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgQXBw
bGVQYXlEZXRhaWxzVXBkYXRlQmFzZTo6ZGVjb2RlQmFzZShEZWNvZGVyJiBkZWNvZGVyKQorewor
ICAgIGlmICghZGVjb2RlRGF0YShkZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisj
ZGVmaW5lIERFQ09ERShuYW1lLCB0eXBlKSBcCisgICAgT3B0aW9uYWw8dHlwZT4gbmFtZTsgXAor
ICAgIGRlY29kZXIgPj4gbmFtZTsgXAorICAgIGlmICghbmFtZSkgXAorICAgICAgICByZXR1cm4g
ZmFsc2U7IFwKKyAgICB0aGlzLT5uYW1lID0gV1RGTW92ZSgqbmFtZSk7IFwKKworICAgIERFQ09E
RShuZXdUb3RhbCwgQXBwbGVQYXlMaW5lSXRlbSkKKyAgICBERUNPREUobmV3TGluZUl0ZW1zLCBW
ZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4pCisKKyN1bmRlZiBERUNPREUKKworICAgIHJldHVybiB0
cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQ
TEVfUEFZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheURldGFpbHNVcGRhdGVCYXNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjE1ZTg2ZGVmYzIy
ZDI5ZTNhYjlhMDRkZWQ2OTY3YTg4YjFkNWZmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5pZGwKQEAg
LTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1BUFBMRV9QQVks
CitdIGRpY3Rpb25hcnkgQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZSB7CisgICAgcmVxdWlyZWQg
QXBwbGVQYXlMaW5lSXRlbSBuZXdUb3RhbDsKKyAgICBzZXF1ZW5jZTxBcHBsZVBheUxpbmVJdGVt
PiBuZXdMaW5lSXRlbXM7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MDc4
Zjk1NzIxNDNiZGUzODBmZDRlNDRhYmM0ODMxOGY4Yzc5MmQ2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVEYXRh
LmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKEFQUExFX1BBWSkKKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW5jbHVkZSA8
V2ViS2l0QWRkaXRpb25zL0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGFBZGRpdGlvbnMuaD4KKyNl
bmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBBcHBsZVBheURldGFpbHNVcGRh
dGVEYXRhIHsKKyNpZiBkZWZpbmVkKEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGFBZGRpdGlvbnNf
bWVtYmVycykKKyAgICBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhQWRkaXRpb25zX21lbWJlcnMK
KyNlbmRpZgorCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxB
cHBsZVBheURldGFpbHNVcGRhdGVEYXRhPiBkZWNvZGUoRGVjb2RlciYpOworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4gV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlRGF0YShEZWNv
ZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBBcHBsZVBheURldGFp
bHNVcGRhdGVEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyNpZiBkZWZp
bmVkKEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGFBZGRpdGlvbnNfZW5jb2RlKQorICAgIEFwcGxl
UGF5RGV0YWlsc1VwZGF0ZURhdGFBZGRpdGlvbnNfZW5jb2RlCisjZWxzZQorICAgIFVOVVNFRF9Q
QVJBTShlbmNvZGVyKTsKKyNlbmRpZgorfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0
aW9uYWw8QXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YT4gQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0
YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgQXBwbGVQYXlEZXRhaWxzVXBkYXRl
RGF0YSByZXN1bHQ7CisgICAgaWYgKCFyZXN1bHQuZGVjb2RlRGF0YShkZWNvZGVyKSkKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPgorYm9vbCBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhOjpkZWNvZGVE
YXRhKERlY29kZXImIGRlY29kZXIpCit7CisjZGVmaW5lIERFQ09ERShuYW1lLCB0eXBlKSBcCisg
ICAgT3B0aW9uYWw8dHlwZT4gbmFtZTsgXAorICAgIGRlY29kZXIgPj4gbmFtZTsgXAorICAgIGlm
ICghbmFtZSkgXAorICAgICAgICByZXR1cm4gZmFsc2U7IFwKKyAgICB0aGlzLT5uYW1lID0gV1RG
TW92ZSgqbmFtZSk7IFwKKworI2lmIGRlZmluZWQoQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YUFk
ZGl0aW9uc19kZWNvZGVEYXRhKQorICAgIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGFBZGRpdGlv
bnNfZGVjb2RlRGF0YQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CisjZW5kaWYK
KworI3VuZGVmIERFQ09ERQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVE
YXRhLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42NzE4ODE0MjA1MzIyZjFmM2UyOTQyZDNiOTUyYTQzMjVmMzY0
NzhhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmlkbApAQCAtMCwwICsxLDI5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIENvbmRpdGlvbmFsPUFQUExFX1BBWSwKK10gZGljdGlvbmFyeSBBcHBsZVBheURl
dGFpbHNVcGRhdGVEYXRhIHsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L0FwcGxlUGF5RXJyb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS9BcHBsZVBheUVycm9yLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjc3
NjdjMzBhZDg3Yjc2NmRjZjhlZmFmNjM0YmRkMTRjMzZkZmQ4Zi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L0FwcGxlUGF5RXJyb3IuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJBcHBsZVBheUVycm9yLmgi
Ci0KLSNpZiBFTkFCTEUoQVBQTEVfUEFZKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVJlZjxB
cHBsZVBheUVycm9yPiBBcHBsZVBheUVycm9yOjpjcmVhdGUoQ29kZSBjb2RlLCBPcHRpb25hbDxD
b250YWN0RmllbGQ+IGNvbnRhY3RGaWVsZCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQotewotICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEFwcGxlUGF5RXJyb3IgeyBjb2RlLCBjb250YWN0RmllbGQs
IG1lc3NhZ2UgfSk7Ci19Ci0KLUFwcGxlUGF5RXJyb3I6OkFwcGxlUGF5RXJyb3IoQ29kZSBjb2Rl
LCBPcHRpb25hbDxDb250YWN0RmllbGQ+IGNvbnRhY3RGaWVsZCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlKQotICAgIDogbV9jb2RlIHsgY29kZSB9Ci0gICAgLCBtX2NvbnRhY3RGaWVsZCB7IGNvbnRh
Y3RGaWVsZCB9Ci0gICAgLCBtX21lc3NhZ2UgeyBtZXNzYWdlIH0KLXsKLX0KLQotQXBwbGVQYXlF
cnJvcjo6fkFwcGxlUGF5RXJyb3IoKSA9IGRlZmF1bHQ7Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvci5oCmluZGV4IDMzMWRl
MTJjNDU5NjhlMGViNDA3NDZmMDNkOWNhOGIxZWJlNTAyNDguLjI1OWIyMGY0NDQyNmY3ZjExNjIz
NWQ1NTZkMjY3ZjE4NmRlODVjNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlFcnJvci5oCkBAIC0yNywzNyArMjcsNzYgQEAKIAogI2lmIEVOQUJMRShB
UFBMRV9QQVkpCiAKLSNpbmNsdWRlICJBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oIgor
I2luY2x1ZGUgIkFwcGxlUGF5RXJyb3JDb2RlLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlFcnJvckNv
bnRhY3RGaWVsZC5oIgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9S
ZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBBcHBsZVBheUVycm9yIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8QXBwbGVQ
YXlFcnJvcj4gewogcHVibGljOgotICAgIHVzaW5nIENvZGUgPSBQYXltZW50RXJyb3I6OkNvZGU7
Ci0gICAgdXNpbmcgQ29udGFjdEZpZWxkID0gUGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ7Cisg
ICAgc3RhdGljIFJlZjxBcHBsZVBheUVycm9yPiBjcmVhdGUoQXBwbGVQYXlFcnJvckNvZGUgY29k
ZSwgT3B0aW9uYWw8QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZD4gY29udGFjdEZpZWxkLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBB
cHBsZVBheUVycm9yKGNvZGUsIGNvbnRhY3RGaWVsZCwgbWVzc2FnZSkpOworICAgIH0KIAotICAg
IHN0YXRpYyBSZWY8QXBwbGVQYXlFcnJvcj4gY3JlYXRlKENvZGUsIE9wdGlvbmFsPENvbnRhY3RG
aWVsZD4sIGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7Ci0gICAgdmlydHVhbCB+QXBwbGVQYXlFcnJv
cigpOworICAgIHZpcnR1YWwgfkFwcGxlUGF5RXJyb3IoKSA9IGRlZmF1bHQ7CiAKLSAgICBDb2Rl
IGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2NvZGU7IH0KLSAgICB2b2lkIHNldENvZGUoQ29kZSBj
b2RlKSB7IG1fY29kZSA9IGNvZGU7IH0KKyAgICBBcHBsZVBheUVycm9yQ29kZSBjb2RlKCkgY29u
c3QgeyByZXR1cm4gbV9jb2RlOyB9CisgICAgdm9pZCBzZXRDb2RlKEFwcGxlUGF5RXJyb3JDb2Rl
IGNvZGUpIHsgbV9jb2RlID0gY29kZTsgfQogCi0gICAgT3B0aW9uYWw8Q29udGFjdEZpZWxkPiBj
b250YWN0RmllbGQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRhY3RGaWVsZDsgfQotICAgIHZvaWQg
c2V0Q29udGFjdEZpZWxkKE9wdGlvbmFsPENvbnRhY3RGaWVsZD4gY29udGFjdEZpZWxkKSB7IG1f
Y29udGFjdEZpZWxkID0gY29udGFjdEZpZWxkOyB9CisgICAgT3B0aW9uYWw8QXBwbGVQYXlFcnJv
ckNvbnRhY3RGaWVsZD4gY29udGFjdEZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV9jb250YWN0Rmll
bGQ7IH0KKyAgICB2b2lkIHNldENvbnRhY3RGaWVsZChPcHRpb25hbDxBcHBsZVBheUVycm9yQ29u
dGFjdEZpZWxkPiBjb250YWN0RmllbGQpIHsgbV9jb250YWN0RmllbGQgPSBjb250YWN0RmllbGQ7
IH0KIAogICAgIFN0cmluZyBtZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9tZXNzYWdlOyB9CiAg
ICAgdm9pZCBzZXRNZXNzYWdlKFN0cmluZyYmIG1lc3NhZ2UpIHsgbV9tZXNzYWdlID0gV1RGTW92
ZShtZXNzYWdlKTsgfQogCi1wcml2YXRlOgotICAgIEFwcGxlUGF5RXJyb3IoQ29kZSwgT3B0aW9u
YWw8Q29udGFjdEZpZWxkPiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFJlZlB0cjxBcHBsZVBheUVycm9yPiBkZWNvZGUoRGVjb2Rl
ciYpOwogCi0gICAgQ29kZSBtX2NvZGU7Ci0gICAgT3B0aW9uYWw8Q29udGFjdEZpZWxkPiBtX2Nv
bnRhY3RGaWVsZDsKK3ByaXZhdGU6CisgICAgQXBwbGVQYXlFcnJvcihBcHBsZVBheUVycm9yQ29k
ZSBjb2RlLCBPcHRpb25hbDxBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkPiBjb250YWN0RmllbGQs
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKKyAgICAgICAgOiBtX2NvZGUoY29kZSkKKyAgICAgICAg
LCBtX2NvbnRhY3RGaWVsZChjb250YWN0RmllbGQpCisgICAgICAgICwgbV9tZXNzYWdlKG1lc3Nh
Z2UpCisgICAgeworICAgIH0KKworICAgIEFwcGxlUGF5RXJyb3JDb2RlIG1fY29kZTsKKyAgICBP
cHRpb25hbDxBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkPiBtX2NvbnRhY3RGaWVsZDsKICAgICBT
dHJpbmcgbV9tZXNzYWdlOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQXBw
bGVQYXlFcnJvcjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rl
ciA8PCBtX2NvZGU7CisgICAgZW5jb2RlciA8PCBtX2NvbnRhY3RGaWVsZDsKKyAgICBlbmNvZGVy
IDw8IG1fbWVzc2FnZTsKIH0KIAordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK1JlZlB0cjxBcHBs
ZVBheUVycm9yPiBBcHBsZVBheUVycm9yOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyNk
ZWZpbmUgREVDT0RFKG5hbWUsIHR5cGUpIFwKKyAgICBPcHRpb25hbDx0eXBlPiBuYW1lOyBcCisg
ICAgZGVjb2RlciA+PiBuYW1lOyBcCisgICAgaWYgKCFuYW1lKSBcCisgICAgICAgIHJldHVybiBu
dWxscHRyOyBcCisKKyAgICBERUNPREUoY29kZSwgQXBwbGVQYXlFcnJvckNvZGUpCisgICAgREVD
T0RFKGNvbnRhY3RGaWVsZCwgT3B0aW9uYWw8QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZD4pCisg
ICAgREVDT0RFKG1lc3NhZ2UsIFN0cmluZykKKworI3VuZGVmIERFQ09ERQorCisgICAgcmV0dXJu
IEFwcGxlUGF5RXJyb3I6OmNyZWF0ZShXVEZNb3ZlKCpjb2RlKSwgV1RGTW92ZSgqY29udGFjdEZp
ZWxkKSwgV1RGTW92ZSgqbWVzc2FnZSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheUVycm9yQ29kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eUVycm9yQ29kZS5oCmluZGV4IDJmYWVlZjdkYzg3ZTBkYmQyZDhiZGJjNWU4NzZhMjExYjg1ZTZm
NmIuLjg3YzYwMTVlMzFjOTgxOWI1OWNlNDIxZTQyYjJlODMxZjIxMzlhZTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvckNvZGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3JDb2RlLmgKQEAg
LTI3LDEyICsyNywzMSBAQAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAotI2luY2x1ZGUgIkFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBBcHBsZVBheUVycm9yQ29kZSA9IFBheW1l
bnRFcnJvcjo6Q29kZTsKK2VudW0gY2xhc3MgQXBwbGVQYXlFcnJvckNvZGUgeworICAgIFVua25v
d24sCisgICAgU2hpcHBpbmdDb250YWN0SW52YWxpZCwKKyAgICBCaWxsaW5nQ29udGFjdEludmFs
aWQsCisgICAgQWRkcmVzc1Vuc2VydmljZWFibGUsCit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdl
YkNvcmU6OkFwcGxlUGF5RXJyb3JDb2RlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVl
czwKKyAgICAgICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvZGUsCisgICAgICAgIFdlYkNvcmU6
OkFwcGxlUGF5RXJyb3JDb2RlOjpVbmtub3duLAorICAgICAgICBXZWJDb3JlOjpBcHBsZVBheUVy
cm9yQ29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxpZCwKKyAgICAgICAgV2ViQ29yZTo6QXBwbGVQ
YXlFcnJvckNvZGU6OkJpbGxpbmdDb250YWN0SW52YWxpZCwKKyAgICAgICAgV2ViQ29yZTo6QXBw
bGVQYXlFcnJvckNvZGU6OkFkZHJlc3NVbnNlcnZpY2VhYmxlCisgICAgPjsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdURgorCiAjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVs
ZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29udGFj
dEZpZWxkLmgKaW5kZXggZjZhNzBkMDcwN2NiOWY1YWU1N2I5MGQyY2M0MWZmMzBhYjdjYTExMC4u
MTY0ZGJmYWIyODIyN2M1NGU4Y2QyZDI5NzU1N2YwMjdlOWVlNmNkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29udGFj
dEZpZWxkLmgKQEAgLTI3LDEyICsyNyw0OSBAQAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAot
I2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBBcHBsZVBheUVycm9y
Q29udGFjdEZpZWxkID0gUGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ7CitlbnVtIGNsYXNzIEFw
cGxlUGF5RXJyb3JDb250YWN0RmllbGQgeworICAgIFBob25lTnVtYmVyLAorICAgIEVtYWlsQWRk
cmVzcywKKyAgICBOYW1lLAorICAgIFBob25ldGljTmFtZSwKKyAgICBQb3N0YWxBZGRyZXNzLAor
ICAgIEFkZHJlc3NMaW5lcywKKyAgICBTdWJMb2NhbGl0eSwKKyAgICBMb2NhbGl0eSwKKyAgICBQ
b3N0YWxDb2RlLAorICAgIFN1YkFkbWluaXN0cmF0aXZlQXJlYSwKKyAgICBBZG1pbmlzdHJhdGl2
ZUFyZWEsCisgICAgQ291bnRyeSwKKyAgICBDb3VudHJ5Q29kZSwKK307CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAorbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1U
cmFpdHM8V2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZD4geworICAgIHVzaW5nIHZh
bHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0
RmllbGQsCisgICAgICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlBob25l
TnVtYmVyLAorICAgICAgICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpFbWFp
bEFkZHJlc3MsCisgICAgICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6Ok5h
bWUsCisgICAgICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlBob25ldGlj
TmFtZSwKKyAgICAgICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UG9zdGFs
QWRkcmVzcywKKyAgICAgICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6QWRk
cmVzc0xpbmVzLAorICAgICAgICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpT
dWJMb2NhbGl0eSwKKyAgICAgICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6
TG9jYWxpdHksCisgICAgICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlBv
c3RhbENvZGUsCisgICAgICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlN1
YkFkbWluaXN0cmF0aXZlQXJlYSwKKyAgICAgICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRh
Y3RGaWVsZDo6QWRtaW5pc3RyYXRpdmVBcmVhLAorICAgICAgICBXZWJDb3JlOjpBcHBsZVBheUVy
cm9yQ29udGFjdEZpZWxkOjpDb3VudHJ5LAorICAgICAgICBXZWJDb3JlOjpBcHBsZVBheUVycm9y
Q29udGFjdEZpZWxkOjpDb3VudHJ5Q29kZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
VEYKKwogI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50QXV0aG9y
aXphdGlvblJlc3VsdC5oCmluZGV4IDQ4ZDRiNzdiZWQxODZkMjg2NGY5ZWI1ZmExYjY3MDZhZGQ2
MTgzMmIuLjAzZDE3ZDgxOGQ1M2RlZGI3MThiZDU4NzFiN2Q2YTY5NmNjY2M1MmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50QXV0aG9y
aXphdGlvblJlc3VsdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYg
RU5BQkxFKEFQUExFX1BBWSkKIAogI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3IuaCIKKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxl
UGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaAppbmRleCBkYjQ0NjY0YTVjY2YzMjM0Y2Y0
ZWU2NWI5NTE0OWQzZTU0YTIwZTc1Li4yOTQ2Y2NjODk5NDRhODIxYzg5ZGQ3ZDhjY2UxOWIzZmQ3
MGUzMjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxl
UGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmgKQEAgLTI3LDE2ICsyNyw1NCBAQAog
CiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAotI2luY2x1ZGUgIkFwcGxlUGF5TGluZUl0ZW0uaCIK
KyNpbmNsdWRlICJBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmgiCisjaW5jbHVkZSA8d3RmL09w
dGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotc3RydWN0IEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZSB7Ci0gICAgQXBw
bGVQYXlMaW5lSXRlbSBuZXdUb3RhbDsKLSAgICBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4gbmV3
TGluZUl0ZW1zOworc3RydWN0IEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZSBmaW5hbCA6IHB1
YmxpYyBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlIHsKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0lO
U1RBTExNRU5UUykKICAgICBTdHJpbmcgaW5zdGFsbG1lbnRHcm91cElkZW50aWZpZXI7CisjZW5k
aWYgLy8gRU5BQkxFKEFQUExFX1BBWV9JTlNUQUxMTUVOVFMpCisKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4g
ZGVjb2RlKERlY29kZXImKTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEFw
cGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
Cit7CisgICAgQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZTo6ZW5jb2RlKGVuY29kZXIpOworI2lm
IEVOQUJMRShBUFBMRV9QQVlfSU5TVEFMTE1FTlRTKQorICAgIGVuY29kZXIgPDwgaW5zdGFsbG1l
bnRHcm91cElkZW50aWZpZXI7CisjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWV9JTlNUQUxMTUVO
VFMpCiB9CiAKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxBcHBsZVBheVBheW1l
bnRNZXRob2RVcGRhdGU+IEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZTo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlIHJlc3VsdDsK
KworICAgIGlmICghcmVzdWx0LmRlY29kZUJhc2UoZGVjb2RlcikpCisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisKKyNkZWZpbmUgREVDT0RFKG5hbWUsIHR5cGUpIFwKKyAgICBPcHRpb25h
bDx0eXBlPiBuYW1lOyBcCisgICAgZGVjb2RlciA+PiBuYW1lOyBcCisgICAgaWYgKCFuYW1lKSBc
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7IFwKKyAgICByZXN1bHQubmFtZSA9IFdURk1v
dmUoKm5hbWUpOyBcCisKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0lOU1RBTExNRU5UUykKKyAgICBE
RUNPREUoaW5zdGFsbG1lbnRHcm91cElkZW50aWZpZXIsIFN0cmluZykKKyNlbmRpZiAvLyBFTkFC
TEUoQVBQTEVfUEFZX0lOU1RBTExNRU5UUykKKworI3VuZGVmIERFQ09ERQorCisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0aG9k
VXBkYXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXlt
ZW50TWV0aG9kVXBkYXRlLmlkbAppbmRleCBjMDY5MTBkN2JmZGM1YWIxMDRmMTM5MDk5NzFlMzU5
MTA2OTVhZjMzLi4yOGU4N2IxOGQxYWE3Y2M2MzI2NWE0OWIwZmJhZjZiY2NhZWJkOGI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1l
dGhvZFVwZGF0ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaWRsCkBAIC0yNSw4ICsyNSw2IEBACiAKIFsKICAgICBD
b25kaXRpb25hbD1BUFBMRV9QQVksCi1dIGRpY3Rpb25hcnkgQXBwbGVQYXlQYXltZW50TWV0aG9k
VXBkYXRlIHsKLSAgICByZXF1aXJlZCBBcHBsZVBheUxpbmVJdGVtIG5ld1RvdGFsOwotICAgIHNl
cXVlbmNlPEFwcGxlUGF5TGluZUl0ZW0+IG5ld0xpbmVJdGVtczsKK10gZGljdGlvbmFyeSBBcHBs
ZVBheVBheW1lbnRNZXRob2RVcGRhdGUgOiBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlIHsKICAg
ICBbQ29uZGl0aW9uYWw9QVBQTEVfUEFZX0lOU1RBTExNRU5UU10gRE9NU3RyaW5nIGluc3RhbGxt
ZW50R3JvdXBJZGVudGlmaWVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRSZXF1ZXN0LmgKaW5kZXggM2YwYjY2ZjE3OTM3
YWE0MWI0ZWM0ZmQ4MWQ3OGE4MGEwODY3YWI5Yi4uYjc1MjU2MTA1YzFjM2M0NDY2MTI1YzZlZThk
NzRiZDk5ZTA2ZTY2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9BcHBsZVBheVBheW1lbnRSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheVBheW1lbnRSZXF1ZXN0LmgKQEAgLTMzLDYgKzMzLDEwIEBACiAjaW5j
bHVkZSAiQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKICNpbmNsdWRlICJBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kLmgiCiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2luY2x1
ZGUgPFdlYktpdEFkZGl0aW9ucy9BcHBsZVBheVBheW1lbnRSZXF1ZXN0QWRkaXRpb25zLmg+Cisj
ZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgQXBwbGVQYXlQYXltZW50UmVx
dWVzdCA6IEFwcGxlUGF5UmVxdWVzdEJhc2UgewpAQCAtNDUsNiArNDksMTAgQEAgc3RydWN0IEFw
cGxlUGF5UGF5bWVudFJlcXVlc3QgOiBBcHBsZVBheVJlcXVlc3RCYXNlIHsKIAogICAgIEFwcGxl
UGF5TGluZUl0ZW0gdG90YWw7CiAgICAgT3B0aW9uYWw8VmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+
PiBsaW5lSXRlbXM7CisKKyNpZiBkZWZpbmVkKEFwcGxlUGF5UGF5bWVudFJlcXVlc3RBZGRpdGlv
bnNfbWVtYmVycykKKyAgICBBcHBsZVBheVBheW1lbnRSZXF1ZXN0QWRkaXRpb25zX21lbWJlcnMK
KyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5jcHAKaW5kZXggNzI3MGIyMDRlZDc4ZDFjYzRmZGI4
ZjRhZGYyOGEyNmVhYjIxNjllMy4uYjczOGRlY2JkNDQ2NTFjYmE2MDA4OGY2NGY5OWI0N2ZiYWEz
MThiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVJlcXVlc3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0Fw
cGxlUGF5UmVxdWVzdEJhc2UuY3BwCkBAIC0zMSw2ICszMSwxMCBAQAogI2luY2x1ZGUgIlBheW1l
bnRDb29yZGluYXRvci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVt
YmVycy5oPgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRlIDxXZWJLaXRB
ZGRpdGlvbnMvQXBwbGVQYXlSZXF1ZXN0QmFzZUFkZGl0aW9ucy5jcHA+CisjZW5kaWYKKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgYm9vbCByZXF1aXJlc1N1cHBvcnRlZE5ldHdvcmtz
KHVuc2lnbmVkIHZlcnNpb24sIGNvbnN0IEFwcGxlUGF5UmVxdWVzdEJhc2UmIHJlcXVlc3QpCkBA
IC0xMTQsNiArMTE4LDEwIEBAIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGUoRG9jdW1lbnQmIGRvY3VtZW50CiAgICAgfQogI2VuZGlm
CiAKKyNpZiBkZWZpbmVkKEFwcGxlUGF5UmVxdWVzdEJhc2VBZGRpdGlvbnNfY29udmVydEFuZFZh
bGlkYXRlKQorICAgIEFwcGxlUGF5UmVxdWVzdEJhc2VBZGRpdGlvbnNfY29udmVydEFuZFZhbGlk
YXRlCisjZW5kaWYKKwogICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmgK
aW5kZXggMzNkMTZhNzUxMGYwNzNlYzNkODViZmJiZTQ1ZGM0NjBjOTU5OWY0Yy4uMzIwYTczNjFl
MzA3NDM3MDY1YTc0Y2JiZWI4M2Q3NmVmN2U4YmI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmgKQEAgLTMyLDYgKzMy
LDEwIEBACiAjaW5jbHVkZSAiQXBwbGVQYXlNZXJjaGFudENhcGFiaWxpdHkuaCIKICNpbmNsdWRl
ICJBcHBsZVBheVBheW1lbnRDb250YWN0LmgiCiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RL
KQorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9BcHBsZVBheVJlcXVlc3RCYXNlQWRkaXRpb25z
Lmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKQEAg
LTU0LDYgKzU4LDEwIEBAIHN0cnVjdCBBcHBsZVBheVJlcXVlc3RCYXNlIHsKICNpZiBFTkFCTEUo
QVBQTEVfUEFZX0lOU1RBTExNRU5UUykKICAgICBPcHRpb25hbDxBcHBsZVBheUluc3RhbGxtZW50
Q29uZmlndXJhdGlvbj4gaW5zdGFsbG1lbnRDb25maWd1cmF0aW9uOwogI2VuZGlmCisKKyNpZiBk
ZWZpbmVkKEFwcGxlUGF5UmVxdWVzdEJhc2VBZGRpdGlvbnNfbWVtYmVycykKKyAgICBBcHBsZVBh
eVJlcXVlc3RCYXNlQWRkaXRpb25zX21lbWJlcnMKKyNlbmRpZgogfTsKIAogRXhjZXB0aW9uT3I8
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q+IGNvbnZlcnRBbmRWYWxpZGF0ZShEb2N1bWVu
dCYsIHVuc2lnbmVkIHZlcnNpb24sIEFwcGxlUGF5UmVxdWVzdEJhc2UmLCBjb25zdCBQYXltZW50
Q29vcmRpbmF0b3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlTZXNzaW9uLmNwcAppbmRleCAyODk0NjkyMWY5ZDFhMTZjYzg0MGNlMzNhM2I0Yjdj
YWQzOTVmMzY5Li43NmY0ZjIxNjNmZTA5NzJjZGJmNzgxZDg3ZmRkMzVlOTc4MjA2YTM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24u
Y3BwCkBAIC0yOSw2ICsyOSw4IEBACiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAogI2luY2x1ZGUg
IkFwcGxlUGF5Q2FuY2VsRXZlbnQuaCIKKyNpbmNsdWRlICJBcHBsZVBheUVycm9yQ29kZS5oIgor
I2luY2x1ZGUgIkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaCIKICNpbmNsdWRlICJBcHBsZVBh
eUxpbmVJdGVtLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3Vs
dC5oIgogI2luY2x1ZGUgIkFwcGxlUGF5UGF5bWVudEF1dGhvcml6ZWRFdmVudC5oIgpAQCAtNTYs
NyArNTgsNiBAQAogI2luY2x1ZGUgIlBheW1lbnRDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIlBh
eW1lbnRNZXJjaGFudFNlc3Npb24uaCIKICNpbmNsdWRlICJQYXltZW50TWV0aG9kLmgiCi0jaW5j
bHVkZSAiUGF5bWVudE1ldGhvZFVwZGF0ZS5oIgogI2luY2x1ZGUgIlBheW1lbnRSZXF1ZXN0VmFs
aWRhdG9yLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgpAQCAtNjQsMTcgKzY1LDExIEBACiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMu
aD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0
YXRpYyB2b2lkIGZpbmlzaENvbnZlcnRpbmcoUGF5bWVudE1ldGhvZFVwZGF0ZSYgY29udmVydGVk
VXBkYXRlLCBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUmJiB1cGRhdGUpCi17Ci0jaWYgRU5B
QkxFKEFQUExFX1BBWV9JTlNUQUxMTUVOVFMpCi0gICAgY29udmVydGVkVXBkYXRlLnNldEluc3Rh
bGxtZW50R3JvdXBJZGVudGlmaWVyKHVwZGF0ZS5pbnN0YWxsbWVudEdyb3VwSWRlbnRpZmllcik7
Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShjb252ZXJ0ZWRVcGRhdGUpOwotICAgIFVOVVNFRF9Q
QVJBTSh1cGRhdGUpOworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW5jbHVkZSA8V2Vi
S2l0QWRkaXRpb25zL0FwcGxlUGF5U2Vzc2lvbkFkZGl0aW9ucy5jcHA+CiAjZW5kaWYKLX0KKwor
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQXBwbGVQ
YXlTZXNzaW9uKTsKIApAQCAtMTg4LDI1ICsxODMsMTkgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFZl
Y3RvcjxBcHBsZVBheUxpbmVJdGVtPj4gY29udmVydEFuZFZhbGlkYXRlKE9wdGlvbmFsPFZlY3Rv
cjwKICAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOwogfQogCi1zdGF0aWMgRXhjZXB0aW9uT3I8
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPiBjb252ZXJ0QW5k
VmFsaWRhdGUoQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYmIHNoaXBwaW5nTWV0aG9kKQorc3RhdGlj
IEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+IGNvbnZlcnRBbmRWYWxpZGF0ZShB
cHBsZVBheVNoaXBwaW5nTWV0aG9kJiYgc2hpcHBpbmdNZXRob2QpCiB7CiAgICAgaWYgKCF2YWxp
ZGF0ZUFtb3VudChzaGlwcGluZ01ldGhvZC5hbW91bnQpKQogICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgVHlwZUVycm9yLCBtYWtlU3RyaW5nKCJcIiIgKyBzaGlwcGluZ01ldGhvZC5hbW91bnQs
ICJcIiBpcyBub3QgYSB2YWxpZCBhbW91bnQuIikgfTsKIAotICAgIEFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCByZXN1bHQ7Ci0gICAgcmVzdWx0LmFtb3VudCA9
IHNoaXBwaW5nTWV0aG9kLmFtb3VudDsKLSAgICByZXN1bHQubGFiZWwgPSBzaGlwcGluZ01ldGhv
ZC5sYWJlbDsKLSAgICByZXN1bHQuZGV0YWlsID0gc2hpcHBpbmdNZXRob2QuZGV0YWlsOwotICAg
IHJlc3VsdC5pZGVudGlmaWVyID0gc2hpcHBpbmdNZXRob2QuaWRlbnRpZmllcjsKLQotICAgIHJl
dHVybiBXVEZNb3ZlKHJlc3VsdCk7CisgICAgcmV0dXJuIFdURk1vdmUoc2hpcHBpbmdNZXRob2Qp
OwogfQogCi1zdGF0aWMgRXhjZXB0aW9uT3I8VmVjdG9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRS
ZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4+IGNvbnZlcnRBbmRWYWxpZGF0ZShWZWN0b3I8QXBwbGVQ
YXlTaGlwcGluZ01ldGhvZD4mJiBzaGlwcGluZ01ldGhvZHMpCitzdGF0aWMgRXhjZXB0aW9uT3I8
VmVjdG9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+PiBjb252ZXJ0QW5kVmFsaWRhdGUoVmVjdG9y
PEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+JiYgc2hpcHBpbmdNZXRob2RzKQogewotICAgIFZlY3Rv
cjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+IHJlc3VsdDsK
KyAgICBWZWN0b3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4gcmVzdWx0OwogICAgIHJlc3VsdC5y
ZXNlcnZlSW5pdGlhbENhcGFjaXR5KHNoaXBwaW5nTWV0aG9kcy5zaXplKCkpOwotICAgIAorCiAg
ICAgZm9yIChhdXRvJiBzaGlwcGluZ01ldGhvZCA6IHNoaXBwaW5nTWV0aG9kcykgewogICAgICAg
ICBhdXRvIGNvbnZlcnRlZFNoaXBwaW5nTWV0aG9kID0gY29udmVydEFuZFZhbGlkYXRlKFdURk1v
dmUoc2hpcHBpbmdNZXRob2QpKTsKICAgICAgICAgaWYgKGNvbnZlcnRlZFNoaXBwaW5nTWV0aG9k
Lmhhc0V4Y2VwdGlvbigpKQpAQCAtMjQ2LDYgKzIzNSwxMCBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q+IGNvbnZlcnRBbmRWYWxpZGF0ZShEb2N1bWVu
dCYgZAogICAgICAgICByZXN1bHQuc2V0U2hpcHBpbmdNZXRob2RzKHNoaXBwaW5nTWV0aG9kcy5y
ZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAgICAgfQogCisjaWYgZGVmaW5lZChBcHBsZVBheVNlc3Np
b25BZGRpdGlvbnNfY29udmVydEFuZFZhbGlkYXRlKQorICAgIEFwcGxlUGF5U2Vzc2lvbkFkZGl0
aW9uc19jb252ZXJ0QW5kVmFsaWRhdGUKKyNlbmRpZgorCiAgICAgLy8gRklYTUU6IE1lcmdlIHRo
aXMgdmFsaWRhdGlvbiBpbnRvIHRoZSB2YWxpZGF0aW9uIHdlIGFyZSBkb2luZyBhYm92ZS4KICAg
ICBhdXRvIHZhbGlkYXRlZFBheW1lbnRSZXF1ZXN0ID0gUGF5bWVudFJlcXVlc3RWYWxpZGF0b3I6
OnZhbGlkYXRlKHJlc3VsdCk7CiAgICAgaWYgKHZhbGlkYXRlZFBheW1lbnRSZXF1ZXN0Lmhhc0V4
Y2VwdGlvbigpKQpAQCAtMjU0LDI0ICsyNDcsNiBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQ
YXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q+IGNvbnZlcnRBbmRWYWxpZGF0ZShEb2N1bWVudCYgZAog
ICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7CiB9CiAKLQotc3RhdGljIFZlY3RvcjxQYXltZW50
RXJyb3I+IGNvbnZlcnQoY29uc3QgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4mIGVycm9y
cykKLXsKLSAgICBWZWN0b3I8UGF5bWVudEVycm9yPiBjb252ZXJ0ZWRFcnJvcnM7Ci0KLSAgICBm
b3IgKGF1dG8mIGVycm9yIDogZXJyb3JzKSB7Ci0gICAgICAgIFBheW1lbnRFcnJvciBjb252ZXJ0
ZWRFcnJvcjsKLQotICAgICAgICBjb252ZXJ0ZWRFcnJvci5jb2RlID0gZXJyb3ItPmNvZGUoKTsK
LSAgICAgICAgY29udmVydGVkRXJyb3IubWVzc2FnZSA9IGVycm9yLT5tZXNzYWdlKCk7Ci0gICAg
ICAgIGNvbnZlcnRlZEVycm9yLmNvbnRhY3RGaWVsZCA9IGVycm9yLT5jb250YWN0RmllbGQoKTsK
LQotICAgICAgICBjb252ZXJ0ZWRFcnJvcnMuYXBwZW5kKGNvbnZlcnRlZEVycm9yKTsKLSAgICB9
Ci0KLSAgICByZXR1cm4gY29udmVydGVkRXJyb3JzOwotfQotCiBzdGF0aWMgRXhjZXB0aW9uT3I8
UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+IGNvbnZlcnRBbmRWYWxpZGF0ZShBcHBsZVBheVBh
eW1lbnRBdXRob3JpemF0aW9uUmVzdWx0JiYgcmVzdWx0KQogewogICAgIFBheW1lbnRBdXRob3Jp
emF0aW9uUmVzdWx0IGNvbnZlcnRlZFJlc3VsdDsKQEAgLTI4NywxNyArMjYyLDE3IEBAIHN0YXRp
YyBFeGNlcHRpb25PcjxQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4gY29udmVydEFuZFZhbGlk
YXRlKEFwcGxlUGF5UGF5bWVuCiAKICAgICBjYXNlIEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX0lO
VkFMSURfQklMTElOR19QT1NUQUxfQUREUkVTUzoKICAgICAgICAgY29udmVydGVkUmVzdWx0LnN0
YXR1cyA9IFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpGYWlsdXJlOwotICAgICAgICBjb252
ZXJ0ZWRSZXN1bHQuZXJyb3JzLmFwcGVuZCh7IFBheW1lbnRFcnJvcjo6Q29kZTo6QmlsbGluZ0Nv
bnRhY3RJbnZhbGlkLCB7IH0sIFdURjo6bnVsbG9wdCB9KTsKKyAgICAgICAgY29udmVydGVkUmVz
dWx0LmVycm9ycy5hcHBlbmQoQXBwbGVQYXlFcnJvcjo6Y3JlYXRlKEFwcGxlUGF5RXJyb3JDb2Rl
OjpCaWxsaW5nQ29udGFjdEludmFsaWQsIFdURjo6bnVsbG9wdCwgbnVsbFN0cmluZygpKSk7CiAg
ICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBBcHBsZVBheVNlc3Npb246OlNUQVRVU19JTlZBTElE
X1NISVBQSU5HX1BPU1RBTF9BRERSRVNTOgogICAgICAgICBjb252ZXJ0ZWRSZXN1bHQuc3RhdHVz
ID0gUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OkZhaWx1cmU7Ci0gICAgICAgIGNvbnZlcnRl
ZFJlc3VsdC5lcnJvcnMuYXBwZW5kKHsgUGF5bWVudEVycm9yOjpDb2RlOjpTaGlwcGluZ0NvbnRh
Y3RJbnZhbGlkLCB7IH0sIFBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpQb3N0YWxBZGRyZXNz
IH0pOworICAgICAgICBjb252ZXJ0ZWRSZXN1bHQuZXJyb3JzLmFwcGVuZChBcHBsZVBheUVycm9y
OjpjcmVhdGUoQXBwbGVQYXlFcnJvckNvZGU6OlNoaXBwaW5nQ29udGFjdEludmFsaWQsIEFwcGxl
UGF5RXJyb3JDb250YWN0RmllbGQ6OlBvc3RhbEFkZHJlc3MsIG51bGxTdHJpbmcoKSkpOwogICAg
ICAgICBicmVhazsKIAogICAgIGNhc2UgQXBwbGVQYXlTZXNzaW9uOjpTVEFUVVNfSU5WQUxJRF9T
SElQUElOR19DT05UQUNUOgogICAgICAgICBjb252ZXJ0ZWRSZXN1bHQuc3RhdHVzID0gUGF5bWVu
dEF1dGhvcml6YXRpb25TdGF0dXM6OkZhaWx1cmU7Ci0gICAgICAgIGNvbnZlcnRlZFJlc3VsdC5l
cnJvcnMuYXBwZW5kKHsgUGF5bWVudEVycm9yOjpDb2RlOjpTaGlwcGluZ0NvbnRhY3RJbnZhbGlk
LCB7IH0sIFdURjo6bnVsbG9wdCB9KTsKKyAgICAgICAgY29udmVydGVkUmVzdWx0LmVycm9ycy5h
cHBlbmQoQXBwbGVQYXlFcnJvcjo6Y3JlYXRlKEFwcGxlUGF5RXJyb3JDb2RlOjpTaGlwcGluZ0Nv
bnRhY3RJbnZhbGlkLCBXVEY6Om51bGxvcHQsIG51bGxTdHJpbmcoKSkpOwogICAgICAgICBicmVh
azsKIAogICAgIGNhc2UgQXBwbGVQYXlTZXNzaW9uOjpTVEFUVVNfUElOX1JFUVVJUkVEOgpAQCAt
MzE2LDY4ICsyOTEsNTkgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFBheW1lbnRBdXRob3JpemF0aW9u
UmVzdWx0PiBjb252ZXJ0QW5kVmFsaWRhdGUoQXBwbGVQYXlQYXltZW4KICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwogICAgIH0KIAotICAgIGNvbnZlcnRl
ZFJlc3VsdC5lcnJvcnMuYXBwZW5kVmVjdG9yKGNvbnZlcnQocmVzdWx0LmVycm9ycykpOworICAg
IGNvbnZlcnRlZFJlc3VsdC5lcnJvcnMuYXBwZW5kVmVjdG9yKFdURk1vdmUocmVzdWx0LmVycm9y
cykpOwogCiAgICAgcmV0dXJuIFdURk1vdmUoY29udmVydGVkUmVzdWx0KTsKIH0KIAotc3RhdGlj
IEV4Y2VwdGlvbk9yPFBheW1lbnRNZXRob2RVcGRhdGU+IGNvbnZlcnRBbmRWYWxpZGF0ZShBcHBs
ZVBheVBheW1lbnRNZXRob2RVcGRhdGUmJiB1cGRhdGUpCitzdGF0aWMgRXhjZXB0aW9uT3I8QXBw
bGVQYXlQYXltZW50TWV0aG9kVXBkYXRlPiBjb252ZXJ0QW5kVmFsaWRhdGUoQXBwbGVQYXlQYXlt
ZW50TWV0aG9kVXBkYXRlJiYgdXBkYXRlKQogewogICAgIGF1dG8gY29udmVydGVkTmV3VG90YWwg
PSBjb252ZXJ0QW5kVmFsaWRhdGVUb3RhbChXVEZNb3ZlKHVwZGF0ZS5uZXdUb3RhbCkpOwogICAg
IGlmIChjb252ZXJ0ZWROZXdUb3RhbC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGNv
bnZlcnRlZE5ld1RvdGFsLnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICB1cGRhdGUubmV3VG90YWwg
PSBjb252ZXJ0ZWROZXdUb3RhbC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKIAogICAgIGF1dG8gY29u
dmVydGVkTmV3TGluZUl0ZW1zID0gY29udmVydEFuZFZhbGlkYXRlKFdURk1vdmUodXBkYXRlLm5l
d0xpbmVJdGVtcykpOwogICAgIGlmIChjb252ZXJ0ZWROZXdMaW5lSXRlbXMuaGFzRXhjZXB0aW9u
KCkpCiAgICAgICAgIHJldHVybiBjb252ZXJ0ZWROZXdMaW5lSXRlbXMucmVsZWFzZUV4Y2VwdGlv
bigpOworICAgIHVwZGF0ZS5uZXdMaW5lSXRlbXMgPSBjb252ZXJ0ZWROZXdMaW5lSXRlbXMucmVs
ZWFzZVJldHVyblZhbHVlKCk7CiAKLSAgICBQYXltZW50TWV0aG9kVXBkYXRlIGNvbnZlcnRlZFVw
ZGF0ZSB7IGNvbnZlcnRlZE5ld1RvdGFsLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBjb252ZXJ0ZWRO
ZXdMaW5lSXRlbXMucmVsZWFzZVJldHVyblZhbHVlKCkgfTsKLSAgICBmaW5pc2hDb252ZXJ0aW5n
KGNvbnZlcnRlZFVwZGF0ZSwgV1RGTW92ZSh1cGRhdGUpKTsKLQotICAgIHJldHVybiBXVEZNb3Zl
KGNvbnZlcnRlZFVwZGF0ZSk7CisgICAgcmV0dXJuIFdURk1vdmUodXBkYXRlKTsKIH0KIAotc3Rh
dGljIEV4Y2VwdGlvbk9yPFNoaXBwaW5nQ29udGFjdFVwZGF0ZT4gY29udmVydEFuZFZhbGlkYXRl
KEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlJiYgdXBkYXRlKQorc3RhdGljIEV4Y2VwdGlv
bk9yPEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiBjb252ZXJ0QW5kVmFsaWRhdGUoQXBw
bGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUmJiB1cGRhdGUpCiB7Ci0gICAgU2hpcHBpbmdDb250
YWN0VXBkYXRlIGNvbnZlcnRlZFVwZGF0ZTsKLQotICAgIGNvbnZlcnRlZFVwZGF0ZS5lcnJvcnMg
PSBjb252ZXJ0KHVwZGF0ZS5lcnJvcnMpOwotCiAgICAgYXV0byBjb252ZXJ0ZWROZXdTaGlwcGlu
Z01ldGhvZHMgPSBjb252ZXJ0QW5kVmFsaWRhdGUoV1RGTW92ZSh1cGRhdGUubmV3U2hpcHBpbmdN
ZXRob2RzKSk7CiAgICAgaWYgKGNvbnZlcnRlZE5ld1NoaXBwaW5nTWV0aG9kcy5oYXNFeGNlcHRp
b24oKSkKICAgICAgICAgcmV0dXJuIGNvbnZlcnRlZE5ld1NoaXBwaW5nTWV0aG9kcy5yZWxlYXNl
RXhjZXB0aW9uKCk7Ci0gICAgY29udmVydGVkVXBkYXRlLm5ld1NoaXBwaW5nTWV0aG9kcyA9IGNv
bnZlcnRlZE5ld1NoaXBwaW5nTWV0aG9kcy5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICB1cGRh
dGUubmV3U2hpcHBpbmdNZXRob2RzID0gY29udmVydGVkTmV3U2hpcHBpbmdNZXRob2RzLnJlbGVh
c2VSZXR1cm5WYWx1ZSgpOwogCiAgICAgYXV0byBjb252ZXJ0ZWROZXdUb3RhbCA9IGNvbnZlcnRB
bmRWYWxpZGF0ZVRvdGFsKFdURk1vdmUodXBkYXRlLm5ld1RvdGFsKSk7CiAgICAgaWYgKGNvbnZl
cnRlZE5ld1RvdGFsLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gY29udmVydGVkTmV3
VG90YWwucmVsZWFzZUV4Y2VwdGlvbigpOwotICAgIGNvbnZlcnRlZFVwZGF0ZS5uZXdUb3RhbEFu
ZExpbmVJdGVtcy50b3RhbCA9IGNvbnZlcnRlZE5ld1RvdGFsLnJlbGVhc2VSZXR1cm5WYWx1ZSgp
OworICAgIHVwZGF0ZS5uZXdUb3RhbCA9IGNvbnZlcnRlZE5ld1RvdGFsLnJlbGVhc2VSZXR1cm5W
YWx1ZSgpOwogCiAgICAgYXV0byBjb252ZXJ0ZWROZXdMaW5lSXRlbXMgPSBjb252ZXJ0QW5kVmFs
aWRhdGUoV1RGTW92ZSh1cGRhdGUubmV3TGluZUl0ZW1zKSk7CiAgICAgaWYgKGNvbnZlcnRlZE5l
d0xpbmVJdGVtcy5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGNvbnZlcnRlZE5ld0xp
bmVJdGVtcy5yZWxlYXNlRXhjZXB0aW9uKCk7Ci0gICAgY29udmVydGVkVXBkYXRlLm5ld1RvdGFs
QW5kTGluZUl0ZW1zLmxpbmVJdGVtcyA9IGNvbnZlcnRlZE5ld0xpbmVJdGVtcy5yZWxlYXNlUmV0
dXJuVmFsdWUoKTsKKyAgICB1cGRhdGUubmV3TGluZUl0ZW1zID0gY29udmVydGVkTmV3TGluZUl0
ZW1zLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCi0gICAgcmV0dXJuIFdURk1vdmUoY29udmVydGVk
VXBkYXRlKTsKKyAgICByZXR1cm4gV1RGTW92ZSh1cGRhdGUpOwogfQogCi1zdGF0aWMgRXhjZXB0
aW9uT3I8U2hpcHBpbmdNZXRob2RVcGRhdGU+IGNvbnZlcnRBbmRWYWxpZGF0ZShBcHBsZVBheVNo
aXBwaW5nTWV0aG9kVXBkYXRlJiYgdXBkYXRlKQorc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5
U2hpcHBpbmdNZXRob2RVcGRhdGU+IGNvbnZlcnRBbmRWYWxpZGF0ZShBcHBsZVBheVNoaXBwaW5n
TWV0aG9kVXBkYXRlJiYgdXBkYXRlKQogewotICAgIFNoaXBwaW5nTWV0aG9kVXBkYXRlIGNvbnZl
cnRlZFVwZGF0ZTsKLQogICAgIGF1dG8gY29udmVydGVkTmV3VG90YWwgPSBjb252ZXJ0QW5kVmFs
aWRhdGVUb3RhbChXVEZNb3ZlKHVwZGF0ZS5uZXdUb3RhbCkpOwogICAgIGlmIChjb252ZXJ0ZWRO
ZXdUb3RhbC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGNvbnZlcnRlZE5ld1RvdGFs
LnJlbGVhc2VFeGNlcHRpb24oKTsKLQotICAgIGNvbnZlcnRlZFVwZGF0ZS5uZXdUb3RhbEFuZExp
bmVJdGVtcy50b3RhbCA9IGNvbnZlcnRlZE5ld1RvdGFsLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwor
ICAgIHVwZGF0ZS5uZXdUb3RhbCA9IGNvbnZlcnRlZE5ld1RvdGFsLnJlbGVhc2VSZXR1cm5WYWx1
ZSgpOwogCiAgICAgYXV0byBjb252ZXJ0ZWROZXdMaW5lSXRlbXMgPSBjb252ZXJ0QW5kVmFsaWRh
dGUoV1RGTW92ZSh1cGRhdGUubmV3TGluZUl0ZW1zKSk7CiAgICAgaWYgKGNvbnZlcnRlZE5ld0xp
bmVJdGVtcy5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGNvbnZlcnRlZE5ld0xpbmVJ
dGVtcy5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgdXBkYXRlLm5ld0xpbmVJdGVtcyA9IGNvbnZl
cnRlZE5ld0xpbmVJdGVtcy5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKIAotICAgIGNvbnZlcnRlZFVw
ZGF0ZS5uZXdUb3RhbEFuZExpbmVJdGVtcy5saW5lSXRlbXMgPSBjb252ZXJ0ZWROZXdMaW5lSXRl
bXMucmVsZWFzZVJldHVyblZhbHVlKCk7Ci0KLSAgICByZXR1cm4gV1RGTW92ZShjb252ZXJ0ZWRV
cGRhdGUpOworICAgIHJldHVybiBXVEZNb3ZlKHVwZGF0ZSk7CiB9CiAKIEV4Y2VwdGlvbk9yPFJl
ZjxBcHBsZVBheVNlc3Npb24+PiBBcHBsZVBheVNlc3Npb246OmNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQsIHVuc2lnbmVkIHZlcnNpb24sIEFwcGxlUGF5UGF5bWVudFJlcXVlc3QmJiBwYXltZW50
UmVxdWVzdCkKQEAgLTY2Myw4ICs2MjksOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVNl
c3Npb246OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKHVuc2lnbmVkIHNobwogewog
ICAgIEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlIHVwZGF0ZTsKIAotICAgIE9wdGlvbmFs
PEFwcGxlUGF5RXJyb3I6OkNvZGU+IGVycm9yQ29kZTsKLSAgICBPcHRpb25hbDxBcHBsZVBheUVy
cm9yOjpDb250YWN0RmllbGQ+IGNvbnRhY3RGaWVsZDsKKyAgICBPcHRpb25hbDxBcHBsZVBheUVy
cm9yQ29kZT4gZXJyb3JDb2RlOworICAgIE9wdGlvbmFsPEFwcGxlUGF5RXJyb3JDb250YWN0Rmll
bGQ+IGNvbnRhY3RGaWVsZDsKIAogICAgIHN3aXRjaCAoc3RhdHVzKSB7CiAgICAgY2FzZSBBcHBs
ZVBheVNlc3Npb246OlNUQVRVU19TVUNDRVNTOgpAQCAtNjc0LDIwICs2NDAsMjAgQEAgRXhjZXB0
aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9uOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVj
dGlvbih1bnNpZ25lZCBzaG8KICAgICBjYXNlIEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX1BJTl9S
RVFVSVJFRDoKICAgICBjYXNlIEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX1BJTl9JTkNPUlJFQ1Q6
CiAgICAgY2FzZSBBcHBsZVBheVNlc3Npb246OlNUQVRVU19QSU5fTE9DS09VVDoKLSAgICAgICAg
ZXJyb3JDb2RlID0gQXBwbGVQYXlFcnJvcjo6Q29kZTo6VW5rbm93bjsKKyAgICAgICAgZXJyb3JD
b2RlID0gQXBwbGVQYXlFcnJvckNvZGU6OlVua25vd247CiAgICAgICAgIGJyZWFrOwogCiAgICAg
Y2FzZSBBcHBsZVBheVNlc3Npb246OlNUQVRVU19JTlZBTElEX0JJTExJTkdfUE9TVEFMX0FERFJF
U1M6Ci0gICAgICAgIGVycm9yQ29kZSA9IEFwcGxlUGF5RXJyb3I6OkNvZGU6OkJpbGxpbmdDb250
YWN0SW52YWxpZDsKKyAgICAgICAgZXJyb3JDb2RlID0gQXBwbGVQYXlFcnJvckNvZGU6OkJpbGxp
bmdDb250YWN0SW52YWxpZDsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEFwcGxlUGF5U2Vz
c2lvbjo6U1RBVFVTX0lOVkFMSURfU0hJUFBJTkdfUE9TVEFMX0FERFJFU1M6Ci0gICAgICAgIGVy
cm9yQ29kZSA9IEFwcGxlUGF5RXJyb3I6OkNvZGU6OlNoaXBwaW5nQ29udGFjdEludmFsaWQ7Ci0g
ICAgICAgIGNvbnRhY3RGaWVsZCA9IEFwcGxlUGF5RXJyb3I6OkNvbnRhY3RGaWVsZDo6UG9zdGFs
QWRkcmVzczsKKyAgICAgICAgZXJyb3JDb2RlID0gQXBwbGVQYXlFcnJvckNvZGU6OlNoaXBwaW5n
Q29udGFjdEludmFsaWQ7CisgICAgICAgIGNvbnRhY3RGaWVsZCA9IEFwcGxlUGF5RXJyb3JDb250
YWN0RmllbGQ6OlBvc3RhbEFkZHJlc3M7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBBcHBs
ZVBheVNlc3Npb246OlNUQVRVU19JTlZBTElEX1NISVBQSU5HX0NPTlRBQ1Q6Ci0gICAgICAgIGVy
cm9yQ29kZSA9IEFwcGxlUGF5RXJyb3I6OkNvZGU6OlNoaXBwaW5nQ29udGFjdEludmFsaWQ7Cisg
ICAgICAgIGVycm9yQ29kZSA9IEFwcGxlUGF5RXJyb3JDb2RlOjpTaGlwcGluZ0NvbnRhY3RJbnZh
bGlkOwogICAgICAgICBicmVhazsKIAogICAgIGRlZmF1bHQ6CkBAIC03NTksNyArNzI1LDcgQEAg
dm9pZCBBcHBsZVBheVNlc3Npb246OmRpZEF1dGhvcml6ZVBheW1lbnQoY29uc3QgUGF5bWVudCYg
cGF5bWVudCkKICAgICBkaXNwYXRjaEV2ZW50KGV2ZW50LmdldCgpKTsKIH0KIAotdm9pZCBBcHBs
ZVBheVNlc3Npb246OmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCit2b2lkIEFw
cGxlUGF5U2Vzc2lvbjo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlTaGlw
cGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCiB7CiAgICAgQVNTRVJUKG1fc3RhdGUgPT0gU3Rh
dGU6OkFjdGl2ZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0Fw
cGxlUGF5U2Vzc2lvbi5oCmluZGV4IDMyY2M3NmM4N2Y2NWE3YzExMjVkNzI5MGUzNGFkYTBlNTNm
YjViZGQuLmEwMjQ4YjkxNWZmOGY4NzYyMjY1NzUxNWEyMmU1NjQwMjNiNDljM2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uaApAQCAt
MTE1LDcgKzExNSw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgdmVyc2lvbigpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZvaWQgdmFsaWRhdGVNZXJjaGFudChVUkwmJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkaWRBdXRob3JpemVQYXltZW50KGNvbnN0IFBheW1lbnQmKSBvdmVycmlkZTsKLSAgICB2
b2lkIGRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRS
ZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkU2VsZWN0U2hp
cHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYpIG92ZXJyaWRlOwogICAg
IHZvaWQgZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KGNvbnN0IFBheW1lbnRDb250YWN0Jikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBkaWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFBheW1lbnRNZXRo
b2QmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENhbmNlbFBheW1lbnRTZXNzaW9uKFBheW1lbnRT
ZXNzaW9uRXJyb3ImJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgKaW5k
ZXggMzk4NjQ3NmUxMmRmZjdmYzk4YjdlOTU0ODJjNWU2ZTQ1YzBiMGIyZi4uM2E3OGQ4ZDdkNDZi
OWFmYmYwODVlNGM1YTY1ZGI1NzcwZjIzNWU0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVl
c3QuaApAQCAtMjcsMTQgKzI3LDIxIEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCisjaW5j
bHVkZSAiQXBwbGVQYXlFcnJvci5oIgogI2luY2x1ZGUgIkFwcGxlUGF5TGluZUl0ZW0uaCIKKyNp
bmNsdWRlICJBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmgiCiAjaW5jbHVkZSAiUGF5bWVudENvbnRh
Y3QuaCIKICNpbmNsdWRlICJQYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uV2ViQ29yZS5o
IgogI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+
CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
CisjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
QWRkaXRpb25zLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVtIGNsYXNz
IFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOwpAQCAtOTUsMTUgKzEwMiw4IEBAIHB1YmxpYzoK
ICAgICBTaGlwcGluZ1R5cGUgc2hpcHBpbmdUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9zaGlwcGlu
Z1R5cGU7IH0KICAgICB2b2lkIHNldFNoaXBwaW5nVHlwZShTaGlwcGluZ1R5cGUgc2hpcHBpbmdU
eXBlKSB7IG1fc2hpcHBpbmdUeXBlID0gc2hpcHBpbmdUeXBlOyB9CiAKLSAgICBzdHJ1Y3QgU2hp
cHBpbmdNZXRob2QgewotICAgICAgICBTdHJpbmcgbGFiZWw7Ci0gICAgICAgIFN0cmluZyBkZXRh
aWw7Ci0gICAgICAgIFN0cmluZyBhbW91bnQ7Ci0KLSAgICAgICAgU3RyaW5nIGlkZW50aWZpZXI7
Ci0gICAgfTsKLSAgICBjb25zdCBWZWN0b3I8U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGluZ01ldGhv
ZHMoKSBjb25zdCB7IHJldHVybiBtX3NoaXBwaW5nTWV0aG9kczsgfQotICAgIHZvaWQgc2V0U2hp
cHBpbmdNZXRob2RzKGNvbnN0IFZlY3RvcjxTaGlwcGluZ01ldGhvZD4mIHNoaXBwaW5nTWV0aG9k
cykgeyBtX3NoaXBwaW5nTWV0aG9kcyA9IHNoaXBwaW5nTWV0aG9kczsgfQorICAgIGNvbnN0IFZl
Y3RvcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiYgc2hpcHBpbmdNZXRob2RzKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaGlwcGluZ01ldGhvZHM7IH0KKyAgICB2b2lkIHNldFNoaXBwaW5nTWV0aG9kcyhj
b25zdCBWZWN0b3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4mIHNoaXBwaW5nTWV0aG9kcykgeyBt
X3NoaXBwaW5nTWV0aG9kcyA9IHNoaXBwaW5nTWV0aG9kczsgfQogCiAgICAgY29uc3QgVmVjdG9y
PEFwcGxlUGF5TGluZUl0ZW0+JiBsaW5lSXRlbXMoKSBjb25zdCB7IHJldHVybiBtX2xpbmVJdGVt
czsgfQogICAgIHZvaWQgc2V0TGluZUl0ZW1zKGNvbnN0IFZlY3RvcjxBcHBsZVBheUxpbmVJdGVt
PiYgbGluZUl0ZW1zKSB7IG1fbGluZUl0ZW1zID0gbGluZUl0ZW1zOyB9CkBAIC0xMTEsMTEgKzEx
MSw2IEBAIHB1YmxpYzoKICAgICBjb25zdCBBcHBsZVBheUxpbmVJdGVtJiB0b3RhbCgpIGNvbnN0
IHsgcmV0dXJuIG1fdG90YWw7IH07CiAgICAgdm9pZCBzZXRUb3RhbChjb25zdCBBcHBsZVBheUxp
bmVJdGVtJiB0b3RhbCkgeyBtX3RvdGFsID0gdG90YWw7IH0KIAotICAgIHN0cnVjdCBUb3RhbEFu
ZExpbmVJdGVtcyB7Ci0gICAgICAgIEFwcGxlUGF5TGluZUl0ZW0gdG90YWw7Ci0gICAgICAgIFZl
Y3RvcjxBcHBsZVBheUxpbmVJdGVtPiBsaW5lSXRlbXM7Ci0gICAgfTsKLQogICAgIGNvbnN0IFN0
cmluZyYgYXBwbGljYXRpb25EYXRhKCkgY29uc3QgeyByZXR1cm4gbV9hcHBsaWNhdGlvbkRhdGE7
IH0KICAgICB2b2lkIHNldEFwcGxpY2F0aW9uRGF0YShjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9u
RGF0YSkgeyBtX2FwcGxpY2F0aW9uRGF0YSA9IGFwcGxpY2F0aW9uRGF0YTsgfQogCkBAIC0xNTEs
NyArMTQ2LDcgQEAgcHJpdmF0ZToKICAgICBNZXJjaGFudENhcGFiaWxpdGllcyBtX21lcmNoYW50
Q2FwYWJpbGl0aWVzOwogCiAgICAgU2hpcHBpbmdUeXBlIG1fc2hpcHBpbmdUeXBlIHsgU2hpcHBp
bmdUeXBlOjpTaGlwcGluZyB9OwotICAgIFZlY3RvcjxTaGlwcGluZ01ldGhvZD4gbV9zaGlwcGlu
Z01ldGhvZHM7CisgICAgVmVjdG9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+IG1fc2hpcHBpbmdN
ZXRob2RzOwogCiAgICAgVmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+IG1fbGluZUl0ZW1zOwogICAg
IEFwcGxlUGF5TGluZUl0ZW0gbV90b3RhbDsKQEAgLTE2NCw1MSArMTU5LDE1IEBAIHByaXZhdGU6
CiAjaWYgSEFWRShQQVNTS0lUX0lOU1RBTExNRU5UUykKICAgICBQYXltZW50SW5zdGFsbG1lbnRD
b25maWd1cmF0aW9uIG1faW5zdGFsbG1lbnRDb25maWd1cmF0aW9uOwogI2VuZGlmCi19OwogCi1z
dHJ1Y3QgUGF5bWVudEVycm9yIHsKLSAgICBlbnVtIGNsYXNzIENvZGUgewotICAgICAgICBVbmtu
b3duLAotICAgICAgICBTaGlwcGluZ0NvbnRhY3RJbnZhbGlkLAotICAgICAgICBCaWxsaW5nQ29u
dGFjdEludmFsaWQsCi0gICAgICAgIEFkZHJlc3NVbnNlcnZpY2VhYmxlLAotICAgIH07Ci0KLSAg
ICBlbnVtIGNsYXNzIENvbnRhY3RGaWVsZCB7Ci0gICAgICAgIFBob25lTnVtYmVyLAotICAgICAg
ICBFbWFpbEFkZHJlc3MsCi0gICAgICAgIE5hbWUsCi0gICAgICAgIFBob25ldGljTmFtZSwKLSAg
ICAgICAgUG9zdGFsQWRkcmVzcywKLSAgICAgICAgQWRkcmVzc0xpbmVzLAotICAgICAgICBTdWJM
b2NhbGl0eSwKLSAgICAgICAgTG9jYWxpdHksCi0gICAgICAgIFBvc3RhbENvZGUsCi0gICAgICAg
IFN1YkFkbWluaXN0cmF0aXZlQXJlYSwKLSAgICAgICAgQWRtaW5pc3RyYXRpdmVBcmVhLAotICAg
ICAgICBDb3VudHJ5LAotICAgICAgICBDb3VudHJ5Q29kZSwKLSAgICB9OwotCi0gICAgQ29kZSBj
b2RlOwotICAgIFN0cmluZyBtZXNzYWdlOwotICAgIE9wdGlvbmFsPENvbnRhY3RGaWVsZD4gY29u
dGFjdEZpZWxkOworI2lmIGRlZmluZWQoQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3RBZGRp
dGlvbnNfbWVtYmVycykKKyAgICBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdEFkZGl0aW9u
c19tZW1iZXJzCisjZW5kaWYKIH07CiAKIHN0cnVjdCBQYXltZW50QXV0aG9yaXphdGlvblJlc3Vs
dCB7CiAgICAgUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMgc3RhdHVzOwotICAgIFZlY3RvcjxQ
YXltZW50RXJyb3I+IGVycm9yczsKLX07Ci0KLXN0cnVjdCBTaGlwcGluZ0NvbnRhY3RVcGRhdGUg
ewotICAgIFZlY3RvcjxQYXltZW50RXJyb3I+IGVycm9yczsKLQotICAgIFZlY3RvcjxBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+IG5ld1NoaXBwaW5nTWV0aG9k
czsKLSAgICBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXMg
bmV3VG90YWxBbmRMaW5lSXRlbXM7Ci19OwotCi1zdHJ1Y3QgU2hpcHBpbmdNZXRob2RVcGRhdGUg
ewotICAgIEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcyBu
ZXdUb3RhbEFuZExpbmVJdGVtczsKKyAgICBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiBl
cnJvcnM7CiB9OwogCiBXRUJDT1JFX0VYUE9SVCBib29sIGlzRmluYWxTdGF0ZVJlc3VsdChjb25z
dCBPcHRpb25hbDxQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mKTsKQEAgLTIyNywzNSArMTg2
LDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpBcHBsZVBheVNlc3Np
b25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdUeXAKICAgICA+OwogfTsKIAotdGVtcGxhdGU8PiBz
dHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU+IHsKLSAgICB1c2lu
ZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNv
ZGUsCi0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6VW5rbm93biwKLSAgICAg
ICAgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb2RlOjpTaGlwcGluZ0NvbnRhY3RJbnZhbGlkLAot
ICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU6OkJpbGxpbmdDb250YWN0SW52YWxp
ZCwKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb2RlOjpBZGRyZXNzVW5zZXJ2aWNl
YWJsZQotICAgID47Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6
OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkPiB7Ci0gICAgdXNpbmcgdmFsdWVzID0gRW51bVZh
bHVlczwKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQsCi0gICAg
ICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpQaG9uZU51bWJlciwKLSAg
ICAgICAgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OkVtYWlsQWRkcmVzcywK
LSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6Ok5hbWUsCi0gICAg
ICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpQaG9uZXRpY05hbWUsCi0g
ICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpQb3N0YWxBZGRyZXNz
LAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6QWRkcmVzc0xp
bmVzLAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6U3ViTG9j
YWxpdHksCi0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpMb2Nh
bGl0eSwKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlBvc3Rh
bENvZGUsCi0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpTdWJB
ZG1pbmlzdHJhdGl2ZUFyZWEsCi0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFj
dEZpZWxkOjpBZG1pbmlzdHJhdGl2ZUFyZWEsCi0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJv
cjo6Q29udGFjdEZpZWxkOjpDb3VudHJ5LAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6
OkNvbnRhY3RGaWVsZDo6Q291bnRyeUNvZGUKLSAgICA+OwotfTsKLQogfSAvLyBuYW1lc3BhY2Ug
V1RGCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oCmluZGV4IDcyNTk3Nzg4
OGM5NmEyZGNmY2I0YzdlYTNiMjA4N2Q5ZTc5YjQ4NTMuLjg3NTJhMDM0Njg4MmNkMmY1ODJiMzk5
MGFmNjYyZmQwNDEzYjM5YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmgKQEAgLTI3
LDIwICsyNyw1NSBAQAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAorI2luY2x1ZGUgIkFwcGxl
UGF5RGV0YWlsc1VwZGF0ZUJhc2UuaCIKICNpbmNsdWRlICJBcHBsZVBheUVycm9yLmgiCi0jaW5j
bHVkZSAiQXBwbGVQYXlMaW5lSXRlbS5oIgogI2luY2x1ZGUgIkFwcGxlUGF5U2hpcHBpbmdNZXRo
b2QuaCIKKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVj
dCBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZSB7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGlu
Z0NvbnRhY3RVcGRhdGUgZmluYWwgOiBwdWJsaWMgQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZSB7
CiAgICAgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4gZXJyb3JzOwogCiAgICAgVmVjdG9y
PEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+IG5ld1NoaXBwaW5nTWV0aG9kczsKLSAgICBBcHBsZVBh
eUxpbmVJdGVtIG5ld1RvdGFsOwotICAgIFZlY3RvcjxBcHBsZVBheUxpbmVJdGVtPiBuZXdMaW5l
SXRlbXM7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPEFw
cGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU6
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIEFwcGxlUGF5RGV0YWlsc1Vw
ZGF0ZUJhc2U6OmVuY29kZShlbmNvZGVyKTsKKyAgICBlbmNvZGVyIDw8IGVycm9yczsKKyAgICBl
bmNvZGVyIDw8IG5ld1NoaXBwaW5nTWV0aG9kczsKIH0KIAordGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4KK09wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiBBcHBsZVBheVNoaXBw
aW5nQ29udGFjdFVwZGF0ZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgQXBwbGVQ
YXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUgcmVzdWx0OworCisgICAgaWYgKCFyZXN1bHQuZGVjb2Rl
QmFzZShkZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworI2RlZmluZSBE
RUNPREUobmFtZSwgdHlwZSkgXAorICAgIE9wdGlvbmFsPHR5cGU+IG5hbWU7IFwKKyAgICBkZWNv
ZGVyID4+IG5hbWU7IFwKKyAgICBpZiAoIW5hbWUpIFwKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsgXAorICAgIHJlc3VsdC5uYW1lID0gV1RGTW92ZSgqbmFtZSk7IFwKKworICAgIERFQ09E
RShlcnJvcnMsIFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+KQorICAgIERFQ09ERShuZXdT
aGlwcGluZ01ldGhvZHMsIFZlY3RvcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPikKKworI3VuZGVm
IERFQ09ERQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5pZGwKaW5kZXggMDUyZTgy
YmZjMTE5NTcxZDYwZTJmMzI3MDg0ZmZmZGUyNWM0Y2U0ZS4uZjExZjM1YmY2OGE1YjNlNjA0ZmZk
NzNkODFkNGE4MDhlZDY5YzFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5pZGwK
QEAgLTI1LDEwICsyNSw4IEBACiAKIFsKICAgICBDb25kaXRpb25hbD1BUFBMRV9QQVksCi1dIGRp
Y3Rpb25hcnkgQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUgeworXSBkaWN0aW9uYXJ5IEFw
cGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlIDogQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZSB7
CiAgICAgc2VxdWVuY2U8QXBwbGVQYXlFcnJvcj4gZXJyb3JzOwogCiAgICAgc2VxdWVuY2U8QXBw
bGVQYXlTaGlwcGluZ01ldGhvZD4gbmV3U2hpcHBpbmdNZXRob2RzOwotICAgIHJlcXVpcmVkIEFw
cGxlUGF5TGluZUl0ZW0gbmV3VG90YWw7Ci0gICAgc2VxdWVuY2U8QXBwbGVQYXlMaW5lSXRlbT4g
bmV3TGluZUl0ZW1zOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kLmgKaW5kZXggNTkzNTIxYWY0NmJjMWQ1MmNl
ZjRlZjkyZTZlNTlmODAwODJjMDU5My4uZTM5NDJhMThiZDI3MWMxMjRmMmE0ZWQxMzY1ZDViMzlj
OWU0NjUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVNoaXBwaW5nTWV0aG9kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kLmgKQEAgLTM2LDggKzM2LDM5IEBAIHN0cnVjdCBBcHBs
ZVBheVNoaXBwaW5nTWV0aG9kIHsKICAgICBTdHJpbmcgZGV0YWlsOwogICAgIFN0cmluZyBhbW91
bnQ7CiAgICAgU3RyaW5nIGlkZW50aWZpZXI7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
PiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4gc3RhdGljIE9wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+IGRlY29kZShEZWNvZGVy
Jik7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBBcHBsZVBheVNoaXBwaW5n
TWV0aG9kOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8
IGxhYmVsOworICAgIGVuY29kZXIgPDwgZGV0YWlsOworICAgIGVuY29kZXIgPDwgYW1vdW50Owor
ICAgIGVuY29kZXIgPDwgaWRlbnRpZmllcjsKIH0KIAordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4K
K09wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+IEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q6
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworI2RlZmluZSBERUNPREUobmFtZSwgdHlwZSkg
XAorICAgIE9wdGlvbmFsPHR5cGU+IG5hbWU7IFwKKyAgICBkZWNvZGVyID4+IG5hbWU7IFwKKyAg
ICBpZiAoIW5hbWUpIFwKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsgXAorCisgICAgREVD
T0RFKGxhYmVsLCBTdHJpbmcpCisgICAgREVDT0RFKGRldGFpbCwgU3RyaW5nKQorICAgIERFQ09E
RShhbW91bnQsIFN0cmluZykKKyAgICBERUNPREUoaWRlbnRpZmllciwgU3RyaW5nKQorCisjdW5k
ZWYgREVDT0RFCisKKyAgICByZXR1cm4ge3sgV1RGTW92ZSgqbGFiZWwpLCBXVEZNb3ZlKCpkZXRh
aWwpLCBXVEZNb3ZlKCphbW91bnQpLCBXVEZNb3ZlKCppZGVudGlmaWVyKSB9fTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9k
U2VsZWN0ZWRFdmVudC5jcHAKaW5kZXggYmQ3NjVmOGM1ZjZlNDNjYzUzMjgwYmNkNzQ3MDRjOWE5
ODQ4MmVjNi4uOTU3NzZhNDQ4Zjg1YjI3YWY5NDU2MGJlZDk4ZmNlYjcxMzk2NDRkZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0
aG9kU2VsZWN0ZWRFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudC5jcHAKQEAgLTM1LDIwICszNSw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEFw
cGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50KTsKIAotc3RhdGljIGlubGluZSBBcHBs
ZVBheVNoaXBwaW5nTWV0aG9kIGNvbnZlcnQoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKLXsKLSAgICBBcHBsZVBheVNo
aXBwaW5nTWV0aG9kIGNvbnZlcnRlZE1ldGhvZDsKLSAgICBjb252ZXJ0ZWRNZXRob2QubGFiZWwg
PSBzaGlwcGluZ01ldGhvZC5sYWJlbDsKLSAgICBjb252ZXJ0ZWRNZXRob2QuZGV0YWlsID0gc2hp
cHBpbmdNZXRob2QuZGV0YWlsOwotICAgIGNvbnZlcnRlZE1ldGhvZC5pZGVudGlmaWVyID0gc2hp
cHBpbmdNZXRob2QuaWRlbnRpZmllcjsKLSAgICBjb252ZXJ0ZWRNZXRob2QuYW1vdW50ID0gc2hp
cHBpbmdNZXRob2QuYW1vdW50OwotCi0gICAgcmV0dXJuIGNvbnZlcnRlZE1ldGhvZDsgCi19Ci0K
LUFwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50OjpBcHBsZVBheVNoaXBwaW5nTWV0
aG9kU2VsZWN0ZWRFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQorQXBw
bGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQ6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2RT
ZWxlY3RlZEV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEFwcGxlUGF5U2hpcHBp
bmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQogICAgIDogRXZlbnQodHlwZSwgQ2FuQnViYmxlOjpO
bywgSXNDYW5jZWxhYmxlOjpObykKLSAgICAsIG1fc2hpcHBpbmdNZXRob2QoY29udmVydChzaGlw
cGluZ01ldGhvZCkpCisgICAgLCBtX3NoaXBwaW5nTWV0aG9kKHNoaXBwaW5nTWV0aG9kKQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50LmgKaW5kZXggY2EzMzkw
NzMyNjliOTZmZDY1NjMwMDdlZjUxYTUxMTU3OGI3N2FhOC4uZjYwYTJhNWYzYjRmYTEyMGY1ZDc5
ZjRiOThhMjA1OGM0YzZiMWY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVk
RXZlbnQuaApAQCAtMjcsNyArMjcsNiBAQAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAotI2lu
Y2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAKQEAgLTM2LDcgKzM1LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVj
dGVkRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQpOwogcHVibGljOgotICAgIHN0
YXRpYyBSZWY8QXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQ+IGNyZWF0ZShjb25z
dCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6
U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQorICAgIHN0YXRpYyBSZWY8QXBwbGVQYXlT
aGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBl
LCBjb25zdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKICAgICB7CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3Rl
ZEV2ZW50KHR5cGUsIHNoaXBwaW5nTWV0aG9kKSk7CiAgICAgfQpAQCAtNDYsNyArNDUsNyBAQCBw
dWJsaWM6CiAgICAgY29uc3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2Qo
KSBjb25zdCB7IHJldHVybiBtX3NoaXBwaW5nTWV0aG9kOyB9CiAKIHByaXZhdGU6Ci0gICAgQXBw
bGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwg
Y29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJik7Cisg
ICAgQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQoY29uc3QgQXRvbVN0cmluZyYg
dHlwZSwgY29uc3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYpOwogCiAgICAgLy8gRXZlbnQuCiAg
ICAgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01l
dGhvZFVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNo
aXBwaW5nTWV0aG9kVXBkYXRlLmgKaW5kZXggZGE2ZDlkNDhkZjAzNjlmMWU5N2E4NTQzNDk1OGJm
MDQzZDIyZjg1Zi4uNjM5YmUwZDJiYjkyYTExNDM2N2JiYTM2Yjk4N2I5YzY2ZGQ5MWY1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5n
TWV0aG9kVXBkYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmgKQEAgLTI3LDE1ICsyNywzMiBAQAogCiAjaWYgRU5B
QkxFKEFQUExFX1BBWSkKIAotI2luY2x1ZGUgIkFwcGxlUGF5TGluZUl0ZW0uaCIKKyNpbmNsdWRl
ICJBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
c3RydWN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUgewotICAgIEFwcGxlUGF5TGluZUl0
ZW0gbmV3VG90YWw7Ci0gICAgVmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+IG5ld0xpbmVJdGVtczsK
K3N0cnVjdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlIGZpbmFsIDogcHVibGljIEFwcGxl
UGF5RGV0YWlsc1VwZGF0ZUJhc2UgeworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgT3B0aW9uYWw8QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4gZGVjb2RlKERlY29kZXIm
KTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEFwcGxlUGF5U2hpcHBpbmdN
ZXRob2RVcGRhdGU6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIEFwcGxl
UGF5RGV0YWlsc1VwZGF0ZUJhc2U6OmVuY29kZShlbmNvZGVyKTsKIH0KIAordGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4KK09wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+IEFwcGxl
UGF5U2hpcHBpbmdNZXRob2RVcGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAg
IEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUgcmVzdWx0OworCisgICAgaWYgKCFyZXN1bHQu
ZGVjb2RlQmFzZShkZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBp
bmdNZXRob2RVcGRhdGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmlkbAppbmRleCA4NDU5ZGE4ZDc1ZDQzZWE4NzkyMDk0
NTBkZTZiNzBmNjljODFmYmFiLi4yZTU0NGM1MDc5ZmFhZjBjMDg5ZWUyZDIxODRmOWVjNjNjMzVk
YjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
U2hpcHBpbmdNZXRob2RVcGRhdGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5pZGwKQEAgLTI1LDcgKzI1LDUgQEAK
IAogWwogICAgIENvbmRpdGlvbmFsPUFQUExFX1BBWSwKLV0gZGljdGlvbmFyeSBBcHBsZVBheVNo
aXBwaW5nTWV0aG9kVXBkYXRlIHsKLSAgICByZXF1aXJlZCBBcHBsZVBheUxpbmVJdGVtIG5ld1Rv
dGFsOwotICAgIHNlcXVlbmNlPEFwcGxlUGF5TGluZUl0ZW0+IG5ld0xpbmVJdGVtczsKK10gZGlj
dGlvbmFyeSBBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlIDogQXBwbGVQYXlEZXRhaWxzVXBk
YXRlQmFzZSB7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9QYXltZW50Q29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9QYXltZW50Q29vcmRpbmF0b3IuY3BwCmluZGV4IDZiMGQ0NDQ2NjA0NmMxZDQwNjc4MGYxZTE4
NTAyNDA4MTI5NDQxMTMuLjM1ZmYxMjM4YmJlN2VjZmNjNWYwOWZmMTg2NzZmYWIwYjE0ZDRmYTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3Jk
aW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRD
b29yZGluYXRvci5jcHAKQEAgLTI4LDYgKzI4LDEwIEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZ
KQogCisjaW5jbHVkZSAiQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmgiCisjaW5jbHVkZSAi
QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaCIKKyNpbmNsdWRlICJBcHBsZVBheVNoaXBw
aW5nTWV0aG9kLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTGlua0ljb25Db2xsZWN0b3IuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCkBAIC0xMjgsMjEgKzEzMiwyMSBAQCB2b2lkIFBheW1lbnRDb29y
ZGluYXRvcjo6Y29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24oY29uc3QgUGF5bWVudE1lcmNoYW50
U2Vzc2lvbgogICAgIG1fY2xpZW50LmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKHBheW1lbnRN
ZXJjaGFudFNlc3Npb24pOwogfQogCi12b2lkIFBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVT
aGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJiB1
cGRhdGUpCit2b2lkIFBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNl
bGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkK
IHsKICAgICBBU1NFUlQobV9hY3RpdmVTZXNzaW9uKTsKICAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKCkiKTsKICAgICBtX2NsaWVudC5j
b21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKFdURk1vdmUodXBkYXRlKSk7CiB9CiAKLXZv
aWQgUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihP
cHRpb25hbDxTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYgdXBkYXRlKQordm9pZCBQYXltZW50Q29v
cmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxl
UGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmIHVwZGF0ZSkKIHsKICAgICBBU1NFUlQobV9hY3Rp
dmVTZXNzaW9uKTsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjb21wbGV0ZVNoaXBwaW5n
Q29udGFjdFNlbGVjdGlvbigpIik7CiAgICAgbV9jbGllbnQuY29tcGxldGVTaGlwcGluZ0NvbnRh
Y3RTZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUpKTsKIH0KIAotdm9pZCBQYXltZW50Q29vcmRpbmF0
b3I6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxQYXltZW50TWV0aG9k
VXBkYXRlPiYmIHVwZGF0ZSkKK3ZvaWQgUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVBheW1l
bnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlPiYm
IHVwZGF0ZSkKIHsKICAgICBBU1NFUlQobV9hY3RpdmVTZXNzaW9uKTsKICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oKSIpOwpAQCAtMjEx
LDcgKzIxNSw3IEBAIHZvaWQgUGF5bWVudENvb3JkaW5hdG9yOjpkaWRTZWxlY3RQYXltZW50TWV0
aG9kKGNvbnN0IFBheW1lbnRNZXRob2QmIHBheW1lbnRNZXRoCiAgICAgbV9hY3RpdmVTZXNzaW9u
LT5kaWRTZWxlY3RQYXltZW50TWV0aG9kKHBheW1lbnRNZXRob2QpOwogfQogCi12b2lkIFBheW1l
bnRDb29yZGluYXRvcjo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKK3ZvaWQg
UGF5bWVudENvb3JkaW5hdG9yOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKIHsKICAgICBpZiAoIW1fYWN0aXZlU2Vz
c2lvbikgewogICAgICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHBheW1lbnQgaGFzIGJl
ZW4gYWJvcnRlZCBhbHJlYWR5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvUGF5bWVudENvb3JkaW5hdG9yLmgKaW5kZXggN2JkNGEyNWYzOWUzN2Y0Y2Q0ZDQyMDlj
MGZjYTQzZDc4MzdkN2FkMC4uNjQ1Yzc5NjM2NWU3ZTg2YmM2ZjFmZjVmYmEwNDNlZGE4MDAwNWQw
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29v
cmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRD
b29yZGluYXRvci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3QuaCIKICNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQuaD4KICNpbmNsdWRlIDx3
dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MSwxNSArNDIsMTYgQEAgY2xh
c3MgUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50OwogY2xhc3MgUGF5bWVudENvbnRhY3Q7CiBjbGFz
cyBQYXltZW50TWVyY2hhbnRTZXNzaW9uOwogY2xhc3MgUGF5bWVudE1ldGhvZDsKLWNsYXNzIFBh
eW1lbnRNZXRob2RVcGRhdGU7CiBjbGFzcyBQYXltZW50U2Vzc2lvbjsKIGNsYXNzIFBheW1lbnRT
ZXNzaW9uRXJyb3I7CiBlbnVtIGNsYXNzIFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOworc3Ry
dWN0IEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZTsKIHN0cnVjdCBBcHBsZVBheVNldHVwQ29u
ZmlndXJhdGlvbjsKK3N0cnVjdCBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZTsKK3N0cnVj
dCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kOworc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2RV
cGRhdGU7CiBzdHJ1Y3QgRXhjZXB0aW9uRGV0YWlsczsKIHN0cnVjdCBQYXltZW50QXV0aG9yaXph
dGlvblJlc3VsdDsKLXN0cnVjdCBTaGlwcGluZ0NvbnRhY3RVcGRhdGU7Ci1zdHJ1Y3QgU2hpcHBp
bmdNZXRob2RVcGRhdGU7CiAKIGNsYXNzIFBheW1lbnRDb29yZGluYXRvciA6IHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxQYXltZW50Q29vcmRpbmF0b3I+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKQEAgLTY4LDkgKzcwLDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBiZWdpblBheW1lbnRT
ZXNzaW9uKERvY3VtZW50JiwgUGF5bWVudFNlc3Npb24mLCBjb25zdCBBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdCYpOwogICAgIHZvaWQgY29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24oY29u
c3QgUGF5bWVudE1lcmNoYW50U2Vzc2lvbiYpOwotICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01l
dGhvZFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJik7Ci0gICAgdm9p
ZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ0NvbnRh
Y3RVcGRhdGU+JiYpOwotICAgIHZvaWQgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9w
dGlvbmFsPFBheW1lbnRNZXRob2RVcGRhdGU+JiYpOworICAgIHZvaWQgY29tcGxldGVTaGlwcGlu
Z01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYm
KTsKKyAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPEFw
cGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKTsKKyAgICB2b2lkIGNvbXBsZXRlUGF5bWVu
dE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+JiYp
OwogICAgIHZvaWQgY29tcGxldGVQYXltZW50U2Vzc2lvbihPcHRpb25hbDxQYXltZW50QXV0aG9y
aXphdGlvblJlc3VsdD4mJik7CiAgICAgdm9pZCBhYm9ydFBheW1lbnRTZXNzaW9uKCk7CiAgICAg
dm9pZCBjYW5jZWxQYXltZW50U2Vzc2lvbigpOwpAQCAtNzgsNyArODAsNyBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB2YWxpZGF0ZU1lcmNoYW50KFVSTCYmIHZhbGlkYXRpb25V
UkwpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBQ
YXltZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRTZWxlY3RQYXltZW50TWV0aG9k
KGNvbnN0IFBheW1lbnRNZXRob2QmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZFNlbGVj
dFNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlw
cGluZ01ldGhvZCYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkU2VsZWN0U2hpcHBpbmdN
ZXRob2QoY29uc3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KGNvbnN0IFBheW1lbnRDb250YWN0Jik7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRDYW5jZWxQYXltZW50U2Vzc2lvbihQYXltZW50U2Vz
c2lvbkVycm9yJiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L1BheW1lbnRDb29yZGluYXRvckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3JDbGllbnQuaAppbmRleCBkNmUyNmZjOTc0MDQ1NzRi
YzFjMjAxOTQ5MjE1ZDFlYmY0ZjdhNTVjLi4xNmVkYzgzZWVlYjJmMTZjZTlhYmQ5YzBiMGE4NWQx
YTUzY2YxYjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1Bh
eW1lbnRDb29yZGluYXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50LmgKQEAgLTMyLDE2ICszMiwxNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBQYXltZW50TWVy
Y2hhbnRTZXNzaW9uOwotY2xhc3MgUGF5bWVudE1ldGhvZFVwZGF0ZTsKK3N0cnVjdCBBcHBsZVBh
eVBheW1lbnRNZXRob2RVcGRhdGU7CiBzdHJ1Y3QgQXBwbGVQYXlTZXR1cENvbmZpZ3VyYXRpb247
CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU7CitzdHJ1Y3QgQXBwbGVQYXlT
aGlwcGluZ01ldGhvZFVwZGF0ZTsKIHN0cnVjdCBQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdDsK
LXN0cnVjdCBTaGlwcGluZ0NvbnRhY3RVcGRhdGU7Ci1zdHJ1Y3QgU2hpcHBpbmdNZXRob2RVcGRh
dGU7CiAKIGNsYXNzIFBheW1lbnRDb29yZGluYXRvckNsaWVudCB7CiBwdWJsaWM6CkBAIC01NCw5
ICs1NSw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzaG93UGF5bWVudFVJKGNvbnN0
IFVSTCYgb3JpZ2luYXRpbmdVUkwsIGNvbnN0IFZlY3RvcjxVUkw+JiBsaW5rSWNvblVSTHMsIGNv
bnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBjb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBQYXltZW50TWVyY2hhbnRTZXNzaW9u
JikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9u
KE9wdGlvbmFsPFNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IGNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFNoaXBwaW5nQ29udGFj
dFVwZGF0ZT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRob2RT
ZWxlY3Rpb24oT3B0aW9uYWw8UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5
U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcGxldGVT
aGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RV
cGRhdGU+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcGxldGVQYXltZW50TWV0aG9kU2Vs
ZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBjb21wbGV0ZVBheW1lbnRTZXNzaW9uKE9wdGlvbmFsPFBheW1lbnRBdXRo
b3JpemF0aW9uUmVzdWx0PiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFib3J0UGF5bWVudFNl
c3Npb24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbFBheW1lbnRTZXNzaW9uKCkgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50SGVh
ZGVycy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50SGVhZGVycy5o
CmluZGV4IGM1NTUxMTc5ZWQxZjBkMjQ1MDhlMmE0NGViYzUzNzJlNzliZmM1MTMuLjJkZGIyNTlj
NThkN2QyODNhZjNjMDBmZWVmYjA5OWRhODExNGRjYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudEhlYWRlcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRIZWFkZXJzLmgKQEAgLTI1LDExICsyNSwxMyBAQAog
CiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5o
IgogI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgiCisjaW5jbHVkZSAi
QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaCIKKyNpbmNsdWRlICJBcHBsZVBheVNoaXBw
aW5nTWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVkZSAiUGF5bWVudC5oIgogI2luY2x1ZGUgIlBheW1l
bnRDb250YWN0LmgiCiAjaW5jbHVkZSAiUGF5bWVudE1lcmNoYW50U2Vzc2lvbi5oIgogI2luY2x1
ZGUgIlBheW1lbnRNZXRob2QuaCIKLSNpbmNsdWRlICJQYXltZW50TWV0aG9kVXBkYXRlLmgiCiAj
aW5jbHVkZSAiUGF5bWVudFNlc3Npb25FcnJvci5oIgogI2luY2x1ZGUgIlBheW1lbnRTdW1tYXJ5
SXRlbXMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5
bWVudE1ldGhvZFVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXlt
ZW50TWV0aG9kVXBkYXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4NDBlMTYz
ZDUwNWIwMGMyMTlhMTZmYzM5OGY1YmYzODQzOGYzOGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9Q
YXltZW50TWV0aG9kVXBkYXRlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoQVBQTEVfUEFZKQotCi0jaW5jbHVk
ZSAiQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKLSNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+Ci0KLU9CSkNfQ0xBU1MgUEtQYXltZW50UmVxdWVzdFBheW1lbnRNZXRob2RVcGRhdGU7
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgV0VCQ09SRV9FWFBPUlQgUGF5bWVudE1l
dGhvZFVwZGF0ZSB7Ci1wdWJsaWM6Ci0gICAgdXNpbmcgVG90YWxBbmRMaW5lSXRlbXMgPSBBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXM7Ci0KLSAgICBQYXlt
ZW50TWV0aG9kVXBkYXRlKEFwcGxlUGF5TGluZUl0ZW0mJiB0b3RhbCwgVmVjdG9yPEFwcGxlUGF5
TGluZUl0ZW0+JiYpOwotICAgIGV4cGxpY2l0IFBheW1lbnRNZXRob2RVcGRhdGUoUmV0YWluUHRy
PFBLUGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlPiYmKTsKLSAgICBleHBsaWNpdCBQ
YXltZW50TWV0aG9kVXBkYXRlKFRvdGFsQW5kTGluZUl0ZW1zJiYpOwotCi0gICAgY29uc3QgVG90
YWxBbmRMaW5lSXRlbXMmIHRvdGFsQW5kTGluZUl0ZW1zKCkgY29uc3Q7Ci0gICAgUEtQYXltZW50
UmVxdWVzdFBheW1lbnRNZXRob2RVcGRhdGUgKnBsYXRmb3JtVXBkYXRlKCkgY29uc3Q7Ci0KLSNp
ZiBIQVZFKFBBU1NLSVRfSU5TVEFMTE1FTlRTKQotICAgIHZvaWQgc2V0SW5zdGFsbG1lbnRHcm91
cElkZW50aWZpZXIoY29uc3QgU3RyaW5nJik7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICBPcHRp
b25hbDxUb3RhbEFuZExpbmVJdGVtcz4gbV90b3RhbEFuZExpbmVJdGVtczsKLSAgICBSZXRhaW5Q
dHI8UEtQYXltZW50UmVxdWVzdFBheW1lbnRNZXRob2RVcGRhdGU+IG1fcGxhdGZvcm1VcGRhdGU7
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoQVBQTEVf
UEFZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50
UmVxdWVzdFZhbGlkYXRvci5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5
bWVudFJlcXVlc3RWYWxpZGF0b3IubW0KaW5kZXggZWY5ZjZlODI0ODQ2NWZlM2FmYjNhNjNkNmJi
ZjI4ZjcwZTgxZDNiYy4uZDAwYzg4YzgzODhkMDQ0YmFkMDVhODY1ZDRkZWUxMzk4ZmNmMDA0MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVz
dFZhbGlkYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1l
bnRSZXF1ZXN0VmFsaWRhdG9yLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEFQUExF
X1BBWSkKIAogI2ltcG9ydCAiQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKKyNpbXBv
cnQgIkFwcGxlUGF5U2hpcHBpbmdNZXRob2QuaCIKICNpbXBvcnQgPHVuaWNvZGUvdWN1cnIuaD4K
ICNpbXBvcnQgPHVuaWNvZGUvdWxvYy5oPgogCkBAIC0zOCw4ICszOSw4IEBAIHN0YXRpYyBFeGNl
cHRpb25Pcjx2b2lkPiB2YWxpZGF0ZUNvdW50cnlDb2RlKGNvbnN0IFN0cmluZyYpOwogc3RhdGlj
IEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlQ3VycmVuY3lDb2RlKGNvbnN0IFN0cmluZyYpOwog
c3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlTWVyY2hhbnRDYXBhYmlsaXRpZXMoY29u
c3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzJik7
CiBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVTdXBwb3J0ZWROZXR3b3Jrcyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYpOwotc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlU2hp
cHBpbmdNZXRob2RzKGNvbnN0IFZlY3RvcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6
U2hpcHBpbmdNZXRob2Q+Jik7Ci1zdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVTaGlw
cGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdN
ZXRob2QmKTsKK3N0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5nTWV0aG9k
cyhjb25zdCBWZWN0b3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4mKTsKK3N0YXRpYyBFeGNlcHRp
b25Pcjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdN
ZXRob2QmKTsKIAogRXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVudFJlcXVlc3RWYWxpZGF0b3I6OnZh
bGlkYXRlKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0JiBwYXltZW50UmVxdWVz
dCkKIHsKQEAgLTE0MSw3ICsxNDIsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRh
dGVTdXBwb3J0ZWROZXR3b3Jrcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3VwcG9ydAogICAgIHJl
dHVybiB7IH07CiB9CiAKLXN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5n
TWV0aG9kKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhv
ZCYgc2hpcHBpbmdNZXRob2QpCitzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVTaGlw
cGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkK
IHsKICAgICBOU0RlY2ltYWxOdW1iZXIgKmFtb3VudCA9IFtOU0RlY2ltYWxOdW1iZXIgZGVjaW1h
bE51bWJlcldpdGhTdHJpbmc6c2hpcHBpbmdNZXRob2QuYW1vdW50IGxvY2FsZTpAeyBOU0xvY2Fs
ZURlY2ltYWxTZXBhcmF0b3IgOiBAIi4iIH1dOwogICAgIGlmIChhbW91bnQuaW50ZWdlclZhbHVl
IDwgMCkKQEAgLTE1MCw3ICsxNTEsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRh
dGVTaGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdQogICAgIHJl
dHVybiB7IH07CiB9CiAKLXN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5n
TWV0aG9kcyhjb25zdCBWZWN0b3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBw
aW5nTWV0aG9kPiYgc2hpcHBpbmdNZXRob2RzKQorc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZh
bGlkYXRlU2hpcHBpbmdNZXRob2RzKGNvbnN0IFZlY3RvcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9k
PiYgc2hpcHBpbmdNZXRob2RzKQogewogICAgIGZvciAoY29uc3QgYXV0byYgc2hpcHBpbmdNZXRo
b2QgOiBzaGlwcGluZ01ldGhvZHMpIHsKICAgICAgICAgYXV0byB2YWxpZGF0ZWRTaGlwcGluZ01l
dGhvZCA9IHZhbGlkYXRlU2hpcHBpbmdNZXRob2Qoc2hpcHBpbmdNZXRob2QpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5oCmluZGV4IGNlNWNm
NTM5OGVhYjFjMWFjMTFlZjdjMDIxMmIyOWIzN2MyNjcwMzIuLmY1ZGZmZDBlZWMxMmE2ZGMwNzVi
MGU1ZDZlMzgwMjBmMjk2ZjYxNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvUGF5bWVudFNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L1BheW1lbnRTZXNzaW9uLmgKQEAgLTI3LDcgKzI3LDYgQEAKIAogI2lmIEVOQUJMRShB
UFBMRV9QQVkpCiAKLSNpbmNsdWRlICJBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oIgog
I2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiUGF5bWVudFNlc3Npb25CYXNlLmgi
CiAKQEAgLTM5LDYgKzM4LDcgQEAgY2xhc3MgUGF5bWVudENvbnRhY3Q7CiBjbGFzcyBQYXltZW50
TWV0aG9kOwogY2xhc3MgUGF5bWVudFNlc3Npb25FcnJvcjsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZDsKIAogY2xhc3MgUGF5bWVu
dFNlc3Npb24gOiBwdWJsaWMgdmlydHVhbCBQYXltZW50U2Vzc2lvbkJhc2UgewogcHVibGljOgpA
QCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB1bnNpZ25lZCB2ZXJzaW9uKCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB2YWxpZGF0ZU1lcmNoYW50KFVSTCYmKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGRpZEF1dGhvcml6ZVBheW1lbnQoY29uc3QgUGF5bWVudCYpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQ
YXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNoaXBwaW5nTWV0
aG9kJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3QoY29u
c3QgUGF5bWVudENvbnRhY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNlbGVjdFBheW1l
bnRNZXRob2QoY29uc3QgUGF5bWVudE1ldGhvZCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
Q2FuY2VsUGF5bWVudFNlc3Npb24oUGF5bWVudFNlc3Npb25FcnJvciYmKSA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTdW1tYXJ5SXRlbXMu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFN1bW1hcnlJdGVtcy5o
CmluZGV4IGZmZjg0NGQ3Nzk1YjM5NWRlYTEyMDFjMTM3MDZmZTczZDk2ZjhmOWEuLjJiZDNlZWM5
MzgwZWMzMTU5NzU5MzE5MDg5YWE5OGYzODI2ZTU2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFN1bW1hcnlJdGVtcy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFN1bW1hcnlJdGVtcy5oCkBAIC0yNywxMyAr
MjcsMTIgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKLSNpbmNsdWRlICJBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdC5oIgotCiBPQkpDX0NMQVNTIE5TQXJyYXk7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotV0VCQ09SRV9FWFBPUlQgTlNBcnJheSAqcGxhdGZvcm1TdW1tYXJ5SXRl
bXMoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1z
Jik7CitzdHJ1Y3QgQXBwbGVQYXlMaW5lSXRlbTsKKwogV0VCQ09SRV9FWFBPUlQgTlNBcnJheSAq
cGxhdGZvcm1TdW1tYXJ5SXRlbXMoY29uc3QgQXBwbGVQYXlMaW5lSXRlbSYgdG90YWwsIGNvbnN0
IFZlY3RvcjxBcHBsZVBheUxpbmVJdGVtPiYpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRN
ZXRob2RVcGRhdGVDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29j
b2EvUGF5bWVudE1ldGhvZFVwZGF0ZUNvY29hLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAxNjRkMTFiNmQwNzY5N2E5ZDA5NTk1NjVjNmZjMWQ2ODc4ZmFhNTBjLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudE1ldGhvZFVwZGF0ZUNvY29hLm1tCisrKyAvZGV2L251
bGwKQEAgLTEsNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2lt
cG9ydCAiUGF5bWVudE1ldGhvZFVwZGF0ZS5oIgotCi0jaWYgRU5BQkxFKEFQUExFX1BBWSkKLQot
I2ltcG9ydCAiUGF5bWVudFN1bW1hcnlJdGVtcy5oIgotI2ltcG9ydCA8cGFsL2NvY29hL1Bhc3NL
aXRTb2Z0TGluay5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVBheW1lbnRNZXRob2RVcGRh
dGU6OlBheW1lbnRNZXRob2RVcGRhdGUoQXBwbGVQYXlMaW5lSXRlbSYmIHRvdGFsLCBWZWN0b3I8
QXBwbGVQYXlMaW5lSXRlbT4mJiBsaW5lSXRlbXMpCi0gICAgOiBtX3RvdGFsQW5kTGluZUl0ZW1z
IHsgeyBXVEZNb3ZlKHRvdGFsKSwgV1RGTW92ZShsaW5lSXRlbXMpIH0gfQotICAgICwgbV9wbGF0
Zm9ybVVwZGF0ZSB7IGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1l
dGhvZFVwZGF0ZUluc3RhbmNlKCkgaW5pdFdpdGhQYXltZW50U3VtbWFyeUl0ZW1zOnBsYXRmb3Jt
U3VtbWFyeUl0ZW1zKCptX3RvdGFsQW5kTGluZUl0ZW1zKV0pIH0KLXsKLX0KLQotUGF5bWVudE1l
dGhvZFVwZGF0ZTo6UGF5bWVudE1ldGhvZFVwZGF0ZShSZXRhaW5QdHI8UEtQYXltZW50UmVxdWVz
dFBheW1lbnRNZXRob2RVcGRhdGU+JiYgcGxhdGZvcm1VcGRhdGUpCi0gICAgOiBtX3BsYXRmb3Jt
VXBkYXRlIHsgV1RGTW92ZShwbGF0Zm9ybVVwZGF0ZSkgfQotewotfQotCi1QYXltZW50TWV0aG9k
VXBkYXRlOjpQYXltZW50TWV0aG9kVXBkYXRlKFRvdGFsQW5kTGluZUl0ZW1zJiYgdG90YWxBbmRM
aW5lSXRlbXMpCi0gICAgOiBQYXltZW50TWV0aG9kVXBkYXRlIHsgV1RGTW92ZSh0b3RhbEFuZExp
bmVJdGVtcy50b3RhbCksIFdURk1vdmUodG90YWxBbmRMaW5lSXRlbXMubGluZUl0ZW1zKSB9Ci17
Ci19Ci0KLWNvbnN0IFBheW1lbnRNZXRob2RVcGRhdGU6OlRvdGFsQW5kTGluZUl0ZW1zJiBQYXlt
ZW50TWV0aG9kVXBkYXRlOjp0b3RhbEFuZExpbmVJdGVtcygpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
ICptX3RvdGFsQW5kTGluZUl0ZW1zOwotfQotCi1QS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhv
ZFVwZGF0ZSAqUGF5bWVudE1ldGhvZFVwZGF0ZTo6cGxhdGZvcm1VcGRhdGUoKSBjb25zdAotewot
ICAgIHJldHVybiBtX3BsYXRmb3JtVXBkYXRlLmdldCgpOwotfQotCi0jaWYgSEFWRShQQVNTS0lU
X0lOU1RBTExNRU5UUykKLXZvaWQgUGF5bWVudE1ldGhvZFVwZGF0ZTo6c2V0SW5zdGFsbG1lbnRH
cm91cElkZW50aWZpZXIoY29uc3QgU3RyaW5nJiBpbnN0YWxsbWVudEdyb3VwSWRlbnRpZmllcikK
LXsKLSAgICBbbV9wbGF0Zm9ybVVwZGF0ZSBzZXRJbnN0YWxsbWVudEdyb3VwSWRlbnRpZmllcjpp
bnN0YWxsbWVudEdyb3VwSWRlbnRpZmllcl07Ci19Ci0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudFN1bW1hcnlJdGVtc0NvY29h
Lm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50U3VtbWFy
eUl0ZW1zQ29jb2EubW0KaW5kZXggZTc5OWE5Y2NkOTUxZGIzMDNiYTYyNzBjYTkzMjQxYzBkODQ3
NDQ1MC4uMTFlZGIwYjQ5NmRkNzkwM2YwZmI1YTJjNjJlNmVmODIxYWNjNDJkNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0
ZW1zQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9Q
YXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJM
RShBUFBMRV9QQVkpCiAKKyNpbXBvcnQgIkFwcGxlUGF5TGluZUl0ZW0uaCIKICNpbXBvcnQgPHBh
bC9jb2NvYS9QYXNzS2l0U29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjAs
MTEgKzYxLDYgQEAgc3RhdGljIFBLUGF5bWVudFN1bW1hcnlJdGVtICp0b1BLUGF5bWVudFN1bW1h
cnlJdGVtKGNvbnN0IEFwcGxlUGF5TGluZUl0ZW0mIGxpbmUKIH0KICNlbmRpZgogCi1OU0FycmF5
ICpwbGF0Zm9ybVN1bW1hcnlJdGVtcyhjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dDo6VG90YWxBbmRMaW5lSXRlbXMmIHRvdGFsQW5kTGluZUl0ZW1zKQotewotICAgIHJldHVybiBw
bGF0Zm9ybVN1bW1hcnlJdGVtcyh0b3RhbEFuZExpbmVJdGVtcy50b3RhbCwgdG90YWxBbmRMaW5l
SXRlbXMubGluZUl0ZW1zKTsKLX0KLQogTlNBcnJheSAqcGxhdGZvcm1TdW1tYXJ5SXRlbXMoY29u
c3QgQXBwbGVQYXlMaW5lSXRlbSYgdG90YWwsIGNvbnN0IFZlY3RvcjxBcHBsZVBheUxpbmVJdGVt
PiYgbGluZUl0ZW1zKQogewogICAgIE5TTXV0YWJsZUFycmF5ICpwYXltZW50U3VtbWFyeUl0ZW1z
ID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFjaXR5OmxpbmVJdGVtcy5zaXplKCkgKyAx
XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJl
cXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCmluZGV4
IDdlYzAzNzBmZmVmZTMzNjI4OTFmZjE1MjdkMmUxOGFlNWQxYjg5NjAuLmYzOWIxNTEwMzY1NzM3
YjE1ODA5YWE2NGJhYzAyM2I1OWQwN2VhNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBs
ZVBheVBheW1lbnRIYW5kbGVyLmNwcApAQCAtMzAsMTEgKzMwLDE5IEBACiAKICNpbmNsdWRlICJB
ZGRyZXNzRXJyb3JzLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlDb250YWN0RmllbGQuaCIKKyNpbmNs
dWRlICJBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlFcnJv
ci5oIgorI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3JDb2RlLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlF
cnJvckNvbnRhY3RGaWVsZC5oIgogI2luY2x1ZGUgIkFwcGxlUGF5TGluZUl0ZW0uaCIKICNpbmNs
dWRlICJBcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5oIgogI2luY2x1ZGUgIkFwcGxlUGF5TW9k
aWZpZXIuaCIKICNpbmNsdWRlICJBcHBsZVBheVBheW1lbnQuaCIKKyNpbmNsdWRlICJBcHBsZVBh
eVBheW1lbnRNZXRob2RVcGRhdGUuaCIKICNpbmNsdWRlICJBcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdC5oIgorI2luY2x1ZGUgIkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmgiCisj
aW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oIgorI2luY2x1ZGUgIkFwcGxlUGF5U2hp
cHBpbmdNZXRob2RVcGRhdGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2
ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgpAQCAtNTQsNyArNjIsNiBAQAogI2luY2x1
ZGUgIlBheW1lbnRDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIlBheW1lbnRNZXJjaGFudFNlc3Np
b24uaCIKICNpbmNsdWRlICJQYXltZW50TWV0aG9kLmgiCi0jaW5jbHVkZSAiUGF5bWVudE1ldGhv
ZFVwZGF0ZS5oIgogI2luY2x1ZGUgIlBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLmgiCiAjaW5jbHVk
ZSAiUGF5bWVudFJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiUGF5bWVudFZhbGlkYXRpb25FcnJvcnMu
aCIKQEAgLTE5OCwxOSArMjA1LDQ1IEBAIHN0YXRpYyBBcHBsZVBheVNlc3Npb25QYXltZW50UmVx
dWVzdDo6U2hpcHBpbmdUeXBlIGNvbnZlcnQoUGF5bWVudFNoaXBwaW5nVHlwZSB0CiAgICAgcmV0
dXJuIEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ1R5cGU6OlNoaXBwaW5n
OwogfQogCi1zdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6
OlNoaXBwaW5nTWV0aG9kPiBjb252ZXJ0QW5kVmFsaWRhdGUoY29uc3QgUGF5bWVudFNoaXBwaW5n
T3B0aW9uJiBzaGlwcGluZ09wdGlvbiwgY29uc3QgU3RyaW5nJiBleHBlY3RlZEN1cnJlbmN5KQor
c3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+IGNvbnZlcnRBbmRWYWxp
ZGF0ZShjb25zdCBQYXltZW50U2hpcHBpbmdPcHRpb24mIHNoaXBwaW5nT3B0aW9uLCBjb25zdCBT
dHJpbmcmIGV4cGVjdGVkQ3VycmVuY3kpCiB7CiAgICAgYXV0byBleGNlcHRpb24gPSB2YWxpZGF0
ZShzaGlwcGluZ09wdGlvbi5hbW91bnQsIGV4cGVjdGVkQ3VycmVuY3kpOwogICAgIGlmIChleGNl
cHRpb24uaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBleGNlcHRpb24ucmVsZWFzZUV4
Y2VwdGlvbigpOwogCi0gICAgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5n
TWV0aG9kIHJlc3VsdDsKKyAgICBBcHBsZVBheVNoaXBwaW5nTWV0aG9kIHJlc3VsdDsKICAgICBy
ZXN1bHQuYW1vdW50ID0gc2hpcHBpbmdPcHRpb24uYW1vdW50LnZhbHVlOwogICAgIHJlc3VsdC5s
YWJlbCA9IHNoaXBwaW5nT3B0aW9uLmxhYmVsOwogICAgIHJlc3VsdC5pZGVudGlmaWVyID0gc2hp
cHBpbmdPcHRpb24uaWQ7CiAgICAgcmV0dXJuIHsgV1RGTW92ZShyZXN1bHQpIH07CiB9CiAKKyNp
ZiAhRU5BQkxFKEFQUExFX1BBWV9QQVlNRU5UX0RFVEFJTFNfREFUQSkKK3N0YXRpYyBFeGNlcHRp
b25Pcjx2b2lkPiB2YWxpZGF0ZShjb25zdCBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhJikgeyB9
CisjZW5kaWYKKworc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGE+
IGNvbnZlcnRBbmRWYWxpZGF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25z
dCBQYXltZW50RGV0YWlsc0Jhc2UmIGRldGFpbHMpCit7CisgICAgYXV0byYgbGV4aWNhbEdsb2Jh
bE9iamVjdCA9ICpjb250ZXh0Lmdsb2JhbE9iamVjdCgpOworICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKGxleGljYWxHbG9iYWxPYmplY3Qudm0oKSk7CisgICAgSlNDOjpKU1Zh
bHVlIGRhdGE7CisgICAgeworICAgICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0KTsKKyAgICAgICAgZGF0YSA9IEpTT05QYXJzZSgmbGV4aWNhbEdsb2JhbE9i
amVjdCwgZGV0YWlscy5zZXJpYWxpemVkRGF0YSk7CisgICAgICAgIGlmIChzY29wZS5leGNlcHRp
b24oKSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVy
cm9yIH07CisgICAgfQorCisgICAgYXV0byBhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhID0gY29u
dmVydERpY3Rpb25hcnk8QXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YT4obGV4aWNhbEdsb2JhbE9i
amVjdCwgV1RGTW92ZShkYXRhKSk7CisgICAgaWYgKHNjb3BlLmV4Y2VwdGlvbigpKQorICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OworICAgIGF1dG8g
ZXhjZXB0aW9uID0gdmFsaWRhdGUoYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSk7CisgICAgaWYg
KGV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbi5yZWxl
YXNlRXhjZXB0aW9uKCk7CisKKyAgICByZXR1cm4gYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YTsK
K30KKwogRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29udmVydERh
dGEoSlNDOjpKU1ZhbHVlIGRhdGEpCiB7CiAgICAgYXV0byByZXF1ZXN0T3JFeGNlcHRpb24gPSBj
b252ZXJ0QW5kVmFsaWRhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgZGF0YSk7CkBAIC0y
MzgsNiArMjcxLDEwIEBAIHN0YXRpYyB2b2lkIG1lcmdlUGF5bWVudE9wdGlvbnMoY29uc3QgUGF5
bWVudE9wdGlvbnMmIG9wdGlvbnMsIEFwcGxlUGF5U2Vzc2lvblBhCiAgICAgICAgIHJlcXVlc3Qu
c2V0U2hpcHBpbmdUeXBlKGNvbnZlcnQob3B0aW9ucy5zaGlwcGluZ1R5cGUpKTsKIH0KIAorI2lm
ICFFTkFCTEUoQVBQTEVfUEFZX1BBWU1FTlRfREVUQUlMU19EQVRBKQorc3RhdGljIHZvaWQgbWVy
Z2UoQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmLCBBcHBsZVBheURldGFpbHNVcGRhdGVE
YXRhJiYpIHsgfQorI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVlfUEFZTUVOVF9ERVRBSUxTX0RB
VEEpCisKIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnNob3coRG9j
dW1lbnQmIGRvY3VtZW50KQogewogICAgIGF1dG8gdmFsaWRhdGVkUmVxdWVzdCA9IGNvbnZlcnRB
bmRWYWxpZGF0ZShkb2N1bWVudCwgbV9hcHBsZVBheVJlcXVlc3QtPnZlcnNpb24sICptX2FwcGxl
UGF5UmVxdWVzdCwgcGF5bWVudENvb3JkaW5hdG9yKCkpOwpAQCAtMjcwLDYgKzMwNywxMSBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpzaG93KERvY3VtZW50JiBk
b2N1bWVudCkKICAgICAgICAgcmV0dXJuIHNoaXBwaW5nTWV0aG9kcy5yZWxlYXNlRXhjZXB0aW9u
KCk7CiAgICAgcmVxdWVzdC5zZXRTaGlwcGluZ01ldGhvZHMoc2hpcHBpbmdNZXRob2RzLnJlbGVh
c2VSZXR1cm5WYWx1ZSgpKTsKIAorICAgIGF1dG8gYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSA9
IGNvbnZlcnRBbmRWYWxpZGF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3BheW1lbnRS
ZXF1ZXN0LT5wYXltZW50RGV0YWlscygpKTsKKyAgICBpZiAoYXBwbGVQYXlEZXRhaWxzVXBkYXRl
RGF0YS5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGFwcGxlUGF5RGV0YWlsc1VwZGF0
ZURhdGEucmVsZWFzZUV4Y2VwdGlvbigpOworICAgIG1lcmdlKHJlcXVlc3QsIGFwcGxlUGF5RGV0
YWlsc1VwZGF0ZURhdGEucmVsZWFzZVJldHVyblZhbHVlKCkpOworCiAgICAgYXV0byBleGNlcHRp
b24gPSBQYXltZW50UmVxdWVzdFZhbGlkYXRvcjo6dmFsaWRhdGUocmVxdWVzdCk7CiAgICAgaWYg
KGV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbi5yZWxl
YXNlRXhjZXB0aW9uKCk7CkBAIC0yOTAsMTEgKzMzMiwxMSBAQCB2b2lkIEFwcGxlUGF5UGF5bWVu
dEhhbmRsZXI6OmNhbk1ha2VQYXltZW50KERvY3VtZW50JiBkb2N1bWVudCwgRnVuY3Rpb248dm9p
ZChibwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHBheW1lbnRDb29yZGluYXRvcigpLmNhbk1ha2VQ
YXltZW50cyhkb2N1bWVudCkpOwogfQogCi1FeGNlcHRpb25PcjxWZWN0b3I8QXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPj4gQXBwbGVQYXlQYXltZW50SGFuZGxl
cjo6Y29tcHV0ZVNoaXBwaW5nTWV0aG9kcygpCitFeGNlcHRpb25PcjxWZWN0b3I8QXBwbGVQYXlT
aGlwcGluZ01ldGhvZD4+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVTaGlwcGluZ01l
dGhvZHMoKQogewogICAgIGF1dG8mIGRldGFpbHMgPSBtX3BheW1lbnRSZXF1ZXN0LT5wYXltZW50
RGV0YWlscygpOwogCi0gICAgVmVjdG9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpT
aGlwcGluZ01ldGhvZD4gc2hpcHBpbmdPcHRpb25zOworICAgIFZlY3RvcjxBcHBsZVBheVNoaXBw
aW5nTWV0aG9kPiBzaGlwcGluZ09wdGlvbnM7CiAgICAgaWYgKGRldGFpbHMuc2hpcHBpbmdPcHRp
b25zKSB7CiAgICAgICAgIGF1dG8mIGN1cnJlbmN5ID0gZGV0YWlscy50b3RhbC5hbW91bnQuY3Vy
cmVuY3k7CiAKQEAgLTMxMCw3ICszNTIsNyBAQCBFeGNlcHRpb25PcjxWZWN0b3I8QXBwbGVQYXlT
ZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPj4gQXBwbGVQYXlQYXltZQogICAg
IHJldHVybiBXVEZNb3ZlKHNoaXBwaW5nT3B0aW9ucyk7CiB9CiAKLUV4Y2VwdGlvbk9yPEFwcGxl
UGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz4gQXBwbGVQYXlQYXlt
ZW50SGFuZGxlcjo6Y29tcHV0ZVRvdGFsQW5kTGluZUl0ZW1zKCkgY29uc3QKK0V4Y2VwdGlvbk9y
PHN0ZDo6dHVwbGU8QXBwbGVQYXlMaW5lSXRlbSwgVmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+Pj4g
QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcHV0ZVRvdGFsQW5kTGluZUl0ZW1zKCkgY29uc3QK
IHsKICAgICBhdXRvJiBkZXRhaWxzID0gbV9wYXltZW50UmVxdWVzdC0+cGF5bWVudERldGFpbHMo
KTsKICAgICBTdHJpbmcgY3VycmVuY3kgPSBkZXRhaWxzLnRvdGFsLmFtb3VudC5jdXJyZW5jeTsK
QEAgLTMyOSw3ICszNzEsNyBAQCBFeGNlcHRpb25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVx
dWVzdDo6VG90YWxBbmRMaW5lSXRlbXM+IEFwcGxlUGF5UGF5bWVudEhhbgogICAgIH0KIAogICAg
IGlmICghbV9zZWxlY3RlZFBheW1lbnRNZXRob2RUeXBlKQotICAgICAgICByZXR1cm4gQXBwbGVQ
YXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zIHsgV1RGTW92ZSh0b3Rh
bCksIFdURk1vdmUobGluZUl0ZW1zKSB9OworICAgICAgICByZXR1cm4ge3sgV1RGTW92ZSh0b3Rh
bCksIFdURk1vdmUobGluZUl0ZW1zKSB9fTsKIAogICAgIGlmIChkZXRhaWxzLm1vZGlmaWVycykg
ewogICAgICAgICBhdXRvJiBzZXJpYWxpemVkTW9kaWZpZXJEYXRhID0gbV9wYXltZW50UmVxdWVz
dC0+c2VyaWFsaXplZE1vZGlmaWVyRGF0YSgpOwpAQCAtMzc2LDE4ICs0MTgsMTggQEAgRXhjZXB0
aW9uT3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zPiBB
cHBsZVBheVBheW1lbnRIYW4KICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXMgeyBXVEZNb3ZlKHRvdGFs
KSwgV1RGTW92ZShsaW5lSXRlbXMpIH07CisgICAgcmV0dXJuIHt7IFdURk1vdmUodG90YWwpLCBX
VEZNb3ZlKGxpbmVJdGVtcykgfX07CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBhcHBlbmRTaGlw
cGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoU3RyaW5nJiYgbWVzc2FnZSwgT3B0aW9uYWw8UGF5bWVu
dEVycm9yOjpDb250YWN0RmllbGQ+IGNvbnRhY3RGaWVsZCwgVmVjdG9yPFBheW1lbnRFcnJvcj4m
IGVycm9ycykKK3N0YXRpYyBpbmxpbmUgdm9pZCBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlk
RXJyb3IoU3RyaW5nJiYgbWVzc2FnZSwgT3B0aW9uYWw8QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVs
ZD4gY29udGFjdEZpZWxkLCBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYgZXJyb3JzKQog
ewogICAgIGlmICghbWVzc2FnZS5pc051bGwoKSkKLSAgICAgICAgZXJyb3JzLmFwcGVuZCh7IFBh
eW1lbnRFcnJvcjo6Q29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxpZCwgV1RGTW92ZShtZXNzYWdl
KSwgV1RGTW92ZShjb250YWN0RmllbGQpIH0pOworICAgICAgICBlcnJvcnMuYXBwZW5kKEFwcGxl
UGF5RXJyb3I6OmNyZWF0ZShBcHBsZVBheUVycm9yQ29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxp
ZCwgV1RGTW92ZShjb250YWN0RmllbGQpLCBXVEZNb3ZlKG1lc3NhZ2UpKSk7CiB9CiAKLVZlY3Rv
cjxQYXltZW50RXJyb3I+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVFcnJvcnMoU3Ry
aW5nJiYgZXJyb3IsIEFkZHJlc3NFcnJvcnMmJiBhZGRyZXNzRXJyb3JzLCBQYXllckVycm9yRmll
bGRzJiYgcGF5ZXJFcnJvcnMsIEpTQzo6SlNPYmplY3QqIHBheW1lbnRNZXRob2RFcnJvcnMpIGNv
bnN0CitWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiBBcHBsZVBheVBheW1lbnRIYW5kbGVy
Ojpjb21wdXRlRXJyb3JzKFN0cmluZyYmIGVycm9yLCBBZGRyZXNzRXJyb3JzJiYgYWRkcmVzc0Vy
cm9ycywgUGF5ZXJFcnJvckZpZWxkcyYmIHBheWVyRXJyb3JzLCBKU0M6OkpTT2JqZWN0KiBwYXlt
ZW50TWV0aG9kRXJyb3JzKSBjb25zdAogewotICAgIFZlY3RvcjxQYXltZW50RXJyb3I+IGVycm9y
czsKKyAgICBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiBlcnJvcnM7CiAKICAgICBhdXRv
JiBkZXRhaWxzID0gbV9wYXltZW50UmVxdWVzdC0+cGF5bWVudERldGFpbHMoKTsKIApAQCAtNDA2
LDM5ICs0NDgsMzcgQEAgVmVjdG9yPFBheW1lbnRFcnJvcj4gQXBwbGVQYXlQYXltZW50SGFuZGxl
cjo6Y29tcHV0ZUVycm9ycyhTdHJpbmcmJiBlcnJvciwgQWRkcmUKICAgICByZXR1cm4gZXJyb3Jz
OwogfQogCi12b2lkIEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVBZGRyZXNzRXJyb3Jz
KFN0cmluZyYmIGVycm9yLCBBZGRyZXNzRXJyb3JzJiYgYWRkcmVzc0Vycm9ycywgVmVjdG9yPFBh
eW1lbnRFcnJvcj4mIGVycm9ycykgY29uc3QKK3ZvaWQgQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6
Y29tcHV0ZUFkZHJlc3NFcnJvcnMoU3RyaW5nJiYgZXJyb3IsIEFkZHJlc3NFcnJvcnMmJiBhZGRy
ZXNzRXJyb3JzLCBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYgZXJyb3JzKSBjb25zdAog
ewogICAgIGlmICghbV9wYXltZW50UmVxdWVzdC0+cGF5bWVudE9wdGlvbnMoKS5yZXF1ZXN0U2hp
cHBpbmcpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVzaW5nIENvbnRhY3RGaWVsZCA9IFBheW1l
bnRFcnJvcjo6Q29udGFjdEZpZWxkOwogICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRF
cnJvcihXVEZNb3ZlKGVycm9yKSwgV1RGOjpudWxsb3B0LCBlcnJvcnMpOwotICAgIGFwcGVuZFNo
aXBwaW5nQ29udGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMuYWRkcmVzc0xp
bmUpLCBDb250YWN0RmllbGQ6OkFkZHJlc3NMaW5lcywgZXJyb3JzKTsKLSAgICBhcHBlbmRTaGlw
cGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShhZGRyZXNzRXJyb3JzLmNpdHkpLCBDb250
YWN0RmllbGQ6OkxvY2FsaXR5LCBlcnJvcnMpOwotICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdElu
dmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMuY291bnRyeSksIENvbnRhY3RGaWVsZDo6
Q291bnRyeSwgZXJyb3JzKTsKLSAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3Io
V1RGTW92ZShhZGRyZXNzRXJyb3JzLmRlcGVuZGVudExvY2FsaXR5KSwgQ29udGFjdEZpZWxkOjpT
dWJMb2NhbGl0eSwgZXJyb3JzKTsKLSAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJy
b3IoV1RGTW92ZShhZGRyZXNzRXJyb3JzLnBob25lKSwgQ29udGFjdEZpZWxkOjpQaG9uZU51bWJl
ciwgZXJyb3JzKTsKLSAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92
ZShhZGRyZXNzRXJyb3JzLnBvc3RhbENvZGUpLCBDb250YWN0RmllbGQ6OlBvc3RhbENvZGUsIGVy
cm9ycyk7Ci0gICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRk
cmVzc0Vycm9ycy5yZWNpcGllbnQpLCBDb250YWN0RmllbGQ6Ok5hbWUsIGVycm9ycyk7Ci0gICAg
YXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRkcmVzc0Vycm9ycy5y
ZWdpb24pLCBDb250YWN0RmllbGQ6OkFkbWluaXN0cmF0aXZlQXJlYSwgZXJyb3JzKTsKKyAgICBh
cHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShhZGRyZXNzRXJyb3JzLmFk
ZHJlc3NMaW5lKSwgQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6QWRkcmVzc0xpbmVzLCBlcnJv
cnMpOworICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJl
c3NFcnJvcnMuY2l0eSksIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OkxvY2FsaXR5LCBlcnJv
cnMpOworICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJl
c3NFcnJvcnMuY291bnRyeSksIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OkNvdW50cnksIGVy
cm9ycyk7CisgICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRk
cmVzc0Vycm9ycy5kZXBlbmRlbnRMb2NhbGl0eSksIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6
OlN1YkxvY2FsaXR5LCBlcnJvcnMpOworICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRF
cnJvcihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMucGhvbmUpLCBBcHBsZVBheUVycm9yQ29udGFjdEZp
ZWxkOjpQaG9uZU51bWJlciwgZXJyb3JzKTsKKyAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZh
bGlkRXJyb3IoV1RGTW92ZShhZGRyZXNzRXJyb3JzLnBvc3RhbENvZGUpLCBBcHBsZVBheUVycm9y
Q29udGFjdEZpZWxkOjpQb3N0YWxDb2RlLCBlcnJvcnMpOworICAgIGFwcGVuZFNoaXBwaW5nQ29u
dGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMucmVjaXBpZW50KSwgQXBwbGVQ
YXlFcnJvckNvbnRhY3RGaWVsZDo6TmFtZSwgZXJyb3JzKTsKKyAgICBhcHBlbmRTaGlwcGluZ0Nv
bnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShhZGRyZXNzRXJyb3JzLnJlZ2lvbiksIEFwcGxlUGF5
RXJyb3JDb250YWN0RmllbGQ6OkFkbWluaXN0cmF0aXZlQXJlYSwgZXJyb3JzKTsKIH0KIAotdm9p
ZCBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21wdXRlUGF5ZXJFcnJvcnMoUGF5ZXJFcnJvckZp
ZWxkcyYmIHBheWVyRXJyb3JzLCBWZWN0b3I8UGF5bWVudEVycm9yPiYgZXJyb3JzKSBjb25zdAor
dm9pZCBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21wdXRlUGF5ZXJFcnJvcnMoUGF5ZXJFcnJv
ckZpZWxkcyYmIHBheWVyRXJyb3JzLCBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYgZXJy
b3JzKSBjb25zdAogewogICAgIGF1dG8mIG9wdGlvbnMgPSBtX3BheW1lbnRSZXF1ZXN0LT5wYXlt
ZW50T3B0aW9ucygpOwotICAgIHVzaW5nIENvbnRhY3RGaWVsZCA9IFBheW1lbnRFcnJvcjo6Q29u
dGFjdEZpZWxkOwogCiAgICAgaWYgKG9wdGlvbnMucmVxdWVzdFBheWVyTmFtZSkKLSAgICAgICAg
YXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUocGF5ZXJFcnJvcnMubmFt
ZSksIENvbnRhY3RGaWVsZDo6TmFtZSwgZXJyb3JzKTsKKyAgICAgICAgYXBwZW5kU2hpcHBpbmdD
b250YWN0SW52YWxpZEVycm9yKFdURk1vdmUocGF5ZXJFcnJvcnMubmFtZSksIEFwcGxlUGF5RXJy
b3JDb250YWN0RmllbGQ6Ok5hbWUsIGVycm9ycyk7CiAKICAgICBpZiAob3B0aW9ucy5yZXF1ZXN0
UGF5ZXJFbWFpbCkKLSAgICAgICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdU
Rk1vdmUocGF5ZXJFcnJvcnMuZW1haWwpLCBDb250YWN0RmllbGQ6OkVtYWlsQWRkcmVzcywgZXJy
b3JzKTsKKyAgICAgICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUo
cGF5ZXJFcnJvcnMuZW1haWwpLCBBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpFbWFpbEFkZHJl
c3MsIGVycm9ycyk7CiAKICAgICBpZiAob3B0aW9ucy5yZXF1ZXN0UGF5ZXJQaG9uZSkKLSAgICAg
ICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUocGF5ZXJFcnJvcnMu
cGhvbmUpLCBDb250YWN0RmllbGQ6OlBob25lTnVtYmVyLCBlcnJvcnMpOworICAgICAgICBhcHBl
bmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShwYXllckVycm9ycy5waG9uZSks
IEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlBob25lTnVtYmVyLCBlcnJvcnMpOwogfQogCi1F
eGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21wdXRlUGF5bWVudE1l
dGhvZEVycm9ycyhKU0M6OkpTT2JqZWN0KiBwYXltZW50TWV0aG9kRXJyb3JzLCBWZWN0b3I8UGF5
bWVudEVycm9yPiYgZXJyb3JzKSBjb25zdAorRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXlt
ZW50SGFuZGxlcjo6Y29tcHV0ZVBheW1lbnRNZXRob2RFcnJvcnMoSlNDOjpKU09iamVjdCogcGF5
bWVudE1ldGhvZEVycm9ycywgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4mIGVycm9ycykg
Y29uc3QKIHsKICAgICBpZiAoIXBheW1lbnRNZXRob2RFcnJvcnMpCiAgICAgICAgIHJldHVybiB7
IH07CkBAIC00NDksOSArNDg5LDkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50
SGFuZGxlcjo6Y29tcHV0ZVBheW1lbnRNZXRob2RFcnJvcnMoSlNDOjpKU09iamUKICAgICBpZiAo
dGhyb3dTY29wZS5leGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEV4aXN0
aW5nRXhjZXB0aW9uRXJyb3IgfTsKIAotICAgIGZvciAoYXV0byYgYXBwbGVQYXlFcnJvciA6IGFw
cGxlUGF5RXJyb3JzKSB7CisgICAgZm9yIChhdXRvJiYgYXBwbGVQYXlFcnJvciA6IFdURk1vdmUo
YXBwbGVQYXlFcnJvcnMpKSB7CiAgICAgICAgIGlmIChhcHBsZVBheUVycm9yKQotICAgICAgICAg
ICAgZXJyb3JzLmFwcGVuZCh7IGFwcGxlUGF5RXJyb3ItPmNvZGUoKSwgYXBwbGVQYXlFcnJvci0+
bWVzc2FnZSgpLCBhcHBsZVBheUVycm9yLT5jb250YWN0RmllbGQoKSB9KTsKKyAgICAgICAgICAg
IGVycm9ycy5hcHBlbmQoV1RGTW92ZShhcHBsZVBheUVycm9yKSk7CiAgICAgfQogCiAgICAgcmV0
dXJuIHsgfTsKQEAgLTQ5MiwxMiArNTMyLDE2IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5
UGF5bWVudEhhbmRsZXI6Om1lcmNoYW50VmFsaWRhdGlvbkNvbXBsZXRlZChKU0M6OkpTVmFsCiAg
ICAgcmV0dXJuIHsgfTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFu
ZGxlcjo6c2hpcHBpbmdBZGRyZXNzVXBkYXRlZChWZWN0b3I8UGF5bWVudEVycm9yPiYmIGVycm9y
cykKKyNpZiAhRU5BQkxFKEFQUExFX1BBWV9QQVlNRU5UX0RFVEFJTFNfREFUQSkKK3N0YXRpYyB2
b2lkIG1lcmdlKEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UmLCBBcHBsZVBheURldGFpbHNVcGRh
dGVEYXRhJiYpIHsgfQorI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVlfUEFZTUVOVF9ERVRBSUxT
X0RBVEEpCisKK0V4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnNoaXBw
aW5nQWRkcmVzc1VwZGF0ZWQoVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4mJiBlcnJvcnMp
CiB7CiAgICAgQVNTRVJUKG1faXNVcGRhdGluZyk7CiAgICAgbV9pc1VwZGF0aW5nID0gZmFsc2U7
CiAKLSAgICBTaGlwcGluZ0NvbnRhY3RVcGRhdGUgdXBkYXRlOworICAgIEFwcGxlUGF5U2hpcHBp
bmdDb250YWN0VXBkYXRlIHVwZGF0ZTsKICAgICB1cGRhdGUuZXJyb3JzID0gV1RGTW92ZShlcnJv
cnMpOwogCiAgICAgYXV0byBuZXdTaGlwcGluZ01ldGhvZHMgPSBjb21wdXRlU2hpcHBpbmdNZXRo
b2RzKCk7CkBAIC01MDgsNyArNTUyLDEyIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5UGF5
bWVudEhhbmRsZXI6OnNoaXBwaW5nQWRkcmVzc1VwZGF0ZWQoVmVjdG9yPFBheW1lbnRFCiAgICAg
YXV0byBuZXdUb3RhbEFuZExpbmVJdGVtcyA9IGNvbXB1dGVUb3RhbEFuZExpbmVJdGVtcygpOwog
ICAgIGlmIChuZXdUb3RhbEFuZExpbmVJdGVtcy5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0
dXJuIG5ld1RvdGFsQW5kTGluZUl0ZW1zLnJlbGVhc2VFeGNlcHRpb24oKTsKLSAgICB1cGRhdGUu
bmV3VG90YWxBbmRMaW5lSXRlbXMgPSBuZXdUb3RhbEFuZExpbmVJdGVtcy5yZWxlYXNlUmV0dXJu
VmFsdWUoKTsKKyAgICBzdGQ6OnRpZSh1cGRhdGUubmV3VG90YWwsIHVwZGF0ZS5uZXdMaW5lSXRl
bXMpID0gbmV3VG90YWxBbmRMaW5lSXRlbXMucmVsZWFzZVJldHVyblZhbHVlKCk7CisKKyAgICBh
dXRvIGFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEgPSBjb252ZXJ0QW5kVmFsaWRhdGUoKnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSwgbV9wYXltZW50UmVxdWVzdC0+cGF5bWVudERldGFpbHMoKSk7
CisgICAgaWYgKGFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaGFzRXhjZXB0aW9uKCkpCisgICAg
ICAgIHJldHVybiBhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLnJlbGVhc2VFeGNlcHRpb24oKTsK
KyAgICBtZXJnZSh1cGRhdGUsIGFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEucmVsZWFzZVJldHVy
blZhbHVlKCkpOwogCiAgICAgcGF5bWVudENvb3JkaW5hdG9yKCkuY29tcGxldGVTaGlwcGluZ0Nv
bnRhY3RTZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUpKTsKICAgICByZXR1cm4geyB9OwpAQCAtNTE5
LDEyICs1NjgsMTcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6
c2hpcHBpbmdPcHRpb25VcGRhdGVkKCkKICAgICBBU1NFUlQobV9pc1VwZGF0aW5nKTsKICAgICBt
X2lzVXBkYXRpbmcgPSBmYWxzZTsKIAotICAgIFNoaXBwaW5nTWV0aG9kVXBkYXRlIHVwZGF0ZTsK
KyAgICBBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlIHVwZGF0ZTsKIAogICAgIGF1dG8gbmV3
VG90YWxBbmRMaW5lSXRlbXMgPSBjb21wdXRlVG90YWxBbmRMaW5lSXRlbXMoKTsKICAgICBpZiAo
bmV3VG90YWxBbmRMaW5lSXRlbXMuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBuZXdU
b3RhbEFuZExpbmVJdGVtcy5yZWxlYXNlRXhjZXB0aW9uKCk7Ci0gICAgdXBkYXRlLm5ld1RvdGFs
QW5kTGluZUl0ZW1zID0gbmV3VG90YWxBbmRMaW5lSXRlbXMucmVsZWFzZVJldHVyblZhbHVlKCk7
CisgICAgc3RkOjp0aWUodXBkYXRlLm5ld1RvdGFsLCB1cGRhdGUubmV3TGluZUl0ZW1zKSA9IG5l
d1RvdGFsQW5kTGluZUl0ZW1zLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworCisgICAgYXV0byBhcHBs
ZVBheURldGFpbHNVcGRhdGVEYXRhID0gY29udmVydEFuZFZhbGlkYXRlKCpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIG1fcGF5bWVudFJlcXVlc3QtPnBheW1lbnREZXRhaWxzKCkpOworICAgIGlm
IChhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1
cm4gYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgbWVy
Z2UodXBkYXRlLCBhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLnJlbGVhc2VSZXR1cm5WYWx1ZSgp
KTsKIAogICAgIHBheW1lbnRDb29yZGluYXRvcigpLmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxl
Y3Rpb24oV1RGTW92ZSh1cGRhdGUpKTsKICAgICByZXR1cm4geyB9OwpAQCAtNTM1LDExICs1ODks
MTkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6cGF5bWVudE1l
dGhvZFVwZGF0ZWQoKQogICAgIEFTU0VSVChtX2lzVXBkYXRpbmcpOwogICAgIG1faXNVcGRhdGlu
ZyA9IGZhbHNlOwogCisgICAgQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlIHVwZGF0ZTsKKwog
ICAgIGF1dG8gbmV3VG90YWxBbmRMaW5lSXRlbXMgPSBjb21wdXRlVG90YWxBbmRMaW5lSXRlbXMo
KTsKICAgICBpZiAobmV3VG90YWxBbmRMaW5lSXRlbXMuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAg
IHJldHVybiBuZXdUb3RhbEFuZExpbmVJdGVtcy5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgc3Rk
Ojp0aWUodXBkYXRlLm5ld1RvdGFsLCB1cGRhdGUubmV3TGluZUl0ZW1zKSA9IG5ld1RvdGFsQW5k
TGluZUl0ZW1zLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCi0gICAgcGF5bWVudENvb3JkaW5hdG9y
KCkuY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKFBheW1lbnRNZXRob2RVcGRhdGUgeyBu
ZXdUb3RhbEFuZExpbmVJdGVtcy5yZWxlYXNlUmV0dXJuVmFsdWUoKSB9KTsKKyAgICBhdXRvIGFw
cGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEgPSBjb252ZXJ0QW5kVmFsaWRhdGUoKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgbV9wYXltZW50UmVxdWVzdC0+cGF5bWVudERldGFpbHMoKSk7CisgICAg
aWYgKGFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJl
dHVybiBhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICBt
ZXJnZSh1cGRhdGUsIGFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEucmVsZWFzZVJldHVyblZhbHVl
KCkpOworCisgICAgcGF5bWVudENvb3JkaW5hdG9yKCkuY29tcGxldGVQYXltZW50TWV0aG9kU2Vs
ZWN0aW9uKFdURk1vdmUodXBkYXRlKSk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtNTY4LDcg
KzYzMCw3IEBAIHZvaWQgQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcGxldGUoT3B0aW9uYWw8
UGF5bWVudENvbXBsZXRlPiYmIHJlc3VsdCkKIAogRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQ
YXltZW50SGFuZGxlcjo6cmV0cnkoUGF5bWVudFZhbGlkYXRpb25FcnJvcnMmJiB2YWxpZGF0aW9u
RXJyb3JzKQogewotICAgIFZlY3RvcjxQYXltZW50RXJyb3I+IGVycm9yczsKKyAgICBWZWN0b3I8
UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiBlcnJvcnM7CiAKICAgICBjb21wdXRlQWRkcmVzc0Vycm9y
cyhXVEZNb3ZlKHZhbGlkYXRpb25FcnJvcnMuZXJyb3IpLCBXVEZNb3ZlKHZhbGlkYXRpb25FcnJv
cnMuc2hpcHBpbmdBZGRyZXNzKSwgZXJyb3JzKTsKICAgICBjb21wdXRlUGF5ZXJFcnJvcnMoV1RG
TW92ZSh2YWxpZGF0aW9uRXJyb3JzLnBheWVyKSwgZXJyb3JzKTsKQEAgLTU3OSw3ICs2NDEsNyBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpyZXRyeShQYXltZW50
VmFsaWRhdGlvbkVycm9ycyYmIHZhbGlkYQogCiAgICAgLy8gRW5zdXJlIHRoZXJlIGlzIGFsd2F5
cyBhdCBsZWFzdCBvbmUgZXJyb3IgdG8gYXZvaWQgaGF2aW5nIGEgZmluYWwgcmVzdWx0LgogICAg
IGlmIChlcnJvcnMuaXNFbXB0eSgpKQotICAgICAgICBlcnJvcnMuYXBwZW5kKHsgUGF5bWVudEVy
cm9yOjpDb2RlOjpVbmtub3duLCB7IH0sIFdURjo6bnVsbG9wdCB9KTsKKyAgICAgICAgZXJyb3Jz
LmFwcGVuZChBcHBsZVBheUVycm9yOjpjcmVhdGUoQXBwbGVQYXlFcnJvckNvZGU6OlVua25vd24s
IFdURjo6bnVsbG9wdCwgbnVsbFN0cmluZygpKSk7CiAKICAgICBQYXltZW50QXV0aG9yaXphdGlv
blJlc3VsdCBhdXRob3JpemF0aW9uUmVzdWx0IHsgUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6
OkZhaWx1cmUsIFdURk1vdmUoZXJyb3JzKSB9OwogICAgIEFTU0VSVCghaXNGaW5hbFN0YXRlUmVz
dWx0KGF1dGhvcml6YXRpb25SZXN1bHQpKTsKQEAgLTYyMyw3ICs2ODUsNyBAQCB2b2lkIEFwcGxl
UGF5UGF5bWVudEhhbmRsZXI6OmRpZEF1dGhvcml6ZVBheW1lbnQoY29uc3QgUGF5bWVudCYgcGF5
bWVudCkKICAgICBtX3BheW1lbnRSZXF1ZXN0LT5hY2NlcHQoV1RGOjpnZXQ8VVJMPihtX2lkZW50
aWZpZXIpLnN0cmluZygpLCBXVEZNb3ZlKGRldGFpbHNGdW5jdGlvbiksIGNvbnZlcnQoc2hpcHBp
bmdDb250YWN0KSwgc2hpcHBpbmdDb250YWN0LmxvY2FsaXplZE5hbWUsIHNoaXBwaW5nQ29udGFj
dC5lbWFpbEFkZHJlc3MsIHNoaXBwaW5nQ29udGFjdC5waG9uZU51bWJlcik7CiB9CiAKLXZvaWQg
QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgQXBw
bGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhv
ZCkKK3ZvaWQgQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2Qo
Y29uc3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCiB7CiAgICAgQVNT
RVJUKCFtX2lzVXBkYXRpbmcpOwogICAgIG1faXNVcGRhdGluZyA9IHRydWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5
UGF5bWVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVu
dHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oCmluZGV4IDg5Yzc1N2ZkZmI0ZDU3NTQx
ODA2MjkwMGZhM2Y5ZjE0OWQwNjY5NzguLjFiOTkyNjYyMDA4YWY3Y2FiNTgwZmIwNzI4MGM4MmRm
MzViZDNjZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5
bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5o
CkBAIC0zNCwxMCArMzQsMTEgQEAKICNpbmNsdWRlICJQYXltZW50UmVxdWVzdC5oIgogI2luY2x1
ZGUgIlBheW1lbnRTZXNzaW9uLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5j
bHVkZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitjbGFzcyBBcHBsZVBheUVycm9yOwogY2xhc3MgUGF5bWVudENvb3JkaW5hdG9y
OwogCiBjbGFzcyBBcHBsZVBheVBheW1lbnRIYW5kbGVyIGZpbmFsIDogcHVibGljIFBheW1lbnRI
YW5kbGVyLCBwdWJsaWMgUGF5bWVudFNlc3Npb24sIHByaXZhdGUgQ29udGV4dERlc3RydWN0aW9u
T2JzZXJ2ZXIgewpAQCAtNTMsMTQgKzU0LDE0IEBAIHByaXZhdGU6CiAgICAgRG9jdW1lbnQmIGRv
Y3VtZW50KCkgY29uc3Q7CiAgICAgUGF5bWVudENvb3JkaW5hdG9yJiBwYXltZW50Q29vcmRpbmF0
b3IoKSBjb25zdDsKIAotICAgIEV4Y2VwdGlvbk9yPFZlY3RvcjxBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+PiBjb21wdXRlU2hpcHBpbmdNZXRob2RzKCk7Ci0g
ICAgRXhjZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGlu
ZUl0ZW1zPiBjb21wdXRlVG90YWxBbmRMaW5lSXRlbXMoKSBjb25zdDsKLSAgICBWZWN0b3I8UGF5
bWVudEVycm9yPiBjb21wdXRlRXJyb3JzKFN0cmluZyYmIGVycm9yLCBBZGRyZXNzRXJyb3JzJiYs
IFBheWVyRXJyb3JGaWVsZHMmJiwgSlNDOjpKU09iamVjdCogcGF5bWVudE1ldGhvZEVycm9ycykg
Y29uc3Q7Ci0gICAgdm9pZCBjb21wdXRlQWRkcmVzc0Vycm9ycyhTdHJpbmcmJiBlcnJvciwgQWRk
cmVzc0Vycm9ycyYmLCBWZWN0b3I8UGF5bWVudEVycm9yPiYpIGNvbnN0OwotICAgIHZvaWQgY29t
cHV0ZVBheWVyRXJyb3JzKFBheWVyRXJyb3JGaWVsZHMmJiwgVmVjdG9yPFBheW1lbnRFcnJvcj4m
KSBjb25zdDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBjb21wdXRlUGF5bWVudE1ldGhvZEVycm9y
cyhKU0M6OkpTT2JqZWN0KiBwYXltZW50TWV0aG9kRXJyb3JzLCBWZWN0b3I8UGF5bWVudEVycm9y
PiYpIGNvbnN0OworICAgIEV4Y2VwdGlvbk9yPFZlY3RvcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9k
Pj4gY29tcHV0ZVNoaXBwaW5nTWV0aG9kcygpOworICAgIEV4Y2VwdGlvbk9yPHN0ZDo6dHVwbGU8
QXBwbGVQYXlMaW5lSXRlbSwgVmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+Pj4gY29tcHV0ZVRvdGFs
QW5kTGluZUl0ZW1zKCkgY29uc3Q7CisgICAgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4g
Y29tcHV0ZUVycm9ycyhTdHJpbmcmJiBlcnJvciwgQWRkcmVzc0Vycm9ycyYmLCBQYXllckVycm9y
RmllbGRzJiYsIEpTQzo6SlNPYmplY3QqIHBheW1lbnRNZXRob2RFcnJvcnMpIGNvbnN0OworICAg
IHZvaWQgY29tcHV0ZUFkZHJlc3NFcnJvcnMoU3RyaW5nJiYgZXJyb3IsIEFkZHJlc3NFcnJvcnMm
JiwgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4mKSBjb25zdDsKKyAgICB2b2lkIGNvbXB1
dGVQYXllckVycm9ycyhQYXllckVycm9yRmllbGRzJiYsIFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlF
cnJvcj4+JikgY29uc3Q7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gY29tcHV0ZVBheW1lbnRNZXRo
b2RFcnJvcnMoSlNDOjpKU09iamVjdCogcGF5bWVudE1ldGhvZEVycm9ycywgVmVjdG9yPFJlZlB0
cjxBcHBsZVBheUVycm9yPj4mKSBjb25zdDsKIAotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNoaXBw
aW5nQWRkcmVzc1VwZGF0ZWQoVmVjdG9yPFBheW1lbnRFcnJvcj4mJiBlcnJvcnMpOworICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IHNoaXBwaW5nQWRkcmVzc1VwZGF0ZWQoVmVjdG9yPFJlZlB0cjxBcHBs
ZVBheUVycm9yPj4mJiBlcnJvcnMpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNoaXBwaW5nT3B0
aW9uVXBkYXRlZCgpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHBheW1lbnRNZXRob2RVcGRhdGVk
KCk7CiAKQEAgLTc4LDcgKzc5LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCB2ZXJzaW9uKCkg
Y29uc3QgZmluYWw7CiAgICAgdm9pZCB2YWxpZGF0ZU1lcmNoYW50KFVSTCYmKSBmaW5hbDsKICAg
ICB2b2lkIGRpZEF1dGhvcml6ZVBheW1lbnQoY29uc3QgUGF5bWVudCYpIGZpbmFsOwotICAgIHZv
aWQgZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3Q6OlNoaXBwaW5nTWV0aG9kJikgZmluYWw7CisgICAgdm9pZCBkaWRTZWxlY3RTaGlwcGlu
Z01ldGhvZChjb25zdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kJikgZmluYWw7CiAgICAgdm9pZCBk
aWRTZWxlY3RTaGlwcGluZ0NvbnRhY3QoY29uc3QgUGF5bWVudENvbnRhY3QmKSBmaW5hbDsKICAg
ICB2b2lkIGRpZFNlbGVjdFBheW1lbnRNZXRob2QoY29uc3QgUGF5bWVudE1ldGhvZCYpIGZpbmFs
OwogICAgIHZvaWQgZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24oUGF5bWVudFNlc3Npb25FcnJvciYm
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVl
c3QvUGF5bWVudERldGFpbHNCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRy
ZXF1ZXN0L1BheW1lbnREZXRhaWxzQmFzZS5oCmluZGV4IDk0MjJkNDIwMTM0YWY5M2RiOWE2ZjQw
YWE2ZmUxZDUzNmIxZTFlZTcuLjkwZjg3ZDIwNjFlMDZkNTk4YTRjMzM4M2E2M2FjYzgxYTBhNjBl
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5
bWVudERldGFpbHNCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50RGV0YWlsc0Jhc2UuaApAQCAtMzAsNyArMzAsMTEgQEAKICNpbmNsdWRlICJQ
YXltZW50RGV0YWlsc01vZGlmaWVyLmgiCiAjaW5jbHVkZSAiUGF5bWVudEl0ZW0uaCIKICNpbmNs
dWRlICJQYXltZW50U2hpcHBpbmdPcHRpb24uaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9K
U09iamVjdC5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZy5oPgorI2luY2x1ZGUg
PHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOCw2ICs0Miwx
MCBAQCBzdHJ1Y3QgUGF5bWVudERldGFpbHNCYXNlIHsKICAgICBPcHRpb25hbDxWZWN0b3I8UGF5
bWVudEl0ZW0+PiBkaXNwbGF5SXRlbXM7CiAgICAgT3B0aW9uYWw8VmVjdG9yPFBheW1lbnRTaGlw
cGluZ09wdGlvbj4+IHNoaXBwaW5nT3B0aW9uczsKICAgICBPcHRpb25hbDxWZWN0b3I8UGF5bWVu
dERldGFpbHNNb2RpZmllcj4+IG1vZGlmaWVyczsKKyAgICBKU0M6OlN0cm9uZzxKU0M6OkpTT2Jq
ZWN0PiBkYXRhOworCisgICAgLy8gTm90IGZyb20gdGhlIElETC4gU2V0IGJ5IGBkYXRhYCB3aGVu
IHRoaXMgaXMgdmFsaWRhdGVkIGJ5IGBQYXltZW50UmVxdWVzdGAuCisgICAgU3RyaW5nIHNlcmlh
bGl6ZWREYXRhOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50RGV0YWlsc0Jhc2UuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50RGV0YWlsc0Jh
c2UuaWRsCmluZGV4IDQ0OWUzZWU5OGQyOTEwN2VjMGNlZTZjYzQ1NjhiMzA4ZDM1NmY1ZGYuLmQ4
MGM0OWQ5MjA1NjYxZGU4MGE4ZTQ3NmMzMDQxMzkxYTU2ZDVjZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudERldGFpbHNCYXNlLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnREZXRhaWxz
QmFzZS5pZGwKQEAgLTI5LDQgKzI5LDUgQEAKICAgICBzZXF1ZW5jZTxQYXltZW50SXRlbT4gZGlz
cGxheUl0ZW1zOwogICAgIHNlcXVlbmNlPFBheW1lbnRTaGlwcGluZ09wdGlvbj4gc2hpcHBpbmdP
cHRpb25zOwogICAgIHNlcXVlbmNlPFBheW1lbnREZXRhaWxzTW9kaWZpZXI+IG1vZGlmaWVyczsK
KyAgICBvYmplY3QgZGF0YTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCmluZGV4IGVlMGQzYWFlYjY3ZjA0
MGYwNjk0ODg5ZWNmNzU1NDE0NjU5NWNlYzUuLjgxYjU1MzQ0ZmE5ZmYxMDc3ZjQ1MDhmM2ZjZjQz
NmU5MTE1MzJiN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJl
cXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5
bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCkBAIC0zNDUsNiArMzQ1LDE0IEBAIHN0YXRp
YyBFeGNlcHRpb25PcjxzdGQ6OnR1cGxlPFN0cmluZywgVmVjdG9yPFN0cmluZz4+PiBjaGVja0Fu
ZENhbm9uaWNhbGl6ZURldGFpCiAgICAgfSBlbHNlIGlmIChpc1VwZGF0ZSA9PSBJc1VwZGF0ZTo6
Tm8pCiAgICAgICAgIGRldGFpbHMubW9kaWZpZXJzID0geyB7IH0gfTsKIAorICAgIGlmIChkZXRh
aWxzLmRhdGEpIHsKKyAgICAgICAgYXV0byBkYXRhUmVzdWx0ID0gY2hlY2tBbmRDYW5vbmljYWxp
emVEYXRhKGNvbnRleHQsIGRldGFpbHMpOworICAgICAgICBpZiAoZGF0YVJlc3VsdC5oYXNFeGNl
cHRpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBkYXRhUmVzdWx0LnJlbGVhc2VFeGNlcHRpb24o
KTsKKworICAgICAgICBkZXRhaWxzLnNlcmlhbGl6ZWREYXRhID0gZGF0YVJlc3VsdC5yZWxlYXNl
UmV0dXJuVmFsdWUoKTsKKyAgICB9CisKICAgICByZXR1cm4gc3RkOjptYWtlX3R1cGxlKFdURk1v
dmUoc2VsZWN0ZWRTaGlwcGluZ09wdGlvbiksIFdURk1vdmUoc2VyaWFsaXplZE1vZGlmaWVyRGF0
YSkpOwogfQogCkBAIC03MzYsNiArNzQ0LDggQEAgdm9pZCBQYXltZW50UmVxdWVzdDo6c2V0dGxl
RGV0YWlsc1Byb21pc2UoVXBkYXRlUmVhc29uIHJlYXNvbikKICAgICAgICAgbV9kZXRhaWxzLm1v
ZGlmaWVycyA9IFdURk1vdmUoKmRldGFpbHNVcGRhdGUubW9kaWZpZXJzKTsKICAgICAgICAgbV9z
ZXJpYWxpemVkTW9kaWZpZXJEYXRhID0gV1RGTW92ZShzdGQ6OmdldDwxPihzaGlwcGluZ09wdGlv
bkFuZE1vZGlmaWVyRGF0YSkpOwogICAgIH0KKyAgICBpZiAoIWRldGFpbHNVcGRhdGUuc2VyaWFs
aXplZERhdGEuaXNFbXB0eSgpKQorICAgICAgICBtX2RldGFpbHMuc2VyaWFsaXplZERhdGEgPSBX
VEZNb3ZlKGRldGFpbHNVcGRhdGUuc2VyaWFsaXplZERhdGEpOwogCiAgICAgYXV0byByZXN1bHQg
PSBhY3RpdmVQYXltZW50SGFuZGxlcigpLT5kZXRhaWxzVXBkYXRlZChyZWFzb24sIFdURk1vdmUo
ZGV0YWlsc1VwZGF0ZS5lcnJvciksIFdURk1vdmUoZGV0YWlsc1VwZGF0ZS5zaGlwcGluZ0FkZHJl
c3NFcnJvcnMpLCBXVEZNb3ZlKGRldGFpbHNVcGRhdGUucGF5ZXJFcnJvcnMpLCBkZXRhaWxzVXBk
YXRlLnBheW1lbnRNZXRob2RFcnJvcnMuZ2V0KCkpOwogICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0
aW9uKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggYThmYTA3MmI1OGEwZDU4OTBk
MTliMWI1NmE4NzMwOGU2MjdlZDJmZi4uZDZlOWQxNDlkMmRkM2RjMTVjNmQ4ZThhZmMwYmE1NGY5
ZTZlMmU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysr
IGIvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTQzNSw3ICs0MzUsNiBAQCBs
aXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICkKIAogbGlzdChBUFBFTkQgV2ViQ29yZV9QUklW
QVRFX0ZSQU1FV09SS19IRUFERVJTCi0gICAgTW9kdWxlcy9hcHBsZXBheS9QYXltZW50TWV0aG9k
VXBkYXRlLmgKICAgICBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uRXJyb3IuaAogICAg
IE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFN1bW1hcnlJdGVtcy5oCiAKQEAgLTYxNiw2ICs2MTUs
OCBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKIGxpc3Qo
QVBQRU5EIFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNh
bmNlbEV2ZW50LmlkbAogICAgIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDb250YWN0RmllbGQu
aWRsCisgICAgTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmlkbAor
ICAgIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5pZGwKICAgICBN
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3IuaWRsCiAgICAgTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheUVycm9yQ29kZS5pZGwKICAgICBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3JD
b250YWN0RmllbGQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2Eu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBiZjZhZTE2MTg3YWJh
MDcxNTcyZGEwNzkyM2FjMzMwYjIyOGY2OWM1Li44YzgyODQ5MTJiMmE4MTcyNWQxMDViNWYyMWUy
MDU5MTQ1ZDQyOTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTIzLDYgKzIzLDggQEAK
IAogSlNBcHBsZVBheUNhbmNlbEV2ZW50LmNwcAogSlNBcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAK
K0pTQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5jcHAKK0pTQXBwbGVQYXlEZXRhaWxzVXBkYXRl
RGF0YS5jcHAKIEpTQXBwbGVQYXlFcnJvci5jcHAKIEpTQXBwbGVQYXlFcnJvckNvZGUuY3BwCiBK
U0FwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuY3BwCkBAIC02Miw3ICs2NCw2IEBAIEpTQXBwbGVQ
YXlWYWxpZGF0ZU1lcmNoYW50RXZlbnQuY3BwCiBNb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNz
aW9uTWFuYWdlci5jcHAKIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDYW5jZWxFdmVudC5jcHAK
IE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDb250YWN0RmllbGQuY3BwCi1Nb2R1bGVzL2FwcGxl
cGF5L0FwcGxlUGF5RXJyb3IuY3BwCiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRD
YXBhYmlsaXR5LmNwcAogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRBdXRob3JpemVk
RXZlbnQuY3BwCiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFNlbGVjdGVk
RXZlbnQuY3BwCkBAIC04NCw3ICs4NSw2IEBAIE1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVu
dENvY29hLm1tCiBNb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRDb250YWN0Q29jb2EubW0K
IE1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudE1lcmNoYW50U2Vzc2lvbkNvY29hLm1tCiBN
b2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRNZXRob2RDb2NvYS5tbQotTW9kdWxlcy9hcHBs
ZXBheS9jb2NvYS9QYXltZW50TWV0aG9kVXBkYXRlQ29jb2EubW0KIE1vZHVsZXMvYXBwbGVwYXkv
Y29jb2EvUGF5bWVudFNlc3Npb25FcnJvckNvY29hLm1tCiBNb2R1bGVzL2FwcGxlcGF5L2NvY29h
L1BheW1lbnRTdW1tYXJ5SXRlbXNDb2NvYS5tbQogTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVx
dWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhkMWZmZmViZWZlZjIwYzYwYzkw
NTA5YmFjNzFmNDIzYjQzYTZjNDYuLjU1MGNkYjZiYTM1NjM3Mzk0YWVjZTM2N2JiYWUyNjA5MWE4
NGM3YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTIzMzgsNyArMjMzOCw3IEBACiAJCTdDNjUyMzFBMUUwMERCQjUwMDY3N0Yy
MiAvKiBKU0FwcGxlUGF5UGF5bWVudFBhc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDdDNjUyMzEwMUUwMERCQjQwMDY3N0YyMiAvKiBKU0FwcGxlUGF5
UGF5bWVudFBhc3MuaCAqLzsgfTsKIAkJN0M2NTc5RTAxRTAwNzlGOTAwRTNBMjdBIC8qIEFwcGxl
UGF5UGF5bWVudFJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDNjU3OURGMUUwMDc5RjkwMEUzQTI3QSAvKiBBcHBsZVBheVBheW1lbnRSZXF1
ZXN0LmggKi87IH07CiAJCTdDNjU3OUUzMUUwMDgyNzAwMEUzQTI3QSAvKiBBcHBsZVBheUxpbmVJ
dGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzY1
NzlFMjFFMDA4MjcwMDBFM0EyN0EgLyogQXBwbGVQYXlMaW5lSXRlbS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTdDNjU3OUU4MUUwMDgzMTYwMEUz
QTI3QSAvKiBBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzY1NzlFNzFFMDA4MzE2MDBFM0EyN0EgLyogQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZC5oICovOyB9OworCQk3QzY1NzlFODFFMDA4MzE2MDBFM0EyN0EgLyog
QXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gN0M2NTc5RTcxRTAwODMxNjAwRTNBMjdBIC8qIEFwcGxlUGF5U2hpcHBp
bmdNZXRob2QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3QzY1NzlGMDFFMDA4NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBheUxpbmVJdGVtLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzY1NzlFQTFFMDA4
NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBheUxpbmVJdGVtLmggKi87IH07CiAJCTdDNjU3OUYyMUUw
MDg1NjYwMEUzQTI3QSAvKiBKU0FwcGxlUGF5UGF5bWVudFJlcXVlc3QuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNjU3OUVDMUUwMDg1NjYwMEUzQTI3
QSAvKiBKU0FwcGxlUGF5UGF5bWVudFJlcXVlc3QuaCAqLzsgfTsKIAkJN0M2NTc5RjQxRTAwODU2
NjAwRTNBMjdBIC8qIEpTQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M2NTc5RUUxRTAwODU2NjAwRTNBMjdBIC8q
IEpTQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oICovOyB9OwpAQCAtMjkzNyw4ICsyOTM3LDEyIEBA
CiAJCTk0REU1Qzk2MUQ4MzAxQkQwMDE2NEYyQSAvKiBDU1NQYXJzZXJJbXBsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NERFNUM5NDFEODMwMUIwMDAx
NjRGMkEgLyogQ1NTUGFyc2VySW1wbC5oICovOyB9OwogCQk5NEU4Mzk1MTFERkIyQTBFMDA3QkM2
QTcgLyogQ1NTTmFtZXNwYWNlUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTRFODM5NEYxREZCMjcwMDAwN0JDNkE3IC8qIENTU05hbWVzcGFjZVJ1
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5
NEU4Mzk1NjFERkIyQkM0MDA3QkM2QTcgLyogSlNDU1NOYW1lc3BhY2VSdWxlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NEU4Mzk1NDFERkIyQkE2MDA3
QkM2QTcgLyogSlNDU1NOYW1lc3BhY2VSdWxlLmggKi87IH07CisJCTk1MDE4M0NEMjVENjMzRDkw
MEQ0MzQwRiAvKiBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTAxODNDQjI1RDYzM0Q4MDBENDM0MEYgLyog
QXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTk1MjA3NjA1MUYyNjc1RkUwMDdEMkFBQiAvKiBDYWxsVHJh
Y2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTIw
NzYwMTFGMjY3NUY5MDA3RDJBQUIgLyogQ2FsbFRyYWNlci5oICovOyB9OwogCQk5NTIwNzYwNjFG
MjY3NUZFMDA3RDJBQUIgLyogQ2FsbFRyYWNlclR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTIwNzYwMjFGMjY3NUY5MDA3RDJBQUIgLyogQ2Fs
bFRyYWNlclR5cGVzLmggKi87IH07CisJCTk1MjdEN0FCMjVENUZERTIwMEE2RTE3NiAvKiBBcHBs
ZVBheURldGFpbHNVcGRhdGVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NTI3RDdBODI1RDVGREUxMDBBNkUxNzYgLyogQXBwbGVQYXlEZXRhaWxz
VXBkYXRlRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTk1MjdEN0FGMjVENUZFNkMwMEE2RTE3NiAvKiBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0
ZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1
MjdEN0FEMjVENUZFNkIwMEE2RTE3NiAvKiBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaCAq
LzsgfTsKKwkJOTUzQkNFQjIyNUQ2MjgzRDAwQTRBMkExIC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBk
YXRlQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTUzQkNFQUYyNUQ2MjgzQzAwQTRBMkExIC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5o
ICovOyB9OwogCQk5NTZGQzRCQjI1RDQ5QzdCMDBGN0IzQTIgLyogQXBwbGVQYXlMaW5lSXRlbURh
dGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1NkZD
NEI4MjVENDlDN0EwMEY3QjNBMiAvKiBBcHBsZVBheUxpbmVJdGVtRGF0YS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk1NkZDNEJCMjVENDlDN0Iw
MEY3QjNBMyAvKiBKU0FwcGxlUGF5TGluZUl0ZW1EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTZGQzRCQTI1RDQ5QzdEMDBGN0IzQTIgLyogSlNB
cHBsZVBheUxpbmVJdGVtRGF0YS5oICovOyB9OwogCQk5NUExRTJFOTI1Q0M3NUE5MDAyNjhDOEUg
LyogTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVBMUUyRTcyNUNDNzVBODAwMjY4QzhFIC8qIE1lZGlh
Q29udHJvbHNDb250ZXh0TWVudUl0ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMzEyNSwxMSArMzEyOSwxMSBAQAogCQlBMTI1MzhENDEzRjlC
NjBBMDAwMjQ3NTQgLyogTGF5b3V0UmVwYWludGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTIwQUNBMDEzRjk5ODM3MDBGRTRBQzcgLyogTGF5b3V0
UmVwYWludGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQTEyNzA1QzMxNjU2QkQ2NTAwQzJFMjdDIC8qIEdyaWRQb3NpdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEyNzA1QzIxNjU2QkQ2NTAw
QzJFMjdDIC8qIEdyaWRQb3NpdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUExMkExMDUwMTY2NDQ0RkQwMDhGQTMxMSAvKiBHcmlkVHJhY2tT
aXplLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTJB
MTA0RTE2NjQ0NERDMDA4RkEzMTEgLyogR3JpZFRyYWNrU2l6ZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUExMkM1OUVFMjAzNUZDOUIwMDEyMjM2
QiAvKiBBcHBsZVBheUVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQURGREZENjFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlFcnJvci5oICov
OyB9OworCQlBMTJDNTlFRTIwMzVGQzlCMDAxMjIzNkIgLyogQXBwbGVQYXlFcnJvci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRGRDYxRTcxRDhE
RjAwOEY1RDM0IC8qIEFwcGxlUGF5RXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTJDNTlGMDIwMzVGQ0FCMDAxMjIzNkIgLyogQXBwbGVQ
YXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRGRDgxRTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5
UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaCAqLzsgfTsKLQkJQTEyQzU5RjEyMDM1RkNCRjAw
MTIyMzZCIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRGREExRTcxRDhERjAwOEY1RDM0IC8q
IEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oICovOyB9OwotCQlBMTJDNTlGMjIwMzVGQ0Q2
MDAxMjIzNkIgLyogQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBREZERkRDMUU3MUQ4REYwMDhGNUQz
NCAvKiBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oICovOyB9OwotCQlBMTJDNTlGMzIw
MzVGQ0UyMDAxMjIzNkIgLyogQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRGREUxRTcxRDhERjAw
OEY1RDM0IC8qIEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUuaCAqLzsgfTsKKwkJQTEyQzU5
RjEyMDM1RkNCRjAwMTIyMzZCIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRGREExRTcxRDhE
RjAwOEY1RDM0IC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUExMkM1OUYyMjAzNUZDRDYwMDEy
MjM2QiAvKiBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRGREMxRTcxRDhERjAwOEY1RDM0IC8q
IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTEyQzU5RjMyMDM1RkNFMjAwMTIyMzZCIC8qIEFw
cGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBREZERkRFMUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBheVNo
aXBwaW5nTWV0aG9kVXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJQTEyQzU5RjkyMDM2MEFDQjAwMTIyMzZCIC8qIEpTQXBwbGVQYXlFcnJv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRG
RTIxRTcxRENBMDAwOEY1RDM0IC8qIEpTQXBwbGVQYXlFcnJvci5oICovOyB9OwogCQlBMTJDNTlG
QjIwMzYwQjAwMDAxMjIzNkIgLyogSlNBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURGREZF
NDFFNzFEQ0EwMDA4RjVEMzQgLyogSlNBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0
LmggKi87IH07CiAJCUExMkM1OUZDMjAzNjBCMjcwMDEyMjM2QiAvKiBKU0FwcGxlUGF5UGF5bWVu
dE1ldGhvZFVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUFERkRGRTYxRTcxRENBMDAwOEY1RDM0IC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9k
VXBkYXRlLmggKi87IH07CkBAIC0zMjEzLDggKzMyMTcsOCBAQAogCQlBMUFGRURFNzFGOEJGRjZE
MDA4NzAxM0YgLyogTW9ja1BheW1lbnRDb29yZGluYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUFGRURFNTFGOEJGRjZEMDA4NzAxM0YgLyog
TW9ja1BheW1lbnRDb29yZGluYXRvci5jcHAgKi87IH07CiAJCUExQjVCMjlFMUFBQTg0NkUwMDhC
NjA0MiAvKiBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQjVCMjlDMUFBQTg0NkUwMDhCNjA0MiAvKiBN
b2NrQ29udGVudEZpbHRlclNldHRpbmdzLmNwcCAqLzsgfTsKIAkJQTFCNUIyOUYxQUFBODQ2RjAw
OEI2MDQyIC8qIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQjVCMjlEMUFBQTg0NkUwMDhCNjA0MiAvKiBN
b2NrQ29udGVudEZpbHRlclNldHRpbmdzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTFCQjg1OUMyMTU5QUVBMTAwNjdFMDdEIC8qIEFwcGxlUGF5
RXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBMUJCODU5OTIxNTlBRUExMDA2N0UwN0QgLyogQXBwbGVQYXlFcnJvckNvZGUuaCAqLzsgfTsK
LQkJQTFCQjg1QTMyMTU5QUY1NzAwNjdFMDdEIC8qIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQkI4NUEw
MjE1OUFGNTcwMDY3RTA3RCAvKiBBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmggKi87IH07CisJ
CUExQkI4NTlDMjE1OUFFQTEwMDY3RTA3RCAvKiBBcHBsZVBheUVycm9yQ29kZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFCQjg1OTkyMTU5QUVBMTAw
NjdFMDdEIC8qIEFwcGxlUGF5RXJyb3JDb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTFCQjg1QTMyMTU5QUY1NzAwNjdFMDdEIC8qIEFwcGxl
UGF5RXJyb3JDb250YWN0RmllbGQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEExQkI4NUEwMjE1OUFGNTcwMDY3RTA3RCAvKiBBcHBsZVBheUVycm9yQ29u
dGFjdEZpZWxkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQTFCQjg1QTkyMTU5QjAyQzAwNjdFMDdEIC8qIE1vY2tQYXltZW50RXJyb3IuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQkI4NUE2MjE1OUIw
MkMwMDY3RTA3RCAvKiBNb2NrUGF5bWVudEVycm9yLmggKi87IH07CiAJCUExQkI4NUIyMjE1OUIx
QTEwMDY3RTA3RCAvKiBKU0FwcGxlUGF5RXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUJCODVBRTIxNTlCMUEwMDA2N0UwN0QgLyogSlNB
cHBsZVBheUVycm9yQ29kZS5oICovOyB9OwogCQlBMUJCODVCMzIxNTlCMUExMDA2N0UwN0QgLyog
SlNBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMUJCODVBRjIxNTlCMUEwMDA2N0UwN0QgLyogSlNBcHBsZVBh
eUVycm9yQ29udGFjdEZpZWxkLmggKi87IH07CkBAIC0zMjQ4LDcgKzMyNTIsNiBAQAogCQlBMURG
NUFBNjFGN0Y2NEJCMDA1OEE0NzcgLyogUGF5bWVudEhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExREY1QUE0MUY3RjY0QkIwMDU4QTQ3NyAv
KiBQYXltZW50SGFuZGxlci5oICovOyB9OwogCQlBMURGNUFBRDFGODA3NUYwMDA1OEE0NzcgLyog
QXBwbGVQYXlSZXF1ZXN0QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTFERjVBQUExRjgwNzVGMDAwNThBNDc3IC8qIEFwcGxlUGF5UmVxdWVzdEJh
c2UuaCAqLzsgfTsKIAkJQTFERjVBQjMxRjgwNzc1MzAwNThBNDc3IC8qIEpTQXBwbGVQYXlSZXF1
ZXN0QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTFERjVBQjExRjgwNzc1MjAwNThBNDc3IC8qIEpTQXBwbGVQYXlSZXF1ZXN0QmFzZS5oICovOyB9
OwotCQlBMURGRDUyNTIzMzQ1OTNGMDA0MkZDREIgLyogUGF5bWVudE1ldGhvZFVwZGF0ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFERkQ1MjQyMzM0
NTkzQTAwNDJGQ0RCIC8qIFBheW1lbnRNZXRob2RVcGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMURGRDUyNjIzMzQ1OTQ4MDA0MkZDREIg
LyogUGF5bWVudFN1bW1hcnlJdGVtcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTFERkQ1MjIyMzM0NTkzQTAwNDJGQ0RCIC8qIFBheW1lbnRTdW1tYXJ5
SXRlbXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBMUUwODY1RjI0ODlEMkI1MDBFNDk2RDkgLyogQXBwbGVQYXlTZXR1cENvbmZpZ3VyYXRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRTA4NjVD
MjQ4OUQyQjEwMEU0OTZEOSAvKiBBcHBsZVBheVNldHVwQ29uZmlndXJhdGlvbi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExRTA4NjYwMjQ4OUQy
QkEwMEU0OTZEOSAvKiBBcHBsZVBheVNldHVwRmVhdHVyZVN0YXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUUwODY1RTI0ODlEMkIxMDBFNDk2RDkg
LyogQXBwbGVQYXlTZXR1cEZlYXR1cmVTdGF0ZS5oICovOyB9OwpAQCAtNjY2OCw3ICs2NjcxLDYg
QEAKIAkJMUFEOEY4MTkxMUNBQjlFOTAwRTkzRTU0IC8qIFBsYXRmb3JtU3RyYXRlZ2llcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybVN0cmF0ZWdpZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFEOEY4MUExMUNBQjlFOTAwRTkzRTU0IC8qIFBs
YXRmb3JtU3RyYXRlZ2llcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QURBNEExQjFEMjJGMkMwMDA1QTlBMTUgLyogUGF5bWVudE1lcmNoYW50U2Vzc2lvbkNvY29hLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGF5bWVudE1lcmNoYW50
U2Vzc2lvbkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQURGREZENTFF
NzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlFcnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBBcHBsZVBheUVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMUFERkRGRDYxRTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5RXJyb3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwbGVQYXlFcnJvci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQURGREZENzFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlF
cnJvci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXBwbGVQYXlFcnJvci5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBREZERkQ4MUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBs
ZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNzcwLDEyICsxMTc3MiwyMCBAQAogCQk5NEU4Mzk1MDFE
RkIyOUE0MDA3QkM2QTcgLyogQ1NTTmFtZXNwYWNlUnVsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gQ1NTTmFtZXNwYWNlUnVsZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk0RTgzOTUzMURGQjJCQTYwMDdCQzZBNyAvKiBKU0NTU05hbWVzcGFjZVJ1bGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDU1NOYW1lc3BhY2VSdWxlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTRFODM5NTQxREZCMkJBNjAwN0JDNkE3IC8q
IEpTQ1NTTmFtZXNwYWNlUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0NTU05hbWVzcGFjZVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUwMTgz
QzkyNUQ2MzNEODAwRDQzNDBGIC8qIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5NTAxODNDQjI1RDYzM0Q4MDBENDM0MEYgLyogQXBwbGVQ
YXlEZXRhaWxzVXBkYXRlQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
cHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk1MEM0ODQ5MjVENjc3NDIwMEFCM0Q5QyAvKiBvdmVyZmxvdy1zdXBwb3J0LmpzICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZh
c2NyaXB0OyBwYXRoID0gIm92ZXJmbG93LXN1cHBvcnQuanMiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5NTBDNDg0QjI1RDY3NzRFMDBBQjNEOUMgLyogb3ZlcmZsb3ctYnV0dG9uLmpz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5qYXZhc2NyaXB0OyBwYXRoID0gIm92ZXJmbG93LWJ1dHRvbi5qcyI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk1MEM0QzAyQkVEODkzNkY4MThFMkY5OSAvKiBKU1NWR0dyYXBo
aWNzRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTVkdHcmFw
aGljc0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUyMDc2MDAxRjI2
NzVGOTAwN0QyQUFCIC8qIENhbGxUcmFjZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FsbFRy
YWNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MjA3NjAxMUYyNjc1Rjkw
MDdEMkFBQiAvKiBDYWxsVHJhY2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhbGxUcmFjZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUyMDc2MDIxRjI2NzVGOTAwN0QyQUFCIC8qIENh
bGxUcmFjZXJUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWxsVHJhY2VyVHlwZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUyN0Q3QTgyNUQ1RkRFMTAwQTZFMTc2IC8qIEFwcGxl
UGF5RGV0YWlsc1VwZGF0ZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5NTI3RDdBQTI1RDVGREUxMDBBNkUxNzYgLyogQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MjdEN0FEMjVENUZFNkIwMEE2RTE3NiAv
KiBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTk1MjdEN0FFMjVENUZFNkIwMEE2RTE3NiAvKiBKU0FwcGxlUGF5RGV0YWls
c1VwZGF0ZURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNB
cHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTUzQkNFQUYyNUQ2MjgzQzAwQTRBMkExIC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFz
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FwcGxlUGF5RGV0YWlsc1Vw
ZGF0ZUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUzQkNFQjEyNUQ2Mjgz
QzAwQTRBMkExIC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTZGQzRCODI1RDQ5QzdBMDBGN0IzQTIg
LyogQXBwbGVQYXlMaW5lSXRlbURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQXBwbGVQYXlMaW5lSXRlbURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTU2RkM0QjgyNUQ0OUM3QzAwRjdCM0EyIC8qIEpTQXBwbGVQYXlMaW5lSXRlbURhdGEuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBcHBsZVBheUxpbmVJdGVtRGF0
YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1NkZDNEJBMjVENDlDN0IwMEY3
QjNBMiAvKiBBcHBsZVBheUxpbmVJdGVtRGF0YS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
QXBwbGVQYXlMaW5lSXRlbURhdGEuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTIzODYsOSArMTIzOTYsNyBAQAogCQlBMURGNUFCMTFGODA3NzUyMDA1OEE0NzcgLyogSlNBcHBs
ZVBheVJlcXVlc3RCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXBw
bGVQYXlSZXF1ZXN0QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMURGNUFC
NDFGODA3OEYzMDA1OEE0NzcgLyogQXBwbGVQYXlDb250YWN0RmllbGQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQXBwbGVQYXlDb250YWN0RmllbGQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBMURGRDUyMjIzMzQ1OTNBMDA0MkZDREIgLyogUGF5bWVudFN1bW1hcnlJdGVtcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQYXltZW50U3VtbWFyeUl0ZW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUExREZENTI0MjMzNDU5M0EwMDQyRkNEQiAvKiBQYXltZW50TWV0aG9kVXBk
YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRNZXRob2RVcGRhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTFERkQ1MjcyMzM0NTk3MzAwNDJGQ0RCIC8qIFBheW1lbnRTdW1t
YXJ5SXRlbXNDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBheW1lbnRTdW1tYXJ5SXRl
bXNDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTFERkQ1MjgyMzM0NTk3
NDAwNDJGQ0RCIC8qIFBheW1lbnRNZXRob2RVcGRhdGVDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFBheW1lbnRNZXRob2RVcGRhdGVDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTFFMDg2NUEyNDg5RDJCMDAwRTQ5NkQ5IC8qIEFwcGxlUGF5U2V0dXBGZWF0dXJl
U3RhdGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IEFwcGxlUGF5U2V0dXBGZWF0dXJlU3RhdGUuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBMUUwODY1QzI0ODlEMkIxMDBFNDk2RDkgLyogQXBwbGVQYXlT
ZXR1cENvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwbGVQYXlTZXR1cENvbmZpZ3Vy
YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFFMDg2NUQyNDg5RDJCMTAw
RTQ5NkQ5IC8qIEFwcGxlUGF5U2V0dXBDb25maWd1cmF0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBcHBsZVBheVNl
dHVwQ29uZmlndXJhdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODMz
Nyw3ICsxODM0NSwxMCBAQAogCQkJCUExREY1QUI0MUY4MDc4RjMwMDU4QTQ3NyAvKiBBcHBsZVBh
eUNvbnRhY3RGaWVsZC5jcHAgKi8sCiAJCQkJQTFERjVBOTExRjdFQzQzMjAwNThBNDc3IC8qIEFw
cGxlUGF5Q29udGFjdEZpZWxkLmggKi8sCiAJCQkJQTFERjVBOTMxRjdFQzQzMjAwNThBNDc3IC8q
IEFwcGxlUGF5Q29udGFjdEZpZWxkLmlkbCAqLywKLQkJCQkxQURGREZENTFFNzFEOERGMDA4RjVE
MzQgLyogQXBwbGVQYXlFcnJvci5jcHAgKi8sCisJCQkJOTUwMTgzQ0IyNUQ2MzNEODAwRDQzNDBG
IC8qIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaCAqLywKKwkJCQk5NTAxODNDOTI1RDYzM0Q4
MDBENDM0MEYgLyogQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5pZGwgKi8sCisJCQkJOTUyN0Q3
QTgyNUQ1RkRFMTAwQTZFMTc2IC8qIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaCAqLywKKwkJ
CQk5NTI3RDdBQTI1RDVGREUxMDBBNkUxNzYgLyogQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5p
ZGwgKi8sCiAJCQkJMUFERkRGRDYxRTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5RXJyb3IuaCAq
LywKIAkJCQkxQURGREZENzFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlFcnJvci5pZGwgKi8s
CiAJCQkJQTFCQjg1OTkyMTU5QUVBMTAwNjdFMDdEIC8qIEFwcGxlUGF5RXJyb3JDb2RlLmggKi8s
CkBAIC0xODQzMSw3ICsxODQ0Miw2IEBACiAJCQkJNUM1M0RDQ0UyNDQ2NDQ5OTAwQTkzMTI0IC8q
IFBheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb25XZWJDb3JlLmggKi8sCiAJCQkJMUFFOTZB
ODcxRDFBMENFQjAwQjg2NzY4IC8qIFBheW1lbnRNZXJjaGFudFNlc3Npb24uaCAqLywKIAkJCQkx
QThBNjQzOTFEMTlGQzUzMDBEMEUwMEYgLyogUGF5bWVudE1ldGhvZC5oICovLAotCQkJCUExREZE
NTI0MjMzNDU5M0EwMDQyRkNEQiAvKiBQYXltZW50TWV0aG9kVXBkYXRlLmggKi8sCiAJCQkJMUE4
QTY0NjYxRDE5RkRGRjAwRDBFMDBGIC8qIFBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLmggKi8sCiAJ
CQkJMUE4QTY0NjUxRDE5RkRGRjAwRDBFMDBGIC8qIFBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLm1t
ICovLAogCQkJCUExQzJDNTc1MUZBMjg1MTYwMEJBNDZGQSAvKiBQYXltZW50U2Vzc2lvbi5jcHAg
Ki8sCkBAIC0xODQ1MCw3ICsxODQ2MCw2IEBACiAJCQkJMUE4QTY0NkExRDE5RkY4NzAwRDBFMDBG
IC8qIFBheW1lbnRDb250YWN0Q29jb2EubW0gKi8sCiAJCQkJMUFEQTRBMUIxRDIyRjJDMDAwNUE5
QTE1IC8qIFBheW1lbnRNZXJjaGFudFNlc3Npb25Db2NvYS5tbSAqLywKIAkJCQkxQThBNjQ2QjFE
MTlGRjg3MDBEMEUwMEYgLyogUGF5bWVudE1ldGhvZENvY29hLm1tICovLAotCQkJCUExREZENTI4
MjMzNDU5NzQwMDQyRkNEQiAvKiBQYXltZW50TWV0aG9kVXBkYXRlQ29jb2EubW0gKi8sCiAJCQkJ
QTExM0UwMkEyMzMxOEVCQzAwOUMzM0EwIC8qIFBheW1lbnRTZXNzaW9uRXJyb3JDb2NvYS5tbSAq
LywKIAkJCQlBMURGRDUyNzIzMzQ1OTczMDA0MkZDREIgLyogUGF5bWVudFN1bW1hcnlJdGVtc0Nv
Y29hLm1tICovLAogCQkJKTsKQEAgLTE4NTUwLDYgKzE4NTU5LDEwIEBACiAJCQkJQTE5NTZGMUIy
MzMxQTY0NjAwNTdFOUQyIC8qIEpTQXBwbGVQYXlDYW5jZWxFdmVudC5oICovLAogCQkJCUExREY1
QTk4MUY3RUM4QzAwMDU4QTQ3NyAvKiBKU0FwcGxlUGF5Q29udGFjdEZpZWxkLmNwcCAqLywKIAkJ
CQlBMURGNUE5NzFGN0VDOEJGMDA1OEE0NzcgLyogSlNBcHBsZVBheUNvbnRhY3RGaWVsZC5oICov
LAorCQkJCTk1M0JDRUIxMjVENjI4M0MwMEE0QTJBMSAvKiBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0
ZUJhc2UuY3BwICovLAorCQkJCTk1M0JDRUFGMjVENjI4M0MwMEE0QTJBMSAvKiBKU0FwcGxlUGF5
RGV0YWlsc1VwZGF0ZUJhc2UuaCAqLywKKwkJCQk5NTI3RDdBRTI1RDVGRTZCMDBBNkUxNzYgLyog
SlNBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmNwcCAqLywKKwkJCQk5NTI3RDdBRDI1RDVGRTZC
MDBBNkUxNzYgLyogSlNBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmggKi8sCiAJCQkJMUFERkRG
RTExRTcxRENBMDAwOEY1RDM0IC8qIEpTQXBwbGVQYXlFcnJvci5jcHAgKi8sCiAJCQkJMUFERkRG
RTIxRTcxRENBMDAwOEY1RDM0IC8qIEpTQXBwbGVQYXlFcnJvci5oICovLAogCQkJCUExQkI4NUFE
MjE1OUIxQTAwMDY3RTA3RCAvKiBKU0FwcGxlUGF5RXJyb3JDb2RlLmNwcCAqLywKQEAgLTMxMTgy
LDYgKzMxMTk1LDggQEAKIAkJCQk0NDI1MDcwOTI1ODI5QTI3MDBDMDkzNjggLyogQXBwSGlnaGxp
Z2h0U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTExM0UwMkUyMzMxQTEzNDAwOUMzM0Ew
IC8qIEFwcGxlUGF5Q2FuY2VsRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUExREY1QTk0MUY3
RUM0MzIwMDU4QTQ3NyAvKiBBcHBsZVBheUNvbnRhY3RGaWVsZC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTUwMTgzQ0QyNUQ2MzNEOTAwRDQzNDBGIC8qIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2Uu
aCBpbiBIZWFkZXJzICovLAorCQkJCTk1MjdEN0FCMjVENUZERTIwMEE2RTE3NiAvKiBBcHBsZVBh
eURldGFpbHNVcGRhdGVEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTJDNTlFRTIwMzVGQzlC
MDAxMjIzNkIgLyogQXBwbGVQYXlFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFCQjg1OUMy
MTU5QUVBMTAwNjdFMDdEIC8qIEFwcGxlUGF5RXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBMUJCODVBMzIxNTlBRjU3MDA2N0UwN0QgLyogQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zMjc0OSw2ICszMjc2NCw4IEBACiAJCQkJNzEwMjVFREUxRjk5
RjFFQzAwNEEyNTBDIC8qIEpTQW5pbWF0aW9uVGltZWxpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUExOTU2RjFDMjMzMUE2NzcwMDU3RTlEMiAvKiBKU0FwcGxlUGF5Q2FuY2VsRXZlbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUExREY1QTk5MUY3RUM4QzAwMDU4QTQ3NyAvKiBKU0FwcGxlUGF5Q29u
dGFjdEZpZWxkLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NTNCQ0VCMjI1RDYyODNEMDBBNEEyQTEg
LyogSlNBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NTI3
RDdBRjI1RDVGRTZDMDBBNkUxNzYgLyogSlNBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBMTJDNTlGOTIwMzYwQUNCMDAxMjIzNkIgLyogSlNBcHBsZVBheUVy
cm9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUJCODVCMjIxNTlCMUExMDA2N0UwN0QgLyogSlNB
cHBsZVBheUVycm9yQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFCQjg1QjMyMTU5QjFBMTAw
NjdFMDdEIC8qIEpTQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0zNDA4Niw3ICszNDEwMyw2IEBACiAJCQkJMUE4QTY0M0MxRDE5RkM1MzAwRDBFMDBGIC8qIFBh
eW1lbnRNZXRob2QuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNjRBMjQ3MjEzNEJDNzEwMDUwOTE1
NiAvKiBQYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUExRjc2
QjE5MUY0NEMzOTAwMDE0QzMxOCAvKiBQYXltZW50TWV0aG9kRGF0YS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJQTFERkQ1MjUyMzM0NTkzRjAwNDJGQ0RCIC8qIFBheW1lbnRNZXRob2RVcGRhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUExRjc2QjJCMUY0NEM0RUYwMDE0QzMxOCAvKiBQYXltZW50T3B0
aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFGNzZCMTMxRjQ0QzI0NTAwMTRDMzE4IC8qIFBh
eW1lbnRSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUY2MDA0NDFGNDc1N0E5MDA3N0U4
M0YgLyogUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDJiMzlhMGQ2NWJkODdiMzY5MDdlYTY2
NzJlMGY5NTFmOTI0YWFiYTAuLmViZWM1MmY5YjVlZTk5MmE4MDgzMDVjYzJiNDFjMjc5YjM0YWQ0
YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0zNjQsOSArMzY0
LDkgQEAgY2xhc3MgRW1wdHlQYXltZW50Q29vcmRpbmF0b3JDbGllbnQgZmluYWwgOiBwdWJsaWMg
UGF5bWVudENvb3JkaW5hdG9yQ2xpZW50IHsKICAgICB2b2lkIG9wZW5QYXltZW50U2V0dXAoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwgeyBjYWxsT25NYWluVGhyZWFkKFtjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeyBjb21wbGV0
aW9uSGFuZGxlcihmYWxzZSk7IH0pOyB9CiAgICAgYm9vbCBzaG93UGF5bWVudFVJKGNvbnN0IFVS
TCYsIGNvbnN0IFZlY3RvcjxVUkw+JiwgY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVl
c3QmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZvaWQgY29tcGxldGVNZXJjaGFudFZh
bGlkYXRpb24oY29uc3QgUGF5bWVudE1lcmNoYW50U2Vzc2lvbiYpIGZpbmFsIHsgfQotICAgIHZv
aWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ01ldGhv
ZFVwZGF0ZT4mJikgZmluYWwgeyB9Ci0gICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNl
bGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYpIGZpbmFsIHsgfQotICAg
IHZvaWQgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFBheW1lbnRNZXRo
b2RVcGRhdGU+JiYpIGZpbmFsIHsgfQorICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNl
bGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKSBmaW5hbCB7
IH0KKyAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPEFw
cGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKSBmaW5hbCB7IH0KKyAgICB2b2lkIGNvbXBs
ZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVBheW1lbnRNZXRob2RV
cGRhdGU+JiYpIGZpbmFsIHsgfQogICAgIHZvaWQgY29tcGxldGVQYXltZW50U2Vzc2lvbihPcHRp
b25hbDxQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mJikgZmluYWwgeyB9CiAgICAgdm9pZCBj
YW5jZWxQYXltZW50U2Vzc2lvbigpIGZpbmFsIHsgfQogICAgIHZvaWQgYWJvcnRQYXltZW50U2Vz
c2lvbigpIGZpbmFsIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2Nr
UGF5bWVudENvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1l
bnRDb29yZGluYXRvci5jcHAKaW5kZXggMTZjMWQ5Njk3MjEwOWNkZmEyMWQyNGIyMTEyMjBjMmVj
NTIyMmJkNC4uMjIyYjc4MWRhMDNmNmViMjQ4ZDhmNDA1Yzg1NDk4ZTU3MzA5OThmZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuY3BwCkBA
IC0yOCwxNCArMjgsMTYgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKKyNpbmNsdWRlICJB
cHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaCIKICNpbmNsdWRlICJBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdC5oIgorI2luY2x1ZGUgIkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRl
LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oIgogI2luY2x1ZGUg
Ik1vY2tBcHBsZVBheVNldHVwRmVhdHVyZS5oIgogI2luY2x1ZGUgIk1vY2tQYXltZW50LmgiCiAj
aW5jbHVkZSAiTW9ja1BheW1lbnRDb250YWN0LmgiCiAjaW5jbHVkZSAiTW9ja1BheW1lbnRNZXRo
b2QuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGF5bWVudENvb3JkaW5hdG9yLmgi
Ci0jaW5jbHVkZSAiUGF5bWVudE1ldGhvZFVwZGF0ZS5oIgogI2luY2x1ZGUgIlBheW1lbnRTZXNz
aW9uRXJyb3IuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRl
IDx3dGYvUnVuTG9vcC5oPgpAQCAtOTYsMTggKzk4LDExIEBAIHN0YXRpYyB2b2lkIGRpc3BhdGNo
SWZTaG93aW5nKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKICAgICB9KTsKIH0KIAotc3Rh
dGljIFZlY3RvcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiBjb252ZXJ0KGNvbnN0IFZlY3RvcjxB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGluZ01l
dGhvZHMpCi17Ci0gICAgcmV0dXJuIFdURjo6bWFwKHNoaXBwaW5nTWV0aG9kcywgW10gKGF1dG8m
IHNoaXBwaW5nTWV0aG9kKSB7Ci0gICAgICAgIHJldHVybiBBcHBsZVBheVNoaXBwaW5nTWV0aG9k
IHsgc2hpcHBpbmdNZXRob2QubGFiZWwsIHNoaXBwaW5nTWV0aG9kLmRldGFpbCwgc2hpcHBpbmdN
ZXRob2QuYW1vdW50LCBzaGlwcGluZ01ldGhvZC5pZGVudGlmaWVyIH07Ci0gICAgfSk7Ci19Ci0K
IGJvb2wgTW9ja1BheW1lbnRDb29yZGluYXRvcjo6c2hvd1BheW1lbnRVSShjb25zdCBVUkwmLCBj
b25zdCBWZWN0b3I8VVJMPiYsIGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0JiBy
ZXF1ZXN0KQogewogICAgIGlmIChyZXF1ZXN0LnNoaXBwaW5nQ29udGFjdCgpLnBrQ29udGFjdCgp
KQogICAgICAgICBtX3NoaXBwaW5nQWRkcmVzcyA9IHJlcXVlc3Quc2hpcHBpbmdDb250YWN0KCku
dG9BcHBsZVBheVBheW1lbnRDb250YWN0KHJlcXVlc3QudmVyc2lvbigpKTsKLSAgICBtX3NoaXBw
aW5nTWV0aG9kcyA9IGNvbnZlcnQocmVxdWVzdC5zaGlwcGluZ01ldGhvZHMoKSk7CisgICAgbV9z
aGlwcGluZ01ldGhvZHMgPSByZXF1ZXN0LnNoaXBwaW5nTWV0aG9kcygpOwogICAgIG1fcmVxdWly
ZWRCaWxsaW5nQ29udGFjdEZpZWxkcyA9IHJlcXVlc3QucmVxdWlyZWRCaWxsaW5nQ29udGFjdEZp
ZWxkcygpOwogICAgIG1fcmVxdWlyZWRTaGlwcGluZ0NvbnRhY3RGaWVsZHMgPSByZXF1ZXN0LnJl
cXVpcmVkU2hpcHBpbmdDb250YWN0RmllbGRzKCk7CiAjaWYgRU5BQkxFKEFQUExFX1BBWV9JTlNU
QUxMTUVOVFMpCkBAIC0xMjksMzggKzEyNCw0OSBAQCB2b2lkIE1vY2tQYXltZW50Q29vcmRpbmF0
b3I6OmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFBheW1lbnRNZXJjaGFudFNlcwog
ICAgIH0pOwogfQogCi12b2lkIE1vY2tQYXltZW50Q29vcmRpbmF0b3I6OnVwZGF0ZVRvdGFsQW5k
TGluZUl0ZW1zKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExp
bmVJdGVtcyYgdG90YWxBbmRMaW5lSXRlbXMpCit2b2lkIE1vY2tQYXltZW50Q29vcmRpbmF0b3I6
OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlTaGlwcGlu
Z01ldGhvZFVwZGF0ZT4mJiBzaGlwcGluZ01ldGhvZFVwZGF0ZSkKIHsKLSAgICBtX3RvdGFsID0g
dG90YWxBbmRMaW5lSXRlbXMudG90YWw7Ci0gICAgbV9saW5lSXRlbXMgPSB0b3RhbEFuZExpbmVJ
dGVtcy5saW5lSXRlbXM7CisgICAgaWYgKCFzaGlwcGluZ01ldGhvZFVwZGF0ZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV90b3RhbCA9IFdURk1vdmUoc2hpcHBpbmdNZXRob2RVcGRhdGUtPm5l
d1RvdGFsKTsKKyAgICBtX2xpbmVJdGVtcyA9IFdURk1vdmUoc2hpcHBpbmdNZXRob2RVcGRhdGUt
Pm5ld0xpbmVJdGVtcyk7CiB9CiAKLXZvaWQgTW9ja1BheW1lbnRDb29yZGluYXRvcjo6Y29tcGxl
dGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ01ldGhvZFVwZGF0ZT4m
JiBzaGlwcGluZ01ldGhvZFVwZGF0ZSkKK3N0YXRpYyBWZWN0b3I8TW9ja1BheW1lbnRFcnJvcj4g
Y29udmVydChWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYmIGVycm9ycykKIHsKLSAgICBp
ZiAoc2hpcHBpbmdNZXRob2RVcGRhdGUpCi0gICAgICAgIHVwZGF0ZVRvdGFsQW5kTGluZUl0ZW1z
KHNoaXBwaW5nTWV0aG9kVXBkYXRlLT5uZXdUb3RhbEFuZExpbmVJdGVtcyk7CisgICAgVmVjdG9y
PE1vY2tQYXltZW50RXJyb3I+IHJlc3VsdDsKKyAgICBmb3IgKGF1dG8mIGVycm9yIDogZXJyb3Jz
KSB7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoeyBlcnJv
ci0+Y29kZSgpLCBlcnJvci0+bWVzc2FnZSgpLCBlcnJvci0+Y29udGFjdEZpZWxkKCkgfSk7Cisg
ICAgfQorICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgTW9ja1BheW1lbnRDb29yZGluYXRv
cjo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8U2hpcHBpbmdDb250
YWN0VXBkYXRlPiYmIHNoaXBwaW5nQ29udGFjdFVwZGF0ZSkKK3ZvaWQgTW9ja1BheW1lbnRDb29y
ZGluYXRvcjo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQ
YXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYgc2hpcHBpbmdDb250YWN0VXBkYXRlKQogewogICAg
IGlmICghc2hpcHBpbmdDb250YWN0VXBkYXRlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3No
aXBwaW5nTWV0aG9kcyA9IGNvbnZlcnQoc2hpcHBpbmdDb250YWN0VXBkYXRlLT5uZXdTaGlwcGlu
Z01ldGhvZHMpOwotICAgIHVwZGF0ZVRvdGFsQW5kTGluZUl0ZW1zKHNoaXBwaW5nQ29udGFjdFVw
ZGF0ZS0+bmV3VG90YWxBbmRMaW5lSXRlbXMpOwotICAgIG1fZXJyb3JzID0gV1RGTW92ZShzaGlw
cGluZ0NvbnRhY3RVcGRhdGUtPmVycm9ycyk7CisgICAgbV90b3RhbCA9IFdURk1vdmUoc2hpcHBp
bmdDb250YWN0VXBkYXRlLT5uZXdUb3RhbCk7CisgICAgbV9saW5lSXRlbXMgPSBXVEZNb3ZlKHNo
aXBwaW5nQ29udGFjdFVwZGF0ZS0+bmV3TGluZUl0ZW1zKTsKKyAgICBtX2Vycm9ycyA9IGNvbnZl
cnQoV1RGTW92ZShzaGlwcGluZ0NvbnRhY3RVcGRhdGUtPmVycm9ycykpOworICAgIG1fc2hpcHBp
bmdNZXRob2RzID0gV1RGTW92ZShzaGlwcGluZ0NvbnRhY3RVcGRhdGUtPm5ld1NoaXBwaW5nTWV0
aG9kcyk7CiB9CiAKLXZvaWQgTW9ja1BheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50
TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFBheW1lbnRNZXRob2RVcGRhdGU+JiYgcGF5bWVudE1l
dGhvZFVwZGF0ZSkKK3ZvaWQgTW9ja1BheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50
TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJiBw
YXltZW50TWV0aG9kVXBkYXRlKQogewotICAgIGlmIChwYXltZW50TWV0aG9kVXBkYXRlKQotICAg
ICAgICB1cGRhdGVUb3RhbEFuZExpbmVJdGVtcyhwYXltZW50TWV0aG9kVXBkYXRlLT50b3RhbEFu
ZExpbmVJdGVtcygpKTsKKyAgICBpZiAoIXBheW1lbnRNZXRob2RVcGRhdGUpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fdG90YWwgPSBXVEZNb3ZlKHBheW1lbnRNZXRob2RVcGRhdGUtPm5ld1Rv
dGFsKTsKKyAgICBtX2xpbmVJdGVtcyA9IFdURk1vdmUocGF5bWVudE1ldGhvZFVwZGF0ZS0+bmV3
TGluZUl0ZW1zKTsKIH0KIAogdm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjaGFuZ2VTaGlw
cGluZ09wdGlvbihTdHJpbmcmJiBzaGlwcGluZ09wdGlvbikKIHsKICAgICBkaXNwYXRjaElmU2hv
d2luZyhbcGFnZSA9ICZtX3BhZ2UsIHNoaXBwaW5nT3B0aW9uID0gV1RGTW92ZShzaGlwcGluZ09w
dGlvbildKCkgbXV0YWJsZSB7Ci0gICAgICAgIEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
OjpTaGlwcGluZ01ldGhvZCBzaGlwcGluZ01ldGhvZDsKKyAgICAgICAgQXBwbGVQYXlTaGlwcGlu
Z01ldGhvZCBzaGlwcGluZ01ldGhvZDsKICAgICAgICAgc2hpcHBpbmdNZXRob2QuaWRlbnRpZmll
ciA9IFdURk1vdmUoc2hpcHBpbmdPcHRpb24pOwogICAgICAgICBwYWdlLT5wYXltZW50Q29vcmRp
bmF0b3IoKS5kaWRTZWxlY3RTaGlwcGluZ01ldGhvZChzaGlwcGluZ01ldGhvZCk7CiAgICAgfSk7
CkBAIC0xOTQsNyArMjAwLDcgQEAgdm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjYW5jZWxQ
YXltZW50KCkKIHZvaWQgTW9ja1BheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50U2Vz
c2lvbihPcHRpb25hbDxQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mJiByZXN1bHQpCiB7CiAg
ICAgYXV0byBpc0ZpbmFsU3RhdGUgPSBpc0ZpbmFsU3RhdGVSZXN1bHQocmVzdWx0KTsKLSAgICBt
X2Vycm9ycyA9IFdURk1vdmUocmVzdWx0LT5lcnJvcnMpOworICAgIG1fZXJyb3JzID0gY29udmVy
dChXVEZNb3ZlKHJlc3VsdC0+ZXJyb3JzKSk7CiAKICAgICBpZiAoIWlzRmluYWxTdGF0ZSkKICAg
ICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5
bWVudENvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29v
cmRpbmF0b3IuaAppbmRleCA0MzRhZTU2NTAyMjk5NjY4MDE0OTMwZmQ0OGJmZDQ2YTZhOTZjYWFj
Li5iN2RiMDkwNjJkNjJlOWJmMTMzNjA3ODk2MjFhNTNlNDE0NTE5ZGZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuaApAQCAtODIsOSArODIs
OSBAQCBwcml2YXRlOgogICAgIHZvaWQgb3BlblBheW1lbnRTZXR1cChjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKICAg
ICBib29sIHNob3dQYXltZW50VUkoY29uc3QgVVJMJiwgY29uc3QgVmVjdG9yPFVSTD4mLCBjb25z
dCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYpIGZpbmFsOwogICAgIHZvaWQgY29tcGxl
dGVNZXJjaGFudFZhbGlkYXRpb24oY29uc3QgUGF5bWVudE1lcmNoYW50U2Vzc2lvbiYpIGZpbmFs
OwotICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxTaGlw
cGluZ01ldGhvZFVwZGF0ZT4mJikgZmluYWw7Ci0gICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29u
dGFjdFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYpIGZpbmFsOwot
ICAgIHZvaWQgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFBheW1lbnRN
ZXRob2RVcGRhdGU+JiYpIGZpbmFsOworICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNl
bGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKSBmaW5hbDsK
KyAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxl
UGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKSBmaW5hbDsKKyAgICB2b2lkIGNvbXBsZXRlUGF5
bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+
JiYpIGZpbmFsOwogICAgIHZvaWQgY29tcGxldGVQYXltZW50U2Vzc2lvbihPcHRpb25hbDxQYXlt
ZW50QXV0aG9yaXphdGlvblJlc3VsdD4mJikgZmluYWw7CiAgICAgdm9pZCBhYm9ydFBheW1lbnRT
ZXNzaW9uKCkgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxQYXltZW50U2Vzc2lvbigpIGZpbmFsOwpA
QCAtOTcsOCArOTcsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0U2V0dXBGZWF0dXJlcyhjb25z
dCBBcHBsZVBheVNldHVwQ29uZmlndXJhdGlvbiYsIGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoVmVjdG9yPFJlZjxBcHBsZVBheVNldHVwRmVhdHVyZT4+JiYpPiYmKSBmaW5hbDsK
ICAgICB2b2lkIGJlZ2luQXBwbGVQYXlTZXR1cChjb25zdCBBcHBsZVBheVNldHVwQ29uZmlndXJh
dGlvbiYsIGNvbnN0IFVSTCYsIFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlTZXR1cEZlYXR1cmU+PiYm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKIAotICAgIHZvaWQgdXBk
YXRlVG90YWxBbmRMaW5lSXRlbXMoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6
OlRvdGFsQW5kTGluZUl0ZW1zJik7Ci0KICAgICBQYWdlJiBtX3BhZ2U7CiAgICAgYm9vbCBtX2Nh
bk1ha2VQYXltZW50cyB7IHRydWUgfTsKICAgICBib29sIG1fY2FuTWFrZVBheW1lbnRzV2l0aEFj
dGl2ZUNhcmQgeyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tQYXltZW50RXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRFcnJv
ci5oCmluZGV4IGNkZTM4ZWY1MDFjNjBjYjE0MGQ5YTdlN2MxMTI2MDlkNTM3YmM1M2UuLjViYzFj
YTExOTYzMTNiMzgwODQxYjQ1ZGQ3M2M1MDQzMmYwNjJiNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja1BheW1lbnRFcnJvci5oCkBAIC0yNywxMSArMjcsMTYgQEAKIAogI2lmIEVOQUJM
RShBUFBMRV9QQVkpCiAKLSNpbmNsdWRlICJBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5o
IgorI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3JDb2RlLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlFcnJv
ckNvbnRhY3RGaWVsZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIE1vY2tQYXlt
ZW50RXJyb3IgPSBQYXltZW50RXJyb3I7CitzdHJ1Y3QgTW9ja1BheW1lbnRFcnJvciB7CisgICAg
QXBwbGVQYXlFcnJvckNvZGUgY29kZTsKKyAgICBTdHJpbmcgbWVzc2FnZTsKKyAgICBPcHRpb25h
bDxBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkPiBjb250YWN0RmllbGQ7Cit9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29j
b2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vY29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIuaAppbmRleCBmYzc2NGExMDBl
NTIxODU0YzA3Nzk2M2JkNDRjYWE4M2YxOTAyODMwLi44NjFjODU4ZGFlNjJjMjZlOWQwZmYwOTBm
MWVjMWRkZjQ1OTMwMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29h
L1BheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5oCkBAIC00MSw4ICs0MSwx
MSBAQCBjbGFzcyBQYXltZW50OwogY2xhc3MgUGF5bWVudENvbnRhY3Q7CiBjbGFzcyBQYXltZW50
TWVyY2hhbnRTZXNzaW9uOwogY2xhc3MgUGF5bWVudE1ldGhvZDsKLWNsYXNzIFBheW1lbnRNZXRo
b2RVcGRhdGU7CiBjbGFzcyBQYXltZW50U2Vzc2lvbkVycm9yOworc3RydWN0IEFwcGxlUGF5UGF5
bWVudE1ldGhvZFVwZGF0ZTsKK3N0cnVjdCBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZTsK
K3N0cnVjdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kOworc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdN
ZXRob2RVcGRhdGU7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTgsNyArNjEsNyBAQCBw
dWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwcmVzZW50ZXJEaWRGaW5pc2goUGF5bWVudEF1
dGhvcml6YXRpb25QcmVzZW50ZXImLCBXZWJDb3JlOjpQYXltZW50U2Vzc2lvbkVycm9yJiYpID0g
MDsKICAgICAgICAgdmlydHVhbCB2b2lkIHByZXNlbnRlckRpZFNlbGVjdFBheW1lbnRNZXRob2Qo
UGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0
aG9kJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHJlc2VudGVyRGlkU2VsZWN0U2hpcHBp
bmdDb250YWN0KFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyJiwgY29uc3QgV2ViQ29yZTo6
UGF5bWVudENvbnRhY3QmKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwcmVzZW50ZXJEaWRT
ZWxlY3RTaGlwcGluZ01ldGhvZChQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlciYsIGNvbnN0
IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYp
ID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHByZXNlbnRlckRpZFNlbGVjdFNoaXBwaW5nTWV0
aG9kKFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyJiwgY29uc3QgV2ViQ29yZTo6QXBwbGVQ
YXlTaGlwcGluZ01ldGhvZCYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHByZXNlbnRlcldp
bGxWYWxpZGF0ZU1lcmNoYW50KFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyJiwgY29uc3Qg
VVJMJikgPSAwOwogICAgIH07CiAKQEAgLTY3LDEwICs3MCwxMCBAQCBwdWJsaWM6CiAgICAgQ2xp
ZW50JiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudDsgfQogCiAgICAgdm9pZCBjb21wbGV0ZU1l
cmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJik7
Ci0gICAgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8
V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT4mKTsKKyAgICB2b2lkIGNvbXBsZXRlUGF5bWVu
dE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRNZXRob2RV
cGRhdGU+JiYpOwogICAgIHZvaWQgY29tcGxldGVQYXltZW50U2Vzc2lvbihjb25zdCBPcHRpb25h
bDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mKTsKLSAgICB2b2lkIGNvbXBs
ZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBw
aW5nQ29udGFjdFVwZGF0ZT4mKTsKLSAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxl
Y3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+Jik7Cisg
ICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3Jl
OjpBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJik7CisgICAgdm9pZCBjb21wbGV0ZVNo
aXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdN
ZXRob2RVcGRhdGU+JiYpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3MoKSA9IDA7CiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
Y29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL2NvY29hL1BheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyLm1tCmluZGV4IGFlMzcw
OTMxNWJiNzRlYWJkNTE5MmFmM2UzZTU5NGI3ZmRhNTUwMDYuLmEwNWJjNzJkNTNkNGM3ZDQ5ZTRh
NTI1NDI5YzViYjMzYWI5OTkzYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
Y29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIubW0KKysrIGIvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5tbQpAQCAtMzAs
MTQgKzMwLDI0IEBACiAKICNpbXBvcnQgIldLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5o
IgogI2ltcG9ydCAiV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5oIgorI2ltcG9ydCA8
V2ViQ29yZS9BcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmg+CisjaW1wb3J0IDxXZWJDb3JlL0Fw
cGxlUGF5RXJyb3IuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQXBwbGVQYXlFcnJvckNvZGUuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQXBw
bGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQXBwbGVQYXlT
aGlwcGluZ01ldGhvZFVwZGF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYXltZW50QXV0aG9yaXph
dGlvblN0YXR1cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYXltZW50TWVyY2hhbnRTZXNzaW9uLmg+
Ci0jaW1wb3J0IDxXZWJDb3JlL1BheW1lbnRNZXRob2RVcGRhdGUuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUGF5bWVudFN1bW1hcnlJdGVtcy5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29h
Lmg+CiAKICNpbXBvcnQgPHBhbC9jb2NvYS9QYXNzS2l0U29mdExpbmsuaD4KIAorI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCisjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL1BheW1lbnRBdXRo
b3JpemF0aW9uUHJlc2VudGVyQWRkaXRpb25zLm1tPgorI2VuZGlmCisKIC8vIEZJWE1FOiBTdG9w
IHNvZnQgbGlua2luZyBDb250YWN0cyBvbmNlIHRoZSBkZXBlbmRlbmN5IGN5Y2xlIGlzIHJlbW92
ZWQgb24gbWFjT1MgKDxyZGFyOi8vcHJvYmxlbS83MDg4NzkzND4pLAogLy8gb3Igd2hlbiBDb250
YWN0cyBjYW4gYmUgdXB3YXJkIGxpbmtlZCAoPHJkYXI6Ly9wcm9ibGVtLzM2MTM1MTM3PikuCiBT
T0ZUX0xJTktfRlJBTUVXT1JLKENvbnRhY3RzKTsKQEAgLTcxLDg2ICs4MSw4NiBAQCBzdGF0aWMg
UEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyB0b1BLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0
dXMoV2ViQ29yZTo6UGF5bQogICAgIH0KIH0KIAotc3RhdGljIFBLUGF5bWVudEVycm9yQ29kZSB0
b1BLUGF5bWVudEVycm9yQ29kZShXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGUgY29kZSkKK3N0
YXRpYyBQS1BheW1lbnRFcnJvckNvZGUgdG9QS1BheW1lbnRFcnJvckNvZGUoV2ViQ29yZTo6QXBw
bGVQYXlFcnJvckNvZGUgY29kZSkKIHsKICAgICBzd2l0Y2ggKGNvZGUpIHsKLSAgICBjYXNlIFdl
YkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6VW5rbm93bjoKKyAgICBjYXNlIFdlYkNvcmU6OkFw
cGxlUGF5RXJyb3JDb2RlOjpVbmtub3duOgogICAgICAgICByZXR1cm4gUEtQYXltZW50VW5rbm93
bkVycm9yOwotICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb2RlOjpTaGlwcGluZ0Nv
bnRhY3RJbnZhbGlkOgorICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvZGU6OlNoaXBw
aW5nQ29udGFjdEludmFsaWQ6CiAgICAgICAgIHJldHVybiBQS1BheW1lbnRTaGlwcGluZ0NvbnRh
Y3RJbnZhbGlkRXJyb3I7Ci0gICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU6OkJp
bGxpbmdDb250YWN0SW52YWxpZDoKKyAgICBjYXNlIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb2Rl
OjpCaWxsaW5nQ29udGFjdEludmFsaWQ6CiAgICAgICAgIHJldHVybiBQS1BheW1lbnRCaWxsaW5n
Q29udGFjdEludmFsaWRFcnJvcjsKLSAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29k
ZTo6QWRkcmVzc1Vuc2VydmljZWFibGU6CisgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9y
Q29kZTo6QWRkcmVzc1Vuc2VydmljZWFibGU6CiAgICAgICAgIHJldHVybiBQS1BheW1lbnRTaGlw
cGluZ0FkZHJlc3NVbnNlcnZpY2VhYmxlRXJyb3I7CiAgICAgfQogfQogCi1zdGF0aWMgTlNFcnJv
ciAqdG9OU0Vycm9yKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRFcnJvciYgZXJyb3IpCitzdGF0aWMg
TlNFcnJvciAqdG9OU0Vycm9yKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5RXJyb3ImIGVycm9yKQog
ewogICAgIGF1dG8gdXNlckluZm8gPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxv
Y10gaW5pdF0pOwotICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6ZXJyb3IubWVzc2FnZSBmb3JLZXk6
TlNMb2NhbGl6ZWREZXNjcmlwdGlvbktleV07CisgICAgW3VzZXJJbmZvIHNldE9iamVjdDplcnJv
ci5tZXNzYWdlKCkgZm9yS2V5Ok5TTG9jYWxpemVkRGVzY3JpcHRpb25LZXldOwogCi0gICAgaWYg
KGVycm9yLmNvbnRhY3RGaWVsZCkgeworICAgIGlmIChhdXRvIGNvbnRhY3RGaWVsZCA9IGVycm9y
LmNvbnRhY3RGaWVsZCgpKSB7CiAgICAgICAgIE5TU3RyaW5nICpwa0NvbnRhY3RGaWVsZCA9IG5p
bDsKICAgICAgICAgTlNTdHJpbmcgKnBvc3RhbEFkZHJlc3NLZXkgPSBuaWw7CiAKLSAgICAgICAg
c3dpdGNoICgqZXJyb3IuY29udGFjdEZpZWxkKSB7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5
bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlBob25lTnVtYmVyOgorICAgICAgICBzd2l0Y2ggKCpj
b250YWN0RmllbGQpIHsKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFj
dEZpZWxkOjpQaG9uZU51bWJlcjoKICAgICAgICAgICAgIHBrQ29udGFjdEZpZWxkID0gUEFMOjpn
ZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBob25lTnVtYmVyKCk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIAotICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29u
dGFjdEZpZWxkOjpFbWFpbEFkZHJlc3M6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlF
cnJvckNvbnRhY3RGaWVsZDo6RW1haWxBZGRyZXNzOgogICAgICAgICAgICAgcGtDb250YWN0Rmll
bGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkRW1haWxBZGRyZXNzKCk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIAotICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1l
bnRFcnJvcjo6Q29udGFjdEZpZWxkOjpOYW1lOgorICAgICAgICBjYXNlIFdlYkNvcmU6OkFwcGxl
UGF5RXJyb3JDb250YWN0RmllbGQ6Ok5hbWU6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9
IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGROYW1lKCk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgICAgIAotICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29u
dGFjdEZpZWxkOjpQaG9uZXRpY05hbWU6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlF
cnJvckNvbnRhY3RGaWVsZDo6UGhvbmV0aWNOYW1lOgogICAgICAgICAgICAgcGtDb250YWN0Rmll
bGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUGhvbmV0aWNOYW1lKCk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIAotICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1l
bnRFcnJvcjo6Q29udGFjdEZpZWxkOjpQb3N0YWxBZGRyZXNzOgorICAgICAgICBjYXNlIFdlYkNv
cmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlBvc3RhbEFkZHJlc3M6CiAgICAgICAgICAg
ICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxB
ZGRyZXNzKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAotICAgICAgICBjYXNl
IFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpBZGRyZXNzTGluZXM6CisgICAg
ICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6QWRkcmVzc0xpbmVz
OgogICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFj
dEZpZWxkUG9zdGFsQWRkcmVzcygpOwogICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdl
dENOUG9zdGFsQWRkcmVzc1N0cmVldEtleSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICAKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6
U3ViTG9jYWxpdHk6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RG
aWVsZDo6U3ViTG9jYWxpdHk6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0
X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CiAgICAgICAgICAgICBwb3N0
YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzU3ViTG9jYWxpdHlLZXkoKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVu
dEVycm9yOjpDb250YWN0RmllbGQ6OkxvY2FsaXR5OgorICAgICAgICBjYXNlIFdlYkNvcmU6OkFw
cGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OkxvY2FsaXR5OgogICAgICAgICAgICAgcGtDb250YWN0
RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRkcmVzcygpOwog
ICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdldENOUG9zdGFsQWRkcmVzc0NpdHlLZXko
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29y
ZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlBvc3RhbENvZGU6CisgICAgICAgIGNhc2Ug
V2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UG9zdGFsQ29kZToKICAgICAgICAg
ICAgIHBrQ29udGFjdEZpZWxkID0gUEFMOjpnZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBvc3Rh
bEFkZHJlc3MoKTsKICAgICAgICAgICAgIHBvc3RhbEFkZHJlc3NLZXkgPSBnZXRDTlBvc3RhbEFk
ZHJlc3NQb3N0YWxDb2RlS2V5KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAot
ICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpTdWJBZG1p
bmlzdHJhdGl2ZUFyZWE6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRh
Y3RGaWVsZDo6U3ViQWRtaW5pc3RyYXRpdmVBcmVhOgogICAgICAgICAgICAgcGtDb250YWN0Rmll
bGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRkcmVzcygpOwogICAg
ICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdldENOUG9zdGFsQWRkcmVzc1N1YkFkbWluaXN0
cmF0aXZlQXJlYUtleSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKLSAgICAg
ICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6QWRtaW5pc3RyYXRp
dmVBcmVhOgorICAgICAgICBjYXNlIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6
OkFkbWluaXN0cmF0aXZlQXJlYToKICAgICAgICAgICAgIHBrQ29udGFjdEZpZWxkID0gUEFMOjpn
ZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBvc3RhbEFkZHJlc3MoKTsKICAgICAgICAgICAgIHBv
c3RhbEFkZHJlc3NLZXkgPSBnZXRDTlBvc3RhbEFkZHJlc3NTdGF0ZUtleSgpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJy
b3I6OkNvbnRhY3RGaWVsZDo6Q291bnRyeToKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBh
eUVycm9yQ29udGFjdEZpZWxkOjpDb3VudHJ5OgogICAgICAgICAgICAgcGtDb250YWN0RmllbGQg
PSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRkcmVzcygpOwogICAgICAg
ICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdldENOUG9zdGFsQWRkcmVzc0NvdW50cnlLZXkoKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6
UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OkNvdW50cnlDb2RlOgorICAgICAgICBjYXNlIFdl
YkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OkNvdW50cnlDb2RlOgogICAgICAgICAg
ICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFs
QWRkcmVzcygpOwogICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdldENOUG9zdGFsQWRk
cmVzc0lTT0NvdW50cnlDb2RlS2V5KCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTE2MSwxNyAr
MTcxLDIwIEBAIHN0YXRpYyBOU0Vycm9yICp0b05TRXJyb3IoY29uc3QgV2ViQ29yZTo6UGF5bWVu
dEVycm9yJiBlcnJvcikKICAgICAgICAgICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6cG9zdGFsQWRk
cmVzc0tleSBmb3JLZXk6UEFMOjpnZXRfUGFzc0tpdF9QS1BheW1lbnRFcnJvclBvc3RhbEFkZHJl
c3NVc2VySW5mb0tleSgpXTsKICAgICB9CiAKLSAgICByZXR1cm4gW05TRXJyb3IgZXJyb3JXaXRo
RG9tYWluOlBBTDo6Z2V0X1Bhc3NLaXRfUEtQYXltZW50RXJyb3JEb21haW4oKSBjb2RlOnRvUEtQ
YXltZW50RXJyb3JDb2RlKGVycm9yLmNvZGUpIHVzZXJJbmZvOnVzZXJJbmZvLmdldCgpXTsKKyAg
ICByZXR1cm4gW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOlBBTDo6Z2V0X1Bhc3NLaXRfUEtQYXlt
ZW50RXJyb3JEb21haW4oKSBjb2RlOnRvUEtQYXltZW50RXJyb3JDb2RlKGVycm9yLmNvZGUoKSkg
dXNlckluZm86dXNlckluZm8uZ2V0KCldOwogfQogCi1zdGF0aWMgUmV0YWluUHRyPE5TQXJyYXk+
IHRvTlNFcnJvcnMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlBheW1lbnRFcnJvcj4mIGVycm9ycykK
K3N0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gdG9OU0Vycm9ycyhjb25zdCBWZWN0b3I8UmVmUHRy
PFdlYkNvcmU6OkFwcGxlUGF5RXJyb3I+PiYgZXJyb3JzKQogewotICAgIHJldHVybiBjcmVhdGVO
U0FycmF5KGVycm9ycywgW10gKGF1dG8mIGVycm9yKSB7Ci0gICAgICAgIHJldHVybiB0b05TRXJy
b3IoZXJyb3IpOwotICAgIH0pOworICAgIGF1dG8gYXJyYXkgPSBhZG9wdE5TKE5TTXV0YWJsZUFy
cmF5LmFycmF5KTsKKyAgICBmb3IgKGF1dG8mIGVycm9yIDogZXJyb3JzKSB7CisgICAgICAgIGlm
IChlcnJvcikKKyAgICAgICAgICAgIFthcnJheSBhZGRPYmplY3Q6dG9OU0Vycm9yKCplcnJvcild
OworICAgIH0KKyAgICByZXR1cm4gYXJyYXk7CiB9CiAKLXN0YXRpYyBSZXRhaW5QdHI8TlNBcnJh
eT4gdG9QS1NoaXBwaW5nTWV0aG9kcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6QXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPiYgc2hpcHBpbmdNZXRob2RzKQorc3Rh
dGljIFJldGFpblB0cjxOU0FycmF5PiB0b1BLU2hpcHBpbmdNZXRob2RzKGNvbnN0IFZlY3RvcjxX
ZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiYgc2hpcHBpbmdNZXRob2RzKQogewogICAg
IHJldHVybiBjcmVhdGVOU0FycmF5KHNoaXBwaW5nTWV0aG9kcywgW10gKGF1dG8mIG1ldGhvZCkg
ewogICAgICAgICByZXR1cm4gdG9QS1NoaXBwaW5nTWV0aG9kKG1ldGhvZCk7CkBAIC0xODQsNyAr
MTk3LDcgQEAgdm9pZCBQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVNZXJj
aGFudFZhbGlkYXRpb24oY29uc3QgV2ViQ29yZTo6UGEKICAgICBbcGxhdGZvcm1EZWxlZ2F0ZSgp
IGNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uOm1lcmNoYW50U2Vzc2lvbi5wa1BheW1lbnRNZXJj
aGFudFNlc3Npb24oKSBlcnJvcjpuaWxdOwogfQogCi12b2lkIFBheW1lbnRBdXRob3JpemF0aW9u
UHJlc2VudGVyOjpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8
V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT4mIHVwZGF0ZSkKK3ZvaWQgUGF5bWVudEF1dGhv
cml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25h
bDxXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+JiYgdXBkYXRlKQogewogICAg
IEFTU0VSVChwbGF0Zm9ybURlbGVnYXRlKCkpOwogICAgIGlmICghdXBkYXRlKSB7CkBAIC0xOTIs
NyArMjA1LDE0IEBAIHZvaWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRl
UGF5bWVudE1ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25hCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBbcGxhdGZvcm1EZWxlZ2F0ZSgpIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVj
dGlvbjp1cGRhdGUtPnBsYXRmb3JtVXBkYXRlKCldOworICAgIGF1dG8gcGF5bWVudE1ldGhvZFVw
ZGF0ZSA9IGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVw
ZGF0ZUluc3RhbmNlKCkgaW5pdFdpdGhQYXltZW50U3VtbWFyeUl0ZW1zOldlYkNvcmU6OnBsYXRm
b3JtU3VtbWFyeUl0ZW1zKFdURk1vdmUodXBkYXRlLT5uZXdUb3RhbCksIFdURk1vdmUodXBkYXRl
LT5uZXdMaW5lSXRlbXMpKV0pOworI2lmIEhBVkUoUEFTU0tJVF9JTlNUQUxMTUVOVFMpICYmIEVO
QUJMRShBUFBMRV9QQVlfSU5TVEFMTE1FTlRTKQorICAgIFtwYXltZW50TWV0aG9kVXBkYXRlIHNl
dEluc3RhbGxtZW50R3JvdXBJZGVudGlmaWVyOldURk1vdmUodXBkYXRlLT5pbnN0YWxsbWVudEdy
b3VwSWRlbnRpZmllcildOworI2VuZGlmIC8vIEhBVkUoUEFTU0tJVF9JTlNUQUxMTUVOVFMpICYm
IEVOQUJMRShBUFBMRV9QQVlfSU5TVEFMTE1FTlRTKQorI2lmIGRlZmluZWQoUGF5bWVudEF1dGhv
cml6YXRpb25QcmVzZW50ZXJBZGRpdGlvbnNfY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9u
KQorICAgIFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyQWRkaXRpb25zX2NvbXBsZXRlUGF5
bWVudE1ldGhvZFNlbGVjdGlvbgorI2VuZGlmCisgICAgW3BsYXRmb3JtRGVsZWdhdGUoKSBjb21w
bGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb246cGF5bWVudE1ldGhvZFVwZGF0ZS5nZXQoKV07CiB9
CiAKIHZvaWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlUGF5bWVudFNl
c3Npb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+
JiByZXN1bHQpCkBAIC0yMDMsNyArMjIzLDcgQEAgdm9pZCBQYXltZW50QXV0aG9yaXphdGlvblBy
ZXNlbnRlcjo6Y29tcGxldGVQYXltZW50U2Vzc2lvbihjb25zdCBPcHRpb25hbDxXZWJDb3IKICAg
ICBbcGxhdGZvcm1EZWxlZ2F0ZSgpIGNvbXBsZXRlUGF5bWVudFNlc3Npb246c3RhdHVzIGVycm9y
czplcnJvcnMuZ2V0KCldOwogfQogCi12b2lkIFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVy
Ojpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3Jl
OjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiB1cGRhdGUpCit2b2lkIFBheW1lbnRBdXRob3JpemF0
aW9uUHJlc2VudGVyOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxX
ZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJiB1cGRhdGUpCiB7CiAgICAg
QVNTRVJUKHBsYXRmb3JtRGVsZWdhdGUoKSk7CiAgICAgaWYgKCF1cGRhdGUpIHsKQEAgLTIxMSwx
NCArMjMxLDE2IEBAIHZvaWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRl
U2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKGNvbnN0IE9wdGlvCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICAvLyBGSVhNRTogV2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlIHNob3Vs
ZCBrbm93IGhvdyB0byBjb252ZXJ0IGl0c2VsZiB0byBhIFBLUGF5bWVudFJlcXVlc3RTaGlwcGlu
Z0NvbnRhY3RVcGRhdGUuCi0gICAgYXV0byBzaGlwcGluZ0NvbnRhY3RVcGRhdGUgPSBhZG9wdE5T
KFtQQUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nQ29udGFjdFVwZGF0ZUluc3RhbmNl
KCkgaW5pdFdpdGhFcnJvcnM6dG9OU0Vycm9ycyh1cGRhdGUtPmVycm9ycykuZ2V0KCkKLSAgICAg
ICAgcGF5bWVudFN1bW1hcnlJdGVtczpXZWJDb3JlOjpwbGF0Zm9ybVN1bW1hcnlJdGVtcyh1cGRh
dGUtPm5ld1RvdGFsQW5kTGluZUl0ZW1zKQotICAgICAgICBzaGlwcGluZ01ldGhvZHM6dG9QS1No
aXBwaW5nTWV0aG9kcyh1cGRhdGUtPm5ld1NoaXBwaW5nTWV0aG9kcykuZ2V0KCldKTsKKyAgICBh
dXRvIHNoaXBwaW5nQ29udGFjdFVwZGF0ZSA9IGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRS
ZXF1ZXN0U2hpcHBpbmdDb250YWN0VXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aEVycm9yczp0b05T
RXJyb3JzKFdURk1vdmUodXBkYXRlLT5lcnJvcnMpKS5nZXQoKQorICAgICAgICBwYXltZW50U3Vt
bWFyeUl0ZW1zOldlYkNvcmU6OnBsYXRmb3JtU3VtbWFyeUl0ZW1zKFdURk1vdmUodXBkYXRlLT5u
ZXdUb3RhbCksIFdURk1vdmUodXBkYXRlLT5uZXdMaW5lSXRlbXMpKQorICAgICAgICBzaGlwcGlu
Z01ldGhvZHM6dG9QS1NoaXBwaW5nTWV0aG9kcyhXVEZNb3ZlKHVwZGF0ZS0+bmV3U2hpcHBpbmdN
ZXRob2RzKSkuZ2V0KCldKTsKKyNpZiBkZWZpbmVkKFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2Vu
dGVyQWRkaXRpb25zX2NvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKQorICAgIFBheW1l
bnRBdXRob3JpemF0aW9uUHJlc2VudGVyQWRkaXRpb25zX2NvbXBsZXRlU2hpcHBpbmdDb250YWN0
U2VsZWN0aW9uCisjZW5kaWYKICAgICBbcGxhdGZvcm1EZWxlZ2F0ZSgpIGNvbXBsZXRlU2hpcHBp
bmdDb250YWN0U2VsZWN0aW9uOnNoaXBwaW5nQ29udGFjdFVwZGF0ZS5nZXQoKV07CiB9CiAKLXZv
aWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RT
ZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+JiB1
cGRhdGUpCit2b2lkIFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyOjpjb21wbGV0ZVNoaXBw
aW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRo
b2RVcGRhdGU+JiYgdXBkYXRlKQogewogICAgIEFTU0VSVChwbGF0Zm9ybURlbGVnYXRlKCkpOwog
ICAgIGlmICghdXBkYXRlKSB7CkBAIC0yMjYsOCArMjQ4LDEwIEBAIHZvaWQgUGF5bWVudEF1dGhv
cml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oY29uc3Qg
T3B0aW9uCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBGSVhNRTogV2ViQ29yZTo6
U2hpcHBpbmdNZXRob2RVcGRhdGUgc2hvdWxkIGtub3cgaG93IHRvIGNvbnZlcnQgaXRzZWxmIHRv
IGEgUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nTWV0aG9kVXBkYXRlLgotICAgIGF1dG8gc2hpcHBp
bmdNZXRob2RVcGRhdGUgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdFNoaXBw
aW5nTWV0aG9kVXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aFBheW1lbnRTdW1tYXJ5SXRlbXM6V2Vi
Q29yZTo6cGxhdGZvcm1TdW1tYXJ5SXRlbXModXBkYXRlLT5uZXdUb3RhbEFuZExpbmVJdGVtcyld
KTsKKyAgICBhdXRvIHNoaXBwaW5nTWV0aG9kVXBkYXRlID0gYWRvcHROUyhbUEFMOjphbGxvY1BL
UGF5bWVudFJlcXVlc3RTaGlwcGluZ01ldGhvZFVwZGF0ZUluc3RhbmNlKCkgaW5pdFdpdGhQYXlt
ZW50U3VtbWFyeUl0ZW1zOldlYkNvcmU6OnBsYXRmb3JtU3VtbWFyeUl0ZW1zKFdURk1vdmUodXBk
YXRlLT5uZXdUb3RhbCksIFdURk1vdmUodXBkYXRlLT5uZXdMaW5lSXRlbXMpKV0pOworI2lmIGRl
ZmluZWQoUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXJBZGRpdGlvbnNfY29tcGxldGVTaGlw
cGluZ01ldGhvZFNlbGVjdGlvbikKKyAgICBQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlckFk
ZGl0aW9uc19jb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uCisjZW5kaWYKICAgICBbcGxh
dGZvcm1EZWxlZ2F0ZSgpIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb246c2hpcHBpbmdN
ZXRob2RVcGRhdGUuZ2V0KCldOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vY29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tCmluZGV4
IGNmMzRhNDhlZDJmZWUxZWE3OWYyZWQyN2RiZjEyODVhZTJjYTIzMzQuLmI5ZGNlN2JlZGU4ZDc5
NTI4NDYyMzBkMDU3ZDI2NDk5ZjFjZTY3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vY29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1t
CkBAIC0xNzMsMTYgKzE3MywxNSBAQCAtICh2b2lkKV9kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3Q6
KFBLQ29udGFjdCAqKWNvbnRhY3QgY29tcGxldGlvbjooV2ViS2l0OjpEaWRTZQogICAgIHByZXNl
bnRlci0+Y2xpZW50KCkucHJlc2VudGVyRGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KCpwcmVzZW50
ZXIsIFdlYkNvcmU6OlBheW1lbnRDb250YWN0KGNvbnRhY3QpKTsKIH0KIAotc3RhdGljIFdlYkNv
cmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCB0b1NoaXBw
aW5nTWV0aG9kKFBLU2hpcHBpbmdNZXRob2QgKnNoaXBwaW5nTWV0aG9kKQorc3RhdGljIFdlYkNv
cmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2QgdG9TaGlwcGluZ01ldGhvZChQS1NoaXBwaW5nTWV0
aG9kICpzaGlwcGluZ01ldGhvZCkKIHsKICAgICBBU1NFUlQoc2hpcHBpbmdNZXRob2QpOwogCi0g
ICAgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9k
IHJlc3VsdDsKKyAgICBXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kIHJlc3VsdDsKICAg
ICByZXN1bHQuYW1vdW50ID0gc2hpcHBpbmdNZXRob2QuYW1vdW50LnN0cmluZ1ZhbHVlOwogICAg
IHJlc3VsdC5kZXRhaWwgPSBzaGlwcGluZ01ldGhvZC5kZXRhaWw7CiAgICAgcmVzdWx0LmlkZW50
aWZpZXIgPSBzaGlwcGluZ01ldGhvZC5pZGVudGlmaWVyOwogICAgIHJlc3VsdC5sYWJlbCA9IHNo
aXBwaW5nTWV0aG9kLmxhYmVsOwotCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZDU0MzAyMjc1M2FkZjMxOTM2MjQw
Y2YyYTQ4ZjUxYjcyMzlkNWVjNS4uOTI5YmViZDA5ZTdjNGY1Y2UzMTRjNTRiZDY5MTM2MjljMzVl
MjY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC03MTcs
OCArNzE3LDYgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2Vydmlj
ZVdvcmtlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uU3RhdGUnOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAogICAgICAg
ICAnV2ViQ29yZTo6U2VydmljZVdvcmtlclN0YXRlJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2Vy
VHlwZXMuaD4nXSwKLSAgICAgICAgJ1dlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZSc6IFsn
PFdlYkNvcmUvQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaD4nXSwKLSAgICAgICAgJ1dl
YkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlJzogWyc8V2ViQ29yZS9BcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2hvdWxkQXNrSVRQJzogWyc8
V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNo
b3VsZE5vdGlmeVdoZW5SZXNvbHZlZCc6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+
J10sCiAgICAgICAgICdXZWJDb3JlOjpTaG91bGRTYW1wbGUnOiBbJzxXZWJDb3JlL0RpYWdub3N0
aWNMb2dnaW5nQ2xpZW50Lmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
cHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggYzU4OTBl
MGEyZmZjMTkwYmE5Nzk2NmJhZTFiYmU4ODYwOTc1MTU0Zi4uZjVjYTQxNzdhMTgzMjM1OTI3NDRm
ZjJjZjA1OGVmNzE2NWZkMzUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBw
bGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNwcApAQCAtMzMsNiAr
MzMsOSBAQAogI2luY2x1ZGUgIldlYlBheW1lbnRDb29yZGluYXRvck1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
YlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGVQYXlQYXltZW50TWV0aG9k
VXBkYXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMuaD4KIAogI2RlZmlu
ZSBNRVNTQUdFX0NIRUNLKGFzc2VydGlvbikgTUVTU0FHRV9DSEVDS19CQVNFKGFzc2VydGlvbiwg
bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSkKQEAgLTEyOCw3ICsxMzEsNyBAQCB2b2lkIFdlYlBh
eW1lbnRDb29yZGluYXRvclByb3h5Ojpjb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBX
ZWJDb3JlOjpQYXltZQogICAgIG1fbWVyY2hhbnRWYWxpZGF0aW9uU3RhdGUgPSBNZXJjaGFudFZh
bGlkYXRpb25TdGF0ZTo6VmFsaWRhdGlvbkNvbXBsZXRlOwogfQogCi12b2lkIFdlYlBheW1lbnRD
b29yZGluYXRvclByb3h5Ojpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKGNvbnN0IE9w
dGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPiYgdXBkYXRlKQordm9pZCBXZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihP
cHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkK
IHsKICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHBheW1lbnQgaGFzIGJlZW4gY2FuY2Vs
ZWQgYWxyZWFkeS4KICAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SWRsZSkKQEAgLTEzNiwxMSAr
MTM5LDExIEBAIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OmNvbXBsZXRlU2hpcHBp
bmdNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8CiAKICAgICBNRVNTQUdFX0NIRUNLKG1f
c3RhdGUgPT0gU3RhdGU6OlNoaXBwaW5nTWV0aG9kU2VsZWN0ZWQpOwogCi0gICAgcGxhdGZvcm1D
b21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKHVwZGF0ZSk7CisgICAgcGxhdGZvcm1Db21w
bGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKFdURk1vdmUodXBkYXRlKSk7CiAgICAgbV9zdGF0
ZSA9IFN0YXRlOjpBY3RpdmU7CiB9CiAKLXZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6
OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6
OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mIHVwZGF0ZSkKK3ZvaWQgV2ViUGF5bWVudENvb3JkaW5h
dG9yUHJveHk6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNv
cmU6OkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmIHVwZGF0ZSkKIHsKICAgICAvLyBJ
dCdzIHBvc3NpYmxlIHRoYXQgdGhlIHBheW1lbnQgaGFzIGJlZW4gY2FuY2VsZWQgYWxyZWFkeS4K
ICAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SWRsZSkKQEAgLTE0OCwxMSArMTUxLDExIEBAIHZv
aWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2Vs
ZWN0aW9uKGNvbnN0IE9wdGlvbmFsCiAKICAgICBNRVNTQUdFX0NIRUNLKG1fc3RhdGUgPT0gU3Rh
dGU6OlNoaXBwaW5nQ29udGFjdFNlbGVjdGVkKTsKIAotICAgIHBsYXRmb3JtQ29tcGxldGVTaGlw
cGluZ0NvbnRhY3RTZWxlY3Rpb24odXBkYXRlKTsKKyAgICBwbGF0Zm9ybUNvbXBsZXRlU2hpcHBp
bmdDb250YWN0U2VsZWN0aW9uKFdURk1vdmUodXBkYXRlKSk7CiAgICAgbV9zdGF0ZSA9IFN0YXRl
OjpBY3RpdmU7CiB9CiAKLXZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OmNvbXBsZXRl
UGF5bWVudE1ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0
aG9kVXBkYXRlPiYgdXBkYXRlKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y29t
cGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5UGF5
bWVudE1ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCiB7CiAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0
IHRoZSBwYXltZW50IGhhcyBiZWVuIGNhbmNlbGVkIGFscmVhZHkuCiAgICAgaWYgKG1fc3RhdGUg
PT0gU3RhdGU6OklkbGUpCkBAIC0xNjAsNyArMTYzLDcgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eTo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFs
PFcKIAogICAgIE1FU1NBR0VfQ0hFQ0sobV9zdGF0ZSA9PSBTdGF0ZTo6UGF5bWVudE1ldGhvZFNl
bGVjdGVkKTsKIAotICAgIHBsYXRmb3JtQ29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKHVw
ZGF0ZSk7CisgICAgcGxhdGZvcm1Db21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oV1RGTW92
ZSh1cGRhdGUpKTsKICAgICBtX3N0YXRlID0gU3RhdGU6OkFjdGl2ZTsKIH0KIApAQCAtMjE4LDcg
KzIyMSw3IEBAIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnByZXNlbnRlckRpZEZp
bmlzaChQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlCiAgICAgZGlkUmVhY2hGaW5hbFN0YXRl
KFdURk1vdmUoZXJyb3IpKTsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6
cHJlc2VudGVyRGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoUGF5bWVudEF1dGhvcml6YXRpb25QcmVz
ZW50ZXImLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hp
cHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQ
cm94eTo6cHJlc2VudGVyRGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoUGF5bWVudEF1dGhvcml6YXRp
b25QcmVzZW50ZXImLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kJiBzaGlw
cGluZ01ldGhvZCkKIHsKICAgICBBU1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6QWN0aXZlKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRD
b29yZGluYXRvclByb3h5LmgKaW5kZXggNjUxYzcxMDE5NjdmMjUyNDE5ODdiNzcwZTA2NzI3OTQw
OTdiYTIxZi4uZTBjZDJjNmM2MzM1ZGQ0ZjQ0ZjhlNTY1ZDQxMmVhMTU1OTMyOGY4MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29v
cmRpbmF0b3JQcm94eS5oCkBAIC01MSw3ICs1MSwxMCBAQCBjbGFzcyBQYXltZW50OwogY2xhc3Mg
UGF5bWVudENvbnRhY3Q7CiBjbGFzcyBQYXltZW50TWVyY2hhbnRTZXNzaW9uOwogY2xhc3MgUGF5
bWVudE1ldGhvZDsKLWNsYXNzIFBheW1lbnRNZXRob2RVcGRhdGU7CitzdHJ1Y3QgQXBwbGVQYXlQ
YXltZW50TWV0aG9kVXBkYXRlOworc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRl
Oworc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGlu
Z01ldGhvZFVwZGF0ZTsKIH0KIAogT0JKQ19DTEFTUyBOU09iamVjdDsKQEAgLTExNCw3ICsxMTcs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJlc2VudGVyRGlkRmluaXNoKFBheW1lbnRBdXRob3Jp
emF0aW9uUHJlc2VudGVyJiwgV2ViQ29yZTo6UGF5bWVudFNlc3Npb25FcnJvciYmKSBmaW5hbDsK
ICAgICB2b2lkIHByZXNlbnRlckRpZFNlbGVjdFBheW1lbnRNZXRob2QoUGF5bWVudEF1dGhvcml6
YXRpb25QcmVzZW50ZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9kJikgZmluYWw7CiAg
ICAgdm9pZCBwcmVzZW50ZXJEaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3QoUGF5bWVudEF1dGhvcml6
YXRpb25QcmVzZW50ZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50Q29udGFjdCYpIGZpbmFsOwot
ICAgIHZvaWQgcHJlc2VudGVyRGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoUGF5bWVudEF1dGhvcml6
YXRpb25QcmVzZW50ZXImLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVx
dWVzdDo6U2hpcHBpbmdNZXRob2QmKSBmaW5hbDsKKyAgICB2b2lkIHByZXNlbnRlckRpZFNlbGVj
dFNoaXBwaW5nTWV0aG9kKFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyJiwgY29uc3QgV2Vi
Q29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZCYpIGZpbmFsOwogICAgIHZvaWQgcHJlc2VudGVy
V2lsbFZhbGlkYXRlTWVyY2hhbnQoUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXImLCBjb25z
dCBVUkwmKSBmaW5hbDsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKQEAgLTEyMyw5ICsxMjYs
OSBAQCBwcml2YXRlOgogICAgIHZvaWQgb3BlblBheW1lbnRTZXR1cChjb25zdCBTdHJpbmcmIG1l
cmNoYW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHNob3dQYXltZW50VUkoV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgZGVzdGluYXRpb25JRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5hdGluZ1VSTFN0
cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxpbmtJY29uVVJMU3RyaW5ncywgY29uc3QgV2Vi
Q29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIGNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0
IFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24mKTsKLSAgICB2b2lkIGNvbXBsZXRlU2hp
cHBpbmdNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRo
b2RVcGRhdGU+Jik7Ci0gICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihj
b25zdCBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+Jik7Ci0gICAgdm9p
ZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6
UGF5bWVudE1ldGhvZFVwZGF0ZT4mKTsKKyAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RT
ZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4m
Jik7CisgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxX
ZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJik7CisgICAgdm9pZCBjb21w
bGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlQYXlt
ZW50TWV0aG9kVXBkYXRlPiYmKTsKICAgICB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24oY29u
c3QgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+Jik7CiAgICAg
dm9pZCBhYm9ydFBheW1lbnRTZXNzaW9uKCk7CiAgICAgdm9pZCBjYW5jZWxQYXltZW50U2Vzc2lv
bigpOwpAQCAtMTQ4LDkgKzE1MSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybU9wZW5Q
YXltZW50U2V0dXAoY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgZG9tYWluTmFtZSwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKTsKICAgICB2b2lkIHBsYXRmb3JtU2hvd1BheW1lbnRVSShjb25zdCBVUkwmIG9yaWdpbmF0
aW5nVVJMLCBjb25zdCBWZWN0b3I8VVJMPiYgbGlua0ljb25VUkxzLCBjb25zdCBXZWJDb3JlOjpB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Db21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25z
dCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJik7Ci0gICAgdm9pZCBwbGF0Zm9ybUNv
bXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hp
cHBpbmdNZXRob2RVcGRhdGU+Jik7Ci0gICAgdm9pZCBwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdD
b250YWN0U2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVw
ZGF0ZT4mKTsKLSAgICB2b2lkIHBsYXRmb3JtQ29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9u
KGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+Jik7CisgICAgdm9p
ZCBwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29y
ZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJik7CisgICAgdm9pZCBwbGF0Zm9ybUNv
bXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5
U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKTsKKyAgICB2b2lkIHBsYXRmb3JtQ29tcGxldGVQYXlt
ZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhv
ZFVwZGF0ZT4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUNvbXBsZXRlUGF5bWVudFNlc3Npb24oY29u
c3QgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+Jik7CiAgICAg
dm9pZCBwbGF0Zm9ybUhpZGVQYXltZW50VUkoKTsKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRv
clByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYzE0OWU0ZDJlYzI5NTMwM2Zh
ODZiYjEyYmM0OGY2ZjJjZTAwNWY1NS4uNGM1NGNmYjJmNGJhNmM1M2VlNWM5ZDYwNzkzM2M0Nzcy
ZjAyODg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTMy
LDkgKzMyLDkgQEAgbWVzc2FnZXMgLT4gV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkgTm90UmVm
Q291bnRlZCB7CiAKICAgICBTaG93UGF5bWVudFVJKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIGRl
c3RpbmF0aW9uSUQsIFN0cmluZyBvcmlnaW5hdGluZ1VSTFN0cmluZywgVmVjdG9yPFN0cmluZz4g
bGlua0ljb25VUkxTdHJpbmdzLCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dCBwYXltZW50UmVxdWVzdCkgLT4gKGJvb2wgcmVzdWx0KSBTeW5jaHJvbm91cwogICAgIENvbXBs
ZXRlTWVyY2hhbnRWYWxpZGF0aW9uKFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24gcGF5
bWVudE1lcmNoYW50U2Vzc2lvbikKLSAgICBDb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9u
KE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPiB1cGRhdGUpCi0gICAgQ29t
cGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdD
b250YWN0VXBkYXRlPiB1cGRhdGUpCi0gICAgQ29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9u
KE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+IHVwZGF0ZSkKKyAgICBDb21w
bGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hp
cHBpbmdNZXRob2RVcGRhdGU+IHVwZGF0ZSkKKyAgICBDb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNl
bGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4g
dXBkYXRlKQorICAgIENvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJD
b3JlOjpBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+IHVwZGF0ZSkKICAgICBDb21wbGV0ZVBh
eW1lbnRTZXNzaW9uKE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0
PiByZXN1bHQpCiAgICAgQWJvcnRQYXltZW50U2Vzc2lvbigpCiAgICAgQ2FuY2VsUGF5bWVudFNl
c3Npb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvY29jb2Ev
V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QXBwbGVQYXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5oCmluZGV4IDky
Nzk5MDkyN2FmMmU0MWJiYmU3NjBlNjQ3OWM3NmE1YzFlNjExMzIuLjIzNjY2YjczNjQzNDJlMjZh
MjUzOGI0ZDJhMWEzOTQzZmY0YzVhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQ
cm94eUNvY29hLmgKQEAgLTI3LDE2ICsyNywxOCBAQAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkK
IAotI2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oPgotCiBP
QkpDX0NMQVNTIFBLU2hpcHBpbmdNZXRob2Q7CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVj
dCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogLy8g
RklYTUU6IFJhdGhlciB0aGFuIGhhdmluZyB0aGVzZSBmcmVlIGZ1bmN0aW9ucyBzY2F0dGVyZWQg
YWJvdXQsIEFwcGxlIFBheSBkYXRhIHR5cGVzIHNob3VsZCBrbm93CiAvLyBob3cgdG8gY29udmVy
dCB0aGVtc2VsdmVzIHRvIGFuZCBmcm9tIHRoZWlyIHBsYXRmb3JtIHJlcHJlc2VudGF0aW9ucy4K
IE5TRGVjaW1hbE51bWJlciAqdG9EZWNpbWFsTnVtYmVyKGNvbnN0IFN0cmluZyYgYW1vdW50KTsK
LVBLU2hpcHBpbmdNZXRob2QgKnRvUEtTaGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3JlOjpBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKTsKK1BLU2hpcHBpbmdN
ZXRob2QgKnRvUEtTaGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5n
TWV0aG9kJik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNv
Y29hLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvY29jb2EvV2ViUGF5bWVudENv
b3JkaW5hdG9yUHJveHlDb2NvYS5tbQppbmRleCA0NDAyYTQ5MDkxOTY5YWNkOGE1Mjg5YzhhNzNk
NTkxOTNlOWNhNjM2Li44ZmNiNWFmMWJlM2YyZjliNjc2YjZmMGQzNGY5ZDgxM2YxNDg1MTkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50
Q29vcmRpbmF0b3JQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxl
UGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EubW0KQEAgLTM2LDYgKzM2
LDEwIEBACiAjaW1wb3J0ICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oIgogI2ltcG9ydCAi
V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vz
c1Byb3h5LmgiCisjaW1wb3J0IDxXZWJDb3JlL0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5o
PgorI2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oPgorI2lt
cG9ydCA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGF5bWVu
dEF1dGhvcml6YXRpb25TdGF0dXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGF5bWVudEhlYWRlcnMu
aD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgpAQCAtNDUsNiArNDksMTAgQEAKIAogI2ltcG9y
dCA8cGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5oPgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHlDb2NvYUFkZGl0aW9ucy5tbT4KKyNlbmRpZgorCiAvLyBGSVhNRTogV2UgZG9uJ3Qgc3VwcG9y
dCBhbnkgcGxhdGZvcm1zIHdpdGhvdXQgLXNldFRodW1ibmFpbFVSTHM6LCBzbyB0aGlzIGNhbiBi
ZSByZW1vdmVkLgogQGludGVyZmFjZSBQS1BheW1lbnRSZXF1ZXN0ICgpCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgc3Ryb25nKSBOU1VSTCAqdGh1bWJuYWlsVVJMOwpAQCAtNTIsMTkgKzYwLDYgQEAg
QGVuZAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RhdGljIHZvaWQgZmluaXNoQ3JlYXRpbmco
UEtQYXltZW50UmVxdWVzdCAqcGxhdGZvcm1SZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdCYgcmVxdWVzdCkKLXsKLSNpZiBIQVZFKFBBU1NLSVRfSU5T
VEFMTE1FTlRTKQotICAgIGlmIChQS1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24gKmNv
bmZpZ3VyYXRpb24gPSByZXF1ZXN0Lmluc3RhbGxtZW50Q29uZmlndXJhdGlvbigpLnBsYXRmb3Jt
Q29uZmlndXJhdGlvbigpKSB7Ci0gICAgICAgIHBsYXRmb3JtUmVxdWVzdC5pbnN0YWxsbWVudENv
bmZpZ3VyYXRpb24gPSBjb25maWd1cmF0aW9uOwotICAgICAgICBwbGF0Zm9ybVJlcXVlc3QucmVx
dWVzdFR5cGUgPSBQS1BheW1lbnRSZXF1ZXN0VHlwZUluc3RhbGxtZW50OwotICAgIH0KLSNlbHNl
Ci0gICAgVU5VU0VEX1BBUkFNKHBsYXRmb3JtUmVxdWVzdCk7Ci0gICAgVU5VU0VEX1BBUkFNKHJl
cXVlc3QpOwotI2VuZGlmCi19Ci0KIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpXZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eShXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Q2xpZW50JiBj
bGllbnQpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX2Nhbk1ha2VQYXltZW50c1F1
ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkNhbk1ha2VQYXltZW50cyIp
KQpAQCAtMTY5LDE1ICsxNjQsMTQgQEAgc3RhdGljIFBLU2hpcHBpbmdUeXBlIHRvUEtTaGlwcGlu
Z1R5cGUoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlMKICAgICB9CiB9
CiAKLVBLU2hpcHBpbmdNZXRob2QgKnRvUEtTaGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3JlOjpB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0
aG9kKQorUEtTaGlwcGluZ01ldGhvZCAqdG9QS1NoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6
OkFwcGxlUGF5U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQogewogICAgIFBLU2hpcHBp
bmdNZXRob2QgKnJlc3VsdCA9IFtQQUw6OmdldFBLU2hpcHBpbmdNZXRob2RDbGFzcygpIHN1bW1h
cnlJdGVtV2l0aExhYmVsOnNoaXBwaW5nTWV0aG9kLmxhYmVsIGFtb3VudDp0b0RlY2ltYWxOdW1i
ZXIoc2hpcHBpbmdNZXRob2QuYW1vdW50KV07CiAgICAgW3Jlc3VsdCBzZXRJZGVudGlmaWVyOnNo
aXBwaW5nTWV0aG9kLmlkZW50aWZpZXJdOwogICAgIFtyZXN1bHQgc2V0RGV0YWlsOnNoaXBwaW5n
TWV0aG9kLmRldGFpbF07Ci0KICAgICByZXR1cm4gcmVzdWx0OwogfQotICAgIAorCiBzdGF0aWMg
UmV0YWluUHRyPE5TU2V0PiB0b05TU2V0KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdHJpbmdzKQog
ewogICAgIGlmIChzdHJpbmdzLmlzRW1wdHkoKSkKQEAgLTI2MCw3ICsyNTQsMTYgQEAgUmV0YWlu
UHRyPFBLUGF5bWVudFJlcXVlc3Q+IFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9y
bVBheW1lbnRSZXF1ZXN0KGMKICAgICAgICAgW3Jlc3VsdCBzZXRDVERhdGFDb25uZWN0aW9uU2Vy
dmljZVR5cGU6c2VydmljZVR5cGVdOwogI2VuZGlmCiAKLSAgICBmaW5pc2hDcmVhdGluZyhyZXN1
bHQuZ2V0KCksIHBheW1lbnRSZXF1ZXN0KTsKKyNpZiBIQVZFKFBBU1NLSVRfSU5TVEFMTE1FTlRT
KQorICAgIGlmIChQS1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRp
b24gPSBwYXltZW50UmVxdWVzdC5pbnN0YWxsbWVudENvbmZpZ3VyYXRpb24oKS5wbGF0Zm9ybUNv
bmZpZ3VyYXRpb24oKSkgeworICAgICAgICBbcmVzdWx0IHNldEluc3RhbGxtZW50Q29uZmlndXJh
dGlvbjpjb25maWd1cmF0aW9uXTsKKyAgICAgICAgW3Jlc3VsdCBzZXRSZXF1ZXN0VHlwZTpQS1Bh
eW1lbnRSZXF1ZXN0VHlwZUluc3RhbGxtZW50XTsKKyAgICB9CisjZW5kaWYKKworI2lmIGRlZmlu
ZWQoV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYUFkZGl0aW9uc19wbGF0Zm9ybVBheW1l
bnRSZXF1ZXN0KQorICAgIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2FBZGRpdGlvbnNf
cGxhdGZvcm1QYXltZW50UmVxdWVzdAorI2VuZGlmCiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpA
QCAtMjc1LDE5ICsyNzgsMTkgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cGxh
dGZvcm1Db21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3IKICAgICBtX2F1dGhv
cml6YXRpb25QcmVzZW50ZXItPmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKHBheW1lbnRNZXJj
aGFudFNlc3Npb24pOwogfQogCi12b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0
Zm9ybUNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29y
ZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+JiB1cGRhdGUpCit2b2lkIFdlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5OjpwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9u
YWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCiB7Ci0g
ICAgbV9hdXRob3JpemF0aW9uUHJlc2VudGVyLT5jb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0
aW9uKHVwZGF0ZSk7CisgICAgbV9hdXRob3JpemF0aW9uUHJlc2VudGVyLT5jb21wbGV0ZVNoaXBw
aW5nTWV0aG9kU2VsZWN0aW9uKFdURk1vdmUodXBkYXRlKSk7CiB9CiAKLXZvaWQgV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rp
b24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYgdXBkYXRl
KQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1Db21wbGV0ZVNoaXBw
aW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nQ29u
dGFjdFVwZGF0ZT4mJiB1cGRhdGUpCiB7Ci0gICAgbV9hdXRob3JpemF0aW9uUHJlc2VudGVyLT5j
b21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbih1cGRhdGUpOworICAgIG1fYXV0aG9yaXph
dGlvblByZXNlbnRlci0+Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oV1RGTW92ZSh1
cGRhdGUpKTsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1D
b21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6UGF5
bWVudE1ldGhvZFVwZGF0ZT4mIHVwZGF0ZSkKK3ZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHk6OnBsYXRmb3JtQ29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNv
cmU6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCiB7Ci0gICAgbV9hdXRo
b3JpemF0aW9uUHJlc2VudGVyLT5jb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24odXBkYXRl
KTsKKyAgICBtX2F1dGhvcml6YXRpb25QcmVzZW50ZXItPmNvbXBsZXRlUGF5bWVudE1ldGhvZFNl
bGVjdGlvbihXVEZNb3ZlKHVwZGF0ZSkpOwogfQogCiB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRv
clByb3h5OjpnZXRTZXR1cEZlYXR1cmVzKGNvbnN0IFBheW1lbnRTZXR1cENvbmZpZ3VyYXRpb24m
IGNvbmZpZ3VyYXRpb24sIE1lc3NhZ2VzOjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6R2V0
U2V0dXBGZWF0dXJlczo6QXN5bmNSZXBseSYmIHJlcGx5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQppbmRleCBk
MzVjZjZlYWJlYmQxMDk4YWM4YzFmMDJiZjA1MDY5NzFhODQzMzJhLi43NmFmYjcyZmYyZmQ0Zjk3
YjVjZjAxMzJlZWE5YjMzN2ZhNDRhYjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQpAQCAtNDYsNiArNDYs
MTAgQEAKICNpbXBvcnQgPHBhbC9jb2NvYS9QYXNzS2l0U29mdExpbmsuaD4KICNlbmRpZgogCisj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzQ29jb2FBZGRpdGlvbnMubW0+CisjZW5kaWYKKwogbmFtZXNwYWNl
IElQQyB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTEyLDcgKzExNiw3IEBAIE9w
dGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OlBheW1lbnRBdXRoCiAgICAgaWYgKCFzdGF0dXMpCiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiAKLSAgICBPcHRpb25hbDxWZWN0b3I8UGF5bWVudEVycm9yPj4gZXJyb3Jz
OworICAgIE9wdGlvbmFsPFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+PiBlcnJvcnM7CiAg
ICAgZGVjb2RlciA+PiBlcnJvcnM7CiAgICAgaWYgKCFlcnJvcnMpCiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CkBAIC0xMzQsMzMgKzEzOCw2IEBAIE9wdGlvbmFsPFdlYkNvcmU6OlBheW1l
bnRDb250YWN0PiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRDb250YWN0Pjo6ZGVjb2Rl
CiAgICAgcmV0dXJuIFdlYkNvcmU6OlBheW1lbnRDb250YWN0IHsgV1RGTW92ZSgqY29udGFjdCkg
fTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRFcnJvcj46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpQYXltZW50RXJyb3ImIGVycm9yKQot
ewotICAgIGVuY29kZXIgPDwgZXJyb3IuY29kZTsKLSAgICBlbmNvZGVyIDw8IGVycm9yLm1lc3Nh
Z2U7Ci0gICAgZW5jb2RlciA8PCBlcnJvci5jb250YWN0RmllbGQ7Ci19Ci0KLU9wdGlvbmFsPFdl
YkNvcmU6OlBheW1lbnRFcnJvcj4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50RXJyb3I+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBPcHRpb25hbDxXZWJDb3JlOjpQYXlt
ZW50RXJyb3I6OkNvZGU+IGNvZGU7Ci0gICAgZGVjb2RlciA+PiBjb2RlOwotICAgIGlmICghY29k
ZSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAgICBPcHRpb25hbDxTdHJp
bmc+IG1lc3NhZ2U7Ci0gICAgZGVjb2RlciA+PiBtZXNzYWdlOwotICAgIGlmICghbWVzc2FnZSkK
LSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAgICBPcHRpb25hbDxPcHRpb25h
bDxXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZD4+IGNvbnRhY3RGaWVsZDsKLSAg
ICBkZWNvZGVyID4+IGNvbnRhY3RGaWVsZDsKLSAgICBpZiAoIWNvbnRhY3RGaWVsZCkKLSAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIHJldHVybiB7eyBXVEZNb3ZlKCpjb2RlKSwg
V1RGTW92ZSgqbWVzc2FnZSksIFdURk1vdmUoKmNvbnRhY3RGaWVsZCkgfX07Ci19Ci0KIHZvaWQg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uPjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24mIHBh
eW1lbnRNZXJjaGFudFNlc3Npb24pCiB7CiAgICAgZW5jb2RlciA8PCBwYXltZW50TWVyY2hhbnRT
ZXNzaW9uLnBrUGF5bWVudE1lcmNoYW50U2Vzc2lvbigpOwpAQCAtMTg5LDIwICsxNjYsNiBAQCBP
cHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9kPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBh
eW1lbnRNZXRob2Q+OjpkZWNvZGUoRAogICAgIHJldHVybiBQYXltZW50TWV0aG9kIHsgV1RGTW92
ZSgqcGF5bWVudE1ldGhvZCkgfTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBh
eW1lbnRNZXRob2RVcGRhdGU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29y
ZTo6UGF5bWVudE1ldGhvZFVwZGF0ZSYgdXBkYXRlKQotewotICAgIGVuY29kZXIgPDwgdXBkYXRl
LnBsYXRmb3JtVXBkYXRlKCk7Ci19Ci0KLU9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RV
cGRhdGU+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT46OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIGF1dG8gdXBkYXRlID0gSVBDOjpkZWNvZGU8UEtQ
YXltZW50UmVxdWVzdFBheW1lbnRNZXRob2RVcGRhdGU+KGRlY29kZXIsIFBBTDo6Z2V0UEtQYXlt
ZW50UmVxdWVzdFBheW1lbnRNZXRob2RVcGRhdGVDbGFzcygpKTsKLSAgICBpZiAoIXVwZGF0ZSkK
LSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIHJldHVybiBQYXltZW50TWV0aG9k
VXBkYXRlIHsgV1RGTW92ZSgqdXBkYXRlKSB9OwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8QXBw
bGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
c3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgZW5jb2Rl
ciA8PCByZXF1ZXN0LmNvdW50cnlDb2RlKCk7CkBAIC0yMjMsNiArMTg2LDkgQEAgdm9pZCBBcmd1
bWVudENvZGVyPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Pjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIsIGNvbnMKICNpZiBFTkFCTEUoQVBQTEVfUEFZX0lOU1RBTExNRU5UUykKICAgICBl
bmNvZGVyIDw8IHJlcXVlc3QuaW5zdGFsbG1lbnRDb25maWd1cmF0aW9uKCk7CiAjZW5kaWYKKyNp
ZiBkZWZpbmVkKFdlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hQWRkaXRpb25zX0FwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0X2VuY29kZSkKKyAgICBXZWJDb3JlQXJndW1lbnRDb2RlcnNDb2Nv
YUFkZGl0aW9uc19BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdF9lbmNvZGUKKyNlbmRpZgog
fQogCiBib29sIEFyZ3VtZW50Q29kZXI8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmIHJl
cXVlc3QpCkBAIC0yNzQsNyArMjQwLDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPEFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEFwcGwKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIHJlcXVlc3Quc2V0U2hpcHBpbmdUeXBlKHNoaXBwaW5nVHlw
ZSk7CiAKLSAgICBWZWN0b3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5n
TWV0aG9kPiBzaGlwcGluZ01ldGhvZHM7CisgICAgVmVjdG9yPEFwcGxlUGF5U2hpcHBpbmdNZXRo
b2Q+IHNoaXBwaW5nTWV0aG9kczsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNoaXBwaW5nTWV0
aG9kcykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXF1ZXN0LnNldFNoaXBwaW5nTWV0
aG9kcyhzaGlwcGluZ01ldGhvZHMpOwpAQCAtMzE0LDYgKzI4MCwxMCBAQCBib29sIEFyZ3VtZW50
Q29kZXI8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgQXBwbAogICAgIHJlcXVlc3Quc2V0SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uKFdURk1v
dmUoKmluc3RhbGxtZW50Q29uZmlndXJhdGlvbikpOwogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKFdl
YkNvcmVBcmd1bWVudENvZGVyc0NvY29hQWRkaXRpb25zX0FwcGxlUGF5U2Vzc2lvblBheW1lbnRS
ZXF1ZXN0X2RlY29kZSkKKyAgICBXZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYUFkZGl0aW9uc19B
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdF9kZWNvZGUKKyNlbmRpZgorCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKQEAgLTM2NCw4OCArMzM0LDM4IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6TWVyY2hhbnRDYXBhYmlsaXRpZXM+OjpkZWNvZGUo
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxBcHBsZVBheVNlc3Np
b25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBz
aGlwcGluZ01ldGhvZCkKK3ZvaWQgQXJndW1lbnRDb2RlcjxWZWN0b3I8UmVmUHRyPEFwcGxlUGF5
RXJyb3I+Pj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBWZWN0b3I8UmVmUHRyPEFw
cGxlUGF5RXJyb3I+PiYgZXJyb3JzKQogewotICAgIGVuY29kZXIgPDwgc2hpcHBpbmdNZXRob2Qu
bGFiZWw7Ci0gICAgZW5jb2RlciA8PCBzaGlwcGluZ01ldGhvZC5kZXRhaWw7Ci0gICAgZW5jb2Rl
ciA8PCBzaGlwcGluZ01ldGhvZC5hbW91bnQ7Ci0gICAgZW5jb2RlciA8PCBzaGlwcGluZ01ldGhv
ZC5pZGVudGlmaWVyOworICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGVycm9y
cy5zaXplKCkpOworICAgIGZvciAoYXV0byYgZXJyb3IgOiBlcnJvcnMpIHsKKyAgICAgICAgZW5j
b2RlciA8PCAhIWVycm9yOworICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICBlbmNvZGVy
IDw8ICplcnJvcjsKKyAgICB9CiB9CiAKLU9wdGlvbmFsPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRS
ZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4gQXJndW1lbnRDb2RlcjxBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK09w
dGlvbmFsPFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+PiBBcmd1bWVudENvZGVyPFZlY3Rv
cjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7Ci0g
ICAgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kIHNoaXBwaW5n
TWV0aG9kOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2hpcHBpbmdNZXRob2QubGFiZWwpKQor
ICAgIHVpbnQ2NF90IHNpemU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXplKSkKICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNoaXBwaW5n
TWV0aG9kLmRldGFpbCkpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShzaGlwcGluZ01ldGhvZC5hbW91bnQpKQotICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2hpcHBpbmdNZXRob2QuaWRlbnRp
ZmllcikpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIFdURk1vdmUo
c2hpcHBpbmdNZXRob2QpOwotfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8QXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zPjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVt
cyYgdG90YWxBbmRMaW5lSXRlbXMpCi17Ci0gICAgZW5jb2RlciA8PCB0b3RhbEFuZExpbmVJdGVt
cy50b3RhbDsKLSAgICBlbmNvZGVyIDw8IHRvdGFsQW5kTGluZUl0ZW1zLmxpbmVJdGVtczsKLX0K
KyAgICBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiBlcnJvcnMoc2l6ZSk7CisgICAgZm9y
ICh1aW50NjRfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICBPcHRpb25hbDxib29s
PiBpc1ZhbGlkOworICAgICAgICBkZWNvZGVyID4+IGlzVmFsaWQ7CisgICAgICAgIGlmICghaXNW
YWxpZCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLU9wdGlvbmFsPEFwcGxl
UGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz4gQXJndW1lbnRDb2Rl
cjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXM+OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBPcHRpb25hbDxBcHBsZVBheUxpbmVJdGVtPiB0
b3RhbDsKLSAgICBkZWNvZGVyID4+IHRvdGFsOwotICAgIGlmICghdG90YWwpCi0gICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCi0gICAgT3B0aW9uYWw8VmVjdG9yPEFwcGxlUGF5TGlu
ZUl0ZW0+PiBsaW5lSXRlbXM7Ci0gICAgZGVjb2RlciA+PiBsaW5lSXRlbXM7Ci0gICAgaWYgKCFs
aW5lSXRlbXMpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCi0gICAgcmV0dXJu
IHt7IFdURk1vdmUoKnRvdGFsKSwgV1RGTW92ZSgqbGluZUl0ZW1zKSB9fTsKLX0KLQotdm9pZCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT46OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGUmIHVwZGF0
ZSkKLXsKLSAgICBlbmNvZGVyIDw8IHVwZGF0ZS5lcnJvcnM7Ci0gICAgZW5jb2RlciA8PCB1cGRh
dGUubmV3U2hpcHBpbmdNZXRob2RzOwotICAgIGVuY29kZXIgPDwgdXBkYXRlLm5ld1RvdGFsQW5k
TGluZUl0ZW1zOwotfQotCi1PcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCi17Ci0gICAgT3B0aW9uYWw8VmVjdG9yPFBheW1lbnRFcnJvcj4+IGVy
cm9yczsKLSAgICBkZWNvZGVyID4+IGVycm9yczsKLSAgICBpZiAoIWVycm9ycykKLSAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAgICBPcHRpb25hbDxWZWN0b3I8QXBwbGVQYXlT
ZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPj4gbmV3U2hpcHBpbmdNZXRob2Rz
OwotICAgIGRlY29kZXIgPj4gbmV3U2hpcHBpbmdNZXRob2RzOwotICAgIGlmICghbmV3U2hpcHBp
bmdNZXRob2RzKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAgIE9wdGlv
bmFsPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz4gbmV3
VG90YWxBbmRMaW5lSXRlbXM7Ci0gICAgZGVjb2RlciA+PiBuZXdUb3RhbEFuZExpbmVJdGVtczsK
LSAgICBpZiAoIW5ld1RvdGFsQW5kTGluZUl0ZW1zKQotICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwotICAgIAotICAgIHJldHVybiB7eyBXVEZNb3ZlKCplcnJvcnMpLCBXVEZNb3ZlKCpuZXdT
aGlwcGluZ01ldGhvZHMpLCBXVEZNb3ZlKCpuZXdUb3RhbEFuZExpbmVJdGVtcykgfX07Ci19Ci0K
LXZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZSYg
dXBkYXRlKQotewotICAgIGVuY29kZXIgPDwgdXBkYXRlLm5ld1RvdGFsQW5kTGluZUl0ZW1zOwot
fQotCi1PcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4gQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQotewotICAgIE9wdGlvbmFsPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFu
ZExpbmVJdGVtcz4gbmV3VG90YWxBbmRMaW5lSXRlbXM7Ci0gICAgZGVjb2RlciA+PiBuZXdUb3Rh
bEFuZExpbmVJdGVtczsKLSAgICBpZiAoIW5ld1RvdGFsQW5kTGluZUl0ZW1zKQotICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIHJldHVybiB7eyBXVEZNb3ZlKCpuZXdUb3RhbEFuZExp
bmVJdGVtcykgfX07CisgICAgICAgIFJlZlB0cjxBcHBsZVBheUVycm9yPiBlcnJvcjsKKyAgICAg
ICAgaWYgKCppc1ZhbGlkKSB7CisgICAgICAgICAgICBlcnJvciA9IEFwcGxlUGF5RXJyb3I6OmRl
Y29kZShkZWNvZGVyKTsKKyAgICAgICAgICAgIGlmICghZXJyb3IpCisgICAgICAgICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgfQorICAgICAgICBlcnJvcnMuYXBwZW5kKFdU
Rk1vdmUoZXJyb3IpKTsKKyAgICB9CisgICAgcmV0dXJuIGVycm9yczsKIH0KIAogdm9pZCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRTZXNzaW9uRXJyb3I+OjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6UGF5bWVudFNlc3Npb25FcnJvciYgZXJyb3IpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDI2MDk4ZWZk
ZGI0YWZmMmViZWY3YjJmY2E2MWQ1Y2ZhMDA3NTc0ZmQuLjM2YTFkZjM3OWU0ZDNkNDZhNWIzYmUx
YzM0MzM1MGQzNGM2OGFlNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCkBAIC02NzcsMTEgKzY3Nyw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudENvbnRhY3Q+IHsKICAgICBzdGF0aWMgT3B0aW9uYWw8
V2ViQ29yZTo6UGF5bWVudENvbnRhY3Q+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCi10ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRFcnJvcj4gewotICAgIHN0
YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGF5bWVudEVycm9yJik7
Ci0gICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRFcnJvcj4gZGVjb2RlKERlY29k
ZXImKTsKLX07Ci0KIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5
bWVudE1lcmNoYW50U2Vzc2lvbj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vzc2lvbiYpOwogICAgIHN0YXRpYyBPcHRp
b25hbDxXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uPiBkZWNvZGUoRGVjb2RlciYpOwpA
QCAtNjkyLDExICs2ODcsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OlBheW1lbnRNZXRob2Q+IHsKICAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVu
dE1ldGhvZD4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT4gewotICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZSYpOwot
ICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29k
ZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Qm
KTsKICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBX
ZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYpOwpAQCAtNzExLDI0ICs3MDEs
OSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0OjpNZXJjaGFudAogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRV
Uk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRS
ZXF1ZXN0OjpNZXJjaGFudENhcGFiaWxpdGllcyYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hp
cHBpbmdNZXRob2Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdl
YkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpOwot
ICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dDo6U2hpcHBpbmdNZXRob2Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
OjpUb3RhbEFuZExpbmVJdGVtcz4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGlu
ZUl0ZW1zJik7Ci0gICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0K
LXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0
VXBkYXRlPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpTaGlwcGluZ0NvbnRhY3RVcGRhdGUmKTsKLSAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6
U2hpcHBpbmdDb250YWN0VXBkYXRlPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4gewot
ICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6U2hpcHBpbmdN
ZXRob2RVcGRhdGUmKTsKLSAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRo
b2RVcGRhdGU+IGRlY29kZShEZWNvZGVyJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6QXBwbGVQYXlFcnJvcj4+PiB7CisgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkFwcGxl
UGF5RXJyb3I+PiYpOworICAgIHN0YXRpYyBPcHRpb25hbDxWZWN0b3I8UmVmUHRyPFdlYkNvcmU6
OkFwcGxlUGF5RXJyb3I+Pj4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudFNlc3Npb25FcnJvcj4gewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGlu
YXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENv
b3JkaW5hdG9yLmNwcAppbmRleCA4NmQwMmUxNmM2N2QyMTlhNjcwODI3YzAzMGQyMDQ2ZjAyNzNl
MDcxLi4wYjFkNTMzODkxOTY4NzUyNjIxNmIxYzIxYTQ2OGNiNWZhMWVlNDM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENv
b3JkaW5hdG9yLmNwcApAQCAtMzYsNiArMzYsOSBAQAogI2luY2x1ZGUgIldlYlBheW1lbnRDb29y
ZGluYXRvck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlN
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Fw
cGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGVQYXlT
aGlwcGluZ0NvbnRhY3RVcGRhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0FwcGxlUGF5U2hpcHBp
bmdNZXRob2RVcGRhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QYXltZW50Q29vcmRpbmF0b3IuaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CkBAIC0x
MDksMTkgKzExMiwxOSBAQCB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVNZXJj
aGFudFZhbGlkYXRpb24oY29uc3QgV2ViQ29yZTo6UGF5bWVudE1lcgogICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpDb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlv
bihwYXltZW50TWVyY2hhbnRTZXNzaW9uKSk7CiB9CiAKLXZvaWQgV2ViUGF5bWVudENvb3JkaW5h
dG9yOjpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlNo
aXBwaW5nTWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKK3ZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9y
Ojpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxl
UGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYgdXBkYXRlKQogewotICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpDb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0
aW9uKHVwZGF0ZSkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBheW1lbnRDb29yZGluYXRvclBy
b3h5OjpDb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKFdURk1vdmUodXBkYXRlKSkpOwog
fQogCi12b2lkIFdlYlBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RT
ZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmIHVwZGF0
ZSkKK3ZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNl
bGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4m
JiB1cGRhdGUpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHk6OkNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKHVwZGF0ZSkpOworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpDb21wbGV0ZVNoaXBwaW5nQ29u
dGFjdFNlbGVjdGlvbihXVEZNb3ZlKHVwZGF0ZSkpKTsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29v
cmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3Jl
OjpQYXltZW50TWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKK3ZvaWQgV2ViUGF5bWVudENvb3JkaW5h
dG9yOjpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBw
bGVQYXlQYXltZW50TWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKIHsKLSAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Q29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0
aW9uKHVwZGF0ZSkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBheW1lbnRDb29yZGluYXRvclBy
b3h5OjpDb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUpKSk7CiB9
CiAKIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVBheW1lbnRTZXNzaW9uKE9w
dGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYmIHJlc3VsdCkKQEAg
LTE4OCw3ICsxOTEsNyBAQCB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvcjo6ZGlkQXV0aG9yaXpl
UGF5bWVudChjb25zdCBXZWJDb3JlOjpQYXltZW50JiBwYXltZW50KQogICAgIHBheW1lbnRDb29y
ZGluYXRvcigpLmRpZEF1dGhvcml6ZVBheW1lbnQocGF5bWVudCk7CiB9CiAKLXZvaWQgV2ViUGF5
bWVudENvb3JkaW5hdG9yOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3JlOjpB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0
aG9kKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3I6OmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9k
KGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQog
ewogICAgIHBheW1lbnRDb29yZGluYXRvcigpLmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKHNoaXBw
aW5nTWV0aG9kKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBs
ZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9B
cHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuaAppbmRleCBjOWRjNjgyYjg3NTQ5YjgyNTBk
YjIyYjJhMWNlMjE1NTUwMDBjZWM4Li5lN2JhNWVhMmU4N2UyNzcyYjNlYzg1MDM5ZTk5MWRiZTc2
MGYzNDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2Vi
UGF5bWVudENvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxl
UGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5oCkBAIC00MCw2ICs0MCw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIFBheW1lbnRDb29yZGluYXRvcjsKIGNsYXNzIFBheW1lbnRDb250YWN0
OwogY2xhc3MgUGF5bWVudFNlc3Npb25FcnJvcjsKK3N0cnVjdCBBcHBsZVBheVNoaXBwaW5nTWV0
aG9kOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTY0LDkgKzY1LDkgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIG9wZW5QYXltZW50U2V0dXAoY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgZG9tYWluTmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzaG93UGF5bWVudFVJKGNvbnN0IFVSTCYgb3JpZ2lu
YXRpbmdVUkwsIGNvbnN0IFZlY3RvcjxVUkw+JiBsaW5rSWNvblVSTHMsIGNvbnN0IFdlYkNvcmU6
OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21w
bGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNz
aW9uJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9u
KE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKSBvdmVycmlkZTsKLSAg
ICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6
OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21wbGV0ZVBh
eW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0
ZT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9u
KE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYpIG92ZXJy
aWRlOworICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8
V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYpIG92ZXJyaWRlOworICAg
IHZvaWQgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFw
cGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21wbGV0
ZVBheW1lbnRTZXNzaW9uKE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVz
dWx0PiYmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgYWJvcnRQYXltZW50U2Vzc2lvbigpIG92ZXJy
aWRlOwpAQCAtOTUsNyArOTYsNyBAQCBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMu
CiAgICAgdm9pZCB2YWxpZGF0ZU1lcmNoYW50KGNvbnN0IFN0cmluZyYgdmFsaWRhdGlvblVSTFN0
cmluZyk7CiAgICAgdm9pZCBkaWRBdXRob3JpemVQYXltZW50KGNvbnN0IFdlYkNvcmU6OlBheW1l
bnQmKTsKLSAgICB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpOworICAgIHZvaWQg
ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01l
dGhvZCYpOwogICAgIHZvaWQgZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KGNvbnN0IFdlYkNvcmU6
OlBheW1lbnRDb250YWN0Jik7CiAgICAgdm9pZCBkaWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0
IFdlYkNvcmU6OlBheW1lbnRNZXRob2QmKTsKICAgICB2b2lkIGRpZENhbmNlbFBheW1lbnRTZXNz
aW9uKFdlYkNvcmU6OlBheW1lbnRTZXNzaW9uRXJyb3ImJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGlu
YXRvci5tZXNzYWdlcy5pbgppbmRleCBmYTQ2MjcyNTY1NzM2ZmVmZjA4NjhjZGE5MzhlNGMxNTQ4
ZmYyNWEyLi4zNmVjNGYxMjNmOGFhMjcxZTc1NTExYjUzZDEyNDIwMmQwMmJkMzgyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5h
dG9yLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBsZVBheS9X
ZWJQYXltZW50Q29vcmRpbmF0b3IubWVzc2FnZXMuaW4KQEAgLTI4LDcgKzI4LDcgQEAgbWVzc2Fn
ZXMgLT4gV2ViUGF5bWVudENvb3JkaW5hdG9yIE5vdFJlZkNvdW50ZWQgewogCiAgICAgVmFsaWRh
dGVNZXJjaGFudChTdHJpbmcgdmFsaWRhdGlvblVSTFN0cmluZykKICAgICBEaWRBdXRob3JpemVQ
YXltZW50KFdlYkNvcmU6OlBheW1lbnQgcGF5bWVudCkKLSAgICBEaWRTZWxlY3RTaGlwcGluZ01l
dGhvZChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRo
b2Qgc2hpcHBpbmdNZXRob2QpCisgICAgRGlkU2VsZWN0U2hpcHBpbmdNZXRob2Qoc3RydWN0IFdl
YkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2Qgc2hpcHBpbmdNZXRob2QpCiAgICAgRGlkU2Vs
ZWN0U2hpcHBpbmdDb250YWN0KFdlYkNvcmU6OlBheW1lbnRDb250YWN0IHNoaXBwaW5nQ29udGFj
dCkKICAgICBEaWRTZWxlY3RQYXltZW50TWV0aG9kKFdlYkNvcmU6OlBheW1lbnRNZXRob2QgcGF5
bWVudE1ldGhvZCkKICAgICBEaWRDYW5jZWxQYXltZW50U2Vzc2lvbihXZWJDb3JlOjpQYXltZW50
U2Vzc2lvbkVycm9yIHNlc3Npb25FcnJvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBheW1lbnRDb29yZGluYXRvckNsaWVudC5oIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGF5bWVudENvb3JkaW5hdG9y
Q2xpZW50LmgKaW5kZXggZjQzMWE0ZGY1MzlmNjVhNGQ3ZDUxNDNmYTUwMzlmOGM5NGU2ODZlZi4u
YjAzOTM2MzIyNjEzNTQ1MzI1MGJjMmEyYzRkMDk0MjlmZjdhZTdjMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGF5bWVudENvb3JkaW5hdG9y
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
UGF5bWVudENvb3JkaW5hdG9yQ2xpZW50LmgKQEAgLTQyLDkgKzQyLDkgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIG9wZW5QYXltZW50U2V0dXAoY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgZG9tYWluTmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzaG93UGF5bWVudFVJKGNvbnN0IFVSTCYsIGNvbnN0IFZl
Y3RvcjxVUkw+JiBsaW5rSWNvblVSTHMsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21wbGV0ZU1lcmNoYW50VmFsaWRh
dGlvbihjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6
OlNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbXBsZXRlU2hp
cHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVw
ZGF0ZT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rp
b24oT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6
OkFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgY29t
cGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlT
aGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcGxldGVQYXlt
ZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhv
ZFVwZGF0ZT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRTZXNzaW9uKE9w
dGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYmKSBvdmVycmlkZTsK
ICAgICB2b2lkIGFib3J0UGF5bWVudFNlc3Npb24oKSBvdmVycmlkZTsKICAgICB2b2lkIGNhbmNl
bFBheW1lbnRTZXNzaW9uKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQubW0gYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0
b3JDbGllbnQubW0KaW5kZXggYmI5OTRiMzQ2OWZlMjNhNWJlNmJmMjIyMGU3MTIzZTRhMTI2ZWQ5
Yi4uNWQ4ZTI4NDcyYjA3ZjMzMjEzZDZmMDhiMzQ1YzQxYTM2ZWZmYzY3NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGF5bWVudENvb3JkaW5h
dG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYlBheW1lbnRDb29yZGluYXRvckNsaWVudC5tbQpAQCAtNzIsMTUgKzcyLDE1IEBAIHZvaWQg
V2ViUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50Ojpjb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihj
b25zdCBXZWJDb3JlOjpQYXltCiB7CiB9CiAKLXZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xp
ZW50Ojpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlNo
aXBwaW5nTWV0aG9kVXBkYXRlPiYmKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQ6
OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQ
YXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJikKIHsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRp
bmF0b3JDbGllbnQ6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdl
YkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJikKK3ZvaWQgV2ViUGF5bWVudENvb3JkaW5h
dG9yQ2xpZW50Ojpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxXZWJD
b3JlOjpBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJikKIHsKIH0KIAotdm9pZCBXZWJQ
YXltZW50Q29vcmRpbmF0b3JDbGllbnQ6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihP
cHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiYmKQordm9pZCBXZWJQYXltZW50
Q29vcmRpbmF0b3JDbGllbnQ6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25h
bDxXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+JiYpCiB7CiB9CiAK
</data>
<flag name="commit-queue"
          id="439583"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420894</attachid>
            <date>2021-02-18 18:13:57 -0800</date>
            <delta_ts>2021-02-18 19:23:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222002-20210218191356.patch</filename>
            <type>text/plain</type>
            <size>194019</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzMDA0ZGFiZTU0MDZiNmU1Y2U4ZGY2ODRlYWE4ZDVlMDBmNjU2MmJiLi4z
NWMzOThlYjc5NmJmY2YyOGFiMGIyMGMxZDEyMzFmN2ZhZTY0NDZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTM3IEBACisyMDIxLTAyLTE4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KKworICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBhZGQgYW4gYG9iamVjdCBkYXRhYCB0byBg
UGF5bWVudERldGFpbHNCYXNlYCBzbyB0aGF0IGRhdGEgc3BlY2lmaWMgdG8gQXBwbGUgUGF5IGNh
biBiZSBwcm92aWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIyMDAyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjMxOTk0Nj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudERldGFpbHNCYXNlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3BheW1l
bnRyZXF1ZXN0L1BheW1lbnREZXRhaWxzQmFzZS5oOgorCisgICAgICAgICogTW9kdWxlcy9hcHBs
ZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6QXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZTo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2U6OmRlY29kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlOjpkZWNvZGVCYXNlKToKKyAg
ICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oOgor
ICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmlk
bDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZTo6ZW5jb2Rl
IGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRNZXRob2RV
cGRhdGU6OmRlY29kZSk6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxl
UGF5U2hpcHBpbmdDb250YWN0VXBkYXRlOjplbmNvZGUgY29uc3QpOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlOjpkZWNvZGUpOiBBZGRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUu
aWRsOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVw
ZGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZTo6
ZW5jb2RlIGNvbnN0KTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5n
TWV0aG9kVXBkYXRlOjpkZWNvZGUpOiBBZGRlZC4KKyAgICAgICAgSW50cm9kdWNlIGEgY29tbW9u
IGJhc2UgY2xhc3MgYEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2VgIGluc3RlYWQgb2YgcmVwZWF0
aW5nIG1lbWJlcnMgb24KKyAgICAgICAgZWFjaCBvZiB0aGUgYEFwcGxlUGF5KlVwZGF0ZWAgZmlu
YWwgY2xhc3Nlcy4KKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxz
VXBkYXRlRGF0YS5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlEZXRhaWxzVXBkYXRlRGF0YS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5
RGV0YWlsc1VwZGF0ZURhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBs
ZVBheURldGFpbHNVcGRhdGVEYXRhOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQ
YXlEZXRhaWxzVXBkYXRlRGF0YTo6ZGVjb2RlRGF0YSk6CisgICAgICAgICogTW9kdWxlcy9wYXlt
ZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjaGVja0Fu
ZENhbm9uaWNhbGl6ZURldGFpbHMpOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6
OnNldHRsZURldGFpbHNQcm9taXNlKToKKyAgICAgICAgSGF2ZSB0aGUgY29tbW9uIGJhc2UgY2xh
c3MgYWJvdmUgZXh0ZW5kIGZyb20gYEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGFgLCB3aGljaCBp
cyB1c2VkIHRvCisgICAgICAgIHB1bGwgdmFsdWVzIG91dCBvZiB0aGUgYG9iamVjdCBkYXRhYCBm
cm9tIGBQYXltZW50RGV0YWlsc0Jhc2VgLiBUaGlzIHdheSwgYm90aCBBcHBsZSBQYXkgSlMKKyAg
ICAgICAgYW5kIFBheW1lbnRSZXF1ZXN0IGNhbiBiZSBnaXZlbiB0aGUgc2FtZSBkYXRhIChhbGJl
aXQgaW4gc2xpZ2h0bHkgZGlmZmVyZW50IHBsYWNlcykgYW5kIGhhdmUKKyAgICAgICAgdGhlIHNh
bWUgY2FwYWJpbGl0aWVzLgorCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVy
cm9yLmg6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheUVycm9yOjplbmNvZGUgY29uc3QpOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5RXJyb3I6OmRlY29kZSk6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvci5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29kZS5oOgorICAgICAgICAq
IE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oOgorICAgICAgICAq
IE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oOgor
ICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Qu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpzaGlw
cGluZ01ldGhvZHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5
bWVudFJlcXVlc3Q6OnNldFNoaXBwaW5nTWV0aG9kcyk6CisgICAgICAgICogTW9kdWxlcy9hcHBs
ZXBheS9BcHBsZVBheVNlc3Npb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxl
UGF5U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFsaWRhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFj
dFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246OmRpZFNlbGVj
dFNoaXBwaW5nTWV0aG9kKToKKyAgICAgICAgKFdlYkNvcmU6OmZpbmlzaENvbnZlcnRpbmcpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydCk6IERlbGV0ZWQuCisgICAgICAgICog
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kLmg6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kOjplbmNvZGUgY29uc3QpOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2Q6OmRlY29kZSk6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZl
bnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RT
ZWxlY3RlZEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRo
b2RTZWxlY3RlZEV2ZW50OjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2Fw
cGxlcGF5L1BheW1lbnRDb29yZGluYXRvci5oOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkv
UGF5bWVudENvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRDb29yZGlu
YXRvcjo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50TWV0
aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRDb29yZGluYXRvcjo6ZGlk
U2VsZWN0U2hpcHBpbmdNZXRob2QpOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVu
dENvb3JkaW5hdG9yQ2xpZW50Lmg6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9QYXltZW50
SGVhZGVycy5oOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxp
ZGF0b3IubW06CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kKToKKyAg
ICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlU2hpcHBpbmdNZXRob2RzKToKKyAgICAgICAgKiBNb2R1
bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uLmg6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBh
eS9QYXltZW50U3VtbWFyeUl0ZW1zLmg6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9jb2Nv
YS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW06CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBh
eS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmg6CisgICAgICAgICogTW9k
dWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
Ojp2YWxpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjptZXJnZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpzaG93KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxl
UGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVTaGlwcGluZ01ldGhvZHMpOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcHV0ZVRvdGFsQW5kTGluZUl0ZW1zIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJv
cik6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21wdXRlRXJy
b3JzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNv
bXB1dGVBZGRyZXNzRXJyb3JzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5
bWVudEhhbmRsZXI6OmNvbXB1dGVQYXllckVycm9ycyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21wdXRlUGF5bWVudE1ldGhvZEVycm9ycyBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpzaGlwcGluZ0Fk
ZHJlc3NVcGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEhhbmRsZXI6
OnNoaXBwaW5nT3B0aW9uVXBkYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1l
bnRIYW5kbGVyOjpwYXltZW50TWV0aG9kVXBkYXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBs
ZVBheVBheW1lbnRIYW5kbGVyOjpyZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBh
eW1lbnRIYW5kbGVyOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZCk6CisgICAgICAgICogbG9hZGVy
L0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgICogdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5h
dG9yLmg6CisgICAgICAgICogdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vY2tQYXltZW50Q29vcmRpbmF0b3I6OnNob3dQYXltZW50VUkpOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja1BheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVTaGlwcGlu
Z01ldGhvZFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1vY2tQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0
U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYXltZW50Q29vcmRpbmF0b3I6OmNv
bXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUGF5
bWVudENvb3JkaW5hdG9yOjpjaGFuZ2VTaGlwcGluZ09wdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVBheW1lbnRTZXNzaW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1vY2tQYXltZW50Q29vcmRpbmF0b3I6OnVwZGF0ZVRvdGFsQW5kTGluZUl0
ZW1zKTogRGVsZXRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL01vY2tQYXltZW50RXJyb3IuaDoKKyAg
ICAgICAgVXNlIGBBcHBsZVBheSpVcGRhdGVgIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgaXRzIHN0
cnVjdHVyZSBpbiBhbm90aGVyIG9iamVjdCAoYEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
OjoqVXBkYXRlYCkuCisgICAgICAgIFVzZSBgQXBwbGVQYXlMaW5lSXRlbWAgaW5zdGVhZCBvZiBk
dXBsaWNhdGluZyBpdHMgc3RydWN0dXJlIGluIGFub3RoZXIgb2JqZWN0IChgQXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zYCkuCisgICAgICAgIFVzZSBgQXBw
bGVQYXlTaGlwcGluZ01ldGhvZGAgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdHMgc3RydWN0dXJl
IGluIGFub3RoZXIgb2JqZWN0IChgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBw
aW5nTWV0aG9kYCkuCisgICAgICAgIFVzZSBgQXBwbGVQYXlFcnJvcipgIGluc3RlYWQgb2YgZHVw
bGljYXRpbmcgaXRzIHN0cnVjdHVyZSBpbiBhbm90aGVyIG9iamVjdCAoYEFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0OjpQYXltZW50RXJyb3I6OipgKS4KKworICAgICAgICAqIE1vZHVsZXMv
YXBwbGVwYXkvUGF5bWVudE1ldGhvZFVwZGF0ZS5oOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVw
YXkvY29jb2EvUGF5bWVudE1ldGhvZFVwZGF0ZUNvY29hLm1tOiBSZW1vdmVkLgorICAgICAgICBE
byB0aGUgY29udmVyc2lvbiBmcm9tIGBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGVgIHRvIGBQ
S1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZWAKKyAgICAgICAgaW4gdGhlIFVJUHJv
Y2Vzcy4KKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50UmVxdWVz
dC5oOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFsaWRhdGUpOgorICAgICAgICAqIE1vZHVs
ZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5oOgorCisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFBs
YXRmb3JtTWFjLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTAyLTE4ICBaYWxhbiBC
dWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBEbyBub3QgY3Jl
YXRlIHRoZSBsaW5lIHdpdGggbmVnYXRpdmUgd2lkdGggd2hlbiBuZWdhdGl2ZSBsZXR0ZXIgc3Bh
Y2luZyBpcyBwcmVzZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFhNDA3ZjVjNzRkMDJjZjE2ZjMyZWZmMGUxOGE5
MTA3ZTU5YjMyZjUuLmE2ZTBkYzI0NzFiYjUzOTU2YWRkZTI0N2ZhZGQ0MmE2YTQ4YzNlOGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjEtMDItMTggIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgorCisgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIGFkZCBhbiBgb2JqZWN0
IGRhdGFgIHRvIGBQYXltZW50RGV0YWlsc0Jhc2VgIHNvIHRoYXQgZGF0YSBzcGVjaWZpYyB0byBB
cHBsZSBQYXkgY2FuIGJlIHByb3ZpZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjIwMDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcyMzE5OTQ2
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGxh
dGZvcm0vY29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIuaDoKKyAgICAgICAgKiBQ
bGF0Zm9ybS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5tbToKKyAgICAgICAg
KFdlYktpdDo6dG9QS1BheW1lbnRFcnJvckNvZGUpOgorICAgICAgICAoV2ViS2l0Ojp0b05TRXJy
b3IpOgorICAgICAgICAoV2ViS2l0Ojp0b05TRXJyb3JzKToKKyAgICAgICAgKFdlYktpdDo6dG9Q
S1NoaXBwaW5nTWV0aG9kcyk6CisgICAgICAgIChXZWJLaXQ6OlBheW1lbnRBdXRob3JpemF0aW9u
UHJlc2VudGVyOjpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVTaGlwcGluZ0NvbnRh
Y3RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50QXV0aG9yaXphdGlvblByZXNl
bnRlcjo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbik6CisgICAgICAgICogUGxhdGZv
cm0vY29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tOgorICAgICAgICAodG9T
aGlwcGluZ01ldGhvZCk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6Cisg
ICAgICAgICogU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFNoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQ
cm94eS5oOgorICAgICAgICAqIFNoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5Ojpj
b21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHk6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OmNvbXBsZXRlUGF5
bWVudE1ldGhvZFNlbGVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5OjpwcmVzZW50ZXJEaWRTZWxlY3RTaGlwcGluZ01ldGhvZCk6CisgICAgICAgICog
U2hhcmVkL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EuaDoK
KyAgICAgICAgKiBTaGFyZWQvQXBwbGVQYXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6dG9QS1NoaXBwaW5nTWV0aG9kKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtUGF5bWVudFJl
cXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cGxh
dGZvcm1Db21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ0NvbnRh
Y3RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94
eTo6cGxhdGZvcm1Db21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpmaW5pc2hDcmVhdGluZyk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRD
b2RlcnNDb2NvYS5tbToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXlt
ZW50QXV0aG9yaXphdGlvblJlc3VsdD46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q+OjpkZWNvZGUpOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+Pjo6ZW5jb2Rl
KTogQWRkZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8VmVjdG9yPFJlZlB0cjxBcHBs
ZVBheUVycm9yPj4+OjpkZWNvZGUpOiBBZGRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpQYXltZW50RXJyb3I+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRFcnJvcj46OmRlY29kZSk6IERlbGV0ZWQu
CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0
ZT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6
OkFyZ3VtZW50Q29kZXI8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0
aG9kPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+OjpkZWNvZGUpOiBEZWxl
dGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRS
ZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5k
TGluZUl0ZW1zPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+OjplbmNvZGUpOiBEZWxldGVkLgorICAg
ICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT46
OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
U2hpcHBpbmdNZXRob2RVcGRhdGU+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpB
cmd1bWVudENvZGVyPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPjo6ZGVjb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRv
ci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRD
b29yZGluYXRvci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENv
b3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yOjpj
b21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5
bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50TWV0aG9k
U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yOjpkaWRT
ZWxlY3RTaGlwcGluZ01ldGhvZCk6CisgICAgICAgIFVzZSBgQXBwbGVQYXkqVXBkYXRlYCBpbnN0
ZWFkIG9mIGR1cGxpY2F0aW5nIGl0cyBzdHJ1Y3R1cmUgaW4gYW5vdGhlciBvYmplY3QgKGBBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6KlVwZGF0ZWApLgorICAgICAgICBVc2UgYEFwcGxl
UGF5U2hpcHBpbmdNZXRob2RgIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgaXRzIHN0cnVjdHVyZSBp
biBhbm90aGVyIG9iamVjdCAoYEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGlu
Z01ldGhvZGApLgorICAgICAgICBVc2UgYEFwcGxlUGF5RXJyb3IqYCBpbnN0ZWFkIG9mIGR1cGxp
Y2F0aW5nIGl0cyBzdHJ1Y3R1cmUgaW4gYW5vdGhlciBvYmplY3QgKGBBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdDo6UGF5bWVudEVycm9yOjoqYCkuCisKIDIwMjEtMDItMTggIEp1bGlhbiBH
b256YWxleiAgPGp1bGlhbl9hX2dvbnphbGV6QGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBp
biBJUEM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZXRhaW5QdHI8U2VjS2V5Y2hhaW5JdGVt
UmVmPiYgcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDM0ZGEzOWUxYjlk
OWNlNzRjNjc0NmQzNWJhNjk2OWMzNTIyNmU1N2MuLjdiOWM4YTJhMjFjMzRiZmJkY2YyYzc1NDA3
ZGY5ZGY2NjYxNTgyYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OCBAQAorMjAyMS0wMi0xOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAg
ICAgICAgW1BheW1lbnQgUmVxdWVzdF0gYWRkIGFuIGBvYmplY3QgZGF0YWAgdG8gYFBheW1lbnRE
ZXRhaWxzQmFzZWAgc28gdGhhdCBkYXRhIHNwZWNpZmljIHRvIEFwcGxlIFBheSBjYW4gYmUgcHJv
dmlkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MjAwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzIzMTk5NDY+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQYXlt
ZW50Q29vcmRpbmF0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQYXlt
ZW50Q29vcmRpbmF0b3JDbGllbnQubW06CisgICAgICAgIChXZWJQYXltZW50Q29vcmRpbmF0b3JD
bGllbnQ6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViUGF5
bWVudENvb3JkaW5hdG9yQ2xpZW50Ojpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbik6
CisgICAgICAgIChXZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQ6OmNvbXBsZXRlUGF5bWVudE1l
dGhvZFNlbGVjdGlvbik6CisgICAgICAgIFVzZSBgQXBwbGVQYXkqVXBkYXRlYCBpbnN0ZWFkIG9m
IGR1cGxpY2F0aW5nIGl0cyBzdHJ1Y3R1cmUgaW4gYW5vdGhlciBvYmplY3QgKGBBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdDo6KlVwZGF0ZWApLgorCiAyMDIxLTAyLTE4ICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFBsdW1iIGFuIE9wdGlvbmFs
PFBhZ2VJZGVudGlmaWVyPiB0aHJvdWdoIFdlYlBhc3RlYm9hcmRQcm94eQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggYmU5MGQ0M2QwYzEy
OGIxNGVkNjMwOTUyNTJmNGFmYTRhNDAxNmUwNS4uZDJmNmVjYzFiMGY3ZGU0YWQzOTJlZGRjM2Qx
NWM0NzAxMTcwMDcwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0CkBAIC0yNCw2ICsyNCw4IEBAICQoUFJPSkVDVF9ESVIpL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYWlycGxheS9XZWJLaXRQbGF5YmFja1Rh
cmdldEF2YWlsYWJpbGl0eUV2ZW50LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hcHBsZXBh
eS9BcHBsZVBheUNhbmNlbEV2ZW50LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hcHBsZXBh
eS9BcHBsZVBheUNvbnRhY3RGaWVsZC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5pZGwKICQoUFJPSkVDVF9ESVIpL01v
ZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlFcnJvckNvZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDhjMWYyNWZjMTcyZmVkYjc3
YzBhNzQ3YTEyYTlkYjBhOTA4NTdjOWQuLjJjYTYzYTYxZjkzMmRiNmQzZjI5ZDkwNzE2MDc2M2Jh
MjI2YmNjZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CkBAIC04Niw2ICs4NiwxMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5Q2FuY2VsRXZlbnQuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5Q2FuY2VsRXZlbnQuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcHBsZVBheUNv
bnRhY3RGaWVsZC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTQXBwbGVQYXlDb250YWN0RmllbGQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmNwcAorJChCVUlM
VF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcHBsZVBheURldGFpbHNV
cGRhdGVCYXNlLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9E
ZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5RXJyb3Iu
Y3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FwcGxl
UGF5RXJyb3IuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNBcHBsZVBheUVycm9yQ29kZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4
IGE4ZDg3ZWUxOTJlYTdkYjhlMTcxN2FjNDBlNzAzODYwNmQ1NTM1NmIuLjE2MjY2OGU3NzEyYzVj
MWEyZmE4NWU4MWQ3NzZjYzEzZDYxMGY5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQpAQCAtNTMsNiArNTMsOCBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAgICQoV2ViQ29yZSkv
TW9kdWxlcy9haXJwbGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDYW5jZWxFdmVudC5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVs
ZC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNV
cGRhdGVCYXNlLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
RGV0YWlsc1VwZGF0ZURhdGEuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlFcnJvci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheUVycm9yQ29kZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheUVycm9yQ29udGFjdEZpZWxkLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmI3OTYwNjcxMjhjNTY3NzU5ZTNkNGVjZWJiZTkzMGQzNDMwZjQ5ZTUKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWlsc1Vw
ZGF0ZUJhc2UuaApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorCisjaW5jbHVkZSAiQXBwbGVQYXlEZXRhaWxzVXBkYXRl
RGF0YS5oIgorI2luY2x1ZGUgIkFwcGxlUGF5TGluZUl0ZW0uaCIKKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEFwcGxlUGF5RGV0YWlsc1Vw
ZGF0ZUJhc2UgOiBwdWJsaWMgQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSB7CisgICAgQXBwbGVQ
YXlMaW5lSXRlbSBuZXdUb3RhbDsKKyAgICBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4gbmV3TGlu
ZUl0ZW1zOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxB
cHBsZVBheURldGFpbHNVcGRhdGVCYXNlPiBkZWNvZGUoRGVjb2RlciYpOworCisgICAgdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4gV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlQmFzZShEZWNv
ZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBBcHBsZVBheURldGFp
bHNVcGRhdGVCYXNlOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBBcHBs
ZVBheURldGFpbHNVcGRhdGVEYXRhOjplbmNvZGUoZW5jb2Rlcik7CisgICAgZW5jb2RlciA8PCBu
ZXdUb3RhbDsKKyAgICBlbmNvZGVyIDw8IG5ld0xpbmVJdGVtczsKK30KKwordGVtcGxhdGU8Y2xh
c3MgRGVjb2Rlcj4KK09wdGlvbmFsPEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2U+IEFwcGxlUGF5
RGV0YWlsc1VwZGF0ZUJhc2U6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIEFwcGxl
UGF5RGV0YWlsc1VwZGF0ZUJhc2UgcmVzdWx0OworICAgIGlmICghcmVzdWx0LmRlY29kZUJhc2Uo
ZGVjb2RlcikpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgQXBwbGVQYXlEZXRhaWxzVXBk
YXRlQmFzZTo6ZGVjb2RlQmFzZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmICghZGVjb2Rl
RGF0YShkZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisjZGVmaW5lIERFQ09ERShu
YW1lLCB0eXBlKSBcCisgICAgT3B0aW9uYWw8dHlwZT4gbmFtZTsgXAorICAgIGRlY29kZXIgPj4g
bmFtZTsgXAorICAgIGlmICghbmFtZSkgXAorICAgICAgICByZXR1cm4gZmFsc2U7IFwKKyAgICB0
aGlzLT5uYW1lID0gV1RGTW92ZSgqbmFtZSk7IFwKKworICAgIERFQ09ERShuZXdUb3RhbCwgQXBw
bGVQYXlMaW5lSXRlbSkKKyAgICBERUNPREUobmV3TGluZUl0ZW1zLCBWZWN0b3I8QXBwbGVQYXlM
aW5lSXRlbT4pCisKKyN1bmRlZiBERUNPREUKKworICAgIHJldHVybiB0cnVlOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRh
dGVCYXNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlEZXRh
aWxzVXBkYXRlQmFzZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjE1ZTg2ZGVmYzIyZDI5ZTNhYjlhMDRkZWQ2
OTY3YTg4YjFkNWZmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5pZGwKQEAgLTAsMCArMSwzMSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK1sKKyAgICBDb25kaXRpb25hbD1BUFBMRV9QQVksCitdIGRpY3Rpb25hcnkg
QXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZSB7CisgICAgcmVxdWlyZWQgQXBwbGVQYXlMaW5lSXRl
bSBuZXdUb3RhbDsKKyAgICBzZXF1ZW5jZTxBcHBsZVBheUxpbmVJdGVtPiBuZXdMaW5lSXRlbXM7
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eURldGFpbHNVcGRhdGVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0Fw
cGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MDc4Zjk1NzIxNDNiZGUzODBm
ZDRlNDRhYmM0ODMxOGY4Yzc5MmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmgKQEAgLTAsMCArMSw4
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEFQUExFX1BBWSkK
KworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25z
L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGFBZGRpdGlvbnMuaD4KKyNlbmRpZgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3N0cnVjdCBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhIHsKKyNpZiBk
ZWZpbmVkKEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGFBZGRpdGlvbnNfbWVtYmVycykKKyAgICBB
cHBsZVBheURldGFpbHNVcGRhdGVEYXRhQWRkaXRpb25zX21lbWJlcnMKKyNlbmRpZgorCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxBcHBsZVBheURldGFpbHNV
cGRhdGVEYXRhPiBkZWNvZGUoRGVjb2RlciYpOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4gV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlRGF0YShEZWNvZGVyJik7Cit9OworCit0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyNpZiBkZWZpbmVkKEFwcGxlUGF5RGV0
YWlsc1VwZGF0ZURhdGFBZGRpdGlvbnNfZW5jb2RlKQorICAgIEFwcGxlUGF5RGV0YWlsc1VwZGF0
ZURhdGFBZGRpdGlvbnNfZW5jb2RlCisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmNvZGVyKTsK
KyNlbmRpZgorfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8QXBwbGVQYXlE
ZXRhaWxzVXBkYXRlRGF0YT4gQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YTo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSByZXN1bHQ7Cisg
ICAgaWYgKCFyZXN1bHQuZGVjb2RlRGF0YShkZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PgorYm9vbCBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhOjpkZWNvZGVEYXRhKERlY29kZXImIGRl
Y29kZXIpCit7CisjZGVmaW5lIERFQ09ERShuYW1lLCB0eXBlKSBcCisgICAgT3B0aW9uYWw8dHlw
ZT4gbmFtZTsgXAorICAgIGRlY29kZXIgPj4gbmFtZTsgXAorICAgIGlmICghbmFtZSkgXAorICAg
ICAgICByZXR1cm4gZmFsc2U7IFwKKyAgICB0aGlzLT5uYW1lID0gV1RGTW92ZSgqbmFtZSk7IFwK
KworI2lmIGRlZmluZWQoQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YUFkZGl0aW9uc19kZWNvZGVE
YXRhKQorICAgIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGFBZGRpdGlvbnNfZGVjb2RlRGF0YQor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGVjb2Rlcik7CisjZW5kaWYKKworI3VuZGVmIERFQ09E
RQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShBUFBMRV9QQVkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42NzE4ODE0MjA1MzIyZjFmM2UyOTQyZDNiOTUyYTQzMjVmMzY0NzhhCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNV
cGRhdGVEYXRhLmlkbApAQCAtMCwwICsxLDI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRp
dGlvbmFsPUFQUExFX1BBWSwKK10gZGljdGlvbmFyeSBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRh
IHsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxl
UGF5RXJyb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVy
cm9yLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjc3NjdjMzBhZDg3Yjc2NmRj
ZjhlZmFmNjM0YmRkMTRjMzZkZmQ4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJy
b3IuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJBcHBsZVBheUVycm9yLmgiCi0KLSNpZiBFTkFCTEUo
QVBQTEVfUEFZKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVJlZjxBcHBsZVBheUVycm9yPiBB
cHBsZVBheUVycm9yOjpjcmVhdGUoQ29kZSBjb2RlLCBPcHRpb25hbDxDb250YWN0RmllbGQ+IGNv
bnRhY3RGaWVsZCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQotewotICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IEFwcGxlUGF5RXJyb3IgeyBjb2RlLCBjb250YWN0RmllbGQsIG1lc3NhZ2UgfSk7Ci19
Ci0KLUFwcGxlUGF5RXJyb3I6OkFwcGxlUGF5RXJyb3IoQ29kZSBjb2RlLCBPcHRpb25hbDxDb250
YWN0RmllbGQ+IGNvbnRhY3RGaWVsZCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQotICAgIDogbV9j
b2RlIHsgY29kZSB9Ci0gICAgLCBtX2NvbnRhY3RGaWVsZCB7IGNvbnRhY3RGaWVsZCB9Ci0gICAg
LCBtX21lc3NhZ2UgeyBtZXNzYWdlIH0KLXsKLX0KLQotQXBwbGVQYXlFcnJvcjo6fkFwcGxlUGF5
RXJyb3IoKSA9IGRlZmF1bHQ7Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvci5oCmluZGV4IDMzMWRlMTJjNDU5NjhlMGViNDA3
NDZmMDNkOWNhOGIxZWJlNTAyNDguLjI1OWIyMGY0NDQyNmY3ZjExNjIzNWQ1NTZkMjY3ZjE4NmRl
ODVjNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlF
cnJvci5oCkBAIC0yNywzNyArMjcsNzYgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKLSNp
bmNsdWRlICJBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oIgorI2luY2x1ZGUgIkFwcGxl
UGF5RXJyb3JDb2RlLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oIgor
I2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcHBs
ZVBheUVycm9yIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8QXBwbGVQYXlFcnJvcj4gewogcHVi
bGljOgotICAgIHVzaW5nIENvZGUgPSBQYXltZW50RXJyb3I6OkNvZGU7Ci0gICAgdXNpbmcgQ29u
dGFjdEZpZWxkID0gUGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ7CisgICAgc3RhdGljIFJlZjxB
cHBsZVBheUVycm9yPiBjcmVhdGUoQXBwbGVQYXlFcnJvckNvZGUgY29kZSwgT3B0aW9uYWw8QXBw
bGVQYXlFcnJvckNvbnRhY3RGaWVsZD4gY29udGFjdEZpZWxkLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcHBsZVBheUVycm9yKGNv
ZGUsIGNvbnRhY3RGaWVsZCwgbWVzc2FnZSkpOworICAgIH0KIAotICAgIHN0YXRpYyBSZWY8QXBw
bGVQYXlFcnJvcj4gY3JlYXRlKENvZGUsIE9wdGlvbmFsPENvbnRhY3RGaWVsZD4sIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSk7Ci0gICAgdmlydHVhbCB+QXBwbGVQYXlFcnJvcigpOworICAgIHZpcnR1
YWwgfkFwcGxlUGF5RXJyb3IoKSA9IGRlZmF1bHQ7CiAKLSAgICBDb2RlIGNvZGUoKSBjb25zdCB7
IHJldHVybiBtX2NvZGU7IH0KLSAgICB2b2lkIHNldENvZGUoQ29kZSBjb2RlKSB7IG1fY29kZSA9
IGNvZGU7IH0KKyAgICBBcHBsZVBheUVycm9yQ29kZSBjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9j
b2RlOyB9CisgICAgdm9pZCBzZXRDb2RlKEFwcGxlUGF5RXJyb3JDb2RlIGNvZGUpIHsgbV9jb2Rl
ID0gY29kZTsgfQogCi0gICAgT3B0aW9uYWw8Q29udGFjdEZpZWxkPiBjb250YWN0RmllbGQoKSBj
b25zdCB7IHJldHVybiBtX2NvbnRhY3RGaWVsZDsgfQotICAgIHZvaWQgc2V0Q29udGFjdEZpZWxk
KE9wdGlvbmFsPENvbnRhY3RGaWVsZD4gY29udGFjdEZpZWxkKSB7IG1fY29udGFjdEZpZWxkID0g
Y29udGFjdEZpZWxkOyB9CisgICAgT3B0aW9uYWw8QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZD4g
Y29udGFjdEZpZWxkKCkgY29uc3QgeyByZXR1cm4gbV9jb250YWN0RmllbGQ7IH0KKyAgICB2b2lk
IHNldENvbnRhY3RGaWVsZChPcHRpb25hbDxBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkPiBjb250
YWN0RmllbGQpIHsgbV9jb250YWN0RmllbGQgPSBjb250YWN0RmllbGQ7IH0KIAogICAgIFN0cmlu
ZyBtZXNzYWdlKCkgY29uc3QgeyByZXR1cm4gbV9tZXNzYWdlOyB9CiAgICAgdm9pZCBzZXRNZXNz
YWdlKFN0cmluZyYmIG1lc3NhZ2UpIHsgbV9tZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKTsgfQog
Ci1wcml2YXRlOgotICAgIEFwcGxlUGF5RXJyb3IoQ29kZSwgT3B0aW9uYWw8Q29udGFjdEZpZWxk
PiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIFJlZlB0cjxBcHBsZVBheUVycm9yPiBkZWNvZGUoRGVjb2RlciYpOwogCi0gICAgQ29k
ZSBtX2NvZGU7Ci0gICAgT3B0aW9uYWw8Q29udGFjdEZpZWxkPiBtX2NvbnRhY3RGaWVsZDsKK3By
aXZhdGU6CisgICAgQXBwbGVQYXlFcnJvcihBcHBsZVBheUVycm9yQ29kZSBjb2RlLCBPcHRpb25h
bDxBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkPiBjb250YWN0RmllbGQsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKKyAgICAgICAgOiBtX2NvZGUoY29kZSkKKyAgICAgICAgLCBtX2NvbnRhY3RGaWVs
ZChjb250YWN0RmllbGQpCisgICAgICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCisgICAgeworICAg
IH0KKworICAgIEFwcGxlUGF5RXJyb3JDb2RlIG1fY29kZTsKKyAgICBPcHRpb25hbDxBcHBsZVBh
eUVycm9yQ29udGFjdEZpZWxkPiBtX2NvbnRhY3RGaWVsZDsKICAgICBTdHJpbmcgbV9tZXNzYWdl
OwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQXBwbGVQYXlFcnJvcjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX2NvZGU7Cisg
ICAgZW5jb2RlciA8PCBtX2NvbnRhY3RGaWVsZDsKKyAgICBlbmNvZGVyIDw8IG1fbWVzc2FnZTsK
IH0KIAordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK1JlZlB0cjxBcHBsZVBheUVycm9yPiBBcHBs
ZVBheUVycm9yOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyNkZWZpbmUgREVDT0RFKG5h
bWUsIHR5cGUpIFwKKyAgICBPcHRpb25hbDx0eXBlPiBuYW1lOyBcCisgICAgZGVjb2RlciA+PiBu
YW1lOyBcCisgICAgaWYgKCFuYW1lKSBcCisgICAgICAgIHJldHVybiBudWxscHRyOyBcCisKKyAg
ICBERUNPREUoY29kZSwgQXBwbGVQYXlFcnJvckNvZGUpCisgICAgREVDT0RFKGNvbnRhY3RGaWVs
ZCwgT3B0aW9uYWw8QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZD4pCisgICAgREVDT0RFKG1lc3Nh
Z2UsIFN0cmluZykKKworI3VuZGVmIERFQ09ERQorCisgICAgcmV0dXJuIEFwcGxlUGF5RXJyb3I6
OmNyZWF0ZShXVEZNb3ZlKCpjb2RlKSwgV1RGTW92ZSgqY29udGFjdEZpZWxkKSwgV1RGTW92ZSgq
bWVzc2FnZSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29kZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29kZS5oCmlu
ZGV4IDJmYWVlZjdkYzg3ZTBkYmQyZDhiZGJjNWU4NzZhMjExYjg1ZTZmNmIuLjg3YzYwMTVlMzFj
OTgxOWI1OWNlNDIxZTQyYjJlODMxZjIxMzlhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvckNvZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3JDb2RlLmgKQEAgLTI3LDEyICsyNywzMSBA
QAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAotI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi11c2luZyBBcHBsZVBheUVycm9yQ29kZSA9IFBheW1lbnRFcnJvcjo6Q29kZTsK
K2VudW0gY2xhc3MgQXBwbGVQYXlFcnJvckNvZGUgeworICAgIFVua25vd24sCisgICAgU2hpcHBp
bmdDb250YWN0SW52YWxpZCwKKyAgICBCaWxsaW5nQ29udGFjdEludmFsaWQsCisgICAgQWRkcmVz
c1Vuc2VydmljZWFibGUsCit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFj
ZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkFwcGxlUGF5
RXJyb3JDb2RlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2Vi
Q29yZTo6QXBwbGVQYXlFcnJvckNvZGUsCisgICAgICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JD
b2RlOjpVbmtub3duLAorICAgICAgICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29kZTo6U2hpcHBp
bmdDb250YWN0SW52YWxpZCwKKyAgICAgICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvZGU6OkJp
bGxpbmdDb250YWN0SW52YWxpZCwKKyAgICAgICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvZGU6
OkFkZHJlc3NVbnNlcnZpY2VhYmxlCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgor
CiAjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmgKaW5kZXgg
ZjZhNzBkMDcwN2NiOWY1YWU1N2I5MGQyY2M0MWZmMzBhYjdjYTExMC4uMTY0ZGJmYWIyODIyN2M1
NGU4Y2QyZDI5NzU1N2YwMjdlOWVlNmNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmgKQEAgLTI3
LDEyICsyNyw0OSBAQAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAotI2luY2x1ZGUgIkFwcGxl
UGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkID0g
UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ7CitlbnVtIGNsYXNzIEFwcGxlUGF5RXJyb3JDb250
YWN0RmllbGQgeworICAgIFBob25lTnVtYmVyLAorICAgIEVtYWlsQWRkcmVzcywKKyAgICBOYW1l
LAorICAgIFBob25ldGljTmFtZSwKKyAgICBQb3N0YWxBZGRyZXNzLAorICAgIEFkZHJlc3NMaW5l
cywKKyAgICBTdWJMb2NhbGl0eSwKKyAgICBMb2NhbGl0eSwKKyAgICBQb3N0YWxDb2RlLAorICAg
IFN1YkFkbWluaXN0cmF0aXZlQXJlYSwKKyAgICBBZG1pbmlzdHJhdGl2ZUFyZWEsCisgICAgQ291
bnRyeSwKKyAgICBDb3VudHJ5Q29kZSwKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAor
bmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZD4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1
ZXM8CisgICAgICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQsCisgICAgICAg
IFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlBob25lTnVtYmVyLAorICAgICAg
ICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpFbWFpbEFkZHJlc3MsCisgICAg
ICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6Ok5hbWUsCisgICAgICAgIFdl
YkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlBob25ldGljTmFtZSwKKyAgICAgICAg
V2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UG9zdGFsQWRkcmVzcywKKyAgICAg
ICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6QWRkcmVzc0xpbmVzLAorICAg
ICAgICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpTdWJMb2NhbGl0eSwKKyAg
ICAgICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6TG9jYWxpdHksCisgICAg
ICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlBvc3RhbENvZGUsCisgICAg
ICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlN1YkFkbWluaXN0cmF0aXZl
QXJlYSwKKyAgICAgICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6QWRtaW5p
c3RyYXRpdmVBcmVhLAorICAgICAgICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxk
OjpDb3VudHJ5LAorICAgICAgICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpD
b3VudHJ5Q29kZQorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwogI2VuZGlmIC8v
IEVOQUJMRShBUFBMRV9QQVkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5o
CmluZGV4IDQ4ZDRiNzdiZWQxODZkMjg2NGY5ZWI1ZmExYjY3MDZhZGQ2MTgzMmIuLjAzZDE3ZDgx
OGQ1M2RlZGI3MThiZDU4NzFiN2Q2YTY5NmNjY2M1MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50QXV0
aG9yaXphdGlvblJlc3VsdC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKEFQUExFX1BB
WSkKIAogI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3IuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhv
ZFVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1l
bnRNZXRob2RVcGRhdGUuaAppbmRleCBkYjQ0NjY0YTVjY2YzMjM0Y2Y0ZWU2NWI5NTE0OWQzZTU0
YTIwZTc1Li4yOTQ2Y2NjODk5NDRhODIxYzg5ZGQ3ZDhjY2UxOWIzZmQ3MGUzMjk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhv
ZFVwZGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQ
YXltZW50TWV0aG9kVXBkYXRlLmgKQEAgLTI3LDE2ICsyNyw1NCBAQAogCiAjaWYgRU5BQkxFKEFQ
UExFX1BBWSkKIAotI2luY2x1ZGUgIkFwcGxlUGF5TGluZUl0ZW0uaCIKKyNpbmNsdWRlICJBcHBs
ZVBheURldGFpbHNVcGRhdGVCYXNlLmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3Ry
dWN0IEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZSB7Ci0gICAgQXBwbGVQYXlMaW5lSXRlbSBu
ZXdUb3RhbDsKLSAgICBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4gbmV3TGluZUl0ZW1zOworc3Ry
dWN0IEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZSBmaW5hbCA6IHB1YmxpYyBBcHBsZVBheURl
dGFpbHNVcGRhdGVCYXNlIHsKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0lOU1RBTExNRU5UUykKICAg
ICBTdHJpbmcgaW5zdGFsbG1lbnRHcm91cElkZW50aWZpZXI7CisjZW5kaWYgLy8gRU5BQkxFKEFQ
UExFX1BBWV9JTlNUQUxMTUVOVFMpCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3Rh
dGljIE9wdGlvbmFsPEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4gZGVjb2RlKERlY29kZXIm
KTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEFwcGxlUGF5UGF5bWVudE1l
dGhvZFVwZGF0ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgQXBwbGVQ
YXlEZXRhaWxzVXBkYXRlQmFzZTo6ZW5jb2RlKGVuY29kZXIpOworI2lmIEVOQUJMRShBUFBMRV9Q
QVlfSU5TVEFMTE1FTlRTKQorICAgIGVuY29kZXIgPDwgaW5zdGFsbG1lbnRHcm91cElkZW50aWZp
ZXI7CisjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWV9JTlNUQUxMTUVOVFMpCiB9CiAKK3RlbXBs
YXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+
IEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7
CisgICAgQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlIHJlc3VsdDsKKworICAgIGlmICghcmVz
dWx0LmRlY29kZUJhc2UoZGVjb2RlcikpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
KyNkZWZpbmUgREVDT0RFKG5hbWUsIHR5cGUpIFwKKyAgICBPcHRpb25hbDx0eXBlPiBuYW1lOyBc
CisgICAgZGVjb2RlciA+PiBuYW1lOyBcCisgICAgaWYgKCFuYW1lKSBcCisgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7IFwKKyAgICByZXN1bHQubmFtZSA9IFdURk1vdmUoKm5hbWUpOyBcCisK
KyNpZiBFTkFCTEUoQVBQTEVfUEFZX0lOU1RBTExNRU5UUykKKyAgICBERUNPREUoaW5zdGFsbG1l
bnRHcm91cElkZW50aWZpZXIsIFN0cmluZykKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZX0lO
U1RBTExNRU5UUykKKworI3VuZGVmIERFQ09ERQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRl
LmlkbAppbmRleCBjMDY5MTBkN2JmZGM1YWIxMDRmMTM5MDk5NzFlMzU5MTA2OTVhZjMzLi4yOGU4
N2IxOGQxYWE3Y2M2MzI2NWE0OWIwZmJhZjZiY2NhZWJkOGI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRo
b2RVcGRhdGUuaWRsCkBAIC0yNSw4ICsyNSw2IEBACiAKIFsKICAgICBDb25kaXRpb25hbD1BUFBM
RV9QQVksCi1dIGRpY3Rpb25hcnkgQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlIHsKLSAgICBy
ZXF1aXJlZCBBcHBsZVBheUxpbmVJdGVtIG5ld1RvdGFsOwotICAgIHNlcXVlbmNlPEFwcGxlUGF5
TGluZUl0ZW0+IG5ld0xpbmVJdGVtczsKK10gZGljdGlvbmFyeSBBcHBsZVBheVBheW1lbnRNZXRo
b2RVcGRhdGUgOiBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlIHsKICAgICBbQ29uZGl0aW9uYWw9
QVBQTEVfUEFZX0lOU1RBTExNRU5UU10gRE9NU3RyaW5nIGluc3RhbGxtZW50R3JvdXBJZGVudGlm
aWVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlQYXltZW50UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheVBheW1lbnRSZXF1ZXN0LmgKaW5kZXggM2YwYjY2ZjE3OTM3YWE0MWI0ZWM0ZmQ4MWQ3
OGE4MGEwODY3YWI5Yi4uYjc1MjU2MTA1YzFjM2M0NDY2MTI1YzZlZThkNzRiZDk5ZTA2ZTY2NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1l
bnRSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVBheW1lbnRSZXF1ZXN0LmgKQEAgLTMzLDYgKzMzLDEwIEBACiAjaW5jbHVkZSAiQXBwbGVQYXlT
ZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKICNpbmNsdWRlICJBcHBsZVBheVNoaXBwaW5nTWV0aG9k
LmgiCiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2luY2x1ZGUgPFdlYktpdEFkZGl0
aW9ucy9BcHBsZVBheVBheW1lbnRSZXF1ZXN0QWRkaXRpb25zLmg+CisjZW5kaWYKKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgQXBwbGVQYXlQYXltZW50UmVxdWVzdCA6IEFwcGxlUGF5
UmVxdWVzdEJhc2UgewpAQCAtNDUsNiArNDksMTAgQEAgc3RydWN0IEFwcGxlUGF5UGF5bWVudFJl
cXVlc3QgOiBBcHBsZVBheVJlcXVlc3RCYXNlIHsKIAogICAgIEFwcGxlUGF5TGluZUl0ZW0gdG90
YWw7CiAgICAgT3B0aW9uYWw8VmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+PiBsaW5lSXRlbXM7CisK
KyNpZiBkZWZpbmVkKEFwcGxlUGF5UGF5bWVudFJlcXVlc3RBZGRpdGlvbnNfbWVtYmVycykKKyAg
ICBBcHBsZVBheVBheW1lbnRSZXF1ZXN0QWRkaXRpb25zX21lbWJlcnMKKyNlbmRpZgogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJl
cXVlc3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlS
ZXF1ZXN0QmFzZS5jcHAKaW5kZXggNzI3MGIyMDRlZDc4ZDFjYzRmZGI4ZjRhZGYyOGEyNmVhYjIx
NjllMy4uYjczOGRlY2JkNDQ2NTFjYmE2MDA4OGY2NGY5OWI0N2ZiYWEzMThiNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJh
c2UuY3BwCkBAIC0zMSw2ICszMSwxMCBAQAogI2luY2x1ZGUgIlBheW1lbnRDb29yZGluYXRvci5o
IgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCisjaWYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvQXBwbGVQ
YXlSZXF1ZXN0QmFzZUFkZGl0aW9ucy5jcHA+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBzdGF0aWMgYm9vbCByZXF1aXJlc1N1cHBvcnRlZE5ldHdvcmtzKHVuc2lnbmVkIHZlcnNp
b24sIGNvbnN0IEFwcGxlUGF5UmVxdWVzdEJhc2UmIHJlcXVlc3QpCkBAIC0xMTQsNiArMTE4LDEw
IEBAIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0PiBjb252ZXJ0QW5k
VmFsaWRhdGUoRG9jdW1lbnQmIGRvY3VtZW50CiAgICAgfQogI2VuZGlmCiAKKyNpZiBkZWZpbmVk
KEFwcGxlUGF5UmVxdWVzdEJhc2VBZGRpdGlvbnNfY29udmVydEFuZFZhbGlkYXRlKQorICAgIEFw
cGxlUGF5UmVxdWVzdEJhc2VBZGRpdGlvbnNfY29udmVydEFuZFZhbGlkYXRlCisjZW5kaWYKKwog
ICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmgKaW5kZXggMzNkMTZhNzUx
MGYwNzNlYzNkODViZmJiZTQ1ZGM0NjBjOTU5OWY0Yy4uMzIwYTczNjFlMzA3NDM3MDY1YTc0Y2Ji
ZWI4M2Q3NmVmN2U4YmI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmgKQEAgLTMyLDYgKzMyLDEwIEBACiAjaW5jbHVk
ZSAiQXBwbGVQYXlNZXJjaGFudENhcGFiaWxpdHkuaCIKICNpbmNsdWRlICJBcHBsZVBheVBheW1l
bnRDb250YWN0LmgiCiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2luY2x1ZGUgPFdl
YktpdEFkZGl0aW9ucy9BcHBsZVBheVJlcXVlc3RCYXNlQWRkaXRpb25zLmg+CisjZW5kaWYKKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKQEAgLTU0LDYgKzU4LDEwIEBA
IHN0cnVjdCBBcHBsZVBheVJlcXVlc3RCYXNlIHsKICNpZiBFTkFCTEUoQVBQTEVfUEFZX0lOU1RB
TExNRU5UUykKICAgICBPcHRpb25hbDxBcHBsZVBheUluc3RhbGxtZW50Q29uZmlndXJhdGlvbj4g
aW5zdGFsbG1lbnRDb25maWd1cmF0aW9uOwogI2VuZGlmCisKKyNpZiBkZWZpbmVkKEFwcGxlUGF5
UmVxdWVzdEJhc2VBZGRpdGlvbnNfbWVtYmVycykKKyAgICBBcHBsZVBheVJlcXVlc3RCYXNlQWRk
aXRpb25zX21lbWJlcnMKKyNlbmRpZgogfTsKIAogRXhjZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q+IGNvbnZlcnRBbmRWYWxpZGF0ZShEb2N1bWVudCYsIHVuc2lnbmVkIHZl
cnNpb24sIEFwcGxlUGF5UmVxdWVzdEJhc2UmLCBjb25zdCBQYXltZW50Q29vcmRpbmF0b3ImKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNz
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9u
LmNwcAppbmRleCAyODk0NjkyMWY5ZDFhMTZjYzg0MGNlMzNhM2I0YjdjYWQzOTVmMzY5Li43NmY0
ZjIxNjNmZTA5NzJjZGJmNzgxZDg3ZmRkMzVlOTc4MjA2YTM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwCkBAIC0yOSw2ICsy
OSw4IEBACiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAogI2luY2x1ZGUgIkFwcGxlUGF5Q2FuY2Vs
RXZlbnQuaCIKKyNpbmNsdWRlICJBcHBsZVBheUVycm9yQ29kZS5oIgorI2luY2x1ZGUgIkFwcGxl
UGF5RXJyb3JDb250YWN0RmllbGQuaCIKICNpbmNsdWRlICJBcHBsZVBheUxpbmVJdGVtLmgiCiAj
aW5jbHVkZSAiQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oIgogI2luY2x1ZGUg
IkFwcGxlUGF5UGF5bWVudEF1dGhvcml6ZWRFdmVudC5oIgpAQCAtNTYsNyArNTgsNiBAQAogI2lu
Y2x1ZGUgIlBheW1lbnRDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIlBheW1lbnRNZXJjaGFudFNl
c3Npb24uaCIKICNpbmNsdWRlICJQYXltZW50TWV0aG9kLmgiCi0jaW5jbHVkZSAiUGF5bWVudE1l
dGhvZFVwZGF0ZS5oIgogI2luY2x1ZGUgIlBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLmgiCiAjaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtNjQsMTcg
KzY1LDExIEBACiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyB2b2lkIGZpbmlz
aENvbnZlcnRpbmcoUGF5bWVudE1ldGhvZFVwZGF0ZSYgY29udmVydGVkVXBkYXRlLCBBcHBsZVBh
eVBheW1lbnRNZXRob2RVcGRhdGUmJiB1cGRhdGUpCi17Ci0jaWYgRU5BQkxFKEFQUExFX1BBWV9J
TlNUQUxMTUVOVFMpCi0gICAgY29udmVydGVkVXBkYXRlLnNldEluc3RhbGxtZW50R3JvdXBJZGVu
dGlmaWVyKHVwZGF0ZS5pbnN0YWxsbWVudEdyb3VwSWRlbnRpZmllcik7Ci0jZWxzZQotICAgIFVO
VVNFRF9QQVJBTShjb252ZXJ0ZWRVcGRhdGUpOwotICAgIFVOVVNFRF9QQVJBTSh1cGRhdGUpOwor
I2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0Fw
cGxlUGF5U2Vzc2lvbkFkZGl0aW9ucy5jcHA+CiAjZW5kaWYKLX0KKworbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQXBwbGVQYXlTZXNzaW9uKTsKIApA
QCAtMTg4LDI1ICsxODMsMTkgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3RvcjxBcHBsZVBheUxp
bmVJdGVtPj4gY29udmVydEFuZFZhbGlkYXRlKE9wdGlvbmFsPFZlY3RvcjwKICAgICByZXR1cm4g
V1RGTW92ZShyZXN1bHQpOwogfQogCi1zdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPiBjb252ZXJ0QW5kVmFsaWRhdGUoQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZCYmIHNoaXBwaW5nTWV0aG9kKQorc3RhdGljIEV4Y2VwdGlvbk9yPEFw
cGxlUGF5U2hpcHBpbmdNZXRob2Q+IGNvbnZlcnRBbmRWYWxpZGF0ZShBcHBsZVBheVNoaXBwaW5n
TWV0aG9kJiYgc2hpcHBpbmdNZXRob2QpCiB7CiAgICAgaWYgKCF2YWxpZGF0ZUFtb3VudChzaGlw
cGluZ01ldGhvZC5hbW91bnQpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCBtYWtlU3RyaW5nKCJcIiIgKyBzaGlwcGluZ01ldGhvZC5hbW91bnQsICJcIiBpcyBub3QgYSB2
YWxpZCBhbW91bnQuIikgfTsKIAotICAgIEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpT
aGlwcGluZ01ldGhvZCByZXN1bHQ7Ci0gICAgcmVzdWx0LmFtb3VudCA9IHNoaXBwaW5nTWV0aG9k
LmFtb3VudDsKLSAgICByZXN1bHQubGFiZWwgPSBzaGlwcGluZ01ldGhvZC5sYWJlbDsKLSAgICBy
ZXN1bHQuZGV0YWlsID0gc2hpcHBpbmdNZXRob2QuZGV0YWlsOwotICAgIHJlc3VsdC5pZGVudGlm
aWVyID0gc2hpcHBpbmdNZXRob2QuaWRlbnRpZmllcjsKLQotICAgIHJldHVybiBXVEZNb3ZlKHJl
c3VsdCk7CisgICAgcmV0dXJuIFdURk1vdmUoc2hpcHBpbmdNZXRob2QpOwogfQogCi1zdGF0aWMg
RXhjZXB0aW9uT3I8VmVjdG9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGlu
Z01ldGhvZD4+IGNvbnZlcnRBbmRWYWxpZGF0ZShWZWN0b3I8QXBwbGVQYXlTaGlwcGluZ01ldGhv
ZD4mJiBzaGlwcGluZ01ldGhvZHMpCitzdGF0aWMgRXhjZXB0aW9uT3I8VmVjdG9yPEFwcGxlUGF5
U2hpcHBpbmdNZXRob2Q+PiBjb252ZXJ0QW5kVmFsaWRhdGUoVmVjdG9yPEFwcGxlUGF5U2hpcHBp
bmdNZXRob2Q+JiYgc2hpcHBpbmdNZXRob2RzKQogewotICAgIFZlY3RvcjxBcHBsZVBheVNlc3Np
b25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+IHJlc3VsdDsKKyAgICBWZWN0b3I8QXBw
bGVQYXlTaGlwcGluZ01ldGhvZD4gcmVzdWx0OwogICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENh
cGFjaXR5KHNoaXBwaW5nTWV0aG9kcy5zaXplKCkpOwotICAgIAorCiAgICAgZm9yIChhdXRvJiBz
aGlwcGluZ01ldGhvZCA6IHNoaXBwaW5nTWV0aG9kcykgewogICAgICAgICBhdXRvIGNvbnZlcnRl
ZFNoaXBwaW5nTWV0aG9kID0gY29udmVydEFuZFZhbGlkYXRlKFdURk1vdmUoc2hpcHBpbmdNZXRo
b2QpKTsKICAgICAgICAgaWYgKGNvbnZlcnRlZFNoaXBwaW5nTWV0aG9kLmhhc0V4Y2VwdGlvbigp
KQpAQCAtMjQ2LDYgKzIzNSwxMCBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q+IGNvbnZlcnRBbmRWYWxpZGF0ZShEb2N1bWVudCYgZAogICAgICAgICBy
ZXN1bHQuc2V0U2hpcHBpbmdNZXRob2RzKHNoaXBwaW5nTWV0aG9kcy5yZWxlYXNlUmV0dXJuVmFs
dWUoKSk7CiAgICAgfQogCisjaWYgZGVmaW5lZChBcHBsZVBheVNlc3Npb25BZGRpdGlvbnNfY29u
dmVydEFuZFZhbGlkYXRlKQorICAgIEFwcGxlUGF5U2Vzc2lvbkFkZGl0aW9uc19jb252ZXJ0QW5k
VmFsaWRhdGUKKyNlbmRpZgorCiAgICAgLy8gRklYTUU6IE1lcmdlIHRoaXMgdmFsaWRhdGlvbiBp
bnRvIHRoZSB2YWxpZGF0aW9uIHdlIGFyZSBkb2luZyBhYm92ZS4KICAgICBhdXRvIHZhbGlkYXRl
ZFBheW1lbnRSZXF1ZXN0ID0gUGF5bWVudFJlcXVlc3RWYWxpZGF0b3I6OnZhbGlkYXRlKHJlc3Vs
dCk7CiAgICAgaWYgKHZhbGlkYXRlZFBheW1lbnRSZXF1ZXN0Lmhhc0V4Y2VwdGlvbigpKQpAQCAt
MjU0LDI0ICsyNDcsNiBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVu
dFJlcXVlc3Q+IGNvbnZlcnRBbmRWYWxpZGF0ZShEb2N1bWVudCYgZAogICAgIHJldHVybiBXVEZN
b3ZlKHJlc3VsdCk7CiB9CiAKLQotc3RhdGljIFZlY3RvcjxQYXltZW50RXJyb3I+IGNvbnZlcnQo
Y29uc3QgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4mIGVycm9ycykKLXsKLSAgICBWZWN0
b3I8UGF5bWVudEVycm9yPiBjb252ZXJ0ZWRFcnJvcnM7Ci0KLSAgICBmb3IgKGF1dG8mIGVycm9y
IDogZXJyb3JzKSB7Ci0gICAgICAgIFBheW1lbnRFcnJvciBjb252ZXJ0ZWRFcnJvcjsKLQotICAg
ICAgICBjb252ZXJ0ZWRFcnJvci5jb2RlID0gZXJyb3ItPmNvZGUoKTsKLSAgICAgICAgY29udmVy
dGVkRXJyb3IubWVzc2FnZSA9IGVycm9yLT5tZXNzYWdlKCk7Ci0gICAgICAgIGNvbnZlcnRlZEVy
cm9yLmNvbnRhY3RGaWVsZCA9IGVycm9yLT5jb250YWN0RmllbGQoKTsKLQotICAgICAgICBjb252
ZXJ0ZWRFcnJvcnMuYXBwZW5kKGNvbnZlcnRlZEVycm9yKTsKLSAgICB9Ci0KLSAgICByZXR1cm4g
Y29udmVydGVkRXJyb3JzOwotfQotCiBzdGF0aWMgRXhjZXB0aW9uT3I8UGF5bWVudEF1dGhvcml6
YXRpb25SZXN1bHQ+IGNvbnZlcnRBbmRWYWxpZGF0ZShBcHBsZVBheVBheW1lbnRBdXRob3JpemF0
aW9uUmVzdWx0JiYgcmVzdWx0KQogewogICAgIFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0IGNv
bnZlcnRlZFJlc3VsdDsKQEAgLTI4NywxNyArMjYyLDE3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxQ
YXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4gY29udmVydEFuZFZhbGlkYXRlKEFwcGxlUGF5UGF5
bWVuCiAKICAgICBjYXNlIEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX0lOVkFMSURfQklMTElOR19Q
T1NUQUxfQUREUkVTUzoKICAgICAgICAgY29udmVydGVkUmVzdWx0LnN0YXR1cyA9IFBheW1lbnRB
dXRob3JpemF0aW9uU3RhdHVzOjpGYWlsdXJlOwotICAgICAgICBjb252ZXJ0ZWRSZXN1bHQuZXJy
b3JzLmFwcGVuZCh7IFBheW1lbnRFcnJvcjo6Q29kZTo6QmlsbGluZ0NvbnRhY3RJbnZhbGlkLCB7
IH0sIFdURjo6bnVsbG9wdCB9KTsKKyAgICAgICAgY29udmVydGVkUmVzdWx0LmVycm9ycy5hcHBl
bmQoQXBwbGVQYXlFcnJvcjo6Y3JlYXRlKEFwcGxlUGF5RXJyb3JDb2RlOjpCaWxsaW5nQ29udGFj
dEludmFsaWQsIFdURjo6bnVsbG9wdCwgbnVsbFN0cmluZygpKSk7CiAgICAgICAgIGJyZWFrOwog
CiAgICAgY2FzZSBBcHBsZVBheVNlc3Npb246OlNUQVRVU19JTlZBTElEX1NISVBQSU5HX1BPU1RB
TF9BRERSRVNTOgogICAgICAgICBjb252ZXJ0ZWRSZXN1bHQuc3RhdHVzID0gUGF5bWVudEF1dGhv
cml6YXRpb25TdGF0dXM6OkZhaWx1cmU7Ci0gICAgICAgIGNvbnZlcnRlZFJlc3VsdC5lcnJvcnMu
YXBwZW5kKHsgUGF5bWVudEVycm9yOjpDb2RlOjpTaGlwcGluZ0NvbnRhY3RJbnZhbGlkLCB7IH0s
IFBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpQb3N0YWxBZGRyZXNzIH0pOworICAgICAgICBj
b252ZXJ0ZWRSZXN1bHQuZXJyb3JzLmFwcGVuZChBcHBsZVBheUVycm9yOjpjcmVhdGUoQXBwbGVQ
YXlFcnJvckNvZGU6OlNoaXBwaW5nQ29udGFjdEludmFsaWQsIEFwcGxlUGF5RXJyb3JDb250YWN0
RmllbGQ6OlBvc3RhbEFkZHJlc3MsIG51bGxTdHJpbmcoKSkpOwogICAgICAgICBicmVhazsKIAog
ICAgIGNhc2UgQXBwbGVQYXlTZXNzaW9uOjpTVEFUVVNfSU5WQUxJRF9TSElQUElOR19DT05UQUNU
OgogICAgICAgICBjb252ZXJ0ZWRSZXN1bHQuc3RhdHVzID0gUGF5bWVudEF1dGhvcml6YXRpb25T
dGF0dXM6OkZhaWx1cmU7Ci0gICAgICAgIGNvbnZlcnRlZFJlc3VsdC5lcnJvcnMuYXBwZW5kKHsg
UGF5bWVudEVycm9yOjpDb2RlOjpTaGlwcGluZ0NvbnRhY3RJbnZhbGlkLCB7IH0sIFdURjo6bnVs
bG9wdCB9KTsKKyAgICAgICAgY29udmVydGVkUmVzdWx0LmVycm9ycy5hcHBlbmQoQXBwbGVQYXlF
cnJvcjo6Y3JlYXRlKEFwcGxlUGF5RXJyb3JDb2RlOjpTaGlwcGluZ0NvbnRhY3RJbnZhbGlkLCBX
VEY6Om51bGxvcHQsIG51bGxTdHJpbmcoKSkpOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2Ug
QXBwbGVQYXlTZXNzaW9uOjpTVEFUVVNfUElOX1JFUVVJUkVEOgpAQCAtMzE2LDY4ICsyOTEsNTkg
QEAgc3RhdGljIEV4Y2VwdGlvbk9yPFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiBjb252ZXJ0
QW5kVmFsaWRhdGUoQXBwbGVQYXlQYXltZW4KICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRBY2Nlc3NFcnJvciB9OwogICAgIH0KIAotICAgIGNvbnZlcnRlZFJlc3VsdC5lcnJvcnMu
YXBwZW5kVmVjdG9yKGNvbnZlcnQocmVzdWx0LmVycm9ycykpOworICAgIGNvbnZlcnRlZFJlc3Vs
dC5lcnJvcnMuYXBwZW5kVmVjdG9yKFdURk1vdmUocmVzdWx0LmVycm9ycykpOwogCiAgICAgcmV0
dXJuIFdURk1vdmUoY29udmVydGVkUmVzdWx0KTsKIH0KIAotc3RhdGljIEV4Y2VwdGlvbk9yPFBh
eW1lbnRNZXRob2RVcGRhdGU+IGNvbnZlcnRBbmRWYWxpZGF0ZShBcHBsZVBheVBheW1lbnRNZXRo
b2RVcGRhdGUmJiB1cGRhdGUpCitzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlQYXltZW50TWV0
aG9kVXBkYXRlPiBjb252ZXJ0QW5kVmFsaWRhdGUoQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRl
JiYgdXBkYXRlKQogewogICAgIGF1dG8gY29udmVydGVkTmV3VG90YWwgPSBjb252ZXJ0QW5kVmFs
aWRhdGVUb3RhbChXVEZNb3ZlKHVwZGF0ZS5uZXdUb3RhbCkpOwogICAgIGlmIChjb252ZXJ0ZWRO
ZXdUb3RhbC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGNvbnZlcnRlZE5ld1RvdGFs
LnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICB1cGRhdGUubmV3VG90YWwgPSBjb252ZXJ0ZWROZXdU
b3RhbC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKIAogICAgIGF1dG8gY29udmVydGVkTmV3TGluZUl0
ZW1zID0gY29udmVydEFuZFZhbGlkYXRlKFdURk1vdmUodXBkYXRlLm5ld0xpbmVJdGVtcykpOwog
ICAgIGlmIChjb252ZXJ0ZWROZXdMaW5lSXRlbXMuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJl
dHVybiBjb252ZXJ0ZWROZXdMaW5lSXRlbXMucmVsZWFzZUV4Y2VwdGlvbigpOworICAgIHVwZGF0
ZS5uZXdMaW5lSXRlbXMgPSBjb252ZXJ0ZWROZXdMaW5lSXRlbXMucmVsZWFzZVJldHVyblZhbHVl
KCk7CiAKLSAgICBQYXltZW50TWV0aG9kVXBkYXRlIGNvbnZlcnRlZFVwZGF0ZSB7IGNvbnZlcnRl
ZE5ld1RvdGFsLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBjb252ZXJ0ZWROZXdMaW5lSXRlbXMucmVs
ZWFzZVJldHVyblZhbHVlKCkgfTsKLSAgICBmaW5pc2hDb252ZXJ0aW5nKGNvbnZlcnRlZFVwZGF0
ZSwgV1RGTW92ZSh1cGRhdGUpKTsKLQotICAgIHJldHVybiBXVEZNb3ZlKGNvbnZlcnRlZFVwZGF0
ZSk7CisgICAgcmV0dXJuIFdURk1vdmUodXBkYXRlKTsKIH0KIAotc3RhdGljIEV4Y2VwdGlvbk9y
PFNoaXBwaW5nQ29udGFjdFVwZGF0ZT4gY29udmVydEFuZFZhbGlkYXRlKEFwcGxlUGF5U2hpcHBp
bmdDb250YWN0VXBkYXRlJiYgdXBkYXRlKQorc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2hp
cHBpbmdDb250YWN0VXBkYXRlPiBjb252ZXJ0QW5kVmFsaWRhdGUoQXBwbGVQYXlTaGlwcGluZ0Nv
bnRhY3RVcGRhdGUmJiB1cGRhdGUpCiB7Ci0gICAgU2hpcHBpbmdDb250YWN0VXBkYXRlIGNvbnZl
cnRlZFVwZGF0ZTsKLQotICAgIGNvbnZlcnRlZFVwZGF0ZS5lcnJvcnMgPSBjb252ZXJ0KHVwZGF0
ZS5lcnJvcnMpOwotCiAgICAgYXV0byBjb252ZXJ0ZWROZXdTaGlwcGluZ01ldGhvZHMgPSBjb252
ZXJ0QW5kVmFsaWRhdGUoV1RGTW92ZSh1cGRhdGUubmV3U2hpcHBpbmdNZXRob2RzKSk7CiAgICAg
aWYgKGNvbnZlcnRlZE5ld1NoaXBwaW5nTWV0aG9kcy5oYXNFeGNlcHRpb24oKSkKICAgICAgICAg
cmV0dXJuIGNvbnZlcnRlZE5ld1NoaXBwaW5nTWV0aG9kcy5yZWxlYXNlRXhjZXB0aW9uKCk7Ci0g
ICAgY29udmVydGVkVXBkYXRlLm5ld1NoaXBwaW5nTWV0aG9kcyA9IGNvbnZlcnRlZE5ld1NoaXBw
aW5nTWV0aG9kcy5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICB1cGRhdGUubmV3U2hpcHBpbmdN
ZXRob2RzID0gY29udmVydGVkTmV3U2hpcHBpbmdNZXRob2RzLnJlbGVhc2VSZXR1cm5WYWx1ZSgp
OwogCiAgICAgYXV0byBjb252ZXJ0ZWROZXdUb3RhbCA9IGNvbnZlcnRBbmRWYWxpZGF0ZVRvdGFs
KFdURk1vdmUodXBkYXRlLm5ld1RvdGFsKSk7CiAgICAgaWYgKGNvbnZlcnRlZE5ld1RvdGFsLmhh
c0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gY29udmVydGVkTmV3VG90YWwucmVsZWFzZUV4
Y2VwdGlvbigpOwotICAgIGNvbnZlcnRlZFVwZGF0ZS5uZXdUb3RhbEFuZExpbmVJdGVtcy50b3Rh
bCA9IGNvbnZlcnRlZE5ld1RvdGFsLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgIHVwZGF0ZS5u
ZXdUb3RhbCA9IGNvbnZlcnRlZE5ld1RvdGFsLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCiAgICAg
YXV0byBjb252ZXJ0ZWROZXdMaW5lSXRlbXMgPSBjb252ZXJ0QW5kVmFsaWRhdGUoV1RGTW92ZSh1
cGRhdGUubmV3TGluZUl0ZW1zKSk7CiAgICAgaWYgKGNvbnZlcnRlZE5ld0xpbmVJdGVtcy5oYXNF
eGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGNvbnZlcnRlZE5ld0xpbmVJdGVtcy5yZWxlYXNl
RXhjZXB0aW9uKCk7Ci0gICAgY29udmVydGVkVXBkYXRlLm5ld1RvdGFsQW5kTGluZUl0ZW1zLmxp
bmVJdGVtcyA9IGNvbnZlcnRlZE5ld0xpbmVJdGVtcy5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAg
ICB1cGRhdGUubmV3TGluZUl0ZW1zID0gY29udmVydGVkTmV3TGluZUl0ZW1zLnJlbGVhc2VSZXR1
cm5WYWx1ZSgpOwogCi0gICAgcmV0dXJuIFdURk1vdmUoY29udmVydGVkVXBkYXRlKTsKKyAgICBy
ZXR1cm4gV1RGTW92ZSh1cGRhdGUpOwogfQogCi1zdGF0aWMgRXhjZXB0aW9uT3I8U2hpcHBpbmdN
ZXRob2RVcGRhdGU+IGNvbnZlcnRBbmRWYWxpZGF0ZShBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBk
YXRlJiYgdXBkYXRlKQorc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2RV
cGRhdGU+IGNvbnZlcnRBbmRWYWxpZGF0ZShBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlJiYg
dXBkYXRlKQogewotICAgIFNoaXBwaW5nTWV0aG9kVXBkYXRlIGNvbnZlcnRlZFVwZGF0ZTsKLQog
ICAgIGF1dG8gY29udmVydGVkTmV3VG90YWwgPSBjb252ZXJ0QW5kVmFsaWRhdGVUb3RhbChXVEZN
b3ZlKHVwZGF0ZS5uZXdUb3RhbCkpOwogICAgIGlmIChjb252ZXJ0ZWROZXdUb3RhbC5oYXNFeGNl
cHRpb24oKSkKICAgICAgICAgcmV0dXJuIGNvbnZlcnRlZE5ld1RvdGFsLnJlbGVhc2VFeGNlcHRp
b24oKTsKLQotICAgIGNvbnZlcnRlZFVwZGF0ZS5uZXdUb3RhbEFuZExpbmVJdGVtcy50b3RhbCA9
IGNvbnZlcnRlZE5ld1RvdGFsLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgIHVwZGF0ZS5uZXdU
b3RhbCA9IGNvbnZlcnRlZE5ld1RvdGFsLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCiAgICAgYXV0
byBjb252ZXJ0ZWROZXdMaW5lSXRlbXMgPSBjb252ZXJ0QW5kVmFsaWRhdGUoV1RGTW92ZSh1cGRh
dGUubmV3TGluZUl0ZW1zKSk7CiAgICAgaWYgKGNvbnZlcnRlZE5ld0xpbmVJdGVtcy5oYXNFeGNl
cHRpb24oKSkKICAgICAgICAgcmV0dXJuIGNvbnZlcnRlZE5ld0xpbmVJdGVtcy5yZWxlYXNlRXhj
ZXB0aW9uKCk7CisgICAgdXBkYXRlLm5ld0xpbmVJdGVtcyA9IGNvbnZlcnRlZE5ld0xpbmVJdGVt
cy5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKIAotICAgIGNvbnZlcnRlZFVwZGF0ZS5uZXdUb3RhbEFu
ZExpbmVJdGVtcy5saW5lSXRlbXMgPSBjb252ZXJ0ZWROZXdMaW5lSXRlbXMucmVsZWFzZVJldHVy
blZhbHVlKCk7Ci0KLSAgICByZXR1cm4gV1RGTW92ZShjb252ZXJ0ZWRVcGRhdGUpOworICAgIHJl
dHVybiBXVEZNb3ZlKHVwZGF0ZSk7CiB9CiAKIEV4Y2VwdGlvbk9yPFJlZjxBcHBsZVBheVNlc3Np
b24+PiBBcHBsZVBheVNlc3Npb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIHVuc2lnbmVk
IHZlcnNpb24sIEFwcGxlUGF5UGF5bWVudFJlcXVlc3QmJiBwYXltZW50UmVxdWVzdCkKQEAgLTY2
Myw4ICs2MjksOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVNlc3Npb246OmNvbXBsZXRl
U2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKHVuc2lnbmVkIHNobwogewogICAgIEFwcGxlUGF5U2hp
cHBpbmdDb250YWN0VXBkYXRlIHVwZGF0ZTsKIAotICAgIE9wdGlvbmFsPEFwcGxlUGF5RXJyb3I6
OkNvZGU+IGVycm9yQ29kZTsKLSAgICBPcHRpb25hbDxBcHBsZVBheUVycm9yOjpDb250YWN0Rmll
bGQ+IGNvbnRhY3RGaWVsZDsKKyAgICBPcHRpb25hbDxBcHBsZVBheUVycm9yQ29kZT4gZXJyb3JD
b2RlOworICAgIE9wdGlvbmFsPEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ+IGNvbnRhY3RGaWVs
ZDsKIAogICAgIHN3aXRjaCAoc3RhdHVzKSB7CiAgICAgY2FzZSBBcHBsZVBheVNlc3Npb246OlNU
QVRVU19TVUNDRVNTOgpAQCAtNjc0LDIwICs2NDAsMjAgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBw
bGVQYXlTZXNzaW9uOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbih1bnNpZ25lZCBz
aG8KICAgICBjYXNlIEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX1BJTl9SRVFVSVJFRDoKICAgICBj
YXNlIEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX1BJTl9JTkNPUlJFQ1Q6CiAgICAgY2FzZSBBcHBs
ZVBheVNlc3Npb246OlNUQVRVU19QSU5fTE9DS09VVDoKLSAgICAgICAgZXJyb3JDb2RlID0gQXBw
bGVQYXlFcnJvcjo6Q29kZTo6VW5rbm93bjsKKyAgICAgICAgZXJyb3JDb2RlID0gQXBwbGVQYXlF
cnJvckNvZGU6OlVua25vd247CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBBcHBsZVBheVNl
c3Npb246OlNUQVRVU19JTlZBTElEX0JJTExJTkdfUE9TVEFMX0FERFJFU1M6Ci0gICAgICAgIGVy
cm9yQ29kZSA9IEFwcGxlUGF5RXJyb3I6OkNvZGU6OkJpbGxpbmdDb250YWN0SW52YWxpZDsKKyAg
ICAgICAgZXJyb3JDb2RlID0gQXBwbGVQYXlFcnJvckNvZGU6OkJpbGxpbmdDb250YWN0SW52YWxp
ZDsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX0lO
VkFMSURfU0hJUFBJTkdfUE9TVEFMX0FERFJFU1M6Ci0gICAgICAgIGVycm9yQ29kZSA9IEFwcGxl
UGF5RXJyb3I6OkNvZGU6OlNoaXBwaW5nQ29udGFjdEludmFsaWQ7Ci0gICAgICAgIGNvbnRhY3RG
aWVsZCA9IEFwcGxlUGF5RXJyb3I6OkNvbnRhY3RGaWVsZDo6UG9zdGFsQWRkcmVzczsKKyAgICAg
ICAgZXJyb3JDb2RlID0gQXBwbGVQYXlFcnJvckNvZGU6OlNoaXBwaW5nQ29udGFjdEludmFsaWQ7
CisgICAgICAgIGNvbnRhY3RGaWVsZCA9IEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlBvc3Rh
bEFkZHJlc3M7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBBcHBsZVBheVNlc3Npb246OlNU
QVRVU19JTlZBTElEX1NISVBQSU5HX0NPTlRBQ1Q6Ci0gICAgICAgIGVycm9yQ29kZSA9IEFwcGxl
UGF5RXJyb3I6OkNvZGU6OlNoaXBwaW5nQ29udGFjdEludmFsaWQ7CisgICAgICAgIGVycm9yQ29k
ZSA9IEFwcGxlUGF5RXJyb3JDb2RlOjpTaGlwcGluZ0NvbnRhY3RJbnZhbGlkOwogICAgICAgICBi
cmVhazsKIAogICAgIGRlZmF1bHQ6CkBAIC03NTksNyArNzI1LDcgQEAgdm9pZCBBcHBsZVBheVNl
c3Npb246OmRpZEF1dGhvcml6ZVBheW1lbnQoY29uc3QgUGF5bWVudCYgcGF5bWVudCkKICAgICBk
aXNwYXRjaEV2ZW50KGV2ZW50LmdldCgpKTsKIH0KIAotdm9pZCBBcHBsZVBheVNlc3Npb246OmRp
ZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
OjpTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCit2b2lkIEFwcGxlUGF5U2Vzc2lvbjo6
ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYgc2hp
cHBpbmdNZXRob2QpCiB7CiAgICAgQVNTRVJUKG1fc3RhdGUgPT0gU3RhdGU6OkFjdGl2ZSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNz
aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5o
CmluZGV4IDMyY2M3NmM4N2Y2NWE3YzExMjVkNzI5MGUzNGFkYTBlNTNmYjViZGQuLmEwMjQ4Yjkx
NWZmOGY4NzYyMjY1NzUxNWEyMmU1NjQwMjNiNDljM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uaApAQCAtMTE1LDcgKzExNSw3IEBA
IHByaXZhdGU6CiAgICAgdW5zaWduZWQgdmVyc2lvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZv
aWQgdmFsaWRhdGVNZXJjaGFudChVUkwmJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRBdXRob3Jp
emVQYXltZW50KGNvbnN0IFBheW1lbnQmKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFNlbGVjdFNo
aXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGlu
Z01ldGhvZCYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29u
c3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkU2VsZWN0
U2hpcHBpbmdDb250YWN0KGNvbnN0IFBheW1lbnRDb250YWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBkaWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFBheW1lbnRNZXRob2QmKSBvdmVycmlkZTsK
ICAgICB2b2lkIGRpZENhbmNlbFBheW1lbnRTZXNzaW9uKFBheW1lbnRTZXNzaW9uRXJyb3ImJikg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0Fw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgKaW5kZXggMzk4NjQ3NmUxMmRm
ZjdmYzk4YjdlOTU0ODJjNWU2ZTQ1YzBiMGIyZi4uM2E3OGQ4ZDdkNDZiOWFmYmYwODVlNGM1YTY1
ZGI1NzcwZjIzNWU0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaApAQCAtMjcsMTQg
KzI3LDIxIEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCisjaW5jbHVkZSAiQXBwbGVQYXlF
cnJvci5oIgogI2luY2x1ZGUgIkFwcGxlUGF5TGluZUl0ZW0uaCIKKyNpbmNsdWRlICJBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kLmgiCiAjaW5jbHVkZSAiUGF5bWVudENvbnRhY3QuaCIKICNpbmNsdWRl
ICJQYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uV2ViQ29yZS5oIgogI2luY2x1ZGUgPHd0
Zi9FbnVtVHJhaXRzLmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW5jbHVkZSA8V2Vi
S2l0QWRkaXRpb25zL0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0QWRkaXRpb25zLmg+Cisj
ZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVtIGNsYXNzIFBheW1lbnRBdXRob3Jp
emF0aW9uU3RhdHVzOwpAQCAtOTUsMTUgKzEwMiw4IEBAIHB1YmxpYzoKICAgICBTaGlwcGluZ1R5
cGUgc2hpcHBpbmdUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9zaGlwcGluZ1R5cGU7IH0KICAgICB2
b2lkIHNldFNoaXBwaW5nVHlwZShTaGlwcGluZ1R5cGUgc2hpcHBpbmdUeXBlKSB7IG1fc2hpcHBp
bmdUeXBlID0gc2hpcHBpbmdUeXBlOyB9CiAKLSAgICBzdHJ1Y3QgU2hpcHBpbmdNZXRob2Qgewot
ICAgICAgICBTdHJpbmcgbGFiZWw7Ci0gICAgICAgIFN0cmluZyBkZXRhaWw7Ci0gICAgICAgIFN0
cmluZyBhbW91bnQ7Ci0KLSAgICAgICAgU3RyaW5nIGlkZW50aWZpZXI7Ci0gICAgfTsKLSAgICBj
b25zdCBWZWN0b3I8U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGluZ01ldGhvZHMoKSBjb25zdCB7IHJl
dHVybiBtX3NoaXBwaW5nTWV0aG9kczsgfQotICAgIHZvaWQgc2V0U2hpcHBpbmdNZXRob2RzKGNv
bnN0IFZlY3RvcjxTaGlwcGluZ01ldGhvZD4mIHNoaXBwaW5nTWV0aG9kcykgeyBtX3NoaXBwaW5n
TWV0aG9kcyA9IHNoaXBwaW5nTWV0aG9kczsgfQorICAgIGNvbnN0IFZlY3RvcjxBcHBsZVBheVNo
aXBwaW5nTWV0aG9kPiYgc2hpcHBpbmdNZXRob2RzKCkgY29uc3QgeyByZXR1cm4gbV9zaGlwcGlu
Z01ldGhvZHM7IH0KKyAgICB2b2lkIHNldFNoaXBwaW5nTWV0aG9kcyhjb25zdCBWZWN0b3I8QXBw
bGVQYXlTaGlwcGluZ01ldGhvZD4mIHNoaXBwaW5nTWV0aG9kcykgeyBtX3NoaXBwaW5nTWV0aG9k
cyA9IHNoaXBwaW5nTWV0aG9kczsgfQogCiAgICAgY29uc3QgVmVjdG9yPEFwcGxlUGF5TGluZUl0
ZW0+JiBsaW5lSXRlbXMoKSBjb25zdCB7IHJldHVybiBtX2xpbmVJdGVtczsgfQogICAgIHZvaWQg
c2V0TGluZUl0ZW1zKGNvbnN0IFZlY3RvcjxBcHBsZVBheUxpbmVJdGVtPiYgbGluZUl0ZW1zKSB7
IG1fbGluZUl0ZW1zID0gbGluZUl0ZW1zOyB9CkBAIC0xMTEsMTEgKzExMSw2IEBAIHB1YmxpYzoK
ICAgICBjb25zdCBBcHBsZVBheUxpbmVJdGVtJiB0b3RhbCgpIGNvbnN0IHsgcmV0dXJuIG1fdG90
YWw7IH07CiAgICAgdm9pZCBzZXRUb3RhbChjb25zdCBBcHBsZVBheUxpbmVJdGVtJiB0b3RhbCkg
eyBtX3RvdGFsID0gdG90YWw7IH0KIAotICAgIHN0cnVjdCBUb3RhbEFuZExpbmVJdGVtcyB7Ci0g
ICAgICAgIEFwcGxlUGF5TGluZUl0ZW0gdG90YWw7Ci0gICAgICAgIFZlY3RvcjxBcHBsZVBheUxp
bmVJdGVtPiBsaW5lSXRlbXM7Ci0gICAgfTsKLQogICAgIGNvbnN0IFN0cmluZyYgYXBwbGljYXRp
b25EYXRhKCkgY29uc3QgeyByZXR1cm4gbV9hcHBsaWNhdGlvbkRhdGE7IH0KICAgICB2b2lkIHNl
dEFwcGxpY2F0aW9uRGF0YShjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uRGF0YSkgeyBtX2FwcGxp
Y2F0aW9uRGF0YSA9IGFwcGxpY2F0aW9uRGF0YTsgfQogCkBAIC0xNTEsNyArMTQ2LDcgQEAgcHJp
dmF0ZToKICAgICBNZXJjaGFudENhcGFiaWxpdGllcyBtX21lcmNoYW50Q2FwYWJpbGl0aWVzOwog
CiAgICAgU2hpcHBpbmdUeXBlIG1fc2hpcHBpbmdUeXBlIHsgU2hpcHBpbmdUeXBlOjpTaGlwcGlu
ZyB9OwotICAgIFZlY3RvcjxTaGlwcGluZ01ldGhvZD4gbV9zaGlwcGluZ01ldGhvZHM7CisgICAg
VmVjdG9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+IG1fc2hpcHBpbmdNZXRob2RzOwogCiAgICAg
VmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+IG1fbGluZUl0ZW1zOwogICAgIEFwcGxlUGF5TGluZUl0
ZW0gbV90b3RhbDsKQEAgLTE2NCw1MSArMTU5LDE1IEBAIHByaXZhdGU6CiAjaWYgSEFWRShQQVNT
S0lUX0lOU1RBTExNRU5UUykKICAgICBQYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uIG1f
aW5zdGFsbG1lbnRDb25maWd1cmF0aW9uOwogI2VuZGlmCi19OwogCi1zdHJ1Y3QgUGF5bWVudEVy
cm9yIHsKLSAgICBlbnVtIGNsYXNzIENvZGUgewotICAgICAgICBVbmtub3duLAotICAgICAgICBT
aGlwcGluZ0NvbnRhY3RJbnZhbGlkLAotICAgICAgICBCaWxsaW5nQ29udGFjdEludmFsaWQsCi0g
ICAgICAgIEFkZHJlc3NVbnNlcnZpY2VhYmxlLAotICAgIH07Ci0KLSAgICBlbnVtIGNsYXNzIENv
bnRhY3RGaWVsZCB7Ci0gICAgICAgIFBob25lTnVtYmVyLAotICAgICAgICBFbWFpbEFkZHJlc3Ms
Ci0gICAgICAgIE5hbWUsCi0gICAgICAgIFBob25ldGljTmFtZSwKLSAgICAgICAgUG9zdGFsQWRk
cmVzcywKLSAgICAgICAgQWRkcmVzc0xpbmVzLAotICAgICAgICBTdWJMb2NhbGl0eSwKLSAgICAg
ICAgTG9jYWxpdHksCi0gICAgICAgIFBvc3RhbENvZGUsCi0gICAgICAgIFN1YkFkbWluaXN0cmF0
aXZlQXJlYSwKLSAgICAgICAgQWRtaW5pc3RyYXRpdmVBcmVhLAotICAgICAgICBDb3VudHJ5LAot
ICAgICAgICBDb3VudHJ5Q29kZSwKLSAgICB9OwotCi0gICAgQ29kZSBjb2RlOwotICAgIFN0cmlu
ZyBtZXNzYWdlOwotICAgIE9wdGlvbmFsPENvbnRhY3RGaWVsZD4gY29udGFjdEZpZWxkOworI2lm
IGRlZmluZWQoQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3RBZGRpdGlvbnNfbWVtYmVycykK
KyAgICBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdEFkZGl0aW9uc19tZW1iZXJzCisjZW5k
aWYKIH07CiAKIHN0cnVjdCBQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdCB7CiAgICAgUGF5bWVu
dEF1dGhvcml6YXRpb25TdGF0dXMgc3RhdHVzOwotICAgIFZlY3RvcjxQYXltZW50RXJyb3I+IGVy
cm9yczsKLX07Ci0KLXN0cnVjdCBTaGlwcGluZ0NvbnRhY3RVcGRhdGUgewotICAgIFZlY3RvcjxQ
YXltZW50RXJyb3I+IGVycm9yczsKLQotICAgIFZlY3RvcjxBcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+IG5ld1NoaXBwaW5nTWV0aG9kczsKLSAgICBBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXMgbmV3VG90YWxBbmRMaW5l
SXRlbXM7Ci19OwotCi1zdHJ1Y3QgU2hpcHBpbmdNZXRob2RVcGRhdGUgewotICAgIEFwcGxlUGF5
U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcyBuZXdUb3RhbEFuZExpbmVJ
dGVtczsKKyAgICBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiBlcnJvcnM7CiB9OwogCiBX
RUJDT1JFX0VYUE9SVCBib29sIGlzRmluYWxTdGF0ZVJlc3VsdChjb25zdCBPcHRpb25hbDxQYXlt
ZW50QXV0aG9yaXphdGlvblJlc3VsdD4mKTsKQEAgLTIyNywzNSArMTg2LDYgQEAgdGVtcGxhdGU8
PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dDo6U2hpcHBpbmdUeXAKICAgICA+OwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU+IHsKLSAgICB1c2luZyB2YWx1ZXMgPSBFbnVt
VmFsdWVzPAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGUsCi0gICAgICAgIFdl
YkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6VW5rbm93biwKLSAgICAgICAgV2ViQ29yZTo6UGF5
bWVudEVycm9yOjpDb2RlOjpTaGlwcGluZ0NvbnRhY3RJbnZhbGlkLAotICAgICAgICBXZWJDb3Jl
OjpQYXltZW50RXJyb3I6OkNvZGU6OkJpbGxpbmdDb250YWN0SW52YWxpZCwKLSAgICAgICAgV2Vi
Q29yZTo6UGF5bWVudEVycm9yOjpDb2RlOjpBZGRyZXNzVW5zZXJ2aWNlYWJsZQotICAgID47Ci19
OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6
Q29udGFjdEZpZWxkPiB7Ci0gICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKLSAgICAgICAg
V2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQsCi0gICAgICAgIFdlYkNvcmU6OlBh
eW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpQaG9uZU51bWJlciwKLSAgICAgICAgV2ViQ29yZTo6
UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OkVtYWlsQWRkcmVzcywKLSAgICAgICAgV2ViQ29y
ZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6Ok5hbWUsCi0gICAgICAgIFdlYkNvcmU6OlBh
eW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpQaG9uZXRpY05hbWUsCi0gICAgICAgIFdlYkNvcmU6
OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpQb3N0YWxBZGRyZXNzLAotICAgICAgICBXZWJD
b3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6QWRkcmVzc0xpbmVzLAotICAgICAgICBX
ZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6U3ViTG9jYWxpdHksCi0gICAgICAg
IFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpMb2NhbGl0eSwKLSAgICAgICAg
V2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlBvc3RhbENvZGUsCi0gICAgICAg
IFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpTdWJBZG1pbmlzdHJhdGl2ZUFy
ZWEsCi0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpBZG1pbmlz
dHJhdGl2ZUFyZWEsCi0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxk
OjpDb3VudHJ5LAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6
Q291bnRyeUNvZGUKLSAgICA+OwotfTsKLQogfSAvLyBuYW1lc3BhY2UgV1RGCiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBw
aW5nQ29udGFjdFVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oCmluZGV4IDcyNTk3Nzg4OGM5NmEyZGNmY2I0Yzdl
YTNiMjA4N2Q5ZTc5YjQ4NTMuLjg3NTJhMDM0Njg4MmNkMmY1ODJiMzk5MGFmNjYyZmQwNDEzYjM5
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlT
aGlwcGluZ0NvbnRhY3RVcGRhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L0FwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmgKQEAgLTI3LDIwICsyNyw1NSBAQAog
CiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAorI2luY2x1ZGUgIkFwcGxlUGF5RGV0YWlsc1VwZGF0
ZUJhc2UuaCIKICNpbmNsdWRlICJBcHBsZVBheUVycm9yLmgiCi0jaW5jbHVkZSAiQXBwbGVQYXlM
aW5lSXRlbS5oIgogI2luY2x1ZGUgIkFwcGxlUGF5U2hpcHBpbmdNZXRob2QuaCIKKyNpbmNsdWRl
IDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBBcHBsZVBheVNoaXBw
aW5nQ29udGFjdFVwZGF0ZSB7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUg
ZmluYWwgOiBwdWJsaWMgQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZSB7CiAgICAgVmVjdG9yPFJl
ZlB0cjxBcHBsZVBheUVycm9yPj4gZXJyb3JzOwogCiAgICAgVmVjdG9yPEFwcGxlUGF5U2hpcHBp
bmdNZXRob2Q+IG5ld1NoaXBwaW5nTWV0aG9kczsKLSAgICBBcHBsZVBheUxpbmVJdGVtIG5ld1Rv
dGFsOwotICAgIFZlY3RvcjxBcHBsZVBheUxpbmVJdGVtPiBuZXdMaW5lSXRlbXM7CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdD
b250YWN0VXBkYXRlPiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4KK3ZvaWQgQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU6OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAoreworICAgIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2U6OmVuY29k
ZShlbmNvZGVyKTsKKyAgICBlbmNvZGVyIDw8IGVycm9yczsKKyAgICBlbmNvZGVyIDw8IG5ld1No
aXBwaW5nTWV0aG9kczsKIH0KIAordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPEFw
cGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0
ZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgQXBwbGVQYXlTaGlwcGluZ0NvbnRh
Y3RVcGRhdGUgcmVzdWx0OworCisgICAgaWYgKCFyZXN1bHQuZGVjb2RlQmFzZShkZWNvZGVyKSkK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworI2RlZmluZSBERUNPREUobmFtZSwgdHlw
ZSkgXAorICAgIE9wdGlvbmFsPHR5cGU+IG5hbWU7IFwKKyAgICBkZWNvZGVyID4+IG5hbWU7IFwK
KyAgICBpZiAoIW5hbWUpIFwKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsgXAorICAgIHJl
c3VsdC5uYW1lID0gV1RGTW92ZSgqbmFtZSk7IFwKKworICAgIERFQ09ERShlcnJvcnMsIFZlY3Rv
cjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+KQorICAgIERFQ09ERShuZXdTaGlwcGluZ01ldGhvZHMs
IFZlY3RvcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPikKKworI3VuZGVmIERFQ09ERQorCisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGlu
Z0NvbnRhY3RVcGRhdGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5pZGwKaW5kZXggMDUyZTgyYmZjMTE5NTcxZDYwZTJm
MzI3MDg0ZmZmZGUyNWM0Y2U0ZS4uZjExZjM1YmY2OGE1YjNlNjA0ZmZkNzNkODFkNGE4MDhlZDY5
YzFjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5pZGwKQEAgLTI1LDEwICsyNSw4
IEBACiAKIFsKICAgICBDb25kaXRpb25hbD1BUFBMRV9QQVksCi1dIGRpY3Rpb25hcnkgQXBwbGVQ
YXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUgeworXSBkaWN0aW9uYXJ5IEFwcGxlUGF5U2hpcHBpbmdD
b250YWN0VXBkYXRlIDogQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZSB7CiAgICAgc2VxdWVuY2U8
QXBwbGVQYXlFcnJvcj4gZXJyb3JzOwogCiAgICAgc2VxdWVuY2U8QXBwbGVQYXlTaGlwcGluZ01l
dGhvZD4gbmV3U2hpcHBpbmdNZXRob2RzOwotICAgIHJlcXVpcmVkIEFwcGxlUGF5TGluZUl0ZW0g
bmV3VG90YWw7Ci0gICAgc2VxdWVuY2U8QXBwbGVQYXlMaW5lSXRlbT4gbmV3TGluZUl0ZW1zOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlT
aGlwcGluZ01ldGhvZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVNoaXBwaW5nTWV0aG9kLmgKaW5kZXggNTkzNTIxYWY0NmJjMWQ1MmNlZjRlZjkyZTZlNTlmODAw
ODJjMDU5My4uZTM5NDJhMThiZDI3MWMxMjRmMmE0ZWQxMzY1ZDViMzljOWU0NjUyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0
aG9kLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBw
aW5nTWV0aG9kLmgKQEAgLTM2LDggKzM2LDM5IEBAIHN0cnVjdCBBcHBsZVBheVNoaXBwaW5nTWV0
aG9kIHsKICAgICBTdHJpbmcgZGV0YWlsOwogICAgIFN0cmluZyBhbW91bnQ7CiAgICAgU3RyaW5n
IGlkZW50aWZpZXI7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlv
bmFsPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCit0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kOjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IGxhYmVsOworICAgIGVu
Y29kZXIgPDwgZGV0YWlsOworICAgIGVuY29kZXIgPDwgYW1vdW50OworICAgIGVuY29kZXIgPDwg
aWRlbnRpZmllcjsKIH0KIAordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPEFwcGxl
UGF5U2hpcHBpbmdNZXRob2Q+IEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q6OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyKQoreworI2RlZmluZSBERUNPREUobmFtZSwgdHlwZSkgXAorICAgIE9wdGlvbmFs
PHR5cGU+IG5hbWU7IFwKKyAgICBkZWNvZGVyID4+IG5hbWU7IFwKKyAgICBpZiAoIW5hbWUpIFwK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsgXAorCisgICAgREVDT0RFKGxhYmVsLCBTdHJp
bmcpCisgICAgREVDT0RFKGRldGFpbCwgU3RyaW5nKQorICAgIERFQ09ERShhbW91bnQsIFN0cmlu
ZykKKyAgICBERUNPREUoaWRlbnRpZmllciwgU3RyaW5nKQorCisjdW5kZWYgREVDT0RFCisKKyAg
ICByZXR1cm4ge3sgV1RGTW92ZSgqbGFiZWwpLCBXVEZNb3ZlKCpkZXRhaWwpLCBXVEZNb3ZlKCph
bW91bnQpLCBXVEZNb3ZlKCppZGVudGlmaWVyKSB9fTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudC5j
cHAKaW5kZXggYmQ3NjVmOGM1ZjZlNDNjYzUzMjgwYmNkNzQ3MDRjOWE5ODQ4MmVjNi4uOTU3NzZh
NDQ4Zjg1YjI3YWY5NDU2MGJlZDk4ZmNlYjcxMzk2NDRkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBw
aW5nTWV0aG9kU2VsZWN0ZWRFdmVudC5jcHAKQEAgLTM1LDIwICszNSw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEFwcGxlUGF5U2hpcHBpbmdN
ZXRob2RTZWxlY3RlZEV2ZW50KTsKIAotc3RhdGljIGlubGluZSBBcHBsZVBheVNoaXBwaW5nTWV0
aG9kIGNvbnZlcnQoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5n
TWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKLXsKLSAgICBBcHBsZVBheVNoaXBwaW5nTWV0aG9kIGNv
bnZlcnRlZE1ldGhvZDsKLSAgICBjb252ZXJ0ZWRNZXRob2QubGFiZWwgPSBzaGlwcGluZ01ldGhv
ZC5sYWJlbDsKLSAgICBjb252ZXJ0ZWRNZXRob2QuZGV0YWlsID0gc2hpcHBpbmdNZXRob2QuZGV0
YWlsOwotICAgIGNvbnZlcnRlZE1ldGhvZC5pZGVudGlmaWVyID0gc2hpcHBpbmdNZXRob2QuaWRl
bnRpZmllcjsKLSAgICBjb252ZXJ0ZWRNZXRob2QuYW1vdW50ID0gc2hpcHBpbmdNZXRob2QuYW1v
dW50OwotCi0gICAgcmV0dXJuIGNvbnZlcnRlZE1ldGhvZDsgCi19Ci0KLUFwcGxlUGF5U2hpcHBp
bmdNZXRob2RTZWxlY3RlZEV2ZW50OjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVu
dChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVx
dWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQorQXBwbGVQYXlTaGlwcGluZ01l
dGhvZFNlbGVjdGVkRXZlbnQ6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50KGNv
bnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2QmIHNoaXBw
aW5nTWV0aG9kKQogICAgIDogRXZlbnQodHlwZSwgQ2FuQnViYmxlOjpObywgSXNDYW5jZWxhYmxl
OjpObykKLSAgICAsIG1fc2hpcHBpbmdNZXRob2QoY29udmVydChzaGlwcGluZ01ldGhvZCkpCisg
ICAgLCBtX3NoaXBwaW5nTWV0aG9kKHNoaXBwaW5nTWV0aG9kKQogewogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RT
ZWxlY3RlZEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50LmgKaW5kZXggY2EzMzkwNzMyNjliOTZmZDY1NjMw
MDdlZjUxYTUxMTU3OGI3N2FhOC4uZjYwYTJhNWYzYjRmYTEyMGY1ZDc5ZjRiOThhMjA1OGM0YzZi
MWY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQuaApAQCAtMjcs
NyArMjcsNiBAQAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAotI2luY2x1ZGUgIkFwcGxlUGF5
U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ01ldGhv
ZC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAKQEAgLTM2LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQgZmluYWwg
OiBwdWJsaWMgRXZlbnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQXBwbGVQYXlTaGlw
cGluZ01ldGhvZFNlbGVjdGVkRXZlbnQpOwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QXBwbGVQ
YXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0
eXBlLCBjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Qm
IHNoaXBwaW5nTWV0aG9kKQorICAgIHN0YXRpYyBSZWY8QXBwbGVQYXlTaGlwcGluZ01ldGhvZFNl
bGVjdGVkRXZlbnQ+IGNyZWF0ZShjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKICAgICB7CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEFwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50KHR5cGUsIHNo
aXBwaW5nTWV0aG9kKSk7CiAgICAgfQpAQCAtNDYsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgY29u
c3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QoKSBjb25zdCB7IHJldHVy
biBtX3NoaXBwaW5nTWV0aG9kOyB9CiAKIHByaXZhdGU6Ci0gICAgQXBwbGVQYXlTaGlwcGluZ01l
dGhvZFNlbGVjdGVkRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgQXBwbGVQYXlT
ZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJik7CisgICAgQXBwbGVQYXlTaGlw
cGluZ01ldGhvZFNlbGVjdGVkRXZlbnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgQXBw
bGVQYXlTaGlwcGluZ01ldGhvZCYpOwogCiAgICAgLy8gRXZlbnQuCiAgICAgRXZlbnRJbnRlcmZh
Y2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBk
YXRlLmgKaW5kZXggZGE2ZDlkNDhkZjAzNjlmMWU5N2E4NTQzNDk1OGJmMDQzZDIyZjg1Zi4uNjM5
YmUwZDJiYjkyYTExNDM2N2JiYTM2Yjk4N2I5YzY2ZGQ5MWY1MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0
aG9kVXBkYXRlLmgKQEAgLTI3LDE1ICsyNywzMiBAQAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkK
IAotI2luY2x1ZGUgIkFwcGxlUGF5TGluZUl0ZW0uaCIKKyNpbmNsdWRlICJBcHBsZVBheURldGFp
bHNVcGRhdGVCYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IEFwcGxlUGF5
U2hpcHBpbmdNZXRob2RVcGRhdGUgewotICAgIEFwcGxlUGF5TGluZUl0ZW0gbmV3VG90YWw7Ci0g
ICAgVmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+IG5ld0xpbmVJdGVtczsKK3N0cnVjdCBBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kVXBkYXRlIGZpbmFsIDogcHVibGljIEFwcGxlUGF5RGV0YWlsc1VwZGF0
ZUJhc2UgeworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXIm
KSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8QXBw
bGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKK3RlbXBs
YXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU6OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIEFwcGxlUGF5RGV0YWlsc1VwZGF0
ZUJhc2U6OmVuY29kZShlbmNvZGVyKTsKIH0KIAordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09w
dGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+IEFwcGxlUGF5U2hpcHBpbmdNZXRo
b2RVcGRhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIEFwcGxlUGF5U2hpcHBp
bmdNZXRob2RVcGRhdGUgcmVzdWx0OworCisgICAgaWYgKCFyZXN1bHQuZGVjb2RlQmFzZShkZWNv
ZGVyKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUu
aWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0
aG9kVXBkYXRlLmlkbAppbmRleCA4NDU5ZGE4ZDc1ZDQzZWE4NzkyMDk0NTBkZTZiNzBmNjljODFm
YmFiLi4yZTU0NGM1MDc5ZmFhZjBjMDg5ZWUyZDIxODRmOWVjNjNjMzVkYjBhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RV
cGRhdGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlT
aGlwcGluZ01ldGhvZFVwZGF0ZS5pZGwKQEAgLTI1LDcgKzI1LDUgQEAKIAogWwogICAgIENvbmRp
dGlvbmFsPUFQUExFX1BBWSwKLV0gZGljdGlvbmFyeSBBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBk
YXRlIHsKLSAgICByZXF1aXJlZCBBcHBsZVBheUxpbmVJdGVtIG5ld1RvdGFsOwotICAgIHNlcXVl
bmNlPEFwcGxlUGF5TGluZUl0ZW0+IG5ld0xpbmVJdGVtczsKK10gZGljdGlvbmFyeSBBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kVXBkYXRlIDogQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZSB7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRp
bmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRp
bmF0b3IuY3BwCmluZGV4IDZiMGQ0NDQ2NjA0NmMxZDQwNjc4MGYxZTE4NTAyNDA4MTI5NDQxMTMu
LjM1ZmYxMjM4YmJlN2VjZmNjNWYwOWZmMTg2NzZmYWIwYjE0ZDRmYTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGluYXRvci5jcHAK
QEAgLTI4LDYgKzI4LDEwIEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCisjaW5jbHVkZSAi
QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGlu
Z0NvbnRhY3RVcGRhdGUuaCIKKyNpbmNsdWRlICJBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmgiCisj
aW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiTGlua0ljb25Db2xsZWN0b3IuaCIKICNpbmNsdWRlICJMb2dnaW5n
LmgiCkBAIC0xMjgsMjEgKzEzMiwyMSBAQCB2b2lkIFBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxl
dGVNZXJjaGFudFZhbGlkYXRpb24oY29uc3QgUGF5bWVudE1lcmNoYW50U2Vzc2lvbgogICAgIG1f
Y2xpZW50LmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKHBheW1lbnRNZXJjaGFudFNlc3Npb24p
OwogfQogCi12b2lkIFBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNl
bGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCit2b2lkIFBh
eW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25h
bDxBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKIHsKICAgICBBU1NFUlQo
bV9hY3RpdmVTZXNzaW9uKTsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjb21wbGV0ZVNo
aXBwaW5nTWV0aG9kU2VsZWN0aW9uKCkiKTsKICAgICBtX2NsaWVudC5jb21wbGV0ZVNoaXBwaW5n
TWV0aG9kU2VsZWN0aW9uKFdURk1vdmUodXBkYXRlKSk7CiB9CiAKLXZvaWQgUGF5bWVudENvb3Jk
aW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGlu
Z0NvbnRhY3RVcGRhdGU+JiYgdXBkYXRlKQordm9pZCBQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBs
ZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdDb250
YWN0VXBkYXRlPiYmIHVwZGF0ZSkKIHsKICAgICBBU1NFUlQobV9hY3RpdmVTZXNzaW9uKTsKICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlv
bigpIik7CiAgICAgbV9jbGllbnQuY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oV1RG
TW92ZSh1cGRhdGUpKTsKIH0KIAotdm9pZCBQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5
bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxQYXltZW50TWV0aG9kVXBkYXRlPiYmIHVwZGF0
ZSkKK3ZvaWQgUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rp
b24oT3B0aW9uYWw8QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKIHsKICAg
ICBBU1NFUlQobV9hY3RpdmVTZXNzaW9uKTsKICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJj
b21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oKSIpOwpAQCAtMjExLDcgKzIxNSw3IEBAIHZv
aWQgUGF5bWVudENvb3JkaW5hdG9yOjpkaWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFBheW1l
bnRNZXRob2QmIHBheW1lbnRNZXRoCiAgICAgbV9hY3RpdmVTZXNzaW9uLT5kaWRTZWxlY3RQYXlt
ZW50TWV0aG9kKHBheW1lbnRNZXRob2QpOwogfQogCi12b2lkIFBheW1lbnRDb29yZGluYXRvcjo6
ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVl
c3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKK3ZvaWQgUGF5bWVudENvb3JkaW5h
dG9yOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9k
JiBzaGlwcGluZ01ldGhvZCkKIHsKICAgICBpZiAoIW1fYWN0aXZlU2Vzc2lvbikgewogICAgICAg
ICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHBheW1lbnQgaGFzIGJlZW4gYWJvcnRlZCBhbHJl
YWR5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50
Q29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENv
b3JkaW5hdG9yLmgKaW5kZXggN2JkNGEyNWYzOWUzN2Y0Y2Q0ZDQyMDljMGZjYTQzZDc4MzdkN2Fk
MC4uNjQ1Yzc5NjM2NWU3ZTg2YmM2ZjFmZjVmYmEwNDNlZGE4MDAwNWQwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGluYXRvci5oCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Qu
aCIKICNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4K
KyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MSwxNSArNDIsMTYgQEAgY2xhc3MgUGF5bWVudENvb3Jk
aW5hdG9yQ2xpZW50OwogY2xhc3MgUGF5bWVudENvbnRhY3Q7CiBjbGFzcyBQYXltZW50TWVyY2hh
bnRTZXNzaW9uOwogY2xhc3MgUGF5bWVudE1ldGhvZDsKLWNsYXNzIFBheW1lbnRNZXRob2RVcGRh
dGU7CiBjbGFzcyBQYXltZW50U2Vzc2lvbjsKIGNsYXNzIFBheW1lbnRTZXNzaW9uRXJyb3I7CiBl
bnVtIGNsYXNzIFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOworc3RydWN0IEFwcGxlUGF5UGF5
bWVudE1ldGhvZFVwZGF0ZTsKIHN0cnVjdCBBcHBsZVBheVNldHVwQ29uZmlndXJhdGlvbjsKK3N0
cnVjdCBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZTsKK3N0cnVjdCBBcHBsZVBheVNoaXBw
aW5nTWV0aG9kOworc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU7CiBzdHJ1Y3Qg
RXhjZXB0aW9uRGV0YWlsczsKIHN0cnVjdCBQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdDsKLXN0
cnVjdCBTaGlwcGluZ0NvbnRhY3RVcGRhdGU7Ci1zdHJ1Y3QgU2hpcHBpbmdNZXRob2RVcGRhdGU7
CiAKIGNsYXNzIFBheW1lbnRDb29yZGluYXRvciA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxQYXlt
ZW50Q29vcmRpbmF0b3I+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTY4LDkg
KzcwLDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBiZWdpblBheW1lbnRTZXNzaW9uKERvY3VtZW50
JiwgUGF5bWVudFNlc3Npb24mLCBjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYp
OwogICAgIHZvaWQgY29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24oY29uc3QgUGF5bWVudE1lcmNo
YW50U2Vzc2lvbiYpOwotICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihP
cHRpb25hbDxTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJik7Ci0gICAgdm9pZCBjb21wbGV0ZVNoaXBw
aW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYpOwot
ICAgIHZvaWQgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFBheW1lbnRN
ZXRob2RVcGRhdGU+JiYpOworICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlv
bihPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKTsKKyAgICB2b2lkIGNv
bXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdD
b250YWN0VXBkYXRlPiYmKTsKKyAgICB2b2lkIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlv
bihPcHRpb25hbDxBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+JiYpOwogICAgIHZvaWQgY29t
cGxldGVQYXltZW50U2Vzc2lvbihPcHRpb25hbDxQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4m
Jik7CiAgICAgdm9pZCBhYm9ydFBheW1lbnRTZXNzaW9uKCk7CiAgICAgdm9pZCBjYW5jZWxQYXlt
ZW50U2Vzc2lvbigpOwpAQCAtNzgsNyArODAsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCB2YWxpZGF0ZU1lcmNoYW50KFVSTCYmIHZhbGlkYXRpb25VUkwpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBQYXltZW50Jik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFBheW1lbnRN
ZXRob2QmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nTWV0aG9k
KGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgQXBw
bGVQYXlTaGlwcGluZ01ldGhvZCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkU2VsZWN0
U2hpcHBpbmdDb250YWN0KGNvbnN0IFBheW1lbnRDb250YWN0Jik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBkaWRDYW5jZWxQYXltZW50U2Vzc2lvbihQYXltZW50U2Vzc2lvbkVycm9yJiYpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29y
ZGluYXRvckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50
Q29vcmRpbmF0b3JDbGllbnQuaAppbmRleCBkNmUyNmZjOTc0MDQ1NzRiYzFjMjAxOTQ5MjE1ZDFl
YmY0ZjdhNTVjLi4xNmVkYzgzZWVlYjJmMTZjZTlhYmQ5YzBiMGE4NWQxYTUzY2YxYjIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGluYXRv
ckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENv
b3JkaW5hdG9yQ2xpZW50LmgKQEAgLTMyLDE2ICszMiwxNyBAQAogI2luY2x1ZGUgPHd0Zi9Db21w
bGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBQYXltZW50TWVyY2hhbnRTZXNzaW9uOwot
Y2xhc3MgUGF5bWVudE1ldGhvZFVwZGF0ZTsKK3N0cnVjdCBBcHBsZVBheVBheW1lbnRNZXRob2RV
cGRhdGU7CiBzdHJ1Y3QgQXBwbGVQYXlTZXR1cENvbmZpZ3VyYXRpb247CitzdHJ1Y3QgQXBwbGVQ
YXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVw
ZGF0ZTsKIHN0cnVjdCBQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdDsKLXN0cnVjdCBTaGlwcGlu
Z0NvbnRhY3RVcGRhdGU7Ci1zdHJ1Y3QgU2hpcHBpbmdNZXRob2RVcGRhdGU7CiAKIGNsYXNzIFBh
eW1lbnRDb29yZGluYXRvckNsaWVudCB7CiBwdWJsaWM6CkBAIC01NCw5ICs1NSw5IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgYm9vbCBzaG93UGF5bWVudFVJKGNvbnN0IFVSTCYgb3JpZ2luYXRp
bmdVUkwsIGNvbnN0IFZlY3RvcjxVUkw+JiBsaW5rSWNvblVSTHMsIGNvbnN0IEFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjb21wbGV0ZU1lcmNo
YW50VmFsaWRhdGlvbihjb25zdCBQYXltZW50TWVyY2hhbnRTZXNzaW9uJikgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFNoaXBw
aW5nTWV0aG9kVXBkYXRlPiYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXBsZXRlU2hpcHBp
bmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJikgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9u
YWw8UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb21wbGV0
ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdNZXRob2RV
cGRhdGU+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcGxldGVTaGlwcGluZ0NvbnRhY3RT
ZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFs
PEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBj
b21wbGV0ZVBheW1lbnRTZXNzaW9uKE9wdGlvbmFsPFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0
PiYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFib3J0UGF5bWVudFNlc3Npb24oKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGNhbmNlbFBheW1lbnRTZXNzaW9uKCkgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50SGVhZGVycy5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50SGVhZGVycy5oCmluZGV4IGM1NTUxMTc5
ZWQxZjBkMjQ1MDhlMmE0NGViYzUzNzJlNzliZmM1MTMuLjJkZGIyNTljNThkN2QyODNhZjNjMDBm
ZWVmYjA5OWRhODExNGRjYTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvUGF5bWVudEhlYWRlcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L1BheW1lbnRIZWFkZXJzLmgKQEAgLTI1LDExICsyNSwxMyBAQAogCiAjcHJhZ21hIG9uY2UK
IAorI2luY2x1ZGUgIkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oIgogI2luY2x1ZGUgIkFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGlu
Z0NvbnRhY3RVcGRhdGUuaCIKKyNpbmNsdWRlICJBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRl
LmgiCiAjaW5jbHVkZSAiUGF5bWVudC5oIgogI2luY2x1ZGUgIlBheW1lbnRDb250YWN0LmgiCiAj
aW5jbHVkZSAiUGF5bWVudE1lcmNoYW50U2Vzc2lvbi5oIgogI2luY2x1ZGUgIlBheW1lbnRNZXRo
b2QuaCIKLSNpbmNsdWRlICJQYXltZW50TWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVkZSAiUGF5bWVu
dFNlc3Npb25FcnJvci5oIgogI2luY2x1ZGUgIlBheW1lbnRTdW1tYXJ5SXRlbXMuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudE1ldGhvZFVwZGF0
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50TWV0aG9kVXBkYXRl
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4NDBlMTYzZDUwNWIwMGMyMTlhMTZm
YzM5OGY1YmYzODQzOGYzOGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50TWV0aG9kVXBk
YXRlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdt
YSBvbmNlCi0KLSNpZiBFTkFCTEUoQVBQTEVfUEFZKQotCi0jaW5jbHVkZSAiQXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3QuaCIKLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0KLU9CSkNf
Q0xBU1MgUEtQYXltZW50UmVxdWVzdFBheW1lbnRNZXRob2RVcGRhdGU7Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotY2xhc3MgV0VCQ09SRV9FWFBPUlQgUGF5bWVudE1ldGhvZFVwZGF0ZSB7Ci1w
dWJsaWM6Ci0gICAgdXNpbmcgVG90YWxBbmRMaW5lSXRlbXMgPSBBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXM7Ci0KLSAgICBQYXltZW50TWV0aG9kVXBkYXRl
KEFwcGxlUGF5TGluZUl0ZW0mJiB0b3RhbCwgVmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+JiYpOwot
ICAgIGV4cGxpY2l0IFBheW1lbnRNZXRob2RVcGRhdGUoUmV0YWluUHRyPFBLUGF5bWVudFJlcXVl
c3RQYXltZW50TWV0aG9kVXBkYXRlPiYmKTsKLSAgICBleHBsaWNpdCBQYXltZW50TWV0aG9kVXBk
YXRlKFRvdGFsQW5kTGluZUl0ZW1zJiYpOwotCi0gICAgY29uc3QgVG90YWxBbmRMaW5lSXRlbXMm
IHRvdGFsQW5kTGluZUl0ZW1zKCkgY29uc3Q7Ci0gICAgUEtQYXltZW50UmVxdWVzdFBheW1lbnRN
ZXRob2RVcGRhdGUgKnBsYXRmb3JtVXBkYXRlKCkgY29uc3Q7Ci0KLSNpZiBIQVZFKFBBU1NLSVRf
SU5TVEFMTE1FTlRTKQotICAgIHZvaWQgc2V0SW5zdGFsbG1lbnRHcm91cElkZW50aWZpZXIoY29u
c3QgU3RyaW5nJik7Ci0jZW5kaWYKLQotcHJpdmF0ZToKLSAgICBPcHRpb25hbDxUb3RhbEFuZExp
bmVJdGVtcz4gbV90b3RhbEFuZExpbmVJdGVtczsKLSAgICBSZXRhaW5QdHI8UEtQYXltZW50UmVx
dWVzdFBheW1lbnRNZXRob2RVcGRhdGU+IG1fcGxhdGZvcm1VcGRhdGU7Ci19OwotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlkYXRv
ci5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxp
ZGF0b3IubW0KaW5kZXggZWY5ZjZlODI0ODQ2NWZlM2FmYjNhNjNkNmJiZjI4ZjcwZTgxZDNiYy4u
ZDAwYzg4YzgzODhkMDQ0YmFkMDVhODY1ZDRkZWUxMzk4ZmNmMDA0MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlkYXRvci5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRh
dG9yLm1tCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAogI2ltcG9y
dCAiQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKKyNpbXBvcnQgIkFwcGxlUGF5U2hp
cHBpbmdNZXRob2QuaCIKICNpbXBvcnQgPHVuaWNvZGUvdWN1cnIuaD4KICNpbXBvcnQgPHVuaWNv
ZGUvdWxvYy5oPgogCkBAIC0zOCw4ICszOSw4IEBAIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2
YWxpZGF0ZUNvdW50cnlDb2RlKGNvbnN0IFN0cmluZyYpOwogc3RhdGljIEV4Y2VwdGlvbk9yPHZv
aWQ+IHZhbGlkYXRlQ3VycmVuY3lDb2RlKGNvbnN0IFN0cmluZyYpOwogc3RhdGljIEV4Y2VwdGlv
bk9yPHZvaWQ+IHZhbGlkYXRlTWVyY2hhbnRDYXBhYmlsaXRpZXMoY29uc3QgQXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzJik7CiBzdGF0aWMgRXhjZXB0
aW9uT3I8dm9pZD4gdmFsaWRhdGVTdXBwb3J0ZWROZXR3b3Jrcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYpOwotc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlU2hpcHBpbmdNZXRob2RzKGNv
bnN0IFZlY3RvcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+
Jik7Ci1zdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVTaGlwcGluZ01ldGhvZChjb25z
dCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKTsKK3N0YXRp
YyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kcyhjb25zdCBWZWN0b3I8
QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4mKTsKK3N0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxp
ZGF0ZVNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2QmKTsKIAogRXhj
ZXB0aW9uT3I8dm9pZD4gUGF5bWVudFJlcXVlc3RWYWxpZGF0b3I6OnZhbGlkYXRlKGNvbnN0IEFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0JiBwYXltZW50UmVxdWVzdCkKIHsKQEAgLTE0MSw3
ICsxNDIsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVTdXBwb3J0ZWROZXR3
b3Jrcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3VwcG9ydAogICAgIHJldHVybiB7IH07CiB9CiAK
LXN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kKGNvbnN0IEFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRo
b2QpCitzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVTaGlwcGluZ01ldGhvZChjb25z
dCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKIHsKICAgICBOU0RlY2lt
YWxOdW1iZXIgKmFtb3VudCA9IFtOU0RlY2ltYWxOdW1iZXIgZGVjaW1hbE51bWJlcldpdGhTdHJp
bmc6c2hpcHBpbmdNZXRob2QuYW1vdW50IGxvY2FsZTpAeyBOU0xvY2FsZURlY2ltYWxTZXBhcmF0
b3IgOiBAIi4iIH1dOwogICAgIGlmIChhbW91bnQuaW50ZWdlclZhbHVlIDwgMCkKQEAgLTE1MCw3
ICsxNTEsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVTaGlwcGluZ01ldGhv
ZChjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdQogICAgIHJldHVybiB7IH07CiB9CiAK
LXN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kcyhjb25zdCBW
ZWN0b3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPiYgc2hp
cHBpbmdNZXRob2RzKQorc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlU2hpcHBpbmdN
ZXRob2RzKGNvbnN0IFZlY3RvcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiYgc2hpcHBpbmdNZXRo
b2RzKQogewogICAgIGZvciAoY29uc3QgYXV0byYgc2hpcHBpbmdNZXRob2QgOiBzaGlwcGluZ01l
dGhvZHMpIHsKICAgICAgICAgYXV0byB2YWxpZGF0ZWRTaGlwcGluZ01ldGhvZCA9IHZhbGlkYXRl
U2hpcHBpbmdNZXRob2Qoc2hpcHBpbmdNZXRob2QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5oCmluZGV4IGNlNWNmNTM5OGVhYjFjMWFjMTFl
ZjdjMDIxMmIyOWIzN2MyNjcwMzIuLmY1ZGZmZDBlZWMxMmE2ZGMwNzViMGU1ZDZlMzgwMjBmMjk2
ZjYxNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVu
dFNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRT
ZXNzaW9uLmgKQEAgLTI3LDcgKzI3LDYgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKLSNp
bmNsdWRlICJBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oIgogI2luY2x1ZGUgIkV4Y2Vw
dGlvbk9yLmgiCiAjaW5jbHVkZSAiUGF5bWVudFNlc3Npb25CYXNlLmgiCiAKQEAgLTM5LDYgKzM4
LDcgQEAgY2xhc3MgUGF5bWVudENvbnRhY3Q7CiBjbGFzcyBQYXltZW50TWV0aG9kOwogY2xhc3Mg
UGF5bWVudFNlc3Npb25FcnJvcjsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CitzdHJ1
Y3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZDsKIAogY2xhc3MgUGF5bWVudFNlc3Npb24gOiBwdWJs
aWMgdmlydHVhbCBQYXltZW50U2Vzc2lvbkJhc2UgewogcHVibGljOgpAQCAtNDgsNyArNDgsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB1bnNpZ25lZCB2ZXJzaW9uKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCB2YWxpZGF0ZU1lcmNoYW50KFVSTCYmKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGRpZEF1dGhvcml6ZVBheW1lbnQoY29uc3QgUGF5bWVudCYpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVu
dFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRTZWxl
Y3RTaGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3QoY29uc3QgUGF5bWVudENvbnRh
Y3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFNlbGVjdFBheW1lbnRNZXRob2QoY29uc3Qg
UGF5bWVudE1ldGhvZCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsUGF5bWVudFNl
c3Npb24oUGF5bWVudFNlc3Npb25FcnJvciYmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTdW1tYXJ5SXRlbXMuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFN1bW1hcnlJdGVtcy5oCmluZGV4IGZmZjg0NGQ3
Nzk1YjM5NWRlYTEyMDFjMTM3MDZmZTczZDk2ZjhmOWEuLjJiZDNlZWM5MzgwZWMzMTU5NzU5MzE5
MDg5YWE5OGYzODI2ZTU2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvUGF5bWVudFN1bW1hcnlJdGVtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvUGF5bWVudFN1bW1hcnlJdGVtcy5oCkBAIC0yNywxMyArMjcsMTIgQEAKIAogI2lm
IEVOQUJMRShBUFBMRV9QQVkpCiAKLSNpbmNsdWRlICJBcHBsZVBheVNlc3Npb25QYXltZW50UmVx
dWVzdC5oIgotCiBPQkpDX0NMQVNTIE5TQXJyYXk7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
V0VCQ09SRV9FWFBPUlQgTlNBcnJheSAqcGxhdGZvcm1TdW1tYXJ5SXRlbXMoY29uc3QgQXBwbGVQ
YXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zJik7CitzdHJ1Y3QgQXBw
bGVQYXlMaW5lSXRlbTsKKwogV0VCQ09SRV9FWFBPUlQgTlNBcnJheSAqcGxhdGZvcm1TdW1tYXJ5
SXRlbXMoY29uc3QgQXBwbGVQYXlMaW5lSXRlbSYgdG90YWwsIGNvbnN0IFZlY3RvcjxBcHBsZVBh
eUxpbmVJdGVtPiYpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRNZXRob2RVcGRhdGVDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudE1ldGhv
ZFVwZGF0ZUNvY29hLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjRkMTFiNmQw
NzY5N2E5ZDA5NTk1NjVjNmZjMWQ2ODc4ZmFhNTBjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29j
b2EvUGF5bWVudE1ldGhvZFVwZGF0ZUNvY29hLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiUGF5bWVudE1l
dGhvZFVwZGF0ZS5oIgotCi0jaWYgRU5BQkxFKEFQUExFX1BBWSkKLQotI2ltcG9ydCAiUGF5bWVu
dFN1bW1hcnlJdGVtcy5oIgotI2ltcG9ydCA8cGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5oPgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVBheW1lbnRNZXRob2RVcGRhdGU6OlBheW1lbnRNZXRo
b2RVcGRhdGUoQXBwbGVQYXlMaW5lSXRlbSYmIHRvdGFsLCBWZWN0b3I8QXBwbGVQYXlMaW5lSXRl
bT4mJiBsaW5lSXRlbXMpCi0gICAgOiBtX3RvdGFsQW5kTGluZUl0ZW1zIHsgeyBXVEZNb3ZlKHRv
dGFsKSwgV1RGTW92ZShsaW5lSXRlbXMpIH0gfQotICAgICwgbV9wbGF0Zm9ybVVwZGF0ZSB7IGFk
b3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZUluc3Rh
bmNlKCkgaW5pdFdpdGhQYXltZW50U3VtbWFyeUl0ZW1zOnBsYXRmb3JtU3VtbWFyeUl0ZW1zKCpt
X3RvdGFsQW5kTGluZUl0ZW1zKV0pIH0KLXsKLX0KLQotUGF5bWVudE1ldGhvZFVwZGF0ZTo6UGF5
bWVudE1ldGhvZFVwZGF0ZShSZXRhaW5QdHI8UEtQYXltZW50UmVxdWVzdFBheW1lbnRNZXRob2RV
cGRhdGU+JiYgcGxhdGZvcm1VcGRhdGUpCi0gICAgOiBtX3BsYXRmb3JtVXBkYXRlIHsgV1RGTW92
ZShwbGF0Zm9ybVVwZGF0ZSkgfQotewotfQotCi1QYXltZW50TWV0aG9kVXBkYXRlOjpQYXltZW50
TWV0aG9kVXBkYXRlKFRvdGFsQW5kTGluZUl0ZW1zJiYgdG90YWxBbmRMaW5lSXRlbXMpCi0gICAg
OiBQYXltZW50TWV0aG9kVXBkYXRlIHsgV1RGTW92ZSh0b3RhbEFuZExpbmVJdGVtcy50b3RhbCks
IFdURk1vdmUodG90YWxBbmRMaW5lSXRlbXMubGluZUl0ZW1zKSB9Ci17Ci19Ci0KLWNvbnN0IFBh
eW1lbnRNZXRob2RVcGRhdGU6OlRvdGFsQW5kTGluZUl0ZW1zJiBQYXltZW50TWV0aG9kVXBkYXRl
Ojp0b3RhbEFuZExpbmVJdGVtcygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICptX3RvdGFsQW5kTGlu
ZUl0ZW1zOwotfQotCi1QS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZSAqUGF5bWVu
dE1ldGhvZFVwZGF0ZTo6cGxhdGZvcm1VcGRhdGUoKSBjb25zdAotewotICAgIHJldHVybiBtX3Bs
YXRmb3JtVXBkYXRlLmdldCgpOwotfQotCi0jaWYgSEFWRShQQVNTS0lUX0lOU1RBTExNRU5UUykK
LXZvaWQgUGF5bWVudE1ldGhvZFVwZGF0ZTo6c2V0SW5zdGFsbG1lbnRHcm91cElkZW50aWZpZXIo
Y29uc3QgU3RyaW5nJiBpbnN0YWxsbWVudEdyb3VwSWRlbnRpZmllcikKLXsKLSAgICBbbV9wbGF0
Zm9ybVVwZGF0ZSBzZXRJbnN0YWxsbWVudEdyb3VwSWRlbnRpZmllcjppbnN0YWxsbWVudEdyb3Vw
SWRlbnRpZmllcl07Ci19Ci0jZW5kaWYKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYgLy8gRU5BQkxFKEFQUExFX1BBWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudFN1bW1hcnlJdGVtc0NvY29hLm1tIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0K
aW5kZXggZTc5OWE5Y2NkOTUxZGIzMDNiYTYyNzBjYTkzMjQxYzBkODQ3NDQ1MC4uMTFlZGIwYjQ5
NmRkNzkwM2YwZmI1YTJjNjJlNmVmODIxYWNjNDJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0
ZW1zQ29jb2EubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAK
KyNpbXBvcnQgIkFwcGxlUGF5TGluZUl0ZW0uaCIKICNpbXBvcnQgPHBhbC9jb2NvYS9QYXNzS2l0
U29mdExpbmsuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjAsMTEgKzYxLDYgQEAgc3Rh
dGljIFBLUGF5bWVudFN1bW1hcnlJdGVtICp0b1BLUGF5bWVudFN1bW1hcnlJdGVtKGNvbnN0IEFw
cGxlUGF5TGluZUl0ZW0mIGxpbmUKIH0KICNlbmRpZgogCi1OU0FycmF5ICpwbGF0Zm9ybVN1bW1h
cnlJdGVtcyhjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5l
SXRlbXMmIHRvdGFsQW5kTGluZUl0ZW1zKQotewotICAgIHJldHVybiBwbGF0Zm9ybVN1bW1hcnlJ
dGVtcyh0b3RhbEFuZExpbmVJdGVtcy50b3RhbCwgdG90YWxBbmRMaW5lSXRlbXMubGluZUl0ZW1z
KTsKLX0KLQogTlNBcnJheSAqcGxhdGZvcm1TdW1tYXJ5SXRlbXMoY29uc3QgQXBwbGVQYXlMaW5l
SXRlbSYgdG90YWwsIGNvbnN0IFZlY3RvcjxBcHBsZVBheUxpbmVJdGVtPiYgbGluZUl0ZW1zKQog
ewogICAgIE5TTXV0YWJsZUFycmF5ICpwYXltZW50U3VtbWFyeUl0ZW1zID0gW05TTXV0YWJsZUFy
cmF5IGFycmF5V2l0aENhcGFjaXR5OmxpbmVJdGVtcy5zaXplKCkgKyAxXTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQ
YXltZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1l
bnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCmluZGV4IDdlYzAzNzBmZmVmZTMz
NjI4OTFmZjE1MjdkMmUxOGFlNWQxYjg5NjAuLjkwZDMzNDllMDBmNGRkYjcwZGJjNDI4Zjk2Zjdj
N2E2NDY4NWYyOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
cGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5k
bGVyLmNwcApAQCAtMzAsMTEgKzMwLDE5IEBACiAKICNpbmNsdWRlICJBZGRyZXNzRXJyb3JzLmgi
CiAjaW5jbHVkZSAiQXBwbGVQYXlDb250YWN0RmllbGQuaCIKKyNpbmNsdWRlICJBcHBsZVBheURl
dGFpbHNVcGRhdGVEYXRhLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlFcnJvci5oIgorI2luY2x1ZGUg
IkFwcGxlUGF5RXJyb3JDb2RlLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVs
ZC5oIgogI2luY2x1ZGUgIkFwcGxlUGF5TGluZUl0ZW0uaCIKICNpbmNsdWRlICJBcHBsZVBheU1l
cmNoYW50Q2FwYWJpbGl0eS5oIgogI2luY2x1ZGUgIkFwcGxlUGF5TW9kaWZpZXIuaCIKICNpbmNs
dWRlICJBcHBsZVBheVBheW1lbnQuaCIKKyNpbmNsdWRlICJBcHBsZVBheVBheW1lbnRNZXRob2RV
cGRhdGUuaCIKICNpbmNsdWRlICJBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oIgorI2lu
Y2x1ZGUgIkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmgiCisjaW5jbHVkZSAiQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZC5oIgorI2luY2x1ZGUgIkFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRh
dGUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNp
bmNsdWRlICJGcmFtZS5oIgpAQCAtNTQsNyArNjIsNiBAQAogI2luY2x1ZGUgIlBheW1lbnRDb29y
ZGluYXRvci5oIgogI2luY2x1ZGUgIlBheW1lbnRNZXJjaGFudFNlc3Npb24uaCIKICNpbmNsdWRl
ICJQYXltZW50TWV0aG9kLmgiCi0jaW5jbHVkZSAiUGF5bWVudE1ldGhvZFVwZGF0ZS5oIgogI2lu
Y2x1ZGUgIlBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLmgiCiAjaW5jbHVkZSAiUGF5bWVudFJlc3Bv
bnNlLmgiCiAjaW5jbHVkZSAiUGF5bWVudFZhbGlkYXRpb25FcnJvcnMuaCIKQEAgLTE5OCwxOSAr
MjA1LDQ1IEBAIHN0YXRpYyBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdU
eXBlIGNvbnZlcnQoUGF5bWVudFNoaXBwaW5nVHlwZSB0CiAgICAgcmV0dXJuIEFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ1R5cGU6OlNoaXBwaW5nOwogfQogCi1zdGF0aWMg
RXhjZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9k
PiBjb252ZXJ0QW5kVmFsaWRhdGUoY29uc3QgUGF5bWVudFNoaXBwaW5nT3B0aW9uJiBzaGlwcGlu
Z09wdGlvbiwgY29uc3QgU3RyaW5nJiBleHBlY3RlZEN1cnJlbmN5KQorc3RhdGljIEV4Y2VwdGlv
bk9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+IGNvbnZlcnRBbmRWYWxpZGF0ZShjb25zdCBQYXlt
ZW50U2hpcHBpbmdPcHRpb24mIHNoaXBwaW5nT3B0aW9uLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVk
Q3VycmVuY3kpCiB7CiAgICAgYXV0byBleGNlcHRpb24gPSB2YWxpZGF0ZShzaGlwcGluZ09wdGlv
bi5hbW91bnQsIGV4cGVjdGVkQ3VycmVuY3kpOwogICAgIGlmIChleGNlcHRpb24uaGFzRXhjZXB0
aW9uKCkpCiAgICAgICAgIHJldHVybiBleGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpOwogCi0g
ICAgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kIHJlc3VsdDsK
KyAgICBBcHBsZVBheVNoaXBwaW5nTWV0aG9kIHJlc3VsdDsKICAgICByZXN1bHQuYW1vdW50ID0g
c2hpcHBpbmdPcHRpb24uYW1vdW50LnZhbHVlOwogICAgIHJlc3VsdC5sYWJlbCA9IHNoaXBwaW5n
T3B0aW9uLmxhYmVsOwogICAgIHJlc3VsdC5pZGVudGlmaWVyID0gc2hpcHBpbmdPcHRpb24uaWQ7
CiAgICAgcmV0dXJuIHsgV1RGTW92ZShyZXN1bHQpIH07CiB9CiAKKyNpZiAhRU5BQkxFKEFQUExF
X1BBWV9QQVlNRU5UX0RFVEFJTFNfREFUQSkKK3N0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxp
ZGF0ZShjb25zdCBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhJikgeyByZXR1cm4geyB9OyB9Cisj
ZW5kaWYKKworc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGE+IGNv
bnZlcnRBbmRWYWxpZGF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBQ
YXltZW50RGV0YWlsc0Jhc2UmIGRldGFpbHMpCit7CisgICAgYXV0byYgbGV4aWNhbEdsb2JhbE9i
amVjdCA9ICpjb250ZXh0Lmdsb2JhbE9iamVjdCgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKGxleGljYWxHbG9iYWxPYmplY3Qudm0oKSk7CisgICAgSlNDOjpKU1ZhbHVl
IGRhdGE7CisgICAgeworICAgICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKKyAgICAgICAgZGF0YSA9IEpTT05QYXJzZSgmbGV4aWNhbEdsb2JhbE9iamVj
dCwgZGV0YWlscy5zZXJpYWxpemVkRGF0YSk7CisgICAgICAgIGlmIChzY29wZS5leGNlcHRpb24o
KSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9y
IH07CisgICAgfQorCisgICAgYXV0byBhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhID0gY29udmVy
dERpY3Rpb25hcnk8QXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YT4obGV4aWNhbEdsb2JhbE9iamVj
dCwgV1RGTW92ZShkYXRhKSk7CisgICAgaWYgKHNjb3BlLmV4Y2VwdGlvbigpKQorICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9OworICAgIGF1dG8gZXhj
ZXB0aW9uID0gdmFsaWRhdGUoYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSk7CisgICAgaWYgKGV4
Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbi5yZWxlYXNl
RXhjZXB0aW9uKCk7CisKKyAgICByZXR1cm4gYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YTsKK30K
KwogRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29udmVydERhdGEo
SlNDOjpKU1ZhbHVlIGRhdGEpCiB7CiAgICAgYXV0byByZXF1ZXN0T3JFeGNlcHRpb24gPSBjb252
ZXJ0QW5kVmFsaWRhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgZGF0YSk7CkBAIC0yMzgs
NiArMjcxLDEwIEBAIHN0YXRpYyB2b2lkIG1lcmdlUGF5bWVudE9wdGlvbnMoY29uc3QgUGF5bWVu
dE9wdGlvbnMmIG9wdGlvbnMsIEFwcGxlUGF5U2Vzc2lvblBhCiAgICAgICAgIHJlcXVlc3Quc2V0
U2hpcHBpbmdUeXBlKGNvbnZlcnQob3B0aW9ucy5zaGlwcGluZ1R5cGUpKTsKIH0KIAorI2lmICFF
TkFCTEUoQVBQTEVfUEFZX1BBWU1FTlRfREVUQUlMU19EQVRBKQorc3RhdGljIHZvaWQgbWVyZ2Uo
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmLCBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRh
JiYpIHsgfQorI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVlfUEFZTUVOVF9ERVRBSUxTX0RBVEEp
CisKIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnNob3coRG9jdW1l
bnQmIGRvY3VtZW50KQogewogICAgIGF1dG8gdmFsaWRhdGVkUmVxdWVzdCA9IGNvbnZlcnRBbmRW
YWxpZGF0ZShkb2N1bWVudCwgbV9hcHBsZVBheVJlcXVlc3QtPnZlcnNpb24sICptX2FwcGxlUGF5
UmVxdWVzdCwgcGF5bWVudENvb3JkaW5hdG9yKCkpOwpAQCAtMjcwLDYgKzMwNywxMSBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpzaG93KERvY3VtZW50JiBkb2N1
bWVudCkKICAgICAgICAgcmV0dXJuIHNoaXBwaW5nTWV0aG9kcy5yZWxlYXNlRXhjZXB0aW9uKCk7
CiAgICAgcmVxdWVzdC5zZXRTaGlwcGluZ01ldGhvZHMoc2hpcHBpbmdNZXRob2RzLnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpKTsKIAorICAgIGF1dG8gYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSA9IGNv
bnZlcnRBbmRWYWxpZGF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3BheW1lbnRSZXF1
ZXN0LT5wYXltZW50RGV0YWlscygpKTsKKyAgICBpZiAoYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0
YS5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGFwcGxlUGF5RGV0YWlsc1VwZGF0ZURh
dGEucmVsZWFzZUV4Y2VwdGlvbigpOworICAgIG1lcmdlKHJlcXVlc3QsIGFwcGxlUGF5RGV0YWls
c1VwZGF0ZURhdGEucmVsZWFzZVJldHVyblZhbHVlKCkpOworCiAgICAgYXV0byBleGNlcHRpb24g
PSBQYXltZW50UmVxdWVzdFZhbGlkYXRvcjo6dmFsaWRhdGUocmVxdWVzdCk7CiAgICAgaWYgKGV4
Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbi5yZWxlYXNl
RXhjZXB0aW9uKCk7CkBAIC0yOTAsMTEgKzMzMiwxMSBAQCB2b2lkIEFwcGxlUGF5UGF5bWVudEhh
bmRsZXI6OmNhbk1ha2VQYXltZW50KERvY3VtZW50JiBkb2N1bWVudCwgRnVuY3Rpb248dm9pZChi
bwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHBheW1lbnRDb29yZGluYXRvcigpLmNhbk1ha2VQYXlt
ZW50cyhkb2N1bWVudCkpOwogfQogCi1FeGNlcHRpb25PcjxWZWN0b3I8QXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPj4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6
Y29tcHV0ZVNoaXBwaW5nTWV0aG9kcygpCitFeGNlcHRpb25PcjxWZWN0b3I8QXBwbGVQYXlTaGlw
cGluZ01ldGhvZD4+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVTaGlwcGluZ01ldGhv
ZHMoKQogewogICAgIGF1dG8mIGRldGFpbHMgPSBtX3BheW1lbnRSZXF1ZXN0LT5wYXltZW50RGV0
YWlscygpOwogCi0gICAgVmVjdG9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlw
cGluZ01ldGhvZD4gc2hpcHBpbmdPcHRpb25zOworICAgIFZlY3RvcjxBcHBsZVBheVNoaXBwaW5n
TWV0aG9kPiBzaGlwcGluZ09wdGlvbnM7CiAgICAgaWYgKGRldGFpbHMuc2hpcHBpbmdPcHRpb25z
KSB7CiAgICAgICAgIGF1dG8mIGN1cnJlbmN5ID0gZGV0YWlscy50b3RhbC5hbW91bnQuY3VycmVu
Y3k7CiAKQEAgLTMxMCw3ICszNTIsNyBAQCBFeGNlcHRpb25PcjxWZWN0b3I8QXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPj4gQXBwbGVQYXlQYXltZQogICAgIHJl
dHVybiBXVEZNb3ZlKHNoaXBwaW5nT3B0aW9ucyk7CiB9CiAKLUV4Y2VwdGlvbk9yPEFwcGxlUGF5
U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz4gQXBwbGVQYXlQYXltZW50
SGFuZGxlcjo6Y29tcHV0ZVRvdGFsQW5kTGluZUl0ZW1zKCkgY29uc3QKK0V4Y2VwdGlvbk9yPHN0
ZDo6dHVwbGU8QXBwbGVQYXlMaW5lSXRlbSwgVmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+Pj4gQXBw
bGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcHV0ZVRvdGFsQW5kTGluZUl0ZW1zKCkgY29uc3QKIHsK
ICAgICBhdXRvJiBkZXRhaWxzID0gbV9wYXltZW50UmVxdWVzdC0+cGF5bWVudERldGFpbHMoKTsK
ICAgICBTdHJpbmcgY3VycmVuY3kgPSBkZXRhaWxzLnRvdGFsLmFtb3VudC5jdXJyZW5jeTsKQEAg
LTMyOSw3ICszNzEsNyBAQCBFeGNlcHRpb25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dDo6VG90YWxBbmRMaW5lSXRlbXM+IEFwcGxlUGF5UGF5bWVudEhhbgogICAgIH0KIAogICAgIGlm
ICghbV9zZWxlY3RlZFBheW1lbnRNZXRob2RUeXBlKQotICAgICAgICByZXR1cm4gQXBwbGVQYXlT
ZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zIHsgV1RGTW92ZSh0b3RhbCks
IFdURk1vdmUobGluZUl0ZW1zKSB9OworICAgICAgICByZXR1cm4ge3sgV1RGTW92ZSh0b3RhbCks
IFdURk1vdmUobGluZUl0ZW1zKSB9fTsKIAogICAgIGlmIChkZXRhaWxzLm1vZGlmaWVycykgewog
ICAgICAgICBhdXRvJiBzZXJpYWxpemVkTW9kaWZpZXJEYXRhID0gbV9wYXltZW50UmVxdWVzdC0+
c2VyaWFsaXplZE1vZGlmaWVyRGF0YSgpOwpAQCAtMzc2LDE4ICs0MTgsMTggQEAgRXhjZXB0aW9u
T3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zPiBBcHBs
ZVBheVBheW1lbnRIYW4KICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXMgeyBXVEZNb3ZlKHRvdGFsKSwg
V1RGTW92ZShsaW5lSXRlbXMpIH07CisgICAgcmV0dXJuIHt7IFdURk1vdmUodG90YWwpLCBXVEZN
b3ZlKGxpbmVJdGVtcykgfX07CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBhcHBlbmRTaGlwcGlu
Z0NvbnRhY3RJbnZhbGlkRXJyb3IoU3RyaW5nJiYgbWVzc2FnZSwgT3B0aW9uYWw8UGF5bWVudEVy
cm9yOjpDb250YWN0RmllbGQ+IGNvbnRhY3RGaWVsZCwgVmVjdG9yPFBheW1lbnRFcnJvcj4mIGVy
cm9ycykKK3N0YXRpYyBpbmxpbmUgdm9pZCBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJy
b3IoU3RyaW5nJiYgbWVzc2FnZSwgT3B0aW9uYWw8QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZD4g
Y29udGFjdEZpZWxkLCBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYgZXJyb3JzKQogewog
ICAgIGlmICghbWVzc2FnZS5pc051bGwoKSkKLSAgICAgICAgZXJyb3JzLmFwcGVuZCh7IFBheW1l
bnRFcnJvcjo6Q29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxpZCwgV1RGTW92ZShtZXNzYWdlKSwg
V1RGTW92ZShjb250YWN0RmllbGQpIH0pOworICAgICAgICBlcnJvcnMuYXBwZW5kKEFwcGxlUGF5
RXJyb3I6OmNyZWF0ZShBcHBsZVBheUVycm9yQ29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxpZCwg
V1RGTW92ZShjb250YWN0RmllbGQpLCBXVEZNb3ZlKG1lc3NhZ2UpKSk7CiB9CiAKLVZlY3RvcjxQ
YXltZW50RXJyb3I+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVFcnJvcnMoU3RyaW5n
JiYgZXJyb3IsIEFkZHJlc3NFcnJvcnMmJiBhZGRyZXNzRXJyb3JzLCBQYXllckVycm9yRmllbGRz
JiYgcGF5ZXJFcnJvcnMsIEpTQzo6SlNPYmplY3QqIHBheW1lbnRNZXRob2RFcnJvcnMpIGNvbnN0
CitWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpj
b21wdXRlRXJyb3JzKFN0cmluZyYmIGVycm9yLCBBZGRyZXNzRXJyb3JzJiYgYWRkcmVzc0Vycm9y
cywgUGF5ZXJFcnJvckZpZWxkcyYmIHBheWVyRXJyb3JzLCBKU0M6OkpTT2JqZWN0KiBwYXltZW50
TWV0aG9kRXJyb3JzKSBjb25zdAogewotICAgIFZlY3RvcjxQYXltZW50RXJyb3I+IGVycm9yczsK
KyAgICBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiBlcnJvcnM7CiAKICAgICBhdXRvJiBk
ZXRhaWxzID0gbV9wYXltZW50UmVxdWVzdC0+cGF5bWVudERldGFpbHMoKTsKIApAQCAtNDA2LDM5
ICs0NDgsMzcgQEAgVmVjdG9yPFBheW1lbnRFcnJvcj4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6
Y29tcHV0ZUVycm9ycyhTdHJpbmcmJiBlcnJvciwgQWRkcmUKICAgICByZXR1cm4gZXJyb3JzOwog
fQogCi12b2lkIEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVBZGRyZXNzRXJyb3JzKFN0
cmluZyYmIGVycm9yLCBBZGRyZXNzRXJyb3JzJiYgYWRkcmVzc0Vycm9ycywgVmVjdG9yPFBheW1l
bnRFcnJvcj4mIGVycm9ycykgY29uc3QKK3ZvaWQgQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29t
cHV0ZUFkZHJlc3NFcnJvcnMoU3RyaW5nJiYgZXJyb3IsIEFkZHJlc3NFcnJvcnMmJiBhZGRyZXNz
RXJyb3JzLCBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYgZXJyb3JzKSBjb25zdAogewog
ICAgIGlmICghbV9wYXltZW50UmVxdWVzdC0+cGF5bWVudE9wdGlvbnMoKS5yZXF1ZXN0U2hpcHBp
bmcpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVzaW5nIENvbnRhY3RGaWVsZCA9IFBheW1lbnRF
cnJvcjo6Q29udGFjdEZpZWxkOwogICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJv
cihXVEZNb3ZlKGVycm9yKSwgV1RGOjpudWxsb3B0LCBlcnJvcnMpOwotICAgIGFwcGVuZFNoaXBw
aW5nQ29udGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMuYWRkcmVzc0xpbmUp
LCBDb250YWN0RmllbGQ6OkFkZHJlc3NMaW5lcywgZXJyb3JzKTsKLSAgICBhcHBlbmRTaGlwcGlu
Z0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShhZGRyZXNzRXJyb3JzLmNpdHkpLCBDb250YWN0
RmllbGQ6OkxvY2FsaXR5LCBlcnJvcnMpOwotICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFs
aWRFcnJvcihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMuY291bnRyeSksIENvbnRhY3RGaWVsZDo6Q291
bnRyeSwgZXJyb3JzKTsKLSAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RG
TW92ZShhZGRyZXNzRXJyb3JzLmRlcGVuZGVudExvY2FsaXR5KSwgQ29udGFjdEZpZWxkOjpTdWJM
b2NhbGl0eSwgZXJyb3JzKTsKLSAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3Io
V1RGTW92ZShhZGRyZXNzRXJyb3JzLnBob25lKSwgQ29udGFjdEZpZWxkOjpQaG9uZU51bWJlciwg
ZXJyb3JzKTsKLSAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShh
ZGRyZXNzRXJyb3JzLnBvc3RhbENvZGUpLCBDb250YWN0RmllbGQ6OlBvc3RhbENvZGUsIGVycm9y
cyk7Ci0gICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRkcmVz
c0Vycm9ycy5yZWNpcGllbnQpLCBDb250YWN0RmllbGQ6Ok5hbWUsIGVycm9ycyk7Ci0gICAgYXBw
ZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRkcmVzc0Vycm9ycy5yZWdp
b24pLCBDb250YWN0RmllbGQ6OkFkbWluaXN0cmF0aXZlQXJlYSwgZXJyb3JzKTsKKyAgICBhcHBl
bmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShhZGRyZXNzRXJyb3JzLmFkZHJl
c3NMaW5lKSwgQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6QWRkcmVzc0xpbmVzLCBlcnJvcnMp
OworICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJlc3NF
cnJvcnMuY2l0eSksIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OkxvY2FsaXR5LCBlcnJvcnMp
OworICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJlc3NF
cnJvcnMuY291bnRyeSksIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OkNvdW50cnksIGVycm9y
cyk7CisgICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRkcmVz
c0Vycm9ycy5kZXBlbmRlbnRMb2NhbGl0eSksIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlN1
YkxvY2FsaXR5LCBlcnJvcnMpOworICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJv
cihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMucGhvbmUpLCBBcHBsZVBheUVycm9yQ29udGFjdEZpZWxk
OjpQaG9uZU51bWJlciwgZXJyb3JzKTsKKyAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlk
RXJyb3IoV1RGTW92ZShhZGRyZXNzRXJyb3JzLnBvc3RhbENvZGUpLCBBcHBsZVBheUVycm9yQ29u
dGFjdEZpZWxkOjpQb3N0YWxDb2RlLCBlcnJvcnMpOworICAgIGFwcGVuZFNoaXBwaW5nQ29udGFj
dEludmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMucmVjaXBpZW50KSwgQXBwbGVQYXlF
cnJvckNvbnRhY3RGaWVsZDo6TmFtZSwgZXJyb3JzKTsKKyAgICBhcHBlbmRTaGlwcGluZ0NvbnRh
Y3RJbnZhbGlkRXJyb3IoV1RGTW92ZShhZGRyZXNzRXJyb3JzLnJlZ2lvbiksIEFwcGxlUGF5RXJy
b3JDb250YWN0RmllbGQ6OkFkbWluaXN0cmF0aXZlQXJlYSwgZXJyb3JzKTsKIH0KIAotdm9pZCBB
cHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21wdXRlUGF5ZXJFcnJvcnMoUGF5ZXJFcnJvckZpZWxk
cyYmIHBheWVyRXJyb3JzLCBWZWN0b3I8UGF5bWVudEVycm9yPiYgZXJyb3JzKSBjb25zdAordm9p
ZCBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21wdXRlUGF5ZXJFcnJvcnMoUGF5ZXJFcnJvckZp
ZWxkcyYmIHBheWVyRXJyb3JzLCBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYgZXJyb3Jz
KSBjb25zdAogewogICAgIGF1dG8mIG9wdGlvbnMgPSBtX3BheW1lbnRSZXF1ZXN0LT5wYXltZW50
T3B0aW9ucygpOwotICAgIHVzaW5nIENvbnRhY3RGaWVsZCA9IFBheW1lbnRFcnJvcjo6Q29udGFj
dEZpZWxkOwogCiAgICAgaWYgKG9wdGlvbnMucmVxdWVzdFBheWVyTmFtZSkKLSAgICAgICAgYXBw
ZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUocGF5ZXJFcnJvcnMubmFtZSks
IENvbnRhY3RGaWVsZDo6TmFtZSwgZXJyb3JzKTsKKyAgICAgICAgYXBwZW5kU2hpcHBpbmdDb250
YWN0SW52YWxpZEVycm9yKFdURk1vdmUocGF5ZXJFcnJvcnMubmFtZSksIEFwcGxlUGF5RXJyb3JD
b250YWN0RmllbGQ6Ok5hbWUsIGVycm9ycyk7CiAKICAgICBpZiAob3B0aW9ucy5yZXF1ZXN0UGF5
ZXJFbWFpbCkKLSAgICAgICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1v
dmUocGF5ZXJFcnJvcnMuZW1haWwpLCBDb250YWN0RmllbGQ6OkVtYWlsQWRkcmVzcywgZXJyb3Jz
KTsKKyAgICAgICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUocGF5
ZXJFcnJvcnMuZW1haWwpLCBBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpFbWFpbEFkZHJlc3Ms
IGVycm9ycyk7CiAKICAgICBpZiAob3B0aW9ucy5yZXF1ZXN0UGF5ZXJQaG9uZSkKLSAgICAgICAg
YXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUocGF5ZXJFcnJvcnMucGhv
bmUpLCBDb250YWN0RmllbGQ6OlBob25lTnVtYmVyLCBlcnJvcnMpOworICAgICAgICBhcHBlbmRT
aGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShwYXllckVycm9ycy5waG9uZSksIEFw
cGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlBob25lTnVtYmVyLCBlcnJvcnMpOwogfQogCi1FeGNl
cHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21wdXRlUGF5bWVudE1ldGhv
ZEVycm9ycyhKU0M6OkpTT2JqZWN0KiBwYXltZW50TWV0aG9kRXJyb3JzLCBWZWN0b3I8UGF5bWVu
dEVycm9yPiYgZXJyb3JzKSBjb25zdAorRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50
SGFuZGxlcjo6Y29tcHV0ZVBheW1lbnRNZXRob2RFcnJvcnMoSlNDOjpKU09iamVjdCogcGF5bWVu
dE1ldGhvZEVycm9ycywgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4mIGVycm9ycykgY29u
c3QKIHsKICAgICBpZiAoIXBheW1lbnRNZXRob2RFcnJvcnMpCiAgICAgICAgIHJldHVybiB7IH07
CkBAIC00NDksOSArNDg5LDkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFu
ZGxlcjo6Y29tcHV0ZVBheW1lbnRNZXRob2RFcnJvcnMoSlNDOjpKU09iamUKICAgICBpZiAodGhy
b3dTY29wZS5leGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEV4aXN0aW5n
RXhjZXB0aW9uRXJyb3IgfTsKIAotICAgIGZvciAoYXV0byYgYXBwbGVQYXlFcnJvciA6IGFwcGxl
UGF5RXJyb3JzKSB7CisgICAgZm9yIChhdXRvJiYgYXBwbGVQYXlFcnJvciA6IFdURk1vdmUoYXBw
bGVQYXlFcnJvcnMpKSB7CiAgICAgICAgIGlmIChhcHBsZVBheUVycm9yKQotICAgICAgICAgICAg
ZXJyb3JzLmFwcGVuZCh7IGFwcGxlUGF5RXJyb3ItPmNvZGUoKSwgYXBwbGVQYXlFcnJvci0+bWVz
c2FnZSgpLCBhcHBsZVBheUVycm9yLT5jb250YWN0RmllbGQoKSB9KTsKKyAgICAgICAgICAgIGVy
cm9ycy5hcHBlbmQoV1RGTW92ZShhcHBsZVBheUVycm9yKSk7CiAgICAgfQogCiAgICAgcmV0dXJu
IHsgfTsKQEAgLTQ5MiwxMiArNTMyLDE2IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5UGF5
bWVudEhhbmRsZXI6Om1lcmNoYW50VmFsaWRhdGlvbkNvbXBsZXRlZChKU0M6OkpTVmFsCiAgICAg
cmV0dXJuIHsgfTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxl
cjo6c2hpcHBpbmdBZGRyZXNzVXBkYXRlZChWZWN0b3I8UGF5bWVudEVycm9yPiYmIGVycm9ycykK
KyNpZiAhRU5BQkxFKEFQUExFX1BBWV9QQVlNRU5UX0RFVEFJTFNfREFUQSkKK3N0YXRpYyB2b2lk
IG1lcmdlKEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UmLCBBcHBsZVBheURldGFpbHNVcGRhdGVE
YXRhJiYpIHsgfQorI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVlfUEFZTUVOVF9ERVRBSUxTX0RB
VEEpCisKK0V4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnNoaXBwaW5n
QWRkcmVzc1VwZGF0ZWQoVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4mJiBlcnJvcnMpCiB7
CiAgICAgQVNTRVJUKG1faXNVcGRhdGluZyk7CiAgICAgbV9pc1VwZGF0aW5nID0gZmFsc2U7CiAK
LSAgICBTaGlwcGluZ0NvbnRhY3RVcGRhdGUgdXBkYXRlOworICAgIEFwcGxlUGF5U2hpcHBpbmdD
b250YWN0VXBkYXRlIHVwZGF0ZTsKICAgICB1cGRhdGUuZXJyb3JzID0gV1RGTW92ZShlcnJvcnMp
OwogCiAgICAgYXV0byBuZXdTaGlwcGluZ01ldGhvZHMgPSBjb21wdXRlU2hpcHBpbmdNZXRob2Rz
KCk7CkBAIC01MDgsNyArNTUyLDEyIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5UGF5bWVu
dEhhbmRsZXI6OnNoaXBwaW5nQWRkcmVzc1VwZGF0ZWQoVmVjdG9yPFBheW1lbnRFCiAgICAgYXV0
byBuZXdUb3RhbEFuZExpbmVJdGVtcyA9IGNvbXB1dGVUb3RhbEFuZExpbmVJdGVtcygpOwogICAg
IGlmIChuZXdUb3RhbEFuZExpbmVJdGVtcy5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJu
IG5ld1RvdGFsQW5kTGluZUl0ZW1zLnJlbGVhc2VFeGNlcHRpb24oKTsKLSAgICB1cGRhdGUubmV3
VG90YWxBbmRMaW5lSXRlbXMgPSBuZXdUb3RhbEFuZExpbmVJdGVtcy5yZWxlYXNlUmV0dXJuVmFs
dWUoKTsKKyAgICBzdGQ6OnRpZSh1cGRhdGUubmV3VG90YWwsIHVwZGF0ZS5uZXdMaW5lSXRlbXMp
ID0gbmV3VG90YWxBbmRMaW5lSXRlbXMucmVsZWFzZVJldHVyblZhbHVlKCk7CisKKyAgICBhdXRv
IGFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEgPSBjb252ZXJ0QW5kVmFsaWRhdGUoKnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgbV9wYXltZW50UmVxdWVzdC0+cGF5bWVudERldGFpbHMoKSk7Cisg
ICAgaWYgKGFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaGFzRXhjZXB0aW9uKCkpCisgICAgICAg
IHJldHVybiBhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLnJlbGVhc2VFeGNlcHRpb24oKTsKKyAg
ICBtZXJnZSh1cGRhdGUsIGFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEucmVsZWFzZVJldHVyblZh
bHVlKCkpOwogCiAgICAgcGF5bWVudENvb3JkaW5hdG9yKCkuY29tcGxldGVTaGlwcGluZ0NvbnRh
Y3RTZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUpKTsKICAgICByZXR1cm4geyB9OwpAQCAtNTE5LDEy
ICs1NjgsMTcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6c2hp
cHBpbmdPcHRpb25VcGRhdGVkKCkKICAgICBBU1NFUlQobV9pc1VwZGF0aW5nKTsKICAgICBtX2lz
VXBkYXRpbmcgPSBmYWxzZTsKIAotICAgIFNoaXBwaW5nTWV0aG9kVXBkYXRlIHVwZGF0ZTsKKyAg
ICBBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlIHVwZGF0ZTsKIAogICAgIGF1dG8gbmV3VG90
YWxBbmRMaW5lSXRlbXMgPSBjb21wdXRlVG90YWxBbmRMaW5lSXRlbXMoKTsKICAgICBpZiAobmV3
VG90YWxBbmRMaW5lSXRlbXMuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBuZXdUb3Rh
bEFuZExpbmVJdGVtcy5yZWxlYXNlRXhjZXB0aW9uKCk7Ci0gICAgdXBkYXRlLm5ld1RvdGFsQW5k
TGluZUl0ZW1zID0gbmV3VG90YWxBbmRMaW5lSXRlbXMucmVsZWFzZVJldHVyblZhbHVlKCk7Cisg
ICAgc3RkOjp0aWUodXBkYXRlLm5ld1RvdGFsLCB1cGRhdGUubmV3TGluZUl0ZW1zKSA9IG5ld1Rv
dGFsQW5kTGluZUl0ZW1zLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworCisgICAgYXV0byBhcHBsZVBh
eURldGFpbHNVcGRhdGVEYXRhID0gY29udmVydEFuZFZhbGlkYXRlKCpzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCksIG1fcGF5bWVudFJlcXVlc3QtPnBheW1lbnREZXRhaWxzKCkpOworICAgIGlmIChh
cHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4g
YXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgbWVyZ2Uo
dXBkYXRlLCBhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsK
IAogICAgIHBheW1lbnRDb29yZGluYXRvcigpLmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rp
b24oV1RGTW92ZSh1cGRhdGUpKTsKICAgICByZXR1cm4geyB9OwpAQCAtNTM1LDExICs1ODksMTkg
QEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6cGF5bWVudE1ldGhv
ZFVwZGF0ZWQoKQogICAgIEFTU0VSVChtX2lzVXBkYXRpbmcpOwogICAgIG1faXNVcGRhdGluZyA9
IGZhbHNlOwogCisgICAgQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlIHVwZGF0ZTsKKwogICAg
IGF1dG8gbmV3VG90YWxBbmRMaW5lSXRlbXMgPSBjb21wdXRlVG90YWxBbmRMaW5lSXRlbXMoKTsK
ICAgICBpZiAobmV3VG90YWxBbmRMaW5lSXRlbXMuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJl
dHVybiBuZXdUb3RhbEFuZExpbmVJdGVtcy5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgc3RkOjp0
aWUodXBkYXRlLm5ld1RvdGFsLCB1cGRhdGUubmV3TGluZUl0ZW1zKSA9IG5ld1RvdGFsQW5kTGlu
ZUl0ZW1zLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCi0gICAgcGF5bWVudENvb3JkaW5hdG9yKCku
Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKFBheW1lbnRNZXRob2RVcGRhdGUgeyBuZXdU
b3RhbEFuZExpbmVJdGVtcy5yZWxlYXNlUmV0dXJuVmFsdWUoKSB9KTsKKyAgICBhdXRvIGFwcGxl
UGF5RGV0YWlsc1VwZGF0ZURhdGEgPSBjb252ZXJ0QW5kVmFsaWRhdGUoKnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSwgbV9wYXltZW50UmVxdWVzdC0+cGF5bWVudERldGFpbHMoKSk7CisgICAgaWYg
KGFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVy
biBhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICBtZXJn
ZSh1cGRhdGUsIGFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEucmVsZWFzZVJldHVyblZhbHVlKCkp
OworCisgICAgcGF5bWVudENvb3JkaW5hdG9yKCkuY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0
aW9uKFdURk1vdmUodXBkYXRlKSk7CiAgICAgcmV0dXJuIHsgfTsKIH0KIApAQCAtNTY4LDcgKzYz
MCw3IEBAIHZvaWQgQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcGxldGUoT3B0aW9uYWw8UGF5
bWVudENvbXBsZXRlPiYmIHJlc3VsdCkKIAogRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXlt
ZW50SGFuZGxlcjo6cmV0cnkoUGF5bWVudFZhbGlkYXRpb25FcnJvcnMmJiB2YWxpZGF0aW9uRXJy
b3JzKQogewotICAgIFZlY3RvcjxQYXltZW50RXJyb3I+IGVycm9yczsKKyAgICBWZWN0b3I8UmVm
UHRyPEFwcGxlUGF5RXJyb3I+PiBlcnJvcnM7CiAKICAgICBjb21wdXRlQWRkcmVzc0Vycm9ycyhX
VEZNb3ZlKHZhbGlkYXRpb25FcnJvcnMuZXJyb3IpLCBXVEZNb3ZlKHZhbGlkYXRpb25FcnJvcnMu
c2hpcHBpbmdBZGRyZXNzKSwgZXJyb3JzKTsKICAgICBjb21wdXRlUGF5ZXJFcnJvcnMoV1RGTW92
ZSh2YWxpZGF0aW9uRXJyb3JzLnBheWVyKSwgZXJyb3JzKTsKQEAgLTU3OSw3ICs2NDEsNyBAQCBF
eGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpyZXRyeShQYXltZW50VmFs
aWRhdGlvbkVycm9ycyYmIHZhbGlkYQogCiAgICAgLy8gRW5zdXJlIHRoZXJlIGlzIGFsd2F5cyBh
dCBsZWFzdCBvbmUgZXJyb3IgdG8gYXZvaWQgaGF2aW5nIGEgZmluYWwgcmVzdWx0LgogICAgIGlm
IChlcnJvcnMuaXNFbXB0eSgpKQotICAgICAgICBlcnJvcnMuYXBwZW5kKHsgUGF5bWVudEVycm9y
OjpDb2RlOjpVbmtub3duLCB7IH0sIFdURjo6bnVsbG9wdCB9KTsKKyAgICAgICAgZXJyb3JzLmFw
cGVuZChBcHBsZVBheUVycm9yOjpjcmVhdGUoQXBwbGVQYXlFcnJvckNvZGU6OlVua25vd24sIFdU
Rjo6bnVsbG9wdCwgbnVsbFN0cmluZygpKSk7CiAKICAgICBQYXltZW50QXV0aG9yaXphdGlvblJl
c3VsdCBhdXRob3JpemF0aW9uUmVzdWx0IHsgUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OkZh
aWx1cmUsIFdURk1vdmUoZXJyb3JzKSB9OwogICAgIEFTU0VSVCghaXNGaW5hbFN0YXRlUmVzdWx0
KGF1dGhvcml6YXRpb25SZXN1bHQpKTsKQEAgLTYyMyw3ICs2ODUsNyBAQCB2b2lkIEFwcGxlUGF5
UGF5bWVudEhhbmRsZXI6OmRpZEF1dGhvcml6ZVBheW1lbnQoY29uc3QgUGF5bWVudCYgcGF5bWVu
dCkKICAgICBtX3BheW1lbnRSZXF1ZXN0LT5hY2NlcHQoV1RGOjpnZXQ8VVJMPihtX2lkZW50aWZp
ZXIpLnN0cmluZygpLCBXVEZNb3ZlKGRldGFpbHNGdW5jdGlvbiksIGNvbnZlcnQoc2hpcHBpbmdD
b250YWN0KSwgc2hpcHBpbmdDb250YWN0LmxvY2FsaXplZE5hbWUsIHNoaXBwaW5nQ29udGFjdC5l
bWFpbEFkZHJlc3MsIHNoaXBwaW5nQ29udGFjdC5waG9uZU51bWJlcik7CiB9CiAKLXZvaWQgQXBw
bGVQYXlQYXltZW50SGFuZGxlcjo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQ
YXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkK
K3ZvaWQgQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29u
c3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCiB7CiAgICAgQVNTRVJU
KCFtX2lzVXBkYXRpbmcpOwogICAgIG1faXNVcGRhdGluZyA9IHRydWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5
bWVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJl
cXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oCmluZGV4IDg5Yzc1N2ZkZmI0ZDU3NTQxODA2
MjkwMGZhM2Y5ZjE0OWQwNjY5NzguLjFiOTkyNjYyMDA4YWY3Y2FiNTgwZmIwNzI4MGM4MmRmMzVi
ZDNjZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVu
dHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oCkBA
IC0zNCwxMCArMzQsMTEgQEAKICNpbmNsdWRlICJQYXltZW50UmVxdWVzdC5oIgogI2luY2x1ZGUg
IlBheW1lbnRTZXNzaW9uLmgiCiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVk
ZSA8d3RmL1JlZi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBBcHBsZVBheUVycm9yOwogY2xhc3MgUGF5bWVudENvb3JkaW5hdG9yOwog
CiBjbGFzcyBBcHBsZVBheVBheW1lbnRIYW5kbGVyIGZpbmFsIDogcHVibGljIFBheW1lbnRIYW5k
bGVyLCBwdWJsaWMgUGF5bWVudFNlc3Npb24sIHByaXZhdGUgQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIgewpAQCAtNTMsMTQgKzU0LDE0IEBAIHByaXZhdGU6CiAgICAgRG9jdW1lbnQmIGRvY3Vt
ZW50KCkgY29uc3Q7CiAgICAgUGF5bWVudENvb3JkaW5hdG9yJiBwYXltZW50Q29vcmRpbmF0b3Io
KSBjb25zdDsKIAotICAgIEV4Y2VwdGlvbk9yPFZlY3RvcjxBcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+PiBjb21wdXRlU2hpcHBpbmdNZXRob2RzKCk7Ci0gICAg
RXhjZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0
ZW1zPiBjb21wdXRlVG90YWxBbmRMaW5lSXRlbXMoKSBjb25zdDsKLSAgICBWZWN0b3I8UGF5bWVu
dEVycm9yPiBjb21wdXRlRXJyb3JzKFN0cmluZyYmIGVycm9yLCBBZGRyZXNzRXJyb3JzJiYsIFBh
eWVyRXJyb3JGaWVsZHMmJiwgSlNDOjpKU09iamVjdCogcGF5bWVudE1ldGhvZEVycm9ycykgY29u
c3Q7Ci0gICAgdm9pZCBjb21wdXRlQWRkcmVzc0Vycm9ycyhTdHJpbmcmJiBlcnJvciwgQWRkcmVz
c0Vycm9ycyYmLCBWZWN0b3I8UGF5bWVudEVycm9yPiYpIGNvbnN0OwotICAgIHZvaWQgY29tcHV0
ZVBheWVyRXJyb3JzKFBheWVyRXJyb3JGaWVsZHMmJiwgVmVjdG9yPFBheW1lbnRFcnJvcj4mKSBj
b25zdDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBjb21wdXRlUGF5bWVudE1ldGhvZEVycm9ycyhK
U0M6OkpTT2JqZWN0KiBwYXltZW50TWV0aG9kRXJyb3JzLCBWZWN0b3I8UGF5bWVudEVycm9yPiYp
IGNvbnN0OworICAgIEV4Y2VwdGlvbk9yPFZlY3RvcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPj4g
Y29tcHV0ZVNoaXBwaW5nTWV0aG9kcygpOworICAgIEV4Y2VwdGlvbk9yPHN0ZDo6dHVwbGU8QXBw
bGVQYXlMaW5lSXRlbSwgVmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+Pj4gY29tcHV0ZVRvdGFsQW5k
TGluZUl0ZW1zKCkgY29uc3Q7CisgICAgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4gY29t
cHV0ZUVycm9ycyhTdHJpbmcmJiBlcnJvciwgQWRkcmVzc0Vycm9ycyYmLCBQYXllckVycm9yRmll
bGRzJiYsIEpTQzo6SlNPYmplY3QqIHBheW1lbnRNZXRob2RFcnJvcnMpIGNvbnN0OworICAgIHZv
aWQgY29tcHV0ZUFkZHJlc3NFcnJvcnMoU3RyaW5nJiYgZXJyb3IsIEFkZHJlc3NFcnJvcnMmJiwg
VmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4mKSBjb25zdDsKKyAgICB2b2lkIGNvbXB1dGVQ
YXllckVycm9ycyhQYXllckVycm9yRmllbGRzJiYsIFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJv
cj4+JikgY29uc3Q7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gY29tcHV0ZVBheW1lbnRNZXRob2RF
cnJvcnMoSlNDOjpKU09iamVjdCogcGF5bWVudE1ldGhvZEVycm9ycywgVmVjdG9yPFJlZlB0cjxB
cHBsZVBheUVycm9yPj4mKSBjb25zdDsKIAotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNoaXBwaW5n
QWRkcmVzc1VwZGF0ZWQoVmVjdG9yPFBheW1lbnRFcnJvcj4mJiBlcnJvcnMpOworICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNoaXBwaW5nQWRkcmVzc1VwZGF0ZWQoVmVjdG9yPFJlZlB0cjxBcHBsZVBh
eUVycm9yPj4mJiBlcnJvcnMpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNoaXBwaW5nT3B0aW9u
VXBkYXRlZCgpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHBheW1lbnRNZXRob2RVcGRhdGVkKCk7
CiAKQEAgLTc4LDcgKzc5LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCB2ZXJzaW9uKCkgY29u
c3QgZmluYWw7CiAgICAgdm9pZCB2YWxpZGF0ZU1lcmNoYW50KFVSTCYmKSBmaW5hbDsKICAgICB2
b2lkIGRpZEF1dGhvcml6ZVBheW1lbnQoY29uc3QgUGF5bWVudCYpIGZpbmFsOwotICAgIHZvaWQg
ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVl
c3Q6OlNoaXBwaW5nTWV0aG9kJikgZmluYWw7CisgICAgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01l
dGhvZChjb25zdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kJikgZmluYWw7CiAgICAgdm9pZCBkaWRT
ZWxlY3RTaGlwcGluZ0NvbnRhY3QoY29uc3QgUGF5bWVudENvbnRhY3QmKSBmaW5hbDsKICAgICB2
b2lkIGRpZFNlbGVjdFBheW1lbnRNZXRob2QoY29uc3QgUGF5bWVudE1ldGhvZCYpIGZpbmFsOwog
ICAgIHZvaWQgZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24oUGF5bWVudFNlc3Npb25FcnJvciYmKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3Qv
UGF5bWVudERldGFpbHNCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1
ZXN0L1BheW1lbnREZXRhaWxzQmFzZS5oCmluZGV4IDk0MjJkNDIwMTM0YWY5M2RiOWE2ZjQwYWE2
ZmUxZDUzNmIxZTFlZTcuLjkwZjg3ZDIwNjFlMDZkNTk4YTRjMzM4M2E2M2FjYzgxYTBhNjBlZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVu
dERldGFpbHNCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVz
dC9QYXltZW50RGV0YWlsc0Jhc2UuaApAQCAtMzAsNyArMzAsMTEgQEAKICNpbmNsdWRlICJQYXlt
ZW50RGV0YWlsc01vZGlmaWVyLmgiCiAjaW5jbHVkZSAiUGF5bWVudEl0ZW0uaCIKICNpbmNsdWRl
ICJQYXltZW50U2hpcHBpbmdPcHRpb24uaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09i
amVjdC5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZy5oPgorI2luY2x1ZGUgPHd0
Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOCw2ICs0MiwxMCBA
QCBzdHJ1Y3QgUGF5bWVudERldGFpbHNCYXNlIHsKICAgICBPcHRpb25hbDxWZWN0b3I8UGF5bWVu
dEl0ZW0+PiBkaXNwbGF5SXRlbXM7CiAgICAgT3B0aW9uYWw8VmVjdG9yPFBheW1lbnRTaGlwcGlu
Z09wdGlvbj4+IHNoaXBwaW5nT3B0aW9uczsKICAgICBPcHRpb25hbDxWZWN0b3I8UGF5bWVudERl
dGFpbHNNb2RpZmllcj4+IG1vZGlmaWVyczsKKyAgICBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0
PiBkYXRhOworCisgICAgLy8gTm90IGZyb20gdGhlIElETC4gU2V0IGJ5IGBkYXRhYCB3aGVuIHRo
aXMgaXMgdmFsaWRhdGVkIGJ5IGBQYXltZW50UmVxdWVzdGAuCisgICAgU3RyaW5nIHNlcmlhbGl6
ZWREYXRhOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50RGV0YWlsc0Jhc2UuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50RGV0YWlsc0Jhc2Uu
aWRsCmluZGV4IDQ0OWUzZWU5OGQyOTEwN2VjMGNlZTZjYzQ1NjhiMzA4ZDM1NmY1ZGYuLmQ4MGM0
OWQ5MjA1NjYxZGU4MGE4ZTQ3NmMzMDQxMzkxYTU2ZDVjZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudERldGFpbHNCYXNlLmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnREZXRhaWxzQmFz
ZS5pZGwKQEAgLTI5LDQgKzI5LDUgQEAKICAgICBzZXF1ZW5jZTxQYXltZW50SXRlbT4gZGlzcGxh
eUl0ZW1zOwogICAgIHNlcXVlbmNlPFBheW1lbnRTaGlwcGluZ09wdGlvbj4gc2hpcHBpbmdPcHRp
b25zOwogICAgIHNlcXVlbmNlPFBheW1lbnREZXRhaWxzTW9kaWZpZXI+IG1vZGlmaWVyczsKKyAg
ICBvYmplY3QgZGF0YTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bh
eW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
cGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCmluZGV4IGVlMGQzYWFlYjY3ZjA0MGYw
Njk0ODg5ZWNmNzU1NDE0NjU5NWNlYzUuLjgxYjU1MzQ0ZmE5ZmYxMDc3ZjQ1MDhmM2ZjZjQzNmU5
MTE1MzJiN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVl
c3QvUGF5bWVudFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCkBAIC0zNDUsNiArMzQ1LDE0IEBAIHN0YXRpYyBF
eGNlcHRpb25PcjxzdGQ6OnR1cGxlPFN0cmluZywgVmVjdG9yPFN0cmluZz4+PiBjaGVja0FuZENh
bm9uaWNhbGl6ZURldGFpCiAgICAgfSBlbHNlIGlmIChpc1VwZGF0ZSA9PSBJc1VwZGF0ZTo6Tm8p
CiAgICAgICAgIGRldGFpbHMubW9kaWZpZXJzID0geyB7IH0gfTsKIAorICAgIGlmIChkZXRhaWxz
LmRhdGEpIHsKKyAgICAgICAgYXV0byBkYXRhUmVzdWx0ID0gY2hlY2tBbmRDYW5vbmljYWxpemVE
YXRhKGNvbnRleHQsIGRldGFpbHMpOworICAgICAgICBpZiAoZGF0YVJlc3VsdC5oYXNFeGNlcHRp
b24oKSkKKyAgICAgICAgICAgIHJldHVybiBkYXRhUmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsK
KworICAgICAgICBkZXRhaWxzLnNlcmlhbGl6ZWREYXRhID0gZGF0YVJlc3VsdC5yZWxlYXNlUmV0
dXJuVmFsdWUoKTsKKyAgICB9CisKICAgICByZXR1cm4gc3RkOjptYWtlX3R1cGxlKFdURk1vdmUo
c2VsZWN0ZWRTaGlwcGluZ09wdGlvbiksIFdURk1vdmUoc2VyaWFsaXplZE1vZGlmaWVyRGF0YSkp
OwogfQogCkBAIC03MzYsNiArNzQ0LDggQEAgdm9pZCBQYXltZW50UmVxdWVzdDo6c2V0dGxlRGV0
YWlsc1Byb21pc2UoVXBkYXRlUmVhc29uIHJlYXNvbikKICAgICAgICAgbV9kZXRhaWxzLm1vZGlm
aWVycyA9IFdURk1vdmUoKmRldGFpbHNVcGRhdGUubW9kaWZpZXJzKTsKICAgICAgICAgbV9zZXJp
YWxpemVkTW9kaWZpZXJEYXRhID0gV1RGTW92ZShzdGQ6OmdldDwxPihzaGlwcGluZ09wdGlvbkFu
ZE1vZGlmaWVyRGF0YSkpOwogICAgIH0KKyAgICBpZiAoIWRldGFpbHNVcGRhdGUuc2VyaWFsaXpl
ZERhdGEuaXNFbXB0eSgpKQorICAgICAgICBtX2RldGFpbHMuc2VyaWFsaXplZERhdGEgPSBXVEZN
b3ZlKGRldGFpbHNVcGRhdGUuc2VyaWFsaXplZERhdGEpOwogCiAgICAgYXV0byByZXN1bHQgPSBh
Y3RpdmVQYXltZW50SGFuZGxlcigpLT5kZXRhaWxzVXBkYXRlZChyZWFzb24sIFdURk1vdmUoZGV0
YWlsc1VwZGF0ZS5lcnJvciksIFdURk1vdmUoZGV0YWlsc1VwZGF0ZS5zaGlwcGluZ0FkZHJlc3NF
cnJvcnMpLCBXVEZNb3ZlKGRldGFpbHNVcGRhdGUucGF5ZXJFcnJvcnMpLCBkZXRhaWxzVXBkYXRl
LnBheW1lbnRNZXRob2RFcnJvcnMuZ2V0KCkpOwogICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9u
KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKaW5kZXggYThmYTA3MmI1OGEwZDU4OTBkMTli
MWI1NmE4NzMwOGU2MjdlZDJmZi4uZDZlOWQxNDlkMmRkM2RjMTVjNmQ4ZThhZmMwYmE1NGY5ZTZl
MmU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKQEAgLTQzNSw3ICs0MzUsNiBAQCBsaXN0
KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKICkKIAogbGlzdChBUFBFTkQgV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCi0gICAgTW9kdWxlcy9hcHBsZXBheS9QYXltZW50TWV0aG9kVXBk
YXRlLmgKICAgICBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uRXJyb3IuaAogICAgIE1v
ZHVsZXMvYXBwbGVwYXkvUGF5bWVudFN1bW1hcnlJdGVtcy5oCiAKQEAgLTYxNiw2ICs2MTUsOCBA
QCBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNhbmNl
bEV2ZW50LmlkbAogICAgIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDb250YWN0RmllbGQuaWRs
CisgICAgTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmlkbAorICAg
IE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5pZGwKICAgICBNb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3IuaWRsCiAgICAgTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheUVycm9yQ29kZS5pZGwKICAgICBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3JDb250
YWN0RmllbGQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0
IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRleCBiZjZhZTE2MTg3YWJhMDcx
NTcyZGEwNzkyM2FjMzMwYjIyOGY2OWM1Li44YzgyODQ5MTJiMmE4MTcyNWQxMDViNWYyMWUyMDU5
MTQ1ZDQyOTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0Cisr
KyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAgLTIzLDYgKzIzLDggQEAKIAog
SlNBcHBsZVBheUNhbmNlbEV2ZW50LmNwcAogSlNBcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAKK0pT
QXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5jcHAKK0pTQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0
YS5jcHAKIEpTQXBwbGVQYXlFcnJvci5jcHAKIEpTQXBwbGVQYXlFcnJvckNvZGUuY3BwCiBKU0Fw
cGxlUGF5RXJyb3JDb250YWN0RmllbGQuY3BwCkBAIC02Miw3ICs2NCw2IEBAIEpTQXBwbGVQYXlW
YWxpZGF0ZU1lcmNoYW50RXZlbnQuY3BwCiBNb2R1bGVzL2FpcnBsYXkvV2ViTWVkaWFTZXNzaW9u
TWFuYWdlci5jcHAKIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDYW5jZWxFdmVudC5jcHAKIE1v
ZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDb250YWN0RmllbGQuY3BwCi1Nb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5RXJyb3IuY3BwCiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBh
YmlsaXR5LmNwcAogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRBdXRob3JpemVkRXZl
bnQuY3BwCiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFNlbGVjdGVkRXZl
bnQuY3BwCkBAIC04NCw3ICs4NSw2IEBAIE1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENv
Y29hLm1tCiBNb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRDb250YWN0Q29jb2EubW0KIE1v
ZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudE1lcmNoYW50U2Vzc2lvbkNvY29hLm1tCiBNb2R1
bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRNZXRob2RDb2NvYS5tbQotTW9kdWxlcy9hcHBsZXBh
eS9jb2NvYS9QYXltZW50TWV0aG9kVXBkYXRlQ29jb2EubW0KIE1vZHVsZXMvYXBwbGVwYXkvY29j
b2EvUGF5bWVudFNlc3Npb25FcnJvckNvY29hLm1tCiBNb2R1bGVzL2FwcGxlcGF5L2NvY29hL1Bh
eW1lbnRTdW1tYXJ5SXRlbXNDb2NvYS5tbQogTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVz
dC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDhkMWZmZmViZWZlZjIwYzYwYzkwNTA5
YmFjNzFmNDIzYjQzYTZjNDYuLjU1MGNkYjZiYTM1NjM3Mzk0YWVjZTM2N2JiYWUyNjA5MWE4NGM3
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTIzMzgsNyArMjMzOCw3IEBACiAJCTdDNjUyMzFBMUUwMERCQjUwMDY3N0YyMiAv
KiBKU0FwcGxlUGF5UGF5bWVudFBhc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDNjUyMzEwMUUwMERCQjQwMDY3N0YyMiAvKiBKU0FwcGxlUGF5UGF5
bWVudFBhc3MuaCAqLzsgfTsKIAkJN0M2NTc5RTAxRTAwNzlGOTAwRTNBMjdBIC8qIEFwcGxlUGF5
UGF5bWVudFJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDNjU3OURGMUUwMDc5RjkwMEUzQTI3QSAvKiBBcHBsZVBheVBheW1lbnRSZXF1ZXN0
LmggKi87IH07CiAJCTdDNjU3OUUzMUUwMDgyNzAwMEUzQTI3QSAvKiBBcHBsZVBheUxpbmVJdGVt
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzY1NzlF
MjFFMDA4MjcwMDBFM0EyN0EgLyogQXBwbGVQYXlMaW5lSXRlbS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTdDNjU3OUU4MUUwMDgzMTYwMEUzQTI3
QSAvKiBBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3QzY1NzlFNzFFMDA4MzE2MDBFM0EyN0EgLyogQXBwbGVQYXlT
aGlwcGluZ01ldGhvZC5oICovOyB9OworCQk3QzY1NzlFODFFMDA4MzE2MDBFM0EyN0EgLyogQXBw
bGVQYXlTaGlwcGluZ01ldGhvZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0M2NTc5RTcxRTAwODMxNjAwRTNBMjdBIC8qIEFwcGxlUGF5U2hpcHBpbmdN
ZXRob2QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk3QzY1NzlGMDFFMDA4NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBheUxpbmVJdGVtLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzY1NzlFQTFFMDA4NTY2
MDBFM0EyN0EgLyogSlNBcHBsZVBheUxpbmVJdGVtLmggKi87IH07CiAJCTdDNjU3OUYyMUUwMDg1
NjYwMEUzQTI3QSAvKiBKU0FwcGxlUGF5UGF5bWVudFJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNjU3OUVDMUUwMDg1NjYwMEUzQTI3QSAv
KiBKU0FwcGxlUGF5UGF5bWVudFJlcXVlc3QuaCAqLzsgfTsKIAkJN0M2NTc5RjQxRTAwODU2NjAw
RTNBMjdBIC8qIEpTQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M2NTc5RUUxRTAwODU2NjAwRTNBMjdBIC8qIEpT
QXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oICovOyB9OwpAQCAtMjkzNyw4ICsyOTM3LDEyIEBACiAJ
CTk0REU1Qzk2MUQ4MzAxQkQwMDE2NEYyQSAvKiBDU1NQYXJzZXJJbXBsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NERFNUM5NDFEODMwMUIwMDAxNjRG
MkEgLyogQ1NTUGFyc2VySW1wbC5oICovOyB9OwogCQk5NEU4Mzk1MTFERkIyQTBFMDA3QkM2QTcg
LyogQ1NTTmFtZXNwYWNlUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTRFODM5NEYxREZCMjcwMDAwN0JDNkE3IC8qIENTU05hbWVzcGFjZVJ1bGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NEU4
Mzk1NjFERkIyQkM0MDA3QkM2QTcgLyogSlNDU1NOYW1lc3BhY2VSdWxlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NEU4Mzk1NDFERkIyQkE2MDA3QkM2
QTcgLyogSlNDU1NOYW1lc3BhY2VSdWxlLmggKi87IH07CisJCTk1MDE4M0NEMjVENjMzRDkwMEQ0
MzQwRiAvKiBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTAxODNDQjI1RDYzM0Q4MDBENDM0MEYgLyogQXBw
bGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTk1MjA3NjA1MUYyNjc1RkUwMDdEMkFBQiAvKiBDYWxsVHJhY2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTIwNzYw
MTFGMjY3NUY5MDA3RDJBQUIgLyogQ2FsbFRyYWNlci5oICovOyB9OwogCQk5NTIwNzYwNjFGMjY3
NUZFMDA3RDJBQUIgLyogQ2FsbFRyYWNlclR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTIwNzYwMjFGMjY3NUY5MDA3RDJBQUIgLyogQ2FsbFRy
YWNlclR5cGVzLmggKi87IH07CisJCTk1MjdEN0FCMjVENUZERTIwMEE2RTE3NiAvKiBBcHBsZVBh
eURldGFpbHNVcGRhdGVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NTI3RDdBODI1RDVGREUxMDBBNkUxNzYgLyogQXBwbGVQYXlEZXRhaWxzVXBk
YXRlRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTk1MjdEN0FGMjVENUZFNkMwMEE2RTE3NiAvKiBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURh
dGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MjdE
N0FEMjVENUZFNkIwMEE2RTE3NiAvKiBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaCAqLzsg
fTsKKwkJOTUzQkNFQjIyNUQ2MjgzRDAwQTRBMkExIC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRl
QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUz
QkNFQUYyNUQ2MjgzQzAwQTRBMkExIC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oICov
OyB9OwogCQk5NTZGQzRCQjI1RDQ5QzdCMDBGN0IzQTIgLyogQXBwbGVQYXlMaW5lSXRlbURhdGEu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1NkZDNEI4
MjVENDlDN0EwMEY3QjNBMiAvKiBBcHBsZVBheUxpbmVJdGVtRGF0YS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk1NkZDNEJCMjVENDlDN0IwMEY3
QjNBMyAvKiBKU0FwcGxlUGF5TGluZUl0ZW1EYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTZGQzRCQTI1RDQ5QzdEMDBGN0IzQTIgLyogSlNBcHBs
ZVBheUxpbmVJdGVtRGF0YS5oICovOyB9OwogCQk5NUExRTJFOTI1Q0M3NUE5MDAyNjhDOEUgLyog
TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTVBMUUyRTcyNUNDNzVBODAwMjY4QzhFIC8qIE1lZGlhQ29u
dHJvbHNDb250ZXh0TWVudUl0ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtMzEyNSwxMSArMzEyOSwxMSBAQAogCQlBMTI1MzhENDEzRjlCNjBB
MDAwMjQ3NTQgLyogTGF5b3V0UmVwYWludGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMTIwQUNBMDEzRjk5ODM3MDBGRTRBQzcgLyogTGF5b3V0UmVw
YWludGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQTEyNzA1QzMxNjU2QkQ2NTAwQzJFMjdDIC8qIEdyaWRQb3NpdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEyNzA1QzIxNjU2QkQ2NTAwQzJF
MjdDIC8qIEdyaWRQb3NpdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUExMkExMDUwMTY2NDQ0RkQwMDhGQTMxMSAvKiBHcmlkVHJhY2tTaXpl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTJBMTA0
RTE2NjQ0NERDMDA4RkEzMTEgLyogR3JpZFRyYWNrU2l6ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUExMkM1OUVFMjAzNUZDOUIwMDEyMjM2QiAv
KiBBcHBsZVBheUVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQURGREZENjFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlFcnJvci5oICovOyB9
OworCQlBMTJDNTlFRTIwMzVGQzlCMDAxMjIzNkIgLyogQXBwbGVQYXlFcnJvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRGRDYxRTcxRDhERjAw
OEY1RDM0IC8qIEFwcGxlUGF5RXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlBMTJDNTlGMDIwMzVGQ0FCMDAxMjIzNkIgLyogQXBwbGVQYXlQ
YXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUFERkRGRDgxRTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5UGF5
bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaCAqLzsgfTsKLQkJQTEyQzU5RjEyMDM1RkNCRjAwMTIy
MzZCIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRGREExRTcxRDhERjAwOEY1RDM0IC8qIEFw
cGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oICovOyB9OwotCQlBMTJDNTlGMjIwMzVGQ0Q2MDAx
MjIzNkIgLyogQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBREZERkRDMUU3MUQ4REYwMDhGNUQzNCAv
KiBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oICovOyB9OwotCQlBMTJDNTlGMzIwMzVG
Q0UyMDAxMjIzNkIgLyogQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRGREUxRTcxRDhERjAwOEY1
RDM0IC8qIEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUuaCAqLzsgfTsKKwkJQTEyQzU5RjEy
MDM1RkNCRjAwMTIyMzZCIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRGREExRTcxRDhERjAw
OEY1RDM0IC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUExMkM1OUYyMjAzNUZDRDYwMDEyMjM2
QiAvKiBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRGREMxRTcxRDhERjAwOEY1RDM0IC8qIEFw
cGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTEyQzU5RjMyMDM1RkNFMjAwMTIyMzZCIC8qIEFwcGxl
UGF5U2hpcHBpbmdNZXRob2RVcGRhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFBREZERkRFMUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBheVNoaXBw
aW5nTWV0aG9kVXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQTEyQzU5RjkyMDM2MEFDQjAwMTIyMzZCIC8qIEpTQXBwbGVQYXlFcnJvci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRGRTIx
RTcxRENBMDAwOEY1RDM0IC8qIEpTQXBwbGVQYXlFcnJvci5oICovOyB9OwogCQlBMTJDNTlGQjIw
MzYwQjAwMDAxMjIzNkIgLyogSlNBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURGREZFNDFF
NzFEQ0EwMDA4RjVEMzQgLyogSlNBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0Lmgg
Ki87IH07CiAJCUExMkM1OUZDMjAzNjBCMjcwMDEyMjM2QiAvKiBKU0FwcGxlUGF5UGF5bWVudE1l
dGhvZFVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMUFERkRGRTYxRTcxRENBMDAwOEY1RDM0IC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kVXBk
YXRlLmggKi87IH07CkBAIC0zMjEzLDggKzMyMTcsOCBAQAogCQlBMUFGRURFNzFGOEJGRjZEMDA4
NzAxM0YgLyogTW9ja1BheW1lbnRDb29yZGluYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUFGRURFNTFGOEJGRjZEMDA4NzAxM0YgLyogTW9j
a1BheW1lbnRDb29yZGluYXRvci5jcHAgKi87IH07CiAJCUExQjVCMjlFMUFBQTg0NkUwMDhCNjA0
MiAvKiBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQjVCMjlDMUFBQTg0NkUwMDhCNjA0MiAvKiBNb2Nr
Q29udGVudEZpbHRlclNldHRpbmdzLmNwcCAqLzsgfTsKIAkJQTFCNUIyOUYxQUFBODQ2RjAwOEI2
MDQyIC8qIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQjVCMjlEMUFBQTg0NkUwMDhCNjA0MiAvKiBNb2Nr
Q29udGVudEZpbHRlclNldHRpbmdzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKLQkJQTFCQjg1OUMyMTU5QUVBMTAwNjdFMDdEIC8qIEFwcGxlUGF5RXJy
b3JDb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MUJCODU5OTIxNTlBRUExMDA2N0UwN0QgLyogQXBwbGVQYXlFcnJvckNvZGUuaCAqLzsgfTsKLQkJ
QTFCQjg1QTMyMTU5QUY1NzAwNjdFMDdEIC8qIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQkI4NUEwMjE1
OUFGNTcwMDY3RTA3RCAvKiBBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmggKi87IH07CisJCUEx
QkI4NTlDMjE1OUFFQTEwMDY3RTA3RCAvKiBBcHBsZVBheUVycm9yQ29kZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFCQjg1OTkyMTU5QUVBMTAwNjdF
MDdEIC8qIEFwcGxlUGF5RXJyb3JDb2RlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTFCQjg1QTMyMTU5QUY1NzAwNjdFMDdEIC8qIEFwcGxlUGF5
RXJyb3JDb250YWN0RmllbGQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEExQkI4NUEwMjE1OUFGNTcwMDY3RTA3RCAvKiBBcHBsZVBheUVycm9yQ29udGFj
dEZpZWxkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQTFCQjg1QTkyMTU5QjAyQzAwNjdFMDdEIC8qIE1vY2tQYXltZW50RXJyb3IuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQkI4NUE2MjE1OUIwMkMw
MDY3RTA3RCAvKiBNb2NrUGF5bWVudEVycm9yLmggKi87IH07CiAJCUExQkI4NUIyMjE1OUIxQTEw
MDY3RTA3RCAvKiBKU0FwcGxlUGF5RXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUJCODVBRTIxNTlCMUEwMDA2N0UwN0QgLyogSlNBcHBs
ZVBheUVycm9yQ29kZS5oICovOyB9OwogCQlBMUJCODVCMzIxNTlCMUExMDA2N0UwN0QgLyogSlNB
cHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMUJCODVBRjIxNTlCMUEwMDA2N0UwN0QgLyogSlNBcHBsZVBheUVy
cm9yQ29udGFjdEZpZWxkLmggKi87IH07CkBAIC0zMjQ4LDcgKzMyNTIsNiBAQAogCQlBMURGNUFB
NjFGN0Y2NEJCMDA1OEE0NzcgLyogUGF5bWVudEhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExREY1QUE0MUY3RjY0QkIwMDU4QTQ3NyAvKiBQ
YXltZW50SGFuZGxlci5oICovOyB9OwogCQlBMURGNUFBRDFGODA3NUYwMDA1OEE0NzcgLyogQXBw
bGVQYXlSZXF1ZXN0QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTFERjVBQUExRjgwNzVGMDAwNThBNDc3IC8qIEFwcGxlUGF5UmVxdWVzdEJhc2Uu
aCAqLzsgfTsKIAkJQTFERjVBQjMxRjgwNzc1MzAwNThBNDc3IC8qIEpTQXBwbGVQYXlSZXF1ZXN0
QmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFE
RjVBQjExRjgwNzc1MjAwNThBNDc3IC8qIEpTQXBwbGVQYXlSZXF1ZXN0QmFzZS5oICovOyB9Owot
CQlBMURGRDUyNTIzMzQ1OTNGMDA0MkZDREIgLyogUGF5bWVudE1ldGhvZFVwZGF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFERkQ1MjQyMzM0NTkz
QTAwNDJGQ0RCIC8qIFBheW1lbnRNZXRob2RVcGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMURGRDUyNjIzMzQ1OTQ4MDA0MkZDREIgLyog
UGF5bWVudFN1bW1hcnlJdGVtcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTFERkQ1MjIyMzM0NTkzQTAwNDJGQ0RCIC8qIFBheW1lbnRTdW1tYXJ5SXRl
bXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlB
MUUwODY1RjI0ODlEMkI1MDBFNDk2RDkgLyogQXBwbGVQYXlTZXR1cENvbmZpZ3VyYXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRTA4NjVDMjQ4
OUQyQjEwMEU0OTZEOSAvKiBBcHBsZVBheVNldHVwQ29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExRTA4NjYwMjQ4OUQyQkEw
MEU0OTZEOSAvKiBBcHBsZVBheVNldHVwRmVhdHVyZVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUUwODY1RTI0ODlEMkIxMDBFNDk2RDkgLyog
QXBwbGVQYXlTZXR1cEZlYXR1cmVTdGF0ZS5oICovOyB9OwpAQCAtNjY2OCw3ICs2NjcxLDYgQEAK
IAkJMUFEOEY4MTkxMUNBQjlFOTAwRTkzRTU0IC8qIFBsYXRmb3JtU3RyYXRlZ2llcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybVN0cmF0ZWdpZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFEOEY4MUExMUNBQjlFOTAwRTkzRTU0IC8qIFBsYXRm
b3JtU3RyYXRlZ2llcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQURB
NEExQjFEMjJGMkMwMDA1QTlBMTUgLyogUGF5bWVudE1lcmNoYW50U2Vzc2lvbkNvY29hLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGF5bWVudE1lcmNoYW50U2Vz
c2lvbkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxQURGREZENTFFNzFE
OERGMDA4RjVEMzQgLyogQXBwbGVQYXlFcnJvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBBcHBsZVBheUVycm9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMUFERkRGRDYxRTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5RXJyb3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwbGVQYXlFcnJvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQURGREZENzFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlFcnJv
ci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXBwbGVQYXlFcnJvci5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBREZERkQ4MUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBh
eVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTExNzcwLDEyICsxMTc3MiwyMCBAQAogCQk5NEU4Mzk1MDFERkIy
OUE0MDA3QkM2QTcgLyogQ1NTTmFtZXNwYWNlUnVsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gQ1NTTmFtZXNwYWNlUnVsZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk0
RTgzOTUzMURGQjJCQTYwMDdCQzZBNyAvKiBKU0NTU05hbWVzcGFjZVJ1bGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDU1NOYW1lc3BhY2VSdWxlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTRFODM5NTQxREZCMkJBNjAwN0JDNkE3IC8qIEpT
Q1NTTmFtZXNwYWNlUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NT
U05hbWVzcGFjZVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUwMTgzQzky
NUQ2MzNEODAwRDQzNDBGIC8qIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5NTAxODNDQjI1RDYzM0Q4MDBENDM0MEYgLyogQXBwbGVQYXlE
ZXRhaWxzVXBkYXRlQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBs
ZVBheURldGFpbHNVcGRhdGVCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1
MEM0ODQ5MjVENjc3NDIwMEFCM0Q5QyAvKiBvdmVyZmxvdy1zdXBwb3J0LmpzICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2Ny
aXB0OyBwYXRoID0gIm92ZXJmbG93LXN1cHBvcnQuanMiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5NTBDNDg0QjI1RDY3NzRFMDBBQjNEOUMgLyogb3ZlcmZsb3ctYnV0dG9uLmpzICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5qYXZhc2NyaXB0OyBwYXRoID0gIm92ZXJmbG93LWJ1dHRvbi5qcyI7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk1MEM0QzAyQkVEODkzNkY4MThFMkY5OSAvKiBKU1NWR0dyYXBoaWNz
RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTVkdHcmFwaGlj
c0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUyMDc2MDAxRjI2NzVG
OTAwN0QyQUFCIC8qIENhbGxUcmFjZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2FsbFRyYWNl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1MjA3NjAxMUYyNjc1RjkwMDdE
MkFBQiAvKiBDYWxsVHJhY2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhbGxUcmFjZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUyMDc2MDIxRjI2NzVGOTAwN0QyQUFCIC8qIENhbGxU
cmFjZXJUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWxsVHJhY2VyVHlwZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUyN0Q3QTgyNUQ1RkRFMTAwQTZFMTc2IC8qIEFwcGxlUGF5
RGV0YWlsc1VwZGF0ZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBw
bGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5
NTI3RDdBQTI1RDVGREUxMDBBNkUxNzYgLyogQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MjdEN0FEMjVENUZFNkIwMEE2RTE3NiAvKiBK
U0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTk1MjdEN0FFMjVENUZFNkIwMEE2RTE3NiAvKiBKU0FwcGxlUGF5RGV0YWlsc1Vw
ZGF0ZURhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBcHBs
ZVBheURldGFpbHNVcGRhdGVEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTUzQkNFQUYyNUQ2MjgzQzAwQTRBMkExIC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0
ZUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUzQkNFQjEyNUQ2MjgzQzAw
QTRBMkExIC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTZGQzRCODI1RDQ5QzdBMDBGN0IzQTIgLyog
QXBwbGVQYXlMaW5lSXRlbURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXBwbGVQYXlMaW5lSXRlbURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTU2
RkM0QjgyNUQ0OUM3QzAwRjdCM0EyIC8qIEpTQXBwbGVQYXlMaW5lSXRlbURhdGEuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBcHBsZVBheUxpbmVJdGVtRGF0YS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1NkZDNEJBMjVENDlDN0IwMEY3QjNB
MiAvKiBBcHBsZVBheUxpbmVJdGVtRGF0YS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXBw
bGVQYXlMaW5lSXRlbURhdGEuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTIz
ODYsOSArMTIzOTYsNyBAQAogCQlBMURGNUFCMTFGODA3NzUyMDA1OEE0NzcgLyogSlNBcHBsZVBh
eVJlcXVlc3RCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXBwbGVQ
YXlSZXF1ZXN0QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMURGNUFCNDFG
ODA3OEYzMDA1OEE0NzcgLyogQXBwbGVQYXlDb250YWN0RmllbGQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQXBwbGVQYXlDb250YWN0RmllbGQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBMURGRDUyMjIzMzQ1OTNBMDA0MkZDREIgLyogUGF5bWVudFN1bW1hcnlJdGVtcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQYXltZW50U3VtbWFyeUl0ZW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUExREZENTI0MjMzNDU5M0EwMDQyRkNEQiAvKiBQYXltZW50TWV0aG9kVXBkYXRl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRNZXRob2RVcGRhdGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTFERkQ1MjcyMzM0NTk3MzAwNDJGQ0RCIC8qIFBheW1lbnRTdW1tYXJ5
SXRlbXNDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBheW1lbnRTdW1tYXJ5SXRlbXND
b2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTFERkQ1MjgyMzM0NTk3NDAw
NDJGQ0RCIC8qIFBheW1lbnRNZXRob2RVcGRhdGVDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFBheW1lbnRNZXRob2RVcGRhdGVDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTFFMDg2NUEyNDg5RDJCMDAwRTQ5NkQ5IC8qIEFwcGxlUGF5U2V0dXBGZWF0dXJlU3Rh
dGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEFwcGxlUGF5U2V0dXBGZWF0dXJlU3RhdGUuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlBMUUwODY1QzI0ODlEMkIxMDBFNDk2RDkgLyogQXBwbGVQYXlTZXR1
cENvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwbGVQYXlTZXR1cENvbmZpZ3VyYXRp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTFFMDg2NUQyNDg5RDJCMTAwRTQ5
NkQ5IC8qIEFwcGxlUGF5U2V0dXBDb25maWd1cmF0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBcHBsZVBheVNldHVw
Q29uZmlndXJhdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODMzNyw3
ICsxODM0NSwxMCBAQAogCQkJCUExREY1QUI0MUY4MDc4RjMwMDU4QTQ3NyAvKiBBcHBsZVBheUNv
bnRhY3RGaWVsZC5jcHAgKi8sCiAJCQkJQTFERjVBOTExRjdFQzQzMjAwNThBNDc3IC8qIEFwcGxl
UGF5Q29udGFjdEZpZWxkLmggKi8sCiAJCQkJQTFERjVBOTMxRjdFQzQzMjAwNThBNDc3IC8qIEFw
cGxlUGF5Q29udGFjdEZpZWxkLmlkbCAqLywKLQkJCQkxQURGREZENTFFNzFEOERGMDA4RjVEMzQg
LyogQXBwbGVQYXlFcnJvci5jcHAgKi8sCisJCQkJOTUwMTgzQ0IyNUQ2MzNEODAwRDQzNDBGIC8q
IEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaCAqLywKKwkJCQk5NTAxODNDOTI1RDYzM0Q4MDBE
NDM0MEYgLyogQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5pZGwgKi8sCisJCQkJOTUyN0Q3QTgy
NUQ1RkRFMTAwQTZFMTc2IC8qIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaCAqLywKKwkJCQk5
NTI3RDdBQTI1RDVGREUxMDBBNkUxNzYgLyogQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5pZGwg
Ki8sCiAJCQkJMUFERkRGRDYxRTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5RXJyb3IuaCAqLywK
IAkJCQkxQURGREZENzFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlFcnJvci5pZGwgKi8sCiAJ
CQkJQTFCQjg1OTkyMTU5QUVBMTAwNjdFMDdEIC8qIEFwcGxlUGF5RXJyb3JDb2RlLmggKi8sCkBA
IC0xODQzMSw3ICsxODQ0Miw2IEBACiAJCQkJNUM1M0RDQ0UyNDQ2NDQ5OTAwQTkzMTI0IC8qIFBh
eW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb25XZWJDb3JlLmggKi8sCiAJCQkJMUFFOTZBODcx
RDFBMENFQjAwQjg2NzY4IC8qIFBheW1lbnRNZXJjaGFudFNlc3Npb24uaCAqLywKIAkJCQkxQThB
NjQzOTFEMTlGQzUzMDBEMEUwMEYgLyogUGF5bWVudE1ldGhvZC5oICovLAotCQkJCUExREZENTI0
MjMzNDU5M0EwMDQyRkNEQiAvKiBQYXltZW50TWV0aG9kVXBkYXRlLmggKi8sCiAJCQkJMUE4QTY0
NjYxRDE5RkRGRjAwRDBFMDBGIC8qIFBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLmggKi8sCiAJCQkJ
MUE4QTY0NjUxRDE5RkRGRjAwRDBFMDBGIC8qIFBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLm1tICov
LAogCQkJCUExQzJDNTc1MUZBMjg1MTYwMEJBNDZGQSAvKiBQYXltZW50U2Vzc2lvbi5jcHAgKi8s
CkBAIC0xODQ1MCw3ICsxODQ2MCw2IEBACiAJCQkJMUE4QTY0NkExRDE5RkY4NzAwRDBFMDBGIC8q
IFBheW1lbnRDb250YWN0Q29jb2EubW0gKi8sCiAJCQkJMUFEQTRBMUIxRDIyRjJDMDAwNUE5QTE1
IC8qIFBheW1lbnRNZXJjaGFudFNlc3Npb25Db2NvYS5tbSAqLywKIAkJCQkxQThBNjQ2QjFEMTlG
Rjg3MDBEMEUwMEYgLyogUGF5bWVudE1ldGhvZENvY29hLm1tICovLAotCQkJCUExREZENTI4MjMz
NDU5NzQwMDQyRkNEQiAvKiBQYXltZW50TWV0aG9kVXBkYXRlQ29jb2EubW0gKi8sCiAJCQkJQTEx
M0UwMkEyMzMxOEVCQzAwOUMzM0EwIC8qIFBheW1lbnRTZXNzaW9uRXJyb3JDb2NvYS5tbSAqLywK
IAkJCQlBMURGRDUyNzIzMzQ1OTczMDA0MkZDREIgLyogUGF5bWVudFN1bW1hcnlJdGVtc0NvY29h
Lm1tICovLAogCQkJKTsKQEAgLTE4NTUwLDYgKzE4NTU5LDEwIEBACiAJCQkJQTE5NTZGMUIyMzMx
QTY0NjAwNTdFOUQyIC8qIEpTQXBwbGVQYXlDYW5jZWxFdmVudC5oICovLAogCQkJCUExREY1QTk4
MUY3RUM4QzAwMDU4QTQ3NyAvKiBKU0FwcGxlUGF5Q29udGFjdEZpZWxkLmNwcCAqLywKIAkJCQlB
MURGNUE5NzFGN0VDOEJGMDA1OEE0NzcgLyogSlNBcHBsZVBheUNvbnRhY3RGaWVsZC5oICovLAor
CQkJCTk1M0JDRUIxMjVENjI4M0MwMEE0QTJBMSAvKiBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJh
c2UuY3BwICovLAorCQkJCTk1M0JDRUFGMjVENjI4M0MwMEE0QTJBMSAvKiBKU0FwcGxlUGF5RGV0
YWlsc1VwZGF0ZUJhc2UuaCAqLywKKwkJCQk5NTI3RDdBRTI1RDVGRTZCMDBBNkUxNzYgLyogSlNB
cHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmNwcCAqLywKKwkJCQk5NTI3RDdBRDI1RDVGRTZCMDBB
NkUxNzYgLyogSlNBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmggKi8sCiAJCQkJMUFERkRGRTEx
RTcxRENBMDAwOEY1RDM0IC8qIEpTQXBwbGVQYXlFcnJvci5jcHAgKi8sCiAJCQkJMUFERkRGRTIx
RTcxRENBMDAwOEY1RDM0IC8qIEpTQXBwbGVQYXlFcnJvci5oICovLAogCQkJCUExQkI4NUFEMjE1
OUIxQTAwMDY3RTA3RCAvKiBKU0FwcGxlUGF5RXJyb3JDb2RlLmNwcCAqLywKQEAgLTMxMTgyLDYg
KzMxMTk1LDggQEAKIAkJCQk0NDI1MDcwOTI1ODI5QTI3MDBDMDkzNjggLyogQXBwSGlnaGxpZ2h0
U3RvcmFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTExM0UwMkUyMzMxQTEzNDAwOUMzM0EwIC8q
IEFwcGxlUGF5Q2FuY2VsRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUExREY1QTk0MUY3RUM0
MzIwMDU4QTQ3NyAvKiBBcHBsZVBheUNvbnRhY3RGaWVsZC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
OTUwMTgzQ0QyNUQ2MzNEOTAwRDQzNDBGIC8qIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaCBp
biBIZWFkZXJzICovLAorCQkJCTk1MjdEN0FCMjVENUZERTIwMEE2RTE3NiAvKiBBcHBsZVBheURl
dGFpbHNVcGRhdGVEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTJDNTlFRTIwMzVGQzlCMDAx
MjIzNkIgLyogQXBwbGVQYXlFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFCQjg1OUMyMTU5
QUVBMTAwNjdFMDdEIC8qIEFwcGxlUGF5RXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
MUJCODVBMzIxNTlBRjU3MDA2N0UwN0QgLyogQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0zMjc0OSw2ICszMjc2NCw4IEBACiAJCQkJNzEwMjVFREUxRjk5RjFF
QzAwNEEyNTBDIC8qIEpTQW5pbWF0aW9uVGltZWxpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUEx
OTU2RjFDMjMzMUE2NzcwMDU3RTlEMiAvKiBKU0FwcGxlUGF5Q2FuY2VsRXZlbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUExREY1QTk5MUY3RUM4QzAwMDU4QTQ3NyAvKiBKU0FwcGxlUGF5Q29udGFj
dEZpZWxkLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NTNCQ0VCMjI1RDYyODNEMDBBNEEyQTEgLyog
SlNBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NTI3RDdB
RjI1RDVGRTZDMDBBNkUxNzYgLyogSlNBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBMTJDNTlGOTIwMzYwQUNCMDAxMjIzNkIgLyogSlNBcHBsZVBheUVycm9y
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUJCODVCMjIxNTlCMUExMDA2N0UwN0QgLyogSlNBcHBs
ZVBheUVycm9yQ29kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFCQjg1QjMyMTU5QjFBMTAwNjdF
MDdEIC8qIEpTQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0z
NDA4Niw3ICszNDEwMyw2IEBACiAJCQkJMUE4QTY0M0MxRDE5RkM1MzAwRDBFMDBGIC8qIFBheW1l
bnRNZXRob2QuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNjRBMjQ3MjEzNEJDNzEwMDUwOTE1NiAv
KiBQYXltZW50TWV0aG9kQ2hhbmdlRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUExRjc2QjE5
MUY0NEMzOTAwMDE0QzMxOCAvKiBQYXltZW50TWV0aG9kRGF0YS5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQTFERkQ1MjUyMzM0NTkzRjAwNDJGQ0RCIC8qIFBheW1lbnRNZXRob2RVcGRhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUExRjc2QjJCMUY0NEM0RUYwMDE0QzMxOCAvKiBQYXltZW50T3B0aW9u
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFGNzZCMTMxRjQ0QzI0NTAwMTRDMzE4IC8qIFBheW1l
bnRSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUY2MDA0NDFGNDc1N0E5MDA3N0U4M0Yg
LyogUGF5bWVudFJlcXVlc3RVcGRhdGVFdmVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IDJiMzlhMGQ2NWJkODdiMzY5MDdlYTY2NzJl
MGY5NTFmOTI0YWFiYTAuLmViZWM1MmY5YjVlZTk5MmE4MDgzMDVjYzJiNDFjMjc5YjM0YWQ0YjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC0zNjQsOSArMzY0LDkg
QEAgY2xhc3MgRW1wdHlQYXltZW50Q29vcmRpbmF0b3JDbGllbnQgZmluYWwgOiBwdWJsaWMgUGF5
bWVudENvb3JkaW5hdG9yQ2xpZW50IHsKICAgICB2b2lkIG9wZW5QYXltZW50U2V0dXAoY29uc3Qg
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikgZmluYWwgeyBjYWxsT25NYWluVGhyZWFkKFtjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeyBjb21wbGV0aW9u
SGFuZGxlcihmYWxzZSk7IH0pOyB9CiAgICAgYm9vbCBzaG93UGF5bWVudFVJKGNvbnN0IFVSTCYs
IGNvbnN0IFZlY3RvcjxVUkw+JiwgY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Qm
KSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZvaWQgY29tcGxldGVNZXJjaGFudFZhbGlk
YXRpb24oY29uc3QgUGF5bWVudE1lcmNoYW50U2Vzc2lvbiYpIGZpbmFsIHsgfQotICAgIHZvaWQg
Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ01ldGhvZFVw
ZGF0ZT4mJikgZmluYWwgeyB9Ci0gICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVj
dGlvbihPcHRpb25hbDxTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYpIGZpbmFsIHsgfQotICAgIHZv
aWQgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFBheW1lbnRNZXRob2RV
cGRhdGU+JiYpIGZpbmFsIHsgfQorICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVj
dGlvbihPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKSBmaW5hbCB7IH0K
KyAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxl
UGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKSBmaW5hbCB7IH0KKyAgICB2b2lkIGNvbXBsZXRl
UGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVBheW1lbnRNZXRob2RVcGRh
dGU+JiYpIGZpbmFsIHsgfQogICAgIHZvaWQgY29tcGxldGVQYXltZW50U2Vzc2lvbihPcHRpb25h
bDxQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mJikgZmluYWwgeyB9CiAgICAgdm9pZCBjYW5j
ZWxQYXltZW50U2Vzc2lvbigpIGZpbmFsIHsgfQogICAgIHZvaWQgYWJvcnRQYXltZW50U2Vzc2lv
bigpIGZpbmFsIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5
bWVudENvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRD
b29yZGluYXRvci5jcHAKaW5kZXggMTZjMWQ5Njk3MjEwOWNkZmEyMWQyNGIyMTEyMjBjMmVjNTIy
MmJkNC4uMjIyYjc4MWRhMDNmNmViMjQ4ZDhmNDA1Yzg1NDk4ZTU3MzA5OThmZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuY3BwCkBAIC0y
OCwxNCArMjgsMTYgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKKyNpbmNsdWRlICJBcHBs
ZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaCIKICNpbmNsdWRlICJBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdC5oIgorI2luY2x1ZGUgIkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmgi
CisjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oIgogI2luY2x1ZGUgIk1v
Y2tBcHBsZVBheVNldHVwRmVhdHVyZS5oIgogI2luY2x1ZGUgIk1vY2tQYXltZW50LmgiCiAjaW5j
bHVkZSAiTW9ja1BheW1lbnRDb250YWN0LmgiCiAjaW5jbHVkZSAiTW9ja1BheW1lbnRNZXRob2Qu
aCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGF5bWVudENvb3JkaW5hdG9yLmgiCi0j
aW5jbHVkZSAiUGF5bWVudE1ldGhvZFVwZGF0ZS5oIgogI2luY2x1ZGUgIlBheW1lbnRTZXNzaW9u
RXJyb3IuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3
dGYvUnVuTG9vcC5oPgpAQCAtOTYsMTggKzk4LDExIEBAIHN0YXRpYyB2b2lkIGRpc3BhdGNoSWZT
aG93aW5nKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKICAgICB9KTsKIH0KIAotc3RhdGlj
IFZlY3RvcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiBjb252ZXJ0KGNvbnN0IFZlY3RvcjxBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGluZ01ldGhv
ZHMpCi17Ci0gICAgcmV0dXJuIFdURjo6bWFwKHNoaXBwaW5nTWV0aG9kcywgW10gKGF1dG8mIHNo
aXBwaW5nTWV0aG9kKSB7Ci0gICAgICAgIHJldHVybiBBcHBsZVBheVNoaXBwaW5nTWV0aG9kIHsg
c2hpcHBpbmdNZXRob2QubGFiZWwsIHNoaXBwaW5nTWV0aG9kLmRldGFpbCwgc2hpcHBpbmdNZXRo
b2QuYW1vdW50LCBzaGlwcGluZ01ldGhvZC5pZGVudGlmaWVyIH07Ci0gICAgfSk7Ci19Ci0KIGJv
b2wgTW9ja1BheW1lbnRDb29yZGluYXRvcjo6c2hvd1BheW1lbnRVSShjb25zdCBVUkwmLCBjb25z
dCBWZWN0b3I8VVJMPiYsIGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0JiByZXF1
ZXN0KQogewogICAgIGlmIChyZXF1ZXN0LnNoaXBwaW5nQ29udGFjdCgpLnBrQ29udGFjdCgpKQog
ICAgICAgICBtX3NoaXBwaW5nQWRkcmVzcyA9IHJlcXVlc3Quc2hpcHBpbmdDb250YWN0KCkudG9B
cHBsZVBheVBheW1lbnRDb250YWN0KHJlcXVlc3QudmVyc2lvbigpKTsKLSAgICBtX3NoaXBwaW5n
TWV0aG9kcyA9IGNvbnZlcnQocmVxdWVzdC5zaGlwcGluZ01ldGhvZHMoKSk7CisgICAgbV9zaGlw
cGluZ01ldGhvZHMgPSByZXF1ZXN0LnNoaXBwaW5nTWV0aG9kcygpOwogICAgIG1fcmVxdWlyZWRC
aWxsaW5nQ29udGFjdEZpZWxkcyA9IHJlcXVlc3QucmVxdWlyZWRCaWxsaW5nQ29udGFjdEZpZWxk
cygpOwogICAgIG1fcmVxdWlyZWRTaGlwcGluZ0NvbnRhY3RGaWVsZHMgPSByZXF1ZXN0LnJlcXVp
cmVkU2hpcHBpbmdDb250YWN0RmllbGRzKCk7CiAjaWYgRU5BQkxFKEFQUExFX1BBWV9JTlNUQUxM
TUVOVFMpCkBAIC0xMjksMzggKzEyNCw0OSBAQCB2b2lkIE1vY2tQYXltZW50Q29vcmRpbmF0b3I6
OmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFBheW1lbnRNZXJjaGFudFNlcwogICAg
IH0pOwogfQogCi12b2lkIE1vY2tQYXltZW50Q29vcmRpbmF0b3I6OnVwZGF0ZVRvdGFsQW5kTGlu
ZUl0ZW1zKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJ
dGVtcyYgdG90YWxBbmRMaW5lSXRlbXMpCit2b2lkIE1vY2tQYXltZW50Q29vcmRpbmF0b3I6OmNv
bXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlTaGlwcGluZ01l
dGhvZFVwZGF0ZT4mJiBzaGlwcGluZ01ldGhvZFVwZGF0ZSkKIHsKLSAgICBtX3RvdGFsID0gdG90
YWxBbmRMaW5lSXRlbXMudG90YWw7Ci0gICAgbV9saW5lSXRlbXMgPSB0b3RhbEFuZExpbmVJdGVt
cy5saW5lSXRlbXM7CisgICAgaWYgKCFzaGlwcGluZ01ldGhvZFVwZGF0ZSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV90b3RhbCA9IFdURk1vdmUoc2hpcHBpbmdNZXRob2RVcGRhdGUtPm5ld1Rv
dGFsKTsKKyAgICBtX2xpbmVJdGVtcyA9IFdURk1vdmUoc2hpcHBpbmdNZXRob2RVcGRhdGUtPm5l
d0xpbmVJdGVtcyk7CiB9CiAKLXZvaWQgTW9ja1BheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVT
aGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJiBz
aGlwcGluZ01ldGhvZFVwZGF0ZSkKK3N0YXRpYyBWZWN0b3I8TW9ja1BheW1lbnRFcnJvcj4gY29u
dmVydChWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYmIGVycm9ycykKIHsKLSAgICBpZiAo
c2hpcHBpbmdNZXRob2RVcGRhdGUpCi0gICAgICAgIHVwZGF0ZVRvdGFsQW5kTGluZUl0ZW1zKHNo
aXBwaW5nTWV0aG9kVXBkYXRlLT5uZXdUb3RhbEFuZExpbmVJdGVtcyk7CisgICAgVmVjdG9yPE1v
Y2tQYXltZW50RXJyb3I+IHJlc3VsdDsKKyAgICBmb3IgKGF1dG8mIGVycm9yIDogZXJyb3JzKSB7
CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoeyBlcnJvci0+
Y29kZSgpLCBlcnJvci0+bWVzc2FnZSgpLCBlcnJvci0+Y29udGFjdEZpZWxkKCkgfSk7CisgICAg
fQorICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgTW9ja1BheW1lbnRDb29yZGluYXRvcjo6
Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8U2hpcHBpbmdDb250YWN0
VXBkYXRlPiYmIHNoaXBwaW5nQ29udGFjdFVwZGF0ZSkKK3ZvaWQgTW9ja1BheW1lbnRDb29yZGlu
YXRvcjo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlT
aGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYgc2hpcHBpbmdDb250YWN0VXBkYXRlKQogewogICAgIGlm
ICghc2hpcHBpbmdDb250YWN0VXBkYXRlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3NoaXBw
aW5nTWV0aG9kcyA9IGNvbnZlcnQoc2hpcHBpbmdDb250YWN0VXBkYXRlLT5uZXdTaGlwcGluZ01l
dGhvZHMpOwotICAgIHVwZGF0ZVRvdGFsQW5kTGluZUl0ZW1zKHNoaXBwaW5nQ29udGFjdFVwZGF0
ZS0+bmV3VG90YWxBbmRMaW5lSXRlbXMpOwotICAgIG1fZXJyb3JzID0gV1RGTW92ZShzaGlwcGlu
Z0NvbnRhY3RVcGRhdGUtPmVycm9ycyk7CisgICAgbV90b3RhbCA9IFdURk1vdmUoc2hpcHBpbmdD
b250YWN0VXBkYXRlLT5uZXdUb3RhbCk7CisgICAgbV9saW5lSXRlbXMgPSBXVEZNb3ZlKHNoaXBw
aW5nQ29udGFjdFVwZGF0ZS0+bmV3TGluZUl0ZW1zKTsKKyAgICBtX2Vycm9ycyA9IGNvbnZlcnQo
V1RGTW92ZShzaGlwcGluZ0NvbnRhY3RVcGRhdGUtPmVycm9ycykpOworICAgIG1fc2hpcHBpbmdN
ZXRob2RzID0gV1RGTW92ZShzaGlwcGluZ0NvbnRhY3RVcGRhdGUtPm5ld1NoaXBwaW5nTWV0aG9k
cyk7CiB9CiAKLXZvaWQgTW9ja1BheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50TWV0
aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFBheW1lbnRNZXRob2RVcGRhdGU+JiYgcGF5bWVudE1ldGhv
ZFVwZGF0ZSkKK3ZvaWQgTW9ja1BheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50TWV0
aG9kU2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJiBwYXlt
ZW50TWV0aG9kVXBkYXRlKQogewotICAgIGlmIChwYXltZW50TWV0aG9kVXBkYXRlKQotICAgICAg
ICB1cGRhdGVUb3RhbEFuZExpbmVJdGVtcyhwYXltZW50TWV0aG9kVXBkYXRlLT50b3RhbEFuZExp
bmVJdGVtcygpKTsKKyAgICBpZiAoIXBheW1lbnRNZXRob2RVcGRhdGUpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fdG90YWwgPSBXVEZNb3ZlKHBheW1lbnRNZXRob2RVcGRhdGUtPm5ld1RvdGFs
KTsKKyAgICBtX2xpbmVJdGVtcyA9IFdURk1vdmUocGF5bWVudE1ldGhvZFVwZGF0ZS0+bmV3TGlu
ZUl0ZW1zKTsKIH0KIAogdm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjaGFuZ2VTaGlwcGlu
Z09wdGlvbihTdHJpbmcmJiBzaGlwcGluZ09wdGlvbikKIHsKICAgICBkaXNwYXRjaElmU2hvd2lu
ZyhbcGFnZSA9ICZtX3BhZ2UsIHNoaXBwaW5nT3B0aW9uID0gV1RGTW92ZShzaGlwcGluZ09wdGlv
bildKCkgbXV0YWJsZSB7Ci0gICAgICAgIEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpT
aGlwcGluZ01ldGhvZCBzaGlwcGluZ01ldGhvZDsKKyAgICAgICAgQXBwbGVQYXlTaGlwcGluZ01l
dGhvZCBzaGlwcGluZ01ldGhvZDsKICAgICAgICAgc2hpcHBpbmdNZXRob2QuaWRlbnRpZmllciA9
IFdURk1vdmUoc2hpcHBpbmdPcHRpb24pOwogICAgICAgICBwYWdlLT5wYXltZW50Q29vcmRpbmF0
b3IoKS5kaWRTZWxlY3RTaGlwcGluZ01ldGhvZChzaGlwcGluZ01ldGhvZCk7CiAgICAgfSk7CkBA
IC0xOTQsNyArMjAwLDcgQEAgdm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjYW5jZWxQYXlt
ZW50KCkKIHZvaWQgTW9ja1BheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50U2Vzc2lv
bihPcHRpb25hbDxQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mJiByZXN1bHQpCiB7CiAgICAg
YXV0byBpc0ZpbmFsU3RhdGUgPSBpc0ZpbmFsU3RhdGVSZXN1bHQocmVzdWx0KTsKLSAgICBtX2Vy
cm9ycyA9IFdURk1vdmUocmVzdWx0LT5lcnJvcnMpOworICAgIG1fZXJyb3JzID0gY29udmVydChX
VEZNb3ZlKHJlc3VsdC0+ZXJyb3JzKSk7CiAKICAgICBpZiAoIWlzRmluYWxTdGF0ZSkKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVu
dENvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRp
bmF0b3IuaAppbmRleCA0MzRhZTU2NTAyMjk5NjY4MDE0OTMwZmQ0OGJmZDQ2YTZhOTZjYWFjLi5i
N2RiMDkwNjJkNjJlOWJmMTMzNjA3ODk2MjFhNTNlNDE0NTE5ZGZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuaApAQCAtODIsOSArODIsOSBA
QCBwcml2YXRlOgogICAgIHZvaWQgb3BlblBheW1lbnRTZXR1cChjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKICAgICBi
b29sIHNob3dQYXltZW50VUkoY29uc3QgVVJMJiwgY29uc3QgVmVjdG9yPFVSTD4mLCBjb25zdCBB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYpIGZpbmFsOwogICAgIHZvaWQgY29tcGxldGVN
ZXJjaGFudFZhbGlkYXRpb24oY29uc3QgUGF5bWVudE1lcmNoYW50U2Vzc2lvbiYpIGZpbmFsOwot
ICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGlu
Z01ldGhvZFVwZGF0ZT4mJikgZmluYWw7Ci0gICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFj
dFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYpIGZpbmFsOwotICAg
IHZvaWQgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFBheW1lbnRNZXRo
b2RVcGRhdGU+JiYpIGZpbmFsOworICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVj
dGlvbihPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKSBmaW5hbDsKKyAg
ICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5
U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKSBmaW5hbDsKKyAgICB2b2lkIGNvbXBsZXRlUGF5bWVu
dE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+JiYp
IGZpbmFsOwogICAgIHZvaWQgY29tcGxldGVQYXltZW50U2Vzc2lvbihPcHRpb25hbDxQYXltZW50
QXV0aG9yaXphdGlvblJlc3VsdD4mJikgZmluYWw7CiAgICAgdm9pZCBhYm9ydFBheW1lbnRTZXNz
aW9uKCkgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxQYXltZW50U2Vzc2lvbigpIGZpbmFsOwpAQCAt
OTcsOCArOTcsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0U2V0dXBGZWF0dXJlcyhjb25zdCBB
cHBsZVBheVNldHVwQ29uZmlndXJhdGlvbiYsIGNvbnN0IFVSTCYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoVmVjdG9yPFJlZjxBcHBsZVBheVNldHVwRmVhdHVyZT4+JiYpPiYmKSBmaW5hbDsKICAg
ICB2b2lkIGJlZ2luQXBwbGVQYXlTZXR1cChjb25zdCBBcHBsZVBheVNldHVwQ29uZmlndXJhdGlv
biYsIGNvbnN0IFVSTCYsIFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlTZXR1cEZlYXR1cmU+PiYmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKIAotICAgIHZvaWQgdXBkYXRl
VG90YWxBbmRMaW5lSXRlbXMoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRv
dGFsQW5kTGluZUl0ZW1zJik7Ci0KICAgICBQYWdlJiBtX3BhZ2U7CiAgICAgYm9vbCBtX2Nhbk1h
a2VQYXltZW50cyB7IHRydWUgfTsKICAgICBib29sIG1fY2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2
ZUNhcmQgeyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQ
YXltZW50RXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRFcnJvci5o
CmluZGV4IGNkZTM4ZWY1MDFjNjBjYjE0MGQ5YTdlN2MxMTI2MDlkNTM3YmM1M2UuLjViYzFjYTEx
OTYzMTNiMzgwODQxYjQ1ZGQ3M2M1MDQzMmYwNjJiNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvTW9ja1BheW1lbnRFcnJvci5oCkBAIC0yNywxMSArMjcsMTYgQEAKIAogI2lmIEVOQUJMRShB
UFBMRV9QQVkpCiAKLSNpbmNsdWRlICJBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oIgor
I2luY2x1ZGUgIkFwcGxlUGF5RXJyb3JDb2RlLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlFcnJvckNv
bnRhY3RGaWVsZC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIE1vY2tQYXltZW50
RXJyb3IgPSBQYXltZW50RXJyb3I7CitzdHJ1Y3QgTW9ja1BheW1lbnRFcnJvciB7CisgICAgQXBw
bGVQYXlFcnJvckNvZGUgY29kZTsKKyAgICBTdHJpbmcgbWVzc2FnZTsKKyAgICBPcHRpb25hbDxB
cHBsZVBheUVycm9yQ29udGFjdEZpZWxkPiBjb250YWN0RmllbGQ7Cit9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2Ev
UGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
Y29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIuaAppbmRleCBmYzc2NGExMDBlNTIx
ODU0YzA3Nzk2M2JkNDRjYWE4M2YxOTAyODMwLi44NjFjODU4ZGFlNjJjMjZlOWQwZmYwOTBmMWVj
MWRkZjQ1OTMwMWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL1Bh
eW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5oCkBAIC00MSw4ICs0MSwxMSBA
QCBjbGFzcyBQYXltZW50OwogY2xhc3MgUGF5bWVudENvbnRhY3Q7CiBjbGFzcyBQYXltZW50TWVy
Y2hhbnRTZXNzaW9uOwogY2xhc3MgUGF5bWVudE1ldGhvZDsKLWNsYXNzIFBheW1lbnRNZXRob2RV
cGRhdGU7CiBjbGFzcyBQYXltZW50U2Vzc2lvbkVycm9yOworc3RydWN0IEFwcGxlUGF5UGF5bWVu
dE1ldGhvZFVwZGF0ZTsKK3N0cnVjdCBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZTsKK3N0
cnVjdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kOworc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdNZXRo
b2RVcGRhdGU7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNTgsNyArNjEsNyBAQCBwdWJs
aWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwcmVzZW50ZXJEaWRGaW5pc2goUGF5bWVudEF1dGhv
cml6YXRpb25QcmVzZW50ZXImLCBXZWJDb3JlOjpQYXltZW50U2Vzc2lvbkVycm9yJiYpID0gMDsK
ICAgICAgICAgdmlydHVhbCB2b2lkIHByZXNlbnRlckRpZFNlbGVjdFBheW1lbnRNZXRob2QoUGF5
bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9k
JikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHJlc2VudGVyRGlkU2VsZWN0U2hpcHBpbmdD
b250YWN0KFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyJiwgY29uc3QgV2ViQ29yZTo6UGF5
bWVudENvbnRhY3QmKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwcmVzZW50ZXJEaWRTZWxl
Y3RTaGlwcGluZ01ldGhvZChQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlciYsIGNvbnN0IFdl
YkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpID0g
MDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHByZXNlbnRlckRpZFNlbGVjdFNoaXBwaW5nTWV0aG9k
KFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyJiwgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlT
aGlwcGluZ01ldGhvZCYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHByZXNlbnRlcldpbGxW
YWxpZGF0ZU1lcmNoYW50KFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyJiwgY29uc3QgVVJM
JikgPSAwOwogICAgIH07CiAKQEAgLTY3LDEwICs3MCwxMCBAQCBwdWJsaWM6CiAgICAgQ2xpZW50
JiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudDsgfQogCiAgICAgdm9pZCBjb21wbGV0ZU1lcmNo
YW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJik7Ci0g
ICAgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2Vi
Q29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT4mKTsKKyAgICB2b2lkIGNvbXBsZXRlUGF5bWVudE1l
dGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRNZXRob2RVcGRh
dGU+JiYpOwogICAgIHZvaWQgY29tcGxldGVQYXltZW50U2Vzc2lvbihjb25zdCBPcHRpb25hbDxX
ZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mKTsKLSAgICB2b2lkIGNvbXBsZXRl
U2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5n
Q29udGFjdFVwZGF0ZT4mKTsKLSAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rp
b24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+Jik7CisgICAg
dm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpB
cHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJik7CisgICAgdm9pZCBjb21wbGV0ZVNoaXBw
aW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRo
b2RVcGRhdGU+JiYpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3MoKSA9IDA7CiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29j
b2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL2NvY29hL1BheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyLm1tCmluZGV4IGFlMzcwOTMx
NWJiNzRlYWJkNTE5MmFmM2UzZTU5NGI3ZmRhNTUwMDYuLmEwNWJjNzJkNTNkNGM3ZDQ5ZTRhNTI1
NDI5YzViYjMzYWI5OTkzYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29j
b2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5tbQpAQCAtMzAsMTQg
KzMwLDI0IEBACiAKICNpbXBvcnQgIldLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5oIgog
I2ltcG9ydCAiV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5oIgorI2ltcG9ydCA8V2Vi
Q29yZS9BcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmg+CisjaW1wb3J0IDxXZWJDb3JlL0FwcGxl
UGF5RXJyb3IuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQXBwbGVQYXlFcnJvckNvZGUuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQXBwbGVQ
YXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQXBwbGVQYXlTaGlw
cGluZ01ldGhvZFVwZGF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYXltZW50QXV0aG9yaXphdGlv
blN0YXR1cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYXltZW50TWVyY2hhbnRTZXNzaW9uLmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL1BheW1lbnRNZXRob2RVcGRhdGUuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UGF5bWVudFN1bW1hcnlJdGVtcy5oPgogI2ltcG9ydCA8d3RmL2NvY29hL1ZlY3RvckNvY29hLmg+
CiAKICNpbXBvcnQgPHBhbC9jb2NvYS9QYXNzS2l0U29mdExpbmsuaD4KIAorI2lmIFVTRShBUFBM
RV9JTlRFUk5BTF9TREspCisjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL1BheW1lbnRBdXRob3Jp
emF0aW9uUHJlc2VudGVyQWRkaXRpb25zLm1tPgorI2VuZGlmCisKIC8vIEZJWE1FOiBTdG9wIHNv
ZnQgbGlua2luZyBDb250YWN0cyBvbmNlIHRoZSBkZXBlbmRlbmN5IGN5Y2xlIGlzIHJlbW92ZWQg
b24gbWFjT1MgKDxyZGFyOi8vcHJvYmxlbS83MDg4NzkzND4pLAogLy8gb3Igd2hlbiBDb250YWN0
cyBjYW4gYmUgdXB3YXJkIGxpbmtlZCAoPHJkYXI6Ly9wcm9ibGVtLzM2MTM1MTM3PikuCiBTT0ZU
X0xJTktfRlJBTUVXT1JLKENvbnRhY3RzKTsKQEAgLTcxLDg2ICs4MSw4NiBAQCBzdGF0aWMgUEtQ
YXltZW50QXV0aG9yaXphdGlvblN0YXR1cyB0b1BLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMo
V2ViQ29yZTo6UGF5bQogICAgIH0KIH0KIAotc3RhdGljIFBLUGF5bWVudEVycm9yQ29kZSB0b1BL
UGF5bWVudEVycm9yQ29kZShXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGUgY29kZSkKK3N0YXRp
YyBQS1BheW1lbnRFcnJvckNvZGUgdG9QS1BheW1lbnRFcnJvckNvZGUoV2ViQ29yZTo6QXBwbGVQ
YXlFcnJvckNvZGUgY29kZSkKIHsKICAgICBzd2l0Y2ggKGNvZGUpIHsKLSAgICBjYXNlIFdlYkNv
cmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6VW5rbm93bjoKKyAgICBjYXNlIFdlYkNvcmU6OkFwcGxl
UGF5RXJyb3JDb2RlOjpVbmtub3duOgogICAgICAgICByZXR1cm4gUEtQYXltZW50VW5rbm93bkVy
cm9yOwotICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb2RlOjpTaGlwcGluZ0NvbnRh
Y3RJbnZhbGlkOgorICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvZGU6OlNoaXBwaW5n
Q29udGFjdEludmFsaWQ6CiAgICAgICAgIHJldHVybiBQS1BheW1lbnRTaGlwcGluZ0NvbnRhY3RJ
bnZhbGlkRXJyb3I7Ci0gICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU6OkJpbGxp
bmdDb250YWN0SW52YWxpZDoKKyAgICBjYXNlIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb2RlOjpC
aWxsaW5nQ29udGFjdEludmFsaWQ6CiAgICAgICAgIHJldHVybiBQS1BheW1lbnRCaWxsaW5nQ29u
dGFjdEludmFsaWRFcnJvcjsKLSAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6
QWRkcmVzc1Vuc2VydmljZWFibGU6CisgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29k
ZTo6QWRkcmVzc1Vuc2VydmljZWFibGU6CiAgICAgICAgIHJldHVybiBQS1BheW1lbnRTaGlwcGlu
Z0FkZHJlc3NVbnNlcnZpY2VhYmxlRXJyb3I7CiAgICAgfQogfQogCi1zdGF0aWMgTlNFcnJvciAq
dG9OU0Vycm9yKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRFcnJvciYgZXJyb3IpCitzdGF0aWMgTlNF
cnJvciAqdG9OU0Vycm9yKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5RXJyb3ImIGVycm9yKQogewog
ICAgIGF1dG8gdXNlckluZm8gPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10g
aW5pdF0pOwotICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6ZXJyb3IubWVzc2FnZSBmb3JLZXk6TlNM
b2NhbGl6ZWREZXNjcmlwdGlvbktleV07CisgICAgW3VzZXJJbmZvIHNldE9iamVjdDplcnJvci5t
ZXNzYWdlKCkgZm9yS2V5Ok5TTG9jYWxpemVkRGVzY3JpcHRpb25LZXldOwogCi0gICAgaWYgKGVy
cm9yLmNvbnRhY3RGaWVsZCkgeworICAgIGlmIChhdXRvIGNvbnRhY3RGaWVsZCA9IGVycm9yLmNv
bnRhY3RGaWVsZCgpKSB7CiAgICAgICAgIE5TU3RyaW5nICpwa0NvbnRhY3RGaWVsZCA9IG5pbDsK
ICAgICAgICAgTlNTdHJpbmcgKnBvc3RhbEFkZHJlc3NLZXkgPSBuaWw7CiAKLSAgICAgICAgc3dp
dGNoICgqZXJyb3IuY29udGFjdEZpZWxkKSB7Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVu
dEVycm9yOjpDb250YWN0RmllbGQ6OlBob25lTnVtYmVyOgorICAgICAgICBzd2l0Y2ggKCpjb250
YWN0RmllbGQpIHsKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZp
ZWxkOjpQaG9uZU51bWJlcjoKICAgICAgICAgICAgIHBrQ29udGFjdEZpZWxkID0gUEFMOjpnZXRf
UGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBob25lTnVtYmVyKCk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIAotICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFj
dEZpZWxkOjpFbWFpbEFkZHJlc3M6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJv
ckNvbnRhY3RGaWVsZDo6RW1haWxBZGRyZXNzOgogICAgICAgICAgICAgcGtDb250YWN0RmllbGQg
PSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkRW1haWxBZGRyZXNzKCk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIAotICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRF
cnJvcjo6Q29udGFjdEZpZWxkOjpOYW1lOgorICAgICAgICBjYXNlIFdlYkNvcmU6OkFwcGxlUGF5
RXJyb3JDb250YWN0RmllbGQ6Ok5hbWU6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBB
TDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGROYW1lKCk7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIAotICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFj
dEZpZWxkOjpQaG9uZXRpY05hbWU6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJv
ckNvbnRhY3RGaWVsZDo6UGhvbmV0aWNOYW1lOgogICAgICAgICAgICAgcGtDb250YWN0RmllbGQg
PSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUGhvbmV0aWNOYW1lKCk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIAotICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRF
cnJvcjo6Q29udGFjdEZpZWxkOjpQb3N0YWxBZGRyZXNzOgorICAgICAgICBjYXNlIFdlYkNvcmU6
OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlBvc3RhbEFkZHJlc3M6CiAgICAgICAgICAgICBw
a0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRy
ZXNzKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAotICAgICAgICBjYXNlIFdl
YkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpBZGRyZXNzTGluZXM6CisgICAgICAg
IGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6QWRkcmVzc0xpbmVzOgog
ICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZp
ZWxkUG9zdGFsQWRkcmVzcygpOwogICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdldENO
UG9zdGFsQWRkcmVzc1N0cmVldEtleSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICAKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6U3Vi
TG9jYWxpdHk6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVs
ZDo6U3ViTG9jYWxpdHk6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0X1Bh
c3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CiAgICAgICAgICAgICBwb3N0YWxB
ZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzU3ViTG9jYWxpdHlLZXkoKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVy
cm9yOjpDb250YWN0RmllbGQ6OkxvY2FsaXR5OgorICAgICAgICBjYXNlIFdlYkNvcmU6OkFwcGxl
UGF5RXJyb3JDb250YWN0RmllbGQ6OkxvY2FsaXR5OgogICAgICAgICAgICAgcGtDb250YWN0Rmll
bGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRkcmVzcygpOwogICAg
ICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdldENOUG9zdGFsQWRkcmVzc0NpdHlLZXkoKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6
UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlBvc3RhbENvZGU6CisgICAgICAgIGNhc2UgV2Vi
Q29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UG9zdGFsQ29kZToKICAgICAgICAgICAg
IHBrQ29udGFjdEZpZWxkID0gUEFMOjpnZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBvc3RhbEFk
ZHJlc3MoKTsKICAgICAgICAgICAgIHBvc3RhbEFkZHJlc3NLZXkgPSBnZXRDTlBvc3RhbEFkZHJl
c3NQb3N0YWxDb2RlS2V5KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAotICAg
ICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpTdWJBZG1pbmlz
dHJhdGl2ZUFyZWE6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RG
aWVsZDo6U3ViQWRtaW5pc3RyYXRpdmVBcmVhOgogICAgICAgICAgICAgcGtDb250YWN0RmllbGQg
PSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRkcmVzcygpOwogICAgICAg
ICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdldENOUG9zdGFsQWRkcmVzc1N1YkFkbWluaXN0cmF0
aXZlQXJlYUtleSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKLSAgICAgICAg
Y2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6QWRtaW5pc3RyYXRpdmVB
cmVhOgorICAgICAgICBjYXNlIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OkFk
bWluaXN0cmF0aXZlQXJlYToKICAgICAgICAgICAgIHBrQ29udGFjdEZpZWxkID0gUEFMOjpnZXRf
UGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBvc3RhbEFkZHJlc3MoKTsKICAgICAgICAgICAgIHBvc3Rh
bEFkZHJlc3NLZXkgPSBnZXRDTlBvc3RhbEFkZHJlc3NTdGF0ZUtleSgpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6
OkNvbnRhY3RGaWVsZDo6Q291bnRyeToKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVy
cm9yQ29udGFjdEZpZWxkOjpDb3VudHJ5OgogICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQ
QUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRkcmVzcygpOwogICAgICAgICAg
ICAgcG9zdGFsQWRkcmVzc0tleSA9IGdldENOUG9zdGFsQWRkcmVzc0NvdW50cnlLZXkoKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5
bWVudEVycm9yOjpDb250YWN0RmllbGQ6OkNvdW50cnlDb2RlOgorICAgICAgICBjYXNlIFdlYkNv
cmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OkNvdW50cnlDb2RlOgogICAgICAgICAgICAg
cGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRk
cmVzcygpOwogICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdldENOUG9zdGFsQWRkcmVz
c0lTT0NvdW50cnlDb2RlS2V5KCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTE2MSwxNyArMTcx
LDIwIEBAIHN0YXRpYyBOU0Vycm9yICp0b05TRXJyb3IoY29uc3QgV2ViQ29yZTo6UGF5bWVudEVy
cm9yJiBlcnJvcikKICAgICAgICAgICAgIFt1c2VySW5mbyBzZXRPYmplY3Q6cG9zdGFsQWRkcmVz
c0tleSBmb3JLZXk6UEFMOjpnZXRfUGFzc0tpdF9QS1BheW1lbnRFcnJvclBvc3RhbEFkZHJlc3NV
c2VySW5mb0tleSgpXTsKICAgICB9CiAKLSAgICByZXR1cm4gW05TRXJyb3IgZXJyb3JXaXRoRG9t
YWluOlBBTDo6Z2V0X1Bhc3NLaXRfUEtQYXltZW50RXJyb3JEb21haW4oKSBjb2RlOnRvUEtQYXlt
ZW50RXJyb3JDb2RlKGVycm9yLmNvZGUpIHVzZXJJbmZvOnVzZXJJbmZvLmdldCgpXTsKKyAgICBy
ZXR1cm4gW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOlBBTDo6Z2V0X1Bhc3NLaXRfUEtQYXltZW50
RXJyb3JEb21haW4oKSBjb2RlOnRvUEtQYXltZW50RXJyb3JDb2RlKGVycm9yLmNvZGUoKSkgdXNl
ckluZm86dXNlckluZm8uZ2V0KCldOwogfQogCi1zdGF0aWMgUmV0YWluUHRyPE5TQXJyYXk+IHRv
TlNFcnJvcnMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OlBheW1lbnRFcnJvcj4mIGVycm9ycykKK3N0
YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gdG9OU0Vycm9ycyhjb25zdCBWZWN0b3I8UmVmUHRyPFdl
YkNvcmU6OkFwcGxlUGF5RXJyb3I+PiYgZXJyb3JzKQogewotICAgIHJldHVybiBjcmVhdGVOU0Fy
cmF5KGVycm9ycywgW10gKGF1dG8mIGVycm9yKSB7Ci0gICAgICAgIHJldHVybiB0b05TRXJyb3Io
ZXJyb3IpOwotICAgIH0pOworICAgIGF1dG8gYXJyYXkgPSBhZG9wdE5TKE5TTXV0YWJsZUFycmF5
LmFycmF5KTsKKyAgICBmb3IgKGF1dG8mIGVycm9yIDogZXJyb3JzKSB7CisgICAgICAgIGlmIChl
cnJvcikKKyAgICAgICAgICAgIFthcnJheSBhZGRPYmplY3Q6dG9OU0Vycm9yKCplcnJvcildOwor
ICAgIH0KKyAgICByZXR1cm4gYXJyYXk7CiB9CiAKLXN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4g
dG9QS1NoaXBwaW5nTWV0aG9kcyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPiYgc2hpcHBpbmdNZXRob2RzKQorc3RhdGlj
IFJldGFpblB0cjxOU0FycmF5PiB0b1BLU2hpcHBpbmdNZXRob2RzKGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiYgc2hpcHBpbmdNZXRob2RzKQogewogICAgIHJl
dHVybiBjcmVhdGVOU0FycmF5KHNoaXBwaW5nTWV0aG9kcywgW10gKGF1dG8mIG1ldGhvZCkgewog
ICAgICAgICByZXR1cm4gdG9QS1NoaXBwaW5nTWV0aG9kKG1ldGhvZCk7CkBAIC0xODQsNyArMTk3
LDcgQEAgdm9pZCBQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVNZXJjaGFu
dFZhbGlkYXRpb24oY29uc3QgV2ViQ29yZTo6UGEKICAgICBbcGxhdGZvcm1EZWxlZ2F0ZSgpIGNv
bXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uOm1lcmNoYW50U2Vzc2lvbi5wa1BheW1lbnRNZXJjaGFu
dFNlc3Npb24oKSBlcnJvcjpuaWxdOwogfQogCi12b2lkIFBheW1lbnRBdXRob3JpemF0aW9uUHJl
c2VudGVyOjpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2Vi
Q29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT4mIHVwZGF0ZSkKK3ZvaWQgUGF5bWVudEF1dGhvcml6
YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxX
ZWJDb3JlOjpBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+JiYgdXBkYXRlKQogewogICAgIEFT
U0VSVChwbGF0Zm9ybURlbGVnYXRlKCkpOwogICAgIGlmICghdXBkYXRlKSB7CkBAIC0xOTIsNyAr
MjA1LDE0IEBAIHZvaWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlUGF5
bWVudE1ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25hCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBbcGxhdGZvcm1EZWxlZ2F0ZSgpIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlv
bjp1cGRhdGUtPnBsYXRmb3JtVXBkYXRlKCldOworICAgIGF1dG8gcGF5bWVudE1ldGhvZFVwZGF0
ZSA9IGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0
ZUluc3RhbmNlKCkgaW5pdFdpdGhQYXltZW50U3VtbWFyeUl0ZW1zOldlYkNvcmU6OnBsYXRmb3Jt
U3VtbWFyeUl0ZW1zKFdURk1vdmUodXBkYXRlLT5uZXdUb3RhbCksIFdURk1vdmUodXBkYXRlLT5u
ZXdMaW5lSXRlbXMpKV0pOworI2lmIEhBVkUoUEFTU0tJVF9JTlNUQUxMTUVOVFMpICYmIEVOQUJM
RShBUFBMRV9QQVlfSU5TVEFMTE1FTlRTKQorICAgIFtwYXltZW50TWV0aG9kVXBkYXRlIHNldElu
c3RhbGxtZW50R3JvdXBJZGVudGlmaWVyOldURk1vdmUodXBkYXRlLT5pbnN0YWxsbWVudEdyb3Vw
SWRlbnRpZmllcildOworI2VuZGlmIC8vIEhBVkUoUEFTU0tJVF9JTlNUQUxMTUVOVFMpICYmIEVO
QUJMRShBUFBMRV9QQVlfSU5TVEFMTE1FTlRTKQorI2lmIGRlZmluZWQoUGF5bWVudEF1dGhvcml6
YXRpb25QcmVzZW50ZXJBZGRpdGlvbnNfY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKQor
ICAgIFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyQWRkaXRpb25zX2NvbXBsZXRlUGF5bWVu
dE1ldGhvZFNlbGVjdGlvbgorI2VuZGlmCisgICAgW3BsYXRmb3JtRGVsZWdhdGUoKSBjb21wbGV0
ZVBheW1lbnRNZXRob2RTZWxlY3Rpb246cGF5bWVudE1ldGhvZFVwZGF0ZS5nZXQoKV07CiB9CiAK
IHZvaWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlUGF5bWVudFNlc3Np
b24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+JiBy
ZXN1bHQpCkBAIC0yMDMsNyArMjIzLDcgQEAgdm9pZCBQYXltZW50QXV0aG9yaXphdGlvblByZXNl
bnRlcjo6Y29tcGxldGVQYXltZW50U2Vzc2lvbihjb25zdCBPcHRpb25hbDxXZWJDb3IKICAgICBb
cGxhdGZvcm1EZWxlZ2F0ZSgpIGNvbXBsZXRlUGF5bWVudFNlc3Npb246c3RhdHVzIGVycm9yczpl
cnJvcnMuZ2V0KCldOwogfQogCi12b2lkIFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyOjpj
b21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpT
aGlwcGluZ0NvbnRhY3RVcGRhdGU+JiB1cGRhdGUpCit2b2lkIFBheW1lbnRBdXRob3JpemF0aW9u
UHJlc2VudGVyOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxXZWJD
b3JlOjpBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJiB1cGRhdGUpCiB7CiAgICAgQVNT
RVJUKHBsYXRmb3JtRGVsZWdhdGUoKSk7CiAgICAgaWYgKCF1cGRhdGUpIHsKQEAgLTIxMSwxNCAr
MjMxLDE2IEBAIHZvaWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlU2hp
cHBpbmdDb250YWN0U2VsZWN0aW9uKGNvbnN0IE9wdGlvCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICAvLyBGSVhNRTogV2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlIHNob3VsZCBr
bm93IGhvdyB0byBjb252ZXJ0IGl0c2VsZiB0byBhIFBLUGF5bWVudFJlcXVlc3RTaGlwcGluZ0Nv
bnRhY3RVcGRhdGUuCi0gICAgYXV0byBzaGlwcGluZ0NvbnRhY3RVcGRhdGUgPSBhZG9wdE5TKFtQ
QUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nQ29udGFjdFVwZGF0ZUluc3RhbmNlKCkg
aW5pdFdpdGhFcnJvcnM6dG9OU0Vycm9ycyh1cGRhdGUtPmVycm9ycykuZ2V0KCkKLSAgICAgICAg
cGF5bWVudFN1bW1hcnlJdGVtczpXZWJDb3JlOjpwbGF0Zm9ybVN1bW1hcnlJdGVtcyh1cGRhdGUt
Pm5ld1RvdGFsQW5kTGluZUl0ZW1zKQotICAgICAgICBzaGlwcGluZ01ldGhvZHM6dG9QS1NoaXBw
aW5nTWV0aG9kcyh1cGRhdGUtPm5ld1NoaXBwaW5nTWV0aG9kcykuZ2V0KCldKTsKKyAgICBhdXRv
IHNoaXBwaW5nQ29udGFjdFVwZGF0ZSA9IGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1
ZXN0U2hpcHBpbmdDb250YWN0VXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aEVycm9yczp0b05TRXJy
b3JzKFdURk1vdmUodXBkYXRlLT5lcnJvcnMpKS5nZXQoKQorICAgICAgICBwYXltZW50U3VtbWFy
eUl0ZW1zOldlYkNvcmU6OnBsYXRmb3JtU3VtbWFyeUl0ZW1zKFdURk1vdmUodXBkYXRlLT5uZXdU
b3RhbCksIFdURk1vdmUodXBkYXRlLT5uZXdMaW5lSXRlbXMpKQorICAgICAgICBzaGlwcGluZ01l
dGhvZHM6dG9QS1NoaXBwaW5nTWV0aG9kcyhXVEZNb3ZlKHVwZGF0ZS0+bmV3U2hpcHBpbmdNZXRo
b2RzKSkuZ2V0KCldKTsKKyNpZiBkZWZpbmVkKFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVy
QWRkaXRpb25zX2NvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKQorICAgIFBheW1lbnRB
dXRob3JpemF0aW9uUHJlc2VudGVyQWRkaXRpb25zX2NvbXBsZXRlU2hpcHBpbmdDb250YWN0U2Vs
ZWN0aW9uCisjZW5kaWYKICAgICBbcGxhdGZvcm1EZWxlZ2F0ZSgpIGNvbXBsZXRlU2hpcHBpbmdD
b250YWN0U2VsZWN0aW9uOnNoaXBwaW5nQ29udGFjdFVwZGF0ZS5nZXQoKV07CiB9CiAKLXZvaWQg
UGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxl
Y3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+JiB1cGRh
dGUpCit2b2lkIFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyOjpjb21wbGV0ZVNoaXBwaW5n
TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2RV
cGRhdGU+JiYgdXBkYXRlKQogewogICAgIEFTU0VSVChwbGF0Zm9ybURlbGVnYXRlKCkpOwogICAg
IGlmICghdXBkYXRlKSB7CkBAIC0yMjYsOCArMjQ4LDEwIEBAIHZvaWQgUGF5bWVudEF1dGhvcml6
YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0
aW9uCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBGSVhNRTogV2ViQ29yZTo6U2hp
cHBpbmdNZXRob2RVcGRhdGUgc2hvdWxkIGtub3cgaG93IHRvIGNvbnZlcnQgaXRzZWxmIHRvIGEg
UEtQYXltZW50UmVxdWVzdFNoaXBwaW5nTWV0aG9kVXBkYXRlLgotICAgIGF1dG8gc2hpcHBpbmdN
ZXRob2RVcGRhdGUgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdFNoaXBwaW5n
TWV0aG9kVXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aFBheW1lbnRTdW1tYXJ5SXRlbXM6V2ViQ29y
ZTo6cGxhdGZvcm1TdW1tYXJ5SXRlbXModXBkYXRlLT5uZXdUb3RhbEFuZExpbmVJdGVtcyldKTsK
KyAgICBhdXRvIHNoaXBwaW5nTWV0aG9kVXBkYXRlID0gYWRvcHROUyhbUEFMOjphbGxvY1BLUGF5
bWVudFJlcXVlc3RTaGlwcGluZ01ldGhvZFVwZGF0ZUluc3RhbmNlKCkgaW5pdFdpdGhQYXltZW50
U3VtbWFyeUl0ZW1zOldlYkNvcmU6OnBsYXRmb3JtU3VtbWFyeUl0ZW1zKFdURk1vdmUodXBkYXRl
LT5uZXdUb3RhbCksIFdURk1vdmUodXBkYXRlLT5uZXdMaW5lSXRlbXMpKV0pOworI2lmIGRlZmlu
ZWQoUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXJBZGRpdGlvbnNfY29tcGxldGVTaGlwcGlu
Z01ldGhvZFNlbGVjdGlvbikKKyAgICBQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlckFkZGl0
aW9uc19jb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uCisjZW5kaWYKICAgICBbcGxhdGZv
cm1EZWxlZ2F0ZSgpIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb246c2hpcHBpbmdNZXRo
b2RVcGRhdGUuZ2V0KCldOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vY29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tCmluZGV4IGNm
MzRhNDhlZDJmZWUxZWE3OWYyZWQyN2RiZjEyODVhZTJjYTIzMzQuLmI5ZGNlN2JlZGU4ZDc5NTI4
NDYyMzBkMDU3ZDI2NDk5ZjFjZTY3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vY29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vY29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tCkBA
IC0xNzMsMTYgKzE3MywxNSBAQCAtICh2b2lkKV9kaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3Q6KFBL
Q29udGFjdCAqKWNvbnRhY3QgY29tcGxldGlvbjooV2ViS2l0OjpEaWRTZQogICAgIHByZXNlbnRl
ci0+Y2xpZW50KCkucHJlc2VudGVyRGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KCpwcmVzZW50ZXIs
IFdlYkNvcmU6OlBheW1lbnRDb250YWN0KGNvbnRhY3QpKTsKIH0KIAotc3RhdGljIFdlYkNvcmU6
OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCB0b1NoaXBwaW5n
TWV0aG9kKFBLU2hpcHBpbmdNZXRob2QgKnNoaXBwaW5nTWV0aG9kKQorc3RhdGljIFdlYkNvcmU6
OkFwcGxlUGF5U2hpcHBpbmdNZXRob2QgdG9TaGlwcGluZ01ldGhvZChQS1NoaXBwaW5nTWV0aG9k
ICpzaGlwcGluZ01ldGhvZCkKIHsKICAgICBBU1NFUlQoc2hpcHBpbmdNZXRob2QpOwogCi0gICAg
V2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kIHJl
c3VsdDsKKyAgICBXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kIHJlc3VsdDsKICAgICBy
ZXN1bHQuYW1vdW50ID0gc2hpcHBpbmdNZXRob2QuYW1vdW50LnN0cmluZ1ZhbHVlOwogICAgIHJl
c3VsdC5kZXRhaWwgPSBzaGlwcGluZ01ldGhvZC5kZXRhaWw7CiAgICAgcmVzdWx0LmlkZW50aWZp
ZXIgPSBzaGlwcGluZ01ldGhvZC5pZGVudGlmaWVyOwogICAgIHJlc3VsdC5sYWJlbCA9IHNoaXBw
aW5nTWV0aG9kLmxhYmVsOwotCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZDU0MzAyMjc1M2FkZjMxOTM2MjQwY2Yy
YTQ4ZjUxYjcyMzlkNWVjNS4uOTI5YmViZDA5ZTdjNGY1Y2UzMTRjNTRiZDY5MTM2MjljMzVlMjY3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQor
KysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC03MTcsOCAr
NzE3LDYgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdv
cmtlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uU3RhdGUnOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAogICAgICAgICAn
V2ViQ29yZTo6U2VydmljZVdvcmtlclN0YXRlJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlw
ZXMuaD4nXSwKLSAgICAgICAgJ1dlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZSc6IFsnPFdl
YkNvcmUvQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaD4nXSwKLSAgICAgICAgJ1dlYkNv
cmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlJzogWyc8V2ViQ29yZS9BcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2hvdWxkQXNrSVRQJzogWyc8V2Vi
Q29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNob3Vs
ZE5vdGlmeVdoZW5SZXNvbHZlZCc6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpTaG91bGRTYW1wbGUnOiBbJzxXZWJDb3JlL0RpYWdub3N0aWNM
b2dnaW5nQ2xpZW50Lmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBs
ZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggYzU4OTBlMGEy
ZmZjMTkwYmE5Nzk2NmJhZTFiYmU4ODYwOTc1MTU0Zi4uZjVjYTQxNzdhMTgzMjM1OTI3NDRmZjJj
ZjA1OGVmNzE2NWZkMzUwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQ
YXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNwcApAQCAtMzMsNiArMzMs
OSBAQAogI2luY2x1ZGUgIldlYlBheW1lbnRDb29yZGluYXRvck1lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBy
b2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBk
YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMuaD4KIAogI2RlZmluZSBN
RVNTQUdFX0NIRUNLKGFzc2VydGlvbikgTUVTU0FHRV9DSEVDS19CQVNFKGFzc2VydGlvbiwgbWVz
c2FnZVNlbmRlckNvbm5lY3Rpb24oKSkKQEAgLTEyOCw3ICsxMzEsNyBAQCB2b2lkIFdlYlBheW1l
bnRDb29yZGluYXRvclByb3h5Ojpjb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJD
b3JlOjpQYXltZQogICAgIG1fbWVyY2hhbnRWYWxpZGF0aW9uU3RhdGUgPSBNZXJjaGFudFZhbGlk
YXRpb25TdGF0ZTo6VmFsaWRhdGlvbkNvbXBsZXRlOwogfQogCi12b2lkIFdlYlBheW1lbnRDb29y
ZGluYXRvclByb3h5Ojpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKGNvbnN0IE9wdGlv
bmFsPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPiYgdXBkYXRlKQordm9pZCBXZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRp
b25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKIHsK
ICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHBheW1lbnQgaGFzIGJlZW4gY2FuY2VsZWQg
YWxyZWFkeS4KICAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SWRsZSkKQEAgLTEzNiwxMSArMTM5
LDExIEBAIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OmNvbXBsZXRlU2hpcHBpbmdN
ZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8CiAKICAgICBNRVNTQUdFX0NIRUNLKG1fc3Rh
dGUgPT0gU3RhdGU6OlNoaXBwaW5nTWV0aG9kU2VsZWN0ZWQpOwogCi0gICAgcGxhdGZvcm1Db21w
bGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKHVwZGF0ZSk7CisgICAgcGxhdGZvcm1Db21wbGV0
ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKFdURk1vdmUodXBkYXRlKSk7CiAgICAgbV9zdGF0ZSA9
IFN0YXRlOjpBY3RpdmU7CiB9CiAKLXZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OmNv
bXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlNo
aXBwaW5nQ29udGFjdFVwZGF0ZT4mIHVwZGF0ZSkKK3ZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHk6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6
OkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmIHVwZGF0ZSkKIHsKICAgICAvLyBJdCdz
IHBvc3NpYmxlIHRoYXQgdGhlIHBheW1lbnQgaGFzIGJlZW4gY2FuY2VsZWQgYWxyZWFkeS4KICAg
ICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SWRsZSkKQEAgLTE0OCwxMSArMTUxLDExIEBAIHZvaWQg
V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0
aW9uKGNvbnN0IE9wdGlvbmFsCiAKICAgICBNRVNTQUdFX0NIRUNLKG1fc3RhdGUgPT0gU3RhdGU6
OlNoaXBwaW5nQ29udGFjdFNlbGVjdGVkKTsKIAotICAgIHBsYXRmb3JtQ29tcGxldGVTaGlwcGlu
Z0NvbnRhY3RTZWxlY3Rpb24odXBkYXRlKTsKKyAgICBwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdD
b250YWN0U2VsZWN0aW9uKFdURk1vdmUodXBkYXRlKSk7CiAgICAgbV9zdGF0ZSA9IFN0YXRlOjpB
Y3RpdmU7CiB9CiAKLXZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OmNvbXBsZXRlUGF5
bWVudE1ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9k
VXBkYXRlPiYgdXBkYXRlKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxl
dGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVu
dE1ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCiB7CiAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHRo
ZSBwYXltZW50IGhhcyBiZWVuIGNhbmNlbGVkIGFscmVhZHkuCiAgICAgaWYgKG1fc3RhdGUgPT0g
U3RhdGU6OklkbGUpCkBAIC0xNjAsNyArMTYzLDcgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0
b3JQcm94eTo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFcK
IAogICAgIE1FU1NBR0VfQ0hFQ0sobV9zdGF0ZSA9PSBTdGF0ZTo6UGF5bWVudE1ldGhvZFNlbGVj
dGVkKTsKIAotICAgIHBsYXRmb3JtQ29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKHVwZGF0
ZSk7CisgICAgcGxhdGZvcm1Db21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oV1RGTW92ZSh1
cGRhdGUpKTsKICAgICBtX3N0YXRlID0gU3RhdGU6OkFjdGl2ZTsKIH0KIApAQCAtMjE4LDcgKzIy
MSw3IEBAIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnByZXNlbnRlckRpZEZpbmlz
aChQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlCiAgICAgZGlkUmVhY2hGaW5hbFN0YXRlKFdU
Rk1vdmUoZXJyb3IpKTsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cHJl
c2VudGVyRGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50
ZXImLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBp
bmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94
eTo6cHJlc2VudGVyRGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoUGF5bWVudEF1dGhvcml6YXRpb25Q
cmVzZW50ZXImLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kJiBzaGlwcGlu
Z01ldGhvZCkKIHsKICAgICBBU1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6QWN0aXZlKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5h
dG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29y
ZGluYXRvclByb3h5LmgKaW5kZXggNjUxYzcxMDE5NjdmMjUyNDE5ODdiNzcwZTA2NzI3OTQwOTdi
YTIxZi4uZTBjZDJjNmM2MzM1ZGQ0ZjQ0ZjhlNTY1ZDQxMmVhMTU1OTMyOGY4MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eS5oCkBAIC01MSw3ICs1MSwxMCBAQCBjbGFzcyBQYXltZW50OwogY2xhc3MgUGF5
bWVudENvbnRhY3Q7CiBjbGFzcyBQYXltZW50TWVyY2hhbnRTZXNzaW9uOwogY2xhc3MgUGF5bWVu
dE1ldGhvZDsKLWNsYXNzIFBheW1lbnRNZXRob2RVcGRhdGU7CitzdHJ1Y3QgQXBwbGVQYXlQYXlt
ZW50TWV0aG9kVXBkYXRlOworc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlOwor
c3RydWN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ01l
dGhvZFVwZGF0ZTsKIH0KIAogT0JKQ19DTEFTUyBOU09iamVjdDsKQEAgLTExNCw3ICsxMTcsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgcHJlc2VudGVyRGlkRmluaXNoKFBheW1lbnRBdXRob3JpemF0
aW9uUHJlc2VudGVyJiwgV2ViQ29yZTo6UGF5bWVudFNlc3Npb25FcnJvciYmKSBmaW5hbDsKICAg
ICB2b2lkIHByZXNlbnRlckRpZFNlbGVjdFBheW1lbnRNZXRob2QoUGF5bWVudEF1dGhvcml6YXRp
b25QcmVzZW50ZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9kJikgZmluYWw7CiAgICAg
dm9pZCBwcmVzZW50ZXJEaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3QoUGF5bWVudEF1dGhvcml6YXRp
b25QcmVzZW50ZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50Q29udGFjdCYpIGZpbmFsOwotICAg
IHZvaWQgcHJlc2VudGVyRGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoUGF5bWVudEF1dGhvcml6YXRp
b25QcmVzZW50ZXImLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dDo6U2hpcHBpbmdNZXRob2QmKSBmaW5hbDsKKyAgICB2b2lkIHByZXNlbnRlckRpZFNlbGVjdFNo
aXBwaW5nTWV0aG9kKFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyJiwgY29uc3QgV2ViQ29y
ZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZCYpIGZpbmFsOwogICAgIHZvaWQgcHJlc2VudGVyV2ls
bFZhbGlkYXRlTWVyY2hhbnQoUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXImLCBjb25zdCBV
UkwmKSBmaW5hbDsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMKQEAgLTEyMyw5ICsxMjYsOSBA
QCBwcml2YXRlOgogICAgIHZvaWQgb3BlblBheW1lbnRTZXR1cChjb25zdCBTdHJpbmcmIG1lcmNo
YW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHNob3dQYXltZW50VUkoV2ViQ29yZTo6UGFnZUlk
ZW50aWZpZXIgZGVzdGluYXRpb25JRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5hdGluZ1VSTFN0cmlu
ZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGxpbmtJY29uVVJMU3RyaW5ncywgY29uc3QgV2ViQ29y
ZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKICAgICB2b2lkIGNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFdl
YkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24mKTsKLSAgICB2b2lkIGNvbXBsZXRlU2hpcHBp
bmdNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RV
cGRhdGU+Jik7Ci0gICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihjb25z
dCBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+Jik7Ci0gICAgdm9pZCBj
b21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6UGF5
bWVudE1ldGhvZFVwZGF0ZT4mKTsKKyAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxl
Y3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJik7
CisgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxXZWJD
b3JlOjpBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJik7CisgICAgdm9pZCBjb21wbGV0
ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlQYXltZW50
TWV0aG9kVXBkYXRlPiYmKTsKICAgICB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24oY29uc3Qg
T3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+Jik7CiAgICAgdm9p
ZCBhYm9ydFBheW1lbnRTZXNzaW9uKCk7CiAgICAgdm9pZCBjYW5jZWxQYXltZW50U2Vzc2lvbigp
OwpAQCAtMTQ4LDkgKzE1MSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybU9wZW5QYXlt
ZW50U2V0dXAoY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
ZG9tYWluTmFtZSwgV1RGOjpGdW5jdGlvbjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KTsKICAgICB2b2lkIHBsYXRmb3JtU2hvd1BheW1lbnRVSShjb25zdCBVUkwmIG9yaWdpbmF0aW5n
VVJMLCBjb25zdCBWZWN0b3I8VVJMPiYgbGlua0ljb25VUkxzLCBjb25zdCBXZWJDb3JlOjpBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Db21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBX
ZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJik7Ci0gICAgdm9pZCBwbGF0Zm9ybUNvbXBs
ZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBp
bmdNZXRob2RVcGRhdGU+Jik7Ci0gICAgdm9pZCBwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdDb250
YWN0U2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0
ZT4mKTsKLSAgICB2b2lkIHBsYXRmb3JtQ29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKGNv
bnN0IE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+Jik7CisgICAgdm9pZCBw
bGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6
QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJik7CisgICAgdm9pZCBwbGF0Zm9ybUNvbXBs
ZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hp
cHBpbmdDb250YWN0VXBkYXRlPiYmKTsKKyAgICB2b2lkIHBsYXRmb3JtQ29tcGxldGVQYXltZW50
TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVw
ZGF0ZT4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUNvbXBsZXRlUGF5bWVudFNlc3Npb24oY29uc3Qg
T3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+Jik7CiAgICAgdm9p
ZCBwbGF0Zm9ybUhpZGVQYXltZW50VUkoKTsKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYzE0OWU0ZDJlYzI5NTMwM2ZhODZi
YjEyYmM0OGY2ZjJjZTAwNWY1NS4uNGM1NGNmYjJmNGJhNmM1M2VlNWM5ZDYwNzkzM2M0NzcyZjAy
ODg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
QXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTMyLDkg
KzMyLDkgQEAgbWVzc2FnZXMgLT4gV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkgTm90UmVmQ291
bnRlZCB7CiAKICAgICBTaG93UGF5bWVudFVJKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIGRlc3Rp
bmF0aW9uSUQsIFN0cmluZyBvcmlnaW5hdGluZ1VSTFN0cmluZywgVmVjdG9yPFN0cmluZz4gbGlu
a0ljb25VUkxTdHJpbmdzLCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCBw
YXltZW50UmVxdWVzdCkgLT4gKGJvb2wgcmVzdWx0KSBTeW5jaHJvbm91cwogICAgIENvbXBsZXRl
TWVyY2hhbnRWYWxpZGF0aW9uKFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24gcGF5bWVu
dE1lcmNoYW50U2Vzc2lvbikKLSAgICBDb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9w
dGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPiB1cGRhdGUpCi0gICAgQ29tcGxl
dGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250
YWN0VXBkYXRlPiB1cGRhdGUpCi0gICAgQ29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9w
dGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+IHVwZGF0ZSkKKyAgICBDb21wbGV0
ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBp
bmdNZXRob2RVcGRhdGU+IHVwZGF0ZSkKKyAgICBDb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVj
dGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4gdXBk
YXRlKQorICAgIENvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3Jl
OjpBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+IHVwZGF0ZSkKICAgICBDb21wbGV0ZVBheW1l
bnRTZXNzaW9uKE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiBy
ZXN1bHQpCiAgICAgQWJvcnRQYXltZW50U2Vzc2lvbigpCiAgICAgQ2FuY2VsUGF5bWVudFNlc3Np
b24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvY29jb2EvV2Vi
UGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBw
bGVQYXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5oCmluZGV4IDkyNzk5
MDkyN2FmMmU0MWJiYmU3NjBlNjQ3OWM3NmE1YzFlNjExMzIuLjIzNjY2YjczNjQzNDJlMjZhMjUz
OGI0ZDJhMWEzOTQzZmY0YzVhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Fw
cGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94
eUNvY29hLmgKQEAgLTI3LDE2ICsyNywxOCBAQAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAot
I2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oPgotCiBPQkpD
X0NMQVNTIFBLU2hpcHBpbmdNZXRob2Q7CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBB
cHBsZVBheVNoaXBwaW5nTWV0aG9kOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogLy8gRklY
TUU6IFJhdGhlciB0aGFuIGhhdmluZyB0aGVzZSBmcmVlIGZ1bmN0aW9ucyBzY2F0dGVyZWQgYWJv
dXQsIEFwcGxlIFBheSBkYXRhIHR5cGVzIHNob3VsZCBrbm93CiAvLyBob3cgdG8gY29udmVydCB0
aGVtc2VsdmVzIHRvIGFuZCBmcm9tIHRoZWlyIHBsYXRmb3JtIHJlcHJlc2VudGF0aW9ucy4KIE5T
RGVjaW1hbE51bWJlciAqdG9EZWNpbWFsTnVtYmVyKGNvbnN0IFN0cmluZyYgYW1vdW50KTsKLVBL
U2hpcHBpbmdNZXRob2QgKnRvUEtTaGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3JlOjpBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKTsKK1BLU2hpcHBpbmdNZXRo
b2QgKnRvUEtTaGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0
aG9kJik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29h
Lm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvY29jb2EvV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHlDb2NvYS5tbQppbmRleCA0NDAyYTQ5MDkxOTY5YWNkOGE1Mjg5YzhhNzNkNTkx
OTNlOWNhNjM2Li44ZmNiNWFmMWJlM2YyZjliNjc2YjZmMGQzNGY5ZDgxM2YxNDg1MTkwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29v
cmRpbmF0b3JQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5
L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EubW0KQEAgLTM2LDYgKzM2LDEw
IEBACiAjaW1wb3J0ICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oIgogI2ltcG9ydCAiV2Vi
UGF5bWVudENvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1By
b3h5LmgiCisjaW1wb3J0IDxXZWJDb3JlL0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oPgor
I2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oPgorI2ltcG9y
dCA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kLmg+CisjaW1wb3J0IDxXZWJDb3JlL0Fw
cGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGF5bWVudEF1
dGhvcml6YXRpb25TdGF0dXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGF5bWVudEhlYWRlcnMuaD4K
ICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgpAQCAtNDUsNiArNDksMTAgQEAKIAogI2ltcG9ydCA8
cGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5oPgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NE
SykKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlD
b2NvYUFkZGl0aW9ucy5tbT4KKyNlbmRpZgorCiAvLyBGSVhNRTogV2UgZG9uJ3Qgc3VwcG9ydCBh
bnkgcGxhdGZvcm1zIHdpdGhvdXQgLXNldFRodW1ibmFpbFVSTHM6LCBzbyB0aGlzIGNhbiBiZSBy
ZW1vdmVkLgogQGludGVyZmFjZSBQS1BheW1lbnRSZXF1ZXN0ICgpCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgc3Ryb25nKSBOU1VSTCAqdGh1bWJuYWlsVVJMOwpAQCAtNTIsMTkgKzYwLDYgQEAgQGVu
ZAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotc3RhdGljIHZvaWQgZmluaXNoQ3JlYXRpbmcoUEtQ
YXltZW50UmVxdWVzdCAqcGxhdGZvcm1SZXF1ZXN0LCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdCYgcmVxdWVzdCkKLXsKLSNpZiBIQVZFKFBBU1NLSVRfSU5TVEFM
TE1FTlRTKQotICAgIGlmIChQS1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24gKmNvbmZp
Z3VyYXRpb24gPSByZXF1ZXN0Lmluc3RhbGxtZW50Q29uZmlndXJhdGlvbigpLnBsYXRmb3JtQ29u
ZmlndXJhdGlvbigpKSB7Ci0gICAgICAgIHBsYXRmb3JtUmVxdWVzdC5pbnN0YWxsbWVudENvbmZp
Z3VyYXRpb24gPSBjb25maWd1cmF0aW9uOwotICAgICAgICBwbGF0Zm9ybVJlcXVlc3QucmVxdWVz
dFR5cGUgPSBQS1BheW1lbnRSZXF1ZXN0VHlwZUluc3RhbGxtZW50OwotICAgIH0KLSNlbHNlCi0g
ICAgVU5VU0VEX1BBUkFNKHBsYXRmb3JtUmVxdWVzdCk7Ci0gICAgVU5VU0VEX1BBUkFNKHJlcXVl
c3QpOwotI2VuZGlmCi19Ci0KIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpXZWJQYXltZW50
Q29vcmRpbmF0b3JQcm94eShXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Q2xpZW50JiBjbGll
bnQpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX2Nhbk1ha2VQYXltZW50c1F1ZXVl
KFdvcmtRdWV1ZTo6Y3JlYXRlKCJjb20uYXBwbGUuV2ViS2l0LkNhbk1ha2VQYXltZW50cyIpKQpA
QCAtMTY5LDE1ICsxNjQsMTQgQEAgc3RhdGljIFBLU2hpcHBpbmdUeXBlIHRvUEtTaGlwcGluZ1R5
cGUoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlMKICAgICB9CiB9CiAK
LVBLU2hpcHBpbmdNZXRob2QgKnRvUEtTaGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3JlOjpBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9k
KQorUEtTaGlwcGluZ01ldGhvZCAqdG9QS1NoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFw
cGxlUGF5U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQogewogICAgIFBLU2hpcHBpbmdN
ZXRob2QgKnJlc3VsdCA9IFtQQUw6OmdldFBLU2hpcHBpbmdNZXRob2RDbGFzcygpIHN1bW1hcnlJ
dGVtV2l0aExhYmVsOnNoaXBwaW5nTWV0aG9kLmxhYmVsIGFtb3VudDp0b0RlY2ltYWxOdW1iZXIo
c2hpcHBpbmdNZXRob2QuYW1vdW50KV07CiAgICAgW3Jlc3VsdCBzZXRJZGVudGlmaWVyOnNoaXBw
aW5nTWV0aG9kLmlkZW50aWZpZXJdOwogICAgIFtyZXN1bHQgc2V0RGV0YWlsOnNoaXBwaW5nTWV0
aG9kLmRldGFpbF07Ci0KICAgICByZXR1cm4gcmVzdWx0OwogfQotICAgIAorCiBzdGF0aWMgUmV0
YWluUHRyPE5TU2V0PiB0b05TU2V0KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdHJpbmdzKQogewog
ICAgIGlmIChzdHJpbmdzLmlzRW1wdHkoKSkKQEAgLTI2MCw3ICsyNTQsMTYgQEAgUmV0YWluUHRy
PFBLUGF5bWVudFJlcXVlc3Q+IFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybVBh
eW1lbnRSZXF1ZXN0KGMKICAgICAgICAgW3Jlc3VsdCBzZXRDVERhdGFDb25uZWN0aW9uU2Vydmlj
ZVR5cGU6c2VydmljZVR5cGVdOwogI2VuZGlmCiAKLSAgICBmaW5pc2hDcmVhdGluZyhyZXN1bHQu
Z2V0KCksIHBheW1lbnRSZXF1ZXN0KTsKKyNpZiBIQVZFKFBBU1NLSVRfSU5TVEFMTE1FTlRTKQor
ICAgIGlmIChQS1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb24g
PSBwYXltZW50UmVxdWVzdC5pbnN0YWxsbWVudENvbmZpZ3VyYXRpb24oKS5wbGF0Zm9ybUNvbmZp
Z3VyYXRpb24oKSkgeworICAgICAgICBbcmVzdWx0IHNldEluc3RhbGxtZW50Q29uZmlndXJhdGlv
bjpjb25maWd1cmF0aW9uXTsKKyAgICAgICAgW3Jlc3VsdCBzZXRSZXF1ZXN0VHlwZTpQS1BheW1l
bnRSZXF1ZXN0VHlwZUluc3RhbGxtZW50XTsKKyAgICB9CisjZW5kaWYKKworI2lmIGRlZmluZWQo
V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYUFkZGl0aW9uc19wbGF0Zm9ybVBheW1lbnRS
ZXF1ZXN0KQorICAgIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2FBZGRpdGlvbnNfcGxh
dGZvcm1QYXltZW50UmVxdWVzdAorI2VuZGlmCiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAt
Mjc1LDE5ICsyNzgsMTkgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZv
cm1Db21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3IKICAgICBtX2F1dGhvcml6
YXRpb25QcmVzZW50ZXItPmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKHBheW1lbnRNZXJjaGFu
dFNlc3Npb24pOwogfQogCi12b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9y
bUNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6
U2hpcHBpbmdNZXRob2RVcGRhdGU+JiB1cGRhdGUpCit2b2lkIFdlYlBheW1lbnRDb29yZGluYXRv
clByb3h5OjpwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8
V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCiB7Ci0gICAg
bV9hdXRob3JpemF0aW9uUHJlc2VudGVyLT5jb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9u
KHVwZGF0ZSk7CisgICAgbV9hdXRob3JpemF0aW9uUHJlc2VudGVyLT5jb21wbGV0ZVNoaXBwaW5n
TWV0aG9kU2VsZWN0aW9uKFdURk1vdmUodXBkYXRlKSk7CiB9CiAKLXZvaWQgV2ViUGF5bWVudENv
b3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24o
Y29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYgdXBkYXRlKQor
dm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1Db21wbGV0ZVNoaXBwaW5n
Q29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nQ29udGFj
dFVwZGF0ZT4mJiB1cGRhdGUpCiB7Ci0gICAgbV9hdXRob3JpemF0aW9uUHJlc2VudGVyLT5jb21w
bGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbih1cGRhdGUpOworICAgIG1fYXV0aG9yaXphdGlv
blByZXNlbnRlci0+Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oV1RGTW92ZSh1cGRh
dGUpKTsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1Db21w
bGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVu
dE1ldGhvZFVwZGF0ZT4mIHVwZGF0ZSkKK3ZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6
OnBsYXRmb3JtQ29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6
OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCiB7Ci0gICAgbV9hdXRob3Jp
emF0aW9uUHJlc2VudGVyLT5jb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24odXBkYXRlKTsK
KyAgICBtX2F1dGhvcml6YXRpb25QcmVzZW50ZXItPmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVj
dGlvbihXVEZNb3ZlKHVwZGF0ZSkpOwogfQogCiB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclBy
b3h5OjpnZXRTZXR1cEZlYXR1cmVzKGNvbnN0IFBheW1lbnRTZXR1cENvbmZpZ3VyYXRpb24mIGNv
bmZpZ3VyYXRpb24sIE1lc3NhZ2VzOjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6R2V0U2V0
dXBGZWF0dXJlczo6QXN5bmNSZXBseSYmIHJlcGx5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQppbmRleCBkMzVj
ZjZlYWJlYmQxMDk4YWM4YzFmMDJiZjA1MDY5NzFhODQzMzJhLi43NmFmYjcyZmYyZmQ0Zjk3YjVj
ZjAxMzJlZWE5YjMzN2ZhNDRhYjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
b2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQpAQCAtNDYsNiArNDYsMTAg
QEAKICNpbXBvcnQgPHBhbC9jb2NvYS9QYXNzS2l0U29mdExpbmsuaD4KICNlbmRpZgogCisjaWYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzQ29jb2FBZGRpdGlvbnMubW0+CisjZW5kaWYKKwogbmFtZXNwYWNlIElQ
QyB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTEyLDcgKzExNiw3IEBAIE9wdGlv
bmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OlBheW1lbnRBdXRoCiAgICAgaWYgKCFzdGF0dXMpCiAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiAKLSAgICBPcHRpb25hbDxWZWN0b3I8UGF5bWVudEVycm9yPj4gZXJyb3JzOwor
ICAgIE9wdGlvbmFsPFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+PiBlcnJvcnM7CiAgICAg
ZGVjb2RlciA+PiBlcnJvcnM7CiAgICAgaWYgKCFlcnJvcnMpCiAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CkBAIC0xMzQsMzMgKzEzOCw2IEBAIE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRD
b250YWN0PiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRDb250YWN0Pjo6ZGVjb2RlCiAg
ICAgcmV0dXJuIFdlYkNvcmU6OlBheW1lbnRDb250YWN0IHsgV1RGTW92ZSgqY29udGFjdCkgfTsK
IH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRFcnJvcj46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpQYXltZW50RXJyb3ImIGVycm9yKQotewot
ICAgIGVuY29kZXIgPDwgZXJyb3IuY29kZTsKLSAgICBlbmNvZGVyIDw8IGVycm9yLm1lc3NhZ2U7
Ci0gICAgZW5jb2RlciA8PCBlcnJvci5jb250YWN0RmllbGQ7Ci19Ci0KLU9wdGlvbmFsPFdlYkNv
cmU6OlBheW1lbnRFcnJvcj4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50RXJyb3I+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50
RXJyb3I6OkNvZGU+IGNvZGU7Ci0gICAgZGVjb2RlciA+PiBjb2RlOwotICAgIGlmICghY29kZSkK
LSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAgICBPcHRpb25hbDxTdHJpbmc+
IG1lc3NhZ2U7Ci0gICAgZGVjb2RlciA+PiBtZXNzYWdlOwotICAgIGlmICghbWVzc2FnZSkKLSAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAgICBPcHRpb25hbDxPcHRpb25hbDxX
ZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZD4+IGNvbnRhY3RGaWVsZDsKLSAgICBk
ZWNvZGVyID4+IGNvbnRhY3RGaWVsZDsKLSAgICBpZiAoIWNvbnRhY3RGaWVsZCkKLSAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIHJldHVybiB7eyBXVEZNb3ZlKCpjb2RlKSwgV1RG
TW92ZSgqbWVzc2FnZSksIFdURk1vdmUoKmNvbnRhY3RGaWVsZCkgfX07Ci19Ci0KIHZvaWQgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uPjo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24mIHBheW1l
bnRNZXJjaGFudFNlc3Npb24pCiB7CiAgICAgZW5jb2RlciA8PCBwYXltZW50TWVyY2hhbnRTZXNz
aW9uLnBrUGF5bWVudE1lcmNoYW50U2Vzc2lvbigpOwpAQCAtMTg5LDIwICsxNjYsNiBAQCBPcHRp
b25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9kPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1l
bnRNZXRob2Q+OjpkZWNvZGUoRAogICAgIHJldHVybiBQYXltZW50TWV0aG9kIHsgV1RGTW92ZSgq
cGF5bWVudE1ldGhvZCkgfTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1l
bnRNZXRob2RVcGRhdGU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6
UGF5bWVudE1ldGhvZFVwZGF0ZSYgdXBkYXRlKQotewotICAgIGVuY29kZXIgPDwgdXBkYXRlLnBs
YXRmb3JtVXBkYXRlKCk7Ci19Ci0KLU9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRh
dGU+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT46OmRlY29kZShE
ZWNvZGVyJiBkZWNvZGVyKQotewotICAgIGF1dG8gdXBkYXRlID0gSVBDOjpkZWNvZGU8UEtQYXlt
ZW50UmVxdWVzdFBheW1lbnRNZXRob2RVcGRhdGU+KGRlY29kZXIsIFBBTDo6Z2V0UEtQYXltZW50
UmVxdWVzdFBheW1lbnRNZXRob2RVcGRhdGVDbGFzcygpKTsKLSAgICBpZiAoIXVwZGF0ZSkKLSAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQotICAgIHJldHVybiBQYXltZW50TWV0aG9kVXBk
YXRlIHsgV1RGTW92ZSgqdXBkYXRlKSB9OwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8QXBwbGVQ
YXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3Qg
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmIHJlcXVlc3QpCiB7CiAgICAgZW5jb2RlciA8
PCByZXF1ZXN0LmNvdW50cnlDb2RlKCk7CkBAIC0yMjMsNiArMTg2LDkgQEAgdm9pZCBBcmd1bWVu
dENvZGVyPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Pjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnMKICNpZiBFTkFCTEUoQVBQTEVfUEFZX0lOU1RBTExNRU5UUykKICAgICBlbmNv
ZGVyIDw8IHJlcXVlc3QuaW5zdGFsbG1lbnRDb25maWd1cmF0aW9uKCk7CiAjZW5kaWYKKyNpZiBk
ZWZpbmVkKFdlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hQWRkaXRpb25zX0FwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0X2VuY29kZSkKKyAgICBXZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYUFk
ZGl0aW9uc19BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdF9lbmNvZGUKKyNlbmRpZgogfQog
CiBib29sIEFyZ3VtZW50Q29kZXI8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q+OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmIHJlcXVl
c3QpCkBAIC0yNzQsNyArMjQwLDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPEFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEFwcGwKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIHJlcXVlc3Quc2V0U2hpcHBpbmdUeXBlKHNoaXBwaW5nVHlwZSk7
CiAKLSAgICBWZWN0b3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0
aG9kPiBzaGlwcGluZ01ldGhvZHM7CisgICAgVmVjdG9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+
IHNoaXBwaW5nTWV0aG9kczsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNoaXBwaW5nTWV0aG9k
cykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXF1ZXN0LnNldFNoaXBwaW5nTWV0aG9k
cyhzaGlwcGluZ01ldGhvZHMpOwpAQCAtMzE0LDYgKzI4MCwxMCBAQCBib29sIEFyZ3VtZW50Q29k
ZXI8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
ciwgQXBwbAogICAgIHJlcXVlc3Quc2V0SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uKFdURk1vdmUo
Kmluc3RhbGxtZW50Q29uZmlndXJhdGlvbikpOwogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKFdlYkNv
cmVBcmd1bWVudENvZGVyc0NvY29hQWRkaXRpb25zX0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0X2RlY29kZSkKKyAgICBXZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYUFkZGl0aW9uc19BcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdF9kZWNvZGUKKyNlbmRpZgorCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKQEAgLTM2NCw4OCArMzM0LDM4IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdDo6TWVyY2hhbnRDYXBhYmlsaXRpZXM+OjpkZWNvZGUoCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rlciwg
Y29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlw
cGluZ01ldGhvZCkKK3ZvaWQgQXJndW1lbnRDb2RlcjxWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJy
b3I+Pj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBWZWN0b3I8UmVmUHRyPEFwcGxl
UGF5RXJyb3I+PiYgZXJyb3JzKQogewotICAgIGVuY29kZXIgPDwgc2hpcHBpbmdNZXRob2QubGFi
ZWw7Ci0gICAgZW5jb2RlciA8PCBzaGlwcGluZ01ldGhvZC5kZXRhaWw7Ci0gICAgZW5jb2RlciA8
PCBzaGlwcGluZ01ldGhvZC5hbW91bnQ7Ci0gICAgZW5jb2RlciA8PCBzaGlwcGluZ01ldGhvZC5p
ZGVudGlmaWVyOworICAgIGVuY29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGVycm9ycy5z
aXplKCkpOworICAgIGZvciAoYXV0byYgZXJyb3IgOiBlcnJvcnMpIHsKKyAgICAgICAgZW5jb2Rl
ciA8PCAhIWVycm9yOworICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICBlbmNvZGVyIDw8
ICplcnJvcjsKKyAgICB9CiB9CiAKLU9wdGlvbmFsPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0OjpTaGlwcGluZ01ldGhvZD4gQXJndW1lbnRDb2RlcjxBcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK09wdGlv
bmFsPFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+PiBBcmd1bWVudENvZGVyPFZlY3RvcjxS
ZWZQdHI8QXBwbGVQYXlFcnJvcj4+Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAg
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kIHNoaXBwaW5nTWV0
aG9kOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2hpcHBpbmdNZXRob2QubGFiZWwpKQorICAg
IHVpbnQ2NF90IHNpemU7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaXplKSkKICAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNoaXBwaW5nTWV0
aG9kLmRldGFpbCkpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShzaGlwcGluZ01ldGhvZC5hbW91bnQpKQotICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2hpcHBpbmdNZXRob2QuaWRlbnRpZmll
cikpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIFdURk1vdmUoc2hp
cHBpbmdNZXRob2QpOwotfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8QXBwbGVQYXlTZXNzaW9uUGF5
bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcyYg
dG90YWxBbmRMaW5lSXRlbXMpCi17Ci0gICAgZW5jb2RlciA8PCB0b3RhbEFuZExpbmVJdGVtcy50
b3RhbDsKLSAgICBlbmNvZGVyIDw8IHRvdGFsQW5kTGluZUl0ZW1zLmxpbmVJdGVtczsKLX0KKyAg
ICBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiBlcnJvcnMoc2l6ZSk7CisgICAgZm9yICh1
aW50NjRfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgeworICAgICAgICBPcHRpb25hbDxib29sPiBp
c1ZhbGlkOworICAgICAgICBkZWNvZGVyID4+IGlzVmFsaWQ7CisgICAgICAgIGlmICghaXNWYWxp
ZCkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAKLU9wdGlvbmFsPEFwcGxlUGF5
U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz4gQXJndW1lbnRDb2RlcjxB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXM+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBPcHRpb25hbDxBcHBsZVBheUxpbmVJdGVtPiB0b3Rh
bDsKLSAgICBkZWNvZGVyID4+IHRvdGFsOwotICAgIGlmICghdG90YWwpCi0gICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7Ci0gICAgCi0gICAgT3B0aW9uYWw8VmVjdG9yPEFwcGxlUGF5TGluZUl0
ZW0+PiBsaW5lSXRlbXM7Ci0gICAgZGVjb2RlciA+PiBsaW5lSXRlbXM7Ci0gICAgaWYgKCFsaW5l
SXRlbXMpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCi0gICAgcmV0dXJuIHt7
IFdURk1vdmUoKnRvdGFsKSwgV1RGTW92ZSgqbGluZUl0ZW1zKSB9fTsKLX0KLQotdm9pZCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGUmIHVwZGF0ZSkK
LXsKLSAgICBlbmNvZGVyIDw8IHVwZGF0ZS5lcnJvcnM7Ci0gICAgZW5jb2RlciA8PCB1cGRhdGUu
bmV3U2hpcHBpbmdNZXRob2RzOwotICAgIGVuY29kZXIgPDwgdXBkYXRlLm5ld1RvdGFsQW5kTGlu
ZUl0ZW1zOwotfQotCi1PcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPjo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCi17Ci0gICAgT3B0aW9uYWw8VmVjdG9yPFBheW1lbnRFcnJvcj4+IGVycm9y
czsKLSAgICBkZWNvZGVyID4+IGVycm9yczsKLSAgICBpZiAoIWVycm9ycykKLSAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAgICBPcHRpb25hbDxWZWN0b3I8QXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPj4gbmV3U2hpcHBpbmdNZXRob2RzOwot
ICAgIGRlY29kZXIgPj4gbmV3U2hpcHBpbmdNZXRob2RzOwotICAgIGlmICghbmV3U2hpcHBpbmdN
ZXRob2RzKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAgIE9wdGlvbmFs
PEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz4gbmV3VG90
YWxBbmRMaW5lSXRlbXM7Ci0gICAgZGVjb2RlciA+PiBuZXdUb3RhbEFuZExpbmVJdGVtczsKLSAg
ICBpZiAoIW5ld1RvdGFsQW5kTGluZUl0ZW1zKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwotICAgIAotICAgIHJldHVybiB7eyBXVEZNb3ZlKCplcnJvcnMpLCBXVEZNb3ZlKCpuZXdTaGlw
cGluZ01ldGhvZHMpLCBXVEZNb3ZlKCpuZXdUb3RhbEFuZExpbmVJdGVtcykgfX07Ci19Ci0KLXZv
aWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZSYgdXBk
YXRlKQotewotICAgIGVuY29kZXIgPDwgdXBkYXRlLm5ld1RvdGFsQW5kTGluZUl0ZW1zOwotfQot
Ci1PcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4gQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQot
ewotICAgIE9wdGlvbmFsPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExp
bmVJdGVtcz4gbmV3VG90YWxBbmRMaW5lSXRlbXM7Ci0gICAgZGVjb2RlciA+PiBuZXdUb3RhbEFu
ZExpbmVJdGVtczsKLSAgICBpZiAoIW5ld1RvdGFsQW5kTGluZUl0ZW1zKQotICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwotICAgIHJldHVybiB7eyBXVEZNb3ZlKCpuZXdUb3RhbEFuZExpbmVJ
dGVtcykgfX07CisgICAgICAgIFJlZlB0cjxBcHBsZVBheUVycm9yPiBlcnJvcjsKKyAgICAgICAg
aWYgKCppc1ZhbGlkKSB7CisgICAgICAgICAgICBlcnJvciA9IEFwcGxlUGF5RXJyb3I6OmRlY29k
ZShkZWNvZGVyKTsKKyAgICAgICAgICAgIGlmICghZXJyb3IpCisgICAgICAgICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgfQorICAgICAgICBlcnJvcnMuYXBwZW5kKFdURk1v
dmUoZXJyb3IpKTsKKyAgICB9CisgICAgcmV0dXJuIGVycm9yczsKIH0KIAogdm9pZCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OlBheW1lbnRTZXNzaW9uRXJyb3I+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgV2ViQ29yZTo6UGF5bWVudFNlc3Npb25FcnJvciYgZXJyb3IpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDI2MDk4ZWZkZGI0
YWZmMmViZWY3YjJmY2E2MWQ1Y2ZhMDA3NTc0ZmQuLjM2YTFkZjM3OWU0ZDNkNDZhNWIzYmUxYzM0
MzM1MGQzNGM2OGFlNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCkBAIC02NzcsMTEgKzY3Nyw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6UGF5bWVudENvbnRhY3Q+IHsKICAgICBzdGF0aWMgT3B0aW9uYWw8V2Vi
Q29yZTo6UGF5bWVudENvbnRhY3Q+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCi10ZW1wbGF0ZTw+
IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRFcnJvcj4gewotICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGF5bWVudEVycm9yJik7Ci0g
ICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRFcnJvcj4gZGVjb2RlKERlY29kZXIm
KTsKLX07Ci0KIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVu
dE1lcmNoYW50U2Vzc2lvbj4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vzc2lvbiYpOwogICAgIHN0YXRpYyBPcHRpb25h
bDxXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uPiBkZWNvZGUoRGVjb2RlciYpOwpAQCAt
NjkyLDExICs2ODcsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlBheW1lbnRNZXRob2Q+IHsKICAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudE1l
dGhvZD4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT4gewotICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZSYpOwotICAg
IHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiBkZWNvZGUoRGVj
b2RlciYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShF
bmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmKTsK
ICAgICBzdGF0aWMgV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJD
b3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYpOwpAQCAtNzExLDI0ICs3MDEsOSBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0OjpNZXJjaGFudAogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4g
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0OjpNZXJjaGFudENhcGFiaWxpdGllcyYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBp
bmdNZXRob2Q+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpOwotICAg
IHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6
U2hpcHBpbmdNZXRob2Q+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpU
b3RhbEFuZExpbmVJdGVtcz4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0
ZW1zJik7Ci0gICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBk
YXRlPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpT
aGlwcGluZ0NvbnRhY3RVcGRhdGUmKTsKLSAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6U2hp
cHBpbmdDb250YWN0VXBkYXRlPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4gewotICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6U2hpcHBpbmdNZXRo
b2RVcGRhdGUmKTsKLSAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RV
cGRhdGU+IGRlY29kZShEZWNvZGVyJik7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6QXBwbGVQYXlFcnJvcj4+PiB7CisgICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkFwcGxlUGF5
RXJyb3I+PiYpOworICAgIHN0YXRpYyBPcHRpb25hbDxWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkFw
cGxlUGF5RXJyb3I+Pj4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKIHRlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudFNlc3Npb25FcnJvcj4gewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3Jk
aW5hdG9yLmNwcAppbmRleCA4NmQwMmUxNmM2N2QyMTlhNjcwODI3YzAzMGQyMDQ2ZjAyNzNlMDcx
Li4wYjFkNTMzODkxOTY4NzUyNjIxNmIxYzIxYTQ2OGNiNWZhMWVlNDM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3Jk
aW5hdG9yLmNwcApAQCAtMzYsNiArMzYsOSBAQAogI2luY2x1ZGUgIldlYlBheW1lbnRDb29yZGlu
YXRvck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0FwcGxl
UGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGVQYXlTaGlw
cGluZ0NvbnRhY3RVcGRhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0FwcGxlUGF5U2hpcHBpbmdN
ZXRob2RVcGRhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYXltZW50Q29vcmRpbmF0b3IuaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CkBAIC0xMDks
MTkgKzExMiwxOSBAQCB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVNZXJjaGFu
dFZhbGlkYXRpb24oY29uc3QgV2ViQ29yZTo6UGF5bWVudE1lcgogICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpDb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihw
YXltZW50TWVyY2hhbnRTZXNzaW9uKSk7CiB9CiAKLXZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9y
Ojpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBw
aW5nTWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKK3ZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yOjpj
b21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5
U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYgdXBkYXRlKQogewotICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBheW1lbnRDb29yZGluYXRvclByb3h5OjpDb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9u
KHVwZGF0ZSkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5
OjpDb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKFdURk1vdmUodXBkYXRlKSkpOwogfQog
Ci12b2lkIFdlYlBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxl
Y3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmIHVwZGF0ZSkK
K3ZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVj
dGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJiB1
cGRhdGUpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6
OkNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKHVwZGF0ZSkpOworICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpDb21wbGV0ZVNoaXBwaW5nQ29udGFj
dFNlbGVjdGlvbihXVEZNb3ZlKHVwZGF0ZSkpKTsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRp
bmF0b3I6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpQ
YXltZW50TWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKK3ZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9y
Ojpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQ
YXlQYXltZW50TWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Q29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9u
KHVwZGF0ZSkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5
OjpDb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUpKSk7CiB9CiAK
IHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVBheW1lbnRTZXNzaW9uKE9wdGlv
bmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYmIHJlc3VsdCkKQEAgLTE4
OCw3ICsxOTEsNyBAQCB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvcjo6ZGlkQXV0aG9yaXplUGF5
bWVudChjb25zdCBXZWJDb3JlOjpQYXltZW50JiBwYXltZW50KQogICAgIHBheW1lbnRDb29yZGlu
YXRvcigpLmRpZEF1dGhvcml6ZVBheW1lbnQocGF5bWVudCk7CiB9CiAKLXZvaWQgV2ViUGF5bWVu
dENvb3JkaW5hdG9yOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3JlOjpBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9k
KQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3I6OmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNv
bnN0IFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQogewog
ICAgIHBheW1lbnRDb29yZGluYXRvcigpLmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKHNoaXBwaW5n
TWV0aG9kKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBsZVBh
eS9XZWJQYXltZW50Q29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBs
ZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuaAppbmRleCBjOWRjNjgyYjg3NTQ5YjgyNTBkYjIy
YjJhMWNlMjE1NTUwMDBjZWM4Li5lN2JhNWVhMmU4N2UyNzcyYjNlYzg1MDM5ZTk5MWRiZTc2MGYz
NDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5
bWVudENvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5
L1dlYlBheW1lbnRDb29yZGluYXRvci5oCkBAIC00MCw2ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIFBheW1lbnRDb29yZGluYXRvcjsKIGNsYXNzIFBheW1lbnRDb250YWN0Owog
Y2xhc3MgUGF5bWVudFNlc3Npb25FcnJvcjsKK3N0cnVjdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9k
OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTY0LDkgKzY1LDkgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIG9wZW5QYXltZW50U2V0dXAoY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgZG9tYWluTmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4m
Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzaG93UGF5bWVudFVJKGNvbnN0IFVSTCYgb3JpZ2luYXRp
bmdVUkwsIGNvbnN0IFZlY3RvcjxVUkw+JiBsaW5rSWNvblVSTHMsIGNvbnN0IFdlYkNvcmU6OkFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21wbGV0
ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9u
Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9w
dGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKSBvdmVycmlkZTsKLSAgICB2
b2lkIGNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlNo
aXBwaW5nQ29udGFjdFVwZGF0ZT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21wbGV0ZVBheW1l
bnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT4m
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9w
dGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYpIG92ZXJyaWRl
OworICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2Vi
Q29yZTo6QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYpIG92ZXJyaWRlOworICAgIHZv
aWQgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxl
UGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21wbGV0ZVBh
eW1lbnRTZXNzaW9uKE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0
PiYmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgYWJvcnRQYXltZW50U2Vzc2lvbigpIG92ZXJyaWRl
OwpAQCAtOTUsNyArOTYsNyBAQCBwcml2YXRlOgogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMuCiAg
ICAgdm9pZCB2YWxpZGF0ZU1lcmNoYW50KGNvbnN0IFN0cmluZyYgdmFsaWRhdGlvblVSTFN0cmlu
Zyk7CiAgICAgdm9pZCBkaWRBdXRob3JpemVQYXltZW50KGNvbnN0IFdlYkNvcmU6OlBheW1lbnQm
KTsKLSAgICB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFwcGxl
UGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpOworICAgIHZvaWQgZGlk
U2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhv
ZCYpOwogICAgIHZvaWQgZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KGNvbnN0IFdlYkNvcmU6OlBh
eW1lbnRDb250YWN0Jik7CiAgICAgdm9pZCBkaWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFdl
YkNvcmU6OlBheW1lbnRNZXRob2QmKTsKICAgICB2b2lkIGRpZENhbmNlbFBheW1lbnRTZXNzaW9u
KFdlYkNvcmU6OlBheW1lbnRTZXNzaW9uRXJyb3ImJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRv
ci5tZXNzYWdlcy5pbgppbmRleCBmYTQ2MjcyNTY1NzM2ZmVmZjA4NjhjZGE5MzhlNGMxNTQ4ZmYy
NWEyLi4zNmVjNGYxMjNmOGFhMjcxZTc1NTExYjUzZDEyNDIwMmQwMmJkMzgyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9y
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQ
YXltZW50Q29vcmRpbmF0b3IubWVzc2FnZXMuaW4KQEAgLTI4LDcgKzI4LDcgQEAgbWVzc2FnZXMg
LT4gV2ViUGF5bWVudENvb3JkaW5hdG9yIE5vdFJlZkNvdW50ZWQgewogCiAgICAgVmFsaWRhdGVN
ZXJjaGFudChTdHJpbmcgdmFsaWRhdGlvblVSTFN0cmluZykKICAgICBEaWRBdXRob3JpemVQYXlt
ZW50KFdlYkNvcmU6OlBheW1lbnQgcGF5bWVudCkKLSAgICBEaWRTZWxlY3RTaGlwcGluZ01ldGhv
ZChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Qg
c2hpcHBpbmdNZXRob2QpCisgICAgRGlkU2VsZWN0U2hpcHBpbmdNZXRob2Qoc3RydWN0IFdlYkNv
cmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2Qgc2hpcHBpbmdNZXRob2QpCiAgICAgRGlkU2VsZWN0
U2hpcHBpbmdDb250YWN0KFdlYkNvcmU6OlBheW1lbnRDb250YWN0IHNoaXBwaW5nQ29udGFjdCkK
ICAgICBEaWRTZWxlY3RQYXltZW50TWV0aG9kKFdlYkNvcmU6OlBheW1lbnRNZXRob2QgcGF5bWVu
dE1ldGhvZCkKICAgICBEaWRDYW5jZWxQYXltZW50U2Vzc2lvbihXZWJDb3JlOjpQYXltZW50U2Vz
c2lvbkVycm9yIHNlc3Npb25FcnJvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBheW1lbnRDb29yZGluYXRvckNsaWVudC5oIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xp
ZW50LmgKaW5kZXggZjQzMWE0ZGY1MzlmNjVhNGQ3ZDUxNDNmYTUwMzlmOGM5NGU2ODZlZi4uYjAz
OTM2MzIyNjEzNTQ1MzI1MGJjMmEyYzRkMDk0MjlmZjdhZTdjMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGF5
bWVudENvb3JkaW5hdG9yQ2xpZW50LmgKQEAgLTQyLDkgKzQyLDkgQEAgcHJpdmF0ZToKICAgICB2
b2lkIG9wZW5QYXltZW50U2V0dXAoY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgZG9tYWluTmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikg
b3ZlcnJpZGU7CiAgICAgYm9vbCBzaG93UGF5bWVudFVJKGNvbnN0IFVSTCYsIGNvbnN0IFZlY3Rv
cjxVUkw+JiBsaW5rSWNvblVSTHMsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlv
bihjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlNo
aXBwaW5nTWV0aG9kVXBkYXRlPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbXBsZXRlU2hpcHBp
bmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0
ZT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24o
T3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikgb3ZlcnJpZGU7CisgICAg
dm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFw
cGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcGxl
dGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlw
cGluZ0NvbnRhY3RVcGRhdGU+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgY29tcGxldGVQYXltZW50
TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVw
ZGF0ZT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRTZXNzaW9uKE9wdGlv
bmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYmKSBvdmVycmlkZTsKICAg
ICB2b2lkIGFib3J0UGF5bWVudFNlc3Npb24oKSBvdmVycmlkZTsKICAgICB2b2lkIGNhbmNlbFBh
eW1lbnRTZXNzaW9uKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0b3JD
bGllbnQubW0KaW5kZXggYmI5OTRiMzQ2OWZlMjNhNWJlNmJmMjIyMGU3MTIzZTRhMTI2ZWQ5Yi4u
NWQ4ZTI4NDcyYjA3ZjMzMjEzZDZmMDhiMzQ1YzQxYTM2ZWZmYzY3NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGF5bWVudENvb3JkaW5hdG9y
Q2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YlBheW1lbnRDb29yZGluYXRvckNsaWVudC5tbQpAQCAtNzIsMTUgKzcyLDE1IEBAIHZvaWQgV2Vi
UGF5bWVudENvb3JkaW5hdG9yQ2xpZW50Ojpjb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25z
dCBXZWJDb3JlOjpQYXltCiB7CiB9CiAKLXZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50
Ojpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBw
aW5nTWV0aG9kVXBkYXRlPiYmKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQ6OmNv
bXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlT
aGlwcGluZ01ldGhvZFVwZGF0ZT4mJikKIHsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0
b3JDbGllbnQ6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNv
cmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJikKK3ZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9y
Q2xpZW50Ojpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3Jl
OjpBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJikKIHsKIH0KIAotdm9pZCBXZWJQYXlt
ZW50Q29vcmRpbmF0b3JDbGllbnQ6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRp
b25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiYmKQordm9pZCBXZWJQYXltZW50Q29v
cmRpbmF0b3JDbGllbnQ6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxX
ZWJDb3JlOjpBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+JiYpCiB7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420905</attachid>
            <date>2021-02-18 19:23:38 -0800</date>
            <delta_ts>2021-02-18 22:02:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222002-20210218202337.patch</filename>
            <type>text/plain</type>
            <size>194594</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzMDA0ZGFiZTU0MDZiNmU1Y2U4ZGY2ODRlYWE4ZDVlMDBmNjU2MmJiLi5m
MDFkMDg2MDk2MTRjMWYyMzhkZGVkODk5MGIwOTcyYTdhMjgyMTVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTM3IEBACisyMDIxLTAyLTE4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KKworICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBhZGQgYW4gYG9iamVjdCBkYXRhYCB0byBg
UGF5bWVudERldGFpbHNCYXNlYCBzbyB0aGF0IGRhdGEgc3BlY2lmaWMgdG8gQXBwbGUgUGF5IGNh
biBiZSBwcm92aWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIyMDAyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjMxOTk0Nj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50RGV0YWlsc0Jhc2UuaWRsOgorICAgICAgICAqIE1vZHVsZXMvcGF5bWVudHJl
cXVlc3QvUGF5bWVudERldGFpbHNCYXNlLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L2FwcGxlcGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZTo6ZGVjb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2U6OmRlY29kZUJhc2UpOgorICAgICAg
ICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmg6CisgICAg
ICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaWRsOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlOjplbmNvZGUgY29u
c3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0
ZTo6ZGVjb2RlKTogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNo
aXBwaW5nQ29udGFjdFVwZGF0ZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlT
aGlwcGluZ0NvbnRhY3RVcGRhdGU6OmVuY29kZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU6OmRlY29kZSk6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5pZGw6
CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlOjplbmNv
ZGUgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRo
b2RVcGRhdGU6OmRlY29kZSk6IEFkZGVkLgorICAgICAgICBJbnRyb2R1Y2UgYSBjb21tb24gYmFz
ZSBjbGFzcyBgQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZWAgaW5zdGVhZCBvZiByZXBlYXRpbmcg
bWVtYmVycyBvbgorICAgICAgICBlYWNoIG9mIHRoZSBgQXBwbGVQYXkqVXBkYXRlYCBmaW5hbCBj
bGFzc2VzLgorCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRh
dGVEYXRhLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURl
dGFpbHNVcGRhdGVEYXRhLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlEZXRh
aWxzVXBkYXRlRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5
RGV0YWlsc1VwZGF0ZURhdGE6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheURl
dGFpbHNVcGRhdGVEYXRhOjpkZWNvZGVEYXRhKToKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRy
ZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrQW5kQ2Fu
b25pY2FsaXplRGV0YWlscyk6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6c2V0
dGxlRGV0YWlsc1Byb21pc2UpOgorICAgICAgICBIYXZlIHRoZSBjb21tb24gYmFzZSBjbGFzcyBh
Ym92ZSBleHRlbmQgZnJvbSBgQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YWAsIHdoaWNoIGlzIHVz
ZWQgdG8KKyAgICAgICAgcHVsbCB2YWx1ZXMgb3V0IG9mIHRoZSBgb2JqZWN0IGRhdGFgIGZyb20g
YFBheW1lbnREZXRhaWxzQmFzZWAuIFRoaXMgd2F5LCBib3RoIEFwcGxlIFBheSBKUworICAgICAg
ICBhbmQgUGF5bWVudFJlcXVlc3QgY2FuIGJlIGdpdmVuIHRoZSBzYW1lIGRhdGEgKGFsYmVpdCBp
biBzbGlnaHRseSBkaWZmZXJlbnQgcGxhY2VzKSBhbmQgaGF2ZQorICAgICAgICB0aGUgc2FtZSBj
YXBhYmlsaXRpZXMuCisKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3Iu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5RXJyb3I6OmVuY29kZSBjb25zdCk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlFcnJvcjo6ZGVjb2RlKTogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yLmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3JDb2RlLmg6CisgICAgICAgICogTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmg6CisgICAgICAgICogTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0Lmg6CisgICAg
ICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OnNoaXBwaW5n
TWV0aG9kcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdDo6c2V0U2hpcHBpbmdNZXRob2RzKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5U2Vzc2lvbi5oOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlT
ZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2Vs
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6ZGlkU2VsZWN0U2hp
cHBpbmdNZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6ZmluaXNoQ29udmVydGluZyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkFwcGxlUGF5U2hpcHBpbmdNZXRob2Q6OmVuY29kZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZDo6ZGVjb2RlKTogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudC5o
OgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVj
dGVkRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFNl
bGVjdGVkRXZlbnQ6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnZlcnQpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVw
YXkvUGF5bWVudENvb3JkaW5hdG9yLmg6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9QYXlt
ZW50Q29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudENvb3JkaW5hdG9y
Ojpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
eW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6UGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVBheW1lbnRNZXRob2RT
ZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudENvb3JkaW5hdG9yOjpkaWRTZWxl
Y3RTaGlwcGluZ01ldGhvZCk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29v
cmRpbmF0b3JDbGllbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRIZWFk
ZXJzLmg6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlkYXRv
ci5tbToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlU2hpcHBpbmdNZXRob2QpOgorICAgICAg
ICAoV2ViQ29yZTo6dmFsaWRhdGVTaGlwcGluZ01ldGhvZHMpOgorICAgICAgICAqIE1vZHVsZXMv
YXBwbGVwYXkvUGF5bWVudFNlc3Npb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L1Bh
eW1lbnRTdW1tYXJ5SXRlbXMuaDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L2NvY29hL1Bh
eW1lbnRTdW1tYXJ5SXRlbXNDb2NvYS5tbToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L3Bh
eW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBNb2R1bGVz
L2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udmVydEFuZFZhbGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnZh
bGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Om1lcmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFw
cGxlUGF5UGF5bWVudEhhbmRsZXI6OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQ
YXltZW50SGFuZGxlcjo6Y29tcHV0ZVNoaXBwaW5nTWV0aG9kcyk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21wdXRlVG90YWxBbmRMaW5lSXRlbXMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVFcnJvcnMg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcHV0
ZUFkZHJlc3NFcnJvcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50
SGFuZGxlcjo6Y29tcHV0ZVBheWVyRXJyb3JzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFw
cGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVQYXltZW50TWV0aG9kRXJyb3JzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnNoaXBwaW5nQWRkcmVz
c1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6c2hp
cHBpbmdPcHRpb25VcGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEhh
bmRsZXI6OnBheW1lbnRNZXRob2RVcGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5
UGF5bWVudEhhbmRsZXI6OnJldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVu
dEhhbmRsZXI6OmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKToKKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3Iu
aDoKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja1BheW1lbnRDb29yZGluYXRvcjo6c2hvd1BheW1lbnRVSSk6CisgICAg
ICAgIChXZWJDb3JlOjpNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nTWV0
aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6TW9ja1BheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxl
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1BheW1lbnRDb29yZGluYXRvcjo6Y29tcGxl
dGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYXltZW50
Q29vcmRpbmF0b3I6OmNoYW5nZVNoaXBwaW5nT3B0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudFNlc3Npb24pOgorICAgICAgICAo
V2ViQ29yZTo6TW9ja1BheW1lbnRDb29yZGluYXRvcjo6dXBkYXRlVG90YWxBbmRMaW5lSXRlbXMp
OiBEZWxldGVkLgorICAgICAgICAqIHRlc3RpbmcvTW9ja1BheW1lbnRFcnJvci5oOgorICAgICAg
ICBVc2UgYEFwcGxlUGF5KlVwZGF0ZWAgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdHMgc3RydWN0
dXJlIGluIGFub3RoZXIgb2JqZWN0IChgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OipV
cGRhdGVgKS4KKyAgICAgICAgVXNlIGBBcHBsZVBheUxpbmVJdGVtYCBpbnN0ZWFkIG9mIGR1cGxp
Y2F0aW5nIGl0cyBzdHJ1Y3R1cmUgaW4gYW5vdGhlciBvYmplY3QgKGBBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXNgKS4KKyAgICAgICAgVXNlIGBBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kYCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0cyBzdHJ1Y3R1cmUgaW4g
YW5vdGhlciBvYmplY3QgKGBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdN
ZXRob2RgKS4KKyAgICAgICAgVXNlIGBBcHBsZVBheUVycm9yKmAgaW5zdGVhZCBvZiBkdXBsaWNh
dGluZyBpdHMgc3RydWN0dXJlIGluIGFub3RoZXIgb2JqZWN0IChgQXBwbGVQYXlTZXNzaW9uUGF5
bWVudFJlcXVlc3Q6OlBheW1lbnRFcnJvcjo6KmApLgorCisgICAgICAgICogTW9kdWxlcy9hcHBs
ZXBheS9QYXltZW50TWV0aG9kVXBkYXRlLmg6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9j
b2NvYS9QYXltZW50TWV0aG9kVXBkYXRlQ29jb2EubW06IFJlbW92ZWQuCisgICAgICAgIERvIHRo
ZSBjb252ZXJzaW9uIGZyb20gYEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZWAgdG8gYFBLUGF5
bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlYAorICAgICAgICBpbiB0aGUgVUlQcm9jZXNz
LgorCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRSZXF1ZXN0Lmg6
CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZSk6CisgICAgICAgICogTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmg6CisKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogUGxhdGZv
cm1NYWMuY21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMDItMTggIFphbGFuIEJ1anRh
cyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIERvIG5vdCBjcmVhdGUg
dGhlIGxpbmUgd2l0aCBuZWdhdGl2ZSB3aWR0aCB3aGVuIG5lZ2F0aXZlIGxldHRlciBzcGFjaW5n
IGlzIHByZXNlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWE0MDdmNWM3NGQwMmNmMTZmMzJlZmYwZTE4YTkxMDdl
NTliMzJmNS4uYWY0ODY3MGE4ZGRkY2QyOTNkYmYwYTUwN2U4OTExYjAxNTZjZWM3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw2NyBAQAorMjAyMS0wMi0xOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgW1BheW1lbnQgUmVxdWVzdF0gYWRkIGFuIGBvYmplY3QgZGF0
YWAgdG8gYFBheW1lbnREZXRhaWxzQmFzZWAgc28gdGhhdCBkYXRhIHNwZWNpZmljIHRvIEFwcGxl
IFBheSBjYW4gYmUgcHJvdmlkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMjAwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzIzMTk5NDY+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICAqIFBsYXRmb3JtL2Nv
Y29hL1BheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyLmg6CisgICAgICAgICogUGxhdGZvcm0v
Y29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIubW06CisgICAgICAgIChXZWJLaXQ6
OnRvUEtQYXltZW50RXJyb3JDb2RlKToKKyAgICAgICAgKFdlYktpdDo6dG9OU0Vycm9yKToKKyAg
ICAgICAgKFdlYktpdDo6dG9OU0Vycm9ycyk6CisgICAgICAgIChXZWJLaXQ6OnRvUEtTaGlwcGlu
Z01ldGhvZHMpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRl
cjo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5
bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNv
bXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24pOgorICAgICAgICAqIFBsYXRmb3JtL2NvY29h
L1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbToKKyAgICAgICAgKHRvU2hpcHBpbmdN
ZXRob2QpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAq
IFNoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBTaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuaDoK
KyAgICAgICAgKiBTaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxldGVT
aGlwcGluZ01ldGhvZFNlbGVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1lbnRDb29y
ZGluYXRvclByb3h5Ojpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5Ojpjb21wbGV0ZVBheW1lbnRNZXRo
b2RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94
eTo6cHJlc2VudGVyRGlkU2VsZWN0U2hpcHBpbmdNZXRob2QpOgorICAgICAgICAqIFNoYXJlZC9B
cHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29hLmg6CisgICAgICAg
ICogU2hhcmVkL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OnRvUEtTaGlwcGluZ01ldGhvZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybVBheW1lbnRSZXF1ZXN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtQ29t
cGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1l
bnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBsYXRm
b3JtQ29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6Zmlu
aXNoQ3JlYXRpbmcpOiBEZWxldGVkLgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29j
b2EubW06CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudEF1dGhv
cml6YXRpb25SZXN1bHQ+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Pjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+Pj46OmVuY29kZSk6IEFkZGVk
LgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJv
cj4+Pjo6ZGVjb2RlKTogQWRkZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6UGF5bWVudEVycm9yPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpQYXltZW50RXJyb3I+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+OjplbmNv
ZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1l
bnRNZXRob2RVcGRhdGU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD46OmVu
Y29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6
VG90YWxBbmRMaW5lSXRlbXM+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVt
cz46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+OjpkZWNvZGUp
OiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNoaXBwaW5n
TWV0aG9kVXBkYXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT46OmRlY29kZSk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IubWVzc2Fn
ZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0
b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRv
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVT
aGlwcGluZ01ldGhvZFNlbGVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1lbnRDb29y
ZGluYXRvcjo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1lbnRDb29yZGluYXRvcjo6ZGlkU2VsZWN0U2hp
cHBpbmdNZXRob2QpOgorICAgICAgICBVc2UgYEFwcGxlUGF5KlVwZGF0ZWAgaW5zdGVhZCBvZiBk
dXBsaWNhdGluZyBpdHMgc3RydWN0dXJlIGluIGFub3RoZXIgb2JqZWN0IChgQXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3Q6OipVcGRhdGVgKS4KKyAgICAgICAgVXNlIGBBcHBsZVBheVNoaXBw
aW5nTWV0aG9kYCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0cyBzdHJ1Y3R1cmUgaW4gYW5vdGhl
ciBvYmplY3QgKGBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Rg
KS4KKyAgICAgICAgVXNlIGBBcHBsZVBheUVycm9yKmAgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBp
dHMgc3RydWN0dXJlIGluIGFub3RoZXIgb2JqZWN0IChgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3Q6OlBheW1lbnRFcnJvcjo6KmApLgorCiAyMDIxLTAyLTE4ICBKdWxpYW4gR29uemFsZXog
IDxqdWxpYW5fYV9nb256YWxlekBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggaW4gSVBDOjpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPFNlY0tleWNoYWluSXRlbVJlZj4mIHJl
c3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAzNGRhMzllMWI5ZDljZTc0YzY3
NDZkMzViYTY5NjljMzUyMjZlNTdjLi5iOTU0MDI5YTQ2YzBiMWY0MzY5OWQ2YjM1ZjI5ZDAyZDVk
MDgxYjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MjEtMDItMTggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtQ
YXltZW50IFJlcXVlc3RdIGFkZCBhbiBgb2JqZWN0IGRhdGFgIHRvIGBQYXltZW50RGV0YWlsc0Jh
c2VgIHNvIHRoYXQgZGF0YSBzcGVjaWZpYyB0byBBcHBsZSBQYXkgY2FuIGJlIHByb3ZpZGVkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMDIKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcyMzE5OTQ2PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRp
bSBIb3J0b24uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0
b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0
b3JDbGllbnQubW06CisgICAgICAgIChXZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQ6OmNvbXBs
ZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViUGF5bWVudENvb3JkaW5h
dG9yQ2xpZW50Ojpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbik6CisgICAgICAgIChX
ZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQ6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlv
bik6CisgICAgICAgIFVzZSBgQXBwbGVQYXkqVXBkYXRlYCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5n
IGl0cyBzdHJ1Y3R1cmUgaW4gYW5vdGhlciBvYmplY3QgKGBBcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdDo6KlVwZGF0ZWApLgorCiAyMDIxLTAyLTE4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFBsdW1iIGFuIE9wdGlvbmFsPFBhZ2VJZGVudGlm
aWVyPiB0aHJvdWdoIFdlYlBhc3RlYm9hcmRQcm94eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggYmU5MGQ0M2QwYzEyOGIxNGVkNjMwOTUy
NTJmNGFmYTRhNDAxNmUwNS4uZDJmNmVjYzFiMGY3ZGU0YWQzOTJlZGRjM2QxNWM0NzAxMTcwMDcw
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CkBAIC0yNCw2ICsyNCw4IEBAICQoUFJPSkVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzLm1ha2UKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvYWlycGxheS9XZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJp
bGl0eUV2ZW50LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNh
bmNlbEV2ZW50LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNv
bnRhY3RGaWVsZC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlE
ZXRhaWxzVXBkYXRlQmFzZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlFcnJvci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlFcnJvckNvZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxl
UGF5RXJyb3JDb250YWN0RmllbGQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDhjMWYyNWZjMTcyZmVkYjc3YzBhNzQ3YTEyYTlk
YjBhOTA4NTdjOWQuLjJjYTYzYTYxZjkzMmRiNmQzZjI5ZDkwNzE2MDc2M2JhMjI2YmNjZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBA
IC04Niw2ICs4NiwxMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0FwcGxlUGF5Q2FuY2VsRXZlbnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5Q2FuY2VsRXZlbnQuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcHBsZVBheUNvbnRhY3RGaWVsZC5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQ
YXlDb250YWN0RmllbGQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmNwcAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlE
ZXRhaWxzVXBkYXRlRGF0YS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5RXJyb3IuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5RXJyb3IuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcHBsZVBheUVy
cm9yQ29kZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGE4ZDg3ZWUxOTJl
YTdkYjhlMTcxN2FjNDBlNzAzODYwNmQ1NTM1NmIuLjE2MjY2OGU3NzEyYzVjMWEyZmE4NWU4MWQ3
NzZjYzEzZDYxMGY5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTMsNiAr
NTMsOCBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9haXJw
bGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDYW5jZWxFdmVudC5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5pZGwgXAorICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmlk
bCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0
ZURhdGEuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJv
ci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29k
ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29u
dGFjdEZpZWxkLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3OTYwNjcx
MjhjNTY3NzU5ZTNkNGVjZWJiZTkzMGQzNDMwZjQ5ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaApA
QCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
QVBQTEVfUEFZKQorCisjaW5jbHVkZSAiQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oIgorI2lu
Y2x1ZGUgIkFwcGxlUGF5TGluZUl0ZW0uaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UgOiBw
dWJsaWMgQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSB7CisgICAgQXBwbGVQYXlMaW5lSXRlbSBu
ZXdUb3RhbDsKKyAgICBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4gbmV3TGluZUl0ZW1zOworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0Owor
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxBcHBsZVBheURldGFp
bHNVcGRhdGVCYXNlPiBkZWNvZGUoRGVjb2RlciYpOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlQmFzZShEZWNvZGVyJik7Cit9Owor
Cit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNl
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBBcHBsZVBheURldGFpbHNV
cGRhdGVEYXRhOjplbmNvZGUoZW5jb2Rlcik7CisgICAgZW5jb2RlciA8PCBuZXdUb3RhbDsKKyAg
ICBlbmNvZGVyIDw8IG5ld0xpbmVJdGVtczsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4K
K09wdGlvbmFsPEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2U+IEFwcGxlUGF5RGV0YWlsc1VwZGF0
ZUJhc2U6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIEFwcGxlUGF5RGV0YWlsc1Vw
ZGF0ZUJhc2UgcmVzdWx0OworICAgIGlmICghcmVzdWx0LmRlY29kZUJhc2UoZGVjb2RlcikpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZTo6ZGVj
b2RlQmFzZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmICghZGVjb2RlRGF0YShkZWNvZGVy
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisjZGVmaW5lIERFQ09ERShuYW1lLCB0eXBlKSBc
CisgICAgT3B0aW9uYWw8dHlwZT4gbmFtZTsgXAorICAgIGRlY29kZXIgPj4gbmFtZTsgXAorICAg
IGlmICghbmFtZSkgXAorICAgICAgICByZXR1cm4gZmFsc2U7IFwKKyAgICB0aGlzLT5uYW1lID0g
V1RGTW92ZSgqbmFtZSk7IFwKKworICAgIERFQ09ERShuZXdUb3RhbCwgQXBwbGVQYXlMaW5lSXRl
bSkKKyAgICBERUNPREUobmV3TGluZUl0ZW1zLCBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4pCisK
KyN1bmRlZiBERUNPREUKKworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFz
ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjE1ZTg2ZGVmYzIyZDI5ZTNhYjlhMDRkZWQ2OTY3YTg4YjFkNWZm
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5pZGwKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K1sKKyAgICBDb25kaXRpb25hbD1BUFBMRV9QQVksCitdIGRpY3Rpb25hcnkgQXBwbGVQYXlEZXRh
aWxzVXBkYXRlQmFzZSB7CisgICAgcmVxdWlyZWQgQXBwbGVQYXlMaW5lSXRlbSBuZXdUb3RhbDsK
KyAgICBzZXF1ZW5jZTxBcHBsZVBheUxpbmVJdGVtPiBuZXdMaW5lSXRlbXM7Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRh
dGVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWls
c1VwZGF0ZURhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MDc4Zjk1NzIxNDNiZGUzODBmZDRlNDRhYmM0ODMx
OGY4Yzc5MmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKworI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCisjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0FwcGxlUGF5RGV0
YWlsc1VwZGF0ZURhdGFBZGRpdGlvbnMuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3N0cnVjdCBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhIHsKKyNpZiBkZWZpbmVkKEFwcGxl
UGF5RGV0YWlsc1VwZGF0ZURhdGFBZGRpdGlvbnNfbWVtYmVycykKKyAgICBBcHBsZVBheURldGFp
bHNVcGRhdGVEYXRhQWRkaXRpb25zX21lbWJlcnMKKyNlbmRpZgorCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhPiBk
ZWNvZGUoRGVjb2RlciYpOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gV0FSTl9VTlVT
RURfUkVUVVJOIGJvb2wgZGVjb2RlRGF0YShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPgordm9pZCBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKK3sKKyNpZiBkZWZpbmVkKEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURh
dGFBZGRpdGlvbnNfZW5jb2RlKQorICAgIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGFBZGRpdGlv
bnNfZW5jb2RlCisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmNvZGVyKTsKKyNlbmRpZgorfQor
Cit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8QXBwbGVQYXlEZXRhaWxzVXBkYXRl
RGF0YT4gQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIp
Cit7CisgICAgQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSByZXN1bHQ7CisgICAgaWYgKCFyZXN1
bHQuZGVjb2RlRGF0YShkZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorYm9vbCBBcHBs
ZVBheURldGFpbHNVcGRhdGVEYXRhOjpkZWNvZGVEYXRhKERlY29kZXImIGRlY29kZXIpCit7Cisj
ZGVmaW5lIERFQ09ERShuYW1lLCB0eXBlKSBcCisgICAgT3B0aW9uYWw8dHlwZT4gbmFtZTsgXAor
ICAgIGRlY29kZXIgPj4gbmFtZTsgXAorICAgIGlmICghbmFtZSkgXAorICAgICAgICByZXR1cm4g
ZmFsc2U7IFwKKyAgICB0aGlzLT5uYW1lID0gV1RGTW92ZSgqbmFtZSk7IFwKKworI2lmIGRlZmlu
ZWQoQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YUFkZGl0aW9uc19kZWNvZGVEYXRhKQorICAgIEFw
cGxlUGF5RGV0YWlsc1VwZGF0ZURhdGFBZGRpdGlvbnNfZGVjb2RlRGF0YQorI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0oZGVjb2Rlcik7CisjZW5kaWYKKworI3VuZGVmIERFQ09ERQorCisgICAgcmV0
dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShBUFBMRV9QQVkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzE4ODE0
MjA1MzIyZjFmM2UyOTQyZDNiOTUyYTQzMjVmMzY0NzhhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmlk
bApAQCAtMCwwICsxLDI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPUFQUExF
X1BBWSwKK10gZGljdGlvbmFyeSBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhIHsKK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjc3NjdjMzBhZDg3Yjc2NmRjZjhlZmFmNjM0YmRk
MTRjMzZkZmQ4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3IuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJBcHBsZVBheUVycm9yLmgiCi0KLSNpZiBFTkFCTEUoQVBQTEVfUEFZKQot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVJlZjxBcHBsZVBheUVycm9yPiBBcHBsZVBheUVycm9y
OjpjcmVhdGUoQ29kZSBjb2RlLCBPcHRpb25hbDxDb250YWN0RmllbGQ+IGNvbnRhY3RGaWVsZCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFwcGxl
UGF5RXJyb3IgeyBjb2RlLCBjb250YWN0RmllbGQsIG1lc3NhZ2UgfSk7Ci19Ci0KLUFwcGxlUGF5
RXJyb3I6OkFwcGxlUGF5RXJyb3IoQ29kZSBjb2RlLCBPcHRpb25hbDxDb250YWN0RmllbGQ+IGNv
bnRhY3RGaWVsZCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQotICAgIDogbV9jb2RlIHsgY29kZSB9
Ci0gICAgLCBtX2NvbnRhY3RGaWVsZCB7IGNvbnRhY3RGaWVsZCB9Ci0gICAgLCBtX21lc3NhZ2Ug
eyBtZXNzYWdlIH0KLXsKLX0KLQotQXBwbGVQYXlFcnJvcjo6fkFwcGxlUGF5RXJyb3IoKSA9IGRl
ZmF1bHQ7Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L0FwcGxlUGF5RXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlFcnJvci5oCmluZGV4IDMzMWRlMTJjNDU5NjhlMGViNDA3NDZmMDNkOWNhOGIx
ZWJlNTAyNDguLjI1OWIyMGY0NDQyNmY3ZjExNjIzNWQ1NTZkMjY3ZjE4NmRlODVjNGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvci5oCkBAIC0y
NywzNyArMjcsNzYgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKLSNpbmNsdWRlICJBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oIgorI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3JDb2Rl
LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oIgorI2luY2x1ZGUgPHd0
Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcHBsZVBheUVycm9yIGZp
bmFsIDogcHVibGljIFJlZkNvdW50ZWQ8QXBwbGVQYXlFcnJvcj4gewogcHVibGljOgotICAgIHVz
aW5nIENvZGUgPSBQYXltZW50RXJyb3I6OkNvZGU7Ci0gICAgdXNpbmcgQ29udGFjdEZpZWxkID0g
UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ7CisgICAgc3RhdGljIFJlZjxBcHBsZVBheUVycm9y
PiBjcmVhdGUoQXBwbGVQYXlFcnJvckNvZGUgY29kZSwgT3B0aW9uYWw8QXBwbGVQYXlFcnJvckNv
bnRhY3RGaWVsZD4gY29udGFjdEZpZWxkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcHBsZVBheUVycm9yKGNvZGUsIGNvbnRhY3RG
aWVsZCwgbWVzc2FnZSkpOworICAgIH0KIAotICAgIHN0YXRpYyBSZWY8QXBwbGVQYXlFcnJvcj4g
Y3JlYXRlKENvZGUsIE9wdGlvbmFsPENvbnRhY3RGaWVsZD4sIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSk7Ci0gICAgdmlydHVhbCB+QXBwbGVQYXlFcnJvcigpOworICAgIHZpcnR1YWwgfkFwcGxlUGF5
RXJyb3IoKSA9IGRlZmF1bHQ7CiAKLSAgICBDb2RlIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2Nv
ZGU7IH0KLSAgICB2b2lkIHNldENvZGUoQ29kZSBjb2RlKSB7IG1fY29kZSA9IGNvZGU7IH0KKyAg
ICBBcHBsZVBheUVycm9yQ29kZSBjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlOyB9CisgICAg
dm9pZCBzZXRDb2RlKEFwcGxlUGF5RXJyb3JDb2RlIGNvZGUpIHsgbV9jb2RlID0gY29kZTsgfQog
Ci0gICAgT3B0aW9uYWw8Q29udGFjdEZpZWxkPiBjb250YWN0RmllbGQoKSBjb25zdCB7IHJldHVy
biBtX2NvbnRhY3RGaWVsZDsgfQotICAgIHZvaWQgc2V0Q29udGFjdEZpZWxkKE9wdGlvbmFsPENv
bnRhY3RGaWVsZD4gY29udGFjdEZpZWxkKSB7IG1fY29udGFjdEZpZWxkID0gY29udGFjdEZpZWxk
OyB9CisgICAgT3B0aW9uYWw8QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZD4gY29udGFjdEZpZWxk
KCkgY29uc3QgeyByZXR1cm4gbV9jb250YWN0RmllbGQ7IH0KKyAgICB2b2lkIHNldENvbnRhY3RG
aWVsZChPcHRpb25hbDxBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkPiBjb250YWN0RmllbGQpIHsg
bV9jb250YWN0RmllbGQgPSBjb250YWN0RmllbGQ7IH0KIAogICAgIFN0cmluZyBtZXNzYWdlKCkg
Y29uc3QgeyByZXR1cm4gbV9tZXNzYWdlOyB9CiAgICAgdm9pZCBzZXRNZXNzYWdlKFN0cmluZyYm
IG1lc3NhZ2UpIHsgbV9tZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKTsgfQogCi1wcml2YXRlOgot
ICAgIEFwcGxlUGF5RXJyb3IoQ29kZSwgT3B0aW9uYWw8Q29udGFjdEZpZWxkPiwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKTsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFJlZlB0
cjxBcHBsZVBheUVycm9yPiBkZWNvZGUoRGVjb2RlciYpOwogCi0gICAgQ29kZSBtX2NvZGU7Ci0g
ICAgT3B0aW9uYWw8Q29udGFjdEZpZWxkPiBtX2NvbnRhY3RGaWVsZDsKK3ByaXZhdGU6CisgICAg
QXBwbGVQYXlFcnJvcihBcHBsZVBheUVycm9yQ29kZSBjb2RlLCBPcHRpb25hbDxBcHBsZVBheUVy
cm9yQ29udGFjdEZpZWxkPiBjb250YWN0RmllbGQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKKyAg
ICAgICAgOiBtX2NvZGUoY29kZSkKKyAgICAgICAgLCBtX2NvbnRhY3RGaWVsZChjb250YWN0Rmll
bGQpCisgICAgICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCisgICAgeworICAgIH0KKworICAgIEFw
cGxlUGF5RXJyb3JDb2RlIG1fY29kZTsKKyAgICBPcHRpb25hbDxBcHBsZVBheUVycm9yQ29udGFj
dEZpZWxkPiBtX2NvbnRhY3RGaWVsZDsKICAgICBTdHJpbmcgbV9tZXNzYWdlOwogfTsKIAordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQXBwbGVQYXlFcnJvcjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX2NvZGU7CisgICAgZW5jb2RlciA8
PCBtX2NvbnRhY3RGaWVsZDsKKyAgICBlbmNvZGVyIDw8IG1fbWVzc2FnZTsKIH0KIAordGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4KK1JlZlB0cjxBcHBsZVBheUVycm9yPiBBcHBsZVBheUVycm9yOjpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyNkZWZpbmUgREVDT0RFKG5hbWUsIHR5cGUpIFwK
KyAgICBPcHRpb25hbDx0eXBlPiBuYW1lOyBcCisgICAgZGVjb2RlciA+PiBuYW1lOyBcCisgICAg
aWYgKCFuYW1lKSBcCisgICAgICAgIHJldHVybiBudWxscHRyOyBcCisKKyAgICBERUNPREUoY29k
ZSwgQXBwbGVQYXlFcnJvckNvZGUpCisgICAgREVDT0RFKGNvbnRhY3RGaWVsZCwgT3B0aW9uYWw8
QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZD4pCisgICAgREVDT0RFKG1lc3NhZ2UsIFN0cmluZykK
KworI3VuZGVmIERFQ09ERQorCisgICAgcmV0dXJuIEFwcGxlUGF5RXJyb3I6OmNyZWF0ZShXVEZN
b3ZlKCpjb2RlKSwgV1RGTW92ZSgqY29udGFjdEZpZWxkKSwgV1RGTW92ZSgqbWVzc2FnZSkpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29kZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29kZS5oCmluZGV4IDJmYWVlZjdk
Yzg3ZTBkYmQyZDhiZGJjNWU4NzZhMjExYjg1ZTZmNmIuLjg3YzYwMTVlMzFjOTgxOWI1OWNlNDIx
ZTQyYjJlODMxZjIxMzlhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlFcnJvckNvZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5RXJyb3JDb2RlLmgKQEAgLTI3LDEyICsyNywzMSBAQAogCiAjaWYgRU5B
QkxFKEFQUExFX1BBWSkKIAotI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11
c2luZyBBcHBsZVBheUVycm9yQ29kZSA9IFBheW1lbnRFcnJvcjo6Q29kZTsKK2VudW0gY2xhc3Mg
QXBwbGVQYXlFcnJvckNvZGUgeworICAgIFVua25vd24sCisgICAgU2hpcHBpbmdDb250YWN0SW52
YWxpZCwKKyAgICBCaWxsaW5nQ29udGFjdEludmFsaWQsCisgICAgQWRkcmVzc1Vuc2VydmljZWFi
bGUsCit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0
ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb2RlPiB7
CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6QXBwbGVQ
YXlFcnJvckNvZGUsCisgICAgICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb2RlOjpVbmtub3du
LAorICAgICAgICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29kZTo6U2hpcHBpbmdDb250YWN0SW52
YWxpZCwKKyAgICAgICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvZGU6OkJpbGxpbmdDb250YWN0
SW52YWxpZCwKKyAgICAgICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvZGU6OkFkZHJlc3NVbnNl
cnZpY2VhYmxlCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCiAjZW5kaWYgLy8g
RU5BQkxFKEFQUExFX1BBWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmgKaW5kZXggZjZhNzBkMDcwN2Ni
OWY1YWU1N2I5MGQyY2M0MWZmMzBhYjdjYTExMC4uMTY0ZGJmYWIyODIyN2M1NGU4Y2QyZDI5NzU1
N2YwMjdlOWVlNmNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9BcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmgKQEAgLTI3LDEyICsyNyw0OSBA
QAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAotI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi11c2luZyBBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkID0gUGF5bWVudEVycm9y
OjpDb250YWN0RmllbGQ7CitlbnVtIGNsYXNzIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQgewor
ICAgIFBob25lTnVtYmVyLAorICAgIEVtYWlsQWRkcmVzcywKKyAgICBOYW1lLAorICAgIFBob25l
dGljTmFtZSwKKyAgICBQb3N0YWxBZGRyZXNzLAorICAgIEFkZHJlc3NMaW5lcywKKyAgICBTdWJM
b2NhbGl0eSwKKyAgICBMb2NhbGl0eSwKKyAgICBQb3N0YWxDb2RlLAorICAgIFN1YkFkbWluaXN0
cmF0aXZlQXJlYSwKKyAgICBBZG1pbmlzdHJhdGl2ZUFyZWEsCisgICAgQ291bnRyeSwKKyAgICBD
b3VudHJ5Q29kZSwKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorbmFtZXNwYWNlIFdU
RiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6QXBwbGVQYXlFcnJv
ckNvbnRhY3RGaWVsZD4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAg
IFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQsCisgICAgICAgIFdlYkNvcmU6OkFw
cGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlBob25lTnVtYmVyLAorICAgICAgICBXZWJDb3JlOjpB
cHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpFbWFpbEFkZHJlc3MsCisgICAgICAgIFdlYkNvcmU6
OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6Ok5hbWUsCisgICAgICAgIFdlYkNvcmU6OkFwcGxl
UGF5RXJyb3JDb250YWN0RmllbGQ6OlBob25ldGljTmFtZSwKKyAgICAgICAgV2ViQ29yZTo6QXBw
bGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UG9zdGFsQWRkcmVzcywKKyAgICAgICAgV2ViQ29yZTo6
QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6QWRkcmVzc0xpbmVzLAorICAgICAgICBXZWJDb3Jl
OjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpTdWJMb2NhbGl0eSwKKyAgICAgICAgV2ViQ29y
ZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6TG9jYWxpdHksCisgICAgICAgIFdlYkNvcmU6
OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlBvc3RhbENvZGUsCisgICAgICAgIFdlYkNvcmU6
OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlN1YkFkbWluaXN0cmF0aXZlQXJlYSwKKyAgICAg
ICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6QWRtaW5pc3RyYXRpdmVBcmVh
LAorICAgICAgICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpDb3VudHJ5LAor
ICAgICAgICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpDb3VudHJ5Q29kZQor
ICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwogI2VuZGlmIC8vIEVOQUJMRShBUFBM
RV9QQVkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxl
UGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oCmluZGV4IDQ4ZDRi
NzdiZWQxODZkMjg2NGY5ZWI1ZmExYjY3MDZhZGQ2MTgzMmIuLjAzZDE3ZDgxOGQ1M2RlZGI3MThi
ZDU4NzFiN2Q2YTY5NmNjY2M1MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJl
c3VsdC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAogI2luY2x1
ZGUgIkFwcGxlUGF5RXJyb3IuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRh
dGUuaAppbmRleCBkYjQ0NjY0YTVjY2YzMjM0Y2Y0ZWU2NWI5NTE0OWQzZTU0YTIwZTc1Li4yOTQ2
Y2NjODk5NDRhODIxYzg5ZGQ3ZDhjY2UxOWIzZmQ3MGUzMjk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0aG9k
VXBkYXRlLmgKQEAgLTI3LDE2ICsyNyw1NCBAQAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAot
I2luY2x1ZGUgIkFwcGxlUGF5TGluZUl0ZW0uaCIKKyNpbmNsdWRlICJBcHBsZVBheURldGFpbHNV
cGRhdGVCYXNlLmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IEFwcGxlUGF5
UGF5bWVudE1ldGhvZFVwZGF0ZSB7Ci0gICAgQXBwbGVQYXlMaW5lSXRlbSBuZXdUb3RhbDsKLSAg
ICBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4gbmV3TGluZUl0ZW1zOworc3RydWN0IEFwcGxlUGF5
UGF5bWVudE1ldGhvZFVwZGF0ZSBmaW5hbCA6IHB1YmxpYyBBcHBsZVBheURldGFpbHNVcGRhdGVC
YXNlIHsKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0lOU1RBTExNRU5UUykKICAgICBTdHJpbmcgaW5z
dGFsbG1lbnRHcm91cElkZW50aWZpZXI7CisjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWV9JTlNU
QUxMTUVOVFMpCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFs
PEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKK3Rl
bXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZTo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgQXBwbGVQYXlEZXRhaWxzVXBk
YXRlQmFzZTo6ZW5jb2RlKGVuY29kZXIpOworI2lmIEVOQUJMRShBUFBMRV9QQVlfSU5TVEFMTE1F
TlRTKQorICAgIGVuY29kZXIgPDwgaW5zdGFsbG1lbnRHcm91cElkZW50aWZpZXI7CisjZW5kaWYg
Ly8gRU5BQkxFKEFQUExFX1BBWV9JTlNUQUxMTUVOVFMpCiB9CiAKK3RlbXBsYXRlPGNsYXNzIERl
Y29kZXI+CitPcHRpb25hbDxBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+IEFwcGxlUGF5UGF5
bWVudE1ldGhvZFVwZGF0ZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgQXBwbGVQ
YXlQYXltZW50TWV0aG9kVXBkYXRlIHJlc3VsdDsKKworICAgIGlmICghcmVzdWx0LmRlY29kZUJh
c2UoZGVjb2RlcikpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyNkZWZpbmUgREVD
T0RFKG5hbWUsIHR5cGUpIFwKKyAgICBPcHRpb25hbDx0eXBlPiBuYW1lOyBcCisgICAgZGVjb2Rl
ciA+PiBuYW1lOyBcCisgICAgaWYgKCFuYW1lKSBcCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7IFwKKyAgICByZXN1bHQubmFtZSA9IFdURk1vdmUoKm5hbWUpOyBcCisKKyNpZiBFTkFCTEUo
QVBQTEVfUEFZX0lOU1RBTExNRU5UUykKKyAgICBERUNPREUoaW5zdGFsbG1lbnRHcm91cElkZW50
aWZpZXIsIFN0cmluZykKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZX0lOU1RBTExNRU5UUykK
KworI3VuZGVmIERFQ09ERQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmlkbAppbmRleCBj
MDY5MTBkN2JmZGM1YWIxMDRmMTM5MDk5NzFlMzU5MTA2OTVhZjMzLi4yOGU4N2IxOGQxYWE3Y2M2
MzI2NWE0OWIwZmJhZjZiY2NhZWJkOGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaWRs
CkBAIC0yNSw4ICsyNSw2IEBACiAKIFsKICAgICBDb25kaXRpb25hbD1BUFBMRV9QQVksCi1dIGRp
Y3Rpb25hcnkgQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlIHsKLSAgICByZXF1aXJlZCBBcHBs
ZVBheUxpbmVJdGVtIG5ld1RvdGFsOwotICAgIHNlcXVlbmNlPEFwcGxlUGF5TGluZUl0ZW0+IG5l
d0xpbmVJdGVtczsKK10gZGljdGlvbmFyeSBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUgOiBB
cHBsZVBheURldGFpbHNVcGRhdGVCYXNlIHsKICAgICBbQ29uZGl0aW9uYWw9QVBQTEVfUEFZX0lO
U1RBTExNRU5UU10gRE9NU3RyaW5nIGluc3RhbGxtZW50R3JvdXBJZGVudGlmaWVyOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50
UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1l
bnRSZXF1ZXN0LmgKaW5kZXggM2YwYjY2ZjE3OTM3YWE0MWI0ZWM0ZmQ4MWQ3OGE4MGEwODY3YWI5
Yi4uYjc1MjU2MTA1YzFjM2M0NDY2MTI1YzZlZThkNzRiZDk5ZTA2ZTY2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRSZXF1ZXN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRSZXF1
ZXN0LmgKQEAgLTMzLDYgKzMzLDEwIEBACiAjaW5jbHVkZSAiQXBwbGVQYXlTZXNzaW9uUGF5bWVu
dFJlcXVlc3QuaCIKICNpbmNsdWRlICJBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmgiCiAKKyNpZiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9BcHBsZVBh
eVBheW1lbnRSZXF1ZXN0QWRkaXRpb25zLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBzdHJ1Y3QgQXBwbGVQYXlQYXltZW50UmVxdWVzdCA6IEFwcGxlUGF5UmVxdWVzdEJhc2Ug
ewpAQCAtNDUsNiArNDksMTAgQEAgc3RydWN0IEFwcGxlUGF5UGF5bWVudFJlcXVlc3QgOiBBcHBs
ZVBheVJlcXVlc3RCYXNlIHsKIAogICAgIEFwcGxlUGF5TGluZUl0ZW0gdG90YWw7CiAgICAgT3B0
aW9uYWw8VmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+PiBsaW5lSXRlbXM7CisKKyNpZiBkZWZpbmVk
KEFwcGxlUGF5UGF5bWVudFJlcXVlc3RBZGRpdGlvbnNfbWVtYmVycykKKyAgICBBcHBsZVBheVBh
eW1lbnRSZXF1ZXN0QWRkaXRpb25zX21lbWJlcnMKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5j
cHAKaW5kZXggNzI3MGIyMDRlZDc4ZDFjYzRmZGI4ZjRhZGYyOGEyNmVhYjIxNjllMy4uNTJhZWZm
NjE4MjExMjJhZDEzMzM4ZjJlMDIyMTZiZmVjY2NkNTliYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3BwCkBAIC0z
MSw2ICszMSwxMCBAQAogI2luY2x1ZGUgIlBheW1lbnRDb29yZGluYXRvci5oIgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCisjaWYgVVNFKEFQUExFX0lO
VEVSTkFMX1NESykKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvQXBwbGVQYXlSZXF1ZXN0QmFz
ZUFkZGl0aW9ucy5jcHA+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMg
Ym9vbCByZXF1aXJlc1N1cHBvcnRlZE5ldHdvcmtzKHVuc2lnbmVkIHZlcnNpb24sIGNvbnN0IEFw
cGxlUGF5UmVxdWVzdEJhc2UmIHJlcXVlc3QpCkBAIC0xMTQsNiArMTE4LDEwIEBAIEV4Y2VwdGlv
bk9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGUoRG9j
dW1lbnQmIGRvY3VtZW50CiAgICAgfQogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKEFwcGxlUGF5UmVx
dWVzdEJhc2VBZGRpdGlvbnNfY29udmVydEFuZFZhbGlkYXRlX3JlcXVlc3QpCisgICAgQXBwbGVQ
YXlSZXF1ZXN0QmFzZUFkZGl0aW9uc19jb252ZXJ0QW5kVmFsaWRhdGVfcmVxdWVzdAorI2VuZGlm
CisKICAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5oCmluZGV4IDMzZDE2
YTc1MTBmMDczZWMzZDg1YmZiYmU0NWRjNDYwYzk1OTlmNGMuLjMyMGE3MzYxZTMwNzQzNzA2NWE3
NGNiYmViODNkNzZlZjdlOGJiNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5oCkBAIC0zMiw2ICszMiwxMCBAQAogI2lu
Y2x1ZGUgIkFwcGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5LmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlQ
YXltZW50Q29udGFjdC5oIgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRl
IDxXZWJLaXRBZGRpdGlvbnMvQXBwbGVQYXlSZXF1ZXN0QmFzZUFkZGl0aW9ucy5oPgorI2VuZGlm
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CkBAIC01NCw2ICs1OCwx
MCBAQCBzdHJ1Y3QgQXBwbGVQYXlSZXF1ZXN0QmFzZSB7CiAjaWYgRU5BQkxFKEFQUExFX1BBWV9J
TlNUQUxMTUVOVFMpCiAgICAgT3B0aW9uYWw8QXBwbGVQYXlJbnN0YWxsbWVudENvbmZpZ3VyYXRp
b24+IGluc3RhbGxtZW50Q29uZmlndXJhdGlvbjsKICNlbmRpZgorCisjaWYgZGVmaW5lZChBcHBs
ZVBheVJlcXVlc3RCYXNlQWRkaXRpb25zX21lbWJlcnMpCisgICAgQXBwbGVQYXlSZXF1ZXN0QmFz
ZUFkZGl0aW9uc19tZW1iZXJzCisjZW5kaWYKIH07CiAKIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGUoRG9jdW1lbnQmLCB1bnNpZ25l
ZCB2ZXJzaW9uLCBBcHBsZVBheVJlcXVlc3RCYXNlJiwgY29uc3QgUGF5bWVudENvb3JkaW5hdG9y
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vz
c2lvbi5jcHAKaW5kZXggMjg5NDY5MjFmOWQxYTE2Y2M4NDBjZTMzYTNiNGI3Y2FkMzk1ZjM2OS4u
OGU2NGYzZmQ3YTJjMGEwNTljYWM5MDE4YWU5NTkwN2EzYzEzOGRmZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcApAQCAtMjks
NiArMjksOCBAQAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKICNpbmNsdWRlICJBcHBsZVBheUNh
bmNlbEV2ZW50LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlFcnJvckNvZGUuaCIKKyNpbmNsdWRlICJB
cHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlMaW5lSXRlbS5o
IgogI2luY2x1ZGUgIkFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaCIKICNpbmNs
dWRlICJBcHBsZVBheVBheW1lbnRBdXRob3JpemVkRXZlbnQuaCIKQEAgLTU2LDcgKzU4LDYgQEAK
ICNpbmNsdWRlICJQYXltZW50Q29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJQYXltZW50TWVyY2hh
bnRTZXNzaW9uLmgiCiAjaW5jbHVkZSAiUGF5bWVudE1ldGhvZC5oIgotI2luY2x1ZGUgIlBheW1l
bnRNZXRob2RVcGRhdGUuaCIKICNpbmNsdWRlICJQYXltZW50UmVxdWVzdFZhbGlkYXRvci5oIgog
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTY0
LDE3ICs2NSwxMSBAQAogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVk
ZSA8d3RmL1J1bkxvb3AuaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgdm9pZCBm
aW5pc2hDb252ZXJ0aW5nKFBheW1lbnRNZXRob2RVcGRhdGUmIGNvbnZlcnRlZFVwZGF0ZSwgQXBw
bGVQYXlQYXltZW50TWV0aG9kVXBkYXRlJiYgdXBkYXRlKQotewotI2lmIEVOQUJMRShBUFBMRV9Q
QVlfSU5TVEFMTE1FTlRTKQotICAgIGNvbnZlcnRlZFVwZGF0ZS5zZXRJbnN0YWxsbWVudEdyb3Vw
SWRlbnRpZmllcih1cGRhdGUuaW5zdGFsbG1lbnRHcm91cElkZW50aWZpZXIpOwotI2Vsc2UKLSAg
ICBVTlVTRURfUEFSQU0oY29udmVydGVkVXBkYXRlKTsKLSAgICBVTlVTRURfUEFSQU0odXBkYXRl
KTsKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9u
cy9BcHBsZVBheVNlc3Npb25BZGRpdGlvbnMuY3BwPgogI2VuZGlmCi19CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEFwcGxlUGF5U2Vzc2lvbik7
CiAKQEAgLTE4OCwyNSArMTgzLDE5IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8QXBwbGVQ
YXlMaW5lSXRlbT4+IGNvbnZlcnRBbmRWYWxpZGF0ZShPcHRpb25hbDxWZWN0b3I8CiAgICAgcmV0
dXJuIFdURk1vdmUocmVzdWx0KTsKIH0KIAotc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4gY29udmVydEFuZFZhbGlkYXRlKEFw
cGxlUGF5U2hpcHBpbmdNZXRob2QmJiBzaGlwcGluZ01ldGhvZCkKK3N0YXRpYyBFeGNlcHRpb25P
cjxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiBjb252ZXJ0QW5kVmFsaWRhdGUoQXBwbGVQYXlTaGlw
cGluZ01ldGhvZCYmIHNoaXBwaW5nTWV0aG9kKQogewogICAgIGlmICghdmFsaWRhdGVBbW91bnQo
c2hpcHBpbmdNZXRob2QuYW1vdW50KSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVF
cnJvciwgbWFrZVN0cmluZygiXCIiICsgc2hpcHBpbmdNZXRob2QuYW1vdW50LCAiXCIgaXMgbm90
IGEgdmFsaWQgYW1vdW50LiIpIH07CiAKLSAgICBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dDo6U2hpcHBpbmdNZXRob2QgcmVzdWx0OwotICAgIHJlc3VsdC5hbW91bnQgPSBzaGlwcGluZ01l
dGhvZC5hbW91bnQ7Ci0gICAgcmVzdWx0LmxhYmVsID0gc2hpcHBpbmdNZXRob2QubGFiZWw7Ci0g
ICAgcmVzdWx0LmRldGFpbCA9IHNoaXBwaW5nTWV0aG9kLmRldGFpbDsKLSAgICByZXN1bHQuaWRl
bnRpZmllciA9IHNoaXBwaW5nTWV0aG9kLmlkZW50aWZpZXI7Ci0KLSAgICByZXR1cm4gV1RGTW92
ZShyZXN1bHQpOworICAgIHJldHVybiBXVEZNb3ZlKHNoaXBwaW5nTWV0aG9kKTsKIH0KIAotc3Rh
dGljIEV4Y2VwdGlvbk9yPFZlY3RvcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hp
cHBpbmdNZXRob2Q+PiBjb252ZXJ0QW5kVmFsaWRhdGUoVmVjdG9yPEFwcGxlUGF5U2hpcHBpbmdN
ZXRob2Q+JiYgc2hpcHBpbmdNZXRob2RzKQorc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3RvcjxBcHBs
ZVBheVNoaXBwaW5nTWV0aG9kPj4gY29udmVydEFuZFZhbGlkYXRlKFZlY3RvcjxBcHBsZVBheVNo
aXBwaW5nTWV0aG9kPiYmIHNoaXBwaW5nTWV0aG9kcykKIHsKLSAgICBWZWN0b3I8QXBwbGVQYXlT
ZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPiByZXN1bHQ7CisgICAgVmVjdG9y
PEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+IHJlc3VsdDsKICAgICByZXN1bHQucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShzaGlwcGluZ01ldGhvZHMuc2l6ZSgpKTsKLSAgICAKKwogICAgIGZvciAoYXV0
byYgc2hpcHBpbmdNZXRob2QgOiBzaGlwcGluZ01ldGhvZHMpIHsKICAgICAgICAgYXV0byBjb252
ZXJ0ZWRTaGlwcGluZ01ldGhvZCA9IGNvbnZlcnRBbmRWYWxpZGF0ZShXVEZNb3ZlKHNoaXBwaW5n
TWV0aG9kKSk7CiAgICAgICAgIGlmIChjb252ZXJ0ZWRTaGlwcGluZ01ldGhvZC5oYXNFeGNlcHRp
b24oKSkKQEAgLTIxNyw2ICsyMDYsMTAgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3RvcjxBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+PiBjb252ZXIKICAgICBy
ZXR1cm4gV1RGTW92ZShyZXN1bHQpOwogfQogCisjaWYgZGVmaW5lZChBcHBsZVBheVNlc3Npb25B
ZGRpdGlvbnNfY29udmVydEFuZFZhbGlkYXRlKQorICAgIEFwcGxlUGF5U2Vzc2lvbkFkZGl0aW9u
c19jb252ZXJ0QW5kVmFsaWRhdGUKKyNlbmRpZgorCiBzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQ
YXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q+IGNvbnZlcnRBbmRWYWxpZGF0ZShEb2N1bWVudCYgZG9j
dW1lbnQsIHVuc2lnbmVkIHZlcnNpb24sIEFwcGxlUGF5UGF5bWVudFJlcXVlc3QmJiBwYXltZW50
UmVxdWVzdCwgY29uc3QgUGF5bWVudENvb3JkaW5hdG9yJiBwYXltZW50Q29vcmRpbmF0b3IpCiB7
CiAgICAgYXV0byBjb252ZXJ0ZWRSZXF1ZXN0ID0gY29udmVydEFuZFZhbGlkYXRlKGRvY3VtZW50
LCB2ZXJzaW9uLCBwYXltZW50UmVxdWVzdCwgcGF5bWVudENvb3JkaW5hdG9yKTsKQEAgLTI0Niw2
ICsyMzksMTAgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGUoRG9jdW1lbnQmIGQKICAgICAgICAgcmVzdWx0LnNldFNo
aXBwaW5nTWV0aG9kcyhzaGlwcGluZ01ldGhvZHMucmVsZWFzZVJldHVyblZhbHVlKCkpOwogICAg
IH0KIAorI2lmIGRlZmluZWQoQXBwbGVQYXlTZXNzaW9uQWRkaXRpb25zX2NvbnZlcnRBbmRWYWxp
ZGF0ZV9yZXF1ZXN0KQorICAgIEFwcGxlUGF5U2Vzc2lvbkFkZGl0aW9uc19jb252ZXJ0QW5kVmFs
aWRhdGVfcmVxdWVzdAorI2VuZGlmCisKICAgICAvLyBGSVhNRTogTWVyZ2UgdGhpcyB2YWxpZGF0
aW9uIGludG8gdGhlIHZhbGlkYXRpb24gd2UgYXJlIGRvaW5nIGFib3ZlLgogICAgIGF1dG8gdmFs
aWRhdGVkUGF5bWVudFJlcXVlc3QgPSBQYXltZW50UmVxdWVzdFZhbGlkYXRvcjo6dmFsaWRhdGUo
cmVzdWx0KTsKICAgICBpZiAodmFsaWRhdGVkUGF5bWVudFJlcXVlc3QuaGFzRXhjZXB0aW9uKCkp
CkBAIC0yNTQsMjQgKzI1MSw2IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdD4gY29udmVydEFuZFZhbGlkYXRlKERvY3VtZW50JiBkCiAgICAgcmV0dXJu
IFdURk1vdmUocmVzdWx0KTsKIH0KIAotCi1zdGF0aWMgVmVjdG9yPFBheW1lbnRFcnJvcj4gY29u
dmVydChjb25zdCBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYgZXJyb3JzKQotewotICAg
IFZlY3RvcjxQYXltZW50RXJyb3I+IGNvbnZlcnRlZEVycm9yczsKLQotICAgIGZvciAoYXV0byYg
ZXJyb3IgOiBlcnJvcnMpIHsKLSAgICAgICAgUGF5bWVudEVycm9yIGNvbnZlcnRlZEVycm9yOwot
Ci0gICAgICAgIGNvbnZlcnRlZEVycm9yLmNvZGUgPSBlcnJvci0+Y29kZSgpOwotICAgICAgICBj
b252ZXJ0ZWRFcnJvci5tZXNzYWdlID0gZXJyb3ItPm1lc3NhZ2UoKTsKLSAgICAgICAgY29udmVy
dGVkRXJyb3IuY29udGFjdEZpZWxkID0gZXJyb3ItPmNvbnRhY3RGaWVsZCgpOwotCi0gICAgICAg
IGNvbnZlcnRlZEVycm9ycy5hcHBlbmQoY29udmVydGVkRXJyb3IpOwotICAgIH0KLQotICAgIHJl
dHVybiBjb252ZXJ0ZWRFcnJvcnM7Ci19Ci0KIHN0YXRpYyBFeGNlcHRpb25PcjxQYXltZW50QXV0
aG9yaXphdGlvblJlc3VsdD4gY29udmVydEFuZFZhbGlkYXRlKEFwcGxlUGF5UGF5bWVudEF1dGhv
cml6YXRpb25SZXN1bHQmJiByZXN1bHQpCiB7CiAgICAgUGF5bWVudEF1dGhvcml6YXRpb25SZXN1
bHQgY29udmVydGVkUmVzdWx0OwpAQCAtMjg3LDE3ICsyNjYsMTcgQEAgc3RhdGljIEV4Y2VwdGlv
bk9yPFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiBjb252ZXJ0QW5kVmFsaWRhdGUoQXBwbGVQ
YXlQYXltZW4KIAogICAgIGNhc2UgQXBwbGVQYXlTZXNzaW9uOjpTVEFUVVNfSU5WQUxJRF9CSUxM
SU5HX1BPU1RBTF9BRERSRVNTOgogICAgICAgICBjb252ZXJ0ZWRSZXN1bHQuc3RhdHVzID0gUGF5
bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OkZhaWx1cmU7Ci0gICAgICAgIGNvbnZlcnRlZFJlc3Vs
dC5lcnJvcnMuYXBwZW5kKHsgUGF5bWVudEVycm9yOjpDb2RlOjpCaWxsaW5nQ29udGFjdEludmFs
aWQsIHsgfSwgV1RGOjpudWxsb3B0IH0pOworICAgICAgICBjb252ZXJ0ZWRSZXN1bHQuZXJyb3Jz
LmFwcGVuZChBcHBsZVBheUVycm9yOjpjcmVhdGUoQXBwbGVQYXlFcnJvckNvZGU6OkJpbGxpbmdD
b250YWN0SW52YWxpZCwgV1RGOjpudWxsb3B0LCBudWxsU3RyaW5nKCkpKTsKICAgICAgICAgYnJl
YWs7CiAKICAgICBjYXNlIEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX0lOVkFMSURfU0hJUFBJTkdf
UE9TVEFMX0FERFJFU1M6CiAgICAgICAgIGNvbnZlcnRlZFJlc3VsdC5zdGF0dXMgPSBQYXltZW50
QXV0aG9yaXphdGlvblN0YXR1czo6RmFpbHVyZTsKLSAgICAgICAgY29udmVydGVkUmVzdWx0LmVy
cm9ycy5hcHBlbmQoeyBQYXltZW50RXJyb3I6OkNvZGU6OlNoaXBwaW5nQ29udGFjdEludmFsaWQs
IHsgfSwgUGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlBvc3RhbEFkZHJlc3MgfSk7CisgICAg
ICAgIGNvbnZlcnRlZFJlc3VsdC5lcnJvcnMuYXBwZW5kKEFwcGxlUGF5RXJyb3I6OmNyZWF0ZShB
cHBsZVBheUVycm9yQ29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxpZCwgQXBwbGVQYXlFcnJvckNv
bnRhY3RGaWVsZDo6UG9zdGFsQWRkcmVzcywgbnVsbFN0cmluZygpKSk7CiAgICAgICAgIGJyZWFr
OwogCiAgICAgY2FzZSBBcHBsZVBheVNlc3Npb246OlNUQVRVU19JTlZBTElEX1NISVBQSU5HX0NP
TlRBQ1Q6CiAgICAgICAgIGNvbnZlcnRlZFJlc3VsdC5zdGF0dXMgPSBQYXltZW50QXV0aG9yaXph
dGlvblN0YXR1czo6RmFpbHVyZTsKLSAgICAgICAgY29udmVydGVkUmVzdWx0LmVycm9ycy5hcHBl
bmQoeyBQYXltZW50RXJyb3I6OkNvZGU6OlNoaXBwaW5nQ29udGFjdEludmFsaWQsIHsgfSwgV1RG
OjpudWxsb3B0IH0pOworICAgICAgICBjb252ZXJ0ZWRSZXN1bHQuZXJyb3JzLmFwcGVuZChBcHBs
ZVBheUVycm9yOjpjcmVhdGUoQXBwbGVQYXlFcnJvckNvZGU6OlNoaXBwaW5nQ29udGFjdEludmFs
aWQsIFdURjo6bnVsbG9wdCwgbnVsbFN0cmluZygpKSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAg
Y2FzZSBBcHBsZVBheVNlc3Npb246OlNUQVRVU19QSU5fUkVRVUlSRUQ6CkBAIC0zMTYsNjggKzI5
NSw1OSBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+IGNv
bnZlcnRBbmRWYWxpZGF0ZShBcHBsZVBheVBheW1lbgogICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CiAgICAgfQogCi0gICAgY29udmVydGVkUmVzdWx0LmVy
cm9ycy5hcHBlbmRWZWN0b3IoY29udmVydChyZXN1bHQuZXJyb3JzKSk7CisgICAgY29udmVydGVk
UmVzdWx0LmVycm9ycy5hcHBlbmRWZWN0b3IoV1RGTW92ZShyZXN1bHQuZXJyb3JzKSk7CiAKICAg
ICByZXR1cm4gV1RGTW92ZShjb252ZXJ0ZWRSZXN1bHQpOwogfQogCi1zdGF0aWMgRXhjZXB0aW9u
T3I8UGF5bWVudE1ldGhvZFVwZGF0ZT4gY29udmVydEFuZFZhbGlkYXRlKEFwcGxlUGF5UGF5bWVu
dE1ldGhvZFVwZGF0ZSYmIHVwZGF0ZSkKK3N0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheVBheW1l
bnRNZXRob2RVcGRhdGU+IGNvbnZlcnRBbmRWYWxpZGF0ZShBcHBsZVBheVBheW1lbnRNZXRob2RV
cGRhdGUmJiB1cGRhdGUpCiB7CiAgICAgYXV0byBjb252ZXJ0ZWROZXdUb3RhbCA9IGNvbnZlcnRB
bmRWYWxpZGF0ZVRvdGFsKFdURk1vdmUodXBkYXRlLm5ld1RvdGFsKSk7CiAgICAgaWYgKGNvbnZl
cnRlZE5ld1RvdGFsLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gY29udmVydGVkTmV3
VG90YWwucmVsZWFzZUV4Y2VwdGlvbigpOworICAgIHVwZGF0ZS5uZXdUb3RhbCA9IGNvbnZlcnRl
ZE5ld1RvdGFsLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCiAgICAgYXV0byBjb252ZXJ0ZWROZXdM
aW5lSXRlbXMgPSBjb252ZXJ0QW5kVmFsaWRhdGUoV1RGTW92ZSh1cGRhdGUubmV3TGluZUl0ZW1z
KSk7CiAgICAgaWYgKGNvbnZlcnRlZE5ld0xpbmVJdGVtcy5oYXNFeGNlcHRpb24oKSkKICAgICAg
ICAgcmV0dXJuIGNvbnZlcnRlZE5ld0xpbmVJdGVtcy5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAg
dXBkYXRlLm5ld0xpbmVJdGVtcyA9IGNvbnZlcnRlZE5ld0xpbmVJdGVtcy5yZWxlYXNlUmV0dXJu
VmFsdWUoKTsKIAotICAgIFBheW1lbnRNZXRob2RVcGRhdGUgY29udmVydGVkVXBkYXRlIHsgY29u
dmVydGVkTmV3VG90YWwucmVsZWFzZVJldHVyblZhbHVlKCksIGNvbnZlcnRlZE5ld0xpbmVJdGVt
cy5yZWxlYXNlUmV0dXJuVmFsdWUoKSB9OwotICAgIGZpbmlzaENvbnZlcnRpbmcoY29udmVydGVk
VXBkYXRlLCBXVEZNb3ZlKHVwZGF0ZSkpOwotCi0gICAgcmV0dXJuIFdURk1vdmUoY29udmVydGVk
VXBkYXRlKTsKKyAgICByZXR1cm4gV1RGTW92ZSh1cGRhdGUpOwogfQogCi1zdGF0aWMgRXhjZXB0
aW9uT3I8U2hpcHBpbmdDb250YWN0VXBkYXRlPiBjb252ZXJ0QW5kVmFsaWRhdGUoQXBwbGVQYXlT
aGlwcGluZ0NvbnRhY3RVcGRhdGUmJiB1cGRhdGUpCitzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQ
YXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+IGNvbnZlcnRBbmRWYWxpZGF0ZShBcHBsZVBheVNoaXBw
aW5nQ29udGFjdFVwZGF0ZSYmIHVwZGF0ZSkKIHsKLSAgICBTaGlwcGluZ0NvbnRhY3RVcGRhdGUg
Y29udmVydGVkVXBkYXRlOwotCi0gICAgY29udmVydGVkVXBkYXRlLmVycm9ycyA9IGNvbnZlcnQo
dXBkYXRlLmVycm9ycyk7Ci0KICAgICBhdXRvIGNvbnZlcnRlZE5ld1NoaXBwaW5nTWV0aG9kcyA9
IGNvbnZlcnRBbmRWYWxpZGF0ZShXVEZNb3ZlKHVwZGF0ZS5uZXdTaGlwcGluZ01ldGhvZHMpKTsK
ICAgICBpZiAoY29udmVydGVkTmV3U2hpcHBpbmdNZXRob2RzLmhhc0V4Y2VwdGlvbigpKQogICAg
ICAgICByZXR1cm4gY29udmVydGVkTmV3U2hpcHBpbmdNZXRob2RzLnJlbGVhc2VFeGNlcHRpb24o
KTsKLSAgICBjb252ZXJ0ZWRVcGRhdGUubmV3U2hpcHBpbmdNZXRob2RzID0gY29udmVydGVkTmV3
U2hpcHBpbmdNZXRob2RzLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgIHVwZGF0ZS5uZXdTaGlw
cGluZ01ldGhvZHMgPSBjb252ZXJ0ZWROZXdTaGlwcGluZ01ldGhvZHMucmVsZWFzZVJldHVyblZh
bHVlKCk7CiAKICAgICBhdXRvIGNvbnZlcnRlZE5ld1RvdGFsID0gY29udmVydEFuZFZhbGlkYXRl
VG90YWwoV1RGTW92ZSh1cGRhdGUubmV3VG90YWwpKTsKICAgICBpZiAoY29udmVydGVkTmV3VG90
YWwuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBjb252ZXJ0ZWROZXdUb3RhbC5yZWxl
YXNlRXhjZXB0aW9uKCk7Ci0gICAgY29udmVydGVkVXBkYXRlLm5ld1RvdGFsQW5kTGluZUl0ZW1z
LnRvdGFsID0gY29udmVydGVkTmV3VG90YWwucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgdXBk
YXRlLm5ld1RvdGFsID0gY29udmVydGVkTmV3VG90YWwucmVsZWFzZVJldHVyblZhbHVlKCk7CiAK
ICAgICBhdXRvIGNvbnZlcnRlZE5ld0xpbmVJdGVtcyA9IGNvbnZlcnRBbmRWYWxpZGF0ZShXVEZN
b3ZlKHVwZGF0ZS5uZXdMaW5lSXRlbXMpKTsKICAgICBpZiAoY29udmVydGVkTmV3TGluZUl0ZW1z
Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gY29udmVydGVkTmV3TGluZUl0ZW1zLnJl
bGVhc2VFeGNlcHRpb24oKTsKLSAgICBjb252ZXJ0ZWRVcGRhdGUubmV3VG90YWxBbmRMaW5lSXRl
bXMubGluZUl0ZW1zID0gY29udmVydGVkTmV3TGluZUl0ZW1zLnJlbGVhc2VSZXR1cm5WYWx1ZSgp
OworICAgIHVwZGF0ZS5uZXdMaW5lSXRlbXMgPSBjb252ZXJ0ZWROZXdMaW5lSXRlbXMucmVsZWFz
ZVJldHVyblZhbHVlKCk7CiAKLSAgICByZXR1cm4gV1RGTW92ZShjb252ZXJ0ZWRVcGRhdGUpOwor
ICAgIHJldHVybiBXVEZNb3ZlKHVwZGF0ZSk7CiB9CiAKLXN0YXRpYyBFeGNlcHRpb25PcjxTaGlw
cGluZ01ldGhvZFVwZGF0ZT4gY29udmVydEFuZFZhbGlkYXRlKEFwcGxlUGF5U2hpcHBpbmdNZXRo
b2RVcGRhdGUmJiB1cGRhdGUpCitzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlTaGlwcGluZ01l
dGhvZFVwZGF0ZT4gY29udmVydEFuZFZhbGlkYXRlKEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRh
dGUmJiB1cGRhdGUpCiB7Ci0gICAgU2hpcHBpbmdNZXRob2RVcGRhdGUgY29udmVydGVkVXBkYXRl
OwotCiAgICAgYXV0byBjb252ZXJ0ZWROZXdUb3RhbCA9IGNvbnZlcnRBbmRWYWxpZGF0ZVRvdGFs
KFdURk1vdmUodXBkYXRlLm5ld1RvdGFsKSk7CiAgICAgaWYgKGNvbnZlcnRlZE5ld1RvdGFsLmhh
c0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gY29udmVydGVkTmV3VG90YWwucmVsZWFzZUV4
Y2VwdGlvbigpOwotCi0gICAgY29udmVydGVkVXBkYXRlLm5ld1RvdGFsQW5kTGluZUl0ZW1zLnRv
dGFsID0gY29udmVydGVkTmV3VG90YWwucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgdXBkYXRl
Lm5ld1RvdGFsID0gY29udmVydGVkTmV3VG90YWwucmVsZWFzZVJldHVyblZhbHVlKCk7CiAKICAg
ICBhdXRvIGNvbnZlcnRlZE5ld0xpbmVJdGVtcyA9IGNvbnZlcnRBbmRWYWxpZGF0ZShXVEZNb3Zl
KHVwZGF0ZS5uZXdMaW5lSXRlbXMpKTsKICAgICBpZiAoY29udmVydGVkTmV3TGluZUl0ZW1zLmhh
c0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gY29udmVydGVkTmV3TGluZUl0ZW1zLnJlbGVh
c2VFeGNlcHRpb24oKTsKKyAgICB1cGRhdGUubmV3TGluZUl0ZW1zID0gY29udmVydGVkTmV3TGlu
ZUl0ZW1zLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCi0gICAgY29udmVydGVkVXBkYXRlLm5ld1Rv
dGFsQW5kTGluZUl0ZW1zLmxpbmVJdGVtcyA9IGNvbnZlcnRlZE5ld0xpbmVJdGVtcy5yZWxlYXNl
UmV0dXJuVmFsdWUoKTsKLQotICAgIHJldHVybiBXVEZNb3ZlKGNvbnZlcnRlZFVwZGF0ZSk7Cisg
ICAgcmV0dXJuIFdURk1vdmUodXBkYXRlKTsKIH0KIAogRXhjZXB0aW9uT3I8UmVmPEFwcGxlUGF5
U2Vzc2lvbj4+IEFwcGxlUGF5U2Vzc2lvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgdW5z
aWduZWQgdmVyc2lvbiwgQXBwbGVQYXlQYXltZW50UmVxdWVzdCYmIHBheW1lbnRSZXF1ZXN0KQpA
QCAtNjYzLDggKzYzMyw4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5U2Vzc2lvbjo6Y29t
cGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24odW5zaWduZWQgc2hvCiB7CiAgICAgQXBwbGVQ
YXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUgdXBkYXRlOwogCi0gICAgT3B0aW9uYWw8QXBwbGVQYXlF
cnJvcjo6Q29kZT4gZXJyb3JDb2RlOwotICAgIE9wdGlvbmFsPEFwcGxlUGF5RXJyb3I6OkNvbnRh
Y3RGaWVsZD4gY29udGFjdEZpZWxkOworICAgIE9wdGlvbmFsPEFwcGxlUGF5RXJyb3JDb2RlPiBl
cnJvckNvZGU7CisgICAgT3B0aW9uYWw8QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZD4gY29udGFj
dEZpZWxkOwogCiAgICAgc3dpdGNoIChzdGF0dXMpIHsKICAgICBjYXNlIEFwcGxlUGF5U2Vzc2lv
bjo6U1RBVFVTX1NVQ0NFU1M6CkBAIC02NzQsMjAgKzY0NCwyMCBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBBcHBsZVBheVNlc3Npb246OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKHVuc2ln
bmVkIHNobwogICAgIGNhc2UgQXBwbGVQYXlTZXNzaW9uOjpTVEFUVVNfUElOX1JFUVVJUkVEOgog
ICAgIGNhc2UgQXBwbGVQYXlTZXNzaW9uOjpTVEFUVVNfUElOX0lOQ09SUkVDVDoKICAgICBjYXNl
IEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX1BJTl9MT0NLT1VUOgotICAgICAgICBlcnJvckNvZGUg
PSBBcHBsZVBheUVycm9yOjpDb2RlOjpVbmtub3duOworICAgICAgICBlcnJvckNvZGUgPSBBcHBs
ZVBheUVycm9yQ29kZTo6VW5rbm93bjsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEFwcGxl
UGF5U2Vzc2lvbjo6U1RBVFVTX0lOVkFMSURfQklMTElOR19QT1NUQUxfQUREUkVTUzoKLSAgICAg
ICAgZXJyb3JDb2RlID0gQXBwbGVQYXlFcnJvcjo6Q29kZTo6QmlsbGluZ0NvbnRhY3RJbnZhbGlk
OworICAgICAgICBlcnJvckNvZGUgPSBBcHBsZVBheUVycm9yQ29kZTo6QmlsbGluZ0NvbnRhY3RJ
bnZhbGlkOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQXBwbGVQYXlTZXNzaW9uOjpTVEFU
VVNfSU5WQUxJRF9TSElQUElOR19QT1NUQUxfQUREUkVTUzoKLSAgICAgICAgZXJyb3JDb2RlID0g
QXBwbGVQYXlFcnJvcjo6Q29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxpZDsKLSAgICAgICAgY29u
dGFjdEZpZWxkID0gQXBwbGVQYXlFcnJvcjo6Q29udGFjdEZpZWxkOjpQb3N0YWxBZGRyZXNzOwor
ICAgICAgICBlcnJvckNvZGUgPSBBcHBsZVBheUVycm9yQ29kZTo6U2hpcHBpbmdDb250YWN0SW52
YWxpZDsKKyAgICAgICAgY29udGFjdEZpZWxkID0gQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6
UG9zdGFsQWRkcmVzczsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEFwcGxlUGF5U2Vzc2lv
bjo6U1RBVFVTX0lOVkFMSURfU0hJUFBJTkdfQ09OVEFDVDoKLSAgICAgICAgZXJyb3JDb2RlID0g
QXBwbGVQYXlFcnJvcjo6Q29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxpZDsKKyAgICAgICAgZXJy
b3JDb2RlID0gQXBwbGVQYXlFcnJvckNvZGU6OlNoaXBwaW5nQ29udGFjdEludmFsaWQ7CiAgICAg
ICAgIGJyZWFrOwogCiAgICAgZGVmYXVsdDoKQEAgLTc1OSw3ICs3MjksNyBAQCB2b2lkIEFwcGxl
UGF5U2Vzc2lvbjo6ZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBQYXltZW50JiBwYXltZW50KQog
ICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQuZ2V0KCkpOwogfQogCi12b2lkIEFwcGxlUGF5U2Vzc2lv
bjo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKK3ZvaWQgQXBwbGVQYXlTZXNz
aW9uOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9k
JiBzaGlwcGluZ01ldGhvZCkKIHsKICAgICBBU1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6QWN0aXZl
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNz
aW9uLmgKaW5kZXggMzJjYzc2Yzg3ZjY1YTdjMTEyNWQ3MjkwZTM0YWRhMGU1M2ZiNWJkZC4uYTAy
NDhiOTE1ZmY4Zjg3NjIyNjU3NTE1YTIyZTU2NDAyM2I0OWMzZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5oCkBAIC0xMTUsNyArMTE1
LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCB2ZXJzaW9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAg
ICAgdm9pZCB2YWxpZGF0ZU1lcmNoYW50KFVSTCYmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZEF1
dGhvcml6ZVBheW1lbnQoY29uc3QgUGF5bWVudCYpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlkU2Vs
ZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNo
aXBwaW5nTWV0aG9kJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhv
ZChjb25zdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRT
ZWxlY3RTaGlwcGluZ0NvbnRhY3QoY29uc3QgUGF5bWVudENvbnRhY3QmKSBvdmVycmlkZTsKICAg
ICB2b2lkIGRpZFNlbGVjdFBheW1lbnRNZXRob2QoY29uc3QgUGF5bWVudE1ldGhvZCYpIG92ZXJy
aWRlOwogICAgIHZvaWQgZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24oUGF5bWVudFNlc3Npb25FcnJv
ciYmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaAppbmRleCAzOTg2NDc2
ZTEyZGZmN2ZjOThiN2U5NTQ4MmM1ZTZlNDVjMGIwYjJmLi4zYTc4ZDhkN2Q0NmI5YWZiZjA4NWU0
YzVhNjVkYjU3NzBmMjM1ZTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oCkBAIC0y
NywxNCArMjcsMjEgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKKyNpbmNsdWRlICJBcHBs
ZVBheUVycm9yLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlMaW5lSXRlbS5oIgorI2luY2x1ZGUgIkFw
cGxlUGF5U2hpcHBpbmdNZXRob2QuaCIKICNpbmNsdWRlICJQYXltZW50Q29udGFjdC5oIgogI2lu
Y2x1ZGUgIlBheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb25XZWJDb3JlLmgiCiAjaW5jbHVk
ZSA8d3RmL0VudW1UcmFpdHMuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRl
IDxXZWJLaXRBZGRpdGlvbnMvQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3RBZGRpdGlvbnMu
aD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3MgUGF5bWVudEF1
dGhvcml6YXRpb25TdGF0dXM7CkBAIC05NSwxNSArMTAyLDggQEAgcHVibGljOgogICAgIFNoaXBw
aW5nVHlwZSBzaGlwcGluZ1R5cGUoKSBjb25zdCB7IHJldHVybiBtX3NoaXBwaW5nVHlwZTsgfQog
ICAgIHZvaWQgc2V0U2hpcHBpbmdUeXBlKFNoaXBwaW5nVHlwZSBzaGlwcGluZ1R5cGUpIHsgbV9z
aGlwcGluZ1R5cGUgPSBzaGlwcGluZ1R5cGU7IH0KIAotICAgIHN0cnVjdCBTaGlwcGluZ01ldGhv
ZCB7Ci0gICAgICAgIFN0cmluZyBsYWJlbDsKLSAgICAgICAgU3RyaW5nIGRldGFpbDsKLSAgICAg
ICAgU3RyaW5nIGFtb3VudDsKLQotICAgICAgICBTdHJpbmcgaWRlbnRpZmllcjsKLSAgICB9Owot
ICAgIGNvbnN0IFZlY3RvcjxTaGlwcGluZ01ldGhvZD4mIHNoaXBwaW5nTWV0aG9kcygpIGNvbnN0
IHsgcmV0dXJuIG1fc2hpcHBpbmdNZXRob2RzOyB9Ci0gICAgdm9pZCBzZXRTaGlwcGluZ01ldGhv
ZHMoY29uc3QgVmVjdG9yPFNoaXBwaW5nTWV0aG9kPiYgc2hpcHBpbmdNZXRob2RzKSB7IG1fc2hp
cHBpbmdNZXRob2RzID0gc2hpcHBpbmdNZXRob2RzOyB9CisgICAgY29uc3QgVmVjdG9yPEFwcGxl
UGF5U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGluZ01ldGhvZHMoKSBjb25zdCB7IHJldHVybiBtX3No
aXBwaW5nTWV0aG9kczsgfQorICAgIHZvaWQgc2V0U2hpcHBpbmdNZXRob2RzKGNvbnN0IFZlY3Rv
cjxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiYgc2hpcHBpbmdNZXRob2RzKSB7IG1fc2hpcHBpbmdN
ZXRob2RzID0gc2hpcHBpbmdNZXRob2RzOyB9CiAKICAgICBjb25zdCBWZWN0b3I8QXBwbGVQYXlM
aW5lSXRlbT4mIGxpbmVJdGVtcygpIGNvbnN0IHsgcmV0dXJuIG1fbGluZUl0ZW1zOyB9CiAgICAg
dm9pZCBzZXRMaW5lSXRlbXMoY29uc3QgVmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+JiBsaW5lSXRl
bXMpIHsgbV9saW5lSXRlbXMgPSBsaW5lSXRlbXM7IH0KQEAgLTExMSwxMSArMTExLDYgQEAgcHVi
bGljOgogICAgIGNvbnN0IEFwcGxlUGF5TGluZUl0ZW0mIHRvdGFsKCkgY29uc3QgeyByZXR1cm4g
bV90b3RhbDsgfTsKICAgICB2b2lkIHNldFRvdGFsKGNvbnN0IEFwcGxlUGF5TGluZUl0ZW0mIHRv
dGFsKSB7IG1fdG90YWwgPSB0b3RhbDsgfQogCi0gICAgc3RydWN0IFRvdGFsQW5kTGluZUl0ZW1z
IHsKLSAgICAgICAgQXBwbGVQYXlMaW5lSXRlbSB0b3RhbDsKLSAgICAgICAgVmVjdG9yPEFwcGxl
UGF5TGluZUl0ZW0+IGxpbmVJdGVtczsKLSAgICB9OwotCiAgICAgY29uc3QgU3RyaW5nJiBhcHBs
aWNhdGlvbkRhdGEoKSBjb25zdCB7IHJldHVybiBtX2FwcGxpY2F0aW9uRGF0YTsgfQogICAgIHZv
aWQgc2V0QXBwbGljYXRpb25EYXRhKGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25EYXRhKSB7IG1f
YXBwbGljYXRpb25EYXRhID0gYXBwbGljYXRpb25EYXRhOyB9CiAKQEAgLTE1MSw3ICsxNDYsNyBA
QCBwcml2YXRlOgogICAgIE1lcmNoYW50Q2FwYWJpbGl0aWVzIG1fbWVyY2hhbnRDYXBhYmlsaXRp
ZXM7CiAKICAgICBTaGlwcGluZ1R5cGUgbV9zaGlwcGluZ1R5cGUgeyBTaGlwcGluZ1R5cGU6OlNo
aXBwaW5nIH07Ci0gICAgVmVjdG9yPFNoaXBwaW5nTWV0aG9kPiBtX3NoaXBwaW5nTWV0aG9kczsK
KyAgICBWZWN0b3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4gbV9zaGlwcGluZ01ldGhvZHM7CiAK
ICAgICBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4gbV9saW5lSXRlbXM7CiAgICAgQXBwbGVQYXlM
aW5lSXRlbSBtX3RvdGFsOwpAQCAtMTY0LDUxICsxNTksMTUgQEAgcHJpdmF0ZToKICNpZiBIQVZF
KFBBU1NLSVRfSU5TVEFMTE1FTlRTKQogICAgIFBheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRp
b24gbV9pbnN0YWxsbWVudENvbmZpZ3VyYXRpb247CiAjZW5kaWYKLX07CiAKLXN0cnVjdCBQYXlt
ZW50RXJyb3IgewotICAgIGVudW0gY2xhc3MgQ29kZSB7Ci0gICAgICAgIFVua25vd24sCi0gICAg
ICAgIFNoaXBwaW5nQ29udGFjdEludmFsaWQsCi0gICAgICAgIEJpbGxpbmdDb250YWN0SW52YWxp
ZCwKLSAgICAgICAgQWRkcmVzc1Vuc2VydmljZWFibGUsCi0gICAgfTsKLQotICAgIGVudW0gY2xh
c3MgQ29udGFjdEZpZWxkIHsKLSAgICAgICAgUGhvbmVOdW1iZXIsCi0gICAgICAgIEVtYWlsQWRk
cmVzcywKLSAgICAgICAgTmFtZSwKLSAgICAgICAgUGhvbmV0aWNOYW1lLAotICAgICAgICBQb3N0
YWxBZGRyZXNzLAotICAgICAgICBBZGRyZXNzTGluZXMsCi0gICAgICAgIFN1YkxvY2FsaXR5LAot
ICAgICAgICBMb2NhbGl0eSwKLSAgICAgICAgUG9zdGFsQ29kZSwKLSAgICAgICAgU3ViQWRtaW5p
c3RyYXRpdmVBcmVhLAotICAgICAgICBBZG1pbmlzdHJhdGl2ZUFyZWEsCi0gICAgICAgIENvdW50
cnksCi0gICAgICAgIENvdW50cnlDb2RlLAotICAgIH07Ci0KLSAgICBDb2RlIGNvZGU7Ci0gICAg
U3RyaW5nIG1lc3NhZ2U7Ci0gICAgT3B0aW9uYWw8Q29udGFjdEZpZWxkPiBjb250YWN0RmllbGQ7
CisjaWYgZGVmaW5lZChBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdEFkZGl0aW9uc19tZW1i
ZXJzKQorICAgIEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0QWRkaXRpb25zX21lbWJlcnMK
KyNlbmRpZgogfTsKIAogc3RydWN0IFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0IHsKICAgICBQ
YXltZW50QXV0aG9yaXphdGlvblN0YXR1cyBzdGF0dXM7Ci0gICAgVmVjdG9yPFBheW1lbnRFcnJv
cj4gZXJyb3JzOwotfTsKLQotc3RydWN0IFNoaXBwaW5nQ29udGFjdFVwZGF0ZSB7Ci0gICAgVmVj
dG9yPFBheW1lbnRFcnJvcj4gZXJyb3JzOwotCi0gICAgVmVjdG9yPEFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4gbmV3U2hpcHBpbmdNZXRob2RzOwotICAgIEFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcyBuZXdUb3RhbEFu
ZExpbmVJdGVtczsKLX07Ci0KLXN0cnVjdCBTaGlwcGluZ01ldGhvZFVwZGF0ZSB7Ci0gICAgQXBw
bGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zIG5ld1RvdGFsQW5k
TGluZUl0ZW1zOworICAgIFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+IGVycm9yczsKIH07
CiAKIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNGaW5hbFN0YXRlUmVzdWx0KGNvbnN0IE9wdGlvbmFs
PFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYpOwpAQCAtMjI3LDM1ICsxODYsNiBAQCB0ZW1w
bGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRS
ZXF1ZXN0OjpTaGlwcGluZ1R5cAogICAgID47CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVt
VHJhaXRzPFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZT4gewotICAgIHVzaW5nIHZhbHVlcyA9
IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZSwKLSAgICAg
ICAgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb2RlOjpVbmtub3duLAotICAgICAgICBXZWJDb3Jl
OjpQYXltZW50RXJyb3I6OkNvZGU6OlNoaXBwaW5nQ29udGFjdEludmFsaWQsCi0gICAgICAgIFdl
YkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6QmlsbGluZ0NvbnRhY3RJbnZhbGlkLAotICAgICAg
ICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU6OkFkZHJlc3NVbnNlcnZpY2VhYmxlCi0gICAg
PjsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UGF5bWVudEVy
cm9yOjpDb250YWN0RmllbGQ+IHsKLSAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAg
ICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZCwKLSAgICAgICAgV2ViQ29y
ZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlBob25lTnVtYmVyLAotICAgICAgICBXZWJD
b3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6RW1haWxBZGRyZXNzLAotICAgICAgICBX
ZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6TmFtZSwKLSAgICAgICAgV2ViQ29y
ZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlBob25ldGljTmFtZSwKLSAgICAgICAgV2Vi
Q29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlBvc3RhbEFkZHJlc3MsCi0gICAgICAg
IFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpBZGRyZXNzTGluZXMsCi0gICAg
ICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpTdWJMb2NhbGl0eSwKLSAg
ICAgICAgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OkxvY2FsaXR5LAotICAg
ICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6UG9zdGFsQ29kZSwKLSAg
ICAgICAgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlN1YkFkbWluaXN0cmF0
aXZlQXJlYSwKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OkFk
bWluaXN0cmF0aXZlQXJlYSwKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0
RmllbGQ6OkNvdW50cnksCi0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZp
ZWxkOjpDb3VudHJ5Q29kZQotICAgID47Ci19OwotCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
U2hpcHBpbmdDb250YWN0VXBkYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmgKaW5kZXggNzI1OTc3ODg4Yzk2YTJkY2Zj
YjRjN2VhM2IyMDg3ZDllNzliNDg1My4uODc1MmEwMzQ2ODgyY2QyZjU4MmIzOTkwYWY2NjJmZDA0
MTNiMzliYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaApAQCAtMjcsMjAgKzI3LDU1
IEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCisjaW5jbHVkZSAiQXBwbGVQYXlEZXRhaWxz
VXBkYXRlQmFzZS5oIgogI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3IuaCIKLSNpbmNsdWRlICJBcHBs
ZVBheUxpbmVJdGVtLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oIgorI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IEFwcGxlUGF5
U2hpcHBpbmdDb250YWN0VXBkYXRlIHsKK3N0cnVjdCBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVw
ZGF0ZSBmaW5hbCA6IHB1YmxpYyBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlIHsKICAgICBWZWN0
b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiBlcnJvcnM7CiAKICAgICBWZWN0b3I8QXBwbGVQYXlT
aGlwcGluZ01ldGhvZD4gbmV3U2hpcHBpbmdNZXRob2RzOwotICAgIEFwcGxlUGF5TGluZUl0ZW0g
bmV3VG90YWw7Ci0gICAgVmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+IG5ld0xpbmVJdGVtczsKKwor
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsK
KyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8QXBwbGVQYXlTaGlw
cGluZ0NvbnRhY3RVcGRhdGU+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCit0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPgordm9pZCBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZTo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZTo6
ZW5jb2RlKGVuY29kZXIpOworICAgIGVuY29kZXIgPDwgZXJyb3JzOworICAgIGVuY29kZXIgPDwg
bmV3U2hpcHBpbmdNZXRob2RzOwogfQogCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9u
YWw8QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0
VXBkYXRlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBBcHBsZVBheVNoaXBwaW5n
Q29udGFjdFVwZGF0ZSByZXN1bHQ7CisKKyAgICBpZiAoIXJlc3VsdC5kZWNvZGVCYXNlKGRlY29k
ZXIpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisjZGVmaW5lIERFQ09ERShuYW1l
LCB0eXBlKSBcCisgICAgT3B0aW9uYWw8dHlwZT4gbmFtZTsgXAorICAgIGRlY29kZXIgPj4gbmFt
ZTsgXAorICAgIGlmICghbmFtZSkgXAorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OyBcCisg
ICAgcmVzdWx0Lm5hbWUgPSBXVEZNb3ZlKCpuYW1lKTsgXAorCisgICAgREVDT0RFKGVycm9ycywg
VmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4pCisgICAgREVDT0RFKG5ld1NoaXBwaW5nTWV0
aG9kcywgVmVjdG9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+KQorCisjdW5kZWYgREVDT0RFCisK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNo
aXBwaW5nQ29udGFjdFVwZGF0ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmlkbAppbmRleCAwNTJlODJiZmMxMTk1NzFk
NjBlMmYzMjcwODRmZmZkZTI1YzRjZTRlLi5mMTFmMzViZjY4YTViM2U2MDRmZmQ3M2Q4MWQ0YTgw
OGVkNjljMWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0Fw
cGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmlkbApAQCAtMjUsMTAg
KzI1LDggQEAKIAogWwogICAgIENvbmRpdGlvbmFsPUFQUExFX1BBWSwKLV0gZGljdGlvbmFyeSBB
cHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZSB7CitdIGRpY3Rpb25hcnkgQXBwbGVQYXlTaGlw
cGluZ0NvbnRhY3RVcGRhdGUgOiBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlIHsKICAgICBzZXF1
ZW5jZTxBcHBsZVBheUVycm9yPiBlcnJvcnM7CiAKICAgICBzZXF1ZW5jZTxBcHBsZVBheVNoaXBw
aW5nTWV0aG9kPiBuZXdTaGlwcGluZ01ldGhvZHM7Ci0gICAgcmVxdWlyZWQgQXBwbGVQYXlMaW5l
SXRlbSBuZXdUb3RhbDsKLSAgICBzZXF1ZW5jZTxBcHBsZVBheUxpbmVJdGVtPiBuZXdMaW5lSXRl
bXM7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVNoaXBwaW5nTWV0aG9kLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0Fw
cGxlUGF5U2hpcHBpbmdNZXRob2QuaAppbmRleCA1OTM1MjFhZjQ2YmMxZDUyY2VmNGVmOTJlNmU1
OWY4MDA4MmMwNTkzLi5lMzk0MmExOGJkMjcxYzEyNGYyYTRlZDEzNjVkNWIzOWM5ZTQ2NTIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBp
bmdNZXRob2QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
U2hpcHBpbmdNZXRob2QuaApAQCAtMzYsOCArMzYsMzkgQEAgc3RydWN0IEFwcGxlUGF5U2hpcHBp
bmdNZXRob2QgewogICAgIFN0cmluZyBkZXRhaWw7CiAgICAgU3RyaW5nIGFtb3VudDsKICAgICBT
dHJpbmcgaWRlbnRpZmllcjsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
T3B0aW9uYWw8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4gZGVjb2RlKERlY29kZXImKTsKIH07CiAK
K3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q6OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbGFiZWw7Cisg
ICAgZW5jb2RlciA8PCBkZXRhaWw7CisgICAgZW5jb2RlciA8PCBhbW91bnQ7CisgICAgZW5jb2Rl
ciA8PCBpZGVudGlmaWVyOwogfQogCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8
QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4gQXBwbGVQYXlTaGlwcGluZ01ldGhvZDo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCit7CisjZGVmaW5lIERFQ09ERShuYW1lLCB0eXBlKSBcCisgICAgT3B0
aW9uYWw8dHlwZT4gbmFtZTsgXAorICAgIGRlY29kZXIgPj4gbmFtZTsgXAorICAgIGlmICghbmFt
ZSkgXAorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OyBcCisKKyAgICBERUNPREUobGFiZWws
IFN0cmluZykKKyAgICBERUNPREUoZGV0YWlsLCBTdHJpbmcpCisgICAgREVDT0RFKGFtb3VudCwg
U3RyaW5nKQorICAgIERFQ09ERShpZGVudGlmaWVyLCBTdHJpbmcpCisKKyN1bmRlZiBERUNPREUK
KworICAgIHJldHVybiB7eyBXVEZNb3ZlKCpsYWJlbCksIFdURk1vdmUoKmRldGFpbCksIFdURk1v
dmUoKmFtb3VudCksIFdURk1vdmUoKmlkZW50aWZpZXIpIH19OworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2
ZW50LmNwcAppbmRleCBiZDc2NWY4YzVmNmU0M2NjNTMyODBiY2Q3NDcwNGM5YTk4NDgyZWM2Li45
NTc3NmE0NDhmODViMjdhZjk0NTYwYmVkOThmY2ViNzEzOTY0NGRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3Rl
ZEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50LmNwcApAQCAtMzUsMjAgKzM1LDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoQXBwbGVQYXlTaGlw
cGluZ01ldGhvZFNlbGVjdGVkRXZlbnQpOwogCi1zdGF0aWMgaW5saW5lIEFwcGxlUGF5U2hpcHBp
bmdNZXRob2QgY29udmVydChjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hp
cHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQotewotICAgIEFwcGxlUGF5U2hpcHBpbmdNZXRo
b2QgY29udmVydGVkTWV0aG9kOwotICAgIGNvbnZlcnRlZE1ldGhvZC5sYWJlbCA9IHNoaXBwaW5n
TWV0aG9kLmxhYmVsOwotICAgIGNvbnZlcnRlZE1ldGhvZC5kZXRhaWwgPSBzaGlwcGluZ01ldGhv
ZC5kZXRhaWw7Ci0gICAgY29udmVydGVkTWV0aG9kLmlkZW50aWZpZXIgPSBzaGlwcGluZ01ldGhv
ZC5pZGVudGlmaWVyOwotICAgIGNvbnZlcnRlZE1ldGhvZC5hbW91bnQgPSBzaGlwcGluZ01ldGhv
ZC5hbW91bnQ7Ci0KLSAgICByZXR1cm4gY29udmVydGVkTWV0aG9kOyAKLX0KLQotQXBwbGVQYXlT
aGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQ6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3Rl
ZEV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCitBcHBsZVBheVNoaXBw
aW5nTWV0aG9kU2VsZWN0ZWRFdmVudDo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZl
bnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYg
c2hpcHBpbmdNZXRob2QpCiAgICAgOiBFdmVudCh0eXBlLCBDYW5CdWJibGU6Ok5vLCBJc0NhbmNl
bGFibGU6Ok5vKQotICAgICwgbV9zaGlwcGluZ01ldGhvZChjb252ZXJ0KHNoaXBwaW5nTWV0aG9k
KSkKKyAgICAsIG1fc2hpcHBpbmdNZXRob2Qoc2hpcHBpbmdNZXRob2QpCiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01l
dGhvZFNlbGVjdGVkRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQuaAppbmRleCBjYTMzOTA3MzI2OWI5NmZk
NjU2MzAwN2VmNTFhNTExNTc4Yjc3YWE4Li5mNjBhMmE1ZjNiNGZhMTIwZjVkNzlmNGI5OGEyMDU4
YzRjNmIxZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0Fw
cGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudC5oCkBA
IC0yNyw3ICsyNyw2IEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCi0jaW5jbHVkZSAiQXBw
bGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKICNpbmNsdWRlICJBcHBsZVBheVNoaXBwaW5n
TWV0aG9kLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKIApAQCAtMzYsNyArMzUsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBBcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudCBm
aW5hbCA6IHB1YmxpYyBFdmVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxB
cHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJp
bmcmIHR5cGUsIGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01l
dGhvZCYgc2hpcHBpbmdNZXRob2QpCisgICAgc3RhdGljIFJlZjxBcHBsZVBheVNoaXBwaW5nTWV0
aG9kU2VsZWN0ZWRFdmVudD4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEFw
cGxlUGF5U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQogICAgIHsKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQodHlw
ZSwgc2hpcHBpbmdNZXRob2QpKTsKICAgICB9CkBAIC00Niw3ICs0NSw3IEBAIHB1YmxpYzoKICAg
ICBjb25zdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCgpIGNvbnN0IHsg
cmV0dXJuIG1fc2hpcHBpbmdNZXRob2Q7IH0KIAogcHJpdmF0ZToKLSAgICBBcHBsZVBheVNoaXBw
aW5nTWV0aG9kU2VsZWN0ZWRFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKTsKKyAgICBBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudChjb25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25z
dCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kJik7CiAKICAgICAvLyBFdmVudC4KICAgICBFdmVudElu
dGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRo
b2RVcGRhdGUuaAppbmRleCBkYTZkOWQ0OGRmMDM2OWYxZTk3YTg1NDM0OTU4YmYwNDNkMjJmODVm
Li42MzliZTBkMmJiOTJhMTE0MzY3YmJhMzZiOTg3YjljNjZkZDkxZjUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRh
dGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBp
bmdNZXRob2RVcGRhdGUuaApAQCAtMjcsMTUgKzI3LDMyIEBACiAKICNpZiBFTkFCTEUoQVBQTEVf
UEFZKQogCi0jaW5jbHVkZSAiQXBwbGVQYXlMaW5lSXRlbS5oIgorI2luY2x1ZGUgIkFwcGxlUGF5
RGV0YWlsc1VwZGF0ZUJhc2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgQXBw
bGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZSB7Ci0gICAgQXBwbGVQYXlMaW5lSXRlbSBuZXdUb3Rh
bDsKLSAgICBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4gbmV3TGluZUl0ZW1zOworc3RydWN0IEFw
cGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUgZmluYWwgOiBwdWJsaWMgQXBwbGVQYXlEZXRhaWxz
VXBkYXRlQmFzZSB7CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25h
bDxBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAor
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0
ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgQXBwbGVQYXlEZXRhaWxz
VXBkYXRlQmFzZTo6ZW5jb2RlKGVuY29kZXIpOwogfQogCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PgorT3B0aW9uYWw8QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4gQXBwbGVQYXlTaGlwcGlu
Z01ldGhvZFVwZGF0ZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgQXBwbGVQYXlT
aGlwcGluZ01ldGhvZFVwZGF0ZSByZXN1bHQ7CisKKyAgICBpZiAoIXJlc3VsdC5kZWNvZGVCYXNl
KGRlY29kZXIpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIHJl
c3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVw
ZGF0ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBp
bmdNZXRob2RVcGRhdGUuaWRsCmluZGV4IDg0NTlkYThkNzVkNDNlYTg3OTIwOTQ1MGRlNmI3MGY2
OWM4MWZiYWIuLjJlNTQ0YzUwNzlmYWFmMGMwODllZTJkMjE4NGY5ZWM2M2MzNWRiMGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01l
dGhvZFVwZGF0ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmlkbApAQCAtMjUsNyArMjUsNSBAQAogCiBbCiAgICAg
Q29uZGl0aW9uYWw9QVBQTEVfUEFZLAotXSBkaWN0aW9uYXJ5IEFwcGxlUGF5U2hpcHBpbmdNZXRo
b2RVcGRhdGUgewotICAgIHJlcXVpcmVkIEFwcGxlUGF5TGluZUl0ZW0gbmV3VG90YWw7Ci0gICAg
c2VxdWVuY2U8QXBwbGVQYXlMaW5lSXRlbT4gbmV3TGluZUl0ZW1zOworXSBkaWN0aW9uYXJ5IEFw
cGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUgOiBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlIHsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRD
b29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRD
b29yZGluYXRvci5jcHAKaW5kZXggNmIwZDQ0NDY2MDQ2YzFkNDA2NzgwZjFlMTg1MDI0MDgxMjk0
NDExMy4uMzVmZjEyMzhiYmU3ZWNmY2M1ZjA5ZmYxODY3NmZhYjBiMTRkNGZhNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9y
LmNwcApAQCAtMjgsNiArMjgsMTAgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKKyNpbmNs
dWRlICJBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaCIKKyNpbmNsdWRlICJBcHBsZVBheVNo
aXBwaW5nQ29udGFjdFVwZGF0ZS5oIgorI2luY2x1ZGUgIkFwcGxlUGF5U2hpcHBpbmdNZXRob2Qu
aCIKKyNpbmNsdWRlICJBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJMaW5rSWNvbkNvbGxlY3Rvci5oIgogI2luY2x1ZGUgIkxv
Z2dpbmcuaCIKQEAgLTEyOCwyMSArMTMyLDIxIEBAIHZvaWQgUGF5bWVudENvb3JkaW5hdG9yOjpj
b21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBQYXltZW50TWVyY2hhbnRTZXNzaW9uCiAg
ICAgbV9jbGllbnQuY29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24ocGF5bWVudE1lcmNoYW50U2Vz
c2lvbik7CiB9CiAKLXZvaWQgUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nTWV0
aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKK3Zv
aWQgUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9w
dGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYgdXBkYXRlKQogewogICAgIEFT
U0VSVChtX2FjdGl2ZVNlc3Npb24pOwogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImNvbXBs
ZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oKSIpOwogICAgIG1fY2xpZW50LmNvbXBsZXRlU2hp
cHBpbmdNZXRob2RTZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUpKTsKIH0KIAotdm9pZCBQYXltZW50
Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFNo
aXBwaW5nQ29udGFjdFVwZGF0ZT4mJiB1cGRhdGUpCit2b2lkIFBheW1lbnRDb29yZGluYXRvcjo6
Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlTaGlwcGlu
Z0NvbnRhY3RVcGRhdGU+JiYgdXBkYXRlKQogewogICAgIEFTU0VSVChtX2FjdGl2ZVNlc3Npb24p
OwogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2Vs
ZWN0aW9uKCkiKTsKICAgICBtX2NsaWVudC5jb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlv
bihXVEZNb3ZlKHVwZGF0ZSkpOwogfQogCi12b2lkIFBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxl
dGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFBheW1lbnRNZXRob2RVcGRhdGU+JiYg
dXBkYXRlKQordm9pZCBQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNl
bGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+JiYgdXBkYXRlKQog
ewogICAgIEFTU0VSVChtX2FjdGl2ZVNlc3Npb24pOwogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoImNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbigpIik7CkBAIC0yMTEsNyArMjE1LDcg
QEAgdm9pZCBQYXltZW50Q29vcmRpbmF0b3I6OmRpZFNlbGVjdFBheW1lbnRNZXRob2QoY29uc3Qg
UGF5bWVudE1ldGhvZCYgcGF5bWVudE1ldGgKICAgICBtX2FjdGl2ZVNlc3Npb24tPmRpZFNlbGVj
dFBheW1lbnRNZXRob2QocGF5bWVudE1ldGhvZCk7CiB9CiAKLXZvaWQgUGF5bWVudENvb3JkaW5h
dG9yOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQordm9pZCBQYXltZW50Q29v
cmRpbmF0b3I6OmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdN
ZXRob2QmIHNoaXBwaW5nTWV0aG9kKQogewogICAgIGlmICghbV9hY3RpdmVTZXNzaW9uKSB7CiAg
ICAgICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgcGF5bWVudCBoYXMgYmVlbiBhYm9ydGVk
IGFscmVhZHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1Bh
eW1lbnRDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXlt
ZW50Q29vcmRpbmF0b3IuaAppbmRleCA3YmQ0YTI1ZjM5ZTM3ZjRjZDRkNDIwOWMwZmNhNDNkNzgz
N2Q3YWQwLi42NDVjNzk2MzY1ZTdlODZiYzZmMWZmNWZiYTA0M2VkYTgwMDA1ZDBkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGluYXRvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9y
LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJBcHBsZVBheVNlc3Npb25QYXltZW50UmVx
dWVzdC5oIgogI2luY2x1ZGUgPHd0Zi9FeHBlY3RlZC5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlv
bi5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQxLDE1ICs0MiwxNiBAQCBjbGFzcyBQYXltZW50
Q29vcmRpbmF0b3JDbGllbnQ7CiBjbGFzcyBQYXltZW50Q29udGFjdDsKIGNsYXNzIFBheW1lbnRN
ZXJjaGFudFNlc3Npb247CiBjbGFzcyBQYXltZW50TWV0aG9kOwotY2xhc3MgUGF5bWVudE1ldGhv
ZFVwZGF0ZTsKIGNsYXNzIFBheW1lbnRTZXNzaW9uOwogY2xhc3MgUGF5bWVudFNlc3Npb25FcnJv
cjsKIGVudW0gY2xhc3MgUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM7CitzdHJ1Y3QgQXBwbGVQ
YXlQYXltZW50TWV0aG9kVXBkYXRlOwogc3RydWN0IEFwcGxlUGF5U2V0dXBDb25maWd1cmF0aW9u
Oworc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlOworc3RydWN0IEFwcGxlUGF5
U2hpcHBpbmdNZXRob2Q7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZTsKIHN0
cnVjdCBFeGNlcHRpb25EZXRhaWxzOwogc3RydWN0IFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0
Owotc3RydWN0IFNoaXBwaW5nQ29udGFjdFVwZGF0ZTsKLXN0cnVjdCBTaGlwcGluZ01ldGhvZFVw
ZGF0ZTsKIAogY2xhc3MgUGF5bWVudENvb3JkaW5hdG9yIDogcHVibGljIENhbk1ha2VXZWFrUHRy
PFBheW1lbnRDb29yZGluYXRvcj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAt
NjgsOSArNzAsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIGJlZ2luUGF5bWVudFNlc3Npb24oRG9j
dW1lbnQmLCBQYXltZW50U2Vzc2lvbiYsIGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0Jik7CiAgICAgdm9pZCBjb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBQYXltZW50
TWVyY2hhbnRTZXNzaW9uJik7Ci0gICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0
aW9uKE9wdGlvbmFsPFNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKTsKLSAgICB2b2lkIGNvbXBsZXRl
U2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFNoaXBwaW5nQ29udGFjdFVwZGF0ZT4m
Jik7Ci0gICAgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8UGF5
bWVudE1ldGhvZFVwZGF0ZT4mJik7CisgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2Vs
ZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYpOworICAgIHZv
aWQgY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlTaGlw
cGluZ0NvbnRhY3RVcGRhdGU+JiYpOworICAgIHZvaWQgY29tcGxldGVQYXltZW50TWV0aG9kU2Vs
ZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJik7CiAgICAgdm9p
ZCBjb21wbGV0ZVBheW1lbnRTZXNzaW9uKE9wdGlvbmFsPFBheW1lbnRBdXRob3JpemF0aW9uUmVz
dWx0PiYmKTsKICAgICB2b2lkIGFib3J0UGF5bWVudFNlc3Npb24oKTsKICAgICB2b2lkIGNhbmNl
bFBheW1lbnRTZXNzaW9uKCk7CkBAIC03OCw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHZhbGlkYXRlTWVyY2hhbnQoVVJMJiYgdmFsaWRhdGlvblVSTCk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRBdXRob3JpemVQYXltZW50KGNvbnN0IFBheW1lbnQmKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZFNlbGVjdFBheW1lbnRNZXRob2QoY29uc3QgUGF5
bWVudE1ldGhvZCYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkU2VsZWN0U2hpcHBpbmdN
ZXRob2QoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9k
Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25z
dCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRT
ZWxlY3RTaGlwcGluZ0NvbnRhY3QoY29uc3QgUGF5bWVudENvbnRhY3QmKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGRpZENhbmNlbFBheW1lbnRTZXNzaW9uKFBheW1lbnRTZXNzaW9uRXJyb3Im
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVu
dENvb3JkaW5hdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1Bh
eW1lbnRDb29yZGluYXRvckNsaWVudC5oCmluZGV4IGQ2ZTI2ZmM5NzQwNDU3NGJjMWMyMDE5NDky
MTVkMWViZjRmN2E1NWMuLjE2ZWRjODNlZWViMmYxNmNlOWFiZDljMGIwYTg1ZDFhNTNjZjFiMjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3Jk
aW5hdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXlt
ZW50Q29vcmRpbmF0b3JDbGllbnQuaApAQCAtMzIsMTYgKzMyLDE3IEBACiAjaW5jbHVkZSA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIFBheW1lbnRNZXJjaGFudFNlc3Np
b247Ci1jbGFzcyBQYXltZW50TWV0aG9kVXBkYXRlOworc3RydWN0IEFwcGxlUGF5UGF5bWVudE1l
dGhvZFVwZGF0ZTsKIHN0cnVjdCBBcHBsZVBheVNldHVwQ29uZmlndXJhdGlvbjsKK3N0cnVjdCBB
cHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZTsKK3N0cnVjdCBBcHBsZVBheVNoaXBwaW5nTWV0
aG9kVXBkYXRlOwogc3RydWN0IFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0Owotc3RydWN0IFNo
aXBwaW5nQ29udGFjdFVwZGF0ZTsKLXN0cnVjdCBTaGlwcGluZ01ldGhvZFVwZGF0ZTsKIAogY2xh
c3MgUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50IHsKIHB1YmxpYzoKQEAgLTU0LDkgKzU1LDkgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNob3dQYXltZW50VUkoY29uc3QgVVJMJiBvcmln
aW5hdGluZ1VSTCwgY29uc3QgVmVjdG9yPFVSTD4mIGxpbmtJY29uVVJMcywgY29uc3QgQXBwbGVQ
YXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvbXBsZXRl
TWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFBheW1lbnRNZXJjaGFudFNlc3Npb24mKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8
U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcGxldGVT
aGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8U2hpcHBpbmdDb250YWN0VXBkYXRlPiYm
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihP
cHRpb25hbDxQYXltZW50TWV0aG9kVXBkYXRlPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNv
bXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlTaGlwcGluZ01l
dGhvZFVwZGF0ZT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29u
dGFjdFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0
aW9uYWw8QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24oT3B0aW9uYWw8UGF5bWVudEF1dGhvcml6YXRpb25S
ZXN1bHQ+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWJvcnRQYXltZW50U2Vzc2lvbigpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsUGF5bWVudFNlc3Npb24oKSA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRIZWFkZXJzLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRIZWFkZXJzLmgKaW5kZXggYzU1
NTExNzllZDFmMGQyNDUwOGUyYTQ0ZWJjNTM3MmU3OWJmYzUxMy4uMmRkYjI1OWM1OGQ3ZDI4M2Fm
M2MwMGZlZWZiMDk5ZGE4MTE0ZGNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9QYXltZW50SGVhZGVycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvUGF5bWVudEhlYWRlcnMuaApAQCAtMjUsMTEgKzI1LDEzIEBACiAKICNwcmFnbWEg
b25jZQogCisjaW5jbHVkZSAiQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVk
ZSAiQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKKyNpbmNsdWRlICJBcHBsZVBheVNo
aXBwaW5nQ29udGFjdFVwZGF0ZS5oIgorI2luY2x1ZGUgIkFwcGxlUGF5U2hpcHBpbmdNZXRob2RV
cGRhdGUuaCIKICNpbmNsdWRlICJQYXltZW50LmgiCiAjaW5jbHVkZSAiUGF5bWVudENvbnRhY3Qu
aCIKICNpbmNsdWRlICJQYXltZW50TWVyY2hhbnRTZXNzaW9uLmgiCiAjaW5jbHVkZSAiUGF5bWVu
dE1ldGhvZC5oIgotI2luY2x1ZGUgIlBheW1lbnRNZXRob2RVcGRhdGUuaCIKICNpbmNsdWRlICJQ
YXltZW50U2Vzc2lvbkVycm9yLmgiCiAjaW5jbHVkZSAiUGF5bWVudFN1bW1hcnlJdGVtcy5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50TWV0aG9k
VXBkYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRNZXRob2RV
cGRhdGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDg0MGUxNjNkNTA1YjAwYzIx
OWExNmZjMzk4ZjViZjM4NDM4ZjM4YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRNZXRo
b2RVcGRhdGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
cHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShBUFBMRV9QQVkpCi0KLSNpbmNsdWRlICJBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdC5oIgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLQot
T0JKQ19DTEFTUyBQS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZTsKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1jbGFzcyBXRUJDT1JFX0VYUE9SVCBQYXltZW50TWV0aG9kVXBkYXRl
IHsKLXB1YmxpYzoKLSAgICB1c2luZyBUb3RhbEFuZExpbmVJdGVtcyA9IEFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtczsKLQotICAgIFBheW1lbnRNZXRob2RV
cGRhdGUoQXBwbGVQYXlMaW5lSXRlbSYmIHRvdGFsLCBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4m
Jik7Ci0gICAgZXhwbGljaXQgUGF5bWVudE1ldGhvZFVwZGF0ZShSZXRhaW5QdHI8UEtQYXltZW50
UmVxdWVzdFBheW1lbnRNZXRob2RVcGRhdGU+JiYpOwotICAgIGV4cGxpY2l0IFBheW1lbnRNZXRo
b2RVcGRhdGUoVG90YWxBbmRMaW5lSXRlbXMmJik7Ci0KLSAgICBjb25zdCBUb3RhbEFuZExpbmVJ
dGVtcyYgdG90YWxBbmRMaW5lSXRlbXMoKSBjb25zdDsKLSAgICBQS1BheW1lbnRSZXF1ZXN0UGF5
bWVudE1ldGhvZFVwZGF0ZSAqcGxhdGZvcm1VcGRhdGUoKSBjb25zdDsKLQotI2lmIEhBVkUoUEFT
U0tJVF9JTlNUQUxMTUVOVFMpCi0gICAgdm9pZCBzZXRJbnN0YWxsbWVudEdyb3VwSWRlbnRpZmll
cihjb25zdCBTdHJpbmcmKTsKLSNlbmRpZgotCi1wcml2YXRlOgotICAgIE9wdGlvbmFsPFRvdGFs
QW5kTGluZUl0ZW1zPiBtX3RvdGFsQW5kTGluZUl0ZW1zOwotICAgIFJldGFpblB0cjxQS1BheW1l
bnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZT4gbV9wbGF0Zm9ybVVwZGF0ZTsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFs
aWRhdG9yLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVz
dFZhbGlkYXRvci5tbQppbmRleCBlZjlmNmU4MjQ4NDY1ZmUzYWZiM2E2M2Q2YmJmMjhmNzBlODFk
M2JjLi5kMDBjODhjODM4OGQwNDRiYWQwNWE4NjVkNGRlZTEzOThmY2YwMDQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRhdG9y
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFJlcXVlc3RW
YWxpZGF0b3IubW0KQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCiAj
aW1wb3J0ICJBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oIgorI2ltcG9ydCAiQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZC5oIgogI2ltcG9ydCA8dW5pY29kZS91Y3Vyci5oPgogI2ltcG9ydCA8
dW5pY29kZS91bG9jLmg+CiAKQEAgLTM4LDggKzM5LDggQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZv
aWQ+IHZhbGlkYXRlQ291bnRyeUNvZGUoY29uc3QgU3RyaW5nJik7CiBzdGF0aWMgRXhjZXB0aW9u
T3I8dm9pZD4gdmFsaWRhdGVDdXJyZW5jeUNvZGUoY29uc3QgU3RyaW5nJik7CiBzdGF0aWMgRXhj
ZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVNZXJjaGFudENhcGFiaWxpdGllcyhjb25zdCBBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdDo6TWVyY2hhbnRDYXBhYmlsaXRpZXMmKTsKIHN0YXRpYyBF
eGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVN1cHBvcnRlZE5ldHdvcmtzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+Jik7Ci1zdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVTaGlwcGluZ01ldGhv
ZHMoY29uc3QgVmVjdG9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01l
dGhvZD4mKTsKLXN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5nTWV0aG9k
KGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpOwor
c3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlU2hpcHBpbmdNZXRob2RzKGNvbnN0IFZl
Y3RvcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiYpOworc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+
IHZhbGlkYXRlU2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYpOwog
CiBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50UmVxdWVzdFZhbGlkYXRvcjo6dmFsaWRhdGUoY29u
c3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmIHBheW1lbnRSZXF1ZXN0KQogewpAQCAt
MTQxLDcgKzE0Miw3IEBAIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVN1cHBvcnRl
ZE5ldHdvcmtzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBzdXBwb3J0CiAgICAgcmV0dXJuIHsgfTsK
IH0KIAotc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlU2hpcHBpbmdNZXRob2QoY29u
c3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGlu
Z01ldGhvZCkKK3N0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5nTWV0aG9k
KGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQogewogICAgIE5T
RGVjaW1hbE51bWJlciAqYW1vdW50ID0gW05TRGVjaW1hbE51bWJlciBkZWNpbWFsTnVtYmVyV2l0
aFN0cmluZzpzaGlwcGluZ01ldGhvZC5hbW91bnQgbG9jYWxlOkB7IE5TTG9jYWxlRGVjaW1hbFNl
cGFyYXRvciA6IEAiLiIgfV07CiAgICAgaWYgKGFtb3VudC5pbnRlZ2VyVmFsdWUgPCAwKQpAQCAt
MTUwLDcgKzE1MSw3IEBAIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5n
TWV0aG9kKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1CiAgICAgcmV0dXJuIHsgfTsK
IH0KIAotc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlU2hpcHBpbmdNZXRob2RzKGNv
bnN0IFZlY3RvcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+
JiBzaGlwcGluZ01ldGhvZHMpCitzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVTaGlw
cGluZ01ldGhvZHMoY29uc3QgVmVjdG9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGlu
Z01ldGhvZHMpCiB7CiAgICAgZm9yIChjb25zdCBhdXRvJiBzaGlwcGluZ01ldGhvZCA6IHNoaXBw
aW5nTWV0aG9kcykgewogICAgICAgICBhdXRvIHZhbGlkYXRlZFNoaXBwaW5nTWV0aG9kID0gdmFs
aWRhdGVTaGlwcGluZ01ldGhvZChzaGlwcGluZ01ldGhvZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uLmgKaW5kZXggY2U1Y2Y1Mzk4ZWFiMWMx
YWMxMWVmN2MwMjEyYjI5YjM3YzI2NzAzMi4uZjVkZmZkMGVlYzEyYTZkYzA3NWIwZTVkNmUzODAy
MGYyOTZmNjE1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9Q
YXltZW50U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5
bWVudFNlc3Npb24uaApAQCAtMjcsNyArMjcsNiBAQAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkK
IAotI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJQYXltZW50U2Vzc2lvbkJhc2UuaCIKIApAQCAtMzks
NiArMzgsNyBAQCBjbGFzcyBQYXltZW50Q29udGFjdDsKIGNsYXNzIFBheW1lbnRNZXRob2Q7CiBj
bGFzcyBQYXltZW50U2Vzc2lvbkVycm9yOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsK
K3N0cnVjdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kOwogCiBjbGFzcyBQYXltZW50U2Vzc2lvbiA6
IHB1YmxpYyB2aXJ0dWFsIFBheW1lbnRTZXNzaW9uQmFzZSB7CiBwdWJsaWM6CkBAIC00OCw3ICs0
OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHVuc2lnbmVkIHZlcnNpb24oKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlTWVyY2hhbnQoVVJMJiYpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBQYXltZW50JikgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRp
ZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2QmKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChjb25zdCBQYXltZW50
Q29udGFjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkU2VsZWN0UGF5bWVudE1ldGhvZChj
b25zdCBQYXltZW50TWV0aG9kJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxQYXlt
ZW50U2Vzc2lvbihQYXltZW50U2Vzc2lvbkVycm9yJiYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFN1bW1hcnlJdGVtcy5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U3VtbWFyeUl0ZW1zLmgKaW5kZXggZmZm
ODQ0ZDc3OTViMzk1ZGVhMTIwMWMxMzcwNmZlNzNkOTZmOGY5YS4uMmJkM2VlYzkzODBlYzMxNTk3
NTkzMTkwODlhYTk4ZjM4MjZlNTZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9QYXltZW50U3VtbWFyeUl0ZW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9QYXltZW50U3VtbWFyeUl0ZW1zLmgKQEAgLTI3LDEzICsyNywxMiBAQAog
CiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAotI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0LmgiCi0KIE9CSkNfQ0xBU1MgTlNBcnJheTsKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1XRUJDT1JFX0VYUE9SVCBOU0FycmF5ICpwbGF0Zm9ybVN1bW1hcnlJdGVtcyhjb25zdCBB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXMmKTsKK3N0cnVj
dCBBcHBsZVBheUxpbmVJdGVtOworCiBXRUJDT1JFX0VYUE9SVCBOU0FycmF5ICpwbGF0Zm9ybVN1
bW1hcnlJdGVtcyhjb25zdCBBcHBsZVBheUxpbmVJdGVtJiB0b3RhbCwgY29uc3QgVmVjdG9yPEFw
cGxlUGF5TGluZUl0ZW0+Jik7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudE1ldGhvZFVwZGF0
ZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50
TWV0aG9kVXBkYXRlQ29jb2EubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2NGQx
MWI2ZDA3Njk3YTlkMDk1OTU2NWM2ZmMxZDY4NzhmYWE1MGMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9jb2NvYS9QYXltZW50TWV0aG9kVXBkYXRlQ29jb2EubW0KKysrIC9kZXYvbnVsbApAQCAtMSw3
MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJQYXlt
ZW50TWV0aG9kVXBkYXRlLmgiCi0KLSNpZiBFTkFCTEUoQVBQTEVfUEFZKQotCi0jaW1wb3J0ICJQ
YXltZW50U3VtbWFyeUl0ZW1zLmgiCi0jaW1wb3J0IDxwYWwvY29jb2EvUGFzc0tpdFNvZnRMaW5r
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUGF5bWVudE1ldGhvZFVwZGF0ZTo6UGF5bWVu
dE1ldGhvZFVwZGF0ZShBcHBsZVBheUxpbmVJdGVtJiYgdG90YWwsIFZlY3RvcjxBcHBsZVBheUxp
bmVJdGVtPiYmIGxpbmVJdGVtcykKLSAgICA6IG1fdG90YWxBbmRMaW5lSXRlbXMgeyB7IFdURk1v
dmUodG90YWwpLCBXVEZNb3ZlKGxpbmVJdGVtcykgfSB9Ci0gICAgLCBtX3BsYXRmb3JtVXBkYXRl
IHsgYWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRl
SW5zdGFuY2UoKSBpbml0V2l0aFBheW1lbnRTdW1tYXJ5SXRlbXM6cGxhdGZvcm1TdW1tYXJ5SXRl
bXMoKm1fdG90YWxBbmRMaW5lSXRlbXMpXSkgfQotewotfQotCi1QYXltZW50TWV0aG9kVXBkYXRl
OjpQYXltZW50TWV0aG9kVXBkYXRlKFJldGFpblB0cjxQS1BheW1lbnRSZXF1ZXN0UGF5bWVudE1l
dGhvZFVwZGF0ZT4mJiBwbGF0Zm9ybVVwZGF0ZSkKLSAgICA6IG1fcGxhdGZvcm1VcGRhdGUgeyBX
VEZNb3ZlKHBsYXRmb3JtVXBkYXRlKSB9Ci17Ci19Ci0KLVBheW1lbnRNZXRob2RVcGRhdGU6OlBh
eW1lbnRNZXRob2RVcGRhdGUoVG90YWxBbmRMaW5lSXRlbXMmJiB0b3RhbEFuZExpbmVJdGVtcykK
LSAgICA6IFBheW1lbnRNZXRob2RVcGRhdGUgeyBXVEZNb3ZlKHRvdGFsQW5kTGluZUl0ZW1zLnRv
dGFsKSwgV1RGTW92ZSh0b3RhbEFuZExpbmVJdGVtcy5saW5lSXRlbXMpIH0KLXsKLX0KLQotY29u
c3QgUGF5bWVudE1ldGhvZFVwZGF0ZTo6VG90YWxBbmRMaW5lSXRlbXMmIFBheW1lbnRNZXRob2RV
cGRhdGU6OnRvdGFsQW5kTGluZUl0ZW1zKCkgY29uc3QKLXsKLSAgICByZXR1cm4gKm1fdG90YWxB
bmRMaW5lSXRlbXM7Ci19Ci0KLVBLUGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlICpQ
YXltZW50TWV0aG9kVXBkYXRlOjpwbGF0Zm9ybVVwZGF0ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1fcGxhdGZvcm1VcGRhdGUuZ2V0KCk7Ci19Ci0KLSNpZiBIQVZFKFBBU1NLSVRfSU5TVEFMTE1F
TlRTKQotdm9pZCBQYXltZW50TWV0aG9kVXBkYXRlOjpzZXRJbnN0YWxsbWVudEdyb3VwSWRlbnRp
Zmllcihjb25zdCBTdHJpbmcmIGluc3RhbGxtZW50R3JvdXBJZGVudGlmaWVyKQotewotICAgIFtt
X3BsYXRmb3JtVXBkYXRlIHNldEluc3RhbGxtZW50R3JvdXBJZGVudGlmaWVyOmluc3RhbGxtZW50
R3JvdXBJZGVudGlmaWVyXTsKLX0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0K
LSNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRTdW1tYXJ5SXRlbXNDb2Nv
YS5tbQppbmRleCBlNzk5YTljY2Q5NTFkYjMwM2JhNjI3MGNhOTMyNDFjMGQ4NDc0NDUwLi4xMWVk
YjBiNDk2ZGQ3OTAzZjBmYjVhMmM2MmU2ZWY4MjFhY2M0MmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRTdW1tYXJ5SXRlbXNDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRTdW1t
YXJ5SXRlbXNDb2NvYS5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEFQUExFX1BB
WSkKIAorI2ltcG9ydCAiQXBwbGVQYXlMaW5lSXRlbS5oIgogI2ltcG9ydCA8cGFsL2NvY29hL1Bh
c3NLaXRTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02MCwxMSArNjEsNiBA
QCBzdGF0aWMgUEtQYXltZW50U3VtbWFyeUl0ZW0gKnRvUEtQYXltZW50U3VtbWFyeUl0ZW0oY29u
c3QgQXBwbGVQYXlMaW5lSXRlbSYgbGluZQogfQogI2VuZGlmCiAKLU5TQXJyYXkgKnBsYXRmb3Jt
U3VtbWFyeUl0ZW1zKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFu
ZExpbmVJdGVtcyYgdG90YWxBbmRMaW5lSXRlbXMpCi17Ci0gICAgcmV0dXJuIHBsYXRmb3JtU3Vt
bWFyeUl0ZW1zKHRvdGFsQW5kTGluZUl0ZW1zLnRvdGFsLCB0b3RhbEFuZExpbmVJdGVtcy5saW5l
SXRlbXMpOwotfQotCiBOU0FycmF5ICpwbGF0Zm9ybVN1bW1hcnlJdGVtcyhjb25zdCBBcHBsZVBh
eUxpbmVJdGVtJiB0b3RhbCwgY29uc3QgVmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+JiBsaW5lSXRl
bXMpCiB7CiAgICAgTlNNdXRhYmxlQXJyYXkgKnBheW1lbnRTdW1tYXJ5SXRlbXMgPSBbTlNNdXRh
YmxlQXJyYXkgYXJyYXlXaXRoQ2FwYWNpdHk6bGluZUl0ZW1zLnNpemUoKSArIDFdOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBs
ZVBheVBheW1lbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
cGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAKaW5kZXggN2VjMDM3MGZm
ZWZlMzM2Mjg5MWZmMTUyN2QyZTE4YWU1ZDFiODk2MC4uOTBkMzM0OWUwMGY0ZGRiNzBkYmM0Mjhm
OTZmN2M3YTY0Njg1ZjI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVu
dEhhbmRsZXIuY3BwCkBAIC0zMCwxMSArMzAsMTkgQEAKIAogI2luY2x1ZGUgIkFkZHJlc3NFcnJv
cnMuaCIKICNpbmNsdWRlICJBcHBsZVBheUNvbnRhY3RGaWVsZC5oIgorI2luY2x1ZGUgIkFwcGxl
UGF5RGV0YWlsc1VwZGF0ZURhdGEuaCIKKyNpbmNsdWRlICJBcHBsZVBheUVycm9yLmgiCisjaW5j
bHVkZSAiQXBwbGVQYXlFcnJvckNvZGUuaCIKKyNpbmNsdWRlICJBcHBsZVBheUVycm9yQ29udGFj
dEZpZWxkLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlMaW5lSXRlbS5oIgogI2luY2x1ZGUgIkFwcGxl
UGF5TWVyY2hhbnRDYXBhYmlsaXR5LmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlNb2RpZmllci5oIgog
I2luY2x1ZGUgIkFwcGxlUGF5UGF5bWVudC5oIgorI2luY2x1ZGUgIkFwcGxlUGF5UGF5bWVudE1l
dGhvZFVwZGF0ZS5oIgogI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Lmgi
CisjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaCIKKyNpbmNsdWRlICJB
cHBsZVBheVNoaXBwaW5nTWV0aG9kLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ01ldGhv
ZFVwZGF0ZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC01NCw3ICs2Miw2IEBACiAjaW5jbHVkZSAiUGF5bWVu
dENvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAiUGF5bWVudE1lcmNoYW50U2Vzc2lvbi5oIgogI2lu
Y2x1ZGUgIlBheW1lbnRNZXRob2QuaCIKLSNpbmNsdWRlICJQYXltZW50TWV0aG9kVXBkYXRlLmgi
CiAjaW5jbHVkZSAiUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IuaCIKICNpbmNsdWRlICJQYXltZW50
UmVzcG9uc2UuaCIKICNpbmNsdWRlICJQYXltZW50VmFsaWRhdGlvbkVycm9ycy5oIgpAQCAtMTk4
LDE5ICsyMDUsNDUgQEAgc3RhdGljIEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlw
cGluZ1R5cGUgY29udmVydChQYXltZW50U2hpcHBpbmdUeXBlIHQKICAgICByZXR1cm4gQXBwbGVQ
YXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nVHlwZTo6U2hpcHBpbmc7CiB9CiAKLXN0
YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdN
ZXRob2Q+IGNvbnZlcnRBbmRWYWxpZGF0ZShjb25zdCBQYXltZW50U2hpcHBpbmdPcHRpb24mIHNo
aXBwaW5nT3B0aW9uLCBjb25zdCBTdHJpbmcmIGV4cGVjdGVkQ3VycmVuY3kpCitzdGF0aWMgRXhj
ZXB0aW9uT3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4gY29udmVydEFuZFZhbGlkYXRlKGNvbnN0
IFBheW1lbnRTaGlwcGluZ09wdGlvbiYgc2hpcHBpbmdPcHRpb24sIGNvbnN0IFN0cmluZyYgZXhw
ZWN0ZWRDdXJyZW5jeSkKIHsKICAgICBhdXRvIGV4Y2VwdGlvbiA9IHZhbGlkYXRlKHNoaXBwaW5n
T3B0aW9uLmFtb3VudCwgZXhwZWN0ZWRDdXJyZW5jeSk7CiAgICAgaWYgKGV4Y2VwdGlvbi5oYXNF
eGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGV4Y2VwdGlvbi5yZWxlYXNlRXhjZXB0aW9uKCk7
CiAKLSAgICBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QgcmVz
dWx0OworICAgIEFwcGxlUGF5U2hpcHBpbmdNZXRob2QgcmVzdWx0OwogICAgIHJlc3VsdC5hbW91
bnQgPSBzaGlwcGluZ09wdGlvbi5hbW91bnQudmFsdWU7CiAgICAgcmVzdWx0LmxhYmVsID0gc2hp
cHBpbmdPcHRpb24ubGFiZWw7CiAgICAgcmVzdWx0LmlkZW50aWZpZXIgPSBzaGlwcGluZ09wdGlv
bi5pZDsKICAgICByZXR1cm4geyBXVEZNb3ZlKHJlc3VsdCkgfTsKIH0KIAorI2lmICFFTkFCTEUo
QVBQTEVfUEFZX1BBWU1FTlRfREVUQUlMU19EQVRBKQorc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+
IHZhbGlkYXRlKGNvbnN0IEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEmKSB7IHJldHVybiB7IH07
IH0KKyNlbmRpZgorCitzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0
YT4gY29udmVydEFuZFZhbGlkYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNv
bnN0IFBheW1lbnREZXRhaWxzQmFzZSYgZGV0YWlscykKK3sKKyAgICBhdXRvJiBsZXhpY2FsR2xv
YmFsT2JqZWN0ID0gKmNvbnRleHQuZ2xvYmFsT2JqZWN0KCk7CisgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUobGV4aWNhbEdsb2JhbE9iamVjdC52bSgpKTsKKyAgICBKU0M6OkpT
VmFsdWUgZGF0YTsKKyAgICB7CisgICAgICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2soJmxleGlj
YWxHbG9iYWxPYmplY3QpOworICAgICAgICBkYXRhID0gSlNPTlBhcnNlKCZsZXhpY2FsR2xvYmFs
T2JqZWN0LCBkZXRhaWxzLnNlcmlhbGl6ZWREYXRhKTsKKyAgICAgICAgaWYgKHNjb3BlLmV4Y2Vw
dGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9u
RXJyb3IgfTsKKyAgICB9CisKKyAgICBhdXRvIGFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEgPSBj
b252ZXJ0RGljdGlvbmFyeTxBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhPihsZXhpY2FsR2xvYmFs
T2JqZWN0LCBXVEZNb3ZlKGRhdGEpKTsKKyAgICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkpCisgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH07CisgICAgYXV0
byBleGNlcHRpb24gPSB2YWxpZGF0ZShhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhKTsKKyAgICBp
ZiAoZXhjZXB0aW9uLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gZXhjZXB0aW9uLnJl
bGVhc2VFeGNlcHRpb24oKTsKKworICAgIHJldHVybiBhcHBsZVBheURldGFpbHNVcGRhdGVEYXRh
OworfQorCiBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb252ZXJ0
RGF0YShKU0M6OkpTVmFsdWUgZGF0YSkKIHsKICAgICBhdXRvIHJlcXVlc3RPckV4Y2VwdGlvbiA9
IGNvbnZlcnRBbmRWYWxpZGF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBkYXRhKTsKQEAg
LTIzOCw2ICsyNzEsMTAgQEAgc3RhdGljIHZvaWQgbWVyZ2VQYXltZW50T3B0aW9ucyhjb25zdCBQ
YXltZW50T3B0aW9ucyYgb3B0aW9ucywgQXBwbGVQYXlTZXNzaW9uUGEKICAgICAgICAgcmVxdWVz
dC5zZXRTaGlwcGluZ1R5cGUoY29udmVydChvcHRpb25zLnNoaXBwaW5nVHlwZSkpOwogfQogCisj
aWYgIUVOQUJMRShBUFBMRV9QQVlfUEFZTUVOVF9ERVRBSUxTX0RBVEEpCitzdGF0aWMgdm9pZCBt
ZXJnZShBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYsIEFwcGxlUGF5RGV0YWlsc1VwZGF0
ZURhdGEmJikgeyB9CisjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWV9QQVlNRU5UX0RFVEFJTFNf
REFUQSkKKwogRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6c2hvdyhE
b2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgYXV0byB2YWxpZGF0ZWRSZXF1ZXN0ID0gY29udmVy
dEFuZFZhbGlkYXRlKGRvY3VtZW50LCBtX2FwcGxlUGF5UmVxdWVzdC0+dmVyc2lvbiwgKm1fYXBw
bGVQYXlSZXF1ZXN0LCBwYXltZW50Q29vcmRpbmF0b3IoKSk7CkBAIC0yNzAsNiArMzA3LDExIEBA
IEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnNob3coRG9jdW1lbnQm
IGRvY3VtZW50KQogICAgICAgICByZXR1cm4gc2hpcHBpbmdNZXRob2RzLnJlbGVhc2VFeGNlcHRp
b24oKTsKICAgICByZXF1ZXN0LnNldFNoaXBwaW5nTWV0aG9kcyhzaGlwcGluZ01ldGhvZHMucmVs
ZWFzZVJldHVyblZhbHVlKCkpOwogCisgICAgYXV0byBhcHBsZVBheURldGFpbHNVcGRhdGVEYXRh
ID0gY29udmVydEFuZFZhbGlkYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fcGF5bWVu
dFJlcXVlc3QtPnBheW1lbnREZXRhaWxzKCkpOworICAgIGlmIChhcHBsZVBheURldGFpbHNVcGRh
dGVEYXRhLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICByZXR1cm4gYXBwbGVQYXlEZXRhaWxzVXBk
YXRlRGF0YS5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgbWVyZ2UocmVxdWVzdCwgYXBwbGVQYXlE
ZXRhaWxzVXBkYXRlRGF0YS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CisKICAgICBhdXRvIGV4Y2Vw
dGlvbiA9IFBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yOjp2YWxpZGF0ZShyZXF1ZXN0KTsKICAgICBp
ZiAoZXhjZXB0aW9uLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gZXhjZXB0aW9uLnJl
bGVhc2VFeGNlcHRpb24oKTsKQEAgLTI5MCwxMSArMzMyLDExIEBAIHZvaWQgQXBwbGVQYXlQYXlt
ZW50SGFuZGxlcjo6Y2FuTWFrZVBheW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGdW5jdGlvbjx2
b2lkKGJvCiAgICAgY29tcGxldGlvbkhhbmRsZXIocGF5bWVudENvb3JkaW5hdG9yKCkuY2FuTWFr
ZVBheW1lbnRzKGRvY3VtZW50KSk7CiB9CiAKLUV4Y2VwdGlvbk9yPFZlY3RvcjxBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+PiBBcHBsZVBheVBheW1lbnRIYW5k
bGVyOjpjb21wdXRlU2hpcHBpbmdNZXRob2RzKCkKK0V4Y2VwdGlvbk9yPFZlY3RvcjxBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kPj4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcHV0ZVNoaXBwaW5n
TWV0aG9kcygpCiB7CiAgICAgYXV0byYgZGV0YWlscyA9IG1fcGF5bWVudFJlcXVlc3QtPnBheW1l
bnREZXRhaWxzKCk7CiAKLSAgICBWZWN0b3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6
OlNoaXBwaW5nTWV0aG9kPiBzaGlwcGluZ09wdGlvbnM7CisgICAgVmVjdG9yPEFwcGxlUGF5U2hp
cHBpbmdNZXRob2Q+IHNoaXBwaW5nT3B0aW9uczsKICAgICBpZiAoZGV0YWlscy5zaGlwcGluZ09w
dGlvbnMpIHsKICAgICAgICAgYXV0byYgY3VycmVuY3kgPSBkZXRhaWxzLnRvdGFsLmFtb3VudC5j
dXJyZW5jeTsKIApAQCAtMzEwLDcgKzM1Miw3IEBAIEV4Y2VwdGlvbk9yPFZlY3RvcjxBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+PiBBcHBsZVBheVBheW1lCiAg
ICAgcmV0dXJuIFdURk1vdmUoc2hpcHBpbmdPcHRpb25zKTsKIH0KIAotRXhjZXB0aW9uT3I8QXBw
bGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zPiBBcHBsZVBheVBh
eW1lbnRIYW5kbGVyOjpjb21wdXRlVG90YWxBbmRMaW5lSXRlbXMoKSBjb25zdAorRXhjZXB0aW9u
T3I8c3RkOjp0dXBsZTxBcHBsZVBheUxpbmVJdGVtLCBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4+
PiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21wdXRlVG90YWxBbmRMaW5lSXRlbXMoKSBjb25z
dAogewogICAgIGF1dG8mIGRldGFpbHMgPSBtX3BheW1lbnRSZXF1ZXN0LT5wYXltZW50RGV0YWls
cygpOwogICAgIFN0cmluZyBjdXJyZW5jeSA9IGRldGFpbHMudG90YWwuYW1vdW50LmN1cnJlbmN5
OwpAQCAtMzI5LDcgKzM3MSw3IEBAIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRS
ZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz4gQXBwbGVQYXlQYXltZW50SGFuCiAgICAgfQogCiAg
ICAgaWYgKCFtX3NlbGVjdGVkUGF5bWVudE1ldGhvZFR5cGUpCi0gICAgICAgIHJldHVybiBBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXMgeyBXVEZNb3ZlKHRv
dGFsKSwgV1RGTW92ZShsaW5lSXRlbXMpIH07CisgICAgICAgIHJldHVybiB7eyBXVEZNb3ZlKHRv
dGFsKSwgV1RGTW92ZShsaW5lSXRlbXMpIH19OwogCiAgICAgaWYgKGRldGFpbHMubW9kaWZpZXJz
KSB7CiAgICAgICAgIGF1dG8mIHNlcmlhbGl6ZWRNb2RpZmllckRhdGEgPSBtX3BheW1lbnRSZXF1
ZXN0LT5zZXJpYWxpemVkTW9kaWZpZXJEYXRhKCk7CkBAIC0zNzYsMTggKzQxOCwxOCBAQCBFeGNl
cHRpb25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXM+
IEFwcGxlUGF5UGF5bWVudEhhbgogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIEFwcGxl
UGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcyB7IFdURk1vdmUodG90
YWwpLCBXVEZNb3ZlKGxpbmVJdGVtcykgfTsKKyAgICByZXR1cm4ge3sgV1RGTW92ZSh0b3RhbCks
IFdURk1vdmUobGluZUl0ZW1zKSB9fTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGFwcGVuZFNo
aXBwaW5nQ29udGFjdEludmFsaWRFcnJvcihTdHJpbmcmJiBtZXNzYWdlLCBPcHRpb25hbDxQYXlt
ZW50RXJyb3I6OkNvbnRhY3RGaWVsZD4gY29udGFjdEZpZWxkLCBWZWN0b3I8UGF5bWVudEVycm9y
PiYgZXJyb3JzKQorc3RhdGljIGlubGluZSB2b2lkIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFs
aWRFcnJvcihTdHJpbmcmJiBtZXNzYWdlLCBPcHRpb25hbDxBcHBsZVBheUVycm9yQ29udGFjdEZp
ZWxkPiBjb250YWN0RmllbGQsIFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+JiBlcnJvcnMp
CiB7CiAgICAgaWYgKCFtZXNzYWdlLmlzTnVsbCgpKQotICAgICAgICBlcnJvcnMuYXBwZW5kKHsg
UGF5bWVudEVycm9yOjpDb2RlOjpTaGlwcGluZ0NvbnRhY3RJbnZhbGlkLCBXVEZNb3ZlKG1lc3Nh
Z2UpLCBXVEZNb3ZlKGNvbnRhY3RGaWVsZCkgfSk7CisgICAgICAgIGVycm9ycy5hcHBlbmQoQXBw
bGVQYXlFcnJvcjo6Y3JlYXRlKEFwcGxlUGF5RXJyb3JDb2RlOjpTaGlwcGluZ0NvbnRhY3RJbnZh
bGlkLCBXVEZNb3ZlKGNvbnRhY3RGaWVsZCksIFdURk1vdmUobWVzc2FnZSkpKTsKIH0KIAotVmVj
dG9yPFBheW1lbnRFcnJvcj4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcHV0ZUVycm9ycyhT
dHJpbmcmJiBlcnJvciwgQWRkcmVzc0Vycm9ycyYmIGFkZHJlc3NFcnJvcnMsIFBheWVyRXJyb3JG
aWVsZHMmJiBwYXllckVycm9ycywgSlNDOjpKU09iamVjdCogcGF5bWVudE1ldGhvZEVycm9ycykg
Y29uc3QKK1ZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+IEFwcGxlUGF5UGF5bWVudEhhbmRs
ZXI6OmNvbXB1dGVFcnJvcnMoU3RyaW5nJiYgZXJyb3IsIEFkZHJlc3NFcnJvcnMmJiBhZGRyZXNz
RXJyb3JzLCBQYXllckVycm9yRmllbGRzJiYgcGF5ZXJFcnJvcnMsIEpTQzo6SlNPYmplY3QqIHBh
eW1lbnRNZXRob2RFcnJvcnMpIGNvbnN0CiB7Ci0gICAgVmVjdG9yPFBheW1lbnRFcnJvcj4gZXJy
b3JzOworICAgIFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+IGVycm9yczsKIAogICAgIGF1
dG8mIGRldGFpbHMgPSBtX3BheW1lbnRSZXF1ZXN0LT5wYXltZW50RGV0YWlscygpOwogCkBAIC00
MDYsMzkgKzQ0OCwzNyBAQCBWZWN0b3I8UGF5bWVudEVycm9yPiBBcHBsZVBheVBheW1lbnRIYW5k
bGVyOjpjb21wdXRlRXJyb3JzKFN0cmluZyYmIGVycm9yLCBBZGRyZQogICAgIHJldHVybiBlcnJv
cnM7CiB9CiAKLXZvaWQgQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcHV0ZUFkZHJlc3NFcnJv
cnMoU3RyaW5nJiYgZXJyb3IsIEFkZHJlc3NFcnJvcnMmJiBhZGRyZXNzRXJyb3JzLCBWZWN0b3I8
UGF5bWVudEVycm9yPiYgZXJyb3JzKSBjb25zdAordm9pZCBBcHBsZVBheVBheW1lbnRIYW5kbGVy
Ojpjb21wdXRlQWRkcmVzc0Vycm9ycyhTdHJpbmcmJiBlcnJvciwgQWRkcmVzc0Vycm9ycyYmIGFk
ZHJlc3NFcnJvcnMsIFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+JiBlcnJvcnMpIGNvbnN0
CiB7CiAgICAgaWYgKCFtX3BheW1lbnRSZXF1ZXN0LT5wYXltZW50T3B0aW9ucygpLnJlcXVlc3RT
aGlwcGluZykKICAgICAgICAgcmV0dXJuOwogCi0gICAgdXNpbmcgQ29udGFjdEZpZWxkID0gUGF5
bWVudEVycm9yOjpDb250YWN0RmllbGQ7CiAgICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxp
ZEVycm9yKFdURk1vdmUoZXJyb3IpLCBXVEY6Om51bGxvcHQsIGVycm9ycyk7Ci0gICAgYXBwZW5k
U2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRkcmVzc0Vycm9ycy5hZGRyZXNz
TGluZSksIENvbnRhY3RGaWVsZDo6QWRkcmVzc0xpbmVzLCBlcnJvcnMpOwotICAgIGFwcGVuZFNo
aXBwaW5nQ29udGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMuY2l0eSksIENv
bnRhY3RGaWVsZDo6TG9jYWxpdHksIGVycm9ycyk7Ci0gICAgYXBwZW5kU2hpcHBpbmdDb250YWN0
SW52YWxpZEVycm9yKFdURk1vdmUoYWRkcmVzc0Vycm9ycy5jb3VudHJ5KSwgQ29udGFjdEZpZWxk
OjpDb3VudHJ5LCBlcnJvcnMpOwotICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJv
cihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMuZGVwZW5kZW50TG9jYWxpdHkpLCBDb250YWN0RmllbGQ6
OlN1YkxvY2FsaXR5LCBlcnJvcnMpOwotICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRF
cnJvcihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMucGhvbmUpLCBDb250YWN0RmllbGQ6OlBob25lTnVt
YmVyLCBlcnJvcnMpOwotICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJvcihXVEZN
b3ZlKGFkZHJlc3NFcnJvcnMucG9zdGFsQ29kZSksIENvbnRhY3RGaWVsZDo6UG9zdGFsQ29kZSwg
ZXJyb3JzKTsKLSAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShh
ZGRyZXNzRXJyb3JzLnJlY2lwaWVudCksIENvbnRhY3RGaWVsZDo6TmFtZSwgZXJyb3JzKTsKLSAg
ICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShhZGRyZXNzRXJyb3Jz
LnJlZ2lvbiksIENvbnRhY3RGaWVsZDo6QWRtaW5pc3RyYXRpdmVBcmVhLCBlcnJvcnMpOworICAg
IGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMu
YWRkcmVzc0xpbmUpLCBBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpBZGRyZXNzTGluZXMsIGVy
cm9ycyk7CisgICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRk
cmVzc0Vycm9ycy5jaXR5KSwgQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6TG9jYWxpdHksIGVy
cm9ycyk7CisgICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRk
cmVzc0Vycm9ycy5jb3VudHJ5KSwgQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6Q291bnRyeSwg
ZXJyb3JzKTsKKyAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShh
ZGRyZXNzRXJyb3JzLmRlcGVuZGVudExvY2FsaXR5KSwgQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVs
ZDo6U3ViTG9jYWxpdHksIGVycm9ycyk7CisgICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxp
ZEVycm9yKFdURk1vdmUoYWRkcmVzc0Vycm9ycy5waG9uZSksIEFwcGxlUGF5RXJyb3JDb250YWN0
RmllbGQ6OlBob25lTnVtYmVyLCBlcnJvcnMpOworICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdElu
dmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMucG9zdGFsQ29kZSksIEFwcGxlUGF5RXJy
b3JDb250YWN0RmllbGQ6OlBvc3RhbENvZGUsIGVycm9ycyk7CisgICAgYXBwZW5kU2hpcHBpbmdD
b250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRkcmVzc0Vycm9ycy5yZWNpcGllbnQpLCBBcHBs
ZVBheUVycm9yQ29udGFjdEZpZWxkOjpOYW1lLCBlcnJvcnMpOworICAgIGFwcGVuZFNoaXBwaW5n
Q29udGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMucmVnaW9uKSwgQXBwbGVQ
YXlFcnJvckNvbnRhY3RGaWVsZDo6QWRtaW5pc3RyYXRpdmVBcmVhLCBlcnJvcnMpOwogfQogCi12
b2lkIEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVQYXllckVycm9ycyhQYXllckVycm9y
RmllbGRzJiYgcGF5ZXJFcnJvcnMsIFZlY3RvcjxQYXltZW50RXJyb3I+JiBlcnJvcnMpIGNvbnN0
Cit2b2lkIEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVQYXllckVycm9ycyhQYXllckVy
cm9yRmllbGRzJiYgcGF5ZXJFcnJvcnMsIFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+JiBl
cnJvcnMpIGNvbnN0CiB7CiAgICAgYXV0byYgb3B0aW9ucyA9IG1fcGF5bWVudFJlcXVlc3QtPnBh
eW1lbnRPcHRpb25zKCk7Ci0gICAgdXNpbmcgQ29udGFjdEZpZWxkID0gUGF5bWVudEVycm9yOjpD
b250YWN0RmllbGQ7CiAKICAgICBpZiAob3B0aW9ucy5yZXF1ZXN0UGF5ZXJOYW1lKQotICAgICAg
ICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShwYXllckVycm9ycy5u
YW1lKSwgQ29udGFjdEZpZWxkOjpOYW1lLCBlcnJvcnMpOworICAgICAgICBhcHBlbmRTaGlwcGlu
Z0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShwYXllckVycm9ycy5uYW1lKSwgQXBwbGVQYXlF
cnJvckNvbnRhY3RGaWVsZDo6TmFtZSwgZXJyb3JzKTsKIAogICAgIGlmIChvcHRpb25zLnJlcXVl
c3RQYXllckVtYWlsKQotICAgICAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3Io
V1RGTW92ZShwYXllckVycm9ycy5lbWFpbCksIENvbnRhY3RGaWVsZDo6RW1haWxBZGRyZXNzLCBl
cnJvcnMpOworICAgICAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92
ZShwYXllckVycm9ycy5lbWFpbCksIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OkVtYWlsQWRk
cmVzcywgZXJyb3JzKTsKIAogICAgIGlmIChvcHRpb25zLnJlcXVlc3RQYXllclBob25lKQotICAg
ICAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShwYXllckVycm9y
cy5waG9uZSksIENvbnRhY3RGaWVsZDo6UGhvbmVOdW1iZXIsIGVycm9ycyk7CisgICAgICAgIGFw
cGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKHBheWVyRXJyb3JzLnBob25l
KSwgQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UGhvbmVOdW1iZXIsIGVycm9ycyk7CiB9CiAK
LUV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVQYXltZW50
TWV0aG9kRXJyb3JzKEpTQzo6SlNPYmplY3QqIHBheW1lbnRNZXRob2RFcnJvcnMsIFZlY3RvcjxQ
YXltZW50RXJyb3I+JiBlcnJvcnMpIGNvbnN0CitFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBh
eW1lbnRIYW5kbGVyOjpjb21wdXRlUGF5bWVudE1ldGhvZEVycm9ycyhKU0M6OkpTT2JqZWN0KiBw
YXltZW50TWV0aG9kRXJyb3JzLCBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYgZXJyb3Jz
KSBjb25zdAogewogICAgIGlmICghcGF5bWVudE1ldGhvZEVycm9ycykKICAgICAgICAgcmV0dXJu
IHsgfTsKQEAgLTQ0OSw5ICs0ODksOSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1l
bnRIYW5kbGVyOjpjb21wdXRlUGF5bWVudE1ldGhvZEVycm9ycyhKU0M6OkpTT2JqZQogICAgIGlm
ICh0aHJvd1Njb3BlLmV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhp
c3RpbmdFeGNlcHRpb25FcnJvciB9OwogCi0gICAgZm9yIChhdXRvJiBhcHBsZVBheUVycm9yIDog
YXBwbGVQYXlFcnJvcnMpIHsKKyAgICBmb3IgKGF1dG8mJiBhcHBsZVBheUVycm9yIDogV1RGTW92
ZShhcHBsZVBheUVycm9ycykpIHsKICAgICAgICAgaWYgKGFwcGxlUGF5RXJyb3IpCi0gICAgICAg
ICAgICBlcnJvcnMuYXBwZW5kKHsgYXBwbGVQYXlFcnJvci0+Y29kZSgpLCBhcHBsZVBheUVycm9y
LT5tZXNzYWdlKCksIGFwcGxlUGF5RXJyb3ItPmNvbnRhY3RGaWVsZCgpIH0pOworICAgICAgICAg
ICAgZXJyb3JzLmFwcGVuZChXVEZNb3ZlKGFwcGxlUGF5RXJyb3IpKTsKICAgICB9CiAKICAgICBy
ZXR1cm4geyB9OwpAQCAtNDkyLDEyICs1MzIsMTYgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQ
YXlQYXltZW50SGFuZGxlcjo6bWVyY2hhbnRWYWxpZGF0aW9uQ29tcGxldGVkKEpTQzo6SlNWYWwK
ICAgICByZXR1cm4geyB9OwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRI
YW5kbGVyOjpzaGlwcGluZ0FkZHJlc3NVcGRhdGVkKFZlY3RvcjxQYXltZW50RXJyb3I+JiYgZXJy
b3JzKQorI2lmICFFTkFCTEUoQVBQTEVfUEFZX1BBWU1FTlRfREVUQUlMU19EQVRBKQorc3RhdGlj
IHZvaWQgbWVyZ2UoQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZSYsIEFwcGxlUGF5RGV0YWlsc1Vw
ZGF0ZURhdGEmJikgeyB9CisjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWV9QQVlNRU5UX0RFVEFJ
TFNfREFUQSkKKworRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6c2hp
cHBpbmdBZGRyZXNzVXBkYXRlZChWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYmIGVycm9y
cykKIHsKICAgICBBU1NFUlQobV9pc1VwZGF0aW5nKTsKICAgICBtX2lzVXBkYXRpbmcgPSBmYWxz
ZTsKIAotICAgIFNoaXBwaW5nQ29udGFjdFVwZGF0ZSB1cGRhdGU7CisgICAgQXBwbGVQYXlTaGlw
cGluZ0NvbnRhY3RVcGRhdGUgdXBkYXRlOwogICAgIHVwZGF0ZS5lcnJvcnMgPSBXVEZNb3ZlKGVy
cm9ycyk7CiAKICAgICBhdXRvIG5ld1NoaXBwaW5nTWV0aG9kcyA9IGNvbXB1dGVTaGlwcGluZ01l
dGhvZHMoKTsKQEAgLTUwOCw3ICs1NTIsMTIgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQ
YXltZW50SGFuZGxlcjo6c2hpcHBpbmdBZGRyZXNzVXBkYXRlZChWZWN0b3I8UGF5bWVudEUKICAg
ICBhdXRvIG5ld1RvdGFsQW5kTGluZUl0ZW1zID0gY29tcHV0ZVRvdGFsQW5kTGluZUl0ZW1zKCk7
CiAgICAgaWYgKG5ld1RvdGFsQW5kTGluZUl0ZW1zLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICBy
ZXR1cm4gbmV3VG90YWxBbmRMaW5lSXRlbXMucmVsZWFzZUV4Y2VwdGlvbigpOwotICAgIHVwZGF0
ZS5uZXdUb3RhbEFuZExpbmVJdGVtcyA9IG5ld1RvdGFsQW5kTGluZUl0ZW1zLnJlbGVhc2VSZXR1
cm5WYWx1ZSgpOworICAgIHN0ZDo6dGllKHVwZGF0ZS5uZXdUb3RhbCwgdXBkYXRlLm5ld0xpbmVJ
dGVtcykgPSBuZXdUb3RhbEFuZExpbmVJdGVtcy5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKworICAg
IGF1dG8gYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSA9IGNvbnZlcnRBbmRWYWxpZGF0ZSgqc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX3BheW1lbnRSZXF1ZXN0LT5wYXltZW50RGV0YWlscygp
KTsKKyAgICBpZiAoYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oYXNFeGNlcHRpb24oKSkKKyAg
ICAgICAgcmV0dXJuIGFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEucmVsZWFzZUV4Y2VwdGlvbigp
OworICAgIG1lcmdlKHVwZGF0ZSwgYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5yZWxlYXNlUmV0
dXJuVmFsdWUoKSk7CiAKICAgICBwYXltZW50Q29vcmRpbmF0b3IoKS5jb21wbGV0ZVNoaXBwaW5n
Q29udGFjdFNlbGVjdGlvbihXVEZNb3ZlKHVwZGF0ZSkpOwogICAgIHJldHVybiB7IH07CkBAIC01
MTksMTIgKzU2OCwxNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVy
OjpzaGlwcGluZ09wdGlvblVwZGF0ZWQoKQogICAgIEFTU0VSVChtX2lzVXBkYXRpbmcpOwogICAg
IG1faXNVcGRhdGluZyA9IGZhbHNlOwogCi0gICAgU2hpcHBpbmdNZXRob2RVcGRhdGUgdXBkYXRl
OworICAgIEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUgdXBkYXRlOwogCiAgICAgYXV0byBu
ZXdUb3RhbEFuZExpbmVJdGVtcyA9IGNvbXB1dGVUb3RhbEFuZExpbmVJdGVtcygpOwogICAgIGlm
IChuZXdUb3RhbEFuZExpbmVJdGVtcy5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIG5l
d1RvdGFsQW5kTGluZUl0ZW1zLnJlbGVhc2VFeGNlcHRpb24oKTsKLSAgICB1cGRhdGUubmV3VG90
YWxBbmRMaW5lSXRlbXMgPSBuZXdUb3RhbEFuZExpbmVJdGVtcy5yZWxlYXNlUmV0dXJuVmFsdWUo
KTsKKyAgICBzdGQ6OnRpZSh1cGRhdGUubmV3VG90YWwsIHVwZGF0ZS5uZXdMaW5lSXRlbXMpID0g
bmV3VG90YWxBbmRMaW5lSXRlbXMucmVsZWFzZVJldHVyblZhbHVlKCk7CisKKyAgICBhdXRvIGFw
cGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEgPSBjb252ZXJ0QW5kVmFsaWRhdGUoKnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSwgbV9wYXltZW50UmVxdWVzdC0+cGF5bWVudERldGFpbHMoKSk7CisgICAg
aWYgKGFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJl
dHVybiBhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICBt
ZXJnZSh1cGRhdGUsIGFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEucmVsZWFzZVJldHVyblZhbHVl
KCkpOwogCiAgICAgcGF5bWVudENvb3JkaW5hdG9yKCkuY29tcGxldGVTaGlwcGluZ01ldGhvZFNl
bGVjdGlvbihXVEZNb3ZlKHVwZGF0ZSkpOwogICAgIHJldHVybiB7IH07CkBAIC01MzUsMTEgKzU4
OSwxOSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpwYXltZW50
TWV0aG9kVXBkYXRlZCgpCiAgICAgQVNTRVJUKG1faXNVcGRhdGluZyk7CiAgICAgbV9pc1VwZGF0
aW5nID0gZmFsc2U7CiAKKyAgICBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUgdXBkYXRlOwor
CiAgICAgYXV0byBuZXdUb3RhbEFuZExpbmVJdGVtcyA9IGNvbXB1dGVUb3RhbEFuZExpbmVJdGVt
cygpOwogICAgIGlmIChuZXdUb3RhbEFuZExpbmVJdGVtcy5oYXNFeGNlcHRpb24oKSkKICAgICAg
ICAgcmV0dXJuIG5ld1RvdGFsQW5kTGluZUl0ZW1zLnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICBz
dGQ6OnRpZSh1cGRhdGUubmV3VG90YWwsIHVwZGF0ZS5uZXdMaW5lSXRlbXMpID0gbmV3VG90YWxB
bmRMaW5lSXRlbXMucmVsZWFzZVJldHVyblZhbHVlKCk7CiAKLSAgICBwYXltZW50Q29vcmRpbmF0
b3IoKS5jb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oUGF5bWVudE1ldGhvZFVwZGF0ZSB7
IG5ld1RvdGFsQW5kTGluZUl0ZW1zLnJlbGVhc2VSZXR1cm5WYWx1ZSgpIH0pOworICAgIGF1dG8g
YXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSA9IGNvbnZlcnRBbmRWYWxpZGF0ZSgqc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLCBtX3BheW1lbnRSZXF1ZXN0LT5wYXltZW50RGV0YWlscygpKTsKKyAg
ICBpZiAoYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAg
cmV0dXJuIGFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEucmVsZWFzZUV4Y2VwdGlvbigpOworICAg
IG1lcmdlKHVwZGF0ZSwgYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5yZWxlYXNlUmV0dXJuVmFs
dWUoKSk7CisKKyAgICBwYXltZW50Q29vcmRpbmF0b3IoKS5jb21wbGV0ZVBheW1lbnRNZXRob2RT
ZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUpKTsKICAgICByZXR1cm4geyB9OwogfQogCkBAIC01Njgs
NyArNjMwLDcgQEAgdm9pZCBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21wbGV0ZShPcHRpb25h
bDxQYXltZW50Q29tcGxldGU+JiYgcmVzdWx0KQogCiBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBh
eVBheW1lbnRIYW5kbGVyOjpyZXRyeShQYXltZW50VmFsaWRhdGlvbkVycm9ycyYmIHZhbGlkYXRp
b25FcnJvcnMpCiB7Ci0gICAgVmVjdG9yPFBheW1lbnRFcnJvcj4gZXJyb3JzOworICAgIFZlY3Rv
cjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+IGVycm9yczsKIAogICAgIGNvbXB1dGVBZGRyZXNzRXJy
b3JzKFdURk1vdmUodmFsaWRhdGlvbkVycm9ycy5lcnJvciksIFdURk1vdmUodmFsaWRhdGlvbkVy
cm9ycy5zaGlwcGluZ0FkZHJlc3MpLCBlcnJvcnMpOwogICAgIGNvbXB1dGVQYXllckVycm9ycyhX
VEZNb3ZlKHZhbGlkYXRpb25FcnJvcnMucGF5ZXIpLCBlcnJvcnMpOwpAQCAtNTc5LDcgKzY0MSw3
IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnJldHJ5KFBheW1l
bnRWYWxpZGF0aW9uRXJyb3JzJiYgdmFsaWRhCiAKICAgICAvLyBFbnN1cmUgdGhlcmUgaXMgYWx3
YXlzIGF0IGxlYXN0IG9uZSBlcnJvciB0byBhdm9pZCBoYXZpbmcgYSBmaW5hbCByZXN1bHQuCiAg
ICAgaWYgKGVycm9ycy5pc0VtcHR5KCkpCi0gICAgICAgIGVycm9ycy5hcHBlbmQoeyBQYXltZW50
RXJyb3I6OkNvZGU6OlVua25vd24sIHsgfSwgV1RGOjpudWxsb3B0IH0pOworICAgICAgICBlcnJv
cnMuYXBwZW5kKEFwcGxlUGF5RXJyb3I6OmNyZWF0ZShBcHBsZVBheUVycm9yQ29kZTo6VW5rbm93
biwgV1RGOjpudWxsb3B0LCBudWxsU3RyaW5nKCkpKTsKIAogICAgIFBheW1lbnRBdXRob3JpemF0
aW9uUmVzdWx0IGF1dGhvcml6YXRpb25SZXN1bHQgeyBQYXltZW50QXV0aG9yaXphdGlvblN0YXR1
czo6RmFpbHVyZSwgV1RGTW92ZShlcnJvcnMpIH07CiAgICAgQVNTRVJUKCFpc0ZpbmFsU3RhdGVS
ZXN1bHQoYXV0aG9yaXphdGlvblJlc3VsdCkpOwpAQCAtNjIzLDcgKzY4NSw3IEBAIHZvaWQgQXBw
bGVQYXlQYXltZW50SGFuZGxlcjo6ZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBQYXltZW50JiBw
YXltZW50KQogICAgIG1fcGF5bWVudFJlcXVlc3QtPmFjY2VwdChXVEY6OmdldDxVUkw+KG1faWRl
bnRpZmllcikuc3RyaW5nKCksIFdURk1vdmUoZGV0YWlsc0Z1bmN0aW9uKSwgY29udmVydChzaGlw
cGluZ0NvbnRhY3QpLCBzaGlwcGluZ0NvbnRhY3QubG9jYWxpemVkTmFtZSwgc2hpcHBpbmdDb250
YWN0LmVtYWlsQWRkcmVzcywgc2hpcHBpbmdDb250YWN0LnBob25lTnVtYmVyKTsKIH0KIAotdm9p
ZCBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0
aG9kKQordm9pZCBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhv
ZChjb25zdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKIHsKICAgICBB
U1NFUlQoIW1faXNVcGRhdGluZyk7CiAgICAgbV9pc1VwZGF0aW5nID0gdHJ1ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQ
YXlQYXltZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXlt
ZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmgKaW5kZXggODljNzU3ZmRmYjRkNTc1
NDE4MDYyOTAwZmEzZjlmMTQ5ZDA2Njk3OC4uMWI5OTI2NjIwMDhhZjdjYWI1ODBmYjA3MjgwYzgy
ZGYzNWJkM2NkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9w
YXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVy
LmgKQEAgLTM0LDEwICszNCwxMSBAQAogI2luY2x1ZGUgIlBheW1lbnRSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiUGF5bWVudFNlc3Npb24uaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNp
bmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIEFwcGxlUGF5RXJyb3I7CiBjbGFzcyBQYXltZW50Q29vcmRpbmF0
b3I7CiAKIGNsYXNzIEFwcGxlUGF5UGF5bWVudEhhbmRsZXIgZmluYWwgOiBwdWJsaWMgUGF5bWVu
dEhhbmRsZXIsIHB1YmxpYyBQYXltZW50U2Vzc2lvbiwgcHJpdmF0ZSBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlciB7CkBAIC01MywxNCArNTQsMTQgQEAgcHJpdmF0ZToKICAgICBEb2N1bWVudCYg
ZG9jdW1lbnQoKSBjb25zdDsKICAgICBQYXltZW50Q29vcmRpbmF0b3ImIHBheW1lbnRDb29yZGlu
YXRvcigpIGNvbnN0OwogCi0gICAgRXhjZXB0aW9uT3I8VmVjdG9yPEFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4+IGNvbXB1dGVTaGlwcGluZ01ldGhvZHMoKTsK
LSAgICBFeGNlcHRpb25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRM
aW5lSXRlbXM+IGNvbXB1dGVUb3RhbEFuZExpbmVJdGVtcygpIGNvbnN0OwotICAgIFZlY3RvcjxQ
YXltZW50RXJyb3I+IGNvbXB1dGVFcnJvcnMoU3RyaW5nJiYgZXJyb3IsIEFkZHJlc3NFcnJvcnMm
JiwgUGF5ZXJFcnJvckZpZWxkcyYmLCBKU0M6OkpTT2JqZWN0KiBwYXltZW50TWV0aG9kRXJyb3Jz
KSBjb25zdDsKLSAgICB2b2lkIGNvbXB1dGVBZGRyZXNzRXJyb3JzKFN0cmluZyYmIGVycm9yLCBB
ZGRyZXNzRXJyb3JzJiYsIFZlY3RvcjxQYXltZW50RXJyb3I+JikgY29uc3Q7Ci0gICAgdm9pZCBj
b21wdXRlUGF5ZXJFcnJvcnMoUGF5ZXJFcnJvckZpZWxkcyYmLCBWZWN0b3I8UGF5bWVudEVycm9y
PiYpIGNvbnN0OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGNvbXB1dGVQYXltZW50TWV0aG9kRXJy
b3JzKEpTQzo6SlNPYmplY3QqIHBheW1lbnRNZXRob2RFcnJvcnMsIFZlY3RvcjxQYXltZW50RXJy
b3I+JikgY29uc3Q7CisgICAgRXhjZXB0aW9uT3I8VmVjdG9yPEFwcGxlUGF5U2hpcHBpbmdNZXRo
b2Q+PiBjb21wdXRlU2hpcHBpbmdNZXRob2RzKCk7CisgICAgRXhjZXB0aW9uT3I8c3RkOjp0dXBs
ZTxBcHBsZVBheUxpbmVJdGVtLCBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4+PiBjb21wdXRlVG90
YWxBbmRMaW5lSXRlbXMoKSBjb25zdDsKKyAgICBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+
PiBjb21wdXRlRXJyb3JzKFN0cmluZyYmIGVycm9yLCBBZGRyZXNzRXJyb3JzJiYsIFBheWVyRXJy
b3JGaWVsZHMmJiwgSlNDOjpKU09iamVjdCogcGF5bWVudE1ldGhvZEVycm9ycykgY29uc3Q7Cisg
ICAgdm9pZCBjb21wdXRlQWRkcmVzc0Vycm9ycyhTdHJpbmcmJiBlcnJvciwgQWRkcmVzc0Vycm9y
cyYmLCBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYpIGNvbnN0OworICAgIHZvaWQgY29t
cHV0ZVBheWVyRXJyb3JzKFBheWVyRXJyb3JGaWVsZHMmJiwgVmVjdG9yPFJlZlB0cjxBcHBsZVBh
eUVycm9yPj4mKSBjb25zdDsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBjb21wdXRlUGF5bWVudE1l
dGhvZEVycm9ycyhKU0M6OkpTT2JqZWN0KiBwYXltZW50TWV0aG9kRXJyb3JzLCBWZWN0b3I8UmVm
UHRyPEFwcGxlUGF5RXJyb3I+PiYpIGNvbnN0OwogCi0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2hp
cHBpbmdBZGRyZXNzVXBkYXRlZChWZWN0b3I8UGF5bWVudEVycm9yPiYmIGVycm9ycyk7CisgICAg
RXhjZXB0aW9uT3I8dm9pZD4gc2hpcHBpbmdBZGRyZXNzVXBkYXRlZChWZWN0b3I8UmVmUHRyPEFw
cGxlUGF5RXJyb3I+PiYmIGVycm9ycyk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2hpcHBpbmdP
cHRpb25VcGRhdGVkKCk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcGF5bWVudE1ldGhvZFVwZGF0
ZWQoKTsKIApAQCAtNzgsNyArNzksNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIHZlcnNpb24o
KSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHZhbGlkYXRlTWVyY2hhbnQoVVJMJiYpIGZpbmFsOwog
ICAgIHZvaWQgZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBQYXltZW50JikgZmluYWw7Ci0gICAg
dm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFNlbGVjdFNoaXBw
aW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2QmKSBmaW5hbDsKICAgICB2b2lk
IGRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChjb25zdCBQYXltZW50Q29udGFjdCYpIGZpbmFsOwog
ICAgIHZvaWQgZGlkU2VsZWN0UGF5bWVudE1ldGhvZChjb25zdCBQYXltZW50TWV0aG9kJikgZmlu
YWw7CiAgICAgdm9pZCBkaWRDYW5jZWxQYXltZW50U2Vzc2lvbihQYXltZW50U2Vzc2lvbkVycm9y
JiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50RGV0YWlsc0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudERldGFpbHNCYXNlLmgKaW5kZXggOTQyMmQ0MjAxMzRhZjkzZGI5YTZm
NDBhYTZmZTFkNTM2YjFlMWVlNy4uOTBmODdkMjA2MWUwNmQ1OThhNGMzMzgzYTYzYWNjODFhMGE2
MGVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9Q
YXltZW50RGV0YWlsc0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRy
ZXF1ZXN0L1BheW1lbnREZXRhaWxzQmFzZS5oCkBAIC0zMCw3ICszMCwxMSBAQAogI2luY2x1ZGUg
IlBheW1lbnREZXRhaWxzTW9kaWZpZXIuaCIKICNpbmNsdWRlICJQYXltZW50SXRlbS5oIgogI2lu
Y2x1ZGUgIlBheW1lbnRTaGlwcGluZ09wdGlvbi5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTT2JqZWN0Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nLmg+CisjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM4LDYgKzQy
LDEwIEBAIHN0cnVjdCBQYXltZW50RGV0YWlsc0Jhc2UgewogICAgIE9wdGlvbmFsPFZlY3RvcjxQ
YXltZW50SXRlbT4+IGRpc3BsYXlJdGVtczsKICAgICBPcHRpb25hbDxWZWN0b3I8UGF5bWVudFNo
aXBwaW5nT3B0aW9uPj4gc2hpcHBpbmdPcHRpb25zOwogICAgIE9wdGlvbmFsPFZlY3RvcjxQYXlt
ZW50RGV0YWlsc01vZGlmaWVyPj4gbW9kaWZpZXJzOworICAgIEpTQzo6U3Ryb25nPEpTQzo6SlNP
YmplY3Q+IGRhdGE7CisKKyAgICAvLyBOb3QgZnJvbSB0aGUgSURMLiBTZXQgYnkgYGRhdGFgIHdo
ZW4gdGhpcyBpcyB2YWxpZGF0ZWQgYnkgYFBheW1lbnRSZXF1ZXN0YC4KKyAgICBTdHJpbmcgc2Vy
aWFsaXplZERhdGE7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnREZXRhaWxzQmFzZS5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnREZXRhaWxz
QmFzZS5pZGwKaW5kZXggNDQ5ZTNlZTk4ZDI5MTA3ZWMwY2VlNmNjNDU2OGIzMDhkMzU2ZjVkZi4u
ZDgwYzQ5ZDkyMDU2NjFkZTgwYThlNDc2YzMwNDEzOTFhNTZkNWNkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50RGV0YWlsc0Jhc2UuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudERldGFp
bHNCYXNlLmlkbApAQCAtMjksNCArMjksNSBAQAogICAgIHNlcXVlbmNlPFBheW1lbnRJdGVtPiBk
aXNwbGF5SXRlbXM7CiAgICAgc2VxdWVuY2U8UGF5bWVudFNoaXBwaW5nT3B0aW9uPiBzaGlwcGlu
Z09wdGlvbnM7CiAgICAgc2VxdWVuY2U8UGF5bWVudERldGFpbHNNb2RpZmllcj4gbW9kaWZpZXJz
OworICAgIG9iamVjdCBkYXRhOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKaW5kZXggZWUwZDNhYWViNjdm
MDQwZjA2OTQ4ODllY2Y3NTU0MTQ2NTk1Y2VjNS4uODFiNTUzNDRmYTlmZjEwNzdmNDUwOGYzZmNm
NDM2ZTkxMTUzMmI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50
cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
YXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKQEAgLTM0NSw2ICszNDUsMTQgQEAgc3Rh
dGljIEV4Y2VwdGlvbk9yPHN0ZDo6dHVwbGU8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPj4+IGNoZWNr
QW5kQ2Fub25pY2FsaXplRGV0YWkKICAgICB9IGVsc2UgaWYgKGlzVXBkYXRlID09IElzVXBkYXRl
OjpObykKICAgICAgICAgZGV0YWlscy5tb2RpZmllcnMgPSB7IHsgfSB9OwogCisgICAgaWYgKGRl
dGFpbHMuZGF0YSkgeworICAgICAgICBhdXRvIGRhdGFSZXN1bHQgPSBjaGVja0FuZENhbm9uaWNh
bGl6ZURhdGEoY29udGV4dCwgZGV0YWlscyk7CisgICAgICAgIGlmIChkYXRhUmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIGRhdGFSZXN1bHQucmVsZWFzZUV4Y2VwdGlv
bigpOworCisgICAgICAgIGRldGFpbHMuc2VyaWFsaXplZERhdGEgPSBkYXRhUmVzdWx0LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpOworICAgIH0KKwogICAgIHJldHVybiBzdGQ6Om1ha2VfdHVwbGUoV1RG
TW92ZShzZWxlY3RlZFNoaXBwaW5nT3B0aW9uKSwgV1RGTW92ZShzZXJpYWxpemVkTW9kaWZpZXJE
YXRhKSk7CiB9CiAKQEAgLTczNiw2ICs3NDQsOCBAQCB2b2lkIFBheW1lbnRSZXF1ZXN0OjpzZXR0
bGVEZXRhaWxzUHJvbWlzZShVcGRhdGVSZWFzb24gcmVhc29uKQogICAgICAgICBtX2RldGFpbHMu
bW9kaWZpZXJzID0gV1RGTW92ZSgqZGV0YWlsc1VwZGF0ZS5tb2RpZmllcnMpOwogICAgICAgICBt
X3NlcmlhbGl6ZWRNb2RpZmllckRhdGEgPSBXVEZNb3ZlKHN0ZDo6Z2V0PDE+KHNoaXBwaW5nT3B0
aW9uQW5kTW9kaWZpZXJEYXRhKSk7CiAgICAgfQorICAgIGlmICghZGV0YWlsc1VwZGF0ZS5zZXJp
YWxpemVkRGF0YS5pc0VtcHR5KCkpCisgICAgICAgIG1fZGV0YWlscy5zZXJpYWxpemVkRGF0YSA9
IFdURk1vdmUoZGV0YWlsc1VwZGF0ZS5zZXJpYWxpemVkRGF0YSk7CiAKICAgICBhdXRvIHJlc3Vs
dCA9IGFjdGl2ZVBheW1lbnRIYW5kbGVyKCktPmRldGFpbHNVcGRhdGVkKHJlYXNvbiwgV1RGTW92
ZShkZXRhaWxzVXBkYXRlLmVycm9yKSwgV1RGTW92ZShkZXRhaWxzVXBkYXRlLnNoaXBwaW5nQWRk
cmVzc0Vycm9ycyksIFdURk1vdmUoZGV0YWlsc1VwZGF0ZS5wYXllckVycm9ycyksIGRldGFpbHNV
cGRhdGUucGF5bWVudE1ldGhvZEVycm9ycy5nZXQoKSk7CiAgICAgaWYgKHJlc3VsdC5oYXNFeGNl
cHRpb24oKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCBhOGZhMDcyYjU4YTBkNTg5
MGQxOWIxYjU2YTg3MzA4ZTYyN2VkMmZmLi5kNmU5ZDE0OWQyZGQzZGMxNWM2ZDhlOGFmYzBiYTU0
ZjllNmUyZTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtNDM1LDcgKzQzNSw2IEBA
IGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogKQogCiBsaXN0KEFQUEVORCBXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKLSAgICBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRNZXRo
b2RVcGRhdGUuaAogICAgIE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNlc3Npb25FcnJvci5oCiAg
ICAgTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U3VtbWFyeUl0ZW1zLmgKIApAQCAtNjE2LDYgKzYx
NSw4IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogbGlz
dChBUFBFTkQgV2ViQ29yZV9JRExfRklMRVMKICAgICBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
Q2FuY2VsRXZlbnQuaWRsCiAgICAgTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVs
ZC5pZGwKKyAgICBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaWRs
CisgICAgTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmlkbAogICAg
IE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvci5pZGwKICAgICBNb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5RXJyb3JDb2RlLmlkbAogICAgIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJv
ckNvbnRhY3RGaWVsZC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2Nv
YS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGJmNmFlMTYxODdh
YmEwNzE1NzJkYTA3OTIzYWMzMzBiMjI4ZjY5YzUuLjhjODI4NDkxMmIyYTgxNzI1ZDEwNWI1ZjIx
ZTIwNTkxNDVkNDI5MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMjMsNiArMjMsOCBA
QAogCiBKU0FwcGxlUGF5Q2FuY2VsRXZlbnQuY3BwCiBKU0FwcGxlUGF5Q29udGFjdEZpZWxkLmNw
cAorSlNBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmNwcAorSlNBcHBsZVBheURldGFpbHNVcGRh
dGVEYXRhLmNwcAogSlNBcHBsZVBheUVycm9yLmNwcAogSlNBcHBsZVBheUVycm9yQ29kZS5jcHAK
IEpTQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5jcHAKQEAgLTYyLDcgKzY0LDYgQEAgSlNBcHBs
ZVBheVZhbGlkYXRlTWVyY2hhbnRFdmVudC5jcHAKIE1vZHVsZXMvYWlycGxheS9XZWJNZWRpYVNl
c3Npb25NYW5hZ2VyLmNwcAogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNhbmNlbEV2ZW50LmNw
cAogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAKLU1vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlFcnJvci5jcHAKIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlNZXJjaGFu
dENhcGFiaWxpdHkuY3BwCiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudEF1dGhvcml6
ZWRFdmVudC5jcHAKIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0aG9kU2VsZWN0
ZWRFdmVudC5jcHAKQEAgLTg0LDcgKzg1LDYgQEAgTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXlt
ZW50Q29jb2EubW0KIE1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5t
bQogTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50TWVyY2hhbnRTZXNzaW9uQ29jb2EubW0K
IE1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudE1ldGhvZENvY29hLm1tCi1Nb2R1bGVzL2Fw
cGxlcGF5L2NvY29hL1BheW1lbnRNZXRob2RVcGRhdGVDb2NvYS5tbQogTW9kdWxlcy9hcHBsZXBh
eS9jb2NvYS9QYXltZW50U2Vzc2lvbkVycm9yQ29jb2EubW0KIE1vZHVsZXMvYXBwbGVwYXkvY29j
b2EvUGF5bWVudFN1bW1hcnlJdGVtc0NvY29hLm1tCiBNb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRy
ZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGQxZmZmZWJlZmVmMjBjNjBj
OTA1MDliYWM3MWY0MjNiNDNhNmM0Ni4uNTUwY2RiNmJhMzU2MzczOTRhZWNlMzY3YmJhZTI2MDkx
YTg0YzdjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMjMzOCw3ICsyMzM4LDcgQEAKIAkJN0M2NTIzMUExRTAwREJCNTAwNjc3
RjIyIC8qIEpTQXBwbGVQYXlQYXltZW50UGFzcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0M2NTIzMTAxRTAwREJCNDAwNjc3RjIyIC8qIEpTQXBwbGVQ
YXlQYXltZW50UGFzcy5oICovOyB9OwogCQk3QzY1NzlFMDFFMDA3OUY5MDBFM0EyN0EgLyogQXBw
bGVQYXlQYXltZW50UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gN0M2NTc5REYxRTAwNzlGOTAwRTNBMjdBIC8qIEFwcGxlUGF5UGF5bWVudFJl
cXVlc3QuaCAqLzsgfTsKIAkJN0M2NTc5RTMxRTAwODI3MDAwRTNBMjdBIC8qIEFwcGxlUGF5TGlu
ZUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdD
NjU3OUUyMUUwMDgyNzAwMEUzQTI3QSAvKiBBcHBsZVBheUxpbmVJdGVtLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJN0M2NTc5RTgxRTAwODMxNjAw
RTNBMjdBIC8qIEFwcGxlUGF5U2hpcHBpbmdNZXRob2QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNjU3OUU3MUUwMDgzMTYwMEUzQTI3QSAvKiBBcHBs
ZVBheVNoaXBwaW5nTWV0aG9kLmggKi87IH07CisJCTdDNjU3OUU4MUUwMDgzMTYwMEUzQTI3QSAv
KiBBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QzY1NzlFNzFFMDA4MzE2MDBFM0EyN0EgLyogQXBwbGVQYXlTaGlw
cGluZ01ldGhvZC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTdDNjU3OUYwMUUwMDg1NjYwMEUzQTI3QSAvKiBKU0FwcGxlUGF5TGluZUl0ZW0uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNjU3OUVBMUUw
MDg1NjYwMEUzQTI3QSAvKiBKU0FwcGxlUGF5TGluZUl0ZW0uaCAqLzsgfTsKIAkJN0M2NTc5RjIx
RTAwODU2NjAwRTNBMjdBIC8qIEpTQXBwbGVQYXlQYXltZW50UmVxdWVzdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M2NTc5RUMxRTAwODU2NjAwRTNB
MjdBIC8qIEpTQXBwbGVQYXlQYXltZW50UmVxdWVzdC5oICovOyB9OwogCQk3QzY1NzlGNDFFMDA4
NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QzY1NzlFRTFFMDA4NTY2MDBFM0EyN0Eg
LyogSlNBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmggKi87IH07CkBAIC0yOTM3LDggKzI5MzcsMTIg
QEAKIAkJOTRERTVDOTYxRDgzMDFCRDAwMTY0RjJBIC8qIENTU1BhcnNlckltcGwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0REU1Qzk0MUQ4MzAxQjAw
MDE2NEYyQSAvKiBDU1NQYXJzZXJJbXBsLmggKi87IH07CiAJCTk0RTgzOTUxMURGQjJBMEUwMDdC
QzZBNyAvKiBDU1NOYW1lc3BhY2VSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5NEU4Mzk0RjFERkIyNzAwMDA3QkM2QTcgLyogQ1NTTmFtZXNwYWNl
UnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTk0RTgzOTU2MURGQjJCQzQwMDdCQzZBNyAvKiBKU0NTU05hbWVzcGFjZVJ1bGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0RTgzOTU0MURGQjJCQTYw
MDdCQzZBNyAvKiBKU0NTU05hbWVzcGFjZVJ1bGUuaCAqLzsgfTsKKwkJOTUwMTgzQ0QyNUQ2MzNE
OTAwRDQzNDBGIC8qIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MDE4M0NCMjVENjMzRDgwMEQ0MzQwRiAv
KiBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTUyMDc2MDUxRjI2NzVGRTAwN0QyQUFCIC8qIENhbGxU
cmFjZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1
MjA3NjAxMUYyNjc1RjkwMDdEMkFBQiAvKiBDYWxsVHJhY2VyLmggKi87IH07CiAJCTk1MjA3NjA2
MUYyNjc1RkUwMDdEMkFBQiAvKiBDYWxsVHJhY2VyVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MjA3NjAyMUYyNjc1RjkwMDdEMkFBQiAvKiBD
YWxsVHJhY2VyVHlwZXMuaCAqLzsgfTsKKwkJOTUyN0Q3QUIyNUQ1RkRFMjAwQTZFMTc2IC8qIEFw
cGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk1MjdEN0E4MjVENUZERTEwMEE2RTE3NiAvKiBBcHBsZVBheURldGFp
bHNVcGRhdGVEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJOTUyN0Q3QUYyNUQ1RkU2QzAwQTZFMTc2IC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBk
YXRlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTUyN0Q3QUQyNUQ1RkU2QjAwQTZFMTc2IC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5o
ICovOyB9OworCQk5NTNCQ0VCMjI1RDYyODNEMDBBNEEyQTEgLyogSlNBcHBsZVBheURldGFpbHNV
cGRhdGVCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NTNCQ0VBRjI1RDYyODNDMDBBNEEyQTEgLyogSlNBcHBsZVBheURldGFpbHNVcGRhdGVCYXNl
LmggKi87IH07CiAJCTk1NkZDNEJCMjVENDlDN0IwMEY3QjNBMiAvKiBBcHBsZVBheUxpbmVJdGVt
RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU2
RkM0QjgyNUQ0OUM3QTAwRjdCM0EyIC8qIEFwcGxlUGF5TGluZUl0ZW1EYXRhLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTU2RkM0QkIyNUQ0OUM3
QjAwRjdCM0EzIC8qIEpTQXBwbGVQYXlMaW5lSXRlbURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1NkZDNEJBMjVENDlDN0QwMEY3QjNBMiAvKiBK
U0FwcGxlUGF5TGluZUl0ZW1EYXRhLmggKi87IH07CiAJCTk1QTFFMkU5MjVDQzc1QTkwMDI2OEM4
RSAvKiBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUExRTJFNzI1Q0M3NUE4MDAyNjhDOEUgLyogTWVk
aWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0zMTI1LDExICszMTI5LDExIEBACiAJCUExMjUzOEQ0MTNG
OUI2MEEwMDAyNDc1NCAvKiBMYXlvdXRSZXBhaW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMjBBQ0EwMTNGOTk4MzcwMEZFNEFDNyAvKiBMYXlv
dXRSZXBhaW50ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBMTI3MDVDMzE2NTZCRDY1MDBDMkUyN0MgLyogR3JpZFBvc2l0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTI3MDVDMjE2NTZCRDY1
MDBDMkUyN0MgLyogR3JpZFBvc2l0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTEyQTEwNTAxNjY0NDRGRDAwOEZBMzExIC8qIEdyaWRUcmFj
a1NpemUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEx
MkExMDRFMTY2NDQ0REMwMDhGQTMxMSAvKiBHcmlkVHJhY2tTaXplLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTEyQzU5RUUyMDM1RkM5QjAwMTIy
MzZCIC8qIEFwcGxlUGF5RXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFBREZERkQ2MUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBheUVycm9yLmgg
Ki87IH07CisJCUExMkM1OUVFMjAzNUZDOUIwMDEyMjM2QiAvKiBBcHBsZVBheUVycm9yLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURGREZENjFFNzFE
OERGMDA4RjVEMzQgLyogQXBwbGVQYXlFcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExMkM1OUYwMjAzNUZDQUIwMDEyMjM2QiAvKiBBcHBs
ZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURGREZEODFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQ
YXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oICovOyB9OwotCQlBMTJDNTlGMTIwMzVGQ0JG
MDAxMjIzNkIgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURGREZEQTFFNzFEOERGMDA4RjVEMzQg
LyogQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmggKi87IH07Ci0JCUExMkM1OUYyMjAzNUZD
RDYwMDEyMjM2QiAvKiBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRGREMxRTcxRDhERjAwOEY1
RDM0IC8qIEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmggKi87IH07Ci0JCUExMkM1OUYz
MjAzNUZDRTIwMDEyMjM2QiAvKiBBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURGREZERTFFNzFEOERG
MDA4RjVEMzQgLyogQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oICovOyB9OworCQlBMTJD
NTlGMTIwMzVGQ0JGMDAxMjIzNkIgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURGREZEQTFFNzFE
OERGMDA4RjVEMzQgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTEyQzU5RjIyMDM1RkNENjAw
MTIyMzZCIC8qIEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURGREZEQzFFNzFEOERGMDA4RjVEMzQg
LyogQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBMTJDNTlGMzIwMzVGQ0UyMDAxMjIzNkIgLyog
QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRGREUxRTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5
U2hpcHBpbmdNZXRob2RVcGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBMTJDNTlGOTIwMzYwQUNCMDAxMjIzNkIgLyogSlNBcHBsZVBheUVy
cm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURG
REZFMjFFNzFEQ0EwMDA4RjVEMzQgLyogSlNBcHBsZVBheUVycm9yLmggKi87IH07CiAJCUExMkM1
OUZCMjAzNjBCMDAwMDEyMjM2QiAvKiBKU0FwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1
bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBREZE
RkU0MUU3MURDQTAwMDhGNUQzNCAvKiBKU0FwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1
bHQuaCAqLzsgfTsKIAkJQTEyQzU5RkMyMDM2MEIyNzAwMTIyMzZCIC8qIEpTQXBwbGVQYXlQYXlt
ZW50TWV0aG9kVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQURGREZFNjFFNzFEQ0EwMDA4RjVEMzQgLyogSlNBcHBsZVBheVBheW1lbnRNZXRo
b2RVcGRhdGUuaCAqLzsgfTsKQEAgLTMyMTMsOCArMzIxNyw4IEBACiAJCUExQUZFREU3MUY4QkZG
NkQwMDg3MDEzRiAvKiBNb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQUZFREU1MUY4QkZGNkQwMDg3MDEzRiAv
KiBNb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcCAqLzsgfTsKIAkJQTFCNUIyOUUxQUFBODQ2RTAw
OEI2MDQyIC8qIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFCNUIyOUMxQUFBODQ2RTAwOEI2MDQyIC8q
IE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuY3BwICovOyB9OwogCQlBMUI1QjI5RjFBQUE4NDZG
MDA4QjYwNDIgLyogTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFCNUIyOUQxQUFBODQ2RTAwOEI2MDQyIC8q
IE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwotCQlBMUJCODU5QzIxNTlBRUExMDA2N0UwN0QgLyogQXBwbGVQ
YXlFcnJvckNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEExQkI4NTk5MjE1OUFFQTEwMDY3RTA3RCAvKiBBcHBsZVBheUVycm9yQ29kZS5oICovOyB9
OwotCQlBMUJCODVBMzIxNTlBRjU3MDA2N0UwN0QgLyogQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVs
ZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFCQjg1
QTAyMTU5QUY1NzAwNjdFMDdEIC8qIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaCAqLzsgfTsK
KwkJQTFCQjg1OUMyMTU5QUVBMTAwNjdFMDdEIC8qIEFwcGxlUGF5RXJyb3JDb2RlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUJCODU5OTIxNTlBRUEx
MDA2N0UwN0QgLyogQXBwbGVQYXlFcnJvckNvZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OworCQlBMUJCODVBMzIxNTlBRjU3MDA2N0UwN0QgLyogQXBw
bGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTFCQjg1QTAyMTU5QUY1NzAwNjdFMDdEIC8qIEFwcGxlUGF5RXJyb3JD
b250YWN0RmllbGQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBMUJCODVBOTIxNTlCMDJDMDA2N0UwN0QgLyogTW9ja1BheW1lbnRFcnJvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFCQjg1QTYyMTU5
QjAyQzAwNjdFMDdEIC8qIE1vY2tQYXltZW50RXJyb3IuaCAqLzsgfTsKIAkJQTFCQjg1QjIyMTU5
QjFBMTAwNjdFMDdEIC8qIEpTQXBwbGVQYXlFcnJvckNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQkI4NUFFMjE1OUIxQTAwMDY3RTA3RCAvKiBK
U0FwcGxlUGF5RXJyb3JDb2RlLmggKi87IH07CiAJCUExQkI4NUIzMjE1OUIxQTEwMDY3RTA3RCAv
KiBKU0FwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQkI4NUFGMjE1OUIxQTAwMDY3RTA3RCAvKiBKU0FwcGxl
UGF5RXJyb3JDb250YWN0RmllbGQuaCAqLzsgfTsKQEAgLTMyNDgsNyArMzI1Miw2IEBACiAJCUEx
REY1QUE2MUY3RjY0QkIwMDU4QTQ3NyAvKiBQYXltZW50SGFuZGxlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFERjVBQTQxRjdGNjRCQjAwNThBNDc3
IC8qIFBheW1lbnRIYW5kbGVyLmggKi87IH07CiAJCUExREY1QUFEMUY4MDc1RjAwMDU4QTQ3NyAv
KiBBcHBsZVBheVJlcXVlc3RCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMURGNUFBQTFGODA3NUYwMDA1OEE0NzcgLyogQXBwbGVQYXlSZXF1ZXN0
QmFzZS5oICovOyB9OwogCQlBMURGNUFCMzFGODA3NzUzMDA1OEE0NzcgLyogSlNBcHBsZVBheVJl
cXVlc3RCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBMURGNUFCMTFGODA3NzUyMDA1OEE0NzcgLyogSlNBcHBsZVBheVJlcXVlc3RCYXNlLmggKi87
IH07Ci0JCUExREZENTI1MjMzNDU5M0YwMDQyRkNEQiAvKiBQYXltZW50TWV0aG9kVXBkYXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMURGRDUyNDIz
MzQ1OTNBMDA0MkZDREIgLyogUGF5bWVudE1ldGhvZFVwZGF0ZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExREZENTI2MjMzNDU5NDgwMDQyRkNE
QiAvKiBQYXltZW50U3VtbWFyeUl0ZW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBMURGRDUyMjIzMzQ1OTNBMDA0MkZDREIgLyogUGF5bWVudFN1bW1h
cnlJdGVtcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUExRTA4NjVGMjQ4OUQyQjUwMEU0OTZEOSAvKiBBcHBsZVBheVNldHVwQ29uZmlndXJhdGlv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFFMDg2
NUMyNDg5RDJCMTAwRTQ5NkQ5IC8qIEFwcGxlUGF5U2V0dXBDb25maWd1cmF0aW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTFFMDg2NjAyNDg5
RDJCQTAwRTQ5NkQ5IC8qIEFwcGxlUGF5U2V0dXBGZWF0dXJlU3RhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExRTA4NjVFMjQ4OUQyQjEwMEU0OTZE
OSAvKiBBcHBsZVBheVNldHVwRmVhdHVyZVN0YXRlLmggKi87IH07CkBAIC02NjY4LDcgKzY2NzEs
NiBAQAogCQkxQUQ4RjgxOTExQ0FCOUU5MDBFOTNFNTQgLyogUGxhdGZvcm1TdHJhdGVnaWVzLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtU3RyYXRlZ2llcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUQ4RjgxQTExQ0FCOUU5MDBFOTNFNTQgLyog
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFBsYXRmb3JtU3RyYXRlZ2llcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTFBREE0QTFCMUQyMkYyQzAwMDVBOUExNSAvKiBQYXltZW50TWVyY2hhbnRTZXNzaW9uQ29jb2Eu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYXltZW50TWVyY2hh
bnRTZXNzaW9uQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFBREZERkQ1
MUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBheUVycm9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEFwcGxlUGF5RXJyb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQURGREZENjFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlFcnJvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZVBheUVycm9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBREZERkQ3MUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBh
eUVycm9yLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBcHBsZVBheUVycm9yLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFERkRGRDgxRTcxRDhERjAwOEY1RDM0IC8qIEFw
cGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE3NzAsMTIgKzExNzcyLDIwIEBACiAJCTk0RTgzOTUw
MURGQjI5QTQwMDdCQzZBNyAvKiBDU1NOYW1lc3BhY2VSdWxlLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBDU1NOYW1lc3BhY2VSdWxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTRFODM5NTMxREZCMkJBNjAwN0JDNkE3IC8qIEpTQ1NTTmFtZXNwYWNlUnVsZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NTU05hbWVzcGFjZVJ1bGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NEU4Mzk1NDFERkIyQkE2MDA3QkM2QTcg
LyogSlNDU1NOYW1lc3BhY2VSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTQ1NTTmFtZXNwYWNlUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTAx
ODNDOTI1RDYzM0Q4MDBENDM0MEYgLyogQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MDE4M0NCMjVENjMzRDgwMEQ0MzQwRiAvKiBBcHBs
ZVBheURldGFpbHNVcGRhdGVCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTUwQzQ4NDkyNUQ2Nzc0MjAwQUIzRDlDIC8qIG92ZXJmbG93LXN1cHBvcnQuanMgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmph
dmFzY3JpcHQ7IHBhdGggPSAib3ZlcmZsb3ctc3VwcG9ydC5qcyI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk1MEM0ODRCMjVENjc3NEUwMEFCM0Q5QyAvKiBvdmVyZmxvdy1idXR0b24u
anMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGggPSAib3ZlcmZsb3ctYnV0dG9uLmpzIjsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwQzRDMDJCRUQ4OTM2RjgxOEUyRjk5IC8qIEpTU1ZHR3Jh
cGhpY3NFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR0dy
YXBoaWNzRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTIwNzYwMDFG
MjY3NUY5MDA3RDJBQUIgLyogQ2FsbFRyYWNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWxs
VHJhY2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUyMDc2MDExRjI2NzVG
OTAwN0QyQUFCIC8qIENhbGxUcmFjZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FsbFRyYWNlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTIwNzYwMjFGMjY3NUY5MDA3RDJBQUIgLyog
Q2FsbFRyYWNlclR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhbGxUcmFjZXJUeXBlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTI3RDdBODI1RDVGREUxMDBBNkUxNzYgLyogQXBw
bGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTk1MjdEN0FBMjVENUZERTEwMEE2RTE3NiAvKiBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRh
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTUyN0Q3QUQyNUQ1RkU2QjAwQTZFMTc2
IC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTUyN0Q3QUUyNUQ1RkU2QjAwQTZFMTc2IC8qIEpTQXBwbGVQYXlEZXRh
aWxzVXBkYXRlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5NTNCQ0VBRjI1RDYyODNDMDBBNEEyQTEgLyogSlNBcHBsZVBheURldGFpbHNVcGRhdGVC
YXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXBwbGVQYXlEZXRhaWxz
VXBkYXRlQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTNCQ0VCMTI1RDYy
ODNDMDBBNEEyQTEgLyogSlNBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1NkZDNEI4MjVENDlDN0EwMEY3QjNB
MiAvKiBBcHBsZVBheUxpbmVJdGVtRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBcHBsZVBheUxpbmVJdGVtRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5NTZGQzRCODI1RDQ5QzdDMDBGN0IzQTIgLyogSlNBcHBsZVBheUxpbmVJdGVtRGF0YS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FwcGxlUGF5TGluZUl0ZW1E
YXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTU2RkM0QkEyNUQ0OUM3QjAw
RjdCM0EyIC8qIEFwcGxlUGF5TGluZUl0ZW1EYXRhLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBBcHBsZVBheUxpbmVJdGVtRGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMjM4Niw5ICsxMjM5Niw3IEBACiAJCUExREY1QUIxMUY4MDc3NTIwMDU4QTQ3NyAvKiBKU0Fw
cGxlUGF5UmVxdWVzdEJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNB
cHBsZVBheVJlcXVlc3RCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExREY1
QUI0MUY4MDc4RjMwMDU4QTQ3NyAvKiBBcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBBcHBsZVBheUNvbnRhY3RGaWVsZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUExREZENTIyMjMzNDU5M0EwMDQyRkNEQiAvKiBQYXltZW50U3VtbWFyeUl0ZW1z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRTdW1tYXJ5SXRlbXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQTFERkQ1MjQyMzM0NTkzQTAwNDJGQ0RCIC8qIFBheW1lbnRNZXRob2RV
cGRhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudE1ldGhvZFVwZGF0ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBMURGRDUyNzIzMzQ1OTczMDA0MkZDREIgLyogUGF5bWVudFN1
bW1hcnlJdGVtc0NvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGF5bWVudFN1bW1hcnlJ
dGVtc0NvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBMURGRDUyODIzMzQ1
OTc0MDA0MkZDREIgLyogUGF5bWVudE1ldGhvZFVwZGF0ZUNvY29hLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gUGF5bWVudE1ldGhvZFVwZGF0ZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBMUUwODY1QTI0ODlEMkIwMDBFNDk2RDkgLyogQXBwbGVQYXlTZXR1cEZlYXR1
cmVTdGF0ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gQXBwbGVQYXlTZXR1cEZlYXR1cmVTdGF0ZS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExRTA4NjVDMjQ4OUQyQjEwMEU0OTZEOSAvKiBBcHBsZVBh
eVNldHVwQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZVBheVNldHVwQ29uZmln
dXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUUwODY1RDI0ODlEMkIx
MDBFNDk2RDkgLyogQXBwbGVQYXlTZXR1cENvbmZpZ3VyYXRpb24uaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEFwcGxlUGF5
U2V0dXBDb25maWd1cmF0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4
MzM3LDcgKzE4MzQ1LDEwIEBACiAJCQkJQTFERjVBQjQxRjgwNzhGMzAwNThBNDc3IC8qIEFwcGxl
UGF5Q29udGFjdEZpZWxkLmNwcCAqLywKIAkJCQlBMURGNUE5MTFGN0VDNDMyMDA1OEE0NzcgLyog
QXBwbGVQYXlDb250YWN0RmllbGQuaCAqLywKIAkJCQlBMURGNUE5MzFGN0VDNDMyMDA1OEE0Nzcg
LyogQXBwbGVQYXlDb250YWN0RmllbGQuaWRsICovLAotCQkJCTFBREZERkQ1MUU3MUQ4REYwMDhG
NUQzNCAvKiBBcHBsZVBheUVycm9yLmNwcCAqLywKKwkJCQk5NTAxODNDQjI1RDYzM0Q4MDBENDM0
MEYgLyogQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oICovLAorCQkJCTk1MDE4M0M5MjVENjMz
RDgwMEQ0MzQwRiAvKiBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmlkbCAqLywKKwkJCQk5NTI3
RDdBODI1RDVGREUxMDBBNkUxNzYgLyogQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oICovLAor
CQkJCTk1MjdEN0FBMjVENUZERTEwMEE2RTE3NiAvKiBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRh
LmlkbCAqLywKIAkJCQkxQURGREZENjFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlFcnJvci5o
ICovLAogCQkJCTFBREZERkQ3MUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBheUVycm9yLmlkbCAq
LywKIAkJCQlBMUJCODU5OTIxNTlBRUExMDA2N0UwN0QgLyogQXBwbGVQYXlFcnJvckNvZGUuaCAq
LywKQEAgLTE4NDMxLDcgKzE4NDQyLDYgQEAKIAkJCQk1QzUzRENDRTI0NDY0NDk5MDBBOTMxMjQg
LyogUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbldlYkNvcmUuaCAqLywKIAkJCQkxQUU5
NkE4NzFEMUEwQ0VCMDBCODY3NjggLyogUGF5bWVudE1lcmNoYW50U2Vzc2lvbi5oICovLAogCQkJ
CTFBOEE2NDM5MUQxOUZDNTMwMEQwRTAwRiAvKiBQYXltZW50TWV0aG9kLmggKi8sCi0JCQkJQTFE
RkQ1MjQyMzM0NTkzQTAwNDJGQ0RCIC8qIFBheW1lbnRNZXRob2RVcGRhdGUuaCAqLywKIAkJCQkx
QThBNjQ2NjFEMTlGREZGMDBEMEUwMEYgLyogUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IuaCAqLywK
IAkJCQkxQThBNjQ2NTFEMTlGREZGMDBEMEUwMEYgLyogUGF5bWVudFJlcXVlc3RWYWxpZGF0b3Iu
bW0gKi8sCiAJCQkJQTFDMkM1NzUxRkEyODUxNjAwQkE0NkZBIC8qIFBheW1lbnRTZXNzaW9uLmNw
cCAqLywKQEAgLTE4NDUwLDcgKzE4NDYwLDYgQEAKIAkJCQkxQThBNjQ2QTFEMTlGRjg3MDBEMEUw
MEYgLyogUGF5bWVudENvbnRhY3RDb2NvYS5tbSAqLywKIAkJCQkxQURBNEExQjFEMjJGMkMwMDA1
QTlBMTUgLyogUGF5bWVudE1lcmNoYW50U2Vzc2lvbkNvY29hLm1tICovLAogCQkJCTFBOEE2NDZC
MUQxOUZGODcwMEQwRTAwRiAvKiBQYXltZW50TWV0aG9kQ29jb2EubW0gKi8sCi0JCQkJQTFERkQ1
MjgyMzM0NTk3NDAwNDJGQ0RCIC8qIFBheW1lbnRNZXRob2RVcGRhdGVDb2NvYS5tbSAqLywKIAkJ
CQlBMTEzRTAyQTIzMzE4RUJDMDA5QzMzQTAgLyogUGF5bWVudFNlc3Npb25FcnJvckNvY29hLm1t
ICovLAogCQkJCUExREZENTI3MjMzNDU5NzMwMDQyRkNEQiAvKiBQYXltZW50U3VtbWFyeUl0ZW1z
Q29jb2EubW0gKi8sCiAJCQkpOwpAQCAtMTg1NTAsNiArMTg1NTksMTAgQEAKIAkJCQlBMTk1NkYx
QjIzMzFBNjQ2MDA1N0U5RDIgLyogSlNBcHBsZVBheUNhbmNlbEV2ZW50LmggKi8sCiAJCQkJQTFE
RjVBOTgxRjdFQzhDMDAwNThBNDc3IC8qIEpTQXBwbGVQYXlDb250YWN0RmllbGQuY3BwICovLAog
CQkJCUExREY1QTk3MUY3RUM4QkYwMDU4QTQ3NyAvKiBKU0FwcGxlUGF5Q29udGFjdEZpZWxkLmgg
Ki8sCisJCQkJOTUzQkNFQjEyNUQ2MjgzQzAwQTRBMkExIC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBk
YXRlQmFzZS5jcHAgKi8sCisJCQkJOTUzQkNFQUYyNUQ2MjgzQzAwQTRBMkExIC8qIEpTQXBwbGVQ
YXlEZXRhaWxzVXBkYXRlQmFzZS5oICovLAorCQkJCTk1MjdEN0FFMjVENUZFNkIwMEE2RTE3NiAv
KiBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuY3BwICovLAorCQkJCTk1MjdEN0FEMjVENUZF
NkIwMEE2RTE3NiAvKiBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaCAqLywKIAkJCQkxQURG
REZFMTFFNzFEQ0EwMDA4RjVEMzQgLyogSlNBcHBsZVBheUVycm9yLmNwcCAqLywKIAkJCQkxQURG
REZFMjFFNzFEQ0EwMDA4RjVEMzQgLyogSlNBcHBsZVBheUVycm9yLmggKi8sCiAJCQkJQTFCQjg1
QUQyMTU5QjFBMDAwNjdFMDdEIC8qIEpTQXBwbGVQYXlFcnJvckNvZGUuY3BwICovLApAQCAtMzEx
ODIsNiArMzExOTUsOCBAQAogCQkJCTQ0MjUwNzA5MjU4MjlBMjcwMEMwOTM2OCAvKiBBcHBIaWdo
bGlnaHRTdG9yYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTEzRTAyRTIzMzFBMTM0MDA5QzMz
QTAgLyogQXBwbGVQYXlDYW5jZWxFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFERjVBOTQx
RjdFQzQzMjAwNThBNDc3IC8qIEFwcGxlUGF5Q29udGFjdEZpZWxkLmggaW4gSGVhZGVycyAqLywK
KwkJCQk5NTAxODNDRDI1RDYzM0Q5MDBENDM0MEYgLyogQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFz
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTUyN0Q3QUIyNUQ1RkRFMjAwQTZFMTc2IC8qIEFwcGxl
UGF5RGV0YWlsc1VwZGF0ZURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMkM1OUVFMjAzNUZD
OUIwMDEyMjM2QiAvKiBBcHBsZVBheUVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUJCODU5
QzIxNTlBRUExMDA2N0UwN0QgLyogQXBwbGVQYXlFcnJvckNvZGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUExQkI4NUEzMjE1OUFGNTcwMDY3RTA3RCAvKiBBcHBsZVBheUVycm9yQ29udGFjdEZpZWxk
LmggaW4gSGVhZGVycyAqLywKQEAgLTMyNzQ5LDYgKzMyNzY0LDggQEAKIAkJCQk3MTAyNUVERTFG
OTlGMUVDMDA0QTI1MEMgLyogSlNBbmltYXRpb25UaW1lbGluZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTE5NTZGMUMyMzMxQTY3NzAwNTdFOUQyIC8qIEpTQXBwbGVQYXlDYW5jZWxFdmVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTFERjVBOTkxRjdFQzhDMDAwNThBNDc3IC8qIEpTQXBwbGVQYXlD
b250YWN0RmllbGQuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1M0JDRUIyMjVENjI4M0QwMEE0QTJB
MSAvKiBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1
MjdEN0FGMjVENUZFNkMwMEE2RTE3NiAvKiBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaCBp
biBIZWFkZXJzICovLAogCQkJCUExMkM1OUY5MjAzNjBBQ0IwMDEyMjM2QiAvKiBKU0FwcGxlUGF5
RXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUExQkI4NUIyMjE1OUIxQTEwMDY3RTA3RCAvKiBK
U0FwcGxlUGF5RXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUJCODVCMzIxNTlCMUEx
MDA2N0UwN0QgLyogSlNBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmggaW4gSGVhZGVycyAqLywK
QEAgLTM0MDg2LDcgKzM0MTAzLDYgQEAKIAkJCQkxQThBNjQzQzFEMTlGQzUzMDBEMEUwMEYgLyog
UGF5bWVudE1ldGhvZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE2NEEyNDcyMTM0QkM3MTAwNTA5
MTU2IC8qIFBheW1lbnRNZXRob2RDaGFuZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFG
NzZCMTkxRjQ0QzM5MDAwMTRDMzE4IC8qIFBheW1lbnRNZXRob2REYXRhLmggaW4gSGVhZGVycyAq
LywKLQkJCQlBMURGRDUyNTIzMzQ1OTNGMDA0MkZDREIgLyogUGF5bWVudE1ldGhvZFVwZGF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTFGNzZCMkIxRjQ0QzRFRjAwMTRDMzE4IC8qIFBheW1lbnRP
cHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUY3NkIxMzFGNDRDMjQ1MDAxNEMzMTggLyog
UGF5bWVudFJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUExRjYwMDQ0MUY0NzU3QTkwMDc3
RTgzRiAvKiBQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggMmIzOWEwZDY1YmQ4N2IzNjkwN2Vh
NjY3MmUwZjk1MWY5MjRhYWJhMC4uZWJlYzUyZjliNWVlOTkyYTgwODMwNWNjMmI0MWMyNzliMzRh
ZDRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTM2NCw5ICsz
NjQsOSBAQCBjbGFzcyBFbXB0eVBheW1lbnRDb29yZGluYXRvckNsaWVudCBmaW5hbCA6IHB1Ymxp
YyBQYXltZW50Q29vcmRpbmF0b3JDbGllbnQgewogICAgIHZvaWQgb3BlblBheW1lbnRTZXR1cChj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbCB7IGNhbGxPbk1haW5UaHJlYWQoW2NvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7IGNvbXBs
ZXRpb25IYW5kbGVyKGZhbHNlKTsgfSk7IH0KICAgICBib29sIHNob3dQYXltZW50VUkoY29uc3Qg
VVJMJiwgY29uc3QgVmVjdG9yPFVSTD4mLCBjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVx
dWVzdCYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdm9pZCBjb21wbGV0ZU1lcmNoYW50
VmFsaWRhdGlvbihjb25zdCBQYXltZW50TWVyY2hhbnRTZXNzaW9uJikgZmluYWwgeyB9Ci0gICAg
dm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFNoaXBwaW5nTWV0
aG9kVXBkYXRlPiYmKSBmaW5hbCB7IH0KLSAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdDb250YWN0
U2VsZWN0aW9uKE9wdGlvbmFsPFNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJikgZmluYWwgeyB9Ci0g
ICAgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8UGF5bWVudE1l
dGhvZFVwZGF0ZT4mJikgZmluYWwgeyB9CisgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9k
U2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYpIGZpbmFs
IHsgfQorICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8
QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYpIGZpbmFsIHsgfQorICAgIHZvaWQgY29t
cGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5UGF5bWVudE1ldGhv
ZFVwZGF0ZT4mJikgZmluYWwgeyB9CiAgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRTZXNzaW9uKE9w
dGlvbmFsPFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYmKSBmaW5hbCB7IH0KICAgICB2b2lk
IGNhbmNlbFBheW1lbnRTZXNzaW9uKCkgZmluYWwgeyB9CiAgICAgdm9pZCBhYm9ydFBheW1lbnRT
ZXNzaW9uKCkgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tQYXltZW50Q29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5
bWVudENvb3JkaW5hdG9yLmNwcAppbmRleCAxNmMxZDk2OTcyMTA5Y2RmYTIxZDI0YjIxMTIyMGMy
ZWM1MjIyYmQ0Li4yMjJiNzgxZGEwM2Y2ZWIyNDhkOGY0MDVjODU0OThlNTczMDk5OGZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5jcHAK
QEAgLTI4LDE0ICsyOCwxNiBAQAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAorI2luY2x1ZGUg
IkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oIgogI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRh
dGUuaCIKKyNpbmNsdWRlICJBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVk
ZSAiTW9ja0FwcGxlUGF5U2V0dXBGZWF0dXJlLmgiCiAjaW5jbHVkZSAiTW9ja1BheW1lbnQuaCIK
ICNpbmNsdWRlICJNb2NrUGF5bWVudENvbnRhY3QuaCIKICNpbmNsdWRlICJNb2NrUGF5bWVudE1l
dGhvZC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYXltZW50Q29vcmRpbmF0b3Iu
aCIKLSNpbmNsdWRlICJQYXltZW50TWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVkZSAiUGF5bWVudFNl
c3Npb25FcnJvci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1
ZGUgPHd0Zi9SdW5Mb29wLmg+CkBAIC05NiwxOCArOTgsMTEgQEAgc3RhdGljIHZvaWQgZGlzcGF0
Y2hJZlNob3dpbmcoRnVuY3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQogICAgIH0pOwogfQogCi1z
dGF0aWMgVmVjdG9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+IGNvbnZlcnQoY29uc3QgVmVjdG9y
PEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4mIHNoaXBwaW5n
TWV0aG9kcykKLXsKLSAgICByZXR1cm4gV1RGOjptYXAoc2hpcHBpbmdNZXRob2RzLCBbXSAoYXV0
byYgc2hpcHBpbmdNZXRob2QpIHsKLSAgICAgICAgcmV0dXJuIEFwcGxlUGF5U2hpcHBpbmdNZXRo
b2QgeyBzaGlwcGluZ01ldGhvZC5sYWJlbCwgc2hpcHBpbmdNZXRob2QuZGV0YWlsLCBzaGlwcGlu
Z01ldGhvZC5hbW91bnQsIHNoaXBwaW5nTWV0aG9kLmlkZW50aWZpZXIgfTsKLSAgICB9KTsKLX0K
LQogYm9vbCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpzaG93UGF5bWVudFVJKGNvbnN0IFVSTCYs
IGNvbnN0IFZlY3RvcjxVUkw+JiwgY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Qm
IHJlcXVlc3QpCiB7CiAgICAgaWYgKHJlcXVlc3Quc2hpcHBpbmdDb250YWN0KCkucGtDb250YWN0
KCkpCiAgICAgICAgIG1fc2hpcHBpbmdBZGRyZXNzID0gcmVxdWVzdC5zaGlwcGluZ0NvbnRhY3Qo
KS50b0FwcGxlUGF5UGF5bWVudENvbnRhY3QocmVxdWVzdC52ZXJzaW9uKCkpOwotICAgIG1fc2hp
cHBpbmdNZXRob2RzID0gY29udmVydChyZXF1ZXN0LnNoaXBwaW5nTWV0aG9kcygpKTsKKyAgICBt
X3NoaXBwaW5nTWV0aG9kcyA9IHJlcXVlc3Quc2hpcHBpbmdNZXRob2RzKCk7CiAgICAgbV9yZXF1
aXJlZEJpbGxpbmdDb250YWN0RmllbGRzID0gcmVxdWVzdC5yZXF1aXJlZEJpbGxpbmdDb250YWN0
RmllbGRzKCk7CiAgICAgbV9yZXF1aXJlZFNoaXBwaW5nQ29udGFjdEZpZWxkcyA9IHJlcXVlc3Qu
cmVxdWlyZWRTaGlwcGluZ0NvbnRhY3RGaWVsZHMoKTsKICNpZiBFTkFCTEUoQVBQTEVfUEFZX0lO
U1RBTExNRU5UUykKQEAgLTEyOSwzOCArMTI0LDQ5IEBAIHZvaWQgTW9ja1BheW1lbnRDb29yZGlu
YXRvcjo6Y29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24oY29uc3QgUGF5bWVudE1lcmNoYW50U2Vz
CiAgICAgfSk7CiB9CiAKLXZvaWQgTW9ja1BheW1lbnRDb29yZGluYXRvcjo6dXBkYXRlVG90YWxB
bmRMaW5lSXRlbXMoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5k
TGluZUl0ZW1zJiB0b3RhbEFuZExpbmVJdGVtcykKK3ZvaWQgTW9ja1BheW1lbnRDb29yZGluYXRv
cjo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVNoaXBw
aW5nTWV0aG9kVXBkYXRlPiYmIHNoaXBwaW5nTWV0aG9kVXBkYXRlKQogewotICAgIG1fdG90YWwg
PSB0b3RhbEFuZExpbmVJdGVtcy50b3RhbDsKLSAgICBtX2xpbmVJdGVtcyA9IHRvdGFsQW5kTGlu
ZUl0ZW1zLmxpbmVJdGVtczsKKyAgICBpZiAoIXNoaXBwaW5nTWV0aG9kVXBkYXRlKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtX3RvdGFsID0gV1RGTW92ZShzaGlwcGluZ01ldGhvZFVwZGF0ZS0+
bmV3VG90YWwpOworICAgIG1fbGluZUl0ZW1zID0gV1RGTW92ZShzaGlwcGluZ01ldGhvZFVwZGF0
ZS0+bmV3TGluZUl0ZW1zKTsKIH0KIAotdm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjb21w
bGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFNoaXBwaW5nTWV0aG9kVXBkYXRl
PiYmIHNoaXBwaW5nTWV0aG9kVXBkYXRlKQorc3RhdGljIFZlY3RvcjxNb2NrUGF5bWVudEVycm9y
PiBjb252ZXJ0KFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+JiYgZXJyb3JzKQogewotICAg
IGlmIChzaGlwcGluZ01ldGhvZFVwZGF0ZSkKLSAgICAgICAgdXBkYXRlVG90YWxBbmRMaW5lSXRl
bXMoc2hpcHBpbmdNZXRob2RVcGRhdGUtPm5ld1RvdGFsQW5kTGluZUl0ZW1zKTsKKyAgICBWZWN0
b3I8TW9ja1BheW1lbnRFcnJvcj4gcmVzdWx0OworICAgIGZvciAoYXV0byYgZXJyb3IgOiBlcnJv
cnMpIHsKKyAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh7IGVy
cm9yLT5jb2RlKCksIGVycm9yLT5tZXNzYWdlKCksIGVycm9yLT5jb250YWN0RmllbGQoKSB9KTsK
KyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBNb2NrUGF5bWVudENvb3JkaW5h
dG9yOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ0Nv
bnRhY3RVcGRhdGU+JiYgc2hpcHBpbmdDb250YWN0VXBkYXRlKQordm9pZCBNb2NrUGF5bWVudENv
b3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxBcHBs
ZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJiBzaGlwcGluZ0NvbnRhY3RVcGRhdGUpCiB7CiAg
ICAgaWYgKCFzaGlwcGluZ0NvbnRhY3RVcGRhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1f
c2hpcHBpbmdNZXRob2RzID0gY29udmVydChzaGlwcGluZ0NvbnRhY3RVcGRhdGUtPm5ld1NoaXBw
aW5nTWV0aG9kcyk7Ci0gICAgdXBkYXRlVG90YWxBbmRMaW5lSXRlbXMoc2hpcHBpbmdDb250YWN0
VXBkYXRlLT5uZXdUb3RhbEFuZExpbmVJdGVtcyk7Ci0gICAgbV9lcnJvcnMgPSBXVEZNb3ZlKHNo
aXBwaW5nQ29udGFjdFVwZGF0ZS0+ZXJyb3JzKTsKKyAgICBtX3RvdGFsID0gV1RGTW92ZShzaGlw
cGluZ0NvbnRhY3RVcGRhdGUtPm5ld1RvdGFsKTsKKyAgICBtX2xpbmVJdGVtcyA9IFdURk1vdmUo
c2hpcHBpbmdDb250YWN0VXBkYXRlLT5uZXdMaW5lSXRlbXMpOworICAgIG1fZXJyb3JzID0gY29u
dmVydChXVEZNb3ZlKHNoaXBwaW5nQ29udGFjdFVwZGF0ZS0+ZXJyb3JzKSk7CisgICAgbV9zaGlw
cGluZ01ldGhvZHMgPSBXVEZNb3ZlKHNoaXBwaW5nQ29udGFjdFVwZGF0ZS0+bmV3U2hpcHBpbmdN
ZXRob2RzKTsKIH0KIAotdm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVBheW1l
bnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8UGF5bWVudE1ldGhvZFVwZGF0ZT4mJiBwYXltZW50
TWV0aG9kVXBkYXRlKQordm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVBheW1l
bnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlPiYm
IHBheW1lbnRNZXRob2RVcGRhdGUpCiB7Ci0gICAgaWYgKHBheW1lbnRNZXRob2RVcGRhdGUpCi0g
ICAgICAgIHVwZGF0ZVRvdGFsQW5kTGluZUl0ZW1zKHBheW1lbnRNZXRob2RVcGRhdGUtPnRvdGFs
QW5kTGluZUl0ZW1zKCkpOworICAgIGlmICghcGF5bWVudE1ldGhvZFVwZGF0ZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbV90b3RhbCA9IFdURk1vdmUocGF5bWVudE1ldGhvZFVwZGF0ZS0+bmV3
VG90YWwpOworICAgIG1fbGluZUl0ZW1zID0gV1RGTW92ZShwYXltZW50TWV0aG9kVXBkYXRlLT5u
ZXdMaW5lSXRlbXMpOwogfQogCiB2b2lkIE1vY2tQYXltZW50Q29vcmRpbmF0b3I6OmNoYW5nZVNo
aXBwaW5nT3B0aW9uKFN0cmluZyYmIHNoaXBwaW5nT3B0aW9uKQogewogICAgIGRpc3BhdGNoSWZT
aG93aW5nKFtwYWdlID0gJm1fcGFnZSwgc2hpcHBpbmdPcHRpb24gPSBXVEZNb3ZlKHNoaXBwaW5n
T3B0aW9uKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVl
c3Q6OlNoaXBwaW5nTWV0aG9kIHNoaXBwaW5nTWV0aG9kOworICAgICAgICBBcHBsZVBheVNoaXBw
aW5nTWV0aG9kIHNoaXBwaW5nTWV0aG9kOwogICAgICAgICBzaGlwcGluZ01ldGhvZC5pZGVudGlm
aWVyID0gV1RGTW92ZShzaGlwcGluZ09wdGlvbik7CiAgICAgICAgIHBhZ2UtPnBheW1lbnRDb29y
ZGluYXRvcigpLmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKHNoaXBwaW5nTWV0aG9kKTsKICAgICB9
KTsKQEAgLTE5NCw3ICsyMDAsNyBAQCB2b2lkIE1vY2tQYXltZW50Q29vcmRpbmF0b3I6OmNhbmNl
bFBheW1lbnQoKQogdm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVBheW1lbnRT
ZXNzaW9uKE9wdGlvbmFsPFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYmIHJlc3VsdCkKIHsK
ICAgICBhdXRvIGlzRmluYWxTdGF0ZSA9IGlzRmluYWxTdGF0ZVJlc3VsdChyZXN1bHQpOwotICAg
IG1fZXJyb3JzID0gV1RGTW92ZShyZXN1bHQtPmVycm9ycyk7CisgICAgbV9lcnJvcnMgPSBjb252
ZXJ0KFdURk1vdmUocmVzdWx0LT5lcnJvcnMpKTsKIAogICAgIGlmICghaXNGaW5hbFN0YXRlKQog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQ
YXltZW50Q29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRD
b29yZGluYXRvci5oCmluZGV4IDQzNGFlNTY1MDIyOTk2NjgwMTQ5MzBmZDQ4YmZkNDZhNmE5NmNh
YWMuLmI3ZGIwOTA2MmQ2MmU5YmYxMzM2MDc4OTYyMWE1M2U0MTQ1MTlkZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5oCkBAIC04Miw5ICs4
Miw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBvcGVuUGF5bWVudFNldHVwKGNvbnN0IFN0cmluZyYs
IGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwog
ICAgIGJvb2wgc2hvd1BheW1lbnRVSShjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8VVJMPiYsIGNv
bnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0JikgZmluYWw7CiAgICAgdm9pZCBjb21w
bGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBQYXltZW50TWVyY2hhbnRTZXNzaW9uJikgZmlu
YWw7Ci0gICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFNo
aXBwaW5nTWV0aG9kVXBkYXRlPiYmKSBmaW5hbDsKLSAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdD
b250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJikgZmluYWw7
Ci0gICAgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8UGF5bWVu
dE1ldGhvZFVwZGF0ZT4mJikgZmluYWw7CisgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9k
U2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYpIGZpbmFs
OworICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8QXBw
bGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYpIGZpbmFsOworICAgIHZvaWQgY29tcGxldGVQ
YXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0
ZT4mJikgZmluYWw7CiAgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRTZXNzaW9uKE9wdGlvbmFsPFBh
eW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYmKSBmaW5hbDsKICAgICB2b2lkIGFib3J0UGF5bWVu
dFNlc3Npb24oKSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbFBheW1lbnRTZXNzaW9uKCkgZmluYWw7
CkBAIC05Nyw4ICs5Nyw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRTZXR1cEZlYXR1cmVzKGNv
bnN0IEFwcGxlUGF5U2V0dXBDb25maWd1cmF0aW9uJiwgY29uc3QgVVJMJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChWZWN0b3I8UmVmPEFwcGxlUGF5U2V0dXBGZWF0dXJlPj4mJik+JiYpIGZpbmFs
OwogICAgIHZvaWQgYmVnaW5BcHBsZVBheVNldHVwKGNvbnN0IEFwcGxlUGF5U2V0dXBDb25maWd1
cmF0aW9uJiwgY29uc3QgVVJMJiwgVmVjdG9yPFJlZlB0cjxBcHBsZVBheVNldHVwRmVhdHVyZT4+
JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogCi0gICAgdm9pZCB1
cGRhdGVUb3RhbEFuZExpbmVJdGVtcyhjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dDo6VG90YWxBbmRMaW5lSXRlbXMmKTsKLQogICAgIFBhZ2UmIG1fcGFnZTsKICAgICBib29sIG1f
Y2FuTWFrZVBheW1lbnRzIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9jYW5NYWtlUGF5bWVudHNXaXRo
QWN0aXZlQ2FyZCB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
TW9ja1BheW1lbnRFcnJvci5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudEVy
cm9yLmgKaW5kZXggY2RlMzhlZjUwMWM2MGNiMTQwZDlhN2U3YzExMjYwOWQ1MzdiYzUzZS4uNWJj
MWNhMTE5NjMxM2IzODA4NDFiNDVkZDczYzUwNDMyZjA2MmI1NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudEVycm9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrUGF5bWVudEVycm9yLmgKQEAgLTI3LDExICsyNywxNiBAQAogCiAjaWYgRU5B
QkxFKEFQUExFX1BBWSkKIAotI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlFcnJvckNvZGUuaCIKKyNpbmNsdWRlICJBcHBsZVBheUVy
cm9yQ29udGFjdEZpZWxkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgTW9ja1Bh
eW1lbnRFcnJvciA9IFBheW1lbnRFcnJvcjsKK3N0cnVjdCBNb2NrUGF5bWVudEVycm9yIHsKKyAg
ICBBcHBsZVBheUVycm9yQ29kZSBjb2RlOworICAgIFN0cmluZyBtZXNzYWdlOworICAgIE9wdGlv
bmFsPEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ+IGNvbnRhY3RGaWVsZDsKK307CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9j
b2NvYS9QYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5oIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5oCmluZGV4IGZjNzY0YTEw
MGU1MjE4NTRjMDc3OTYzYmQ0NGNhYTgzZjE5MDI4MzAuLjg2MWM4NThkYWU2MmMyNmU5ZDBmZjA5
MGYxZWMxZGRmNDU5MzAxZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29j
b2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL2NvY29hL1BheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyLmgKQEAgLTQxLDggKzQx
LDExIEBAIGNsYXNzIFBheW1lbnQ7CiBjbGFzcyBQYXltZW50Q29udGFjdDsKIGNsYXNzIFBheW1l
bnRNZXJjaGFudFNlc3Npb247CiBjbGFzcyBQYXltZW50TWV0aG9kOwotY2xhc3MgUGF5bWVudE1l
dGhvZFVwZGF0ZTsKIGNsYXNzIFBheW1lbnRTZXNzaW9uRXJyb3I7CitzdHJ1Y3QgQXBwbGVQYXlQ
YXltZW50TWV0aG9kVXBkYXRlOworc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRl
Oworc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGlu
Z01ldGhvZFVwZGF0ZTsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01OCw3ICs2MSw3IEBA
IHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHByZXNlbnRlckRpZEZpbmlzaChQYXltZW50
QXV0aG9yaXphdGlvblByZXNlbnRlciYsIFdlYkNvcmU6OlBheW1lbnRTZXNzaW9uRXJyb3ImJikg
PSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHJlc2VudGVyRGlkU2VsZWN0UGF5bWVudE1ldGhv
ZChQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlciYsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnRN
ZXRob2QmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBwcmVzZW50ZXJEaWRTZWxlY3RTaGlw
cGluZ0NvbnRhY3QoUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXImLCBjb25zdCBXZWJDb3Jl
OjpQYXltZW50Q29udGFjdCYpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHByZXNlbnRlckRp
ZFNlbGVjdFNoaXBwaW5nTWV0aG9kKFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyJiwgY29u
c3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9k
JikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgcHJlc2VudGVyRGlkU2VsZWN0U2hpcHBpbmdN
ZXRob2QoUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXImLCBjb25zdCBXZWJDb3JlOjpBcHBs
ZVBheVNoaXBwaW5nTWV0aG9kJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHJlc2VudGVy
V2lsbFZhbGlkYXRlTWVyY2hhbnQoUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXImLCBjb25z
dCBVUkwmKSA9IDA7CiAgICAgfTsKIApAQCAtNjcsMTAgKzcwLDEwIEBAIHB1YmxpYzoKICAgICBD
bGllbnQmIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKICAgICB2b2lkIGNvbXBsZXRl
TWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24m
KTsKLSAgICB2b2lkIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25h
bDxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiYpOworICAgIHZvaWQgY29tcGxldGVQYXlt
ZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhv
ZFVwZGF0ZT4mJik7CiAgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRTZXNzaW9uKGNvbnN0IE9wdGlv
bmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYpOwotICAgIHZvaWQgY29t
cGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hp
cHBpbmdDb250YWN0VXBkYXRlPiYpOwotICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNl
bGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4mKTsK
KyAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNv
cmU6OkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKTsKKyAgICB2b2lkIGNvbXBsZXRl
U2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGlu
Z01ldGhvZFVwZGF0ZT4mJik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzcygpID0gMDsKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5tbSBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vY29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIubW0KaW5kZXggYWUz
NzA5MzE1YmI3NGVhYmQ1MTkyYWYzZTNlNTk0YjdmZGE1NTAwNi4uYTA1YmM3MmQ1M2Q0YzdkNDll
NGE1MjU0MjljNWJiMzNhYjk5OTNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL2NvY29hL1BheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyLm1tCkBAIC0z
MCwxNCArMzAsMjQgQEAKIAogI2ltcG9ydCAiV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRl
LmgiCiAjaW1wb3J0ICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29hLmgiCisjaW1wb3J0
IDxXZWJDb3JlL0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
QXBwbGVQYXlFcnJvci5oPgorI2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBheUVycm9yQ29kZS5oPgor
I2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9B
cHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBh
eVNoaXBwaW5nTWV0aG9kVXBkYXRlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BheW1lbnRBdXRob3Jp
emF0aW9uU3RhdHVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BheW1lbnRNZXJjaGFudFNlc3Npb24u
aD4KLSNpbXBvcnQgPFdlYkNvcmUvUGF5bWVudE1ldGhvZFVwZGF0ZS5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9QYXltZW50U3VtbWFyeUl0ZW1zLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29j
b2EuaD4KIAogI2ltcG9ydCA8cGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5oPgogCisjaWYgVVNF
KEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvUGF5bWVudEF1
dGhvcml6YXRpb25QcmVzZW50ZXJBZGRpdGlvbnMubW0+CisjZW5kaWYKKwogLy8gRklYTUU6IFN0
b3Agc29mdCBsaW5raW5nIENvbnRhY3RzIG9uY2UgdGhlIGRlcGVuZGVuY3kgY3ljbGUgaXMgcmVt
b3ZlZCBvbiBtYWNPUyAoPHJkYXI6Ly9wcm9ibGVtLzcwODg3OTM0PiksCiAvLyBvciB3aGVuIENv
bnRhY3RzIGNhbiBiZSB1cHdhcmQgbGlua2VkICg8cmRhcjovL3Byb2JsZW0vMzYxMzUxMzc+KS4K
IFNPRlRfTElOS19GUkFNRVdPUksoQ29udGFjdHMpOwpAQCAtNzEsODYgKzgxLDg2IEBAIHN0YXRp
YyBQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzIHRvUEtQYXltZW50QXV0aG9yaXphdGlvblN0
YXR1cyhXZWJDb3JlOjpQYXltCiAgICAgfQogfQogCi1zdGF0aWMgUEtQYXltZW50RXJyb3JDb2Rl
IHRvUEtQYXltZW50RXJyb3JDb2RlKFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZSBjb2RlKQor
c3RhdGljIFBLUGF5bWVudEVycm9yQ29kZSB0b1BLUGF5bWVudEVycm9yQ29kZShXZWJDb3JlOjpB
cHBsZVBheUVycm9yQ29kZSBjb2RlKQogewogICAgIHN3aXRjaCAoY29kZSkgewotICAgIGNhc2Ug
V2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb2RlOjpVbmtub3duOgorICAgIGNhc2UgV2ViQ29yZTo6
QXBwbGVQYXlFcnJvckNvZGU6OlVua25vd246CiAgICAgICAgIHJldHVybiBQS1BheW1lbnRVbmtu
b3duRXJyb3I7Ci0gICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU6OlNoaXBwaW5n
Q29udGFjdEludmFsaWQ6CisgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29kZTo6U2hp
cHBpbmdDb250YWN0SW52YWxpZDoKICAgICAgICAgcmV0dXJuIFBLUGF5bWVudFNoaXBwaW5nQ29u
dGFjdEludmFsaWRFcnJvcjsKLSAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6
QmlsbGluZ0NvbnRhY3RJbnZhbGlkOgorICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNv
ZGU6OkJpbGxpbmdDb250YWN0SW52YWxpZDoKICAgICAgICAgcmV0dXJuIFBLUGF5bWVudEJpbGxp
bmdDb250YWN0SW52YWxpZEVycm9yOwotICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpD
b2RlOjpBZGRyZXNzVW5zZXJ2aWNlYWJsZToKKyAgICBjYXNlIFdlYkNvcmU6OkFwcGxlUGF5RXJy
b3JDb2RlOjpBZGRyZXNzVW5zZXJ2aWNlYWJsZToKICAgICAgICAgcmV0dXJuIFBLUGF5bWVudFNo
aXBwaW5nQWRkcmVzc1Vuc2VydmljZWFibGVFcnJvcjsKICAgICB9CiB9CiAKLXN0YXRpYyBOU0Vy
cm9yICp0b05TRXJyb3IoY29uc3QgV2ViQ29yZTo6UGF5bWVudEVycm9yJiBlcnJvcikKK3N0YXRp
YyBOU0Vycm9yICp0b05TRXJyb3IoY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlFcnJvciYgZXJyb3Ip
CiB7CiAgICAgYXV0byB1c2VySW5mbyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFs
bG9jXSBpbml0XSk7Ci0gICAgW3VzZXJJbmZvIHNldE9iamVjdDplcnJvci5tZXNzYWdlIGZvcktl
eTpOU0xvY2FsaXplZERlc2NyaXB0aW9uS2V5XTsKKyAgICBbdXNlckluZm8gc2V0T2JqZWN0OmVy
cm9yLm1lc3NhZ2UoKSBmb3JLZXk6TlNMb2NhbGl6ZWREZXNjcmlwdGlvbktleV07CiAKLSAgICBp
ZiAoZXJyb3IuY29udGFjdEZpZWxkKSB7CisgICAgaWYgKGF1dG8gY29udGFjdEZpZWxkID0gZXJy
b3IuY29udGFjdEZpZWxkKCkpIHsKICAgICAgICAgTlNTdHJpbmcgKnBrQ29udGFjdEZpZWxkID0g
bmlsOwogICAgICAgICBOU1N0cmluZyAqcG9zdGFsQWRkcmVzc0tleSA9IG5pbDsKIAotICAgICAg
ICBzd2l0Y2ggKCplcnJvci5jb250YWN0RmllbGQpIHsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpQ
YXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6UGhvbmVOdW1iZXI6CisgICAgICAgIHN3aXRjaCAo
KmNvbnRhY3RGaWVsZCkgeworICAgICAgICBjYXNlIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250
YWN0RmllbGQ6OlBob25lTnVtYmVyOgogICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6
OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUGhvbmVOdW1iZXIoKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpD
b250YWN0RmllbGQ6OkVtYWlsQWRkcmVzczoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBh
eUVycm9yQ29udGFjdEZpZWxkOjpFbWFpbEFkZHJlc3M6CiAgICAgICAgICAgICBwa0NvbnRhY3RG
aWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRFbWFpbEFkZHJlc3MoKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5
bWVudEVycm9yOjpDb250YWN0RmllbGQ6Ok5hbWU6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBw
bGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6TmFtZToKICAgICAgICAgICAgIHBrQ29udGFjdEZpZWxk
ID0gUEFMOjpnZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVsZE5hbWUoKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpD
b250YWN0RmllbGQ6OlBob25ldGljTmFtZToKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBh
eUVycm9yQ29udGFjdEZpZWxkOjpQaG9uZXRpY05hbWU6CiAgICAgICAgICAgICBwa0NvbnRhY3RG
aWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQaG9uZXRpY05hbWUoKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5
bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlBvc3RhbEFkZHJlc3M6CisgICAgICAgIGNhc2UgV2Vi
Q29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UG9zdGFsQWRkcmVzczoKICAgICAgICAg
ICAgIHBrQ29udGFjdEZpZWxkID0gUEFMOjpnZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBvc3Rh
bEFkZHJlc3MoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNh
c2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OkFkZHJlc3NMaW5lczoKKyAg
ICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpBZGRyZXNzTGlu
ZXM6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250
YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CiAgICAgICAgICAgICBwb3N0YWxBZGRyZXNzS2V5ID0g
Z2V0Q05Qb3N0YWxBZGRyZXNzU3RyZWV0S2V5KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgIAotICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxk
OjpTdWJMb2NhbGl0eToKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFj
dEZpZWxkOjpTdWJMb2NhbGl0eToKICAgICAgICAgICAgIHBrQ29udGFjdEZpZWxkID0gUEFMOjpn
ZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBvc3RhbEFkZHJlc3MoKTsKICAgICAgICAgICAgIHBv
c3RhbEFkZHJlc3NLZXkgPSBnZXRDTlBvc3RhbEFkZHJlc3NTdWJMb2NhbGl0eUtleSgpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXlt
ZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6TG9jYWxpdHk6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6
QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6TG9jYWxpdHk6CiAgICAgICAgICAgICBwa0NvbnRh
Y3RGaWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7
CiAgICAgICAgICAgICBwb3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzQ2l0eUtl
eSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKLSAgICAgICAgY2FzZSBXZWJD
b3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6UG9zdGFsQ29kZToKKyAgICAgICAgY2Fz
ZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpQb3N0YWxDb2RlOgogICAgICAg
ICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9z
dGFsQWRkcmVzcygpOwogICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdldENOUG9zdGFs
QWRkcmVzc1Bvc3RhbENvZGVLZXkoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAg
Ci0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlN1YkFk
bWluaXN0cmF0aXZlQXJlYToKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29u
dGFjdEZpZWxkOjpTdWJBZG1pbmlzdHJhdGl2ZUFyZWE6CiAgICAgICAgICAgICBwa0NvbnRhY3RG
aWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CiAg
ICAgICAgICAgICBwb3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzU3ViQWRtaW5p
c3RyYXRpdmVBcmVhS2V5KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAotICAg
ICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpBZG1pbmlzdHJh
dGl2ZUFyZWE6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVs
ZDo6QWRtaW5pc3RyYXRpdmVBcmVhOgogICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6
OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRkcmVzcygpOwogICAgICAgICAgICAg
cG9zdGFsQWRkcmVzc0tleSA9IGdldENOUG9zdGFsQWRkcmVzc1N0YXRlS2V5KCk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIAotICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRF
cnJvcjo6Q29udGFjdEZpZWxkOjpDb3VudHJ5OgorICAgICAgICBjYXNlIFdlYkNvcmU6OkFwcGxl
UGF5RXJyb3JDb250YWN0RmllbGQ6OkNvdW50cnk6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVs
ZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CiAgICAg
ICAgICAgICBwb3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzQ291bnRyeUtleSgp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAKLSAgICAgICAgY2FzZSBXZWJDb3Jl
OjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6Q291bnRyeUNvZGU6CisgICAgICAgIGNhc2Ug
V2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6Q291bnRyeUNvZGU6CiAgICAgICAg
ICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0
YWxBZGRyZXNzKCk7CiAgICAgICAgICAgICBwb3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxB
ZGRyZXNzSVNPQ291bnRyeUNvZGVLZXkoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTYxLDE3
ICsxNzEsMjAgQEAgc3RhdGljIE5TRXJyb3IgKnRvTlNFcnJvcihjb25zdCBXZWJDb3JlOjpQYXlt
ZW50RXJyb3ImIGVycm9yKQogICAgICAgICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDpwb3N0YWxB
ZGRyZXNzS2V5IGZvcktleTpQQUw6OmdldF9QYXNzS2l0X1BLUGF5bWVudEVycm9yUG9zdGFsQWRk
cmVzc1VzZXJJbmZvS2V5KCldOwogICAgIH0KIAotICAgIHJldHVybiBbTlNFcnJvciBlcnJvcldp
dGhEb21haW46UEFMOjpnZXRfUGFzc0tpdF9QS1BheW1lbnRFcnJvckRvbWFpbigpIGNvZGU6dG9Q
S1BheW1lbnRFcnJvckNvZGUoZXJyb3IuY29kZSkgdXNlckluZm86dXNlckluZm8uZ2V0KCldOwor
ICAgIHJldHVybiBbTlNFcnJvciBlcnJvcldpdGhEb21haW46UEFMOjpnZXRfUGFzc0tpdF9QS1Bh
eW1lbnRFcnJvckRvbWFpbigpIGNvZGU6dG9QS1BheW1lbnRFcnJvckNvZGUoZXJyb3IuY29kZSgp
KSB1c2VySW5mbzp1c2VySW5mby5nZXQoKV07CiB9CiAKLXN0YXRpYyBSZXRhaW5QdHI8TlNBcnJh
eT4gdG9OU0Vycm9ycyhjb25zdCBWZWN0b3I8V2ViQ29yZTo6UGF5bWVudEVycm9yPiYgZXJyb3Jz
KQorc3RhdGljIFJldGFpblB0cjxOU0FycmF5PiB0b05TRXJyb3JzKGNvbnN0IFZlY3RvcjxSZWZQ
dHI8V2ViQ29yZTo6QXBwbGVQYXlFcnJvcj4+JiBlcnJvcnMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0
ZU5TQXJyYXkoZXJyb3JzLCBbXSAoYXV0byYgZXJyb3IpIHsKLSAgICAgICAgcmV0dXJuIHRvTlNF
cnJvcihlcnJvcik7Ci0gICAgfSk7CisgICAgYXV0byBhcnJheSA9IGFkb3B0TlMoTlNNdXRhYmxl
QXJyYXkuYXJyYXkpOworICAgIGZvciAoYXV0byYgZXJyb3IgOiBlcnJvcnMpIHsKKyAgICAgICAg
aWYgKGVycm9yKQorICAgICAgICAgICAgW2FycmF5IGFkZE9iamVjdDp0b05TRXJyb3IoKmVycm9y
KV07CisgICAgfQorICAgIHJldHVybiBhcnJheTsKIH0KIAotc3RhdGljIFJldGFpblB0cjxOU0Fy
cmF5PiB0b1BLU2hpcHBpbmdNZXRob2RzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGluZ01ldGhvZHMpCitz
dGF0aWMgUmV0YWluUHRyPE5TQXJyYXk+IHRvUEtTaGlwcGluZ01ldGhvZHMoY29uc3QgVmVjdG9y
PFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGluZ01ldGhvZHMpCiB7CiAg
ICAgcmV0dXJuIGNyZWF0ZU5TQXJyYXkoc2hpcHBpbmdNZXRob2RzLCBbXSAoYXV0byYgbWV0aG9k
KSB7CiAgICAgICAgIHJldHVybiB0b1BLU2hpcHBpbmdNZXRob2QobWV0aG9kKTsKQEAgLTE4NCw3
ICsxOTcsNyBAQCB2b2lkIFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyOjpjb21wbGV0ZU1l
cmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpQYQogICAgIFtwbGF0Zm9ybURlbGVnYXRl
KCkgY29tcGxldGVNZXJjaGFudFZhbGlkYXRpb246bWVyY2hhbnRTZXNzaW9uLnBrUGF5bWVudE1l
cmNoYW50U2Vzc2lvbigpIGVycm9yOm5pbF07CiB9CiAKLXZvaWQgUGF5bWVudEF1dGhvcml6YXRp
b25QcmVzZW50ZXI6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25h
bDxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiYgdXBkYXRlKQordm9pZCBQYXltZW50QXV0
aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlv
bmFsPFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCiB7CiAg
ICAgQVNTRVJUKHBsYXRmb3JtRGVsZWdhdGUoKSk7CiAgICAgaWYgKCF1cGRhdGUpIHsKQEAgLTE5
Miw3ICsyMDUsMTQgQEAgdm9pZCBQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxl
dGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKGNvbnN0IE9wdGlvbmEKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIFtwbGF0Zm9ybURlbGVnYXRlKCkgY29tcGxldGVQYXltZW50TWV0aG9kU2Vs
ZWN0aW9uOnVwZGF0ZS0+cGxhdGZvcm1VcGRhdGUoKV07CisgICAgYXV0byBwYXltZW50TWV0aG9k
VXBkYXRlID0gYWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9k
VXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aFBheW1lbnRTdW1tYXJ5SXRlbXM6V2ViQ29yZTo6cGxh
dGZvcm1TdW1tYXJ5SXRlbXMoV1RGTW92ZSh1cGRhdGUtPm5ld1RvdGFsKSwgV1RGTW92ZSh1cGRh
dGUtPm5ld0xpbmVJdGVtcykpXSk7CisjaWYgSEFWRShQQVNTS0lUX0lOU1RBTExNRU5UUykgJiYg
RU5BQkxFKEFQUExFX1BBWV9JTlNUQUxMTUVOVFMpCisgICAgW3BheW1lbnRNZXRob2RVcGRhdGUg
c2V0SW5zdGFsbG1lbnRHcm91cElkZW50aWZpZXI6V1RGTW92ZSh1cGRhdGUtPmluc3RhbGxtZW50
R3JvdXBJZGVudGlmaWVyKV07CisjZW5kaWYgLy8gSEFWRShQQVNTS0lUX0lOU1RBTExNRU5UUykg
JiYgRU5BQkxFKEFQUExFX1BBWV9JTlNUQUxMTUVOVFMpCisjaWYgZGVmaW5lZChQYXltZW50QXV0
aG9yaXphdGlvblByZXNlbnRlckFkZGl0aW9uc19jb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rp
b24pCisgICAgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXJBZGRpdGlvbnNfY29tcGxldGVQ
YXltZW50TWV0aG9kU2VsZWN0aW9uCisjZW5kaWYKKyAgICBbcGxhdGZvcm1EZWxlZ2F0ZSgpIGNv
bXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbjpwYXltZW50TWV0aG9kVXBkYXRlLmdldCgpXTsK
IH0KIAogdm9pZCBQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVQYXltZW50
U2Vzc2lvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3Vs
dD4mIHJlc3VsdCkKQEAgLTIwMyw3ICsyMjMsNyBAQCB2b2lkIFBheW1lbnRBdXRob3JpemF0aW9u
UHJlc2VudGVyOjpjb21wbGV0ZVBheW1lbnRTZXNzaW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNvcgog
ICAgIFtwbGF0Zm9ybURlbGVnYXRlKCkgY29tcGxldGVQYXltZW50U2Vzc2lvbjpzdGF0dXMgZXJy
b3JzOmVycm9ycy5nZXQoKV07CiB9CiAKLXZvaWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50
ZXI6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNv
cmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mIHVwZGF0ZSkKK3ZvaWQgUGF5bWVudEF1dGhvcml6
YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFs
PFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmIHVwZGF0ZSkKIHsKICAg
ICBBU1NFUlQocGxhdGZvcm1EZWxlZ2F0ZSgpKTsKICAgICBpZiAoIXVwZGF0ZSkgewpAQCAtMjEx
LDE0ICsyMzEsMTYgQEAgdm9pZCBQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxl
dGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oY29uc3QgT3B0aW8KICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIC8vIEZJWE1FOiBXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGUgc2hv
dWxkIGtub3cgaG93IHRvIGNvbnZlcnQgaXRzZWxmIHRvIGEgUEtQYXltZW50UmVxdWVzdFNoaXBw
aW5nQ29udGFjdFVwZGF0ZS4KLSAgICBhdXRvIHNoaXBwaW5nQ29udGFjdFVwZGF0ZSA9IGFkb3B0
TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdDb250YWN0VXBkYXRlSW5zdGFu
Y2UoKSBpbml0V2l0aEVycm9yczp0b05TRXJyb3JzKHVwZGF0ZS0+ZXJyb3JzKS5nZXQoKQotICAg
ICAgICBwYXltZW50U3VtbWFyeUl0ZW1zOldlYkNvcmU6OnBsYXRmb3JtU3VtbWFyeUl0ZW1zKHVw
ZGF0ZS0+bmV3VG90YWxBbmRMaW5lSXRlbXMpCi0gICAgICAgIHNoaXBwaW5nTWV0aG9kczp0b1BL
U2hpcHBpbmdNZXRob2RzKHVwZGF0ZS0+bmV3U2hpcHBpbmdNZXRob2RzKS5nZXQoKV0pOworICAg
IGF1dG8gc2hpcHBpbmdDb250YWN0VXBkYXRlID0gYWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVu
dFJlcXVlc3RTaGlwcGluZ0NvbnRhY3RVcGRhdGVJbnN0YW5jZSgpIGluaXRXaXRoRXJyb3JzOnRv
TlNFcnJvcnMoV1RGTW92ZSh1cGRhdGUtPmVycm9ycykpLmdldCgpCisgICAgICAgIHBheW1lbnRT
dW1tYXJ5SXRlbXM6V2ViQ29yZTo6cGxhdGZvcm1TdW1tYXJ5SXRlbXMoV1RGTW92ZSh1cGRhdGUt
Pm5ld1RvdGFsKSwgV1RGTW92ZSh1cGRhdGUtPm5ld0xpbmVJdGVtcykpCisgICAgICAgIHNoaXBw
aW5nTWV0aG9kczp0b1BLU2hpcHBpbmdNZXRob2RzKFdURk1vdmUodXBkYXRlLT5uZXdTaGlwcGlu
Z01ldGhvZHMpKS5nZXQoKV0pOworI2lmIGRlZmluZWQoUGF5bWVudEF1dGhvcml6YXRpb25QcmVz
ZW50ZXJBZGRpdGlvbnNfY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24pCisgICAgUGF5
bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXJBZGRpdGlvbnNfY29tcGxldGVTaGlwcGluZ0NvbnRh
Y3RTZWxlY3Rpb24KKyNlbmRpZgogICAgIFtwbGF0Zm9ybURlbGVnYXRlKCkgY29tcGxldGVTaGlw
cGluZ0NvbnRhY3RTZWxlY3Rpb246c2hpcHBpbmdDb250YWN0VXBkYXRlLmdldCgpXTsKIH0KIAot
dm9pZCBQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVTaGlwcGluZ01ldGhv
ZFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4m
IHVwZGF0ZSkKK3ZvaWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlU2hp
cHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01l
dGhvZFVwZGF0ZT4mJiB1cGRhdGUpCiB7CiAgICAgQVNTRVJUKHBsYXRmb3JtRGVsZWdhdGUoKSk7
CiAgICAgaWYgKCF1cGRhdGUpIHsKQEAgLTIyNiw4ICsyNDgsMTAgQEAgdm9pZCBQYXltZW50QXV0
aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihjb25z
dCBPcHRpb24KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBXZWJDb3Jl
OjpTaGlwcGluZ01ldGhvZFVwZGF0ZSBzaG91bGQga25vdyBob3cgdG8gY29udmVydCBpdHNlbGYg
dG8gYSBQS1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdNZXRob2RVcGRhdGUuCi0gICAgYXV0byBzaGlw
cGluZ01ldGhvZFVwZGF0ZSA9IGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0U2hp
cHBpbmdNZXRob2RVcGRhdGVJbnN0YW5jZSgpIGluaXRXaXRoUGF5bWVudFN1bW1hcnlJdGVtczpX
ZWJDb3JlOjpwbGF0Zm9ybVN1bW1hcnlJdGVtcyh1cGRhdGUtPm5ld1RvdGFsQW5kTGluZUl0ZW1z
KV0pOworICAgIGF1dG8gc2hpcHBpbmdNZXRob2RVcGRhdGUgPSBhZG9wdE5TKFtQQUw6OmFsbG9j
UEtQYXltZW50UmVxdWVzdFNoaXBwaW5nTWV0aG9kVXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aFBh
eW1lbnRTdW1tYXJ5SXRlbXM6V2ViQ29yZTo6cGxhdGZvcm1TdW1tYXJ5SXRlbXMoV1RGTW92ZSh1
cGRhdGUtPm5ld1RvdGFsKSwgV1RGTW92ZSh1cGRhdGUtPm5ld0xpbmVJdGVtcykpXSk7CisjaWYg
ZGVmaW5lZChQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlckFkZGl0aW9uc19jb21wbGV0ZVNo
aXBwaW5nTWV0aG9kU2VsZWN0aW9uKQorICAgIFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVy
QWRkaXRpb25zX2NvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24KKyNlbmRpZgogICAgIFtw
bGF0Zm9ybURlbGVnYXRlKCkgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbjpzaGlwcGlu
Z01ldGhvZFVwZGF0ZS5nZXQoKV07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vY29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9jb2NvYS9XS1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0KaW5k
ZXggY2YzNGE0OGVkMmZlZTFlYTc5ZjJlZDI3ZGJmMTI4NWFlMmNhMjMzNC4uYjlkY2U3YmVkZThk
Nzk1Mjg0NjIzMGQwNTdkMjY0OTlmMWNlNjdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9jb2NvYS9XS1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0KKysrIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9XS1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUu
bW0KQEAgLTE3MywxNiArMTczLDE1IEBAIC0gKHZvaWQpX2RpZFNlbGVjdFNoaXBwaW5nQ29udGFj
dDooUEtDb250YWN0ICopY29udGFjdCBjb21wbGV0aW9uOihXZWJLaXQ6OkRpZFNlCiAgICAgcHJl
c2VudGVyLT5jbGllbnQoKS5wcmVzZW50ZXJEaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3QoKnByZXNl
bnRlciwgV2ViQ29yZTo6UGF5bWVudENvbnRhY3QoY29udGFjdCkpOwogfQogCi1zdGF0aWMgV2Vi
Q29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kIHRvU2hp
cHBpbmdNZXRob2QoUEtTaGlwcGluZ01ldGhvZCAqc2hpcHBpbmdNZXRob2QpCitzdGF0aWMgV2Vi
Q29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZCB0b1NoaXBwaW5nTWV0aG9kKFBLU2hpcHBpbmdN
ZXRob2QgKnNoaXBwaW5nTWV0aG9kKQogewogICAgIEFTU0VSVChzaGlwcGluZ01ldGhvZCk7CiAK
LSAgICBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRo
b2QgcmVzdWx0OworICAgIFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2QgcmVzdWx0Owog
ICAgIHJlc3VsdC5hbW91bnQgPSBzaGlwcGluZ01ldGhvZC5hbW91bnQuc3RyaW5nVmFsdWU7CiAg
ICAgcmVzdWx0LmRldGFpbCA9IHNoaXBwaW5nTWV0aG9kLmRldGFpbDsKICAgICByZXN1bHQuaWRl
bnRpZmllciA9IHNoaXBwaW5nTWV0aG9kLmlkZW50aWZpZXI7CiAgICAgcmVzdWx0LmxhYmVsID0g
c2hpcHBpbmdNZXRob2QubGFiZWw7Ci0KICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dl
YktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCBkNTQzMDIyNzUzYWRmMzE5MzYy
NDBjZjJhNDhmNTFiNzIzOWQ1ZWM1Li45MjliZWJkMDllN2M0ZjVjZTMxNGM1NGJkNjkxMzYyOWMz
NWUyNjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTcx
Nyw4ICs3MTcsNiBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2
aWNlV29ya2VyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25TdGF0ZSc6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyU3RhdGUnOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3Jr
ZXJUeXBlcy5oPiddLAotICAgICAgICAnV2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlJzog
Wyc8V2ViQ29yZS9BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oPiddLAotICAgICAgICAn
V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGUnOiBbJzxXZWJDb3JlL0FwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTaG91bGRBc2tJVFAnOiBb
JzxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPiddLAogICAgICAgICAnV2ViQ29yZTo6
U2hvdWxkTm90aWZ5V2hlblJlc29sdmVkJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMu
aD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNob3VsZFNhbXBsZSc6IFsnPFdlYkNvcmUvRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNwcAppbmRleCBjNTg5
MGUwYTJmZmMxOTBiYTk3OTY2YmFlMWJiZTg4NjA5NzUxNTRmLi5mNWNhNDE3N2ExODMyMzU5Mjc0
NGZmMmNmMDU4ZWY3MTY1ZmQzNTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
cHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0zMyw2
ICszMyw5IEBACiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BcHBsZVBheVBheW1lbnRNZXRo
b2RVcGRhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0FwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBk
YXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9QYXltZW50QXV0aG9yaXphdGlvblN0YXR1cy5oPgogCiAjZGVm
aW5lIE1FU1NBR0VfQ0hFQ0soYXNzZXJ0aW9uKSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0aW9u
LCBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpKQpAQCAtMTI4LDcgKzEzMSw3IEBAIHZvaWQgV2Vi
UGF5bWVudENvb3JkaW5hdG9yUHJveHk6OmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0
IFdlYkNvcmU6OlBheW1lCiAgICAgbV9tZXJjaGFudFZhbGlkYXRpb25TdGF0ZSA9IE1lcmNoYW50
VmFsaWRhdGlvblN0YXRlOjpWYWxpZGF0aW9uQ29tcGxldGU7CiB9CiAKLXZvaWQgV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHk6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oY29uc3Qg
T3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+JiB1cGRhdGUpCit2b2lkIFdl
YlBheW1lbnRDb29yZGluYXRvclByb3h5Ojpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9u
KE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYgdXBkYXRl
KQogewogICAgIC8vIEl0J3MgcG9zc2libGUgdGhhdCB0aGUgcGF5bWVudCBoYXMgYmVlbiBjYW5j
ZWxlZCBhbHJlYWR5LgogICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpJZGxlKQpAQCAtMTM2LDEx
ICsxMzksMTEgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxldGVTaGlw
cGluZ01ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDwKIAogICAgIE1FU1NBR0VfQ0hFQ0so
bV9zdGF0ZSA9PSBTdGF0ZTo6U2hpcHBpbmdNZXRob2RTZWxlY3RlZCk7CiAKLSAgICBwbGF0Zm9y
bUNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24odXBkYXRlKTsKKyAgICBwbGF0Zm9ybUNv
bXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUpKTsKICAgICBtX3N0
YXRlID0gU3RhdGU6OkFjdGl2ZTsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94
eTo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29y
ZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYgdXBkYXRlKQordm9pZCBXZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eTo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2Vi
Q29yZTo6QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYgdXBkYXRlKQogewogICAgIC8v
IEl0J3MgcG9zc2libGUgdGhhdCB0aGUgcGF5bWVudCBoYXMgYmVlbiBjYW5jZWxlZCBhbHJlYWR5
LgogICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpJZGxlKQpAQCAtMTQ4LDExICsxNTEsMTEgQEAg
dm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RT
ZWxlY3Rpb24oY29uc3QgT3B0aW9uYWwKIAogICAgIE1FU1NBR0VfQ0hFQ0sobV9zdGF0ZSA9PSBT
dGF0ZTo6U2hpcHBpbmdDb250YWN0U2VsZWN0ZWQpOwogCi0gICAgcGxhdGZvcm1Db21wbGV0ZVNo
aXBwaW5nQ29udGFjdFNlbGVjdGlvbih1cGRhdGUpOworICAgIHBsYXRmb3JtQ29tcGxldGVTaGlw
cGluZ0NvbnRhY3RTZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUpKTsKICAgICBtX3N0YXRlID0gU3Rh
dGU6OkFjdGl2ZTsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxl
dGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRN
ZXRob2RVcGRhdGU+JiB1cGRhdGUpCit2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5Ojpj
b21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlQ
YXltZW50TWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKIHsKICAgICAvLyBJdCdzIHBvc3NpYmxlIHRo
YXQgdGhlIHBheW1lbnQgaGFzIGJlZW4gY2FuY2VsZWQgYWxyZWFkeS4KICAgICBpZiAobV9zdGF0
ZSA9PSBTdGF0ZTo6SWRsZSkKQEAgLTE2MCw3ICsxNjMsNyBAQCB2b2lkIFdlYlBheW1lbnRDb29y
ZGluYXRvclByb3h5Ojpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9u
YWw8VwogCiAgICAgTUVTU0FHRV9DSEVDSyhtX3N0YXRlID09IFN0YXRlOjpQYXltZW50TWV0aG9k
U2VsZWN0ZWQpOwogCi0gICAgcGxhdGZvcm1Db21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24o
dXBkYXRlKTsKKyAgICBwbGF0Zm9ybUNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihXVEZN
b3ZlKHVwZGF0ZSkpOwogICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWN0aXZlOwogfQogCkBAIC0yMTgs
NyArMjIxLDcgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cHJlc2VudGVyRGlk
RmluaXNoKFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGUKICAgICBkaWRSZWFjaEZpbmFsU3Rh
dGUoV1RGTW92ZShlcnJvcikpOwogfQogCi12b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5
OjpwcmVzZW50ZXJEaWRTZWxlY3RTaGlwcGluZ01ldGhvZChQYXltZW50QXV0aG9yaXphdGlvblBy
ZXNlbnRlciYsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpT
aGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCit2b2lkIFdlYlBheW1lbnRDb29yZGluYXRv
clByb3h5OjpwcmVzZW50ZXJEaWRTZWxlY3RTaGlwcGluZ01ldGhvZChQYXltZW50QXV0aG9yaXph
dGlvblByZXNlbnRlciYsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2QmIHNo
aXBwaW5nTWV0aG9kKQogewogICAgIEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpBY3RpdmUpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29v
cmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHkuaAppbmRleCA2NTFjNzEwMTk2N2YyNTI0MTk4N2I3NzBlMDY3Mjc5
NDA5N2JhMjFmLi5lMGNkMmM2YzYzMzVkZDRmNDRmOGU1NjVkNDEyZWExNTU5MzI4ZjgyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0
b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRD
b29yZGluYXRvclByb3h5LmgKQEAgLTUxLDcgKzUxLDEwIEBAIGNsYXNzIFBheW1lbnQ7CiBjbGFz
cyBQYXltZW50Q29udGFjdDsKIGNsYXNzIFBheW1lbnRNZXJjaGFudFNlc3Npb247CiBjbGFzcyBQ
YXltZW50TWV0aG9kOwotY2xhc3MgUGF5bWVudE1ldGhvZFVwZGF0ZTsKK3N0cnVjdCBBcHBsZVBh
eVBheW1lbnRNZXRob2RVcGRhdGU7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRh
dGU7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZDsKK3N0cnVjdCBBcHBsZVBheVNoaXBw
aW5nTWV0aG9kVXBkYXRlOwogfQogCiBPQkpDX0NMQVNTIE5TT2JqZWN0OwpAQCAtMTE0LDcgKzEx
Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwcmVzZW50ZXJEaWRGaW5pc2goUGF5bWVudEF1dGhv
cml6YXRpb25QcmVzZW50ZXImLCBXZWJDb3JlOjpQYXltZW50U2Vzc2lvbkVycm9yJiYpIGZpbmFs
OwogICAgIHZvaWQgcHJlc2VudGVyRGlkU2VsZWN0UGF5bWVudE1ldGhvZChQYXltZW50QXV0aG9y
aXphdGlvblByZXNlbnRlciYsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXRob2QmKSBmaW5hbDsK
ICAgICB2b2lkIHByZXNlbnRlckRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChQYXltZW50QXV0aG9y
aXphdGlvblByZXNlbnRlciYsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnRDb250YWN0JikgZmluYWw7
Ci0gICAgdm9pZCBwcmVzZW50ZXJEaWRTZWxlY3RTaGlwcGluZ01ldGhvZChQYXltZW50QXV0aG9y
aXphdGlvblByZXNlbnRlciYsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRS
ZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpIGZpbmFsOworICAgIHZvaWQgcHJlc2VudGVyRGlkU2Vs
ZWN0U2hpcHBpbmdNZXRob2QoUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXImLCBjb25zdCBX
ZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kJikgZmluYWw7CiAgICAgdm9pZCBwcmVzZW50
ZXJXaWxsVmFsaWRhdGVNZXJjaGFudChQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlciYsIGNv
bnN0IFVSTCYpIGZpbmFsOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwpAQCAtMTIzLDkgKzEy
Niw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBvcGVuUGF5bWVudFNldHVwKGNvbnN0IFN0cmluZyYg
bWVyY2hhbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRvbWFpbk5hbWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgc2hvd1BheW1lbnRVSShXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBkZXN0aW5hdGlvbklELCBjb25zdCBTdHJpbmcmIG9yaWdpbmF0aW5nVVJM
U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGlua0ljb25VUkxTdHJpbmdzLCBjb25zdCBX
ZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgY29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24oY29u
c3QgV2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vzc2lvbiYpOwotICAgIHZvaWQgY29tcGxldGVT
aGlwcGluZ01ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01l
dGhvZFVwZGF0ZT4mKTsKLSAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9u
KGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mKTsKLSAgICB2
b2lkIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3Jl
OjpQYXltZW50TWV0aG9kVXBkYXRlPiYpOworICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhv
ZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRl
PiYmKTsKKyAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFs
PFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKTsKKyAgICB2b2lkIGNv
bXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVBh
eW1lbnRNZXRob2RVcGRhdGU+JiYpOwogICAgIHZvaWQgY29tcGxldGVQYXltZW50U2Vzc2lvbihj
b25zdCBPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mKTsKICAg
ICB2b2lkIGFib3J0UGF5bWVudFNlc3Npb24oKTsKICAgICB2b2lkIGNhbmNlbFBheW1lbnRTZXNz
aW9uKCk7CkBAIC0xNDgsOSArMTUxLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtT3Bl
blBheW1lbnRTZXR1cChjb25zdCBTdHJpbmcmIG1lcmNoYW50SWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBkb21haW5OYW1lLCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpOwogICAgIHZvaWQgcGxhdGZvcm1TaG93UGF5bWVudFVJKGNvbnN0IFVSTCYgb3JpZ2lu
YXRpbmdVUkwsIGNvbnN0IFZlY3RvcjxVUkw+JiBsaW5rSWNvblVSTHMsIGNvbnN0IFdlYkNvcmU6
OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNv
bnN0IFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24mKTsKLSAgICB2b2lkIHBsYXRmb3Jt
Q29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpT
aGlwcGluZ01ldGhvZFVwZGF0ZT4mKTsKLSAgICB2b2lkIHBsYXRmb3JtQ29tcGxldGVTaGlwcGlu
Z0NvbnRhY3RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0
VXBkYXRlPiYpOwotICAgIHZvaWQgcGxhdGZvcm1Db21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rp
b24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT4mKTsKKyAgICB2
b2lkIHBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJD
b3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKTsKKyAgICB2b2lkIHBsYXRmb3Jt
Q29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQ
YXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYpOworICAgIHZvaWQgcGxhdGZvcm1Db21wbGV0ZVBh
eW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlQYXltZW50TWV0
aG9kVXBkYXRlPiYmKTsKICAgICB2b2lkIHBsYXRmb3JtQ29tcGxldGVQYXltZW50U2Vzc2lvbihj
b25zdCBPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mKTsKICAg
ICB2b2lkIHBsYXRmb3JtSGlkZVBheW1lbnRVSSgpOwogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5h
dG9yUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgppbmRleCBjMTQ5ZTRkMmVjMjk1MzAz
ZmE4NmJiMTJiYzQ4ZjZmMmNlMDA1ZjU1Li40YzU0Y2ZiMmY0YmE2YzUzZWU1YzlkNjA3OTMzYzQ3
NzJmMDI4ODdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MzIsOSArMzIsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eSBOb3RS
ZWZDb3VudGVkIHsKIAogICAgIFNob3dQYXltZW50VUkoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
ZGVzdGluYXRpb25JRCwgU3RyaW5nIG9yaWdpbmF0aW5nVVJMU3RyaW5nLCBWZWN0b3I8U3RyaW5n
PiBsaW5rSWNvblVSTFN0cmluZ3MsIFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0IHBheW1lbnRSZXF1ZXN0KSAtPiAoYm9vbCByZXN1bHQpIFN5bmNocm9ub3VzCiAgICAgQ29t
cGxldGVNZXJjaGFudFZhbGlkYXRpb24oV2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vzc2lvbiBw
YXltZW50TWVyY2hhbnRTZXNzaW9uKQotICAgIENvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rp
b24oT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+IHVwZGF0ZSkKLSAgICBD
b21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGlu
Z0NvbnRhY3RVcGRhdGU+IHVwZGF0ZSkKLSAgICBDb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rp
b24oT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT4gdXBkYXRlKQorICAgIENv
bXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlT
aGlwcGluZ01ldGhvZFVwZGF0ZT4gdXBkYXRlKQorICAgIENvbXBsZXRlU2hpcHBpbmdDb250YWN0
U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRl
PiB1cGRhdGUpCisgICAgQ29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdl
YkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4gdXBkYXRlKQogICAgIENvbXBsZXRl
UGF5bWVudFNlc3Npb24oT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1
bHQ+IHJlc3VsdCkKICAgICBBYm9ydFBheW1lbnRTZXNzaW9uKCkKICAgICBDYW5jZWxQYXltZW50
U2Vzc2lvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9jb2Nv
YS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29hLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29hLmgKaW5kZXgg
OTI3OTkwOTI3YWYyZTQxYmJiZTc2MGU2NDc5Yzc2YTVjMWU2MTEzMi4uMjM2NjZiNzM2NDM0MmUy
NmEyNTM4YjRkMmExYTM5NDNmZjRjNWE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvQXBwbGVQYXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRv
clByb3h5Q29jb2EuaApAQCAtMjcsMTYgKzI3LDE4IEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZ
KQogCi0jaW1wb3J0IDxXZWJDb3JlL0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Lmg+Ci0K
IE9CSkNfQ0xBU1MgUEtTaGlwcGluZ01ldGhvZDsKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworc3Ry
dWN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAv
LyBGSVhNRTogUmF0aGVyIHRoYW4gaGF2aW5nIHRoZXNlIGZyZWUgZnVuY3Rpb25zIHNjYXR0ZXJl
ZCBhYm91dCwgQXBwbGUgUGF5IGRhdGEgdHlwZXMgc2hvdWxkIGtub3cKIC8vIGhvdyB0byBjb252
ZXJ0IHRoZW1zZWx2ZXMgdG8gYW5kIGZyb20gdGhlaXIgcGxhdGZvcm0gcmVwcmVzZW50YXRpb25z
LgogTlNEZWNpbWFsTnVtYmVyICp0b0RlY2ltYWxOdW1iZXIoY29uc3QgU3RyaW5nJiBhbW91bnQp
OwotUEtTaGlwcGluZ01ldGhvZCAqdG9QS1NoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpOworUEtTaGlwcGlu
Z01ldGhvZCAqdG9QS1NoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBp
bmdNZXRob2QmKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50
Q29vcmRpbmF0b3JQcm94eUNvY29hLm1tCmluZGV4IDQ0MDJhNDkwOTE5NjlhY2Q4YTUyODljOGE3
M2Q1OTE5M2U5Y2E2MzYuLjhmY2I1YWYxYmUzZjJmOWI2NzZiNmYwZDM0ZjlkODEzZjE0ODUxOTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L2NvY29hL1dlYlBheW1l
bnRDb29yZGluYXRvclByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBw
bGVQYXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5tbQpAQCAtMzYsNiAr
MzYsMTAgQEAKICNpbXBvcnQgIldlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmgiCiAjaW1wb3J0
ICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQcm9j
ZXNzUHJveHkuaCIKKyNpbXBvcnQgPFdlYkNvcmUvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRl
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0FwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL0FwcGxlUGF5U2hpcHBpbmdNZXRob2QuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYXlt
ZW50QXV0aG9yaXphdGlvblN0YXR1cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYXltZW50SGVhZGVy
cy5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CkBAIC00NSw2ICs0OSwxMCBAQAogCiAjaW1w
b3J0IDxwYWwvY29jb2EvUGFzc0tpdFNvZnRMaW5rLmg+CiAKKyNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9XZWJQYXltZW50Q29vcmRpbmF0b3JQ
cm94eUNvY29hQWRkaXRpb25zLm1tPgorI2VuZGlmCisKIC8vIEZJWE1FOiBXZSBkb24ndCBzdXBw
b3J0IGFueSBwbGF0Zm9ybXMgd2l0aG91dCAtc2V0VGh1bWJuYWlsVVJMczosIHNvIHRoaXMgY2Fu
IGJlIHJlbW92ZWQuCiBAaW50ZXJmYWNlIFBLUGF5bWVudFJlcXVlc3QgKCkKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzdHJvbmcpIE5TVVJMICp0aHVtYm5haWxVUkw7CkBAIC01MiwxOSArNjAsNiBA
QCBAZW5kCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1zdGF0aWMgdm9pZCBmaW5pc2hDcmVhdGlu
ZyhQS1BheW1lbnRSZXF1ZXN0ICpwbGF0Zm9ybVJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OkFwcGxl
UGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0JiByZXF1ZXN0KQotewotI2lmIEhBVkUoUEFTU0tJVF9J
TlNUQUxMTUVOVFMpCi0gICAgaWYgKFBLUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbiAq
Y29uZmlndXJhdGlvbiA9IHJlcXVlc3QuaW5zdGFsbG1lbnRDb25maWd1cmF0aW9uKCkucGxhdGZv
cm1Db25maWd1cmF0aW9uKCkpIHsKLSAgICAgICAgcGxhdGZvcm1SZXF1ZXN0Lmluc3RhbGxtZW50
Q29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb247Ci0gICAgICAgIHBsYXRmb3JtUmVxdWVzdC5y
ZXF1ZXN0VHlwZSA9IFBLUGF5bWVudFJlcXVlc3RUeXBlSW5zdGFsbG1lbnQ7Ci0gICAgfQotI2Vs
c2UKLSAgICBVTlVTRURfUEFSQU0ocGxhdGZvcm1SZXF1ZXN0KTsKLSAgICBVTlVTRURfUEFSQU0o
cmVxdWVzdCk7Ci0jZW5kaWYKLX0KLQogV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OldlYlBh
eW1lbnRDb29yZGluYXRvclByb3h5KFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpDbGllbnQm
IGNsaWVudCkKICAgICA6IG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fY2FuTWFrZVBheW1lbnRz
UXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuQ2FuTWFrZVBheW1lbnRz
IikpCkBAIC0xNjksMTUgKzE2NCwxNCBAQCBzdGF0aWMgUEtTaGlwcGluZ1R5cGUgdG9QS1NoaXBw
aW5nVHlwZShXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6UwogICAgIH0K
IH0KIAotUEtTaGlwcGluZ01ldGhvZCAqdG9QS1NoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6
OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdN
ZXRob2QpCitQS1NoaXBwaW5nTWV0aG9kICp0b1BLU2hpcHBpbmdNZXRob2QoY29uc3QgV2ViQ29y
ZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCiB7CiAgICAgUEtTaGlw
cGluZ01ldGhvZCAqcmVzdWx0ID0gW1BBTDo6Z2V0UEtTaGlwcGluZ01ldGhvZENsYXNzKCkgc3Vt
bWFyeUl0ZW1XaXRoTGFiZWw6c2hpcHBpbmdNZXRob2QubGFiZWwgYW1vdW50OnRvRGVjaW1hbE51
bWJlcihzaGlwcGluZ01ldGhvZC5hbW91bnQpXTsKICAgICBbcmVzdWx0IHNldElkZW50aWZpZXI6
c2hpcHBpbmdNZXRob2QuaWRlbnRpZmllcl07CiAgICAgW3Jlc3VsdCBzZXREZXRhaWw6c2hpcHBp
bmdNZXRob2QuZGV0YWlsXTsKLQogICAgIHJldHVybiByZXN1bHQ7CiB9Ci0gICAgCisKIHN0YXRp
YyBSZXRhaW5QdHI8TlNTZXQ+IHRvTlNTZXQoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0cmluZ3Mp
CiB7CiAgICAgaWYgKHN0cmluZ3MuaXNFbXB0eSgpKQpAQCAtMjYwLDcgKzI1NCwxNiBAQCBSZXRh
aW5QdHI8UEtQYXltZW50UmVxdWVzdD4gV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBsYXRm
b3JtUGF5bWVudFJlcXVlc3QoYwogICAgICAgICBbcmVzdWx0IHNldENURGF0YUNvbm5lY3Rpb25T
ZXJ2aWNlVHlwZTpzZXJ2aWNlVHlwZV07CiAjZW5kaWYKIAotICAgIGZpbmlzaENyZWF0aW5nKHJl
c3VsdC5nZXQoKSwgcGF5bWVudFJlcXVlc3QpOworI2lmIEhBVkUoUEFTU0tJVF9JTlNUQUxMTUVO
VFMpCisgICAgaWYgKFBLUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbiAqY29uZmlndXJh
dGlvbiA9IHBheW1lbnRSZXF1ZXN0Lmluc3RhbGxtZW50Q29uZmlndXJhdGlvbigpLnBsYXRmb3Jt
Q29uZmlndXJhdGlvbigpKSB7CisgICAgICAgIFtyZXN1bHQgc2V0SW5zdGFsbG1lbnRDb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb25dOworICAgICAgICBbcmVzdWx0IHNldFJlcXVlc3RUeXBlOlBL
UGF5bWVudFJlcXVlc3RUeXBlSW5zdGFsbG1lbnRdOworICAgIH0KKyNlbmRpZgorCisjaWYgZGVm
aW5lZChXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29hQWRkaXRpb25zX3BsYXRmb3JtUGF5
bWVudFJlcXVlc3QpCisgICAgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYUFkZGl0aW9u
c19wbGF0Zm9ybVBheW1lbnRSZXF1ZXN0CisjZW5kaWYKIAogICAgIHJldHVybiByZXN1bHQ7CiB9
CkBAIC0yNzUsMTkgKzI3OCwxOSBAQCB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5Ojpw
bGF0Zm9ybUNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFdlYkNvcgogICAgIG1fYXV0
aG9yaXphdGlvblByZXNlbnRlci0+Y29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24ocGF5bWVudE1l
cmNoYW50U2Vzc2lvbik7CiB9CiAKLXZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBs
YXRmb3JtQ29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJD
b3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4mIHVwZGF0ZSkKK3ZvaWQgV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHk6OnBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRp
b25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKIHsK
LSAgICBtX2F1dGhvcml6YXRpb25QcmVzZW50ZXItPmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxl
Y3Rpb24odXBkYXRlKTsKKyAgICBtX2F1dGhvcml6YXRpb25QcmVzZW50ZXItPmNvbXBsZXRlU2hp
cHBpbmdNZXRob2RTZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUpKTsKIH0KIAotdm9pZCBXZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1Db21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVj
dGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiB1cGRh
dGUpCit2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybUNvbXBsZXRlU2hp
cHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdD
b250YWN0VXBkYXRlPiYmIHVwZGF0ZSkKIHsKLSAgICBtX2F1dGhvcml6YXRpb25QcmVzZW50ZXIt
PmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKHVwZGF0ZSk7CisgICAgbV9hdXRob3Jp
emF0aW9uUHJlc2VudGVyLT5jb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihXVEZNb3Zl
KHVwZGF0ZSkpOwogfQogCi12b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9y
bUNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpQ
YXltZW50TWV0aG9kVXBkYXRlPiYgdXBkYXRlKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQ
cm94eTo6cGxhdGZvcm1Db21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2Vi
Q29yZTo6QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKIHsKLSAgICBtX2F1
dGhvcml6YXRpb25QcmVzZW50ZXItPmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbih1cGRh
dGUpOworICAgIG1fYXV0aG9yaXphdGlvblByZXNlbnRlci0+Y29tcGxldGVQYXltZW50TWV0aG9k
U2VsZWN0aW9uKFdURk1vdmUodXBkYXRlKSk7CiB9CiAKIHZvaWQgV2ViUGF5bWVudENvb3JkaW5h
dG9yUHJveHk6OmdldFNldHVwRmVhdHVyZXMoY29uc3QgUGF5bWVudFNldHVwQ29uZmlndXJhdGlv
biYgY29uZmlndXJhdGlvbiwgTWVzc2FnZXM6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpH
ZXRTZXR1cEZlYXR1cmVzOjpBc3luY1JlcGx5JiYgcmVwbHkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCmluZGV4
IGQzNWNmNmVhYmViZDEwOThhYzhjMWYwMmJmMDUwNjk3MWE4NDMzMmEuLjc2YWZiNzJmZjJmZDRm
OTdiNWNmMDEzMmVlYTliMzM3ZmE0NGFiNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCkBAIC00Niw2ICs0
NiwxMCBAQAogI2ltcG9ydCA8cGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5oPgogI2VuZGlmCiAK
KyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9X
ZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYUFkZGl0aW9ucy5tbT4KKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgSVBDIHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xMTIsNyArMTE2LDcgQEAg
T3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6UGF5bWVudEF1dGgKICAgICBpZiAoIXN0YXR1cykKICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKIAotICAgIE9wdGlvbmFsPFZlY3RvcjxQYXltZW50RXJyb3I+PiBlcnJv
cnM7CisgICAgT3B0aW9uYWw8VmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4+IGVycm9yczsK
ICAgICBkZWNvZGVyID4+IGVycm9yczsKICAgICBpZiAoIWVycm9ycykKICAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKQEAgLTEzNCwzMyArMTM4LDYgQEAgT3B0aW9uYWw8V2ViQ29yZTo6UGF5
bWVudENvbnRhY3Q+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudENvbnRhY3Q+OjpkZWNv
ZGUKICAgICByZXR1cm4gV2ViQ29yZTo6UGF5bWVudENvbnRhY3QgeyBXVEZNb3ZlKCpjb250YWN0
KSB9OwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudEVycm9yPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnRFcnJvciYgZXJyb3Ip
Ci17Ci0gICAgZW5jb2RlciA8PCBlcnJvci5jb2RlOwotICAgIGVuY29kZXIgPDwgZXJyb3IubWVz
c2FnZTsKLSAgICBlbmNvZGVyIDw8IGVycm9yLmNvbnRhY3RGaWVsZDsKLX0KLQotT3B0aW9uYWw8
V2ViQ29yZTo6UGF5bWVudEVycm9yPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRFcnJv
cj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBh
eW1lbnRFcnJvcjo6Q29kZT4gY29kZTsKLSAgICBkZWNvZGVyID4+IGNvZGU7Ci0gICAgaWYgKCFj
b2RlKQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAgIE9wdGlvbmFsPFN0
cmluZz4gbWVzc2FnZTsKLSAgICBkZWNvZGVyID4+IG1lc3NhZ2U7Ci0gICAgaWYgKCFtZXNzYWdl
KQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAgIE9wdGlvbmFsPE9wdGlv
bmFsPFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkPj4gY29udGFjdEZpZWxkOwot
ICAgIGRlY29kZXIgPj4gY29udGFjdEZpZWxkOwotICAgIGlmICghY29udGFjdEZpZWxkKQotICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgcmV0dXJuIHt7IFdURk1vdmUoKmNvZGUp
LCBXVEZNb3ZlKCptZXNzYWdlKSwgV1RGTW92ZSgqY29udGFjdEZpZWxkKSB9fTsKLX0KLQogdm9p
ZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vzc2lvbiYg
cGF5bWVudE1lcmNoYW50U2Vzc2lvbikKIHsKICAgICBlbmNvZGVyIDw8IHBheW1lbnRNZXJjaGFu
dFNlc3Npb24ucGtQYXltZW50TWVyY2hhbnRTZXNzaW9uKCk7CkBAIC0xODksMjAgKzE2Niw2IEBA
IE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2Q+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
UGF5bWVudE1ldGhvZD46OmRlY29kZShECiAgICAgcmV0dXJuIFBheW1lbnRNZXRob2QgeyBXVEZN
b3ZlKCpwYXltZW50TWV0aG9kKSB9OwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
UGF5bWVudE1ldGhvZFVwZGF0ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJD
b3JlOjpQYXltZW50TWV0aG9kVXBkYXRlJiB1cGRhdGUpCi17Ci0gICAgZW5jb2RlciA8PCB1cGRh
dGUucGxhdGZvcm1VcGRhdGUoKTsKLX0KLQotT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudE1ldGhv
ZFVwZGF0ZT4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgYXV0byB1cGRhdGUgPSBJUEM6OmRlY29kZTxQ
S1BheW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZT4oZGVjb2RlciwgUEFMOjpnZXRQS1Bh
eW1lbnRSZXF1ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZUNsYXNzKCkpOwotICAgIGlmICghdXBkYXRl
KQotICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotCi0gICAgcmV0dXJuIFBheW1lbnRNZXRo
b2RVcGRhdGUgeyBXVEZNb3ZlKCp1cGRhdGUpIH07Ci19Ci0KIHZvaWQgQXJndW1lbnRDb2RlcjxB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBlbmNv
ZGVyIDw8IHJlcXVlc3QuY291bnRyeUNvZGUoKTsKQEAgLTIyMyw2ICsxODYsOSBAQCB2b2lkIEFy
Z3VtZW50Q29kZXI8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q+OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29ucwogI2lmIEVOQUJMRShBUFBMRV9QQVlfSU5TVEFMTE1FTlRTKQogICAg
IGVuY29kZXIgPDwgcmVxdWVzdC5pbnN0YWxsbWVudENvbmZpZ3VyYXRpb24oKTsKICNlbmRpZgor
I2lmIGRlZmluZWQoV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2FBZGRpdGlvbnNfQXBwbGVQYXlT
ZXNzaW9uUGF5bWVudFJlcXVlc3RfZW5jb2RlKQorICAgIFdlYkNvcmVBcmd1bWVudENvZGVyc0Nv
Y29hQWRkaXRpb25zX0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0X2VuY29kZQorI2VuZGlm
CiB9CiAKIGJvb2wgQXJndW1lbnRDb2RlcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdD46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYg
cmVxdWVzdCkKQEAgLTI3NCw3ICsyNDAsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8QXBwbGVQYXlT
ZXNzaW9uUGF5bWVudFJlcXVlc3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQXBwbAogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmVxdWVzdC5zZXRTaGlwcGluZ1R5cGUoc2hpcHBpbmdU
eXBlKTsKIAotICAgIFZlY3RvcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBp
bmdNZXRob2Q+IHNoaXBwaW5nTWV0aG9kczsKKyAgICBWZWN0b3I8QXBwbGVQYXlTaGlwcGluZ01l
dGhvZD4gc2hpcHBpbmdNZXRob2RzOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2hpcHBpbmdN
ZXRob2RzKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJlcXVlc3Quc2V0U2hpcHBpbmdN
ZXRob2RzKHNoaXBwaW5nTWV0aG9kcyk7CkBAIC0zMTQsNiArMjgwLDEwIEBAIGJvb2wgQXJndW1l
bnRDb2RlcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdD46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBBcHBsCiAgICAgcmVxdWVzdC5zZXRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24oV1RG
TW92ZSgqaW5zdGFsbG1lbnRDb25maWd1cmF0aW9uKSk7CiAjZW5kaWYKIAorI2lmIGRlZmluZWQo
V2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2FBZGRpdGlvbnNfQXBwbGVQYXlTZXNzaW9uUGF5bWVu
dFJlcXVlc3RfZGVjb2RlKQorICAgIFdlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hQWRkaXRpb25z
X0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0X2RlY29kZQorI2VuZGlmCisKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIApAQCAtMzY0LDg4ICszMzQsMzggQEAgYm9vbCBBcmd1bWVudENvZGVyPEFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpNZXJjaGFudENhcGFiaWxpdGllcz46OmRlY29k
ZSgKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPEFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Qm
IHNoaXBwaW5nTWV0aG9kKQordm9pZCBBcmd1bWVudENvZGVyPFZlY3RvcjxSZWZQdHI8QXBwbGVQ
YXlFcnJvcj4+Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFZlY3RvcjxSZWZQdHI8
QXBwbGVQYXlFcnJvcj4+JiBlcnJvcnMpCiB7Ci0gICAgZW5jb2RlciA8PCBzaGlwcGluZ01ldGhv
ZC5sYWJlbDsKLSAgICBlbmNvZGVyIDw8IHNoaXBwaW5nTWV0aG9kLmRldGFpbDsKLSAgICBlbmNv
ZGVyIDw8IHNoaXBwaW5nTWV0aG9kLmFtb3VudDsKLSAgICBlbmNvZGVyIDw8IHNoaXBwaW5nTWV0
aG9kLmlkZW50aWZpZXI7CisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oZXJy
b3JzLnNpemUoKSk7CisgICAgZm9yIChhdXRvJiBlcnJvciA6IGVycm9ycykgeworICAgICAgICBl
bmNvZGVyIDw8ICEhZXJyb3I7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIGVuY29k
ZXIgPDwgKmVycm9yOworICAgIH0KIH0KIAotT3B0aW9uYWw8QXBwbGVQYXlTZXNzaW9uUGF5bWVu
dFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPiBBcmd1bWVudENvZGVyPEFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQor
T3B0aW9uYWw8VmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4+IEFyZ3VtZW50Q29kZXI8VmVj
dG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsK
LSAgICBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Qgc2hpcHBp
bmdNZXRob2Q7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaGlwcGluZ01ldGhvZC5sYWJlbCkp
CisgICAgdWludDY0X3Qgc2l6ZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUpKQogICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2hpcHBp
bmdNZXRob2QuZGV0YWlsKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHNoaXBwaW5nTWV0aG9kLmFtb3VudCkpCi0gICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaGlwcGluZ01ldGhvZC5pZGVu
dGlmaWVyKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICByZXR1cm4gV1RGTW92
ZShzaGlwcGluZ01ldGhvZCk7Ci19CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxBcHBsZVBheVNlc3Np
b25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXM+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0
ZW1zJiB0b3RhbEFuZExpbmVJdGVtcykKLXsKLSAgICBlbmNvZGVyIDw8IHRvdGFsQW5kTGluZUl0
ZW1zLnRvdGFsOwotICAgIGVuY29kZXIgPDwgdG90YWxBbmRMaW5lSXRlbXMubGluZUl0ZW1zOwot
fQorICAgIFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+IGVycm9ycyhzaXplKTsKKyAgICBm
b3IgKHVpbnQ2NF90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIE9wdGlvbmFsPGJv
b2w+IGlzVmFsaWQ7CisgICAgICAgIGRlY29kZXIgPj4gaXNWYWxpZDsKKyAgICAgICAgaWYgKCFp
c1ZhbGlkKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotT3B0aW9uYWw8QXBw
bGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zPiBBcmd1bWVudENv
ZGVyPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIE9wdGlvbmFsPEFwcGxlUGF5TGluZUl0ZW0+
IHRvdGFsOwotICAgIGRlY29kZXIgPj4gdG90YWw7Ci0gICAgaWYgKCF0b3RhbCkKLSAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAgICBPcHRpb25hbDxWZWN0b3I8QXBwbGVQYXlM
aW5lSXRlbT4+IGxpbmVJdGVtczsKLSAgICBkZWNvZGVyID4+IGxpbmVJdGVtczsKLSAgICBpZiAo
IWxpbmVJdGVtcykKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAgICByZXR1
cm4ge3sgV1RGTW92ZSgqdG90YWwpLCBXVEZNb3ZlKCpsaW5lSXRlbXMpIH19OwotfQotCi12b2lk
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZSYgdXBk
YXRlKQotewotICAgIGVuY29kZXIgPDwgdXBkYXRlLmVycm9yczsKLSAgICBlbmNvZGVyIDw8IHVw
ZGF0ZS5uZXdTaGlwcGluZ01ldGhvZHM7Ci0gICAgZW5jb2RlciA8PCB1cGRhdGUubmV3VG90YWxB
bmRMaW5lSXRlbXM7Ci19Ci0KLU9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0
ZT4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBPcHRpb25hbDxWZWN0b3I8UGF5bWVudEVycm9yPj4g
ZXJyb3JzOwotICAgIGRlY29kZXIgPj4gZXJyb3JzOwotICAgIGlmICghZXJyb3JzKQotICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAgIE9wdGlvbmFsPFZlY3RvcjxBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+PiBuZXdTaGlwcGluZ01ldGhv
ZHM7Ci0gICAgZGVjb2RlciA+PiBuZXdTaGlwcGluZ01ldGhvZHM7Ci0gICAgaWYgKCFuZXdTaGlw
cGluZ01ldGhvZHMpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCi0gICAgT3B0
aW9uYWw8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zPiBu
ZXdUb3RhbEFuZExpbmVJdGVtczsKLSAgICBkZWNvZGVyID4+IG5ld1RvdGFsQW5kTGluZUl0ZW1z
OwotICAgIGlmICghbmV3VG90YWxBbmRMaW5lSXRlbXMpCi0gICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7Ci0gICAgCi0gICAgcmV0dXJuIHt7IFdURk1vdmUoKmVycm9ycyksIFdURk1vdmUoKm5l
d1NoaXBwaW5nTWV0aG9kcyksIFdURk1vdmUoKm5ld1RvdGFsQW5kTGluZUl0ZW1zKSB9fTsKLX0K
LQotdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRl
JiB1cGRhdGUpCi17Ci0gICAgZW5jb2RlciA8PCB1cGRhdGUubmV3VG90YWxBbmRMaW5lSXRlbXM7
Ci19Ci0KLU9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPiBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCi17Ci0gICAgT3B0aW9uYWw8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFs
QW5kTGluZUl0ZW1zPiBuZXdUb3RhbEFuZExpbmVJdGVtczsKLSAgICBkZWNvZGVyID4+IG5ld1Rv
dGFsQW5kTGluZUl0ZW1zOwotICAgIGlmICghbmV3VG90YWxBbmRMaW5lSXRlbXMpCi0gICAgICAg
IHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgcmV0dXJuIHt7IFdURk1vdmUoKm5ld1RvdGFsQW5k
TGluZUl0ZW1zKSB9fTsKKyAgICAgICAgUmVmUHRyPEFwcGxlUGF5RXJyb3I+IGVycm9yOworICAg
ICAgICBpZiAoKmlzVmFsaWQpIHsKKyAgICAgICAgICAgIGVycm9yID0gQXBwbGVQYXlFcnJvcjo6
ZGVjb2RlKGRlY29kZXIpOworICAgICAgICAgICAgaWYgKCFlcnJvcikKKyAgICAgICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgICAgICB9CisgICAgICAgIGVycm9ycy5hcHBlbmQo
V1RGTW92ZShlcnJvcikpOworICAgIH0KKyAgICByZXR1cm4gZXJyb3JzOwogfQogCiB2b2lkIEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudFNlc3Npb25FcnJvcj46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpQYXltZW50U2Vzc2lvbkVycm9yJiBlcnJvcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggMjYwOThl
ZmRkYjRhZmYyZWJlZjdiMmZjYTYxZDVjZmEwMDc1NzRmZC4uMzZhMWRmMzc5ZTRkM2Q0NmE1YjNi
ZTFjMzQzMzUwZDM0YzY4YWU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgKQEAgLTY3NywxMSArNjc3LDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50Q29udGFjdD4gewogICAgIHN0YXRpYyBPcHRpb25h
bDxXZWJDb3JlOjpQYXltZW50Q29udGFjdD4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudEVycm9yPiB7Ci0gICAg
c3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50RXJyb3Im
KTsKLSAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEVycm9yPiBkZWNvZGUoRGVj
b2RlciYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQ
YXltZW50TWVyY2hhbnRTZXNzaW9uPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJik7CiAgICAgc3RhdGljIE9w
dGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24+IGRlY29kZShEZWNvZGVyJik7
CkBAIC02OTIsMTEgKzY4Nyw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6UGF5bWVudE1ldGhvZD4gewogICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpQYXlt
ZW50TWV0aG9kPiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlJik7
Ci0gICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+IGRlY29k
ZShEZWNvZGVyJik7Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dCYpOwogICAgIHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYs
IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Jik7CkBAIC03MTEsMjQgKzcw
MSw5IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QXBwbGVQYXlT
ZXNzaW9uUGF5bWVudFJlcXVlc3Q6Ok1lcmNoYW50CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JF
VFVSTiBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVu
dFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpT
aGlwcGluZ01ldGhvZD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3Qg
V2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJik7
Ci0gICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0OjpTaGlwcGluZ01ldGhvZD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVl
c3Q6OlRvdGFsQW5kTGluZUl0ZW1zPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRM
aW5lSXRlbXMmKTsKLSAgICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zPiBkZWNvZGUoRGVjb2RlciYpOwotfTsK
LQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTaGlwcGluZ0NvbnRh
Y3RVcGRhdGU+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZSYpOwotICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3Jl
OjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPiB7
Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTaGlwcGlu
Z01ldGhvZFVwZGF0ZSYpOwotICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01l
dGhvZFVwZGF0ZT4gZGVjb2RlKERlY29kZXImKTsKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8VmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpBcHBsZVBheUVycm9yPj4+IHsKKyAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6QXBw
bGVQYXlFcnJvcj4+Jik7CisgICAgc3RhdGljIE9wdGlvbmFsPFZlY3RvcjxSZWZQdHI8V2ViQ29y
ZTo6QXBwbGVQYXlFcnJvcj4+PiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAogdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50U2Vzc2lvbkVycm9yPiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3Jk
aW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50
Q29vcmRpbmF0b3IuY3BwCmluZGV4IDg2ZDAyZTE2YzY3ZDIxOWE2NzA4MjdjMDMwZDIwNDZmMDI3
M2UwNzEuLjBiMWQ1MzM4OTE5Njg3NTI2MjE2YjFjMjFhNDY4Y2I1ZmExZWU0MzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50
Q29vcmRpbmF0b3IuY3BwCkBAIC0zNiw2ICszNiw5IEBACiAjaW5jbHVkZSAiV2ViUGF5bWVudENv
b3JkaW5hdG9yTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94
eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUv
QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9BcHBsZVBh
eVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGVQYXlTaGlw
cGluZ01ldGhvZFVwZGF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1BheW1lbnRDb29yZGluYXRvci5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAg
LTEwOSwxOSArMTEyLDE5IEBAIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZU1l
cmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyCiAgICAgc2VuZChNZXNz
YWdlczo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OkNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0
aW9uKHBheW1lbnRNZXJjaGFudFNlc3Npb24pKTsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRp
bmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6
U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYgdXBkYXRlKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0
b3I6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBw
bGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCiB7Ci0gICAgc2VuZChNZXNzYWdl
czo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OkNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxl
Y3Rpb24odXBkYXRlKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHk6OkNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUpKSk7
CiB9CiAKLXZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFj
dFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYgdXBk
YXRlKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0
U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRl
PiYmIHVwZGF0ZSkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYXltZW50Q29vcmRpbmF0b3JQ
cm94eTo6Q29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24odXBkYXRlKSk7CisgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OkNvbXBsZXRlU2hpcHBpbmdD
b250YWN0U2VsZWN0aW9uKFdURk1vdmUodXBkYXRlKSkpOwogfQogCi12b2lkIFdlYlBheW1lbnRD
b29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNv
cmU6OlBheW1lbnRNZXRob2RVcGRhdGU+JiYgdXBkYXRlKQordm9pZCBXZWJQYXltZW50Q29vcmRp
bmF0b3I6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpB
cHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+JiYgdXBkYXRlKQogewotICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpDb21wbGV0ZVBheW1lbnRNZXRob2RTZWxl
Y3Rpb24odXBkYXRlKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHk6OkNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihXVEZNb3ZlKHVwZGF0ZSkpKTsK
IH0KIAogdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudFNlc3Npb24o
T3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+JiYgcmVzdWx0KQpA
QCAtMTg4LDcgKzE5MSw3IEBAIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yOjpkaWRBdXRob3Jp
emVQYXltZW50KGNvbnN0IFdlYkNvcmU6OlBheW1lbnQmIHBheW1lbnQpCiAgICAgcGF5bWVudENv
b3JkaW5hdG9yKCkuZGlkQXV0aG9yaXplUGF5bWVudChwYXltZW50KTsKIH0KIAotdm9pZCBXZWJQ
YXltZW50Q29vcmRpbmF0b3I6OmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6
OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdN
ZXRob2QpCit2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvcjo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRo
b2QoY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2Qp
CiB7CiAgICAgcGF5bWVudENvb3JkaW5hdG9yKCkuZGlkU2VsZWN0U2hpcHBpbmdNZXRob2Qoc2hp
cHBpbmdNZXRob2QpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Fw
cGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5oCmluZGV4IGM5ZGM2ODJiODc1NDliODI1
MGRiMjJiMmExY2UyMTU1NTAwMGNlYzguLmU3YmE1ZWEyZTg3ZTI3NzJiM2VjODUwMzllOTkxZGJl
NzYwZjM0NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBsZVBheS9X
ZWJQYXltZW50Q29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBw
bGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmgKQEAgLTQwLDYgKzQwLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgUGF5bWVudENvb3JkaW5hdG9yOwogY2xhc3MgUGF5bWVudENvbnRh
Y3Q7CiBjbGFzcyBQYXltZW50U2Vzc2lvbkVycm9yOworc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdN
ZXRob2Q7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjQsOSArNjUsOSBAQCBwcml2YXRl
OgogICAgIHZvaWQgb3BlblBheW1lbnRTZXR1cChjb25zdCBTdHJpbmcmIG1lcmNoYW50SWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKSBvdmVycmlkZTsKICAgICBib29sIHNob3dQYXltZW50VUkoY29uc3QgVVJMJiBvcmln
aW5hdGluZ1VSTCwgY29uc3QgVmVjdG9yPFVSTD4mIGxpbmtJY29uVVJMcywgY29uc3QgV2ViQ29y
ZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmKSBvdmVycmlkZTsKICAgICB2b2lkIGNv
bXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNl
c3Npb24mKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rp
b24oT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYpIG92ZXJyaWRlOwot
ICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29y
ZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbXBsZXRl
UGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBk
YXRlPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rp
b24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJikgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25h
bDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6
QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbXBs
ZXRlUGF5bWVudFNlc3Npb24oT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25S
ZXN1bHQ+JiYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBhYm9ydFBheW1lbnRTZXNzaW9uKCkgb3Zl
cnJpZGU7CkBAIC05NSw3ICs5Niw3IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZSBoYW5kbGVy
cy4KICAgICB2b2lkIHZhbGlkYXRlTWVyY2hhbnQoY29uc3QgU3RyaW5nJiB2YWxpZGF0aW9uVVJM
U3RyaW5nKTsKICAgICB2b2lkIGRpZEF1dGhvcml6ZVBheW1lbnQoY29uc3QgV2ViQ29yZTo6UGF5
bWVudCYpOwotICAgIHZvaWQgZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgV2ViQ29yZTo6
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJik7CisgICAgdm9p
ZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5n
TWV0aG9kJik7CiAgICAgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3QoY29uc3QgV2ViQ29y
ZTo6UGF5bWVudENvbnRhY3QmKTsKICAgICB2b2lkIGRpZFNlbGVjdFBheW1lbnRNZXRob2QoY29u
c3QgV2ViQ29yZTo6UGF5bWVudE1ldGhvZCYpOwogICAgIHZvaWQgZGlkQ2FuY2VsUGF5bWVudFNl
c3Npb24oV2ViQ29yZTo6UGF5bWVudFNlc3Npb25FcnJvciYmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3Jk
aW5hdG9yLm1lc3NhZ2VzLmluCmluZGV4IGZhNDYyNzI1NjU3MzZmZWZmMDg2OGNkYTkzOGU0YzE1
NDhmZjI1YTIuLjM2ZWM0ZjEyM2Y4YWEyNzFlNzU1MTFiNTNkMTI0MjAyZDAyYmQzODIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRp
bmF0b3IubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5
L1dlYlBheW1lbnRDb29yZGluYXRvci5tZXNzYWdlcy5pbgpAQCAtMjgsNyArMjgsNyBAQCBtZXNz
YWdlcyAtPiBXZWJQYXltZW50Q29vcmRpbmF0b3IgTm90UmVmQ291bnRlZCB7CiAKICAgICBWYWxp
ZGF0ZU1lcmNoYW50KFN0cmluZyB2YWxpZGF0aW9uVVJMU3RyaW5nKQogICAgIERpZEF1dGhvcml6
ZVBheW1lbnQoV2ViQ29yZTo6UGF5bWVudCBwYXltZW50KQotICAgIERpZFNlbGVjdFNoaXBwaW5n
TWV0aG9kKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01l
dGhvZCBzaGlwcGluZ01ldGhvZCkKKyAgICBEaWRTZWxlY3RTaGlwcGluZ01ldGhvZChzdHJ1Y3Qg
V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZCBzaGlwcGluZ01ldGhvZCkKICAgICBEaWRT
ZWxlY3RTaGlwcGluZ0NvbnRhY3QoV2ViQ29yZTo6UGF5bWVudENvbnRhY3Qgc2hpcHBpbmdDb250
YWN0KQogICAgIERpZFNlbGVjdFBheW1lbnRNZXRob2QoV2ViQ29yZTo6UGF5bWVudE1ldGhvZCBw
YXltZW50TWV0aG9kKQogICAgIERpZENhbmNlbFBheW1lbnRTZXNzaW9uKFdlYkNvcmU6OlBheW1l
bnRTZXNzaW9uRXJyb3Igc2Vzc2lvbkVycm9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0
b3JDbGllbnQuaAppbmRleCBmNDMxYTRkZjUzOWY2NWE0ZDdkNTE0M2ZhNTAzOWY4Yzk0ZTY4NmVm
Li5iMDM5MzYzMjI2MTM1NDUzMjUwYmMyYTJjNGQwOTQyOWZmN2FlN2MyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0
b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQuaApAQCAtNDIsOSArNDIsOSBAQCBwcml2YXRlOgog
ICAgIHZvaWQgb3BlblBheW1lbnRTZXR1cChjb25zdCBTdHJpbmcmIG1lcmNoYW50SWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKSBvdmVycmlkZTsKICAgICBib29sIHNob3dQYXltZW50VUkoY29uc3QgVVJMJiwgY29uc3Qg
VmVjdG9yPFVSTD4mIGxpbmtJY29uVVJMcywgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3QmKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbXBsZXRlTWVyY2hhbnRWYWxp
ZGF0aW9uKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24mKSBvdmVycmlkZTsK
LSAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29y
ZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgY29tcGxldGVT
aGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0
VXBkYXRlPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVj
dGlvbihPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiYmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29y
ZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBj
b21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBh
eVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21wbGV0ZVBh
eW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlQYXltZW50TWV0
aG9kVXBkYXRlPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24o
T3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+JiYpIG92ZXJyaWRl
OwogICAgIHZvaWQgYWJvcnRQYXltZW50U2Vzc2lvbigpIG92ZXJyaWRlOwogICAgIHZvaWQgY2Fu
Y2VsUGF5bWVudFNlc3Npb24oKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBheW1lbnRDb29yZGluYXRvckNsaWVudC5tbSBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBheW1lbnRDb29yZGlu
YXRvckNsaWVudC5tbQppbmRleCBiYjk5NGIzNDY5ZmUyM2E1YmU2YmYyMjIwZTcxMjNlNGExMjZl
ZDliLi41ZDhlMjg0NzJiMDdmMzMyMTNkNmYwOGIzNDVjNDFhMzZlZmZjNjc0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRp
bmF0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50Lm1tCkBAIC03MiwxNSArNzIsMTUgQEAgdm9p
ZCBXZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQ6OmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9u
KGNvbnN0IFdlYkNvcmU6OlBheW0KIHsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JD
bGllbnQ6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6
U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYpCit2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvckNsaWVu
dDo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBs
ZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKQogewogfQogCi12b2lkIFdlYlBheW1lbnRDb29y
ZGluYXRvckNsaWVudDo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8
V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKQordm9pZCBXZWJQYXltZW50Q29vcmRp
bmF0b3JDbGllbnQ6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdl
YkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKQogewogfQogCi12b2lkIFdl
YlBheW1lbnRDb29yZGluYXRvckNsaWVudDo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9u
KE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+JiYpCit2b2lkIFdlYlBheW1l
bnRDb29yZGluYXRvckNsaWVudDo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlv
bmFsPFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikKIHsKIH0KIAo=
</data>
<flag name="commit-queue"
          id="439615"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420920</attachid>
            <date>2021-02-18 21:43:46 -0800</date>
            <delta_ts>2021-02-19 09:38:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222002-20210218224345.patch</filename>
            <type>text/plain</type>
            <size>194636</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzMDA0ZGFiZTU0MDZiNmU1Y2U4ZGY2ODRlYWE4ZDVlMDBmNjU2MmJiLi5m
MDFkMDg2MDk2MTRjMWYyMzhkZGVkODk5MGIwOTcyYTdhMjgyMTVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTM3IEBACisyMDIxLTAyLTE4ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNv
bT4KKworICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBhZGQgYW4gYG9iamVjdCBkYXRhYCB0byBg
UGF5bWVudERldGFpbHNCYXNlYCBzbyB0aGF0IGRhdGEgc3BlY2lmaWMgdG8gQXBwbGUgUGF5IGNh
biBiZSBwcm92aWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIyMDAyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MjMxOTk0Nj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50RGV0YWlsc0Jhc2UuaWRsOgorICAgICAgICAqIE1vZHVsZXMvcGF5bWVudHJl
cXVlc3QvUGF5bWVudERldGFpbHNCYXNlLmg6CisKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVz
L2FwcGxlcGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZTo6ZGVjb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2U6OmRlY29kZUJhc2UpOgorICAgICAg
ICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmg6CisgICAg
ICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaWRsOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlOjplbmNvZGUgY29u
c3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0
ZTo6ZGVjb2RlKTogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNo
aXBwaW5nQ29udGFjdFVwZGF0ZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlT
aGlwcGluZ0NvbnRhY3RVcGRhdGU6OmVuY29kZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU6OmRlY29kZSk6IEFkZGVkLgorICAg
ICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5pZGw6
CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlOjplbmNv
ZGUgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRo
b2RVcGRhdGU6OmRlY29kZSk6IEFkZGVkLgorICAgICAgICBJbnRyb2R1Y2UgYSBjb21tb24gYmFz
ZSBjbGFzcyBgQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZWAgaW5zdGVhZCBvZiByZXBlYXRpbmcg
bWVtYmVycyBvbgorICAgICAgICBlYWNoIG9mIHRoZSBgQXBwbGVQYXkqVXBkYXRlYCBmaW5hbCBj
bGFzc2VzLgorCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRh
dGVEYXRhLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURl
dGFpbHNVcGRhdGVEYXRhLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlEZXRh
aWxzVXBkYXRlRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5
RGV0YWlsc1VwZGF0ZURhdGE6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheURl
dGFpbHNVcGRhdGVEYXRhOjpkZWNvZGVEYXRhKToKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRy
ZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrQW5kQ2Fu
b25pY2FsaXplRGV0YWlscyk6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6c2V0
dGxlRGV0YWlsc1Byb21pc2UpOgorICAgICAgICBIYXZlIHRoZSBjb21tb24gYmFzZSBjbGFzcyBh
Ym92ZSBleHRlbmQgZnJvbSBgQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YWAsIHdoaWNoIGlzIHVz
ZWQgdG8KKyAgICAgICAgcHVsbCB2YWx1ZXMgb3V0IG9mIHRoZSBgb2JqZWN0IGRhdGFgIGZyb20g
YFBheW1lbnREZXRhaWxzQmFzZWAuIFRoaXMgd2F5LCBib3RoIEFwcGxlIFBheSBKUworICAgICAg
ICBhbmQgUGF5bWVudFJlcXVlc3QgY2FuIGJlIGdpdmVuIHRoZSBzYW1lIGRhdGEgKGFsYmVpdCBp
biBzbGlnaHRseSBkaWZmZXJlbnQgcGxhY2VzKSBhbmQgaGF2ZQorICAgICAgICB0aGUgc2FtZSBj
YXBhYmlsaXRpZXMuCisKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3Iu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5RXJyb3I6OmVuY29kZSBjb25zdCk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlFcnJvcjo6ZGVjb2RlKTogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yLmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3JDb2RlLmg6CisgICAgICAgICogTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmg6CisgICAgICAgICogTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0Lmg6CisgICAg
ICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OnNoaXBwaW5n
TWV0aG9kcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdDo6c2V0U2hpcHBpbmdNZXRob2RzKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5U2Vzc2lvbi5oOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlT
ZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2Vs
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6ZGlkU2VsZWN0U2hp
cHBpbmdNZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6ZmluaXNoQ29udmVydGluZyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2QuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkFwcGxlUGF5U2hpcHBpbmdNZXRob2Q6OmVuY29kZSBjb25zdCk6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZDo6ZGVjb2RlKTogQWRkZWQuCisgICAgICAg
ICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudC5o
OgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVj
dGVkRXZlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFNl
bGVjdGVkRXZlbnQ6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnZlcnQpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVw
YXkvUGF5bWVudENvb3JkaW5hdG9yLmg6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9QYXlt
ZW50Q29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudENvb3JkaW5hdG9y
Ojpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
eW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6UGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVBheW1lbnRNZXRob2RT
ZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudENvb3JkaW5hdG9yOjpkaWRTZWxl
Y3RTaGlwcGluZ01ldGhvZCk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29v
cmRpbmF0b3JDbGllbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRIZWFk
ZXJzLmg6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlkYXRv
ci5tbToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlU2hpcHBpbmdNZXRob2QpOgorICAgICAg
ICAoV2ViQ29yZTo6dmFsaWRhdGVTaGlwcGluZ01ldGhvZHMpOgorICAgICAgICAqIE1vZHVsZXMv
YXBwbGVwYXkvUGF5bWVudFNlc3Npb24uaDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L1Bh
eW1lbnRTdW1tYXJ5SXRlbXMuaDoKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L2NvY29hL1Bh
eW1lbnRTdW1tYXJ5SXRlbXNDb2NvYS5tbToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L3Bh
eW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuaDoKKyAgICAgICAgKiBNb2R1bGVz
L2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Y29udmVydEFuZFZhbGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnZh
bGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Om1lcmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFw
cGxlUGF5UGF5bWVudEhhbmRsZXI6OnNob3cpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQ
YXltZW50SGFuZGxlcjo6Y29tcHV0ZVNoaXBwaW5nTWV0aG9kcyk6CisgICAgICAgIChXZWJDb3Jl
OjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21wdXRlVG90YWxBbmRMaW5lSXRlbXMgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVFcnJvcnMg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcHV0
ZUFkZHJlc3NFcnJvcnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50
SGFuZGxlcjo6Y29tcHV0ZVBheWVyRXJyb3JzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFw
cGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVQYXltZW50TWV0aG9kRXJyb3JzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnNoaXBwaW5nQWRkcmVz
c1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6c2hp
cHBpbmdPcHRpb25VcGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEhh
bmRsZXI6OnBheW1lbnRNZXRob2RVcGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5
UGF5bWVudEhhbmRsZXI6OnJldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVu
dEhhbmRsZXI6OmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKToKKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmNwcDoKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3Iu
aDoKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TW9ja1BheW1lbnRDb29yZGluYXRvcjo6c2hvd1BheW1lbnRVSSk6CisgICAg
ICAgIChXZWJDb3JlOjpNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nTWV0
aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6TW9ja1BheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxl
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1BheW1lbnRDb29yZGluYXRvcjo6Y29tcGxl
dGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYXltZW50
Q29vcmRpbmF0b3I6OmNoYW5nZVNoaXBwaW5nT3B0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudFNlc3Npb24pOgorICAgICAgICAo
V2ViQ29yZTo6TW9ja1BheW1lbnRDb29yZGluYXRvcjo6dXBkYXRlVG90YWxBbmRMaW5lSXRlbXMp
OiBEZWxldGVkLgorICAgICAgICAqIHRlc3RpbmcvTW9ja1BheW1lbnRFcnJvci5oOgorICAgICAg
ICBVc2UgYEFwcGxlUGF5KlVwZGF0ZWAgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdHMgc3RydWN0
dXJlIGluIGFub3RoZXIgb2JqZWN0IChgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OipV
cGRhdGVgKS4KKyAgICAgICAgVXNlIGBBcHBsZVBheUxpbmVJdGVtYCBpbnN0ZWFkIG9mIGR1cGxp
Y2F0aW5nIGl0cyBzdHJ1Y3R1cmUgaW4gYW5vdGhlciBvYmplY3QgKGBBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXNgKS4KKyAgICAgICAgVXNlIGBBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kYCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0cyBzdHJ1Y3R1cmUgaW4g
YW5vdGhlciBvYmplY3QgKGBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdN
ZXRob2RgKS4KKyAgICAgICAgVXNlIGBBcHBsZVBheUVycm9yKmAgaW5zdGVhZCBvZiBkdXBsaWNh
dGluZyBpdHMgc3RydWN0dXJlIGluIGFub3RoZXIgb2JqZWN0IChgQXBwbGVQYXlTZXNzaW9uUGF5
bWVudFJlcXVlc3Q6OlBheW1lbnRFcnJvcjo6KmApLgorCisgICAgICAgICogTW9kdWxlcy9hcHBs
ZXBheS9QYXltZW50TWV0aG9kVXBkYXRlLmg6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9j
b2NvYS9QYXltZW50TWV0aG9kVXBkYXRlQ29jb2EubW06IFJlbW92ZWQuCisgICAgICAgIERvIHRo
ZSBjb252ZXJzaW9uIGZyb20gYEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZWAgdG8gYFBLUGF5
bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlYAorICAgICAgICBpbiB0aGUgVUlQcm9jZXNz
LgorCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRSZXF1ZXN0Lmg6
CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZSk6CisgICAgICAgICogTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmg6CisKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogUGxhdGZv
cm1NYWMuY21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMDItMTggIFphbGFuIEJ1anRh
cyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIERvIG5vdCBjcmVhdGUg
dGhlIGxpbmUgd2l0aCBuZWdhdGl2ZSB3aWR0aCB3aGVuIG5lZ2F0aXZlIGxldHRlciBzcGFjaW5n
IGlzIHByZXNlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWE0MDdmNWM3NGQwMmNmMTZmMzJlZmYwZTE4YTkxMDdl
NTliMzJmNS4uYWY0ODY3MGE4ZGRkY2QyOTNkYmYwYTUwN2U4OTExYjAxNTZjZWM3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw2NyBAQAorMjAyMS0wMi0xOCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0Bh
cHBsZS5jb20+CisKKyAgICAgICAgW1BheW1lbnQgUmVxdWVzdF0gYWRkIGFuIGBvYmplY3QgZGF0
YWAgdG8gYFBheW1lbnREZXRhaWxzQmFzZWAgc28gdGhhdCBkYXRhIHNwZWNpZmljIHRvIEFwcGxl
IFBheSBjYW4gYmUgcHJvdmlkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMjAwMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzIzMTk5NDY+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICAqIFBsYXRmb3JtL2Nv
Y29hL1BheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyLmg6CisgICAgICAgICogUGxhdGZvcm0v
Y29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIubW06CisgICAgICAgIChXZWJLaXQ6
OnRvUEtQYXltZW50RXJyb3JDb2RlKToKKyAgICAgICAgKFdlYktpdDo6dG9OU0Vycm9yKToKKyAg
ICAgICAgKFdlYktpdDo6dG9OU0Vycm9ycyk6CisgICAgICAgIChXZWJLaXQ6OnRvUEtTaGlwcGlu
Z01ldGhvZHMpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRl
cjo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5
bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNv
bXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24pOgorICAgICAgICAqIFBsYXRmb3JtL2NvY29h
L1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbToKKyAgICAgICAgKHRvU2hpcHBpbmdN
ZXRob2QpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAq
IFNoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBTaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuaDoK
KyAgICAgICAgKiBTaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxldGVT
aGlwcGluZ01ldGhvZFNlbGVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1lbnRDb29y
ZGluYXRvclByb3h5Ojpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbik6CisgICAgICAg
IChXZWJLaXQ6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5Ojpjb21wbGV0ZVBheW1lbnRNZXRo
b2RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94
eTo6cHJlc2VudGVyRGlkU2VsZWN0U2hpcHBpbmdNZXRob2QpOgorICAgICAgICAqIFNoYXJlZC9B
cHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29hLmg6CisgICAgICAg
ICogU2hhcmVkL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OnRvUEtTaGlwcGluZ01ldGhvZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybVBheW1lbnRSZXF1ZXN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtQ29t
cGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1l
bnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBsYXRm
b3JtQ29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6Zmlu
aXNoQ3JlYXRpbmcpOiBEZWxldGVkLgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29j
b2EubW06CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudEF1dGhv
cml6YXRpb25SZXN1bHQ+OjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Pjo6ZGVjb2RlKToKKyAgICAgICAgKElQQzo6QXJn
dW1lbnRDb2RlcjxWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+Pj46OmVuY29kZSk6IEFkZGVk
LgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJv
cj4+Pjo6ZGVjb2RlKTogQWRkZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6UGF5bWVudEVycm9yPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpQYXltZW50RXJyb3I+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+OjplbmNv
ZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1l
bnRNZXRob2RVcGRhdGU+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD46OmVu
Y29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8QXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6
VG90YWxBbmRMaW5lSXRlbXM+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1
bWVudENvZGVyPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVt
cz46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQ
Qzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+OjpkZWNvZGUp
OiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNoaXBwaW5n
TWV0aG9kVXBkYXRlPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT46OmRlY29kZSk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IubWVzc2Fn
ZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0
b3IuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRv
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVT
aGlwcGluZ01ldGhvZFNlbGVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1lbnRDb29y
ZGluYXRvcjo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1lbnRDb29yZGluYXRvcjo6ZGlkU2VsZWN0U2hp
cHBpbmdNZXRob2QpOgorICAgICAgICBVc2UgYEFwcGxlUGF5KlVwZGF0ZWAgaW5zdGVhZCBvZiBk
dXBsaWNhdGluZyBpdHMgc3RydWN0dXJlIGluIGFub3RoZXIgb2JqZWN0IChgQXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3Q6OipVcGRhdGVgKS4KKyAgICAgICAgVXNlIGBBcHBsZVBheVNoaXBw
aW5nTWV0aG9kYCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIGl0cyBzdHJ1Y3R1cmUgaW4gYW5vdGhl
ciBvYmplY3QgKGBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Rg
KS4KKyAgICAgICAgVXNlIGBBcHBsZVBheUVycm9yKmAgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBp
dHMgc3RydWN0dXJlIGluIGFub3RoZXIgb2JqZWN0IChgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3Q6OlBheW1lbnRFcnJvcjo6KmApLgorCiAyMDIxLTAyLTE4ICBKdWxpYW4gR29uemFsZXog
IDxqdWxpYW5fYV9nb256YWxlekBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggaW4gSVBDOjpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUmV0YWluUHRyPFNlY0tleWNoYWluSXRlbVJlZj4mIHJl
c3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCAzNGRhMzllMWI5ZDljZTc0YzY3
NDZkMzViYTY5NjljMzUyMjZlNTdjLi5iOTU0MDI5YTQ2YzBiMWY0MzY5OWQ2YjM1ZjI5ZDAyZDVk
MDgxYjNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MjEtMDItMTggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtQ
YXltZW50IFJlcXVlc3RdIGFkZCBhbiBgb2JqZWN0IGRhdGFgIHRvIGBQYXltZW50RGV0YWlsc0Jh
c2VgIHNvIHRoYXQgZGF0YSBzcGVjaWZpYyB0byBBcHBsZSBQYXkgY2FuIGJlIHByb3ZpZGVkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwMDIKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcyMzE5OTQ2PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRp
bSBIb3J0b24uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0
b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0
b3JDbGllbnQubW06CisgICAgICAgIChXZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQ6OmNvbXBs
ZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24pOgorICAgICAgICAoV2ViUGF5bWVudENvb3JkaW5h
dG9yQ2xpZW50Ojpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbik6CisgICAgICAgIChX
ZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQ6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlv
bik6CisgICAgICAgIFVzZSBgQXBwbGVQYXkqVXBkYXRlYCBpbnN0ZWFkIG9mIGR1cGxpY2F0aW5n
IGl0cyBzdHJ1Y3R1cmUgaW4gYW5vdGhlciBvYmplY3QgKGBBcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdDo6KlVwZGF0ZWApLgorCiAyMDIxLTAyLTE4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFBsdW1iIGFuIE9wdGlvbmFsPFBhZ2VJZGVudGlm
aWVyPiB0aHJvdWdoIFdlYlBhc3RlYm9hcmRQcm94eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggYmU5MGQ0M2QwYzEyOGIxNGVkNjMwOTUy
NTJmNGFmYTRhNDAxNmUwNS4uZDJmNmVjYzFiMGY3ZGU0YWQzOTJlZGRjM2QxNWM0NzAxMTcwMDcw
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0
CkBAIC0yNCw2ICsyNCw4IEBAICQoUFJPSkVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzLm1ha2UKICQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvYWlycGxheS9XZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJp
bGl0eUV2ZW50LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNh
bmNlbEV2ZW50LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNv
bnRhY3RGaWVsZC5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlE
ZXRhaWxzVXBkYXRlQmFzZS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlFcnJvci5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlFcnJvckNvZGUuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxl
UGF5RXJyb3JDb250YWN0RmllbGQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IDhjMWYyNWZjMTcyZmVkYjc3YzBhNzQ3YTEyYTlk
YjBhOTA4NTdjOWQuLjJjYTYzYTYxZjkzMmRiNmQzZjI5ZDkwNzE2MDc2M2JhMjI2YmNjZmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CkBA
IC04Niw2ICs4NiwxMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0FwcGxlUGF5Q2FuY2VsRXZlbnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5Q2FuY2VsRXZlbnQuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcHBsZVBheUNvbnRhY3RGaWVsZC5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQ
YXlDb250YWN0RmllbGQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmNwcAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmgK
KyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlE
ZXRhaWxzVXBkYXRlRGF0YS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5RXJyb3IuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5RXJyb3IuaAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcHBsZVBheUVy
cm9yQ29kZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1h
a2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGE4ZDg3ZWUxOTJl
YTdkYjhlMTcxN2FjNDBlNzAzODYwNmQ1NTM1NmIuLjE2MjY2OGU3NzEyYzVjMWEyZmE4NWU4MWQ3
NzZjYzEzZDYxMGY5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNTMsNiAr
NTMsOCBAQCBKU19CSU5ESU5HX0lETFMgOj0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9haXJw
bGF5L1dlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuaWRsIFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDYW5jZWxFdmVudC5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5pZGwgXAorICAg
ICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmlk
bCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0
ZURhdGEuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJv
ci5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29k
ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29u
dGFjdEZpZWxkLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3OTYwNjcx
MjhjNTY3NzU5ZTNkNGVjZWJiZTkzMGQzNDMwZjQ5ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaApA
QCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
QVBQTEVfUEFZKQorCisjaW5jbHVkZSAiQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oIgorI2lu
Y2x1ZGUgIkFwcGxlUGF5TGluZUl0ZW0uaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UgOiBw
dWJsaWMgQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSB7CisgICAgQXBwbGVQYXlMaW5lSXRlbSBu
ZXdUb3RhbDsKKyAgICBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4gbmV3TGluZUl0ZW1zOworCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0Owor
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxBcHBsZVBheURldGFp
bHNVcGRhdGVCYXNlPiBkZWNvZGUoRGVjb2RlciYpOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4gV0FSTl9VTlVTRURfUkVUVVJOIGJvb2wgZGVjb2RlQmFzZShEZWNvZGVyJik7Cit9Owor
Cit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNl
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBBcHBsZVBheURldGFpbHNV
cGRhdGVEYXRhOjplbmNvZGUoZW5jb2Rlcik7CisgICAgZW5jb2RlciA8PCBuZXdUb3RhbDsKKyAg
ICBlbmNvZGVyIDw8IG5ld0xpbmVJdGVtczsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4K
K09wdGlvbmFsPEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2U+IEFwcGxlUGF5RGV0YWlsc1VwZGF0
ZUJhc2U6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIEFwcGxlUGF5RGV0YWlsc1Vw
ZGF0ZUJhc2UgcmVzdWx0OworICAgIGlmICghcmVzdWx0LmRlY29kZUJhc2UoZGVjb2RlcikpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwordGVt
cGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZTo6ZGVj
b2RlQmFzZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIGlmICghZGVjb2RlRGF0YShkZWNvZGVy
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisjZGVmaW5lIERFQ09ERShuYW1lLCB0eXBlKSBc
CisgICAgT3B0aW9uYWw8dHlwZT4gbmFtZTsgXAorICAgIGRlY29kZXIgPj4gbmFtZTsgXAorICAg
IGlmICghbmFtZSkgXAorICAgICAgICByZXR1cm4gZmFsc2U7IFwKKyAgICB0aGlzLT5uYW1lID0g
V1RGTW92ZSgqbmFtZSk7IFwKKworICAgIERFQ09ERShuZXdUb3RhbCwgQXBwbGVQYXlMaW5lSXRl
bSkKKyAgICBERUNPREUobmV3TGluZUl0ZW1zLCBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4pCisK
KyN1bmRlZiBERUNPREUKKworICAgIHJldHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFz
ZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNjE1ZTg2ZGVmYzIyZDI5ZTNhYjlhMDRkZWQ2OTY3YTg4YjFkNWZm
MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5pZGwKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K1sKKyAgICBDb25kaXRpb25hbD1BUFBMRV9QQVksCitdIGRpY3Rpb25hcnkgQXBwbGVQYXlEZXRh
aWxzVXBkYXRlQmFzZSB7CisgICAgcmVxdWlyZWQgQXBwbGVQYXlMaW5lSXRlbSBuZXdUb3RhbDsK
KyAgICBzZXF1ZW5jZTxBcHBsZVBheUxpbmVJdGVtPiBuZXdMaW5lSXRlbXM7Cit9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRh
dGVEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWls
c1VwZGF0ZURhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MDc4Zjk1NzIxNDNiZGUzODBmZDRlNDRhYmM0ODMx
OGY4Yzc5MmQ2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmgKQEAgLTAsMCArMSw4OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKEFQUExFX1BBWSkKKworI2lmIFVTRShB
UFBMRV9JTlRFUk5BTF9TREspCisjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL0FwcGxlUGF5RGV0
YWlsc1VwZGF0ZURhdGFBZGRpdGlvbnMuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3N0cnVjdCBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhIHsKKyNpZiBkZWZpbmVkKEFwcGxl
UGF5RGV0YWlsc1VwZGF0ZURhdGFBZGRpdGlvbnNfbWVtYmVycykKKyAgICBBcHBsZVBheURldGFp
bHNVcGRhdGVEYXRhQWRkaXRpb25zX21lbWJlcnMKKyNlbmRpZgorCisgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhPiBk
ZWNvZGUoRGVjb2RlciYpOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gV0FSTl9VTlVT
RURfUkVUVVJOIGJvb2wgZGVjb2RlRGF0YShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPgordm9pZCBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKK3sKKyNpZiBkZWZpbmVkKEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURh
dGFBZGRpdGlvbnNfZW5jb2RlKQorICAgIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGFBZGRpdGlv
bnNfZW5jb2RlCisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShlbmNvZGVyKTsKKyNlbmRpZgorfQor
Cit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8QXBwbGVQYXlEZXRhaWxzVXBkYXRl
RGF0YT4gQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIp
Cit7CisgICAgQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSByZXN1bHQ7CisgICAgaWYgKCFyZXN1
bHQuZGVjb2RlRGF0YShkZWNvZGVyKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorYm9vbCBBcHBs
ZVBheURldGFpbHNVcGRhdGVEYXRhOjpkZWNvZGVEYXRhKERlY29kZXImIGRlY29kZXIpCit7Cisj
ZGVmaW5lIERFQ09ERShuYW1lLCB0eXBlKSBcCisgICAgT3B0aW9uYWw8dHlwZT4gbmFtZTsgXAor
ICAgIGRlY29kZXIgPj4gbmFtZTsgXAorICAgIGlmICghbmFtZSkgXAorICAgICAgICByZXR1cm4g
ZmFsc2U7IFwKKyAgICB0aGlzLT5uYW1lID0gV1RGTW92ZSgqbmFtZSk7IFwKKworI2lmIGRlZmlu
ZWQoQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YUFkZGl0aW9uc19kZWNvZGVEYXRhKQorICAgIEFw
cGxlUGF5RGV0YWlsc1VwZGF0ZURhdGFBZGRpdGlvbnNfZGVjb2RlRGF0YQorI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0oZGVjb2Rlcik7CisjZW5kaWYKKworI3VuZGVmIERFQ09ERQorCisgICAgcmV0
dXJuIHRydWU7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShBUFBMRV9QQVkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzE4ODE0
MjA1MzIyZjFmM2UyOTQyZDNiOTUyYTQzMjVmMzY0NzhhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmlk
bApAQCAtMCwwICsxLDI5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPUFQUExF
X1BBWSwKK10gZGljdGlvbmFyeSBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhIHsKK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjc3NjdjMzBhZDg3Yjc2NmRjZjhlZmFmNjM0YmRk
MTRjMzZkZmQ4Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3IuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJBcHBsZVBheUVycm9yLmgiCi0KLSNpZiBFTkFCTEUoQVBQTEVfUEFZKQot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVJlZjxBcHBsZVBheUVycm9yPiBBcHBsZVBheUVycm9y
OjpjcmVhdGUoQ29kZSBjb2RlLCBPcHRpb25hbDxDb250YWN0RmllbGQ+IGNvbnRhY3RGaWVsZCwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEFwcGxl
UGF5RXJyb3IgeyBjb2RlLCBjb250YWN0RmllbGQsIG1lc3NhZ2UgfSk7Ci19Ci0KLUFwcGxlUGF5
RXJyb3I6OkFwcGxlUGF5RXJyb3IoQ29kZSBjb2RlLCBPcHRpb25hbDxDb250YWN0RmllbGQ+IGNv
bnRhY3RGaWVsZCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQotICAgIDogbV9jb2RlIHsgY29kZSB9
Ci0gICAgLCBtX2NvbnRhY3RGaWVsZCB7IGNvbnRhY3RGaWVsZCB9Ci0gICAgLCBtX21lc3NhZ2Ug
eyBtZXNzYWdlIH0KLXsKLX0KLQotQXBwbGVQYXlFcnJvcjo6fkFwcGxlUGF5RXJyb3IoKSA9IGRl
ZmF1bHQ7Ci0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L0FwcGxlUGF5RXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlFcnJvci5oCmluZGV4IDMzMWRlMTJjNDU5NjhlMGViNDA3NDZmMDNkOWNhOGIx
ZWJlNTAyNDguLjI1OWIyMGY0NDQyNmY3ZjExNjIzNWQ1NTZkMjY3ZjE4NmRlODVjNGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvci5oCkBAIC0y
NywzNyArMjcsNzYgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKLSNpbmNsdWRlICJBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oIgorI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3JDb2Rl
LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oIgorI2luY2x1ZGUgPHd0
Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBcHBsZVBheUVycm9yIGZp
bmFsIDogcHVibGljIFJlZkNvdW50ZWQ8QXBwbGVQYXlFcnJvcj4gewogcHVibGljOgotICAgIHVz
aW5nIENvZGUgPSBQYXltZW50RXJyb3I6OkNvZGU7Ci0gICAgdXNpbmcgQ29udGFjdEZpZWxkID0g
UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ7CisgICAgc3RhdGljIFJlZjxBcHBsZVBheUVycm9y
PiBjcmVhdGUoQXBwbGVQYXlFcnJvckNvZGUgY29kZSwgT3B0aW9uYWw8QXBwbGVQYXlFcnJvckNv
bnRhY3RGaWVsZD4gY29udGFjdEZpZWxkLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBBcHBsZVBheUVycm9yKGNvZGUsIGNvbnRhY3RG
aWVsZCwgbWVzc2FnZSkpOworICAgIH0KIAotICAgIHN0YXRpYyBSZWY8QXBwbGVQYXlFcnJvcj4g
Y3JlYXRlKENvZGUsIE9wdGlvbmFsPENvbnRhY3RGaWVsZD4sIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSk7Ci0gICAgdmlydHVhbCB+QXBwbGVQYXlFcnJvcigpOworICAgIHZpcnR1YWwgfkFwcGxlUGF5
RXJyb3IoKSA9IGRlZmF1bHQ7CiAKLSAgICBDb2RlIGNvZGUoKSBjb25zdCB7IHJldHVybiBtX2Nv
ZGU7IH0KLSAgICB2b2lkIHNldENvZGUoQ29kZSBjb2RlKSB7IG1fY29kZSA9IGNvZGU7IH0KKyAg
ICBBcHBsZVBheUVycm9yQ29kZSBjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlOyB9CisgICAg
dm9pZCBzZXRDb2RlKEFwcGxlUGF5RXJyb3JDb2RlIGNvZGUpIHsgbV9jb2RlID0gY29kZTsgfQog
Ci0gICAgT3B0aW9uYWw8Q29udGFjdEZpZWxkPiBjb250YWN0RmllbGQoKSBjb25zdCB7IHJldHVy
biBtX2NvbnRhY3RGaWVsZDsgfQotICAgIHZvaWQgc2V0Q29udGFjdEZpZWxkKE9wdGlvbmFsPENv
bnRhY3RGaWVsZD4gY29udGFjdEZpZWxkKSB7IG1fY29udGFjdEZpZWxkID0gY29udGFjdEZpZWxk
OyB9CisgICAgT3B0aW9uYWw8QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZD4gY29udGFjdEZpZWxk
KCkgY29uc3QgeyByZXR1cm4gbV9jb250YWN0RmllbGQ7IH0KKyAgICB2b2lkIHNldENvbnRhY3RG
aWVsZChPcHRpb25hbDxBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkPiBjb250YWN0RmllbGQpIHsg
bV9jb250YWN0RmllbGQgPSBjb250YWN0RmllbGQ7IH0KIAogICAgIFN0cmluZyBtZXNzYWdlKCkg
Y29uc3QgeyByZXR1cm4gbV9tZXNzYWdlOyB9CiAgICAgdm9pZCBzZXRNZXNzYWdlKFN0cmluZyYm
IG1lc3NhZ2UpIHsgbV9tZXNzYWdlID0gV1RGTW92ZShtZXNzYWdlKTsgfQogCi1wcml2YXRlOgot
ICAgIEFwcGxlUGF5RXJyb3IoQ29kZSwgT3B0aW9uYWw8Q29udGFjdEZpZWxkPiwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKTsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFJlZlB0
cjxBcHBsZVBheUVycm9yPiBkZWNvZGUoRGVjb2RlciYpOwogCi0gICAgQ29kZSBtX2NvZGU7Ci0g
ICAgT3B0aW9uYWw8Q29udGFjdEZpZWxkPiBtX2NvbnRhY3RGaWVsZDsKK3ByaXZhdGU6CisgICAg
QXBwbGVQYXlFcnJvcihBcHBsZVBheUVycm9yQ29kZSBjb2RlLCBPcHRpb25hbDxBcHBsZVBheUVy
cm9yQ29udGFjdEZpZWxkPiBjb250YWN0RmllbGQsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKKyAg
ICAgICAgOiBtX2NvZGUoY29kZSkKKyAgICAgICAgLCBtX2NvbnRhY3RGaWVsZChjb250YWN0Rmll
bGQpCisgICAgICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCisgICAgeworICAgIH0KKworICAgIEFw
cGxlUGF5RXJyb3JDb2RlIG1fY29kZTsKKyAgICBPcHRpb25hbDxBcHBsZVBheUVycm9yQ29udGFj
dEZpZWxkPiBtX2NvbnRhY3RGaWVsZDsKICAgICBTdHJpbmcgbV9tZXNzYWdlOwogfTsKIAordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQXBwbGVQYXlFcnJvcjo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX2NvZGU7CisgICAgZW5jb2RlciA8
PCBtX2NvbnRhY3RGaWVsZDsKKyAgICBlbmNvZGVyIDw8IG1fbWVzc2FnZTsKIH0KIAordGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4KK1JlZlB0cjxBcHBsZVBheUVycm9yPiBBcHBsZVBheUVycm9yOjpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyNkZWZpbmUgREVDT0RFKG5hbWUsIHR5cGUpIFwK
KyAgICBPcHRpb25hbDx0eXBlPiBuYW1lOyBcCisgICAgZGVjb2RlciA+PiBuYW1lOyBcCisgICAg
aWYgKCFuYW1lKSBcCisgICAgICAgIHJldHVybiBudWxscHRyOyBcCisKKyAgICBERUNPREUoY29k
ZSwgQXBwbGVQYXlFcnJvckNvZGUpCisgICAgREVDT0RFKGNvbnRhY3RGaWVsZCwgT3B0aW9uYWw8
QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZD4pCisgICAgREVDT0RFKG1lc3NhZ2UsIFN0cmluZykK
KworI3VuZGVmIERFQ09ERQorCisgICAgcmV0dXJuIEFwcGxlUGF5RXJyb3I6OmNyZWF0ZShXVEZN
b3ZlKCpjb2RlKSwgV1RGTW92ZSgqY29udGFjdEZpZWxkKSwgV1RGTW92ZSgqbWVzc2FnZSkpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29kZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29kZS5oCmluZGV4IDJmYWVlZjdk
Yzg3ZTBkYmQyZDhiZGJjNWU4NzZhMjExYjg1ZTZmNmIuLjg3YzYwMTVlMzFjOTgxOWI1OWNlNDIx
ZTQyYjJlODMxZjIxMzlhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlFcnJvckNvZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5RXJyb3JDb2RlLmgKQEAgLTI3LDEyICsyNywzMSBAQAogCiAjaWYgRU5B
QkxFKEFQUExFX1BBWSkKIAotI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11
c2luZyBBcHBsZVBheUVycm9yQ29kZSA9IFBheW1lbnRFcnJvcjo6Q29kZTsKK2VudW0gY2xhc3Mg
QXBwbGVQYXlFcnJvckNvZGUgeworICAgIFVua25vd24sCisgICAgU2hpcHBpbmdDb250YWN0SW52
YWxpZCwKKyAgICBCaWxsaW5nQ29udGFjdEludmFsaWQsCisgICAgQWRkcmVzc1Vuc2VydmljZWFi
bGUsCit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK25hbWVzcGFjZSBXVEYgeworCit0
ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb2RlPiB7
CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6QXBwbGVQ
YXlFcnJvckNvZGUsCisgICAgICAgIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb2RlOjpVbmtub3du
LAorICAgICAgICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29kZTo6U2hpcHBpbmdDb250YWN0SW52
YWxpZCwKKyAgICAgICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvZGU6OkJpbGxpbmdDb250YWN0
SW52YWxpZCwKKyAgICAgICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvZGU6OkFkZHJlc3NVbnNl
cnZpY2VhYmxlCisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCiAjZW5kaWYgLy8g
RU5BQkxFKEFQUExFX1BBWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmgKaW5kZXggZjZhNzBkMDcwN2Ni
OWY1YWU1N2I5MGQyY2M0MWZmMzBhYjdjYTExMC4uMTY0ZGJmYWIyODIyN2M1NGU4Y2QyZDI5NzU1
N2YwMjdlOWVlNmNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9BcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9BcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmgKQEAgLTI3LDEyICsyNyw0OSBA
QAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAotI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi11c2luZyBBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkID0gUGF5bWVudEVycm9y
OjpDb250YWN0RmllbGQ7CitlbnVtIGNsYXNzIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQgewor
ICAgIFBob25lTnVtYmVyLAorICAgIEVtYWlsQWRkcmVzcywKKyAgICBOYW1lLAorICAgIFBob25l
dGljTmFtZSwKKyAgICBQb3N0YWxBZGRyZXNzLAorICAgIEFkZHJlc3NMaW5lcywKKyAgICBTdWJM
b2NhbGl0eSwKKyAgICBMb2NhbGl0eSwKKyAgICBQb3N0YWxDb2RlLAorICAgIFN1YkFkbWluaXN0
cmF0aXZlQXJlYSwKKyAgICBBZG1pbmlzdHJhdGl2ZUFyZWEsCisgICAgQ291bnRyeSwKKyAgICBD
b3VudHJ5Q29kZSwKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAorbmFtZXNwYWNlIFdU
RiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6QXBwbGVQYXlFcnJv
ckNvbnRhY3RGaWVsZD4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAg
IFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQsCisgICAgICAgIFdlYkNvcmU6OkFw
cGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlBob25lTnVtYmVyLAorICAgICAgICBXZWJDb3JlOjpB
cHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpFbWFpbEFkZHJlc3MsCisgICAgICAgIFdlYkNvcmU6
OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6Ok5hbWUsCisgICAgICAgIFdlYkNvcmU6OkFwcGxl
UGF5RXJyb3JDb250YWN0RmllbGQ6OlBob25ldGljTmFtZSwKKyAgICAgICAgV2ViQ29yZTo6QXBw
bGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UG9zdGFsQWRkcmVzcywKKyAgICAgICAgV2ViQ29yZTo6
QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6QWRkcmVzc0xpbmVzLAorICAgICAgICBXZWJDb3Jl
OjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpTdWJMb2NhbGl0eSwKKyAgICAgICAgV2ViQ29y
ZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6TG9jYWxpdHksCisgICAgICAgIFdlYkNvcmU6
OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlBvc3RhbENvZGUsCisgICAgICAgIFdlYkNvcmU6
OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlN1YkFkbWluaXN0cmF0aXZlQXJlYSwKKyAgICAg
ICAgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6QWRtaW5pc3RyYXRpdmVBcmVh
LAorICAgICAgICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpDb3VudHJ5LAor
ICAgICAgICBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpDb3VudHJ5Q29kZQor
ICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwogI2VuZGlmIC8vIEVOQUJMRShBUFBM
RV9QQVkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxl
UGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oCmluZGV4IDQ4ZDRi
NzdiZWQxODZkMjg2NGY5ZWI1ZmExYjY3MDZhZGQ2MTgzMmIuLjAzZDE3ZDgxOGQ1M2RlZGI3MThi
ZDU4NzFiN2Q2YTY5NmNjY2M1MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJl
c3VsdC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAogI2luY2x1
ZGUgIkFwcGxlUGF5RXJyb3IuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRh
dGUuaAppbmRleCBkYjQ0NjY0YTVjY2YzMjM0Y2Y0ZWU2NWI5NTE0OWQzZTU0YTIwZTc1Li4yOTQ2
Y2NjODk5NDRhODIxYzg5ZGQ3ZDhjY2UxOWIzZmQ3MGUzMjk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0aG9k
VXBkYXRlLmgKQEAgLTI3LDE2ICsyNyw1NCBAQAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAot
I2luY2x1ZGUgIkFwcGxlUGF5TGluZUl0ZW0uaCIKKyNpbmNsdWRlICJBcHBsZVBheURldGFpbHNV
cGRhdGVCYXNlLmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IEFwcGxlUGF5
UGF5bWVudE1ldGhvZFVwZGF0ZSB7Ci0gICAgQXBwbGVQYXlMaW5lSXRlbSBuZXdUb3RhbDsKLSAg
ICBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4gbmV3TGluZUl0ZW1zOworc3RydWN0IEFwcGxlUGF5
UGF5bWVudE1ldGhvZFVwZGF0ZSBmaW5hbCA6IHB1YmxpYyBBcHBsZVBheURldGFpbHNVcGRhdGVC
YXNlIHsKKyNpZiBFTkFCTEUoQVBQTEVfUEFZX0lOU1RBTExNRU5UUykKICAgICBTdHJpbmcgaW5z
dGFsbG1lbnRHcm91cElkZW50aWZpZXI7CisjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWV9JTlNU
QUxMTUVOVFMpCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFs
PEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKK3Rl
bXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZTo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgQXBwbGVQYXlEZXRhaWxzVXBk
YXRlQmFzZTo6ZW5jb2RlKGVuY29kZXIpOworI2lmIEVOQUJMRShBUFBMRV9QQVlfSU5TVEFMTE1F
TlRTKQorICAgIGVuY29kZXIgPDwgaW5zdGFsbG1lbnRHcm91cElkZW50aWZpZXI7CisjZW5kaWYg
Ly8gRU5BQkxFKEFQUExFX1BBWV9JTlNUQUxMTUVOVFMpCiB9CiAKK3RlbXBsYXRlPGNsYXNzIERl
Y29kZXI+CitPcHRpb25hbDxBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+IEFwcGxlUGF5UGF5
bWVudE1ldGhvZFVwZGF0ZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgQXBwbGVQ
YXlQYXltZW50TWV0aG9kVXBkYXRlIHJlc3VsdDsKKworICAgIGlmICghcmVzdWx0LmRlY29kZUJh
c2UoZGVjb2RlcikpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyNkZWZpbmUgREVD
T0RFKG5hbWUsIHR5cGUpIFwKKyAgICBPcHRpb25hbDx0eXBlPiBuYW1lOyBcCisgICAgZGVjb2Rl
ciA+PiBuYW1lOyBcCisgICAgaWYgKCFuYW1lKSBcCisgICAgICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7IFwKKyAgICByZXN1bHQubmFtZSA9IFdURk1vdmUoKm5hbWUpOyBcCisKKyNpZiBFTkFCTEUo
QVBQTEVfUEFZX0lOU1RBTExNRU5UUykKKyAgICBERUNPREUoaW5zdGFsbG1lbnRHcm91cElkZW50
aWZpZXIsIFN0cmluZykKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZX0lOU1RBTExNRU5UUykK
KworI3VuZGVmIERFQ09ERQorCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmlkbAppbmRleCBj
MDY5MTBkN2JmZGM1YWIxMDRmMTM5MDk5NzFlMzU5MTA2OTVhZjMzLi4yOGU4N2IxOGQxYWE3Y2M2
MzI2NWE0OWIwZmJhZjZiY2NhZWJkOGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaWRs
CkBAIC0yNSw4ICsyNSw2IEBACiAKIFsKICAgICBDb25kaXRpb25hbD1BUFBMRV9QQVksCi1dIGRp
Y3Rpb25hcnkgQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlIHsKLSAgICByZXF1aXJlZCBBcHBs
ZVBheUxpbmVJdGVtIG5ld1RvdGFsOwotICAgIHNlcXVlbmNlPEFwcGxlUGF5TGluZUl0ZW0+IG5l
d0xpbmVJdGVtczsKK10gZGljdGlvbmFyeSBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUgOiBB
cHBsZVBheURldGFpbHNVcGRhdGVCYXNlIHsKICAgICBbQ29uZGl0aW9uYWw9QVBQTEVfUEFZX0lO
U1RBTExNRU5UU10gRE9NU3RyaW5nIGluc3RhbGxtZW50R3JvdXBJZGVudGlmaWVyOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50
UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1l
bnRSZXF1ZXN0LmgKaW5kZXggM2YwYjY2ZjE3OTM3YWE0MWI0ZWM0ZmQ4MWQ3OGE4MGEwODY3YWI5
Yi4uYjc1MjU2MTA1YzFjM2M0NDY2MTI1YzZlZThkNzRiZDk5ZTA2ZTY2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRSZXF1ZXN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRSZXF1
ZXN0LmgKQEAgLTMzLDYgKzMzLDEwIEBACiAjaW5jbHVkZSAiQXBwbGVQYXlTZXNzaW9uUGF5bWVu
dFJlcXVlc3QuaCIKICNpbmNsdWRlICJBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmgiCiAKKyNpZiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9BcHBsZVBh
eVBheW1lbnRSZXF1ZXN0QWRkaXRpb25zLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBzdHJ1Y3QgQXBwbGVQYXlQYXltZW50UmVxdWVzdCA6IEFwcGxlUGF5UmVxdWVzdEJhc2Ug
ewpAQCAtNDUsNiArNDksMTAgQEAgc3RydWN0IEFwcGxlUGF5UGF5bWVudFJlcXVlc3QgOiBBcHBs
ZVBheVJlcXVlc3RCYXNlIHsKIAogICAgIEFwcGxlUGF5TGluZUl0ZW0gdG90YWw7CiAgICAgT3B0
aW9uYWw8VmVjdG9yPEFwcGxlUGF5TGluZUl0ZW0+PiBsaW5lSXRlbXM7CisKKyNpZiBkZWZpbmVk
KEFwcGxlUGF5UGF5bWVudFJlcXVlc3RBZGRpdGlvbnNfbWVtYmVycykKKyAgICBBcHBsZVBheVBh
eW1lbnRSZXF1ZXN0QWRkaXRpb25zX21lbWJlcnMKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5j
cHAKaW5kZXggNzI3MGIyMDRlZDc4ZDFjYzRmZGI4ZjRhZGYyOGEyNmVhYjIxNjllMy4uNTJhZWZm
NjE4MjExMjJhZDEzMzM4ZjJlMDIyMTZiZmVjY2NkNTliYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3BwCkBAIC0z
MSw2ICszMSwxMCBAQAogI2luY2x1ZGUgIlBheW1lbnRDb29yZGluYXRvci5oIgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCisjaWYgVVNFKEFQUExFX0lO
VEVSTkFMX1NESykKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvQXBwbGVQYXlSZXF1ZXN0QmFz
ZUFkZGl0aW9ucy5jcHA+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMg
Ym9vbCByZXF1aXJlc1N1cHBvcnRlZE5ldHdvcmtzKHVuc2lnbmVkIHZlcnNpb24sIGNvbnN0IEFw
cGxlUGF5UmVxdWVzdEJhc2UmIHJlcXVlc3QpCkBAIC0xMTQsNiArMTE4LDEwIEBAIEV4Y2VwdGlv
bk9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGUoRG9j
dW1lbnQmIGRvY3VtZW50CiAgICAgfQogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKEFwcGxlUGF5UmVx
dWVzdEJhc2VBZGRpdGlvbnNfY29udmVydEFuZFZhbGlkYXRlX3JlcXVlc3QpCisgICAgQXBwbGVQ
YXlSZXF1ZXN0QmFzZUFkZGl0aW9uc19jb252ZXJ0QW5kVmFsaWRhdGVfcmVxdWVzdAorI2VuZGlm
CisKICAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5oCmluZGV4IDMzZDE2
YTc1MTBmMDczZWMzZDg1YmZiYmU0NWRjNDYwYzk1OTlmNGMuLjMyMGE3MzYxZTMwNzQzNzA2NWE3
NGNiYmViODNkNzZlZjdlOGJiNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5oCkBAIC0zMiw2ICszMiwxMCBAQAogI2lu
Y2x1ZGUgIkFwcGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5LmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlQ
YXltZW50Q29udGFjdC5oIgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRl
IDxXZWJLaXRBZGRpdGlvbnMvQXBwbGVQYXlSZXF1ZXN0QmFzZUFkZGl0aW9ucy5oPgorI2VuZGlm
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CkBAIC01NCw2ICs1OCwx
MCBAQCBzdHJ1Y3QgQXBwbGVQYXlSZXF1ZXN0QmFzZSB7CiAjaWYgRU5BQkxFKEFQUExFX1BBWV9J
TlNUQUxMTUVOVFMpCiAgICAgT3B0aW9uYWw8QXBwbGVQYXlJbnN0YWxsbWVudENvbmZpZ3VyYXRp
b24+IGluc3RhbGxtZW50Q29uZmlndXJhdGlvbjsKICNlbmRpZgorCisjaWYgZGVmaW5lZChBcHBs
ZVBheVJlcXVlc3RCYXNlQWRkaXRpb25zX21lbWJlcnMpCisgICAgQXBwbGVQYXlSZXF1ZXN0QmFz
ZUFkZGl0aW9uc19tZW1iZXJzCisjZW5kaWYKIH07CiAKIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGUoRG9jdW1lbnQmLCB1bnNpZ25l
ZCB2ZXJzaW9uLCBBcHBsZVBheVJlcXVlc3RCYXNlJiwgY29uc3QgUGF5bWVudENvb3JkaW5hdG9y
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vz
c2lvbi5jcHAKaW5kZXggMjg5NDY5MjFmOWQxYTE2Y2M4NDBjZTMzYTNiNGI3Y2FkMzk1ZjM2OS4u
M2RlOGQwODJjYWNkODZjNzVjZDA4MTBhZjZlMDY0NjQ1MTQ4NzZjZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcApAQCAtMjks
NiArMjksOCBAQAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKICNpbmNsdWRlICJBcHBsZVBheUNh
bmNlbEV2ZW50LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlFcnJvckNvZGUuaCIKKyNpbmNsdWRlICJB
cHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlMaW5lSXRlbS5o
IgogI2luY2x1ZGUgIkFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaCIKICNpbmNs
dWRlICJBcHBsZVBheVBheW1lbnRBdXRob3JpemVkRXZlbnQuaCIKQEAgLTU2LDcgKzU4LDYgQEAK
ICNpbmNsdWRlICJQYXltZW50Q29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJQYXltZW50TWVyY2hh
bnRTZXNzaW9uLmgiCiAjaW5jbHVkZSAiUGF5bWVudE1ldGhvZC5oIgotI2luY2x1ZGUgIlBheW1l
bnRNZXRob2RVcGRhdGUuaCIKICNpbmNsdWRlICJQYXltZW50UmVxdWVzdFZhbGlkYXRvci5oIgog
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTY0
LDE3ICs2NSwxMSBAQAogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVk
ZSA8d3RmL1J1bkxvb3AuaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgdm9pZCBm
aW5pc2hDb252ZXJ0aW5nKFBheW1lbnRNZXRob2RVcGRhdGUmIGNvbnZlcnRlZFVwZGF0ZSwgQXBw
bGVQYXlQYXltZW50TWV0aG9kVXBkYXRlJiYgdXBkYXRlKQotewotI2lmIEVOQUJMRShBUFBMRV9Q
QVlfSU5TVEFMTE1FTlRTKQotICAgIGNvbnZlcnRlZFVwZGF0ZS5zZXRJbnN0YWxsbWVudEdyb3Vw
SWRlbnRpZmllcih1cGRhdGUuaW5zdGFsbG1lbnRHcm91cElkZW50aWZpZXIpOwotI2Vsc2UKLSAg
ICBVTlVTRURfUEFSQU0oY29udmVydGVkVXBkYXRlKTsKLSAgICBVTlVTRURfUEFSQU0odXBkYXRl
KTsKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9u
cy9BcHBsZVBheVNlc3Npb25BZGRpdGlvbnMuY3BwPgogI2VuZGlmCi19CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEFwcGxlUGF5U2Vzc2lvbik7
CiAKQEAgLTE4OCwyNSArMTgzLDE5IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8QXBwbGVQ
YXlMaW5lSXRlbT4+IGNvbnZlcnRBbmRWYWxpZGF0ZShPcHRpb25hbDxWZWN0b3I8CiAgICAgcmV0
dXJuIFdURk1vdmUocmVzdWx0KTsKIH0KIAotc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4gY29udmVydEFuZFZhbGlkYXRlKEFw
cGxlUGF5U2hpcHBpbmdNZXRob2QmJiBzaGlwcGluZ01ldGhvZCkKK3N0YXRpYyBFeGNlcHRpb25P
cjxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiBjb252ZXJ0QW5kVmFsaWRhdGUoQXBwbGVQYXlTaGlw
cGluZ01ldGhvZCYmIHNoaXBwaW5nTWV0aG9kKQogewogICAgIGlmICghdmFsaWRhdGVBbW91bnQo
c2hpcHBpbmdNZXRob2QuYW1vdW50KSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVF
cnJvciwgbWFrZVN0cmluZygiXCIiICsgc2hpcHBpbmdNZXRob2QuYW1vdW50LCAiXCIgaXMgbm90
IGEgdmFsaWQgYW1vdW50LiIpIH07CiAKLSAgICBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dDo6U2hpcHBpbmdNZXRob2QgcmVzdWx0OwotICAgIHJlc3VsdC5hbW91bnQgPSBzaGlwcGluZ01l
dGhvZC5hbW91bnQ7Ci0gICAgcmVzdWx0LmxhYmVsID0gc2hpcHBpbmdNZXRob2QubGFiZWw7Ci0g
ICAgcmVzdWx0LmRldGFpbCA9IHNoaXBwaW5nTWV0aG9kLmRldGFpbDsKLSAgICByZXN1bHQuaWRl
bnRpZmllciA9IHNoaXBwaW5nTWV0aG9kLmlkZW50aWZpZXI7Ci0KLSAgICByZXR1cm4gV1RGTW92
ZShyZXN1bHQpOworICAgIHJldHVybiBXVEZNb3ZlKHNoaXBwaW5nTWV0aG9kKTsKIH0KIAotc3Rh
dGljIEV4Y2VwdGlvbk9yPFZlY3RvcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hp
cHBpbmdNZXRob2Q+PiBjb252ZXJ0QW5kVmFsaWRhdGUoVmVjdG9yPEFwcGxlUGF5U2hpcHBpbmdN
ZXRob2Q+JiYgc2hpcHBpbmdNZXRob2RzKQorc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3RvcjxBcHBs
ZVBheVNoaXBwaW5nTWV0aG9kPj4gY29udmVydEFuZFZhbGlkYXRlKFZlY3RvcjxBcHBsZVBheVNo
aXBwaW5nTWV0aG9kPiYmIHNoaXBwaW5nTWV0aG9kcykKIHsKLSAgICBWZWN0b3I8QXBwbGVQYXlT
ZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPiByZXN1bHQ7CisgICAgVmVjdG9y
PEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+IHJlc3VsdDsKICAgICByZXN1bHQucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShzaGlwcGluZ01ldGhvZHMuc2l6ZSgpKTsKLSAgICAKKwogICAgIGZvciAoYXV0
byYgc2hpcHBpbmdNZXRob2QgOiBzaGlwcGluZ01ldGhvZHMpIHsKICAgICAgICAgYXV0byBjb252
ZXJ0ZWRTaGlwcGluZ01ldGhvZCA9IGNvbnZlcnRBbmRWYWxpZGF0ZShXVEZNb3ZlKHNoaXBwaW5n
TWV0aG9kKSk7CiAgICAgICAgIGlmIChjb252ZXJ0ZWRTaGlwcGluZ01ldGhvZC5oYXNFeGNlcHRp
b24oKSkKQEAgLTIxNyw2ICsyMDYsMTAgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3RvcjxBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+PiBjb252ZXIKICAgICBy
ZXR1cm4gV1RGTW92ZShyZXN1bHQpOwogfQogCisjaWYgZGVmaW5lZChBcHBsZVBheVNlc3Npb25B
ZGRpdGlvbnNfY29udmVydEFuZFZhbGlkYXRlKQorQXBwbGVQYXlTZXNzaW9uQWRkaXRpb25zX2Nv
bnZlcnRBbmRWYWxpZGF0ZQorI2VuZGlmCisKIHN0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdD4gY29udmVydEFuZFZhbGlkYXRlKERvY3VtZW50JiBkb2N1bWVu
dCwgdW5zaWduZWQgdmVyc2lvbiwgQXBwbGVQYXlQYXltZW50UmVxdWVzdCYmIHBheW1lbnRSZXF1
ZXN0LCBjb25zdCBQYXltZW50Q29vcmRpbmF0b3ImIHBheW1lbnRDb29yZGluYXRvcikKIHsKICAg
ICBhdXRvIGNvbnZlcnRlZFJlcXVlc3QgPSBjb252ZXJ0QW5kVmFsaWRhdGUoZG9jdW1lbnQsIHZl
cnNpb24sIHBheW1lbnRSZXF1ZXN0LCBwYXltZW50Q29vcmRpbmF0b3IpOwpAQCAtMjQ2LDYgKzIz
OSwxMCBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q+
IGNvbnZlcnRBbmRWYWxpZGF0ZShEb2N1bWVudCYgZAogICAgICAgICByZXN1bHQuc2V0U2hpcHBp
bmdNZXRob2RzKHNoaXBwaW5nTWV0aG9kcy5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAgICAgfQog
CisjaWYgZGVmaW5lZChBcHBsZVBheVNlc3Npb25BZGRpdGlvbnNfY29udmVydEFuZFZhbGlkYXRl
X3JlcXVlc3QpCisgICAgQXBwbGVQYXlTZXNzaW9uQWRkaXRpb25zX2NvbnZlcnRBbmRWYWxpZGF0
ZV9yZXF1ZXN0CisjZW5kaWYKKwogICAgIC8vIEZJWE1FOiBNZXJnZSB0aGlzIHZhbGlkYXRpb24g
aW50byB0aGUgdmFsaWRhdGlvbiB3ZSBhcmUgZG9pbmcgYWJvdmUuCiAgICAgYXV0byB2YWxpZGF0
ZWRQYXltZW50UmVxdWVzdCA9IFBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yOjp2YWxpZGF0ZShyZXN1
bHQpOwogICAgIGlmICh2YWxpZGF0ZWRQYXltZW50UmVxdWVzdC5oYXNFeGNlcHRpb24oKSkKQEAg
LTI1NCwyNCArMjUxLDYgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGUoRG9jdW1lbnQmIGQKICAgICByZXR1cm4gV1RG
TW92ZShyZXN1bHQpOwogfQogCi0KLXN0YXRpYyBWZWN0b3I8UGF5bWVudEVycm9yPiBjb252ZXJ0
KGNvbnN0IFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+JiBlcnJvcnMpCi17Ci0gICAgVmVj
dG9yPFBheW1lbnRFcnJvcj4gY29udmVydGVkRXJyb3JzOwotCi0gICAgZm9yIChhdXRvJiBlcnJv
ciA6IGVycm9ycykgewotICAgICAgICBQYXltZW50RXJyb3IgY29udmVydGVkRXJyb3I7Ci0KLSAg
ICAgICAgY29udmVydGVkRXJyb3IuY29kZSA9IGVycm9yLT5jb2RlKCk7Ci0gICAgICAgIGNvbnZl
cnRlZEVycm9yLm1lc3NhZ2UgPSBlcnJvci0+bWVzc2FnZSgpOwotICAgICAgICBjb252ZXJ0ZWRF
cnJvci5jb250YWN0RmllbGQgPSBlcnJvci0+Y29udGFjdEZpZWxkKCk7Ci0KLSAgICAgICAgY29u
dmVydGVkRXJyb3JzLmFwcGVuZChjb252ZXJ0ZWRFcnJvcik7Ci0gICAgfQotCi0gICAgcmV0dXJu
IGNvbnZlcnRlZEVycm9yczsKLX0KLQogc3RhdGljIEV4Y2VwdGlvbk9yPFBheW1lbnRBdXRob3Jp
emF0aW9uUmVzdWx0PiBjb252ZXJ0QW5kVmFsaWRhdGUoQXBwbGVQYXlQYXltZW50QXV0aG9yaXph
dGlvblJlc3VsdCYmIHJlc3VsdCkKIHsKICAgICBQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdCBj
b252ZXJ0ZWRSZXN1bHQ7CkBAIC0yODcsMTcgKzI2NiwxNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8
UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+IGNvbnZlcnRBbmRWYWxpZGF0ZShBcHBsZVBheVBh
eW1lbgogCiAgICAgY2FzZSBBcHBsZVBheVNlc3Npb246OlNUQVRVU19JTlZBTElEX0JJTExJTkdf
UE9TVEFMX0FERFJFU1M6CiAgICAgICAgIGNvbnZlcnRlZFJlc3VsdC5zdGF0dXMgPSBQYXltZW50
QXV0aG9yaXphdGlvblN0YXR1czo6RmFpbHVyZTsKLSAgICAgICAgY29udmVydGVkUmVzdWx0LmVy
cm9ycy5hcHBlbmQoeyBQYXltZW50RXJyb3I6OkNvZGU6OkJpbGxpbmdDb250YWN0SW52YWxpZCwg
eyB9LCBXVEY6Om51bGxvcHQgfSk7CisgICAgICAgIGNvbnZlcnRlZFJlc3VsdC5lcnJvcnMuYXBw
ZW5kKEFwcGxlUGF5RXJyb3I6OmNyZWF0ZShBcHBsZVBheUVycm9yQ29kZTo6QmlsbGluZ0NvbnRh
Y3RJbnZhbGlkLCBXVEY6Om51bGxvcHQsIG51bGxTdHJpbmcoKSkpOwogICAgICAgICBicmVhazsK
IAogICAgIGNhc2UgQXBwbGVQYXlTZXNzaW9uOjpTVEFUVVNfSU5WQUxJRF9TSElQUElOR19QT1NU
QUxfQUREUkVTUzoKICAgICAgICAgY29udmVydGVkUmVzdWx0LnN0YXR1cyA9IFBheW1lbnRBdXRo
b3JpemF0aW9uU3RhdHVzOjpGYWlsdXJlOwotICAgICAgICBjb252ZXJ0ZWRSZXN1bHQuZXJyb3Jz
LmFwcGVuZCh7IFBheW1lbnRFcnJvcjo6Q29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxpZCwgeyB9
LCBQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6UG9zdGFsQWRkcmVzcyB9KTsKKyAgICAgICAg
Y29udmVydGVkUmVzdWx0LmVycm9ycy5hcHBlbmQoQXBwbGVQYXlFcnJvcjo6Y3JlYXRlKEFwcGxl
UGF5RXJyb3JDb2RlOjpTaGlwcGluZ0NvbnRhY3RJbnZhbGlkLCBBcHBsZVBheUVycm9yQ29udGFj
dEZpZWxkOjpQb3N0YWxBZGRyZXNzLCBudWxsU3RyaW5nKCkpKTsKICAgICAgICAgYnJlYWs7CiAK
ICAgICBjYXNlIEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX0lOVkFMSURfU0hJUFBJTkdfQ09OVEFD
VDoKICAgICAgICAgY29udmVydGVkUmVzdWx0LnN0YXR1cyA9IFBheW1lbnRBdXRob3JpemF0aW9u
U3RhdHVzOjpGYWlsdXJlOwotICAgICAgICBjb252ZXJ0ZWRSZXN1bHQuZXJyb3JzLmFwcGVuZCh7
IFBheW1lbnRFcnJvcjo6Q29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxpZCwgeyB9LCBXVEY6Om51
bGxvcHQgfSk7CisgICAgICAgIGNvbnZlcnRlZFJlc3VsdC5lcnJvcnMuYXBwZW5kKEFwcGxlUGF5
RXJyb3I6OmNyZWF0ZShBcHBsZVBheUVycm9yQ29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxpZCwg
V1RGOjpudWxsb3B0LCBudWxsU3RyaW5nKCkpKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNl
IEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX1BJTl9SRVFVSVJFRDoKQEAgLTMxNiw2OCArMjk1LDU5
IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4gY29udmVy
dEFuZFZhbGlkYXRlKEFwcGxlUGF5UGF5bWVuCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkQWNjZXNzRXJyb3IgfTsKICAgICB9CiAKLSAgICBjb252ZXJ0ZWRSZXN1bHQuZXJyb3Jz
LmFwcGVuZFZlY3Rvcihjb252ZXJ0KHJlc3VsdC5lcnJvcnMpKTsKKyAgICBjb252ZXJ0ZWRSZXN1
bHQuZXJyb3JzLmFwcGVuZFZlY3RvcihXVEZNb3ZlKHJlc3VsdC5lcnJvcnMpKTsKIAogICAgIHJl
dHVybiBXVEZNb3ZlKGNvbnZlcnRlZFJlc3VsdCk7CiB9CiAKLXN0YXRpYyBFeGNlcHRpb25PcjxQ
YXltZW50TWV0aG9kVXBkYXRlPiBjb252ZXJ0QW5kVmFsaWRhdGUoQXBwbGVQYXlQYXltZW50TWV0
aG9kVXBkYXRlJiYgdXBkYXRlKQorc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5UGF5bWVudE1l
dGhvZFVwZGF0ZT4gY29udmVydEFuZFZhbGlkYXRlKEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0
ZSYmIHVwZGF0ZSkKIHsKICAgICBhdXRvIGNvbnZlcnRlZE5ld1RvdGFsID0gY29udmVydEFuZFZh
bGlkYXRlVG90YWwoV1RGTW92ZSh1cGRhdGUubmV3VG90YWwpKTsKICAgICBpZiAoY29udmVydGVk
TmV3VG90YWwuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBjb252ZXJ0ZWROZXdUb3Rh
bC5yZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgdXBkYXRlLm5ld1RvdGFsID0gY29udmVydGVkTmV3
VG90YWwucmVsZWFzZVJldHVyblZhbHVlKCk7CiAKICAgICBhdXRvIGNvbnZlcnRlZE5ld0xpbmVJ
dGVtcyA9IGNvbnZlcnRBbmRWYWxpZGF0ZShXVEZNb3ZlKHVwZGF0ZS5uZXdMaW5lSXRlbXMpKTsK
ICAgICBpZiAoY29udmVydGVkTmV3TGluZUl0ZW1zLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICBy
ZXR1cm4gY29udmVydGVkTmV3TGluZUl0ZW1zLnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICB1cGRh
dGUubmV3TGluZUl0ZW1zID0gY29udmVydGVkTmV3TGluZUl0ZW1zLnJlbGVhc2VSZXR1cm5WYWx1
ZSgpOwogCi0gICAgUGF5bWVudE1ldGhvZFVwZGF0ZSBjb252ZXJ0ZWRVcGRhdGUgeyBjb252ZXJ0
ZWROZXdUb3RhbC5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgY29udmVydGVkTmV3TGluZUl0ZW1zLnJl
bGVhc2VSZXR1cm5WYWx1ZSgpIH07Ci0gICAgZmluaXNoQ29udmVydGluZyhjb252ZXJ0ZWRVcGRh
dGUsIFdURk1vdmUodXBkYXRlKSk7Ci0KLSAgICByZXR1cm4gV1RGTW92ZShjb252ZXJ0ZWRVcGRh
dGUpOworICAgIHJldHVybiBXVEZNb3ZlKHVwZGF0ZSk7CiB9CiAKLXN0YXRpYyBFeGNlcHRpb25P
cjxTaGlwcGluZ0NvbnRhY3RVcGRhdGU+IGNvbnZlcnRBbmRWYWxpZGF0ZShBcHBsZVBheVNoaXBw
aW5nQ29udGFjdFVwZGF0ZSYmIHVwZGF0ZSkKK3N0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheVNo
aXBwaW5nQ29udGFjdFVwZGF0ZT4gY29udmVydEFuZFZhbGlkYXRlKEFwcGxlUGF5U2hpcHBpbmdD
b250YWN0VXBkYXRlJiYgdXBkYXRlKQogewotICAgIFNoaXBwaW5nQ29udGFjdFVwZGF0ZSBjb252
ZXJ0ZWRVcGRhdGU7Ci0KLSAgICBjb252ZXJ0ZWRVcGRhdGUuZXJyb3JzID0gY29udmVydCh1cGRh
dGUuZXJyb3JzKTsKLQogICAgIGF1dG8gY29udmVydGVkTmV3U2hpcHBpbmdNZXRob2RzID0gY29u
dmVydEFuZFZhbGlkYXRlKFdURk1vdmUodXBkYXRlLm5ld1NoaXBwaW5nTWV0aG9kcykpOwogICAg
IGlmIChjb252ZXJ0ZWROZXdTaGlwcGluZ01ldGhvZHMuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAg
IHJldHVybiBjb252ZXJ0ZWROZXdTaGlwcGluZ01ldGhvZHMucmVsZWFzZUV4Y2VwdGlvbigpOwot
ICAgIGNvbnZlcnRlZFVwZGF0ZS5uZXdTaGlwcGluZ01ldGhvZHMgPSBjb252ZXJ0ZWROZXdTaGlw
cGluZ01ldGhvZHMucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgdXBkYXRlLm5ld1NoaXBwaW5n
TWV0aG9kcyA9IGNvbnZlcnRlZE5ld1NoaXBwaW5nTWV0aG9kcy5yZWxlYXNlUmV0dXJuVmFsdWUo
KTsKIAogICAgIGF1dG8gY29udmVydGVkTmV3VG90YWwgPSBjb252ZXJ0QW5kVmFsaWRhdGVUb3Rh
bChXVEZNb3ZlKHVwZGF0ZS5uZXdUb3RhbCkpOwogICAgIGlmIChjb252ZXJ0ZWROZXdUb3RhbC5o
YXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIGNvbnZlcnRlZE5ld1RvdGFsLnJlbGVhc2VF
eGNlcHRpb24oKTsKLSAgICBjb252ZXJ0ZWRVcGRhdGUubmV3VG90YWxBbmRMaW5lSXRlbXMudG90
YWwgPSBjb252ZXJ0ZWROZXdUb3RhbC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICB1cGRhdGUu
bmV3VG90YWwgPSBjb252ZXJ0ZWROZXdUb3RhbC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKIAogICAg
IGF1dG8gY29udmVydGVkTmV3TGluZUl0ZW1zID0gY29udmVydEFuZFZhbGlkYXRlKFdURk1vdmUo
dXBkYXRlLm5ld0xpbmVJdGVtcykpOwogICAgIGlmIChjb252ZXJ0ZWROZXdMaW5lSXRlbXMuaGFz
RXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBjb252ZXJ0ZWROZXdMaW5lSXRlbXMucmVsZWFz
ZUV4Y2VwdGlvbigpOwotICAgIGNvbnZlcnRlZFVwZGF0ZS5uZXdUb3RhbEFuZExpbmVJdGVtcy5s
aW5lSXRlbXMgPSBjb252ZXJ0ZWROZXdMaW5lSXRlbXMucmVsZWFzZVJldHVyblZhbHVlKCk7Cisg
ICAgdXBkYXRlLm5ld0xpbmVJdGVtcyA9IGNvbnZlcnRlZE5ld0xpbmVJdGVtcy5yZWxlYXNlUmV0
dXJuVmFsdWUoKTsKIAotICAgIHJldHVybiBXVEZNb3ZlKGNvbnZlcnRlZFVwZGF0ZSk7CisgICAg
cmV0dXJuIFdURk1vdmUodXBkYXRlKTsKIH0KIAotc3RhdGljIEV4Y2VwdGlvbk9yPFNoaXBwaW5n
TWV0aG9kVXBkYXRlPiBjb252ZXJ0QW5kVmFsaWRhdGUoQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVw
ZGF0ZSYmIHVwZGF0ZSkKK3N0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9k
VXBkYXRlPiBjb252ZXJ0QW5kVmFsaWRhdGUoQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZSYm
IHVwZGF0ZSkKIHsKLSAgICBTaGlwcGluZ01ldGhvZFVwZGF0ZSBjb252ZXJ0ZWRVcGRhdGU7Ci0K
ICAgICBhdXRvIGNvbnZlcnRlZE5ld1RvdGFsID0gY29udmVydEFuZFZhbGlkYXRlVG90YWwoV1RG
TW92ZSh1cGRhdGUubmV3VG90YWwpKTsKICAgICBpZiAoY29udmVydGVkTmV3VG90YWwuaGFzRXhj
ZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBjb252ZXJ0ZWROZXdUb3RhbC5yZWxlYXNlRXhjZXB0
aW9uKCk7Ci0KLSAgICBjb252ZXJ0ZWRVcGRhdGUubmV3VG90YWxBbmRMaW5lSXRlbXMudG90YWwg
PSBjb252ZXJ0ZWROZXdUb3RhbC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICB1cGRhdGUubmV3
VG90YWwgPSBjb252ZXJ0ZWROZXdUb3RhbC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKIAogICAgIGF1
dG8gY29udmVydGVkTmV3TGluZUl0ZW1zID0gY29udmVydEFuZFZhbGlkYXRlKFdURk1vdmUodXBk
YXRlLm5ld0xpbmVJdGVtcykpOwogICAgIGlmIChjb252ZXJ0ZWROZXdMaW5lSXRlbXMuaGFzRXhj
ZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBjb252ZXJ0ZWROZXdMaW5lSXRlbXMucmVsZWFzZUV4
Y2VwdGlvbigpOworICAgIHVwZGF0ZS5uZXdMaW5lSXRlbXMgPSBjb252ZXJ0ZWROZXdMaW5lSXRl
bXMucmVsZWFzZVJldHVyblZhbHVlKCk7CiAKLSAgICBjb252ZXJ0ZWRVcGRhdGUubmV3VG90YWxB
bmRMaW5lSXRlbXMubGluZUl0ZW1zID0gY29udmVydGVkTmV3TGluZUl0ZW1zLnJlbGVhc2VSZXR1
cm5WYWx1ZSgpOwotCi0gICAgcmV0dXJuIFdURk1vdmUoY29udmVydGVkVXBkYXRlKTsKKyAgICBy
ZXR1cm4gV1RGTW92ZSh1cGRhdGUpOwogfQogCiBFeGNlcHRpb25PcjxSZWY8QXBwbGVQYXlTZXNz
aW9uPj4gQXBwbGVQYXlTZXNzaW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCB1bnNpZ25l
ZCB2ZXJzaW9uLCBBcHBsZVBheVBheW1lbnRSZXF1ZXN0JiYgcGF5bWVudFJlcXVlc3QpCkBAIC02
NjMsOCArNjMzLDggQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9uOjpjb21wbGV0
ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbih1bnNpZ25lZCBzaG8KIHsKICAgICBBcHBsZVBheVNo
aXBwaW5nQ29udGFjdFVwZGF0ZSB1cGRhdGU7CiAKLSAgICBPcHRpb25hbDxBcHBsZVBheUVycm9y
OjpDb2RlPiBlcnJvckNvZGU7Ci0gICAgT3B0aW9uYWw8QXBwbGVQYXlFcnJvcjo6Q29udGFjdEZp
ZWxkPiBjb250YWN0RmllbGQ7CisgICAgT3B0aW9uYWw8QXBwbGVQYXlFcnJvckNvZGU+IGVycm9y
Q29kZTsKKyAgICBPcHRpb25hbDxBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkPiBjb250YWN0Rmll
bGQ7CiAKICAgICBzd2l0Y2ggKHN0YXR1cykgewogICAgIGNhc2UgQXBwbGVQYXlTZXNzaW9uOjpT
VEFUVVNfU1VDQ0VTUzoKQEAgLTY3NCwyMCArNjQ0LDIwIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEFw
cGxlUGF5U2Vzc2lvbjo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24odW5zaWduZWQg
c2hvCiAgICAgY2FzZSBBcHBsZVBheVNlc3Npb246OlNUQVRVU19QSU5fUkVRVUlSRUQ6CiAgICAg
Y2FzZSBBcHBsZVBheVNlc3Npb246OlNUQVRVU19QSU5fSU5DT1JSRUNUOgogICAgIGNhc2UgQXBw
bGVQYXlTZXNzaW9uOjpTVEFUVVNfUElOX0xPQ0tPVVQ6Ci0gICAgICAgIGVycm9yQ29kZSA9IEFw
cGxlUGF5RXJyb3I6OkNvZGU6OlVua25vd247CisgICAgICAgIGVycm9yQ29kZSA9IEFwcGxlUGF5
RXJyb3JDb2RlOjpVbmtub3duOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQXBwbGVQYXlT
ZXNzaW9uOjpTVEFUVVNfSU5WQUxJRF9CSUxMSU5HX1BPU1RBTF9BRERSRVNTOgotICAgICAgICBl
cnJvckNvZGUgPSBBcHBsZVBheUVycm9yOjpDb2RlOjpCaWxsaW5nQ29udGFjdEludmFsaWQ7Cisg
ICAgICAgIGVycm9yQ29kZSA9IEFwcGxlUGF5RXJyb3JDb2RlOjpCaWxsaW5nQ29udGFjdEludmFs
aWQ7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBBcHBsZVBheVNlc3Npb246OlNUQVRVU19J
TlZBTElEX1NISVBQSU5HX1BPU1RBTF9BRERSRVNTOgotICAgICAgICBlcnJvckNvZGUgPSBBcHBs
ZVBheUVycm9yOjpDb2RlOjpTaGlwcGluZ0NvbnRhY3RJbnZhbGlkOwotICAgICAgICBjb250YWN0
RmllbGQgPSBBcHBsZVBheUVycm9yOjpDb250YWN0RmllbGQ6OlBvc3RhbEFkZHJlc3M7CisgICAg
ICAgIGVycm9yQ29kZSA9IEFwcGxlUGF5RXJyb3JDb2RlOjpTaGlwcGluZ0NvbnRhY3RJbnZhbGlk
OworICAgICAgICBjb250YWN0RmllbGQgPSBBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpQb3N0
YWxBZGRyZXNzOwogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQXBwbGVQYXlTZXNzaW9uOjpT
VEFUVVNfSU5WQUxJRF9TSElQUElOR19DT05UQUNUOgotICAgICAgICBlcnJvckNvZGUgPSBBcHBs
ZVBheUVycm9yOjpDb2RlOjpTaGlwcGluZ0NvbnRhY3RJbnZhbGlkOworICAgICAgICBlcnJvckNv
ZGUgPSBBcHBsZVBheUVycm9yQ29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxpZDsKICAgICAgICAg
YnJlYWs7CiAKICAgICBkZWZhdWx0OgpAQCAtNzU5LDcgKzcyOSw3IEBAIHZvaWQgQXBwbGVQYXlT
ZXNzaW9uOjpkaWRBdXRob3JpemVQYXltZW50KGNvbnN0IFBheW1lbnQmIHBheW1lbnQpCiAgICAg
ZGlzcGF0Y2hFdmVudChldmVudC5nZXQoKSk7CiB9CiAKLXZvaWQgQXBwbGVQYXlTZXNzaW9uOjpk
aWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQordm9pZCBBcHBsZVBheVNlc3Npb246
OmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2QmIHNo
aXBwaW5nTWV0aG9kKQogewogICAgIEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpBY3RpdmUpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vz
c2lvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24u
aAppbmRleCAzMmNjNzZjODdmNjVhN2MxMTI1ZDcyOTBlMzRhZGEwZTUzZmI1YmRkLi5hMDI0OGI5
MTVmZjhmODc2MjI2NTc1MTVhMjJlNTY0MDIzYjQ5YzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmgKQEAgLTExNSw3ICsxMTUsNyBA
QCBwcml2YXRlOgogICAgIHVuc2lnbmVkIHZlcnNpb24oKSBjb25zdCBvdmVycmlkZTsKICAgICB2
b2lkIHZhbGlkYXRlTWVyY2hhbnQoVVJMJiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkQXV0aG9y
aXplUGF5bWVudChjb25zdCBQYXltZW50Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRTZWxlY3RT
aGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBp
bmdNZXRob2QmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNv
bnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2QmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZFNlbGVj
dFNoaXBwaW5nQ29udGFjdChjb25zdCBQYXltZW50Q29udGFjdCYpIG92ZXJyaWRlOwogICAgIHZv
aWQgZGlkU2VsZWN0UGF5bWVudE1ldGhvZChjb25zdCBQYXltZW50TWV0aG9kJikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBkaWRDYW5jZWxQYXltZW50U2Vzc2lvbihQYXltZW50U2Vzc2lvbkVycm9yJiYp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oCmluZGV4IDM5ODY0NzZlMTJk
ZmY3ZmM5OGI3ZTk1NDgyYzVlNmU0NWMwYjBiMmYuLjNhNzhkOGQ3ZDQ2YjlhZmJmMDg1ZTRjNWE2
NWRiNTc3MGYyMzVlNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgKQEAgLTI3LDE0
ICsyNywyMSBAQAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAorI2luY2x1ZGUgIkFwcGxlUGF5
RXJyb3IuaCIKICNpbmNsdWRlICJBcHBsZVBheUxpbmVJdGVtLmgiCisjaW5jbHVkZSAiQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZC5oIgogI2luY2x1ZGUgIlBheW1lbnRDb250YWN0LmgiCiAjaW5jbHVk
ZSAiUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbldlYkNvcmUuaCIKICNpbmNsdWRlIDx3
dGYvRW51bVRyYWl0cy5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2luY2x1ZGUgPFdl
YktpdEFkZGl0aW9ucy9BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdEFkZGl0aW9ucy5oPgor
I2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogZW51bSBjbGFzcyBQYXltZW50QXV0aG9y
aXphdGlvblN0YXR1czsKQEAgLTk1LDE1ICsxMDIsOCBAQCBwdWJsaWM6CiAgICAgU2hpcHBpbmdU
eXBlIHNoaXBwaW5nVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hpcHBpbmdUeXBlOyB9CiAgICAg
dm9pZCBzZXRTaGlwcGluZ1R5cGUoU2hpcHBpbmdUeXBlIHNoaXBwaW5nVHlwZSkgeyBtX3NoaXBw
aW5nVHlwZSA9IHNoaXBwaW5nVHlwZTsgfQogCi0gICAgc3RydWN0IFNoaXBwaW5nTWV0aG9kIHsK
LSAgICAgICAgU3RyaW5nIGxhYmVsOwotICAgICAgICBTdHJpbmcgZGV0YWlsOwotICAgICAgICBT
dHJpbmcgYW1vdW50OwotCi0gICAgICAgIFN0cmluZyBpZGVudGlmaWVyOwotICAgIH07Ci0gICAg
Y29uc3QgVmVjdG9yPFNoaXBwaW5nTWV0aG9kPiYgc2hpcHBpbmdNZXRob2RzKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaGlwcGluZ01ldGhvZHM7IH0KLSAgICB2b2lkIHNldFNoaXBwaW5nTWV0aG9kcyhj
b25zdCBWZWN0b3I8U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGluZ01ldGhvZHMpIHsgbV9zaGlwcGlu
Z01ldGhvZHMgPSBzaGlwcGluZ01ldGhvZHM7IH0KKyAgICBjb25zdCBWZWN0b3I8QXBwbGVQYXlT
aGlwcGluZ01ldGhvZD4mIHNoaXBwaW5nTWV0aG9kcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hpcHBp
bmdNZXRob2RzOyB9CisgICAgdm9pZCBzZXRTaGlwcGluZ01ldGhvZHMoY29uc3QgVmVjdG9yPEFw
cGxlUGF5U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGluZ01ldGhvZHMpIHsgbV9zaGlwcGluZ01ldGhv
ZHMgPSBzaGlwcGluZ01ldGhvZHM7IH0KIAogICAgIGNvbnN0IFZlY3RvcjxBcHBsZVBheUxpbmVJ
dGVtPiYgbGluZUl0ZW1zKCkgY29uc3QgeyByZXR1cm4gbV9saW5lSXRlbXM7IH0KICAgICB2b2lk
IHNldExpbmVJdGVtcyhjb25zdCBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4mIGxpbmVJdGVtcykg
eyBtX2xpbmVJdGVtcyA9IGxpbmVJdGVtczsgfQpAQCAtMTExLDExICsxMTEsNiBAQCBwdWJsaWM6
CiAgICAgY29uc3QgQXBwbGVQYXlMaW5lSXRlbSYgdG90YWwoKSBjb25zdCB7IHJldHVybiBtX3Rv
dGFsOyB9OwogICAgIHZvaWQgc2V0VG90YWwoY29uc3QgQXBwbGVQYXlMaW5lSXRlbSYgdG90YWwp
IHsgbV90b3RhbCA9IHRvdGFsOyB9CiAKLSAgICBzdHJ1Y3QgVG90YWxBbmRMaW5lSXRlbXMgewot
ICAgICAgICBBcHBsZVBheUxpbmVJdGVtIHRvdGFsOwotICAgICAgICBWZWN0b3I8QXBwbGVQYXlM
aW5lSXRlbT4gbGluZUl0ZW1zOwotICAgIH07Ci0KICAgICBjb25zdCBTdHJpbmcmIGFwcGxpY2F0
aW9uRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbGljYXRpb25EYXRhOyB9CiAgICAgdm9pZCBz
ZXRBcHBsaWNhdGlvbkRhdGEoY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvbkRhdGEpIHsgbV9hcHBs
aWNhdGlvbkRhdGEgPSBhcHBsaWNhdGlvbkRhdGE7IH0KIApAQCAtMTUxLDcgKzE0Niw3IEBAIHBy
aXZhdGU6CiAgICAgTWVyY2hhbnRDYXBhYmlsaXRpZXMgbV9tZXJjaGFudENhcGFiaWxpdGllczsK
IAogICAgIFNoaXBwaW5nVHlwZSBtX3NoaXBwaW5nVHlwZSB7IFNoaXBwaW5nVHlwZTo6U2hpcHBp
bmcgfTsKLSAgICBWZWN0b3I8U2hpcHBpbmdNZXRob2Q+IG1fc2hpcHBpbmdNZXRob2RzOworICAg
IFZlY3RvcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiBtX3NoaXBwaW5nTWV0aG9kczsKIAogICAg
IFZlY3RvcjxBcHBsZVBheUxpbmVJdGVtPiBtX2xpbmVJdGVtczsKICAgICBBcHBsZVBheUxpbmVJ
dGVtIG1fdG90YWw7CkBAIC0xNjQsNTEgKzE1OSwxNSBAQCBwcml2YXRlOgogI2lmIEhBVkUoUEFT
U0tJVF9JTlNUQUxMTUVOVFMpCiAgICAgUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbiBt
X2luc3RhbGxtZW50Q29uZmlndXJhdGlvbjsKICNlbmRpZgotfTsKIAotc3RydWN0IFBheW1lbnRF
cnJvciB7Ci0gICAgZW51bSBjbGFzcyBDb2RlIHsKLSAgICAgICAgVW5rbm93biwKLSAgICAgICAg
U2hpcHBpbmdDb250YWN0SW52YWxpZCwKLSAgICAgICAgQmlsbGluZ0NvbnRhY3RJbnZhbGlkLAot
ICAgICAgICBBZGRyZXNzVW5zZXJ2aWNlYWJsZSwKLSAgICB9OwotCi0gICAgZW51bSBjbGFzcyBD
b250YWN0RmllbGQgewotICAgICAgICBQaG9uZU51bWJlciwKLSAgICAgICAgRW1haWxBZGRyZXNz
LAotICAgICAgICBOYW1lLAotICAgICAgICBQaG9uZXRpY05hbWUsCi0gICAgICAgIFBvc3RhbEFk
ZHJlc3MsCi0gICAgICAgIEFkZHJlc3NMaW5lcywKLSAgICAgICAgU3ViTG9jYWxpdHksCi0gICAg
ICAgIExvY2FsaXR5LAotICAgICAgICBQb3N0YWxDb2RlLAotICAgICAgICBTdWJBZG1pbmlzdHJh
dGl2ZUFyZWEsCi0gICAgICAgIEFkbWluaXN0cmF0aXZlQXJlYSwKLSAgICAgICAgQ291bnRyeSwK
LSAgICAgICAgQ291bnRyeUNvZGUsCi0gICAgfTsKLQotICAgIENvZGUgY29kZTsKLSAgICBTdHJp
bmcgbWVzc2FnZTsKLSAgICBPcHRpb25hbDxDb250YWN0RmllbGQ+IGNvbnRhY3RGaWVsZDsKKyNp
ZiBkZWZpbmVkKEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0QWRkaXRpb25zX21lbWJlcnMp
CisgICAgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3RBZGRpdGlvbnNfbWVtYmVycworI2Vu
ZGlmCiB9OwogCiBzdHJ1Y3QgUGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQgewogICAgIFBheW1l
bnRBdXRob3JpemF0aW9uU3RhdHVzIHN0YXR1czsKLSAgICBWZWN0b3I8UGF5bWVudEVycm9yPiBl
cnJvcnM7Ci19OwotCi1zdHJ1Y3QgU2hpcHBpbmdDb250YWN0VXBkYXRlIHsKLSAgICBWZWN0b3I8
UGF5bWVudEVycm9yPiBlcnJvcnM7Ci0KLSAgICBWZWN0b3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVu
dFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kPiBuZXdTaGlwcGluZ01ldGhvZHM7Ci0gICAgQXBwbGVQ
YXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zIG5ld1RvdGFsQW5kTGlu
ZUl0ZW1zOwotfTsKLQotc3RydWN0IFNoaXBwaW5nTWV0aG9kVXBkYXRlIHsKLSAgICBBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXMgbmV3VG90YWxBbmRMaW5l
SXRlbXM7CisgICAgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4gZXJyb3JzOwogfTsKIAog
V0VCQ09SRV9FWFBPUlQgYm9vbCBpc0ZpbmFsU3RhdGVSZXN1bHQoY29uc3QgT3B0aW9uYWw8UGF5
bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+Jik7CkBAIC0yMjcsMzUgKzE4Niw2IEBAIHRlbXBsYXRl
PD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVl
c3Q6OlNoaXBwaW5nVHlwCiAgICAgPjsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFp
dHM8V2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb2RlPiB7Ci0gICAgdXNpbmcgdmFsdWVzID0gRW51
bVZhbHVlczwKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb2RlLAotICAgICAgICBX
ZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU6OlVua25vd24sCi0gICAgICAgIFdlYkNvcmU6OlBh
eW1lbnRFcnJvcjo6Q29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxpZCwKLSAgICAgICAgV2ViQ29y
ZTo6UGF5bWVudEVycm9yOjpDb2RlOjpCaWxsaW5nQ29udGFjdEludmFsaWQsCi0gICAgICAgIFdl
YkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6QWRkcmVzc1Vuc2VydmljZWFibGUKLSAgICA+Owot
fTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpQYXltZW50RXJyb3I6
OkNvbnRhY3RGaWVsZD4gewotICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAg
IFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkLAotICAgICAgICBXZWJDb3JlOjpQ
YXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6UGhvbmVOdW1iZXIsCi0gICAgICAgIFdlYkNvcmU6
OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpFbWFpbEFkZHJlc3MsCi0gICAgICAgIFdlYkNv
cmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpOYW1lLAotICAgICAgICBXZWJDb3JlOjpQ
YXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6UGhvbmV0aWNOYW1lLAotICAgICAgICBXZWJDb3Jl
OjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6UG9zdGFsQWRkcmVzcywKLSAgICAgICAgV2Vi
Q29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OkFkZHJlc3NMaW5lcywKLSAgICAgICAg
V2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlN1YkxvY2FsaXR5LAotICAgICAg
ICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6TG9jYWxpdHksCi0gICAgICAg
IFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpQb3N0YWxDb2RlLAotICAgICAg
ICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6U3ViQWRtaW5pc3RyYXRpdmVB
cmVhLAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVsZDo6QWRtaW5p
c3RyYXRpdmVBcmVhLAotICAgICAgICBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRhY3RGaWVs
ZDo6Q291bnRyeSwKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6
OkNvdW50cnlDb2RlCi0gICAgPjsKLX07Ci0KIH0gLy8gbmFtZXNwYWNlIFdURgogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlw
cGluZ0NvbnRhY3RVcGRhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaAppbmRleCA3MjU5Nzc4ODhjOTZhMmRjZmNiNGM3
ZWEzYjIwODdkOWU3OWI0ODUzLi44NzUyYTAzNDY4ODJjZDJmNTgyYjM5OTBhZjY2MmZkMDQxM2Iz
OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
U2hpcHBpbmdDb250YWN0VXBkYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oCkBAIC0yNywyMCArMjcsNTUgQEAK
IAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKKyNpbmNsdWRlICJBcHBsZVBheURldGFpbHNVcGRh
dGVCYXNlLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlFcnJvci5oIgotI2luY2x1ZGUgIkFwcGxlUGF5
TGluZUl0ZW0uaCIKICNpbmNsdWRlICJBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmgiCisjaW5jbHVk
ZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgQXBwbGVQYXlTaGlw
cGluZ0NvbnRhY3RVcGRhdGUgeworc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRl
IGZpbmFsIDogcHVibGljIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UgewogICAgIFZlY3RvcjxS
ZWZQdHI8QXBwbGVQYXlFcnJvcj4+IGVycm9yczsKIAogICAgIFZlY3RvcjxBcHBsZVBheVNoaXBw
aW5nTWV0aG9kPiBuZXdTaGlwcGluZ01ldGhvZHM7Ci0gICAgQXBwbGVQYXlMaW5lSXRlbSBuZXdU
b3RhbDsKLSAgICBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4gbmV3TGluZUl0ZW1zOworCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5n
Q29udGFjdFVwZGF0ZT4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+Cit2b2lkIEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlOjplbmNv
ZGUoZW5jb2Rlcik7CisgICAgZW5jb2RlciA8PCBlcnJvcnM7CisgICAgZW5jb2RlciA8PCBuZXdT
aGlwcGluZ01ldGhvZHM7CiB9CiAKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxB
cHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4gQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRh
dGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIEFwcGxlUGF5U2hpcHBpbmdDb250
YWN0VXBkYXRlIHJlc3VsdDsKKworICAgIGlmICghcmVzdWx0LmRlY29kZUJhc2UoZGVjb2Rlcikp
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyNkZWZpbmUgREVDT0RFKG5hbWUsIHR5
cGUpIFwKKyAgICBPcHRpb25hbDx0eXBlPiBuYW1lOyBcCisgICAgZGVjb2RlciA+PiBuYW1lOyBc
CisgICAgaWYgKCFuYW1lKSBcCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7IFwKKyAgICBy
ZXN1bHQubmFtZSA9IFdURk1vdmUoKm5hbWUpOyBcCisKKyAgICBERUNPREUoZXJyb3JzLCBWZWN0
b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PikKKyAgICBERUNPREUobmV3U2hpcHBpbmdNZXRob2Rz
LCBWZWN0b3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4pCisKKyN1bmRlZiBERUNPREUKKworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBp
bmdDb250YWN0VXBkYXRlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaWRsCmluZGV4IDA1MmU4MmJmYzExOTU3MWQ2MGUy
ZjMyNzA4NGZmZmRlMjVjNGNlNGUuLmYxMWYzNWJmNjhhNWIzZTYwNGZmZDczZDgxZDRhODA4ZWQ2
OWMxYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaWRsCkBAIC0yNSwxMCArMjUs
OCBAQAogCiBbCiAgICAgQ29uZGl0aW9uYWw9QVBQTEVfUEFZLAotXSBkaWN0aW9uYXJ5IEFwcGxl
UGF5U2hpcHBpbmdDb250YWN0VXBkYXRlIHsKK10gZGljdGlvbmFyeSBBcHBsZVBheVNoaXBwaW5n
Q29udGFjdFVwZGF0ZSA6IEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UgewogICAgIHNlcXVlbmNl
PEFwcGxlUGF5RXJyb3I+IGVycm9yczsKIAogICAgIHNlcXVlbmNlPEFwcGxlUGF5U2hpcHBpbmdN
ZXRob2Q+IG5ld1NoaXBwaW5nTWV0aG9kczsKLSAgICByZXF1aXJlZCBBcHBsZVBheUxpbmVJdGVt
IG5ld1RvdGFsOwotICAgIHNlcXVlbmNlPEFwcGxlUGF5TGluZUl0ZW0+IG5ld0xpbmVJdGVtczsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
U2hpcHBpbmdNZXRob2QuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZC5oCmluZGV4IDU5MzUyMWFmNDZiYzFkNTJjZWY0ZWY5MmU2ZTU5Zjgw
MDgyYzA1OTMuLmUzOTQyYTE4YmQyNzFjMTI0ZjJhNGVkMTM2NWQ1YjM5YzllNDY1MjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01l
dGhvZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlw
cGluZ01ldGhvZC5oCkBAIC0zNiw4ICszNiwzOSBAQCBzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ01l
dGhvZCB7CiAgICAgU3RyaW5nIGRldGFpbDsKICAgICBTdHJpbmcgYW1vdW50OwogICAgIFN0cmlu
ZyBpZGVudGlmaWVyOworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUo
RW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRp
b25hbDxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQXBwbGVQYXlTaGlwcGluZ01ldGhvZDo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBsYWJlbDsKKyAgICBl
bmNvZGVyIDw8IGRldGFpbDsKKyAgICBlbmNvZGVyIDw8IGFtb3VudDsKKyAgICBlbmNvZGVyIDw8
IGlkZW50aWZpZXI7CiB9CiAKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxBcHBs
ZVBheVNoaXBwaW5nTWV0aG9kPiBBcHBsZVBheVNoaXBwaW5nTWV0aG9kOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKK3sKKyNkZWZpbmUgREVDT0RFKG5hbWUsIHR5cGUpIFwKKyAgICBPcHRpb25h
bDx0eXBlPiBuYW1lOyBcCisgICAgZGVjb2RlciA+PiBuYW1lOyBcCisgICAgaWYgKCFuYW1lKSBc
CisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7IFwKKworICAgIERFQ09ERShsYWJlbCwgU3Ry
aW5nKQorICAgIERFQ09ERShkZXRhaWwsIFN0cmluZykKKyAgICBERUNPREUoYW1vdW50LCBTdHJp
bmcpCisgICAgREVDT0RFKGlkZW50aWZpZXIsIFN0cmluZykKKworI3VuZGVmIERFQ09ERQorCisg
ICAgcmV0dXJuIHt7IFdURk1vdmUoKmxhYmVsKSwgV1RGTW92ZSgqZGV0YWlsKSwgV1RGTW92ZSgq
YW1vdW50KSwgV1RGTW92ZSgqaWRlbnRpZmllcikgfX07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQu
Y3BwCmluZGV4IGJkNzY1ZjhjNWY2ZTQzY2M1MzI4MGJjZDc0NzA0YzlhOTg0ODJlYzYuLjk1Nzc2
YTQ0OGY4NWIyN2FmOTQ1NjBiZWQ5OGZjZWI3MTM5NjQ0ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZl
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlw
cGluZ01ldGhvZFNlbGVjdGVkRXZlbnQuY3BwCkBAIC0zNSwyMCArMzUsOSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChBcHBsZVBheVNoaXBwaW5n
TWV0aG9kU2VsZWN0ZWRFdmVudCk7CiAKLXN0YXRpYyBpbmxpbmUgQXBwbGVQYXlTaGlwcGluZ01l
dGhvZCBjb252ZXJ0KGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGlu
Z01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCi17Ci0gICAgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCBj
b252ZXJ0ZWRNZXRob2Q7Ci0gICAgY29udmVydGVkTWV0aG9kLmxhYmVsID0gc2hpcHBpbmdNZXRo
b2QubGFiZWw7Ci0gICAgY29udmVydGVkTWV0aG9kLmRldGFpbCA9IHNoaXBwaW5nTWV0aG9kLmRl
dGFpbDsKLSAgICBjb252ZXJ0ZWRNZXRob2QuaWRlbnRpZmllciA9IHNoaXBwaW5nTWV0aG9kLmlk
ZW50aWZpZXI7Ci0gICAgY29udmVydGVkTWV0aG9kLmFtb3VudCA9IHNoaXBwaW5nTWV0aG9kLmFt
b3VudDsKLQotICAgIHJldHVybiBjb252ZXJ0ZWRNZXRob2Q7IAotfQotCi1BcHBsZVBheVNoaXBw
aW5nTWV0aG9kU2VsZWN0ZWRFdmVudDo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZl
bnQoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3Q6OlNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKK0FwcGxlUGF5U2hpcHBpbmdN
ZXRob2RTZWxlY3RlZEV2ZW50OjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudChj
b25zdCBBdG9tU3RyaW5nJiB0eXBlLCBjb25zdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kJiBzaGlw
cGluZ01ldGhvZCkKICAgICA6IEV2ZW50KHR5cGUsIENhbkJ1YmJsZTo6Tm8sIElzQ2FuY2VsYWJs
ZTo6Tm8pCi0gICAgLCBtX3NoaXBwaW5nTWV0aG9kKGNvbnZlcnQoc2hpcHBpbmdNZXRob2QpKQor
ICAgICwgbV9zaGlwcGluZ01ldGhvZChzaGlwcGluZ01ldGhvZCkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9k
U2VsZWN0ZWRFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudC5oCmluZGV4IGNhMzM5MDczMjY5Yjk2ZmQ2NTYz
MDA3ZWY1MWE1MTE1NzhiNzdhYTguLmY2MGEyYTVmM2I0ZmExMjBmNWQ3OWY0Yjk4YTIwNThjNGM2
YjFmNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50LmgKQEAgLTI3
LDcgKzI3LDYgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKLSNpbmNsdWRlICJBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdC5oIgogI2luY2x1ZGUgIkFwcGxlUGF5U2hpcHBpbmdNZXRo
b2QuaCIKICNpbmNsdWRlICJFdmVudC5oIgogCkBAIC0zNiw3ICszNSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIEFwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50IGZpbmFs
IDogcHVibGljIEV2ZW50IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEFwcGxlUGF5U2hp
cHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEFwcGxl
UGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYg
dHlwZSwgY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9k
JiBzaGlwcGluZ01ldGhvZCkKKyAgICBzdGF0aWMgUmVmPEFwcGxlUGF5U2hpcHBpbmdNZXRob2RT
ZWxlY3RlZEV2ZW50PiBjcmVhdGUoY29uc3QgQXRvbVN0cmluZyYgdHlwZSwgY29uc3QgQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCiAgICAgewogICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBBcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudCh0eXBlLCBz
aGlwcGluZ01ldGhvZCkpOwogICAgIH0KQEAgLTQ2LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIGNv
bnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKCkgY29uc3QgeyByZXR1
cm4gbV9zaGlwcGluZ01ldGhvZDsgfQogCiBwcml2YXRlOgotICAgIEFwcGxlUGF5U2hpcHBpbmdN
ZXRob2RTZWxlY3RlZEV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEFwcGxlUGF5
U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpOworICAgIEFwcGxlUGF5U2hp
cHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50KGNvbnN0IEF0b21TdHJpbmcmIHR5cGUsIGNvbnN0IEFw
cGxlUGF5U2hpcHBpbmdNZXRob2QmKTsKIAogICAgIC8vIEV2ZW50LgogICAgIEV2ZW50SW50ZXJm
YWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVw
ZGF0ZS5oCmluZGV4IGRhNmQ5ZDQ4ZGYwMzY5ZjFlOTdhODU0MzQ5NThiZjA0M2QyMmY4NWYuLjYz
OWJlMGQyYmI5MmExMTQzNjdiYmEzNmI5ODdiOWM2NmRkOTFmNTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01l
dGhvZFVwZGF0ZS5oCkBAIC0yNywxNSArMjcsMzIgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkp
CiAKLSNpbmNsdWRlICJBcHBsZVBheUxpbmVJdGVtLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlEZXRh
aWxzVXBkYXRlQmFzZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kVXBkYXRlIHsKLSAgICBBcHBsZVBheUxpbmVJdGVtIG5ld1RvdGFsOwot
ICAgIFZlY3RvcjxBcHBsZVBheUxpbmVJdGVtPiBuZXdMaW5lSXRlbXM7CitzdHJ1Y3QgQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZFVwZGF0ZSBmaW5hbCA6IHB1YmxpYyBBcHBsZVBheURldGFpbHNVcGRh
dGVCYXNlIHsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPEFw
cGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCit0ZW1w
bGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlOjpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBBcHBsZVBheURldGFpbHNVcGRh
dGVCYXNlOjplbmNvZGUoZW5jb2Rlcik7CiB9CiAKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitP
cHRpb25hbDxBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiBBcHBsZVBheVNoaXBwaW5nTWV0
aG9kVXBkYXRlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBBcHBsZVBheVNoaXBw
aW5nTWV0aG9kVXBkYXRlIHJlc3VsdDsKKworICAgIGlmICghcmVzdWx0LmRlY29kZUJhc2UoZGVj
b2RlcikpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRl
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTaGlwcGluZ01l
dGhvZFVwZGF0ZS5pZGwKaW5kZXggODQ1OWRhOGQ3NWQ0M2VhODc5MjA5NDUwZGU2YjcwZjY5Yzgx
ZmJhYi4uMmU1NDRjNTA3OWZhYWYwYzA4OWVlMmQyMTg0ZjllYzYzYzM1ZGIwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNoaXBwaW5nTWV0aG9k
VXBkYXRlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
U2hpcHBpbmdNZXRob2RVcGRhdGUuaWRsCkBAIC0yNSw3ICsyNSw1IEBACiAKIFsKICAgICBDb25k
aXRpb25hbD1BUFBMRV9QQVksCi1dIGRpY3Rpb25hcnkgQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVw
ZGF0ZSB7Ci0gICAgcmVxdWlyZWQgQXBwbGVQYXlMaW5lSXRlbSBuZXdUb3RhbDsKLSAgICBzZXF1
ZW5jZTxBcHBsZVBheUxpbmVJdGVtPiBuZXdMaW5lSXRlbXM7CitdIGRpY3Rpb25hcnkgQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZFVwZGF0ZSA6IEFwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UgewogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3Jk
aW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3Jk
aW5hdG9yLmNwcAppbmRleCA2YjBkNDQ0NjYwNDZjMWQ0MDY3ODBmMWUxODUwMjQwODEyOTQ0MTEz
Li4zNWZmMTIzOGJiZTdlY2ZjYzVmMDlmZjE4Njc2ZmFiMGIxNGQ0ZmE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGluYXRvci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3IuY3Bw
CkBAIC0yOCw2ICsyOCwxMCBAQAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAorI2luY2x1ZGUg
IkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oIgorI2luY2x1ZGUgIkFwcGxlUGF5U2hpcHBp
bmdDb250YWN0VXBkYXRlLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oIgor
I2luY2x1ZGUgIkFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkxpbmtJY29uQ29sbGVjdG9yLmgiCiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgpAQCAtMTI4LDIxICsxMzIsMjEgQEAgdm9pZCBQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBs
ZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFBheW1lbnRNZXJjaGFudFNlc3Npb24KICAgICBt
X2NsaWVudC5jb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihwYXltZW50TWVyY2hhbnRTZXNzaW9u
KTsKIH0KIAotdm9pZCBQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RT
ZWxlY3Rpb24oT3B0aW9uYWw8U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYgdXBkYXRlKQordm9pZCBQ
YXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9u
YWw8QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCiB7CiAgICAgQVNTRVJU
KG1fYWN0aXZlU2Vzc2lvbik7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiY29tcGxldGVT
aGlwcGluZ01ldGhvZFNlbGVjdGlvbigpIik7CiAgICAgbV9jbGllbnQuY29tcGxldGVTaGlwcGlu
Z01ldGhvZFNlbGVjdGlvbihXVEZNb3ZlKHVwZGF0ZSkpOwogfQogCi12b2lkIFBheW1lbnRDb29y
ZGluYXRvcjo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8U2hpcHBp
bmdDb250YWN0VXBkYXRlPiYmIHVwZGF0ZSkKK3ZvaWQgUGF5bWVudENvb3JkaW5hdG9yOjpjb21w
bGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nQ29u
dGFjdFVwZGF0ZT4mJiB1cGRhdGUpCiB7CiAgICAgQVNTRVJUKG1fYWN0aXZlU2Vzc2lvbik7CiAg
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rp
b24oKSIpOwogICAgIG1fY2xpZW50LmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKFdU
Rk1vdmUodXBkYXRlKSk7CiB9CiAKLXZvaWQgUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVBh
eW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8UGF5bWVudE1ldGhvZFVwZGF0ZT4mJiB1cGRh
dGUpCit2b2lkIFBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0
aW9uKE9wdGlvbmFsPEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCiB7CiAg
ICAgQVNTRVJUKG1fYWN0aXZlU2Vzc2lvbik7CiAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKCkiKTsKQEAgLTIxMSw3ICsyMTUsNyBAQCB2
b2lkIFBheW1lbnRDb29yZGluYXRvcjo6ZGlkU2VsZWN0UGF5bWVudE1ldGhvZChjb25zdCBQYXlt
ZW50TWV0aG9kJiBwYXltZW50TWV0aAogICAgIG1fYWN0aXZlU2Vzc2lvbi0+ZGlkU2VsZWN0UGF5
bWVudE1ldGhvZChwYXltZW50TWV0aG9kKTsKIH0KIAotdm9pZCBQYXltZW50Q29vcmRpbmF0b3I6
OmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0OjpTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCit2b2lkIFBheW1lbnRDb29yZGlu
YXRvcjo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlTaGlwcGluZ01ldGhv
ZCYgc2hpcHBpbmdNZXRob2QpCiB7CiAgICAgaWYgKCFtX2FjdGl2ZVNlc3Npb24pIHsKICAgICAg
ICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHRoZSBwYXltZW50IGhhcyBiZWVuIGFib3J0ZWQgYWxy
ZWFkeS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVu
dENvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRD
b29yZGluYXRvci5oCmluZGV4IDdiZDRhMjVmMzllMzdmNGNkNGQ0MjA5YzBmY2E0M2Q3ODM3ZDdh
ZDAuLjY0NWM3OTYzNjVlN2U4NmJjNmYxZmY1ZmJhMDQzZWRhODAwMDVkMGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3IuaApA
QCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
LmgiCiAjaW5jbHVkZSA8d3RmL0V4cGVjdGVkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+
CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDEsMTUgKzQyLDE2IEBAIGNsYXNzIFBheW1lbnRDb29y
ZGluYXRvckNsaWVudDsKIGNsYXNzIFBheW1lbnRDb250YWN0OwogY2xhc3MgUGF5bWVudE1lcmNo
YW50U2Vzc2lvbjsKIGNsYXNzIFBheW1lbnRNZXRob2Q7Ci1jbGFzcyBQYXltZW50TWV0aG9kVXBk
YXRlOwogY2xhc3MgUGF5bWVudFNlc3Npb247CiBjbGFzcyBQYXltZW50U2Vzc2lvbkVycm9yOwog
ZW51bSBjbGFzcyBQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czsKK3N0cnVjdCBBcHBsZVBheVBh
eW1lbnRNZXRob2RVcGRhdGU7CiBzdHJ1Y3QgQXBwbGVQYXlTZXR1cENvbmZpZ3VyYXRpb247Citz
dHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU7CitzdHJ1Y3QgQXBwbGVQYXlTaGlw
cGluZ01ldGhvZDsKK3N0cnVjdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlOwogc3RydWN0
IEV4Y2VwdGlvbkRldGFpbHM7CiBzdHJ1Y3QgUGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ7Ci1z
dHJ1Y3QgU2hpcHBpbmdDb250YWN0VXBkYXRlOwotc3RydWN0IFNoaXBwaW5nTWV0aG9kVXBkYXRl
OwogCiBjbGFzcyBQYXltZW50Q29vcmRpbmF0b3IgOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UGF5
bWVudENvb3JkaW5hdG9yPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC02OCw5
ICs3MCw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgYmVnaW5QYXltZW50U2Vzc2lvbihEb2N1bWVu
dCYsIFBheW1lbnRTZXNzaW9uJiwgY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Qm
KTsKICAgICB2b2lkIGNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFBheW1lbnRNZXJj
aGFudFNlc3Npb24mKTsKLSAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24o
T3B0aW9uYWw8U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYpOwotICAgIHZvaWQgY29tcGxldGVTaGlw
cGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKTsK
LSAgICB2b2lkIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxQYXltZW50
TWV0aG9kVXBkYXRlPiYmKTsKKyAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rp
b24oT3B0aW9uYWw8QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJik7CisgICAgdm9pZCBj
b21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5n
Q29udGFjdFVwZGF0ZT4mJik7CisgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rp
b24oT3B0aW9uYWw8QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlPiYmKTsKICAgICB2b2lkIGNv
bXBsZXRlUGF5bWVudFNlc3Npb24oT3B0aW9uYWw8UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+
JiYpOwogICAgIHZvaWQgYWJvcnRQYXltZW50U2Vzc2lvbigpOwogICAgIHZvaWQgY2FuY2VsUGF5
bWVudFNlc3Npb24oKTsKQEAgLTc4LDcgKzgwLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgdmFsaWRhdGVNZXJjaGFudChVUkwmJiB2YWxpZGF0aW9uVVJMKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGRpZEF1dGhvcml6ZVBheW1lbnQoY29uc3QgUGF5bWVudCYpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkU2VsZWN0UGF5bWVudE1ldGhvZChjb25zdCBQYXltZW50
TWV0aG9kJik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRTZWxlY3RTaGlwcGluZ01ldGhv
ZChjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IEFw
cGxlUGF5U2hpcHBpbmdNZXRob2QmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZFNlbGVj
dFNoaXBwaW5nQ29udGFjdChjb25zdCBQYXltZW50Q29udGFjdCYpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24oUGF5bWVudFNlc3Npb25FcnJvciYmKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29v
cmRpbmF0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVu
dENvb3JkaW5hdG9yQ2xpZW50LmgKaW5kZXggZDZlMjZmYzk3NDA0NTc0YmMxYzIwMTk0OTIxNWQx
ZWJmNGY3YTU1Yy4uMTZlZGM4M2VlZWIyZjE2Y2U5YWJkOWMwYjBhODVkMWE1M2NmMWIyMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0
b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRD
b29yZGluYXRvckNsaWVudC5oCkBAIC0zMiwxNiArMzIsMTcgQEAKICNpbmNsdWRlIDx3dGYvQ29t
cGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0
Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgUGF5bWVudE1lcmNoYW50U2Vzc2lvbjsK
LWNsYXNzIFBheW1lbnRNZXRob2RVcGRhdGU7CitzdHJ1Y3QgQXBwbGVQYXlQYXltZW50TWV0aG9k
VXBkYXRlOwogc3RydWN0IEFwcGxlUGF5U2V0dXBDb25maWd1cmF0aW9uOworc3RydWN0IEFwcGxl
UGF5U2hpcHBpbmdDb250YWN0VXBkYXRlOworc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2RV
cGRhdGU7CiBzdHJ1Y3QgUGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ7Ci1zdHJ1Y3QgU2hpcHBp
bmdDb250YWN0VXBkYXRlOwotc3RydWN0IFNoaXBwaW5nTWV0aG9kVXBkYXRlOwogCiBjbGFzcyBQ
YXltZW50Q29vcmRpbmF0b3JDbGllbnQgewogcHVibGljOgpAQCAtNTQsOSArNTUsOSBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvd1BheW1lbnRVSShjb25zdCBVUkwmIG9yaWdpbmF0
aW5nVVJMLCBjb25zdCBWZWN0b3I8VVJMPiYgbGlua0ljb25VUkxzLCBjb25zdCBBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY29tcGxldGVNZXJj
aGFudFZhbGlkYXRpb24oY29uc3QgUGF5bWVudE1lcmNoYW50U2Vzc2lvbiYpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxTaGlw
cGluZ01ldGhvZFVwZGF0ZT4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjb21wbGV0ZVNoaXBw
aW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlv
bmFsPFBheW1lbnRNZXRob2RVcGRhdGU+JiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcGxl
dGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nTWV0aG9k
VXBkYXRlPiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbXBsZXRlU2hpcHBpbmdDb250YWN0
U2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25h
bDxBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
Y29tcGxldGVQYXltZW50U2Vzc2lvbihPcHRpb25hbDxQYXltZW50QXV0aG9yaXphdGlvblJlc3Vs
dD4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhYm9ydFBheW1lbnRTZXNzaW9uKCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxQYXltZW50U2Vzc2lvbigpID0gMDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudEhlYWRlcnMuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudEhlYWRlcnMuaAppbmRleCBjNTU1MTE3
OWVkMWYwZDI0NTA4ZTJhNDRlYmM1MzcyZTc5YmZjNTEzLi4yZGRiMjU5YzU4ZDdkMjgzYWYzYzAw
ZmVlZmIwOTlkYTgxMTRkY2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L1BheW1lbnRIZWFkZXJzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS9QYXltZW50SGVhZGVycy5oCkBAIC0yNSwxMSArMjUsMTMgQEAKIAogI3ByYWdtYSBvbmNl
CiAKKyNpbmNsdWRlICJBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaCIKICNpbmNsdWRlICJB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oIgorI2luY2x1ZGUgIkFwcGxlUGF5U2hpcHBp
bmdDb250YWN0VXBkYXRlLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0
ZS5oIgogI2luY2x1ZGUgIlBheW1lbnQuaCIKICNpbmNsdWRlICJQYXltZW50Q29udGFjdC5oIgog
I2luY2x1ZGUgIlBheW1lbnRNZXJjaGFudFNlc3Npb24uaCIKICNpbmNsdWRlICJQYXltZW50TWV0
aG9kLmgiCi0jaW5jbHVkZSAiUGF5bWVudE1ldGhvZFVwZGF0ZS5oIgogI2luY2x1ZGUgIlBheW1l
bnRTZXNzaW9uRXJyb3IuaCIKICNpbmNsdWRlICJQYXltZW50U3VtbWFyeUl0ZW1zLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRNZXRob2RVcGRh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudE1ldGhvZFVwZGF0
ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkODQwZTE2M2Q1MDViMDBjMjE5YTE2
ZmMzOThmNWJmMzg0MzhmMzhhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudE1ldGhvZFVw
ZGF0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFn
bWEgb25jZQotCi0jaWYgRU5BQkxFKEFQUExFX1BBWSkKLQotI2luY2x1ZGUgIkFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0LmgiCi0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgotCi1PQkpD
X0NMQVNTIFBLUGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlOwotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLWNsYXNzIFdFQkNPUkVfRVhQT1JUIFBheW1lbnRNZXRob2RVcGRhdGUgewot
cHVibGljOgotICAgIHVzaW5nIFRvdGFsQW5kTGluZUl0ZW1zID0gQXBwbGVQYXlTZXNzaW9uUGF5
bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zOwotCi0gICAgUGF5bWVudE1ldGhvZFVwZGF0
ZShBcHBsZVBheUxpbmVJdGVtJiYgdG90YWwsIFZlY3RvcjxBcHBsZVBheUxpbmVJdGVtPiYmKTsK
LSAgICBleHBsaWNpdCBQYXltZW50TWV0aG9kVXBkYXRlKFJldGFpblB0cjxQS1BheW1lbnRSZXF1
ZXN0UGF5bWVudE1ldGhvZFVwZGF0ZT4mJik7Ci0gICAgZXhwbGljaXQgUGF5bWVudE1ldGhvZFVw
ZGF0ZShUb3RhbEFuZExpbmVJdGVtcyYmKTsKLQotICAgIGNvbnN0IFRvdGFsQW5kTGluZUl0ZW1z
JiB0b3RhbEFuZExpbmVJdGVtcygpIGNvbnN0OwotICAgIFBLUGF5bWVudFJlcXVlc3RQYXltZW50
TWV0aG9kVXBkYXRlICpwbGF0Zm9ybVVwZGF0ZSgpIGNvbnN0OwotCi0jaWYgSEFWRShQQVNTS0lU
X0lOU1RBTExNRU5UUykKLSAgICB2b2lkIHNldEluc3RhbGxtZW50R3JvdXBJZGVudGlmaWVyKGNv
bnN0IFN0cmluZyYpOwotI2VuZGlmCi0KLXByaXZhdGU6Ci0gICAgT3B0aW9uYWw8VG90YWxBbmRM
aW5lSXRlbXM+IG1fdG90YWxBbmRMaW5lSXRlbXM7Ci0gICAgUmV0YWluUHRyPFBLUGF5bWVudFJl
cXVlc3RQYXltZW50TWV0aG9kVXBkYXRlPiBtX3BsYXRmb3JtVXBkYXRlOwotfTsKLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0
b3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFs
aWRhdG9yLm1tCmluZGV4IGVmOWY2ZTgyNDg0NjVmZTNhZmIzYTYzZDZiYmYyOGY3MGU4MWQzYmMu
LmQwMGM4OGM4Mzg4ZDA0NGJhZDA1YTg2NWQ0ZGVlMTM5OGZjZjAwNDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlk
YXRvci5tbQpAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKICNpbXBv
cnQgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgiCisjaW1wb3J0ICJBcHBsZVBheVNo
aXBwaW5nTWV0aG9kLmgiCiAjaW1wb3J0IDx1bmljb2RlL3VjdXJyLmg+CiAjaW1wb3J0IDx1bmlj
b2RlL3Vsb2MuaD4KIApAQCAtMzgsOCArMzksOCBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4g
dmFsaWRhdGVDb3VudHJ5Q29kZShjb25zdCBTdHJpbmcmKTsKIHN0YXRpYyBFeGNlcHRpb25Pcjx2
b2lkPiB2YWxpZGF0ZUN1cnJlbmN5Q29kZShjb25zdCBTdHJpbmcmKTsKIHN0YXRpYyBFeGNlcHRp
b25Pcjx2b2lkPiB2YWxpZGF0ZU1lcmNoYW50Q2FwYWJpbGl0aWVzKGNvbnN0IEFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0OjpNZXJjaGFudENhcGFiaWxpdGllcyYpOwogc3RhdGljIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHZhbGlkYXRlU3VwcG9ydGVkTmV0d29ya3MoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mKTsKLXN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kcyhj
b25zdCBWZWN0b3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9k
PiYpOwotc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlU2hpcHBpbmdNZXRob2QoY29u
c3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJik7CitzdGF0
aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVTaGlwcGluZ01ldGhvZHMoY29uc3QgVmVjdG9y
PEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+Jik7CitzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFs
aWRhdGVTaGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kJik7CiAKIEV4
Y2VwdGlvbk9yPHZvaWQ+IFBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yOjp2YWxpZGF0ZShjb25zdCBB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYgcGF5bWVudFJlcXVlc3QpCiB7CkBAIC0xNDEs
NyArMTQyLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlU3VwcG9ydGVkTmV0
d29ya3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN1cHBvcnQKICAgICByZXR1cm4geyB9OwogfQog
Ci1zdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVTaGlwcGluZ01ldGhvZChjb25zdCBB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0
aG9kKQorc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlU2hpcHBpbmdNZXRob2QoY29u
c3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCiB7CiAgICAgTlNEZWNp
bWFsTnVtYmVyICphbW91bnQgPSBbTlNEZWNpbWFsTnVtYmVyIGRlY2ltYWxOdW1iZXJXaXRoU3Ry
aW5nOnNoaXBwaW5nTWV0aG9kLmFtb3VudCBsb2NhbGU6QHsgTlNMb2NhbGVEZWNpbWFsU2VwYXJh
dG9yIDogQCIuIiB9XTsKICAgICBpZiAoYW1vdW50LmludGVnZXJWYWx1ZSA8IDApCkBAIC0xNTAs
NyArMTUxLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlU2hpcHBpbmdNZXRo
b2QoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXUKICAgICByZXR1cm4geyB9OwogfQog
Ci1zdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVTaGlwcGluZ01ldGhvZHMoY29uc3Qg
VmVjdG9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4mIHNo
aXBwaW5nTWV0aG9kcykKK3N0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5n
TWV0aG9kcyhjb25zdCBWZWN0b3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4mIHNoaXBwaW5nTWV0
aG9kcykKIHsKICAgICBmb3IgKGNvbnN0IGF1dG8mIHNoaXBwaW5nTWV0aG9kIDogc2hpcHBpbmdN
ZXRob2RzKSB7CiAgICAgICAgIGF1dG8gdmFsaWRhdGVkU2hpcHBpbmdNZXRob2QgPSB2YWxpZGF0
ZVNoaXBwaW5nTWV0aG9kKHNoaXBwaW5nTWV0aG9kKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNlc3Npb24uaAppbmRleCBjZTVjZjUzOThlYWIxYzFhYzEx
ZWY3YzAyMTJiMjliMzdjMjY3MDMyLi5mNWRmZmQwZWVjMTJhNmRjMDc1YjBlNWQ2ZTM4MDIwZjI5
NmY2MTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1l
bnRTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50
U2Vzc2lvbi5oCkBAIC0yNyw3ICsyNyw2IEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCi0j
aW5jbHVkZSAiQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKICNpbmNsdWRlICJFeGNl
cHRpb25Pci5oIgogI2luY2x1ZGUgIlBheW1lbnRTZXNzaW9uQmFzZS5oIgogCkBAIC0zOSw2ICsz
OCw3IEBAIGNsYXNzIFBheW1lbnRDb250YWN0OwogY2xhc3MgUGF5bWVudE1ldGhvZDsKIGNsYXNz
IFBheW1lbnRTZXNzaW9uRXJyb3I7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Oworc3Ry
dWN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q7CiAKIGNsYXNzIFBheW1lbnRTZXNzaW9uIDogcHVi
bGljIHZpcnR1YWwgUGF5bWVudFNlc3Npb25CYXNlIHsKIHB1YmxpYzoKQEAgLTQ4LDcgKzQ4LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdW5zaWduZWQgdmVyc2lvbigpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgdmFsaWRhdGVNZXJjaGFudChVUkwmJikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBkaWRBdXRob3JpemVQYXltZW50KGNvbnN0IFBheW1lbnQmKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkU2Vs
ZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkU2VsZWN0U2hpcHBpbmdDb250YWN0KGNvbnN0IFBheW1lbnRDb250
YWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0
IFBheW1lbnRNZXRob2QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbFBheW1lbnRT
ZXNzaW9uKFBheW1lbnRTZXNzaW9uRXJyb3ImJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U3VtbWFyeUl0ZW1zLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTdW1tYXJ5SXRlbXMuaAppbmRleCBmZmY4NDRk
Nzc5NWIzOTVkZWExMjAxYzEzNzA2ZmU3M2Q5NmY4ZjlhLi4yYmQzZWVjOTM4MGVjMzE1OTc1OTMx
OTA4OWFhOThmMzgyNmU1NmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L1BheW1lbnRTdW1tYXJ5SXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L1BheW1lbnRTdW1tYXJ5SXRlbXMuaApAQCAtMjcsMTMgKzI3LDEyIEBACiAKICNp
ZiBFTkFCTEUoQVBQTEVfUEFZKQogCi0jaW5jbHVkZSAiQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3QuaCIKLQogT0JKQ19DTEFTUyBOU0FycmF5OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LVdFQkNPUkVfRVhQT1JUIE5TQXJyYXkgKnBsYXRmb3JtU3VtbWFyeUl0ZW1zKGNvbnN0IEFwcGxl
UGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcyYpOworc3RydWN0IEFw
cGxlUGF5TGluZUl0ZW07CisKIFdFQkNPUkVfRVhQT1JUIE5TQXJyYXkgKnBsYXRmb3JtU3VtbWFy
eUl0ZW1zKGNvbnN0IEFwcGxlUGF5TGluZUl0ZW0mIHRvdGFsLCBjb25zdCBWZWN0b3I8QXBwbGVQ
YXlMaW5lSXRlbT4mKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50TWV0aG9kVXBkYXRlQ29j
b2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRNZXRo
b2RVcGRhdGVDb2NvYS5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTY0ZDExYjZk
MDc2OTdhOWQwOTU5NTY1YzZmYzFkNjg3OGZhYTUwYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L2Nv
Y29hL1BheW1lbnRNZXRob2RVcGRhdGVDb2NvYS5tbQorKysgL2Rldi9udWxsCkBAIC0xLDcxICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIlBheW1lbnRN
ZXRob2RVcGRhdGUuaCIKLQotI2lmIEVOQUJMRShBUFBMRV9QQVkpCi0KLSNpbXBvcnQgIlBheW1l
bnRTdW1tYXJ5SXRlbXMuaCIKLSNpbXBvcnQgPHBhbC9jb2NvYS9QYXNzS2l0U29mdExpbmsuaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1QYXltZW50TWV0aG9kVXBkYXRlOjpQYXltZW50TWV0
aG9kVXBkYXRlKEFwcGxlUGF5TGluZUl0ZW0mJiB0b3RhbCwgVmVjdG9yPEFwcGxlUGF5TGluZUl0
ZW0+JiYgbGluZUl0ZW1zKQotICAgIDogbV90b3RhbEFuZExpbmVJdGVtcyB7IHsgV1RGTW92ZSh0
b3RhbCksIFdURk1vdmUobGluZUl0ZW1zKSB9IH0KLSAgICAsIG1fcGxhdGZvcm1VcGRhdGUgeyBh
ZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXltZW50UmVxdWVzdFBheW1lbnRNZXRob2RVcGRhdGVJbnN0
YW5jZSgpIGluaXRXaXRoUGF5bWVudFN1bW1hcnlJdGVtczpwbGF0Zm9ybVN1bW1hcnlJdGVtcygq
bV90b3RhbEFuZExpbmVJdGVtcyldKSB9Ci17Ci19Ci0KLVBheW1lbnRNZXRob2RVcGRhdGU6OlBh
eW1lbnRNZXRob2RVcGRhdGUoUmV0YWluUHRyPFBLUGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9k
VXBkYXRlPiYmIHBsYXRmb3JtVXBkYXRlKQotICAgIDogbV9wbGF0Zm9ybVVwZGF0ZSB7IFdURk1v
dmUocGxhdGZvcm1VcGRhdGUpIH0KLXsKLX0KLQotUGF5bWVudE1ldGhvZFVwZGF0ZTo6UGF5bWVu
dE1ldGhvZFVwZGF0ZShUb3RhbEFuZExpbmVJdGVtcyYmIHRvdGFsQW5kTGluZUl0ZW1zKQotICAg
IDogUGF5bWVudE1ldGhvZFVwZGF0ZSB7IFdURk1vdmUodG90YWxBbmRMaW5lSXRlbXMudG90YWwp
LCBXVEZNb3ZlKHRvdGFsQW5kTGluZUl0ZW1zLmxpbmVJdGVtcykgfQotewotfQotCi1jb25zdCBQ
YXltZW50TWV0aG9kVXBkYXRlOjpUb3RhbEFuZExpbmVJdGVtcyYgUGF5bWVudE1ldGhvZFVwZGF0
ZTo6dG90YWxBbmRMaW5lSXRlbXMoKSBjb25zdAotewotICAgIHJldHVybiAqbV90b3RhbEFuZExp
bmVJdGVtczsKLX0KLQotUEtQYXltZW50UmVxdWVzdFBheW1lbnRNZXRob2RVcGRhdGUgKlBheW1l
bnRNZXRob2RVcGRhdGU6OnBsYXRmb3JtVXBkYXRlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9w
bGF0Zm9ybVVwZGF0ZS5nZXQoKTsKLX0KLQotI2lmIEhBVkUoUEFTU0tJVF9JTlNUQUxMTUVOVFMp
Ci12b2lkIFBheW1lbnRNZXRob2RVcGRhdGU6OnNldEluc3RhbGxtZW50R3JvdXBJZGVudGlmaWVy
KGNvbnN0IFN0cmluZyYgaW5zdGFsbG1lbnRHcm91cElkZW50aWZpZXIpCi17Ci0gICAgW21fcGxh
dGZvcm1VcGRhdGUgc2V0SW5zdGFsbG1lbnRHcm91cElkZW50aWZpZXI6aW5zdGFsbG1lbnRHcm91
cElkZW50aWZpZXJdOwotfQotI2VuZGlmCi0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIEVOQUJMRShBUFBMRV9QQVkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRTdW1tYXJ5SXRlbXNDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudFN1bW1hcnlJdGVtc0NvY29hLm1t
CmluZGV4IGU3OTlhOWNjZDk1MWRiMzAzYmE2MjcwY2E5MzI0MWMwZDg0NzQ0NTAuLjExZWRiMGI0
OTZkZDc5MDNmMGZiNWEyYzYyZTZlZjgyMWFjYzQyZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudFN1bW1hcnlJdGVtc0NvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudFN1bW1hcnlJ
dGVtc0NvY29hLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQog
CisjaW1wb3J0ICJBcHBsZVBheUxpbmVJdGVtLmgiCiAjaW1wb3J0IDxwYWwvY29jb2EvUGFzc0tp
dFNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTYwLDExICs2MSw2IEBAIHN0
YXRpYyBQS1BheW1lbnRTdW1tYXJ5SXRlbSAqdG9QS1BheW1lbnRTdW1tYXJ5SXRlbShjb25zdCBB
cHBsZVBheUxpbmVJdGVtJiBsaW5lCiB9CiAjZW5kaWYKIAotTlNBcnJheSAqcGxhdGZvcm1TdW1t
YXJ5SXRlbXMoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGlu
ZUl0ZW1zJiB0b3RhbEFuZExpbmVJdGVtcykKLXsKLSAgICByZXR1cm4gcGxhdGZvcm1TdW1tYXJ5
SXRlbXModG90YWxBbmRMaW5lSXRlbXMudG90YWwsIHRvdGFsQW5kTGluZUl0ZW1zLmxpbmVJdGVt
cyk7Ci19Ci0KIE5TQXJyYXkgKnBsYXRmb3JtU3VtbWFyeUl0ZW1zKGNvbnN0IEFwcGxlUGF5TGlu
ZUl0ZW0mIHRvdGFsLCBjb25zdCBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4mIGxpbmVJdGVtcykK
IHsKICAgICBOU011dGFibGVBcnJheSAqcGF5bWVudFN1bW1hcnlJdGVtcyA9IFtOU011dGFibGVB
cnJheSBhcnJheVdpdGhDYXBhY2l0eTpsaW5lSXRlbXMuc2l6ZSgpICsgMV07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5
UGF5bWVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXlt
ZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcAppbmRleCA3ZWMwMzcwZmZlZmUz
MzYyODkxZmYxNTI3ZDJlMThhZTVkMWI4OTYwLi42OTRhZDEyZjVmZmRhZDg1Y2RjNjgxMTRiNTNl
MmQwNmFhZThiYWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFu
ZGxlci5jcHAKQEAgLTMwLDExICszMCwxOSBAQAogCiAjaW5jbHVkZSAiQWRkcmVzc0Vycm9ycy5o
IgogI2luY2x1ZGUgIkFwcGxlUGF5Q29udGFjdEZpZWxkLmgiCisjaW5jbHVkZSAiQXBwbGVQYXlE
ZXRhaWxzVXBkYXRlRGF0YS5oIgorI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3IuaCIKKyNpbmNsdWRl
ICJBcHBsZVBheUVycm9yQ29kZS5oIgorI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3JDb250YWN0Rmll
bGQuaCIKICNpbmNsdWRlICJBcHBsZVBheUxpbmVJdGVtLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlN
ZXJjaGFudENhcGFiaWxpdHkuaCIKICNpbmNsdWRlICJBcHBsZVBheU1vZGlmaWVyLmgiCiAjaW5j
bHVkZSAiQXBwbGVQYXlQYXltZW50LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlQYXltZW50TWV0aG9k
VXBkYXRlLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKKyNp
bmNsdWRlICJBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oIgorI2luY2x1ZGUgIkFwcGxl
UGF5U2hpcHBpbmdNZXRob2QuaCIKKyNpbmNsdWRlICJBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBk
YXRlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKQEAgLTU0LDcgKzYyLDYgQEAKICNpbmNsdWRlICJQYXltZW50Q29v
cmRpbmF0b3IuaCIKICNpbmNsdWRlICJQYXltZW50TWVyY2hhbnRTZXNzaW9uLmgiCiAjaW5jbHVk
ZSAiUGF5bWVudE1ldGhvZC5oIgotI2luY2x1ZGUgIlBheW1lbnRNZXRob2RVcGRhdGUuaCIKICNp
bmNsdWRlICJQYXltZW50UmVxdWVzdFZhbGlkYXRvci5oIgogI2luY2x1ZGUgIlBheW1lbnRSZXNw
b25zZS5oIgogI2luY2x1ZGUgIlBheW1lbnRWYWxpZGF0aW9uRXJyb3JzLmgiCkBAIC0xOTgsMTkg
KzIwNSw0OSBAQCBzdGF0aWMgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5n
VHlwZSBjb252ZXJ0KFBheW1lbnRTaGlwcGluZ1R5cGUgdAogICAgIHJldHVybiBBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdUeXBlOjpTaGlwcGluZzsKIH0KIAotc3RhdGlj
IEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhv
ZD4gY29udmVydEFuZFZhbGlkYXRlKGNvbnN0IFBheW1lbnRTaGlwcGluZ09wdGlvbiYgc2hpcHBp
bmdPcHRpb24sIGNvbnN0IFN0cmluZyYgZXhwZWN0ZWRDdXJyZW5jeSkKK3N0YXRpYyBFeGNlcHRp
b25PcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9kPiBjb252ZXJ0QW5kVmFsaWRhdGUoY29uc3QgUGF5
bWVudFNoaXBwaW5nT3B0aW9uJiBzaGlwcGluZ09wdGlvbiwgY29uc3QgU3RyaW5nJiBleHBlY3Rl
ZEN1cnJlbmN5KQogewogICAgIGF1dG8gZXhjZXB0aW9uID0gdmFsaWRhdGUoc2hpcHBpbmdPcHRp
b24uYW1vdW50LCBleHBlY3RlZEN1cnJlbmN5KTsKICAgICBpZiAoZXhjZXB0aW9uLmhhc0V4Y2Vw
dGlvbigpKQogICAgICAgICByZXR1cm4gZXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKTsKIAot
ICAgIEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCByZXN1bHQ7
CisgICAgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCByZXN1bHQ7CiAgICAgcmVzdWx0LmFtb3VudCA9
IHNoaXBwaW5nT3B0aW9uLmFtb3VudC52YWx1ZTsKICAgICByZXN1bHQubGFiZWwgPSBzaGlwcGlu
Z09wdGlvbi5sYWJlbDsKICAgICByZXN1bHQuaWRlbnRpZmllciA9IHNoaXBwaW5nT3B0aW9uLmlk
OwogICAgIHJldHVybiB7IFdURk1vdmUocmVzdWx0KSB9OwogfQogCisjaWYgIUVOQUJMRShBUFBM
RV9QQVlfUEFZTUVOVF9ERVRBSUxTX0RBVEEpCitzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFs
aWRhdGUoY29uc3QgQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YSYpIHsgcmV0dXJuIHsgfTsgfQor
I2VuZGlmCisKK3N0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhPiBj
b252ZXJ0QW5kVmFsaWRhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
UGF5bWVudERldGFpbHNCYXNlJiBkZXRhaWxzKQoreworICAgIEFwcGxlUGF5RGV0YWlsc1VwZGF0
ZURhdGEgcmVzdWx0OworICAgIGlmIChkZXRhaWxzLnNlcmlhbGl6ZWREYXRhLmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKworICAgIGF1dG8mIGxleGljYWxHbG9iYWxPYmplY3Qg
PSAqY29udGV4dC5nbG9iYWxPYmplY3QoKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRShsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCkpOworICAgIEpTQzo6SlNWYWx1ZSBkYXRh
OworICAgIHsKKyAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jaygmbGV4aWNhbEdsb2JhbE9i
amVjdCk7CisgICAgICAgIGRhdGEgPSBKU09OUGFyc2UoJmxleGljYWxHbG9iYWxPYmplY3QsIGRl
dGFpbHMuc2VyaWFsaXplZERhdGEpOworICAgICAgICBpZiAoc2NvcGUuZXhjZXB0aW9uKCkpCisg
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25FcnJvciB9Owor
ICAgIH0KKworICAgIHJlc3VsdCA9IGNvbnZlcnREaWN0aW9uYXJ5PEFwcGxlUGF5RGV0YWlsc1Vw
ZGF0ZURhdGE+KGxleGljYWxHbG9iYWxPYmplY3QsIFdURk1vdmUoZGF0YSkpOworICAgIGlmIChz
Y29wZS5leGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhj
ZXB0aW9uRXJyb3IgfTsKKyAgICBhdXRvIGV4Y2VwdGlvbiA9IHZhbGlkYXRlKHJlc3VsdCk7Cisg
ICAgaWYgKGV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGV4Y2VwdGlv
bi5yZWxlYXNlRXhjZXB0aW9uKCk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBFeGNlcHRp
b25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb252ZXJ0RGF0YShKU0M6OkpTVmFs
dWUgZGF0YSkKIHsKICAgICBhdXRvIHJlcXVlc3RPckV4Y2VwdGlvbiA9IGNvbnZlcnRBbmRWYWxp
ZGF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBkYXRhKTsKQEAgLTIzOCw2ICsyNzUsMTAg
QEAgc3RhdGljIHZvaWQgbWVyZ2VQYXltZW50T3B0aW9ucyhjb25zdCBQYXltZW50T3B0aW9ucyYg
b3B0aW9ucywgQXBwbGVQYXlTZXNzaW9uUGEKICAgICAgICAgcmVxdWVzdC5zZXRTaGlwcGluZ1R5
cGUoY29udmVydChvcHRpb25zLnNoaXBwaW5nVHlwZSkpOwogfQogCisjaWYgIUVOQUJMRShBUFBM
RV9QQVlfUEFZTUVOVF9ERVRBSUxTX0RBVEEpCitzdGF0aWMgdm9pZCBtZXJnZShBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdCYsIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEmJikgeyB9Cisj
ZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWV9QQVlNRU5UX0RFVEFJTFNfREFUQSkKKwogRXhjZXB0
aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6c2hvdyhEb2N1bWVudCYgZG9jdW1l
bnQpCiB7CiAgICAgYXV0byB2YWxpZGF0ZWRSZXF1ZXN0ID0gY29udmVydEFuZFZhbGlkYXRlKGRv
Y3VtZW50LCBtX2FwcGxlUGF5UmVxdWVzdC0+dmVyc2lvbiwgKm1fYXBwbGVQYXlSZXF1ZXN0LCBw
YXltZW50Q29vcmRpbmF0b3IoKSk7CkBAIC0yNzAsNiArMzExLDExIEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnNob3coRG9jdW1lbnQmIGRvY3VtZW50KQogICAg
ICAgICByZXR1cm4gc2hpcHBpbmdNZXRob2RzLnJlbGVhc2VFeGNlcHRpb24oKTsKICAgICByZXF1
ZXN0LnNldFNoaXBwaW5nTWV0aG9kcyhzaGlwcGluZ01ldGhvZHMucmVsZWFzZVJldHVyblZhbHVl
KCkpOwogCisgICAgYXV0byBhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhID0gY29udmVydEFuZFZh
bGlkYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fcGF5bWVudFJlcXVlc3QtPnBheW1l
bnREZXRhaWxzKCkpOworICAgIGlmIChhcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmhhc0V4Y2Vw
dGlvbigpKQorICAgICAgICByZXR1cm4gYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5yZWxlYXNl
RXhjZXB0aW9uKCk7CisgICAgbWVyZ2UocmVxdWVzdCwgYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0
YS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CisKICAgICBhdXRvIGV4Y2VwdGlvbiA9IFBheW1lbnRS
ZXF1ZXN0VmFsaWRhdG9yOjp2YWxpZGF0ZShyZXF1ZXN0KTsKICAgICBpZiAoZXhjZXB0aW9uLmhh
c0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gZXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24o
KTsKQEAgLTI5MCwxMSArMzM2LDExIEBAIHZvaWQgQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y2Fu
TWFrZVBheW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBGdW5jdGlvbjx2b2lkKGJvCiAgICAgY29t
cGxldGlvbkhhbmRsZXIocGF5bWVudENvb3JkaW5hdG9yKCkuY2FuTWFrZVBheW1lbnRzKGRvY3Vt
ZW50KSk7CiB9CiAKLUV4Y2VwdGlvbk9yPFZlY3RvcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVx
dWVzdDo6U2hpcHBpbmdNZXRob2Q+PiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21wdXRlU2hp
cHBpbmdNZXRob2RzKCkKK0V4Y2VwdGlvbk9yPFZlY3RvcjxBcHBsZVBheVNoaXBwaW5nTWV0aG9k
Pj4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcHV0ZVNoaXBwaW5nTWV0aG9kcygpCiB7CiAg
ICAgYXV0byYgZGV0YWlscyA9IG1fcGF5bWVudFJlcXVlc3QtPnBheW1lbnREZXRhaWxzKCk7CiAK
LSAgICBWZWN0b3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9k
PiBzaGlwcGluZ09wdGlvbnM7CisgICAgVmVjdG9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+IHNo
aXBwaW5nT3B0aW9uczsKICAgICBpZiAoZGV0YWlscy5zaGlwcGluZ09wdGlvbnMpIHsKICAgICAg
ICAgYXV0byYgY3VycmVuY3kgPSBkZXRhaWxzLnRvdGFsLmFtb3VudC5jdXJyZW5jeTsKIApAQCAt
MzEwLDcgKzM1Niw3IEBAIEV4Y2VwdGlvbk9yPFZlY3RvcjxBcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+PiBBcHBsZVBheVBheW1lCiAgICAgcmV0dXJuIFdURk1v
dmUoc2hpcHBpbmdPcHRpb25zKTsKIH0KIAotRXhjZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9uUGF5
bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpj
b21wdXRlVG90YWxBbmRMaW5lSXRlbXMoKSBjb25zdAorRXhjZXB0aW9uT3I8c3RkOjp0dXBsZTxB
cHBsZVBheUxpbmVJdGVtLCBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4+PiBBcHBsZVBheVBheW1l
bnRIYW5kbGVyOjpjb21wdXRlVG90YWxBbmRMaW5lSXRlbXMoKSBjb25zdAogewogICAgIGF1dG8m
IGRldGFpbHMgPSBtX3BheW1lbnRSZXF1ZXN0LT5wYXltZW50RGV0YWlscygpOwogICAgIFN0cmlu
ZyBjdXJyZW5jeSA9IGRldGFpbHMudG90YWwuYW1vdW50LmN1cnJlbmN5OwpAQCAtMzI5LDcgKzM3
NSw3IEBAIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFu
ZExpbmVJdGVtcz4gQXBwbGVQYXlQYXltZW50SGFuCiAgICAgfQogCiAgICAgaWYgKCFtX3NlbGVj
dGVkUGF5bWVudE1ldGhvZFR5cGUpCi0gICAgICAgIHJldHVybiBBcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXMgeyBXVEZNb3ZlKHRvdGFsKSwgV1RGTW92ZShs
aW5lSXRlbXMpIH07CisgICAgICAgIHJldHVybiB7eyBXVEZNb3ZlKHRvdGFsKSwgV1RGTW92ZShs
aW5lSXRlbXMpIH19OwogCiAgICAgaWYgKGRldGFpbHMubW9kaWZpZXJzKSB7CiAgICAgICAgIGF1
dG8mIHNlcmlhbGl6ZWRNb2RpZmllckRhdGEgPSBtX3BheW1lbnRSZXF1ZXN0LT5zZXJpYWxpemVk
TW9kaWZpZXJEYXRhKCk7CkBAIC0zNzYsMTggKzQyMiwxOCBAQCBFeGNlcHRpb25PcjxBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXM+IEFwcGxlUGF5UGF5bWVu
dEhhbgogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIEFwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcyB7IFdURk1vdmUodG90YWwpLCBXVEZNb3ZlKGxp
bmVJdGVtcykgfTsKKyAgICByZXR1cm4ge3sgV1RGTW92ZSh0b3RhbCksIFdURk1vdmUobGluZUl0
ZW1zKSB9fTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGFwcGVuZFNoaXBwaW5nQ29udGFjdElu
dmFsaWRFcnJvcihTdHJpbmcmJiBtZXNzYWdlLCBPcHRpb25hbDxQYXltZW50RXJyb3I6OkNvbnRh
Y3RGaWVsZD4gY29udGFjdEZpZWxkLCBWZWN0b3I8UGF5bWVudEVycm9yPiYgZXJyb3JzKQorc3Rh
dGljIGlubGluZSB2b2lkIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJvcihTdHJpbmcm
JiBtZXNzYWdlLCBPcHRpb25hbDxBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkPiBjb250YWN0Rmll
bGQsIFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+JiBlcnJvcnMpCiB7CiAgICAgaWYgKCFt
ZXNzYWdlLmlzTnVsbCgpKQotICAgICAgICBlcnJvcnMuYXBwZW5kKHsgUGF5bWVudEVycm9yOjpD
b2RlOjpTaGlwcGluZ0NvbnRhY3RJbnZhbGlkLCBXVEZNb3ZlKG1lc3NhZ2UpLCBXVEZNb3ZlKGNv
bnRhY3RGaWVsZCkgfSk7CisgICAgICAgIGVycm9ycy5hcHBlbmQoQXBwbGVQYXlFcnJvcjo6Y3Jl
YXRlKEFwcGxlUGF5RXJyb3JDb2RlOjpTaGlwcGluZ0NvbnRhY3RJbnZhbGlkLCBXVEZNb3ZlKGNv
bnRhY3RGaWVsZCksIFdURk1vdmUobWVzc2FnZSkpKTsKIH0KIAotVmVjdG9yPFBheW1lbnRFcnJv
cj4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcHV0ZUVycm9ycyhTdHJpbmcmJiBlcnJvciwg
QWRkcmVzc0Vycm9ycyYmIGFkZHJlc3NFcnJvcnMsIFBheWVyRXJyb3JGaWVsZHMmJiBwYXllckVy
cm9ycywgSlNDOjpKU09iamVjdCogcGF5bWVudE1ldGhvZEVycm9ycykgY29uc3QKK1ZlY3RvcjxS
ZWZQdHI8QXBwbGVQYXlFcnJvcj4+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVFcnJv
cnMoU3RyaW5nJiYgZXJyb3IsIEFkZHJlc3NFcnJvcnMmJiBhZGRyZXNzRXJyb3JzLCBQYXllckVy
cm9yRmllbGRzJiYgcGF5ZXJFcnJvcnMsIEpTQzo6SlNPYmplY3QqIHBheW1lbnRNZXRob2RFcnJv
cnMpIGNvbnN0CiB7Ci0gICAgVmVjdG9yPFBheW1lbnRFcnJvcj4gZXJyb3JzOworICAgIFZlY3Rv
cjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+IGVycm9yczsKIAogICAgIGF1dG8mIGRldGFpbHMgPSBt
X3BheW1lbnRSZXF1ZXN0LT5wYXltZW50RGV0YWlscygpOwogCkBAIC00MDYsMzkgKzQ1MiwzNyBA
QCBWZWN0b3I8UGF5bWVudEVycm9yPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21wdXRlRXJy
b3JzKFN0cmluZyYmIGVycm9yLCBBZGRyZQogICAgIHJldHVybiBlcnJvcnM7CiB9CiAKLXZvaWQg
QXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29tcHV0ZUFkZHJlc3NFcnJvcnMoU3RyaW5nJiYgZXJy
b3IsIEFkZHJlc3NFcnJvcnMmJiBhZGRyZXNzRXJyb3JzLCBWZWN0b3I8UGF5bWVudEVycm9yPiYg
ZXJyb3JzKSBjb25zdAordm9pZCBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21wdXRlQWRkcmVz
c0Vycm9ycyhTdHJpbmcmJiBlcnJvciwgQWRkcmVzc0Vycm9ycyYmIGFkZHJlc3NFcnJvcnMsIFZl
Y3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+JiBlcnJvcnMpIGNvbnN0CiB7CiAgICAgaWYgKCFt
X3BheW1lbnRSZXF1ZXN0LT5wYXltZW50T3B0aW9ucygpLnJlcXVlc3RTaGlwcGluZykKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgdXNpbmcgQ29udGFjdEZpZWxkID0gUGF5bWVudEVycm9yOjpDb250
YWN0RmllbGQ7CiAgICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUo
ZXJyb3IpLCBXVEY6Om51bGxvcHQsIGVycm9ycyk7Ci0gICAgYXBwZW5kU2hpcHBpbmdDb250YWN0
SW52YWxpZEVycm9yKFdURk1vdmUoYWRkcmVzc0Vycm9ycy5hZGRyZXNzTGluZSksIENvbnRhY3RG
aWVsZDo6QWRkcmVzc0xpbmVzLCBlcnJvcnMpOwotICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdElu
dmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMuY2l0eSksIENvbnRhY3RGaWVsZDo6TG9j
YWxpdHksIGVycm9ycyk7Ci0gICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdU
Rk1vdmUoYWRkcmVzc0Vycm9ycy5jb3VudHJ5KSwgQ29udGFjdEZpZWxkOjpDb3VudHJ5LCBlcnJv
cnMpOwotICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJl
c3NFcnJvcnMuZGVwZW5kZW50TG9jYWxpdHkpLCBDb250YWN0RmllbGQ6OlN1YkxvY2FsaXR5LCBl
cnJvcnMpOwotICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKGFk
ZHJlc3NFcnJvcnMucGhvbmUpLCBDb250YWN0RmllbGQ6OlBob25lTnVtYmVyLCBlcnJvcnMpOwot
ICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJlc3NFcnJv
cnMucG9zdGFsQ29kZSksIENvbnRhY3RGaWVsZDo6UG9zdGFsQ29kZSwgZXJyb3JzKTsKLSAgICBh
cHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShhZGRyZXNzRXJyb3JzLnJl
Y2lwaWVudCksIENvbnRhY3RGaWVsZDo6TmFtZSwgZXJyb3JzKTsKLSAgICBhcHBlbmRTaGlwcGlu
Z0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShhZGRyZXNzRXJyb3JzLnJlZ2lvbiksIENvbnRh
Y3RGaWVsZDo6QWRtaW5pc3RyYXRpdmVBcmVhLCBlcnJvcnMpOworICAgIGFwcGVuZFNoaXBwaW5n
Q29udGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMuYWRkcmVzc0xpbmUpLCBB
cHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpBZGRyZXNzTGluZXMsIGVycm9ycyk7CisgICAgYXBw
ZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRkcmVzc0Vycm9ycy5jaXR5
KSwgQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6TG9jYWxpdHksIGVycm9ycyk7CisgICAgYXBw
ZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUoYWRkcmVzc0Vycm9ycy5jb3Vu
dHJ5KSwgQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6Q291bnRyeSwgZXJyb3JzKTsKKyAgICBh
cHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShhZGRyZXNzRXJyb3JzLmRl
cGVuZGVudExvY2FsaXR5KSwgQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6U3ViTG9jYWxpdHks
IGVycm9ycyk7CisgICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVycm9yKFdURk1vdmUo
YWRkcmVzc0Vycm9ycy5waG9uZSksIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlBob25lTnVt
YmVyLCBlcnJvcnMpOworICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJvcihXVEZN
b3ZlKGFkZHJlc3NFcnJvcnMucG9zdGFsQ29kZSksIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6
OlBvc3RhbENvZGUsIGVycm9ycyk7CisgICAgYXBwZW5kU2hpcHBpbmdDb250YWN0SW52YWxpZEVy
cm9yKFdURk1vdmUoYWRkcmVzc0Vycm9ycy5yZWNpcGllbnQpLCBBcHBsZVBheUVycm9yQ29udGFj
dEZpZWxkOjpOYW1lLCBlcnJvcnMpOworICAgIGFwcGVuZFNoaXBwaW5nQ29udGFjdEludmFsaWRF
cnJvcihXVEZNb3ZlKGFkZHJlc3NFcnJvcnMucmVnaW9uKSwgQXBwbGVQYXlFcnJvckNvbnRhY3RG
aWVsZDo6QWRtaW5pc3RyYXRpdmVBcmVhLCBlcnJvcnMpOwogfQogCi12b2lkIEFwcGxlUGF5UGF5
bWVudEhhbmRsZXI6OmNvbXB1dGVQYXllckVycm9ycyhQYXllckVycm9yRmllbGRzJiYgcGF5ZXJF
cnJvcnMsIFZlY3RvcjxQYXltZW50RXJyb3I+JiBlcnJvcnMpIGNvbnN0Cit2b2lkIEFwcGxlUGF5
UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVQYXllckVycm9ycyhQYXllckVycm9yRmllbGRzJiYgcGF5
ZXJFcnJvcnMsIFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+JiBlcnJvcnMpIGNvbnN0CiB7
CiAgICAgYXV0byYgb3B0aW9ucyA9IG1fcGF5bWVudFJlcXVlc3QtPnBheW1lbnRPcHRpb25zKCk7
Ci0gICAgdXNpbmcgQ29udGFjdEZpZWxkID0gUGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ7CiAK
ICAgICBpZiAob3B0aW9ucy5yZXF1ZXN0UGF5ZXJOYW1lKQotICAgICAgICBhcHBlbmRTaGlwcGlu
Z0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShwYXllckVycm9ycy5uYW1lKSwgQ29udGFjdEZp
ZWxkOjpOYW1lLCBlcnJvcnMpOworICAgICAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlk
RXJyb3IoV1RGTW92ZShwYXllckVycm9ycy5uYW1lKSwgQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVs
ZDo6TmFtZSwgZXJyb3JzKTsKIAogICAgIGlmIChvcHRpb25zLnJlcXVlc3RQYXllckVtYWlsKQot
ICAgICAgICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShwYXllckVy
cm9ycy5lbWFpbCksIENvbnRhY3RGaWVsZDo6RW1haWxBZGRyZXNzLCBlcnJvcnMpOworICAgICAg
ICBhcHBlbmRTaGlwcGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShwYXllckVycm9ycy5l
bWFpbCksIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OkVtYWlsQWRkcmVzcywgZXJyb3JzKTsK
IAogICAgIGlmIChvcHRpb25zLnJlcXVlc3RQYXllclBob25lKQotICAgICAgICBhcHBlbmRTaGlw
cGluZ0NvbnRhY3RJbnZhbGlkRXJyb3IoV1RGTW92ZShwYXllckVycm9ycy5waG9uZSksIENvbnRh
Y3RGaWVsZDo6UGhvbmVOdW1iZXIsIGVycm9ycyk7CisgICAgICAgIGFwcGVuZFNoaXBwaW5nQ29u
dGFjdEludmFsaWRFcnJvcihXVEZNb3ZlKHBheWVyRXJyb3JzLnBob25lKSwgQXBwbGVQYXlFcnJv
ckNvbnRhY3RGaWVsZDo6UGhvbmVOdW1iZXIsIGVycm9ycyk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZv
aWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXB1dGVQYXltZW50TWV0aG9kRXJyb3JzKEpT
Qzo6SlNPYmplY3QqIHBheW1lbnRNZXRob2RFcnJvcnMsIFZlY3RvcjxQYXltZW50RXJyb3I+JiBl
cnJvcnMpIGNvbnN0CitFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpj
b21wdXRlUGF5bWVudE1ldGhvZEVycm9ycyhKU0M6OkpTT2JqZWN0KiBwYXltZW50TWV0aG9kRXJy
b3JzLCBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYgZXJyb3JzKSBjb25zdAogewogICAg
IGlmICghcGF5bWVudE1ldGhvZEVycm9ycykKICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTQ0OSw5
ICs0OTMsOSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21w
dXRlUGF5bWVudE1ldGhvZEVycm9ycyhKU0M6OkpTT2JqZQogICAgIGlmICh0aHJvd1Njb3BlLmV4
Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRXhpc3RpbmdFeGNlcHRpb25F
cnJvciB9OwogCi0gICAgZm9yIChhdXRvJiBhcHBsZVBheUVycm9yIDogYXBwbGVQYXlFcnJvcnMp
IHsKKyAgICBmb3IgKGF1dG8mJiBhcHBsZVBheUVycm9yIDogV1RGTW92ZShhcHBsZVBheUVycm9y
cykpIHsKICAgICAgICAgaWYgKGFwcGxlUGF5RXJyb3IpCi0gICAgICAgICAgICBlcnJvcnMuYXBw
ZW5kKHsgYXBwbGVQYXlFcnJvci0+Y29kZSgpLCBhcHBsZVBheUVycm9yLT5tZXNzYWdlKCksIGFw
cGxlUGF5RXJyb3ItPmNvbnRhY3RGaWVsZCgpIH0pOworICAgICAgICAgICAgZXJyb3JzLmFwcGVu
ZChXVEZNb3ZlKGFwcGxlUGF5RXJyb3IpKTsKICAgICB9CiAKICAgICByZXR1cm4geyB9OwpAQCAt
NDkyLDEyICs1MzYsMTYgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxl
cjo6bWVyY2hhbnRWYWxpZGF0aW9uQ29tcGxldGVkKEpTQzo6SlNWYWwKICAgICByZXR1cm4geyB9
OwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpzaGlwcGlu
Z0FkZHJlc3NVcGRhdGVkKFZlY3RvcjxQYXltZW50RXJyb3I+JiYgZXJyb3JzKQorI2lmICFFTkFC
TEUoQVBQTEVfUEFZX1BBWU1FTlRfREVUQUlMU19EQVRBKQorc3RhdGljIHZvaWQgbWVyZ2UoQXBw
bGVQYXlEZXRhaWxzVXBkYXRlQmFzZSYsIEFwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEmJikgeyB9
CisjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWV9QQVlNRU5UX0RFVEFJTFNfREFUQSkKKworRXhj
ZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6c2hpcHBpbmdBZGRyZXNzVXBk
YXRlZChWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYmIGVycm9ycykKIHsKICAgICBBU1NF
UlQobV9pc1VwZGF0aW5nKTsKICAgICBtX2lzVXBkYXRpbmcgPSBmYWxzZTsKIAotICAgIFNoaXBw
aW5nQ29udGFjdFVwZGF0ZSB1cGRhdGU7CisgICAgQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRh
dGUgdXBkYXRlOwogICAgIHVwZGF0ZS5lcnJvcnMgPSBXVEZNb3ZlKGVycm9ycyk7CiAKICAgICBh
dXRvIG5ld1NoaXBwaW5nTWV0aG9kcyA9IGNvbXB1dGVTaGlwcGluZ01ldGhvZHMoKTsKQEAgLTUw
OCw3ICs1NTYsMTIgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6
c2hpcHBpbmdBZGRyZXNzVXBkYXRlZChWZWN0b3I8UGF5bWVudEUKICAgICBhdXRvIG5ld1RvdGFs
QW5kTGluZUl0ZW1zID0gY29tcHV0ZVRvdGFsQW5kTGluZUl0ZW1zKCk7CiAgICAgaWYgKG5ld1Rv
dGFsQW5kTGluZUl0ZW1zLmhhc0V4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4gbmV3VG90YWxB
bmRMaW5lSXRlbXMucmVsZWFzZUV4Y2VwdGlvbigpOwotICAgIHVwZGF0ZS5uZXdUb3RhbEFuZExp
bmVJdGVtcyA9IG5ld1RvdGFsQW5kTGluZUl0ZW1zLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAg
IHN0ZDo6dGllKHVwZGF0ZS5uZXdUb3RhbCwgdXBkYXRlLm5ld0xpbmVJdGVtcykgPSBuZXdUb3Rh
bEFuZExpbmVJdGVtcy5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKworICAgIGF1dG8gYXBwbGVQYXlE
ZXRhaWxzVXBkYXRlRGF0YSA9IGNvbnZlcnRBbmRWYWxpZGF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLCBtX3BheW1lbnRSZXF1ZXN0LT5wYXltZW50RGV0YWlscygpKTsKKyAgICBpZiAoYXBw
bGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGFw
cGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEucmVsZWFzZUV4Y2VwdGlvbigpOworICAgIG1lcmdlKHVw
ZGF0ZSwgYXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAK
ICAgICBwYXltZW50Q29vcmRpbmF0b3IoKS5jb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlv
bihXVEZNb3ZlKHVwZGF0ZSkpOwogICAgIHJldHVybiB7IH07CkBAIC01MTksMTIgKzU3MiwxNyBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpzaGlwcGluZ09wdGlv
blVwZGF0ZWQoKQogICAgIEFTU0VSVChtX2lzVXBkYXRpbmcpOwogICAgIG1faXNVcGRhdGluZyA9
IGZhbHNlOwogCi0gICAgU2hpcHBpbmdNZXRob2RVcGRhdGUgdXBkYXRlOworICAgIEFwcGxlUGF5
U2hpcHBpbmdNZXRob2RVcGRhdGUgdXBkYXRlOwogCiAgICAgYXV0byBuZXdUb3RhbEFuZExpbmVJ
dGVtcyA9IGNvbXB1dGVUb3RhbEFuZExpbmVJdGVtcygpOwogICAgIGlmIChuZXdUb3RhbEFuZExp
bmVJdGVtcy5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIG5ld1RvdGFsQW5kTGluZUl0
ZW1zLnJlbGVhc2VFeGNlcHRpb24oKTsKLSAgICB1cGRhdGUubmV3VG90YWxBbmRMaW5lSXRlbXMg
PSBuZXdUb3RhbEFuZExpbmVJdGVtcy5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICBzdGQ6OnRp
ZSh1cGRhdGUubmV3VG90YWwsIHVwZGF0ZS5uZXdMaW5lSXRlbXMpID0gbmV3VG90YWxBbmRMaW5l
SXRlbXMucmVsZWFzZVJldHVyblZhbHVlKCk7CisKKyAgICBhdXRvIGFwcGxlUGF5RGV0YWlsc1Vw
ZGF0ZURhdGEgPSBjb252ZXJ0QW5kVmFsaWRhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwg
bV9wYXltZW50UmVxdWVzdC0+cGF5bWVudERldGFpbHMoKSk7CisgICAgaWYgKGFwcGxlUGF5RGV0
YWlsc1VwZGF0ZURhdGEuaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBhcHBsZVBheURl
dGFpbHNVcGRhdGVEYXRhLnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICBtZXJnZSh1cGRhdGUsIGFw
cGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCiAgICAgcGF5
bWVudENvb3JkaW5hdG9yKCkuY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihXVEZNb3Zl
KHVwZGF0ZSkpOwogICAgIHJldHVybiB7IH07CkBAIC01MzUsMTEgKzU5MywxOSBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpwYXltZW50TWV0aG9kVXBkYXRlZCgp
CiAgICAgQVNTRVJUKG1faXNVcGRhdGluZyk7CiAgICAgbV9pc1VwZGF0aW5nID0gZmFsc2U7CiAK
KyAgICBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUgdXBkYXRlOworCiAgICAgYXV0byBuZXdU
b3RhbEFuZExpbmVJdGVtcyA9IGNvbXB1dGVUb3RhbEFuZExpbmVJdGVtcygpOwogICAgIGlmIChu
ZXdUb3RhbEFuZExpbmVJdGVtcy5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIG5ld1Rv
dGFsQW5kTGluZUl0ZW1zLnJlbGVhc2VFeGNlcHRpb24oKTsKKyAgICBzdGQ6OnRpZSh1cGRhdGUu
bmV3VG90YWwsIHVwZGF0ZS5uZXdMaW5lSXRlbXMpID0gbmV3VG90YWxBbmRMaW5lSXRlbXMucmVs
ZWFzZVJldHVyblZhbHVlKCk7CiAKLSAgICBwYXltZW50Q29vcmRpbmF0b3IoKS5jb21wbGV0ZVBh
eW1lbnRNZXRob2RTZWxlY3Rpb24oUGF5bWVudE1ldGhvZFVwZGF0ZSB7IG5ld1RvdGFsQW5kTGlu
ZUl0ZW1zLnJlbGVhc2VSZXR1cm5WYWx1ZSgpIH0pOworICAgIGF1dG8gYXBwbGVQYXlEZXRhaWxz
VXBkYXRlRGF0YSA9IGNvbnZlcnRBbmRWYWxpZGF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LCBtX3BheW1lbnRSZXF1ZXN0LT5wYXltZW50RGV0YWlscygpKTsKKyAgICBpZiAoYXBwbGVQYXlE
ZXRhaWxzVXBkYXRlRGF0YS5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgcmV0dXJuIGFwcGxlUGF5
RGV0YWlsc1VwZGF0ZURhdGEucmVsZWFzZUV4Y2VwdGlvbigpOworICAgIG1lcmdlKHVwZGF0ZSwg
YXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CisKKyAgICBw
YXltZW50Q29vcmRpbmF0b3IoKS5jb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oV1RGTW92
ZSh1cGRhdGUpKTsKICAgICByZXR1cm4geyB9OwogfQogCkBAIC01NjgsNyArNjM0LDcgQEAgdm9p
ZCBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21wbGV0ZShPcHRpb25hbDxQYXltZW50Q29tcGxl
dGU+JiYgcmVzdWx0KQogCiBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVy
OjpyZXRyeShQYXltZW50VmFsaWRhdGlvbkVycm9ycyYmIHZhbGlkYXRpb25FcnJvcnMpCiB7Ci0g
ICAgVmVjdG9yPFBheW1lbnRFcnJvcj4gZXJyb3JzOworICAgIFZlY3RvcjxSZWZQdHI8QXBwbGVQ
YXlFcnJvcj4+IGVycm9yczsKIAogICAgIGNvbXB1dGVBZGRyZXNzRXJyb3JzKFdURk1vdmUodmFs
aWRhdGlvbkVycm9ycy5lcnJvciksIFdURk1vdmUodmFsaWRhdGlvbkVycm9ycy5zaGlwcGluZ0Fk
ZHJlc3MpLCBlcnJvcnMpOwogICAgIGNvbXB1dGVQYXllckVycm9ycyhXVEZNb3ZlKHZhbGlkYXRp
b25FcnJvcnMucGF5ZXIpLCBlcnJvcnMpOwpAQCAtNTc5LDcgKzY0NSw3IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnJldHJ5KFBheW1lbnRWYWxpZGF0aW9uRXJy
b3JzJiYgdmFsaWRhCiAKICAgICAvLyBFbnN1cmUgdGhlcmUgaXMgYWx3YXlzIGF0IGxlYXN0IG9u
ZSBlcnJvciB0byBhdm9pZCBoYXZpbmcgYSBmaW5hbCByZXN1bHQuCiAgICAgaWYgKGVycm9ycy5p
c0VtcHR5KCkpCi0gICAgICAgIGVycm9ycy5hcHBlbmQoeyBQYXltZW50RXJyb3I6OkNvZGU6OlVu
a25vd24sIHsgfSwgV1RGOjpudWxsb3B0IH0pOworICAgICAgICBlcnJvcnMuYXBwZW5kKEFwcGxl
UGF5RXJyb3I6OmNyZWF0ZShBcHBsZVBheUVycm9yQ29kZTo6VW5rbm93biwgV1RGOjpudWxsb3B0
LCBudWxsU3RyaW5nKCkpKTsKIAogICAgIFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0IGF1dGhv
cml6YXRpb25SZXN1bHQgeyBQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6RmFpbHVyZSwgV1RG
TW92ZShlcnJvcnMpIH07CiAgICAgQVNTRVJUKCFpc0ZpbmFsU3RhdGVSZXN1bHQoYXV0aG9yaXph
dGlvblJlc3VsdCkpOwpAQCAtNjIzLDcgKzY4OSw3IEBAIHZvaWQgQXBwbGVQYXlQYXltZW50SGFu
ZGxlcjo6ZGlkQXV0aG9yaXplUGF5bWVudChjb25zdCBQYXltZW50JiBwYXltZW50KQogICAgIG1f
cGF5bWVudFJlcXVlc3QtPmFjY2VwdChXVEY6OmdldDxVUkw+KG1faWRlbnRpZmllcikuc3RyaW5n
KCksIFdURk1vdmUoZGV0YWlsc0Z1bmN0aW9uKSwgY29udmVydChzaGlwcGluZ0NvbnRhY3QpLCBz
aGlwcGluZ0NvbnRhY3QubG9jYWxpemVkTmFtZSwgc2hpcHBpbmdDb250YWN0LmVtYWlsQWRkcmVz
cywgc2hpcHBpbmdDb250YWN0LnBob25lTnVtYmVyKTsKIH0KIAotdm9pZCBBcHBsZVBheVBheW1l
bnRIYW5kbGVyOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQordm9pZCBBcHBs
ZVBheVBheW1lbnRIYW5kbGVyOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kJiBzaGlwcGluZ01ldGhvZCkKIHsKICAgICBBU1NFUlQoIW1faXNVcGRh
dGluZyk7CiAgICAgbV9pc1VwZGF0aW5nID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBs
ZVBheVBheW1lbnRIYW5kbGVyLmgKaW5kZXggODljNzU3ZmRmYjRkNTc1NDE4MDYyOTAwZmEzZjlm
MTQ5ZDA2Njk3OC4uMWI5OTI2NjIwMDhhZjdjYWI1ODBmYjA3MjgwYzgyZGYzNWJkM2NkZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9B
cHBsZVBheVBheW1lbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmgKQEAgLTM0LDEwICsz
NCwxMSBAQAogI2luY2x1ZGUgIlBheW1lbnRSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUGF5bWVudFNl
c3Npb24uaCIKICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvUmVm
Lmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Ns
YXNzIEFwcGxlUGF5RXJyb3I7CiBjbGFzcyBQYXltZW50Q29vcmRpbmF0b3I7CiAKIGNsYXNzIEFw
cGxlUGF5UGF5bWVudEhhbmRsZXIgZmluYWwgOiBwdWJsaWMgUGF5bWVudEhhbmRsZXIsIHB1Ymxp
YyBQYXltZW50U2Vzc2lvbiwgcHJpdmF0ZSBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CkBA
IC01MywxNCArNTQsMTQgQEAgcHJpdmF0ZToKICAgICBEb2N1bWVudCYgZG9jdW1lbnQoKSBjb25z
dDsKICAgICBQYXltZW50Q29vcmRpbmF0b3ImIHBheW1lbnRDb29yZGluYXRvcigpIGNvbnN0Owog
Ci0gICAgRXhjZXB0aW9uT3I8VmVjdG9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpT
aGlwcGluZ01ldGhvZD4+IGNvbXB1dGVTaGlwcGluZ01ldGhvZHMoKTsKLSAgICBFeGNlcHRpb25P
cjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXM+IGNvbXB1
dGVUb3RhbEFuZExpbmVJdGVtcygpIGNvbnN0OwotICAgIFZlY3RvcjxQYXltZW50RXJyb3I+IGNv
bXB1dGVFcnJvcnMoU3RyaW5nJiYgZXJyb3IsIEFkZHJlc3NFcnJvcnMmJiwgUGF5ZXJFcnJvckZp
ZWxkcyYmLCBKU0M6OkpTT2JqZWN0KiBwYXltZW50TWV0aG9kRXJyb3JzKSBjb25zdDsKLSAgICB2
b2lkIGNvbXB1dGVBZGRyZXNzRXJyb3JzKFN0cmluZyYmIGVycm9yLCBBZGRyZXNzRXJyb3JzJiYs
IFZlY3RvcjxQYXltZW50RXJyb3I+JikgY29uc3Q7Ci0gICAgdm9pZCBjb21wdXRlUGF5ZXJFcnJv
cnMoUGF5ZXJFcnJvckZpZWxkcyYmLCBWZWN0b3I8UGF5bWVudEVycm9yPiYpIGNvbnN0OwotICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IGNvbXB1dGVQYXltZW50TWV0aG9kRXJyb3JzKEpTQzo6SlNPYmpl
Y3QqIHBheW1lbnRNZXRob2RFcnJvcnMsIFZlY3RvcjxQYXltZW50RXJyb3I+JikgY29uc3Q7Cisg
ICAgRXhjZXB0aW9uT3I8VmVjdG9yPEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q+PiBjb21wdXRlU2hp
cHBpbmdNZXRob2RzKCk7CisgICAgRXhjZXB0aW9uT3I8c3RkOjp0dXBsZTxBcHBsZVBheUxpbmVJ
dGVtLCBWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4+PiBjb21wdXRlVG90YWxBbmRMaW5lSXRlbXMo
KSBjb25zdDsKKyAgICBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiBjb21wdXRlRXJyb3Jz
KFN0cmluZyYmIGVycm9yLCBBZGRyZXNzRXJyb3JzJiYsIFBheWVyRXJyb3JGaWVsZHMmJiwgSlND
OjpKU09iamVjdCogcGF5bWVudE1ldGhvZEVycm9ycykgY29uc3Q7CisgICAgdm9pZCBjb21wdXRl
QWRkcmVzc0Vycm9ycyhTdHJpbmcmJiBlcnJvciwgQWRkcmVzc0Vycm9ycyYmLCBWZWN0b3I8UmVm
UHRyPEFwcGxlUGF5RXJyb3I+PiYpIGNvbnN0OworICAgIHZvaWQgY29tcHV0ZVBheWVyRXJyb3Jz
KFBheWVyRXJyb3JGaWVsZHMmJiwgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4mKSBjb25z
dDsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBjb21wdXRlUGF5bWVudE1ldGhvZEVycm9ycyhKU0M6
OkpTT2JqZWN0KiBwYXltZW50TWV0aG9kRXJyb3JzLCBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJy
b3I+PiYpIGNvbnN0OwogCi0gICAgRXhjZXB0aW9uT3I8dm9pZD4gc2hpcHBpbmdBZGRyZXNzVXBk
YXRlZChWZWN0b3I8UGF5bWVudEVycm9yPiYmIGVycm9ycyk7CisgICAgRXhjZXB0aW9uT3I8dm9p
ZD4gc2hpcHBpbmdBZGRyZXNzVXBkYXRlZChWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiYm
IGVycm9ycyk7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2hpcHBpbmdPcHRpb25VcGRhdGVkKCk7
CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcGF5bWVudE1ldGhvZFVwZGF0ZWQoKTsKIApAQCAtNzgs
NyArNzksNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIHZlcnNpb24oKSBjb25zdCBmaW5hbDsK
ICAgICB2b2lkIHZhbGlkYXRlTWVyY2hhbnQoVVJMJiYpIGZpbmFsOwogICAgIHZvaWQgZGlkQXV0
aG9yaXplUGF5bWVudChjb25zdCBQYXltZW50JikgZmluYWw7Ci0gICAgdm9pZCBkaWRTZWxlY3RT
aGlwcGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBp
bmdNZXRob2QmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0
IEFwcGxlUGF5U2hpcHBpbmdNZXRob2QmKSBmaW5hbDsKICAgICB2b2lkIGRpZFNlbGVjdFNoaXBw
aW5nQ29udGFjdChjb25zdCBQYXltZW50Q29udGFjdCYpIGZpbmFsOwogICAgIHZvaWQgZGlkU2Vs
ZWN0UGF5bWVudE1ldGhvZChjb25zdCBQYXltZW50TWV0aG9kJikgZmluYWw7CiAgICAgdm9pZCBk
aWRDYW5jZWxQYXltZW50U2Vzc2lvbihQYXltZW50U2Vzc2lvbkVycm9yJiYpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50RGV0
YWlsc0Jhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVu
dERldGFpbHNCYXNlLmgKaW5kZXggOTQyMmQ0MjAxMzRhZjkzZGI5YTZmNDBhYTZmZTFkNTM2YjFl
MWVlNy4uOTBmODdkMjA2MWUwNmQ1OThhNGMzMzgzYTYzYWNjODFhMGE2MGVkMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50RGV0YWlsc0Jh
c2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRE
ZXRhaWxzQmFzZS5oCkBAIC0zMCw3ICszMCwxMSBAQAogI2luY2x1ZGUgIlBheW1lbnREZXRhaWxz
TW9kaWZpZXIuaCIKICNpbmNsdWRlICJQYXltZW50SXRlbS5oIgogI2luY2x1ZGUgIlBheW1lbnRT
aGlwcGluZ09wdGlvbi5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTT2JqZWN0Lmg+Cisj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFs
Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM4LDYgKzQyLDEwIEBAIHN0cnVjdCBQ
YXltZW50RGV0YWlsc0Jhc2UgewogICAgIE9wdGlvbmFsPFZlY3RvcjxQYXltZW50SXRlbT4+IGRp
c3BsYXlJdGVtczsKICAgICBPcHRpb25hbDxWZWN0b3I8UGF5bWVudFNoaXBwaW5nT3B0aW9uPj4g
c2hpcHBpbmdPcHRpb25zOwogICAgIE9wdGlvbmFsPFZlY3RvcjxQYXltZW50RGV0YWlsc01vZGlm
aWVyPj4gbW9kaWZpZXJzOworICAgIEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+IGRhdGE7CisK
KyAgICAvLyBOb3QgZnJvbSB0aGUgSURMLiBTZXQgYnkgYGRhdGFgIHdoZW4gdGhpcyBpcyB2YWxp
ZGF0ZWQgYnkgYFBheW1lbnRSZXF1ZXN0YC4KKyAgICBTdHJpbmcgc2VyaWFsaXplZERhdGE7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnREZXRhaWxzQmFzZS5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnREZXRhaWxzQmFzZS5pZGwKaW5kZXgg
NDQ5ZTNlZTk4ZDI5MTA3ZWMwY2VlNmNjNDU2OGIzMDhkMzU2ZjVkZi4uZDgwYzQ5ZDkyMDU2NjFk
ZTgwYThlNDc2YzMwNDEzOTFhNTZkNWNkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50RGV0YWlsc0Jhc2UuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudERldGFpbHNCYXNlLmlkbApAQCAt
MjksNCArMjksNSBAQAogICAgIHNlcXVlbmNlPFBheW1lbnRJdGVtPiBkaXNwbGF5SXRlbXM7CiAg
ICAgc2VxdWVuY2U8UGF5bWVudFNoaXBwaW5nT3B0aW9uPiBzaGlwcGluZ09wdGlvbnM7CiAgICAg
c2VxdWVuY2U8UGF5bWVudERldGFpbHNNb2RpZmllcj4gbW9kaWZpZXJzOworICAgIG9iamVjdCBk
YXRhOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVl
c3QvUGF5bWVudFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50UmVxdWVzdC5jcHAKaW5kZXggZWUwZDNhYWViNjdmMDQwZjA2OTQ4ODllY2Y3
NTU0MTQ2NTk1Y2VjNS4uODFiNTUzNDRmYTlmZjEwNzdmNDUwOGYzZmNmNDM2ZTkxMTUzMmI3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50
UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9Q
YXltZW50UmVxdWVzdC5jcHAKQEAgLTM0NSw2ICszNDUsMTQgQEAgc3RhdGljIEV4Y2VwdGlvbk9y
PHN0ZDo6dHVwbGU8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPj4+IGNoZWNrQW5kQ2Fub25pY2FsaXpl
RGV0YWkKICAgICB9IGVsc2UgaWYgKGlzVXBkYXRlID09IElzVXBkYXRlOjpObykKICAgICAgICAg
ZGV0YWlscy5tb2RpZmllcnMgPSB7IHsgfSB9OwogCisgICAgaWYgKGRldGFpbHMuZGF0YSkgewor
ICAgICAgICBhdXRvIGRhdGFSZXN1bHQgPSBjaGVja0FuZENhbm9uaWNhbGl6ZURhdGEoY29udGV4
dCwgZGV0YWlscyk7CisgICAgICAgIGlmIChkYXRhUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAg
ICAgICAgICAgcmV0dXJuIGRhdGFSZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOworCisgICAgICAg
IGRldGFpbHMuc2VyaWFsaXplZERhdGEgPSBkYXRhUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgp
OworICAgIH0KKwogICAgIHJldHVybiBzdGQ6Om1ha2VfdHVwbGUoV1RGTW92ZShzZWxlY3RlZFNo
aXBwaW5nT3B0aW9uKSwgV1RGTW92ZShzZXJpYWxpemVkTW9kaWZpZXJEYXRhKSk7CiB9CiAKQEAg
LTczNiw2ICs3NDQsOCBAQCB2b2lkIFBheW1lbnRSZXF1ZXN0OjpzZXR0bGVEZXRhaWxzUHJvbWlz
ZShVcGRhdGVSZWFzb24gcmVhc29uKQogICAgICAgICBtX2RldGFpbHMubW9kaWZpZXJzID0gV1RG
TW92ZSgqZGV0YWlsc1VwZGF0ZS5tb2RpZmllcnMpOwogICAgICAgICBtX3NlcmlhbGl6ZWRNb2Rp
ZmllckRhdGEgPSBXVEZNb3ZlKHN0ZDo6Z2V0PDE+KHNoaXBwaW5nT3B0aW9uQW5kTW9kaWZpZXJE
YXRhKSk7CiAgICAgfQorICAgIGlmICghZGV0YWlsc1VwZGF0ZS5zZXJpYWxpemVkRGF0YS5pc0Vt
cHR5KCkpCisgICAgICAgIG1fZGV0YWlscy5zZXJpYWxpemVkRGF0YSA9IFdURk1vdmUoZGV0YWls
c1VwZGF0ZS5zZXJpYWxpemVkRGF0YSk7CiAKICAgICBhdXRvIHJlc3VsdCA9IGFjdGl2ZVBheW1l
bnRIYW5kbGVyKCktPmRldGFpbHNVcGRhdGVkKHJlYXNvbiwgV1RGTW92ZShkZXRhaWxzVXBkYXRl
LmVycm9yKSwgV1RGTW92ZShkZXRhaWxzVXBkYXRlLnNoaXBwaW5nQWRkcmVzc0Vycm9ycyksIFdU
Rk1vdmUoZGV0YWlsc1VwZGF0ZS5wYXllckVycm9ycyksIGRldGFpbHNVcGRhdGUucGF5bWVudE1l
dGhvZEVycm9ycy5nZXQoKSk7CiAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCBhOGZhMDcyYjU4YTBkNTg5MGQxOWIxYjU2YTg3MzA4
ZTYyN2VkMmZmLi5kNmU5ZDE0OWQyZGQzZGMxNWM2ZDhlOGFmYzBiYTU0ZjllNmUyZTg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtNDM1LDcgKzQzNSw2IEBAIGxpc3QoQVBQRU5EIFdl
YkNvcmVfU09VUkNFUwogKQogCiBsaXN0KEFQUEVORCBXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JL
X0hFQURFUlMKLSAgICBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRNZXRob2RVcGRhdGUuaAogICAg
IE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNlc3Npb25FcnJvci5oCiAgICAgTW9kdWxlcy9hcHBs
ZXBheS9QYXltZW50U3VtbWFyeUl0ZW1zLmgKIApAQCAtNjE2LDYgKzYxNSw4IEBAIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogbGlzdChBUFBFTkQgV2ViQ29y
ZV9JRExfRklMRVMKICAgICBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5Q2FuY2VsRXZlbnQuaWRs
CiAgICAgTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5pZGwKKyAgICBNb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaWRsCisgICAgTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmlkbAogICAgIE1vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlFcnJvci5pZGwKICAgICBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5RXJyb3JD
b2RlLmlkbAogICAgIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5p
ZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IGJmNmFlMTYxODdhYmEwNzE1NzJkYTA3OTIz
YWMzMzBiMjI4ZjY5YzUuLjhjODI4NDkxMmIyYTgxNzI1ZDEwNWI1ZjIxZTIwNTkxNDVkNDI5Mjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvU291cmNlc0NvY29hLnR4dApAQCAtMjMsNiArMjMsOCBAQAogCiBKU0FwcGxlUGF5
Q2FuY2VsRXZlbnQuY3BwCiBKU0FwcGxlUGF5Q29udGFjdEZpZWxkLmNwcAorSlNBcHBsZVBheURl
dGFpbHNVcGRhdGVCYXNlLmNwcAorSlNBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmNwcAogSlNB
cHBsZVBheUVycm9yLmNwcAogSlNBcHBsZVBheUVycm9yQ29kZS5jcHAKIEpTQXBwbGVQYXlFcnJv
ckNvbnRhY3RGaWVsZC5jcHAKQEAgLTYyLDcgKzY0LDYgQEAgSlNBcHBsZVBheVZhbGlkYXRlTWVy
Y2hhbnRFdmVudC5jcHAKIE1vZHVsZXMvYWlycGxheS9XZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNw
cAogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNhbmNlbEV2ZW50LmNwcAogTW9kdWxlcy9hcHBs
ZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAKLU1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlF
cnJvci5jcHAKIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlNZXJjaGFudENhcGFiaWxpdHkuY3Bw
CiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudEF1dGhvcml6ZWRFdmVudC5jcHAKIE1v
ZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50TWV0aG9kU2VsZWN0ZWRFdmVudC5jcHAKQEAg
LTg0LDcgKzg1LDYgQEAgTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50Q29jb2EubW0KIE1v
ZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudENvbnRhY3RDb2NvYS5tbQogTW9kdWxlcy9hcHBs
ZXBheS9jb2NvYS9QYXltZW50TWVyY2hhbnRTZXNzaW9uQ29jb2EubW0KIE1vZHVsZXMvYXBwbGVw
YXkvY29jb2EvUGF5bWVudE1ldGhvZENvY29hLm1tCi1Nb2R1bGVzL2FwcGxlcGF5L2NvY29hL1Bh
eW1lbnRNZXRob2RVcGRhdGVDb2NvYS5tbQogTW9kdWxlcy9hcHBsZXBheS9jb2NvYS9QYXltZW50
U2Vzc2lvbkVycm9yQ29jb2EubW0KIE1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudFN1bW1h
cnlJdGVtc0NvY29hLm1tCiBNb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5
UGF5bWVudEhhbmRsZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggOGQxZmZmZWJlZmVmMjBjNjBjOTA1MDliYWM3MWY0MjNi
NDNhNmM0Ni4uNTUwY2RiNmJhMzU2MzczOTRhZWNlMzY3YmJhZTI2MDkxYTg0YzdjOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MjMzOCw3ICsyMzM4LDcgQEAKIAkJN0M2NTIzMUExRTAwREJCNTAwNjc3RjIyIC8qIEpTQXBwbGVQ
YXlQYXltZW50UGFzcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gN0M2NTIzMTAxRTAwREJCNDAwNjc3RjIyIC8qIEpTQXBwbGVQYXlQYXltZW50UGFzcy5o
ICovOyB9OwogCQk3QzY1NzlFMDFFMDA3OUY5MDBFM0EyN0EgLyogQXBwbGVQYXlQYXltZW50UmVx
dWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0M2
NTc5REYxRTAwNzlGOTAwRTNBMjdBIC8qIEFwcGxlUGF5UGF5bWVudFJlcXVlc3QuaCAqLzsgfTsK
IAkJN0M2NTc5RTMxRTAwODI3MDAwRTNBMjdBIC8qIEFwcGxlUGF5TGluZUl0ZW0uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNjU3OUUyMUUwMDgyNzAw
MEUzQTI3QSAvKiBBcHBsZVBheUxpbmVJdGVtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJN0M2NTc5RTgxRTAwODMxNjAwRTNBMjdBIC8qIEFwcGxl
UGF5U2hpcHBpbmdNZXRob2QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdDNjU3OUU3MUUwMDgzMTYwMEUzQTI3QSAvKiBBcHBsZVBheVNoaXBwaW5nTWV0
aG9kLmggKi87IH07CisJCTdDNjU3OUU4MUUwMDgzMTYwMEUzQTI3QSAvKiBBcHBsZVBheVNoaXBw
aW5nTWV0aG9kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3QzY1NzlFNzFFMDA4MzE2MDBFM0EyN0EgLyogQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTdDNjU3OUYw
MUUwMDg1NjYwMEUzQTI3QSAvKiBKU0FwcGxlUGF5TGluZUl0ZW0uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDNjU3OUVBMUUwMDg1NjYwMEUzQTI3QSAv
KiBKU0FwcGxlUGF5TGluZUl0ZW0uaCAqLzsgfTsKIAkJN0M2NTc5RjIxRTAwODU2NjAwRTNBMjdB
IC8qIEpTQXBwbGVQYXlQYXltZW50UmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gN0M2NTc5RUMxRTAwODU2NjAwRTNBMjdBIC8qIEpTQXBwbGVQ
YXlQYXltZW50UmVxdWVzdC5oICovOyB9OwogCQk3QzY1NzlGNDFFMDA4NTY2MDBFM0EyN0EgLyog
SlNBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3QzY1NzlFRTFFMDA4NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBheVNo
aXBwaW5nTWV0aG9kLmggKi87IH07CkBAIC0yOTM3LDggKzI5MzcsMTIgQEAKIAkJOTRERTVDOTYx
RDgzMDFCRDAwMTY0RjJBIC8qIENTU1BhcnNlckltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0REU1Qzk0MUQ4MzAxQjAwMDE2NEYyQSAvKiBDU1NQ
YXJzZXJJbXBsLmggKi87IH07CiAJCTk0RTgzOTUxMURGQjJBMEUwMDdCQzZBNyAvKiBDU1NOYW1l
c3BhY2VSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NEU4Mzk0RjFERkIyNzAwMDA3QkM2QTcgLyogQ1NTTmFtZXNwYWNlUnVsZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk0RTgzOTU2MURGQjJC
QzQwMDdCQzZBNyAvKiBKU0NTU05hbWVzcGFjZVJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk0RTgzOTU0MURGQjJCQTYwMDdCQzZBNyAvKiBKU0NT
U05hbWVzcGFjZVJ1bGUuaCAqLzsgfTsKKwkJOTUwMTgzQ0QyNUQ2MzNEOTAwRDQzNDBGIC8qIEFw
cGxlUGF5RGV0YWlsc1VwZGF0ZUJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk1MDE4M0NCMjVENjMzRDgwMEQ0MzQwRiAvKiBBcHBsZVBheURldGFp
bHNVcGRhdGVCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJOTUyMDc2MDUxRjI2NzVGRTAwN0QyQUFCIC8qIENhbGxUcmFjZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MjA3NjAxMUYyNjc1Rjkw
MDdEMkFBQiAvKiBDYWxsVHJhY2VyLmggKi87IH07CiAJCTk1MjA3NjA2MUYyNjc1RkUwMDdEMkFB
QiAvKiBDYWxsVHJhY2VyVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk1MjA3NjAyMUYyNjc1RjkwMDdEMkFBQiAvKiBDYWxsVHJhY2VyVHlwZXMu
aCAqLzsgfTsKKwkJOTUyN0Q3QUIyNUQ1RkRFMjAwQTZFMTc2IC8qIEFwcGxlUGF5RGV0YWlsc1Vw
ZGF0ZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk1MjdEN0E4MjVENUZERTEwMEE2RTE3NiAvKiBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTUyN0Q3
QUYyNUQ1RkU2QzAwQTZFMTc2IC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTUyN0Q3QUQyNUQ1RkU2
QjAwQTZFMTc2IC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oICovOyB9OworCQk5NTNC
Q0VCMjI1RDYyODNEMDBBNEEyQTEgLyogSlNBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTNCQ0VBRjI1RDYy
ODNDMDBBNEEyQTEgLyogSlNBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmggKi87IH07CiAJCTk1
NkZDNEJCMjVENDlDN0IwMEY3QjNBMiAvKiBBcHBsZVBheUxpbmVJdGVtRGF0YS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU2RkM0QjgyNUQ0OUM3QTAw
RjdCM0EyIC8qIEFwcGxlUGF5TGluZUl0ZW1EYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTU2RkM0QkIyNUQ0OUM3QjAwRjdCM0EzIC8qIEpT
QXBwbGVQYXlMaW5lSXRlbURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk1NkZDNEJBMjVENDlDN0QwMEY3QjNBMiAvKiBKU0FwcGxlUGF5TGluZUl0
ZW1EYXRhLmggKi87IH07CiAJCTk1QTFFMkU5MjVDQzc1QTkwMDI2OEM4RSAvKiBNZWRpYUNvbnRy
b2xzQ29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NUExRTJFNzI1Q0M3NUE4MDAyNjhDOEUgLyogTWVkaWFDb250cm9sc0NvbnRl
eHRNZW51SXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CkBAIC0zMTI1LDExICszMTI5LDExIEBACiAJCUExMjUzOEQ0MTNGOUI2MEEwMDAyNDc1NCAv
KiBMYXlvdXRSZXBhaW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEExMjBBQ0EwMTNGOTk4MzcwMEZFNEFDNyAvKiBMYXlvdXRSZXBhaW50ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTI3MDVD
MzE2NTZCRDY1MDBDMkUyN0MgLyogR3JpZFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTI3MDVDMjE2NTZCRDY1MDBDMkUyN0MgLyogR3Jp
ZFBvc2l0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQTEyQTEwNTAxNjY0NDRGRDAwOEZBMzExIC8qIEdyaWRUcmFja1NpemUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMkExMDRFMTY2NDQ0REMw
MDhGQTMxMSAvKiBHcmlkVHJhY2tTaXplLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTEyQzU5RUUyMDM1RkM5QjAwMTIyMzZCIC8qIEFwcGxlUGF5
RXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFB
REZERkQ2MUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBheUVycm9yLmggKi87IH07CisJCUExMkM1
OUVFMjAzNUZDOUIwMDEyMjM2QiAvKiBBcHBsZVBheUVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURGREZENjFFNzFEOERGMDA4RjVEMzQgLyog
QXBwbGVQYXlFcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUExMkM1OUYwMjAzNUZDQUIwMDEyMjM2QiAvKiBBcHBsZVBheVBheW1lbnRBdXRo
b3JpemF0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQURGREZEODFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlQYXltZW50QXV0aG9y
aXphdGlvblJlc3VsdC5oICovOyB9OwotCQlBMTJDNTlGMTIwMzVGQ0JGMDAxMjIzNkIgLyogQXBw
bGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQURGREZEQTFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlQYXlt
ZW50TWV0aG9kVXBkYXRlLmggKi87IH07Ci0JCUExMkM1OUYyMjAzNUZDRDYwMDEyMjM2QiAvKiBB
cHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRGREMxRTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5
U2hpcHBpbmdDb250YWN0VXBkYXRlLmggKi87IH07Ci0JCUExMkM1OUYzMjAzNUZDRTIwMDEyMjM2
QiAvKiBBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURGREZERTFFNzFEOERGMDA4RjVEMzQgLyogQXBw
bGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oICovOyB9OworCQlBMTJDNTlGMTIwMzVGQ0JGMDAx
MjIzNkIgLyogQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURGREZEQTFFNzFEOERGMDA4RjVEMzQgLyog
QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTEyQzU5RjIyMDM1RkNENjAwMTIyMzZCIC8qIEFwcGxl
UGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQURGREZEQzFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlTaGlw
cGluZ0NvbnRhY3RVcGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlBMTJDNTlGMzIwMzVGQ0UyMDAxMjIzNkIgLyogQXBwbGVQYXlTaGlwcGlu
Z01ldGhvZFVwZGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMUFERkRGREUxRTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5U2hpcHBpbmdNZXRob2RV
cGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBMTJDNTlGOTIwMzYwQUNCMDAxMjIzNkIgLyogSlNBcHBsZVBheUVycm9yLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURGREZFMjFFNzFEQ0EwMDA4
RjVEMzQgLyogSlNBcHBsZVBheUVycm9yLmggKi87IH07CiAJCUExMkM1OUZCMjAzNjBCMDAwMDEy
MjM2QiAvKiBKU0FwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBREZERkU0MUU3MURDQTAwMDhG
NUQzNCAvKiBKU0FwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaCAqLzsgfTsKIAkJ
QTEyQzU5RkMyMDM2MEIyNzAwMTIyMzZCIC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURGREZF
NjFFNzFEQ0EwMDA4RjVEMzQgLyogSlNBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaCAqLzsg
fTsKQEAgLTMyMTMsOCArMzIxNyw4IEBACiAJCUExQUZFREU3MUY4QkZGNkQwMDg3MDEzRiAvKiBN
b2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEExQUZFREU1MUY4QkZGNkQwMDg3MDEzRiAvKiBNb2NrUGF5bWVudENv
b3JkaW5hdG9yLmNwcCAqLzsgfTsKIAkJQTFCNUIyOUUxQUFBODQ2RTAwOEI2MDQyIC8qIE1vY2tD
b250ZW50RmlsdGVyU2V0dGluZ3MuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTFCNUIyOUMxQUFBODQ2RTAwOEI2MDQyIC8qIE1vY2tDb250ZW50Rmls
dGVyU2V0dGluZ3MuY3BwICovOyB9OwogCQlBMUI1QjI5RjFBQUE4NDZGMDA4QjYwNDIgLyogTW9j
a0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTFCNUIyOUQxQUFBODQ2RTAwOEI2MDQyIC8qIE1vY2tDb250ZW50Rmls
dGVyU2V0dGluZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQlBMUJCODU5QzIxNTlBRUExMDA2N0UwN0QgLyogQXBwbGVQYXlFcnJvckNvZGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQkI4NTk5MjE1
OUFFQTEwMDY3RTA3RCAvKiBBcHBsZVBheUVycm9yQ29kZS5oICovOyB9OwotCQlBMUJCODVBMzIx
NTlBRjU3MDA2N0UwN0QgLyogQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFCQjg1QTAyMTU5QUY1NzAwNjdF
MDdEIC8qIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaCAqLzsgfTsKKwkJQTFCQjg1OUMyMTU5
QUVBMTAwNjdFMDdEIC8qIEFwcGxlUGF5RXJyb3JDb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUJCODU5OTIxNTlBRUExMDA2N0UwN0QgLyogQXBw
bGVQYXlFcnJvckNvZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQlBMUJCODVBMzIxNTlBRjU3MDA2N0UwN0QgLyogQXBwbGVQYXlFcnJvckNvbnRh
Y3RGaWVsZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QTFCQjg1QTAyMTU5QUY1NzAwNjdFMDdEIC8qIEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMUJCODVB
OTIxNTlCMDJDMDA2N0UwN0QgLyogTW9ja1BheW1lbnRFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFCQjg1QTYyMTU5QjAyQzAwNjdFMDdEIC8q
IE1vY2tQYXltZW50RXJyb3IuaCAqLzsgfTsKIAkJQTFCQjg1QjIyMTU5QjFBMTAwNjdFMDdEIC8q
IEpTQXBwbGVQYXlFcnJvckNvZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEExQkI4NUFFMjE1OUIxQTAwMDY3RTA3RCAvKiBKU0FwcGxlUGF5RXJyb3JD
b2RlLmggKi87IH07CiAJCUExQkI4NUIzMjE1OUIxQTEwMDY3RTA3RCAvKiBKU0FwcGxlUGF5RXJy
b3JDb250YWN0RmllbGQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExQkI4NUFGMjE1OUIxQTAwMDY3RTA3RCAvKiBKU0FwcGxlUGF5RXJyb3JDb250YWN0
RmllbGQuaCAqLzsgfTsKQEAgLTMyNDgsNyArMzI1Miw2IEBACiAJCUExREY1QUE2MUY3RjY0QkIw
MDU4QTQ3NyAvKiBQYXltZW50SGFuZGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTFERjVBQTQxRjdGNjRCQjAwNThBNDc3IC8qIFBheW1lbnRIYW5k
bGVyLmggKi87IH07CiAJCUExREY1QUFEMUY4MDc1RjAwMDU4QTQ3NyAvKiBBcHBsZVBheVJlcXVl
c3RCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MURGNUFBQTFGODA3NUYwMDA1OEE0NzcgLyogQXBwbGVQYXlSZXF1ZXN0QmFzZS5oICovOyB9Owog
CQlBMURGNUFCMzFGODA3NzUzMDA1OEE0NzcgLyogSlNBcHBsZVBheVJlcXVlc3RCYXNlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMURGNUFCMTFGODA3
NzUyMDA1OEE0NzcgLyogSlNBcHBsZVBheVJlcXVlc3RCYXNlLmggKi87IH07Ci0JCUExREZENTI1
MjMzNDU5M0YwMDQyRkNEQiAvKiBQYXltZW50TWV0aG9kVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMURGRDUyNDIzMzQ1OTNBMDA0MkZDREIg
LyogUGF5bWVudE1ldGhvZFVwZGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUExREZENTI2MjMzNDU5NDgwMDQyRkNEQiAvKiBQYXltZW50U3Vt
bWFyeUl0ZW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBBMURGRDUyMjIzMzQ1OTNBMDA0MkZDREIgLyogUGF5bWVudFN1bW1hcnlJdGVtcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExRTA4NjVGMjQ4
OUQyQjUwMEU0OTZEOSAvKiBBcHBsZVBheVNldHVwQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFFMDg2NUMyNDg5RDJCMTAwRTQ5
NkQ5IC8qIEFwcGxlUGF5U2V0dXBDb25maWd1cmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTFFMDg2NjAyNDg5RDJCQTAwRTQ5NkQ5IC8q
IEFwcGxlUGF5U2V0dXBGZWF0dXJlU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEExRTA4NjVFMjQ4OUQyQjEwMEU0OTZEOSAvKiBBcHBsZVBheVNl
dHVwRmVhdHVyZVN0YXRlLmggKi87IH07CkBAIC02NjY4LDcgKzY2NzEsNiBAQAogCQkxQUQ4Rjgx
OTExQ0FCOUU5MDBFOTNFNTQgLyogUGxhdGZvcm1TdHJhdGVnaWVzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtU3RyYXRlZ2llcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkxQUQ4RjgxQTExQ0FCOUU5MDBFOTNFNTQgLyogUGxhdGZvcm1TdHJhdGVn
aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBREE0QTFCMUQyMkYy
QzAwMDVBOUExNSAvKiBQYXltZW50TWVyY2hhbnRTZXNzaW9uQ29jb2EubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYXltZW50TWVyY2hhbnRTZXNzaW9uQ29jb2Eu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTFBREZERkQ1MUU3MUQ4REYwMDhGNUQz
NCAvKiBBcHBsZVBheUVycm9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEFwcGxlUGF5RXJyb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQURG
REZENjFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlFcnJvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBcHBsZVBheUVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTFBREZERkQ3MUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBheUVycm9yLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBBcHBsZVBheUVycm9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMUFERkRGRDgxRTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5UGF5bWVudEF1
dGhvcml6YXRpb25SZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBw
bGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTE3NzAsMTIgKzExNzcyLDIwIEBACiAJCTk0RTgzOTUwMURGQjI5QTQwMDdCQzZB
NyAvKiBDU1NOYW1lc3BhY2VSdWxlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBDU1NOYW1l
c3BhY2VSdWxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTRFODM5NTMxREZC
MkJBNjAwN0JDNkE3IC8qIEpTQ1NTTmFtZXNwYWNlUnVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0NTU05hbWVzcGFjZVJ1bGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5NEU4Mzk1NDFERkIyQkE2MDA3QkM2QTcgLyogSlNDU1NOYW1lc3Bh
Y2VSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ1NTTmFtZXNwYWNl
UnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTAxODNDOTI1RDYzM0Q4MDBE
NDM0MEYgLyogQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTk1MDE4M0NCMjVENjMzRDgwMEQ0MzQwRiAvKiBBcHBsZVBheURldGFpbHNVcGRh
dGVCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxlUGF5RGV0YWls
c1VwZGF0ZUJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUwQzQ4NDkyNUQ2
Nzc0MjAwQUIzRDlDIC8qIG92ZXJmbG93LXN1cHBvcnQuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IHBhdGgg
PSAib3ZlcmZsb3ctc3VwcG9ydC5qcyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1
MEM0ODRCMjVENjc3NEUwMEFCM0Q5QyAvKiBvdmVyZmxvdy1idXR0b24uanMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3Jp
cHQ7IHBhdGggPSAib3ZlcmZsb3ctYnV0dG9uLmpzIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTUwQzRDMDJCRUQ4OTM2RjgxOEUyRjk5IC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR0dyYXBoaWNzRWxlbWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTIwNzYwMDFGMjY3NUY5MDA3RDJBQUIg
LyogQ2FsbFRyYWNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWxsVHJhY2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTUyMDc2MDExRjI2NzVGOTAwN0QyQUFCIC8qIENh
bGxUcmFjZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FsbFRyYWNlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5NTIwNzYwMjFGMjY3NUY5MDA3RDJBQUIgLyogQ2FsbFRyYWNlclR5cGVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENhbGxUcmFjZXJUeXBlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5NTI3RDdBODI1RDVGREUxMDBBNkUxNzYgLyogQXBwbGVQYXlEZXRhaWxzVXBk
YXRlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZVBheURldGFp
bHNVcGRhdGVEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1MjdEN0FBMjVE
NUZERTEwMEE2RTE3NiAvKiBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJOTUyN0Q3QUQyNUQ1RkU2QjAwQTZFMTc2IC8qIEpTQXBwbGVQYXlE
ZXRhaWxzVXBkYXRlRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0Fw
cGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTUyN0Q3QUUyNUQ1RkU2QjAwQTZFMTc2IC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FwcGxlUGF5RGV0YWls
c1VwZGF0ZURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTNCQ0VBRjI1
RDYyODNDMDBBNEEyQTEgLyogSlNBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTNCQ0VCMTI1RDYyODNDMDBBNEEyQTEgLyog
SlNBcHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk1NkZDNEI4MjVENDlDN0EwMEY3QjNBMiAvKiBBcHBsZVBheUxp
bmVJdGVtRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZVBheUxp
bmVJdGVtRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NTZGQzRCODI1RDQ5
QzdDMDBGN0IzQTIgLyogSlNBcHBsZVBheUxpbmVJdGVtRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FwcGxlUGF5TGluZUl0ZW1EYXRhLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTU2RkM0QkEyNUQ0OUM3QjAwRjdCM0EyIC8qIEFwcGxl
UGF5TGluZUl0ZW1EYXRhLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBcHBsZVBheUxpbmVJ
dGVtRGF0YS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjM4Niw5ICsxMjM5
Niw3IEBACiAJCUExREY1QUIxMUY4MDc3NTIwMDU4QTQ3NyAvKiBKU0FwcGxlUGF5UmVxdWVzdEJh
c2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBcHBsZVBheVJlcXVlc3RC
YXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExREY1QUI0MUY4MDc4RjMwMDU4
QTQ3NyAvKiBBcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBcHBs
ZVBheUNvbnRhY3RGaWVsZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExREZE
NTIyMjMzNDU5M0EwMDQyRkNEQiAvKiBQYXltZW50U3VtbWFyeUl0ZW1zLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFBheW1lbnRTdW1tYXJ5SXRlbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
QTFERkQ1MjQyMzM0NTkzQTAwNDJGQ0RCIC8qIFBheW1lbnRNZXRob2RVcGRhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gUGF5bWVudE1ldGhvZFVwZGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBMURGRDUyNzIzMzQ1OTczMDA0MkZDREIgLyogUGF5bWVudFN1bW1hcnlJdGVtc0NvY29h
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGF5bWVudFN1bW1hcnlJdGVtc0NvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBMURGRDUyODIzMzQ1OTc0MDA0MkZDREIgLyog
UGF5bWVudE1ldGhvZFVwZGF0ZUNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGF5bWVu
dE1ldGhvZFVwZGF0ZUNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUUw
ODY1QTI0ODlEMkIwMDBFNDk2RDkgLyogQXBwbGVQYXlTZXR1cEZlYXR1cmVTdGF0ZS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gQXBwbGVQYXlTZXR1cEZlYXR1cmVTdGF0ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUExRTA4NjVDMjQ4OUQyQjEwMEU0OTZEOSAvKiBBcHBsZVBheVNldHVwQ29uZmlndXJh
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZVBheVNldHVwQ29uZmlndXJhdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMUUwODY1RDI0ODlEMkIxMDBFNDk2RDkgLyogQXBw
bGVQYXlTZXR1cENvbmZpZ3VyYXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEFwcGxlUGF5U2V0dXBDb25maWd1cmF0
aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MzM3LDcgKzE4MzQ1LDEw
IEBACiAJCQkJQTFERjVBQjQxRjgwNzhGMzAwNThBNDc3IC8qIEFwcGxlUGF5Q29udGFjdEZpZWxk
LmNwcCAqLywKIAkJCQlBMURGNUE5MTFGN0VDNDMyMDA1OEE0NzcgLyogQXBwbGVQYXlDb250YWN0
RmllbGQuaCAqLywKIAkJCQlBMURGNUE5MzFGN0VDNDMyMDA1OEE0NzcgLyogQXBwbGVQYXlDb250
YWN0RmllbGQuaWRsICovLAotCQkJCTFBREZERkQ1MUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBh
eUVycm9yLmNwcCAqLywKKwkJCQk5NTAxODNDQjI1RDYzM0Q4MDBENDM0MEYgLyogQXBwbGVQYXlE
ZXRhaWxzVXBkYXRlQmFzZS5oICovLAorCQkJCTk1MDE4M0M5MjVENjMzRDgwMEQ0MzQwRiAvKiBB
cHBsZVBheURldGFpbHNVcGRhdGVCYXNlLmlkbCAqLywKKwkJCQk5NTI3RDdBODI1RDVGREUxMDBB
NkUxNzYgLyogQXBwbGVQYXlEZXRhaWxzVXBkYXRlRGF0YS5oICovLAorCQkJCTk1MjdEN0FBMjVE
NUZERTEwMEE2RTE3NiAvKiBBcHBsZVBheURldGFpbHNVcGRhdGVEYXRhLmlkbCAqLywKIAkJCQkx
QURGREZENjFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlFcnJvci5oICovLAogCQkJCTFBREZE
RkQ3MUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBheUVycm9yLmlkbCAqLywKIAkJCQlBMUJCODU5
OTIxNTlBRUExMDA2N0UwN0QgLyogQXBwbGVQYXlFcnJvckNvZGUuaCAqLywKQEAgLTE4NDMxLDcg
KzE4NDQyLDYgQEAKIAkJCQk1QzUzRENDRTI0NDY0NDk5MDBBOTMxMjQgLyogUGF5bWVudEluc3Rh
bGxtZW50Q29uZmlndXJhdGlvbldlYkNvcmUuaCAqLywKIAkJCQkxQUU5NkE4NzFEMUEwQ0VCMDBC
ODY3NjggLyogUGF5bWVudE1lcmNoYW50U2Vzc2lvbi5oICovLAogCQkJCTFBOEE2NDM5MUQxOUZD
NTMwMEQwRTAwRiAvKiBQYXltZW50TWV0aG9kLmggKi8sCi0JCQkJQTFERkQ1MjQyMzM0NTkzQTAw
NDJGQ0RCIC8qIFBheW1lbnRNZXRob2RVcGRhdGUuaCAqLywKIAkJCQkxQThBNjQ2NjFEMTlGREZG
MDBEMEUwMEYgLyogUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IuaCAqLywKIAkJCQkxQThBNjQ2NTFE
MTlGREZGMDBEMEUwMEYgLyogUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW0gKi8sCiAJCQkJQTFD
MkM1NzUxRkEyODUxNjAwQkE0NkZBIC8qIFBheW1lbnRTZXNzaW9uLmNwcCAqLywKQEAgLTE4NDUw
LDcgKzE4NDYwLDYgQEAKIAkJCQkxQThBNjQ2QTFEMTlGRjg3MDBEMEUwMEYgLyogUGF5bWVudENv
bnRhY3RDb2NvYS5tbSAqLywKIAkJCQkxQURBNEExQjFEMjJGMkMwMDA1QTlBMTUgLyogUGF5bWVu
dE1lcmNoYW50U2Vzc2lvbkNvY29hLm1tICovLAogCQkJCTFBOEE2NDZCMUQxOUZGODcwMEQwRTAw
RiAvKiBQYXltZW50TWV0aG9kQ29jb2EubW0gKi8sCi0JCQkJQTFERkQ1MjgyMzM0NTk3NDAwNDJG
Q0RCIC8qIFBheW1lbnRNZXRob2RVcGRhdGVDb2NvYS5tbSAqLywKIAkJCQlBMTEzRTAyQTIzMzE4
RUJDMDA5QzMzQTAgLyogUGF5bWVudFNlc3Npb25FcnJvckNvY29hLm1tICovLAogCQkJCUExREZE
NTI3MjMzNDU5NzMwMDQyRkNEQiAvKiBQYXltZW50U3VtbWFyeUl0ZW1zQ29jb2EubW0gKi8sCiAJ
CQkpOwpAQCAtMTg1NTAsNiArMTg1NTksMTAgQEAKIAkJCQlBMTk1NkYxQjIzMzFBNjQ2MDA1N0U5
RDIgLyogSlNBcHBsZVBheUNhbmNlbEV2ZW50LmggKi8sCiAJCQkJQTFERjVBOTgxRjdFQzhDMDAw
NThBNDc3IC8qIEpTQXBwbGVQYXlDb250YWN0RmllbGQuY3BwICovLAogCQkJCUExREY1QTk3MUY3
RUM4QkYwMDU4QTQ3NyAvKiBKU0FwcGxlUGF5Q29udGFjdEZpZWxkLmggKi8sCisJCQkJOTUzQkNF
QjEyNUQ2MjgzQzAwQTRBMkExIC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5jcHAgKi8s
CisJCQkJOTUzQkNFQUYyNUQ2MjgzQzAwQTRBMkExIC8qIEpTQXBwbGVQYXlEZXRhaWxzVXBkYXRl
QmFzZS5oICovLAorCQkJCTk1MjdEN0FFMjVENUZFNkIwMEE2RTE3NiAvKiBKU0FwcGxlUGF5RGV0
YWlsc1VwZGF0ZURhdGEuY3BwICovLAorCQkJCTk1MjdEN0FEMjVENUZFNkIwMEE2RTE3NiAvKiBK
U0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaCAqLywKIAkJCQkxQURGREZFMTFFNzFEQ0EwMDA4
RjVEMzQgLyogSlNBcHBsZVBheUVycm9yLmNwcCAqLywKIAkJCQkxQURGREZFMjFFNzFEQ0EwMDA4
RjVEMzQgLyogSlNBcHBsZVBheUVycm9yLmggKi8sCiAJCQkJQTFCQjg1QUQyMTU5QjFBMDAwNjdF
MDdEIC8qIEpTQXBwbGVQYXlFcnJvckNvZGUuY3BwICovLApAQCAtMzExODIsNiArMzExOTUsOCBA
QAogCQkJCTQ0MjUwNzA5MjU4MjlBMjcwMEMwOTM2OCAvKiBBcHBIaWdobGlnaHRTdG9yYWdlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBMTEzRTAyRTIzMzFBMTM0MDA5QzMzQTAgLyogQXBwbGVQYXlD
YW5jZWxFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFERjVBOTQxRjdFQzQzMjAwNThBNDc3
IC8qIEFwcGxlUGF5Q29udGFjdEZpZWxkLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NTAxODNDRDI1
RDYzM0Q5MDBENDM0MEYgLyogQXBwbGVQYXlEZXRhaWxzVXBkYXRlQmFzZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJOTUyN0Q3QUIyNUQ1RkRFMjAwQTZFMTc2IC8qIEFwcGxlUGF5RGV0YWlsc1VwZGF0
ZURhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMkM1OUVFMjAzNUZDOUIwMDEyMjM2QiAvKiBB
cHBsZVBheUVycm9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUJCODU5QzIxNTlBRUExMDA2N0Uw
N0QgLyogQXBwbGVQYXlFcnJvckNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUExQkI4NUEzMjE1
OUFGNTcwMDY3RTA3RCAvKiBBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmggaW4gSGVhZGVycyAq
LywKQEAgLTMyNzQ5LDYgKzMyNzY0LDggQEAKIAkJCQk3MTAyNUVERTFGOTlGMUVDMDA0QTI1MEMg
LyogSlNBbmltYXRpb25UaW1lbGluZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE5NTZGMUMyMzMx
QTY3NzAwNTdFOUQyIC8qIEpTQXBwbGVQYXlDYW5jZWxFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTFERjVBOTkxRjdFQzhDMDAwNThBNDc3IC8qIEpTQXBwbGVQYXlDb250YWN0RmllbGQuaCBp
biBIZWFkZXJzICovLAorCQkJCTk1M0JDRUIyMjVENjI4M0QwMEE0QTJBMSAvKiBKU0FwcGxlUGF5
RGV0YWlsc1VwZGF0ZUJhc2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1MjdEN0FGMjVENUZFNkMw
MEE2RTE3NiAvKiBKU0FwcGxlUGF5RGV0YWlsc1VwZGF0ZURhdGEuaCBpbiBIZWFkZXJzICovLAog
CQkJCUExMkM1OUY5MjAzNjBBQ0IwMDEyMjM2QiAvKiBKU0FwcGxlUGF5RXJyb3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUExQkI4NUIyMjE1OUIxQTEwMDY3RTA3RCAvKiBKU0FwcGxlUGF5RXJyb3JD
b2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUJCODVCMzIxNTlCMUExMDA2N0UwN0QgLyogSlNB
cHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmggaW4gSGVhZGVycyAqLywKQEAgLTM0MDg2LDcgKzM0
MTAzLDYgQEAKIAkJCQkxQThBNjQzQzFEMTlGQzUzMDBEMEUwMEYgLyogUGF5bWVudE1ldGhvZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTE2NEEyNDcyMTM0QkM3MTAwNTA5MTU2IC8qIFBheW1lbnRN
ZXRob2RDaGFuZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFGNzZCMTkxRjQ0QzM5MDAw
MTRDMzE4IC8qIFBheW1lbnRNZXRob2REYXRhLmggaW4gSGVhZGVycyAqLywKLQkJCQlBMURGRDUy
NTIzMzQ1OTNGMDA0MkZDREIgLyogUGF5bWVudE1ldGhvZFVwZGF0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTFGNzZCMkIxRjQ0QzRFRjAwMTRDMzE4IC8qIFBheW1lbnRPcHRpb25zLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBMUY3NkIxMzFGNDRDMjQ1MDAxNEMzMTggLyogUGF5bWVudFJlcXVlc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCUExRjYwMDQ0MUY0NzU3QTkwMDc3RTgzRiAvKiBQYXltZW50
UmVxdWVzdFVwZGF0ZUV2ZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAKaW5kZXggMmIzOWEwZDY1YmQ4N2IzNjkwN2VhNjY3MmUwZjk1MWY5MjRh
YWJhMC4uZWJlYzUyZjliNWVlOTkyYTgwODMwNWNjMmI0MWMyNzliMzRhZDRiNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTM2NCw5ICszNjQsOSBAQCBjbGFzcyBF
bXB0eVBheW1lbnRDb29yZGluYXRvckNsaWVudCBmaW5hbCA6IHB1YmxpYyBQYXltZW50Q29vcmRp
bmF0b3JDbGllbnQgewogICAgIHZvaWQgb3BlblBheW1lbnRTZXR1cChjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKSBmaW5hbCB7IGNhbGxPbk1haW5UaHJlYWQoW2NvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7IGNvbXBsZXRpb25IYW5kbGVyKGZh
bHNlKTsgfSk7IH0KICAgICBib29sIHNob3dQYXltZW50VUkoY29uc3QgVVJMJiwgY29uc3QgVmVj
dG9yPFVSTD4mLCBjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYpIGZpbmFsIHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdm9pZCBjb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25z
dCBQYXltZW50TWVyY2hhbnRTZXNzaW9uJikgZmluYWwgeyB9Ci0gICAgdm9pZCBjb21wbGV0ZVNo
aXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKSBm
aW5hbCB7IH0KLSAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlv
bmFsPFNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJikgZmluYWwgeyB9Ci0gICAgdm9pZCBjb21wbGV0
ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikg
ZmluYWwgeyB9CisgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlv
bmFsPEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYpIGZpbmFsIHsgfQorICAgIHZvaWQg
Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlTaGlwcGlu
Z0NvbnRhY3RVcGRhdGU+JiYpIGZpbmFsIHsgfQorICAgIHZvaWQgY29tcGxldGVQYXltZW50TWV0
aG9kU2VsZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikgZmlu
YWwgeyB9CiAgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRTZXNzaW9uKE9wdGlvbmFsPFBheW1lbnRB
dXRob3JpemF0aW9uUmVzdWx0PiYmKSBmaW5hbCB7IH0KICAgICB2b2lkIGNhbmNlbFBheW1lbnRT
ZXNzaW9uKCkgZmluYWwgeyB9CiAgICAgdm9pZCBhYm9ydFBheW1lbnRTZXNzaW9uKCkgZmluYWwg
eyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRp
bmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9y
LmNwcAppbmRleCAxNmMxZDk2OTcyMTA5Y2RmYTIxZDI0YjIxMTIyMGMyZWM1MjIyYmQ0Li4yMjJi
NzgxZGEwM2Y2ZWIyNDhkOGY0MDVjODU0OThlNTczMDk5OGZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5jcHAKQEAgLTI4LDE0ICsyOCwx
NiBAQAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAorI2luY2x1ZGUgIkFwcGxlUGF5UGF5bWVu
dE1ldGhvZFVwZGF0ZS5oIgogI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaCIKKyNpbmNsdWRl
ICJBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVkZSAiTW9ja0FwcGxlUGF5
U2V0dXBGZWF0dXJlLmgiCiAjaW5jbHVkZSAiTW9ja1BheW1lbnQuaCIKICNpbmNsdWRlICJNb2Nr
UGF5bWVudENvbnRhY3QuaCIKICNpbmNsdWRlICJNb2NrUGF5bWVudE1ldGhvZC5oIgogI2luY2x1
ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYXltZW50Q29vcmRpbmF0b3IuaCIKLSNpbmNsdWRlICJQ
YXltZW50TWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVkZSAiUGF5bWVudFNlc3Npb25FcnJvci5oIgog
I2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29w
Lmg+CkBAIC05NiwxOCArOTgsMTEgQEAgc3RhdGljIHZvaWQgZGlzcGF0Y2hJZlNob3dpbmcoRnVu
Y3Rpb248dm9pZCgpPiYmIGZ1bmN0aW9uKQogICAgIH0pOwogfQogCi1zdGF0aWMgVmVjdG9yPEFw
cGxlUGF5U2hpcHBpbmdNZXRob2Q+IGNvbnZlcnQoY29uc3QgVmVjdG9yPEFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4mIHNoaXBwaW5nTWV0aG9kcykKLXsKLSAg
ICByZXR1cm4gV1RGOjptYXAoc2hpcHBpbmdNZXRob2RzLCBbXSAoYXV0byYgc2hpcHBpbmdNZXRo
b2QpIHsKLSAgICAgICAgcmV0dXJuIEFwcGxlUGF5U2hpcHBpbmdNZXRob2QgeyBzaGlwcGluZ01l
dGhvZC5sYWJlbCwgc2hpcHBpbmdNZXRob2QuZGV0YWlsLCBzaGlwcGluZ01ldGhvZC5hbW91bnQs
IHNoaXBwaW5nTWV0aG9kLmlkZW50aWZpZXIgfTsKLSAgICB9KTsKLX0KLQogYm9vbCBNb2NrUGF5
bWVudENvb3JkaW5hdG9yOjpzaG93UGF5bWVudFVJKGNvbnN0IFVSTCYsIGNvbnN0IFZlY3RvcjxV
Ukw+JiwgY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QmIHJlcXVlc3QpCiB7CiAg
ICAgaWYgKHJlcXVlc3Quc2hpcHBpbmdDb250YWN0KCkucGtDb250YWN0KCkpCiAgICAgICAgIG1f
c2hpcHBpbmdBZGRyZXNzID0gcmVxdWVzdC5zaGlwcGluZ0NvbnRhY3QoKS50b0FwcGxlUGF5UGF5
bWVudENvbnRhY3QocmVxdWVzdC52ZXJzaW9uKCkpOwotICAgIG1fc2hpcHBpbmdNZXRob2RzID0g
Y29udmVydChyZXF1ZXN0LnNoaXBwaW5nTWV0aG9kcygpKTsKKyAgICBtX3NoaXBwaW5nTWV0aG9k
cyA9IHJlcXVlc3Quc2hpcHBpbmdNZXRob2RzKCk7CiAgICAgbV9yZXF1aXJlZEJpbGxpbmdDb250
YWN0RmllbGRzID0gcmVxdWVzdC5yZXF1aXJlZEJpbGxpbmdDb250YWN0RmllbGRzKCk7CiAgICAg
bV9yZXF1aXJlZFNoaXBwaW5nQ29udGFjdEZpZWxkcyA9IHJlcXVlc3QucmVxdWlyZWRTaGlwcGlu
Z0NvbnRhY3RGaWVsZHMoKTsKICNpZiBFTkFCTEUoQVBQTEVfUEFZX0lOU1RBTExNRU5UUykKQEAg
LTEyOSwzOCArMTI0LDQ5IEBAIHZvaWQgTW9ja1BheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVN
ZXJjaGFudFZhbGlkYXRpb24oY29uc3QgUGF5bWVudE1lcmNoYW50U2VzCiAgICAgfSk7CiB9CiAK
LXZvaWQgTW9ja1BheW1lbnRDb29yZGluYXRvcjo6dXBkYXRlVG90YWxBbmRMaW5lSXRlbXMoY29u
c3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zJiB0b3Rh
bEFuZExpbmVJdGVtcykKK3ZvaWQgTW9ja1BheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVTaGlw
cGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRl
PiYmIHNoaXBwaW5nTWV0aG9kVXBkYXRlKQogewotICAgIG1fdG90YWwgPSB0b3RhbEFuZExpbmVJ
dGVtcy50b3RhbDsKLSAgICBtX2xpbmVJdGVtcyA9IHRvdGFsQW5kTGluZUl0ZW1zLmxpbmVJdGVt
czsKKyAgICBpZiAoIXNoaXBwaW5nTWV0aG9kVXBkYXRlKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3RvdGFsID0gV1RGTW92ZShzaGlwcGluZ01ldGhvZFVwZGF0ZS0+bmV3VG90YWwpOworICAg
IG1fbGluZUl0ZW1zID0gV1RGTW92ZShzaGlwcGluZ01ldGhvZFVwZGF0ZS0+bmV3TGluZUl0ZW1z
KTsKIH0KIAotdm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nTWV0
aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmIHNoaXBwaW5nTWV0
aG9kVXBkYXRlKQorc3RhdGljIFZlY3RvcjxNb2NrUGF5bWVudEVycm9yPiBjb252ZXJ0KFZlY3Rv
cjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+JiYgZXJyb3JzKQogewotICAgIGlmIChzaGlwcGluZ01l
dGhvZFVwZGF0ZSkKLSAgICAgICAgdXBkYXRlVG90YWxBbmRMaW5lSXRlbXMoc2hpcHBpbmdNZXRo
b2RVcGRhdGUtPm5ld1RvdGFsQW5kTGluZUl0ZW1zKTsKKyAgICBWZWN0b3I8TW9ja1BheW1lbnRF
cnJvcj4gcmVzdWx0OworICAgIGZvciAoYXV0byYgZXJyb3IgOiBlcnJvcnMpIHsKKyAgICAgICAg
aWYgKGVycm9yKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh7IGVycm9yLT5jb2RlKCksIGVy
cm9yLT5tZXNzYWdlKCksIGVycm9yLT5jb250YWN0RmllbGQoKSB9KTsKKyAgICB9CisgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNo
aXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYg
c2hpcHBpbmdDb250YWN0VXBkYXRlKQordm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjb21w
bGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxBcHBsZVBheVNoaXBwaW5nQ29u
dGFjdFVwZGF0ZT4mJiBzaGlwcGluZ0NvbnRhY3RVcGRhdGUpCiB7CiAgICAgaWYgKCFzaGlwcGlu
Z0NvbnRhY3RVcGRhdGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fc2hpcHBpbmdNZXRob2Rz
ID0gY29udmVydChzaGlwcGluZ0NvbnRhY3RVcGRhdGUtPm5ld1NoaXBwaW5nTWV0aG9kcyk7Ci0g
ICAgdXBkYXRlVG90YWxBbmRMaW5lSXRlbXMoc2hpcHBpbmdDb250YWN0VXBkYXRlLT5uZXdUb3Rh
bEFuZExpbmVJdGVtcyk7Ci0gICAgbV9lcnJvcnMgPSBXVEZNb3ZlKHNoaXBwaW5nQ29udGFjdFVw
ZGF0ZS0+ZXJyb3JzKTsKKyAgICBtX3RvdGFsID0gV1RGTW92ZShzaGlwcGluZ0NvbnRhY3RVcGRh
dGUtPm5ld1RvdGFsKTsKKyAgICBtX2xpbmVJdGVtcyA9IFdURk1vdmUoc2hpcHBpbmdDb250YWN0
VXBkYXRlLT5uZXdMaW5lSXRlbXMpOworICAgIG1fZXJyb3JzID0gY29udmVydChXVEZNb3ZlKHNo
aXBwaW5nQ29udGFjdFVwZGF0ZS0+ZXJyb3JzKSk7CisgICAgbV9zaGlwcGluZ01ldGhvZHMgPSBX
VEZNb3ZlKHNoaXBwaW5nQ29udGFjdFVwZGF0ZS0+bmV3U2hpcHBpbmdNZXRob2RzKTsKIH0KIAot
dm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rp
b24oT3B0aW9uYWw8UGF5bWVudE1ldGhvZFVwZGF0ZT4mJiBwYXltZW50TWV0aG9kVXBkYXRlKQor
dm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rp
b24oT3B0aW9uYWw8QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlPiYmIHBheW1lbnRNZXRob2RV
cGRhdGUpCiB7Ci0gICAgaWYgKHBheW1lbnRNZXRob2RVcGRhdGUpCi0gICAgICAgIHVwZGF0ZVRv
dGFsQW5kTGluZUl0ZW1zKHBheW1lbnRNZXRob2RVcGRhdGUtPnRvdGFsQW5kTGluZUl0ZW1zKCkp
OworICAgIGlmICghcGF5bWVudE1ldGhvZFVwZGF0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV90b3RhbCA9IFdURk1vdmUocGF5bWVudE1ldGhvZFVwZGF0ZS0+bmV3VG90YWwpOworICAgIG1f
bGluZUl0ZW1zID0gV1RGTW92ZShwYXltZW50TWV0aG9kVXBkYXRlLT5uZXdMaW5lSXRlbXMpOwog
fQogCiB2b2lkIE1vY2tQYXltZW50Q29vcmRpbmF0b3I6OmNoYW5nZVNoaXBwaW5nT3B0aW9uKFN0
cmluZyYmIHNoaXBwaW5nT3B0aW9uKQogewogICAgIGRpc3BhdGNoSWZTaG93aW5nKFtwYWdlID0g
Jm1fcGFnZSwgc2hpcHBpbmdPcHRpb24gPSBXVEZNb3ZlKHNoaXBwaW5nT3B0aW9uKV0oKSBtdXRh
YmxlIHsKLSAgICAgICAgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0
aG9kIHNoaXBwaW5nTWV0aG9kOworICAgICAgICBBcHBsZVBheVNoaXBwaW5nTWV0aG9kIHNoaXBw
aW5nTWV0aG9kOwogICAgICAgICBzaGlwcGluZ01ldGhvZC5pZGVudGlmaWVyID0gV1RGTW92ZShz
aGlwcGluZ09wdGlvbik7CiAgICAgICAgIHBhZ2UtPnBheW1lbnRDb29yZGluYXRvcigpLmRpZFNl
bGVjdFNoaXBwaW5nTWV0aG9kKHNoaXBwaW5nTWV0aG9kKTsKICAgICB9KTsKQEAgLTE5NCw3ICsy
MDAsNyBAQCB2b2lkIE1vY2tQYXltZW50Q29vcmRpbmF0b3I6OmNhbmNlbFBheW1lbnQoKQogdm9p
ZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVBheW1lbnRTZXNzaW9uKE9wdGlvbmFs
PFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYmIHJlc3VsdCkKIHsKICAgICBhdXRvIGlzRmlu
YWxTdGF0ZSA9IGlzRmluYWxTdGF0ZVJlc3VsdChyZXN1bHQpOwotICAgIG1fZXJyb3JzID0gV1RG
TW92ZShyZXN1bHQtPmVycm9ycyk7CisgICAgbV9lcnJvcnMgPSBjb252ZXJ0KFdURk1vdmUocmVz
dWx0LT5lcnJvcnMpKTsKIAogICAgIGlmICghaXNGaW5hbFN0YXRlKQogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5oCmlu
ZGV4IDQzNGFlNTY1MDIyOTk2NjgwMTQ5MzBmZDQ4YmZkNDZhNmE5NmNhYWMuLmI3ZGIwOTA2MmQ2
MmU5YmYxMzM2MDc4OTYyMWE1M2U0MTQ1MTlkZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5oCkBAIC04Miw5ICs4Miw5IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBvcGVuUGF5bWVudFNldHVwKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogICAgIGJvb2wgc2hvd1Bh
eW1lbnRVSShjb25zdCBVUkwmLCBjb25zdCBWZWN0b3I8VVJMPiYsIGNvbnN0IEFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0JikgZmluYWw7CiAgICAgdm9pZCBjb21wbGV0ZU1lcmNoYW50VmFs
aWRhdGlvbihjb25zdCBQYXltZW50TWVyY2hhbnRTZXNzaW9uJikgZmluYWw7Ci0gICAgdm9pZCBj
b21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFNoaXBwaW5nTWV0aG9kVXBk
YXRlPiYmKSBmaW5hbDsKLSAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9u
KE9wdGlvbmFsPFNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJikgZmluYWw7Ci0gICAgdm9pZCBjb21w
bGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8UGF5bWVudE1ldGhvZFVwZGF0ZT4m
JikgZmluYWw7CisgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlv
bmFsPEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYpIGZpbmFsOworICAgIHZvaWQgY29t
cGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8QXBwbGVQYXlTaGlwcGluZ0Nv
bnRhY3RVcGRhdGU+JiYpIGZpbmFsOworICAgIHZvaWQgY29tcGxldGVQYXltZW50TWV0aG9kU2Vs
ZWN0aW9uKE9wdGlvbmFsPEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikgZmluYWw7CiAg
ICAgdm9pZCBjb21wbGV0ZVBheW1lbnRTZXNzaW9uKE9wdGlvbmFsPFBheW1lbnRBdXRob3JpemF0
aW9uUmVzdWx0PiYmKSBmaW5hbDsKICAgICB2b2lkIGFib3J0UGF5bWVudFNlc3Npb24oKSBmaW5h
bDsKICAgICB2b2lkIGNhbmNlbFBheW1lbnRTZXNzaW9uKCkgZmluYWw7CkBAIC05Nyw4ICs5Nyw2
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRTZXR1cEZlYXR1cmVzKGNvbnN0IEFwcGxlUGF5U2V0
dXBDb25maWd1cmF0aW9uJiwgY29uc3QgVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0
b3I8UmVmPEFwcGxlUGF5U2V0dXBGZWF0dXJlPj4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgYmVn
aW5BcHBsZVBheVNldHVwKGNvbnN0IEFwcGxlUGF5U2V0dXBDb25maWd1cmF0aW9uJiwgY29uc3Qg
VVJMJiwgVmVjdG9yPFJlZlB0cjxBcHBsZVBheVNldHVwRmVhdHVyZT4+JiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwogCi0gICAgdm9pZCB1cGRhdGVUb3RhbEFuZExp
bmVJdGVtcyhjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5l
SXRlbXMmKTsKLQogICAgIFBhZ2UmIG1fcGFnZTsKICAgICBib29sIG1fY2FuTWFrZVBheW1lbnRz
IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9jYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZCB7IHRy
dWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRFcnJv
ci5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudEVycm9yLmgKaW5kZXggY2Rl
MzhlZjUwMWM2MGNiMTQwZDlhN2U3YzExMjYwOWQ1MzdiYzUzZS4uNWJjMWNhMTE5NjMxM2IzODA4
NDFiNDVkZDczYzUwNDMyZjA2MmI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrUGF5bWVudEVycm9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5
bWVudEVycm9yLmgKQEAgLTI3LDExICsyNywxNiBAQAogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkK
IAotI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgiCisjaW5jbHVkZSAi
QXBwbGVQYXlFcnJvckNvZGUuaCIKKyNpbmNsdWRlICJBcHBsZVBheUVycm9yQ29udGFjdEZpZWxk
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgTW9ja1BheW1lbnRFcnJvciA9IFBh
eW1lbnRFcnJvcjsKK3N0cnVjdCBNb2NrUGF5bWVudEVycm9yIHsKKyAgICBBcHBsZVBheUVycm9y
Q29kZSBjb2RlOworICAgIFN0cmluZyBtZXNzYWdlOworICAgIE9wdGlvbmFsPEFwcGxlUGF5RXJy
b3JDb250YWN0RmllbGQ+IGNvbnRhY3RGaWVsZDsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9QYXltZW50QXV0
aG9yaXphdGlvblByZXNlbnRlci5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9QYXlt
ZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5oCmluZGV4IGZjNzY0YTEwMGU1MjE4NTRjMDc3OTYz
YmQ0NGNhYTgzZjE5MDI4MzAuLjg2MWM4NThkYWU2MmMyNmU5ZDBmZjA5MGYxZWMxZGRmNDU5MzAx
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvUGF5bWVudEF1dGhv
cml6YXRpb25QcmVzZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL1Bh
eW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyLmgKQEAgLTQxLDggKzQxLDExIEBAIGNsYXNzIFBh
eW1lbnQ7CiBjbGFzcyBQYXltZW50Q29udGFjdDsKIGNsYXNzIFBheW1lbnRNZXJjaGFudFNlc3Np
b247CiBjbGFzcyBQYXltZW50TWV0aG9kOwotY2xhc3MgUGF5bWVudE1ldGhvZFVwZGF0ZTsKIGNs
YXNzIFBheW1lbnRTZXNzaW9uRXJyb3I7CitzdHJ1Y3QgQXBwbGVQYXlQYXltZW50TWV0aG9kVXBk
YXRlOworc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlOworc3RydWN0IEFwcGxl
UGF5U2hpcHBpbmdNZXRob2Q7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZTsK
IH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC01OCw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICAg
ICAgdmlydHVhbCB2b2lkIHByZXNlbnRlckRpZEZpbmlzaChQYXltZW50QXV0aG9yaXphdGlvblBy
ZXNlbnRlciYsIFdlYkNvcmU6OlBheW1lbnRTZXNzaW9uRXJyb3ImJikgPSAwOwogICAgICAgICB2
aXJ0dWFsIHZvaWQgcHJlc2VudGVyRGlkU2VsZWN0UGF5bWVudE1ldGhvZChQYXltZW50QXV0aG9y
aXphdGlvblByZXNlbnRlciYsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXRob2QmKSA9IDA7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBwcmVzZW50ZXJEaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3QoUGF5
bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50Q29udGFj
dCYpID0gMDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHByZXNlbnRlckRpZFNlbGVjdFNoaXBwaW5n
TWV0aG9kKFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyJiwgY29uc3QgV2ViQ29yZTo6QXBw
bGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJikgPSAwOworICAgICAg
ICB2aXJ0dWFsIHZvaWQgcHJlc2VudGVyRGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoUGF5bWVudEF1
dGhvcml6YXRpb25QcmVzZW50ZXImLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0
aG9kJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcHJlc2VudGVyV2lsbFZhbGlkYXRlTWVy
Y2hhbnQoUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXImLCBjb25zdCBVUkwmKSA9IDA7CiAg
ICAgfTsKIApAQCAtNjcsMTAgKzcwLDEwIEBAIHB1YmxpYzoKICAgICBDbGllbnQmIGNsaWVudCgp
IHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKICAgICB2b2lkIGNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0
aW9uKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24mKTsKLSAgICB2b2lkIGNv
bXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpQYXlt
ZW50TWV0aG9kVXBkYXRlPiYpOworICAgIHZvaWQgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0
aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJik7CiAg
ICAgdm9pZCBjb21wbGV0ZVBheW1lbnRTZXNzaW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlBh
eW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYpOwotICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ0Nv
bnRhY3RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBk
YXRlPiYpOwotICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihjb25zdCBP
cHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4mKTsKKyAgICB2b2lkIGNvbXBs
ZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hp
cHBpbmdDb250YWN0VXBkYXRlPiYmKTsKKyAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RT
ZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4m
Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzcygpID0gMDsKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9QYXltZW50
QXV0aG9yaXphdGlvblByZXNlbnRlci5tbSBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2Ev
UGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIubW0KaW5kZXggYWUzNzA5MzE1YmI3NGVhYmQ1
MTkyYWYzZTNlNTk0YjdmZGE1NTAwNi4uYTA1YmM3MmQ1M2Q0YzdkNDllNGE1MjU0MjljNWJiMzNh
Yjk5OTNiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9QYXltZW50
QXV0aG9yaXphdGlvblByZXNlbnRlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2Nv
Y29hL1BheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyLm1tCkBAIC0zMCwxNCArMzAsMjQgQEAK
IAogI2ltcG9ydCAiV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLmgiCiAjaW1wb3J0ICJX
ZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29hLmgiCisjaW1wb3J0IDxXZWJDb3JlL0FwcGxl
UGF5RGV0YWlsc1VwZGF0ZURhdGEuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQXBwbGVQYXlFcnJvci5o
PgorI2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBheUVycm9yQ29kZS5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9BcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmg+CisjaW1wb3J0IDxXZWJDb3JlL0FwcGxlUGF5
UGF5bWVudE1ldGhvZFVwZGF0ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5n
Q29udGFjdFVwZGF0ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5nTWV0aG9k
VXBkYXRlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1BheW1lbnRNZXJjaGFudFNlc3Npb24uaD4KLSNpbXBvcnQgPFdl
YkNvcmUvUGF5bWVudE1ldGhvZFVwZGF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYXltZW50U3Vt
bWFyeUl0ZW1zLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvVmVjdG9yQ29jb2EuaD4KIAogI2ltcG9y
dCA8cGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5oPgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvUGF5bWVudEF1dGhvcml6YXRpb25QcmVz
ZW50ZXJBZGRpdGlvbnMubW0+CisjZW5kaWYKKwogLy8gRklYTUU6IFN0b3Agc29mdCBsaW5raW5n
IENvbnRhY3RzIG9uY2UgdGhlIGRlcGVuZGVuY3kgY3ljbGUgaXMgcmVtb3ZlZCBvbiBtYWNPUyAo
PHJkYXI6Ly9wcm9ibGVtLzcwODg3OTM0PiksCiAvLyBvciB3aGVuIENvbnRhY3RzIGNhbiBiZSB1
cHdhcmQgbGlua2VkICg8cmRhcjovL3Byb2JsZW0vMzYxMzUxMzc+KS4KIFNPRlRfTElOS19GUkFN
RVdPUksoQ29udGFjdHMpOwpAQCAtNzEsODYgKzgxLDg2IEBAIHN0YXRpYyBQS1BheW1lbnRBdXRo
b3JpemF0aW9uU3RhdHVzIHRvUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyhXZWJDb3JlOjpQ
YXltCiAgICAgfQogfQogCi1zdGF0aWMgUEtQYXltZW50RXJyb3JDb2RlIHRvUEtQYXltZW50RXJy
b3JDb2RlKFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZSBjb2RlKQorc3RhdGljIFBLUGF5bWVu
dEVycm9yQ29kZSB0b1BLUGF5bWVudEVycm9yQ29kZShXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29k
ZSBjb2RlKQogewogICAgIHN3aXRjaCAoY29kZSkgewotICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVu
dEVycm9yOjpDb2RlOjpVbmtub3duOgorICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNv
ZGU6OlVua25vd246CiAgICAgICAgIHJldHVybiBQS1BheW1lbnRVbmtub3duRXJyb3I7Ci0gICAg
Y2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvZGU6OlNoaXBwaW5nQ29udGFjdEludmFsaWQ6
CisgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29kZTo6U2hpcHBpbmdDb250YWN0SW52
YWxpZDoKICAgICAgICAgcmV0dXJuIFBLUGF5bWVudFNoaXBwaW5nQ29udGFjdEludmFsaWRFcnJv
cjsKLSAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29kZTo6QmlsbGluZ0NvbnRhY3RJ
bnZhbGlkOgorICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvZGU6OkJpbGxpbmdDb250
YWN0SW52YWxpZDoKICAgICAgICAgcmV0dXJuIFBLUGF5bWVudEJpbGxpbmdDb250YWN0SW52YWxp
ZEVycm9yOwotICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb2RlOjpBZGRyZXNzVW5z
ZXJ2aWNlYWJsZToKKyAgICBjYXNlIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb2RlOjpBZGRyZXNz
VW5zZXJ2aWNlYWJsZToKICAgICAgICAgcmV0dXJuIFBLUGF5bWVudFNoaXBwaW5nQWRkcmVzc1Vu
c2VydmljZWFibGVFcnJvcjsKICAgICB9CiB9CiAKLXN0YXRpYyBOU0Vycm9yICp0b05TRXJyb3Io
Y29uc3QgV2ViQ29yZTo6UGF5bWVudEVycm9yJiBlcnJvcikKK3N0YXRpYyBOU0Vycm9yICp0b05T
RXJyb3IoY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlFcnJvciYgZXJyb3IpCiB7CiAgICAgYXV0byB1
c2VySW5mbyA9IGFkb3B0TlMoW1tOU011dGFibGVEaWN0aW9uYXJ5IGFsbG9jXSBpbml0XSk7Ci0g
ICAgW3VzZXJJbmZvIHNldE9iamVjdDplcnJvci5tZXNzYWdlIGZvcktleTpOU0xvY2FsaXplZERl
c2NyaXB0aW9uS2V5XTsKKyAgICBbdXNlckluZm8gc2V0T2JqZWN0OmVycm9yLm1lc3NhZ2UoKSBm
b3JLZXk6TlNMb2NhbGl6ZWREZXNjcmlwdGlvbktleV07CiAKLSAgICBpZiAoZXJyb3IuY29udGFj
dEZpZWxkKSB7CisgICAgaWYgKGF1dG8gY29udGFjdEZpZWxkID0gZXJyb3IuY29udGFjdEZpZWxk
KCkpIHsKICAgICAgICAgTlNTdHJpbmcgKnBrQ29udGFjdEZpZWxkID0gbmlsOwogICAgICAgICBO
U1N0cmluZyAqcG9zdGFsQWRkcmVzc0tleSA9IG5pbDsKIAotICAgICAgICBzd2l0Y2ggKCplcnJv
ci5jb250YWN0RmllbGQpIHsKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNv
bnRhY3RGaWVsZDo6UGhvbmVOdW1iZXI6CisgICAgICAgIHN3aXRjaCAoKmNvbnRhY3RGaWVsZCkg
eworICAgICAgICBjYXNlIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlBob25l
TnVtYmVyOgogICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BL
Q29udGFjdEZpZWxkUGhvbmVOdW1iZXIoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OkVt
YWlsQWRkcmVzczoKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZp
ZWxkOjpFbWFpbEFkZHJlc3M6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0
X1Bhc3NLaXRfUEtDb250YWN0RmllbGRFbWFpbEFkZHJlc3MoKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250
YWN0RmllbGQ6Ok5hbWU6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRh
Y3RGaWVsZDo6TmFtZToKICAgICAgICAgICAgIHBrQ29udGFjdEZpZWxkID0gUEFMOjpnZXRfUGFz
c0tpdF9QS0NvbnRhY3RGaWVsZE5hbWUoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlBo
b25ldGljTmFtZToKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZp
ZWxkOjpQaG9uZXRpY05hbWU6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0
X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQaG9uZXRpY05hbWUoKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250
YWN0RmllbGQ6OlBvc3RhbEFkZHJlc3M6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlF
cnJvckNvbnRhY3RGaWVsZDo6UG9zdGFsQWRkcmVzczoKICAgICAgICAgICAgIHBrQ29udGFjdEZp
ZWxkID0gUEFMOjpnZXRfUGFzc0tpdF9QS0NvbnRhY3RGaWVsZFBvc3RhbEFkZHJlc3MoKTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2UgV2ViQ29yZTo6UGF5
bWVudEVycm9yOjpDb250YWN0RmllbGQ6OkFkZHJlc3NMaW5lczoKKyAgICAgICAgY2FzZSBXZWJD
b3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpBZGRyZXNzTGluZXM6CiAgICAgICAgICAg
ICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxB
ZGRyZXNzKCk7CiAgICAgICAgICAgICBwb3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRy
ZXNzU3RyZWV0S2V5KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAotICAgICAg
ICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpTdWJMb2NhbGl0eToK
KyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpTdWJMb2Nh
bGl0eToKICAgICAgICAgICAgIHBrQ29udGFjdEZpZWxkID0gUEFMOjpnZXRfUGFzc0tpdF9QS0Nv
bnRhY3RGaWVsZFBvc3RhbEFkZHJlc3MoKTsKICAgICAgICAgICAgIHBvc3RhbEFkZHJlc3NLZXkg
PSBnZXRDTlBvc3RhbEFkZHJlc3NTdWJMb2NhbGl0eUtleSgpOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6OkNvbnRh
Y3RGaWVsZDo6TG9jYWxpdHk6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNv
bnRhY3RGaWVsZDo6TG9jYWxpdHk6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6
Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CiAgICAgICAgICAgICBw
b3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzQ2l0eUtleSgpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgICAgICAKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJy
b3I6OkNvbnRhY3RGaWVsZDo6UG9zdGFsQ29kZToKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBs
ZVBheUVycm9yQ29udGFjdEZpZWxkOjpQb3N0YWxDb2RlOgogICAgICAgICAgICAgcGtDb250YWN0
RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BLQ29udGFjdEZpZWxkUG9zdGFsQWRkcmVzcygpOwog
ICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tleSA9IGdldENOUG9zdGFsQWRkcmVzc1Bvc3RhbENv
ZGVLZXkoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgCi0gICAgICAgIGNhc2Ug
V2ViQ29yZTo6UGF5bWVudEVycm9yOjpDb250YWN0RmllbGQ6OlN1YkFkbWluaXN0cmF0aXZlQXJl
YToKKyAgICAgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheUVycm9yQ29udGFjdEZpZWxkOjpTdWJB
ZG1pbmlzdHJhdGl2ZUFyZWE6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0
X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CiAgICAgICAgICAgICBwb3N0
YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzU3ViQWRtaW5pc3RyYXRpdmVBcmVhS2V5
KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIAotICAgICAgICBjYXNlIFdlYkNv
cmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkOjpBZG1pbmlzdHJhdGl2ZUFyZWE6CisgICAg
ICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6QWRtaW5pc3RyYXRp
dmVBcmVhOgogICAgICAgICAgICAgcGtDb250YWN0RmllbGQgPSBQQUw6OmdldF9QYXNzS2l0X1BL
Q29udGFjdEZpZWxkUG9zdGFsQWRkcmVzcygpOwogICAgICAgICAgICAgcG9zdGFsQWRkcmVzc0tl
eSA9IGdldENOUG9zdGFsQWRkcmVzc1N0YXRlS2V5KCk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIAotICAgICAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29udGFjdEZp
ZWxkOjpDb3VudHJ5OgorICAgICAgICBjYXNlIFdlYkNvcmU6OkFwcGxlUGF5RXJyb3JDb250YWN0
RmllbGQ6OkNvdW50cnk6CiAgICAgICAgICAgICBwa0NvbnRhY3RGaWVsZCA9IFBBTDo6Z2V0X1Bh
c3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CiAgICAgICAgICAgICBwb3N0YWxB
ZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzQ291bnRyeUtleSgpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAKLSAgICAgICAgY2FzZSBXZWJDb3JlOjpQYXltZW50RXJyb3I6
OkNvbnRhY3RGaWVsZDo6Q291bnRyeUNvZGU6CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQ
YXlFcnJvckNvbnRhY3RGaWVsZDo6Q291bnRyeUNvZGU6CiAgICAgICAgICAgICBwa0NvbnRhY3RG
aWVsZCA9IFBBTDo6Z2V0X1Bhc3NLaXRfUEtDb250YWN0RmllbGRQb3N0YWxBZGRyZXNzKCk7CiAg
ICAgICAgICAgICBwb3N0YWxBZGRyZXNzS2V5ID0gZ2V0Q05Qb3N0YWxBZGRyZXNzSVNPQ291bnRy
eUNvZGVLZXkoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTYxLDE3ICsxNzEsMjAgQEAgc3Rh
dGljIE5TRXJyb3IgKnRvTlNFcnJvcihjb25zdCBXZWJDb3JlOjpQYXltZW50RXJyb3ImIGVycm9y
KQogICAgICAgICAgICAgW3VzZXJJbmZvIHNldE9iamVjdDpwb3N0YWxBZGRyZXNzS2V5IGZvcktl
eTpQQUw6OmdldF9QYXNzS2l0X1BLUGF5bWVudEVycm9yUG9zdGFsQWRkcmVzc1VzZXJJbmZvS2V5
KCldOwogICAgIH0KIAotICAgIHJldHVybiBbTlNFcnJvciBlcnJvcldpdGhEb21haW46UEFMOjpn
ZXRfUGFzc0tpdF9QS1BheW1lbnRFcnJvckRvbWFpbigpIGNvZGU6dG9QS1BheW1lbnRFcnJvckNv
ZGUoZXJyb3IuY29kZSkgdXNlckluZm86dXNlckluZm8uZ2V0KCldOworICAgIHJldHVybiBbTlNF
cnJvciBlcnJvcldpdGhEb21haW46UEFMOjpnZXRfUGFzc0tpdF9QS1BheW1lbnRFcnJvckRvbWFp
bigpIGNvZGU6dG9QS1BheW1lbnRFcnJvckNvZGUoZXJyb3IuY29kZSgpKSB1c2VySW5mbzp1c2Vy
SW5mby5nZXQoKV07CiB9CiAKLXN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gdG9OU0Vycm9ycyhj
b25zdCBWZWN0b3I8V2ViQ29yZTo6UGF5bWVudEVycm9yPiYgZXJyb3JzKQorc3RhdGljIFJldGFp
blB0cjxOU0FycmF5PiB0b05TRXJyb3JzKGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6QXBw
bGVQYXlFcnJvcj4+JiBlcnJvcnMpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZU5TQXJyYXkoZXJyb3Jz
LCBbXSAoYXV0byYgZXJyb3IpIHsKLSAgICAgICAgcmV0dXJuIHRvTlNFcnJvcihlcnJvcik7Ci0g
ICAgfSk7CisgICAgYXV0byBhcnJheSA9IGFkb3B0TlMoTlNNdXRhYmxlQXJyYXkuYXJyYXkpOwor
ICAgIGZvciAoYXV0byYgZXJyb3IgOiBlcnJvcnMpIHsKKyAgICAgICAgaWYgKGVycm9yKQorICAg
ICAgICAgICAgW2FycmF5IGFkZE9iamVjdDp0b05TRXJyb3IoKmVycm9yKV07CisgICAgfQorICAg
IHJldHVybiBhcnJheTsKIH0KIAotc3RhdGljIFJldGFpblB0cjxOU0FycmF5PiB0b1BLU2hpcHBp
bmdNZXRob2RzKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVx
dWVzdDo6U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGluZ01ldGhvZHMpCitzdGF0aWMgUmV0YWluUHRy
PE5TQXJyYXk+IHRvUEtTaGlwcGluZ01ldGhvZHMoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkFwcGxl
UGF5U2hpcHBpbmdNZXRob2Q+JiBzaGlwcGluZ01ldGhvZHMpCiB7CiAgICAgcmV0dXJuIGNyZWF0
ZU5TQXJyYXkoc2hpcHBpbmdNZXRob2RzLCBbXSAoYXV0byYgbWV0aG9kKSB7CiAgICAgICAgIHJl
dHVybiB0b1BLU2hpcHBpbmdNZXRob2QobWV0aG9kKTsKQEAgLTE4NCw3ICsxOTcsNyBAQCB2b2lk
IFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyOjpjb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlv
bihjb25zdCBXZWJDb3JlOjpQYQogICAgIFtwbGF0Zm9ybURlbGVnYXRlKCkgY29tcGxldGVNZXJj
aGFudFZhbGlkYXRpb246bWVyY2hhbnRTZXNzaW9uLnBrUGF5bWVudE1lcmNoYW50U2Vzc2lvbigp
IGVycm9yOm5pbF07CiB9CiAKLXZvaWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNv
bXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpQYXlt
ZW50TWV0aG9kVXBkYXRlPiYgdXBkYXRlKQordm9pZCBQYXltZW50QXV0aG9yaXphdGlvblByZXNl
bnRlcjo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFw
cGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJiB1cGRhdGUpCiB7CiAgICAgQVNTRVJUKHBsYXRm
b3JtRGVsZWdhdGUoKSk7CiAgICAgaWYgKCF1cGRhdGUpIHsKQEAgLTE5Miw3ICsyMDUsMTQgQEAg
dm9pZCBQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVQYXltZW50TWV0aG9k
U2VsZWN0aW9uKGNvbnN0IE9wdGlvbmEKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFtw
bGF0Zm9ybURlbGVnYXRlKCkgY29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uOnVwZGF0ZS0+
cGxhdGZvcm1VcGRhdGUoKV07CisgICAgYXV0byBwYXltZW50TWV0aG9kVXBkYXRlID0gYWRvcHRO
UyhbUEFMOjphbGxvY1BLUGF5bWVudFJlcXVlc3RQYXltZW50TWV0aG9kVXBkYXRlSW5zdGFuY2Uo
KSBpbml0V2l0aFBheW1lbnRTdW1tYXJ5SXRlbXM6V2ViQ29yZTo6cGxhdGZvcm1TdW1tYXJ5SXRl
bXMoV1RGTW92ZSh1cGRhdGUtPm5ld1RvdGFsKSwgV1RGTW92ZSh1cGRhdGUtPm5ld0xpbmVJdGVt
cykpXSk7CisjaWYgSEFWRShQQVNTS0lUX0lOU1RBTExNRU5UUykgJiYgRU5BQkxFKEFQUExFX1BB
WV9JTlNUQUxMTUVOVFMpCisgICAgW3BheW1lbnRNZXRob2RVcGRhdGUgc2V0SW5zdGFsbG1lbnRH
cm91cElkZW50aWZpZXI6V1RGTW92ZSh1cGRhdGUtPmluc3RhbGxtZW50R3JvdXBJZGVudGlmaWVy
KV07CisjZW5kaWYgLy8gSEFWRShQQVNTS0lUX0lOU1RBTExNRU5UUykgJiYgRU5BQkxFKEFQUExF
X1BBWV9JTlNUQUxMTUVOVFMpCisjaWYgZGVmaW5lZChQYXltZW50QXV0aG9yaXphdGlvblByZXNl
bnRlckFkZGl0aW9uc19jb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24pCisgICAgUGF5bWVu
dEF1dGhvcml6YXRpb25QcmVzZW50ZXJBZGRpdGlvbnNfY29tcGxldGVQYXltZW50TWV0aG9kU2Vs
ZWN0aW9uCisjZW5kaWYKKyAgICBbcGxhdGZvcm1EZWxlZ2F0ZSgpIGNvbXBsZXRlUGF5bWVudE1l
dGhvZFNlbGVjdGlvbjpwYXltZW50TWV0aG9kVXBkYXRlLmdldCgpXTsKIH0KIAogdm9pZCBQYXlt
ZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVQYXltZW50U2Vzc2lvbihjb25zdCBP
cHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mIHJlc3VsdCkKQEAg
LTIwMyw3ICsyMjMsNyBAQCB2b2lkIFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyOjpjb21w
bGV0ZVBheW1lbnRTZXNzaW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNvcgogICAgIFtwbGF0Zm9ybURl
bGVnYXRlKCkgY29tcGxldGVQYXltZW50U2Vzc2lvbjpzdGF0dXMgZXJyb3JzOmVycm9ycy5nZXQo
KV07CiB9CiAKLXZvaWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlU2hp
cHBpbmdDb250YWN0U2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nQ29u
dGFjdFVwZGF0ZT4mIHVwZGF0ZSkKK3ZvaWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6
OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxl
UGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmIHVwZGF0ZSkKIHsKICAgICBBU1NFUlQocGxhdGZv
cm1EZWxlZ2F0ZSgpKTsKICAgICBpZiAoIXVwZGF0ZSkgewpAQCAtMjExLDE0ICsyMzEsMTYgQEAg
dm9pZCBQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVTaGlwcGluZ0NvbnRh
Y3RTZWxlY3Rpb24oY29uc3QgT3B0aW8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8v
IEZJWE1FOiBXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGUgc2hvdWxkIGtub3cgaG93IHRv
IGNvbnZlcnQgaXRzZWxmIHRvIGEgUEtQYXltZW50UmVxdWVzdFNoaXBwaW5nQ29udGFjdFVwZGF0
ZS4KLSAgICBhdXRvIHNoaXBwaW5nQ29udGFjdFVwZGF0ZSA9IGFkb3B0TlMoW1BBTDo6YWxsb2NQ
S1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdDb250YWN0VXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aEVy
cm9yczp0b05TRXJyb3JzKHVwZGF0ZS0+ZXJyb3JzKS5nZXQoKQotICAgICAgICBwYXltZW50U3Vt
bWFyeUl0ZW1zOldlYkNvcmU6OnBsYXRmb3JtU3VtbWFyeUl0ZW1zKHVwZGF0ZS0+bmV3VG90YWxB
bmRMaW5lSXRlbXMpCi0gICAgICAgIHNoaXBwaW5nTWV0aG9kczp0b1BLU2hpcHBpbmdNZXRob2Rz
KHVwZGF0ZS0+bmV3U2hpcHBpbmdNZXRob2RzKS5nZXQoKV0pOworICAgIGF1dG8gc2hpcHBpbmdD
b250YWN0VXBkYXRlID0gYWRvcHROUyhbUEFMOjphbGxvY1BLUGF5bWVudFJlcXVlc3RTaGlwcGlu
Z0NvbnRhY3RVcGRhdGVJbnN0YW5jZSgpIGluaXRXaXRoRXJyb3JzOnRvTlNFcnJvcnMoV1RGTW92
ZSh1cGRhdGUtPmVycm9ycykpLmdldCgpCisgICAgICAgIHBheW1lbnRTdW1tYXJ5SXRlbXM6V2Vi
Q29yZTo6cGxhdGZvcm1TdW1tYXJ5SXRlbXMoV1RGTW92ZSh1cGRhdGUtPm5ld1RvdGFsKSwgV1RG
TW92ZSh1cGRhdGUtPm5ld0xpbmVJdGVtcykpCisgICAgICAgIHNoaXBwaW5nTWV0aG9kczp0b1BL
U2hpcHBpbmdNZXRob2RzKFdURk1vdmUodXBkYXRlLT5uZXdTaGlwcGluZ01ldGhvZHMpKS5nZXQo
KV0pOworI2lmIGRlZmluZWQoUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXJBZGRpdGlvbnNf
Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24pCisgICAgUGF5bWVudEF1dGhvcml6YXRp
b25QcmVzZW50ZXJBZGRpdGlvbnNfY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24KKyNl
bmRpZgogICAgIFtwbGF0Zm9ybURlbGVnYXRlKCkgY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxl
Y3Rpb246c2hpcHBpbmdDb250YWN0VXBkYXRlLmdldCgpXTsKIH0KIAotdm9pZCBQYXltZW50QXV0
aG9yaXphdGlvblByZXNlbnRlcjo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihjb25z
dCBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4mIHVwZGF0ZSkKK3ZvaWQg
UGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxl
Y3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJiB1
cGRhdGUpCiB7CiAgICAgQVNTRVJUKHBsYXRmb3JtRGVsZWdhdGUoKSk7CiAgICAgaWYgKCF1cGRh
dGUpIHsKQEAgLTIyNiw4ICsyNDgsMTAgQEAgdm9pZCBQYXltZW50QXV0aG9yaXphdGlvblByZXNl
bnRlcjo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb24KICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBXZWJDb3JlOjpTaGlwcGluZ01ldGhv
ZFVwZGF0ZSBzaG91bGQga25vdyBob3cgdG8gY29udmVydCBpdHNlbGYgdG8gYSBQS1BheW1lbnRS
ZXF1ZXN0U2hpcHBpbmdNZXRob2RVcGRhdGUuCi0gICAgYXV0byBzaGlwcGluZ01ldGhvZFVwZGF0
ZSA9IGFkb3B0TlMoW1BBTDo6YWxsb2NQS1BheW1lbnRSZXF1ZXN0U2hpcHBpbmdNZXRob2RVcGRh
dGVJbnN0YW5jZSgpIGluaXRXaXRoUGF5bWVudFN1bW1hcnlJdGVtczpXZWJDb3JlOjpwbGF0Zm9y
bVN1bW1hcnlJdGVtcyh1cGRhdGUtPm5ld1RvdGFsQW5kTGluZUl0ZW1zKV0pOworICAgIGF1dG8g
c2hpcHBpbmdNZXRob2RVcGRhdGUgPSBhZG9wdE5TKFtQQUw6OmFsbG9jUEtQYXltZW50UmVxdWVz
dFNoaXBwaW5nTWV0aG9kVXBkYXRlSW5zdGFuY2UoKSBpbml0V2l0aFBheW1lbnRTdW1tYXJ5SXRl
bXM6V2ViQ29yZTo6cGxhdGZvcm1TdW1tYXJ5SXRlbXMoV1RGTW92ZSh1cGRhdGUtPm5ld1RvdGFs
KSwgV1RGTW92ZSh1cGRhdGUtPm5ld0xpbmVJdGVtcykpXSk7CisjaWYgZGVmaW5lZChQYXltZW50
QXV0aG9yaXphdGlvblByZXNlbnRlckFkZGl0aW9uc19jb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2Vs
ZWN0aW9uKQorICAgIFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyQWRkaXRpb25zX2NvbXBs
ZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24KKyNlbmRpZgogICAgIFtwbGF0Zm9ybURlbGVnYXRl
KCkgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbjpzaGlwcGluZ01ldGhvZFVwZGF0ZS5n
ZXQoKV07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvV0tQ
YXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9j
b2NvYS9XS1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0KaW5kZXggY2YzNGE0OGVkMmZl
ZTFlYTc5ZjJlZDI3ZGJmMTI4NWFlMmNhMjMzNC4uYjlkY2U3YmVkZThkNzk1Mjg0NjIzMGQwNTdk
MjY0OTlmMWNlNjdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9X
S1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9jb2NvYS9XS1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0KQEAgLTE3MywxNiAr
MTczLDE1IEBAIC0gKHZvaWQpX2RpZFNlbGVjdFNoaXBwaW5nQ29udGFjdDooUEtDb250YWN0ICop
Y29udGFjdCBjb21wbGV0aW9uOihXZWJLaXQ6OkRpZFNlCiAgICAgcHJlc2VudGVyLT5jbGllbnQo
KS5wcmVzZW50ZXJEaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3QoKnByZXNlbnRlciwgV2ViQ29yZTo6
UGF5bWVudENvbnRhY3QoY29udGFjdCkpOwogfQogCi1zdGF0aWMgV2ViQ29yZTo6QXBwbGVQYXlT
ZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kIHRvU2hpcHBpbmdNZXRob2QoUEtT
aGlwcGluZ01ldGhvZCAqc2hpcHBpbmdNZXRob2QpCitzdGF0aWMgV2ViQ29yZTo6QXBwbGVQYXlT
aGlwcGluZ01ldGhvZCB0b1NoaXBwaW5nTWV0aG9kKFBLU2hpcHBpbmdNZXRob2QgKnNoaXBwaW5n
TWV0aG9kKQogewogICAgIEFTU0VSVChzaGlwcGluZ01ldGhvZCk7CiAKLSAgICBXZWJDb3JlOjpB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QgcmVzdWx0OworICAg
IFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2QgcmVzdWx0OwogICAgIHJlc3VsdC5hbW91
bnQgPSBzaGlwcGluZ01ldGhvZC5hbW91bnQuc3RyaW5nVmFsdWU7CiAgICAgcmVzdWx0LmRldGFp
bCA9IHNoaXBwaW5nTWV0aG9kLmRldGFpbDsKICAgICByZXN1bHQuaWRlbnRpZmllciA9IHNoaXBw
aW5nTWV0aG9kLmlkZW50aWZpZXI7CiAgICAgcmVzdWx0LmxhYmVsID0gc2hpcHBpbmdNZXRob2Qu
bGFiZWw7Ci0KICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weQppbmRleCBkNTQzMDIyNzUzYWRmMzE5MzYyNDBjZjJhNDhmNTFiNzIz
OWQ1ZWM1Li45MjliZWJkMDllN2M0ZjVjZTMxNGM1NGJkNjkxMzYyOWMzNWUyNjdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTcxNyw4ICs3MTcsNiBAQCBk
ZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMu
aD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZSc6
IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyU3RhdGUnOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAot
ICAgICAgICAnV2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlJzogWyc8V2ViQ29yZS9BcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5oPiddLAotICAgICAgICAnV2ViQ29yZTo6U2hpcHBp
bmdNZXRob2RVcGRhdGUnOiBbJzxXZWJDb3JlL0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTaG91bGRBc2tJVFAnOiBbJzxXZWJDb3JlL05ldHdv
cmtTdG9yYWdlU2Vzc2lvbi5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2hvdWxkTm90aWZ5V2hl
blJlc29sdmVkJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKICAgICAgICAg
J1dlYkNvcmU6OlNob3VsZFNhbXBsZSc6IFsnPFdlYkNvcmUvRGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBh
eW1lbnRDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5
L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNwcAppbmRleCBjNTg5MGUwYTJmZmMxOTBiYTk3
OTY2YmFlMWJiZTg4NjA5NzUxNTRmLi5mNWNhNDE3N2ExODMyMzU5Mjc0NGZmMmNmMDU4ZWY3MTY1
ZmQzNTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQ
YXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0zMyw2ICszMyw5IEBACiAjaW5j
bHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0FwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QYXltZW50QXV0aG9yaXphdGlvblN0YXR1cy5oPgogCiAjZGVmaW5lIE1FU1NBR0VfQ0hF
Q0soYXNzZXJ0aW9uKSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0aW9uLCBtZXNzYWdlU2VuZGVy
Q29ubmVjdGlvbigpKQpAQCAtMTI4LDcgKzEzMSw3IEBAIHZvaWQgV2ViUGF5bWVudENvb3JkaW5h
dG9yUHJveHk6OmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFdlYkNvcmU6OlBheW1l
CiAgICAgbV9tZXJjaGFudFZhbGlkYXRpb25TdGF0ZSA9IE1lcmNoYW50VmFsaWRhdGlvblN0YXRl
OjpWYWxpZGF0aW9uQ29tcGxldGU7CiB9CiAKLXZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHk6OmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29y
ZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+JiB1cGRhdGUpCit2b2lkIFdlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5Ojpjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNv
cmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYgdXBkYXRlKQogewogICAgIC8vIEl0
J3MgcG9zc2libGUgdGhhdCB0aGUgcGF5bWVudCBoYXMgYmVlbiBjYW5jZWxlZCBhbHJlYWR5Lgog
ICAgIGlmIChtX3N0YXRlID09IFN0YXRlOjpJZGxlKQpAQCAtMTM2LDExICsxMzksMTEgQEAgdm9p
ZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVj
dGlvbihjb25zdCBPcHRpb25hbDwKIAogICAgIE1FU1NBR0VfQ0hFQ0sobV9zdGF0ZSA9PSBTdGF0
ZTo6U2hpcHBpbmdNZXRob2RTZWxlY3RlZCk7CiAKLSAgICBwbGF0Zm9ybUNvbXBsZXRlU2hpcHBp
bmdNZXRob2RTZWxlY3Rpb24odXBkYXRlKTsKKyAgICBwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdN
ZXRob2RTZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUpKTsKICAgICBtX3N0YXRlID0gU3RhdGU6OkFj
dGl2ZTsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxldGVTaGlw
cGluZ0NvbnRhY3RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250
YWN0VXBkYXRlPiYgdXBkYXRlKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y29t
cGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlT
aGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYgdXBkYXRlKQogewogICAgIC8vIEl0J3MgcG9zc2libGUg
dGhhdCB0aGUgcGF5bWVudCBoYXMgYmVlbiBjYW5jZWxlZCBhbHJlYWR5LgogICAgIGlmIChtX3N0
YXRlID09IFN0YXRlOjpJZGxlKQpAQCAtMTQ4LDExICsxNTEsMTEgQEAgdm9pZCBXZWJQYXltZW50
Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oY29uc3Qg
T3B0aW9uYWwKIAogICAgIE1FU1NBR0VfQ0hFQ0sobV9zdGF0ZSA9PSBTdGF0ZTo6U2hpcHBpbmdD
b250YWN0U2VsZWN0ZWQpOwogCi0gICAgcGxhdGZvcm1Db21wbGV0ZVNoaXBwaW5nQ29udGFjdFNl
bGVjdGlvbih1cGRhdGUpOworICAgIHBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxl
Y3Rpb24oV1RGTW92ZSh1cGRhdGUpKTsKICAgICBtX3N0YXRlID0gU3RhdGU6OkFjdGl2ZTsKIH0K
IAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxldGVQYXltZW50TWV0aG9k
U2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+JiB1
cGRhdGUpCit2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5Ojpjb21wbGV0ZVBheW1lbnRN
ZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlQYXltZW50TWV0aG9kVXBk
YXRlPiYmIHVwZGF0ZSkKIHsKICAgICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHBheW1lbnQg
aGFzIGJlZW4gY2FuY2VsZWQgYWxyZWFkeS4KICAgICBpZiAobV9zdGF0ZSA9PSBTdGF0ZTo6SWRs
ZSkKQEAgLTE2MCw3ICsxNjMsNyBAQCB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5Ojpj
b21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9uYWw8VwogCiAgICAgTUVT
U0FHRV9DSEVDSyhtX3N0YXRlID09IFN0YXRlOjpQYXltZW50TWV0aG9kU2VsZWN0ZWQpOwogCi0g
ICAgcGxhdGZvcm1Db21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24odXBkYXRlKTsKKyAgICBw
bGF0Zm9ybUNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihXVEZNb3ZlKHVwZGF0ZSkpOwog
ICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWN0aXZlOwogfQogCkBAIC0yMTgsNyArMjIxLDcgQEAgdm9p
ZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cHJlc2VudGVyRGlkRmluaXNoKFBheW1lbnRB
dXRob3JpemF0aW9uUHJlc2VudGUKICAgICBkaWRSZWFjaEZpbmFsU3RhdGUoV1RGTW92ZShlcnJv
cikpOwogfQogCi12b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwcmVzZW50ZXJEaWRT
ZWxlY3RTaGlwcGluZ01ldGhvZChQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlciYsIGNvbnN0
IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYg
c2hpcHBpbmdNZXRob2QpCit2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwcmVzZW50
ZXJEaWRTZWxlY3RTaGlwcGluZ01ldGhvZChQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlciYs
IGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQog
ewogICAgIEFTU0VSVChtX3N0YXRlID09IFN0YXRlOjpBY3RpdmUpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHkuaAppbmRleCA2NTFjNzEwMTk2N2YyNTI0MTk4N2I3NzBlMDY3Mjc5NDA5N2JhMjFmLi5lMGNk
MmM2YzYzMzVkZDRmNDRmOGU1NjVkNDEyZWExNTU5MzI4ZjgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5
LmgKQEAgLTUxLDcgKzUxLDEwIEBAIGNsYXNzIFBheW1lbnQ7CiBjbGFzcyBQYXltZW50Q29udGFj
dDsKIGNsYXNzIFBheW1lbnRNZXJjaGFudFNlc3Npb247CiBjbGFzcyBQYXltZW50TWV0aG9kOwot
Y2xhc3MgUGF5bWVudE1ldGhvZFVwZGF0ZTsKK3N0cnVjdCBBcHBsZVBheVBheW1lbnRNZXRob2RV
cGRhdGU7CitzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU7CitzdHJ1Y3QgQXBw
bGVQYXlTaGlwcGluZ01ldGhvZDsKK3N0cnVjdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRl
OwogfQogCiBPQkpDX0NMQVNTIE5TT2JqZWN0OwpAQCAtMTE0LDcgKzExNyw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBwcmVzZW50ZXJEaWRGaW5pc2goUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50
ZXImLCBXZWJDb3JlOjpQYXltZW50U2Vzc2lvbkVycm9yJiYpIGZpbmFsOwogICAgIHZvaWQgcHJl
c2VudGVyRGlkU2VsZWN0UGF5bWVudE1ldGhvZChQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRl
ciYsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXRob2QmKSBmaW5hbDsKICAgICB2b2lkIHByZXNl
bnRlckRpZFNlbGVjdFNoaXBwaW5nQ29udGFjdChQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRl
ciYsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnRDb250YWN0JikgZmluYWw7Ci0gICAgdm9pZCBwcmVz
ZW50ZXJEaWRTZWxlY3RTaGlwcGluZ01ldGhvZChQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRl
ciYsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGlu
Z01ldGhvZCYpIGZpbmFsOworICAgIHZvaWQgcHJlc2VudGVyRGlkU2VsZWN0U2hpcHBpbmdNZXRo
b2QoUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXImLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kJikgZmluYWw7CiAgICAgdm9pZCBwcmVzZW50ZXJXaWxsVmFsaWRhdGVN
ZXJjaGFudChQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlciYsIGNvbnN0IFVSTCYpIGZpbmFs
OwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycwpAQCAtMTIzLDkgKzEyNiw5IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBvcGVuUGF5bWVudFNldHVwKGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIGRvbWFpbk5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOwogICAgIHZvaWQgc2hvd1BheW1lbnRVSShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBk
ZXN0aW5hdGlvbklELCBjb25zdCBTdHJpbmcmIG9yaWdpbmF0aW5nVVJMU3RyaW5nLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgbGlua0ljb25VUkxTdHJpbmdzLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwogICAgIHZvaWQgY29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24oY29uc3QgV2ViQ29yZTo6UGF5
bWVudE1lcmNoYW50U2Vzc2lvbiYpOwotICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNl
bGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4mKTsK
LSAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKGNvbnN0IE9wdGlvbmFs
PFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mKTsKLSAgICB2b2lkIGNvbXBsZXRlUGF5
bWVudE1ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9k
VXBkYXRlPiYpOworICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRp
b25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKTsKKyAgICB2b2lk
IGNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxl
UGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKTsKKyAgICB2b2lkIGNvbXBsZXRlUGF5bWVudE1l
dGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRNZXRob2RVcGRh
dGU+JiYpOwogICAgIHZvaWQgY29tcGxldGVQYXltZW50U2Vzc2lvbihjb25zdCBPcHRpb25hbDxX
ZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mKTsKICAgICB2b2lkIGFib3J0UGF5
bWVudFNlc3Npb24oKTsKICAgICB2b2lkIGNhbmNlbFBheW1lbnRTZXNzaW9uKCk7CkBAIC0xNDgs
OSArMTUxLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtT3BlblBheW1lbnRTZXR1cChj
b25zdCBTdHJpbmcmIG1lcmNoYW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkb21haW5OYW1l
LCBXVEY6OkZ1bmN0aW9uPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOwogICAgIHZv
aWQgcGxhdGZvcm1TaG93UGF5bWVudFVJKGNvbnN0IFVSTCYgb3JpZ2luYXRpbmdVUkwsIGNvbnN0
IFZlY3RvcjxVUkw+JiBsaW5rSWNvblVSTHMsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAg
dm9pZCBwbGF0Zm9ybUNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFdlYkNvcmU6OlBh
eW1lbnRNZXJjaGFudFNlc3Npb24mKTsKLSAgICB2b2lkIHBsYXRmb3JtQ29tcGxldGVTaGlwcGlu
Z01ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVw
ZGF0ZT4mKTsKLSAgICB2b2lkIHBsYXRmb3JtQ29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rp
b24oY29uc3QgT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYpOwotICAg
IHZvaWQgcGxhdGZvcm1Db21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oY29uc3QgT3B0aW9u
YWw8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT4mKTsKKyAgICB2b2lkIHBsYXRmb3JtQ29t
cGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNo
aXBwaW5nTWV0aG9kVXBkYXRlPiYmKTsKKyAgICB2b2lkIHBsYXRmb3JtQ29tcGxldGVTaGlwcGlu
Z0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ0NvbnRh
Y3RVcGRhdGU+JiYpOworICAgIHZvaWQgcGxhdGZvcm1Db21wbGV0ZVBheW1lbnRNZXRob2RTZWxl
Y3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlPiYmKTsK
ICAgICB2b2lkIHBsYXRmb3JtQ29tcGxldGVQYXltZW50U2Vzc2lvbihjb25zdCBPcHRpb25hbDxX
ZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mKTsKICAgICB2b2lkIHBsYXRmb3Jt
SGlkZVBheW1lbnRVSSgpOwogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0
b3JQcm94eS5tZXNzYWdlcy5pbgppbmRleCBjMTQ5ZTRkMmVjMjk1MzAzZmE4NmJiMTJiYzQ4ZjZm
MmNlMDA1ZjU1Li40YzU0Y2ZiMmY0YmE2YzUzZWU1YzlkNjA3OTMzYzQ3NzJmMDI4ODdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0
b3JQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9X
ZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzIsOSArMzIsOSBAQCBt
ZXNzYWdlcyAtPiBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eSBOb3RSZWZDb3VudGVkIHsKIAog
ICAgIFNob3dQYXltZW50VUkoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgZGVzdGluYXRpb25JRCwg
U3RyaW5nIG9yaWdpbmF0aW5nVVJMU3RyaW5nLCBWZWN0b3I8U3RyaW5nPiBsaW5rSWNvblVSTFN0
cmluZ3MsIFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0IHBheW1lbnRSZXF1
ZXN0KSAtPiAoYm9vbCByZXN1bHQpIFN5bmNocm9ub3VzCiAgICAgQ29tcGxldGVNZXJjaGFudFZh
bGlkYXRpb24oV2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vzc2lvbiBwYXltZW50TWVyY2hhbnRT
ZXNzaW9uKQotICAgIENvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2Vi
Q29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+IHVwZGF0ZSkKLSAgICBDb21wbGV0ZVNoaXBwaW5n
Q29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+
IHVwZGF0ZSkKLSAgICBDb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2Vi
Q29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT4gdXBkYXRlKQorICAgIENvbXBsZXRlU2hpcHBpbmdN
ZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVw
ZGF0ZT4gdXBkYXRlKQorICAgIENvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlv
bmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiB1cGRhdGUpCisgICAg
Q29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5
UGF5bWVudE1ldGhvZFVwZGF0ZT4gdXBkYXRlKQogICAgIENvbXBsZXRlUGF5bWVudFNlc3Npb24o
T3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+IHJlc3VsdCkKICAg
ICBBYm9ydFBheW1lbnRTZXNzaW9uKCkKICAgICBDYW5jZWxQYXltZW50U2Vzc2lvbigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29v
cmRpbmF0b3JQcm94eUNvY29hLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9jb2Nv
YS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29hLmgKaW5kZXggOTI3OTkwOTI3YWYyZTQx
YmJiZTc2MGU2NDc5Yzc2YTVjMWU2MTEzMi4uMjM2NjZiNzM2NDM0MmUyNmEyNTM4YjRkMmExYTM5
NDNmZjRjNWE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvY29j
b2EvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EuaApA
QCAtMjcsMTYgKzI3LDE4IEBACiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQogCi0jaW1wb3J0IDxX
ZWJDb3JlL0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Lmg+Ci0KIE9CSkNfQ0xBU1MgUEtT
aGlwcGluZ01ldGhvZDsKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IEFwcGxlUGF5U2hp
cHBpbmdNZXRob2Q7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiAvLyBGSVhNRTogUmF0aGVy
IHRoYW4gaGF2aW5nIHRoZXNlIGZyZWUgZnVuY3Rpb25zIHNjYXR0ZXJlZCBhYm91dCwgQXBwbGUg
UGF5IGRhdGEgdHlwZXMgc2hvdWxkIGtub3cKIC8vIGhvdyB0byBjb252ZXJ0IHRoZW1zZWx2ZXMg
dG8gYW5kIGZyb20gdGhlaXIgcGxhdGZvcm0gcmVwcmVzZW50YXRpb25zLgogTlNEZWNpbWFsTnVt
YmVyICp0b0RlY2ltYWxOdW1iZXIoY29uc3QgU3RyaW5nJiBhbW91bnQpOwotUEtTaGlwcGluZ01l
dGhvZCAqdG9QS1NoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYpOworUEtTaGlwcGluZ01ldGhvZCAqdG9QS1No
aXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdNZXRob2QmKTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94
eUNvY29hLm1tCmluZGV4IDQ0MDJhNDkwOTE5NjlhY2Q4YTUyODljOGE3M2Q1OTE5M2U5Y2E2MzYu
LjhmY2I1YWYxYmUzZjJmOWI2NzZiNmYwZDM0ZjlkODEzZjE0ODUxOTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclBy
b3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvY29jb2EvV2Vi
UGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5tbQpAQCAtMzYsNiArMzYsMTAgQEAKICNpbXBv
cnQgIldlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmgiCiAjaW1wb3J0ICJXZWJQYXltZW50Q29v
cmRpbmF0b3JQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKKyNp
bXBvcnQgPFdlYkNvcmUvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL0FwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0FwcGxlUGF5U2hpcHBpbmdNZXRob2QuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQXBwbGVQYXlTaGlw
cGluZ01ldGhvZFVwZGF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYXltZW50QXV0aG9yaXphdGlv
blN0YXR1cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYXltZW50SGVhZGVycy5oPgogI2ltcG9ydCA8
d3RmL0Jsb2NrUHRyLmg+CkBAIC00NSw2ICs0OSwxMCBAQAogCiAjaW1wb3J0IDxwYWwvY29jb2Ev
UGFzc0tpdFNvZnRMaW5rLmg+CiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2luY2x1
ZGUgPFdlYktpdEFkZGl0aW9ucy9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29hQWRkaXRp
b25zLm1tPgorI2VuZGlmCisKIC8vIEZJWE1FOiBXZSBkb24ndCBzdXBwb3J0IGFueSBwbGF0Zm9y
bXMgd2l0aG91dCAtc2V0VGh1bWJuYWlsVVJMczosIHNvIHRoaXMgY2FuIGJlIHJlbW92ZWQuCiBA
aW50ZXJmYWNlIFBLUGF5bWVudFJlcXVlc3QgKCkKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzdHJv
bmcpIE5TVVJMICp0aHVtYm5haWxVUkw7CkBAIC01MiwxOSArNjAsNiBAQCBAZW5kCiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1zdGF0aWMgdm9pZCBmaW5pc2hDcmVhdGluZyhQS1BheW1lbnRSZXF1
ZXN0ICpwbGF0Zm9ybVJlcXVlc3QsIGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0JiByZXF1ZXN0KQotewotI2lmIEhBVkUoUEFTU0tJVF9JTlNUQUxMTUVOVFMpCi0g
ICAgaWYgKFBLUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbiA9
IHJlcXVlc3QuaW5zdGFsbG1lbnRDb25maWd1cmF0aW9uKCkucGxhdGZvcm1Db25maWd1cmF0aW9u
KCkpIHsKLSAgICAgICAgcGxhdGZvcm1SZXF1ZXN0Lmluc3RhbGxtZW50Q29uZmlndXJhdGlvbiA9
IGNvbmZpZ3VyYXRpb247Ci0gICAgICAgIHBsYXRmb3JtUmVxdWVzdC5yZXF1ZXN0VHlwZSA9IFBL
UGF5bWVudFJlcXVlc3RUeXBlSW5zdGFsbG1lbnQ7Ci0gICAgfQotI2Vsc2UKLSAgICBVTlVTRURf
UEFSQU0ocGxhdGZvcm1SZXF1ZXN0KTsKLSAgICBVTlVTRURfUEFSQU0ocmVxdWVzdCk7Ci0jZW5k
aWYKLX0KLQogV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OldlYlBheW1lbnRDb29yZGluYXRv
clByb3h5KFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpDbGllbnQmIGNsaWVudCkKICAgICA6
IG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fY2FuTWFrZVBheW1lbnRzUXVldWUoV29ya1F1ZXVl
OjpjcmVhdGUoImNvbS5hcHBsZS5XZWJLaXQuQ2FuTWFrZVBheW1lbnRzIikpCkBAIC0xNjksMTUg
KzE2NCwxNCBAQCBzdGF0aWMgUEtTaGlwcGluZ1R5cGUgdG9QS1NoaXBwaW5nVHlwZShXZWJDb3Jl
OjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6UwogICAgIH0KIH0KIAotUEtTaGlwcGlu
Z01ldGhvZCAqdG9QS1NoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCitQS1NoaXBw
aW5nTWV0aG9kICp0b1BLU2hpcHBpbmdNZXRob2QoY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTaGlw
cGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCiB7CiAgICAgUEtTaGlwcGluZ01ldGhvZCAqcmVz
dWx0ID0gW1BBTDo6Z2V0UEtTaGlwcGluZ01ldGhvZENsYXNzKCkgc3VtbWFyeUl0ZW1XaXRoTGFi
ZWw6c2hpcHBpbmdNZXRob2QubGFiZWwgYW1vdW50OnRvRGVjaW1hbE51bWJlcihzaGlwcGluZ01l
dGhvZC5hbW91bnQpXTsKICAgICBbcmVzdWx0IHNldElkZW50aWZpZXI6c2hpcHBpbmdNZXRob2Qu
aWRlbnRpZmllcl07CiAgICAgW3Jlc3VsdCBzZXREZXRhaWw6c2hpcHBpbmdNZXRob2QuZGV0YWls
XTsKLQogICAgIHJldHVybiByZXN1bHQ7CiB9Ci0gICAgCisKIHN0YXRpYyBSZXRhaW5QdHI8TlNT
ZXQ+IHRvTlNTZXQoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN0cmluZ3MpCiB7CiAgICAgaWYgKHN0
cmluZ3MuaXNFbXB0eSgpKQpAQCAtMjYwLDcgKzI1NCwxNiBAQCBSZXRhaW5QdHI8UEtQYXltZW50
UmVxdWVzdD4gV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtUGF5bWVudFJlcXVl
c3QoYwogICAgICAgICBbcmVzdWx0IHNldENURGF0YUNvbm5lY3Rpb25TZXJ2aWNlVHlwZTpzZXJ2
aWNlVHlwZV07CiAjZW5kaWYKIAotICAgIGZpbmlzaENyZWF0aW5nKHJlc3VsdC5nZXQoKSwgcGF5
bWVudFJlcXVlc3QpOworI2lmIEhBVkUoUEFTU0tJVF9JTlNUQUxMTUVOVFMpCisgICAgaWYgKFBL
UGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbiAqY29uZmlndXJhdGlvbiA9IHBheW1lbnRS
ZXF1ZXN0Lmluc3RhbGxtZW50Q29uZmlndXJhdGlvbigpLnBsYXRmb3JtQ29uZmlndXJhdGlvbigp
KSB7CisgICAgICAgIFtyZXN1bHQgc2V0SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uOmNvbmZpZ3Vy
YXRpb25dOworICAgICAgICBbcmVzdWx0IHNldFJlcXVlc3RUeXBlOlBLUGF5bWVudFJlcXVlc3RU
eXBlSW5zdGFsbG1lbnRdOworICAgIH0KKyNlbmRpZgorCisjaWYgZGVmaW5lZChXZWJQYXltZW50
Q29vcmRpbmF0b3JQcm94eUNvY29hQWRkaXRpb25zX3BsYXRmb3JtUGF5bWVudFJlcXVlc3QpCisg
ICAgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYUFkZGl0aW9uc19wbGF0Zm9ybVBheW1l
bnRSZXF1ZXN0CisjZW5kaWYKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0yNzUsMTkgKzI3
OCwxOSBAQCB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybUNvbXBsZXRl
TWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFdlYkNvcgogICAgIG1fYXV0aG9yaXphdGlvblByZXNl
bnRlci0+Y29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24ocGF5bWVudE1lcmNoYW50U2Vzc2lvbik7
CiB9CiAKLXZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtQ29tcGxldGVT
aGlwcGluZ01ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01l
dGhvZFVwZGF0ZT4mIHVwZGF0ZSkKK3ZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBs
YXRmb3JtQ29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpB
cHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKIHsKLSAgICBtX2F1dGhvcml6
YXRpb25QcmVzZW50ZXItPmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24odXBkYXRlKTsK
KyAgICBtX2F1dGhvcml6YXRpb25QcmVzZW50ZXItPmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxl
Y3Rpb24oV1RGTW92ZSh1cGRhdGUpKTsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQ
cm94eTo6cGxhdGZvcm1Db21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihjb25zdCBPcHRp
b25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiB1cGRhdGUpCit2b2lkIFdlYlBh
eW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybUNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2Vs
ZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYm
IHVwZGF0ZSkKIHsKLSAgICBtX2F1dGhvcml6YXRpb25QcmVzZW50ZXItPmNvbXBsZXRlU2hpcHBp
bmdDb250YWN0U2VsZWN0aW9uKHVwZGF0ZSk7CisgICAgbV9hdXRob3JpemF0aW9uUHJlc2VudGVy
LT5jb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihXVEZNb3ZlKHVwZGF0ZSkpOwogfQog
Ci12b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybUNvbXBsZXRlUGF5bWVu
dE1ldGhvZFNlbGVjdGlvbihjb25zdCBPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBk
YXRlPiYgdXBkYXRlKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1D
b21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlQ
YXltZW50TWV0aG9kVXBkYXRlPiYmIHVwZGF0ZSkKIHsKLSAgICBtX2F1dGhvcml6YXRpb25QcmVz
ZW50ZXItPmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbih1cGRhdGUpOworICAgIG1fYXV0
aG9yaXphdGlvblByZXNlbnRlci0+Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKFdURk1v
dmUodXBkYXRlKSk7CiB9CiAKIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OmdldFNl
dHVwRmVhdHVyZXMoY29uc3QgUGF5bWVudFNldHVwQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlv
biwgTWVzc2FnZXM6OldlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpHZXRTZXR1cEZlYXR1cmVz
OjpBc3luY1JlcGx5JiYgcmVwbHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
b2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCmluZGV4IGQzNWNmNmVhYmViZDEw
OThhYzhjMWYwMmJmMDUwNjk3MWE4NDMzMmEuLjc2YWZiNzJmZjJmZDRmOTdiNWNmMDEzMmVlYTli
MzM3ZmE0NGFiNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYkNv
cmVBcmd1bWVudENvZGVyc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29h
L1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCkBAIC00Niw2ICs0NiwxMCBAQAogI2ltcG9y
dCA8cGFsL2NvY29hL1Bhc3NLaXRTb2Z0TGluay5oPgogI2VuZGlmCiAKKyNpZiBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9XZWJDb3JlQXJndW1lbnRD
b2RlcnNDb2NvYUFkZGl0aW9ucy5tbT4KKyNlbmRpZgorCiBuYW1lc3BhY2UgSVBDIHsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xMTIsNyArMTE2LDcgQEAgT3B0aW9uYWw8V2ViQ29y
ZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5
bWVudEF1dGgKICAgICBpZiAoIXN0YXR1cykKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
IAotICAgIE9wdGlvbmFsPFZlY3RvcjxQYXltZW50RXJyb3I+PiBlcnJvcnM7CisgICAgT3B0aW9u
YWw8VmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4+IGVycm9yczsKICAgICBkZWNvZGVyID4+
IGVycm9yczsKICAgICBpZiAoIWVycm9ycykKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
QEAgLTEzNCwzMyArMTM4LDYgQEAgT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudENvbnRhY3Q+IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudENvbnRhY3Q+OjpkZWNvZGUKICAgICByZXR1cm4g
V2ViQ29yZTo6UGF5bWVudENvbnRhY3QgeyBXVEZNb3ZlKCpjb250YWN0KSB9OwogfQogCi12b2lk
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudEVycm9yPjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnRFcnJvciYgZXJyb3IpCi17Ci0gICAgZW5jb2Rl
ciA8PCBlcnJvci5jb2RlOwotICAgIGVuY29kZXIgPDwgZXJyb3IubWVzc2FnZTsKLSAgICBlbmNv
ZGVyIDw8IGVycm9yLmNvbnRhY3RGaWVsZDsKLX0KLQotT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVu
dEVycm9yPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRFcnJvcj46OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQotewotICAgIE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRFcnJvcjo6Q29k
ZT4gY29kZTsKLSAgICBkZWNvZGVyID4+IGNvZGU7Ci0gICAgaWYgKCFjb2RlKQotICAgICAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAgIE9wdGlvbmFsPFN0cmluZz4gbWVzc2FnZTsK
LSAgICBkZWNvZGVyID4+IG1lc3NhZ2U7Ci0gICAgaWYgKCFtZXNzYWdlKQotICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwotICAgIAotICAgIE9wdGlvbmFsPE9wdGlvbmFsPFdlYkNvcmU6OlBh
eW1lbnRFcnJvcjo6Q29udGFjdEZpZWxkPj4gY29udGFjdEZpZWxkOwotICAgIGRlY29kZXIgPj4g
Y29udGFjdEZpZWxkOwotICAgIGlmICghY29udGFjdEZpZWxkKQotICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwotCi0gICAgcmV0dXJuIHt7IFdURk1vdmUoKmNvZGUpLCBXVEZNb3ZlKCptZXNz
YWdlKSwgV1RGTW92ZSgqY29udGFjdEZpZWxkKSB9fTsKLX0KLQogdm9pZCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgV2ViQ29yZTo6UGF5bWVudE1lcmNoYW50U2Vzc2lvbiYgcGF5bWVudE1lcmNoYW50
U2Vzc2lvbikKIHsKICAgICBlbmNvZGVyIDw8IHBheW1lbnRNZXJjaGFudFNlc3Npb24ucGtQYXlt
ZW50TWVyY2hhbnRTZXNzaW9uKCk7CkBAIC0xODksMjAgKzE2Niw2IEBAIE9wdGlvbmFsPFdlYkNv
cmU6OlBheW1lbnRNZXRob2Q+IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudE1ldGhvZD46
OmRlY29kZShECiAgICAgcmV0dXJuIFBheW1lbnRNZXRob2QgeyBXVEZNb3ZlKCpwYXltZW50TWV0
aG9kKSB9OwogfQogCi12b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVw
ZGF0ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0
aG9kVXBkYXRlJiB1cGRhdGUpCi17Ci0gICAgZW5jb2RlciA8PCB1cGRhdGUucGxhdGZvcm1VcGRh
dGUoKTsKLX0KLQotT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudE1ldGhvZFVwZGF0ZT4gQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIpCi17Ci0gICAgYXV0byB1cGRhdGUgPSBJUEM6OmRlY29kZTxQS1BheW1lbnRSZXF1ZXN0
UGF5bWVudE1ldGhvZFVwZGF0ZT4oZGVjb2RlciwgUEFMOjpnZXRQS1BheW1lbnRSZXF1ZXN0UGF5
bWVudE1ldGhvZFVwZGF0ZUNsYXNzKCkpOwotICAgIGlmICghdXBkYXRlKQotICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwotCi0gICAgcmV0dXJuIFBheW1lbnRNZXRob2RVcGRhdGUgeyBXVEZN
b3ZlKCp1cGRhdGUpIH07Ci19Ci0KIHZvaWQgQXJndW1lbnRDb2RlcjxBcHBsZVBheVNlc3Npb25Q
YXltZW50UmVxdWVzdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICBlbmNvZGVyIDw8IHJlcXVlc3Qu
Y291bnRyeUNvZGUoKTsKQEAgLTIyMyw2ICsxODYsOSBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8QXBw
bGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29u
cwogI2lmIEVOQUJMRShBUFBMRV9QQVlfSU5TVEFMTE1FTlRTKQogICAgIGVuY29kZXIgPDwgcmVx
dWVzdC5pbnN0YWxsbWVudENvbmZpZ3VyYXRpb24oKTsKICNlbmRpZgorI2lmIGRlZmluZWQoV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzQ29jb2FBZGRpdGlvbnNfQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3RfZW5jb2RlKQorICAgIFdlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hQWRkaXRpb25zX0Fw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0X2VuY29kZQorI2VuZGlmCiB9CiAKIGJvb2wgQXJn
dW1lbnRDb2RlcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdD46OmRlY29kZShEZWNvZGVy
JiBkZWNvZGVyLCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYgcmVxdWVzdCkKQEAgLTI3
NCw3ICsyNDAsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3Q+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgQXBwbAogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgcmVxdWVzdC5zZXRTaGlwcGluZ1R5cGUoc2hpcHBpbmdUeXBlKTsKIAotICAgIFZl
Y3RvcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+IHNoaXBw
aW5nTWV0aG9kczsKKyAgICBWZWN0b3I8QXBwbGVQYXlTaGlwcGluZ01ldGhvZD4gc2hpcHBpbmdN
ZXRob2RzOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2hpcHBpbmdNZXRob2RzKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIHJlcXVlc3Quc2V0U2hpcHBpbmdNZXRob2RzKHNoaXBwaW5n
TWV0aG9kcyk7CkBAIC0zMTQsNiArMjgwLDEwIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxBcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBBcHBsCiAg
ICAgcmVxdWVzdC5zZXRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24oV1RGTW92ZSgqaW5zdGFsbG1l
bnRDb25maWd1cmF0aW9uKSk7CiAjZW5kaWYKIAorI2lmIGRlZmluZWQoV2ViQ29yZUFyZ3VtZW50
Q29kZXJzQ29jb2FBZGRpdGlvbnNfQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3RfZGVjb2Rl
KQorICAgIFdlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hQWRkaXRpb25zX0FwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0X2RlY29kZQorI2VuZGlmCisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApA
QCAtMzY0LDg4ICszMzQsMzggQEAgYm9vbCBBcmd1bWVudENvZGVyPEFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0OjpNZXJjaGFudENhcGFiaWxpdGllcz46OmRlY29kZSgKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1
ZXN0OjpTaGlwcGluZ01ldGhvZD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9k
KQordm9pZCBBcmd1bWVudENvZGVyPFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+Pjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+
JiBlcnJvcnMpCiB7Ci0gICAgZW5jb2RlciA8PCBzaGlwcGluZ01ldGhvZC5sYWJlbDsKLSAgICBl
bmNvZGVyIDw8IHNoaXBwaW5nTWV0aG9kLmRldGFpbDsKLSAgICBlbmNvZGVyIDw8IHNoaXBwaW5n
TWV0aG9kLmFtb3VudDsKLSAgICBlbmNvZGVyIDw8IHNoaXBwaW5nTWV0aG9kLmlkZW50aWZpZXI7
CisgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oZXJyb3JzLnNpemUoKSk7Cisg
ICAgZm9yIChhdXRvJiBlcnJvciA6IGVycm9ycykgeworICAgICAgICBlbmNvZGVyIDw8ICEhZXJy
b3I7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIGVuY29kZXIgPDwgKmVycm9yOwor
ICAgIH0KIH0KIAotT3B0aW9uYWw8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBw
aW5nTWV0aG9kPiBBcmd1bWVudENvZGVyPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpT
aGlwcGluZ01ldGhvZD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQorT3B0aW9uYWw8VmVjdG9y
PFJlZlB0cjxBcHBsZVBheUVycm9yPj4+IEFyZ3VtZW50Q29kZXI8VmVjdG9yPFJlZlB0cjxBcHBs
ZVBheUVycm9yPj4+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKIHsKLSAgICBBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Qgc2hpcHBpbmdNZXRob2Q7Ci0gICAg
aWYgKCFkZWNvZGVyLmRlY29kZShzaGlwcGluZ01ldGhvZC5sYWJlbCkpCisgICAgdWludDY0X3Qg
c2l6ZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHNpemUpKQogICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc2hpcHBpbmdNZXRob2QuZGV0YWls
KSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHNoaXBwaW5nTWV0aG9kLmFtb3VudCkpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0g
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShzaGlwcGluZ01ldGhvZC5pZGVudGlmaWVyKSkKLSAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICByZXR1cm4gV1RGTW92ZShzaGlwcGluZ01ldGhv
ZCk7Ci19CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dDo6VG90YWxBbmRMaW5lSXRlbXM+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgQXBw
bGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zJiB0b3RhbEFuZExp
bmVJdGVtcykKLXsKLSAgICBlbmNvZGVyIDw8IHRvdGFsQW5kTGluZUl0ZW1zLnRvdGFsOwotICAg
IGVuY29kZXIgPDwgdG90YWxBbmRMaW5lSXRlbXMubGluZUl0ZW1zOwotfQorICAgIFZlY3RvcjxS
ZWZQdHI8QXBwbGVQYXlFcnJvcj4+IGVycm9ycyhzaXplKTsKKyAgICBmb3IgKHVpbnQ2NF90IGkg
PSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAgIE9wdGlvbmFsPGJvb2w+IGlzVmFsaWQ7Cisg
ICAgICAgIGRlY29kZXIgPj4gaXNWYWxpZDsKKyAgICAgICAgaWYgKCFpc1ZhbGlkKQorICAgICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotT3B0aW9uYWw8QXBwbGVQYXlTZXNzaW9uUGF5
bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zPiBBcmd1bWVudENvZGVyPEFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcz46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQotewotICAgIE9wdGlvbmFsPEFwcGxlUGF5TGluZUl0ZW0+IHRvdGFsOwotICAgIGRl
Y29kZXIgPj4gdG90YWw7Ci0gICAgaWYgKCF0b3RhbCkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKLSAgICAKLSAgICBPcHRpb25hbDxWZWN0b3I8QXBwbGVQYXlMaW5lSXRlbT4+IGxpbmVJ
dGVtczsKLSAgICBkZWNvZGVyID4+IGxpbmVJdGVtczsKLSAgICBpZiAoIWxpbmVJdGVtcykKLSAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAKLSAgICByZXR1cm4ge3sgV1RGTW92ZSgq
dG90YWwpLCBXVEZNb3ZlKCpsaW5lSXRlbXMpIH19OwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZSYgdXBkYXRlKQotewotICAgIGVu
Y29kZXIgPDwgdXBkYXRlLmVycm9yczsKLSAgICBlbmNvZGVyIDw8IHVwZGF0ZS5uZXdTaGlwcGlu
Z01ldGhvZHM7Ci0gICAgZW5jb2RlciA8PCB1cGRhdGUubmV3VG90YWxBbmRMaW5lSXRlbXM7Ci19
Ci0KLU9wdGlvbmFsPFdlYkNvcmU6OlNoaXBwaW5nQ29udGFjdFVwZGF0ZT4gQXJndW1lbnRDb2Rl
cjxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rl
cikKLXsKLSAgICBPcHRpb25hbDxWZWN0b3I8UGF5bWVudEVycm9yPj4gZXJyb3JzOwotICAgIGRl
Y29kZXIgPj4gZXJyb3JzOwotICAgIGlmICghZXJyb3JzKQotICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OwotICAgIAotICAgIE9wdGlvbmFsPFZlY3RvcjxBcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdDo6U2hpcHBpbmdNZXRob2Q+PiBuZXdTaGlwcGluZ01ldGhvZHM7Ci0gICAgZGVjb2Rl
ciA+PiBuZXdTaGlwcGluZ01ldGhvZHM7Ci0gICAgaWYgKCFuZXdTaGlwcGluZ01ldGhvZHMpCi0g
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCi0gICAgT3B0aW9uYWw8QXBwbGVQYXlT
ZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zPiBuZXdUb3RhbEFuZExpbmVJ
dGVtczsKLSAgICBkZWNvZGVyID4+IG5ld1RvdGFsQW5kTGluZUl0ZW1zOwotICAgIGlmICghbmV3
VG90YWxBbmRMaW5lSXRlbXMpCi0gICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgCi0g
ICAgcmV0dXJuIHt7IFdURk1vdmUoKmVycm9ycyksIFdURk1vdmUoKm5ld1NoaXBwaW5nTWV0aG9k
cyksIFdURk1vdmUoKm5ld1RvdGFsQW5kTGluZUl0ZW1zKSB9fTsKLX0KLQotdm9pZCBBcmd1bWVu
dENvZGVyPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPjo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIsIGNvbnN0IFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlJiB1cGRhdGUpCi17Ci0g
ICAgZW5jb2RlciA8PCB1cGRhdGUubmV3VG90YWxBbmRMaW5lSXRlbXM7Ci19Ci0KLU9wdGlvbmFs
PFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNo
aXBwaW5nTWV0aG9kVXBkYXRlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgT3B0
aW9uYWw8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zPiBu
ZXdUb3RhbEFuZExpbmVJdGVtczsKLSAgICBkZWNvZGVyID4+IG5ld1RvdGFsQW5kTGluZUl0ZW1z
OwotICAgIGlmICghbmV3VG90YWxBbmRMaW5lSXRlbXMpCi0gICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7Ci0gICAgcmV0dXJuIHt7IFdURk1vdmUoKm5ld1RvdGFsQW5kTGluZUl0ZW1zKSB9fTsK
KyAgICAgICAgUmVmUHRyPEFwcGxlUGF5RXJyb3I+IGVycm9yOworICAgICAgICBpZiAoKmlzVmFs
aWQpIHsKKyAgICAgICAgICAgIGVycm9yID0gQXBwbGVQYXlFcnJvcjo6ZGVjb2RlKGRlY29kZXIp
OworICAgICAgICAgICAgaWYgKCFlcnJvcikKKyAgICAgICAgICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworICAgICAgICB9CisgICAgICAgIGVycm9ycy5hcHBlbmQoV1RGTW92ZShlcnJvcikp
OworICAgIH0KKyAgICByZXR1cm4gZXJyb3JzOwogfQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6UGF5bWVudFNlc3Npb25FcnJvcj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBXZWJDb3JlOjpQYXltZW50U2Vzc2lvbkVycm9yJiBlcnJvcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggMjYwOThlZmRkYjRhZmYyZWJlZjdi
MmZjYTYxZDVjZmEwMDc1NzRmZC4uMzZhMWRmMzc5ZTRkM2Q0NmE1YjNiZTFjMzQzMzUwZDM0YzY4
YWU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgK
QEAgLTY3NywxMSArNjc3LDYgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpQYXltZW50Q29udGFjdD4gewogICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpQYXlt
ZW50Q29udGFjdD4gZGVjb2RlKERlY29kZXImKTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IEFy
Z3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudEVycm9yPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50RXJyb3ImKTsKLSAgICBzdGF0aWMg
T3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEVycm9yPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQog
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRT
ZXNzaW9uPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJik7CiAgICAgc3RhdGljIE9wdGlvbmFsPFdlYkNvcmU6
OlBheW1lbnRNZXJjaGFudFNlc3Npb24+IGRlY29kZShEZWNvZGVyJik7CkBAIC02OTIsMTEgKzY4
Nyw2IEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudE1l
dGhvZD4gewogICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9kPiBkZWNv
ZGUoRGVjb2RlciYpOwogfTsKIAotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlJik7Ci0gICAgc3RhdGljIE9w
dGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRob2RVcGRhdGU+IGRlY29kZShEZWNvZGVyJik7Ci19
OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCYpOwogICAgIHN0YXRp
YyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkFwcGxl
UGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Jik7CkBAIC03MTEsMjQgKzcwMSw5IEBAIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3Q6Ok1lcmNoYW50CiAgICAgc3RhdGljIFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZShEZWNvZGVyJiwgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6Ok1lcmNo
YW50Q2FwYWJpbGl0aWVzJik7CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZD4g
ewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6QXBwbGVQ
YXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJik7Ci0gICAgc3RhdGljIE9w
dGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01l
dGhvZD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50
Q29kZXI8V2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGlu
ZUl0ZW1zPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6VG90YWxBbmRMaW5lSXRlbXMmKTsKLSAg
ICBzdGF0aWMgT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6
OlRvdGFsQW5kTGluZUl0ZW1zPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotdGVtcGxhdGU8PiBz
dHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+IHsKLSAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlNoaXBwaW5nQ29u
dGFjdFVwZGF0ZSYpOwotICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRh
Y3RVcGRhdGU+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OlNoaXBwaW5nTWV0aG9kVXBkYXRlPiB7Ci0gICAgc3RhdGljIHZv
aWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZSYp
OwotICAgIHN0YXRpYyBPcHRpb25hbDxXZWJDb3JlOjpTaGlwcGluZ01ldGhvZFVwZGF0ZT4gZGVj
b2RlKERlY29kZXImKTsKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8VmVjdG9yPFJl
ZlB0cjxXZWJDb3JlOjpBcHBsZVBheUVycm9yPj4+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUo
RW5jb2RlciYsIGNvbnN0IFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6QXBwbGVQYXlFcnJvcj4+Jik7
CisgICAgc3RhdGljIE9wdGlvbmFsPFZlY3RvcjxSZWZQdHI8V2ViQ29yZTo6QXBwbGVQYXlFcnJv
cj4+PiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpQYXltZW50U2Vzc2lvbkVycm9yPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuY3Bw
CmluZGV4IDg2ZDAyZTE2YzY3ZDIxOWE2NzA4MjdjMDMwZDIwNDZmMDI3M2UwNzEuLjBiMWQ1MzM4
OTE5Njg3NTI2MjE2YjFjMjFhNDY4Y2I1ZmExZWU0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuY3Bw
CkBAIC0zNiw2ICszNiw5IEBACiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eU1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGVQYXlQYXltZW50
TWV0aG9kVXBkYXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5nQ29udGFj
dFVwZGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BheW1l
bnRDb29yZGluYXRvci5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTEwOSwxOSArMTEyLDE5
IEBAIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlv
bihjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHk6OkNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKHBheW1lbnRNZXJj
aGFudFNlc3Npb24pKTsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRl
U2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RV
cGRhdGU+JiYgdXBkYXRlKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hp
cHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01l
dGhvZFVwZGF0ZT4mJiB1cGRhdGUpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGF5bWVudENv
b3JkaW5hdG9yUHJveHk6OkNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24odXBkYXRlKSk7
CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OkNvbXBsZXRl
U2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oV1RGTW92ZSh1cGRhdGUpKSk7CiB9CiAKLXZvaWQgV2Vi
UGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRp
b25hbDxXZWJDb3JlOjpTaGlwcGluZ0NvbnRhY3RVcGRhdGU+JiYgdXBkYXRlKQordm9pZCBXZWJQ
YXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlv
bmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmIHVwZGF0ZSkKIHsK
LSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Q29tcGxldGVT
aGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24odXBkYXRlKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGF5bWVudENvb3JkaW5hdG9yUHJveHk6OkNvbXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9u
KFdURk1vdmUodXBkYXRlKSkpOwogfQogCi12b2lkIFdlYlBheW1lbnRDb29yZGluYXRvcjo6Y29t
cGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRNZXRo
b2RVcGRhdGU+JiYgdXBkYXRlKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRl
UGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRN
ZXRob2RVcGRhdGU+JiYgdXBkYXRlKQogewotICAgIHNlbmQoTWVzc2FnZXM6OldlYlBheW1lbnRD
b29yZGluYXRvclByb3h5OjpDb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24odXBkYXRlKSk7
CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OkNvbXBsZXRl
UGF5bWVudE1ldGhvZFNlbGVjdGlvbihXVEZNb3ZlKHVwZGF0ZSkpKTsKIH0KIAogdm9pZCBXZWJQ
YXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudFNlc3Npb24oT3B0aW9uYWw8V2ViQ29y
ZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+JiYgcmVzdWx0KQpAQCAtMTg4LDcgKzE5MSw3
IEBAIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yOjpkaWRBdXRob3JpemVQYXltZW50KGNvbnN0
IFdlYkNvcmU6OlBheW1lbnQmIHBheW1lbnQpCiAgICAgcGF5bWVudENvb3JkaW5hdG9yKCkuZGlk
QXV0aG9yaXplUGF5bWVudChwYXltZW50KTsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0
b3I6OmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCit2b2lkIFdl
YlBheW1lbnRDb29yZGluYXRvcjo6ZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgV2ViQ29y
ZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZCYgc2hpcHBpbmdNZXRob2QpCiB7CiAgICAgcGF5bWVu
dENvb3JkaW5hdG9yKCkuZGlkU2VsZWN0U2hpcHBpbmdNZXRob2Qoc2hpcHBpbmdNZXRob2QpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1l
bnRDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBh
eW1lbnRDb29yZGluYXRvci5oCmluZGV4IGM5ZGM2ODJiODc1NDliODI1MGRiMjJiMmExY2UyMTU1
NTAwMGNlYzguLmU3YmE1ZWEyZTg3ZTI3NzJiM2VjODUwMzllOTkxZGJlNzYwZjM0NzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRp
bmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVu
dENvb3JkaW5hdG9yLmgKQEAgLTQwLDYgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xh
c3MgUGF5bWVudENvb3JkaW5hdG9yOwogY2xhc3MgUGF5bWVudENvbnRhY3Q7CiBjbGFzcyBQYXlt
ZW50U2Vzc2lvbkVycm9yOworc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q7CiB9CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewpAQCAtNjQsOSArNjUsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgb3Bl
blBheW1lbnRTZXR1cChjb25zdCBTdHJpbmcmIG1lcmNoYW50SWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBkb21haW5OYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVycmlk
ZTsKICAgICBib29sIHNob3dQYXltZW50VUkoY29uc3QgVVJMJiBvcmlnaW5hdGluZ1VSTCwgY29u
c3QgVmVjdG9yPFVSTD4mIGxpbmtJY29uVVJMcywgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3QmKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbXBsZXRlTWVyY2hhbnRW
YWxpZGF0aW9uKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24mKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2Vi
Q29yZTo6U2hpcHBpbmdNZXRob2RVcGRhdGU+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgY29tcGxl
dGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250
YWN0VXBkYXRlPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNl
bGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiYmKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2Vi
Q29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZT4mJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBs
ZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21wbGV0
ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlQYXltZW50
TWV0aG9kVXBkYXRlPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Np
b24oT3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+JiYpIG92ZXJy
aWRlOwogCiAgICAgdm9pZCBhYm9ydFBheW1lbnRTZXNzaW9uKCkgb3ZlcnJpZGU7CkBAIC05NSw3
ICs5Niw3IEBAIHByaXZhdGU6CiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lkIHZh
bGlkYXRlTWVyY2hhbnQoY29uc3QgU3RyaW5nJiB2YWxpZGF0aW9uVVJMU3RyaW5nKTsKICAgICB2
b2lkIGRpZEF1dGhvcml6ZVBheW1lbnQoY29uc3QgV2ViQ29yZTo6UGF5bWVudCYpOwotICAgIHZv
aWQgZGlkU2VsZWN0U2hpcHBpbmdNZXRob2QoY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q6OlNoaXBwaW5nTWV0aG9kJik7CisgICAgdm9pZCBkaWRTZWxlY3RTaGlw
cGluZ01ldGhvZChjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0aG9kJik7CiAgICAg
dm9pZCBkaWRTZWxlY3RTaGlwcGluZ0NvbnRhY3QoY29uc3QgV2ViQ29yZTo6UGF5bWVudENvbnRh
Y3QmKTsKICAgICB2b2lkIGRpZFNlbGVjdFBheW1lbnRNZXRob2QoY29uc3QgV2ViQ29yZTo6UGF5
bWVudE1ldGhvZCYpOwogICAgIHZvaWQgZGlkQ2FuY2VsUGF5bWVudFNlc3Npb24oV2ViQ29yZTo6
UGF5bWVudFNlc3Npb25FcnJvciYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLm1lc3NhZ2Vz
LmluCmluZGV4IGZhNDYyNzI1NjU3MzZmZWZmMDg2OGNkYTkzOGU0YzE1NDhmZjI1YTIuLjM2ZWM0
ZjEyM2Y4YWEyNzFlNzU1MTFiNTNkMTI0MjAyZDAyYmQzODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29y
ZGluYXRvci5tZXNzYWdlcy5pbgpAQCAtMjgsNyArMjgsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYXlt
ZW50Q29vcmRpbmF0b3IgTm90UmVmQ291bnRlZCB7CiAKICAgICBWYWxpZGF0ZU1lcmNoYW50KFN0
cmluZyB2YWxpZGF0aW9uVVJMU3RyaW5nKQogICAgIERpZEF1dGhvcml6ZVBheW1lbnQoV2ViQ29y
ZTo6UGF5bWVudCBwYXltZW50KQotICAgIERpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKFdlYkNvcmU6
OkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpTaGlwcGluZ01ldGhvZCBzaGlwcGluZ01l
dGhvZCkKKyAgICBEaWRTZWxlY3RTaGlwcGluZ01ldGhvZChzdHJ1Y3QgV2ViQ29yZTo6QXBwbGVQ
YXlTaGlwcGluZ01ldGhvZCBzaGlwcGluZ01ldGhvZCkKICAgICBEaWRTZWxlY3RTaGlwcGluZ0Nv
bnRhY3QoV2ViQ29yZTo6UGF5bWVudENvbnRhY3Qgc2hpcHBpbmdDb250YWN0KQogICAgIERpZFNl
bGVjdFBheW1lbnRNZXRob2QoV2ViQ29yZTo6UGF5bWVudE1ldGhvZCBwYXltZW50TWV0aG9kKQog
ICAgIERpZENhbmNlbFBheW1lbnRTZXNzaW9uKFdlYkNvcmU6OlBheW1lbnRTZXNzaW9uRXJyb3Ig
c2Vzc2lvbkVycm9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQuaAppbmRl
eCBmNDMxYTRkZjUzOWY2NWE0ZDdkNTE0M2ZhNTAzOWY4Yzk0ZTY4NmVmLi5iMDM5MzYzMjI2MTM1
NDUzMjUwYmMyYTJjNGQwOTQyOWZmN2FlN2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRp
bmF0b3JDbGllbnQuaApAQCAtNDIsOSArNDIsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgb3BlblBh
eW1lbnRTZXR1cChjb25zdCBTdHJpbmcmIG1lcmNoYW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBkb21haW5OYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsK
ICAgICBib29sIHNob3dQYXltZW50VUkoY29uc3QgVVJMJiwgY29uc3QgVmVjdG9yPFVSTD4mIGxp
bmtJY29uVVJMcywgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Qm
KSBvdmVycmlkZTsKICAgICB2b2lkIGNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFdl
YkNvcmU6OlBheW1lbnRNZXJjaGFudFNlc3Npb24mKSBvdmVycmlkZTsKLSAgICB2b2lkIGNvbXBs
ZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRo
b2RVcGRhdGU+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgY29tcGxldGVTaGlwcGluZ0NvbnRhY3RT
ZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxX
ZWJDb3JlOjpQYXltZW50TWV0aG9kVXBkYXRlPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXBs
ZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlw
cGluZ01ldGhvZFVwZGF0ZT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5n
Q29udGFjdFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nQ29udGFj
dFVwZGF0ZT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxl
Y3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlPiYmKSBv
dmVycmlkZTsKICAgICB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24oT3B0aW9uYWw8V2ViQ29y
ZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgYWJv
cnRQYXltZW50U2Vzc2lvbigpIG92ZXJyaWRlOwogICAgIHZvaWQgY2FuY2VsUGF5bWVudFNlc3Np
b24oKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYlBheW1lbnRDb29yZGluYXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBheW1lbnRDb29yZGluYXRvckNsaWVudC5tbQpp
bmRleCBiYjk5NGIzNDY5ZmUyM2E1YmU2YmYyMjIwZTcxMjNlNGExMjZlZDliLi41ZDhlMjg0NzJi
MDdmMzMyMTNkNmYwOGIzNDVjNDFhMzZlZmZjNjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQubW0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGF5bWVudENv
b3JkaW5hdG9yQ2xpZW50Lm1tCkBAIC03MiwxNSArNzIsMTUgQEAgdm9pZCBXZWJQYXltZW50Q29v
cmRpbmF0b3JDbGllbnQ6OmNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFdlYkNvcmU6
OlBheW0KIHsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQ6OmNvbXBsZXRl
U2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBpbmdNZXRob2RV
cGRhdGU+JiYpCit2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvckNsaWVudDo6Y29tcGxldGVTaGlw
cGluZ01ldGhvZFNlbGVjdGlvbihPcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBwaW5nTWV0
aG9kVXBkYXRlPiYmKQogewogfQogCi12b2lkIFdlYlBheW1lbnRDb29yZGluYXRvckNsaWVudDo6
Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oT3B0aW9uYWw8V2ViQ29yZTo6U2hpcHBp
bmdDb250YWN0VXBkYXRlPiYmKQordm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQ6OmNv
bXBsZXRlU2hpcHBpbmdDb250YWN0U2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5
U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKQogewogfQogCi12b2lkIFdlYlBheW1lbnRDb29yZGlu
YXRvckNsaWVudDo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNv
cmU6OlBheW1lbnRNZXRob2RVcGRhdGU+JiYpCit2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvckNs
aWVudDo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKE9wdGlvbmFsPFdlYkNvcmU6OkFw
cGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJikKIHsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>