<?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>46587</bug_id>
          
          <creation_ts>2010-09-26 15:20:38 -0700</creation_ts>
          <short_desc>Move shared WebKit2 API (used by both bundle and main API) to WebKit2/Shared/API</short_desc>
          <delta_ts>2010-09-26 19:14:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>285183</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-26 15:20:38 -0700</bug_when>
    <thetext>Move shared WebKit2 API (used by both bundle and main API) to WebKit2/Shared/API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>285186</commentid>
    <comment_count>1</comment_count>
      <attachid>68863</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-09-26 15:25:21 -0700</bug_when>
    <thetext>Created attachment 68863
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68863</attachid>
            <date>2010-09-26 15:25:21 -0700</date>
            <delta_ts>2010-09-26 15:27:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>changes.diff</filename>
            <type>text/plain</type>
            <size>339858</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2ODM1MykKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTMxIEBACisyMDEwLTA5LTI2ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBz
aGFyZWQgV2ViS2l0MiBBUEkgKHVzZWQgYnkgYm90aCBidW5kbGUgYW5kIG1haW4gQVBJKSB0byBX
ZWJLaXQyL1NoYXJlZC9BUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ2NTg3CisKKyAgICAgICAgLSBNb3ZlcyBzaGFyZWQgdHlwZXMgKFdLQXJyYXlS
ZWYsIFdLRGljdGlvbmFyeVJlZiwgZXRjKSB0byBTaGFyZWQvQVBJL2MuCisgICAgICAgIC0gUmVt
b3ZlcyBXS0J1bmRsZUJhc2UuaCBhbmQgbW92ZXMgYWxsIG9wYXF1ZSB0eXBlIGRlY2xhcmF0aW9u
cyB0byBXS0Jhc2UuaCAod2hpY2gKKyAgICAgICAgICBtb3ZlcyB0byBTaGFyZWQvQVBJL2MpLgor
ICAgICAgICAtIEFkZHMgV0tTaGFyZWRBUElDYXN0Lmggd2hpY2ggaW5jbHVkZXMgc2hhcmVkIEFQ
SSBjYXN0aW5nIGxvZ2ljIGFuZCBpcyBpbmNsdWRlZAorICAgICAgICAgIGJ5IGJvdGggV0tBUElD
YXN0LmggYW5kIFdLQnVuZGxlQVBJQ2FzdC5oIG5vdy4gTW92ZWQgdG8gdXNpbmcgbWFjcm9zIGZv
ciBBUEkgCisgICAgICAgICAgbWFwcGluZ3MgdG8gcmVkdWNlIHZlcmJvc2l0eS4KKyAgICAgICAg
LSBNb3ZlIHdpbmRvd3MgYyBBUEkgZmlsZXMgZnJvbSBVSVByb2Nlc3MvQVBJL3dpbiB0byBVSVBy
b2Nlc3MvQVBJL0Mvd2luLgorCisgICAgICAgICogU2hhcmVkL0FQSTogQWRkZWQuCisgICAgICAg
ICogU2hhcmVkL0FQSS9jOiBBZGRlZC4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tBcnJheS5j
cHA6IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQy9XS0FycmF5LmNwcC4KKyAgICAgICAgKiBT
aGFyZWQvQVBJL2MvV0tBcnJheS5oOiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0MvV0tBcnJh
eS5oLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0Jhc2UuaDogQ29waWVkIGZyb20gVUlQcm9j
ZXNzL0FQSS9DL1dLQmFzZS5oLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS0NlcnRpZmljYXRl
SW5mby5jcHA6IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQy9XS0NlcnRpZmljYXRlSW5mby5j
cHAuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNhdGVJbmZvLmg6IENvcGllZCBm
cm9tIFVJUHJvY2Vzcy9BUEkvQy9XS0NlcnRpZmljYXRlSW5mby5oLgorICAgICAgICAqIFNoYXJl
ZC9BUEkvYy9XS0RhdGEuY3BwOiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0MvV0tEYXRhLmNw
cC4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tEYXRhLmg6IENvcGllZCBmcm9tIFVJUHJvY2Vz
cy9BUEkvQy9XS0RhdGEuaC4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tEaWN0aW9uYXJ5LmNw
cDogQ29waWVkIGZyb20gVUlQcm9jZXNzL0FQSS9DL1dLRGljdGlvbmFyeS5jcHAuCisgICAgICAg
ICogU2hhcmVkL0FQSS9jL1dLRGljdGlvbmFyeS5oOiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJ
L0MvV0tEaWN0aW9uYXJ5LmguCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLRXJyb3IuY3BwOiBD
b3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0MvV0tFcnJvci5jcHAuCisgICAgICAgICogU2hhcmVk
L0FQSS9jL1dLRXJyb3IuaDogQ29waWVkIGZyb20gVUlQcm9jZXNzL0FQSS9DL1dLRXJyb3IuaC4K
KyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tNdXRhYmxlQXJyYXkuY3BwOiBDb3BpZWQgZnJvbSBV
SVByb2Nlc3MvQVBJL0MvV0tNdXRhYmxlQXJyYXkuY3BwLgorICAgICAgICAqIFNoYXJlZC9BUEkv
Yy9XS011dGFibGVBcnJheS5oOiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0MvV0tNdXRhYmxl
QXJyYXkuaC4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tNdXRhYmxlRGljdGlvbmFyeS5jcHA6
IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQy9XS011dGFibGVEaWN0aW9uYXJ5LmNwcC4KKyAg
ICAgICAgKiBTaGFyZWQvQVBJL2MvV0tNdXRhYmxlRGljdGlvbmFyeS5oOiBDb3BpZWQgZnJvbSBV
SVByb2Nlc3MvQVBJL0MvV0tNdXRhYmxlRGljdGlvbmFyeS5oLgorICAgICAgICAqIFNoYXJlZC9B
UEkvYy9XS051bWJlci5jcHA6IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQy9XS051bWJlci5j
cHAuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLTnVtYmVyLmg6IENvcGllZCBmcm9tIFVJUHJv
Y2Vzcy9BUEkvQy9XS051bWJlci5oLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5jcHA6IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQy9XS1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5jcHAuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmg6IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQy9XS1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZS5oLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaDogQ29w
aWVkIGZyb20gVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oLgorICAgICAgICAqIFNoYXJlZC9B
UEkvYy9XS1N0cmluZy5jcHA6IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQy9XS1N0cmluZy5j
cHAuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmg6IENvcGllZCBmcm9tIFVJUHJv
Y2Vzcy9BUEkvQy9XS1N0cmluZy5oLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1R5cGUuY3Bw
OiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0MvV0tUeXBlLmNwcC4KKyAgICAgICAgKiBTaGFy
ZWQvQVBJL2MvV0tUeXBlLmg6IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQy9XS1R5cGUuaC4K
KyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tVUkwuY3BwOiBDb3BpZWQgZnJvbSBVSVByb2Nlc3Mv
QVBJL0MvV0tVUkwuY3BwLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9XS1VSTC5oOiBDb3BpZWQg
ZnJvbSBVSVByb2Nlc3MvQVBJL0MvV0tVUkwuaC4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tV
UkxSZXF1ZXN0LmNwcDogQ29waWVkIGZyb20gVUlQcm9jZXNzL0FQSS9DL1dLVVJMUmVxdWVzdC5j
cHAuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5oOiBDb3BpZWQgZnJvbSBV
SVByb2Nlc3MvQVBJL0MvV0tVUkxSZXF1ZXN0LmguCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dL
VVJMUmVzcG9uc2UuY3BwOiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0MvV0tVUkxSZXNwb25z
ZS5jcHAuCisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLVVJMUmVzcG9uc2UuaDogQ29waWVkIGZy
b20gVUlQcm9jZXNzL0FQSS9DL1dLVVJMUmVzcG9uc2UuaC4KKyAgICAgICAgKiBTaGFyZWQvQVBJ
L2MvY2Y6IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvQy9jZi4KKyAgICAgICAgKiBTaGFyZWQv
QVBJL2MvbWFjOiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL0MvbWFjLgorICAgICAgICAqIFNo
YXJlZC9BUEkvYy93aW46IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy93aW4vV0tCYXNl
V2luLmg6IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvd2luL1dLQmFzZVdpbi5oLgorICAgICAg
ICAqIFNoYXJlZC9BUEkvYy93aW4vV0tDZXJ0aWZpY2F0ZUluZm9XaW4uY3BwOiBDb3BpZWQgZnJv
bSBVSVByb2Nlc3MvQVBJL0Mvd2luL1dLQ2VydGlmaWNhdGVJbmZvV2luLmNwcC4KKyAgICAgICAg
KiBTaGFyZWQvQVBJL2Mvd2luL1dLQ2VydGlmaWNhdGVJbmZvV2luLmg6IENvcGllZCBmcm9tIFVJ
UHJvY2Vzcy9BUEkvQy93aW4vV0tDZXJ0aWZpY2F0ZUluZm9XaW4uaC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6IFJlcGxhY2VkLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS0FycmF5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tB
cnJheS5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0Jhc2UuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDZXJ0aWZpY2F0ZUluZm8uY3BwOiBS
ZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NlcnRpZmljYXRlSW5mby5oOiBS
ZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0RhdGEuY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0RhdGEuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tEaWN0aW9uYXJ5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tEaWN0aW9uYXJ5Lmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLRXJyb3IuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S0Vycm9yLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTXV0YWJsZUFy
cmF5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tNdXRhYmxlQXJy
YXkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tNdXRhYmxlRGljdGlv
bmFyeS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLTXV0YWJsZURp
Y3Rpb25hcnkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tOdW1iZXIu
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS051bWJlci5oOiBSZW1v
dmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLU3RyaW5nLmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tTdHJpbmcuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tUeXBlLmNwcDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tUeXBlLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLVVJMLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tVUkwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tVUkxSZXF1ZXN0
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tVUkxSZXF1ZXN0Lmg6
IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLVVJMUmVzcG9uc2UuY3BwOiBS
ZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1VSTFJlc3BvbnNlLmg6IFJlbW92
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2NmOiBSZW1vdmVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9jZi9XS1N0cmluZ0NGLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvY2YvV0tTdHJpbmdDRi5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQy9jZi9XS1VSTENGLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0MvY2YvV0tVUkxDRi5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9jZi9X
S1VSTFJlcXVlc3RDRi5jcHA6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2Nm
L1dLVVJMUmVxdWVzdENGLmg6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL2Nm
L1dLVVJMUmVzcG9uc2VDRi5jcHA6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L2NmL1dLVVJMUmVzcG9uc2VDRi5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9tYWM6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NlcnRpZmlj
YXRlSW5mb01hYy5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9tYWMvV0tD
ZXJ0aWZpY2F0ZUluZm9NYWMubW06IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
L21hYy9XS1VSTFJlcXVlc3ROUy5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9tYWMvV0tVUkxSZXF1ZXN0TlMubW06IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9DL21hYy9XS1VSTFJlc3BvbnNlTlMuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvbWFjL1dLVVJMUmVzcG9uc2VOUy5tbTogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0Mvd2luL1dLQVBJQ2FzdFdpbi5oOiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL3dp
bi9XS0FQSUNhc3RXaW4uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mvd2luL1dLQmFzZVdp
bi5oOiBDb3BpZWQgZnJvbSBVSVByb2Nlc3MvQVBJL3dpbi9XS0Jhc2VXaW4uaC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0Mvd2luL1dLQ2VydGlmaWNhdGVJbmZvV2luLmNwcDogUmVtb3ZlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mvd2luL1dLQ2VydGlmaWNhdGVJbmZvV2luLmg6IFJl
bW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL3dpbi9XS1ZpZXcuY3BwOiBDb3BpZWQg
ZnJvbSBVSVByb2Nlc3MvQVBJL3dpbi9XS1ZpZXcuY3BwLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy93aW4vV0tWaWV3Lmg6IENvcGllZCBmcm9tIFVJUHJvY2Vzcy9BUEkvd2luL1dLVmlldy5o
LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd2luOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvd2luL1dLQVBJQ2FzdFdpbi5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvd2luL1dLQmFzZVdpbi5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
d2luL1dLVmlldy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93aW4vV0tW
aWV3Lmg6IFJlbW92ZWQuCisgICAgICAgICogV2ViS2l0Mi5wcm86CisgICAgICAgICogV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlQVBJQ2FzdC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYXNlLmg6IFJlbW92ZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lUHJpdmF0ZS5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0
UmVzdWx0Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUluaXRpYWxpemUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlTm9kZUhhbmRsZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUmFuZ2VIYW5kbGUuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlU2NyaXB0V29ybGQu
aDoKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisgICAgICAgICogd2luL1dlYktpdDJH
ZW5lcmF0ZWQubWFrZToKKwogMjAxMC0wOS0yNiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBub24tTWFjIGJ1aWxkcy4KSW5kZXg6IFdlYktpdDIv
V2ViS2l0Mi5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJLaXQyLnBybwkocmV2aXNpb24g
NjgzMjIpCisrKyBXZWJLaXQyL1dlYktpdDIucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xNTksNiAr
MTU5LDE2IEBAIEhFQURFUlMgKz0gXAogICAgIFBsYXRmb3JtL1NoYXJlZE1lbW9yeS5oIFwKICAg
ICBQbGF0Zm9ybS9Xb3JrSXRlbS5oIFwKICAgICBQbGF0Zm9ybS9Xb3JrUXVldWUuaCBcCisgICAg
U2hhcmVkL0FQSS9jL1dLQmFzZS5oIFwKKyAgICBTaGFyZWQvQVBJL2MvV0tDZXJ0aWZpY2F0ZUlu
Zm8uaCBcCisgICAgU2hhcmVkL0FQSS9jL1dLTnVtYmVyLmggXAorICAgIFNoYXJlZC9BUEkvYy9X
S1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIFwKKyAgICBTaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElD
YXN0LmggXAorICAgIFNoYXJlZC9BUEkvYy9XS1N0cmluZy5oIFwKKyAgICBTaGFyZWQvQVBJL2Mv
V0tUeXBlLmggXAorICAgIFNoYXJlZC9BUEkvYy9XS1VSTC5oIFwKKyAgICBTaGFyZWQvQVBJL2Mv
V0tVUkxSZXF1ZXN0LmggXAorICAgIFNoYXJlZC9BUEkvYy9XS1VSTFJlc3BvbnNlLmggXAogICAg
IFNoYXJlZC9Db3JlSVBDU3VwcG9ydC9EcmF3aW5nQXJlYU1lc3NhZ2VLaW5kcy5oIFwKICAgICBT
aGFyZWQvQ29yZUlQQ1N1cHBvcnQvRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VLaW5kcy5oIFwKICAg
ICBTaGFyZWQvQ29yZUlQQ1N1cHBvcnQvV2ViUGFnZVByb3h5TWVzc2FnZUtpbmRzLmggXApAQCAt
MTc2LDM3ICsxODYsMjggQEAgSEVBREVSUyArPSBcCiAgICAgU2hhcmVkL1VzZXJNZXNzYWdlQ29k
ZXJzLmggXAogICAgIFNoYXJlZC9WaXNpdGVkTGlua1RhYmxlLmggXAogICAgIFNoYXJlZC9XZWJD
ZXJ0aWZpY2F0ZUluZm8uaCBcCi0gICAgU2hhcmVkL1dlYkV2ZW50Q29udmVyc2lvbi5oIFwKICAg
ICBTaGFyZWQvV2ViRXZlbnQuaCBcCi0gICAgU2hhcmVkL1dlYk51bWJlci5oIFwKKyAgICBTaGFy
ZWQvV2ViRXZlbnRDb252ZXJzaW9uLmggXAogICAgIFNoYXJlZC9XZWJOYXZpZ2F0aW9uRGF0YVN0
b3JlLmggXAorICAgIFNoYXJlZC9XZWJOdW1iZXIuaCBcCiAgICAgU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuaCBcCiAgICAgU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaCBcCiAg
ICAgU2hhcmVkL1dlYlVSTFJlcXVlc3QuaCBcCiAgICAgU2hhcmVkL1dlYlVSTFJlc3BvbnNlLmgg
XAotICAgIFVJUHJvY2Vzcy9BUEkvY3BwL1dLUmV0YWluUHRyLmggXAotICAgIFVJUHJvY2Vzcy9B
UEkvY3BwL3F0L1dLU3RyaW5nUXQuaCBcCi0gICAgVUlQcm9jZXNzL0FQSS9jcHAvcXQvV0tVUkxR
dC5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV2ViS2l0Mi5oIFwKICAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tBUElDYXN0LmggXAotICAgIFVJUHJvY2Vzcy9BUEkvQy9XS0Jhc2UuaCBcCi0gICAgVUlQ
cm9jZXNzL0FQSS9DL1dLQ2VydGlmaWNhdGVJbmZvLmggXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHQuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dFByaXZhdGUuaCBcCiAg
ICAgVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWUuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLRnJh
bWVQb2xpY3lMaXN0ZW5lci5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0
YS5oIFwKLSAgICBVSVByb2Nlc3MvQVBJL0MvV0tOdW1iZXIuaCBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5oIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlTmFtZXNwYWNlLmggXAog
ICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQcml2YXRlLmggXAogICAgIFVJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzLmggXAotICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1N0cmluZy5oIFwKLSAg
ICBVSVByb2Nlc3MvQVBJL0MvV0tUeXBlLmggXAotICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1VSTC5o
IFwKLSAgICBVSVByb2Nlc3MvQVBJL0MvV0tVUkxSZXF1ZXN0LmggXAotICAgIFVJUHJvY2Vzcy9B
UEkvQy9XS1VSTFJlc3BvbnNlLmggXAotICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5oIFwKKyAgICBVSVByb2Nlc3MvQVBJL2NwcC9xdC9XS1N0cmluZ1F0LmggXAor
ICAgIFVJUHJvY2Vzcy9BUEkvY3BwL3F0L1dLVVJMUXQuaCBcCisgICAgVUlQcm9jZXNzL0FQSS9j
cHAvV0tSZXRhaW5QdHIuaCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xZ3JhcGhpY3N3a3ZpZXcu
aCBcCiAgICAgVUlQcm9jZXNzL0FQSS9xdC9xd2twYWdlLmggXAogICAgIFVJUHJvY2Vzcy9BUEkv
cXQvcXdrcGFnZV9wLmggXApAQCAtMjQxLDcgKzI0Miw2IEBAIEhFQURFUlMgKz0gXAogICAgIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzTWFuYWdlci5oIFwKICAgICBVSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmggXAogICAgIFVJUHJvY2Vzcy9XZWJVSUNsaWVudC5oIFwKLSAgICBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFzZS5oIFwKICAgICBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oIFwKICAgICBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5oIFwKICAgICBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuaCBcCkBAIC0yOTYsMzcg
KzI5NiwzNyBAQCBTT1VSQ0VTICs9IFwKICAgICBQbGF0Zm9ybS9xdC9SdW5Mb29wUXQuY3BwIFwK
ICAgICBQbGF0Zm9ybS9xdC9TaGFyZWRNZW1vcnlRdC5jcHAgXAogICAgIFBsYXRmb3JtL3F0L1dv
cmtRdWV1ZVF0LmNwcCBcCisgICAgU2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNhdGVJbmZvLmNwcCBc
CisgICAgU2hhcmVkL0FQSS9jL1dLTnVtYmVyLmNwcCBcCisgICAgU2hhcmVkL0FQSS9jL1dLU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmNwcCBcCisgICAgU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmNwcCBc
CisgICAgU2hhcmVkL0FQSS9jL1dLVHlwZS5jcHAgXAorICAgIFNoYXJlZC9BUEkvYy9XS1VSTC5j
cHAgXAorICAgIFNoYXJlZC9BUEkvYy9XS1VSTFJlcXVlc3QuY3BwIFwKKyAgICBTaGFyZWQvQVBJ
L2MvV0tVUkxSZXNwb25zZS5jcHAgXAogICAgIFNoYXJlZC9JbW11dGFibGVBcnJheS5jcHAgXAog
ICAgIFNoYXJlZC9JbW11dGFibGVEaWN0aW9uYXJ5LmNwcCBcCiAgICAgU2hhcmVkL011dGFibGVB
cnJheS5jcHAgXAogICAgIFNoYXJlZC9NdXRhYmxlRGljdGlvbmFyeS5jcHAgXAorICAgIFNoYXJl
ZC9xdC9NYXBwZWRNZW1vcnlQb29sLmNwcCBcCisgICAgU2hhcmVkL3F0L1VwZGF0ZUNodW5rLmNw
cCBcCisgICAgU2hhcmVkL3F0L1dlYkNvcmVBcmd1bWVudENvZGVyc1F0LmNwcCBcCisgICAgU2hh
cmVkL3F0L1dlYkV2ZW50RmFjdG9yeVF0LmNwcCBcCisgICAgU2hhcmVkL3F0L1dlYlVSTFJlcXVl
c3RRdC5jcHAgXAorICAgIFNoYXJlZC9xdC9XZWJVUkxSZXNwb25zZVF0LmNwcCBcCiAgICAgU2hh
cmVkL1Zpc2l0ZWRMaW5rVGFibGUuY3BwIFwKICAgICBTaGFyZWQvV2ViRXZlbnRDb252ZXJzaW9u
LmNwcCBcCiAgICAgU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIFwKICAgICBT
aGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAgXAogICAgIFNoYXJlZC9XZWJVUkxSZXF1ZXN0
LmNwcCBcCiAgICAgU2hhcmVkL1dlYlVSTFJlc3BvbnNlLmNwcCBcCi0gICAgU2hhcmVkL3F0L01h
cHBlZE1lbW9yeVBvb2wuY3BwIFwKLSAgICBTaGFyZWQvcXQvVXBkYXRlQ2h1bmsuY3BwIFwKLSAg
ICBTaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuY3BwIFwKLSAgICBTaGFyZWQvcXQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzUXQuY3BwIFwKLSAgICBTaGFyZWQvcXQvV2ViVVJMUmVxdWVzdFF0LmNw
cCBcCi0gICAgU2hhcmVkL3F0L1dlYlVSTFJlc3BvbnNlUXQuY3BwIFwKLSAgICBVSVByb2Nlc3Mv
QVBJL0MvV0tDZXJ0aWZpY2F0ZUluZm8uY3BwIFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tDb250
ZXh0LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWUuY3BwIFwKICAgICBVSVByb2Nl
c3MvQVBJL0MvV0tGcmFtZVBvbGljeUxpc3RlbmVyLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLTmF2aWdhdGlvbkRhdGEuY3BwIFwKLSAgICBVSVByb2Nlc3MvQVBJL0MvV0tOdW1iZXIuY3Bw
IFwKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLUGFnZU5hbWVzcGFjZS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2Vz
LmNwcCBcCi0gICAgVUlQcm9jZXNzL0FQSS9DL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBc
Ci0gICAgVUlQcm9jZXNzL0FQSS9DL1dLU3RyaW5nLmNwcCBcCi0gICAgVUlQcm9jZXNzL0FQSS9D
L1dLVHlwZS5jcHAgXAotICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1VSTC5jcHAgXAotICAgIFVJUHJv
Y2Vzcy9BUEkvQy9XS1VSTFJlcXVlc3QuY3BwIFwKLSAgICBVSVByb2Nlc3MvQVBJL0MvV0tVUkxS
ZXNwb25zZS5jcHAgXAogICAgIFVJUHJvY2Vzcy9BUEkvcXQvQ2xpZW50SW1wbC5jcHAgXAogICAg
IFVJUHJvY2Vzcy9BUEkvcXQvcWdyYXBoaWNzd2t2aWV3LmNwcCBcCiAgICAgVUlQcm9jZXNzL0FQ
SS9xdC9xd2twYWdlLmNwcCBcCkluZGV4OiBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0FycmF5LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0FycmF5LmNwcAkocmV2aXNp
b24gNjgzMjEpCShmcm9tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQXJyYXkuY3BwOjY4MzIx
KQorKysgV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tBcnJheS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXS0FycmF5LmgiCisKKyNpbmNs
dWRlICJJbW11dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorCit1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS0FycmF5R2V0VHlwZUlEKCkKK3sKKyAgICBy
ZXR1cm4gdG9SZWYoSW1tdXRhYmxlQXJyYXk6OkFQSVR5cGUpOworfQorCitXS0FycmF5UmVmIFdL
QXJyYXlDcmVhdGUoV0tUeXBlUmVmKiB2YWx1ZXMsIHNpemVfdCBudW1iZXJPZlZhbHVlcykKK3sK
KyAgICBSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IGFycmF5ID0gSW1tdXRhYmxlQXJyYXk6OmNyZWF0
ZShyZWludGVycHJldF9jYXN0PEFQSU9iamVjdCoqPihjb25zdF9jYXN0PHZvaWQqKj4odmFsdWVz
KSksIG51bWJlck9mVmFsdWVzKTsKKyAgICByZXR1cm4gdG9SZWYoYXJyYXkucmVsZWFzZSgpLnJl
bGVhc2VSZWYoKSk7Cit9CisKK1dLVHlwZVJlZiBXS0FycmF5R2V0SXRlbUF0SW5kZXgoV0tBcnJh
eVJlZiBhcnJheVJlZiwgc2l6ZV90IGluZGV4KQoreworICAgIHJldHVybiB0b1dLKGFycmF5UmVm
KS0+YXQoaW5kZXgpOworfQorCitzaXplX3QgV0tBcnJheUdldFNpemUoV0tBcnJheVJlZiBhcnJh
eVJlZikKK3sKKyAgICByZXR1cm4gdG9XSyhhcnJheVJlZiktPnNpemUoKTsKK30KSW5kZXg6IFdl
YktpdDIvU2hhcmVkL0FQSS9jL1dLQXJyYXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJl
ZC9BUEkvYy9XS0FycmF5LmgJKHJldmlzaW9uIDY4MzIxKQkoZnJvbSBXZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0FycmF5Lmg6NjgzMjEpCisrKyBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0FycmF5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
V0tBcnJheV9oCisjZGVmaW5lIFdLQXJyYXlfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2Uu
aD4KKworI2luY2x1ZGUgPHN0ZGRlZi5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAi
QyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS0FycmF5R2V0VHlwZUlEKCk7CisK
K1dLX0VYUE9SVCBXS0FycmF5UmVmIFdLQXJyYXlDcmVhdGUoV0tUeXBlUmVmKiB2YWx1ZXMsIHNp
emVfdCBudW1iZXJPZlZhbHVlcyk7CisKK1dLX0VYUE9SVCBXS1R5cGVSZWYgV0tBcnJheUdldEl0
ZW1BdEluZGV4KFdLQXJyYXlSZWYgYXJyYXksIHNpemVfdCBpbmRleCk7CitXS19FWFBPUlQgc2l6
ZV90IFdLQXJyYXlHZXRTaXplKFdLQXJyYXlSZWYgYXJyYXkpOworCisjaWZkZWYgX19jcGx1c3Bs
dXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tBcnJheV9oCkluZGV4OiBXZWJLaXQyL1NoYXJl
ZC9BUEkvYy9XS0Jhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jh
c2UuaAkocmV2aXNpb24gNjgzMjEpCShmcm9tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQmFz
ZS5oOjY4MzIxKQorKysgV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tCYXNlX2gKKyNkZWZp
bmUgV0tCYXNlX2gKKworI2luY2x1ZGUgPHN0ZGludC5oPgorCisjaWYgZGVmaW5lZChXSU4zMikg
fHwgZGVmaW5lZChfV0lOMzIpCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2VXaW4uaD4KKyNlbmRp
ZgorCit0eXBlZGVmIHVpbnQzMl90IFdLVHlwZUlEOwordHlwZWRlZiBjb25zdCB2b2lkKiBXS1R5
cGVSZWY7CisKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQXJyYXkqIFdLQXJyYXlSZWY7
Cit0eXBlZGVmIHN0cnVjdCBPcGFxdWVXS0FycmF5KiBXS011dGFibGVBcnJheVJlZjsKKwordHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tEaWN0aW9uYXJ5KiBXS0RpY3Rpb25hcnlSZWY7Cit0
eXBlZGVmIHN0cnVjdCBPcGFxdWVXS0RpY3Rpb25hcnkqIFdLTXV0YWJsZURpY3Rpb25hcnlSZWY7
CisKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQmFja0ZvcndhcmRMaXN0KiBXS0JhY2tG
b3J3YXJkTGlzdFJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQmFja0ZvcndhcmRM
aXN0SXRlbSogV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tCb29sZWFuKiBXS0Jvb2xlYW5SZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS0NlcnRpZmljYXRlSW5mbyogV0tDZXJ0aWZpY2F0ZUluZm9SZWY7Cit0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS0NvbnRleHQqIFdLQ29udGV4dFJlZjsKK3R5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLRGF0YSogV0tEYXRhUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tEb3VibGUqIFdLRG91YmxlUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tFcnJv
ciogV0tFcnJvclJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLRm9ybVN1Ym1pc3Np
b25MaXN0ZW5lciogV0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyUmVmOwordHlwZWRlZiBjb25zdCBz
dHJ1Y3QgT3BhcXVlV0tGcmFtZSogV0tGcmFtZVJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9w
YXF1ZVdLRnJhbWVQb2xpY3lMaXN0ZW5lciogV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmOwordHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tOYXZpZ2F0aW9uRGF0YSogV0tOYXZpZ2F0aW9uRGF0
YVJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGFnZSogV0tQYWdlUmVmOwordHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlTmFtZXNwYWNlKiBXS1BhZ2VOYW1lc3BhY2VS
ZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ByZWZlcmVuY2VzKiBXS1ByZWZlcmVu
Y2VzUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tTZXJpYWxpemVkU2NyaXB0VmFs
dWUqIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tTdHJpbmcqIFdLU3RyaW5nUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tV
SW50NjQqIFdLVUludDY0UmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tVUkwqIFdL
VVJMUmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tVUkxSZXF1ZXN0KiBXS1VSTFJl
cXVlc3RSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1VSTFJlc3BvbnNlKiBXS1VS
TFJlc3BvbnNlUmVmOworCisjdW5kZWYgV0tfRVhQT1JUCisjaWYgZGVmaW5lZChXS19OT19FWFBP
UlQpCisjZGVmaW5lIFdLX0VYUE9SVAorI2VsaWYgZGVmaW5lZChfX0dOVUNfXykKKyNkZWZpbmUg
V0tfRVhQT1JUIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRlZmF1bHQiKSkpCisjZWxpZiBk
ZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikKKyNpZiBCVUlMRElOR19XRUJLSVQKKyNk
ZWZpbmUgV0tfRVhQT1JUIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQorI2Vsc2UKKyNkZWZpbmUgV0tf
RVhQT1JUIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQorI2VuZGlmCisjZWxzZQorI2RlZmluZSBXS19F
WFBPUlQKKyNlbmRpZgorCisjZW5kaWYgLyogV0tCYXNlX2ggKi8KSW5kZXg6IFdlYktpdDIvU2hh
cmVkL0FQSS9jL1dLQmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvU2hhcmVkL0FQSS9jL1dL
QmFzZS5oCShyZXZpc2lvbiAwKQorKysgV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDggQEAKICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZVdp
bi5oPgogI2VuZGlmCiAKKy8qIFdlYktpdDIgc2hhcmVkIHR5cGVzICovCisKIHR5cGVkZWYgdWlu
dDMyX3QgV0tUeXBlSUQ7CiB0eXBlZGVmIGNvbnN0IHZvaWQqIFdLVHlwZVJlZjsKIApAQCAtNDEs
MTQgKzQzLDIzIEBAIHR5cGVkZWYgc3RydWN0IE9wYXF1ZVdLQXJyYXkqIFdLTXV0YWJsZUEKIHR5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLRGljdGlvbmFyeSogV0tEaWN0aW9uYXJ5UmVmOwog
dHlwZWRlZiBzdHJ1Y3QgT3BhcXVlV0tEaWN0aW9uYXJ5KiBXS011dGFibGVEaWN0aW9uYXJ5UmVm
OwogCi10eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0JhY2tGb3J3YXJkTGlzdCogV0tCYWNr
Rm9yd2FyZExpc3RSZWY7Ci10eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0JhY2tGb3J3YXJk
TGlzdEl0ZW0qIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLQm9vbGVhbiogV0tCb29sZWFuUmVmOwotdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tDZXJ0aWZpY2F0ZUluZm8qIFdLQ2VydGlmaWNhdGVJbmZvUmVmOwotdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tDb250ZXh0KiBXS0NvbnRleHRSZWY7CiB0eXBlZGVmIGNvbnN0IHN0
cnVjdCBPcGFxdWVXS0RhdGEqIFdLRGF0YVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLRG91YmxlKiBXS0RvdWJsZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLRXJy
b3IqIFdLRXJyb3JSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0NlcnRpZmljYXRl
SW5mbyogV0tDZXJ0aWZpY2F0ZUluZm9SZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVSZWY7Cit0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1N0cmluZyogV0tTdHJpbmdSZWY7Cit0eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS1VJbnQ2NCogV0tVSW50NjRSZWY7Cit0eXBlZGVmIGNvbnN0IHN0
cnVjdCBPcGFxdWVXS1VSTCogV0tVUkxSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S1VSTFJlcXVlc3QqIFdLVVJMUmVxdWVzdFJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLVVJMUmVzcG9uc2UqIFdLVVJMUmVzcG9uc2VSZWY7CisKKy8qIFdlYktpdDIgbWFpbiBBUEkg
dHlwZXMgKi8KKwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCYWNrRm9yd2FyZExpc3Qq
IFdLQmFja0ZvcndhcmRMaXN0UmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCYWNr
Rm9yd2FyZExpc3RJdGVtKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWY7Cit0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS0NvbnRleHQqIFdLQ29udGV4dFJlZjsKIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lciogV0tGb3JtU3VibWlzc2lvbkxpc3Rl
bmVyUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tGcmFtZSogV0tGcmFtZVJlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLRnJhbWVQb2xpY3lMaXN0ZW5lciogV0tGcmFt
ZVBvbGljeUxpc3RlbmVyUmVmOwpAQCAtNTYsMTIgKzY3LDE3IEBAIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLTmF2aWdhdGlvbkQKIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUGFn
ZSogV0tQYWdlUmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlTmFtZXNwYWNl
KiBXS1BhZ2VOYW1lc3BhY2VSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ByZWZl
cmVuY2VzKiBXS1ByZWZlcmVuY2VzUmVmOwotdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tT
ZXJpYWxpemVkU2NyaXB0VmFsdWUqIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlUmVmOwotdHlwZWRl
ZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tTdHJpbmcqIFdLU3RyaW5nUmVmOwotdHlwZWRlZiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tVSW50NjQqIFdLVUludDY0UmVmOwotdHlwZWRlZiBjb25zdCBzdHJ1
Y3QgT3BhcXVlV0tVUkwqIFdLVVJMUmVmOwotdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tV
UkxSZXF1ZXN0KiBXS1VSTFJlcXVlc3RSZWY7Ci10eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVX
S1VSTFJlc3BvbnNlKiBXS1VSTFJlc3BvbnNlUmVmOworCisvKiBXZWJLaXQyIEJ1bmRsZSB0eXBl
cyAqLworCit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0J1bmRsZSogV0tCdW5kbGVSZWY7
Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0J1bmRsZUZyYW1lKiBXS0J1bmRsZUZyYW1l
UmVmOwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCdW5kbGVIaXRUZXN0UmVzdWx0KiBX
S0J1bmRsZUhpdFRlc3RSZXN1bHRSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0J1
bmRsZU5vZGVIYW5kbGUqIFdLQnVuZGxlTm9kZUhhbmRsZVJlZjsKK3R5cGVkZWYgY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLQnVuZGxlUGFnZSogV0tCdW5kbGVQYWdlUmVmOwordHlwZWRlZiBjb25zdCBz
dHJ1Y3QgT3BhcXVlV0tCdW5kbGVSYW5nZUhhbmRsZSogV0tCdW5kbGVSYW5nZUhhbmRsZVJlZjsK
K3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQnVuZGxlU2NyaXB0V29ybGQqIFdLQnVuZGxl
U2NyaXB0V29ybGRSZWY7Cit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0J1bmRsZURPTUNT
U1N0eWxlRGVjbGFyYXRpb24qIFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlvblJlZjsKIAogI3Vu
ZGVmIFdLX0VYUE9SVAogI2lmIGRlZmluZWQoV0tfTk9fRVhQT1JUKQpJbmRleDogV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tDZXJ0aWZpY2F0ZUluZm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
U2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNhdGVJbmZvLmNwcAkocmV2aXNpb24gNjgzMjEpCShmcm9t
IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ2VydGlmaWNhdGVJbmZvLmNwcDo2ODMyMSkKKysr
IFdlYktpdDIvU2hhcmVkL0FQSS9jL1dLQ2VydGlmaWNhdGVJbmZvLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIldLQ2VydGlmaWNhdGVJ
bmZvLmgiCisKKyNpbmNsdWRlICJXZWJDZXJ0aWZpY2F0ZUluZm8uaCIKKyNpbmNsdWRlICJXS0FQ
SUNhc3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tDZXJ0aWZp
Y2F0ZUluZm9HZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0b1JlZihXZWJDZXJ0aWZpY2F0ZUlu
Zm86OkFQSVR5cGUpOworfQpJbmRleDogV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tDZXJ0aWZpY2F0
ZUluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0NlcnRpZmljYXRl
SW5mby5oCShyZXZpc2lvbiA2ODMyMSkJKGZyb20gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tD
ZXJ0aWZpY2F0ZUluZm8uaDo2ODMyMSkKKysrIFdlYktpdDIvU2hhcmVkL0FQSS9jL1dLQ2VydGlm
aWNhdGVJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV0tDZXJ0aWZpY2F0ZUluZm9faAorI2RlZmluZSBXS0NlcnRpZmljYXRlSW5mb19o
CisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4
dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS0NlcnRpZmljYXRlSW5m
b0dldFR5cGVJRCgpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYg
LyogV0tDZXJ0aWZpY2F0ZUluZm9faCAqLwpJbmRleDogV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tE
YXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0RhdGEuY3BwCShy
ZXZpc2lvbiA2ODMyMSkJKGZyb20gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tEYXRhLmNwcDo2
ODMyMSkKKysrIFdlYktpdDIvU2hhcmVkL0FQSS9jL1dLRGF0YS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXS0RhdGEuaCIKKworI2lu
Y2x1ZGUgIldlYkRhdGEuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tEYXRhR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4g
dG9SZWYoV2ViRGF0YTo6QVBJVHlwZSk7Cit9CisKK1dLRGF0YVJlZiBXS0RhdGFDcmVhdGUoY29u
c3QgdW5zaWduZWQgY2hhciogYnl0ZXMsIHNpemVfdCBzaXplKQoreworICAgIFJlZlB0cjxXZWJE
YXRhPiBkYXRhID0gV2ViRGF0YTo6Y3JlYXRlKGJ5dGVzLCBzaXplKTsKKyAgICByZXR1cm4gdG9S
ZWYoZGF0YS5yZWxlYXNlKCkucmVsZWFzZVJlZigpKTsKK30KKworY29uc3QgdW5zaWduZWQgY2hh
ciogV0tEYXRhR2V0Qnl0ZXMoV0tEYXRhUmVmIGRhdGFSZWYpCit7CisgICAgcmV0dXJuIHRvV0so
ZGF0YVJlZiktPmJ5dGVzKCk7Cit9CisKK3NpemVfdCBXS0RhdGFHZXRTaXplKFdLRGF0YVJlZiBk
YXRhUmVmKQoreworICAgIHJldHVybiB0b1dLKGRhdGFSZWYpLT5zaXplKCk7Cit9CkluZGV4OiBX
ZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0RhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJl
ZC9BUEkvYy9XS0RhdGEuaAkocmV2aXNpb24gNjgzMjEpCShmcm9tIFdlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLRGF0YS5oOjY4MzIxKQorKysgV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tEYXRhLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tE
YXRhX2gKKyNkZWZpbmUgV0tEYXRhX2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisK
KyNpbmNsdWRlIDxzdGRkZWYuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsK
KyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tEYXRhR2V0VHlwZUlEKCk7CisKK1dLX0VY
UE9SVCBXS0RhdGFSZWYgV0tEYXRhQ3JlYXRlKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGJ5dGVzLCBz
aXplX3Qgc2l6ZSk7CisKK1dLX0VYUE9SVCBjb25zdCB1bnNpZ25lZCBjaGFyKiBXS0RhdGFHZXRC
eXRlcyhXS0RhdGFSZWYgZGF0YSk7CitXS19FWFBPUlQgc2l6ZV90IFdLRGF0YUdldFNpemUoV0tE
YXRhUmVmIGRhdGEpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYg
Ly8gV0tEYXRhX2gKSW5kZXg6IFdlYktpdDIvU2hhcmVkL0FQSS9jL1dLRGljdGlvbmFyeS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tEaWN0aW9uYXJ5LmNwcAkocmV2
aXNpb24gNjgzMjEpCShmcm9tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLRGljdGlvbmFyeS5j
cHA6NjgzMjEpCisrKyBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0RpY3Rpb25hcnkuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiV0tEaWN0
aW9uYXJ5LmgiCisKKyNpbmNsdWRlICJJbW11dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIkltbXV0
YWJsZURpY3Rpb25hcnkuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwordXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tEaWN0aW9uYXJ5R2V0VHlwZUlEKCkKK3sKKyAgICBy
ZXR1cm4gdG9SZWYoSW1tdXRhYmxlRGljdGlvbmFyeTo6QVBJVHlwZSk7Cit9CisKK1dLVHlwZVJl
ZiBXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KFdLRGljdGlvbmFyeVJlZiBkaWN0aW9uYXJ5UmVm
LCBXS1N0cmluZ1JlZiBrZXkpCit7CisgICAgcmV0dXJuIHRvV0soZGljdGlvbmFyeVJlZiktPmdl
dCh0b1dLKGtleSktPnN0cmluZygpKTsKK30KKworc2l6ZV90IFdLRGljdGlvbmFyeUdldFNpemUo
V0tEaWN0aW9uYXJ5UmVmIGRpY3Rpb25hcnlSZWYpCit7CisgICAgcmV0dXJuIHRvV0soZGljdGlv
bmFyeVJlZiktPnNpemUoKTsKK30KKworV0tBcnJheVJlZiBXS0RpY3Rpb25hcnlDb3B5S2V5cyhX
S0RpY3Rpb25hcnlSZWYgZGljdGlvbmFyeVJlZikKK3sKKyAgICBSZWZQdHI8SW1tdXRhYmxlQXJy
YXk+IGtleXMgPSB0b1dLKGRpY3Rpb25hcnlSZWYpLT5rZXlzKCk7CisgICAgcmV0dXJuIHRvUmVm
KGtleXMucmVsZWFzZSgpLnJlbGVhc2VSZWYoKSk7Cit9CkluZGV4OiBXZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS0RpY3Rpb25hcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S0RpY3Rpb25hcnkuaAkocmV2aXNpb24gNjgzMjEpCShmcm9tIFdlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLRGljdGlvbmFyeS5oOjY4MzIxKQorKysgV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tEaWN0
aW9uYXJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgV0tEaWN0aW9uYXJ5X2gKKyNkZWZpbmUgV0tEaWN0aW9uYXJ5X2gKKworI2luY2x1ZGUg
PFdlYktpdDIvV0tCYXNlLmg+CisKKyNpbmNsdWRlIDxzdGRkZWYuaD4KKworI2lmZGVmIF9fY3Bs
dXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tEaWN0
aW9uYXJ5R2V0VHlwZUlEKCk7CisKK1dLX0VYUE9SVCBXS1R5cGVSZWYgV0tEaWN0aW9uYXJ5R2V0
SXRlbUZvcktleShXS0RpY3Rpb25hcnlSZWYgZGljdGlvbmFyeSwgV0tTdHJpbmdSZWYga2V5KTsK
K1dLX0VYUE9SVCBzaXplX3QgV0tEaWN0aW9uYXJ5R2V0U2l6ZShXS0RpY3Rpb25hcnlSZWYgZGlj
dGlvbmFyeSk7CisKK1dLX0VYUE9SVCBXS0FycmF5UmVmIFdLRGljdGlvbmFyeUNvcHlLZXlzKFdL
RGljdGlvbmFyeVJlZiBkaWN0aW9uYXJ5KTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5k
aWYKKworI2VuZGlmIC8qIFdLRGljdGlvbmFyeV9oICovCkluZGV4OiBXZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS0Vycm9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Vy
cm9yLmNwcAkocmV2aXNpb24gNjgzMjEpCShmcm9tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
RXJyb3IuY3BwOjY4MzIxKQorKysgV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tFcnJvci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXS0Vy
cm9yLmgiCisKKyNpbmNsdWRlICJXZWJFcnJvci5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgor
Cit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1R5cGVJRCBXS0Vycm9yR2V0VHlwZUlEKCkK
K3sKKyAgICByZXR1cm4gdG9SZWYoV2ViRXJyb3I6OkFQSVR5cGUpOworfQpJbmRleDogV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tFcnJvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLRXJyb3IuaAkocmV2aXNpb24gNjgzMjEpCShmcm9tIFdlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLRXJyb3IuaDo2ODMyMSkKKysrIFdlYktpdDIvU2hhcmVkL0FQSS9jL1dLRXJyb3IuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS0Vy
cm9yX2gKKyNkZWZpbmUgV0tFcnJvcl9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgor
CisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBX
S1R5cGVJRCBXS0Vycm9yR2V0VHlwZUlEKCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2Vu
ZGlmCisKKyNlbmRpZiAvLyBXS0Vycm9yX2gKSW5kZXg6IFdlYktpdDIvU2hhcmVkL0FQSS9jL1dL
TXV0YWJsZUFycmF5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS011
dGFibGVBcnJheS5jcHAJKHJldmlzaW9uIDY4MzIxKQkoZnJvbSBXZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS011dGFibGVBcnJheS5jcHA6NjgzMjEpCisrKyBXZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S011dGFibGVBcnJheS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJXS011dGFibGVBcnJheS5oIgorCisjaW5jbHVkZSAiTXV0YWJsZUFy
cmF5LmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CisKK1dLTXV0YWJsZUFycmF5UmVmIFdLTXV0YWJsZUFycmF5Q3JlYXRlKCkKK3sKKyAgICBSZWZQ
dHI8TXV0YWJsZUFycmF5PiBhcnJheSA9IE11dGFibGVBcnJheTo6Y3JlYXRlKCk7CisgICAgcmV0
dXJuIHRvUmVmKGFycmF5LnJlbGVhc2UoKS5yZWxlYXNlUmVmKCkpOworfQorCitib29sIFdLQXJy
YXlJc011dGFibGUoV0tBcnJheVJlZiBhcnJheVJlZikKK3sKKyAgICByZXR1cm4gdG9XSyhhcnJh
eVJlZiktPmlzTXV0YWJsZSgpOworfQorCit2b2lkIFdLQXJyYXlBcHBlbmRJdGVtKFdLTXV0YWJs
ZUFycmF5UmVmIGFycmF5UmVmLCBXS1R5cGVSZWYgaXRlbVJlZikKK3sKKyAgICB0b1dLKGFycmF5
UmVmKS0+YXBwZW5kKHRvV0soaXRlbVJlZikpOworfQpJbmRleDogV2ViS2l0Mi9TaGFyZWQvQVBJ
L2MvV0tNdXRhYmxlQXJyYXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S011dGFibGVBcnJheS5oCShyZXZpc2lvbiA2ODMyMSkJKGZyb20gV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tNdXRhYmxlQXJyYXkuaDo2ODMyMSkKKysrIFdlYktpdDIvU2hhcmVkL0FQSS9jL1dL
TXV0YWJsZUFycmF5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV0tNdXRhYmxlQXJyYXlfaAorI2RlZmluZSBXS011dGFibGVBcnJheV9oCisK
KyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZuZGVmIF9fY3BsdXNwbHVzCisjaW5j
bHVkZSA8c3RkYm9vbC5oPgorI2VuZGlmCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJD
IiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLTXV0YWJsZUFycmF5UmVmIFdLTXV0YWJsZUFycmF5
Q3JlYXRlKCk7CisKK1dLX0VYUE9SVCBib29sIFdLQXJyYXlJc011dGFibGUoV0tBcnJheVJlZiBh
cnJheSk7CisKK1dLX0VYUE9SVCB2b2lkIFdLQXJyYXlBcHBlbmRJdGVtKFdLTXV0YWJsZUFycmF5
UmVmIGFycmF5LCBXS1R5cGVSZWYgaXRlbSk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2Vu
ZGlmCisKKyNlbmRpZiAvKiBXS011dGFibGVBcnJheV9oICovCkluZGV4OiBXZWJLaXQyL1NoYXJl
ZC9BUEkvYy9XS011dGFibGVEaWN0aW9uYXJ5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1No
YXJlZC9BUEkvYy9XS011dGFibGVEaWN0aW9uYXJ5LmNwcAkocmV2aXNpb24gNjgzMjEpCShmcm9t
IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTXV0YWJsZURpY3Rpb25hcnkuY3BwOjY4MzIxKQor
KysgV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tNdXRhYmxlRGljdGlvbmFyeS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXS011dGFibGVE
aWN0aW9uYXJ5LmgiCisKKyNpbmNsdWRlICJNdXRhYmxlRGljdGlvbmFyeS5oIgorI2luY2x1ZGUg
IldLQVBJQ2FzdC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS011dGFibGVEaWN0
aW9uYXJ5UmVmIFdLTXV0YWJsZURpY3Rpb25hcnlDcmVhdGUoKQoreworICAgIFJlZlB0cjxNdXRh
YmxlRGljdGlvbmFyeT4gZGljdGlvbmFyeSA9IE11dGFibGVEaWN0aW9uYXJ5OjpjcmVhdGUoKTsK
KyAgICByZXR1cm4gdG9SZWYoZGljdGlvbmFyeS5yZWxlYXNlKCkucmVsZWFzZVJlZigpKTsKK30K
KworYm9vbCBXS0RpY3Rpb25hcnlJc011dGFibGUoV0tEaWN0aW9uYXJ5UmVmIGRpY3Rpb25hcnlS
ZWYpCit7CisgICAgcmV0dXJuIHRvV0soZGljdGlvbmFyeVJlZiktPmlzTXV0YWJsZSgpOworfQor
Citib29sIFdLRGljdGlvbmFyeUFkZEl0ZW0oV0tNdXRhYmxlRGljdGlvbmFyeVJlZiBkaWN0aW9u
YXJ5UmVmLCBXS1N0cmluZ1JlZiBrZXlSZWYsIFdLVHlwZVJlZiBpdGVtUmVmKQoreworICAgIHJl
dHVybiB0b1dLKGRpY3Rpb25hcnlSZWYpLT5hZGQodG9XSyhrZXlSZWYpLT5zdHJpbmcoKSwgdG9X
SyhpdGVtUmVmKSk7Cit9CisKK2Jvb2wgV0tEaWN0aW9uYXJ5U2V0SXRlbShXS011dGFibGVEaWN0
aW9uYXJ5UmVmIGRpY3Rpb25hcnlSZWYsIFdLU3RyaW5nUmVmIGtleVJlZiwgV0tUeXBlUmVmIGl0
ZW1SZWYpCit7CisgICAgcmV0dXJuIHRvV0soZGljdGlvbmFyeVJlZiktPnNldCh0b1dLKGtleVJl
ZiktPnN0cmluZygpLCB0b1dLKGl0ZW1SZWYpKTsKK30KSW5kZXg6IFdlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLTXV0YWJsZURpY3Rpb25hcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS011dGFibGVEaWN0aW9uYXJ5LmgJKHJldmlzaW9uIDY4MzIxKQkoZnJvbSBXZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS011dGFibGVEaWN0aW9uYXJ5Lmg6NjgzMjEpCisrKyBXZWJLaXQy
L1NoYXJlZC9BUEkvYy9XS011dGFibGVEaWN0aW9uYXJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tNdXRhYmxlRGljdGlvbmFyeV9oCisj
ZGVmaW5lIFdLTXV0YWJsZURpY3Rpb25hcnlfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2Uu
aD4KKworI2lmbmRlZiBfX2NwbHVzcGx1cworI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKyNlbmRpZgor
CisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBX
S011dGFibGVEaWN0aW9uYXJ5UmVmIFdLTXV0YWJsZURpY3Rpb25hcnlDcmVhdGUoKTsKKworV0tf
RVhQT1JUIGJvb2wgV0tEaWN0aW9uYXJ5SXNNdXRhYmxlKFdLRGljdGlvbmFyeVJlZiBkaWN0aW9u
YXJ5KTsKKworV0tfRVhQT1JUIGJvb2wgV0tEaWN0aW9uYXJ5QWRkSXRlbShXS011dGFibGVEaWN0
aW9uYXJ5UmVmIGRpY3Rpb25hcnksIFdLU3RyaW5nUmVmIGtleSwgV0tUeXBlUmVmIGl0ZW0pOwor
V0tfRVhQT1JUIGJvb2wgV0tEaWN0aW9uYXJ5U2V0SXRlbShXS011dGFibGVEaWN0aW9uYXJ5UmVm
IGRpY3Rpb25hcnksIFdLU3RyaW5nUmVmIGtleSwgV0tUeXBlUmVmIGl0ZW0pOworCisjaWZkZWYg
X19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tNdXRhYmxlRGljdGlvbmFyeV9o
ICovCkluZGV4OiBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS051bWJlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tOdW1iZXIuY3BwCShyZXZpc2lvbiA2ODMyMSkJKGZy
b20gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOdW1iZXIuY3BwOjY4MzIxKQorKysgV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tOdW1iZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiV0tOdW1iZXIuaCIKKworI2luY2x1ZGUgIldLQVBJ
Q2FzdC5oIgorI2luY2x1ZGUgIldlYk51bWJlci5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OworCitXS1R5cGVJRCBXS0Jvb2xlYW5HZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0b1JlZihX
ZWJCb29sZWFuOjpBUElUeXBlKTsKK30KKworV0tCb29sZWFuUmVmIFdLQm9vbGVhbkNyZWF0ZShi
b29sIHZhbHVlKQoreworICAgIFJlZlB0cjxXZWJCb29sZWFuPiBib29sZWFuT2JqZWN0ID0gV2Vi
Qm9vbGVhbjo6Y3JlYXRlKHZhbHVlKTsKKyAgICByZXR1cm4gdG9SZWYoYm9vbGVhbk9iamVjdC5y
ZWxlYXNlKCkucmVsZWFzZVJlZigpKTsKK30KKworYm9vbCBXS0Jvb2xlYW5HZXRWYWx1ZShXS0Jv
b2xlYW5SZWYgYm9vbGVhblJlZikKK3sKKyAgICByZXR1cm4gdG9XSyhib29sZWFuUmVmKS0+dmFs
dWUoKTsKK30KKworV0tUeXBlSUQgV0tEb3VibGVHZXRUeXBlSUQoKQoreworICAgIHJldHVybiB0
b1JlZihXZWJEb3VibGU6OkFQSVR5cGUpOworfQorCitXS0RvdWJsZVJlZiBXS0RvdWJsZUNyZWF0
ZShkb3VibGUgdmFsdWUpCit7CisgICAgUmVmUHRyPFdlYkRvdWJsZT4gZG91YmxlT2JqZWN0ID0g
V2ViRG91YmxlOjpjcmVhdGUodmFsdWUpOworICAgIHJldHVybiB0b1JlZihkb3VibGVPYmplY3Qu
cmVsZWFzZSgpLnJlbGVhc2VSZWYoKSk7Cit9CisKK2RvdWJsZSBXS0RvdWJsZUdldFZhbHVlKFdL
RG91YmxlUmVmIGRvdWJsZVJlZikKK3sKKyAgICByZXR1cm4gdG9XSyhkb3VibGVSZWYpLT52YWx1
ZSgpOworfQorCitXS1R5cGVJRCBXS1VJbnQ2NEdldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRv
UmVmKFdlYlVJbnQ2NDo6QVBJVHlwZSk7Cit9CisKK1dLVUludDY0UmVmIFdLVUludDY0Q3JlYXRl
KHVpbnQ2NF90IHZhbHVlKQoreworICAgIFJlZlB0cjxXZWJVSW50NjQ+IHVpbnQ2NE9iamVjdCA9
IFdlYlVJbnQ2NDo6Y3JlYXRlKHZhbHVlKTsKKyAgICByZXR1cm4gdG9SZWYodWludDY0T2JqZWN0
LnJlbGVhc2UoKS5yZWxlYXNlUmVmKCkpOworfQorCit1aW50NjRfdCBXS1VJbnQ2NEdldFZhbHVl
KFdLVUludDY0UmVmIHVpbnQ2NFJlZikKK3sKKyAgICByZXR1cm4gdG9XSyh1aW50NjRSZWYpLT52
YWx1ZSgpOworfQpJbmRleDogV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tOdW1iZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS051bWJlci5oCShyZXZpc2lvbiA2ODMyMSkJ
KGZyb20gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOdW1iZXIuaDo2ODMyMSkKKysrIFdlYktp
dDIvU2hhcmVkL0FQSS9jL1dLTnVtYmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgV0tOdW1iZXJfaAorI2RlZmluZSBXS051bWJlcl9oCisK
KyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVy
biAiQyIgeworI2VuZGlmCisKKy8qIFdLQm9vbGVhbiAqLworV0tfRVhQT1JUIFdLVHlwZUlEIFdL
Qm9vbGVhbkdldFR5cGVJRCgpOworV0tfRVhQT1JUIFdLQm9vbGVhblJlZiBXS0Jvb2xlYW5DcmVh
dGUoYm9vbCB2YWx1ZSk7CitXS19FWFBPUlQgYm9vbCBXS0Jvb2xlYW5HZXRWYWx1ZShXS0Jvb2xl
YW5SZWYgYm9vbGVhblJlZik7CisKKy8qIFdLRG91YmxlICovCitXS19FWFBPUlQgV0tUeXBlSUQg
V0tEb3VibGVHZXRUeXBlSUQoKTsKK1dLX0VYUE9SVCBXS0RvdWJsZVJlZiBXS0RvdWJsZUNyZWF0
ZShkb3VibGUgdmFsdWUpOworV0tfRVhQT1JUIGRvdWJsZSBXS0RvdWJsZUdldFZhbHVlKFdLRG91
YmxlUmVmIGRvdWJsZVJlZik7CisKKy8qIFdLVUludDY0ICovCitXS19FWFBPUlQgV0tUeXBlSUQg
V0tVSW50NjRHZXRUeXBlSUQoKTsKK1dLX0VYUE9SVCBXS1VJbnQ2NFJlZiBXS1VJbnQ2NENyZWF0
ZSh1aW50NjRfdCB2YWx1ZSk7CitXS19FWFBPUlQgdWludDY0X3QgV0tVSW50NjRHZXRWYWx1ZShX
S1VJbnQ2NFJlZiBkb3VibGVSZWYpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgor
CisjZW5kaWYgLyogV0tOdW1iZXJfaCAqLwpJbmRleDogV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAkocmV2aXNpb24gNjgzMjEpCShmcm9tIFdl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDo2ODMyMSkK
KysrIFdlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIldLU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRl
ICJXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
KworV0tUeXBlSUQgV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVHZXRUeXBlSUQoKQoreworICAgIHJl
dHVybiB0b1JlZihXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU6OkFQSVR5cGUpOworfQorCitXS1Nl
cmlhbGl6ZWRTY3JpcHRWYWx1ZVJlZiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZUNyZWF0ZShKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
KQoreworICAgIFJlZlB0cjxXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRWYWx1
ZSA9IFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGNvbnRleHQsIHZhbHVlLCBleGNl
cHRpb24pOworICAgIHJldHVybiB0b1JlZihzZXJpYWxpemVkVmFsdWUucmVsZWFzZSgpLmxlYWtS
ZWYoKSk7Cit9CisKK0pTVmFsdWVSZWYgV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVEZXNlcmlhbGl6
ZShXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVJlZiBzY3JpcHRWYWx1ZVJlZiwgSlNDb250ZXh0UmVm
IGNvbnRleHRSZWYsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICByZXR1cm4gdG9XSyhz
Y3JpcHRWYWx1ZVJlZiktPmRlc2VyaWFsaXplKGNvbnRleHRSZWYsIGV4Y2VwdGlvbik7Cit9Cklu
ZGV4OiBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgJ
KHJldmlzaW9uIDY4MzIxKQkoZnJvbSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5oOjY4MzIxKQorKysgV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZV9oCisjZGVmaW5lIFdLU2VyaWFs
aXplZFNjcmlwdFZhbHVlX2gKKworI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHQu
aD4KKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4
dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBXS1NlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUdldFR5cGVJRCgpOworCitXS19FWFBPUlQgV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVS
ZWYgV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVDcmVhdGUoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpT
VmFsdWVSZWYgdmFsdWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbik7CitXS19FWFBPUlQgSlNWYWx1
ZVJlZiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZURlc2VyaWFsaXplKFdLU2VyaWFsaXplZFNjcmlw
dFZhbHVlUmVmIHNjcmlwdFZhbHVlLCBKU0NvbnRleHRSZWYgY29uc3RleHQsIEpTVmFsdWVSZWYq
IGV4Y2VwdGlvbik7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAv
KiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZV9oICovCkluZGV4OiBXZWJLaXQyL1NoYXJlZC9BUEkv
Yy9XS1NoYXJlZEFQSUNhc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9BUEkvYy9X
S1NoYXJlZEFQSUNhc3QuaAkocmV2aXNpb24gNjgzMjEpCShmcm9tIFdlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLQVBJQ2FzdC5oOjY4MzIxKQorKysgV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFy
ZWRBUElDYXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNzEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdLQVBJQ2FzdF9oCisjZGVmaW5lIFdLQVBJQ2FzdF9oCisKKyNpbmNsdWRlICJX
S0Jhc2UuaCIKKyNpbmNsdWRlICJXS1BhZ2UuaCIKKyNpbmNsdWRlICJXZWJFdmVudC5oIgorI2lu
Y2x1ZGUgIldlYk51bWJlci5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5oIgorI2luY2x1ZGUgIldl
YlVSTC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgorI2luY2x1ZGUg
PHd0Zi9UeXBlVHJhaXRzLmg+CisKKyNpZiBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4z
MikKKyNpbmNsdWRlICJXS0FQSUNhc3RXaW4uaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgSW1tdXRhYmxlQXJyYXk7CitjbGFzcyBJbW11dGFibGVEaWN0aW9uYXJ5Owor
Y2xhc3MgTXV0YWJsZUFycmF5OworY2xhc3MgTXV0YWJsZURpY3Rpb25hcnk7CitjbGFzcyBXZWJC
YWNrRm9yd2FyZExpc3Q7CitjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOworY2xhc3MgV2Vi
Q2VydGlmaWNhdGVJbmZvOworY2xhc3MgV2ViQ29udGV4dDsKK2NsYXNzIFdlYkRhdGE7CitjbGFz
cyBXZWJFcnJvcjsKK2NsYXNzIFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eTsKK2NsYXNz
IFdlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eTsKK2NsYXNzIFdlYkZyYW1lUHJveHk7CitjbGFz
cyBXZWJOYXZpZ2F0aW9uRGF0YTsKK2NsYXNzIFdlYlBhZ2VOYW1lc3BhY2U7CitjbGFzcyBXZWJQ
YWdlUHJveHk7CitjbGFzcyBXZWJQcmVmZXJlbmNlczsKK2NsYXNzIFdlYlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZTsKK2NsYXNzIFdlYlVSTFJlcXVlc3Q7CitjbGFzcyBXZWJVUkxSZXNwb25zZTsKKwor
dGVtcGxhdGU8dHlwZW5hbWUgQVBJVHlwZT4gc3RydWN0IEFQSVR5cGVJbmZvIHsgfTsKK3RlbXBs
YXRlPD4gc3RydWN0IEFQSVR5cGVJbmZvPFdLQXJyYXlSZWY+ICAgICAgICAgICAgICAgICAgICAg
ICB7IHR5cGVkZWYgSW1tdXRhYmxlQXJyYXkqIEltcGxUeXBlOyB9OwordGVtcGxhdGU8PiBzdHJ1
Y3QgQVBJVHlwZUluZm88V0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmPiAgICAgICAgIHsgdHlwZWRl
ZiBXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBJbXBsVHlwZTsgfTsKK3RlbXBsYXRlPD4gc3RydWN0
IEFQSVR5cGVJbmZvPFdLQmFja0ZvcndhcmRMaXN0UmVmPiAgICAgICAgICAgICB7IHR5cGVkZWYg
V2ViQmFja0ZvcndhcmRMaXN0KiBJbXBsVHlwZTsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEFQSVR5
cGVJbmZvPFdLQm9vbGVhblJlZj4gICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV2ViQm9v
bGVhbiogSW1wbFR5cGU7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS0NlcnRp
ZmljYXRlSW5mb1JlZj4gICAgICAgICAgICAgeyB0eXBlZGVmIFdlYkNlcnRpZmljYXRlSW5mbyog
SW1wbFR5cGU7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS0NvbnRleHRSZWY+
ICAgICAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdlYkNvbnRleHQqIEltcGxUeXBlOyB9Owor
dGVtcGxhdGU8PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tEYXRhUmVmPiAgICAgICAgICAgICAgICAg
ICAgICAgIHsgdHlwZWRlZiBXZWJEYXRhKiBJbXBsVHlwZTsgfTsKK3RlbXBsYXRlPD4gc3RydWN0
IEFQSVR5cGVJbmZvPFdLRGljdGlvbmFyeVJlZj4gICAgICAgICAgICAgICAgICB7IHR5cGVkZWYg
SW1tdXRhYmxlRGljdGlvbmFyeSogSW1wbFR5cGU7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBUElU
eXBlSW5mbzxXS0RvdWJsZVJlZj4gICAgICAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdlYkRv
dWJsZSogSW1wbFR5cGU7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS0Zvcm1T
dWJtaXNzaW9uTGlzdGVuZXJSZWY+ICAgICAgeyB0eXBlZGVmIFdlYkZvcm1TdWJtaXNzaW9uTGlz
dGVuZXJQcm94eSogSW1wbFR5cGU7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxX
S0ZyYW1lUG9saWN5TGlzdGVuZXJSZWY+ICAgICAgICAgeyB0eXBlZGVmIFdlYkZyYW1lUG9saWN5
TGlzdGVuZXJQcm94eSogSW1wbFR5cGU7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5m
bzxXS0ZyYW1lUmVmPiAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdlYkZyYW1lUHJv
eHkqIEltcGxUeXBlOyB9OwordGVtcGxhdGU8PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tNdXRhYmxl
QXJyYXlSZWY+ICAgICAgICAgICAgICAgIHsgdHlwZWRlZiBNdXRhYmxlQXJyYXkqIEltcGxUeXBl
OyB9OwordGVtcGxhdGU8PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tNdXRhYmxlRGljdGlvbmFyeVJl
Zj4gICAgICAgICAgIHsgdHlwZWRlZiBNdXRhYmxlRGljdGlvbmFyeSogSW1wbFR5cGU7IH07Cit0
ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS05hdmlnYXRpb25EYXRhUmVmPiAgICAgICAg
ICAgICAgeyB0eXBlZGVmIFdlYk5hdmlnYXRpb25EYXRhKiBJbXBsVHlwZTsgfTsKK3RlbXBsYXRl
PD4gc3RydWN0IEFQSVR5cGVJbmZvPFdLUGFnZU5hbWVzcGFjZVJlZj4gICAgICAgICAgICAgICB7
IHR5cGVkZWYgV2ViUGFnZU5hbWVzcGFjZSogSW1wbFR5cGU7IH07Cit0ZW1wbGF0ZTw+IHN0cnVj
dCBBUElUeXBlSW5mbzxXS1BhZ2VSZWY+ICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlZGVm
IFdlYlBhZ2VQcm94eSogSW1wbFR5cGU7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5m
bzxXS1ByZWZlcmVuY2VzUmVmPiAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdlYlByZWZlcmVu
Y2VzKiBJbXBsVHlwZTsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEFQSVR5cGVJbmZvPFdLU2VyaWFs
aXplZFNjcmlwdFZhbHVlUmVmPiAgICAgICB7IHR5cGVkZWYgV2ViU2VyaWFsaXplZFNjcmlwdFZh
bHVlKiBJbXBsVHlwZTsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEFQSVR5cGVJbmZvPFdLU3RyaW5n
UmVmPiAgICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV2ViU3RyaW5nKiBJbXBsVHlwZTsg
fTsKK3RlbXBsYXRlPD4gc3RydWN0IEFQSVR5cGVJbmZvPFdLVHlwZVJlZj4gICAgICAgICAgICAg
ICAgICAgICAgICB7IHR5cGVkZWYgQVBJT2JqZWN0KiBJbXBsVHlwZTsgfTsKK3RlbXBsYXRlPD4g
c3RydWN0IEFQSVR5cGVJbmZvPFdLVUludDY0UmVmPiAgICAgICAgICAgICAgICAgICAgICB7IHR5
cGVkZWYgV2ViVUludDY0KiBJbXBsVHlwZTsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEFQSVR5cGVJ
bmZvPFdLVVJMUmVmPiAgICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV2ViVVJMKiBJ
bXBsVHlwZTsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEFQSVR5cGVJbmZvPFdLVVJMUmVxdWVzdFJl
Zj4gICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV2ViVVJMUmVxdWVzdCogSW1wbFR5cGU7IH07
Cit0ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS1VSTFJlc3BvbnNlUmVmPiAgICAgICAg
ICAgICAgICAgeyB0eXBlZGVmIFdlYlVSTFJlc3BvbnNlKiBJbXBsVHlwZTsgfTsKKworCit0ZW1w
bGF0ZTx0eXBlbmFtZSBJbXBsVHlwZT4gc3RydWN0IEltcGxUeXBlSW5mbyB7IH07Cit0ZW1wbGF0
ZTw+IHN0cnVjdCBJbXBsVHlwZUluZm88QVBJT2JqZWN0Kj4gICAgICAgICAgICAgICAgICAgICAg
eyB0eXBlZGVmIFdLVHlwZVJlZiBBUElUeXBlOyB9OwordGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5
cGVJbmZvPEltbXV0YWJsZUFycmF5Kj4gICAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXS0FycmF5
UmVmIEFQSVR5cGU7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBJbXBsVHlwZUluZm88SW1tdXRhYmxl
RGljdGlvbmFyeSo+ICAgICAgICAgICAgeyB0eXBlZGVmIFdLRGljdGlvbmFyeVJlZiBBUElUeXBl
OyB9OwordGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPE11dGFibGVBcnJheSo+ICAgICAg
ICAgICAgICAgICAgIHsgdHlwZWRlZiBXS011dGFibGVBcnJheVJlZiBBUElUeXBlOyB9OwordGVt
cGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPE11dGFibGVEaWN0aW9uYXJ5Kj4gICAgICAgICAg
ICAgIHsgdHlwZWRlZiBXS011dGFibGVEaWN0aW9uYXJ5UmVmIEFQSVR5cGU7IH07Cit0ZW1wbGF0
ZTw+IHN0cnVjdCBJbXBsVHlwZUluZm88V2ViQmFja0ZvcndhcmRMaXN0Kj4gICAgICAgICAgICAg
eyB0eXBlZGVmIFdLQmFja0ZvcndhcmRMaXN0UmVmIEFQSVR5cGU7IH07Cit0ZW1wbGF0ZTw+IHN0
cnVjdCBJbXBsVHlwZUluZm88V2ViQmFja0ZvcndhcmRMaXN0SXRlbSo+ICAgICAgICAgeyB0eXBl
ZGVmIFdLQmFja0ZvcndhcmRMaXN0SXRlbVJlZiBBUElUeXBlOyB9OwordGVtcGxhdGU8PiBzdHJ1
Y3QgSW1wbFR5cGVJbmZvPFdlYkJvb2xlYW4qPiAgICAgICAgICAgICAgICAgICAgIHsgdHlwZWRl
ZiBXS0Jvb2xlYW5SZWYgQVBJVHlwZTsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5m
bzxXZWJDZXJ0aWZpY2F0ZUluZm8qPiAgICAgICAgICAgICB7IHR5cGVkZWYgV0tDZXJ0aWZpY2F0
ZUluZm9SZWYgQVBJVHlwZTsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJD
b250ZXh0Kj4gICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tDb250ZXh0UmVmIEFQSVR5
cGU7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBJbXBsVHlwZUluZm88V2ViRGF0YSo+ICAgICAgICAg
ICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdLRGF0YVJlZiBBUElUeXBlOyB9OwordGVtcGxhdGU8
PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFdlYkRvdWJsZSo+ICAgICAgICAgICAgICAgICAgICAgIHsg
dHlwZWRlZiBXS0RvdWJsZVJlZiBBUElUeXBlOyB9OwordGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5
cGVJbmZvPFdlYkVycm9yKj4gICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXS0Vycm9y
UmVmIEFQSVR5cGU7IH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBJbXBsVHlwZUluZm88V2ViRm9ybVN1
Ym1pc3Npb25MaXN0ZW5lclByb3h5Kj4geyB0eXBlZGVmIFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5l
clJlZiBBUElUeXBlOyB9OwordGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFdlYkZyYW1l
UG9saWN5TGlzdGVuZXJQcm94eSo+ICAgIHsgdHlwZWRlZiBXS0ZyYW1lUG9saWN5TGlzdGVuZXJS
ZWYgQVBJVHlwZTsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJGcmFtZVBy
b3h5Kj4gICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tGcmFtZVJlZiBBUElUeXBlOyB9Owor
dGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFdlYk5hdmlnYXRpb25EYXRhKj4gICAgICAg
ICAgICAgIHsgdHlwZWRlZiBXS05hdmlnYXRpb25EYXRhUmVmIEFQSVR5cGU7IH07Cit0ZW1wbGF0
ZTw+IHN0cnVjdCBJbXBsVHlwZUluZm88V2ViUGFnZU5hbWVzcGFjZSo+ICAgICAgICAgICAgICAg
eyB0eXBlZGVmIFdLUGFnZU5hbWVzcGFjZVJlZiBBUElUeXBlOyB9OwordGVtcGxhdGU8PiBzdHJ1
Y3QgSW1wbFR5cGVJbmZvPFdlYlBhZ2VQcm94eSo+ICAgICAgICAgICAgICAgICAgIHsgdHlwZWRl
ZiBXS1BhZ2VSZWYgQVBJVHlwZTsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxX
ZWJQcmVmZXJlbmNlcyo+ICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tQcmVmZXJlbmNlc1Jl
ZiBBUElUeXBlOyB9OwordGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFdlYlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSo+ICAgICAgIHsgdHlwZWRlZiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVJl
ZiBBUElUeXBlOyB9OwordGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFdlYlN0cmluZyo+
ICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXS1N0cmluZ1JlZiBBUElUeXBlOyB9Owor
dGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFdlYlVJbnQ2NCo+ICAgICAgICAgICAgICAg
ICAgICAgIHsgdHlwZWRlZiBXS1VJbnQ2NFJlZiBBUElUeXBlOyB9OwordGVtcGxhdGU8PiBzdHJ1
Y3QgSW1wbFR5cGVJbmZvPFdlYlVSTCo+ICAgICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZWRl
ZiBXS1VSTFJlZiBBUElUeXBlOyB9OwordGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFdl
YlVSTFJlcXVlc3QqPiAgICAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXS1VSTFJlcXVlc3RSZWYg
QVBJVHlwZTsgfTsKK3RlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJVUkxSZXNwb25z
ZSo+ICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tVUkxSZXNwb25zZVJlZiBBUElUeXBlOyB9
OworCisKK3RlbXBsYXRlPHR5cGVuYW1lIEltcGxUeXBlLCB0eXBlbmFtZSBBUElUeXBlID0gdHlw
ZW5hbWUgSW1wbFR5cGVJbmZvPEltcGxUeXBlKj46OkFQSVR5cGU+CitjbGFzcyBQcm94eWluZ1Jl
ZlB0ciB7CitwdWJsaWM6CisgICAgUHJveHlpbmdSZWZQdHIoUGFzc1JlZlB0cjxJbXBsVHlwZT4g
aW1wbCkKKyAgICAgICAgOiBtX2ltcGwoaW1wbCkKKyAgICB7CisgICAgfQorCisgICAgb3BlcmF0
b3IgQVBJVHlwZSgpIHsgcmV0dXJuIHRvUmVmKG1faW1wbC5nZXQoKSk7IH0KKworcHJpdmF0ZToK
KyAgICBSZWZQdHI8SW1wbFR5cGU+IG1faW1wbDsKK307CisKKy8qIE9wYXF1ZSB0eXBpbmcgY29u
dmVuaWVuY2UgbWV0aG9kcyAqLworCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgoraW5saW5lIHR5cGVu
YW1lIEFQSVR5cGVJbmZvPFQ+OjpJbXBsVHlwZSB0b1dLKFQgdCkKK3sKKyAgICAvLyBBbiBleGFt
cGxlIG9mIHRoZSBjb252ZXJzaW9ucyB0aGF0IHRha2UgcGxhY2U6CisgICAgLy8gY29uc3Qgc3Ry
dWN0IE9wYXF1ZVdLQXJyYXkqIC0+IGNvbnN0IHN0cnVjdCBPcGFxdWVXS0FycmF5IC0+IHN0cnVj
dCBPcGFxdWVXS0FycmF5IC0+IHN0cnVjdCBPcGFxdWVXS0FycmF5KiAtPiBJbW11dGFibGVBcnJh
eSoKKyAgICAKKyAgICB0eXBlZGVmIHR5cGVuYW1lIFdURjo6UmVtb3ZlUG9pbnRlcjxUPjo6VHlw
ZSBQb3RlbnRpYWxseUNvbnN0VmFsdWVUeXBlOworICAgIHR5cGVkZWYgdHlwZW5hbWUgV1RGOjpS
ZW1vdmVDb25zdDxQb3RlbnRpYWxseUNvbnN0VmFsdWVUeXBlPjo6VHlwZSBOb25Db25zdFZhbHVl
VHlwZTsKKworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PHR5cGVuYW1lIEFQSVR5cGVJbmZv
PFQ+OjpJbXBsVHlwZT4oY29uc3RfY2FzdDxOb25Db25zdFZhbHVlVHlwZSo+KHQpKTsKK30KKwor
dGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGluZSB0eXBlbmFtZSBJbXBsVHlwZUluZm88VD46OkFQ
SVR5cGUgdG9SZWYoVCB0KQoreworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PHR5cGVuYW1l
IEltcGxUeXBlSW5mbzxUPjo6QVBJVHlwZT4odCk7Cit9CisKKy8qIFNwZWNpYWwgY2FzZXMuICov
CisKK2lubGluZSBQcm94eWluZ1JlZlB0cjxXZWJTdHJpbmc+IHRvUmVmKFN0cmluZ0ltcGwqIHN0
cmluZykKK3sKKyAgICBTdHJpbmdJbXBsKiBpbXBsID0gc3RyaW5nID8gc3RyaW5nIDogU3RyaW5n
SW1wbDo6ZW1wdHkoKTsKKyAgICByZXR1cm4gUHJveHlpbmdSZWZQdHI8V2ViU3RyaW5nPihXZWJT
dHJpbmc6OmNyZWF0ZShTdHJpbmcoaW1wbCkpKTsKK30KKworaW5saW5lIFByb3h5aW5nUmVmUHRy
PFdlYlVSTD4gdG9VUkxSZWYoU3RyaW5nSW1wbCogc3RyaW5nKQoreworICAgIFN0cmluZ0ltcGwq
IGltcGwgPSBzdHJpbmcgPyBzdHJpbmcgOiBTdHJpbmdJbXBsOjplbXB0eSgpOworICAgIHJldHVy
biBQcm94eWluZ1JlZlB0cjxXZWJVUkw+KFdlYlVSTDo6Y3JlYXRlKFN0cmluZyhpbXBsKSkpOwor
fQorCitpbmxpbmUgV0tTdHJpbmdSZWYgdG9Db3BpZWRSZWYoY29uc3QgU3RyaW5nJiBzdHJpbmcp
Cit7CisgICAgU3RyaW5nSW1wbCogaW1wbCA9IHN0cmluZy5pbXBsKCkgPyBzdHJpbmcuaW1wbCgp
IDogU3RyaW5nSW1wbDo6ZW1wdHkoKTsKKyAgICBSZWZQdHI8V2ViU3RyaW5nPiB3ZWJTdHJpbmcg
PSBXZWJTdHJpbmc6OmNyZWF0ZShTdHJpbmcoaW1wbCkpOworICAgIHJldHVybiB0b1JlZih3ZWJT
dHJpbmcucmVsZWFzZSgpLnJlbGVhc2VSZWYoKSk7Cit9CisKK2lubGluZSBXS1VSTFJlZiB0b0Nv
cGllZFVSTFJlZihjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBTdHJpbmdJbXBsKiBpbXBs
ID0gc3RyaW5nLmltcGwoKSA/IHN0cmluZy5pbXBsKCkgOiBTdHJpbmdJbXBsOjplbXB0eSgpOwor
ICAgIFJlZlB0cjxXZWJVUkw+IHdlYlVSTCA9IFdlYlVSTDo6Y3JlYXRlKFN0cmluZyhpbXBsKSk7
CisgICAgcmV0dXJuIHRvUmVmKHdlYlVSTC5yZWxlYXNlKCkucmVsZWFzZVJlZigpKTsKK30KKwor
aW5saW5lIFN0cmluZyB0b1dURlN0cmluZyhXS1N0cmluZ1JlZiBzdHJpbmdSZWYpCit7CisgICAg
aWYgKCFzdHJpbmdSZWYpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICByZXR1cm4gdG9X
SyhzdHJpbmdSZWYpLT5zdHJpbmcoKTsKK30KKworaW5saW5lIFN0cmluZyB0b1dURlN0cmluZyhX
S1VSTFJlZiB1cmxSZWYpCit7CisgICAgaWYgKCF1cmxSZWYpCisgICAgICAgIHJldHVybiBTdHJp
bmcoKTsKKyAgICByZXR1cm4gdG9XSyh1cmxSZWYpLT5zdHJpbmcoKTsKK30KKworLyogRW51bSBj
b252ZXJzaW9ucyAqLworCitpbmxpbmUgV0tUeXBlSUQgdG9SZWYoQVBJT2JqZWN0OjpUeXBlIHR5
cGUpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdLVHlwZUlEPih0eXBlKTsKK30KKworaW5s
aW5lIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSB0b1JlZihXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSB0
eXBlKQoreworICAgIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSB3a1R5cGUgPSBrV0tGcmFtZU5hdmln
YXRpb25UeXBlT3RoZXI7CisKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFdlYkNvcmU6
Ok5hdmlnYXRpb25UeXBlTGlua0NsaWNrZWQ6CisgICAgICAgIHdrVHlwZSA9IGtXS0ZyYW1lTmF2
aWdhdGlvblR5cGVMaW5rQ2xpY2tlZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3Jl
OjpOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQ6CisgICAgICAgIHdrVHlwZSA9IGtXS0ZyYW1l
TmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdl
YkNvcmU6Ok5hdmlnYXRpb25UeXBlQmFja0ZvcndhcmQ6CisgICAgICAgIHdrVHlwZSA9IGtXS0Zy
YW1lTmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBX
ZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZVJlbG9hZDoKKyAgICAgICAgd2tUeXBlID0ga1dLRnJhbWVO
YXZpZ2F0aW9uVHlwZVJlbG9hZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpO
YXZpZ2F0aW9uVHlwZUZvcm1SZXN1Ym1pdHRlZDoKKyAgICAgICAgd2tUeXBlID0ga1dLRnJhbWVO
YXZpZ2F0aW9uVHlwZUZvcm1SZXN1Ym1pdHRlZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBX
ZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZU90aGVyOgorICAgICAgICB3a1R5cGUgPSBrV0tGcmFtZU5h
dmlnYXRpb25UeXBlT3RoZXI7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICAKKyAgICByZXR1
cm4gd2tUeXBlOworfQorCitpbmxpbmUgV0tFdmVudE1vZGlmaWVycyB0b1JlZihXZWJFdmVudDo6
TW9kaWZpZXJzIG1vZGlmaWVycykKK3sKKyAgICBXS0V2ZW50TW9kaWZpZXJzIHdrTW9kaWZpZXJz
ID0gMDsKKyAgICBpZiAobW9kaWZpZXJzICYgV2ViRXZlbnQ6OlNoaWZ0S2V5KQorICAgICAgICB3
a01vZGlmaWVycyB8PSBrV0tFdmVudE1vZGlmaWVyc1NoaWZ0S2V5OworICAgIGlmIChtb2RpZmll
cnMgJiBXZWJFdmVudDo6Q29udHJvbEtleSkKKyAgICAgICAgd2tNb2RpZmllcnMgfD0ga1dLRXZl
bnRNb2RpZmllcnNDb250cm9sS2V5OworICAgIGlmIChtb2RpZmllcnMgJiBXZWJFdmVudDo6QWx0
S2V5KQorICAgICAgICB3a01vZGlmaWVycyB8PSBrV0tFdmVudE1vZGlmaWVyc0FsdEtleTsKKyAg
ICBpZiAobW9kaWZpZXJzICYgV2ViRXZlbnQ6Ok1ldGFLZXkpCisgICAgICAgIHdrTW9kaWZpZXJz
IHw9IGtXS0V2ZW50TW9kaWZpZXJzTWV0YUtleTsKKyAgICByZXR1cm4gd2tNb2RpZmllcnM7Cit9
CisKK2lubGluZSBXS0V2ZW50TW91c2VCdXR0b24gdG9SZWYoV2ViTW91c2VFdmVudDo6QnV0dG9u
IG1vdXNlQnV0dG9uKQoreworICAgIFdLRXZlbnRNb3VzZUJ1dHRvbiB3a01vdXNlQnV0dG9uID0g
a1dLRXZlbnRNb3VzZUJ1dHRvbk5vQnV0dG9uOworCisgICAgc3dpdGNoIChtb3VzZUJ1dHRvbikg
eworICAgIGNhc2UgV2ViTW91c2VFdmVudDo6Tm9CdXR0b246CisgICAgICAgIHdrTW91c2VCdXR0
b24gPSBrV0tFdmVudE1vdXNlQnV0dG9uTm9CdXR0b247CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjoKKyAgICAgICAgd2tNb3VzZUJ1dHRvbiA9IGtX
S0V2ZW50TW91c2VCdXR0b25MZWZ0QnV0dG9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdl
Yk1vdXNlRXZlbnQ6Ok1pZGRsZUJ1dHRvbjoKKyAgICAgICAgd2tNb3VzZUJ1dHRvbiA9IGtXS0V2
ZW50TW91c2VCdXR0b25NaWRkbGVCdXR0b247CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2Vi
TW91c2VFdmVudDo6UmlnaHRCdXR0b246CisgICAgICAgIHdrTW91c2VCdXR0b24gPSBrV0tFdmVu
dE1vdXNlQnV0dG9uUmlnaHRCdXR0b247CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIHJl
dHVybiB3a01vdXNlQnV0dG9uOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIFdLQVBJQ2FzdF9oCkluZGV4OiBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNh
c3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3Qu
aAkocmV2aXNpb24gMCkKKysrIFdlYktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMywxMDEgKzIzLDUxIEBACiAgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBXS0FQSUNhc3RfaAotI2RlZmluZSBXS0FQ
SUNhc3RfaAorI2lmbmRlZiBXS1NoYXJlZEFQSUNhc3RfaAorI2RlZmluZSBXS1NoYXJlZEFQSUNh
c3RfaAogCiAjaW5jbHVkZSAiV0tCYXNlLmgiCi0jaW5jbHVkZSAiV0tQYWdlLmgiCi0jaW5jbHVk
ZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJOdW1iZXIuaCIKICNpbmNsdWRlICJXZWJTdHJp
bmcuaCIKICNpbmNsdWRlICJXZWJVUkwuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVy
VHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvVHlwZVRyYWl0cy5oPgogCi0jaWYgZGVmaW5lZChXSU4z
MikgfHwgZGVmaW5lZChfV0lOMzIpCi0jaW5jbHVkZSAiV0tBUElDYXN0V2luLmgiCi0jZW5kaWYK
LQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEltbXV0YWJsZUFycmF5OwogY2xhc3MgSW1t
dXRhYmxlRGljdGlvbmFyeTsKIGNsYXNzIE11dGFibGVBcnJheTsKIGNsYXNzIE11dGFibGVEaWN0
aW9uYXJ5OwotY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0OwotY2xhc3MgV2ViQmFja0ZvcndhcmRM
aXN0SXRlbTsKIGNsYXNzIFdlYkNlcnRpZmljYXRlSW5mbzsKLWNsYXNzIFdlYkNvbnRleHQ7CiBj
bGFzcyBXZWJEYXRhOwogY2xhc3MgV2ViRXJyb3I7Ci1jbGFzcyBXZWJGb3JtU3VibWlzc2lvbkxp
c3RlbmVyUHJveHk7Ci1jbGFzcyBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk7Ci1jbGFzcyBX
ZWJGcmFtZVByb3h5OwotY2xhc3MgV2ViTmF2aWdhdGlvbkRhdGE7Ci1jbGFzcyBXZWJQYWdlTmFt
ZXNwYWNlOwotY2xhc3MgV2ViUGFnZVByb3h5OwotY2xhc3MgV2ViUHJlZmVyZW5jZXM7CiBjbGFz
cyBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBXZWJVUkxSZXF1ZXN0OwogY2xhc3Mg
V2ViVVJMUmVzcG9uc2U7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEFQSVR5cGU+IHN0cnVjdCBBUElU
eXBlSW5mbyB7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS0FycmF5UmVmPiAg
ICAgICAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIEltbXV0YWJsZUFycmF5KiBJbXBsVHlwZTsg
fTsKLXRlbXBsYXRlPD4gc3RydWN0IEFQSVR5cGVJbmZvPFdLQmFja0ZvcndhcmRMaXN0SXRlbVJl
Zj4gICAgICAgICB7IHR5cGVkZWYgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogSW1wbFR5cGU7IH07
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS0JhY2tGb3J3YXJkTGlzdFJlZj4gICAg
ICAgICAgICAgeyB0eXBlZGVmIFdlYkJhY2tGb3J3YXJkTGlzdCogSW1wbFR5cGU7IH07Ci10ZW1w
bGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS0Jvb2xlYW5SZWY+ICAgICAgICAgICAgICAgICAg
ICAgeyB0eXBlZGVmIFdlYkJvb2xlYW4qIEltcGxUeXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3Qg
QVBJVHlwZUluZm88V0tDZXJ0aWZpY2F0ZUluZm9SZWY+ICAgICAgICAgICAgIHsgdHlwZWRlZiBX
ZWJDZXJ0aWZpY2F0ZUluZm8qIEltcGxUeXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgQVBJVHlw
ZUluZm88V0tDb250ZXh0UmVmPiAgICAgICAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXZWJDb250
ZXh0KiBJbXBsVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEFQSVR5cGVJbmZvPFdLRGF0YVJl
Zj4gICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV2ViRGF0YSogSW1wbFR5cGU7IH07
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS0RpY3Rpb25hcnlSZWY+ICAgICAgICAg
ICAgICAgICAgeyB0eXBlZGVmIEltbXV0YWJsZURpY3Rpb25hcnkqIEltcGxUeXBlOyB9OwotdGVt
cGxhdGU8PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tEb3VibGVSZWY+ICAgICAgICAgICAgICAgICAg
ICAgIHsgdHlwZWRlZiBXZWJEb3VibGUqIEltcGxUeXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3Qg
QVBJVHlwZUluZm88V0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyUmVmPiAgICAgIHsgdHlwZWRlZiBX
ZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkqIEltcGxUeXBlOyB9OwotdGVtcGxhdGU8PiBz
dHJ1Y3QgQVBJVHlwZUluZm88V0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmPiAgICAgICAgIHsgdHlw
ZWRlZiBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkqIEltcGxUeXBlOyB9OwotdGVtcGxhdGU8
PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tGcmFtZVJlZj4gICAgICAgICAgICAgICAgICAgICAgIHsg
dHlwZWRlZiBXZWJGcmFtZVByb3h5KiBJbXBsVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEFQ
SVR5cGVJbmZvPFdLTXV0YWJsZUFycmF5UmVmPiAgICAgICAgICAgICAgICB7IHR5cGVkZWYgTXV0
YWJsZUFycmF5KiBJbXBsVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEFQSVR5cGVJbmZvPFdL
TXV0YWJsZURpY3Rpb25hcnlSZWY+ICAgICAgICAgICB7IHR5cGVkZWYgTXV0YWJsZURpY3Rpb25h
cnkqIEltcGxUeXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tOYXZpZ2F0
aW9uRGF0YVJlZj4gICAgICAgICAgICAgIHsgdHlwZWRlZiBXZWJOYXZpZ2F0aW9uRGF0YSogSW1w
bFR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS1BhZ2VOYW1lc3BhY2VS
ZWY+ICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdlYlBhZ2VOYW1lc3BhY2UqIEltcGxUeXBlOyB9
OwotdGVtcGxhdGU8PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tQYWdlUmVmPiAgICAgICAgICAgICAg
ICAgICAgICAgIHsgdHlwZWRlZiBXZWJQYWdlUHJveHkqIEltcGxUeXBlOyB9OwotdGVtcGxhdGU8
PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tQcmVmZXJlbmNlc1JlZj4gICAgICAgICAgICAgICAgIHsg
dHlwZWRlZiBXZWJQcmVmZXJlbmNlcyogSW1wbFR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBB
UElUeXBlSW5mbzxXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVJlZj4gICAgICAgeyB0eXBlZGVmIFdl
YlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogSW1wbFR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBB
UElUeXBlSW5mbzxXS1N0cmluZ1JlZj4gICAgICAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdl
YlN0cmluZyogSW1wbFR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS1R5
cGVSZWY+ICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIEFQSU9iamVjdCogSW1wbFR5
cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS1VJbnQ2NFJlZj4gICAgICAg
ICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdlYlVJbnQ2NCogSW1wbFR5cGU7IH07Ci10ZW1wbGF0
ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS1VSTFJlZj4gICAgICAgICAgICAgICAgICAgICAgICAg
eyB0eXBlZGVmIFdlYlVSTCogSW1wbFR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBl
SW5mbzxXS1VSTFJlcXVlc3RSZWY+ICAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdlYlVSTFJl
cXVlc3QqIEltcGxUeXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tVUkxS
ZXNwb25zZVJlZj4gICAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXZWJVUkxSZXNwb25zZSogSW1w
bFR5cGU7IH07Ci0KLQogdGVtcGxhdGU8dHlwZW5hbWUgSW1wbFR5cGU+IHN0cnVjdCBJbXBsVHlw
ZUluZm8geyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPEFQSU9iamVjdCo+ICAg
ICAgICAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXS1R5cGVSZWYgQVBJVHlwZTsgfTsKLXRlbXBs
YXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxJbW11dGFibGVBcnJheSo+ICAgICAgICAgICAgICAg
ICB7IHR5cGVkZWYgV0tBcnJheVJlZiBBUElUeXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgSW1w
bFR5cGVJbmZvPEltbXV0YWJsZURpY3Rpb25hcnkqPiAgICAgICAgICAgIHsgdHlwZWRlZiBXS0Rp
Y3Rpb25hcnlSZWYgQVBJVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxN
dXRhYmxlQXJyYXkqPiAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tNdXRhYmxlQXJyYXlS
ZWYgQVBJVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxNdXRhYmxlRGlj
dGlvbmFyeSo+ICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tNdXRhYmxlRGljdGlvbmFyeVJlZiBB
UElUeXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFdlYkJhY2tGb3J3YXJk
TGlzdCo+ICAgICAgICAgICAgIHsgdHlwZWRlZiBXS0JhY2tGb3J3YXJkTGlzdFJlZiBBUElUeXBl
OyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFdlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0qPiAgICAgICAgIHsgdHlwZWRlZiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgQVBJVHlwZTsg
fTsKLXRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJCb29sZWFuKj4gICAgICAgICAg
ICAgICAgICAgICB7IHR5cGVkZWYgV0tCb29sZWFuUmVmIEFQSVR5cGU7IH07Ci10ZW1wbGF0ZTw+
IHN0cnVjdCBJbXBsVHlwZUluZm88V2ViQ2VydGlmaWNhdGVJbmZvKj4gICAgICAgICAgICAgeyB0
eXBlZGVmIFdLQ2VydGlmaWNhdGVJbmZvUmVmIEFQSVR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVj
dCBJbXBsVHlwZUluZm88V2ViQ29udGV4dCo+ICAgICAgICAgICAgICAgICAgICAgeyB0eXBlZGVm
IFdLQ29udGV4dFJlZiBBUElUeXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZv
PFdlYkRhdGEqPiAgICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXS0RhdGFSZWYgQVBJ
VHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJEb3VibGUqPiAgICAg
ICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tEb3VibGVSZWYgQVBJVHlwZTsgfTsKLXRlbXBs
YXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJFcnJvcio+ICAgICAgICAgICAgICAgICAgICAg
ICB7IHR5cGVkZWYgV0tFcnJvclJlZiBBUElUeXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgSW1w
bFR5cGVJbmZvPFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eSo+IHsgdHlwZWRlZiBXS0Zv
cm1TdWJtaXNzaW9uTGlzdGVuZXJSZWYgQVBJVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IElt
cGxUeXBlSW5mbzxXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkqPiAgICB7IHR5cGVkZWYgV0tG
cmFtZVBvbGljeUxpc3RlbmVyUmVmIEFQSVR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBJbXBs
VHlwZUluZm88V2ViRnJhbWVQcm94eSo+ICAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdLRnJh
bWVSZWYgQVBJVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJOYXZp
Z2F0aW9uRGF0YSo+ICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tOYXZpZ2F0aW9uRGF0YVJlZiBB
UElUeXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFdlYlBhZ2VOYW1lc3Bh
Y2UqPiAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXS1BhZ2VOYW1lc3BhY2VSZWYgQVBJVHlwZTsg
fTsKLXRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJQYWdlUHJveHkqPiAgICAgICAg
ICAgICAgICAgICB7IHR5cGVkZWYgV0tQYWdlUmVmIEFQSVR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0
cnVjdCBJbXBsVHlwZUluZm88V2ViUHJlZmVyZW5jZXMqPiAgICAgICAgICAgICAgICAgeyB0eXBl
ZGVmIFdLUHJlZmVyZW5jZXNSZWYgQVBJVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEltcGxU
eXBlSW5mbzxXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUqPiAgICAgICB7IHR5cGVkZWYgV0tTZXJp
YWxpemVkU2NyaXB0VmFsdWVSZWYgQVBJVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEltcGxU
eXBlSW5mbzxXZWJTdHJpbmcqPiAgICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tTdHJp
bmdSZWYgQVBJVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJVSW50
NjQqPiAgICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tVSW50NjRSZWYgQVBJVHlwZTsg
fTsKLXRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJVUkwqPiAgICAgICAgICAgICAg
ICAgICAgICAgICB7IHR5cGVkZWYgV0tVUkxSZWYgQVBJVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3Ry
dWN0IEltcGxUeXBlSW5mbzxXZWJVUkxSZXF1ZXN0Kj4gICAgICAgICAgICAgICAgICB7IHR5cGVk
ZWYgV0tVUkxSZXF1ZXN0UmVmIEFQSVR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBJbXBsVHlw
ZUluZm88V2ViVVJMUmVzcG9uc2UqPiAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdLVVJMUmVz
cG9uc2VSZWYgQVBJVHlwZTsgfTsKIAorI2RlZmluZSBXS19BRERfQVBJX01BUFBJTkcoVGhlQVBJ
VHlwZSwgVGhlSW1wbFR5cGUpIFwKKyAgICB0ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxU
aGVBUElUeXBlPiB7IHR5cGVkZWYgVGhlSW1wbFR5cGUqIEltcGxUeXBlOyB9OyBcCisgICAgdGVt
cGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFRoZUltcGxUeXBlKj4geyB0eXBlZGVmIFRoZUFQ
SVR5cGUgQVBJVHlwZTsgfTsKKworV0tfQUREX0FQSV9NQVBQSU5HKFdLQXJyYXlSZWYsIEltbXV0
YWJsZUFycmF5KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLQm9vbGVhblJlZiwgV2ViQm9vbGVhbikK
K1dLX0FERF9BUElfTUFQUElORyhXS0NlcnRpZmljYXRlSW5mb1JlZiwgV2ViQ2VydGlmaWNhdGVJ
bmZvKQorV0tfQUREX0FQSV9NQVBQSU5HKFdLRGF0YVJlZiwgV2ViRGF0YSkKK1dLX0FERF9BUElf
TUFQUElORyhXS0RpY3Rpb25hcnlSZWYsIEltbXV0YWJsZURpY3Rpb25hcnkpCitXS19BRERfQVBJ
X01BUFBJTkcoV0tEb3VibGVSZWYsIFdlYkRvdWJsZSkKK1dLX0FERF9BUElfTUFQUElORyhXS0Vy
cm9yUmVmLCBXZWJFcnJvcikKK1dLX0FERF9BUElfTUFQUElORyhXS011dGFibGVBcnJheVJlZiwg
TXV0YWJsZUFycmF5KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLTXV0YWJsZURpY3Rpb25hcnlSZWYs
IE11dGFibGVEaWN0aW9uYXJ5KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLU2VyaWFsaXplZFNjcmlw
dFZhbHVlUmVmLCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUpCitXS19BRERfQVBJX01BUFBJTkco
V0tTdHJpbmdSZWYsIFdlYlN0cmluZykKK1dLX0FERF9BUElfTUFQUElORyhXS1R5cGVSZWYsIEFQ
SU9iamVjdCkKK1dLX0FERF9BUElfTUFQUElORyhXS1VJbnQ2NFJlZiwgV2ViVUludDY0KQorV0tf
QUREX0FQSV9NQVBQSU5HKFdLVVJMUmVmLCBXZWJVUkwpCitXS19BRERfQVBJX01BUFBJTkcoV0tV
UkxSZXF1ZXN0UmVmLCBXZWJVUkxSZXF1ZXN0KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLVVJMUmVz
cG9uc2VSZWYsIFdlYlVSTFJlc3BvbnNlKQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJbXBsVHlwZSwg
dHlwZW5hbWUgQVBJVHlwZSA9IHR5cGVuYW1lIEltcGxUeXBlSW5mbzxJbXBsVHlwZSo+OjpBUElU
eXBlPgogY2xhc3MgUHJveHlpbmdSZWZQdHIgewpAQCAtMjAyLDcwICsxNTIsNiBAQCBpbmxpbmUg
V0tUeXBlSUQgdG9SZWYoQVBJT2JqZWN0OjpUeXBlIHR5CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PFdLVHlwZUlEPih0eXBlKTsKIH0KIAotaW5saW5lIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSB0b1Jl
ZihXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZSB0eXBlKQotewotICAgIFdLRnJhbWVOYXZpZ2F0aW9u
VHlwZSB3a1R5cGUgPSBrV0tGcmFtZU5hdmlnYXRpb25UeXBlT3RoZXI7Ci0KLSAgICBzd2l0Y2gg
KHR5cGUpIHsKLSAgICBjYXNlIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlTGlua0NsaWNrZWQ6Ci0g
ICAgICAgIHdrVHlwZSA9IGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVMaW5rQ2xpY2tlZDsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUZvcm1TdWJtaXR0ZWQ6
Ci0gICAgICAgIHdrVHlwZSA9IGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVGb3JtU3VibWl0dGVkOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBlQmFja0Zvcndh
cmQ6Ci0gICAgICAgIHdrVHlwZSA9IGtXS0ZyYW1lTmF2aWdhdGlvblR5cGVCYWNrRm9yd2FyZDsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZVJlbG9hZDoK
LSAgICAgICAgd2tUeXBlID0ga1dLRnJhbWVOYXZpZ2F0aW9uVHlwZVJlbG9hZDsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZUZvcm1SZXN1Ym1pdHRlZDoK
LSAgICAgICAgd2tUeXBlID0ga1dLRnJhbWVOYXZpZ2F0aW9uVHlwZUZvcm1SZXN1Ym1pdHRlZDsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJDb3JlOjpOYXZpZ2F0aW9uVHlwZU90aGVyOgot
ICAgICAgICB3a1R5cGUgPSBrV0tGcmFtZU5hdmlnYXRpb25UeXBlT3RoZXI7Ci0gICAgICAgIGJy
ZWFrOwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gd2tUeXBlOwotfQotCi1pbmxpbmUgV0tFdmVu
dE1vZGlmaWVycyB0b1JlZihXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlmaWVycykKLXsKLSAgICBX
S0V2ZW50TW9kaWZpZXJzIHdrTW9kaWZpZXJzID0gMDsKLSAgICBpZiAobW9kaWZpZXJzICYgV2Vi
RXZlbnQ6OlNoaWZ0S2V5KQotICAgICAgICB3a01vZGlmaWVycyB8PSBrV0tFdmVudE1vZGlmaWVy
c1NoaWZ0S2V5OwotICAgIGlmIChtb2RpZmllcnMgJiBXZWJFdmVudDo6Q29udHJvbEtleSkKLSAg
ICAgICAgd2tNb2RpZmllcnMgfD0ga1dLRXZlbnRNb2RpZmllcnNDb250cm9sS2V5OwotICAgIGlm
IChtb2RpZmllcnMgJiBXZWJFdmVudDo6QWx0S2V5KQotICAgICAgICB3a01vZGlmaWVycyB8PSBr
V0tFdmVudE1vZGlmaWVyc0FsdEtleTsKLSAgICBpZiAobW9kaWZpZXJzICYgV2ViRXZlbnQ6Ok1l
dGFLZXkpCi0gICAgICAgIHdrTW9kaWZpZXJzIHw9IGtXS0V2ZW50TW9kaWZpZXJzTWV0YUtleTsK
LSAgICByZXR1cm4gd2tNb2RpZmllcnM7Ci19Ci0KLWlubGluZSBXS0V2ZW50TW91c2VCdXR0b24g
dG9SZWYoV2ViTW91c2VFdmVudDo6QnV0dG9uIG1vdXNlQnV0dG9uKQotewotICAgIFdLRXZlbnRN
b3VzZUJ1dHRvbiB3a01vdXNlQnV0dG9uID0ga1dLRXZlbnRNb3VzZUJ1dHRvbk5vQnV0dG9uOwot
Ci0gICAgc3dpdGNoIChtb3VzZUJ1dHRvbikgewotICAgIGNhc2UgV2ViTW91c2VFdmVudDo6Tm9C
dXR0b246Ci0gICAgICAgIHdrTW91c2VCdXR0b24gPSBrV0tFdmVudE1vdXNlQnV0dG9uTm9CdXR0
b247Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjoK
LSAgICAgICAgd2tNb3VzZUJ1dHRvbiA9IGtXS0V2ZW50TW91c2VCdXR0b25MZWZ0QnV0dG9uOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6Ok1pZGRsZUJ1dHRvbjoKLSAg
ICAgICAgd2tNb3VzZUJ1dHRvbiA9IGtXS0V2ZW50TW91c2VCdXR0b25NaWRkbGVCdXR0b247Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b246Ci0gICAg
ICAgIHdrTW91c2VCdXR0b24gPSBrV0tFdmVudE1vdXNlQnV0dG9uUmlnaHRCdXR0b247Ci0gICAg
ICAgIGJyZWFrOwotICAgIH0KLQotICAgIHJldHVybiB3a01vdXNlQnV0dG9uOwotfQotCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIFdLQVBJQ2FzdF9oCisjZW5kaWYgLy8gV0tT
aGFyZWRBUElDYXN0X2gKSW5kZXg6IFdlYktpdDIvU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmluZy5jcHAJKHJldmlzaW9u
IDY4MzIxKQkoZnJvbSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1N0cmluZy5jcHA6NjgzMjEp
CisrKyBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJXS1N0cmluZy5oIgorCisjaW5j
bHVkZSAiV0tBUElDYXN0LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlE
IFdLU3RyaW5nR2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9SZWYoV2ViU3RyaW5nOjpBUElU
eXBlKTsKK30KKworYm9vbCBXS1N0cmluZ0lzRW1wdHkoV0tTdHJpbmdSZWYgc3RyaW5nUmVmKQor
eworICAgIHJldHVybiB0b1dLKHN0cmluZ1JlZiktPmlzRW1wdHkoKTsKK30KSW5kZXg6IFdlYktp
dDIvU2hhcmVkL0FQSS9jL1dLU3RyaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9TaGFyZWQv
QVBJL2MvV0tTdHJpbmcuaAkocmV2aXNpb24gNjgzMjEpCShmcm9tIFdlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLU3RyaW5nLmg6NjgzMjEpCisrKyBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1N0cmlu
Zy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFdLU3RyaW5nX2gKKyNkZWZpbmUgV0tTdHJpbmdfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jh
c2UuaD4KKworI2lmbmRlZiBfX2NwbHVzcGx1cworI2luY2x1ZGUgPHN0ZGJvb2wuaD4KKyNlbmRp
ZgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9S
VCBXS1R5cGVJRCBXS1N0cmluZ0dldFR5cGVJRCgpOworCitXS19FWFBPUlQgYm9vbCBXS1N0cmlu
Z0lzRW1wdHkoV0tTdHJpbmdSZWYgc3RyaW5nKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9Cisj
ZW5kaWYKKworI2VuZGlmIC8qIFdLU3RyaW5nX2ggKi8KSW5kZXg6IFdlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLVHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tUeXBl
LmNwcAkocmV2aXNpb24gNjgzMjEpCShmcm9tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVHlw
ZS5jcHA6NjgzMjEpCisrKyBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1R5cGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiV0tUeXBlLmgi
CisKKyNpbmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKwordXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tHZXRUeXBlSUQoV0tUeXBlUmVmIHR5
cGVSZWYpCit7CisgICAgcmV0dXJuIHRvUmVmKHN0YXRpY19jYXN0PEFQSU9iamVjdCo+KGNvbnN0
X2Nhc3Q8dm9pZCo+KHR5cGVSZWYpKS0+dHlwZSgpKTsKK30KKworV0tUeXBlUmVmIFdLUmV0YWlu
KFdLVHlwZVJlZiB0eXBlUmVmKQoreworICAgIHN0YXRpY19jYXN0PEFQSU9iamVjdCo+KGNvbnN0
X2Nhc3Q8dm9pZCo+KHR5cGVSZWYpKS0+cmVmKCk7CisgICAgcmV0dXJuIHR5cGVSZWY7Cit9CisK
K3ZvaWQgV0tSZWxlYXNlKFdLVHlwZVJlZiB0eXBlUmVmKQoreworICAgIHN0YXRpY19jYXN0PEFQ
SU9iamVjdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KHR5cGVSZWYpKS0+ZGVyZWYoKTsKK30KSW5kZXg6
IFdlYktpdDIvU2hhcmVkL0FQSS9jL1dLVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvU2hh
cmVkL0FQSS9jL1dLVHlwZS5oCShyZXZpc2lvbiA2ODMyMSkJKGZyb20gV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tUeXBlLmg6NjgzMjEpCisrKyBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1R5cGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBX
S1R5cGVfaAorI2RlZmluZSBXS1R5cGVfaAorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4K
KworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQg
V0tUeXBlSUQgV0tHZXRUeXBlSUQoV0tUeXBlUmVmIHR5cGUpOworCitXS19FWFBPUlQgV0tUeXBl
UmVmIFdLUmV0YWluKFdLVHlwZVJlZiB0eXBlKTsKK1dLX0VYUE9SVCB2b2lkIFdLUmVsZWFzZShX
S1R5cGVSZWYgdHlwZSk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRp
ZiAvKiBXS1R5cGVfaCAqLwpJbmRleDogV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tVUkwuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMLmNwcAkocmV2aXNpb24gNjgz
MjEpCShmcm9tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVVJMLmNwcDo2ODMyMSkKKysrIFdl
YktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgIldLVVJMLmgiCisKKyNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tVUkxHZXRUeXBl
SUQoKQoreworICAgIHJldHVybiB0b1JlZihXZWJVUkw6OkFQSVR5cGUpOworfQpJbmRleDogV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tVUkwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS1VSTC5oCShyZXZpc2lvbiA2ODMyMSkJKGZyb20gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tVUkwuaDo2ODMyMSkKKysrIFdlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tVUkxfaAor
I2RlZmluZSBXS1VSTF9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCisjaWZkZWYg
X19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBXS1R5cGVJRCBX
S1VSTEdldFR5cGVJRCgpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5k
aWYgLyogV0tVUkxfaCAqLwpJbmRleDogV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tVUkxSZXF1ZXN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1VSTFJlcXVlc3QuY3Bw
CShyZXZpc2lvbiA2ODMyMSkJKGZyb20gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVUkxSZXF1
ZXN0LmNwcDo2ODMyMSkKKysrIFdlYktpdDIvU2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJX
S1VSTFJlcXVlc3QuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYlVS
TFJlcXVlc3QuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tVUkxS
ZXF1ZXN0R2V0VHlwZUlEKCkKK3sKKyAgICByZXR1cm4gdG9SZWYoV2ViVVJMUmVxdWVzdDo6QVBJ
VHlwZSk7Cit9CkluZGV4OiBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1VSTFJlcXVlc3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9BUEkvYy9XS1VSTFJlcXVlc3QuaAkocmV2aXNpb24g
NjgzMjEpCShmcm9tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVVJMUmVxdWVzdC5oOjY4MzIx
KQorKysgV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tVUkxSZXF1ZXN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tVUkxSZXF1ZXN0X2gKKyNk
ZWZpbmUgV0tVUkxSZXF1ZXN0X2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNp
ZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlw
ZUlEIFdLVVJMUmVxdWVzdEdldFR5cGVJRCgpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNl
bmRpZgorCisjZW5kaWYgLyogV0tVUkxSZXF1ZXN0X2ggKi8KSW5kZXg6IFdlYktpdDIvU2hhcmVk
L0FQSS9jL1dLVVJMUmVzcG9uc2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLVVJMUmVzcG9uc2UuY3BwCShyZXZpc2lvbiA2ODMyMSkJKGZyb20gV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tVUkxSZXNwb25zZS5jcHA6NjgzMjEpCisrKyBXZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS1VSTFJlc3BvbnNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgIldLVVJMUmVzcG9uc2UuaCIKKworI2luY2x1ZGUgIldLQVBJ
Q2FzdC5oIgorI2luY2x1ZGUgIldlYlVSTFJlc3BvbnNlLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CisKK1dLVHlwZUlEIFdLVVJMUmVzcG9uc2VHZXRUeXBlSUQoKQoreworICAgIHJldHVy
biB0b1JlZihXZWJVUkxSZXNwb25zZTo6QVBJVHlwZSk7Cit9CisKSW5kZXg6IFdlYktpdDIvU2hh
cmVkL0FQSS9jL1dLVVJMUmVzcG9uc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS1VSTFJlc3BvbnNlLmgJKHJldmlzaW9uIDY4MzIxKQkoZnJvbSBXZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1VSTFJlc3BvbnNlLmg6NjgzMjEpCisrKyBXZWJLaXQyL1NoYXJlZC9BUEkv
Yy9XS1VSTFJlc3BvbnNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV0tVUkxSZXNwb25zZV9oCisjZGVmaW5lIFdLVVJMUmVzcG9uc2VfaAor
CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRl
cm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tVUkxSZXNwb25zZUdldFR5
cGVJRCgpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tV
UkxSZXNwb25zZV9oICovCkluZGV4OiBXZWJLaXQyL1NoYXJlZC9BUEkvYy93aW4vV0tCYXNlV2lu
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9TaGFyZWQvQVBJL2Mvd2luL1dLQmFzZVdpbi5oCShy
ZXZpc2lvbiA2ODMyMSkJKGZyb20gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dpbi9XS0Jhc2VXaW4u
aDo2ODMyMSkKKysrIFdlYktpdDIvU2hhcmVkL0FQSS9jL3dpbi9XS0Jhc2VXaW4uaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS0Jhc2VXaW5f
aAorI2RlZmluZSBXS0Jhc2VXaW5faAorCisjaWZuZGVmIFdLQmFzZV9oCisjZXJyb3IgIlBsZWFz
ZSAjaW5jbHVkZSBcIldLQmFzZS5oXCIgaW5zdGVhZCBvZiB0aGlzIGZpbGUgZGlyZWN0bHkuIgor
I2VuZGlmCisKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVmlldyogV0tWaWV3UmVmOwor
CisjZW5kaWYgLyogV0tCYXNlV2luX2ggKi8KSW5kZXg6IFdlYktpdDIvU2hhcmVkL0FQSS9jL3dp
bi9XS0NlcnRpZmljYXRlSW5mb1dpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9TaGFyZWQv
QVBJL2Mvd2luL1dLQ2VydGlmaWNhdGVJbmZvV2luLmNwcAkocmV2aXNpb24gNjgzMjEpCShmcm9t
IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dpbi9XS0NlcnRpZmljYXRlSW5mb1dpbi5jcHA6Njgz
MjEpCisrKyBXZWJLaXQyL1NoYXJlZC9BUEkvYy93aW4vV0tDZXJ0aWZpY2F0ZUluZm9XaW4uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
V0tDZXJ0aWZpY2F0ZUluZm9XaW4uaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1
ZGUgIldlYkNlcnRpZmljYXRlSW5mby5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitQ
Q0NFUlRfQ09OVEVYVCBXS0NlcnRpZmljYXRlSW5mb0dldENlcnRpZmljYXRlQ29udGV4dChXS0Nl
cnRpZmljYXRlSW5mb1JlZiBjZXJ0aWZpY2F0ZUluZm9SZWYpCit7CisgICAgcmV0dXJuIHRvV0so
Y2VydGlmaWNhdGVJbmZvUmVmKS0+cGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8oKS5jZXJ0aWZpY2F0
ZUNvbnRleHQoKTsKK30KSW5kZXg6IFdlYktpdDIvU2hhcmVkL0FQSS9jL3dpbi9XS0NlcnRpZmlj
YXRlSW5mb1dpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvU2hhcmVkL0FQSS9jL3dpbi9XS0Nl
cnRpZmljYXRlSW5mb1dpbi5oCShyZXZpc2lvbiA2ODMyMSkJKGZyb20gV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0Mvd2luL1dLQ2VydGlmaWNhdGVJbmZvV2luLmg6NjgzMjEpCisrKyBXZWJLaXQyL1No
YXJlZC9BUEkvYy93aW4vV0tDZXJ0aWZpY2F0ZUluZm9XaW4uaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS0NlcnRpZmljYXRlSW5mb1dpbl9o
CisjZGVmaW5lIFdLQ2VydGlmaWNhdGVJbmZvV2luX2gKKworI2luY2x1ZGUgPFdlYktpdDIvV0tC
YXNlLmg+CisjaW5jbHVkZSA8V2luY3J5cHQuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRl
cm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgUENDRVJUX0NPTlRFWFQgV0tDZXJ0aWZpY2F0
ZUluZm9HZXRDZXJ0aWZpY2F0ZUNvbnRleHQoV0tDZXJ0aWZpY2F0ZUluZm9SZWYgY2VydGlmaWNh
dGVJbmZvKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdL
Q2VydGlmaWNhdGVJbmZvV2luX2ggKi8KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2Fz
dC5oCShyZXZpc2lvbiA2ODMyMSkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2Fz
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwzMSArMjYsMTYgQEAKICNpZm5kZWYgV0tBUElDYXN0
X2gKICNkZWZpbmUgV0tBUElDYXN0X2gKIAotI2luY2x1ZGUgIldLQmFzZS5oIgorI2luY2x1ZGUg
IldLU2hhcmVkQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldLUGFnZS5oIgogI2luY2x1ZGUgIldlYkV2
ZW50LmgiCi0jaW5jbHVkZSAiV2ViTnVtYmVyLmgiCi0jaW5jbHVkZSAiV2ViU3RyaW5nLmgiCi0j
aW5jbHVkZSAiV2ViVVJMLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+
Ci0jaW5jbHVkZSA8d3RmL1R5cGVUcmFpdHMuaD4KLQotI2lmIGRlZmluZWQoV0lOMzIpIHx8IGRl
ZmluZWQoX1dJTjMyKQotI2luY2x1ZGUgIldLQVBJQ2FzdFdpbi5oIgotI2VuZGlmCiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi1jbGFzcyBJbW11dGFibGVBcnJheTsKLWNsYXNzIEltbXV0YWJsZURp
Y3Rpb25hcnk7Ci1jbGFzcyBNdXRhYmxlQXJyYXk7Ci1jbGFzcyBNdXRhYmxlRGljdGlvbmFyeTsK
IGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07
Ci1jbGFzcyBXZWJDZXJ0aWZpY2F0ZUluZm87CiBjbGFzcyBXZWJDb250ZXh0OwotY2xhc3MgV2Vi
RGF0YTsKLWNsYXNzIFdlYkVycm9yOwogY2xhc3MgV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclBy
b3h5OwogY2xhc3MgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5OwogY2xhc3MgV2ViRnJhbWVQ
cm94eTsKQEAgLTU4LDE1MCArNDMsMjAgQEAgY2xhc3MgV2ViTmF2aWdhdGlvbkRhdGE7CiBjbGFz
cyBXZWJQYWdlTmFtZXNwYWNlOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUHJlZmVy
ZW5jZXM7Ci1jbGFzcyBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWU7Ci1jbGFzcyBXZWJVUkxSZXF1
ZXN0OwotY2xhc3MgV2ViVVJMUmVzcG9uc2U7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIEFQSVR5cGU+
IHN0cnVjdCBBUElUeXBlSW5mbyB7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxX
S0FycmF5UmVmPiAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIEltbXV0YWJsZUFycmF5
KiBJbXBsVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEFQSVR5cGVJbmZvPFdLQmFja0Zvcndh
cmRMaXN0SXRlbVJlZj4gICAgICAgICB7IHR5cGVkZWYgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSog
SW1wbFR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS0JhY2tGb3J3YXJk
TGlzdFJlZj4gICAgICAgICAgICAgeyB0eXBlZGVmIFdlYkJhY2tGb3J3YXJkTGlzdCogSW1wbFR5
cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS0Jvb2xlYW5SZWY+ICAgICAg
ICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdlYkJvb2xlYW4qIEltcGxUeXBlOyB9OwotdGVtcGxh
dGU8PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tDZXJ0aWZpY2F0ZUluZm9SZWY+ICAgICAgICAgICAg
IHsgdHlwZWRlZiBXZWJDZXJ0aWZpY2F0ZUluZm8qIEltcGxUeXBlOyB9OwotdGVtcGxhdGU8PiBz
dHJ1Y3QgQVBJVHlwZUluZm88V0tDb250ZXh0UmVmPiAgICAgICAgICAgICAgICAgICAgIHsgdHlw
ZWRlZiBXZWJDb250ZXh0KiBJbXBsVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEFQSVR5cGVJ
bmZvPFdLRGF0YVJlZj4gICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV2ViRGF0YSog
SW1wbFR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS0RpY3Rpb25hcnlS
ZWY+ICAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIEltbXV0YWJsZURpY3Rpb25hcnkqIEltcGxU
eXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tEb3VibGVSZWY+ICAgICAg
ICAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXZWJEb3VibGUqIEltcGxUeXBlOyB9OwotdGVtcGxh
dGU8PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyUmVmPiAgICAg
IHsgdHlwZWRlZiBXZWJGb3JtU3VibWlzc2lvbkxpc3RlbmVyUHJveHkqIEltcGxUeXBlOyB9Owot
dGVtcGxhdGU8PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmPiAg
ICAgICAgIHsgdHlwZWRlZiBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkqIEltcGxUeXBlOyB9
OwotdGVtcGxhdGU8PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tGcmFtZVJlZj4gICAgICAgICAgICAg
ICAgICAgICAgIHsgdHlwZWRlZiBXZWJGcmFtZVByb3h5KiBJbXBsVHlwZTsgfTsKLXRlbXBsYXRl
PD4gc3RydWN0IEFQSVR5cGVJbmZvPFdLTXV0YWJsZUFycmF5UmVmPiAgICAgICAgICAgICAgICB7
IHR5cGVkZWYgTXV0YWJsZUFycmF5KiBJbXBsVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEFQ
SVR5cGVJbmZvPFdLTXV0YWJsZURpY3Rpb25hcnlSZWY+ICAgICAgICAgICB7IHR5cGVkZWYgTXV0
YWJsZURpY3Rpb25hcnkqIEltcGxUeXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgQVBJVHlwZUlu
Zm88V0tOYXZpZ2F0aW9uRGF0YVJlZj4gICAgICAgICAgICAgIHsgdHlwZWRlZiBXZWJOYXZpZ2F0
aW9uRGF0YSogSW1wbFR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS1Bh
Z2VOYW1lc3BhY2VSZWY+ICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdlYlBhZ2VOYW1lc3BhY2Uq
IEltcGxUeXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tQYWdlUmVmPiAg
ICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXZWJQYWdlUHJveHkqIEltcGxUeXBlOyB9
OwotdGVtcGxhdGU8PiBzdHJ1Y3QgQVBJVHlwZUluZm88V0tQcmVmZXJlbmNlc1JlZj4gICAgICAg
ICAgICAgICAgIHsgdHlwZWRlZiBXZWJQcmVmZXJlbmNlcyogSW1wbFR5cGU7IH07Ci10ZW1wbGF0
ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVJlZj4gICAgICAg
eyB0eXBlZGVmIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogSW1wbFR5cGU7IH07Ci10ZW1wbGF0
ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS1N0cmluZ1JlZj4gICAgICAgICAgICAgICAgICAgICAg
eyB0eXBlZGVmIFdlYlN0cmluZyogSW1wbFR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBUElU
eXBlSW5mbzxXS1R5cGVSZWY+ICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIEFQSU9i
amVjdCogSW1wbFR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS1VJbnQ2
NFJlZj4gICAgICAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdlYlVJbnQ2NCogSW1wbFR5cGU7
IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBBUElUeXBlSW5mbzxXS1VSTFJlZj4gICAgICAgICAgICAg
ICAgICAgICAgICAgeyB0eXBlZGVmIFdlYlVSTCogSW1wbFR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0
cnVjdCBBUElUeXBlSW5mbzxXS1VSTFJlcXVlc3RSZWY+ICAgICAgICAgICAgICAgICAgeyB0eXBl
ZGVmIFdlYlVSTFJlcXVlc3QqIEltcGxUeXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgQVBJVHlw
ZUluZm88V0tVUkxSZXNwb25zZVJlZj4gICAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXZWJVUkxS
ZXNwb25zZSogSW1wbFR5cGU7IH07Ci0KLQotdGVtcGxhdGU8dHlwZW5hbWUgSW1wbFR5cGU+IHN0
cnVjdCBJbXBsVHlwZUluZm8geyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPEFQ
SU9iamVjdCo+ICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXS1R5cGVSZWYgQVBJVHlw
ZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxJbW11dGFibGVBcnJheSo+ICAg
ICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tBcnJheVJlZiBBUElUeXBlOyB9OwotdGVtcGxhdGU8
PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPEltbXV0YWJsZURpY3Rpb25hcnkqPiAgICAgICAgICAgIHsg
dHlwZWRlZiBXS0RpY3Rpb25hcnlSZWYgQVBJVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IElt
cGxUeXBlSW5mbzxNdXRhYmxlQXJyYXkqPiAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tN
dXRhYmxlQXJyYXlSZWYgQVBJVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5m
bzxNdXRhYmxlRGljdGlvbmFyeSo+ICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tNdXRhYmxlRGlj
dGlvbmFyeVJlZiBBUElUeXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFdl
YkJhY2tGb3J3YXJkTGlzdCo+ICAgICAgICAgICAgIHsgdHlwZWRlZiBXS0JhY2tGb3J3YXJkTGlz
dFJlZiBBUElUeXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFdlYkJhY2tG
b3J3YXJkTGlzdEl0ZW0qPiAgICAgICAgIHsgdHlwZWRlZiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1S
ZWYgQVBJVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJCb29sZWFu
Kj4gICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tCb29sZWFuUmVmIEFQSVR5cGU7IH07
Ci10ZW1wbGF0ZTw+IHN0cnVjdCBJbXBsVHlwZUluZm88V2ViQ2VydGlmaWNhdGVJbmZvKj4gICAg
ICAgICAgICAgeyB0eXBlZGVmIFdLQ2VydGlmaWNhdGVJbmZvUmVmIEFQSVR5cGU7IH07Ci10ZW1w
bGF0ZTw+IHN0cnVjdCBJbXBsVHlwZUluZm88V2ViQ29udGV4dCo+ICAgICAgICAgICAgICAgICAg
ICAgeyB0eXBlZGVmIFdLQ29udGV4dFJlZiBBUElUeXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3Qg
SW1wbFR5cGVJbmZvPFdlYkRhdGEqPiAgICAgICAgICAgICAgICAgICAgICAgIHsgdHlwZWRlZiBX
S0RhdGFSZWYgQVBJVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJE
b3VibGUqPiAgICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tEb3VibGVSZWYgQVBJVHlw
ZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJFcnJvcio+ICAgICAgICAg
ICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tFcnJvclJlZiBBUElUeXBlOyB9OwotdGVtcGxhdGU8
PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFdlYkZvcm1TdWJtaXNzaW9uTGlzdGVuZXJQcm94eSo+IHsg
dHlwZWRlZiBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXJSZWYgQVBJVHlwZTsgfTsKLXRlbXBsYXRl
PD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkqPiAgICB7
IHR5cGVkZWYgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIEFQSVR5cGU7IH07Ci10ZW1wbGF0ZTw+
IHN0cnVjdCBJbXBsVHlwZUluZm88V2ViRnJhbWVQcm94eSo+ICAgICAgICAgICAgICAgICAgeyB0
eXBlZGVmIFdLRnJhbWVSZWYgQVBJVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBl
SW5mbzxXZWJOYXZpZ2F0aW9uRGF0YSo+ICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tOYXZpZ2F0
aW9uRGF0YVJlZiBBUElUeXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgSW1wbFR5cGVJbmZvPFdl
YlBhZ2VOYW1lc3BhY2UqPiAgICAgICAgICAgICAgIHsgdHlwZWRlZiBXS1BhZ2VOYW1lc3BhY2VS
ZWYgQVBJVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJQYWdlUHJv
eHkqPiAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tQYWdlUmVmIEFQSVR5cGU7IH07Ci10
ZW1wbGF0ZTw+IHN0cnVjdCBJbXBsVHlwZUluZm88V2ViUHJlZmVyZW5jZXMqPiAgICAgICAgICAg
ICAgICAgeyB0eXBlZGVmIFdLUHJlZmVyZW5jZXNSZWYgQVBJVHlwZTsgfTsKLXRlbXBsYXRlPD4g
c3RydWN0IEltcGxUeXBlSW5mbzxXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUqPiAgICAgICB7IHR5
cGVkZWYgV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVSZWYgQVBJVHlwZTsgfTsKLXRlbXBsYXRlPD4g
c3RydWN0IEltcGxUeXBlSW5mbzxXZWJTdHJpbmcqPiAgICAgICAgICAgICAgICAgICAgICB7IHR5
cGVkZWYgV0tTdHJpbmdSZWYgQVBJVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBl
SW5mbzxXZWJVSW50NjQqPiAgICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tVSW50NjRS
ZWYgQVBJVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJVUkwqPiAg
ICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tVUkxSZWYgQVBJVHlwZTsgfTsKLXRl
bXBsYXRlPD4gc3RydWN0IEltcGxUeXBlSW5mbzxXZWJVUkxSZXF1ZXN0Kj4gICAgICAgICAgICAg
ICAgICB7IHR5cGVkZWYgV0tVUkxSZXF1ZXN0UmVmIEFQSVR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0
cnVjdCBJbXBsVHlwZUluZm88V2ViVVJMUmVzcG9uc2UqPiAgICAgICAgICAgICAgICAgeyB0eXBl
ZGVmIFdLVVJMUmVzcG9uc2VSZWYgQVBJVHlwZTsgfTsKLQotCi10ZW1wbGF0ZTx0eXBlbmFtZSBJ
bXBsVHlwZSwgdHlwZW5hbWUgQVBJVHlwZSA9IHR5cGVuYW1lIEltcGxUeXBlSW5mbzxJbXBsVHlw
ZSo+OjpBUElUeXBlPgotY2xhc3MgUHJveHlpbmdSZWZQdHIgewotcHVibGljOgotICAgIFByb3h5
aW5nUmVmUHRyKFBhc3NSZWZQdHI8SW1wbFR5cGU+IGltcGwpCi0gICAgICAgIDogbV9pbXBsKGlt
cGwpCi0gICAgewotICAgIH0KLQotICAgIG9wZXJhdG9yIEFQSVR5cGUoKSB7IHJldHVybiB0b1Jl
ZihtX2ltcGwuZ2V0KCkpOyB9CiAKLXByaXZhdGU6Ci0gICAgUmVmUHRyPEltcGxUeXBlPiBtX2lt
cGw7Ci19OwotCi0vKiBPcGFxdWUgdHlwaW5nIGNvbnZlbmllbmNlIG1ldGhvZHMgKi8KLQotdGVt
cGxhdGU8dHlwZW5hbWUgVD4KLWlubGluZSB0eXBlbmFtZSBBUElUeXBlSW5mbzxUPjo6SW1wbFR5
cGUgdG9XSyhUIHQpCi17Ci0gICAgLy8gQW4gZXhhbXBsZSBvZiB0aGUgY29udmVyc2lvbnMgdGhh
dCB0YWtlIHBsYWNlOgotICAgIC8vIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0FycmF5KiAtPiBjb25z
dCBzdHJ1Y3QgT3BhcXVlV0tBcnJheSAtPiBzdHJ1Y3QgT3BhcXVlV0tBcnJheSAtPiBzdHJ1Y3Qg
T3BhcXVlV0tBcnJheSogLT4gSW1tdXRhYmxlQXJyYXkqCi0gICAgCi0gICAgdHlwZWRlZiB0eXBl
bmFtZSBXVEY6OlJlbW92ZVBvaW50ZXI8VD46OlR5cGUgUG90ZW50aWFsbHlDb25zdFZhbHVlVHlw
ZTsKLSAgICB0eXBlZGVmIHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8UG90ZW50aWFsbHlDb25z
dFZhbHVlVHlwZT46OlR5cGUgTm9uQ29uc3RWYWx1ZVR5cGU7Ci0KLSAgICByZXR1cm4gcmVpbnRl
cnByZXRfY2FzdDx0eXBlbmFtZSBBUElUeXBlSW5mbzxUPjo6SW1wbFR5cGU+KGNvbnN0X2Nhc3Q8
Tm9uQ29uc3RWYWx1ZVR5cGUqPih0KSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1pbmxp
bmUgdHlwZW5hbWUgSW1wbFR5cGVJbmZvPFQ+OjpBUElUeXBlIHRvUmVmKFQgdCkKLXsKLSAgICBy
ZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx0eXBlbmFtZSBJbXBsVHlwZUluZm88VD46OkFQSVR5cGU+
KHQpOwotfQotCi0vKiBTcGVjaWFsIGNhc2VzLiAqLwotCi1pbmxpbmUgUHJveHlpbmdSZWZQdHI8
V2ViU3RyaW5nPiB0b1JlZihTdHJpbmdJbXBsKiBzdHJpbmcpCi17Ci0gICAgU3RyaW5nSW1wbCog
aW1wbCA9IHN0cmluZyA/IHN0cmluZyA6IFN0cmluZ0ltcGw6OmVtcHR5KCk7Ci0gICAgcmV0dXJu
IFByb3h5aW5nUmVmUHRyPFdlYlN0cmluZz4oV2ViU3RyaW5nOjpjcmVhdGUoU3RyaW5nKGltcGwp
KSk7Ci19Ci0KLWlubGluZSBQcm94eWluZ1JlZlB0cjxXZWJVUkw+IHRvVVJMUmVmKFN0cmluZ0lt
cGwqIHN0cmluZykKLXsKLSAgICBTdHJpbmdJbXBsKiBpbXBsID0gc3RyaW5nID8gc3RyaW5nIDog
U3RyaW5nSW1wbDo6ZW1wdHkoKTsKLSAgICByZXR1cm4gUHJveHlpbmdSZWZQdHI8V2ViVVJMPihX
ZWJVUkw6OmNyZWF0ZShTdHJpbmcoaW1wbCkpKTsKLX0KLQotaW5saW5lIFdLU3RyaW5nUmVmIHRv
Q29waWVkUmVmKGNvbnN0IFN0cmluZyYgc3RyaW5nKQotewotICAgIFN0cmluZ0ltcGwqIGltcGwg
PSBzdHJpbmcuaW1wbCgpID8gc3RyaW5nLmltcGwoKSA6IFN0cmluZ0ltcGw6OmVtcHR5KCk7Ci0g
ICAgUmVmUHRyPFdlYlN0cmluZz4gd2ViU3RyaW5nID0gV2ViU3RyaW5nOjpjcmVhdGUoU3RyaW5n
KGltcGwpKTsKLSAgICByZXR1cm4gdG9SZWYod2ViU3RyaW5nLnJlbGVhc2UoKS5yZWxlYXNlUmVm
KCkpOwotfQotCi1pbmxpbmUgV0tVUkxSZWYgdG9Db3BpZWRVUkxSZWYoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCi17Ci0gICAgU3RyaW5nSW1wbCogaW1wbCA9IHN0cmluZy5pbXBsKCkgPyBzdHJpbmcu
aW1wbCgpIDogU3RyaW5nSW1wbDo6ZW1wdHkoKTsKLSAgICBSZWZQdHI8V2ViVVJMPiB3ZWJVUkwg
PSBXZWJVUkw6OmNyZWF0ZShTdHJpbmcoaW1wbCkpOwotICAgIHJldHVybiB0b1JlZih3ZWJVUkwu
cmVsZWFzZSgpLnJlbGVhc2VSZWYoKSk7Ci19Ci0KLWlubGluZSBTdHJpbmcgdG9XVEZTdHJpbmco
V0tTdHJpbmdSZWYgc3RyaW5nUmVmKQotewotICAgIGlmICghc3RyaW5nUmVmKQotICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7Ci0gICAgcmV0dXJuIHRvV0soc3RyaW5nUmVmKS0+c3RyaW5nKCk7Ci19
Ci0KLWlubGluZSBTdHJpbmcgdG9XVEZTdHJpbmcoV0tVUkxSZWYgdXJsUmVmKQotewotICAgIGlm
ICghdXJsUmVmKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgcmV0dXJuIHRvV0sodXJs
UmVmKS0+c3RyaW5nKCk7Ci19CitXS19BRERfQVBJX01BUFBJTkcoV0tCYWNrRm9yd2FyZExpc3RJ
dGVtUmVmLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtKQorV0tfQUREX0FQSV9NQVBQSU5HKFdLQmFj
a0ZvcndhcmRMaXN0UmVmLCBXZWJCYWNrRm9yd2FyZExpc3QpCitXS19BRERfQVBJX01BUFBJTkco
V0tDb250ZXh0UmVmLCBXZWJDb250ZXh0KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLRm9ybVN1Ym1p
c3Npb25MaXN0ZW5lclJlZiwgV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5KQorV0tfQURE
X0FQSV9NQVBQSU5HKFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiwgV2ViRnJhbWVQb2xpY3lMaXN0
ZW5lclByb3h5KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLRnJhbWVSZWYsIFdlYkZyYW1lUHJveHkp
CitXS19BRERfQVBJX01BUFBJTkcoV0tOYXZpZ2F0aW9uRGF0YVJlZiwgV2ViTmF2aWdhdGlvbkRh
dGEpCitXS19BRERfQVBJX01BUFBJTkcoV0tQYWdlTmFtZXNwYWNlUmVmLCBXZWJQYWdlTmFtZXNw
YWNlKQorV0tfQUREX0FQSV9NQVBQSU5HKFdLUGFnZVJlZiwgV2ViUGFnZVByb3h5KQorV0tfQURE
X0FQSV9NQVBQSU5HKFdLUHJlZmVyZW5jZXNSZWYsIFdlYlByZWZlcmVuY2VzKQogCiAvKiBFbnVt
IGNvbnZlcnNpb25zICovCiAKLWlubGluZSBXS1R5cGVJRCB0b1JlZihBUElPYmplY3Q6OlR5cGUg
dHlwZSkKLXsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V0tUeXBlSUQ+KHR5cGUpOwotfQotCiBp
bmxpbmUgV0tGcmFtZU5hdmlnYXRpb25UeXBlIHRvUmVmKFdlYkNvcmU6Ok5hdmlnYXRpb25UeXBl
IHR5cGUpCiB7CiAgICAgV0tGcmFtZU5hdmlnYXRpb25UeXBlIHdrVHlwZSA9IGtXS0ZyYW1lTmF2
aWdhdGlvblR5cGVPdGhlcjsKQEAgLTI2OCw0ICsxMjMsOCBAQCBpbmxpbmUgV0tFdmVudE1vdXNl
QnV0dG9uIHRvUmVmKFdlYk1vdXNlCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCisjaWYgZGVm
aW5lZChXSU4zMikgfHwgZGVmaW5lZChfV0lOMzIpCisjaW5jbHVkZSAiV0tBUElDYXN0V2luLmgi
CisjZW5kaWYKKwogI2VuZGlmIC8vIFdLQVBJQ2FzdF9oCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS0FycmF5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0FycmF5LmNwcAkocmV2aXNpb24gNjgzMjEpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0FycmF5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1MiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgIldLQXJyYXkuaCIKLQotI2luY2x1ZGUgIkltbXV0YWJsZUFycmF5LmgiCi0j
aW5jbHVkZSAiV0tBUElDYXN0LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLVdLVHlw
ZUlEIFdLQXJyYXlHZXRUeXBlSUQoKQotewotICAgIHJldHVybiB0b1JlZihJbW11dGFibGVBcnJh
eTo6QVBJVHlwZSk7Ci19Ci0KLVdLQXJyYXlSZWYgV0tBcnJheUNyZWF0ZShXS1R5cGVSZWYqIHZh
bHVlcywgc2l6ZV90IG51bWJlck9mVmFsdWVzKQotewotICAgIFJlZlB0cjxJbW11dGFibGVBcnJh
eT4gYXJyYXkgPSBJbW11dGFibGVBcnJheTo6Y3JlYXRlKHJlaW50ZXJwcmV0X2Nhc3Q8QVBJT2Jq
ZWN0Kio+KGNvbnN0X2Nhc3Q8dm9pZCoqPih2YWx1ZXMpKSwgbnVtYmVyT2ZWYWx1ZXMpOwotICAg
IHJldHVybiB0b1JlZihhcnJheS5yZWxlYXNlKCkucmVsZWFzZVJlZigpKTsKLX0KLQotV0tUeXBl
UmVmIFdLQXJyYXlHZXRJdGVtQXRJbmRleChXS0FycmF5UmVmIGFycmF5UmVmLCBzaXplX3QgaW5k
ZXgpCi17Ci0gICAgcmV0dXJuIHRvV0soYXJyYXlSZWYpLT5hdChpbmRleCk7Ci19Ci0KLXNpemVf
dCBXS0FycmF5R2V0U2l6ZShXS0FycmF5UmVmIGFycmF5UmVmKQotewotICAgIHJldHVybiB0b1dL
KGFycmF5UmVmKS0+c2l6ZSgpOwotfQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tB
cnJheS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQXJyYXkuaAko
cmV2aXNpb24gNjgzMjEpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FycmF5LmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV0tBcnJh
eV9oCi0jZGVmaW5lIFdLQXJyYXlfaAotCi0jaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KLQot
I2luY2x1ZGUgPHN0ZGRlZi5oPgotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewot
I2VuZGlmCi0KLVdLX0VYUE9SVCBXS1R5cGVJRCBXS0FycmF5R2V0VHlwZUlEKCk7Ci0KLVdLX0VY
UE9SVCBXS0FycmF5UmVmIFdLQXJyYXlDcmVhdGUoV0tUeXBlUmVmKiB2YWx1ZXMsIHNpemVfdCBu
dW1iZXJPZlZhbHVlcyk7Ci0KLVdLX0VYUE9SVCBXS1R5cGVSZWYgV0tBcnJheUdldEl0ZW1BdElu
ZGV4KFdLQXJyYXlSZWYgYXJyYXksIHNpemVfdCBpbmRleCk7Ci1XS19FWFBPUlQgc2l6ZV90IFdL
QXJyYXlHZXRTaXplKFdLQXJyYXlSZWYgYXJyYXkpOwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0K
LSNlbmRpZgotCi0jZW5kaWYgLy8gV0tBcnJheV9oCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0Jhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Jh
c2UuaAkocmV2aXNpb24gNjgzMjEpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0Jhc2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtMSw4MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBX
S0Jhc2VfaAotI2RlZmluZSBXS0Jhc2VfaAotCi0jaW5jbHVkZSA8c3RkaW50Lmg+Ci0KLSNpZiBk
ZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikKLSNpbmNsdWRlIDxXZWJLaXQyL1dLQmFz
ZVdpbi5oPgotI2VuZGlmCi0KLXR5cGVkZWYgdWludDMyX3QgV0tUeXBlSUQ7Ci10eXBlZGVmIGNv
bnN0IHZvaWQqIFdLVHlwZVJlZjsKLQotdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tBcnJh
eSogV0tBcnJheVJlZjsKLXR5cGVkZWYgc3RydWN0IE9wYXF1ZVdLQXJyYXkqIFdLTXV0YWJsZUFy
cmF5UmVmOwotCi10eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0RpY3Rpb25hcnkqIFdLRGlj
dGlvbmFyeVJlZjsKLXR5cGVkZWYgc3RydWN0IE9wYXF1ZVdLRGljdGlvbmFyeSogV0tNdXRhYmxl
RGljdGlvbmFyeVJlZjsKLQotdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCYWNrRm9yd2Fy
ZExpc3QqIFdLQmFja0ZvcndhcmRMaXN0UmVmOwotdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tCYWNrRm9yd2FyZExpc3RJdGVtKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWY7Ci10eXBlZGVm
IGNvbnN0IHN0cnVjdCBPcGFxdWVXS0Jvb2xlYW4qIFdLQm9vbGVhblJlZjsKLXR5cGVkZWYgY29u
c3Qgc3RydWN0IE9wYXF1ZVdLQ2VydGlmaWNhdGVJbmZvKiBXS0NlcnRpZmljYXRlSW5mb1JlZjsK
LXR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQ29udGV4dCogV0tDb250ZXh0UmVmOwotdHlw
ZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tEYXRhKiBXS0RhdGFSZWY7Ci10eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS0RvdWJsZSogV0tEb3VibGVSZWY7Ci10eXBlZGVmIGNvbnN0IHN0cnVj
dCBPcGFxdWVXS0Vycm9yKiBXS0Vycm9yUmVmOwotdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVl
V0tGb3JtU3VibWlzc2lvbkxpc3RlbmVyKiBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXJSZWY7Ci10
eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0ZyYW1lKiBXS0ZyYW1lUmVmOwotdHlwZWRlZiBj
b25zdCBzdHJ1Y3QgT3BhcXVlV0tGcmFtZVBvbGljeUxpc3RlbmVyKiBXS0ZyYW1lUG9saWN5TGlz
dGVuZXJSZWY7Ci10eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRpb25EYXRhKiBX
S05hdmlnYXRpb25EYXRhUmVmOwotdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tQYWdlKiBX
S1BhZ2VSZWY7Ci10eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1BhZ2VOYW1lc3BhY2UqIFdL
UGFnZU5hbWVzcGFjZVJlZjsKLXR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLUHJlZmVyZW5j
ZXMqIFdLUHJlZmVyZW5jZXNSZWY7Ci10eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVSZWY7Ci10eXBlZGVmIGNv
bnN0IHN0cnVjdCBPcGFxdWVXS1N0cmluZyogV0tTdHJpbmdSZWY7Ci10eXBlZGVmIGNvbnN0IHN0
cnVjdCBPcGFxdWVXS1VJbnQ2NCogV0tVSW50NjRSZWY7Ci10eXBlZGVmIGNvbnN0IHN0cnVjdCBP
cGFxdWVXS1VSTCogV0tVUkxSZWY7Ci10eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1VSTFJl
cXVlc3QqIFdLVVJMUmVxdWVzdFJlZjsKLXR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLVVJM
UmVzcG9uc2UqIFdLVVJMUmVzcG9uc2VSZWY7Ci0KLSN1bmRlZiBXS19FWFBPUlQKLSNpZiBkZWZp
bmVkKFdLX05PX0VYUE9SVCkKLSNkZWZpbmUgV0tfRVhQT1JUCi0jZWxpZiBkZWZpbmVkKF9fR05V
Q19fKQotI2RlZmluZSBXS19FWFBPUlQgX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVs
dCIpKSkKLSNlbGlmIGRlZmluZWQoV0lOMzIpIHx8IGRlZmluZWQoX1dJTjMyKQotI2lmIEJVSUxE
SU5HX1dFQktJVAotI2RlZmluZSBXS19FWFBPUlQgX19kZWNsc3BlYyhkbGxleHBvcnQpCi0jZWxz
ZQotI2RlZmluZSBXS19FWFBPUlQgX19kZWNsc3BlYyhkbGxpbXBvcnQpCi0jZW5kaWYKLSNlbHNl
Ci0jZGVmaW5lIFdLX0VYUE9SVAotI2VuZGlmCi0KLSNlbmRpZiAvKiBXS0Jhc2VfaCAqLwpJbmRl
eDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDZXJ0aWZpY2F0ZUluZm8uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ2VydGlmaWNhdGVJbmZvLmNwcAkocmV2
aXNpb24gNjgzMjEpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NlcnRpZmljYXRlSW5m
by5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsMzYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJXS0NlcnRpZmljYXRlSW5mby5oIgotCi0jaW5jbHVkZSAiV2ViQ2VydGlmaWNhdGVJbmZv
LmgiCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0K
LVdLVHlwZUlEIFdLQ2VydGlmaWNhdGVJbmZvR2V0VHlwZUlEKCkKLXsKLSAgICByZXR1cm4gdG9S
ZWYoV2ViQ2VydGlmaWNhdGVJbmZvOjpBUElUeXBlKTsKLX0KSW5kZXg6IFdlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL1dLQ2VydGlmaWNhdGVJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tDZXJ0aWZpY2F0ZUluZm8uaAkocmV2aXNpb24gNjgzMjEpCisrKyBXZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0NlcnRpZmljYXRlSW5mby5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdLQ2VydGlmaWNhdGVJbmZvX2gK
LSNkZWZpbmUgV0tDZXJ0aWZpY2F0ZUluZm9faAotCi0jaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2Uu
aD4KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi1XS19FWFBP
UlQgV0tUeXBlSUQgV0tDZXJ0aWZpY2F0ZUluZm9HZXRUeXBlSUQoKTsKLQotI2lmZGVmIF9fY3Bs
dXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIFdLQ2VydGlmaWNhdGVJbmZvX2ggKi8KSW5k
ZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tEYXRhLmNwcAkocmV2aXNpb24gNjgzMjEpCisrKyBXZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0RhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUyICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiV0tEYXRhLmgiCi0KLSNpbmNsdWRlICJXZWJE
YXRhLmgiCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
Ci0KLVdLVHlwZUlEIFdLRGF0YUdldFR5cGVJRCgpCi17Ci0gICAgcmV0dXJuIHRvUmVmKFdlYkRh
dGE6OkFQSVR5cGUpOwotfQotCi1XS0RhdGFSZWYgV0tEYXRhQ3JlYXRlKGNvbnN0IHVuc2lnbmVk
IGNoYXIqIGJ5dGVzLCBzaXplX3Qgc2l6ZSkKLXsKLSAgICBSZWZQdHI8V2ViRGF0YT4gZGF0YSA9
IFdlYkRhdGE6OmNyZWF0ZShieXRlcywgc2l6ZSk7Ci0gICAgcmV0dXJuIHRvUmVmKGRhdGEucmVs
ZWFzZSgpLnJlbGVhc2VSZWYoKSk7Ci19Ci0KLWNvbnN0IHVuc2lnbmVkIGNoYXIqIFdLRGF0YUdl
dEJ5dGVzKFdLRGF0YVJlZiBkYXRhUmVmKQotewotICAgIHJldHVybiB0b1dLKGRhdGFSZWYpLT5i
eXRlcygpOwotfQotCi1zaXplX3QgV0tEYXRhR2V0U2l6ZShXS0RhdGFSZWYgZGF0YVJlZikKLXsK
LSAgICByZXR1cm4gdG9XSyhkYXRhUmVmKS0+c2l6ZSgpOwotfQpJbmRleDogV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tEYXRhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tEYXRhLmgJKHJldmlzaW9uIDY4MzIxKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tEYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
Zm5kZWYgV0tEYXRhX2gKLSNkZWZpbmUgV0tEYXRhX2gKLQotI2luY2x1ZGUgPFdlYktpdDIvV0tC
YXNlLmg+Ci0KLSNpbmNsdWRlIDxzdGRkZWYuaD4KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRl
cm4gIkMiIHsKLSNlbmRpZgotCi1XS19FWFBPUlQgV0tUeXBlSUQgV0tEYXRhR2V0VHlwZUlEKCk7
Ci0KLVdLX0VYUE9SVCBXS0RhdGFSZWYgV0tEYXRhQ3JlYXRlKGNvbnN0IHVuc2lnbmVkIGNoYXIq
IGJ5dGVzLCBzaXplX3Qgc2l6ZSk7Ci0KLVdLX0VYUE9SVCBjb25zdCB1bnNpZ25lZCBjaGFyKiBX
S0RhdGFHZXRCeXRlcyhXS0RhdGFSZWYgZGF0YSk7Ci1XS19FWFBPUlQgc2l6ZV90IFdLRGF0YUdl
dFNpemUoV0tEYXRhUmVmIGRhdGEpOwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgot
Ci0jZW5kaWYgLy8gV0tEYXRhX2gKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLRGlj
dGlvbmFyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tEaWN0
aW9uYXJ5LmNwcAkocmV2aXNpb24gNjgzMjEpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0RpY3Rpb25hcnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUzICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
LSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiV0tEaWN0aW9uYXJ5LmgiCi0KLSNpbmNsdWRlICJJbW11dGFibGVBcnJh
eS5oIgotI2luY2x1ZGUgIkltbXV0YWJsZURpY3Rpb25hcnkuaCIKLSNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQotV0tUeXBlSUQgV0tEaWN0aW9uYXJ5
R2V0VHlwZUlEKCkKLXsKLSAgICByZXR1cm4gdG9SZWYoSW1tdXRhYmxlRGljdGlvbmFyeTo6QVBJ
VHlwZSk7Ci19Ci0KLVdLVHlwZVJlZiBXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KFdLRGljdGlv
bmFyeVJlZiBkaWN0aW9uYXJ5UmVmLCBXS1N0cmluZ1JlZiBrZXkpCi17Ci0gICAgcmV0dXJuIHRv
V0soZGljdGlvbmFyeVJlZiktPmdldCh0b1dLKGtleSktPnN0cmluZygpKTsKLX0KLQotc2l6ZV90
IFdLRGljdGlvbmFyeUdldFNpemUoV0tEaWN0aW9uYXJ5UmVmIGRpY3Rpb25hcnlSZWYpCi17Ci0g
ICAgcmV0dXJuIHRvV0soZGljdGlvbmFyeVJlZiktPnNpemUoKTsKLX0KLQotV0tBcnJheVJlZiBX
S0RpY3Rpb25hcnlDb3B5S2V5cyhXS0RpY3Rpb25hcnlSZWYgZGljdGlvbmFyeVJlZikKLXsKLSAg
ICBSZWZQdHI8SW1tdXRhYmxlQXJyYXk+IGtleXMgPSB0b1dLKGRpY3Rpb25hcnlSZWYpLT5rZXlz
KCk7Ci0gICAgcmV0dXJuIHRvUmVmKGtleXMucmVsZWFzZSgpLnJlbGVhc2VSZWYoKSk7Ci19Cklu
ZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0RpY3Rpb25hcnkuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0RpY3Rpb25hcnkuaAkocmV2aXNpb24gNjgzMjEp
CisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0RpY3Rpb25hcnkuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXS0RpY3Rpb25hcnlfaAot
I2RlZmluZSBXS0RpY3Rpb25hcnlfaAotCi0jaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KLQot
I2luY2x1ZGUgPHN0ZGRlZi5oPgotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewot
I2VuZGlmCi0KLVdLX0VYUE9SVCBXS1R5cGVJRCBXS0RpY3Rpb25hcnlHZXRUeXBlSUQoKTsKLQot
V0tfRVhQT1JUIFdLVHlwZVJlZiBXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KFdLRGljdGlvbmFy
eVJlZiBkaWN0aW9uYXJ5LCBXS1N0cmluZ1JlZiBrZXkpOwotV0tfRVhQT1JUIHNpemVfdCBXS0Rp
Y3Rpb25hcnlHZXRTaXplKFdLRGljdGlvbmFyeVJlZiBkaWN0aW9uYXJ5KTsKLQotV0tfRVhQT1JU
IFdLQXJyYXlSZWYgV0tEaWN0aW9uYXJ5Q29weUtleXMoV0tEaWN0aW9uYXJ5UmVmIGRpY3Rpb25h
cnkpOwotCi0jaWZkZWYgX19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYgLyogV0tEaWN0
aW9uYXJ5X2ggKi8KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLRXJyb3IuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLRXJyb3IuY3BwCShyZXZpc2lv
biA2ODMyMSkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLRXJyb3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiV0tFcnJvci5o
IgotCi0jaW5jbHVkZSAiV2ViRXJyb3IuaCIKLSNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLQotdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKLQotV0tUeXBlSUQgV0tFcnJvckdldFR5cGVJRCgpCi17Ci0g
ICAgcmV0dXJuIHRvUmVmKFdlYkVycm9yOjpBUElUeXBlKTsKLX0KSW5kZXg6IFdlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLRXJyb3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS0Vycm9yLmgJKHJldmlzaW9uIDY4MzIxKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tFcnJvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaWZuZGVmIFdLRXJyb3JfaAotI2RlZmluZSBXS0Vycm9yX2gKLQotI2luY2x1ZGUgPFdlYktp
dDIvV0tCYXNlLmg+Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYK
LQotV0tfRVhQT1JUIFdLVHlwZUlEIFdLRXJyb3JHZXRUeXBlSUQoKTsKLQotI2lmZGVmIF9fY3Bs
dXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8vIFdLRXJyb3JfaApJbmRleDogV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tNdXRhYmxlQXJyYXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLTXV0YWJsZUFycmF5LmNwcAkocmV2aXNpb24gNjgzMjEpCisrKyBX
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS011dGFibGVBcnJheS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJXS011dGFibGVBcnJheS5o
IgotCi0jaW5jbHVkZSAiTXV0YWJsZUFycmF5LmgiCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0K
LXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLVdLTXV0YWJsZUFycmF5UmVmIFdLTXV0YWJsZUFy
cmF5Q3JlYXRlKCkKLXsKLSAgICBSZWZQdHI8TXV0YWJsZUFycmF5PiBhcnJheSA9IE11dGFibGVB
cnJheTo6Y3JlYXRlKCk7Ci0gICAgcmV0dXJuIHRvUmVmKGFycmF5LnJlbGVhc2UoKS5yZWxlYXNl
UmVmKCkpOwotfQotCi1ib29sIFdLQXJyYXlJc011dGFibGUoV0tBcnJheVJlZiBhcnJheVJlZikK
LXsKLSAgICByZXR1cm4gdG9XSyhhcnJheVJlZiktPmlzTXV0YWJsZSgpOwotfQotCi12b2lkIFdL
QXJyYXlBcHBlbmRJdGVtKFdLTXV0YWJsZUFycmF5UmVmIGFycmF5UmVmLCBXS1R5cGVSZWYgaXRl
bVJlZikKLXsKLSAgICB0b1dLKGFycmF5UmVmKS0+YXBwZW5kKHRvV0soaXRlbVJlZikpOwotfQpJ
bmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tNdXRhYmxlQXJyYXkuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS011dGFibGVBcnJheS5oCShyZXZpc2lvbiA2
ODMyMSkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTXV0YWJsZUFycmF5LmgJKHdvcmtp
bmcgY29weSkKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV0tNdXRhYmxl
QXJyYXlfaAotI2RlZmluZSBXS011dGFibGVBcnJheV9oCi0KLSNpbmNsdWRlIDxXZWJLaXQyL1dL
QmFzZS5oPgotCi0jaWZuZGVmIF9fY3BsdXNwbHVzCi0jaW5jbHVkZSA8c3RkYm9vbC5oPgotI2Vu
ZGlmCi0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotV0tfRVhQ
T1JUIFdLTXV0YWJsZUFycmF5UmVmIFdLTXV0YWJsZUFycmF5Q3JlYXRlKCk7Ci0KLVdLX0VYUE9S
VCBib29sIFdLQXJyYXlJc011dGFibGUoV0tBcnJheVJlZiBhcnJheSk7Ci0KLVdLX0VYUE9SVCB2
b2lkIFdLQXJyYXlBcHBlbmRJdGVtKFdLTXV0YWJsZUFycmF5UmVmIGFycmF5LCBXS1R5cGVSZWYg
aXRlbSk7Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLSNlbmRpZiAvKiBXS011
dGFibGVBcnJheV9oICovCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS011dGFibGVE
aWN0aW9uYXJ5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS011
dGFibGVEaWN0aW9uYXJ5LmNwcAkocmV2aXNpb24gNjgzMjEpCisrKyBXZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS011dGFibGVEaWN0aW9uYXJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1MiAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgIldLTXV0YWJsZURpY3Rpb25hcnkuaCIKLQot
I2luY2x1ZGUgIk11dGFibGVEaWN0aW9uYXJ5LmgiCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0K
LXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLVdLTXV0YWJsZURpY3Rpb25hcnlSZWYgV0tNdXRh
YmxlRGljdGlvbmFyeUNyZWF0ZSgpCi17Ci0gICAgUmVmUHRyPE11dGFibGVEaWN0aW9uYXJ5PiBk
aWN0aW9uYXJ5ID0gTXV0YWJsZURpY3Rpb25hcnk6OmNyZWF0ZSgpOwotICAgIHJldHVybiB0b1Jl
ZihkaWN0aW9uYXJ5LnJlbGVhc2UoKS5yZWxlYXNlUmVmKCkpOwotfQotCi1ib29sIFdLRGljdGlv
bmFyeUlzTXV0YWJsZShXS0RpY3Rpb25hcnlSZWYgZGljdGlvbmFyeVJlZikKLXsKLSAgICByZXR1
cm4gdG9XSyhkaWN0aW9uYXJ5UmVmKS0+aXNNdXRhYmxlKCk7Ci19Ci0KLWJvb2wgV0tEaWN0aW9u
YXJ5QWRkSXRlbShXS011dGFibGVEaWN0aW9uYXJ5UmVmIGRpY3Rpb25hcnlSZWYsIFdLU3RyaW5n
UmVmIGtleVJlZiwgV0tUeXBlUmVmIGl0ZW1SZWYpCi17Ci0gICAgcmV0dXJuIHRvV0soZGljdGlv
bmFyeVJlZiktPmFkZCh0b1dLKGtleVJlZiktPnN0cmluZygpLCB0b1dLKGl0ZW1SZWYpKTsKLX0K
LQotYm9vbCBXS0RpY3Rpb25hcnlTZXRJdGVtKFdLTXV0YWJsZURpY3Rpb25hcnlSZWYgZGljdGlv
bmFyeVJlZiwgV0tTdHJpbmdSZWYga2V5UmVmLCBXS1R5cGVSZWYgaXRlbVJlZikKLXsKLSAgICBy
ZXR1cm4gdG9XSyhkaWN0aW9uYXJ5UmVmKS0+c2V0KHRvV0soa2V5UmVmKS0+c3RyaW5nKCksIHRv
V0soaXRlbVJlZikpOwotfQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tNdXRhYmxl
RGljdGlvbmFyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTXV0
YWJsZURpY3Rpb25hcnkuaAkocmV2aXNpb24gNjgzMjEpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS011dGFibGVEaWN0aW9uYXJ5LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNTAgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpZm5kZWYgV0tNdXRhYmxlRGljdGlvbmFyeV9oCi0jZGVmaW5lIFdL
TXV0YWJsZURpY3Rpb25hcnlfaAotCi0jaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KLQotI2lm
bmRlZiBfX2NwbHVzcGx1cwotI2luY2x1ZGUgPHN0ZGJvb2wuaD4KLSNlbmRpZgotCi0jaWZkZWYg
X19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0KLVdLX0VYUE9SVCBXS011dGFibGVE
aWN0aW9uYXJ5UmVmIFdLTXV0YWJsZURpY3Rpb25hcnlDcmVhdGUoKTsKLQotV0tfRVhQT1JUIGJv
b2wgV0tEaWN0aW9uYXJ5SXNNdXRhYmxlKFdLRGljdGlvbmFyeVJlZiBkaWN0aW9uYXJ5KTsKLQot
V0tfRVhQT1JUIGJvb2wgV0tEaWN0aW9uYXJ5QWRkSXRlbShXS011dGFibGVEaWN0aW9uYXJ5UmVm
IGRpY3Rpb25hcnksIFdLU3RyaW5nUmVmIGtleSwgV0tUeXBlUmVmIGl0ZW0pOwotV0tfRVhQT1JU
IGJvb2wgV0tEaWN0aW9uYXJ5U2V0SXRlbShXS011dGFibGVEaWN0aW9uYXJ5UmVmIGRpY3Rpb25h
cnksIFdLU3RyaW5nUmVmIGtleSwgV0tUeXBlUmVmIGl0ZW0pOwotCi0jaWZkZWYgX19jcGx1c3Bs
dXMKLX0KLSNlbmRpZgotCi0jZW5kaWYgLyogV0tNdXRhYmxlRGljdGlvbmFyeV9oICovCkluZGV4
OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS051bWJlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOdW1iZXIuY3BwCShyZXZpc2lvbiA2ODMyMSkKKysrIFdl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTnVtYmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw3
OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgIldLTnVtYmVyLmgiCi0KLSNpbmNsdWRl
ICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJXZWJOdW1iZXIuaCIKLQotdXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKLQotV0tUeXBlSUQgV0tCb29sZWFuR2V0VHlwZUlEKCkKLXsKLSAgICByZXR1cm4g
dG9SZWYoV2ViQm9vbGVhbjo6QVBJVHlwZSk7Ci19Ci0KLVdLQm9vbGVhblJlZiBXS0Jvb2xlYW5D
cmVhdGUoYm9vbCB2YWx1ZSkKLXsKLSAgICBSZWZQdHI8V2ViQm9vbGVhbj4gYm9vbGVhbk9iamVj
dCA9IFdlYkJvb2xlYW46OmNyZWF0ZSh2YWx1ZSk7Ci0gICAgcmV0dXJuIHRvUmVmKGJvb2xlYW5P
YmplY3QucmVsZWFzZSgpLnJlbGVhc2VSZWYoKSk7Ci19Ci0KLWJvb2wgV0tCb29sZWFuR2V0VmFs
dWUoV0tCb29sZWFuUmVmIGJvb2xlYW5SZWYpCi17Ci0gICAgcmV0dXJuIHRvV0soYm9vbGVhblJl
ZiktPnZhbHVlKCk7Ci19Ci0KLVdLVHlwZUlEIFdLRG91YmxlR2V0VHlwZUlEKCkKLXsKLSAgICBy
ZXR1cm4gdG9SZWYoV2ViRG91YmxlOjpBUElUeXBlKTsKLX0KLQotV0tEb3VibGVSZWYgV0tEb3Vi
bGVDcmVhdGUoZG91YmxlIHZhbHVlKQotewotICAgIFJlZlB0cjxXZWJEb3VibGU+IGRvdWJsZU9i
amVjdCA9IFdlYkRvdWJsZTo6Y3JlYXRlKHZhbHVlKTsKLSAgICByZXR1cm4gdG9SZWYoZG91Ymxl
T2JqZWN0LnJlbGVhc2UoKS5yZWxlYXNlUmVmKCkpOwotfQotCi1kb3VibGUgV0tEb3VibGVHZXRW
YWx1ZShXS0RvdWJsZVJlZiBkb3VibGVSZWYpCi17Ci0gICAgcmV0dXJuIHRvV0soZG91YmxlUmVm
KS0+dmFsdWUoKTsKLX0KLQotV0tUeXBlSUQgV0tVSW50NjRHZXRUeXBlSUQoKQotewotICAgIHJl
dHVybiB0b1JlZihXZWJVSW50NjQ6OkFQSVR5cGUpOwotfQotCi1XS1VJbnQ2NFJlZiBXS1VJbnQ2
NENyZWF0ZSh1aW50NjRfdCB2YWx1ZSkKLXsKLSAgICBSZWZQdHI8V2ViVUludDY0PiB1aW50NjRP
YmplY3QgPSBXZWJVSW50NjQ6OmNyZWF0ZSh2YWx1ZSk7Ci0gICAgcmV0dXJuIHRvUmVmKHVpbnQ2
NE9iamVjdC5yZWxlYXNlKCkucmVsZWFzZVJlZigpKTsKLX0KLQotdWludDY0X3QgV0tVSW50NjRH
ZXRWYWx1ZShXS1VJbnQ2NFJlZiB1aW50NjRSZWYpCi17Ci0gICAgcmV0dXJuIHRvV0sodWludDY0
UmVmKS0+dmFsdWUoKTsKLX0KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTnVtYmVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tOdW1iZXIuaAkocmV2
aXNpb24gNjgzMjEpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS051bWJlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
Ci0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0g
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdLTnVtYmVy
X2gKLSNkZWZpbmUgV0tOdW1iZXJfaAotCi0jaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KLQot
I2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi0vKiBXS0Jvb2xlYW4g
Ki8KLVdLX0VYUE9SVCBXS1R5cGVJRCBXS0Jvb2xlYW5HZXRUeXBlSUQoKTsKLVdLX0VYUE9SVCBX
S0Jvb2xlYW5SZWYgV0tCb29sZWFuQ3JlYXRlKGJvb2wgdmFsdWUpOwotV0tfRVhQT1JUIGJvb2wg
V0tCb29sZWFuR2V0VmFsdWUoV0tCb29sZWFuUmVmIGJvb2xlYW5SZWYpOwotCi0vKiBXS0RvdWJs
ZSAqLwotV0tfRVhQT1JUIFdLVHlwZUlEIFdLRG91YmxlR2V0VHlwZUlEKCk7Ci1XS19FWFBPUlQg
V0tEb3VibGVSZWYgV0tEb3VibGVDcmVhdGUoZG91YmxlIHZhbHVlKTsKLVdLX0VYUE9SVCBkb3Vi
bGUgV0tEb3VibGVHZXRWYWx1ZShXS0RvdWJsZVJlZiBkb3VibGVSZWYpOwotCi0vKiBXS1VJbnQ2
NCAqLwotV0tfRVhQT1JUIFdLVHlwZUlEIFdLVUludDY0R2V0VHlwZUlEKCk7Ci1XS19FWFBPUlQg
V0tVSW50NjRSZWYgV0tVSW50NjRDcmVhdGUodWludDY0X3QgdmFsdWUpOwotV0tfRVhQT1JUIHVp
bnQ2NF90IFdLVUludDY0R2V0VmFsdWUoV0tVSW50NjRSZWYgZG91YmxlUmVmKTsKLQotI2lmZGVm
IF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIFdLTnVtYmVyX2ggKi8KSW5kZXg6
IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5jcHAJKHJldmlzaW9uIDY4MzIxKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tTZXJp
YWxpemVkU2NyaXB0VmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ3ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKLQotI2luY2x1
ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgot
Ci11c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotCi1XS1R5cGVJRCBXS1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUdldFR5cGVJRCgpCi17Ci0gICAgcmV0dXJuIHRvUmVmKFdlYlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTo6QVBJVHlwZSk7Ci19Ci0KLVdLU2VyaWFsaXplZFNjcmlwdFZhbHVlUmVmIFdLU2VyaWFs
aXplZFNjcmlwdFZhbHVlQ3JlYXRlKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1ZhbHVlUmVmIHZh
bHVlLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17Ci0gICAgUmVmUHRyPFdlYlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gc2VyaWFsaXplZFZhbHVlID0gV2ViU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpj
cmVhdGUoY29udGV4dCwgdmFsdWUsIGV4Y2VwdGlvbik7Ci0gICAgcmV0dXJuIHRvUmVmKHNlcmlh
bGl6ZWRWYWx1ZS5yZWxlYXNlKCkubGVha1JlZigpKTsKLX0KLQotSlNWYWx1ZVJlZiBXS1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZURlc2VyaWFsaXplKFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlUmVmIHNj
cmlwdFZhbHVlUmVmLCBKU0NvbnRleHRSZWYgY29udGV4dFJlZiwgSlNWYWx1ZVJlZiogZXhjZXB0
aW9uKQotewotICAgIHJldHVybiB0b1dLKHNjcmlwdFZhbHVlUmVmKS0+ZGVzZXJpYWxpemUoY29u
dGV4dFJlZiwgZXhjZXB0aW9uKTsKLX0KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaAkocmV2aXNpb24gNjgzMjEpCisrKyBXZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDQ1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdLU2VyaWFsaXplZFNj
cmlwdFZhbHVlX2gKLSNkZWZpbmUgV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVfaAotCi0jaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdC5oPgotI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNl
Lmg+Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotV0tfRVhQ
T1JUIFdLVHlwZUlEIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlR2V0VHlwZUlEKCk7Ci0KLVdLX0VY
UE9SVCBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVJlZiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZUNy
ZWF0ZShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZiog
ZXhjZXB0aW9uKTsKLVdLX0VYUE9SVCBKU1ZhbHVlUmVmIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVl
RGVzZXJpYWxpemUoV0tTZXJpYWxpemVkU2NyaXB0VmFsdWVSZWYgc2NyaXB0VmFsdWUsIEpTQ29u
dGV4dFJlZiBjb25zdGV4dCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKLQotI2lmZGVmIF9fY3Bs
dXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlX2gg
Ki8KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLU3RyaW5nLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1N0cmluZy5jcHAJKHJldmlzaW9uIDY4MzIx
KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tTdHJpbmcuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDQwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiV0tTdHJpbmcuaCIKLQot
I2luY2x1ZGUgIldLQVBJQ2FzdC5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotCi1XS1R5
cGVJRCBXS1N0cmluZ0dldFR5cGVJRCgpCi17Ci0gICAgcmV0dXJuIHRvUmVmKFdlYlN0cmluZzo6
QVBJVHlwZSk7Ci19Ci0KLWJvb2wgV0tTdHJpbmdJc0VtcHR5KFdLU3RyaW5nUmVmIHN0cmluZ1Jl
ZikKLXsKLSAgICByZXR1cm4gdG9XSyhzdHJpbmdSZWYpLT5pc0VtcHR5KCk7Ci19CkluZGV4OiBX
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1N0cmluZy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLU3RyaW5nLmgJKHJldmlzaW9uIDY4MzIxKQorKysgV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tTdHJpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMSw0NyArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXS1N0cmluZ19oCi0jZGVmaW5lIFdLU3RyaW5nX2gKLQot
I2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+Ci0KLSNpZm5kZWYgX19jcGx1c3BsdXMKLSNpbmNs
dWRlIDxzdGRib29sLmg+Ci0jZW5kaWYKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMi
IHsKLSNlbmRpZgotCi1XS19FWFBPUlQgV0tUeXBlSUQgV0tTdHJpbmdHZXRUeXBlSUQoKTsKLQot
V0tfRVhQT1JUIGJvb2wgV0tTdHJpbmdJc0VtcHR5KFdLU3RyaW5nUmVmIHN0cmluZyk7Ci0KLSNp
ZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLSNlbmRpZiAvKiBXS1N0cmluZ19oICovCklu
ZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1R5cGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVHlwZS5jcHAJKHJldmlzaW9uIDY4MzIxKQorKysgV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tUeXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw0NyAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgIldLVHlwZS5oIgotCi0jaW5jbHVkZSAiQVBJ
T2JqZWN0LmgiCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7Ci0KLVdLVHlwZUlEIFdLR2V0VHlwZUlEKFdLVHlwZVJlZiB0eXBlUmVmKQotewotICAgIHJl
dHVybiB0b1JlZihzdGF0aWNfY2FzdDxBUElPYmplY3QqPihjb25zdF9jYXN0PHZvaWQqPih0eXBl
UmVmKSktPnR5cGUoKSk7Ci19Ci0KLVdLVHlwZVJlZiBXS1JldGFpbihXS1R5cGVSZWYgdHlwZVJl
ZikKLXsKLSAgICBzdGF0aWNfY2FzdDxBUElPYmplY3QqPihjb25zdF9jYXN0PHZvaWQqPih0eXBl
UmVmKSktPnJlZigpOwotICAgIHJldHVybiB0eXBlUmVmOwotfQotCi12b2lkIFdLUmVsZWFzZShX
S1R5cGVSZWYgdHlwZVJlZikKLXsKLSAgICBzdGF0aWNfY2FzdDxBUElPYmplY3QqPihjb25zdF9j
YXN0PHZvaWQqPih0eXBlUmVmKSktPmRlcmVmKCk7Ci19CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9XS1R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1R5cGUuaAkocmV2aXNpb24gNjgzMjEpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1R5
cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw0NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRl
ZiBXS1R5cGVfaAotI2RlZmluZSBXS1R5cGVfaAotCi0jaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2Uu
aD4KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi1XS19FWFBP
UlQgV0tUeXBlSUQgV0tHZXRUeXBlSUQoV0tUeXBlUmVmIHR5cGUpOwotCi1XS19FWFBPUlQgV0tU
eXBlUmVmIFdLUmV0YWluKFdLVHlwZVJlZiB0eXBlKTsKLVdLX0VYUE9SVCB2b2lkIFdLUmVsZWFz
ZShXS1R5cGVSZWYgdHlwZSk7Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLSNl
bmRpZiAvKiBXS1R5cGVfaCAqLwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVUkwu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVVJMLmNwcAkocmV2
aXNpb24gNjgzMjEpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VSTC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJXS1VSTC5o
IgotCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0K
LVdLVHlwZUlEIFdLVVJMR2V0VHlwZUlEKCkKLXsKLSAgICByZXR1cm4gdG9SZWYoV2ViVVJMOjpB
UElUeXBlKTsKLX0KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVVJMLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVUkwuaAkocmV2aXNpb24gNjgzMjEp
CisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VSTC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdLVVJMX2gKLSNkZWZpbmUgV0tVUkxf
aAotCi0jaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1l
eHRlcm4gIkMiIHsKLSNlbmRpZgotCi1XS19FWFBPUlQgV0tUeXBlSUQgV0tVUkxHZXRUeXBlSUQo
KTsKLQotI2lmZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIFdLVVJMX2gg
Ki8KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVVJMUmVxdWVzdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVUkxSZXF1ZXN0LmNwcAkocmV2aXNp
b24gNjgzMjEpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VSTFJlcXVlc3QuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiV0tV
UkxSZXF1ZXN0LmgiCi0KLSNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJXZWJVUkxS
ZXF1ZXN0LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLVdLVHlwZUlEIFdLVVJMUmVx
dWVzdEdldFR5cGVJRCgpCi17Ci0gICAgcmV0dXJuIHRvUmVmKFdlYlVSTFJlcXVlc3Q6OkFQSVR5
cGUpOwotfQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVUkxSZXF1ZXN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVUkxSZXF1ZXN0LmgJKHJldmlz
aW9uIDY4MzIxKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVUkxSZXF1ZXN0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV0tVUkxS
ZXF1ZXN0X2gKLSNkZWZpbmUgV0tVUkxSZXF1ZXN0X2gKLQotI2luY2x1ZGUgPFdlYktpdDIvV0tC
YXNlLmg+Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotV0tf
RVhQT1JUIFdLVHlwZUlEIFdLVVJMUmVxdWVzdEdldFR5cGVJRCgpOwotCi0jaWZkZWYgX19jcGx1
c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYgLyogV0tVUkxSZXF1ZXN0X2ggKi8KSW5kZXg6IFdl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVVJMUmVzcG9uc2UuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVVJMUmVzcG9uc2UuY3BwCShyZXZpc2lvbiA2ODMyMSkK
KysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVVJMUmVzcG9uc2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiV0tVUkxSZXNwb25z
ZS5oIgotCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV2ViVVJMUmVzcG9uc2Uu
aCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQotV0tUeXBlSUQgV0tVUkxSZXNwb25zZUdl
dFR5cGVJRCgpCi17Ci0gICAgcmV0dXJuIHRvUmVmKFdlYlVSTFJlc3BvbnNlOjpBUElUeXBlKTsK
LX0KLQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tVUkxSZXNwb25zZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLVVJMUmVzcG9uc2UuaAkocmV2aXNp
b24gNjgzMjEpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1VSTFJlc3BvbnNlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
LSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgot
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV0tVUkxS
ZXNwb25zZV9oCi0jZGVmaW5lIFdLVVJMUmVzcG9uc2VfaAotCi0jaW5jbHVkZSA8V2ViS2l0Mi9X
S0Jhc2UuaD4KLQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi1X
S19FWFBPUlQgV0tUeXBlSUQgV0tVUkxSZXNwb25zZUdldFR5cGVJRCgpOwotCi0jaWZkZWYgX19j
cGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYgLyogV0tVUkxSZXNwb25zZV9oICovCkluZGV4
OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9jZi9XS1N0cmluZ0NGLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9jZi9XS1N0cmluZ0NGLmNwcAkocmV2aXNpb24gNjgz
MjEpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9jZi9XS1N0cmluZ0NGLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgIldLU3RyaW5n
Q0YuaCIKLQotI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7Ci0KLVdLU3RyaW5nUmVmIFdLU3RyaW5nQ3JlYXRlV2l0aENGU3RyaW5nKENGU3RyaW5nUmVm
IGNmU3RyaW5nKQotewotICAgIFN0cmluZyBzdHJpbmcoY2ZTdHJpbmcpOwotICAgIHJldHVybiB0
b0NvcGllZFJlZihzdHJpbmcpOwotfQotCi1DRlN0cmluZ1JlZiBXS1N0cmluZ0NvcHlDRlN0cmlu
ZyhDRkFsbG9jYXRvclJlZiBhbGxvY2F0b3JSZWYsIFdLU3RyaW5nUmVmIHN0cmluZ1JlZikKLXsK
LSAgICBBU1NFUlQoIXRvV0soc3RyaW5nUmVmKS0+c3RyaW5nKCkuaXNOdWxsKCkpOwotCi0gICAg
Ly8gTk9URTogVGhpcyBkb2VzIG5vdCB1c2UgU3RyaW5nSW1wbDo6Y3JlYXRlQ0ZTdHJpbmcoKSBz
aW5jZSB0aGF0IGZ1bmN0aW9uCi0gICAgLy8gZXhwZWN0cyB0byBiZSBjYWxsZWQgb24gdGhlIHRo
cmVhZCBydW5uaW5nIFdlYkNvcmUuCi0gICAgcmV0dXJuIENGU3RyaW5nQ3JlYXRlV2l0aENoYXJh
Y3RlcnMoYWxsb2NhdG9yUmVmLCByZWludGVycHJldF9jYXN0PGNvbnN0IFVuaUNoYXIqPih0b1dL
KHN0cmluZ1JlZiktPnN0cmluZygpLmNoYXJhY3RlcnMoKSksIHRvV0soc3RyaW5nUmVmKS0+c3Ry
aW5nKCkubGVuZ3RoKCkpOwotfQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvY2YvV0tT
dHJpbmdDRi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2NmL1dLU3Ry
aW5nQ0YuaAkocmV2aXNpb24gNjgzMjEpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9jZi9X
S1N0cmluZ0NGLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNDMgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgV0tTdHJpbmdDRl9oCi0jZGVmaW5lIFdLU3RyaW5nQ0ZfaAotCi0jaW5jbHVkZSA8
Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KLSNpbmNsdWRlIDxXZWJLaXQyL1dLQmFz
ZS5oPgotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0KLVdLX0VY
UE9SVCBXS1N0cmluZ1JlZiBXS1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZyhDRlN0cmluZ1JlZiBz
dHJpbmcpOwotV0tfRVhQT1JUIENGU3RyaW5nUmVmIFdLU3RyaW5nQ29weUNGU3RyaW5nKENGQWxs
b2NhdG9yUmVmIGFsbG9jLCBXS1N0cmluZ1JlZiBzdHJpbmcpOwotCi0jaWZkZWYgX19jcGx1c3Bs
dXMKLX0KLSNlbmRpZgotCi0jZW5kaWYgLyogV0tTdHJpbmdDRl9oICovCkluZGV4OiBXZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9jZi9XS1VSTENGLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9jZi9XS1VSTENGLmNwcAkocmV2aXNpb24gNjgzMjEpCisrKyBXZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9jZi9XS1VSTENGLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2MCAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgIldLVVJMQ0YuaCIKLQotI2luY2x1ZGUgIldL
QVBJQ2FzdC5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLXVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQotV0tVUkxSZWYgV0tVUkxD
cmVhdGVXaXRoQ0ZVUkwoQ0ZVUkxSZWYgY2ZVUkwpCi17Ci0gICAgU3RyaW5nIHVybFN0cmluZyhD
RlVSTEdldFN0cmluZyhjZlVSTCkpOwotICAgIHJldHVybiB0b0NvcGllZFVSTFJlZih1cmxTdHJp
bmcpOwotfQotCi1DRlVSTFJlZiBXS1VSTENvcHlDRlVSTChDRkFsbG9jYXRvclJlZiBhbGxvY2F0
b3JSZWYsIFdLVVJMUmVmIFVSTFJlZikKLXsKLSAgICBBU1NFUlQoIXRvV0soVVJMUmVmKS0+c3Ry
aW5nKCkuaXNOdWxsKCkpOwotCi0gICAgLy8gV2UgZmlyc3QgY3JlYXRlIGEgQ1N0cmluZyBhbmQg
dGhlbiBjcmVhdGUgdGhlIENGVVJMIGZyb20gaXQuIFRoaXMgd2lsbCBlbnN1cmUgdGhhdCB0aGUg
Q0ZVUkwgaXMgc3RvcmVkIGluIAotICAgIC8vIFVURi04IHdoaWNoIHVzZXMgbGVzcyBtZW1vcnkg
YW5kIGlzIHdoYXQgV2ViS2l0IGNsaWVudHMgbWlnaHQgZXhwZWN0LgotCi0gICAgLy8gVGhpcyBw
YXR0ZXJuIG9mIHVzaW5nIFVURi04IGFuZCB0aGVuIGZhbGxpbmcgYmFjayB0byBMYXRpbjEgb24g
ZmFpbHVyZSBtYXRjaGVzIEtVUkw6OmNyZWF0ZUNGU3RyaW5nIHdpdGggdGhlCi0gICAgLy8gbWFq
b3IgZGlmZmVybmNlIGJlaW5nIHRoYXQgS1VSTCBkb2VzIG5vdCBkbyBhIFVURi04IGNvbnZlcnNp
b24gYW5kIGluc3RlYWQgY2hvcHMgb2ZmIHRoZSBoaWdoIGJpdHMgb2YgdGhlIFVURi0xNgotICAg
IC8vIGNoYXJhY3RlciBzZXF1ZW5jZS4KLQotICAgIENTdHJpbmcgYnVmZmVyID0gdG9XSyhVUkxS
ZWYpLT5zdHJpbmcoKS51dGY4KCk7Ci0gICAgQ0ZVUkxSZWYgcmVzdWx0ID0gQ0ZVUkxDcmVhdGVB
YnNvbHV0ZVVSTFdpdGhCeXRlcyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCByZWludGVycHJldF9jYXN0
PGNvbnN0IFVJbnQ4Kj4oYnVmZmVyLmRhdGEoKSksIGJ1ZmZlci5sZW5ndGgoKSwga0NGU3RyaW5n
RW5jb2RpbmdVVEY4LCAwLCB0cnVlKTsKLSAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgcmVzdWx0
ID0gQ0ZVUkxDcmVhdGVBYnNvbHV0ZVVSTFdpdGhCeXRlcyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBy
ZWludGVycHJldF9jYXN0PGNvbnN0IFVJbnQ4Kj4oYnVmZmVyLmRhdGEoKSksIGJ1ZmZlci5sZW5n
dGgoKSwga0NGU3RyaW5nRW5jb2RpbmdJU09MYXRpbjEsIDAsIHRydWUpOwotICAgIHJldHVybiBy
ZXN1bHQ7Ci19CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9jZi9XS1VSTENGLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvY2YvV0tVUkxDRi5oCShyZXZpc2lv
biA2ODMyMSkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2NmL1dLVVJMQ0YuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXS1VSTENGX2gK
LSNkZWZpbmUgV0tVUkxDRl9oCi0KLSNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRh
dGlvbi5oPgotI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+Ci0KLSNpZmRlZiBfX2NwbHVzcGx1
cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotV0tfRVhQT1JUIFdLVVJMUmVmIFdLVVJMQ3JlYXRl
V2l0aENGVVJMKENGVVJMUmVmIFVSTCk7Ci1XS19FWFBPUlQgQ0ZVUkxSZWYgV0tVUkxDb3B5Q0ZV
UkwoQ0ZBbGxvY2F0b3JSZWYgYWxsb2MsIFdLVVJMUmVmIHN0cmluZyk7Ci0KLSNpZmRlZiBfX2Nw
bHVzcGx1cwotfQotI2VuZGlmCi0KLSNlbmRpZiAvKiBXS1VSTENGX2ggKi8KSW5kZXg6IFdlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL2NmL1dLVVJMUmVxdWVzdENGLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9jZi9XS1VSTFJlcXVlc3RDRi5jcHAJKHJldmlzaW9uIDY4
MzIxKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvY2YvV0tVUkxSZXF1ZXN0Q0YuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiV0tV
UkxSZXF1ZXN0Q0YuaCIKLQotI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldlYlVS
TFJlcXVlc3QuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQotV0tVUkxSZXF1ZXN0UmVm
IFdLVVJMUmVxdWVzdENyZWF0ZVdpdGhDRlVSTFJlcXVlc3QoQ0ZVUkxSZXF1ZXN0UmVmIHVybFJl
cXVlc3QpCi17Ci0gICAgQ0ZVUkxSZXF1ZXN0UmVmIGNvcGllZFVSTFJlcXVlc3QgPSBDRlVSTFJl
cXVlc3RDcmVhdGVDb3B5KGtDRkFsbG9jYXRvckRlZmF1bHQsIHVybFJlcXVlc3QpOwotICAgIFJl
ZlB0cjxXZWJVUkxSZXF1ZXN0PiByZXF1ZXN0ID0gV2ViVVJMUmVxdWVzdDo6Y3JlYXRlKGNvcGll
ZFVSTFJlcXVlc3QpOwotICAgIHJldHVybiB0b1JlZihyZXF1ZXN0LnJlbGVhc2UoKS5yZWxlYXNl
UmVmKCkpOwotfQotCi1DRlVSTFJlcXVlc3RSZWYgV0tVUkxSZXF1ZXN0Q29weUNGVVJMUmVxdWVz
dChDRkFsbG9jYXRvclJlZiBhbGxvYywgV0tVUkxSZXF1ZXN0UmVmIHVybFJlcXVlc3QpCi17Ci0g
ICAgcmV0dXJuIENGVVJMUmVxdWVzdENyZWF0ZUNvcHkoYWxsb2MsIHRvV0sodXJsUmVxdWVzdCkt
PnBsYXRmb3JtUmVxdWVzdCgpKTsKLX0KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2Nm
L1dLVVJMUmVxdWVzdENGLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
Y2YvV0tVUkxSZXF1ZXN0Q0YuaAkocmV2aXNpb24gNjgzMjEpCisrKyBXZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy9jZi9XS1VSTFJlcXVlc3RDRi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQzICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdLVVJMUmVxdWVzdENGX2gKLSNkZWZpbmUgV0tVUkxS
ZXF1ZXN0Q0ZfaAotCi0jaW5jbHVkZSA8Q0ZOZXR3b3JrL0NGVVJMUmVxdWVzdFByaXYuaD4KLSNp
bmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAi
QyIgewotI2VuZGlmCi0KLVdLX0VYUE9SVCBXS1VSTFJlcXVlc3RSZWYgV0tVUkxSZXF1ZXN0Q3Jl
YXRlV2l0aENGVVJMUmVxdWVzdChDRlVSTFJlcXVlc3RSZWYgdXJsUmVxdWVzdCk7Ci1XS19FWFBP
UlQgQ0ZVUkxSZXF1ZXN0UmVmIFdLVVJMUmVxdWVzdENvcHlDRlVSTFJlcXVlc3QoQ0ZBbGxvY2F0
b3JSZWYgYWxsb2MsIFdLVVJMUmVxdWVzdFJlZiB1cmxSZXF1ZXN0KTsKLQotI2lmZGVmIF9fY3Bs
dXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIFdLVVJMUmVxdWVzdENGX2ggKi8KSW5kZXg6
IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2NmL1dLVVJMUmVzcG9uc2VDRi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvY2YvV0tVUkxSZXNwb25zZUNGLmNwcAkocmV2
aXNpb24gNjgzMjEpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9jZi9XS1VSTFJlc3BvbnNl
Q0YuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5j
bHVkZSAiV0tVUkxSZXNwb25zZUNGLmgiCi0KLSNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNs
dWRlICJXZWJVUkxSZXNwb25zZS5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotCi1XS1VS
TFJlc3BvbnNlUmVmIFdLVVJMUmVzcG9uc2VDcmVhdGVXaXRoQ0ZVUkxSZXNwb25zZShDRlVSTFJl
c3BvbnNlUmVmIHVybFJlc3BvbnNlKQotewotICAgIENGVVJMUmVzcG9uc2VSZWYgY29waWVkVVJM
UmVzcG9uc2UgPSBDRlVSTFJlc3BvbnNlQ3JlYXRlQ29weShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCB1
cmxSZXNwb25zZSk7Ci0gICAgUmVmUHRyPFdlYlVSTFJlc3BvbnNlPiByZXNwb25zZSA9IFdlYlVS
TFJlc3BvbnNlOjpjcmVhdGUoY29waWVkVVJMUmVzcG9uc2UpOwotICAgIHJldHVybiB0b1JlZihy
ZXNwb25zZS5yZWxlYXNlKCkucmVsZWFzZVJlZigpKTsKLX0KLQotQ0ZVUkxSZXNwb25zZVJlZiBX
S1VSTFJlc3BvbnNlQ29weUNGVVJMUmVzcG9uc2UoQ0ZBbGxvY2F0b3JSZWYgYWxsb2MsIFdLVVJM
UmVzcG9uc2VSZWYgdXJsUmVzcG9uc2UpCi17Ci0gICAgcmV0dXJuIENGVVJMUmVzcG9uc2VDcmVh
dGVDb3B5KGFsbG9jLCB0b1dLKHVybFJlc3BvbnNlKS0+cGxhdGZvcm1SZXNwb25zZSgpKTsKLX0K
SW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2NmL1dLVVJMUmVzcG9uc2VDRi5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2NmL1dLVVJMUmVzcG9uc2VDRi5oCShy
ZXZpc2lvbiA2ODMyMSkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL2NmL1dLVVJMUmVzcG9u
c2VDRi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIFdLVVJMUmVzcG9uc2VDRl9oCi0jZGVmaW5lIFdLVVJMUmVzcG9uc2VDRl9oCi0KLSNpbmNs
dWRlIDxDRk5ldHdvcmsvQ0ZVUkxSZXNwb25zZVByaXYuaD4KLSNpbmNsdWRlIDxXZWJLaXQyL1dL
QmFzZS5oPgotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2VuZGlmCi0KLVdL
X0VYUE9SVCBXS1VSTFJlc3BvbnNlUmVmIFdLVVJMUmVzcG9uc2VDcmVhdGVXaXRoQ0ZVUkxSZXNw
b25zZShDRlVSTFJlc3BvbnNlUmVmIHVybFJlc3BvbnNlKTsKLVdLX0VYUE9SVCBDRlVSTFJlc3Bv
bnNlUmVmIFdLVVJMUmVzcG9uc2VDb3B5Q0ZVUkxSZXNwb25zZShDRkFsbG9jYXRvclJlZiBhbGxv
YywgV0tVUkxSZXNwb25zZVJlZiB1cmxSZXNwb25zZSk7Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwot
fQotI2VuZGlmCi0KLSNlbmRpZiAvKiBXS1VSTFJlc3BvbnNlQ0ZfaCAqLwpJbmRleDogV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ2VydGlmaWNhdGVJbmZvTWFjLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ2VydGlmaWNhdGVJbmZvTWFjLmgJKHJl
dmlzaW9uIDY4MzIxKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ2VydGlmaWNh
dGVJbmZvTWFjLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNDIgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgV0tDZXJ0aWZpY2F0ZUluZm9NYWNfaAotI2RlZmluZSBXS0NlcnRpZmljYXRlSW5m
b01hY19oCi0KLSNpbmNsdWRlIDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KLSNpbmNsdWRlIDxX
ZWJLaXQyL1dLQmFzZS5oPgotCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgewotI2Vu
ZGlmCi0KLVdLX0VYUE9SVCBDRkFycmF5UmVmIFdLQ2VydGlmaWNhdGVJbmZvR2V0UGVlckNlcnRp
ZmljYXRlcyhXS0NlcnRpZmljYXRlSW5mb1JlZiBjZXJ0aWZpY2F0ZUluZm8pOwotCi0jaWZkZWYg
X19jcGx1c3BsdXMKLX0KLSNlbmRpZgotCi0jZW5kaWYgLyogV0tDZXJ0aWZpY2F0ZUluZm9NYWNf
aCAqLwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLQ2VydGlmaWNhdGVJbmZv
TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS0NlcnRp
ZmljYXRlSW5mb01hYy5tbQkocmV2aXNpb24gNjgzMjEpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9tYWMvV0tDZXJ0aWZpY2F0ZUluZm9NYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsMzYg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJXS0NlcnRpZmljYXRlSW5mb01hYy5oIgot
Ci0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV2ViQ2VydGlmaWNhdGVJbmZvLmgi
Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLUNGQXJyYXlSZWYgV0tDZXJ0aWZpY2F0ZUlu
Zm9HZXRQZWVyQ2VydGlmaWNhdGVzKFdLQ2VydGlmaWNhdGVJbmZvUmVmIGNlcnRpZmljYXRlSW5m
b1JlZikKLXsKLSAgICByZXR1cm4gdG9XSyhjZXJ0aWZpY2F0ZUluZm9SZWYpLT5wbGF0Zm9ybUNl
cnRpZmljYXRlSW5mbygpLnBlZXJDZXJ0aWZpY2F0ZXMoKTsKLX0KSW5kZXg6IFdlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL21hYy9XS1VSTFJlcXVlc3ROUy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL21hYy9XS1VSTFJlcXVlc3ROUy5oCShyZXZpc2lvbiA2ODMyMSkKKysr
IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS1VSTFJlcXVlc3ROUy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdLVVJMUmVxdWVzdE5T
X2gKLSNkZWZpbmUgV0tVUkxSZXF1ZXN0TlNfaAotCi0jaW5jbHVkZSA8Rm91bmRhdGlvbi9Gb3Vu
ZGF0aW9uLmg+Ci0jaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KLQotI2lmZGVmIF9fY3BsdXNw
bHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi1XS19FWFBPUlQgV0tVUkxSZXF1ZXN0UmVmIFdL
VVJMUmVxdWVzdENyZWF0ZVdpdGhOU1VSTFJlcXVlc3QoTlNVUkxSZXF1ZXN0KiB1cmxSZXF1ZXN0
KTsKLVdLX0VYUE9SVCBOU1VSTFJlcXVlc3QqIFdLVVJMUmVxdWVzdENvcHlOU1VSTFJlcXVlc3Qo
Q0ZBbGxvY2F0b3JSZWYgYWxsb2MsIFdLVVJMUmVxdWVzdFJlZiB1cmxSZXF1ZXN0KTsKLQotI2lm
ZGVmIF9fY3BsdXNwbHVzCi19Ci0jZW5kaWYKLQotI2VuZGlmIC8qIFdLVVJMUmVxdWVzdE5TX2gg
Ki8KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS1VSTFJlcXVlc3ROUy5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tVUkxSZXF1ZXN0TlMu
bW0JKHJldmlzaW9uIDY4MzIxKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLVVJM
UmVxdWVzdE5TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiV0tVUkxSZXF1ZXN0TlMuaCIKLQotI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgot
I2luY2x1ZGUgIldlYlVSTFJlcXVlc3QuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQot
V0tVUkxSZXF1ZXN0UmVmIFdLVVJMUmVxdWVzdENyZWF0ZVdpdGhOU1VSTFJlcXVlc3QoTlNVUkxS
ZXF1ZXN0KiB1cmxSZXF1ZXN0KQotewotICAgIFJldGFpblB0cjxOU1VSTFJlcXVlc3Q+IGNvcGll
ZFVSTFJlcXVlc3QoQWRvcHROUywgW3VybFJlcXVlc3QgY29weV0pOwotICAgIFJlZlB0cjxXZWJV
UkxSZXF1ZXN0PiByZXF1ZXN0ID0gV2ViVVJMUmVxdWVzdDo6Y3JlYXRlKGNvcGllZFVSTFJlcXVl
c3QuZ2V0KCkpOwotICAgIHJldHVybiB0b1JlZihyZXF1ZXN0LnJlbGVhc2UoKS5yZWxlYXNlUmVm
KCkpOwotfQotCi1OU1VSTFJlcXVlc3QqIFdLVVJMUmVxdWVzdENvcHlOU1VSTFJlcXVlc3QoQ0ZB
bGxvY2F0b3JSZWYgYWxsb2MsIFdLVVJMUmVxdWVzdFJlZiB1cmxSZXF1ZXN0KQotewotICAgIHJl
dHVybiBbdG9XSyh1cmxSZXF1ZXN0KS0+cGxhdGZvcm1SZXF1ZXN0KCkgY29weV07Ci19CkluZGV4
OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tVUkxSZXNwb25zZU5TLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLVVJMUmVzcG9uc2VOUy5oCShyZXZp
c2lvbiA2ODMyMSkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS1VSTFJlc3BvbnNl
TlMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRl
ZiBXS1VSTFJlc3BvbnNlTlNfaAotI2RlZmluZSBXS1VSTFJlc3BvbnNlTlNfaAotCi0jaW5jbHVk
ZSA8Rm91bmRhdGlvbi9Gb3VuZGF0aW9uLmg+Ci0jaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4K
LQotI2lmZGVmIF9fY3BsdXNwbHVzCi1leHRlcm4gIkMiIHsKLSNlbmRpZgotCi1XS19FWFBPUlQg
V0tVUkxSZXNwb25zZVJlZiBXS1VSTFJlc3BvbnNlQ3JlYXRlV2l0aE5TVVJMUmVzcG9uc2UoTlNV
UkxSZXNwb25zZSogdXJsUmVzcG9uc2UpOwotV0tfRVhQT1JUIE5TVVJMUmVzcG9uc2UqIFdLVVJM
UmVzcG9uc2VDb3B5TlNVUkxSZXNwb25zZShDRkFsbG9jYXRvclJlZiBhbGxvYywgV0tVUkxSZXNw
b25zZVJlZiB1cmxSZXNwb25zZSk7Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0K
LSNlbmRpZiAvKiBXS1VSTFJlc3BvbnNlTlNfaCAqLwpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvbWFjL1dLVVJMUmVzcG9uc2VOUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9tYWMvV0tVUkxSZXNwb25zZU5TLm1tCShyZXZpc2lvbiA2ODMyMSkKKysrIFdl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS1VSTFJlc3BvbnNlTlMubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTEsNDMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJXS1VSTFJlc3BvbnNl
TlMuaCIKLQotI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldlYlVSTFJlc3BvbnNl
LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLVdLVVJMUmVzcG9uc2VSZWYgV0tVUkxS
ZXNwb25zZUNyZWF0ZVdpdGhOU1VSTFJlc3BvbnNlKE5TVVJMUmVzcG9uc2UqIHVybFJlc3BvbnNl
KQotewotICAgIFJldGFpblB0cjxOU1VSTFJlc3BvbnNlPiBjb3BpZWRVUkxSZXNwb25zZShBZG9w
dE5TLCBbdXJsUmVzcG9uc2UgY29weV0pOwotICAgIFJlZlB0cjxXZWJVUkxSZXNwb25zZT4gcmVz
cG9uc2UgPSBXZWJVUkxSZXNwb25zZTo6Y3JlYXRlKGNvcGllZFVSTFJlc3BvbnNlLmdldCgpKTsK
LSAgICByZXR1cm4gdG9SZWYocmVzcG9uc2UucmVsZWFzZSgpLnJlbGVhc2VSZWYoKSk7Ci19Ci0K
LU5TVVJMUmVzcG9uc2UqIFdLVVJMUmVzcG9uc2VDb3B5TlNVUkxSZXNwb25zZShDRkFsbG9jYXRv
clJlZiBhbGxvYywgV0tVUkxSZXNwb25zZVJlZiB1cmxSZXNwb25zZSkKLXsKLSAgICByZXR1cm4g
W3RvV0sodXJsUmVzcG9uc2UpLT5wbGF0Zm9ybVJlc3BvbnNlKCkgY29weV07Ci19CkluZGV4OiBX
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93aW4vV0tBUElDYXN0V2luLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd2luL1dLQVBJQ2FzdFdpbi5oCShyZXZpc2lvbiA2ODMy
MSkJKGZyb20gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dpbi9XS0FQSUNhc3RXaW4uaDo2ODMyMSkK
KysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dpbi9XS0FQSUNhc3RXaW4uaAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXS0FQSUNhc3RXaW5f
aAorI2RlZmluZSBXS0FQSUNhc3RXaW5faAorCisjaWZuZGVmIFdLQVBJQ2FzdF9oCisjZXJyb3Ig
IlBsZWFzZSAjaW5jbHVkZSBcIldLQVBJQ2FzdC5oXCIgaW5zdGVhZCBvZiB0aGlzIGZpbGUgZGly
ZWN0bHkuIgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJLaXQgeworICAgIGNsYXNzIFdlYlZpZXc7
Cit9CisKK2lubGluZSBXZWJLaXQ6OldlYlZpZXcqIHRvV0soV0tWaWV3UmVmIHYpCit7CisgICAg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViS2l0OjpXZWJWaWV3Kj4oY29uc3RfY2FzdDxPcGFx
dWVXS1ZpZXcqPih2KSk7Cit9CisKK2lubGluZSBXS1ZpZXdSZWYgdG9SZWYoV2ViS2l0OjpXZWJW
aWV3KiB2KQoreworICAgIHJldHVybiByZWludGVycHJldF9jYXN0PFdLVmlld1JlZj4odik7Cit9
CisKKyNlbmRpZiAvLyBXS0FQSUNhc3RXaW5faApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0Mvd2luL1dLQVBJQ2FzdFdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL3dpbi9XS0FQSUNhc3RXaW4uaAkocmV2aXNpb24gNjgzMjEpCisrKyBXZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy93aW4vV0tBUElDYXN0V2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDE3ICsz
MSwxMSBAQAogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewotICAgIGNsYXNzIFdlYlZpZXc7
Ci19CiAKLWlubGluZSBXZWJLaXQ6OldlYlZpZXcqIHRvV0soV0tWaWV3UmVmIHYpCi17Ci0gICAg
cmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViS2l0OjpXZWJWaWV3Kj4oY29uc3RfY2FzdDxPcGFx
dWVXS1ZpZXcqPih2KSk7Ci19CitjbGFzcyBXZWJWaWV3OworCitXS19BRERfQVBJX01BUFBJTkco
V0tWaWV3UmVmLCBXZWJWaWV3KQogCi1pbmxpbmUgV0tWaWV3UmVmIHRvUmVmKFdlYktpdDo6V2Vi
VmlldyogdikKLXsKLSAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXS1ZpZXdSZWY+KHYpOwog
fQogCiAjZW5kaWYgLy8gV0tBUElDYXN0V2luX2gKSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL3dpbi9XS0Jhc2VXaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy93aW4vV0tCYXNlV2luLmgJKHJldmlzaW9uIDY4MzIxKQkoZnJvbSBXZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvd2luL1dLQmFzZVdpbi5oOjY4MzIxKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
d2luL1dLQmFzZVdpbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFdLQmFzZVdpbl9oCisjZGVmaW5lIFdLQmFzZVdpbl9oCisKKyNpZm5kZWYg
V0tCYXNlX2gKKyNlcnJvciAiUGxlYXNlICNpbmNsdWRlIFwiV0tCYXNlLmhcIiBpbnN0ZWFkIG9m
IHRoaXMgZmlsZSBkaXJlY3RseS4iCisjZW5kaWYKKwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3Bh
cXVlV0tWaWV3KiBXS1ZpZXdSZWY7CisKKyNlbmRpZiAvKiBXS0Jhc2VXaW5faCAqLwpJbmRleDog
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd2luL1dLQ2VydGlmaWNhdGVJbmZvV2luLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93aW4vV0tDZXJ0aWZpY2F0ZUluZm9X
aW4uY3BwCShyZXZpc2lvbiA2ODMyMSkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dpbi9X
S0NlcnRpZmljYXRlSW5mb1dpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsMzYgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJXS0NlcnRpZmljYXRlSW5mb1dpbi5oIgotCi0jaW5jbHVk
ZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV2ViQ2VydGlmaWNhdGVJbmZvLmgiCi0KLXVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLVBDQ0VSVF9DT05URVhUIFdLQ2VydGlmaWNhdGVJbmZvR2V0
Q2VydGlmaWNhdGVDb250ZXh0KFdLQ2VydGlmaWNhdGVJbmZvUmVmIGNlcnRpZmljYXRlSW5mb1Jl
ZikKLXsKLSAgICByZXR1cm4gdG9XSyhjZXJ0aWZpY2F0ZUluZm9SZWYpLT5wbGF0Zm9ybUNlcnRp
ZmljYXRlSW5mbygpLmNlcnRpZmljYXRlQ29udGV4dCgpOwotfQpJbmRleDogV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0Mvd2luL1dLQ2VydGlmaWNhdGVJbmZvV2luLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd2luL1dLQ2VydGlmaWNhdGVJbmZvV2luLmgJKHJldmlzaW9u
IDY4MzIxKQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd2luL1dLQ2VydGlmaWNhdGVJbmZv
V2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5k
ZWYgV0tDZXJ0aWZpY2F0ZUluZm9XaW5faAotI2RlZmluZSBXS0NlcnRpZmljYXRlSW5mb1dpbl9o
Ci0KLSNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgotI2luY2x1ZGUgPFdpbmNyeXB0Lmg+Ci0K
LSNpZmRlZiBfX2NwbHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotV0tfRVhQT1JUIFBD
Q0VSVF9DT05URVhUIFdLQ2VydGlmaWNhdGVJbmZvR2V0Q2VydGlmaWNhdGVDb250ZXh0KFdLQ2Vy
dGlmaWNhdGVJbmZvUmVmIGNlcnRpZmljYXRlSW5mbyk7Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwot
fQotI2VuZGlmCi0KLSNlbmRpZiAvKiBXS0NlcnRpZmljYXRlSW5mb1dpbl9oICovCkluZGV4OiBX
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93aW4vV0tWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy93aW4vV0tWaWV3LmNwcAkocmV2aXNpb24gNjgzMjEpCShmcm9t
IFdlYktpdDIvVUlQcm9jZXNzL0FQSS93aW4vV0tWaWV3LmNwcDo2ODMyMSkKKysrIFdlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL3dpbi9XS1ZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiV0tWaWV3LmgiCisKKyNpbmNsdWRlICJXS0FQ
SUNhc3QuaCIKKyNpbmNsdWRlICJXZWJWaWV3LmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CisKK1dLVHlwZUlEIFdLVmlld0dldFR5cGVJRCgpCit7CisgICAgcmV0dXJuIHRvUmVmKEFQSU9i
amVjdDo6VHlwZVZpZXcpOworfQorCitXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlKFJFQ1QgcmVjdCwg
V0tQYWdlTmFtZXNwYWNlUmVmIHBhZ2VOYW1lc3BhY2VSZWYsIEhXTkQgaG9zdFdpbmRvdykKK3sK
KyAgICBSZWZQdHI8V2ViVmlldz4gdmlldyA9IFdlYlZpZXc6OmNyZWF0ZShyZWN0LCB0b1dLKHBh
Z2VOYW1lc3BhY2VSZWYpLCBob3N0V2luZG93KTsKKyAgICByZXR1cm4gdG9SZWYodmlldy5yZWxl
YXNlKCkucmVsZWFzZVJlZigpKTsKK30KKworSFdORCBXS1ZpZXdHZXRXaW5kb3coV0tWaWV3UmVm
IHZpZXdSZWYpCit7CisgICAgcmV0dXJuIHRvV0sodmlld1JlZiktPndpbmRvdygpOworfQorCitI
V05EIFdLVmlld0dldEhvc3RXaW5kb3coV0tWaWV3UmVmIHZpZXdSZWYpCit7CisgICAgcmV0dXJu
IHRvV0sodmlld1JlZiktPmhvc3RXaW5kb3coKTsKK30KKworV0tQYWdlUmVmIFdLVmlld0dldFBh
Z2UoV0tWaWV3UmVmIHZpZXdSZWYpCit7CisgICAgcmV0dXJuIHRvUmVmKHRvV0sodmlld1JlZikt
PnBhZ2UoKSk7Cit9CisKK3ZvaWQgV0tWaWV3U2V0SG9zdFdpbmRvdyhXS1ZpZXdSZWYgdmlld1Jl
ZiwgSFdORCBob3N0V2luZG93KQoreworICAgIHRvV0sodmlld1JlZiktPnNldEhvc3RXaW5kb3co
aG9zdFdpbmRvdyk7Cit9CisKK3ZvaWQgV0tWaWV3V2luZG93QW5jZXN0cnlEaWRDaGFuZ2UoV0tW
aWV3UmVmIHZpZXdSZWYpCit7CisgICAgdG9XSyh2aWV3UmVmKS0+d2luZG93QW5jZXN0cnlEaWRD
aGFuZ2UoKTsKK30KSW5kZXg6IFdlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dpbi9XS1ZpZXcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93aW4vV0tWaWV3LmgJKHJldmlz
aW9uIDY4MzIxKQkoZnJvbSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd2luL1dLVmlldy5oOjY4MzIx
KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd2luL1dLVmlldy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLVmlld19oCisjZGVmaW5l
IFdLVmlld19oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorI2luY2x1ZGUgPHdpbmRv
d3MuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19F
WFBPUlQgV0tUeXBlSUQgV0tWaWV3R2V0VHlwZUlEKCk7CisKK1dLX0VYUE9SVCBXS1ZpZXdSZWYg
V0tWaWV3Q3JlYXRlKFJFQ1QgcmVjdCwgV0tQYWdlTmFtZXNwYWNlUmVmIHBhZ2VOYW1lc3BhY2Us
IEhXTkQgaG9zdFdpbmRvdyk7CisKK1dLX0VYUE9SVCBIV05EIFdLVmlld0dldFdpbmRvdyhXS1Zp
ZXdSZWYgdmlldyk7CitXS19FWFBPUlQgSFdORCBXS1ZpZXdHZXRIb3N0V2luZG93KFdLVmlld1Jl
ZiB2aWV3KTsKKworV0tfRVhQT1JUIFdLUGFnZVJlZiBXS1ZpZXdHZXRQYWdlKFdLVmlld1JlZiB2
aWV3KTsKKworV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0SG9zdFdpbmRvdyhXS1ZpZXdSZWYgdmll
dywgSFdORCBob3N0V2luZG93KTsKK1dLX0VYUE9SVCB2b2lkIFdLVmlld1dpbmRvd0FuY2VzdHJ5
RGlkQ2hhbmdlKFdLVmlld1JlZiB2aWV3KTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5k
aWYKKworI2VuZGlmIC8qIFdLVmlld19oICovCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
d2luL1dLQVBJQ2FzdFdpbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL0FQSS93
aW4vV0tBUElDYXN0V2luLmgJKHJldmlzaW9uIDY4MzIxKQorKysgV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3dpbi9XS0FQSUNhc3RXaW4uaAkod29ya2luZyBjb3B5KQpAQCAtMSw0NyArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2lmbmRlZiBXS0FQSUNhc3RXaW5faAotI2RlZmluZSBXS0FQSUNhc3RXaW5f
aAotCi0jaWZuZGVmIFdLQVBJQ2FzdF9oCi0jZXJyb3IgIlBsZWFzZSAjaW5jbHVkZSBcIldLQVBJ
Q2FzdC5oXCIgaW5zdGVhZCBvZiB0aGlzIGZpbGUgZGlyZWN0bHkuIgotI2VuZGlmCi0KLW5hbWVz
cGFjZSBXZWJLaXQgewotICAgIGNsYXNzIFdlYlZpZXc7Ci19Ci0KLWlubGluZSBXZWJLaXQ6Oldl
YlZpZXcqIHRvV0soV0tWaWV3UmVmIHYpCi17Ci0gICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
V2ViS2l0OjpXZWJWaWV3Kj4oY29uc3RfY2FzdDxPcGFxdWVXS1ZpZXcqPih2KSk7Ci19Ci0KLWlu
bGluZSBXS1ZpZXdSZWYgdG9SZWYoV2ViS2l0OjpXZWJWaWV3KiB2KQotewotICAgIHJldHVybiBy
ZWludGVycHJldF9jYXN0PFdLVmlld1JlZj4odik7Ci19Ci0KLSNlbmRpZiAvLyBXS0FQSUNhc3RX
aW5faApJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dpbi9XS0Jhc2VXaW4uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd2luL1dLQmFzZVdpbi5oCShyZXZpc2lvbiA2
ODMyMSkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS93aW4vV0tCYXNlV2luLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgV0tCYXNlV2luX2gK
LSNkZWZpbmUgV0tCYXNlV2luX2gKLQotI2lmbmRlZiBXS0Jhc2VfaAotI2Vycm9yICJQbGVhc2Ug
I2luY2x1ZGUgXCJXS0Jhc2UuaFwiIGluc3RlYWQgb2YgdGhpcyBmaWxlIGRpcmVjdGx5LiIKLSNl
bmRpZgotCi10eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ZpZXcqIFdLVmlld1JlZjsKLQot
I2VuZGlmIC8qIFdLQmFzZVdpbl9oICovCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd2lu
L1dLVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dpbi9XS1Zp
ZXcuY3BwCShyZXZpc2lvbiA2ODMyMSkKKysrIFdlYktpdDIvVUlQcm9jZXNzL0FQSS93aW4vV0tW
aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgIldLVmlldy5oIgotCi0jaW5jbHVkZSAiV0tBUElDYXN0LmgiCi0jaW5jbHVkZSAiV2Vi
Vmlldy5oIgotCi11c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotCi1XS1R5cGVJRCBXS1ZpZXdHZXRU
eXBlSUQoKQotewotICAgIHJldHVybiB0b1JlZihBUElPYmplY3Q6OlR5cGVWaWV3KTsKLX0KLQot
V0tWaWV3UmVmIFdLVmlld0NyZWF0ZShSRUNUIHJlY3QsIFdLUGFnZU5hbWVzcGFjZVJlZiBwYWdl
TmFtZXNwYWNlUmVmLCBIV05EIGhvc3RXaW5kb3cpCi17Ci0gICAgUmVmUHRyPFdlYlZpZXc+IHZp
ZXcgPSBXZWJWaWV3OjpjcmVhdGUocmVjdCwgdG9XSyhwYWdlTmFtZXNwYWNlUmVmKSwgaG9zdFdp
bmRvdyk7Ci0gICAgcmV0dXJuIHRvUmVmKHZpZXcucmVsZWFzZSgpLnJlbGVhc2VSZWYoKSk7Ci19
Ci0KLUhXTkQgV0tWaWV3R2V0V2luZG93KFdLVmlld1JlZiB2aWV3UmVmKQotewotICAgIHJldHVy
biB0b1dLKHZpZXdSZWYpLT53aW5kb3coKTsKLX0KLQotSFdORCBXS1ZpZXdHZXRIb3N0V2luZG93
KFdLVmlld1JlZiB2aWV3UmVmKQotewotICAgIHJldHVybiB0b1dLKHZpZXdSZWYpLT5ob3N0V2lu
ZG93KCk7Ci19Ci0KLVdLUGFnZVJlZiBXS1ZpZXdHZXRQYWdlKFdLVmlld1JlZiB2aWV3UmVmKQot
ewotICAgIHJldHVybiB0b1JlZih0b1dLKHZpZXdSZWYpLT5wYWdlKCkpOwotfQotCi12b2lkIFdL
Vmlld1NldEhvc3RXaW5kb3coV0tWaWV3UmVmIHZpZXdSZWYsIEhXTkQgaG9zdFdpbmRvdykKLXsK
LSAgICB0b1dLKHZpZXdSZWYpLT5zZXRIb3N0V2luZG93KGhvc3RXaW5kb3cpOwotfQotCi12b2lk
IFdLVmlld1dpbmRvd0FuY2VzdHJ5RGlkQ2hhbmdlKFdLVmlld1JlZiB2aWV3UmVmKQotewotICAg
IHRvV0sodmlld1JlZiktPndpbmRvd0FuY2VzdHJ5RGlkQ2hhbmdlKCk7Ci19CkluZGV4OiBXZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd2luL1dLVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQ
cm9jZXNzL0FQSS93aW4vV0tWaWV3LmgJKHJldmlzaW9uIDY4MzIxKQorKysgV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3dpbi9XS1ZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1MiArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2lmbmRlZiBXS1ZpZXdfaAotI2RlZmluZSBXS1ZpZXdfaAotCi0jaW5jbHVk
ZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KLSNpbmNsdWRlIDx3aW5kb3dzLmg+Ci0KLSNpZmRlZiBfX2Nw
bHVzcGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotV0tfRVhQT1JUIFdLVHlwZUlEIFdLVmll
d0dldFR5cGVJRCgpOwotCi1XS19FWFBPUlQgV0tWaWV3UmVmIFdLVmlld0NyZWF0ZShSRUNUIHJl
Y3QsIFdLUGFnZU5hbWVzcGFjZVJlZiBwYWdlTmFtZXNwYWNlLCBIV05EIGhvc3RXaW5kb3cpOwot
Ci1XS19FWFBPUlQgSFdORCBXS1ZpZXdHZXRXaW5kb3coV0tWaWV3UmVmIHZpZXcpOwotV0tfRVhQ
T1JUIEhXTkQgV0tWaWV3R2V0SG9zdFdpbmRvdyhXS1ZpZXdSZWYgdmlldyk7Ci0KLVdLX0VYUE9S
VCBXS1BhZ2VSZWYgV0tWaWV3R2V0UGFnZShXS1ZpZXdSZWYgdmlldyk7Ci0KLVdLX0VYUE9SVCB2
b2lkIFdLVmlld1NldEhvc3RXaW5kb3coV0tWaWV3UmVmIHZpZXcsIEhXTkQgaG9zdFdpbmRvdyk7
Ci1XS19FWFBPUlQgdm9pZCBXS1ZpZXdXaW5kb3dBbmNlc3RyeURpZENoYW5nZShXS1ZpZXdSZWYg
dmlldyk7Ci0KLSNpZmRlZiBfX2NwbHVzcGx1cwotfQotI2VuZGlmCi0KLSNlbmRpZiAvKiBXS1Zp
ZXdfaCAqLwpJbmRleDogV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDY4MzIyKQorKysgV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTExOCwxMSArMTE4LDcgQEAKIAkJMUFFRkNDQkQxMUQw
MkM1RTAwODIxOUQzIC8qIFBsdWdpbkluZm9TdG9yZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRUZDQ0JDMTFEMDJDNUUwMDgyMTlEMyAvKiBQ
bHVnaW5JbmZvU3RvcmVNYWMubW0gKi87IH07CiAJCTFBRUZEMjc5MTFEMTZDODEwMDgyMTlEMyAv
KiBBcmd1bWVudENvZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQUVGRDI3ODExRDE2QzgxMDA4MjE5RDMgLyogQXJndW1lbnRDb2Rlci5oICovOyB9
OwogCQkxQUVGRDJGNzExRDE4MDdCMDA4MjE5RDMgLyogQXJndW1lbnRDb2RlcnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRUZEMkY2MTFEMTgwN0Iw
MDgyMTlEMyAvKiBBcmd1bWVudENvZGVycy5oICovOyB9OwotCQk1MTRBRjZDODEyMDlFRTczMDBB
MjZDOTcgLyogV0tEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxNEFGNkM2MTIwOUVFNzMwMEEyNkM5NyAvKiBXS0RhdGEuY3BwICovOyB9Owot
CQk1MTRBRjZDOTEyMDlFRTczMDBBMjZDOTcgLyogV0tEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRBRjZDNzEyMDlFRTczMDBBMjZDOTcgLyog
V0tEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9Owog
CQk1MTU3OEI4MzEyMDlFQ0VGMDBBMzdDNEEgLyogV2ViRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE1NzhCODIxMjA5RUNFRjAwQTM3QzRBIC8q
IFdlYkRhdGEuaCAqLzsgfTsKLQkJNTE2QTRBNTkxMjBBMUFCNTAwQzA1QjdGIC8qIFdLRXJyb3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNkE0QTU3
MTIwQTFBQjUwMEMwNUI3RiAvKiBXS0Vycm9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHVibGljLCApOyB9OyB9OwotCQk1MTZBNEE1QTEyMEExQUI1MDBDMDVCN0YgLyogV0tFcnJv
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTZB
NEE1ODEyMEExQUI1MDBDMDVCN0YgLyogV0tFcnJvci5jcHAgKi87IH07CiAJCTUxNkE0QTVEMTIw
QTJDQ0QwMEMwNUI3RiAvKiBXZWJFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTE2QTRBNUIxMjBBMkNDRDAwQzA1QjdGIC8qIFdlYkVycm9yLmgg
Ki87IH07CiAJCTZEOEE5MUE2MTFGMEVGRDEwMEREMDFGRSAvKiBjb20uYXBwbGUuV2ViUHJvY2Vz
cy5zYiBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkQ4
QTkxQTUxMUYwRUZEMTAwREQwMUZFIC8qIGNvbS5hcHBsZS5XZWJQcm9jZXNzLnNiICovOyB9Owog
CQk3NjJCNzQ4RDEyMEJDNzVDMDA4MTkzMzkgLyogV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc2MkI3NDg0MTIwQkJB
MkQwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMzEsNyArMTI3LDYgQEAKIAkJOERDMkVG
NTcwNDg2QTY5NDAwOThCMjE2IC8qIENvY29hLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDEwNThDN0IxRkVBNTU4NUUxMUNBMkNCQiAv
KiBDb2NvYS5mcmFtZXdvcmsgKi87IH07CiAJCTkzOTFGMkNBMTIxQjY3OUEwMEVCRjdFOCAvKiBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTM5MUYyODQxMjFCMzhGNTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0
d29ya2luZ0NvbnRleHQubW0gKi87IH07CiAJCTkzOTFGMkNCMTIxQjY3QUQwMEVCRjdFOCAvKiBX
ZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MzkxRjI4MzEyMUIzOEY1MDBFQkY3RTggLyogV2ViRnJhbWVOZXR3
b3JraW5nQ29udGV4dC5oICovOyB9OwotCQlBNzJENjEwQjEyMzcxNDRGMDBBODhCMTUgLyogV0tT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTcyRDVGMkYxMjM2RjlFODAwQTg4QjE1IC8qIFdLU2VyaWFsaXplZFNj
cmlwdFZhbHVlLmNwcCAqLzsgfTsKIAkJQkMwMDkyRjcxMTU4MzdBMzAwRTBBRTJBIC8qIFJ1bkxv
b3BNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzAwOTJGNTExNTgzN0EzMDBFMEFFMkEgLyogUnVuTG9vcE1hYy5tbSAqLzsgfTsKIAkJQkMwMDky
RjgxMTU4MzdBMzAwRTBBRTJBIC8qIFdvcmtRdWV1ZU1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAwOTJGNjExNTgzN0EzMDBFMEFFMkEgLyog
V29ya1F1ZXVlTWFjLmNwcCAqLzsgfTsKIAkJQkMwMzJENzUxMEY0Mzc4RDAwNThDMTVBIC8qIFdl
YkNocm9tZUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkMwMzJENjAxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkNocm9tZUNsaWVudC5oICovOyB9
OwpAQCAtMTU3LDggKzE1Miw2IEBACiAJCUJDMDMyREQxMTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQ
YWdlUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDMDMyRENCMTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQYWdlUHJveHkuaCAqLzsgfTsKIAkJQkMw
MzJERDMxMEY0Mzg5RjAwNThDMTVBIC8qIFdlYlByb2Nlc3NNYW5hZ2VyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAzMkRDRDEwRjQzODlGMDA1OEMx
NUEgLyogV2ViUHJvY2Vzc01hbmFnZXIuaCAqLzsgfTsKIAkJQkMwMzJERDUxMEY0Mzg5RjAwNThD
MTVBIC8qIFdlYlByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkMwMzJEQ0YxMEY0Mzg5RjAwNThDMTVBIC8qIFdlYlByb2Nlc3NQcm94
eS5oICovOyB9OwotCQlCQzBDMzc2ODEwRjgwN0IyMDA3NkQ3Q0IgLyogV0tCYXNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBDMzc2NzEwRjgwN0Iy
MDA3NkQ3Q0IgLyogV0tCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGlj
LCApOyB9OyB9OwotCQlCQzBDMzc2RTEwRjgwODQ2MDA3NkQ3Q0IgLyogV0tBUElDYXN0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzBDMzc2RDEwRjgw
ODQ2MDA3NkQ3Q0IgLyogV0tBUElDYXN0LmggKi87IH07CiAJCUJDMTExQTVBMTEyRjRGQkIwMDMz
N0JBQiAvKiBXZWJDaHJvbWVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkMxMTFBNTMxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkNocm9tZUNs
aWVudC5jcHAgKi87IH07CiAJCUJDMTExQTVCMTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJDb250ZXh0
TWVudUNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzExMUE1NDExMkY0RkJCMDAzMzdCQUIgLyogV2ViQ29udGV4dE1lbnVDbGllbnQuY3Bw
ICovOyB9OwogCQlCQzExMUE1RDExMkY0RkJCMDAzMzdCQUIgLyogV2ViRHJhZ0NsaWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzExMUE1NjEx
MkY0RkJCMDAzMzdCQUIgLyogV2ViRHJhZ0NsaWVudC5jcHAgKi87IH07CkBAIC0xOTgsMTggKzE5
MSw5IEBACiAJCUJDMjA0RUVFMTFDODNFQzgwMDhGMzM3NSAvKiBXS0J1bmRsZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzIwNEVFOTExQzgzRUM4
MDA4RjMzNzUgLyogV0tCdW5kbGUuY3BwICovOyB9OwogCQlCQzIwNEVFRjExQzgzRUM4MDA4RjMz
NzUgLyogV0tCdW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMjA0RUVBMTFDODNFQzgwMDhGMzM3NSAvKiBXS0J1bmRsZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJQkMyMDRFRjAxMUM4M0VDODAw
OEYzMzc1IC8qIFdLQnVuZGxlQVBJQ2FzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkMyMDRFRUIxMUM4M0VDODAwOEYzMzc1IC8qIFdLQnVuZGxlQVBJ
Q2FzdC5oICovOyB9OwotCQlCQzIwNEVGMTExQzgzRUM4MDA4RjMzNzUgLyogV0tCdW5kbGVCYXNl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzIwNEVF
QzExQzgzRUM4MDA4RjMzNzUgLyogV0tCdW5kbGVCYXNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQlCQzIwNEVGMjExQzgzRUM4MDA4RjMzNzUgLyog
V0tCdW5kbGVJbml0aWFsaXplLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzIwNEVFRDExQzgzRUM4MDA4RjMzNzUgLyogV0tCdW5kbGVJbml0aWFsaXpl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQlCQzIw
NTI4MTExQzk0Mjg0MDA4RjMzNzUgLyogV0tCdW5kbGVQYWdlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzIwNTI3RjExQzk0Mjg0MDA4RjMzNzUgLyog
V0tCdW5kbGVQYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9
OyB9OwogCQlCQzIwNTI4MjExQzk0Mjg0MDA4RjMzNzUgLyogV0tCdW5kbGVQYWdlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjA1MjgwMTFDOTQy
ODQwMDhGMzM3NSAvKiBXS0J1bmRsZVBhZ2UuY3BwICovOyB9OwotCQlCQzIwRUJCMDExNkVFQjA4
MDAwOTRBNTAgLyogV0tTdHJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMjBFQkFFMTE2RUVCMDgwMDA5NEE1MCAvKiBXS1N0cmluZy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKLQkJQkMyMEVCQjExMTZF
RUIwODAwMDk0QTUwIC8qIFdLU3RyaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjBFQkFGMTE2RUVCMDgwMDA5NEE1MCAvKiBXS1N0cmluZy5j
cHAgKi87IH07Ci0JCUJDMjBFQkI0MTE2RUVGN0EwMDA5NEE1MCAvKiBXS1VSTC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyMEVCQjIxMTZFRUY3QTAw
MDk0QTUwIC8qIFdLVVJMLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCAp
OyB9OyB9OwotCQlCQzIwRUJCNTExNkVFRjdBMDAwOTRBNTAgLyogV0tVUkwuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyMEVCQjMxMTZFRUY3QTAw
MDk0QTUwIC8qIFdLVVJMLmNwcCAqLzsgfTsKLQkJQkMyMEVDMDYxMTZFRjdGRjAwMDk0QTUwIC8q
IFdLU3RyaW5nQ0YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEJDMjBFQzA0MTE2RUY3RkYwMDA5NEE1MCAvKiBXS1N0cmluZ0NGLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwotCQlCQzIwRUMwNzExNkVGN0ZGMDAw
OTRBNTAgLyogV0tTdHJpbmdDRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzIwRUMwNTExNkVGN0ZGMDAwOTRBNTAgLyogV0tTdHJpbmdDRi5jcHAg
Ki87IH07Ci0JCUJDMjBFRDY2MTE2Rjk3MTEwMDA5NEE1MCAvKiBXS1VSTENGLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzIwRUQ2NDExNkY5NzExMDAw
OTRBNTAgLyogV0tVUkxDRi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywg
KTsgfTsgfTsKLQkJQkMyMEVENjcxMTZGOTcxMTAwMDk0QTUwIC8qIFdLVVJMQ0YuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyMEVENjUxMTZGOTcx
MTAwMDk0QTUwIC8qIFdLVVJMQ0YuY3BwICovOyB9OwogCQlCQzI2NTFGNjExODI1RUY4MDAyNDNF
MTIgLyogQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHlNYWMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzI2NTFGNTExODI1RUY4MDAyNDNFMTIg
LyogQ2h1bmtlZFVwZGF0ZURyYXdpbmdBcmVhUHJveHlNYWMubW0gKi87IH07CiAJCUJDMjY1MjE2
MTE4MjYwODEwMDI0M0UxMiAvKiBEcmF3aW5nQXJlYVByb3h5LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjY1MjEyMTE4MjYwODEwMDI0M0UxMiAv
KiBEcmF3aW5nQXJlYVByb3h5LmNwcCAqLzsgfTsKIAkJQkMyNjUyMTcxMTgyNjA4MTAwMjQzRTEy
IC8qIERyYXdpbmdBcmVhUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMjY1MjEzMTE4MjYwODEwMDI0M0UxMiAvKiBEcmF3aW5nQXJlYVByb3h5
LmggKi87IH07CkBAIC0yMjEsMTQgKzIwNSw0OSBAQAogCQlCQzJFNkU4RDExNDE5NzE1MDBBNjNC
MUUgLyogV29ya1F1ZXVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDMkU2RTdEMTE0MTk3MEMwMEE2M0IxRSAvKiBXb3JrUXVldWUuY3BwICovOyB9
OwogCQlCQzJFNkU4RTExNDE5NzE1MDBBNjNCMUUgLyogV29ya1F1ZXVlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzJFNkU3RTExNDE5NzBDMDBBNjNC
MUUgLyogV29ya1F1ZXVlLmggKi87IH07CiAJCUJDMzNERDY4MTIzODQ2NDYwMDM2MEYzRiAvKiBX
ZWJOdW1iZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDMzNERDY3MTIzODQ2NDYwMDM2MEYzRiAvKiBXZWJOdW1iZXIuaCAqLzsgfTsKLQkJQkMzM0RF
OEUxMjM4NUMzMzAwMzYwRjNGIC8qIFdLTnVtYmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzMzREU4QzEyMzg1QzMzMDAzNjBGM0YgLyogV0tOdW1i
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07Ci0JCUJD
MzNERThGMTIzODVDMzMwMDM2MEYzRiAvKiBXS051bWJlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzMzREU4RDEyMzg1QzMzMDAzNjBGM0YgLyog
V0tOdW1iZXIuY3BwICovOyB9OwotCQlCQzMzREYwNjEyMzg2NzdGMDAzNjBGM0YgLyogV0tTZXJp
YWxpemVkU2NyaXB0VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE3MkQ1RjJFMTIzNkY5RTgwMEE4OEIxNSAvKiBXS1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJ
QkMzM0UwRDExMjQwOEU4NjAwMzYwRjNGIC8qIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzNFMENGMTI0
MDhFODYwMDM2MEYzRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmggKi87IH07CiAJCUJD
MzNFMEQyMTI0MDhFODYwMDM2MEYzRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzNFMEQwMTI0
MDhFODYwMDM2MEYzRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCAqLzsgfTsKKwkJ
QkM0MDc1RjMxMjRGRjAyNzAwNjhGMjBBIC8qIFdLQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0MDc1RDcxMjRGRjAyNzAwNjhGMjBBIC8q
IFdLQXJyYXkuY3BwICovOyB9OworCQlCQzQwNzVGNDEyNEZGMDI3MDA2OEYyMEEgLyogV0tBcnJh
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0MDc1
RDgxMjRGRjAyNzAwNjhGMjBBIC8qIFdLQXJyYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQdWJsaWMsICk7IH07IH07CisJCUJDNDA3NUY1MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0Nl
cnRpZmljYXRlSW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzQwNzVEOTEyNEZGMDI3MDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUluZm8uY3Bw
ICovOyB9OworCQlCQzQwNzVGNjEyNEZGMDI3MDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUluZm8u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDA3NURB
MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0NlcnRpZmljYXRlSW5mby5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJQkM0MDc1RjcxMjRGRjAyNzAwNjhGMjBB
IC8qIFdLRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzQwNzVEQjEyNEZGMDI3MDA2OEYyMEEgLyogV0tEYXRhLmNwcCAqLzsgfTsKKwkJQkM0
MDc1RjgxMjRGRjAyNzAwNjhGMjBBIC8qIFdLRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0MDc1REMxMjRGRjAyNzAwNjhGMjBBIC8qIFdLRGF0
YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJQkM0
MDc1RjkxMjRGRjAyNzAwNjhGMjBBIC8qIFdLRGljdGlvbmFyeS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQwNzVERDEyNEZGMDI3MDA2OEYyMEEg
LyogV0tEaWN0aW9uYXJ5LmNwcCAqLzsgfTsKKwkJQkM0MDc1RkExMjRGRjAyNzAwNjhGMjBBIC8q
IFdLRGljdGlvbmFyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkM0MDc1REUxMjRGRjAyNzAwNjhGMjBBIC8qIFdLRGljdGlvbmFyeS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJQkM0MDc1RkIxMjRGRjAy
NzAwNjhGMjBBIC8qIFdLRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkM0MDc1REYxMjRGRjAyNzAwNjhGMjBBIC8qIFdLRXJyb3IuY3BwICov
OyB9OworCQlCQzQwNzVGQzEyNEZGMDI3MDA2OEYyMEEgLyogV0tFcnJvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0MDc1RTAxMjRGRjAyNzAwNjhG
MjBBIC8qIFdLRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7
IH07IH07CisJCUJDNDA3NUZEMTI0RkYwMjcwMDY4RjIwQSAvKiBXS011dGFibGVBcnJheS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQwNzVFMTEy
NEZGMDI3MDA2OEYyMEEgLyogV0tNdXRhYmxlQXJyYXkuY3BwICovOyB9OworCQlCQzQwNzVGRTEy
NEZGMDI3MDA2OEYyMEEgLyogV0tNdXRhYmxlQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDA3NUUyMTI0RkYwMjcwMDY4RjIwQSAvKiBXS011
dGFibGVBcnJheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsg
fTsKKwkJQkM0MDc1RkYxMjRGRjAyNzAwNjhGMjBBIC8qIFdLTXV0YWJsZURpY3Rpb25hcnkuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0MDc1RTMx
MjRGRjAyNzAwNjhGMjBBIC8qIFdLTXV0YWJsZURpY3Rpb25hcnkuY3BwICovOyB9OworCQlCQzQw
NzYwMDEyNEZGMDI3MDA2OEYyMEEgLyogV0tNdXRhYmxlRGljdGlvbmFyeS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0MDc1RTQxMjRGRjAyNzAwNjhG
MjBBIC8qIFdLTXV0YWJsZURpY3Rpb25hcnkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQdWJsaWMsICk7IH07IH07CisJCUJDNDA3NjAxMTI0RkYwMjcwMDY4RjIwQSAvKiBXS051bWJl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQw
NzVFNTEyNEZGMDI3MDA2OEYyMEEgLyogV0tOdW1iZXIuY3BwICovOyB9OworCQlCQzQwNzYwMjEy
NEZGMDI3MDA2OEYyMEEgLyogV0tOdW1iZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDA3NUU2MTI0RkYwMjcwMDY4RjIwQSAvKiBXS051bWJlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJQkM0MDc2
MDMxMjRGRjAyNzAwNjhGMjBBIC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDA3NUU3MTI0RkYwMjcw
MDY4RjIwQSAvKiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5jcHAgKi87IH07CisJCUJDNDA3NjA0
MTI0RkYwMjcwMDY4RjIwQSAvKiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0MDc1RTgxMjRGRjAyNzAwNjhG
MjBBIC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHVibGljLCApOyB9OyB9OworCQlCQzQwNzYwNTEyNEZGMDI3MDA2OEYyMEEgLyogV0tT
dHJpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM0MDc1RTkxMjRGRjAyNzAwNjhGMjBBIC8qIFdLU3RyaW5nLmNwcCAqLzsgfTsKKwkJQkM0MDc2
MDYxMjRGRjAyNzAwNjhGMjBBIC8qIFdLU3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQwNzVFQTEyNEZGMDI3MDA2OEYyMEEgLyogV0tTdHJp
bmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCUJD
NDA3NjA3MTI0RkYwMjcwMDY4RjIwQSAvKiBXS1R5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0MDc1RUIxMjRGRjAyNzAwNjhGMjBBIC8qIFdL
VHlwZS5jcHAgKi87IH07CisJCUJDNDA3NjA4MTI0RkYwMjcwMDY4RjIwQSAvKiBXS1R5cGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDA3NUVDMTI0
RkYwMjcwMDY4RjIwQSAvKiBXS1R5cGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
dWJsaWMsICk7IH07IH07CisJCUJDNDA3NjA5MTI0RkYwMjcwMDY4RjIwQSAvKiBXS1VSTC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQwNzVFRDEy
NEZGMDI3MDA2OEYyMEEgLyogV0tVUkwuY3BwICovOyB9OworCQlCQzQwNzYwQTEyNEZGMDI3MDA2
OEYyMEEgLyogV0tVUkwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDNDA3NUVFMTI0RkYwMjcwMDY4RjIwQSAvKiBXS1VSTC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJQkM0MDc2MEIxMjRGRjAyNzAwNjhG
MjBBIC8qIFdLVVJMUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzQwNzVFRjEyNEZGMDI3MDA2OEYyMEEgLyogV0tVUkxSZXF1ZXN0LmNw
cCAqLzsgfTsKKwkJQkM0MDc2MEMxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVxdWVzdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0MDc1RjAxMjRG
RjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVxdWVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJQkM0MDc2MEQxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJM
UmVzcG9uc2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkM0MDc1RjExMjRGRjAyNzAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2UuY3BwICovOyB9Owor
CQlCQzQwNzYwRTEyNEZGMDI3MDA2OEYyMEEgLyogV0tVUkxSZXNwb25zZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0MDc1RjIxMjRGRjAyNzAwNjhG
MjBBIC8qIFdLVVJMUmVzcG9uc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJs
aWMsICk7IH07IH07CisJCUJDNDA3NjE5MTI0RkYwMzcwMDY4RjIwQSAvKiBXS1N0cmluZ0NGLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDA3NjEx
MTI0RkYwMzcwMDY4RjIwQSAvKiBXS1N0cmluZ0NGLmNwcCAqLzsgfTsKKwkJQkM0MDc2MUExMjRG
RjAzNzAwNjhGMjBBIC8qIFdLU3RyaW5nQ0YuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDA3NjEyMTI0RkYwMzcwMDY4RjIwQSAvKiBXS1N0cmluZ0NG
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OworCQlCQzQw
NzYxQjEyNEZGMDM3MDA2OEYyMEEgLyogV0tVUkxDRi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQwNzYxMzEyNEZGMDM3MDA2OEYyMEEgLyogV0tV
UkxDRi5jcHAgKi87IH07CisJCUJDNDA3NjFDMTI0RkYwMzcwMDY4RjIwQSAvKiBXS1VSTENGLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQwNzYxNDEy
NEZGMDM3MDA2OEYyMEEgLyogV0tVUkxDRi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFB1YmxpYywgKTsgfTsgfTsKKwkJQkM0MDc2MjcxMjRGRjA0MDAwNjhGMjBBIC8qIFdLQ2VydGlm
aWNhdGVJbmZvTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQzQwNzYyMTEyNEZGMDQwMDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUluZm9NYWMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCUJDNDA3NjI4
MTI0RkYwNDAwMDY4RjIwQSAvKiBXS0NlcnRpZmljYXRlSW5mb01hYy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDA3NjIyMTI0RkYwNDAwMDY4RjIw
QSAvKiBXS0NlcnRpZmljYXRlSW5mb01hYy5tbSAqLzsgfTsKKwkJQkM0MDc2MjkxMjRGRjA0MDAw
NjhGMjBBIC8qIFdLVVJMUmVxdWVzdE5TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzQwNzYyMzEyNEZGMDQwMDA2OEYyMEEgLyogV0tVUkxSZXF1ZXN0
TlMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCUJD
NDA3NjJBMTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VSTFJlcXVlc3ROUy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDA3NjI0MTI0RkYwNDAwMDY4RjIw
QSAvKiBXS1VSTFJlcXVlc3ROUy5tbSAqLzsgfTsKKwkJQkM0MDc2MkIxMjRGRjA0MDAwNjhGMjBB
IC8qIFdLVVJMUmVzcG9uc2VOUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM0MDc2MjUxMjRGRjA0MDAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2VOUy5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKKwkJQkM0MDc2
MkMxMjRGRjA0MDAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2VOUy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDA3NjI2MTI0RkYwNDAwMDY4RjIwQSAv
KiBXS1VSTFJlc3BvbnNlTlMubW0gKi87IH07CiAJCUJDNDk4NjE4MTI0RDEwRTIwMEQ4MzRFMSAv
KiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDk4NjE2MTI0RDEwRTIwMEQ4MzRFMSAvKiBJbmplY3Rl
ZEJ1bmRsZUhpdFRlc3RSZXN1bHQuaCAqLzsgfTsKIAkJQkM0OTg2MTkxMjREMTBFMjAwRDgzNEUx
IC8qIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzQ5ODYxNzEyNEQxMEUyMDBEODM0RTEgLyogSW5q
ZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcCAqLzsgfTsKLQkJQkM0OTg2MkYxMjREMThDMTAw
RDgzNEUxIC8qIFdLQnVuZGxlSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0OTg2MkQxMjREMThDMTAwRDgzNEUxIC8qIFdLQnVu
ZGxlSGl0VGVzdFJlc3VsdC5oICovOyB9OworCQlCQzQ5ODYyRjEyNEQxOEMxMDBEODM0RTEgLyog
V0tCdW5kbGVIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzQ5ODYyRDEyNEQxOEMxMDBEODM0RTEgLyogV0tCdW5kbGVIaXRUZXN0
UmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9Owog
CQlCQzQ5ODYzMDEyNEQxOEMxMDBEODM0RTEgLyogV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNDk4NjJFMTI0
RDE4QzEwMEQ4MzRFMSAvKiBXS0J1bmRsZUhpdFRlc3RSZXN1bHQuY3BwICovOyB9OwogCQlCQzRC
RUVBQjEyMEEwQTVGMDBGQkEwQzcgLyogSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzRCRUVBOTEyMEEwQTVF
MDBGQkEwQzcgLyogSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmggKi87IH07CiAJCUJDNEJFRUFD
MTIwQTBBNUYwMEZCQTBDNyAvKiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0QkVFQUExMjBBMEE1RjAw
RkJBMEM3IC8qIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAgKi87IH07CkBAIC0yNDIsOCAr
MjYxLDYgQEAKIAkJQkM2MEM1NzkxMjQwQTU0NjAwOEM1RTI5IC8qIFdLQnVuZGxlUmFuZ2VIYW5k
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjBD
NTc3MTI0MEE1NDYwMDhDNUUyOSAvKiBXS0J1bmRsZVJhbmdlSGFuZGxlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQlCQzYwQzU3QTEyNDBBNTQ2MDA4
QzVFMjkgLyogV0tCdW5kbGVSYW5nZUhhbmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzYwQzU3ODEyNDBBNTQ2MDA4QzVFMjkgLyogV0tCdW5k
bGVSYW5nZUhhbmRsZS5jcHAgKi87IH07CiAJCUJDNjE3RUU4MTA0Q0IzNDcwMEZCM0ZFMSAvKiBK
YXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQUExQzdERTEwMEU4NDZFMDA3OERFQkMgLyogSmF2YVNjcmlwdENv
cmUuZnJhbWV3b3JrICovOyB9OwotCQlCQzY0NjgwMzExREJCQTczMDA2NDU1QjAgLyogV0tBcnJh
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM2NDY4
MDIxMURCQkE3MzAwNjQ1NUIwIC8qIFdLQXJyYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQdWJsaWMsICk7IH07IH07Ci0JCUJDNjQ2ODBCMTFEQkJENjkwMDY0NTVCMCAvKiBXS0Fy
cmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
NjQ2ODBBMTFEQkJENjkwMDY0NTVCMCAvKiBXS0FycmF5LmNwcCAqLzsgfTsKIAkJQkM2NDY5NkYx
MURCRTYwMzAwNjQ1NUIwIC8qIEltbXV0YWJsZUFycmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjQ2OTZEMTFEQkU2MDMwMDY0NTVCMCAvKiBJ
bW11dGFibGVBcnJheS5jcHAgKi87IH07CiAJCUJDNjQ2OTcwMTFEQkU2MDMwMDY0NTVCMCAvKiBJ
bW11dGFibGVBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkM2NDY5NkUxMURCRTYwMzAwNjQ1NUIwIC8qIEltbXV0YWJsZUFycmF5LmggKi87IH07
CiAJCUJDNjQ2QkY5MTFERDM3N0IwMDY0NTVCMCAvKiBXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNjQ2QkY1
MTFERDM3N0IwMDY0NTVCMCAvKiBXZWJCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCAqLzsgfTsKQEAg
LTI2OCwxMCArMjg1LDYgQEAKIAkJQkM5MEExRDIxMjJERDU1RTAwQ0M4QzUwIC8qIFdlYlVSTFJl
c3BvbnNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
QzkwQTFEMDEyMkRENTVFMDBDQzhDNTAgLyogV2ViVVJMUmVzcG9uc2UuaCAqLzsgfTsKIAkJQkM5
MEExRDMxMjJERDU1RTAwQ0M4QzUwIC8qIFdlYlVSTFJlc3BvbnNlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTBBMUQxMTIyREQ1NUUwMENDOEM1
MCAvKiBXZWJVUkxSZXNwb25zZS5jcHAgKi87IH07CiAJCUJDOTBBMUQ3MTIyREQ2NkEwMENDOEM1
MCAvKiBXZWJVUkxSZXNwb25zZU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDOTBBMUQ1MTIyREQ2NkEwMENDOEM1MCAvKiBXZWJVUkxSZXNwb25z
ZU1hYy5tbSAqLzsgfTsKLQkJQkM5MEExREMxMjJERDg5ODAwQ0M4QzUwIC8qIFdLVVJMUmVzcG9u
c2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTBB
MURBMTIyREQ4OTgwMENDOEM1MCAvKiBXS1VSTFJlc3BvbnNlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwotCQlCQzkwQTFERDEyMkREODk4MDBDQzhDNTAg
LyogV0tVUkxSZXNwb25zZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzkwQTFEQjEyMkREODk4MDBDQzhDNTAgLyogV0tVUkxSZXNwb25zZS5jcHAg
Ki87IH07Ci0JCUJDOTBBMUUwMTIyREQ4RUUwMENDOEM1MCAvKiBXS1VSTFJlc3BvbnNlTlMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTBBMURFMTIy
REQ4RUUwMENDOEM1MCAvKiBXS1VSTFJlc3BvbnNlTlMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQdWJsaWMsICk7IH07IH07Ci0JCUJDOTBBMUUxMTIyREQ4RUUwMENDOEM1MCAvKiBX
S1VSTFJlc3BvbnNlTlMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzkwQTFERjEyMkREOEVFMDBDQzhDNTAgLyogV0tVUkxSZXNwb25zZU5TLm1tICov
OyB9OwogCQlCQzk2M0Q2QjExM0REMTkyMDA1NzRCRTIgLyogV2ViUGFnZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzk2M0Q2QTExM0REMTkyMDA1
NzRCRTIgLyogV2ViUGFnZS5jcHAgKi87IH07CiAJCUJDOTYzRDZFMTEzREQxQTUwMDU3NEJFMiAv
KiBXZWJQYWdlTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQkM5NjNENkQxMTNERDFBNTAwNTc0QkUyIC8qIFdlYlBhZ2VNYWMubW0gKi87IH07CiAJ
CUJDOUIzOEExMTBGNTM4QkUwMDQ0M0ExNSAvKiBXZWJGcmFtZVByb3h5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzlCMzg5RjEwRjUzOEJFMDA0NDNB
MTUgLyogV2ViRnJhbWVQcm94eS5oICovOyB9OwpAQCAtMjg5LDE0ICszMDIsMTAgQEAKIAkJQkNB
OEM2QjAxMUUzQzA4NzAwODEyRkI3IC8qIEluamVjdGVkQnVuZGxlUGFnZVVJQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0E4QzZBRTExRTND
MDg3MDA4MTJGQjcgLyogSW5qZWN0ZWRCdW5kbGVQYWdlVUlDbGllbnQuaCAqLzsgfTsKIAkJQkNB
OEM5REMxMUU0MDg2NTAwODEyRkI3IC8qIFdlYkJhY2tGb3J3YXJkQ29udHJvbGxlckNsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBOEM5REEx
MUU0MDg2NTAwODEyRkI3IC8qIFdlYkJhY2tGb3J3YXJkQ29udHJvbGxlckNsaWVudC5oICovOyB9
OwogCQlCQ0E4QzlERDExRTQwODY1MDA4MTJGQjcgLyogV2ViQmFja0ZvcndhcmRDb250cm9sbGVy
Q2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDQThDOURCMTFFNDA4NjUwMDgxMkZCNyAvKiBXZWJCYWNrRm9yd2FyZENvbnRyb2xsZXJDbGll
bnQuY3BwICovOyB9OwotCQlCQ0IwQUQyRDEyMkYyODQzMDBCMTM0MUUgLyogV0tNdXRhYmxlQXJy
YXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzgw
NEExMTIyRjBFN0IwMDEwMzUyOSAvKiBXS011dGFibGVBcnJheS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKLQkJQkNCMEFEMkUxMjJGMjg0NzAwQjEzNDFF
IC8qIFdLTXV0YWJsZUFycmF5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDQzgwNEEyMTIyRjBFN0IwMDEwMzUyOSAvKiBXS011dGFibGVBcnJheS5j
cHAgKi87IH07CiAJCUJDQjBBRDMzMTIyRjI4NTgwMEIxMzQxRSAvKiBNdXRhYmxlQXJyYXkuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDODA0OUQx
MjJGMEQ2QjAwMTAzNTI5IC8qIE11dGFibGVBcnJheS5jcHAgKi87IH07CiAJCUJDQjBBRDM0MTIy
RjI4NTgwMEIxMzQxRSAvKiBNdXRhYmxlQXJyYXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzgwNDlFMTIyRjBENkIwMDEwMzUyOSAvKiBNdXRhYmxl
QXJyYXkuaCAqLzsgfTsKIAkJQkNCMEFFRTkxMjJGNTNFMzAwQjEzNDFFIC8qIE11dGFibGVEaWN0
aW9uYXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0IwQUVFNzEyMkY1M0UzMDBCMTM0MUUgLyogTXV0YWJsZURpY3Rpb25hcnkuaCAqLzsgfTsKIAkJ
QkNCMEFFRUExMjJGNTNFMzAwQjEzNDFFIC8qIE11dGFibGVEaWN0aW9uYXJ5LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjBBRUU4MTIyRjUzRTMw
MEIxMzQxRSAvKiBNdXRhYmxlRGljdGlvbmFyeS5jcHAgKi87IH07Ci0JCUJDQjBBRjM1MTIzMDFE
RkIwMEIxMzQxRSAvKiBXS011dGFibGVEaWN0aW9uYXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0IwQUYzMzEyMzAxREZCMDBCMTM0MUUgLyogV0tN
dXRhYmxlRGljdGlvbmFyeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywg
KTsgfTsgfTsKLQkJQkNCMEFGMzYxMjMwMURGQjAwQjEzNDFFIC8qIFdLTXV0YWJsZURpY3Rpb25h
cnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNC
MEFGMzQxMjMwMURGQjAwQjEzNDFFIC8qIFdLTXV0YWJsZURpY3Rpb25hcnkuY3BwICovOyB9Owog
CQlCQ0IwQjBEQzEyMzA1QTI1MDBCMTM0MUUgLyogV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0IwQjBE
QjEyMzA1QTI1MDBCMTM0MUUgLyogV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmggKi87IH07
CiAJCUJDQjBCMERFMTIzMDVBOEMwMEIxMzQxRSAvKiBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdl
Q29kZXJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0IwQjBERDEyMzA1QThDMDBCMTM0MUUgLyogSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVy
cy5oICovOyB9OwogCQlCQ0IwQjBFMDEyMzA1QUIxMDBCMTM0MUUgLyogVXNlck1lc3NhZ2VDb2Rl
cnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjBC
MERGMTIzMDVBQjEwMEIxMzQxRSAvKiBVc2VyTWVzc2FnZUNvZGVycy5oICovOyB9OwpAQCAtMzE2
LDggKzMyNSw2IEBACiAJCUJDQjlGOEIwMTEyNEUwNzcwMEExMzdFMCAvKiBXZWJQb2xpY3lDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjlG
OEFFMTEyNEUwNzcwMEExMzdFMCAvKiBXZWJQb2xpY3lDbGllbnQuaCAqLzsgfTsKIAkJQkNCQ0Iw
Q0IxMjE1RTMyMTAwREU1OUNBIC8qIEltbXV0YWJsZURpY3Rpb25hcnkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQkNCMENBMTIxNUUzMjEwMERFNTlD
QSAvKiBJbW11dGFibGVEaWN0aW9uYXJ5LmggKi87IH07CiAJCUJDQkNCMENEMTIxNUUzM0EwMERF
NTlDQSAvKiBJbW11dGFibGVEaWN0aW9uYXJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQkNCMENDMTIxNUUzM0EwMERFNTlDQSAvKiBJbW11dGFi
bGVEaWN0aW9uYXJ5LmNwcCAqLzsgfTsKLQkJQkNCQ0IwRTMxMjE1RTU0RDAwREU1OUNBIC8qIFdL
RGljdGlvbmFyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNCQ0IwRTExMjE1RTU0RDAwREU1OUNBIC8qIFdLRGljdGlvbmFyeS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKLQkJQkNCQ0IwRTQxMjE1RTU0RDAw
REU1OUNBIC8qIFdLRGljdGlvbmFyeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0JDQjBFMjEyMTVFNTREMDBERTU5Q0EgLyogV0tEaWN0aW9uYXJ5
LmNwcCAqLzsgfTsKIAkJQkNDNTZGNzkxMTU5OTU3RDAwMUNDQUY5IC8qIE1hY2hQb3J0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0M1NkY3NzExNTk5
NTdEMDAxQ0NBRjkgLyogTWFjaFBvcnQuaCAqLzsgfTsKIAkJQkNDNTcxNUIxMTVBREFFRjAwMUND
QUY5IC8qIFdlYlN5c3RlbUludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNDNTcxNTkxMTVBREFFRjAwMUNDQUY5IC8qIFdlYlN5c3RlbUlu
dGVyZmFjZS5oICovOyB9OwogCQlCQ0M1NzE1QzExNUFEQUVGMDAxQ0NBRjkgLyogV2ViU3lzdGVt
SW50ZXJmYWNlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNDNTcxNUExMTVBREFFRjAwMUNDQUY5IC8qIFdlYlN5c3RlbUludGVyZmFjZS5tbSAqLzsg
fTsKQEAgLTMzNywxOSArMzQ0LDE2IEBACiAJCUJDRDU5ODAwMTEyQjU3QkUwMEVDOEMyMyAvKiBX
ZWJQcmVmZXJlbmNlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0Q1OTdGRTExMkI1N0JFMDBFQzhDMjMgLyogV2ViUHJlZmVyZW5jZXMuY3BwICov
OyB9OwogCQlCQ0Q1OThBQzExMkI3RkRGMDBFQzhDMjMgLyogV2ViUHJlZmVyZW5jZXNTdG9yZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNENTk4QUEx
MTJCN0ZERjAwRUM4QzIzIC8qIFdlYlByZWZlcmVuY2VzU3RvcmUuaCAqLzsgfTsKIAkJQkNENTk4
QUQxMTJCN0ZERjAwRUM4QzIzIC8qIFdlYlByZWZlcmVuY2VzU3RvcmUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNENTk4QUIxMTJCN0ZERjAwRUM4
QzIzIC8qIFdlYlByZWZlcmVuY2VzU3RvcmUuY3BwICovOyB9OwotCQlCQ0RCODU4MjEyMDBFQzU3
MDA3MjU0QkUgLyogV0tUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQ0RCODU4MDEyMDBFQzU3MDA3MjU0QkUgLyogV0tUeXBlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwotCQlCQ0RCODU4MzEyMDBFQzU3
MDA3MjU0QkUgLyogV0tUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDREI4NTgxMTIwMEVDNTcwMDcyNTRCRSAvKiBXS1R5cGUuY3BwICovOyB9
OwogCQlCQ0RCODZDMTEyMDBGQjk3MDA3MjU0QkUgLyogV2ViVVJMLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0RCODZDMDEyMDBGQjk3MDA3MjU0QkUg
LyogV2ViVVJMLmggKi87IH07CisJCUJDRERCMzE3MTI0RUJEMTMwMDQ4RDEzQyAvKiBXS0Jhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRERCMzE2
MTI0RUJEMTMwMDQ4RDEzQyAvKiBXS0Jhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQdWJsaWMsICk7IH07IH07CisJCUJDRERCMzJCMTI0RUMyQUIwMDQ4RDEzQyAvKiBXS1NoYXJl
ZEFQSUNhc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDRERCMzJBMTI0RUMyQUIwMDQ4RDEzQyAvKiBXS1NoYXJlZEFQSUNhc3QuaCAqLzsgfTsKKwkJ
QkNEREIzMkQxMjRFQzJFMTAwNDhEMTNDIC8qIFdLQVBJQ2FzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNEREIzMkMxMjRFQzJFMTAwNDhEMTNDIC8q
IFdLQVBJQ2FzdC5oICovOyB9OwogCQlCQ0RFMDU5QjExQ0RBOEFFMDBFNDFBRjEgLyogV2ViQ29u
dGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0RFMDU5OTExQ0RBOEFFMDBFNDFBRjEgLyogV2ViQ29udGV4dElu
amVjdGVkQnVuZGxlQ2xpZW50LmggKi87IH07CiAJCUJDREUwNTlDMTFDREE4QUUwMEU0MUFGMSAv
KiBXZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNERTA1OUExMUNEQThBRTAwRTQxQUYxIC8qIFdl
YkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgKi87IH07CiAJCUJDRTIzMTVEMTIyQzMw
Q0EwMEQ1QzM1QSAvKiBXZWJVUkxSZXF1ZXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UyMzE1QjEyMkMzMENBMDBENUMzNUEgLyogV2ViVVJMUmVx
dWVzdC5oICovOyB9OwogCQlCQ0UyMzE1RTEyMkMzMENBMDBENUMzNUEgLyogV2ViVVJMUmVxdWVz
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Uy
MzE1QzEyMkMzMENBMDBENUMzNUEgLyogV2ViVVJMUmVxdWVzdC5jcHAgKi87IH07CiAJCUJDRTIz
MUMyMTIyQzQ2NkUwMEQ1QzM1QSAvKiBXZWJVUkxSZXF1ZXN0TWFjLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFMjMxQzAxMjJDNDY2RTAwRDVDMzVB
IC8qIFdlYlVSTFJlcXVlc3RNYWMubW0gKi87IH07Ci0JCUJDRTIzMUM3MTIyQzQ5MjMwMEQ1QzM1
QSAvKiBXS1VSTFJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDRTIzMUM1MTIyQzQ5MjMwMEQ1QzM1QSAvKiBXS1VSTFJlcXVlc3QuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07Ci0JCUJDRTIzMUM4MTIy
QzQ5MjMwMEQ1QzM1QSAvKiBXS1VSTFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFMjMxQzYxMjJDNDkyMzAwRDVDMzVBIC8qIFdLVVJM
UmVxdWVzdC5jcHAgKi87IH07CiAJCUJDRTIzMjYzMTIyQzZDRjMwMEQ1QzM1QSAvKiBXZWJDb3Jl
QXJndW1lbnRDb2RlcnNNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQ0UyMzI2MjEyMkM2Q0YzMDBENUMzNUEgLyogV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzTWFjLm1tICovOyB9OwotCQlCQ0UyMzI3OTEyMkM3MUFDMDBENUMzNUEgLyogV0tVUkxSZXF1
ZXN0TlMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
RTIzMjc3MTIyQzcxQUMwMEQ1QzM1QSAvKiBXS1VSTFJlcXVlc3ROUy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKLQkJQkNFMjMyN0ExMjJDNzFBQzAwRDVD
MzVBIC8qIFdLVVJMUmVxdWVzdE5TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNFMjMyNzgxMjJDNzFBQzAwRDVDMzVBIC8qIFdLVVJMUmVxdWVzdE5T
Lm1tICovOyB9OwogCQlCQ0U0Njk1MzEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybUNsaWVudC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0U0Njk0
RjEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybUNsaWVudC5jcHAgKi87IH07CiAJCUJDRTQ2OTU0
MTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0U0Njk1MDEyMTRFNkNCMDAwQjk4RUIgLyogV2Vi
Rm9ybUNsaWVudC5oICovOyB9OwogCQlCQ0U0Njk1NTEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9y
bVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDRTQ2OTUxMTIxNEU2Q0IwMDBCOThFQiAvKiBXZWJGb3JtU3Vi
bWlzc2lvbkxpc3RlbmVyUHJveHkuY3BwICovOyB9OwpAQCAtMzcyLDExICszNzYsNyBAQAogCQlC
Q0Y1MDVFNzEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjUwNUU1MTI0MzA0
N0IwMDU5NTVBRSAvKiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oICovOyB9OwogCQlCQ0Y1MDVF
ODEyNDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y1MDVFNjEyNDMwNDdCMDA1
OTU1QUUgLyogUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ubW0gKi87IH07CiAJCUJDRjUwNjg1MTI0
MzE4NjEwMDU5NTVBRSAvKiBTZWN1cml0eS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y1MDY4NDEyNDMxODYxMDA1OTU1QUUgLyog
U2VjdXJpdHkuZnJhbWV3b3JrICovOyB9OwotCQlCQ0Y1MDcyNDEyNDMyOEE5MDA1OTU1QUUgLyog
V0tDZXJ0aWZpY2F0ZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDRjUwNzIyMTI0MzI4QTkwMDU5NTVBRSAvKiBXS0NlcnRpZmljYXRlSW5mby5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKLQkJQkNGNTA3
MjUxMjQzMjhBOTAwNTk1NUFFIC8qIFdLQ2VydGlmaWNhdGVJbmZvLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjUwNzIzMTI0MzI4QTkwMDU5NTVB
RSAvKiBXS0NlcnRpZmljYXRlSW5mby5jcHAgKi87IH07CiAJCUJDRjUwNzI4MTI0MzI5QUEwMDU5
NTVBRSAvKiBXZWJDZXJ0aWZpY2F0ZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjUwNzI2MTI0MzI5QUEwMDU5NTVBRSAvKiBXZWJDZXJ0aWZp
Y2F0ZUluZm8uaCAqLzsgfTsKLQkJQkNGNTA3MkUxMjQzMkE5NzAwNTk1NUFFIC8qIFdLQ2VydGlm
aWNhdGVJbmZvTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQ0Y1MDcyQzEyNDMyQTk3MDA1OTU1QUUgLyogV0tDZXJ0aWZpY2F0ZUluZm9NYWMuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07Ci0JCUJDRjUwNzJG
MTI0MzJBOTcwMDU5NTVBRSAvKiBXS0NlcnRpZmljYXRlSW5mb01hYy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjUwNzJEMTI0MzJBOTcwMDU5NTVB
RSAvKiBXS0NlcnRpZmljYXRlSW5mb01hYy5tbSAqLzsgfTsKIAkJQkNGNjlGODYxMTc2Q0Q2RjAw
NDcxQTUyIC8qIFdlYkhpc3RvcnlDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGNjlGODQxMTc2Q0Q2RjAwNDcxQTUyIC8qIFdlYkhpc3Rv
cnlDbGllbnQuY3BwICovOyB9OwogCQlCQ0Y2OUY4NzExNzZDRDZGMDA0NzFBNTIgLyogV2ViSGlz
dG9yeUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNGNjlGODUxMTc2Q0Q2RjAwNDcxQTUyIC8qIFdlYkhpc3RvcnlDbGllbnQuaCAqLzsgfTsK
IAkJQkNGNjlGOUExMTc2Q0VENjAwNDcxQTUyIC8qIFdlYk5hdmlnYXRpb25EYXRhU3RvcmUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjY5Rjk4MTE3
NkNFRDYwMDQ3MUE1MiAvKiBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmggKi87IH07CkBAIC01Mzks
MTEgKzUzOSw3IEBACiAJCTFBRUZEMjc4MTFEMTZDODEwMDgyMTlEMyAvKiBBcmd1bWVudENvZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFyZ3VtZW50Q29kZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFFRkQyRjYxMUQxODA3QjAwODIxOUQzIC8qIEFy
Z3VtZW50Q29kZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFyZ3VtZW50
Q29kZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMyREJDRjVFMDM3MEFERUUw
MEM5MTc4MyAvKiBXZWJLaXQyUHJlZml4LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYktpdDJQcmVmaXguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTE0QUY2
QzYxMjA5RUU3MzAwQTI2Qzk3IC8qIFdLRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXS0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1
MTRBRjZDNzEyMDlFRTczMDBBMjZDOTcgLyogV0tEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTU3
OEI4MjEyMDlFQ0VGMDBBMzdDNEEgLyogV2ViRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxNkE0
QTU3MTIwQTFBQjUwMEMwNUI3RiAvKiBXS0Vycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdLRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTE2QTRB
NTgxMjBBMUFCNTAwQzA1QjdGIC8qIFdLRXJyb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV0tFcnJvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUxNkE0QTVCMTIwQTJDQ0QwMEMwNUI3RiAvKiBXZWJFcnJvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1REFENzI5NDExNkZGNzBCMDBFRTUzOTYgLyogV2ViUHJvY2Vzcy54Y2NvbmZpZyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBXZWJQcm9jZXNzLnhjY29uZmlnOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1REFENzNGMTExNkZGOTBDMDBFRTUzOTYgLyogQmFzZVRhcmdl
dC54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlVGFyZ2V0Lnhj
Y29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTU2LDggKzU1Miw2IEBACiAJ
CTkzOTFGMjgzMTIxQjM4RjUwMEVCRjdFOCAvKiBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM5MUYyODQxMjFCMzhGNTAwRUJG
N0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBNzJENUQ3RjEyMzZDQkE4MDBBODhCMTUgLyogV2ViU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
NzJENUYyRTEyMzZGOUU4MDBBODhCMTUgLyogV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTcyRDVGMkYxMjM2RjlFODAwQTg4QjE1IC8q
IFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkMwMDkyRjUxMTU4MzdBMzAwRTBBRTJBIC8qIFJ1bkxvb3BNYWMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBSdW5Mb29wTWFjLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzAwOTJGNjExNTgzN0EzMDBFMEFFMkEgLyogV29y
a1F1ZXVlTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtR
dWV1ZU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDMyRDYwMTBGNDM3
OEQwMDU4QzE1QSAvKiBXZWJDaHJvbWVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViQ2hyb21lQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC01ODMsOCArNTc3LDYgQEAKIAkJQkMwMzJEQ0IxMEY0Mzg5RjAwNThDMTVBIC8qIFdlYlBhZ2VQ
cm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQYWdlUHJveHkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwMzJEQ0QxMEY0Mzg5RjAwNThDMTVBIC8q
IFdlYlByb2Nlc3NNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlByb2Nlc3NNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMDMyRENG
MTBGNDM4OUYwMDU4QzE1QSAvKiBXZWJQcm9jZXNzUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViUHJvY2Vzc1Byb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUJDMEMzNzY3MTBGODA3QjIwMDc2RDdDQiAvKiBXS0Jhc2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUJDMEMzNzZEMTBGODA4NDYwMDc2RDdDQiAvKiBXS0FQSUNhc3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tBUElDYXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDMTExQTUzMTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJDaHJvbWVDbGllbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQ2hyb21lQ2xpZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxMTFBNTQxMTJGNEZCQjAwMzM3QkFCIC8q
IFdlYkNvbnRleHRNZW51Q2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkNvbnRleHRNZW51Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkMxMTFBNTYxMTJGNEZCQjAwMzM3QkFCIC8qIFdlYkRyYWdDbGllbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRHJhZ0NsaWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MjQsMTggKzYxNiw5IEBACiAJCUJDMjA0RUU5MTFD
ODNFQzgwMDhGMzM3NSAvKiBXS0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXS0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
MjA0RUVBMTFDODNFQzgwMDhGMzM3NSAvKiBXS0J1bmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS0J1bmRsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
QzIwNEVFQjExQzgzRUM4MDA4RjMzNzUgLyogV0tCdW5kbGVBUElDYXN0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlQVBJQ2FzdC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlCQzIwNEVFQzExQzgzRUM4MDA4RjMzNzUgLyogV0tCdW5kbGVCYXNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlQmFzZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQzIwNEVFRDExQzgzRUM4MDA4RjMzNzUgLyogV0tCdW5k
bGVJbml0aWFsaXplLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxl
SW5pdGlhbGl6ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzIwNTI3RjExQzk0
Mjg0MDA4RjMzNzUgLyogV0tCdW5kbGVQYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLQnVuZGxlUGFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzIw
NTI4MDExQzk0Mjg0MDA4RjMzNzUgLyogV0tCdW5kbGVQYWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxlUGFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUJDMjBFQkFFMTE2RUVCMDgwMDA5NEE1MCAvKiBXS1N0cmluZy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1N0cmluZy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlCQzIwRUJBRjExNkVFQjA4MDAwOTRBNTAgLyogV0tTdHJpbmcuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tTdHJpbmcuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlCQzIwRUJCMjExNkVFRjdBMDAwOTRBNTAgLyogV0tVUkwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tVUkwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQkMyMEVCQjMxMTZFRUY3QTAwMDk0QTUwIC8qIFdLVVJMLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVVJMLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMyMEVDMDQxMTZFRjdGRjAwMDk0QTUwIC8qIFdLU3RyaW5n
Q0YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tTdHJpbmdDRi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzIwRUMwNTExNkVGN0ZGMDAwOTRBNTAgLyogV0tT
dHJpbmdDRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1N0cmlu
Z0NGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMyMEVENjQxMTZGOTcxMTAw
MDk0QTUwIC8qIFdLVVJMQ0YuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tV
UkxDRi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzIwRUQ2NTExNkY5NzExMDAw
OTRBNTAgLyogV0tVUkxDRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXS1VSTENGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMyNjUxRjUxMTgy
NUVGODAwMjQzRTEyIC8qIENodW5rZWRVcGRhdGVEcmF3aW5nQXJlYVByb3h5TWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ2h1bmtlZFVwZGF0ZURyYXdpbmdB
cmVhUHJveHlNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMjY1MjEyMTE4
MjYwODEwMDI0M0UxMiAvKiBEcmF3aW5nQXJlYVByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IERyYXdpbmdBcmVhUHJveHkuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQzI2NTIxMzExODI2MDgxMDAyNDNFMTIgLyogRHJhd2luZ0FyZWFQcm94
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEcmF3aW5nQXJlYVByb3h5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02NDcsMTAgKzYzMCw0NiBAQAogCQlCQzJF
NkU3RDExNDE5NzBDMDBBNjNCMUUgLyogV29ya1F1ZXVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtRdWV1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDMkU2RTdFMTE0MTk3MEMwMEE2M0IxRSAvKiBXb3JrUXVldWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya1F1ZXVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDMzNERDY3MTIzODQ2NDYwMDM2MEYzRiAvKiBXZWJOdW1iZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTnVtYmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUJDMzNERThDMTIzODVDMzMwMDM2MEYzRiAvKiBXS051bWJlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS051bWJlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlCQzMzREU4RDEyMzg1QzMzMDAzNjBGM0YgLyogV0tOdW1iZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tOdW1iZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQzMzRTBDRjEyNDA4RTg2MDAzNjBGM0YgLyogSW5qZWN0
ZWRCdW5kbGVSYW5nZUhhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDMzNFMEQwMTI0MDhFODYwMDM2MEYzRiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUmFu
Z2VIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzQwNzVENzEyNEZG
MDI3MDA2OEYyMEEgLyogV0tBcnJheS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXS0FycmF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0MDc1
RDgxMjRGRjAyNzAwNjhGMjBBIC8qIFdLQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzQwNzVE
OTEyNEZGMDI3MDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUluZm8uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tDZXJ0aWZpY2F0ZUluZm8uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlCQzQwNzVEQTEyNEZGMDI3MDA2OEYyMEEgLyogV0tDZXJ0aWZp
Y2F0ZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDZXJ0aWZpY2F0
ZUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0MDc1REIxMjRGRjAyNzAw
NjhGMjBBIC8qIFdLRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBXS0RhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzQwNzVEQzEyNEZG
MDI3MDA2OEYyMEEgLyogV0tEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzQwNzVERDEyNEZGMDI3
MDA2OEYyMEEgLyogV0tEaWN0aW9uYXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdLRGljdGlvbmFyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUJDNDA3NURFMTI0RkYwMjcwMDY4RjIwQSAvKiBXS0RpY3Rpb25hcnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tEaWN0aW9uYXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUJDNDA3NURGMTI0RkYwMjcwMDY4RjIwQSAvKiBXS0Vycm9yLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLRXJyb3IuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlCQzQwNzVFMDEyNEZGMDI3MDA2OEYyMEEgLyogV0tFcnJvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0Vycm9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUJDNDA3NUUxMTI0RkYwMjcwMDY4RjIwQSAvKiBXS011dGFibGVBcnJh
eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS011dGFibGVBcnJh
eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNDA3NUUyMTI0RkYwMjcwMDY4
RjIwQSAvKiBXS011dGFibGVBcnJheS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS011dGFibGVBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzQwNzVF
MzEyNEZGMDI3MDA2OEYyMEEgLyogV0tNdXRhYmxlRGljdGlvbmFyeS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS011dGFibGVEaWN0aW9uYXJ5LmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0MDc1RTQxMjRGRjAyNzAwNjhGMjBBIC8qIFdLTXV0
YWJsZURpY3Rpb25hcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tNdXRh
YmxlRGljdGlvbmFyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzQwNzVFNTEy
NEZGMDI3MDA2OEYyMEEgLyogV0tOdW1iZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV0tOdW1iZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
QzQwNzVFNjEyNEZGMDI3MDA2OEYyMEEgLyogV0tOdW1iZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tOdW1iZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
QkM0MDc1RTcxMjRGRjAyNzAwNjhGMjBBIC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0MDc1RTgxMjRGRjAyNzAw
NjhGMjBBIC8qIFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUJDNDA3NUU5MTI0RkYwMjcwMDY4RjIwQSAvKiBXS1N0cmluZy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1N0cmluZy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNDA3NUVBMTI0RkYwMjcwMDY4RjIwQSAvKiBXS1N0cmlu
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1N0cmluZy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlCQzQwNzVFQjEyNEZGMDI3MDA2OEYyMEEgLyogV0tUeXBl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVHlwZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNDA3NUVDMTI0RkYwMjcwMDY4RjIwQSAvKiBX
S1R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tUeXBlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNDA3NUVEMTI0RkYwMjcwMDY4RjIwQSAvKiBXS1VS
TC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VSTC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNDA3NUVFMTI0RkYwMjcwMDY4RjIwQSAvKiBX
S1VSTC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VSTC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlCQzQwNzVFRjEyNEZGMDI3MDA2OEYyMEEgLyogV0tVUkxS
ZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVVJMUmVx
dWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNDA3NUYwMTI0RkYwMjcw
MDY4RjIwQSAvKiBXS1VSTFJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tVUkxSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNDA3NUYx
MTI0RkYwMjcwMDY4RjIwQSAvKiBXS1VSTFJlc3BvbnNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdLVVJMUmVzcG9uc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlCQzQwNzVGMjEyNEZGMDI3MDA2OEYyMEEgLyogV0tVUkxSZXNwb25zZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VSTFJlc3BvbnNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNDA3NjExMTI0RkYwMzcwMDY4RjIwQSAvKiBXS1N0cmlu
Z0NGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLU3RyaW5nQ0Yu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzQwNzYxMjEyNEZGMDM3MDA2OEYy
MEEgLyogV0tTdHJpbmdDRi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1N0
cmluZ0NGLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNDA3NjEzMTI0RkYwMzcw
MDY4RjIwQSAvKiBXS1VSTENGLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdLVVJMQ0YuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzQwNzYxNDEy
NEZGMDM3MDA2OEYyMEEgLyogV0tVUkxDRi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXS1VSTENGLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDNDA3NjIxMTI0
RkYwNDAwMDY4RjIwQSAvKiBXS0NlcnRpZmljYXRlSW5mb01hYy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS0NlcnRpZmljYXRlSW5mb01hYy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlCQzQwNzYyMjEyNEZGMDQwMDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUlu
Zm9NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0NlcnRp
ZmljYXRlSW5mb01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM0MDc2MjMx
MjRGRjA0MDAwNjhGMjBBIC8qIFdLVVJMUmVxdWVzdE5TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLVVJMUmVxdWVzdE5TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUJDNDA3NjI0MTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VSTFJlcXVlc3ROUy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLVVJMUmVxdWVzdE5TLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzQwNzYyNTEyNEZGMDQwMDA2OEYyMEEgLyogV0tV
UkxSZXNwb25zZU5TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLVVJMUmVz
cG9uc2VOUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzQwNzYyNjEyNEZGMDQw
MDA2OEYyMEEgLyogV0tVUkxSZXNwb25zZU5TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gV0tVUkxSZXNwb25zZU5TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzQ5ODYxNjEyNEQxMEUyMDBEODM0RTEgLyogSW5qZWN0ZWRCdW5kbGVIaXRUZXN0
UmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxl
SGl0VGVzdFJlc3VsdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzQ5ODYxNzEy
NEQxMEUyMDBEODM0RTEgLyogSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3Vs
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNDk4NjJEMTI0RDE4QzEwMEQ4
MzRFMSAvKiBXS0J1bmRsZUhpdFRlc3RSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tCdW5kbGVIaXRUZXN0UmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC02NjYsOCArNjg1LDYgQEAKIAkJQkM1RjdCQjgxMTgyMzc5OTAwNTJDMDJDIC8qIENo
dW5rZWRVcGRhdGVEcmF3aW5nQXJlYU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDaHVua2VkVXBkYXRlRHJhd2luZ0FyZWFNYWMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQzYwQzU3NzEyNDBBNTQ2MDA4QzVFMjkgLyogV0tCdW5kbGVSYW5n
ZUhhbmRsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZVJhbmdl
SGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNjBDNTc4MTI0MEE1NDYw
MDhDNUUyOSAvKiBXS0J1bmRsZVJhbmdlSGFuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdLQnVuZGxlUmFuZ2VIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlCQzY0NjgwMjExREJCQTczMDA2NDU1QjAgLyogV0tBcnJheS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0FycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUJDNjQ2ODBBMTFEQkJENjkwMDY0NTVCMCAvKiBXS0FycmF5LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQXJyYXkuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzY0Njk2RDExREJFNjAzMDA2NDU1QjAgLyogSW1tdXRhYmxl
QXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1tdXRhYmxl
QXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzY0Njk2RTExREJFNjAz
MDA2NDU1QjAgLyogSW1tdXRhYmxlQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSW1tdXRhYmxlQXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM2
NDZCRjUxMUREMzc3QjAwNjQ1NUIwIC8qIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02OTMsMTAgKzcxMCw2IEBACiAJCUJD
OTBBMUQwMTIyREQ1NUUwMENDOEM1MCAvKiBXZWJVUkxSZXNwb25zZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJVUkxSZXNwb25zZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQzkwQTFEMTEyMkRENTVFMDBDQzhDNTAgLyogV2ViVVJMUmVzcG9uc2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViVVJMUmVzcG9uc2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzkwQTFENTEyMkRENjZBMDBDQzhDNTAg
LyogV2ViVVJMUmVzcG9uc2VNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBXZWJVUkxSZXNwb25zZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJQkM5MEExREExMjJERDg5ODAwQ0M4QzUwIC8qIFdLVVJMUmVzcG9uc2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tVUkxSZXNwb25zZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlCQzkwQTFEQjEyMkREODk4MDBDQzhDNTAgLyogV0tVUkxSZXNwb25zZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VSTFJlc3BvbnNlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM5MEExREUxMjJERDhFRTAwQ0M4QzUw
IC8qIFdLVVJMUmVzcG9uc2VOUy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S1VSTFJlc3BvbnNlTlMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkM5MEExREYx
MjJERDhFRTAwQ0M4QzUwIC8qIFdLVVJMUmVzcG9uc2VOUy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLVVJMUmVzcG9uc2VOUy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkM5NjNENkExMTNERDE5MjAwNTc0QkUyIC8qIFdlYlBhZ2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUGFnZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDOTYzRDZEMTEzREQxQTUwMDU3NEJFMiAvKiBXZWJQYWdl
TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUGFnZU1h
Yy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM5QjM4OUYxMEY1MzhCRTAwNDQz
QTE1IC8qIFdlYkZyYW1lUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViRnJhbWVQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzE2LDggKzcy
OSw2IEBACiAJCUJDQThDOURCMTFFNDA4NjUwMDgxMkZCNyAvKiBXZWJCYWNrRm9yd2FyZENvbnRy
b2xsZXJDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
QmFja0ZvcndhcmRDb250cm9sbGVyQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkNCMEFFRTcxMjJGNTNFMzAwQjEzNDFFIC8qIE11dGFibGVEaWN0aW9uYXJ5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE11dGFibGVEaWN0aW9uYXJ5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjBBRUU4MTIyRjUzRTMwMEIxMzQxRSAvKiBNdXRh
YmxlRGljdGlvbmFyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBN
dXRhYmxlRGljdGlvbmFyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQjBB
RjMzMTIzMDFERkIwMEIxMzQxRSAvKiBXS011dGFibGVEaWN0aW9uYXJ5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTXV0YWJsZURpY3Rpb25hcnkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQkNCMEFGMzQxMjMwMURGQjAwQjEzNDFFIC8qIFdLTXV0YWJsZURp
Y3Rpb25hcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tNdXRh
YmxlRGljdGlvbmFyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjBCMERC
MTIzMDVBMjUwMEIxMzQxRSAvKiBXZWJDb250ZXh0VXNlck1lc3NhZ2VDb2RlcnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29udGV4dFVzZXJNZXNzYWdlQ29kZXJzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjBCMEREMTIzMDVBOEMwMEIxMzQxRSAv
KiBJbmplY3RlZEJ1bmRsZVVzZXJNZXNzYWdlQ29kZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlVXNlck1lc3NhZ2VDb2RlcnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCMEIwREYxMjMwNUFCMTAwQjEzNDFFIC8qIFVzZXJNZXNz
YWdlQ29kZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJNZXNzYWdl
Q29kZXJzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC03MzgsMTYgKzc0OSwxMiBA
QAogCQlCQ0I5RjhBRTExMjRFMDc3MDBBMTM3RTAgLyogV2ViUG9saWN5Q2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBvbGljeUNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQ0JDQjBDQTEyMTVFMzIxMDBERTU5Q0EgLyogSW1tdXRhYmxl
RGljdGlvbmFyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbW11dGFibGVE
aWN0aW9uYXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQkNCMENDMTIxNUUz
M0EwMERFNTlDQSAvKiBJbW11dGFibGVEaWN0aW9uYXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEltbXV0YWJsZURpY3Rpb25hcnkuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlCQ0JDQjBFMTEyMTVFNTREMDBERTU5Q0EgLyogV0tEaWN0aW9uYXJ5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRGljdGlvbmFyeS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0JDQjBFMjEyMTVFNTREMDBERTU5Q0EgLyogV0tE
aWN0aW9uYXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLRGlj
dGlvbmFyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQzU2Rjc3MTE1OTk1
N0QwMDFDQ0FGOSAvKiBNYWNoUG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNYWNoUG9ydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0M1NzE1OTExNUFE
QUVGMDAxQ0NBRjkgLyogV2ViU3lzdGVtSW50ZXJmYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlN5c3RlbUludGVyZmFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQ0M1NzE1QTExNUFEQUVGMDAxQ0NBRjkgLyogV2ViU3lzdGVtSW50ZXJmYWNlLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU3lzdGVtSW50ZXJm
YWNlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0M1NzE2MTExNUFEQjQyMDAx
Q0NBRjkgLyogTm90SW1wbGVtZW50ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTm90SW1wbGVtZW50ZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNDODA0
OUQxMjJGMEQ2QjAwMTAzNTI5IC8qIE11dGFibGVBcnJheS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBNdXRhYmxlQXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQ0M4MDQ5RTEyMkYwRDZCMDAxMDM1MjkgLyogTXV0YWJsZUFycmF5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE11dGFibGVBcnJheS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlCQ0M4MDRBMTEyMkYwRTdCMDAxMDM1MjkgLyogV0tNdXRhYmxl
QXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tNdXRhYmxlQXJyYXku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDODA0QTIxMjJGMEU3QjAwMTAzNTI5
IC8qIFdLTXV0YWJsZUFycmF5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdLTXV0YWJsZUFycmF5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkND
OTM4RTAxMTgwREU0NDAwODVFNUZFIC8qIFdLQ29udGV4dFByaXZhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb250ZXh0UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQ0NCNzVDNTEyMDNBMUNFMDAyMjJEMUIgLyogV2ViQ29udGV4dE1lc3Nh
Z2VLaW5kcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0TWVz
c2FnZUtpbmRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRDAwNDJDMTEwQzFF
MjcwMDNCOEE2NyAvKiBDb3JlU2VydmljZXMuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBD
b3JlU2VydmljZXMuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
Q29yZVNlcnZpY2VzLmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKQEAg
LTc2MywxOSArNzcwLDE2IEBACiAJCUJDRDU5N0ZFMTEyQjU3QkUwMEVDOEMyMyAvKiBXZWJQcmVm
ZXJlbmNlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJQcmVm
ZXJlbmNlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRDU5OEFBMTEyQjdG
REYwMEVDOEMyMyAvKiBXZWJQcmVmZXJlbmNlc1N0b3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlByZWZlcmVuY2VzU3RvcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkNENTk4QUIxMTJCN0ZERjAwRUM4QzIzIC8qIFdlYlByZWZlcmVuY2VzU3RvcmUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUHJlZmVyZW5jZXNT
dG9yZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDREI4NTgwMTIwMEVDNTcw
MDcyNTRCRSAvKiBXS1R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tU
eXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDREI4NTgxMTIwMEVDNTcwMDcy
NTRCRSAvKiBXS1R5cGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V0tUeXBlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNEQjg2QzAxMjAwRkI5
NzAwNzI1NEJFIC8qIFdlYlVSTC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJVUkwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNEREIzMTYxMjRFQkQxMzAw
NDhEMTNDIC8qIFdLQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0Jh
c2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNEREIzMkExMjRFQzJBQjAwNDhE
MTNDIC8qIFdLU2hhcmVkQVBJQ2FzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS1NoYXJlZEFQSUNhc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNEREIz
MkMxMjRFQzJFMTAwNDhEMTNDIC8qIFdLQVBJQ2FzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS0FQSUNhc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNE
RTA1OTkxMUNEQThBRTAwRTQxQUYxIC8qIFdlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDb250ZXh0SW5qZWN0ZWRCdW5k
bGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNERTA1OUExMUNEQThB
RTAwRTQxQUYxIC8qIFdlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGll
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0UyMzE1QjEyMkMzMENBMDBE
NUMzNUEgLyogV2ViVVJMUmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJVUkxSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTIzMTVD
MTIyQzMwQ0EwMEQ1QzM1QSAvKiBXZWJVUkxSZXF1ZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlVSTFJlcXVlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQ0UyMzFDMDEyMkM0NjZFMDBENUMzNUEgLyogV2ViVVJMUmVxdWVzdE1hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlVSTFJlcXVlc3RN
YWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDRTIzMUM1MTIyQzQ5MjMwMEQ1
QzM1QSAvKiBXS1VSTFJlcXVlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tVUkxSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDRTIzMUM2MTIy
QzQ5MjMwMEQ1QzM1QSAvKiBXS1VSTFJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gV0tVUkxSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkNFMjMyNjIxMjJDNkNGMzAwRDVDMzVBIC8qIFdlYkNvcmVBcmd1bWVudENvZGVyc01h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkNvcmVBcmd1
bWVudENvZGVyc01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNFMjMyNzcx
MjJDNzFBQzAwRDVDMzVBIC8qIFdLVVJMUmVxdWVzdE5TLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLVVJMUmVxdWVzdE5TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUJDRTIzMjc4MTIyQzcxQUMwMEQ1QzM1QSAvKiBXS1VSTFJlcXVlc3ROUy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLVVJMUmVxdWVzdE5TLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0U0Njk0RjEyMTRFNkNCMDAwQjk4RUIgLyogV2Vi
Rm9ybUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJG
b3JtQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFNDY5NTAxMjE0
RTZDQjAwMEI5OEVCIC8qIFdlYkZvcm1DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViRm9ybUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
Q0U0Njk1MTEyMTRFNkNCMDAwQjk4RUIgLyogV2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZvcm1TdWJtaXNz
aW9uTGlzdGVuZXJQcm94eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MDAs
MTEgKzgwNCw3IEBACiAJCUJDRjUwNUU1MTI0MzA0N0IwMDU5NTVBRSAvKiBQbGF0Zm9ybUNlcnRp
ZmljYXRlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUNl
cnRpZmljYXRlSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0Y1MDVFNjEy
NDMwNDdCMDA1OTU1QUUgLyogUGxhdGZvcm1DZXJ0aWZpY2F0ZUluZm8ubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGNTA2ODQxMjQzMTg2MTAwNTk1NUFFIC8q
IFNlY3VyaXR5LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gU2VjdXJpdHkuZnJhbWV3b3Jr
OyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHkuZnJhbWV3b3JrOyBz
b3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwotCQlCQ0Y1MDcyMjEyNDMyOEE5MDA1OTU1QUUg
LyogV0tDZXJ0aWZpY2F0ZUluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tDZXJ0aWZpY2F0ZUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNGNTA3
MjMxMjQzMjhBOTAwNTk1NUFFIC8qIFdLQ2VydGlmaWNhdGVJbmZvLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLQ2VydGlmaWNhdGVJbmZvLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNGNTA3MjYxMjQzMjlBQTAwNTk1NUFFIC8qIFdlYkNlcnRp
ZmljYXRlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJDZXJ0aWZp
Y2F0ZUluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNGNTA3MkMxMjQzMkE5
NzAwNTk1NUFFIC8qIFdLQ2VydGlmaWNhdGVJbmZvTWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLQ2VydGlmaWNhdGVJbmZvTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUJDRjUwNzJEMTI0MzJBOTcwMDU5NTVBRSAvKiBXS0NlcnRpZmljYXRlSW5mb01h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLQ2VydGlmaWNh
dGVJbmZvTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0Y2OUY4NDExNzZD
RDZGMDA0NzFBNTIgLyogV2ViSGlzdG9yeUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJIaXN0b3J5Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkNGNjlGODUxMTc2Q0Q2RjAwNDcxQTUyIC8qIFdlYkhpc3RvcnlDbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViSGlzdG9yeUNsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0Y2OUY5ODExNzZDRUQ2MDA0NzFBNTIgLyog
V2ViTmF2aWdhdGlvbkRhdGFTdG9yZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMDQwLDYgKzEwNDAsNyBAQAogCQkxQUFEREY0QjEwRDgyQUYwMDBEM0Q2M0QgLyogU2hhcmVk
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlCQ0REQjMx
NDEyNEVCQ0VGMDA0OEQxM0MgLyogQVBJICovLAogCQkJCUJDMTExQjVGMTEyRjYzNUUwMDMzN0JB
QiAvKiBDb3JlSVBDU3VwcG9ydCAqLywKIAkJCQlCQzExMUI1QTExMkY2MjgyMDAzMzdCQUIgLyog
bWFjICovLAogCQkJCUJDRjA0QzhDMTFGRjlCN0QwMEY4NkE1OCAvKiBBUElPYmplY3QuaCAqLywK
QEAgLTEyODIsNDIgKzEyODMsMjMgQEAKIAkJQkMwQzM3NjYxMEY4MDc2NjAwNzZEN0NCIC8qIEMg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCUJDMjBFQkQw
MTE2RUY2NjcwMDA5NEE1MCAvKiBjZiAqLywKLQkJCQlCQ0UyMzI3NjEyMkM3MThGMDBENUMzNUEg
LyogbWFjICovLAogCQkJCUJDQjYzNDc3MTE2QkYxMDYwMDYwMzIxNSAvKiBXZWJLaXQyLmggKi8s
Ci0JCQkJQkMwQzM3NkQxMEY4MDg0NjAwNzZEN0NCIC8qIFdLQVBJQ2FzdC5oICovLAotCQkJCUJD
NjQ2ODBBMTFEQkJENjkwMDY0NTVCMCAvKiBXS0FycmF5LmNwcCAqLywKLQkJCQlCQzY0NjgwMjEx
REJCQTczMDA2NDU1QjAgLyogV0tBcnJheS5oICovLAorCQkJCUJDRERCMzJDMTI0RUMyRTEwMDQ4
RDEzQyAvKiBXS0FQSUNhc3QuaCAqLywKIAkJCQlCQzY0NkMxNjExREQzOTlGMDA2NDU1QjAgLyog
V0tCYWNrRm9yd2FyZExpc3QuY3BwICovLAogCQkJCUJDNjQ2QzE3MTFERDM5OUYwMDY0NTVCMCAv
KiBXS0JhY2tGb3J3YXJkTGlzdC5oICovLAogCQkJCUJDNjQ2QzE4MTFERDM5OUYwMDY0NTVCMCAv
KiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW0uY3BwICovLAogCQkJCUJDNjQ2QzE5MTFERDM5OUYwMDY0
NTVCMCAvKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCAqLywKLQkJCQlCQzBDMzc2NzEwRjgwN0Iy
MDA3NkQ3Q0IgLyogV0tCYXNlLmggKi8sCi0JCQkJQkNGNTA3MjMxMjQzMjhBOTAwNTk1NUFFIC8q
IFdLQ2VydGlmaWNhdGVJbmZvLmNwcCAqLywKLQkJCQlCQ0Y1MDcyMjEyNDMyOEE5MDA1OTU1QUUg
LyogV0tDZXJ0aWZpY2F0ZUluZm8uaCAqLywKIAkJCQlCQ0I5RTI0QTExMjBFMTVDMDBBMTM3RTAg
LyogV0tDb250ZXh0LmNwcCAqLywKIAkJCQlCQ0I5RTI0OTExMjBFMTVDMDBBMTM3RTAgLyogV0tD
b250ZXh0LmggKi8sCiAJCQkJQkNDOTM4RTAxMTgwREU0NDAwODVFNUZFIC8qIFdLQ29udGV4dFBy
aXZhdGUuaCAqLywKLQkJCQk1MTRBRjZDNjEyMDlFRTczMDBBMjZDOTcgLyogV0tEYXRhLmNwcCAq
LywKLQkJCQk1MTRBRjZDNzEyMDlFRTczMDBBMjZDOTcgLyogV0tEYXRhLmggKi8sCi0JCQkJQkNC
Q0IwRTIxMjE1RTU0RDAwREU1OUNBIC8qIFdLRGljdGlvbmFyeS5jcHAgKi8sCi0JCQkJQkNCQ0Iw
RTExMjE1RTU0RDAwREU1OUNBIC8qIFdLRGljdGlvbmFyeS5oICovLAotCQkJCTUxNkE0QTU4MTIw
QTFBQjUwMEMwNUI3RiAvKiBXS0Vycm9yLmNwcCAqLywKLQkJCQk1MTZBNEE1NzEyMEExQUI1MDBD
MDVCN0YgLyogV0tFcnJvci5oICovLAogCQkJCUJDRTQ2OTU3MTIxNEVERjQwMDBCOThFQiAvKiBX
S0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXIuY3BwICovLAogCQkJCUJDRTQ2OTU4MTIxNEVERjQwMDBC
OThFQiAvKiBXS0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXIuaCAqLywKIAkJCQlCQ0QwMTM5ODExMEZB
NDIwMDAzQjhBNjcgLyogV0tGcmFtZS5jcHAgKi8sCiAJCQkJQkNEMDEzOTcxMTBGQTQyMDAwM0I4
QTY3IC8qIFdLRnJhbWUuaCAqLywKIAkJCQlCQ0I5RjZBNDExMjNERDBEMDBBMTM3RTAgLyogV0tG
cmFtZVBvbGljeUxpc3RlbmVyLmNwcCAqLywKIAkJCQlCQ0I5RjZBMzExMjNERDBEMDBBMTM3RTAg
LyogV0tGcmFtZVBvbGljeUxpc3RlbmVyLmggKi8sCi0JCQkJQkNDODA0QTIxMjJGMEU3QjAwMTAz
NTI5IC8qIFdLTXV0YWJsZUFycmF5LmNwcCAqLywKLQkJCQlCQ0M4MDRBMTEyMkYwRTdCMDAxMDM1
MjkgLyogV0tNdXRhYmxlQXJyYXkuaCAqLywKLQkJCQlCQ0IwQUYzNDEyMzAxREZCMDBCMTM0MUUg
LyogV0tNdXRhYmxlRGljdGlvbmFyeS5jcHAgKi8sCi0JCQkJQkNCMEFGMzMxMjMwMURGQjAwQjEz
NDFFIC8qIFdLTXV0YWJsZURpY3Rpb25hcnkuaCAqLywKIAkJCQlCQ0Y2OUZBODExNzZEMUNCMDA0
NzFBNTIgLyogV0tOYXZpZ2F0aW9uRGF0YS5jcHAgKi8sCiAJCQkJQkNGNjlGQTcxMTc2RDFDQjAw
NDcxQTUyIC8qIFdLTmF2aWdhdGlvbkRhdGEuaCAqLywKLQkJCQlCQzMzREU4RDEyMzg1QzMzMDAz
NjBGM0YgLyogV0tOdW1iZXIuY3BwICovLAotCQkJCUJDMzNERThDMTIzODVDMzMwMDM2MEYzRiAv
KiBXS051bWJlci5oICovLAogCQkJCUJDRDU5N0Q0MTEyQjU2REMwMEVDOEMyMyAvKiBXS1BhZ2Uu
Y3BwICovLAogCQkJCUJDRDU5N0Q1MTEyQjU2REMwMEVDOEMyMyAvKiBXS1BhZ2UuaCAqLywKIAkJ
CQlCQ0VFOThDQTExMzMxNzRDMDA2QkNDMjQgLyogV0tQYWdlTmFtZXNwYWNlLmNwcCAqLywKQEAg
LTEzMjcsMTggKzEzMDksNiBAQAogCQkJCUJDRDU5N0NFMTEyQjU2QUMwMEVDOEMyMyAvKiBXS1By
ZWZlcmVuY2VzLmggKi8sCiAJCQkJNzYyQjc0OUQxMjBCQzhFQTAwODE5MzM5IC8qIFdLUHJlZmVy
ZW5jZXNQcml2YXRlLmNwcCAqLywKIAkJCQk3NjJCNzQ4NDEyMEJCQTJEMDA4MTkzMzkgLyogV0tQ
cmVmZXJlbmNlc1ByaXZhdGUuaCAqLywKLQkJCQlBNzJENUYyRjEyMzZGOUU4MDBBODhCMTUgLyog
V0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwICovLAotCQkJCUE3MkQ1RjJFMTIzNkY5RTgwMEE4
OEIxNSAvKiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovLAotCQkJCUJDMjBFQkFGMTE2RUVC
MDgwMDA5NEE1MCAvKiBXS1N0cmluZy5jcHAgKi8sCi0JCQkJQkMyMEVCQUUxMTZFRUIwODAwMDk0
QTUwIC8qIFdLU3RyaW5nLmggKi8sCi0JCQkJQkNEQjg1ODExMjAwRUM1NzAwNzI1NEJFIC8qIFdL
VHlwZS5jcHAgKi8sCi0JCQkJQkNEQjg1ODAxMjAwRUM1NzAwNzI1NEJFIC8qIFdLVHlwZS5oICov
LAotCQkJCUJDMjBFQkIzMTE2RUVGN0EwMDA5NEE1MCAvKiBXS1VSTC5jcHAgKi8sCi0JCQkJQkMy
MEVCQjIxMTZFRUY3QTAwMDk0QTUwIC8qIFdLVVJMLmggKi8sCi0JCQkJQkNFMjMxQzYxMjJDNDky
MzAwRDVDMzVBIC8qIFdLVVJMUmVxdWVzdC5jcHAgKi8sCi0JCQkJQkNFMjMxQzUxMjJDNDkyMzAw
RDVDMzVBIC8qIFdLVVJMUmVxdWVzdC5oICovLAotCQkJCUJDOTBBMURCMTIyREQ4OTgwMENDOEM1
MCAvKiBXS1VSTFJlc3BvbnNlLmNwcCAqLywKLQkJCQlCQzkwQTFEQTEyMkREODk4MDBDQzhDNTAg
LyogV0tVUkxSZXNwb25zZS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBDOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTE0NjcsNyArMTQzNyw2IEBACiAJCQkJQkMyMDRFRTkxMUM4M0VD
ODAwOEYzMzc1IC8qIFdLQnVuZGxlLmNwcCAqLywKIAkJCQlCQzIwNEVFQTExQzgzRUM4MDA4RjMz
NzUgLyogV0tCdW5kbGUuaCAqLywKIAkJCQlCQzIwNEVFQjExQzgzRUM4MDA4RjMzNzUgLyogV0tC
dW5kbGVBUElDYXN0LmggKi8sCi0JCQkJQkMyMDRFRUMxMUM4M0VDODAwOEYzMzc1IC8qIFdLQnVu
ZGxlQmFzZS5oICovLAogCQkJCUJDRDI1RjE2MTFENkJERTEwMDE2OUIwRSAvKiBXS0J1bmRsZUZy
YW1lLmNwcCAqLywKIAkJCQlCQ0QyNUYxNTExRDZCREUxMDAxNjlCMEUgLyogV0tCdW5kbGVGcmFt
ZS5oICovLAogCQkJCUJDRjA0OUU0MTFGRTIwRjYwMEY4NkE1OCAvKiBXS0J1bmRsZUZyYW1lUHJp
dmF0ZS5oICovLApAQCAtMTQ4OCwxNyArMTQ1Nyw2IEBACiAJCQlwYXRoID0gYzsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07Ci0JCUJDMjBFQkQwMTE2RUY2NjcwMDA5NEE1MCAvKiBj
ZiAqLyA9IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJQkMyMEVD
MDUxMTZFRjdGRjAwMDk0QTUwIC8qIFdLU3RyaW5nQ0YuY3BwICovLAotCQkJCUJDMjBFQzA0MTE2
RUY3RkYwMDA5NEE1MCAvKiBXS1N0cmluZ0NGLmggKi8sCi0JCQkJQkMyMEVENjUxMTZGOTcxMTAw
MDk0QTUwIC8qIFdLVVJMQ0YuY3BwICovLAotCQkJCUJDMjBFRDY0MTE2Rjk3MTEwMDA5NEE1MCAv
KiBXS1VSTENGLmggKi8sCi0JCQkpOwotCQkJcGF0aCA9IGNmOwotCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKLQkJfTsKIAkJQkMyRTZFNzQxMTQxOTZGMDAwQTYzQjFFIC8qIFBsYXRmb3JtICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE1MTcsNiArMTQ3
NSwzMCBAQAogCQkJcGF0aCA9IFBsYXRmb3JtOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
IAkJfTsKKwkJQkM0MDc1RDUxMjRGRUZGQTAwNjhGMjBBIC8qIGNmICovID0geworCQkJaXNhID0g
UEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQlCQzQwNzYxMTEyNEZGMDM3MDA2OEYyMEEg
LyogV0tTdHJpbmdDRi5jcHAgKi8sCisJCQkJQkM0MDc2MTIxMjRGRjAzNzAwNjhGMjBBIC8qIFdL
U3RyaW5nQ0YuaCAqLywKKwkJCQlCQzQwNzYxMzEyNEZGMDM3MDA2OEYyMEEgLyogV0tVUkxDRi5j
cHAgKi8sCisJCQkJQkM0MDc2MTQxMjRGRjAzNzAwNjhGMjBBIC8qIFdLVVJMQ0YuaCAqLywKKwkJ
CSk7CisJCQlwYXRoID0gY2Y7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQlC
QzQwNzVENjEyNEZGMDAwMDA2OEYyMEEgLyogbWFjICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQlCQzQwNzYyMTEyNEZGMDQwMDA2OEYyMEEgLyogV0tDZXJ0
aWZpY2F0ZUluZm9NYWMuaCAqLywKKwkJCQlCQzQwNzYyMjEyNEZGMDQwMDA2OEYyMEEgLyogV0tD
ZXJ0aWZpY2F0ZUluZm9NYWMubW0gKi8sCisJCQkJQkM0MDc2MjMxMjRGRjA0MDAwNjhGMjBBIC8q
IFdLVVJMUmVxdWVzdE5TLmggKi8sCisJCQkJQkM0MDc2MjQxMjRGRjA0MDAwNjhGMjBBIC8qIFdL
VVJMUmVxdWVzdE5TLm1tICovLAorCQkJCUJDNDA3NjI1MTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VS
TFJlc3BvbnNlTlMuaCAqLywKKwkJCQlCQzQwNzYyNjEyNEZGMDQwMDA2OEYyMEEgLyogV0tVUkxS
ZXNwb25zZU5TLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBtYWM7CisJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOworCQl9OwogCQlCQzRCRUU5NjEyMEEwOTE3MDBGQkEwQzcgLyogRE9NICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE1ODIsMTcgKzE1NjQs
NTEgQEAKIAkJCXBhdGggPSBtYWM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9Owot
CQlCQ0UyMzI3NjEyMkM3MThGMDBENUMzNUEgLyogbWFjICovID0geworCQlCQ0REQjMxNDEyNEVC
Q0VGMDA0OEQxM0MgLyogQVBJICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKLQkJCQlCQ0Y1MDcyQzEyNDMyQTk3MDA1OTU1QUUgLyogV0tDZXJ0aWZpY2F0ZUluZm9N
YWMuaCAqLywKLQkJCQlCQ0Y1MDcyRDEyNDMyQTk3MDA1OTU1QUUgLyogV0tDZXJ0aWZpY2F0ZUlu
Zm9NYWMubW0gKi8sCi0JCQkJQkNFMjMyNzcxMjJDNzFBQzAwRDVDMzVBIC8qIFdLVVJMUmVxdWVz
dE5TLmggKi8sCi0JCQkJQkNFMjMyNzgxMjJDNzFBQzAwRDVDMzVBIC8qIFdLVVJMUmVxdWVzdE5T
Lm1tICovLAotCQkJCUJDOTBBMURFMTIyREQ4RUUwMENDOEM1MCAvKiBXS1VSTFJlc3BvbnNlTlMu
aCAqLywKLQkJCQlCQzkwQTFERjEyMkREOEVFMDBDQzhDNTAgLyogV0tVUkxSZXNwb25zZU5TLm1t
ICovLAorCQkJCUJDRERCMzE1MTI0RUJDRkUwMDQ4RDEzQyAvKiBjICovLAogCQkJKTsKLQkJCXBh
dGggPSBtYWM7CisJCQlwYXRoID0gQVBJOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJ
fTsKKwkJQkNEREIzMTUxMjRFQkNGRTAwNDhEMTNDIC8qIGMgKi8gPSB7CisJCQlpc2EgPSBQQlhH
cm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUJDNDA3NUQ1MTI0RkVGRkEwMDY4RjIwQSAvKiBj
ZiAqLywKKwkJCQlCQzQwNzVENjEyNEZGMDAwMDA2OEYyMEEgLyogbWFjICovLAorCQkJCUJDNDA3
NUQ3MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0FycmF5LmNwcCAqLywKKwkJCQlCQzQwNzVEODEyNEZG
MDI3MDA2OEYyMEEgLyogV0tBcnJheS5oICovLAorCQkJCUJDRERCMzE2MTI0RUJEMTMwMDQ4RDEz
QyAvKiBXS0Jhc2UuaCAqLywKKwkJCQlCQzQwNzVEOTEyNEZGMDI3MDA2OEYyMEEgLyogV0tDZXJ0
aWZpY2F0ZUluZm8uY3BwICovLAorCQkJCUJDNDA3NURBMTI0RkYwMjcwMDY4RjIwQSAvKiBXS0Nl
cnRpZmljYXRlSW5mby5oICovLAorCQkJCUJDNDA3NURCMTI0RkYwMjcwMDY4RjIwQSAvKiBXS0Rh
dGEuY3BwICovLAorCQkJCUJDNDA3NURDMTI0RkYwMjcwMDY4RjIwQSAvKiBXS0RhdGEuaCAqLywK
KwkJCQlCQzQwNzVERDEyNEZGMDI3MDA2OEYyMEEgLyogV0tEaWN0aW9uYXJ5LmNwcCAqLywKKwkJ
CQlCQzQwNzVERTEyNEZGMDI3MDA2OEYyMEEgLyogV0tEaWN0aW9uYXJ5LmggKi8sCisJCQkJQkM0
MDc1REYxMjRGRjAyNzAwNjhGMjBBIC8qIFdLRXJyb3IuY3BwICovLAorCQkJCUJDNDA3NUUwMTI0
RkYwMjcwMDY4RjIwQSAvKiBXS0Vycm9yLmggKi8sCisJCQkJQkM0MDc1RTExMjRGRjAyNzAwNjhG
MjBBIC8qIFdLTXV0YWJsZUFycmF5LmNwcCAqLywKKwkJCQlCQzQwNzVFMjEyNEZGMDI3MDA2OEYy
MEEgLyogV0tNdXRhYmxlQXJyYXkuaCAqLywKKwkJCQlCQzQwNzVFMzEyNEZGMDI3MDA2OEYyMEEg
LyogV0tNdXRhYmxlRGljdGlvbmFyeS5jcHAgKi8sCisJCQkJQkM0MDc1RTQxMjRGRjAyNzAwNjhG
MjBBIC8qIFdLTXV0YWJsZURpY3Rpb25hcnkuaCAqLywKKwkJCQlCQzQwNzVFNTEyNEZGMDI3MDA2
OEYyMEEgLyogV0tOdW1iZXIuY3BwICovLAorCQkJCUJDNDA3NUU2MTI0RkYwMjcwMDY4RjIwQSAv
KiBXS051bWJlci5oICovLAorCQkJCUJDNDA3NUU3MTI0RkYwMjcwMDY4RjIwQSAvKiBXS1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHAgKi8sCisJCQkJQkM0MDc1RTgxMjRGRjAyNzAwNjhGMjBBIC8q
IFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmggKi8sCisJCQkJQkNEREIzMkExMjRFQzJBQjAwNDhE
MTNDIC8qIFdLU2hhcmVkQVBJQ2FzdC5oICovLAorCQkJCUJDNDA3NUU5MTI0RkYwMjcwMDY4RjIw
QSAvKiBXS1N0cmluZy5jcHAgKi8sCisJCQkJQkM0MDc1RUExMjRGRjAyNzAwNjhGMjBBIC8qIFdL
U3RyaW5nLmggKi8sCisJCQkJQkM0MDc1RUIxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVHlwZS5jcHAg
Ki8sCisJCQkJQkM0MDc1RUMxMjRGRjAyNzAwNjhGMjBBIC8qIFdLVHlwZS5oICovLAorCQkJCUJD
NDA3NUVEMTI0RkYwMjcwMDY4RjIwQSAvKiBXS1VSTC5jcHAgKi8sCisJCQkJQkM0MDc1RUUxMjRG
RjAyNzAwNjhGMjBBIC8qIFdLVVJMLmggKi8sCisJCQkJQkM0MDc1RUYxMjRGRjAyNzAwNjhGMjBB
IC8qIFdLVVJMUmVxdWVzdC5jcHAgKi8sCisJCQkJQkM0MDc1RjAxMjRGRjAyNzAwNjhGMjBBIC8q
IFdLVVJMUmVxdWVzdC5oICovLAorCQkJCUJDNDA3NUYxMTI0RkYwMjcwMDY4RjIwQSAvKiBXS1VS
TFJlc3BvbnNlLmNwcCAqLywKKwkJCQlCQzQwNzVGMjEyNEZGMDI3MDA2OEYyMEEgLyogV0tVUkxS
ZXNwb25zZS5oICovLAorCQkJKTsKKwkJCXBhdGggPSBjOwogCQkJc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsKIAkJfTsKIAkJQzBDRTcyOUQxMjQ3RTcxRDAwQkMwRUM0IC8qIERlcml2ZWQgU291cmNl
cyAqLyA9IHsKQEAgLTE3MTgsMTQgKzE3MzQsMTAgQEAKIAkJCQlCQ0I3MzQ2RTExQ0VFM0ZGMDBF
QzUwMDIgLyogV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZUtpbmRzLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0M1NzE1QjExNUFEQUVGMDAxQ0NBRjkgLyogV2ViU3lzdGVtSW50ZXJmYWNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQTU5NEFCQjExMkExRkI2MDA5REU3QzcgLyogV2ViVUlDbGllbnQuaCBp
biBIZWFkZXJzICovLAotCQkJCUJDMEMzNzZFMTBGODA4NDYwMDc2RDdDQiAvKiBXS0FQSUNhc3Qu
aCBpbiBIZWFkZXJzICovLAotCQkJCUJDNjQ2ODAzMTFEQkJBNzMwMDY0NTVCMCAvKiBXS0FycmF5
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzY0NkMxQjExREQzOTlGMDA2NDU1QjAgLyogV0tCYWNr
Rm9yd2FyZExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNjQ2QzFEMTFERDM5OUYwMDY0NTVC
MCAvKiBXS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaCBpbiBIZWFkZXJzICovLAotCQkJCUJDMEMzNzY4
MTBGODA3QjIwMDc2RDdDQiAvKiBXS0Jhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjA0RUVG
MTFDODNFQzgwMDhGMzM3NSAvKiBXS0J1bmRsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyMDRF
RjAxMUM4M0VDODAwOEYzMzc1IC8qIFdLQnVuZGxlQVBJQ2FzdC5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQkMyMDRFRjExMUM4M0VDODAwOEYzMzc1IC8qIFdLQnVuZGxlQmFzZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNEMjVGMTcxMUQ2QkRFMTAwMTY5QjBFIC8qIFdLQnVuZGxlRnJhbWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMjA0RUYyMTFDODNFQzgwMDhGMzM3NSAvKiBXS0J1bmRsZUluaXRp
YWxpemUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjA1MjgxMTFDOTQyODQwMDhGMzM3NSAvKiBX
S0J1bmRsZVBhZ2UuaCBpbiBIZWFkZXJzICovLApAQCAtMTc0MSwxMCArMTc1Myw2IEBACiAJCQkJ
QkNENTk3RDAxMTJCNTZBQzAwRUM4QzIzIC8qIFdLUHJlZmVyZW5jZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTc2MkI3NDhEMTIwQkM3NUMwMDgxOTMzOSAvKiBXS1ByZWZlcmVuY2VzUHJpdmF0ZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4QTUwMTUxMTc2NUY1NjAwNzU3NTczIC8qIFdLUmV0YWlu
UHRyLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzIwRUJCMDExNkVFQjA4MDAwOTRBNTAgLyogV0tT
dHJpbmcuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDMjBFQzA2MTE2RUY3RkYwMDA5NEE1MCAvKiBX
S1N0cmluZ0NGLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzIwRUJCNDExNkVFRjdBMDAwOTRBNTAg
LyogV0tVUkwuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDMjBFRDY2MTE2Rjk3MTEwMDA5NEE1MCAv
KiBXS1VSTENGLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNTExNkFBREFBMDAyQTkyNUIg
LyogV0tWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzg2OTlCNzExNkFBREFBMDAyQTkyNUIg
LyogV0tWaWV3SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMkU2RThDMTE0MTk3MTUw
MEE2M0IxRSAvKiBXb3JrSXRlbS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNzU4LDcgKzE3NjYsNiBA
QAogCQkJCTFBRTQ5NzY4MTFGRjY1OEUwMDQ4QjQ2NCAvKiBOUEpTT2JqZWN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUU0OTg3ODExRkY3RkFBMDA0OEI0NjQgLyogSlNOUE9iamVjdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFFNDlBNDkxMUZGQThDRTAwNDhCNDY0IC8qIEpTTlBNZXRob2QuaCBp
biBIZWFkZXJzICovLAotCQkJCUJDREI4NTgyMTIwMEVDNTcwMDcyNTRCRSAvKiBXS1R5cGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDREI4NkMxMTIwMEZCOTcwMDcyNTRCRSAvKiBXZWJVUkwuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDQjI4Q0MwMTIwMjMzRDkwMDdEOTlCQyAvKiBJbmplY3RlZEJ1
bmRsZU1lc3NhZ2VLaW5kcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDQjc1QzYxMjAzQTFDRTAw
MjIyRDFCIC8qIFdlYkNvbnRleHRNZXNzYWdlS2luZHMuaCBpbiBIZWFkZXJzICovLApAQCAtMTc2
Niw5ICsxNzczLDcgQEAKIAkJCQlEM0I5NDg0OTExRkY0QjY1MDAwMzJCMzkgLyogV2ViU2VhcmNo
UG9wdXBNZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkI2NTkyMzEyMDhCNERCMDA0NDgxNkMg
LyogRHJhd2luZ0FyZWFCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTU3OEI4MzEyMDlFQ0VG
MDBBMzdDNEEgLyogV2ViRGF0YS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE0QUY2QzkxMjA5RUU3
MzAwQTI2Qzk3IC8qIFdLRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzBFM0FBN0MxMjA5RTgz
QzAwQTQ5RDAxIC8qIE1vZHVsZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE2QTRBNTkxMjBBMUFC
NTAwQzA1QjdGIC8qIFdLRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNkE0QTVEMTIwQTJD
Q0QwMEMwNUI3RiAvKiBXZWJFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEyNEJFRDUxMjA4
OTREMTAwRkJCMDU5IC8qIFNoYXJlZE1lbW9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwRjI5
Q0MxMjBCMzcxNjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rVGFibGUuaCBpbiBIZWFkZXJzICovLApA
QCAtMTc4MywzMyArMTc4OCwyMiBAQAogCQkJCUJDRTQ2OTVBMTIxNEVERjQwMDBCOThFQiAvKiBX
S0Zvcm1TdWJtaXNzaW9uTGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRTQ2OTc3MTIx
NEYyN0IwMDBCOThFQiAvKiBXZWJGcmFtZUxpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDQkNCMENCMTIxNUUzMjEwMERFNTlDQSAvKiBJbW11dGFibGVEaWN0aW9uYXJ5LmggaW4g
SGVhZGVycyAqLywKLQkJCQlCQ0JDQjBFMzEyMTVFNTREMDBERTU5Q0EgLyogV0tEaWN0aW9uYXJ5
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzkxRjJDQjEyMUI2N0FEMDBFQkY3RTggLyogV2ViRnJh
bWVOZXR3b3JraW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFMjMxNUQxMjJDMzBD
QTAwRDVDMzVBIC8qIFdlYlVSTFJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDRTIzMUM3
MTIyQzQ5MjMwMEQ1QzM1QSAvKiBXS1VSTFJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAotCQkJCUJD
RTIzMjc5MTIyQzcxQUMwMEQ1QzM1QSAvKiBXS1VSTFJlcXVlc3ROUy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM5MEExRDIxMjJERDU1RTAwQ0M4QzUwIC8qIFdlYlVSTFJlc3BvbnNlLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlCQzkwQTFEQzEyMkREODk4MDBDQzhDNTAgLyogV0tVUkxSZXNwb25zZS5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJQkM5MEExRTAxMjJERDhFRTAwQ0M4QzUwIC8qIFdLVVJMUmVz
cG9uc2VOUy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkNCMEFEMkQxMjJGMjg0MzAwQjEzNDFFIC8q
IFdLTXV0YWJsZUFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0IwQUQzNDEyMkYyODU4MDBC
MTM0MUUgLyogTXV0YWJsZUFycmF5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0IwQUVFOTEyMkY1
M0UzMDBCMTM0MUUgLyogTXV0YWJsZURpY3Rpb25hcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCUJD
QjBBRjM1MTIzMDFERkIwMEIxMzQxRSAvKiBXS011dGFibGVEaWN0aW9uYXJ5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0IwQjBEQzEyMzA1QTI1MDBCMTM0MUUgLyogV2ViQ29udGV4dFVzZXJNZXNz
YWdlQ29kZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0IwQjBERTEyMzA1QThDMDBCMTM0MUUg
LyogSW5qZWN0ZWRCdW5kbGVVc2VyTWVzc2FnZUNvZGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNCMEIwRTAxMjMwNUFCMTAwQjEzNDFFIC8qIFVzZXJNZXNzYWdlQ29kZXJzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0EwRUY3RjEyMzMxRTc4MDA3RDNDRkIgLyogV2ViRWRpdENvbW1hbmQuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDQTBFRjlGMTIzMzI2NDIwMDdEM0NGQiAvKiBXZWJFZGl0Q29t
bWFuZFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzMzREQ2ODEyMzg0NjQ2MDAzNjBGM0Yg
LyogV2ViTnVtYmVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzMzREU4RTEyMzg1QzMzMDAzNjBG
M0YgLyogV0tOdW1iZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDMzNERjA2MTIzODY3N0YwMDM2
MEYzRiAvKiBXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNG
NTAxMjExMjNFRDNCMzAwNTk1NUFFIC8qIFRocmVhZExhdW5jaGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzMzRTBEMTEyNDA4RTg2MDAzNjBGM0YgLyogSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRs
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM2MEM1NzkxMjQwQTU0NjAwOEM1RTI5IC8qIFdLQnVu
ZGxlUmFuZ2VIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRjUwNUU3MTI0MzA0N0IwMDU5
NTVBRSAvKiBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkNG
NTA3MjQxMjQzMjhBOTAwNTk1NUFFIC8qIFdLQ2VydGlmaWNhdGVJbmZvLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0Y1MDcyODEyNDMyOUFBMDA1OTU1QUUgLyogV2ViQ2VydGlmaWNhdGVJbmZvLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlCQ0Y1MDcyRTEyNDMyQTk3MDA1OTU1QUUgLyogV0tDZXJ0aWZp
Y2F0ZUluZm9NYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUMwQ0U3MkExMTI0N0U3MUQwMEJDMEVD
NCAvKiBXZWJQYWdlTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUMwQ0U3MkFEMTI0N0U3
OEQwMEJDMEVDNCAvKiBIYW5kbGVNZXNzYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTBFQzYw
MzEyNEE5RjJDMDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCBpbiBIZWFkZXJzICov
LApAQCAtMTgyMyw2ICsxODE3LDI4IEBACiAJCQkJMUEwNDM5NzYxMjREMDM0ODAwRkZCRkI1IC8q
IFBsdWdpblByb2Nlc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMDQzQTA5MTI0RDExQTkwMEZG
QkZCNSAvKiBXZWJQcm9jZXNzQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEwNDNC
NUUxMjRENUU5RDAwRkZCRkI1IC8qIFBsdWdpblByb2Nlc3NQcm94eU1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlCQ0REQjMxNzEyNEVCRDEzMDA0OEQxM0MgLyogV0tCYXNlLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlCQ0REQjMyQjEyNEVDMkFCMDA0OEQxM0MgLyogV0tTaGFyZWRBUElDYXN0
LmggaW4gSGVhZGVycyAqLywKKwkJCQlCQ0REQjMyRDEyNEVDMkUxMDA0OEQxM0MgLyogV0tBUElD
YXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzQwNzVGNDEyNEZGMDI3MDA2OEYyMEEgLyogV0tB
cnJheS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0MDc1RjYxMjRGRjAyNzAwNjhGMjBBIC8qIFdL
Q2VydGlmaWNhdGVJbmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzQwNzVGODEyNEZGMDI3MDA2
OEYyMEEgLyogV0tEYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzQwNzVGQTEyNEZGMDI3MDA2
OEYyMEEgLyogV0tEaWN0aW9uYXJ5LmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzQwNzVGQzEyNEZG
MDI3MDA2OEYyMEEgLyogV0tFcnJvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0MDc1RkUxMjRG
RjAyNzAwNjhGMjBBIC8qIFdLTXV0YWJsZUFycmF5LmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzQw
NzYwMDEyNEZGMDI3MDA2OEYyMEEgLyogV0tNdXRhYmxlRGljdGlvbmFyeS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQkM0MDc2MDIxMjRGRjAyNzAwNjhGMjBBIC8qIFdLTnVtYmVyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQlCQzQwNzYwNDEyNEZGMDI3MDA2OEYyMEEgLyogV0tTZXJpYWxpemVkU2NyaXB0
VmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNDA3NjA2MTI0RkYwMjcwMDY4RjIwQSAvKiBX
S1N0cmluZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0MDc2MDgxMjRGRjAyNzAwNjhGMjBBIC8q
IFdLVHlwZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0MDc2MEExMjRGRjAyNzAwNjhGMjBBIC8q
IFdLVVJMLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzQwNzYwQzEyNEZGMDI3MDA2OEYyMEEgLyog
V0tVUkxSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzQwNzYwRTEyNEZGMDI3MDA2OEYy
MEEgLyogV0tVUkxSZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJQkM0MDc2MUExMjRGRjAz
NzAwNjhGMjBBIC8qIFdLU3RyaW5nQ0YuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDNDA3NjFDMTI0
RkYwMzcwMDY4RjIwQSAvKiBXS1VSTENGLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQzQwNzYyNzEy
NEZGMDQwMDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUluZm9NYWMuaCBpbiBIZWFkZXJzICovLAor
CQkJCUJDNDA3NjI5MTI0RkYwNDAwMDY4RjIwQSAvKiBXS1VSTFJlcXVlc3ROUy5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQkM0MDc2MkIxMjRGRjA0MDAwNjhGMjBBIC8qIFdLVVJMUmVzcG9uc2VOUy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC0yMDE2LDcgKzIwMzIsNiBAQAogCQkJCTBGNTI2Njc0MTFERDRB
NDkwMDA2RDMzQyAvKiBXZWJQcm9jZXNzUHJveHlNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlC
Q0M1NzE1QzExNUFEQUVGMDAxQ0NBRjkgLyogV2ViU3lzdGVtSW50ZXJmYWNlLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMUE1OTRBQkExMTJBMUZCNjAwOURFN0M3IC8qIFdlYlVJQ2xpZW50LmNwcCBp
biBTb3VyY2VzICovLAotCQkJCUJDNjQ2ODBCMTFEQkJENjkwMDY0NTVCMCAvKiBXS0FycmF5LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUJDNjQ2QzFBMTFERDM5OUYwMDY0NTVCMCAvKiBXS0JhY2tG
b3J3YXJkTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzY0NkMxQzExREQzOTlGMDA2NDU1
QjAgLyogV0tCYWNrRm9yd2FyZExpc3RJdGVtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMjA0
RUVFMTFDODNFQzgwMDhGMzM3NSAvKiBXS0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIw
MzAsMTAgKzIwNDUsNiBAQAogCQkJCUJDRUU5OENDMTEzMzE3NEMwMDZCQ0MyNCAvKiBXS1BhZ2VO
YW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNENTk3RDExMTJCNTZBQzAwRUM4QzIz
IC8qIFdLUHJlZmVyZW5jZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzYyQjc0QUYxMjBCQzk0
RjAwODE5MzM5IC8qIFdLUHJlZmVyZW5jZXNQcml2YXRlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUJDMjBFQkIxMTE2RUVCMDgwMDA5NEE1MCAvKiBXS1N0cmluZy5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQlCQzIwRUMwNzExNkVGN0ZGMDAwOTRBNTAgLyogV0tTdHJpbmdDRi5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQlCQzIwRUJCNTExNkVFRjdBMDAwOTRBNTAgLyogV0tVUkwuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJQkMyMEVENjcxMTZGOTcxMTAwMDk0QTUwIC8qIFdLVVJMQ0YuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM4Njk5QjYxMTZBQURBQTAwMkE5MjVCIC8qIFdLVmlldy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUJDMkU2RThEMTE0MTk3MTUwMEE2M0IxRSAvKiBXb3JrUXVldWUuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwMDkyRjgxMTU4MzdBMzAwRTBBRTJBIC8qIFdvcmtRdWV1
ZU1hYy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTIwNDUsMTMgKzIwNTYsMTAgQEAKIAkJCQkxQUU0
OTc2OTExRkY2NThFMDA0OEI0NjQgLyogTlBKU09iamVjdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQUU0OTg3OTExRkY3RkFBMDA0OEI0NjQgLyogSlNOUE9iamVjdC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQUU0OUE0QTExRkZBOENFMDA0OEI0NjQgLyogSlNOUE1ldGhvZC5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQlCQ0RCODU4MzEyMDBFQzU3MDA3MjU0QkUgLyogV0tUeXBlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUQzQjk0ODQ2MTFGRjRCNjUwMDAzMkIzOSAvKiBXZWJQb3B1cE1lbnUu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDNCOTQ4NDgxMUZGNEI2NTAwMDMyQjM5IC8qIFdlYlNl
YXJjaFBvcHVwTWVudS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MTRBRjZDODEyMDlFRTczMDBB
MjZDOTcgLyogV0tEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMwRTNBQTdBMTIwOUU4MzAw
MEE0OUQwMSAvKiBNb2R1bGVNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlDMEUzQUE3QjEyMDlF
ODM1MDBBNDlEMDEgLyogTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTUxNkE0QTVBMTIw
QTFBQjUwMEMwNUI3RiAvKiBXS0Vycm9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMjRCRjNB
MTIwODk2QTYwMEZCQjA1OSAvKiBTaGFyZWRNZW1vcnlNYWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUEwRjI5Q0IxMjBCMzcxNjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rVGFibGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMUEwRjI5RTMxMjBCNDQ0MjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rUHJv
dmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMDY1LDMzICsyMDczLDIyIEBACiAJCQkJQkNF
NDY5NTkxMjE0RURGNDAwMEI5OEVCIC8qIFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQ0U0Njk3OTEyMTRGMkI0MDAwQjk4RUIgLyogV2ViRnJhbWVMaXN0
ZW5lclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQkNCMENEMTIxNUUzM0EwMERFNTlD
QSAvKiBJbW11dGFibGVEaWN0aW9uYXJ5LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDQkNCMEU0
MTIxNUU1NEQwMERFNTlDQSAvKiBXS0RpY3Rpb25hcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTM5MUYyQ0ExMjFCNjc5QTAwRUJGN0U4IC8qIFdlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQubW0g
aW4gU291cmNlcyAqLywKIAkJCQlCQ0UyMzE1RTEyMkMzMENBMDBENUMzNUEgLyogV2ViVVJMUmVx
dWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0UyMzFDMjEyMkM0NjZFMDBENUMzNUEgLyog
V2ViVVJMUmVxdWVzdE1hYy5tbSBpbiBTb3VyY2VzICovLAotCQkJCUJDRTIzMUM4MTIyQzQ5MjMw
MEQ1QzM1QSAvKiBXS1VSTFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNFMjMyNjMx
MjJDNkNGMzAwRDVDMzVBIC8qIFdlYkNvcmVBcmd1bWVudENvZGVyc01hYy5tbSBpbiBTb3VyY2Vz
ICovLAotCQkJCUJDRTIzMjdBMTIyQzcxQUMwMEQ1QzM1QSAvKiBXS1VSTFJlcXVlc3ROUy5tbSBp
biBTb3VyY2VzICovLAogCQkJCUJDOTBBMUQzMTIyREQ1NUUwMENDOEM1MCAvKiBXZWJVUkxSZXNw
b25zZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzkwQTFENzEyMkRENjZBMDBDQzhDNTAgLyog
V2ViVVJMUmVzcG9uc2VNYWMubW0gaW4gU291cmNlcyAqLywKLQkJCQlCQzkwQTFERDEyMkREODk4
MDBDQzhDNTAgLyogV0tVUkxSZXNwb25zZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQzkwQTFF
MTEyMkREOEVFMDBDQzhDNTAgLyogV0tVUkxSZXNwb25zZU5TLm1tIGluIFNvdXJjZXMgKi8sCi0J
CQkJQkNCMEFEMkUxMjJGMjg0NzAwQjEzNDFFIC8qIFdLTXV0YWJsZUFycmF5LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDQjBBRDMzMTIyRjI4NTgwMEIxMzQxRSAvKiBNdXRhYmxlQXJyYXkuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCMEFFRUExMjJGNTNFMzAwQjEzNDFFIC8qIE11dGFibGVE
aWN0aW9uYXJ5LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDQjBBRjM2MTIzMDFERkIwMEIxMzQx
RSAvKiBXS011dGFibGVEaWN0aW9uYXJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQTBFRjgw
MTIzMzFFNzgwMDdEM0NGQiAvKiBXZWJFZGl0Q29tbWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQ0EwRUZBMDEyMzMyNjQyMDA3RDNDRkIgLyogV2ViRWRpdENvbW1hbmRQcm94eS5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQlBNzJENjEwQjEyMzcxNDRGMDBBODhCMTUgLyogV0tTZXJpYWxpemVk
U2NyaXB0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkMzM0RFOEYxMjM4NUMzMzAwMzYw
RjNGIC8qIFdLTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDRjUwMTIyMTIzRUQzQjMw
MDU5NTVBRSAvKiBUaHJlYWRMYXVuY2hlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0Y1MDFC
NDEyM0VGNjAyMDA1OTU1QUUgLyogVGhyZWFkTGF1bmNoZXJNYWMubW0gaW4gU291cmNlcyAqLywK
IAkJCQlDNTIzN0Y2MDEyNDQxQ0EzMDA3ODA0NzIgLyogV2ViRWRpdG9yQ2xpZW50TWFjLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkMzM0UwRDIxMjQwOEU4NjAwMzYwRjNGIC8qIEluamVjdGVkQnVu
ZGxlUmFuZ2VIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM2MEM1N0ExMjQwQTU0NjAw
OEM1RTI5IC8qIFdLQnVuZGxlUmFuZ2VIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNG
NTA1RTgxMjQzMDQ3QjAwNTk1NUFFIC8qIFBsYXRmb3JtQ2VydGlmaWNhdGVJbmZvLm1tIGluIFNv
dXJjZXMgKi8sCi0JCQkJQkNGNTA3MjUxMjQzMjhBOTAwNTk1NUFFIC8qIFdLQ2VydGlmaWNhdGVJ
bmZvLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDRjUwNzJGMTI0MzJBOTcwMDU5NTVBRSAvKiBX
S0NlcnRpZmljYXRlSW5mb01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMwQ0U3MkEwMTI0N0U3
MUQwMEJDMEVDNCAvKiBXZWJQYWdlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTFBMEVDNjA0MTI0QTlGMkMwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNzTWFuYWdlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxQTBFQzc1RjEyNEJDN0IyMDA3RUY0QTUgLyogUGx1Z2luUHJv
Y2Vzc1Byb3h5LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjEwNCw2ICsyMTAxLDI1IEBACiAJCQkJ
MUEwNDNBMEExMjREMTFBOTAwRkZCRkI1IC8qIFdlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUMwNkM2MDk1MTI0QzE0NEIwMDAxNjgyRiAvKiBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMDQzQjVEMTI0RDVFOUQwMEZG
QkZCNSAvKiBQbHVnaW5Qcm9jZXNzUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJQkM0MDc1RjMxMjRGRjAyNzAwNjhGMjBBIC8qIFdLQXJyYXkuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJQkM0MDc1RjUxMjRGRjAyNzAwNjhGMjBBIC8qIFdLQ2VydGlmaWNhdGVJbmZv
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDNDA3NUY3MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0Rh
dGEuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkM0MDc1RjkxMjRGRjAyNzAwNjhGMjBBIC8qIFdL
RGljdGlvbmFyeS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzQwNzVGQjEyNEZGMDI3MDA2OEYy
MEEgLyogV0tFcnJvci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzQwNzVGRDEyNEZGMDI3MDA2
OEYyMEEgLyogV0tNdXRhYmxlQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkM0MDc1RkYx
MjRGRjAyNzAwNjhGMjBBIC8qIFdLTXV0YWJsZURpY3Rpb25hcnkuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQkM0MDc2MDExMjRGRjAyNzAwNjhGMjBBIC8qIFdLTnVtYmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUJDNDA3NjAzMTI0RkYwMjcwMDY4RjIwQSAvKiBXS1NlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzQwNzYwNTEyNEZGMDI3MDA2OEYyMEEgLyog
V0tTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkM0MDc2MDcxMjRGRjAyNzAwNjhGMjBB
IC8qIFdLVHlwZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzQwNzYwOTEyNEZGMDI3MDA2OEYy
MEEgLyogV0tVUkwuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkM0MDc2MEIxMjRGRjAyNzAwNjhG
MjBBIC8qIFdLVVJMUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzQwNzYwRDEyNEZG
MDI3MDA2OEYyMEEgLyogV0tVUkxSZXNwb25zZS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzQw
NzYxOTEyNEZGMDM3MDA2OEYyMEEgLyogV0tTdHJpbmdDRi5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlCQzQwNzYxQjEyNEZGMDM3MDA2OEYyMEEgLyogV0tVUkxDRi5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlCQzQwNzYyODEyNEZGMDQwMDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUluZm9NYWMubW0g
aW4gU291cmNlcyAqLywKKwkJCQlCQzQwNzYyQTEyNEZGMDQwMDA2OEYyMEEgLyogV0tVUkxSZXF1
ZXN0TlMubW0gaW4gU291cmNlcyAqLywKKwkJCQlCQzQwNzYyQzEyNEZGMDQwMDA2OEYyMEEgLyog
V0tVUkxSZXNwb25zZU5TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuaAkocmV2aXNpb24gNjgz
MjEpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAogI2RlZmluZSBXS0J1bmRsZV9oCiAK
ICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgotI2luY2x1ZGUgPFdlYktpdDIvV0tCdW5kbGVC
YXNlLmg+CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogZXh0ZXJuICJDIiB7CkluZGV4OiBXZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVBUElDYXN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
QVBJQ2FzdC5oCShyZXZpc2lvbiA2ODMyMikKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUFQSUNhc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyAr
MjYsNyBAQAogI2lmbmRlZiBXS0J1bmRsZUFQSUNhc3RfaAogI2RlZmluZSBXS0J1bmRsZUFQSUNh
c3RfaAogCi0jaW5jbHVkZSAiV0tCdW5kbGVCYXNlLmgiCisjaW5jbHVkZSAiV0tTaGFyZWRBUElD
YXN0LmgiCiAjaW5jbHVkZSAiV0tCdW5kbGVQYWdlLmgiCiAjaW5jbHVkZSAiV0tCdW5kbGVQYWdl
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldLQnVuZGxlUHJpdmF0ZS5oIgpAQCAtNDksNDIgKzQ5LDE0
IEBAIGNsYXNzIEluamVjdGVkQnVuZGxlU2NyaXB0V29ybGQ7CiBjbGFzcyBXZWJGcmFtZTsKIGNs
YXNzIFdlYlBhZ2U7CiAKLXRlbXBsYXRlPHR5cGVuYW1lIEFQSVR5cGU+IHN0cnVjdCBCdW5kbGVB
UElUeXBlSW5mbyB7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBCdW5kbGVBUElUeXBlSW5mbzxXS0J1
bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25SZWY+ICAgICB7IHR5cGVkZWYgV2ViQ29yZTo6Q1NTU3R5
bGVEZWNsYXJhdGlvbiogSW1wbFR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBCdW5kbGVBUElU
eXBlSW5mbzxXS0J1bmRsZUZyYW1lUmVmPiAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV2Vi
RnJhbWUqIEltcGxUeXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgQnVuZGxlQVBJVHlwZUluZm88
V0tCdW5kbGVIaXRUZXN0UmVzdWx0UmVmPiAgICAgICAgICAgeyB0eXBlZGVmIEluamVjdGVkQnVu
ZGxlSGl0VGVzdFJlc3VsdCogSW1wbFR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBCdW5kbGVB
UElUeXBlSW5mbzxXS0J1bmRsZU5vZGVIYW5kbGVSZWY+ICAgICAgICAgICAgICB7IHR5cGVkZWYg
SW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlKiBJbXBsVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0
IEJ1bmRsZUFQSVR5cGVJbmZvPFdLQnVuZGxlUGFnZVJlZj4gICAgICAgICAgICAgICAgICAgIHsg
dHlwZWRlZiBXZWJQYWdlKiBJbXBsVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0IEJ1bmRsZUFQ
SVR5cGVJbmZvPFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWY+ICAgICAgICAgICAgIHsgdHlwZWRlZiBJ
bmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlKiBJbXBsVHlwZTsgfTsKLXRlbXBsYXRlPD4gc3RydWN0
IEJ1bmRsZUFQSVR5cGVJbmZvPFdLQnVuZGxlUmVmPiAgICAgICAgICAgICAgICAgICAgICAgIHsg
dHlwZWRlZiBJbmplY3RlZEJ1bmRsZSogSW1wbFR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBC
dW5kbGVBUElUeXBlSW5mbzxXS0J1bmRsZVNjcmlwdFdvcmxkUmVmPiAgICAgICAgICAgICB7IHR5
cGVkZWYgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCogSW1wbFR5cGU7IH07Ci0KLXRlbXBsYXRl
PHR5cGVuYW1lIEltcGxUeXBlPiBzdHJ1Y3QgQnVuZGxlSW1wbFR5cGVJbmZvIHsgfTsKLXRlbXBs
YXRlPD4gc3RydWN0IEJ1bmRsZUltcGxUeXBlSW5mbzxJbmplY3RlZEJ1bmRsZSo+ICAgICAgICAg
ICAgICAgICAgIHsgdHlwZWRlZiBXS0J1bmRsZVJlZiBBUElUeXBlOyB9OwotdGVtcGxhdGU8PiBz
dHJ1Y3QgQnVuZGxlSW1wbFR5cGVJbmZvPEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdCo+ICAg
ICAgeyB0eXBlZGVmIFdLQnVuZGxlSGl0VGVzdFJlc3VsdFJlZiBBUElUeXBlOyB9OwotdGVtcGxh
dGU8PiBzdHJ1Y3QgQnVuZGxlSW1wbFR5cGVJbmZvPEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZSo+
ICAgICAgICAgeyB0eXBlZGVmIFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBBUElUeXBlOyB9OwotdGVt
cGxhdGU8PiBzdHJ1Y3QgQnVuZGxlSW1wbFR5cGVJbmZvPEluamVjdGVkQnVuZGxlUmFuZ2VIYW5k
bGUqPiAgICAgICAgeyB0eXBlZGVmIFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgQVBJVHlwZTsgfTsK
LXRlbXBsYXRlPD4gc3RydWN0IEJ1bmRsZUltcGxUeXBlSW5mbzxJbmplY3RlZEJ1bmRsZVNjcmlw
dFdvcmxkKj4gICAgICAgIHsgdHlwZWRlZiBXS0J1bmRsZVNjcmlwdFdvcmxkUmVmIEFQSVR5cGU7
IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBCdW5kbGVJbXBsVHlwZUluZm88V2ViQ29yZTo6Q1NTU3R5
bGVEZWNsYXJhdGlvbio+ICAgICB7IHR5cGVkZWYgV0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9u
UmVmIEFQSVR5cGU7IH07Ci10ZW1wbGF0ZTw+IHN0cnVjdCBCdW5kbGVJbXBsVHlwZUluZm88V2Vi
RnJhbWUqPiAgICAgICAgICAgICAgICAgICAgICAgICB7IHR5cGVkZWYgV0tCdW5kbGVGcmFtZVJl
ZiBBUElUeXBlOyB9OwotdGVtcGxhdGU8PiBzdHJ1Y3QgQnVuZGxlSW1wbFR5cGVJbmZvPFdlYlBh
Z2UqPiAgICAgICAgICAgICAgICAgICAgICAgICAgeyB0eXBlZGVmIFdLQnVuZGxlUGFnZVJlZiBB
UElUeXBlOyB9OwotCi0vKiBPcGFxdWUgdHlwaW5nIGNvbnZlbmllbmNlIG1ldGhvZHMgKi8KLQot
dGVtcGxhdGU8dHlwZW5hbWUgVD4KLWlubGluZSB0eXBlbmFtZSBCdW5kbGVBUElUeXBlSW5mbzxU
Pjo6SW1wbFR5cGUgdG9XSyhUIHQpCi17Ci0gICAgdHlwZWRlZiB0eXBlbmFtZSBXVEY6OlJlbW92
ZVBvaW50ZXI8VD46OlR5cGUgUG90ZW50aWFsbHlDb25zdFZhbHVlVHlwZTsKLSAgICB0eXBlZGVm
IHR5cGVuYW1lIFdURjo6UmVtb3ZlQ29uc3Q8UG90ZW50aWFsbHlDb25zdFZhbHVlVHlwZT46OlR5
cGUgTm9uQ29uc3RWYWx1ZVR5cGU7Ci0KLSAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx0eXBl
bmFtZSBCdW5kbGVBUElUeXBlSW5mbzxUPjo6SW1wbFR5cGU+KGNvbnN0X2Nhc3Q8Tm9uQ29uc3RW
YWx1ZVR5cGUqPih0KSk7Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1pbmxpbmUgdHlwZW5h
bWUgQnVuZGxlSW1wbFR5cGVJbmZvPFQ+OjpBUElUeXBlIHRvUmVmKFQgdCkKLXsKLSAgICByZXR1
cm4gcmVpbnRlcnByZXRfY2FzdDx0eXBlbmFtZSBCdW5kbGVJbXBsVHlwZUluZm88VD46OkFQSVR5
cGU+KHQpOwotfQorV0tfQUREX0FQSV9NQVBQSU5HKFdLQnVuZGxlQ1NTU3R5bGVEZWNsYXJhdGlv
blJlZiwgV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbikKK1dLX0FERF9BUElfTUFQUElORyhX
S0J1bmRsZUZyYW1lUmVmLCBXZWJGcmFtZSkKK1dLX0FERF9BUElfTUFQUElORyhXS0J1bmRsZUhp
dFRlc3RSZXN1bHRSZWYsIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdCkKK1dLX0FERF9BUElf
TUFQUElORyhXS0J1bmRsZU5vZGVIYW5kbGVSZWYsIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZSkK
K1dLX0FERF9BUElfTUFQUElORyhXS0J1bmRsZVBhZ2VSZWYsIFdlYlBhZ2UpCitXS19BRERfQVBJ
X01BUFBJTkcoV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiwgSW5qZWN0ZWRCdW5kbGVSYW5nZUhhbmRs
ZSkKK1dLX0FERF9BUElfTUFQUElORyhXS0J1bmRsZVJlZiwgSW5qZWN0ZWRCdW5kbGUpCitXS19B
RERfQVBJX01BUFBJTkcoV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiwgSW5qZWN0ZWRCdW5kbGVTY3Jp
cHRXb3JsZCkKIAogaW5saW5lIFdLSW5zZXJ0QWN0aW9uVHlwZSB0b1dLKFdlYkNvcmU6OkVkaXRv
ckluc2VydEFjdGlvbiBhY3Rpb24pCiB7CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFzZS5oCShyZXZpc2lvbiA2ODMy
MikKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJh
c2UuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRl
ZiBXS0J1bmRsZUJhc2VfaAotI2RlZmluZSBXS0J1bmRsZUJhc2VfaAotCi10eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS0J1bmRsZSogV0tCdW5kbGVSZWY7Ci10eXBlZGVmIGNvbnN0IHN0cnVj
dCBPcGFxdWVXS0J1bmRsZUZyYW1lKiBXS0J1bmRsZUZyYW1lUmVmOwotdHlwZWRlZiBjb25zdCBz
dHJ1Y3QgT3BhcXVlV0tCdW5kbGVIaXRUZXN0UmVzdWx0KiBXS0J1bmRsZUhpdFRlc3RSZXN1bHRS
ZWY7Ci10eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS0J1bmRsZU5vZGVIYW5kbGUqIFdLQnVu
ZGxlTm9kZUhhbmRsZVJlZjsKLXR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQnVuZGxlUGFn
ZSogV0tCdW5kbGVQYWdlUmVmOwotdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tCdW5kbGVS
YW5nZUhhbmRsZSogV0tCdW5kbGVSYW5nZUhhbmRsZVJlZjsKLXR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLQnVuZGxlU2NyaXB0V29ybGQqIFdLQnVuZGxlU2NyaXB0V29ybGRSZWY7Ci0KLXR5
cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLQnVuZGxlRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiog
V0tCdW5kbGVDU1NTdHlsZURlY2xhcmF0aW9uUmVmOwotCi0jdW5kZWYgV0tfRVhQT1JUCi0jaWYg
ZGVmaW5lZChXS19OT19FWFBPUlQpCi0jZGVmaW5lIFdLX0VYUE9SVAotI2VsaWYgZGVmaW5lZChf
X0dOVUNfXykKLSNkZWZpbmUgV0tfRVhQT1JUIF9fYXR0cmlidXRlX18oKHZpc2liaWxpdHkoImRl
ZmF1bHQiKSkpCi0jZWxpZiBkZWZpbmVkKFdJTjMyKSB8fCBkZWZpbmVkKF9XSU4zMikKLSNpZiBC
VUlMRElOR19XRUJLSVQKLSNkZWZpbmUgV0tfRVhQT1JUIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQot
I2Vsc2UKLSNkZWZpbmUgV0tfRVhQT1JUIF9fZGVjbHNwZWMoZGxsaW1wb3J0KQotI2VuZGlmCi0j
ZWxzZQotI2RlZmluZSBXS19FWFBPUlQKLSNlbmRpZgotCi0jZW5kaWYgLyogV0tCdW5kbGVCYXNl
X2ggKi8KSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUZyYW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuaAkocmV2aXNpb24gNjgzMjEpCisrKyBXZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Lmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KLSNpbmNsdWRlIDxXZWJLaXQyL1dL
QnVuZGxlQmFzZS5oPgogCiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVybiAiQyIgewpJbmRleDog
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWVQcml2
YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlRnJhbWVQcml2YXRlLmgJKHJldmlzaW9uIDY4MzIxKQorKysgV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWVQcml2YXRlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHQuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgotI2luY2x1ZGUgPFdl
YktpdDIvV0tCdW5kbGVCYXNlLmg+CiAKICNpZm5kZWYgX19jcGx1c3BsdXMKICNpbmNsdWRlIDxz
dGRib29sLmg+CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVIaXRUZXN0UmVzdWx0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSGl0VGVzdFJlc3VsdC5oCShyZXZpc2lvbiA2
ODMyMikKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZUhpdFRlc3RSZXN1bHQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAogI2RlZmlu
ZSBXS0J1bmRsZUhpdFRlc3RSZXN1bHRfaAogCiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4K
LSNpbmNsdWRlIDxXZWJLaXQyL1dLQnVuZGxlQmFzZS5oPgogCiAjaWZkZWYgX19jcGx1c3BsdXMK
IGV4dGVybiAiQyIgewpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlSW5pdGlhbGl6ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluaXRpYWxpemUuaAkocmV2aXNpb24gNjgz
MjEpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJ
bml0aWFsaXplLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAKICNpZm5kZWYgV0tC
dW5kbGVJbml0aWFsaXplX2gKICNkZWZpbmUgV0tCdW5kbGVJbml0aWFsaXplX2gKIAotI2luY2x1
ZGUgPFdlYktpdDIvV0tCdW5kbGVCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4K
IAogI2lmZGVmIF9fY3BsdXNwbHVzCiBleHRlcm4gIkMiIHsKSW5kZXg6IFdlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vZGVIYW5kbGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb2Rl
SGFuZGxlLmgJKHJldmlzaW9uIDY4MzIxKQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw5
ICsyNiw3IEBACiAjaWZuZGVmIFdLQnVuZGxlTm9kZUhhbmRsZV9oCiAjZGVmaW5lIFdLQnVuZGxl
Tm9kZUhhbmRsZV9oCiAKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Lmg+CiAj
aW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KLSNpbmNsdWRlIDxXZWJLaXQyL1dLQnVuZGxlQmFz
ZS5oPgogCiAjaWZkZWYgX19jcGx1c3BsdXMKIGV4dGVybiAiQyIgewpJbmRleDogV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2Uu
aAkocmV2aXNpb24gNjgzMjUpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDYgQEAKICNk
ZWZpbmUgV0tCdW5kbGVQYWdlX2gKIAogI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+Ci0jaW5j
bHVkZSA8V2ViS2l0Mi9XS0J1bmRsZUJhc2UuaD4KIAogI2lmbmRlZiBfX2NwbHVzcGx1cwogI2lu
Y2x1ZGUgPHN0ZGJvb2wuaD4KSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZVBhZ2VQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVByaXZhdGUuaAkocmV2aXNp
b24gNjgzMjEpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw2IEBACiAjZGVm
aW5lIFdLQnVuZGxlUGFnZVByaXZhdGVfaAogCiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4K
LSNpbmNsdWRlIDxXZWJLaXQyL1dLQnVuZGxlQmFzZS5oPgogCiAjaWZkZWYgX19jcGx1c3BsdXMK
IGV4dGVybiAiQyIgewpJbmRleDogV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUuaAkocmV2aXNpb24gNjgzMjEpCisr
KyBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDYgQEAKICNkZWZpbmUgV0tCdW5kbGVQcml2
YXRlX2gKIAogI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+Ci0jaW5jbHVkZSA8V2ViS2l0Mi9X
S0J1bmRsZUJhc2UuaD4KIAogI2lmbmRlZiBfX2NwbHVzcGx1cwogI2luY2x1ZGUgPHN0ZGJvb2wu
aD4KSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVJhbmdlSGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUmFuZ2VIYW5kbGUuaAkocmV2aXNpb24gNjgzMjEpCisrKyBX
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVSYW5nZUhhbmRs
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw5ICsyNiw3IEBACiAjaWZuZGVmIFdLQnVuZGxlUmFu
Z2VIYW5kbGVfaAogI2RlZmluZSBXS0J1bmRsZVJhbmdlSGFuZGxlX2gKIAotI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHQuaD4KICNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgot
I2luY2x1ZGUgPFdlYktpdDIvV0tCdW5kbGVCYXNlLmg+CiAKICNpZmRlZiBfX2NwbHVzcGx1cwog
ZXh0ZXJuICJDIiB7CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmgJKHJldmlzaW9uIDY4
MzIxKQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
U2NyaXB0V29ybGQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAogI2RlZmluZSBX
S0J1bmRsZVNjcmlwdFdvcmxkX2gKIAogI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+Ci0jaW5j
bHVkZSA8V2ViS2l0Mi9XS0J1bmRsZUJhc2UuaD4KIAogI2lmZGVmIF9fY3BsdXNwbHVzCiBleHRl
cm4gIkMiIHsKSW5kZXg6IFdlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCShyZXZpc2lvbiA2ODMyMikKKysrIFdlYktpdDIv
d2luL1dlYktpdDIudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01MjUsNiArNTI1LDIwNiBAQAog
CQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbHRlcg0KKwkJCQlOYW1lPSJBUEkiDQorCQkJCT4N
CisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLQXJyYXku
Y3BwIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFNoYXJlZFxBUElcY1xXS0FycmF5LmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJ
CQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLQmFzZS5oIg0K
KwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XFNoYXJlZFxBUElcY1xXS0NlcnRpZmljYXRlSW5mby5jcHAiDQorCQkJCQk+DQorCQkJCTwvRmls
ZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLQ2Vy
dGlmaWNhdGVJbmZvLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXHdpblxXS0NlcnRpZmljYXRlSW5mb1dpbi5j
cHAiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cU2hhcmVkXEFQSVxjXHdpblxXS0NlcnRpZmljYXRlSW5mb1dpbi5oIg0KKwkJCQkJPg0K
KwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxB
UElcY1xXS0RhdGEuY3BwIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxBUElcY1xXS0RhdGEuaCINCisJCQkJCT4NCisJCQkJ
PC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNc
V0tEaWN0aW9uYXJ5LmNwcCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tEaWN0aW9uYXJ5LmgiDQorCQkJCQk+
DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVk
XEFQSVxjXFdLRXJyb3IuY3BwIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxBUElcY1xXS0Vycm9yLmgiDQorCQkJCQk+DQor
CQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQ
SVxjXFdLTXV0YWJsZUFycmF5LmNwcCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8Rmls
ZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tNdXRhYmxlQXJyYXkuaCIN
CisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxTaGFyZWRcQVBJXGNcV0tNdXRhYmxlRGljdGlvbmFyeS5jcHAiDQorCQkJCQk+DQorCQkJCTwv
RmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdL
TXV0YWJsZURpY3Rpb25hcnkuaCINCisJCQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0K
KwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcV0tOdW1iZXIuY3BwIg0KKwkJCQkJ
Pg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJl
ZFxBUElcY1xXS051bWJlci5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxBUElcY1xXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5jcHAiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiDQorCQkJCQk+
DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVk
XEFQSVxjXFdLU2hhcmVkQVBJQ2FzdC5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxG
aWxlDQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxBUElcY1xXS1N0cmluZy5jcHAiDQor
CQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
U2hhcmVkXEFQSVxjXFdLU3RyaW5nLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZp
bGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLVHlwZS5jcHAiDQorCQkJ
CQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hh
cmVkXEFQSVxjXFdLVHlwZS5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxBUElcY1xXS1VSTC5jcHAiDQorCQkJCQk+DQor
CQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQ
SVxjXFdLVVJMLmgiDQorCQkJCQk+DQorCQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXFdLVVJMUmVxdWVzdC5jcHAiDQorCQkJCQk+DQor
CQkJCTwvRmlsZT4NCisJCQkJPEZpbGUNCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQ
SVxjXFdLVVJMUmVxdWVzdC5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJCTxGaWxlDQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxBUElcY1xXS1VSTFJlc3BvbnNlLmNwcCINCisJ
CQkJCT4NCisJCQkJPC9GaWxlPg0KKwkJCQk8RmlsZQ0KKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxT
aGFyZWRcQVBJXGNcV0tVUkxSZXNwb25zZS5oIg0KKwkJCQkJPg0KKwkJCQk8L0ZpbGU+DQorCQkJ
CTxGaWx0ZXINCisJCQkJCU5hbWU9ImNmIg0KKwkJCQkJPg0KKwkJCQkJPEZpbGUNCisJCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFNoYXJlZFxBUElcY1xjZlxXS1N0cmluZ0NGLmNwcCINCisJCQkJCQk+
DQorCQkJCQk8L0ZpbGU+DQorCQkJCQk8RmlsZQ0KKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hh
cmVkXEFQSVxjXGNmXFdLU3RyaW5nQ0YuaCINCisJCQkJCQk+DQorCQkJCQk8L0ZpbGU+DQorCQkJ
CQk8RmlsZQ0KKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXGNmXFdLVVJMQ0Yu
Y3BwIg0KKwkJCQkJCT4NCisJCQkJCTwvRmlsZT4NCisJCQkJCTxGaWxlDQorCQkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNcY2ZcV0tVUkxDRi5oIg0KKwkJCQkJCT4NCisJCQkJCTwv
RmlsZT4NCisJCQkJCTxGaWxlDQorCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxTaGFyZWRcQVBJXGNc
Y2ZcV0tVUkxSZXF1ZXN0Q0YuY3BwIg0KKwkJCQkJCT4NCisJCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24NCisJCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIiDQorCQkJCQkJCUV4Y2x1ZGVkRnJv
bUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCQk+DQorCQkJCQkJCTxUb29sDQorCQkJCQkJCQlOYW1lPSJW
Q0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCQkvPg0KKwkJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
DQorCQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98
V2luMzIiDQorCQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCQk+DQorCQkJ
CQkJCTxUb29sDQorCQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCQkvPg0K
KwkJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8L0ZpbGU+DQorCQkJCQk8RmlsZQ0K
KwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxjXGNmXFdLVVJMUmVxdWVzdENGLmgi
DQorCQkJCQkJPg0KKwkJCQkJPC9GaWxlPg0KKwkJCQkJPEZpbGUNCisJCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFNoYXJlZFxBUElcY1xjZlxXS1VSTFJlc3BvbnNlQ0YuY3BwIg0KKwkJCQkJCT4NCisJ
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCisJCQkJCQkJTmFtZT0iRGVidWdfQ2Fpcm98V2luMzIi
DQorCQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KKwkJCQkJCQk+DQorCQkJCQkJCTxU
b29sDQorCQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIg0KKwkJCQkJCQkvPg0KKwkJCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQorCQkJCQkJ
CU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIiDQorCQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0
cnVlIg0KKwkJCQkJCQk+DQorCQkJCQkJCTxUb29sDQorCQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGls
ZXJUb29sIg0KKwkJCQkJCQkvPg0KKwkJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQorCQkJCQk8
L0ZpbGU+DQorCQkJCQk8RmlsZQ0KKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cU2hhcmVkXEFQSVxj
XGNmXFdLVVJMUmVzcG9uc2VDRi5oIg0KKwkJCQkJCT4NCisJCQkJCTwvRmlsZT4NCisJCQkJPC9G
aWx0ZXI+DQorCQkJPC9GaWx0ZXI+DQorCQkJPEZpbHRlcg0KIAkJCQlOYW1lPSJDb3JlSVBDU3Vw
cG9ydCINCiAJCQkJPg0KIAkJCQk8RmlsZQ0KQEAgLTEzMzksMTQgKzE1MzksNiBAQAogCQkJCQkJ
Pg0KIAkJCQkJPC9GaWxlPg0KIAkJCQkJPEZpbGUNCi0JCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJ
UHJvY2Vzc1xBUElcQ1xXS0FycmF5LmNwcCINCi0JCQkJCQk+DQotCQkJCQk8L0ZpbGU+DQotCQkJ
CQk8RmlsZQ0KLQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLQXJyYXku
aCINCi0JCQkJCQk+DQotCQkJCQk8L0ZpbGU+DQotCQkJCQk8RmlsZQ0KIAkJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLQmFja0ZvcndhcmRMaXN0LmNwcCINCiAJCQkJCQk+
DQogCQkJCQk8L0ZpbGU+DQpAQCAtMTM2MywyNiArMTU1NSw2IEBACiAJCQkJCQk+DQogCQkJCQk8
L0ZpbGU+DQogCQkJCQk8RmlsZQ0KLQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQ
SVxDXFdLQmFzZS5oIg0KLQkJCQkJCT4NCi0JCQkJCTwvRmlsZT4NCi0JCQkJCTxGaWxlDQotCQkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tDZXJ0aWZpY2F0ZUluZm8uY3Bw
Ig0KLQkJCQkJCT4NCi0JCQkJCTwvRmlsZT4NCi0JCQkJCTxGaWxlDQotCQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tDZXJ0aWZpY2F0ZUluZm8uaCINCi0JCQkJCQk+DQot
CQkJCQk8L0ZpbGU+DQotCQkJCQk8RmlsZQ0KLQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9j
ZXNzXEFQSVxDXHdpblxXS0NlcnRpZmljYXRlSW5mb1dpbi5jcHAiDQotCQkJCQkJPg0KLQkJCQkJ
PC9GaWxlPg0KLQkJCQkJPEZpbGUNCi0JCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xB
UElcQ1x3aW5cV0tDZXJ0aWZpY2F0ZUluZm9XaW4uaCINCi0JCQkJCQk+DQotCQkJCQk8L0ZpbGU+
DQotCQkJCQk8RmlsZQ0KIAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdL
Q29udGV4dC5jcHAiDQogCQkJCQkJPg0KIAkJCQkJPC9GaWxlPg0KQEAgLTE0MDMsMzAgKzE1NzUs
NiBAQAogCQkJCQkJPg0KIAkJCQkJPC9GaWxlPg0KIAkJCQkJPEZpbGUNCi0JCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0RhdGEuY3BwIg0KLQkJCQkJCT4NCi0JCQkJCTwv
RmlsZT4NCi0JCQkJCTxGaWxlDQotCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJ
XENcV0tEYXRhLmgiDQotCQkJCQkJPg0KLQkJCQkJPC9GaWxlPg0KLQkJCQkJPEZpbGUNCi0JCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS0RpY3Rpb25hcnkuY3BwIg0KLQkJ
CQkJCT4NCi0JCQkJCTwvRmlsZT4NCi0JCQkJCTxGaWxlDQotCQkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxVSVByb2Nlc3NcQVBJXENcV0tEaWN0aW9uYXJ5LmgiDQotCQkJCQkJPg0KLQkJCQkJPC9GaWxl
Pg0KLQkJCQkJPEZpbGUNCi0JCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xX
S0Vycm9yLmNwcCINCi0JCQkJCQk+DQotCQkJCQk8L0ZpbGU+DQotCQkJCQk8RmlsZQ0KLQkJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLRXJyb3IuaCINCi0JCQkJCQk+DQot
CQkJCQk8L0ZpbGU+DQotCQkJCQk8RmlsZQ0KIAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9j
ZXNzXEFQSVxDXFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lci5jcHAiDQogCQkJCQkJPg0KIAkJCQkJ
PC9GaWxlPg0KQEAgLTE0NTEsMjIgKzE1OTksNiBAQAogCQkJCQkJPg0KIAkJCQkJPC9GaWxlPg0K
IAkJCQkJPEZpbGUNCi0JCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS011
dGFibGVBcnJheS5jcHAiDQotCQkJCQkJPg0KLQkJCQkJPC9GaWxlPg0KLQkJCQkJPEZpbGUNCi0J
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS011dGFibGVBcnJheS5oIg0K
LQkJCQkJCT4NCi0JCQkJCTwvRmlsZT4NCi0JCQkJCTxGaWxlDQotCQkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxVSVByb2Nlc3NcQVBJXENcV0tNdXRhYmxlRGljdGlvbmFyeS5jcHAiDQotCQkJCQkJPg0K
LQkJCQkJPC9GaWxlPg0KLQkJCQkJPEZpbGUNCi0JCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJv
Y2Vzc1xBUElcQ1xXS011dGFibGVEaWN0aW9uYXJ5LmgiDQotCQkJCQkJPg0KLQkJCQkJPC9GaWxl
Pg0KLQkJCQkJPEZpbGUNCiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xX
S05hdmlnYXRpb25EYXRhLmNwcCINCiAJCQkJCQk+DQogCQkJCQk8L0ZpbGU+DQpAQCAtMTQ3NSwx
NCArMTYwNyw2IEBACiAJCQkJCQk+DQogCQkJCQk8L0ZpbGU+DQogCQkJCQk8RmlsZQ0KLQkJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLTnVtYmVyLmNwcCINCi0JCQkJCQk+
DQotCQkJCQk8L0ZpbGU+DQotCQkJCQk8RmlsZQ0KLQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQ
cm9jZXNzXEFQSVxDXFdLTnVtYmVyLmgiDQotCQkJCQkJPg0KLQkJCQkJPC9GaWxlPg0KLQkJCQkJ
PEZpbGUNCiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS1BhZ2UuY3Bw
Ig0KIAkJCQkJCT4NCiAJCQkJCTwvRmlsZT4NCkBAIC0xNTE4LDE0NCArMTY0MiwyOCBAQAogCQkJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tQcmVmZXJlbmNlc1ByaXZhdGUu
aCINCiAJCQkJCQk+DQogCQkJCQk8L0ZpbGU+DQotCQkJCQk8RmlsZQ0KLQkJCQkJCVJlbGF0aXZl
UGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCINCi0J
CQkJCQk+DQotCQkJCQk8L0ZpbGU+DQotCQkJCQk8RmlsZQ0KLQkJCQkJCVJlbGF0aXZlUGF0aD0i
Li5cVUlQcm9jZXNzXEFQSVxDXFdLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiDQotCQkJCQkJPg0K
LQkJCQkJPC9GaWxlPg0KLQkJCQkJPEZpbGUNCi0JCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJv
Y2Vzc1xBUElcQ1xXS1N0cmluZy5jcHAiDQotCQkJCQkJPg0KLQkJCQkJPC9GaWxlPg0KLQkJCQkJ
PEZpbGUNCi0JCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS1N0cmluZy5o
Ig0KLQkJCQkJCT4NCi0JCQkJCTwvRmlsZT4NCi0JCQkJCTxGaWxlDQotCQkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tUeXBlLmNwcCINCi0JCQkJCQk+DQotCQkJCQk8L0Zp
bGU+DQotCQkJCQk8RmlsZQ0KLQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxD
XFdLVHlwZS5oIg0KLQkJCQkJCT4NCi0JCQkJCTwvRmlsZT4NCi0JCQkJCTxGaWxlDQotCQkJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tVUkwuY3BwIg0KLQkJCQkJCT4NCi0J
CQkJCTwvRmlsZT4NCi0JCQkJCTxGaWxlDQotCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nl
c3NcQVBJXENcV0tVUkwuaCINCi0JCQkJCQk+DQotCQkJCQk8L0ZpbGU+DQotCQkJCQk8RmlsZQ0K
LQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXFdLVVJMUmVxdWVzdC5jcHAi
DQotCQkJCQkJPg0KLQkJCQkJPC9GaWxlPg0KLQkJCQkJPEZpbGUNCi0JCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS1VSTFJlcXVlc3QuaCINCi0JCQkJCQk+DQotCQkJCQk8
L0ZpbGU+DQotCQkJCQk8RmlsZQ0KLQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQ
SVxDXFdLVVJMUmVzcG9uc2UuY3BwIg0KLQkJCQkJCT4NCi0JCQkJCTwvRmlsZT4NCi0JCQkJCTxG
aWxlDQotCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcV0tVUkxSZXNwb25z
ZS5oIg0KLQkJCQkJCT4NCi0JCQkJCTwvRmlsZT4NCiAJCQkJCTxGaWx0ZXINCi0JCQkJCQlOYW1l
PSJjZiINCisJCQkJCQlOYW1lPSJ3aW4iDQogCQkJCQkJPg0KIAkJCQkJCTxGaWxlDQotCQkJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXGNmXFdLU3RyaW5nQ0YuY3BwIg0KLQkJ
CQkJCQk+DQotCQkJCQkJPC9GaWxlPg0KLQkJCQkJCTxGaWxlDQotCQkJCQkJCVJlbGF0aXZlUGF0
aD0iLi5cVUlQcm9jZXNzXEFQSVxDXGNmXFdLU3RyaW5nQ0YuaCINCi0JCQkJCQkJPg0KLQkJCQkJ
CTwvRmlsZT4NCi0JCQkJCQk8RmlsZQ0KLQkJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vz
c1xBUElcQ1xjZlxXS1VSTENGLmNwcCINCi0JCQkJCQkJPg0KLQkJCQkJCTwvRmlsZT4NCi0JCQkJ
CQk8RmlsZQ0KLQkJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xjZlxXS1VS
TENGLmgiDQorCQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXHdpblxXS0FQ
SUNhc3RXaW4uaCINCiAJCQkJCQkJPg0KIAkJCQkJCTwvRmlsZT4NCiAJCQkJCQk8RmlsZQ0KLQkJ
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xjZlxXS1VSTFJlcXVlc3RDRi5j
cHAiDQorCQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXHdpblxXS0Jhc2VX
aW4uaCINCiAJCQkJCQkJPg0KLQkJCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQkJCU5h
bWU9IkRlYnVnX0NhaXJvfFdpbjMyIg0KLQkJCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
DQotCQkJCQkJCQk+DQotCQkJCQkJCQk8VG9vbA0KLQkJCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxl
clRvb2wiDQotCQkJCQkJCQkvPg0KLQkJCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm98V2luMzIi
DQotCQkJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJCQkJCT4NCi0JCQkJCQkJ
CTxUb29sDQotCQkJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCQkJCQkJCS8+DQot
CQkJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+DQogCQkJCQkJPC9GaWxlPg0KIAkJCQkJCTxGaWxl
DQotCQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXGNmXFdLVVJMUmVxdWVz
dENGLmgiDQorCQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXHdpblxXS1Zp
ZXcuY3BwIg0KIAkJCQkJCQk+DQogCQkJCQkJPC9GaWxlPg0KIAkJCQkJCTxGaWxlDQotCQkJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVxDXGNmXFdLVVJMUmVzcG9uc2VDRi5jcHAi
DQotCQkJCQkJCT4NCi0JCQkJCQkJPEZpbGVDb25maWd1cmF0aW9uDQotCQkJCQkJCQlOYW1lPSJE
ZWJ1Z19DYWlyb3xXaW4zMiINCi0JCQkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIg0KLQkJ
CQkJCQkJPg0KLQkJCQkJCQkJPFRvb2wNCi0JCQkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29s
Ig0KLQkJCQkJCQkJLz4NCi0JCQkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCi0JCQkJCQkJPEZp
bGVDb25maWd1cmF0aW9uDQotCQkJCQkJCQlOYW1lPSJSZWxlYXNlX0NhaXJvfFdpbjMyIg0KLQkJ
CQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCQkJCQk+DQotCQkJCQkJCQk8VG9v
bA0KLQkJCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQkJCQkJCQkvPg0KLQkJCQkJ
CQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCQkJCTwvRmlsZT4NCi0JCQkJCQk8RmlsZQ0KLQkJ
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcQ1xjZlxXS1VSTFJlc3BvbnNlQ0Yu
aCINCisJCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXENcd2luXFdLVmlldy5o
Ig0KIAkJCQkJCQk+DQogCQkJCQkJPC9GaWxlPg0KIAkJCQkJPC9GaWx0ZXI+DQogCQkJCTwvRmls
dGVyPg0KIAkJCQk8RmlsdGVyDQotCQkJCQlOYW1lPSJ3aW4iDQotCQkJCQk+DQotCQkJCQk8Rmls
ZQ0KLQkJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVUlQcm9jZXNzXEFQSVx3aW5cV0tBUElDYXN0V2lu
LmgiDQotCQkJCQkJPg0KLQkJCQkJPC9GaWxlPg0KLQkJCQkJPEZpbGUNCi0JCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXFVJUHJvY2Vzc1xBUElcd2luXFdLQmFzZVdpbi5oIg0KLQkJCQkJCT4NCi0JCQkJ
CTwvRmlsZT4NCi0JCQkJCTxGaWxlDQotCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3Nc
QVBJXHdpblxXS1ZpZXcuY3BwIg0KLQkJCQkJCT4NCi0JCQkJCTwvRmlsZT4NCi0JCQkJCTxGaWxl
DQotCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxVSVByb2Nlc3NcQVBJXHdpblxXS1ZpZXcuaCINCi0J
CQkJCQk+DQotCQkJCQk8L0ZpbGU+DQotCQkJCTwvRmlsdGVyPg0KLQkJCQk8RmlsdGVyDQogCQkJ
CQlOYW1lPSJjcHAiDQogCQkJCQk+DQogCQkJCQk8RmlsZQ0KSW5kZXg6IFdlYktpdDIvd2luL1dl
YktpdDJHZW5lcmF0ZWQubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL3dpbi9XZWJLaXQyR2Vu
ZXJhdGVkLm1ha2UJKHJldmlzaW9uIDY4MzIxKQorKysgV2ViS2l0Mi93aW4vV2ViS2l0MkdlbmVy
YXRlZC5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ0ICsxLDQzIEBACiBhbGw6CiAgICAgdG91
Y2ggIiQoV0VCS0lUT1VUUFVURElSKVxidWlsZGZhaWxlZCIKICAgICAtbWtkaXIgMj5OVUwgIiQo
V0VCS0lUT1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIiCisgICAgeGNvcHkgL3kgL2QgIi4uXFNo
YXJlZFxBUElcY1xjZlxXS1N0cmluZ0NGLmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxX
ZWJLaXQyIgorICAgIHhjb3B5IC95IC9kICIuLlxTaGFyZWRcQVBJXGNcY2ZcV0tVUkxDRi5oIiAi
JChXRUJLSVRPVVRQVVRESVIpXGluY2x1ZGVcV2ViS2l0MiIKKyAgICB4Y29weSAveSAvZCAiLi5c
U2hhcmVkXEFQSVxjXGNmXFdLVVJMUmVxdWVzdENGLmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5j
bHVkZVxXZWJLaXQyIgorICAgIHhjb3B5IC95IC9kICIuLlxTaGFyZWRcQVBJXGNcY2ZcV0tVUkxS
ZXNwb25zZUNGLmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgorICAgIHhj
b3B5IC95IC9kICIuLlxTaGFyZWRcQVBJXGNcd2luXFdLQ2VydGlmaWNhdGVJbmZvV2luLmgiICIk
KFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgorICAgIHhjb3B5IC95IC9kICIuLlxT
aGFyZWRcQVBJXGNcV0tBcnJheS5oIiAiJChXRUJLSVRPVVRQVVRESVIpXGluY2x1ZGVcV2ViS2l0
MiIKKyAgICB4Y29weSAveSAvZCAiLi5cU2hhcmVkXEFQSVxjXFdLQ2VydGlmaWNhdGVJbmZvLmgi
ICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgorICAgIHhjb3B5IC95IC9kICIu
LlxTaGFyZWRcQVBJXGNcV0tEYXRhLmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJL
aXQyIgorICAgIHhjb3B5IC95IC9kICIuLlxTaGFyZWRcQVBJXGNcV0tEaWN0aW9uYXJ5LmgiICIk
KFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgorICAgIHhjb3B5IC95IC9kICIuLlxT
aGFyZWRcQVBJXGNcV0tFcnJvci5oIiAiJChXRUJLSVRPVVRQVVRESVIpXGluY2x1ZGVcV2ViS2l0
MiIKKyAgICB4Y29weSAveSAvZCAiLi5cU2hhcmVkXEFQSVxjXFdLTXV0YWJsZUFycmF5LmgiICIk
KFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgorICAgIHhjb3B5IC95IC9kICIuLlxT
aGFyZWRcQVBJXGNcV0tNdXRhYmxlRGljdGlvbmFyeS5oIiAiJChXRUJLSVRPVVRQVVRESVIpXGlu
Y2x1ZGVcV2ViS2l0MiIKKyAgICB4Y29weSAveSAvZCAiLi5cU2hhcmVkXEFQSVxjXFdLTnVtYmVy
LmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgorICAgIHhjb3B5IC95IC9k
ICIuLlxTaGFyZWRcQVBJXGNcV0tTdHJpbmcuaCIgIiQoV0VCS0lUT1VUUFVURElSKVxpbmNsdWRl
XFdlYktpdDIiCisgICAgeGNvcHkgL3kgL2QgIi4uXFNoYXJlZFxBUElcY1xXS1R5cGUuaCIgIiQo
V0VCS0lUT1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIiCisgICAgeGNvcHkgL3kgL2QgIi4uXFNo
YXJlZFxBUElcY1xXS1VSTC5oIiAiJChXRUJLSVRPVVRQVVRESVIpXGluY2x1ZGVcV2ViS2l0MiIK
KyAgICB4Y29weSAveSAvZCAiLi5cU2hhcmVkXEFQSVxjXFdLVVJMUmVxdWVzdC5oIiAiJChXRUJL
SVRPVVRQVVRESVIpXGluY2x1ZGVcV2ViS2l0MiIKKyAgICB4Y29weSAveSAvZCAiLi5cU2hhcmVk
XEFQSVxjXFdLVVJMUmVzcG9uc2UuaCIgIiQoV0VCS0lUT1VUUFVURElSKVxpbmNsdWRlXFdlYktp
dDIiCisgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcY3BwXFdLUmV0YWluUHRyLmgi
ICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIu
LlxVSVByb2Nlc3NcQVBJXENcV2ViS2l0Mi5oIiAiJChXRUJLSVRPVVRQVVRESVIpXGluY2x1ZGVc
V2ViS2l0MiIKLSAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLQXJyYXkuaCIg
IiQoV0VCS0lUT1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIiCisgICAgeGNvcHkgL3kgL2QgIi4u
XFVJUHJvY2Vzc1xBUElcQ1x3aW5cV0tDb250ZXh0UHJpdmF0ZVdpbi5oIiAiJChXRUJLSVRPVVRQ
VVRESVIpXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQ
SVxDXFdLQmFja0ZvcndhcmRMaXN0LmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJL
aXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tCYWNrRm9yd2FyZExp
c3RJdGVtLmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5
IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tCYXNlLmgiICIkKFdFQktJVE9VVFBVVERJUilc
aW5jbHVkZVxXZWJLaXQyIgotICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tD
ZXJ0aWZpY2F0ZUluZm8uaCIgIiQoV0VCS0lUT1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIiCiAg
ICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0NvbnRleHQuaCIgIiQoV0VCS0lU
T1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vz
c1xBUElcQ1xXS0NvbnRleHRQcml2YXRlLmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxX
ZWJLaXQyIgotICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tEYXRhLmgiICIk
KFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgotICAgIHhjb3B5IC95IC9kICIuLlxV
SVByb2Nlc3NcQVBJXENcV0tEaWN0aW9uYXJ5LmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVk
ZVxXZWJLaXQyIgotICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tFcnJvci5o
IiAiJChXRUJLSVRPVVRQVVRESVIpXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAi
Li5cVUlQcm9jZXNzXEFQSVxDXFdLRm9ybVN1Ym1pc3Npb25MaXN0ZW5lci5oIiAiJChXRUJLSVRP
VVRQVVRESVIpXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNz
XEFQSVxDXFdLRnJhbWUuaCIgIiQoV0VCS0lUT1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIiCiAg
ICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS0ZyYW1lUG9saWN5TGlzdGVuZXIu
aCIgIiQoV0VCS0lUT1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIiCi0gICAgeGNvcHkgL3kgL2Qg
Ii4uXFVJUHJvY2Vzc1xBUElcQ1xXS011dGFibGVBcnJheS5oIiAiJChXRUJLSVRPVVRQVVRESVIp
XGluY2x1ZGVcV2ViS2l0MiIKLSAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdL
TXV0YWJsZURpY3Rpb25hcnkuaCIgIiQoV0VCS0lUT1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIi
CiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS05hdmlnYXRpb25EYXRhLmgi
ICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgotICAgIHhjb3B5IC95IC9kICIu
LlxVSVByb2Nlc3NcQVBJXENcV0tOdW1iZXIuaCIgIiQoV0VCS0lUT1VUUFVURElSKVxpbmNsdWRl
XFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS1BhZ2UuaCIg
IiQoV0VCS0lUT1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4u
XFVJUHJvY2Vzc1xBUElcQ1xXS1BhZ2VOYW1lc3BhY2UuaCIgIiQoV0VCS0lUT1VUUFVURElSKVxp
bmNsdWRlXFdlYktpdDIiCiAgICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xXS1By
ZWZlcmVuY2VzLmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhj
b3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCIgIiQo
V0VCS0lUT1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIiCi0gICAgeGNvcHkgL3kgL2QgIi4uXFVJ
UHJvY2Vzc1xBUElcQ1xXS1N0cmluZy5oIiAiJChXRUJLSVRPVVRQVVRESVIpXGluY2x1ZGVcV2Vi
S2l0MiIKLSAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXFdLVHlwZS5oIiAiJChX
RUJLSVRPVVRQVVRESVIpXGluY2x1ZGVcV2ViS2l0MiIKLSAgICB4Y29weSAveSAvZCAiLi5cVUlQ
cm9jZXNzXEFQSVxDXFdLVVJMLmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQy
IgotICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENcV0tVUkxSZXF1ZXN0LmgiICIk
KFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgotICAgIHhjb3B5IC95IC9kICIuLlxV
SVByb2Nlc3NcQVBJXENcV0tVUkxSZXNwb25zZS5oIiAiJChXRUJLSVRPVVRQVVRESVIpXGluY2x1
ZGVcV2ViS2l0MiIKLSAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxDXGNmXFdLU3Ry
aW5nQ0YuaCIgIiQoV0VCS0lUT1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIiCi0gICAgeGNvcHkg
L3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xjZlxXS1VSTENGLmgiICIkKFdFQktJVE9VVFBVVERJ
UilcaW5jbHVkZVxXZWJLaXQyIgotICAgIHhjb3B5IC95IC9kICIuLlxVSVByb2Nlc3NcQVBJXENc
Y2ZcV0tVUkxSZXF1ZXN0Q0YuaCIgIiQoV0VCS0lUT1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIi
Ci0gICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcQ1xjZlxXS1VSTFJlc3BvbnNlQ0Yu
aCIgIiQoV0VCS0lUT1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIiCi0gICAgeGNvcHkgL3kgL2Qg
Ii4uXFVJUHJvY2Vzc1xBUElcQ1x3aW5cV0tDZXJ0aWZpY2F0ZUluZm9XaW4uaCIgIiQoV0VCS0lU
T1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIiCi0gICAgeGNvcHkgL3kgL2QgIi4uXFVJUHJvY2Vz
c1xBUElcQ1x3aW5cV0tDb250ZXh0UHJpdmF0ZVdpbi5oIiAiJChXRUJLSVRPVVRQVVRESVIpXGlu
Y2x1ZGVcV2ViS2l0MiIKLSAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQSVxjcHBcV0tS
ZXRhaW5QdHIuaCIgIiQoV0VCS0lUT1VUUFVURElSKVxpbmNsdWRlXFdlYktpdDIiCiAgICAgeGNv
cHkgL3kgL2QgIi4uXFVJUHJvY2Vzc1xBUElcd2luXFdLQmFzZVdpbi5oIiAiJChXRUJLSVRPVVRQ
VVRESVIpXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cVUlQcm9jZXNzXEFQ
SVx3aW5cV0tWaWV3LmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgogICAg
IHhjb3B5IC95IC9kICIuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXEFQSVxjXFdLQnVuZGxl
LmgiICIkKFdFQktJVE9VVFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgotICAgIHhjb3B5IC95IC9k
ICIuLlxXZWJQcm9jZXNzXEluamVjdGVkQnVuZGxlXEFQSVxjXFdLQnVuZGxlQmFzZS5oIiAiJChX
RUJLSVRPVVRQVVRESVIpXGluY2x1ZGVcV2ViS2l0MiIKICAgICB4Y29weSAveSAvZCAiLi5cV2Vi
UHJvY2Vzc1xJbmplY3RlZEJ1bmRsZVxBUElcY1xXS0J1bmRsZUZyYW1lLmgiICIkKFdFQktJVE9V
VFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxXZWJQcm9jZXNz
XEluamVjdGVkQnVuZGxlXEFQSVxjXFdLQnVuZGxlRnJhbWVQcml2YXRlLmgiICIkKFdFQktJVE9V
VFBVVERJUilcaW5jbHVkZVxXZWJLaXQyIgogICAgIHhjb3B5IC95IC9kICIuLlxXZWJQcm9jZXNz
XEluamVjdGVkQnVuZGxlXEFQSVxjXFdLQnVuZGxlSW5pdGlhbGl6ZS5oIiAiJChXRUJLSVRPVVRQ
VVRESVIpXGluY2x1ZGVcV2ViS2l0MiIK
</data>
<flag name="review"
          id="58435"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>