<?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>232021</bug_id>
          
          <creation_ts>2021-10-20 10:35:44 -0700</creation_ts>
          <short_desc>Factor out some Notifications-specific messages from WebPageProxy messages</short_desc>
          <delta_ts>2021-10-20 13:33:18 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1806687</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-20 10:35:44 -0700</bug_when>
    <thetext>Factor out some Notifications-specific messages from WebPageProxy messages

Some of these messages will - in the future - sometimes be sent to Networking and sometimes sent to UIProcess for a WebPageProxy to handle.

So let&apos;s factoring that out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806689</commentid>
    <comment_count>1</comment_count>
      <attachid>441895</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-20 10:38:31 -0700</bug_when>
    <thetext>Created attachment 441895
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806691</commentid>
    <comment_count>2</comment_count>
      <attachid>441895</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-20 10:43:24 -0700</bug_when>
    <thetext>Comment on attachment 441895
Patch v1

View in context: https://bugs.webkit.org/attachment.cgi?id=441895&amp;action=review

&gt; Source/WebKit/UIProcess/Notifications/WebNotificationManagerMessageHandler.h:36
&gt; +public:
&gt; +    WebNotificationManagerMessageHandler(WebPageProxy&amp;);

You might consider making the constructor private and befriending WebPageProxy so that only WebPageProxy can construct it.  We usually try to avoid friend, but I think in this case it would be a reasonable choice.

&gt; Source/WebKit/UIProcess/Notifications/WebNotificationManagerMessageHandler.h:39
&gt; +    void showNotification(const String&amp; title, const String&amp; body, const String&amp; iconURL, const String&amp; tag, const String&amp; lang, WebCore::NotificationDirection, const String&amp; originString, uint64_t notificationID) final;

nit: lang should be a full word.

&gt; Source/WebKit/UIProcess/Notifications/WebNotificationManagerMessageHandler.h:40
&gt; +    void cancelNotification(uint64_t notificationID) final;

nit: this should be an ObjectIdentifier of some type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806706</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-20 11:05:15 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #2)
&gt; Comment on attachment 441895 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441895&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Notifications/WebNotificationManagerMessageHandler.h:36
&gt; &gt; +public:
&gt; &gt; +    WebNotificationManagerMessageHandler(WebPageProxy&amp;);
&gt; 
&gt; You might consider making the constructor private and befriending
&gt; WebPageProxy so that only WebPageProxy can construct it.  We usually try to
&gt; avoid friend, but I think in this case it would be a reasonable choice.
&gt; 

Agreed.

&gt; &gt; Source/WebKit/UIProcess/Notifications/WebNotificationManagerMessageHandler.h:39
&gt; &gt; +    void showNotification(const String&amp; title, const String&amp; body, const String&amp; iconURL, const String&amp; tag, const String&amp; lang, WebCore::NotificationDirection, const String&amp; originString, uint64_t notificationID) final;
&gt; 
&gt; nit: lang should be a full word.

Lots of places to change this one...  oooooff
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Notifications/WebNotificationManagerMessageHandler.h:40
&gt; &gt; +    void cancelNotification(uint64_t notificationID) final;
&gt; 
&gt; nit: this should be an ObjectIdentifier of some type.

https://bugs.webkit.org/show_bug.cgi?id=232023</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806715</commentid>
    <comment_count>4</comment_count>
      <attachid>441905</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-20 11:21:35 -0700</bug_when>
    <thetext>Created attachment 441905
PFL v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806722</commentid>
    <comment_count>5</comment_count>
      <attachid>441895</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-10-20 11:26:59 -0700</bug_when>
    <thetext>Comment on attachment 441895
Patch v1

View in context: https://bugs.webkit.org/attachment.cgi?id=441895&amp;action=review

&gt;&gt;&gt; Source/WebKit/UIProcess/Notifications/WebNotificationManagerMessageHandler.h:36
&gt;&gt;&gt; +    WebNotificationManagerMessageHandler(WebPageProxy&amp;);
&gt;&gt; 
&gt;&gt; You might consider making the constructor private and befriending WebPageProxy so that only WebPageProxy can construct it.  We usually try to avoid friend, but I think in this case it would be a reasonable choice.
&gt; 
&gt; Agreed.

Also a nice touch to use explicit for a constructor like this that happens to have exactly one argument but is not intended for type conversion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806730</commentid>
    <comment_count>6</comment_count>
      <attachid>441908</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-20 11:31:43 -0700</bug_when>
    <thetext>Created attachment 441908
PFL v2 (now with more explicit content)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806739</commentid>
    <comment_count>7</comment_count>
      <attachid>441911</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-20 11:46:28 -0700</bug_when>
    <thetext>Created attachment 441911
PFL v3 - Now with more CMakeLists</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806748</commentid>
    <comment_count>8</comment_count>
      <attachid>441913</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2021-10-20 11:57:52 -0700</bug_when>
    <thetext>Created attachment 441913
PFL v4 - Now with fewer tabs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806805</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-20 13:32:44 -0700</bug_when>
    <thetext>Committed r284564 (243306@main): &lt;https://commits.webkit.org/243306@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441913.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806806</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-20 13:33:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/84476731&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441895</attachid>
            <date>2021-10-20 10:38:31 -0700</date>
            <delta_ts>2021-10-20 11:21:35 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>37998</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggMTE5ZTRmYjNhYjEyLi41MWE0ODA2MTNhMWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTAgQEAKKzIwMjEtMTAtMjAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgor
CisgICAgICAgIEZhY3RvciBvdXQgc29tZSBOb3RpZmljYXRpb25zLXNwZWNpZmljIG1lc3NhZ2Vz
IGZyb20gV2ViUGFnZVByb3h5IG1lc3NhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzIwMjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBJbiBhIGZ1dHVyZSBwYXRjaCwgdGhlcmUgd2lsbCBiZSBhIHJ1
bnRpbWUgc3dpdGNoIHdoZXJlIFdlYkNvbnRlbnQgc29tZXRpbWVzIHNlbmRzIHRoZXNlIE5vdGlm
aWNhdGlvbgorICAgICAgICByZWxhdGVkIG1lc3NhZ2VzIHRvIGFuIG9iamVjdGluZyBpbiBOZXR3
b3JraW5nLCBhbmQgb3RoZXJ0aW1lcyBzZW5kcyB0aGVtIHRvIGEgV2ViUGFnZVByb3h5IGluIHRo
ZSBVSVByb2Nlc3MuCisKKyAgICAgICAgVG8gYWNjb21vZGF0ZSB0aGlzIHN3aXRjaCwgbGV0J3Mg
c3BsaXQgdGhlbSBvdXQgaW50byB0aGVpciBvd24gTm90aWZpY2F0aW9ucyBzcGVjaWZpYyBvYmpl
Y3QgYW5kIG1lc3NhZ2VzLgorICAgICAgICAKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1
dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0
OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6
CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAg
KiBTaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIu
aDogQWRkZWQuCisgICAgICAgICogU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFu
YWdlck1lc3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2Fn
ZUhhbmRsZXI6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcik6CisgICAgICAg
IChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6c2hvd05vdGlm
aWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
SGFuZGxlcjo6Y2FuY2VsTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZp
Y2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpjbGVhck5vdGlmaWNhdGlvbnMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OmRpZERlc3Ry
b3lOb3RpZmljYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oOiBBZGRlZC4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjptX25vdGlmaWNhdGlv
bk1hbmFnZXJNZXNzYWdlSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
YWRkQWxsTWVzc2FnZVJlY2VpdmVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
cmVtb3ZlQWxsTWVzc2FnZVJlY2VpdmVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6bGF1bmNoUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3dhcFRv
UHJvdmlzaW9uYWxQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjbG9zZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKToK
KyAgICAgICAgKFdlYktpdDo6bV9saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zKTog
RGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKworICAgICAgICAqIFdlYlByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyk6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNhbmNlbCk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlm
aWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6Oldl
Yk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24pOgorCiAyMDIxLTEw
LTIwICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBEb24ndCBy
ZS1ldmFsdWF0ZSB2aWV3cG9ydCBkZXBlbmRlbnQgbWVkaWEgcXVlcmllcyBpZiB0aGUgdmlld3Bv
cnQgZG9lc24ndCBjaGFuZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQu
eGNmaWxlbGlzdAppbmRleCBlZGZmYTY2MThjYjQuLjNkZjk4YTM1MGQ4ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTAwLDYgKzEwMCw4
IEBAICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQ
cm94eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVkL0F1
eGlsaWFyeVByb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9IVFRQU1Vw
Z3JhZGUvSFRUUFNVcGdyYWRlTGlzdC50eHQKKyQoUFJPSkVDVF9ESVIpL1NoYXJlZC9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5tZXNzYWdlcy5pbgorJChQ
Uk9KRUNUX0RJUikvU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3Nh
Z2VSZWNlaXZlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVkL1dlYkNvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9t
YXRpb24uanNvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRw
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmls
ZWxpc3QKaW5kZXggYTE2OWI4ODQ1MzY0Li4xZjI2NjY4NDAwYWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dl
YktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTE1LDYgKzExNSw5IEBA
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtTb2Nr
ZXRTdHJlYW1NZXNzYWdlc1JlcGxpZXMuCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViS2l0Mi9OZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3b3JrU3RvcmFn
ZU1hbmFnZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9OZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTm90aWZpY2F0aW9uTWFuYWdlck1l
c3NhZ2VIYW5kbGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVz
c2FnZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsYXRmb3JtWFJTeXN0ZW1NZXNz
YWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9QbGF0Zm9ybVhSU3lzdGVtTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYktpdDIvUGxhdGZvcm1YUlN5c3RlbU1lc3NhZ2VzUmVwbGllcy5oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMWJlZmRhNzI0Njk5Li4xNGYyYThjYzA2Y2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQ3LDYgKzQ3LDcgQEAgVlBBVEggPSBc
CiAgICAgJChXZWJLaXQyKS9TaGFyZWQvQXBwbGVQYXkgXAogICAgICQoV2ViS2l0MikvU2hhcmVk
L0F1dGhlbnRpY2F0aW9uIFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9tYWMgXAorICAgICQoV2Vi
S2l0MikvU2hhcmVkL05vdGlmaWNhdGlvbnMgXAogICAgICQoV2ViS2l0MikvV2ViQXV0aG5Qcm9j
ZXNzIFwKICAgICAkKFdlYktpdDIpL1dlYkF1dGhuUHJvY2Vzcy9tYWMgXAogICAgICQoV2ViS2l0
MikvV2ViUHJvY2Vzcy9BcHBsZVBheSBcCkBAIC0xNDcsNiArMTQ4LDcgQEAgTUVTU0FHRV9SRUNF
SVZFUlMgPSBcCiAJU2hhcmVkL0FQSS9Db2NvYS9SZW1vdGVPYmplY3RSZWdpc3RyeSBcCiAJU2hh
cmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5IFwKIAlTaGFyZWQvQXV0aGVu
dGljYXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyIFwKKwlTaGFyZWQvTm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIgXAogCVNoYXJlZC9XZWJDb25uZWN0aW9u
IFwKIAlVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSBcCiAJVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Ob3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMC4uOTM0ZDVjZmE5ODlmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhh
bmRsZXIuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVudGlm
aWVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25EaXJlY3Rpb24uaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
ciA6IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyKCkgPSBkZWZhdWx0OworCisgICAgdmly
dHVhbCB2b2lkIHNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3Ry
aW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25z
dCBTdHJpbmcmIGxhbmcsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiwgY29uc3QgU3Ry
aW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIGNhbmNlbE5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2
NF90PiYgbm90aWZpY2F0aW9uSURzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZERlc3Ryb3lO
b3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpID0gMDsKKworcHJpdmF0ZToKKyAg
ICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBD
OjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIubWVz
c2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40MWQxOGQ2
NDUxN2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5tZXNzYWdlcy5pbgpAQCAtMCww
ICsxLDI4IEBACisjIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
CisjIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK21lc3Nh
Z2VzIC0+IE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlciBOb3RSZWZDb3VudGVkIHsK
KyAgICBTaG93Tm90aWZpY2F0aW9uKFN0cmluZyB0aXRsZSwgU3RyaW5nIGJvZHksIFN0cmluZyBp
Y29uVVJMLCBTdHJpbmcgdGFnLCBTdHJpbmcgbGFuZywgZW51bTp1aW50OF90IFdlYkNvcmU6Ok5v
dGlmaWNhdGlvbkRpcmVjdGlvbiBkaXIsIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRf
dCBub3RpZmljYXRpb25JRCkKKyAgICBDYW5jZWxOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZp
Y2F0aW9uSUQpCisgICAgQ2xlYXJOb3RpZmljYXRpb25zKFZlY3Rvcjx1aW50NjRfdD4gbm90aWZp
Y2F0aW9uSURzKQorICAgIERpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0
aW9uSUQpCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA1NTMxOWNiYjU3YWUuLmIxMmU1NjMxNGE3NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0CkBAIC00OTQsNiArNDk0LDcgQEAgVUlQcm9jZXNzL01lZGlhL01lZGlhVXNhZ2VN
YW5hZ2VyLmNwcAogVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9y
UHJveHkuY3BwCiAKIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAK
K1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFu
ZGxlci5jcHAKIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eS5jcHAKIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVy
LmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFu
ZGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xMGQ3OTMx
ZTRmNDYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5jcHAKQEAgLTAsMCAr
MSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJO
b3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCIKKworI2luY2x1ZGUgIldlYlBhZ2VQ
cm94eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViTm90aWZpY2F0aW9uTWFuYWdlck1l
c3NhZ2VIYW5kbGVyOjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIoV2ViUGFn
ZVByb3h5JiB3ZWJQYWdlUHJveHkpCisgICAgOiBtX3dlYlBhZ2VQcm94eSh3ZWJQYWdlUHJveHkp
Cit7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpzaG93
Tm90aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgY29u
c3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBsYW5n
LCBXZWJDb3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBjb25zdCBTdHJpbmcm
IG9yaWdpblN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCit7CisgICAgbV93ZWJQYWdl
UHJveHkuc2hvd05vdGlmaWNhdGlvbih0aXRsZSwgYm9keSwgaWNvblVSTCwgdGFnLCBsYW5nLCBk
aXJlY3Rpb24sIG9yaWdpblN0cmluZywgbm90aWZpY2F0aW9uSUQpOworfQorCit2b2lkIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6Y2FuY2VsTm90aWZpY2F0aW9uKHVpbnQ2
NF90IG5vdGlmaWNhdGlvbklEKQoreworICAgIG1fd2ViUGFnZVByb3h5LmNhbmNlbE5vdGlmaWNh
dGlvbihub3RpZmljYXRpb25JRCk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlck1l
c3NhZ2VIYW5kbGVyOjpjbGVhck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYg
bm90aWZpY2F0aW9uSURzKQoreworICAgIG1fd2ViUGFnZVByb3h5LmNsZWFyTm90aWZpY2F0aW9u
cyhub3RpZmljYXRpb25JRHMpOworfQorCit2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNz
YWdlSGFuZGxlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25J
RCkKK3sKKyAgICBtX3dlYlBhZ2VQcm94eS5kaWREZXN0cm95Tm90aWZpY2F0aW9uKG5vdGlmaWNh
dGlvbklEKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNz
YWdlSGFuZGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJO
b3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAuLjhlZjgwZTQ4YTBkOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlck1l
c3NhZ2VIYW5kbGVyLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmgiCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlUHJveHk7CisKK2NsYXNzIFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlciA6IHB1YmxpYyBOb3RpZmljYXRpb25NYW5hZ2Vy
TWVzc2FnZUhhbmRsZXIgeworcHVibGljOgorICAgIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNz
YWdlSGFuZGxlcihXZWJQYWdlUHJveHkmKTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHNob3dOb3Rp
ZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBT
dHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcsIFdl
YkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcs
IHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKSBmaW5hbDsKKyAgICB2b2lkIGNhbmNlbE5vdGlmaWNh
dGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCkgZmluYWw7CisgICAgdm9pZCBjbGVhck5vdGlm
aWNhdGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgbm90aWZpY2F0aW9uSURzKSBmaW5hbDsK
KyAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQp
IGZpbmFsOworCisgICAgV2ViUGFnZVByb3h5JiBtX3dlYlBhZ2VQcm94eTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggODI4ZjJiYWMwMzk3Li5mN2E4MTBiMjczZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNzcsNiArNzcsNyBAQAogI2luY2x1ZGUgIk5hdmlnYXRp
b25BY3Rpb25EYXRhLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlICJOb3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1p
c3Npb25SZXF1ZXN0LmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudC5oIgpAQCAtNTE2LDYgKzUxNyw3IEBAIFdl
YlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nl
c3NQcm94eSYgcHJvY2VzcywgUmVmCiAgICAgLCBtX2lnbm9yZXNBcHBCb3VuZERvbWFpbnMobV9j
b25maWd1cmF0aW9uLT5pZ25vcmVzQXBwQm91bmREb21haW5zKCkpCiAgICAgLCBtX2xpbWl0c05h
dmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMobV9jb25maWd1cmF0aW9uLT5saW1pdHNOYXZpZ2F0
aW9uc1RvQXBwQm91bmREb21haW5zKCkpCiAjZW5kaWYKKyAgICAsIG1fbm90aWZpY2F0aW9uTWFu
YWdlck1lc3NhZ2VIYW5kbGVyKCp0aGlzKQogewogICAgIFdFQlBBR0VQUk9YWV9SRUxFQVNFX0xP
RyhMb2FkaW5nLCAiY29uc3RydWN0b3I6Iik7CiAKQEAgLTU0Niw3ICs1NDgsNyBAQCBXZWJQYWdl
UHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9jZXNzUHJv
eHkmIHByb2Nlc3MsIFJlZgogICAgIGlmIChoYXNSdW5uaW5nUHJvY2VzcygpKQogICAgICAgICBk
aWRBdHRhY2hUb1J1bm5pbmdQcm9jZXNzKCk7CiAKLSAgICBtX3Byb2Nlc3MtPmFkZE1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
d2ViUGFnZUlELCAqdGhpcyk7CisgICAgYWRkQWxsTWVzc2FnZVJlY2VpdmVycygpOwogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBEZXByZWNhdGVkR2xvYmFsU2V0dGluZ3M6OnNldERp
c2FibGVTY3JlZW5TaXplT3ZlcnJpZGUobV9wcmVmZXJlbmNlcy0+ZGlzYWJsZVNjcmVlblNpemVP
dmVycmlkZSgpKTsKQEAgLTYyMCw2ICs2MjIsMTggQEAgV2ViUGFnZVByb3h5Ojp+V2ViUGFnZVBy
b3h5KCkKICNlbmRpZgogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6YWRkQWxsTWVzc2FnZVJlY2Vp
dmVycygpCit7CisgICAgbV9wcm9jZXNzLT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VJRCwgKnRoaXMpOwor
ICAgIG1fcHJvY2Vzcy0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpOb3RpZmljYXRpb25N
YW5hZ2VyTWVzc2FnZUhhbmRsZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdlSUQs
IG1fbm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyKTsKK30KKwordm9pZCBXZWJQYWdl
UHJveHk6OnJlbW92ZUFsbE1lc3NhZ2VSZWNlaXZlcnMoKQoreworICAgIG1fcHJvY2Vzcy0+cmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgbV93ZWJQYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+cmVtb3ZlTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdlSUQpOworfQorCiAvLyBGSVhNRTogU2hvdWxkIHJldHVy
biBhIGNvbnN0IFBhZ2VDbGllbnQmIGFuZCBhZGQgYSBzZXBhcmF0ZSBub24tY29uc3QKIC8vIHZl
cnNpb24gb2YgdGhpcyBmdW5jdGlvbiwgYnV0IHNldmVyYWwgUGFnZUNsaWVudCBtZXRob2RzIHdp
bGwgbmVlZCB0byBiZWNvbWUKIC8vIGNvbnN0IGZvciB0aGlzIHRvIGJlIHBvc3NpYmxlLgpAQCAt
ODQxLDcgKzg1NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpsYXVuY2hQcm9jZXNzKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiByZWdpc3RyYWJsZURvbWFpbiwgUHJvCiAgICAgbV9pbnNwZWN0b3It
PnJlc2V0KCk7CiAKICAgICBtX3Byb2Nlc3MtPnJlbW92ZVdlYlBhZ2UoKnRoaXMsIFdlYlByb2Nl
c3NQcm94eTo6RW5kc1VzaW5nRGF0YVN0b3JlOjpZZXMpOwotICAgIG1fcHJvY2Vzcy0+cmVtb3Zl
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSwgbV93ZWJQYWdlSUQpOworICAgIHJlbW92ZUFsbE1lc3NhZ2VSZWNlaXZlcnMoKTsKIAog
ICAgIGF1dG8mIHByb2Nlc3NQb29sID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpOwogCkBAIC04
NTMsNyArODY3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxhdW5jaFByb2Nlc3MoY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHJlZ2lzdHJhYmxlRG9tYWluLCBQcm8KICAgICBtX2hhc1J1bm5pbmdQ
cm9jZXNzID0gdHJ1ZTsKIAogICAgIG1fcHJvY2Vzcy0+YWRkRXhpc3RpbmdXZWJQYWdlKCp0aGlz
LCBXZWJQcm9jZXNzUHJveHk6OkJlZ2luc1VzaW5nRGF0YVN0b3JlOjpZZXMpOwotICAgIG1fcHJv
Y2Vzcy0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VS
ZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdlSUQsICp0aGlzKTsKKyAgICBhZGRBbGxNZXNzYWdlUmVj
ZWl2ZXJzKCk7CiAKICNpZiBFTkFCTEUoSVBDX1RFU1RJTkdfQVBJKQogICAgIGlmIChtX3ByZWZl
cmVuY2VzLT5zdG9yZSgpLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6aXBj
VGVzdGluZ0FQSUVuYWJsZWRLZXkoKSkpCkBAIC05NjQsNyArOTc4LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnN3YXBUb1Byb3Zpc2lvbmFsUGFnZShzdGQ6OnVuaXF1ZV9wdHI8UHJvdmlzaW9uYWxQ
YWdlUHJveHk+IHAKICAgICBtX21haW5GcmFtZSA9IHByb3Zpc2lvbmFsUGFnZS0+bWFpbkZyYW1l
KCk7CiAKICAgICBtX3Byb2Nlc3MtPmFkZEV4aXN0aW5nV2ViUGFnZSgqdGhpcywgV2ViUHJvY2Vz
c1Byb3h5OjpCZWdpbnNVc2luZ0RhdGFTdG9yZTo6Tm8pOwotICAgIG1fcHJvY2Vzcy0+YWRkTWVz
c2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgbV93ZWJQYWdlSUQsICp0aGlzKTsKKyAgICBhZGRBbGxNZXNzYWdlUmVjZWl2ZXJzKCk7CiAK
ICAgICBmaW5pc2hBdHRhY2hpbmdUb1dlYlByb2Nlc3MoUHJvY2Vzc0xhdW5jaFJlYXNvbjo6UHJv
Y2Vzc1N3YXApOwogCkBAIC0xMTkyLDcgKzEyMDYsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xv
c2UoKQogICAgICAgICBwcm90ZWN0ZWRQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpD
bG9zZSgpLCBkZXN0aW5hdGlvbklEKTsKICAgICB9KTsKICAgICBtX3Byb2Nlc3MtPnJlbW92ZVdl
YlBhZ2UoKnRoaXMsIFdlYlByb2Nlc3NQcm94eTo6RW5kc1VzaW5nRGF0YVN0b3JlOjpZZXMpOwot
ICAgIG1fcHJvY2Vzcy0+cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdlSUQpOworICAgIHJlbW92ZUFsbE1l
c3NhZ2VSZWNlaXZlcnMoKTsKICAgICBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkuc3VwcGxlbWVu
dDxXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHk+KCktPmNsZWFyTm90aWZpY2F0aW9ucyh0aGlz
KTsKIAogICAgIC8vIE51bGwgb3V0IHJlbGF0ZWQgV2ViUGFnZVByb3h5IHRvIGF2b2lkIGxlYWtz
LgpAQCAtMzYxMyw3ICszNjI3LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lv
bmFsUGFnZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgRnJhbWVJbmZvRGF0YSYKIAogICAgIHJl
c2V0U3RhdGVBZnRlclByb2Nlc3NUZXJtaW5hdGlvbihQcm9jZXNzVGVybWluYXRpb25SZWFzb246
Ok5hdmlnYXRpb25Td2FwKTsKIAotICAgIG1fcHJvY2Vzcy0+cmVtb3ZlTWVzc2FnZVJlY2VpdmVy
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdl
SUQpOworICAgIHJlbW92ZUFsbE1lc3NhZ2VSZWNlaXZlcnMoKTsKICAgICBhdXRvKiBuYXZpZ2F0
aW9uID0gbmF2aWdhdGlvblN0YXRlKCkubmF2aWdhdGlvbihtX3Byb3Zpc2lvbmFsUGFnZS0+bmF2
aWdhdGlvbklEKCkpOwogICAgIGJvb2wgZGlkU3VzcGVuZFByZXZpb3VzUGFnZSA9IG5hdmlnYXRp
b24gJiYgIW1fcHJvdmlzaW9uYWxQYWdlLT5zaG91bGRDbG9zZVByZXZpb3VzUGFnZUFmdGVyQ29t
bWl0KCkgPyBzdXNwZW5kQ3VycmVudFBhZ2VJZlBvc3NpYmxlKCpuYXZpZ2F0aW9uLCBtYWluRnJh
bWVJREluUHJldmlvdXNQcm9jZXNzLCBtX3Byb3Zpc2lvbmFsUGFnZS0+cHJvY2Vzc1N3YXBSZXF1
ZXN0ZWRCeUNsaWVudCgpLCBzaG91bGREZWxheUNsb3NpbmdVbnRpbEZpcnN0TGF5ZXJGbHVzaCkg
OiBmYWxzZTsKICAgICBtX3Byb2Nlc3MtPnJlbW92ZVdlYlBhZ2UoKnRoaXMsIG1fd2Vic2l0ZURh
dGFTdG9yZS5wdHIoKSA9PSAmbV9wcm92aXNpb25hbFBhZ2UtPnByb2Nlc3MoKS53ZWJzaXRlRGF0
YVN0b3JlKCkgPyBXZWJQcm9jZXNzUHJveHk6OkVuZHNVc2luZ0RhdGFTdG9yZTo6Tm8gOiBXZWJQ
cm9jZXNzUHJveHk6OkVuZHNVc2luZ0RhdGFTdG9yZTo6WWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZjNkZDIzY2FhNGEzLi5hYmYxZDFkZDRkZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC02OSw2ICs2OSw3IEBACiAjaW5j
bHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRGF0YUxpc3RTdWdn
ZXN0aW9uc0Ryb3Bkb3duLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQcm94eS5oIgorI2luY2x1ZGUg
IldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oIgogI2luY2x1ZGUgIldlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJQYWdlRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQuaCIKICNpbmNsdWRlICJXZWJQYWdlSW5qZWN0ZWRCdW5kbGVDbGllbnQuaCIKQEAg
LTE5OTAsMTAgKzE5OTEsMTggQEAgcHVibGljOgogICAgIGJvb2wgaXNRdWFyYW50aW5lZEFuZE5v
dFVzZXJBcHByb3ZlZChjb25zdCBTdHJpbmcmKTsKICNlbmRpZgogCisgICAgdm9pZCBzaG93Tm90
aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3Qg
U3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBsYW5nLCBX
ZWJDb3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb24sIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5n
LCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CisgICAgdm9pZCBjYW5jZWxOb3RpZmljYXRpb24o
dWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOworICAgIHZvaWQgY2xlYXJOb3RpZmljYXRpb25zKGNv
bnN0IFZlY3Rvcjx1aW50NjRfdD4mIG5vdGlmaWNhdGlvbklEcyk7CisgICAgdm9pZCBkaWREZXN0
cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKKwogcHJpdmF0ZToKICAg
ICBXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYsIFdlYlByb2Nlc3NQcm94eSYsIFJlZjxBUEk6OlBh
Z2VDb25maWd1cmF0aW9uPiYmKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogCisg
ICAgdm9pZCBhZGRBbGxNZXNzYWdlUmVjZWl2ZXJzKCk7CisgICAgdm9pZCByZW1vdmVBbGxNZXNz
YWdlUmVjZWl2ZXJzKCk7CisKICAgICB2b2lkIG5vdGlmeVByb2Nlc3NQb29sVG9QcmV3YXJtKCk7
CiAgICAgYm9vbCBzaG91bGRVc2VCYWNrRm9yd2FyZENhY2hlKCkgY29uc3Q7CiAKQEAgLTIxODUs
MTAgKzIxOTQsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IGxhdW5j
aFByb2Nlc3NGb3JSZWxvYWQoKTsKIAogICAgIHZvaWQgcmVxdWVzdE5vdGlmaWNhdGlvblBlcm1p
c3Npb24oY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCBhbGxvd2VkKT4mJik7Ci0gICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25z
dCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBsYW5nLCBXZWJDb3JlOjpOb3RpZmljYXRpb25E
aXJlY3Rpb24sIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRfdCBub3RpZmljYXRp
b25JRCk7Ci0gICAgdm9pZCBjYW5jZWxOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9u
SUQpOwotICAgIHZvaWQgY2xlYXJOb3RpZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4m
IG5vdGlmaWNhdGlvbklEcyk7Ci0gICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0aW9uKHVpbnQ2
NF90IG5vdGlmaWNhdGlvbklEKTsKIAogICAgIHZvaWQgZGlkQ2hhbmdlQ29udGVudFNpemUoY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIHZvaWQgZGlkQ2hhbmdlSW50cmluc2ljQ29udGVu
dFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwpAQCAtMzEyMiw2ICszMTI3LDggQEAgcHJp
dmF0ZToKICNlbmRpZgogCiAgICAgV2luZG93S2luZCBtX3dpbmRvd0tpbmQgeyBXaW5kb3dLaW5k
OjpVbnBhcmVudGVkIH07CisKKyAgICBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRs
ZXIgbV9ub3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI7CiB9OwogCiAjaWZkZWYgX19P
QkpDX18KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgppbmRleCA1ODEwOGY3NDMxNGQuLmY1NzA1YTA2MTE1YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjg1LDEwICsyODUs
NiBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgIyBOb3RpZmljYXRpb24gbWVz
c2FnZXMKICAgICBSZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbihTdHJpbmcgb3JpZ2luSWRl
bnRpZmllcikgLT4gKGJvb2wgYWxsb3dlZCkgQXN5bmMKLSAgICBTaG93Tm90aWZpY2F0aW9uKFN0
cmluZyB0aXRsZSwgU3RyaW5nIGJvZHksIFN0cmluZyBpY29uVVJMLCBTdHJpbmcgdGFnLCBTdHJp
bmcgbGFuZywgZW51bTp1aW50OF90IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiBkaXIs
IFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkKLSAgICBD
YW5jZWxOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCi0gICAgQ2xlYXJOb3Rp
ZmljYXRpb25zKFZlY3Rvcjx1aW50NjRfdD4gbm90aWZpY2F0aW9uSURzKQotICAgIERpZERlc3Ry
b3lOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCiAKICAgICAjIFNwZWxsaW5n
IGFuZCBncmFtbWFyIG1lc3NhZ2VzCiAjaWYgVVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBj
ZTNiOGU1Y2QxZS4uODE3NjE3NTRjMTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNTQsNiArMTA1NCwxMSBAQAogCQk1MTNFNDYy
RDFBRDgzNzU2MDAxNjIzNEEgLyogV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTNFNDYyQjFBRDgz
NzU2MDAxNjIzNEEgLyogV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLmggKi87IH07CiAJ
CTUxM0ZGQjkxMjAxNDU5QzYwMDI1OTZFQSAvKiBXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEzRkZC
OEYyMDE0NTlDMjAwMjU5NkVBIC8qIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmggKi87
IH07CiAJCTUxNDEyOTk0MUM2NDI4QkIwMDU5RTcxNCAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDEy
OTkyMUM2NDI4MTAwMDU5RTcxNCAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCAqLzsgfTsK
KwkJNTE0NTI2RkYyNzFGQjdFQzAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
SGFuZGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTE0NTI2RkUyNzFGQjdFODAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFu
ZGxlci5oICovOyB9OworCQk1MTQ1MjcwMzI3MUZCQTNBMDAwNDY3QjYgLyogTm90aWZpY2F0aW9u
TWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDUyNzAyMjcxRkJBMzYwMDA0NjdCNiAv
KiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICov
OyB9OworCQk1MTQ1MjcwNDI3MUZCQTQwMDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1l
c3NhZ2VIYW5kbGVyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ1MjcwMDI3MUZCQTM0MDAwNDY3QjYgLyogTm90aWZpY2F0
aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXNSZXBsaWVzLmggKi87IH07CisJCTUxNDUy
NzA1MjcxRkJBNDAwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJN
ZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTE0NTI3MDEyNzFGQkEzNTAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFu
ZGxlck1lc3NhZ2VzLmggKi87IH07CisJCTUxNDUyNzA4MjcxRkJFQzYwMDA0NjdCNiAvKiBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDUyNzA3MjcxRkJFQzEwMDA0NjdCNiAvKiBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCAqLzsgfTsKIAkJNTE0ODlDQzMyMzcw
REJGQTAwNDRFNjhBIC8qIFdLRmluZFJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0ODlDQzEyMzcwREFDQzAwNDRFNjhBIC8qIFdLRmluZFJl
c3VsdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsgfTsgfTsKIAkJ
NTE0ODlDQzcyMzcyMzc4MDAwNDRFNjhBIC8qIFdLRmluZFJlc3VsdEludGVybmFsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ4OUNDNjIzNzIzNzc4
MDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0SW50ZXJuYWwuaCAqLzsgfTsKIAkJNTE0QUI5RjAyMzYw
RDJBOTAwRURDMzk2IC8qIFdLRmluZENvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNEFCOUVGMjM1RkE1OUIwMEVEQzM5NiAvKiBX
S0ZpbmRDb25maWd1cmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGlj
LCApOyB9OyB9OwpAQCAtNDE2MCw2ICs0MTY1LDEzIEBACiAJCTUxNDEyOTkyMUM2NDI4MTAwMDU5
RTcxNCAvKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTUxNDNCMjVFMUREQ0RGRDEwMDE0RkFDNiAvKiBfV0tJY29uTG9hZGluZ0Rl
bGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0ljb25Mb2FkaW5n
RGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0M0IyNjExREREMERB
MDAwMTRGQUM2IC8qIEFQSUljb25Mb2FkaW5nQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFQSUljb25Mb2FkaW5nQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUxNDUyNkZDMjcxRkI3RTgwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2Vy
TWVzc2FnZUhhbmRsZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTm90aWZp
Y2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1MTQ1MjZGRTI3MUZCN0U4MDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFu
YWdlck1lc3NhZ2VIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MTQ1MjcwMDI3MUZCQTM0MDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1l
c3NhZ2VIYW5kbGVyTWVzc2FnZXNSZXBsaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzUmVwbGllcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTQ1MjcwMTI3MUZCQTM1MDAwNDY3QjYg
LyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVy
TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE0NTI3MDIyNzFGQkEz
NjAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VSZWNl
aXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOb3RpZmljYXRp
b25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1MTQ1MjcwNjI3MUZCRUMxMDAwNDY3QjYgLyogV2ViTm90aWZpY2F0
aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNDUyNzA3MjcxRkJFQzEwMDA0NjdCNiAvKiBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDg5Q0MxMjM3MERBQ0MwMDQ0RTY4QSAvKiBXS0Zp
bmRSZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tGaW5kUmVzdWx0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDg5Q0MyMjM3MERBQ0MwMDQ0RTY4
QSAvKiBXS0ZpbmRSZXN1bHQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXS0ZpbmRSZXN1bHQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDg5
Q0M2MjM3MjM3NzgwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHRJbnRlcm5hbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS0ZpbmRSZXN1bHRJbnRlcm5hbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNjkzOSw2ICs2OTUxLDcgQEAKIAkJCQk1MTVCRTFBRTFENTkw
MDM0MDBERDdDNjggLyogR2FtZXBhZCAqLywKIAkJCQkyREE5NDQ5NjE4ODRFNERBMDBFRDg2REIg
LyogaW9zICovLAogCQkJCUJDMTExQjVBMTEyRjYyODIwMDMzN0JBQiAvKiBtYWMgKi8sCisJCQkJ
NTFBRjFCM0QyNzFGNDZBNjAwMTUzOEU2IC8qIE5vdGlmaWNhdGlvbnMgKi8sCiAJCQkJMUFBRTA1
OEMxMjc5RENENDAwODUyNDE4IC8qIFBsdWdpbnMgKi8sCiAJCQkJMkQyRTA0NzYxRjVCRUM0RjAw
QkIyNUVEIC8qIFJlbW90ZUxheWVyVHJlZSAqLywKIAkJCQlFMzYxMkZGMDI2RjkwODYyMDA3QjEx
NzUgLyogU2FuZGJveCAqLywKQEAgLTgxMzcsNiArODE1MCw4IEBACiAJCQkJMzFBMkVDNTMxNDg5
OTgyNTAwODEwRDcxIC8qIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmggKi8sCiAJCQkJ
MzFBMkVDNDExNDg5OTdCRTAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5jcHAgKi8sCiAJCQkJ
MzFBMkVDNDIxNDg5OTdCRTAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbi5oICovLAorCQkJCTUx
NDUyNzA2MjcxRkJFQzEwMDA0NjdCNiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhh
bmRsZXIuY3BwICovLAorCQkJCTUxNDUyNzA3MjcxRkJFQzEwMDA0NjdCNiAvKiBXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCAqLywKIAkJCQkzMUEyRUM0MzE0ODk5N0JFMDA4
MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCAqLywKIAkJCQkzMUEyRUM0
NDE0ODk5N0JGMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmggKi8sCiAJ
CQkJMzFBMkVDNDYxNDg5OTdDMDAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNw
cCAqLywKQEAgLTkwOTIsNiArOTEwNywxNSBAQAogCQkJcGF0aCA9IEF1dGhlbnRpY2F0aW9uOwog
CQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTFBRjFCM0QyNzFGNDZBNjAwMTUz
OEU2IC8qIE5vdGlmaWNhdGlvbnMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCTUxNDUyNkZFMjcxRkI3RTgwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZUhhbmRsZXIuaCAqLywKKwkJCQk1MTQ1MjZGQzI3MUZCN0U4MDAwNDY3QjYgLyog
Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluICovLAorCQkJKTsK
KwkJCXBhdGggPSBOb3RpZmljYXRpb25zOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJ
fTsKIAkJNTFCMTVBN0QxMzg0MzlCMjAwMzIxQUQ4IC8qIHVuaXggKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMTE0NzcsNiArMTE1MDEsOSBAQAogCQkJCTkz
MDg1RENDMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwICovLAogCQkJCTkzMDg1RENEMjZFMkU5MDIwMDBFQzZBNyAvKiBOZXR3b3JrU3Rv
cmFnZU1hbmFnZXJNZXNzYWdlcy5oICovLAogCQkJCTkzMDg1RENFMjZFMkU5MDIwMDBFQzZBNyAv
KiBOZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKKwkJCQk1MTQ1Mjcw
MjI3MUZCQTM2MDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKKwkJCQk1MTQ1MjcwMTI3MUZCQTM1MDAwNDY3QjYgLyogTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXMuaCAqLywKKwkJCQk1MTQ1Mjcw
MDI3MUZCQTM0MDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVz
c2FnZXNSZXBsaWVzLmggKi8sCiAJCQkJMUEyRDg0MzcxMjdGNjVENTAwMUVCOTYyIC8qIE5QT2Jq
ZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQkxQTJEODQzODEy
N0Y2NUQ1MDAxRUI5NjIgLyogTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdlcy5oICovLAog
CQkJCUNEQTI5QTI0MUNCRUI2N0EwMDkwMUNDRiAvKiBQbGF5YmFja1Nlc3Npb25NYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcCAqLywKQEAgLTEyNDg1LDYgKzEyNTEyLDcgQEAKIAkJCQkxQTZEODZD
MjFERjc1MjY1MDA3NzQ1RTggLyogTWFjaE1lc3NhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
QzU2Rjc5MTE1OTk1N0QwMDFDQ0FGOSAvKiBNYWNoUG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MUEyNEI1RjMxMUY1MzFFODAwQzM4MjY5IC8qIE1hY2hVdGlsaXRpZXMuaCBpbiBIZWFkZXJzICov
LAorCQkJCTUxNDUyNkZGMjcxRkI3RUMwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVz
c2FnZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUExNTc5OUJFMjU4NDQzMzIwMDUyODIz
NiAvKiBNZWRpYUZvcm1hdFJlYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUFDQzA3QjEyNUM4
MTVEODAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3QuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTlBQ0MwN0FEMjVDODEzMkQwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjUxOSw2ICsxMjU0
Nyw3IEBACiAJCQkJMUFEQ0I4NkIxODk4MzFCMzAwMjJFRTVBIC8qIE5hdmlnYXRpb25BY3Rpb25E
YXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0ZEMzE4MDIyQjM1MTU4MDA4RDBFOEIgLyogTmF2
aWdhdGlvblNPQXV0aG9yaXphdGlvblNlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQkMz
REY2MTg5OUU0MzcwMDRGMDYyNiAvKiBOYXZpZ2F0aW9uU3RhdGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTUxNDUyNzA4MjcxRkJFQzYwMDA0NjdCNiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVz
c2FnZUhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3QjgyNjQ0MjMwNEYxNDAwMEI3MkVC
MCAvKiBOZWFyRmllbGRTb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdCODI2NDEyMzA0
RUIzRTAwQjcyRUIwIC8qIE5lYXJGaWVsZFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2RkJB
MkExMUU2ODYyNzAwREIxMzcxIC8qIE5ldHNjYXBlQnJvd3NlckZ1bmNzLmggaW4gSGVhZGVycyAq
LywKQEAgLTEyNTUxLDYgKzEyNTgwLDcgQEAKIAkJCQlFNDdGQzhBMDI1QjgzMzFDMDA1NDk1RkMg
LyogTmV0d29ya0xvYWRTY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNzk1NTZBMTYy
ODc2RjMwMEZBNDNCNiAvKiBOZXR3b3JrUHJvY2Vzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3
Q0YwRTQxNjNBNDg2QzAwQzI5NTBFIC8qIE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTQ1MjcwNDI3MUZCQTQwMDAwNDY3QjYgLyogTm90aWZp
Y2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXNSZXBsaWVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1QzE0MjZFRDFDMjNGODA5MDBENDExODMgLyogTmV0d29ya1Byb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNjMxOTk1MTYyODlBNjMwMEUyMkYw
MCAvKiBOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTRBOTU0
QTE2RTAxNkE0MDA2OERFODIgLyogTmV0d29ya1Byb2Nlc3NQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBp
biBIZWFkZXJzICovLApAQCAtMTI3ODIsNiArMTI4MTIsNyBAQAogCQkJCTkzNjhFRURGMjMwM0E5
RUQwMEJEQjExQSAvKiBTdG9yYWdlTWFuYWdlclNldE1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0NjVGNEUwNjIzMEIyRTk1MDAzQ0VEQjcgLyogU3RvcmFnZU5hbWVzcGFjZUlkZW50aWZp
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdCNzMxMjNDMjVDQzg1MjUwMDNCMjc5NiAvKiBTdHJl
YW1DbGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTQ1MjcwNTI3MUZCQTQw
MDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCTdCNzMxMjNBMjVDQzg1MjUwMDNCMjc5NiAvKiBTdHJlYW1Db25u
ZWN0aW9uQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QjczMTI0MjI1Q0M4NTI1MDAzQjI3
OTYgLyogU3RyZWFtQ29ubmVjdGlvbkVuY29kZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdCNzMx
MjNFMjVDQzg1MjUwMDNCMjc5NiAvKiBTdHJlYW1Db25uZWN0aW9uV29ya1F1ZXVlLmggaW4gSGVh
ZGVycyAqLywKQEAgLTEyOTg0LDcgKzEzMDE1LDYgQEAKIAkJCQkzMUJBOTI0RTE0ODgzMTI2MDA2
MkVEQjUgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkzMUEyRUM0QjE0ODk5N0MyMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlclBy
b3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUEyRUM0RTE0ODk5N0MyMDA4MTBENzEgLyogV2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCTUxMjcxNDgzMjcwMjRG
MDMwMDE5NzAzNCAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlckNvY29hLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzg1N0Y4NTEyQjgyRDBCMDBFREVCMkUgLyogV2ViT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMURGRUE0MTJCMzFGODcwMDVERjczMCAvKiBX
ZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzAz
MkQ4RjEwRjQzN0EwMDA1OEMxNUEgLyogV2ViUGFnZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0xNDYz
Myw2ICsxNDY2Myw3IEBACiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmls
ZXMgPSAoCiAJCQkJNTc5MEE2NzEyNTY3OUYxQTAwNzdDNUE3IC8qIF9XS0F1dGhlbnRpY2F0aW9u
RXh0ZW5zaW9uc0NsaWVudElucHV0cy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTUxNDUyNzAzMjcx
RkJBM0EwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTc5MEE2N0QyNTY3QTEzRTAwNzdDNUE3
IC8qIF9XS0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudE91dHB1dHMubW0gaW4gU291cmNl
cyAqLywKIAkJCQk1NzkwQTY4OTI1NjdBMjhBMDA3N0M1QTcgLyogX1dLQXV0aGVudGljYXRvckFz
c2VydGlvblJlc3BvbnNlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTc5MEE2ODUyNTY3QTIxRTAw
NzdDNUE3IC8qIF9XS0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLm1tIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IDE4ODUyMTZlMDM1
OC4uMGU5ZThhNzgzMDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApAQCAt
MzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIK
IAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbk1hbmFn
ZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uLmgi
CiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKQEAgLTE0OSw3ICsxNTAsNyBAQCBib29sIFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXI6OnNob3coTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sIFdlYlBhZ2Uq
IHBhZ2UpCiAgICAgYXV0byBpdCA9IG1fbm90aWZpY2F0aW9uQ29udGV4dE1hcC5hZGQobm90aWZp
Y2F0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIFZlY3Rvcjx1aW50NjRfdD4oKSkuaXRl
cmF0b3I7CiAgICAgaXQtPnZhbHVlLmFwcGVuZChub3RpZmljYXRpb25JRCk7CiAKLSAgICBtX3By
b2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpTaG93Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi0+dGl0bGUoKSwgbm90aWZpY2F0aW9u
LT5ib2R5KCksIG5vdGlmaWNhdGlvbi0+aWNvbigpLnN0cmluZygpLCBub3RpZmljYXRpb24tPnRh
ZygpLCBub3RpZmljYXRpb24tPmxhbmcoKSwgbm90aWZpY2F0aW9uLT5kaXIoKSwgbm90aWZpY2F0
aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5n
KCksIG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+aWRlbnRpZmllcigpKTsKKyAgICBtX3Byb2Nlc3Mu
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFu
YWdlck1lc3NhZ2VIYW5kbGVyOjpTaG93Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi0+dGl0bGUo
KSwgbm90aWZpY2F0aW9uLT5ib2R5KCksIG5vdGlmaWNhdGlvbi0+aWNvbigpLnN0cmluZygpLCBu
b3RpZmljYXRpb24tPnRhZygpLCBub3RpZmljYXRpb24tPmxhbmcoKSwgbm90aWZpY2F0aW9uLT5k
aXIoKSwgbm90aWZpY2F0aW9uLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3Jp
Z2luKCktPnRvU3RyaW5nKCksIG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+aWRlbnRpZmllcigpKTsK
ICAgICByZXR1cm4gdHJ1ZTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7
CkBAIC0xNjgsNyArMTY5LDcgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpjYW5jZWwo
Tm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCiAgICAgaWYgKCFub3Rp
ZmljYXRpb25JRCkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIG1fcHJvY2Vzcy5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNhbmNlbE5v
dGlmaWNhdGlvbihub3RpZmljYXRpb25JRCksIHBhZ2UtPmlkZW50aWZpZXIoKSk7CisgICAgbV9w
cm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6Q2FuY2VsTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlv
bklEKSwgcGFnZS0+aWRlbnRpZmllcigpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG5vdGlm
aWNhdGlvbik7CiAgICAgVU5VU0VEX1BBUkFNKHBhZ2UpOwpAQCAtMTgzLDcgKzE4NCw3IEBAIHZv
aWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2xlYXJOb3RpZmljYXRpb25zKFdlYkNvcmU6OlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqCiAgICAgICAgIHJldHVybjsKIAogICAgIFZlY3Rvcjx1aW50
NjRfdD4mIG5vdGlmaWNhdGlvbklEcyA9IGl0LT52YWx1ZTsKLSAgICBtX3Byb2Nlc3MucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDbGVhck5v
dGlmaWNhdGlvbnMobm90aWZpY2F0aW9uSURzKSwgcGFnZS0+aWRlbnRpZmllcigpKTsKKyAgICBt
X3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6Tm90aWZp
Y2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpDbGVhck5vdGlmaWNhdGlvbnMobm90aWZpY2F0
aW9uSURzKSwgcGFnZS0+aWRlbnRpZmllcigpKTsKICAgICBzaXplX3QgY291bnQgPSBub3RpZmlj
YXRpb25JRHMuc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkg
ewogICAgICAgICBSZWZQdHI8Tm90aWZpY2F0aW9uPiBub3RpZmljYXRpb24gPSBtX25vdGlmaWNh
dGlvbklETWFwLnRha2Uobm90aWZpY2F0aW9uSURzW2ldKTsKQEAgLTIxMSw3ICsyMTIsNyBAQCB2
b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24oTm90aWZp
Y2F0aW9uKiBub3RpZmljYXRpb24sCiAKICAgICBtX25vdGlmaWNhdGlvbklETWFwLnJlbW92ZShu
b3RpZmljYXRpb25JRCk7CiAgICAgcmVtb3ZlTm90aWZpY2F0aW9uRnJvbUNvbnRleHRNYXAobm90
aWZpY2F0aW9uSUQsIG5vdGlmaWNhdGlvbik7Ci0gICAgbV9wcm9jZXNzLnBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkRGVzdHJveU5vdGlm
aWNhdGlvbihub3RpZmljYXRpb25JRCksIHBhZ2UtPmlkZW50aWZpZXIoKSk7CisgICAgbV9wcm9j
ZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5vdGlmaWNhdGlv
bk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6RGlkRGVzdHJveU5vdGlmaWNhdGlvbihub3RpZmljYXRp
b25JRCksIHBhZ2UtPmlkZW50aWZpZXIoKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShub3Rp
ZmljYXRpb24pOwogICAgIFVOVVNFRF9QQVJBTShwYWdlKTsK
</data>
<flag name="review"
          id="466283"
          type_id="1"
          status="+"
          setter="achristensen"
    />
    <flag name="commit-queue"
          id="466285"
          type_id="3"
          status="-"
          setter="achristensen"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441905</attachid>
            <date>2021-10-20 11:21:35 -0700</date>
            <delta_ts>2021-10-20 12:28:33 -0700</delta_ts>
            <desc>PFL v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>38600</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CmluZGV4IGUwY2QwY2QyOGFkOS4uMTk2OGQyY2RjYTFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKQEAgLTQ0LDYgKzQ0LDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9S
SUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIiCiAgICAg
IiR7V0VCS0lUX0RJUn0vU2hhcmVkL0ZpbGVBUEkiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVk
L0dhbWVwYWQiCisgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL05vdGlmaWNhdGlvbnMiCiAgICAg
IiR7V0VCS0lUX0RJUn0vU2hhcmVkL1BsdWdpbnMiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVk
L1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1BsdWdpbnMvTmV0
c2NhcGUveDExIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCAxMTllNGZiM2FiMTIuLjM0YzU3YWI2ZTgxNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw1MSBAQAorMjAyMS0xMC0yMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgRmFjdG9yIG91dCBzb21lIE5vdGlmaWNhdGlvbnMtc3BlY2lm
aWMgbWVzc2FnZXMgZnJvbSBXZWJQYWdlUHJveHkgbWVzc2FnZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjAyMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgSW4gYSBmdXR1cmUgcGF0Y2gsIHRoZXJl
IHdpbGwgYmUgYSBydW50aW1lIHN3aXRjaCB3aGVyZSBXZWJDb250ZW50IHNvbWV0aW1lcyBzZW5k
cyB0aGVzZSBOb3RpZmljYXRpb24KKyAgICAgICAgcmVsYXRlZCBtZXNzYWdlcyB0byBhbiBvYmpl
Y3RpbmcgaW4gTmV0d29ya2luZywgYW5kIG90aGVydGltZXMgc2VuZHMgdGhlbSB0byBhIFdlYlBh
Z2VQcm94eSBpbiB0aGUgVUlQcm9jZXNzLgorCisgICAgICAgIFRvIGFjY29tb2RhdGUgdGhpcyBz
d2l0Y2gsIGxldCdzIHNwbGl0IHRoZW0gb3V0IGludG8gdGhlaXIgb3duIE5vdGlmaWNhdGlvbnMg
c3BlY2lmaWMgb2JqZWN0IGFuZCBtZXNzYWdlcy4KKyAgICAgICAgCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCisgICAgICAgICogU2hhcmVkL05vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmg6IEFkZGVkLgorICAgICAg
ICAqIFNoYXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
ci5tZXNzYWdlcy5pbjogQWRkZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OnNob3dOb3RpZmljYXRpb24pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OmNhbmNlbE5v
dGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNz
YWdlSGFuZGxlcjo6Y2xlYXJOb3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpkaWREZXN0cm95Tm90aWZpY2F0aW9uKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
TWVzc2FnZUhhbmRsZXIuaDogQWRkZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9ub3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhh
bmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmFkZEFsbE1lc3NhZ2VSZWNl
aXZlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlbW92ZUFsbE1lc3NhZ2VS
ZWNlaXZlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxhdW5jaFByb2Nlc3Mp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN3YXBUb1Byb3Zpc2lvbmFsUGFnZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2xvc2UpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSk6CisgICAgICAgIChXZWJLaXQ6
Om1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW46CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNh
dGlvbk1hbmFnZXI6OnNob3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjpjYW5jZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpj
bGVhck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjpkaWREZXN0cm95Tm90aWZpY2F0aW9uKToKKwogMjAyMS0xMC0yMCAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3QgcmUtZXZhbHVhdGUgdmlld3Bv
cnQgZGVwZW5kZW50IG1lZGlhIHF1ZXJpZXMgaWYgdGhlIHZpZXdwb3J0IGRvZXNuJ3QgY2hhbmdl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXgg
ZWRmZmE2NjE4Y2I0Li4zZGY5OGEzNTBkOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwMCw2ICsxMDAsOCBAQCAkKFBST0pFQ1RfRElS
KS9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFn
ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9TaGFyZWQvSFRUUFNVcGdyYWRlL0hUVFBTVXBncmFk
ZUxpc3QudHh0CiskKFBST0pFQ1RfRElSKS9TaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1NoYXJl
ZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIubWVzc2Fn
ZXMuaW4KICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9XZWJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGExNjli
ODg0NTM2NC4uMWYyNjY2ODQwMGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTExNSw2ICsxMTUsOSBAQCAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZXNS
ZXBsaWVzLgogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL05vdGlmaWNhdGlvbk1hbmFnZXJN
ZXNzYWdlSGFuZGxlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9QbGF0Zm9ybVhSU3lzdGVtTWVzc2FnZVJlY2VpdmVyLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGxhdGZvcm1YUlN5
c3RlbU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1BsYXRmb3JtWFJTeXN0ZW1NZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IDFiZWZkYTcyNDY5OS4uMTRmMmE4Y2MwNmNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy5tYWtlCkBAIC00Nyw2ICs0Nyw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0Mikv
U2hhcmVkL0FwcGxlUGF5IFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9BdXRoZW50aWNhdGlvbiBc
CiAgICAgJChXZWJLaXQyKS9TaGFyZWQvbWFjIFwKKyAgICAkKFdlYktpdDIpL1NoYXJlZC9Ob3Rp
ZmljYXRpb25zIFwKICAgICAkKFdlYktpdDIpL1dlYkF1dGhuUHJvY2VzcyBcCiAgICAgJChXZWJL
aXQyKS9XZWJBdXRoblByb2Nlc3MvbWFjIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXBw
bGVQYXkgXApAQCAtMTQ3LDYgKzE0OCw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVNoYXJl
ZC9BUEkvQ29jb2EvUmVtb3RlT2JqZWN0UmVnaXN0cnkgXAogCVNoYXJlZC9BcHBsZVBheS9XZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eSBcCiAJU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0aW9uTWFuYWdlciBcCisJU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VIYW5kbGVyIFwKIAlTaGFyZWQvV2ViQ29ubmVjdGlvbiBcCiAJVUlQcm9jZXNzL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkgXAogCVVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2Vy
TWVzc2FnZUhhbmRsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu
LmI3ODhmZGRiMWRiMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmgKQEAgLTAsMCAr
MSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVzc2FnZVJl
Y2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvTm90aWZpY2F0aW9uRGlyZWN0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIgOiBwdWJsaWMgSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHZpcnR1YWwgfk5vdGlmaWNhdGlvbk1hbmFn
ZXJNZXNzYWdlSGFuZGxlcigpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBzaG93Tm90
aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3Qg
U3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBsYW5ndWFn
ZSwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0
cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2Fu
Y2VsTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmlj
YXRpb25JRHMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRGVzdHJveU5vdGlmaWNhdGlvbih1
aW50NjRfdCBub3RpZmljYXRpb25JRCkgPSAwOworCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVz
c2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2Vy
TWVzc2FnZUhhbmRsZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5tZXNzYWdlcy5pbgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmRkNzVlMzM4YjZlNQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjggQEAKKyMg
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gTm90aWZp
Y2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyIE5vdFJlZkNvdW50ZWQgeworICAgIFNob3dOb3Rp
ZmljYXRpb24oU3RyaW5nIHRpdGxlLCBTdHJpbmcgYm9keSwgU3RyaW5nIGljb25VUkwsIFN0cmlu
ZyB0YWcsIFN0cmluZyBsYW5ndWFnZSwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok5vdGlmaWNhdGlv
bkRpcmVjdGlvbiBkaXJlY3Rpb24sIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBu
b3RpZmljYXRpb25JRCkKKyAgICBDYW5jZWxOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0
aW9uSUQpCisgICAgQ2xlYXJOb3RpZmljYXRpb25zKFZlY3Rvcjx1aW50NjRfdD4gbm90aWZpY2F0
aW9uSURzKQorICAgIERpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9u
SUQpCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dAppbmRleCA1NTMxOWNiYjU3YWUuLmIxMmU1NjMxNGE3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXMudHh0CkBAIC00OTQsNiArNDk0LDcgQEAgVUlQcm9jZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5h
Z2VyLmNwcAogVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJv
eHkuY3BwCiAKIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAKK1VJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
ci5jcHAKIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eS5jcHAKIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNw
cAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iYzU0MDhjNjUx
MzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5jcHAKQEAgLTAsMCArMSw1
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCIKKworI2luY2x1ZGUgIldlYlBhZ2VQcm94
eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VIYW5kbGVyOjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIoV2ViUGFnZVBy
b3h5JiB3ZWJQYWdlUHJveHkpCisgICAgOiBtX3dlYlBhZ2VQcm94eSh3ZWJQYWdlUHJveHkpCit7
Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpzaG93Tm90
aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3Qg
U3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBsYW5ndWFn
ZSwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgY29uc3QgU3RyaW5n
JiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQoreworICAgIG1fd2ViUGFn
ZVByb3h5LnNob3dOb3RpZmljYXRpb24odGl0bGUsIGJvZHksIGljb25VUkwsIHRhZywgbGFuZ3Vh
Z2UsIGRpcmVjdGlvbiwgb3JpZ2luU3RyaW5nLCBub3RpZmljYXRpb25JRCk7Cit9CisKK3ZvaWQg
V2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpjYW5jZWxOb3RpZmljYXRpb24o
dWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCit7CisgICAgbV93ZWJQYWdlUHJveHkuY2FuY2VsTm90
aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZUhhbmRsZXI6OmNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0
X3Q+JiBub3RpZmljYXRpb25JRHMpCit7CisgICAgbV93ZWJQYWdlUHJveHkuY2xlYXJOb3RpZmlj
YXRpb25zKG5vdGlmaWNhdGlvbklEcyk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VIYW5kbGVyOjpkaWREZXN0cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklEKQoreworICAgIG1fd2ViUGFnZVByb3h5LmRpZERlc3Ryb3lOb3RpZmljYXRpb24obm90
aWZpY2F0aW9uSUQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDA1NGQ1OWI1NmY0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZUhhbmRsZXIuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xhc3MgV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyIDogcHVibGljIE5vdGlmaWNhdGlvbk1h
bmFnZXJNZXNzYWdlSGFuZGxlciB7CisgICAgZnJpZW5kIGNsYXNzIFdlYlBhZ2VQcm94eTsKK3By
aXZhdGU6CisgICAgV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyKFdlYlBhZ2VQ
cm94eSYpOworCisgICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUs
IGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcm
IHRhZywgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0
aW9uLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQp
IGZpbmFsOworICAgIHZvaWQgY2FuY2VsTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlv
bklEKSBmaW5hbDsKKyAgICB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWlu
dDY0X3Q+JiBub3RpZmljYXRpb25JRHMpIGZpbmFsOworICAgIHZvaWQgZGlkRGVzdHJveU5vdGlm
aWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCkgZmluYWw7CisKKyAgICBXZWJQYWdlUHJv
eHkmIG1fd2ViUGFnZVByb3h5OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA4MjhmMmJhYzAzOTcuLmY3YTgx
MGIyNzNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03
Nyw2ICs3Nyw3IEBACiAjaW5jbHVkZSAiTmF2aWdhdGlvbkFjdGlvbkRhdGEuaCIKICNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94
eS5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIKICNpbmNsdWRl
ICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNsdWRlICJQYWdl
Q2xpZW50LmgiCkBAIC01MTYsNiArNTE3LDcgQEAgV2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHko
UGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCBSZWYKICAg
ICAsIG1faWdub3Jlc0FwcEJvdW5kRG9tYWlucyhtX2NvbmZpZ3VyYXRpb24tPmlnbm9yZXNBcHBC
b3VuZERvbWFpbnMoKSkKICAgICAsIG1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlu
cyhtX2NvbmZpZ3VyYXRpb24tPmxpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMoKSkK
ICNlbmRpZgorICAgICwgbV9ub3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIoKnRoaXMp
CiB7CiAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HKExvYWRpbmcsICJjb25zdHJ1Y3Rvcjoi
KTsKIApAQCAtNTQ2LDcgKzU0OCw3IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VD
bGllbnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgUmVmCiAgICAgaWYg
KGhhc1J1bm5pbmdQcm9jZXNzKCkpCiAgICAgICAgIGRpZEF0dGFjaFRvUnVubmluZ1Byb2Nlc3Mo
KTsKIAotICAgIG1fcHJvY2Vzcy0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdlSUQsICp0aGlzKTsKKyAgICBh
ZGRBbGxNZXNzYWdlUmVjZWl2ZXJzKCk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAg
IERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0RGlzYWJsZVNjcmVlblNpemVPdmVycmlkZSht
X3ByZWZlcmVuY2VzLT5kaXNhYmxlU2NyZWVuU2l6ZU92ZXJyaWRlKCkpOwpAQCAtNjIwLDYgKzYy
MiwxOCBAQCBXZWJQYWdlUHJveHk6On5XZWJQYWdlUHJveHkoKQogI2VuZGlmCiB9CiAKK3ZvaWQg
V2ViUGFnZVByb3h5OjphZGRBbGxNZXNzYWdlUmVjZWl2ZXJzKCkKK3sKKyAgICBtX3Byb2Nlc3Mt
PmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksIG1fd2ViUGFnZUlELCAqdGhpcyk7CisgICAgbV9wcm9jZXNzLT5hZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6bWVz
c2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VJRCwgbV9ub3RpZmljYXRpb25NYW5hZ2VyTWVz
c2FnZUhhbmRsZXIpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVtb3ZlQWxsTWVzc2FnZVJl
Y2VpdmVycygpCit7CisgICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VJRCk7Cisg
ICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6Ok5vdGlmaWNhdGlv
bk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VJ
RCk7Cit9CisKIC8vIEZJWE1FOiBTaG91bGQgcmV0dXJuIGEgY29uc3QgUGFnZUNsaWVudCYgYW5k
IGFkZCBhIHNlcGFyYXRlIG5vbi1jb25zdAogLy8gdmVyc2lvbiBvZiB0aGlzIGZ1bmN0aW9uLCBi
dXQgc2V2ZXJhbCBQYWdlQ2xpZW50IG1ldGhvZHMgd2lsbCBuZWVkIHRvIGJlY29tZQogLy8gY29u
c3QgZm9yIHRoaXMgdG8gYmUgcG9zc2libGUuCkBAIC04NDEsNyArODU1LDcgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmxhdW5jaFByb2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlZ2lzdHJh
YmxlRG9tYWluLCBQcm8KICAgICBtX2luc3BlY3Rvci0+cmVzZXQoKTsKIAogICAgIG1fcHJvY2Vz
cy0+cmVtb3ZlV2ViUGFnZSgqdGhpcywgV2ViUHJvY2Vzc1Byb3h5OjpFbmRzVXNpbmdEYXRhU3Rv
cmU6Olllcyk7Ci0gICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VJRCk7CisgICAg
cmVtb3ZlQWxsTWVzc2FnZVJlY2VpdmVycygpOwogCiAgICAgYXV0byYgcHJvY2Vzc1Bvb2wgPSBt
X3Byb2Nlc3MtPnByb2Nlc3NQb29sKCk7CiAKQEAgLTg1Myw3ICs4NjcsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6bGF1bmNoUHJvY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0cmFi
bGVEb21haW4sIFBybwogICAgIG1faGFzUnVubmluZ1Byb2Nlc3MgPSB0cnVlOwogCiAgICAgbV9w
cm9jZXNzLT5hZGRFeGlzdGluZ1dlYlBhZ2UoKnRoaXMsIFdlYlByb2Nlc3NQcm94eTo6QmVnaW5z
VXNpbmdEYXRhU3RvcmU6Olllcyk7Ci0gICAgbV9wcm9jZXNzLT5hZGRNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VJ
RCwgKnRoaXMpOworICAgIGFkZEFsbE1lc3NhZ2VSZWNlaXZlcnMoKTsKIAogI2lmIEVOQUJMRShJ
UENfVEVTVElOR19BUEkpCiAgICAgaWYgKG1fcHJlZmVyZW5jZXMtPnN0b3JlKCkuZ2V0Qm9vbFZh
bHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjppcGNUZXN0aW5nQVBJRW5hYmxlZEtleSgpKSkK
QEAgLTk2NCw3ICs5NzgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c3dhcFRvUHJvdmlzaW9uYWxQ
YWdlKHN0ZDo6dW5pcXVlX3B0cjxQcm92aXNpb25hbFBhZ2VQcm94eT4gcAogICAgIG1fbWFpbkZy
YW1lID0gcHJvdmlzaW9uYWxQYWdlLT5tYWluRnJhbWUoKTsKIAogICAgIG1fcHJvY2Vzcy0+YWRk
RXhpc3RpbmdXZWJQYWdlKCp0aGlzLCBXZWJQcm9jZXNzUHJveHk6OkJlZ2luc1VzaW5nRGF0YVN0
b3JlOjpObyk7Ci0gICAgbV9wcm9jZXNzLT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VJRCwgKnRoaXMpOwor
ICAgIGFkZEFsbE1lc3NhZ2VSZWNlaXZlcnMoKTsKIAogICAgIGZpbmlzaEF0dGFjaGluZ1RvV2Vi
UHJvY2VzcyhQcm9jZXNzTGF1bmNoUmVhc29uOjpQcm9jZXNzU3dhcCk7CiAKQEAgLTExOTIsNyAr
MTIwNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbG9zZSgpCiAgICAgICAgIHByb3RlY3RlZFBy
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNsb3NlKCksIGRlc3RpbmF0aW9uSUQpOwog
ICAgIH0pOwogICAgIG1fcHJvY2Vzcy0+cmVtb3ZlV2ViUGFnZSgqdGhpcywgV2ViUHJvY2Vzc1By
b3h5OjpFbmRzVXNpbmdEYXRhU3RvcmU6Olllcyk7Ci0gICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNz
YWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBtX3dlYlBhZ2VJRCk7CisgICAgcmVtb3ZlQWxsTWVzc2FnZVJlY2VpdmVycygpOwogICAgIG1f
cHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5zdXBwbGVtZW50PFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQ
cm94eT4oKS0+Y2xlYXJOb3RpZmljYXRpb25zKHRoaXMpOwogCiAgICAgLy8gTnVsbCBvdXQgcmVs
YXRlZCBXZWJQYWdlUHJveHkgdG8gYXZvaWQgbGVha3MuCkBAIC0zNjEzLDcgKzM2MjcsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBGcmFtZUluZm9EYXRhJgogCiAgICAgcmVzZXRTdGF0ZUFmdGVyUHJvY2Vzc1Rlcm1p
bmF0aW9uKFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6TmF2aWdhdGlvblN3YXApOwogCi0gICAg
bV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VJRCk7CisgICAgcmVtb3ZlQWxsTWVzc2Fn
ZVJlY2VpdmVycygpOwogICAgIGF1dG8qIG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9uU3RhdGUoKS5u
YXZpZ2F0aW9uKG1fcHJvdmlzaW9uYWxQYWdlLT5uYXZpZ2F0aW9uSUQoKSk7CiAgICAgYm9vbCBk
aWRTdXNwZW5kUHJldmlvdXNQYWdlID0gbmF2aWdhdGlvbiAmJiAhbV9wcm92aXNpb25hbFBhZ2Ut
PnNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQoKSA/IHN1c3BlbmRDdXJyZW50UGFn
ZUlmUG9zc2libGUoKm5hdmlnYXRpb24sIG1haW5GcmFtZUlESW5QcmV2aW91c1Byb2Nlc3MsIG1f
cHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50KCksIHNob3VsZERl
bGF5Q2xvc2luZ1VudGlsRmlyc3RMYXllckZsdXNoKSA6IGZhbHNlOwogICAgIG1fcHJvY2Vzcy0+
cmVtb3ZlV2ViUGFnZSgqdGhpcywgbV93ZWJzaXRlRGF0YVN0b3JlLnB0cigpID09ICZtX3Byb3Zp
c2lvbmFsUGFnZS0+cHJvY2VzcygpLndlYnNpdGVEYXRhU3RvcmUoKSA/IFdlYlByb2Nlc3NQcm94
eTo6RW5kc1VzaW5nRGF0YVN0b3JlOjpObyA6IFdlYlByb2Nlc3NQcm94eTo6RW5kc1VzaW5nRGF0
YVN0b3JlOjpZZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBm
M2RkMjNjYWE0YTMuLmFiZjFkMWRkNGRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKQEAgLTY5LDYgKzY5LDcgQEAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCIKICNpbmNsdWRlICJXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24uaCIKICNpbmNs
dWRlICJXZWJGcmFtZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlck1l
c3NhZ2VIYW5kbGVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIgog
I2luY2x1ZGUgIldlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2luY2x1ZGUgIldl
YlBhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oIgpAQCAtMTk5MCwxMCArMTk5MSwxOCBAQCBwdWJs
aWM6CiAgICAgYm9vbCBpc1F1YXJhbnRpbmVkQW5kTm90VXNlckFwcHJvdmVkKGNvbnN0IFN0cmlu
ZyYpOwogI2VuZGlmCiAKKyAgICB2b2lkIHNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0
aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0
cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVj
dGlvbiwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
KTsKKyAgICB2b2lkIGNhbmNlbE5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7
CisgICAgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgbm90
aWZpY2F0aW9uSURzKTsKKyAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qg
bm90aWZpY2F0aW9uSUQpOworCiBwcml2YXRlOgogICAgIFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50
JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpOwogICAg
IHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAKKyAgICB2b2lkIGFkZEFsbE1lc3NhZ2VSZWNl
aXZlcnMoKTsKKyAgICB2b2lkIHJlbW92ZUFsbE1lc3NhZ2VSZWNlaXZlcnMoKTsKKwogICAgIHZv
aWQgbm90aWZ5UHJvY2Vzc1Bvb2xUb1ByZXdhcm0oKTsKICAgICBib29sIHNob3VsZFVzZUJhY2tG
b3J3YXJkQ2FjaGUoKSBjb25zdDsKIApAQCAtMjE4NSwxMCArMjE5NCw2IEBAIHByaXZhdGU6CiAg
ICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbGF1bmNoUHJvY2Vzc0ZvclJlbG9hZCgpOwogCiAg
ICAgdm9pZCByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25zdCBTdHJpbmcmIG9yaWdp
blN0cmluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGFsbG93ZWQpPiYmKTsKLSAgICB2
b2lkIHNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBi
b2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJp
bmcmIGxhbmcsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiwgY29uc3QgU3RyaW5nJiBv
cmlnaW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKLSAgICB2b2lkIGNhbmNlbE5v
dGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7Ci0gICAgdm9pZCBjbGVhck5vdGlm
aWNhdGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgbm90aWZpY2F0aW9uSURzKTsKLSAgICB2
b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwogCiAg
ICAgdm9pZCBkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAg
ICAgdm9pZCBkaWRDaGFuZ2VJbnRyaW5zaWNDb250ZW50U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRT
aXplJik7CkBAIC0zMTIyLDYgKzMxMjcsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBXaW5k
b3dLaW5kIG1fd2luZG93S2luZCB7IFdpbmRvd0tpbmQ6OlVucGFyZW50ZWQgfTsKKworICAgIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlciBtX25vdGlmaWNhdGlvbk1hbmFnZXJN
ZXNzYWdlSGFuZGxlcjsKIH07CiAKICNpZmRlZiBfX09CSkNfXwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDU4MTA4Zjc0MzE0ZC4u
ZjU3MDVhMDYxMTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0yODUsMTAgKzI4NSw2IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQ
cm94eSB7CiAKICAgICAjIE5vdGlmaWNhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVlc3ROb3RpZmlj
YXRpb25QZXJtaXNzaW9uKFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKSAtPiAoYm9vbCBhbGxvd2Vk
KSBBc3luYwotICAgIFNob3dOb3RpZmljYXRpb24oU3RyaW5nIHRpdGxlLCBTdHJpbmcgYm9keSwg
U3RyaW5nIGljb25VUkwsIFN0cmluZyB0YWcsIFN0cmluZyBsYW5nLCBlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uIGRpciwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIs
IHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQotICAgIENhbmNlbE5vdGlmaWNhdGlvbih1aW50NjRf
dCBub3RpZmljYXRpb25JRCkKLSAgICBDbGVhck5vdGlmaWNhdGlvbnMoVmVjdG9yPHVpbnQ2NF90
PiBub3RpZmljYXRpb25JRHMpCi0gICAgRGlkRGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRfdCBu
b3RpZmljYXRpb25JRCkKIAogICAgICMgU3BlbGxpbmcgYW5kIGdyYW1tYXIgbWVzc2FnZXMKICNp
ZiBVU0UoVU5JRklFRF9URVhUX0NIRUNLSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMGNlM2I4ZTVjZDFlLi44MTc2MTc1NGMxODYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTA1NCw2ICsxMDU0LDExIEBACiAJCTUxM0U0NjJEMUFEODM3NTYwMDE2MjM0QSAvKiBXS1No
YXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxM0U0NjJCMUFEODM3NTYwMDE2MjM0QSAvKiBXS1NoYXJpbmdT
ZXJ2aWNlUGlja2VyRGVsZWdhdGUuaCAqLzsgfTsKIAkJNTEzRkZCOTEyMDE0NTlDNjAwMjU5NkVB
IC8qIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTNGRkI4RjIwMTQ1OUMyMDAyNTk2RUEgLyogV2Vi
TWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCAqLzsgfTsKIAkJNTE0MTI5OTQxQzY0MjhCQjAw
NTlFNzE0IC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0MTI5OTIxQzY0MjgxMDAwNTlFNzE0IC8qIFdl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oICovOyB9OworCQk1MTQ1MjZGRjI3MUZCN0VDMDAwNDY3
QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ1MjZGRTI3MUZCN0U4MDAwNDY3QjYg
LyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmggKi87IH07CisJCTUxNDUyNzAz
MjcxRkJBM0EwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTE0NTI3MDIyNzFGQkEzNjAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNz
YWdlSGFuZGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTUxNDUyNzA0MjcxRkJBNDAw
MDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlc1JlcGxp
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDUy
NzAwMjcxRkJBMzQwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJN
ZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKKwkJNTE0NTI3MDUyNzFGQkE0MDAwMDQ2N0I2IC8qIE5v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ1MjcwMTI3MUZCQTM1MDAwNDY3QjYg
LyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXMuaCAqLzsgfTsKKwkJ
NTE0NTI3MDgyNzFGQkVDNjAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
SGFuZGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTE0NTI3MDcyNzFGQkVDMTAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
SGFuZGxlci5oICovOyB9OwogCQk1MTQ4OUNDMzIzNzBEQkZBMDA0NEU2OEEgLyogV0tGaW5kUmVz
dWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ4
OUNDMTIzNzBEQUNDMDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQk1MTQ4OUNDNzIzNzIzNzgwMDA0NEU2OEEg
LyogV0tGaW5kUmVzdWx0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxNDg5Q0M2MjM3MjM3NzgwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHRJ
bnRlcm5hbC5oICovOyB9OwogCQk1MTRBQjlGMDIzNjBEMkE5MDBFREMzOTYgLyogV0tGaW5kQ29u
ZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTE0QUI5RUYyMzVGQTU5QjAwRURDMzk2IC8qIFdLRmluZENvbmZpZ3VyYXRpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CkBAIC00MTYwLDYgKzQx
NjUsMTMgQEAKIAkJNTE0MTI5OTIxQzY0MjgxMDAwNTlFNzE0IC8qIFdlYklEQkNvbm5lY3Rpb25U
b1NlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0M0IyNUUxRERD
REZEMTAwMTRGQUM2IC8qIF9XS0ljb25Mb2FkaW5nRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gX1dLSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTQzQjI2MTFEREQwREEwMDAxNEZBQzYgLyogQVBJSWNvbkxvYWRp
bmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJSWNvbkxvYWRp
bmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE0NTI2RkMyNzFGQjdF
ODAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5tZXNzYWdlcy5p
biAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRs
ZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNDUyNkZFMjcx
RkI3RTgwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VI
YW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNDUyNzAwMjcxRkJBMzQw
MDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlc1JlcGxp
ZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTUxNDUyNzAxMjcxRkJBMzUwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVz
c2FnZUhhbmRsZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBO
b3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1MTQ1MjcwMjI3MUZCQTM2MDAwNDY3QjYgLyogTm90aWZpY2F0aW9u
TWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1l
c3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNDUyNzA2
MjcxRkJFQzEwMDA0NjdCNiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90aWZpY2F0aW9u
TWFuYWdlck1lc3NhZ2VIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTE0NTI3MDcyNzFGQkVDMTAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
SGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTE0ODlDQzEyMzcwREFDQzAwNDRFNjhBIC8qIFdLRmluZFJlc3VsdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS0ZpbmRSZXN1bHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTE0ODlDQzIyMzcwREFDQzAwNDRFNjhBIC8qIFdLRmluZFJlc3VsdC5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLRmluZFJlc3VsdC5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0ODlDQzYyMzcyMzc3ODAwNDRFNjhBIC8qIFdL
RmluZFJlc3VsdEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
RmluZFJlc3VsdEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02OTM5
LDYgKzY5NTEsNyBAQAogCQkJCTUxNUJFMUFFMUQ1OTAwMzQwMEREN0M2OCAvKiBHYW1lcGFkICov
LAogCQkJCTJEQTk0NDk2MTg4NEU0REEwMEVEODZEQiAvKiBpb3MgKi8sCiAJCQkJQkMxMTFCNUEx
MTJGNjI4MjAwMzM3QkFCIC8qIG1hYyAqLywKKwkJCQk1MUFGMUIzRDI3MUY0NkE2MDAxNTM4RTYg
LyogTm90aWZpY2F0aW9ucyAqLywKIAkJCQkxQUFFMDU4QzEyNzlEQ0Q0MDA4NTI0MTggLyogUGx1
Z2lucyAqLywKIAkJCQkyRDJFMDQ3NjFGNUJFQzRGMDBCQjI1RUQgLyogUmVtb3RlTGF5ZXJUcmVl
ICovLAogCQkJCUUzNjEyRkYwMjZGOTA4NjIwMDdCMTE3NSAvKiBTYW5kYm94ICovLApAQCAtODEz
Nyw2ICs4MTUwLDggQEAKIAkJCQkzMUEyRUM1MzE0ODk5ODI1MDA4MTBENzEgLyogTm90aWZpY2F0
aW9uUGVybWlzc2lvblJlcXVlc3QuaCAqLywKIAkJCQkzMUEyRUM0MTE0ODk5N0JFMDA4MTBENzEg
LyogV2ViTm90aWZpY2F0aW9uLmNwcCAqLywKIAkJCQkzMUEyRUM0MjE0ODk5N0JFMDA4MTBENzEg
LyogV2ViTm90aWZpY2F0aW9uLmggKi8sCisJCQkJNTE0NTI3MDYyNzFGQkVDMTAwMDQ2N0I2IC8q
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5jcHAgKi8sCisJCQkJNTE0NTI3
MDcyNzFGQkVDMTAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
ci5oICovLAogCQkJCTMxQTJFQzQzMTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyUHJveHkuY3BwICovLAogCQkJCTMxQTJFQzQ0MTQ4OTk3QkYwMDgxMEQ3MSAvKiBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCAqLywKIAkJCQkzMUEyRUM0NjE0ODk5N0MwMDA4MTBE
NzEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwICovLApAQCAtOTA5Miw2ICs5MTA3LDE1
IEBACiAJCQlwYXRoID0gQXV0aGVudGljYXRpb247CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwogCQl9OworCQk1MUFGMUIzRDI3MUY0NkE2MDAxNTM4RTYgLyogTm90aWZpY2F0aW9ucyAqLyA9
IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNTE0NTI2RkUyNzFG
QjdFODAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oICovLAor
CQkJCTUxNDUyNkZDMjcxRkI3RTgwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2Fn
ZUhhbmRsZXIubWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJcGF0aCA9IE5vdGlmaWNhdGlvbnM7
CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk1MUIxNUE3RDEzODQzOUIyMDAz
MjFBRDggLyogdW5peCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CkBAIC0xMTQ3Nyw2ICsxMTUwMSw5IEBACiAJCQkJOTMwODVEQ0MyNkUyRTkwMjAwMEVDNkE3IC8q
IE5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJOTMwODVE
Q0QyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggKi8s
CiAJCQkJOTMwODVEQ0UyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFuYWdlck1l
c3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTUxNDUyNzAyMjcxRkJBMzYwMDA0NjdCNiAvKiBOb3Rp
ZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAorCQkJ
CTUxNDUyNzAxMjcxRkJBMzUwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhh
bmRsZXJNZXNzYWdlcy5oICovLAorCQkJCTUxNDUyNzAwMjcxRkJBMzQwMDA0NjdCNiAvKiBOb3Rp
ZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlc1JlcGxpZXMuaCAqLywKIAkJCQkx
QTJEODQzNzEyN0Y2NUQ1MDAxRUI5NjIgLyogTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXJNZXNzYWdl
UmVjZWl2ZXIuY3BwICovLAogCQkJCTFBMkQ4NDM4MTI3RjY1RDUwMDFFQjk2MiAvKiBOUE9iamVj
dE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RBMjlBMjQxQ0JFQjY3QTAwOTAx
Q0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAt
MTI0ODUsNiArMTI1MTIsNyBAQAogCQkJCTFBNkQ4NkMyMURGNzUyNjUwMDc3NDVFOCAvKiBNYWNo
TWVzc2FnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDNTZGNzkxMTU5OTU3RDAwMUNDQUY5IC8q
IE1hY2hQb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTI0QjVGMzExRjUzMUU4MDBDMzgyNjkg
LyogTWFjaFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE0NTI2RkYyNzFGQjdFQzAw
MDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTE1Nzk5QkUyNTg0NDMzMjAwNTI4MjM2IC8qIE1lZGlhRm9ybWF0UmVhZGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5QUNDMDdCMTI1QzgxNUQ4MDBEQzYzODYgLyogTWVkaWFLZXlT
eXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUFDQzA3QUQyNUM4
MTMyRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLywKQEAgLTEyNTE5LDYgKzEyNTQ3LDcgQEAKIAkJCQkxQURDQjg2QjE4OTgz
MUIzMDAyMkVFNUEgLyogTmF2aWdhdGlvbkFjdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTU3RkQzMTgwMjJCMzUxNTgwMDhEMEU4QiAvKiBOYXZpZ2F0aW9uU09BdXRob3JpemF0aW9uU2Vz
c2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCQzNERjYxODk5RTQzNzAwNEYwNjI2IC8qIE5h
dmlnYXRpb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE0NTI3MDgyNzFGQkVDNjAwMDQ2
N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTdCODI2NDQyMzA0RjE0MDAwQjcyRUIwIC8qIE5lYXJGaWVsZFNvZnRMaW5rLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1N0I4MjY0MTIzMDRFQjNFMDBCNzJFQjAgLyogTmVhckZpZWxk
U1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTZGQkEyQTExRTY4NjI3MDBEQjEzNzEgLyogTmV0
c2NhcGVCcm93c2VyRnVuY3MuaCBpbiBIZWFkZXJzICovLApAQCAtMTI1NTEsNiArMTI1ODAsNyBA
QAogCQkJCUU0N0ZDOEEwMjVCODMzMUMwMDU0OTVGQyAvKiBOZXR3b3JrTG9hZFNjaGVkdWxlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3OTU1NkExNjI4NzZGMzAwRkE0M0I2IC8qIE5ldHdvcmtQ
cm9jZXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdDRjBFNDE2M0E0ODZDMDBDMjk1MEUgLyog
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTUx
NDUyNzA0MjcxRkJBNDAwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRs
ZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDMTQyNkVEMUMyM0Y4MDkw
MEQ0MTE4MyAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTE2MzE5OTUxNjI4OUE2MzAwRTIyRjAwIC8qIE5ldHdvcmtQcm9jZXNzTWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNEE5NTRBMTZFMDE2QTQwMDY4REU4MiAvKiBOZXR3
b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjc4Miw2
ICsxMjgxMiw3IEBACiAJCQkJOTM2OEVFREYyMzAzQTlFRDAwQkRCMTFBIC8qIFN0b3JhZ2VNYW5h
Z2VyU2V0TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2NUY0RTA2MjMwQjJFOTUwMDND
RURCNyAvKiBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
N0I3MzEyM0MyNUNDODUyNTAwM0IyNzk2IC8qIFN0cmVhbUNsaWVudENvbm5lY3Rpb24uaCBpbiBI
ZWFkZXJzICovLAorCQkJCTUxNDUyNzA1MjcxRkJBNDAwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25N
YW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0I3MzEy
M0EyNUNDODUyNTAwM0IyNzk2IC8qIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTdCNzMxMjQyMjVDQzg1MjUwMDNCMjc5NiAvKiBTdHJlYW1Db25uZWN0aW9uRW5j
b2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0I3MzEyM0UyNUNDODUyNTAwM0IyNzk2IC8qIFN0
cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUuaCBpbiBIZWFkZXJzICovLApAQCAtMTI5ODQsNyArMTMw
MTUsNiBAQAogCQkJCTMxQkE5MjRFMTQ4ODMxMjYwMDYyRURCNSAvKiBXZWJOb3RpZmljYXRpb25N
YW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQTJFQzRCMTQ4OTk3QzIwMDgx
MEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTMxQTJFQzRFMTQ4OTk3QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJNTEyNzE0ODMyNzAyNEYwMzAwMTk3MDM0IC8qIFdlYk5vdGlmaWNh
dGlvblByb3ZpZGVyQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODU3Rjg1MTJCODJEMEIw
MEVERUIyRSAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMxREZFQTQxMkIzMUY4NzAwNURGNzMwIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyRDhGMTBGNDM3QTAwMDU4QzE1QSAvKiBX
ZWJQYWdlLmggaW4gSGVhZGVycyAqLywKQEAgLTE0NjMzLDYgKzE0NjYzLDcgQEAKIAkJCWJ1aWxk
QWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQk1NzkwQTY3MTI1Njc5
RjFBMDA3N0M1QTcgLyogX1dLQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLm1t
IGluIFNvdXJjZXMgKi8sCisJCQkJNTE0NTI3MDMyNzFGQkEzQTAwMDQ2N0I2IC8qIE5vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1NzkwQTY3RDI1NjdBMTNFMDA3N0M1QTcgLyogX1dLQXV0aGVudGljYXRpb25FeHRl
bnNpb25zQ2xpZW50T3V0cHV0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU3OTBBNjg5MjU2N0Ey
OEEwMDc3QzVBNyAvKiBfV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UubW0gaW4gU291
cmNlcyAqLywKIAkJCQk1NzkwQTY4NTI1NjdBMjFFMDA3N0M1QTcgLyogX1dLQXV0aGVudGljYXRv
ckF0dGVzdGF0aW9uUmVzcG9uc2UubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uTWFuYWdlci5jcHAKaW5kZXggMTg4NTIxNmUwMzU4Li4wZTllOGE3ODMwNGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElP
TlMpCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb24uaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRp
b25NYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgpA
QCAtMTQ5LDcgKzE1MCw3IEBAIGJvb2wgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyhOb3Rp
ZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkKICAgICBhdXRvIGl0ID0gbV9u
b3RpZmljYXRpb25Db250ZXh0TWFwLmFkZChub3RpZmljYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSwgVmVjdG9yPHVpbnQ2NF90PigpKS5pdGVyYXRvcjsKICAgICBpdC0+dmFsdWUuYXBw
ZW5kKG5vdGlmaWNhdGlvbklEKTsKIAotICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dOb3RpZmljYXRpb24obm90
aWZpY2F0aW9uLT50aXRsZSgpLCBub3RpZmljYXRpb24tPmJvZHkoKSwgbm90aWZpY2F0aW9uLT5p
Y29uKCkuc3RyaW5nKCksIG5vdGlmaWNhdGlvbi0+dGFnKCksIG5vdGlmaWNhdGlvbi0+bGFuZygp
LCBub3RpZmljYXRpb24tPmRpcigpLCBub3RpZmljYXRpb24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSwgbm90aWZpY2F0aW9uSUQpLCBwYWdl
LT5pZGVudGlmaWVyKCkpOworICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OlNob3dO
b3RpZmljYXRpb24obm90aWZpY2F0aW9uLT50aXRsZSgpLCBub3RpZmljYXRpb24tPmJvZHkoKSwg
bm90aWZpY2F0aW9uLT5pY29uKCkuc3RyaW5nKCksIG5vdGlmaWNhdGlvbi0+dGFnKCksIG5vdGlm
aWNhdGlvbi0+bGFuZygpLCBub3RpZmljYXRpb24tPmRpcigpLCBub3RpZmljYXRpb24tPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSwgbm90aWZp
Y2F0aW9uSUQpLCBwYWdlLT5pZGVudGlmaWVyKCkpOwogICAgIHJldHVybiB0cnVlOwogI2Vsc2UK
ICAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKQEAgLTE2OCw3ICsxNjksNyBAQCB2b2lk
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNhbmNlbChOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlv
biwgV2ViUGFnZSogcGFnZSkKICAgICBpZiAoIW5vdGlmaWNhdGlvbklEKQogICAgICAgICByZXR1
cm47CiAgICAgCi0gICAgbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q2FuY2VsTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklE
KSwgcGFnZS0+aWRlbnRpZmllcigpKTsKKyAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVy
OjpDYW5jZWxOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSUQpLCBwYWdlLT5pZGVudGlmaWVyKCkp
OwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAgICBVTlVTRURfUEFS
QU0ocGFnZSk7CkBAIC0xODMsNyArMTg0LDcgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
OjpjbGVhck5vdGlmaWNhdGlvbnMoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCoKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgVmVjdG9yPHVpbnQ2NF90PiYgbm90aWZpY2F0aW9uSURzID0g
aXQtPnZhbHVlOwotICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNsZWFyTm90aWZpY2F0aW9ucyhub3RpZmljYXRpb25J
RHMpLCBwYWdlLT5pZGVudGlmaWVyKCkpOworICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRs
ZXI6OkNsZWFyTm90aWZpY2F0aW9ucyhub3RpZmljYXRpb25JRHMpLCBwYWdlLT5pZGVudGlmaWVy
KCkpOwogICAgIHNpemVfdCBjb3VudCA9IG5vdGlmaWNhdGlvbklEcy5zaXplKCk7CiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgIFJlZlB0cjxOb3RpZmlj
YXRpb24+IG5vdGlmaWNhdGlvbiA9IG1fbm90aWZpY2F0aW9uSURNYXAudGFrZShub3RpZmljYXRp
b25JRHNbaV0pOwpAQCAtMjExLDcgKzIxMiw3IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdl
cjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbihOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwKIAog
ICAgIG1fbm90aWZpY2F0aW9uSURNYXAucmVtb3ZlKG5vdGlmaWNhdGlvbklEKTsKICAgICByZW1v
dmVOb3RpZmljYXRpb25Gcm9tQ29udGV4dE1hcChub3RpZmljYXRpb25JRCwgbm90aWZpY2F0aW9u
KTsKLSAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEaWREZXN0cm95Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSwg
cGFnZS0+aWRlbnRpZmllcigpKTsKKyAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpE
aWREZXN0cm95Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+aWRlbnRpZmllcigp
KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CiAgICAgVU5VU0VEX1BB
UkFNKHBhZ2UpOwo=
</data>
<flag name="commit-queue"
          id="466306"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441908</attachid>
            <date>2021-10-20 11:31:43 -0700</date>
            <delta_ts>2021-10-20 12:30:30 -0700</delta_ts>
            <desc>PFL v2 (now with more explicit content)</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>38609</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CmluZGV4IGUwY2QwY2QyOGFkOS4uMTk2OGQyY2RjYTFkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKQEAgLTQ0LDYgKzQ0LDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9S
SUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIiCiAgICAg
IiR7V0VCS0lUX0RJUn0vU2hhcmVkL0ZpbGVBUEkiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVk
L0dhbWVwYWQiCisgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL05vdGlmaWNhdGlvbnMiCiAgICAg
IiR7V0VCS0lUX0RJUn0vU2hhcmVkL1BsdWdpbnMiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVk
L1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1BsdWdpbnMvTmV0
c2NhcGUveDExIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwppbmRleCAxMTllNGZiM2FiMTIuLjM0YzU3YWI2ZTgxNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw1MSBAQAorMjAyMS0xMC0yMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgRmFjdG9yIG91dCBzb21lIE5vdGlmaWNhdGlvbnMtc3BlY2lm
aWMgbWVzc2FnZXMgZnJvbSBXZWJQYWdlUHJveHkgbWVzc2FnZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjAyMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgSW4gYSBmdXR1cmUgcGF0Y2gsIHRoZXJl
IHdpbGwgYmUgYSBydW50aW1lIHN3aXRjaCB3aGVyZSBXZWJDb250ZW50IHNvbWV0aW1lcyBzZW5k
cyB0aGVzZSBOb3RpZmljYXRpb24KKyAgICAgICAgcmVsYXRlZCBtZXNzYWdlcyB0byBhbiBvYmpl
Y3RpbmcgaW4gTmV0d29ya2luZywgYW5kIG90aGVydGltZXMgc2VuZHMgdGhlbSB0byBhIFdlYlBh
Z2VQcm94eSBpbiB0aGUgVUlQcm9jZXNzLgorCisgICAgICAgIFRvIGFjY29tb2RhdGUgdGhpcyBz
d2l0Y2gsIGxldCdzIHNwbGl0IHRoZW0gb3V0IGludG8gdGhlaXIgb3duIE5vdGlmaWNhdGlvbnMg
c3BlY2lmaWMgb2JqZWN0IGFuZCBtZXNzYWdlcy4KKyAgICAgICAgCisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCisgICAgICAgICogU2hhcmVkL05vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmg6IEFkZGVkLgorICAgICAg
ICAqIFNoYXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
ci5tZXNzYWdlcy5pbjogQWRkZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OnNob3dOb3RpZmljYXRpb24pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OmNhbmNlbE5v
dGlmaWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNz
YWdlSGFuZGxlcjo6Y2xlYXJOb3RpZmljYXRpb25zKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpkaWREZXN0cm95Tm90aWZpY2F0aW9uKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
TWVzc2FnZUhhbmRsZXIuaDogQWRkZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9ub3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhh
bmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmFkZEFsbE1lc3NhZ2VSZWNl
aXZlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlbW92ZUFsbE1lc3NhZ2VS
ZWNlaXZlcnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxhdW5jaFByb2Nlc3Mp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN3YXBUb1Byb3Zpc2lvbmFsUGFnZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2xvc2UpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmNvbW1pdFByb3Zpc2lvbmFsUGFnZSk6CisgICAgICAgIChXZWJLaXQ6
Om1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW46CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNh
dGlvbk1hbmFnZXI6OnNob3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjpjYW5jZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpj
bGVhck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5h
Z2VyOjpkaWREZXN0cm95Tm90aWZpY2F0aW9uKToKKwogMjAyMS0xMC0yMCAgQW50dGkgS29pdmlz
dG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3QgcmUtZXZhbHVhdGUgdmlld3Bv
cnQgZGVwZW5kZW50IG1lZGlhIHF1ZXJpZXMgaWYgdGhlIHZpZXdwb3J0IGRvZXNuJ3QgY2hhbmdl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3QgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXgg
ZWRmZmE2NjE4Y2I0Li4zZGY5OGEzNTBkOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTEwMCw2ICsxMDAsOCBAQCAkKFBST0pFQ1RfRElS
KS9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4K
ICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFn
ZXIubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9BdXhpbGlhcnlQcm9jZXNzLm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9TaGFyZWQvSFRUUFNVcGdyYWRlL0hUVFBTVXBncmFk
ZUxpc3QudHh0CiskKFBST0pFQ1RfRElSKS9TaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIubWVzc2FnZXMuaW4KKyQoUFJPSkVDVF9ESVIpL1NoYXJl
ZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgogJChQ
Uk9KRUNUX0RJUikvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIubWVzc2Fn
ZXMuaW4KICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9XZWJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCiAk
KFBST0pFQ1RfRElSKS9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9T
b3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGExNjli
ODg0NTM2NC4uMWYyNjY2ODQwMGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRT
b3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJj
ZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTExNSw2ICsxMTUsOSBAQCAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3b3JrU29ja2V0U3RyZWFtTWVzc2FnZXNS
ZXBsaWVzLgogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXMu
aAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJLaXQyL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3Nh
Z2VSZWNlaXZlci5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL05vdGlmaWNhdGlvbk1hbmFnZXJN
ZXNzYWdlSGFuZGxlck1lc3NhZ2VzUmVwbGllcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViS2l0Mi9QbGF0Zm9ybVhSU3lzdGVtTWVzc2FnZVJlY2VpdmVyLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvUGxhdGZvcm1YUlN5
c3RlbU1lc3NhZ2VzLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJL
aXQyL1BsYXRmb3JtWFJTeXN0ZW1NZXNzYWdlc1JlcGxpZXMuaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNl
cy5tYWtlCmluZGV4IDFiZWZkYTcyNDY5OS4uMTRmMmE4Y2MwNmNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVk
U291cmNlcy5tYWtlCkBAIC00Nyw2ICs0Nyw3IEBAIFZQQVRIID0gXAogICAgICQoV2ViS2l0Mikv
U2hhcmVkL0FwcGxlUGF5IFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9BdXRoZW50aWNhdGlvbiBc
CiAgICAgJChXZWJLaXQyKS9TaGFyZWQvbWFjIFwKKyAgICAkKFdlYktpdDIpL1NoYXJlZC9Ob3Rp
ZmljYXRpb25zIFwKICAgICAkKFdlYktpdDIpL1dlYkF1dGhuUHJvY2VzcyBcCiAgICAgJChXZWJL
aXQyKS9XZWJBdXRoblByb2Nlc3MvbWFjIFwKICAgICAkKFdlYktpdDIpL1dlYlByb2Nlc3MvQXBw
bGVQYXkgXApAQCAtMTQ3LDYgKzE0OCw3IEBAIE1FU1NBR0VfUkVDRUlWRVJTID0gXAogCVNoYXJl
ZC9BUEkvQ29jb2EvUmVtb3RlT2JqZWN0UmVnaXN0cnkgXAogCVNoYXJlZC9BcHBsZVBheS9XZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eSBcCiAJU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0aW9uTWFuYWdlciBcCisJU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VIYW5kbGVyIFwKIAlTaGFyZWQvV2ViQ29ubmVjdGlvbiBcCiAJVUlQcm9jZXNzL1dl
YkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkgXAogCVVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5o
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2Vy
TWVzc2FnZUhhbmRsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu
LmI3ODhmZGRiMWRiMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmgKQEAgLTAsMCAr
MSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVzc2FnZVJl
Y2VpdmVyLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvTm90aWZpY2F0aW9uRGlyZWN0aW9uLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitjbGFzcyBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIgOiBwdWJsaWMgSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIgeworcHVibGljOgorICAgIHZpcnR1YWwgfk5vdGlmaWNhdGlvbk1hbmFn
ZXJNZXNzYWdlSGFuZGxlcigpID0gZGVmYXVsdDsKKworICAgIHZpcnR1YWwgdm9pZCBzaG93Tm90
aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3Qg
U3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBsYW5ndWFn
ZSwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0
cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2Fu
Y2VsTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmlj
YXRpb25JRHMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRGVzdHJveU5vdGlmaWNhdGlvbih1
aW50NjRfdCBub3RpZmljYXRpb25JRCkgPSAwOworCitwcml2YXRlOgorICAgIC8vIElQQzo6TWVz
c2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2Vy
TWVzc2FnZUhhbmRsZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5tZXNzYWdlcy5pbgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmRkNzVlMzM4YjZlNQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsMjggQEAKKyMg
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gTm90aWZp
Y2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyIE5vdFJlZkNvdW50ZWQgeworICAgIFNob3dOb3Rp
ZmljYXRpb24oU3RyaW5nIHRpdGxlLCBTdHJpbmcgYm9keSwgU3RyaW5nIGljb25VUkwsIFN0cmlu
ZyB0YWcsIFN0cmluZyBsYW5ndWFnZSwgZW51bTp1aW50OF90IFdlYkNvcmU6Ok5vdGlmaWNhdGlv
bkRpcmVjdGlvbiBkaXJlY3Rpb24sIFN0cmluZyBvcmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBu
b3RpZmljYXRpb25JRCkKKyAgICBDYW5jZWxOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0
aW9uSUQpCisgICAgQ2xlYXJOb3RpZmljYXRpb25zKFZlY3Rvcjx1aW50NjRfdD4gbm90aWZpY2F0
aW9uSURzKQorICAgIERpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9u
SUQpCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0IGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzLnR4dAppbmRleCA1NTMxOWNiYjU3YWUuLmIxMmU1NjMxNGE3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXMudHh0CkBAIC00OTQsNiArNDk0LDcgQEAgVUlQcm9jZXNzL01lZGlhL01lZGlhVXNhZ2VNYW5h
Z2VyLmNwcAogVUlQcm9jZXNzL01lZGlhL1JlbW90ZU1lZGlhU2Vzc2lvbkNvb3JkaW5hdG9yUHJv
eHkuY3BwCiAKIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbi5jcHAKK1VJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
ci5jcHAKIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eS5jcHAKIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNw
cAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iYzU0MDhjNjUx
MzEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5jcHAKQEAgLTAsMCArMSw1
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCIKKworI2luY2x1ZGUgIldlYlBhZ2VQcm94
eS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VIYW5kbGVyOjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIoV2ViUGFnZVBy
b3h5JiB3ZWJQYWdlUHJveHkpCisgICAgOiBtX3dlYlBhZ2VQcm94eSh3ZWJQYWdlUHJveHkpCit7
Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpzaG93Tm90
aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3Qg
U3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBsYW5ndWFn
ZSwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgY29uc3QgU3RyaW5n
JiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQoreworICAgIG1fd2ViUGFn
ZVByb3h5LnNob3dOb3RpZmljYXRpb24odGl0bGUsIGJvZHksIGljb25VUkwsIHRhZywgbGFuZ3Vh
Z2UsIGRpcmVjdGlvbiwgb3JpZ2luU3RyaW5nLCBub3RpZmljYXRpb25JRCk7Cit9CisKK3ZvaWQg
V2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpjYW5jZWxOb3RpZmljYXRpb24o
dWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCit7CisgICAgbV93ZWJQYWdlUHJveHkuY2FuY2VsTm90
aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZUhhbmRsZXI6OmNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0
X3Q+JiBub3RpZmljYXRpb25JRHMpCit7CisgICAgbV93ZWJQYWdlUHJveHkuY2xlYXJOb3RpZmlj
YXRpb25zKG5vdGlmaWNhdGlvbklEcyk7Cit9CisKK3ZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VIYW5kbGVyOjpkaWREZXN0cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNh
dGlvbklEKQoreworICAgIG1fd2ViUGFnZVByb3h5LmRpZERlc3Ryb3lOb3RpZmljYXRpb24obm90
aWZpY2F0aW9uSUQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNmYwZmQ2ODU1OThlCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZUhhbmRsZXIuaApAQCAtMCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCIK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xhc3MgV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyIDogcHVibGljIE5vdGlmaWNhdGlvbk1h
bmFnZXJNZXNzYWdlSGFuZGxlciB7CisgICAgZnJpZW5kIGNsYXNzIFdlYlBhZ2VQcm94eTsKK3By
aXZhdGU6CisgICAgZXhwbGljaXQgV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVy
KFdlYlBhZ2VQcm94eSYpOworCisgICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKGNvbnN0IFN0cmlu
ZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgYm9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25z
dCBTdHJpbmcmIHRhZywgY29uc3QgU3RyaW5nJiBsYW5ndWFnZSwgV2ViQ29yZTo6Tm90aWZpY2F0
aW9uRGlyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3Qgbm90aWZp
Y2F0aW9uSUQpIGZpbmFsOworICAgIHZvaWQgY2FuY2VsTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5v
dGlmaWNhdGlvbklEKSBmaW5hbDsKKyAgICB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBW
ZWN0b3I8dWludDY0X3Q+JiBub3RpZmljYXRpb25JRHMpIGZpbmFsOworICAgIHZvaWQgZGlkRGVz
dHJveU5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCkgZmluYWw7CisKKyAgICBX
ZWJQYWdlUHJveHkmIG1fd2ViUGFnZVByb3h5OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA4MjhmMmJhYzAz
OTcuLmY3YTgxMGIyNzNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC03Nyw2ICs3Nyw3IEBACiAjaW5jbHVkZSAiTmF2aWdhdGlvbkFjdGlvbkRhdGEuaCIK
ICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1By
b2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
ck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCIK
ICNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCIKICNpbmNs
dWRlICJQYWdlQ2xpZW50LmgiCkBAIC01MTYsNiArNTE3LDcgQEAgV2ViUGFnZVByb3h5OjpXZWJQ
YWdlUHJveHkoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNz
LCBSZWYKICAgICAsIG1faWdub3Jlc0FwcEJvdW5kRG9tYWlucyhtX2NvbmZpZ3VyYXRpb24tPmln
bm9yZXNBcHBCb3VuZERvbWFpbnMoKSkKICAgICAsIG1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJv
dW5kRG9tYWlucyhtX2NvbmZpZ3VyYXRpb24tPmxpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERv
bWFpbnMoKSkKICNlbmRpZgorICAgICwgbV9ub3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRs
ZXIoKnRoaXMpCiB7CiAgICAgV0VCUEFHRVBST1hZX1JFTEVBU0VfTE9HKExvYWRpbmcsICJjb25z
dHJ1Y3RvcjoiKTsKIApAQCAtNTQ2LDcgKzU0OCw3IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVBy
b3h5KFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgUmVm
CiAgICAgaWYgKGhhc1J1bm5pbmdQcm9jZXNzKCkpCiAgICAgICAgIGRpZEF0dGFjaFRvUnVubmlu
Z1Byb2Nlc3MoKTsKIAotICAgIG1fcHJvY2Vzcy0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdlSUQsICp0aGlz
KTsKKyAgICBhZGRBbGxNZXNzYWdlUmVjZWl2ZXJzKCk7CiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQogICAgIERlcHJlY2F0ZWRHbG9iYWxTZXR0aW5nczo6c2V0RGlzYWJsZVNjcmVlblNpemVP
dmVycmlkZShtX3ByZWZlcmVuY2VzLT5kaXNhYmxlU2NyZWVuU2l6ZU92ZXJyaWRlKCkpOwpAQCAt
NjIwLDYgKzYyMiwxOCBAQCBXZWJQYWdlUHJveHk6On5XZWJQYWdlUHJveHkoKQogI2VuZGlmCiB9
CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjphZGRBbGxNZXNzYWdlUmVjZWl2ZXJzKCkKK3sKKyAgICBt
X3Byb2Nlc3MtPmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFnZUlELCAqdGhpcyk7CisgICAgbV9wcm9jZXNzLT5h
ZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFu
ZGxlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VJRCwgbV9ub3RpZmljYXRpb25N
YW5hZ2VyTWVzc2FnZUhhbmRsZXIpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVtb3ZlQWxs
TWVzc2FnZVJlY2VpdmVycygpCit7CisgICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2
ZXIoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBh
Z2VJRCk7CisgICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6Ok5v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBt
X3dlYlBhZ2VJRCk7Cit9CisKIC8vIEZJWE1FOiBTaG91bGQgcmV0dXJuIGEgY29uc3QgUGFnZUNs
aWVudCYgYW5kIGFkZCBhIHNlcGFyYXRlIG5vbi1jb25zdAogLy8gdmVyc2lvbiBvZiB0aGlzIGZ1
bmN0aW9uLCBidXQgc2V2ZXJhbCBQYWdlQ2xpZW50IG1ldGhvZHMgd2lsbCBuZWVkIHRvIGJlY29t
ZQogLy8gY29uc3QgZm9yIHRoaXMgdG8gYmUgcG9zc2libGUuCkBAIC04NDEsNyArODU1LDcgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmxhdW5jaFByb2Nlc3MoY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHJlZ2lzdHJhYmxlRG9tYWluLCBQcm8KICAgICBtX2luc3BlY3Rvci0+cmVzZXQoKTsKIAogICAg
IG1fcHJvY2Vzcy0+cmVtb3ZlV2ViUGFnZSgqdGhpcywgV2ViUHJvY2Vzc1Byb3h5OjpFbmRzVXNp
bmdEYXRhU3RvcmU6Olllcyk7Ci0gICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VJ
RCk7CisgICAgcmVtb3ZlQWxsTWVzc2FnZVJlY2VpdmVycygpOwogCiAgICAgYXV0byYgcHJvY2Vz
c1Bvb2wgPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCk7CiAKQEAgLTg1Myw3ICs4NjcsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6bGF1bmNoUHJvY2Vzcyhjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
cmVnaXN0cmFibGVEb21haW4sIFBybwogICAgIG1faGFzUnVubmluZ1Byb2Nlc3MgPSB0cnVlOwog
CiAgICAgbV9wcm9jZXNzLT5hZGRFeGlzdGluZ1dlYlBhZ2UoKnRoaXMsIFdlYlByb2Nlc3NQcm94
eTo6QmVnaW5zVXNpbmdEYXRhU3RvcmU6Olllcyk7Ci0gICAgbV9wcm9jZXNzLT5hZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBt
X3dlYlBhZ2VJRCwgKnRoaXMpOworICAgIGFkZEFsbE1lc3NhZ2VSZWNlaXZlcnMoKTsKIAogI2lm
IEVOQUJMRShJUENfVEVTVElOR19BUEkpCiAgICAgaWYgKG1fcHJlZmVyZW5jZXMtPnN0b3JlKCku
Z2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjppcGNUZXN0aW5nQVBJRW5hYmxl
ZEtleSgpKSkKQEAgLTk2NCw3ICs5NzgsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c3dhcFRvUHJv
dmlzaW9uYWxQYWdlKHN0ZDo6dW5pcXVlX3B0cjxQcm92aXNpb25hbFBhZ2VQcm94eT4gcAogICAg
IG1fbWFpbkZyYW1lID0gcHJvdmlzaW9uYWxQYWdlLT5tYWluRnJhbWUoKTsKIAogICAgIG1fcHJv
Y2Vzcy0+YWRkRXhpc3RpbmdXZWJQYWdlKCp0aGlzLCBXZWJQcm9jZXNzUHJveHk6OkJlZ2luc1Vz
aW5nRGF0YVN0b3JlOjpObyk7Ci0gICAgbV9wcm9jZXNzLT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VJRCwg
KnRoaXMpOworICAgIGFkZEFsbE1lc3NhZ2VSZWNlaXZlcnMoKTsKIAogICAgIGZpbmlzaEF0dGFj
aGluZ1RvV2ViUHJvY2VzcyhQcm9jZXNzTGF1bmNoUmVhc29uOjpQcm9jZXNzU3dhcCk7CiAKQEAg
LTExOTIsNyArMTIwNiw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbG9zZSgpCiAgICAgICAgIHBy
b3RlY3RlZFByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNsb3NlKCksIGRlc3RpbmF0
aW9uSUQpOwogICAgIH0pOwogICAgIG1fcHJvY2Vzcy0+cmVtb3ZlV2ViUGFnZSgqdGhpcywgV2Vi
UHJvY2Vzc1Byb3h5OjpFbmRzVXNpbmdEYXRhU3RvcmU6Olllcyk7Ci0gICAgbV9wcm9jZXNzLT5y
ZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLCBtX3dlYlBhZ2VJRCk7CisgICAgcmVtb3ZlQWxsTWVzc2FnZVJlY2VpdmVycygp
OwogICAgIG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5zdXBwbGVtZW50PFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXJQcm94eT4oKS0+Y2xlYXJOb3RpZmljYXRpb25zKHRoaXMpOwogCiAgICAgLy8gTnVs
bCBvdXQgcmVsYXRlZCBXZWJQYWdlUHJveHkgdG8gYXZvaWQgbGVha3MuCkBAIC0zNjEzLDcgKzM2
MjcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKEZyYW1lSWRl
bnRpZmllciBmcmFtZUlELCBGcmFtZUluZm9EYXRhJgogCiAgICAgcmVzZXRTdGF0ZUFmdGVyUHJv
Y2Vzc1Rlcm1pbmF0aW9uKFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbjo6TmF2aWdhdGlvblN3YXAp
OwogCi0gICAgbV9wcm9jZXNzLT5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBhZ2VJRCk7CisgICAgcmVtb3Zl
QWxsTWVzc2FnZVJlY2VpdmVycygpOwogICAgIGF1dG8qIG5hdmlnYXRpb24gPSBuYXZpZ2F0aW9u
U3RhdGUoKS5uYXZpZ2F0aW9uKG1fcHJvdmlzaW9uYWxQYWdlLT5uYXZpZ2F0aW9uSUQoKSk7CiAg
ICAgYm9vbCBkaWRTdXNwZW5kUHJldmlvdXNQYWdlID0gbmF2aWdhdGlvbiAmJiAhbV9wcm92aXNp
b25hbFBhZ2UtPnNob3VsZENsb3NlUHJldmlvdXNQYWdlQWZ0ZXJDb21taXQoKSA/IHN1c3BlbmRD
dXJyZW50UGFnZUlmUG9zc2libGUoKm5hdmlnYXRpb24sIG1haW5GcmFtZUlESW5QcmV2aW91c1By
b2Nlc3MsIG1fcHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50KCks
IHNob3VsZERlbGF5Q2xvc2luZ1VudGlsRmlyc3RMYXllckZsdXNoKSA6IGZhbHNlOwogICAgIG1f
cHJvY2Vzcy0+cmVtb3ZlV2ViUGFnZSgqdGhpcywgbV93ZWJzaXRlRGF0YVN0b3JlLnB0cigpID09
ICZtX3Byb3Zpc2lvbmFsUGFnZS0+cHJvY2VzcygpLndlYnNpdGVEYXRhU3RvcmUoKSA/IFdlYlBy
b2Nlc3NQcm94eTo6RW5kc1VzaW5nRGF0YVN0b3JlOjpObyA6IFdlYlByb2Nlc3NQcm94eTo6RW5k
c1VzaW5nRGF0YVN0b3JlOjpZZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCBmM2RkMjNjYWE0YTMuLmFiZjFkMWRkNGRmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKQEAgLTY5LDYgKzY5LDcgQEAKICNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd24u
aCIKICNpbmNsdWRlICJXZWJGcmFtZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9u
TWFuYWdlck1lc3NhZ2VIYW5kbGVyLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5oIgogI2luY2x1ZGUgIldlYlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgogI2lu
Y2x1ZGUgIldlYlBhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oIgpAQCAtMTk5MCwxMCArMTk5MSwx
OCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1F1YXJhbnRpbmVkQW5kTm90VXNlckFwcHJvdmVkKGNv
bnN0IFN0cmluZyYpOwogI2VuZGlmCiAKKyAgICB2b2lkIHNob3dOb3RpZmljYXRpb24oY29uc3Qg
U3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkws
IGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmcsIFdlYkNvcmU6Ok5vdGlmaWNh
dGlvbkRpcmVjdGlvbiwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlm
aWNhdGlvbklEKTsKKyAgICB2b2lkIGNhbmNlbE5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmlj
YXRpb25JRCk7CisgICAgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2
NF90PiYgbm90aWZpY2F0aW9uSURzKTsKKyAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24o
dWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOworCiBwcml2YXRlOgogICAgIFdlYlBhZ2VQcm94eShQ
YWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+
JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAKKyAgICB2b2lkIGFkZEFsbE1l
c3NhZ2VSZWNlaXZlcnMoKTsKKyAgICB2b2lkIHJlbW92ZUFsbE1lc3NhZ2VSZWNlaXZlcnMoKTsK
KwogICAgIHZvaWQgbm90aWZ5UHJvY2Vzc1Bvb2xUb1ByZXdhcm0oKTsKICAgICBib29sIHNob3Vs
ZFVzZUJhY2tGb3J3YXJkQ2FjaGUoKSBjb25zdDsKIApAQCAtMjE4NSwxMCArMjE5NCw2IEBAIHBy
aXZhdGU6CiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbGF1bmNoUHJvY2Vzc0ZvclJlbG9h
ZCgpOwogCiAgICAgdm9pZCByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25zdCBTdHJp
bmcmIG9yaWdpblN0cmluZywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIGFsbG93ZWQpPiYm
KTsKLSAgICB2b2lkIHNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3Qg
U3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBj
b25zdCBTdHJpbmcmIGxhbmcsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRpcmVjdGlvbiwgY29uc3Qg
U3RyaW5nJiBvcmlnaW5TdHJpbmcsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKLSAgICB2b2lk
IGNhbmNlbE5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7Ci0gICAgdm9pZCBj
bGVhck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPHVpbnQ2NF90PiYgbm90aWZpY2F0aW9uSURz
KTsKLSAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9u
SUQpOwogCiAgICAgdm9pZCBkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRT
aXplJik7CiAgICAgdm9pZCBkaWRDaGFuZ2VJbnRyaW5zaWNDb250ZW50U2l6ZShjb25zdCBXZWJD
b3JlOjpJbnRTaXplJik7CkBAIC0zMTIyLDYgKzMxMjcsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAK
ICAgICBXaW5kb3dLaW5kIG1fd2luZG93S2luZCB7IFdpbmRvd0tpbmQ6OlVucGFyZW50ZWQgfTsK
KworICAgIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlciBtX25vdGlmaWNhdGlv
bk1hbmFnZXJNZXNzYWdlSGFuZGxlcjsKIH07CiAKICNpZmRlZiBfX09CSkNfXwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDU4MTA4
Zjc0MzE0ZC4uZjU3MDVhMDYxMTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yODUsMTAgKzI4NSw2IEBAIG1lc3NhZ2VzIC0+
IFdlYlBhZ2VQcm94eSB7CiAKICAgICAjIE5vdGlmaWNhdGlvbiBtZXNzYWdlcwogICAgIFJlcXVl
c3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKFN0cmluZyBvcmlnaW5JZGVudGlmaWVyKSAtPiAoYm9v
bCBhbGxvd2VkKSBBc3luYwotICAgIFNob3dOb3RpZmljYXRpb24oU3RyaW5nIHRpdGxlLCBTdHJp
bmcgYm9keSwgU3RyaW5nIGljb25VUkwsIFN0cmluZyB0YWcsIFN0cmluZyBsYW5nLCBlbnVtOnVp
bnQ4X3QgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uIGRpciwgU3RyaW5nIG9yaWdpbklk
ZW50aWZpZXIsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQotICAgIENhbmNlbE5vdGlmaWNhdGlv
bih1aW50NjRfdCBub3RpZmljYXRpb25JRCkKLSAgICBDbGVhck5vdGlmaWNhdGlvbnMoVmVjdG9y
PHVpbnQ2NF90PiBub3RpZmljYXRpb25JRHMpCi0gICAgRGlkRGVzdHJveU5vdGlmaWNhdGlvbih1
aW50NjRfdCBub3RpZmljYXRpb25JRCkKIAogICAgICMgU3BlbGxpbmcgYW5kIGdyYW1tYXIgbWVz
c2FnZXMKICNpZiBVU0UoVU5JRklFRF9URVhUX0NIRUNLSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMGNlM2I4ZTVjZDFlLi44MTc2
MTc1NGMxODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTA1NCw2ICsxMDU0LDExIEBACiAJCTUxM0U0NjJEMUFEODM3NTYwMDE2MjM0
QSAvKiBXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxM0U0NjJCMUFEODM3NTYwMDE2MjM0QSAvKiBX
S1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVsZWdhdGUuaCAqLzsgfTsKIAkJNTEzRkZCOTEyMDE0NTlD
NjAwMjU5NkVBIC8qIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTNGRkI4RjIwMTQ1OUMyMDAyNTk2
RUEgLyogV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCAqLzsgfTsKIAkJNTE0MTI5OTQx
QzY0MjhCQjAwNTlFNzE0IC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0MTI5OTIxQzY0MjgxMDAwNTlF
NzE0IC8qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oICovOyB9OworCQk1MTQ1MjZGRjI3MUZC
N0VDMDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ1MjZGRTI3MUZCN0U4
MDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmggKi87IH07CisJ
CTUxNDUyNzAzMjcxRkJBM0EwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhh
bmRsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTE0NTI3MDIyNzFGQkEzNjAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1h
bmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CisJCTUxNDUyNzA0
MjcxRkJBNDAwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNz
YWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxNDUyNzAwMjcxRkJBMzQwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2Fn
ZUhhbmRsZXJNZXNzYWdlc1JlcGxpZXMuaCAqLzsgfTsKKwkJNTE0NTI3MDUyNzFGQkE0MDAwMDQ2
N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ1MjcwMTI3MUZCQTM1
MDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXMuaCAq
LzsgfTsKKwkJNTE0NTI3MDgyNzFGQkVDNjAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJNZXNzYWdlSGFuZGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTE0NTI3MDcyNzFGQkVDMTAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJNZXNzYWdlSGFuZGxlci5oICovOyB9OwogCQk1MTQ4OUNDMzIzNzBEQkZBMDA0NEU2OEEgLyog
V0tGaW5kUmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTQ4OUNDMTIzNzBEQUNDMDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0LmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogCQk1MTQ4OUNDNzIzNzIzNzgw
MDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDg5Q0M2MjM3MjM3NzgwMDQ0RTY4QSAvKiBXS0Zp
bmRSZXN1bHRJbnRlcm5hbC5oICovOyB9OwogCQk1MTRBQjlGMDIzNjBEMkE5MDBFREMzOTYgLyog
V0tGaW5kQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTE0QUI5RUYyMzVGQTU5QjAwRURDMzk2IC8qIFdLRmluZENvbmZpZ3VyYXRp
b24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CkBAIC00
MTYwLDYgKzQxNjUsMTMgQEAKIAkJNTE0MTI5OTIxQzY0MjgxMDAwNTlFNzE0IC8qIFdlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0
M0IyNUUxRERDREZEMTAwMTRGQUM2IC8qIF9XS0ljb25Mb2FkaW5nRGVsZWdhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQzQjI2MTFEREQwREEwMDAxNEZBQzYgLyogQVBJ
SWNvbkxvYWRpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJ
SWNvbkxvYWRpbmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE0NTI2
RkMyNzFGQjdFODAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5t
ZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOb3RpZmljYXRpb25NYW5hZ2VyTWVz
c2FnZUhhbmRsZXIubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUx
NDUyNkZFMjcxRkI3RTgwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRs
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNDUyNzAw
MjcxRkJBMzQwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNz
YWdlc1JlcGxpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm90aWZpY2F0
aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXNSZXBsaWVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTUxNDUyNzAxMjcxRkJBMzUwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25N
YW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTQ1MjcwMjI3MUZCQTM2MDAwNDY3QjYgLyogTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
SGFuZGxlck1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTUxNDUyNzA2MjcxRkJFQzEwMDA0NjdCNiAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2Fn
ZUhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTE0NTI3MDcyNzFGQkVDMTAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJNZXNzYWdlSGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJO
b3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTE0ODlDQzEyMzcwREFDQzAwNDRFNjhBIC8qIFdLRmluZFJlc3VsdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0ZpbmRSZXN1bHQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTE0ODlDQzIyMzcwREFDQzAwNDRFNjhBIC8qIFdLRmluZFJlc3Vs
dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLRmluZFJlc3Vs
dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE0ODlDQzYyMzcyMzc3ODAwNDRF
NjhBIC8qIFdLRmluZFJlc3VsdEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLRmluZFJlc3VsdEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC02OTM5LDYgKzY5NTEsNyBAQAogCQkJCTUxNUJFMUFFMUQ1OTAwMzQwMEREN0M2OCAvKiBH
YW1lcGFkICovLAogCQkJCTJEQTk0NDk2MTg4NEU0REEwMEVEODZEQiAvKiBpb3MgKi8sCiAJCQkJ
QkMxMTFCNUExMTJGNjI4MjAwMzM3QkFCIC8qIG1hYyAqLywKKwkJCQk1MUFGMUIzRDI3MUY0NkE2
MDAxNTM4RTYgLyogTm90aWZpY2F0aW9ucyAqLywKIAkJCQkxQUFFMDU4QzEyNzlEQ0Q0MDA4NTI0
MTggLyogUGx1Z2lucyAqLywKIAkJCQkyRDJFMDQ3NjFGNUJFQzRGMDBCQjI1RUQgLyogUmVtb3Rl
TGF5ZXJUcmVlICovLAogCQkJCUUzNjEyRkYwMjZGOTA4NjIwMDdCMTE3NSAvKiBTYW5kYm94ICov
LApAQCAtODEzNyw2ICs4MTUwLDggQEAKIAkJCQkzMUEyRUM1MzE0ODk5ODI1MDA4MTBENzEgLyog
Tm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuaCAqLywKIAkJCQkzMUEyRUM0MTE0ODk5N0JF
MDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uLmNwcCAqLywKIAkJCQkzMUEyRUM0MjE0ODk5N0JF
MDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uLmggKi8sCisJCQkJNTE0NTI3MDYyNzFGQkVDMTAw
MDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5jcHAgKi8sCisJ
CQkJNTE0NTI3MDcyNzFGQkVDMTAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNz
YWdlSGFuZGxlci5oICovLAogCQkJCTMxQTJFQzQzMTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwICovLAogCQkJCTMxQTJFQzQ0MTQ4OTk3QkYwMDgxMEQ3
MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCAqLywKIAkJCQkzMUEyRUM0NjE0ODk5
N0MwMDA4MTBENzEgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwICovLApAQCAtOTA5Miw2
ICs5MTA3LDE1IEBACiAJCQlwYXRoID0gQXV0aGVudGljYXRpb247CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwogCQl9OworCQk1MUFGMUIzRDI3MUY0NkE2MDAxNTM4RTYgLyogTm90aWZpY2F0
aW9ucyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNTE0
NTI2RkUyNzFGQjdFODAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
ci5oICovLAorCQkJCTUxNDUyNkZDMjcxRkI3RTgwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZUhhbmRsZXIubWVzc2FnZXMuaW4gKi8sCisJCQkpOworCQkJcGF0aCA9IE5vdGlm
aWNhdGlvbnM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQk1MUIxNUE3RDEz
ODQzOUIyMDAzMjFBRDggLyogdW5peCAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCkBAIC0xMTQ3Nyw2ICsxMTUwMSw5IEBACiAJCQkJOTMwODVEQ0MyNkUyRTkwMjAw
MEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJ
CQkJOTMwODVEQ0QyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdlTWFuYWdlck1lc3Nh
Z2VzLmggKi8sCiAJCQkJOTMwODVEQ0UyNkUyRTkwMjAwMEVDNkE3IC8qIE5ldHdvcmtTdG9yYWdl
TWFuYWdlck1lc3NhZ2VzUmVwbGllcy5oICovLAorCQkJCTUxNDUyNzAyMjcxRkJBMzYwMDA0NjdC
NiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLAorCQkJCTUxNDUyNzAxMjcxRkJBMzUwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2Vy
TWVzc2FnZUhhbmRsZXJNZXNzYWdlcy5oICovLAorCQkJCTUxNDUyNzAwMjcxRkJBMzQwMDA0NjdC
NiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlc1JlcGxpZXMuaCAq
LywKIAkJCQkxQTJEODQzNzEyN0Y2NUQ1MDAxRUI5NjIgLyogTlBPYmplY3RNZXNzYWdlUmVjZWl2
ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTFBMkQ4NDM4MTI3RjY1RDUwMDFFQjk2MiAv
KiBOUE9iamVjdE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VzLmggKi8sCiAJCQkJQ0RBMjlBMjQxQ0JF
QjY3QTAwOTAxQ0NGIC8qIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovLApAQCAtMTI0ODUsNiArMTI1MTIsNyBAQAogCQkJCTFBNkQ4NkMyMURGNzUyNjUwMDc3NDVF
OCAvKiBNYWNoTWVzc2FnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDNTZGNzkxMTU5OTU3RDAw
MUNDQUY5IC8qIE1hY2hQb3J0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTI0QjVGMzExRjUzMUU4
MDBDMzgyNjkgLyogTWFjaFV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE0NTI2RkYy
NzFGQjdFQzAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTE1Nzk5QkUyNTg0NDMzMjAwNTI4MjM2IC8qIE1lZGlhRm9ybWF0
UmVhZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QUNDMDdCMTI1QzgxNUQ4MDBEQzYzODYgLyog
TWVkaWFLZXlTeXN0ZW1QZXJtaXNzaW9uUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUFD
QzA3QUQyNUM4MTMyRDAwREM2Mzg2IC8qIE1lZGlhS2V5U3lzdGVtUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTEyNTE5LDYgKzEyNTQ3LDcgQEAKIAkJCQkxQURD
Qjg2QjE4OTgzMUIzMDAyMkVFNUEgLyogTmF2aWdhdGlvbkFjdGlvbkRhdGEuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU3RkQzMTgwMjJCMzUxNTgwMDhEMEU4QiAvKiBOYXZpZ2F0aW9uU09BdXRob3Jp
emF0aW9uU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCQzNERjYxODk5RTQzNzAwNEYw
NjI2IC8qIE5hdmlnYXRpb25TdGF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE0NTI3MDgyNzFG
QkVDNjAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTdCODI2NDQyMzA0RjE0MDAwQjcyRUIwIC8qIE5lYXJGaWVsZFNv
ZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0I4MjY0MTIzMDRFQjNFMDBCNzJFQjAgLyog
TmVhckZpZWxkU1BJLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTZGQkEyQTExRTY4NjI3MDBEQjEz
NzEgLyogTmV0c2NhcGVCcm93c2VyRnVuY3MuaCBpbiBIZWFkZXJzICovLApAQCAtMTI1NTEsNiAr
MTI1ODAsNyBAQAogCQkJCUU0N0ZDOEEwMjVCODMzMUMwMDU0OTVGQyAvKiBOZXR3b3JrTG9hZFNj
aGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3OTU1NkExNjI4NzZGMzAwRkE0M0I2IC8q
IE5ldHdvcmtQcm9jZXNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdDRjBFNDE2M0E0ODZDMDBD
Mjk1MEUgLyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
LAorCQkJCTUxNDUyNzA0MjcxRkJBNDAwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVz
c2FnZUhhbmRsZXJNZXNzYWdlc1JlcGxpZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDMTQyNkVE
MUMyM0Y4MDkwMEQ0MTE4MyAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTE2MzE5OTUxNjI4OUE2MzAwRTIyRjAwIC8qIE5ldHdvcmtQcm9j
ZXNzTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNEE5NTRBMTZFMDE2QTQwMDY4REU4
MiAvKiBOZXR3b3JrUHJvY2Vzc1BsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8sCkBA
IC0xMjc4Miw2ICsxMjgxMiw3IEBACiAJCQkJOTM2OEVFREYyMzAzQTlFRDAwQkRCMTFBIC8qIFN0
b3JhZ2VNYW5hZ2VyU2V0TWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2NUY0RTA2MjMw
QjJFOTUwMDNDRURCNyAvKiBTdG9yYWdlTmFtZXNwYWNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJN0I3MzEyM0MyNUNDODUyNTAwM0IyNzk2IC8qIFN0cmVhbUNsaWVudENvbm5lY3Rp
b24uaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNDUyNzA1MjcxRkJBNDAwMDA0NjdCNiAvKiBOb3Rp
ZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0I3MzEyM0EyNUNDODUyNTAwM0IyNzk2IC8qIFN0cmVhbUNvbm5lY3Rpb25CdWZmZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCTdCNzMxMjQyMjVDQzg1MjUwMDNCMjc5NiAvKiBTdHJlYW1Db25u
ZWN0aW9uRW5jb2Rlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0I3MzEyM0UyNUNDODUyNTAwM0Iy
Nzk2IC8qIFN0cmVhbUNvbm5lY3Rpb25Xb3JrUXVldWUuaCBpbiBIZWFkZXJzICovLApAQCAtMTI5
ODQsNyArMTMwMTUsNiBAQAogCQkJCTMxQkE5MjRFMTQ4ODMxMjYwMDYyRURCNSAvKiBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQTJFQzRCMTQ4
OTk3QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTMxQTJFQzRFMTQ4OTk3QzIwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92
aWRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTEyNzE0ODMyNzAyNEYwMzAwMTk3MDM0IC8qIFdl
Yk5vdGlmaWNhdGlvblByb3ZpZGVyQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDODU3Rjg1
MTJCODJEMEIwMEVERUIyRSAvKiBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMxREZFQTQxMkIzMUY4NzAwNURGNzMwIC8qIFdlYk9wZW5QYW5lbFJlc3Vs
dExpc3RlbmVyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyRDhGMTBGNDM3QTAwMDU4
QzE1QSAvKiBXZWJQYWdlLmggaW4gSGVhZGVycyAqLywKQEAgLTE0NjMzLDYgKzE0NjYzLDcgQEAK
IAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKIAkJCQk1Nzkw
QTY3MTI1Njc5RjFBMDA3N0M1QTcgLyogX1dLQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50
SW5wdXRzLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTE0NTI3MDMyNzFGQkEzQTAwMDQ2N0I2IC8q
IE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1NzkwQTY3RDI1NjdBMTNFMDA3N0M1QTcgLyogX1dLQXV0aGVudGlj
YXRpb25FeHRlbnNpb25zQ2xpZW50T3V0cHV0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU3OTBB
Njg5MjU2N0EyOEEwMDc3QzVBNyAvKiBfV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2Uu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk1NzkwQTY4NTI1NjdBMjFFMDA3N0M1QTcgLyogX1dLQXV0
aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2UubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggMTg4NTIxNmUwMzU4Li4wZTllOGE3ODMwNGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgogCiAjaWYgRU5BQkxFKE5P
VElGSUNBVElPTlMpCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVy
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb24uaCIKICNpbmNsdWRlICJXZWJO
b3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNz
YWdlcy5oIgpAQCAtMTQ5LDcgKzE1MCw3IEBAIGJvb2wgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6
c2hvdyhOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkKICAgICBhdXRv
IGl0ID0gbV9ub3RpZmljYXRpb25Db250ZXh0TWFwLmFkZChub3RpZmljYXRpb24tPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgVmVjdG9yPHVpbnQ2NF90PigpKS5pdGVyYXRvcjsKICAgICBpdC0+
dmFsdWUuYXBwZW5kKG5vdGlmaWNhdGlvbklEKTsKIAotICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNob3dOb3RpZmlj
YXRpb24obm90aWZpY2F0aW9uLT50aXRsZSgpLCBub3RpZmljYXRpb24tPmJvZHkoKSwgbm90aWZp
Y2F0aW9uLT5pY29uKCkuc3RyaW5nKCksIG5vdGlmaWNhdGlvbi0+dGFnKCksIG5vdGlmaWNhdGlv
bi0+bGFuZygpLCBub3RpZmljYXRpb24tPmRpcigpLCBub3RpZmljYXRpb24tPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmcoKSwgbm90aWZpY2F0aW9u
SUQpLCBwYWdlLT5pZGVudGlmaWVyKCkpOworICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRs
ZXI6OlNob3dOb3RpZmljYXRpb24obm90aWZpY2F0aW9uLT50aXRsZSgpLCBub3RpZmljYXRpb24t
PmJvZHkoKSwgbm90aWZpY2F0aW9uLT5pY29uKCkuc3RyaW5nKCksIG5vdGlmaWNhdGlvbi0+dGFn
KCksIG5vdGlmaWNhdGlvbi0+bGFuZygpLCBub3RpZmljYXRpb24tPmRpcigpLCBub3RpZmljYXRp
b24tPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJpbmco
KSwgbm90aWZpY2F0aW9uSUQpLCBwYWdlLT5pZGVudGlmaWVyKCkpOwogICAgIHJldHVybiB0cnVl
OwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKQEAgLTE2OCw3ICsxNjks
NyBAQCB2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNhbmNlbChOb3RpZmljYXRpb24qIG5v
dGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkKICAgICBpZiAoIW5vdGlmaWNhdGlvbklEKQogICAg
ICAgICByZXR1cm47CiAgICAgCi0gICAgbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q2FuY2VsTm90aWZpY2F0aW9uKG5vdGlm
aWNhdGlvbklEKSwgcGFnZS0+aWRlbnRpZmllcigpKTsKKyAgICBtX3Byb2Nlc3MucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VIYW5kbGVyOjpDYW5jZWxOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSUQpLCBwYWdlLT5pZGVu
dGlmaWVyKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKICAgICBV
TlVTRURfUEFSQU0ocGFnZSk7CkBAIC0xODMsNyArMTg0LDcgQEAgdm9pZCBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyOjpjbGVhck5vdGlmaWNhdGlvbnMoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCoKICAgICAgICAgcmV0dXJuOwogCiAgICAgVmVjdG9yPHVpbnQ2NF90PiYgbm90aWZpY2F0
aW9uSURzID0gaXQtPnZhbHVlOwotICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNsZWFyTm90aWZpY2F0aW9ucyhub3Rp
ZmljYXRpb25JRHMpLCBwYWdlLT5pZGVudGlmaWVyKCkpOworICAgIG1fcHJvY2Vzcy5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5hZ2VyTWVz
c2FnZUhhbmRsZXI6OkNsZWFyTm90aWZpY2F0aW9ucyhub3RpZmljYXRpb25JRHMpLCBwYWdlLT5p
ZGVudGlmaWVyKCkpOwogICAgIHNpemVfdCBjb3VudCA9IG5vdGlmaWNhdGlvbklEcy5zaXplKCk7
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgIFJlZlB0
cjxOb3RpZmljYXRpb24+IG5vdGlmaWNhdGlvbiA9IG1fbm90aWZpY2F0aW9uSURNYXAudGFrZShu
b3RpZmljYXRpb25JRHNbaV0pOwpAQCAtMjExLDcgKzIxMiw3IEBAIHZvaWQgV2ViTm90aWZpY2F0
aW9uTWFuYWdlcjo6ZGlkRGVzdHJveU5vdGlmaWNhdGlvbihOb3RpZmljYXRpb24qIG5vdGlmaWNh
dGlvbiwKIAogICAgIG1fbm90aWZpY2F0aW9uSURNYXAucmVtb3ZlKG5vdGlmaWNhdGlvbklEKTsK
ICAgICByZW1vdmVOb3RpZmljYXRpb25Gcm9tQ29udGV4dE1hcChub3RpZmljYXRpb25JRCwgbm90
aWZpY2F0aW9uKTsKLSAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWREZXN0cm95Tm90aWZpY2F0aW9uKG5vdGlmaWNh
dGlvbklEKSwgcGFnZS0+aWRlbnRpZmllcigpKTsKKyAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VI
YW5kbGVyOjpEaWREZXN0cm95Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbklEKSwgcGFnZS0+aWRl
bnRpZmllcigpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7CiAgICAg
VU5VU0VEX1BBUkFNKHBhZ2UpOwo=
</data>
<flag name="commit-queue"
          id="466307"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441911</attachid>
            <date>2021-10-20 11:46:28 -0700</date>
            <delta_ts>2021-10-20 11:57:52 -0700</delta_ts>
            <desc>PFL v3 - Now with more CMakeLists</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>38848</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CmluZGV4IGUwY2QwY2QyOGFkOS4uNDhkNDI4MDM1ZmZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKQEAgLTQ0LDYgKzQ0LDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9S
SUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIiCiAgICAg
IiR7V0VCS0lUX0RJUn0vU2hhcmVkL0ZpbGVBUEkiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVk
L0dhbWVwYWQiCisgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL05vdGlmaWNhdGlvbnMiCiAgICAg
IiR7V0VCS0lUX0RJUn0vU2hhcmVkL1BsdWdpbnMiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVk
L1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1BsdWdpbnMvTmV0
c2NhcGUveDExIgpAQCAtMTkyLDYgKzE5Myw4IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklM
RVMKIAogICAgIFNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIKIAor
CVNoYXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcgor
CiAgICAgU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIKIAogICAgIFVJUHJv
Y2Vzcy9EcmF3aW5nQXJlYVByb3h5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDExOWU0ZmIzYWIxMi4uMzRjNTdhYjZl
ODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIxLTEwLTIwICBCcmFkeSBFaWRzb24g
IDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBGYWN0b3Igb3V0IHNvbWUgTm90aWZpY2F0
aW9ucy1zcGVjaWZpYyBtZXNzYWdlcyBmcm9tIFdlYlBhZ2VQcm94eSBtZXNzYWdlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyMDIxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBJbiBhIGZ1dHVyZSBw
YXRjaCwgdGhlcmUgd2lsbCBiZSBhIHJ1bnRpbWUgc3dpdGNoIHdoZXJlIFdlYkNvbnRlbnQgc29t
ZXRpbWVzIHNlbmRzIHRoZXNlIE5vdGlmaWNhdGlvbgorICAgICAgICByZWxhdGVkIG1lc3NhZ2Vz
IHRvIGFuIG9iamVjdGluZyBpbiBOZXR3b3JraW5nLCBhbmQgb3RoZXJ0aW1lcyBzZW5kcyB0aGVt
IHRvIGEgV2ViUGFnZVByb3h5IGluIHRoZSBVSVByb2Nlc3MuCisKKyAgICAgICAgVG8gYWNjb21v
ZGF0ZSB0aGlzIHN3aXRjaCwgbGV0J3Mgc3BsaXQgdGhlbSBvdXQgaW50byB0aGVpciBvd24gTm90
aWZpY2F0aW9ucyBzcGVjaWZpYyBvYmplY3QgYW5kIG1lc3NhZ2VzLgorICAgICAgICAKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2Zp
bGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAg
ICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgKiBTaGFy
ZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaDogQWRk
ZWQuCisgICAgICAgICogU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1l
c3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRs
ZXI6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcik6CisgICAgICAgIChXZWJL
aXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6c2hvd05vdGlmaWNhdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
cjo6Y2FuY2VsTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0aW9u
TWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpjbGVhck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OmRpZERlc3Ryb3lOb3Rp
ZmljYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oOiBBZGRlZC4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjptX25vdGlmaWNhdGlvbk1hbmFn
ZXJNZXNzYWdlSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWRkQWxs
TWVzc2FnZVJlY2VpdmVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVtb3Zl
QWxsTWVzc2FnZVJlY2VpdmVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bGF1
bmNoUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3dhcFRvUHJvdmlz
aW9uYWxQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjbG9zZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKToKKyAgICAg
ICAgKFdlYktpdDo6bV9saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKworICAgICAgICAqIFdlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlm
aWNhdGlvbk1hbmFnZXI6OmNhbmNlbCk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlv
bk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlm
aWNhdGlvbk1hbmFnZXI6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24pOgorCiAyMDIxLTEwLTIwICBB
bnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBEb24ndCByZS1ldmFs
dWF0ZSB2aWV3cG9ydCBkZXBlbmRlbnQgbWVkaWEgcXVlcmllcyBpZiB0aGUgdmlld3BvcnQgZG9l
c24ndCBjaGFuZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxl
bGlzdAppbmRleCBlZGZmYTY2MThjYjQuLjNkZjk4YTM1MGQ4ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTAwLDYgKzEwMCw4IEBAICQo
UFJPSkVDVF9ESVIpL1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5t
ZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVkL0F1eGlsaWFy
eVByb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9IVFRQU1VwZ3JhZGUv
SFRUUFNVcGdyYWRlTGlzdC50eHQKKyQoUFJPSkVDVF9ESVIpL1NoYXJlZC9Ob3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5tZXNzYWdlcy5pbgorJChQUk9KRUNU
X0RJUikvU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluCiAkKFBST0pFQ1RfRElSKS9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VSZWNl
aXZlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVkL1dlYkNvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24u
anNvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QK
aW5kZXggYTE2OWI4ODQ1MzY0Li4xZjI2NjY4NDAwYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktpdC9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTE1LDYgKzExNSw5IEBAICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtTb2NrZXRTdHJl
YW1NZXNzYWdlc1JlcGxpZXMuCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViS2l0Mi9OZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3b3JrU3RvcmFnZU1hbmFn
ZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9OZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VI
YW5kbGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXMu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTm90aWZpY2F0
aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJPRFVD
VFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsYXRmb3JtWFJTeXN0ZW1NZXNzYWdlUmVj
ZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9Q
bGF0Zm9ybVhSU3lzdGVtTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYktpdDIvUGxhdGZvcm1YUlN5c3RlbU1lc3NhZ2VzUmVwbGllcy5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMWJlZmRhNzI0Njk5Li4xNGYyYThjYzA2Y2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2Vi
S2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQ3LDYgKzQ3LDcgQEAgVlBBVEggPSBcCiAgICAg
JChXZWJLaXQyKS9TaGFyZWQvQXBwbGVQYXkgXAogICAgICQoV2ViS2l0MikvU2hhcmVkL0F1dGhl
bnRpY2F0aW9uIFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9tYWMgXAorICAgICQoV2ViS2l0Mikv
U2hhcmVkL05vdGlmaWNhdGlvbnMgXAogICAgICQoV2ViS2l0MikvV2ViQXV0aG5Qcm9jZXNzIFwK
ICAgICAkKFdlYktpdDIpL1dlYkF1dGhuUHJvY2Vzcy9tYWMgXAogICAgICQoV2ViS2l0MikvV2Vi
UHJvY2Vzcy9BcHBsZVBheSBcCkBAIC0xNDcsNiArMTQ4LDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMg
PSBcCiAJU2hhcmVkL0FQSS9Db2NvYS9SZW1vdGVPYmplY3RSZWdpc3RyeSBcCiAJU2hhcmVkL0Fw
cGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5IFwKIAlTaGFyZWQvQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRpb25NYW5hZ2VyIFwKKwlTaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIgXAogCVNoYXJlZC9XZWJDb25uZWN0aW9uIFwKIAlV
SVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSBcCiAJVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMC4uYjc4OGZkZGIxZGIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIu
aApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25EaXJlY3Rpb24uaD4KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlciA6IHB1
YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+Tm90aWZp
Y2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2
b2lkIHNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBi
b2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJp
bmcmIGxhbmd1YWdlLCBXZWJDb3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb24sIGNvbnN0IFN0cmlu
ZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBjYW5jZWxOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJOb3RpZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1aW50NjRf
dD4mIG5vdGlmaWNhdGlvbklEcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWREZXN0cm95Tm90
aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKSA9IDA7CisKK3ByaXZhdGU6CisgICAg
Ly8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6
Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1lc3Nh
Z2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZGQ3NWUzMzhi
NmU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIubWVzc2FnZXMuaW4KQEAgLTAsMCAr
MSwyOCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAor
IyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdl
cyAtPiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIgTm90UmVmQ291bnRlZCB7Cisg
ICAgU2hvd05vdGlmaWNhdGlvbihTdHJpbmcgdGl0bGUsIFN0cmluZyBib2R5LCBTdHJpbmcgaWNv
blVSTCwgU3RyaW5nIHRhZywgU3RyaW5nIGxhbmd1YWdlLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6
Tm90aWZpY2F0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgU3RyaW5nIG9yaWdpbklkZW50aWZpZXIs
IHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQorICAgIENhbmNlbE5vdGlmaWNhdGlvbih1aW50NjRf
dCBub3RpZmljYXRpb25JRCkKKyAgICBDbGVhck5vdGlmaWNhdGlvbnMoVmVjdG9yPHVpbnQ2NF90
PiBub3RpZmljYXRpb25JRHMpCisgICAgRGlkRGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRfdCBu
b3RpZmljYXRpb25JRCkKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQg
Yi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDU1MzE5Y2JiNTdhZS4uYjEyZTU2MzE0
YTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU291cmNlcy50eHQKQEAgLTQ5NCw2ICs0OTQsNyBAQCBVSVByb2Nlc3MvTWVkaWEvTWVk
aWFVc2FnZU1hbmFnZXIuY3BwCiBVSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9uQ29v
cmRpbmF0b3JQcm94eS5jcHAKIAogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uLmNwcAorVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlck1l
c3NhZ2VIYW5kbGVyLmNwcAogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9u
TWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9u
UHJvdmlkZXIuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlck1l
c3NhZ2VIYW5kbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu
LmJjNTQwOGM2NTEzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmNwcApA
QCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oIgorCisjaW5jbHVkZSAi
V2ViUGFnZVByb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJOb3RpZmljYXRpb25N
YW5hZ2VyTWVzc2FnZUhhbmRsZXI6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
cihXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSkKKyAgICA6IG1fd2ViUGFnZVByb3h5KHdlYlBh
Z2VQcm94eSkKK3sKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRs
ZXI6OnNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBi
b2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJp
bmcmIGxhbmd1YWdlLCBXZWJDb3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb24gZGlyZWN0aW9uLCBj
b25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCit7Cisg
ICAgbV93ZWJQYWdlUHJveHkuc2hvd05vdGlmaWNhdGlvbih0aXRsZSwgYm9keSwgaWNvblVSTCwg
dGFnLCBsYW5ndWFnZSwgZGlyZWN0aW9uLCBvcmlnaW5TdHJpbmcsIG5vdGlmaWNhdGlvbklEKTsK
K30KKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OmNhbmNlbE5v
dGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCkKK3sKKyAgICBtX3dlYlBhZ2VQcm94
eS5jYW5jZWxOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSUQpOworfQorCit2b2lkIFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6Y2xlYXJOb3RpZmljYXRpb25zKGNvbnN0IFZl
Y3Rvcjx1aW50NjRfdD4mIG5vdGlmaWNhdGlvbklEcykKK3sKKyAgICBtX3dlYlBhZ2VQcm94eS5j
bGVhck5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9uSURzKTsKK30KKwordm9pZCBXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24odWludDY0
X3Qgbm90aWZpY2F0aW9uSUQpCit7CisgICAgbV93ZWJQYWdlUHJveHkuZGlkRGVzdHJveU5vdGlm
aWNhdGlvbihub3RpZmljYXRpb25JRCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42ZjBmZDY4NTU5OGUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
SGFuZGxlci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZVByb3h5Owor
CitjbGFzcyBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIgOiBwdWJsaWMgTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyIHsKKyAgICBmcmllbmQgY2xhc3MgV2ViUGFn
ZVByb3h5OworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVz
c2FnZUhhbmRsZXIoV2ViUGFnZVByb3h5Jik7CisKKyAgICB2b2lkIHNob3dOb3RpZmljYXRpb24o
Y29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcmIGlj
b25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBXZWJDb3Jl
OjpOb3RpZmljYXRpb25EaXJlY3Rpb24sIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCB1aW50
NjRfdCBub3RpZmljYXRpb25JRCkgZmluYWw7CisgICAgdm9pZCBjYW5jZWxOb3RpZmljYXRpb24o
dWludDY0X3Qgbm90aWZpY2F0aW9uSUQpIGZpbmFsOworICAgIHZvaWQgY2xlYXJOb3RpZmljYXRp
b25zKGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mIG5vdGlmaWNhdGlvbklEcykgZmluYWw7CisgICAg
dm9pZCBkaWREZXN0cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKSBmaW5h
bDsKKworICAgIFdlYlBhZ2VQcm94eSYgbV93ZWJQYWdlUHJveHk7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IDgyOGYyYmFjMDM5Ny4uZjdhODEwYjI3M2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTc3LDYgKzc3LDcgQEAKICNpbmNsdWRlICJOYXZpZ2F0aW9uQWN0
aW9uRGF0YS5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uTWFuYWdlck1l
c3NhZ2VIYW5kbGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdC5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
ci5oIgogI2luY2x1ZGUgIlBhZ2VDbGllbnQuaCIKQEAgLTUxNiw2ICs1MTcsNyBAQCBXZWJQYWdl
UHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9jZXNzUHJv
eHkmIHByb2Nlc3MsIFJlZgogICAgICwgbV9pZ25vcmVzQXBwQm91bmREb21haW5zKG1fY29uZmln
dXJhdGlvbi0+aWdub3Jlc0FwcEJvdW5kRG9tYWlucygpKQogICAgICwgbV9saW1pdHNOYXZpZ2F0
aW9uc1RvQXBwQm91bmREb21haW5zKG1fY29uZmlndXJhdGlvbi0+bGltaXRzTmF2aWdhdGlvbnNU
b0FwcEJvdW5kRG9tYWlucygpKQogI2VuZGlmCisgICAgLCBtX25vdGlmaWNhdGlvbk1hbmFnZXJN
ZXNzYWdlSGFuZGxlcigqdGhpcykKIHsKICAgICBXRUJQQUdFUFJPWFlfUkVMRUFTRV9MT0coTG9h
ZGluZywgImNvbnN0cnVjdG9yOiIpOwogCkBAIC01NDYsNyArNTQ4LDcgQEAgV2ViUGFnZVByb3h5
OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vzc1Byb3h5JiBw
cm9jZXNzLCBSZWYKICAgICBpZiAoaGFzUnVubmluZ1Byb2Nlc3MoKSkKICAgICAgICAgZGlkQXR0
YWNoVG9SdW5uaW5nUHJvY2VzcygpOwogCi0gICAgbV9wcm9jZXNzLT5hZGRNZXNzYWdlUmVjZWl2
ZXIoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dlYlBh
Z2VJRCwgKnRoaXMpOworICAgIGFkZEFsbE1lc3NhZ2VSZWNlaXZlcnMoKTsKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAgICAgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXREaXNhYmxl
U2NyZWVuU2l6ZU92ZXJyaWRlKG1fcHJlZmVyZW5jZXMtPmRpc2FibGVTY3JlZW5TaXplT3ZlcnJp
ZGUoKSk7CkBAIC02MjAsNiArNjIyLDE4IEBAIFdlYlBhZ2VQcm94eTo6fldlYlBhZ2VQcm94eSgp
CiAjZW5kaWYKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmFkZEFsbE1lc3NhZ2VSZWNlaXZlcnMo
KQoreworICAgIG1fcHJvY2Vzcy0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdlSUQsICp0aGlzKTsKKyAgICBt
X3Byb2Nlc3MtPmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VIYW5kbGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFnZUlELCBtX25v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcik7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5
OjpyZW1vdmVBbGxNZXNzYWdlUmVjZWl2ZXJzKCkKK3sKKyAgICBtX3Byb2Nlc3MtPnJlbW92ZU1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1fd2ViUGFnZUlEKTsKKyAgICBtX3Byb2Nlc3MtPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksIG1fd2ViUGFnZUlEKTsKK30KKwogLy8gRklYTUU6IFNob3VsZCByZXR1cm4gYSBj
b25zdCBQYWdlQ2xpZW50JiBhbmQgYWRkIGEgc2VwYXJhdGUgbm9uLWNvbnN0CiAvLyB2ZXJzaW9u
IG9mIHRoaXMgZnVuY3Rpb24sIGJ1dCBzZXZlcmFsIFBhZ2VDbGllbnQgbWV0aG9kcyB3aWxsIG5l
ZWQgdG8gYmVjb21lCiAvLyBjb25zdCBmb3IgdGhpcyB0byBiZSBwb3NzaWJsZS4KQEAgLTg0MSw3
ICs4NTUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bGF1bmNoUHJvY2Vzcyhjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgcmVnaXN0cmFibGVEb21haW4sIFBybwogICAgIG1faW5zcGVjdG9yLT5yZXNl
dCgpOwogCiAgICAgbV9wcm9jZXNzLT5yZW1vdmVXZWJQYWdlKCp0aGlzLCBXZWJQcm9jZXNzUHJv
eHk6OkVuZHNVc2luZ0RhdGFTdG9yZTo6WWVzKTsKLSAgICBtX3Byb2Nlc3MtPnJlbW92ZU1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IG1fd2ViUGFnZUlEKTsKKyAgICByZW1vdmVBbGxNZXNzYWdlUmVjZWl2ZXJzKCk7CiAKICAgICBh
dXRvJiBwcm9jZXNzUG9vbCA9IG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKTsKIApAQCAtODUzLDcg
Kzg2Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpsYXVuY2hQcm9jZXNzKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiByZWdpc3RyYWJsZURvbWFpbiwgUHJvCiAgICAgbV9oYXNSdW5uaW5nUHJvY2Vz
cyA9IHRydWU7CiAKICAgICBtX3Byb2Nlc3MtPmFkZEV4aXN0aW5nV2ViUGFnZSgqdGhpcywgV2Vi
UHJvY2Vzc1Byb3h5OjpCZWdpbnNVc2luZ0RhdGFTdG9yZTo6WWVzKTsKLSAgICBtX3Byb2Nlc3Mt
PmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksIG1fd2ViUGFnZUlELCAqdGhpcyk7CisgICAgYWRkQWxsTWVzc2FnZVJlY2VpdmVy
cygpOwogCiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAgICBpZiAobV9wcmVmZXJlbmNl
cy0+c3RvcmUoKS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmlwY1Rlc3Rp
bmdBUElFbmFibGVkS2V5KCkpKQpAQCAtOTY0LDcgKzk3OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
Ojpzd2FwVG9Qcm92aXNpb25hbFBhZ2Uoc3RkOjp1bmlxdWVfcHRyPFByb3Zpc2lvbmFsUGFnZVBy
b3h5PiBwCiAgICAgbV9tYWluRnJhbWUgPSBwcm92aXNpb25hbFBhZ2UtPm1haW5GcmFtZSgpOwog
CiAgICAgbV9wcm9jZXNzLT5hZGRFeGlzdGluZ1dlYlBhZ2UoKnRoaXMsIFdlYlByb2Nlc3NQcm94
eTo6QmVnaW5zVXNpbmdEYXRhU3RvcmU6Ok5vKTsKLSAgICBtX3Byb2Nlc3MtPmFkZE1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
d2ViUGFnZUlELCAqdGhpcyk7CisgICAgYWRkQWxsTWVzc2FnZVJlY2VpdmVycygpOwogCiAgICAg
ZmluaXNoQXR0YWNoaW5nVG9XZWJQcm9jZXNzKFByb2Nlc3NMYXVuY2hSZWFzb246OlByb2Nlc3NT
d2FwKTsKIApAQCAtMTE5Miw3ICsxMjA2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsb3NlKCkK
ICAgICAgICAgcHJvdGVjdGVkUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q2xvc2Uo
KSwgZGVzdGluYXRpb25JRCk7CiAgICAgfSk7CiAgICAgbV9wcm9jZXNzLT5yZW1vdmVXZWJQYWdl
KCp0aGlzLCBXZWJQcm9jZXNzUHJveHk6OkVuZHNVc2luZ0RhdGFTdG9yZTo6WWVzKTsKLSAgICBt
X3Byb2Nlc3MtPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5Ojpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFnZUlEKTsKKyAgICByZW1vdmVBbGxNZXNzYWdl
UmVjZWl2ZXJzKCk7CiAgICAgbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLnN1cHBsZW1lbnQ8V2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5PigpLT5jbGVhck5vdGlmaWNhdGlvbnModGhpcyk7CiAK
ICAgICAvLyBOdWxsIG91dCByZWxhdGVkIFdlYlBhZ2VQcm94eSB0byBhdm9pZCBsZWFrcy4KQEAg
LTM2MTMsNyArMzYyNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb21taXRQcm92aXNpb25hbFBh
Z2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmCiAKICAgICByZXNldFN0
YXRlQWZ0ZXJQcm9jZXNzVGVybWluYXRpb24oUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpOYXZp
Z2F0aW9uU3dhcCk7CiAKLSAgICBtX3Byb2Nlc3MtPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFnZUlEKTsK
KyAgICByZW1vdmVBbGxNZXNzYWdlUmVjZWl2ZXJzKCk7CiAgICAgYXV0byogbmF2aWdhdGlvbiA9
IG5hdmlnYXRpb25TdGF0ZSgpLm5hdmlnYXRpb24obV9wcm92aXNpb25hbFBhZ2UtPm5hdmlnYXRp
b25JRCgpKTsKICAgICBib29sIGRpZFN1c3BlbmRQcmV2aW91c1BhZ2UgPSBuYXZpZ2F0aW9uICYm
ICFtX3Byb3Zpc2lvbmFsUGFnZS0+c2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1pdCgp
ID8gc3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZSgqbmF2aWdhdGlvbiwgbWFpbkZyYW1lSURJ
blByZXZpb3VzUHJvY2VzcywgbV9wcm92aXNpb25hbFBhZ2UtPnByb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQoKSwgc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxGaXJzdExheWVyRmx1c2gpIDogZmFs
c2U7CiAgICAgbV9wcm9jZXNzLT5yZW1vdmVXZWJQYWdlKCp0aGlzLCBtX3dlYnNpdGVEYXRhU3Rv
cmUucHRyKCkgPT0gJm1fcHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNzKCkud2Vic2l0ZURhdGFTdG9y
ZSgpID8gV2ViUHJvY2Vzc1Byb3h5OjpFbmRzVXNpbmdEYXRhU3RvcmU6Ok5vIDogV2ViUHJvY2Vz
c1Byb3h5OjpFbmRzVXNpbmdEYXRhU3RvcmU6Olllcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCmluZGV4IGYzZGQyM2NhYTRhMy4uYWJmMWQxZGQ0ZGZkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjksNiArNjksNyBAQAogI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkRhdGFMaXN0U3VnZ2VzdGlv
bnNEcm9wZG93bi5oIgogI2luY2x1ZGUgIldlYkZyYW1lUHJveHkuaCIKKyNpbmNsdWRlICJXZWJO
b3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCIKICNpbmNsdWRlICJXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiV2ViUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmgiCkBAIC0xOTkw
LDEwICsxOTkxLDE4IEBAIHB1YmxpYzoKICAgICBib29sIGlzUXVhcmFudGluZWRBbmROb3RVc2Vy
QXBwcm92ZWQoY29uc3QgU3RyaW5nJik7CiAjZW5kaWYKIAorICAgIHZvaWQgc2hvd05vdGlmaWNh
dGlvbihjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0cmlu
ZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgbGFuZywgV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWlu
dDY0X3Qgbm90aWZpY2F0aW9uSUQpOworICAgIHZvaWQgY2FuY2VsTm90aWZpY2F0aW9uKHVpbnQ2
NF90IG5vdGlmaWNhdGlvbklEKTsKKyAgICB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBW
ZWN0b3I8dWludDY0X3Q+JiBub3RpZmljYXRpb25JRHMpOworICAgIHZvaWQgZGlkRGVzdHJveU5v
dGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CisKIHByaXZhdGU6CiAgICAgV2Vi
UGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29u
ZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIAorICAgIHZv
aWQgYWRkQWxsTWVzc2FnZVJlY2VpdmVycygpOworICAgIHZvaWQgcmVtb3ZlQWxsTWVzc2FnZVJl
Y2VpdmVycygpOworCiAgICAgdm9pZCBub3RpZnlQcm9jZXNzUG9vbFRvUHJld2FybSgpOwogICAg
IGJvb2wgc2hvdWxkVXNlQmFja0ZvcndhcmRDYWNoZSgpIGNvbnN0OwogCkBAIC0yMTg1LDEwICsy
MTk0LDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBsYXVuY2hQcm9j
ZXNzRm9yUmVsb2FkKCk7CiAKICAgICB2b2lkIHJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9u
KGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wg
YWxsb3dlZCk+JiYpOwotICAgIHZvaWQgc2hvd05vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmIHRp
dGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3Ry
aW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgbGFuZywgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0
aW9uLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQp
OwotICAgIHZvaWQgY2FuY2VsTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKTsK
LSAgICB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBub3Rp
ZmljYXRpb25JRHMpOwotICAgIHZvaWQgZGlkRGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRfdCBu
b3RpZmljYXRpb25JRCk7CiAKICAgICB2b2lkIGRpZENoYW5nZUNvbnRlbnRTaXplKGNvbnN0IFdl
YkNvcmU6OkludFNpemUmKTsKICAgICB2b2lkIGRpZENoYW5nZUludHJpbnNpY0NvbnRlbnRTaXpl
KGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKQEAgLTMxMjIsNiArMzEyNyw4IEBAIHByaXZhdGU6
CiAjZW5kaWYKIAogICAgIFdpbmRvd0tpbmQgbV93aW5kb3dLaW5kIHsgV2luZG93S2luZDo6VW5w
YXJlbnRlZCB9OworCisgICAgV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyIG1f
bm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOwogfTsKIAogI2lmZGVmIF9fT0JKQ19f
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
aW5kZXggNTgxMDhmNzQzMTRkLi5mNTcwNWEwNjExNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTI4NSwxMCArMjg1LDYgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKIAogICAgICMgTm90aWZpY2F0aW9uIG1lc3NhZ2Vz
CiAgICAgUmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24oU3RyaW5nIG9yaWdpbklkZW50aWZp
ZXIpIC0+IChib29sIGFsbG93ZWQpIEFzeW5jCi0gICAgU2hvd05vdGlmaWNhdGlvbihTdHJpbmcg
dGl0bGUsIFN0cmluZyBib2R5LCBTdHJpbmcgaWNvblVSTCwgU3RyaW5nIHRhZywgU3RyaW5nIGxh
bmcsIGVudW06dWludDhfdCBXZWJDb3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb24gZGlyLCBTdHJp
bmcgb3JpZ2luSWRlbnRpZmllciwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCi0gICAgQ2FuY2Vs
Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQotICAgIENsZWFyTm90aWZpY2F0
aW9ucyhWZWN0b3I8dWludDY0X3Q+IG5vdGlmaWNhdGlvbklEcykKLSAgICBEaWREZXN0cm95Tm90
aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQogCiAgICAgIyBTcGVsbGluZyBhbmQg
Z3JhbW1hciBtZXNzYWdlcwogI2lmIFVTRShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwY2UzYjhl
NWNkMWUuLjgxNzYxNzU0YzE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDU0LDYgKzEwNTQsMTEgQEAKIAkJNTEzRTQ2MkQxQUQ4
Mzc1NjAwMTYyMzRBIC8qIFdLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEzRTQ2MkIxQUQ4Mzc1NjAw
MTYyMzRBIC8qIFdLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5oICovOyB9OwogCQk1MTNG
RkI5MTIwMTQ1OUM2MDAyNTk2RUEgLyogV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxM0ZGQjhGMjAx
NDU5QzIwMDI1OTZFQSAvKiBXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oICovOyB9Owog
CQk1MTQxMjk5NDFDNjQyOEJCMDA1OUU3MTQgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQxMjk5MjFD
NjQyODEwMDA1OUU3MTQgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmggKi87IH07CisJCTUx
NDUyNkZGMjcxRkI3RUMwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRs
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDUy
NkZFMjcxRkI3RTgwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIu
aCAqLzsgfTsKKwkJNTE0NTI3MDMyNzFGQkEzQTAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFn
ZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ1MjcwMjI3MUZCQTM2MDAwNDY3QjYgLyogTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
KwkJNTE0NTI3MDQyNzFGQkE0MDAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
SGFuZGxlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTE0NTI3MDAyNzFGQkEzNDAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1h
bmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OworCQk1MTQ1MjcwNTI3
MUZCQTQwMDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDUy
NzAxMjcxRkJBMzUwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJN
ZXNzYWdlcy5oICovOyB9OworCQk1MTQ1MjcwODI3MUZCRUM2MDAwNDY3QjYgLyogV2ViTm90aWZp
Y2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ1MjcwNzI3MUZCRUMxMDAwNDY3QjYgLyogV2ViTm90aWZp
Y2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmggKi87IH07CiAJCTUxNDg5Q0MzMjM3MERCRkEw
MDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxNDg5Q0MxMjM3MERBQ0MwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTUxNDg5
Q0M3MjM3MjM3ODAwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHRJbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0ODlDQzYyMzcyMzc3ODAwNDRF
NjhBIC8qIFdLRmluZFJlc3VsdEludGVybmFsLmggKi87IH07CiAJCTUxNEFCOUYwMjM2MEQyQTkw
MEVEQzM5NiAvKiBXS0ZpbmRDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRBQjlFRjIzNUZBNTlCMDBFREMzOTYgLyogV0tGaW5k
Q29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywgKTsg
fTsgfTsKQEAgLTQxNjAsNiArNDE2NSwxMyBAQAogCQk1MTQxMjk5MjFDNjQyODEwMDA1OUU3MTQg
LyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MTQzQjI1RTFERENERkQxMDAxNEZBQzYgLyogX1dLSWNvbkxvYWRpbmdEZWxlZ2F0
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tJY29uTG9hZGluZ0RlbGVn
YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDNCMjYxMURERDBEQTAwMDE0
RkFDNiAvKiBBUElJY29uTG9hZGluZ0NsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBUElJY29uTG9hZGluZ0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MTQ1MjZGQzI3MUZCN0U4MDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VIYW5kbGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5vdGlmaWNhdGlv
bk1hbmFnZXJNZXNzYWdlSGFuZGxlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTE0NTI2RkUyNzFGQjdFODAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJN
ZXNzYWdlSGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb3RpZmlj
YXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTE0NTI3MDAyNzFGQkEzNDAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
SGFuZGxlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlc1JlcGxpZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE0NTI3MDEyNzFGQkEzNTAwMDQ2N0I2IC8qIE5v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3Nh
Z2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNDUyNzAyMjcxRkJBMzYwMDA0
NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm90aWZpY2F0aW9uTWFu
YWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTE0NTI3MDYyNzFGQkVDMTAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlvbk1h
bmFnZXJNZXNzYWdlSGFuZGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk1MTQ1MjcwNzI3MUZCRUMxMDAwNDY3QjYgLyogV2ViTm90aWZp
Y2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTQ4OUNDMTIzNzBEQUNDMDA0NEU2OEEgLyogV0tGaW5kUmVz
dWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRmluZFJlc3VsdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQ4OUNDMjIzNzBEQUNDMDA0NEU2OEEgLyog
V0tGaW5kUmVzdWx0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V0tGaW5kUmVzdWx0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQ4OUNDNjIz
NzIzNzc4MDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tGaW5kUmVzdWx0SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTY5MzksNiArNjk1MSw3IEBACiAJCQkJNTE1QkUxQUUxRDU5MDAzNDAw
REQ3QzY4IC8qIEdhbWVwYWQgKi8sCiAJCQkJMkRBOTQ0OTYxODg0RTREQTAwRUQ4NkRCIC8qIGlv
cyAqLywKIAkJCQlCQzExMUI1QTExMkY2MjgyMDAzMzdCQUIgLyogbWFjICovLAorCQkJCTUxQUYx
QjNEMjcxRjQ2QTYwMDE1MzhFNiAvKiBOb3RpZmljYXRpb25zICovLAogCQkJCTFBQUUwNThDMTI3
OURDRDQwMDg1MjQxOCAvKiBQbHVnaW5zICovLAogCQkJCTJEMkUwNDc2MUY1QkVDNEYwMEJCMjVF
RCAvKiBSZW1vdGVMYXllclRyZWUgKi8sCiAJCQkJRTM2MTJGRjAyNkY5MDg2MjAwN0IxMTc1IC8q
IFNhbmRib3ggKi8sCkBAIC04MTM3LDYgKzgxNTAsOCBAQAogCQkJCTMxQTJFQzUzMTQ4OTk4MjUw
MDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oICovLAogCQkJCTMxQTJF
QzQxMTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb24uY3BwICovLAogCQkJCTMxQTJF
QzQyMTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb24uaCAqLywKKwkJCQk1MTQ1Mjcw
NjI3MUZCRUMxMDAwNDY3QjYgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVy
LmNwcCAqLywKKwkJCQk1MTQ1MjcwNzI3MUZCRUMxMDAwNDY3QjYgLyogV2ViTm90aWZpY2F0aW9u
TWFuYWdlck1lc3NhZ2VIYW5kbGVyLmggKi8sCiAJCQkJMzFBMkVDNDMxNDg5OTdCRTAwODEwRDcx
IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgKi8sCiAJCQkJMzFBMkVDNDQxNDg5
OTdCRjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oICovLAogCQkJCTMx
QTJFQzQ2MTQ4OTk3QzAwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgKi8s
CkBAIC05MDkyLDYgKzkxMDcsMTUgQEAKIAkJCXBhdGggPSBBdXRoZW50aWNhdGlvbjsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxQUYxQjNEMjcxRjQ2QTYwMDE1MzhFNiAv
KiBOb3RpZmljYXRpb25zICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9
ICgKKwkJCQk1MTQ1MjZGRTI3MUZCN0U4MDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1l
c3NhZ2VIYW5kbGVyLmggKi8sCisJCQkJNTE0NTI2RkMyNzFGQjdFODAwMDQ2N0I2IC8qIE5vdGlm
aWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJCQlw
YXRoID0gTm90aWZpY2F0aW9uczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJ
CTUxQjE1QTdEMTM4NDM5QjIwMDMyMUFEOCAvKiB1bml4ICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTExNDc3LDYgKzExNTAxLDkgQEAKIAkJCQk5MzA4NURD
QzI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKIAkJCQk5MzA4NURDRDI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyTWVzc2FnZXMuaCAqLywKIAkJCQk5MzA4NURDRTI2RTJFOTAyMDAwRUM2QTcgLyogTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8sCisJCQkJNTE0NTI3MDIyNzFG
QkEzNjAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8sCisJCQkJNTE0NTI3MDEyNzFGQkEzNTAwMDQ2N0I2IC8qIE5vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzLmggKi8sCisJCQkJNTE0NTI3MDAyNzFG
QkEzNDAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2Vz
UmVwbGllcy5oICovLAogCQkJCTFBMkQ4NDM3MTI3RjY1RDUwMDFFQjk2MiAvKiBOUE9iamVjdE1l
c3NhZ2VSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUEyRDg0MzgxMjdGNjVE
NTAwMUVCOTYyIC8qIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZXMuaCAqLywKIAkJCQlD
REEyOUEyNDFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8sCkBAIC0xMjQ4NSw2ICsxMjUxMiw3IEBACiAJCQkJMUE2RDg2QzIxREY3
NTI2NTAwNzc0NUU4IC8qIE1hY2hNZXNzYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0M1NkY3
OTExNTk5NTdEMDAxQ0NBRjkgLyogTWFjaFBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMjRC
NUYzMTFGNTMxRTgwMEMzODI2OSAvKiBNYWNoVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1MTQ1MjZGRjI3MUZCN0VDMDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VI
YW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTU3OTlCRTI1ODQ0MzMyMDA1MjgyMzYgLyog
TWVkaWFGb3JtYXRSZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTlBQ0MwN0IxMjVDODE1RDgw
MERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk5QUNDMDdBRDI1QzgxMzJEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTI1MTksNiArMTI1NDcsNyBA
QAogCQkJCTFBRENCODZCMTg5ODMxQjMwMDIyRUU1QSAvKiBOYXZpZ2F0aW9uQWN0aW9uRGF0YS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTdGRDMxODAyMkIzNTE1ODAwOEQwRThCIC8qIE5hdmlnYXRp
b25TT0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUJDM0RGNjE4
OTlFNDM3MDA0RjA2MjYgLyogTmF2aWdhdGlvblN0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1
MTQ1MjcwODI3MUZCRUM2MDAwNDY3QjYgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VI
YW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0I4MjY0NDIzMDRGMTQwMDBCNzJFQjAgLyog
TmVhckZpZWxkU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3QjgyNjQxMjMwNEVCM0Uw
MEI3MkVCMCAvKiBOZWFyRmllbGRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNkZCQTJBMTFF
Njg2MjcwMERCMTM3MSAvKiBOZXRzY2FwZUJyb3dzZXJGdW5jcy5oIGluIEhlYWRlcnMgKi8sCkBA
IC0xMjU1MSw2ICsxMjU4MCw3IEBACiAJCQkJRTQ3RkM4QTAyNUI4MzMxQzAwNTQ5NUZDIC8qIE5l
dHdvcmtMb2FkU2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTc5NTU2QTE2Mjg3NkYz
MDBGQTQzQjYgLyogTmV0d29ya1Byb2Nlc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0NGMEU0
MTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNTE0NTI3MDQyNzFGQkE0MDAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlv
bk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNUMxNDI2RUQxQzIzRjgwOTAwRDQxMTgzIC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTYzMTk5NTE2Mjg5QTYzMDBFMjJGMDAgLyog
TmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE0QTk1NEExNkUw
MTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4gSGVh
ZGVycyAqLywKQEAgLTEyNzgyLDYgKzEyODEyLDcgQEAKIAkJCQk5MzY4RUVERjIzMDNBOUVEMDBC
REIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDY1RjRFMDYyMzBCMkU5NTAwM0NFREI3IC8qIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3QjczMTIzQzI1Q0M4NTI1MDAzQjI3OTYgLyogU3RyZWFtQ2xp
ZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE0NTI3MDUyNzFGQkE0MDAwMDQ2
N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3QjczMTIzQTI1Q0M4NTI1MDAzQjI3OTYgLyogU3RyZWFtQ29ubmVjdGlv
bkJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0I3MzEyNDIyNUNDODUyNTAwM0IyNzk2IC8q
IFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QjczMTIzRTI1
Q0M4NTI1MDAzQjI3OTYgLyogU3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0xMjk4NCw3ICsxMzAxNSw2IEBACiAJCQkJMzFCQTkyNEUxNDg4MzEyNjAwNjJFREI1
IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzFBMkVDNEIxNDg5OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMzFBMkVDNEUxNDg5OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlm
aWNhdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTI3MTQ4MzI3MDI0RjAzMDAx
OTcwMzQgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM4NTdGODUxMkI4MkQwQjAwRURFQjJFIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzFERkVBNDEyQjMxRjg3MDA1REY3MzAgLyogV2ViT3Bl
blBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEOEYx
MEY0MzdBMDAwNThDMTVBIC8qIFdlYlBhZ2UuaCBpbiBIZWFkZXJzICovLApAQCAtMTQ2MzMsNiAr
MTQ2NjMsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0g
KAogCQkJCTU3OTBBNjcxMjU2NzlGMUEwMDc3QzVBNyAvKiBfV0tBdXRoZW50aWNhdGlvbkV4dGVu
c2lvbnNDbGllbnRJbnB1dHMubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MTQ1MjcwMzI3MUZCQTNB
MDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3OTBBNjdEMjU2N0ExM0UwMDc3QzVBNyAvKiBf
V0tBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTc5MEE2ODkyNTY3QTI4QTAwNzdDNUE3IC8qIF9XS0F1dGhlbnRpY2F0b3JBc3NlcnRp
b25SZXNwb25zZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU3OTBBNjg1MjU2N0EyMUUwMDc3QzVB
NyAvKiBfV0tBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5tbSBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAppbmRleCAxODg1MjE2ZTAzNTguLjBl
OWU4YTc4MzA0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTMyLDYg
KzMyLDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAKICNp
ZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyNpbmNsdWRlICJOb3RpZmljYXRpb25NYW5hZ2VyTWVz
c2FnZUhhbmRsZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbi5oIgogI2lu
Y2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBh
Z2VQcm94eU1lc3NhZ2VzLmgiCkBAIC0xNDksNyArMTUwLDcgQEAgYm9vbCBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyOjpzaG93KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLCBXZWJQYWdlKiBwYWdl
KQogICAgIGF1dG8gaXQgPSBtX25vdGlmaWNhdGlvbkNvbnRleHRNYXAuYWRkKG5vdGlmaWNhdGlv
bi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBWZWN0b3I8dWludDY0X3Q+KCkpLml0ZXJhdG9y
OwogICAgIGl0LT52YWx1ZS5hcHBlbmQobm90aWZpY2F0aW9uSUQpOwogCi0gICAgbV9wcm9jZXNz
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
U2hvd05vdGlmaWNhdGlvbihub3RpZmljYXRpb24tPnRpdGxlKCksIG5vdGlmaWNhdGlvbi0+Ym9k
eSgpLCBub3RpZmljYXRpb24tPmljb24oKS5zdHJpbmcoKSwgbm90aWZpY2F0aW9uLT50YWcoKSwg
bm90aWZpY2F0aW9uLT5sYW5nKCksIG5vdGlmaWNhdGlvbi0+ZGlyKCksIG5vdGlmaWNhdGlvbi0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpLCBu
b3RpZmljYXRpb25JRCksIHBhZ2UtPmlkZW50aWZpZXIoKSk7CisgICAgbV9wcm9jZXNzLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFnZXJN
ZXNzYWdlSGFuZGxlcjo6U2hvd05vdGlmaWNhdGlvbihub3RpZmljYXRpb24tPnRpdGxlKCksIG5v
dGlmaWNhdGlvbi0+Ym9keSgpLCBub3RpZmljYXRpb24tPmljb24oKS5zdHJpbmcoKSwgbm90aWZp
Y2F0aW9uLT50YWcoKSwgbm90aWZpY2F0aW9uLT5sYW5nKCksIG5vdGlmaWNhdGlvbi0+ZGlyKCks
IG5vdGlmaWNhdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0eU9yaWdpbigp
LT50b1N0cmluZygpLCBub3RpZmljYXRpb25JRCksIHBhZ2UtPmlkZW50aWZpZXIoKSk7CiAgICAg
cmV0dXJuIHRydWU7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwpAQCAt
MTY4LDcgKzE2OSw3IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2FuY2VsKE5vdGlm
aWNhdGlvbiogbm90aWZpY2F0aW9uLCBXZWJQYWdlKiBwYWdlKQogICAgIGlmICghbm90aWZpY2F0
aW9uSUQpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBtX3Byb2Nlc3MucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDYW5jZWxOb3RpZmlj
YXRpb24obm90aWZpY2F0aW9uSUQpLCBwYWdlLT5pZGVudGlmaWVyKCkpOworICAgIG1fcHJvY2Vz
cy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOb3RpZmljYXRpb25N
YW5hZ2VyTWVzc2FnZUhhbmRsZXI6OkNhbmNlbE5vdGlmaWNhdGlvbihub3RpZmljYXRpb25JRCks
IHBhZ2UtPmlkZW50aWZpZXIoKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRp
b24pOwogICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKQEAgLTE4Myw3ICsxODQsNyBAQCB2b2lkIFdl
Yk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0KgogICAgICAgICByZXR1cm47CiAKICAgICBWZWN0b3I8dWludDY0X3Q+
JiBub3RpZmljYXRpb25JRHMgPSBpdC0+dmFsdWU7Ci0gICAgbV9wcm9jZXNzLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q2xlYXJOb3RpZmlj
YXRpb25zKG5vdGlmaWNhdGlvbklEcyksIHBhZ2UtPmlkZW50aWZpZXIoKSk7CisgICAgbV9wcm9j
ZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5vdGlmaWNhdGlv
bk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6Q2xlYXJOb3RpZmljYXRpb25zKG5vdGlmaWNhdGlvbklE
cyksIHBhZ2UtPmlkZW50aWZpZXIoKSk7CiAgICAgc2l6ZV90IGNvdW50ID0gbm90aWZpY2F0aW9u
SURzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKICAg
ICAgICAgUmVmUHRyPE5vdGlmaWNhdGlvbj4gbm90aWZpY2F0aW9uID0gbV9ub3RpZmljYXRpb25J
RE1hcC50YWtlKG5vdGlmaWNhdGlvbklEc1tpXSk7CkBAIC0yMTEsNyArMjEyLDcgQEAgdm9pZCBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWREZXN0cm95Tm90aWZpY2F0aW9uKE5vdGlmaWNhdGlv
biogbm90aWZpY2F0aW9uLAogCiAgICAgbV9ub3RpZmljYXRpb25JRE1hcC5yZW1vdmUobm90aWZp
Y2F0aW9uSUQpOwogICAgIHJlbW92ZU5vdGlmaWNhdGlvbkZyb21Db250ZXh0TWFwKG5vdGlmaWNh
dGlvbklELCBub3RpZmljYXRpb24pOwotICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZERlc3Ryb3lOb3RpZmljYXRp
b24obm90aWZpY2F0aW9uSUQpLCBwYWdlLT5pZGVudGlmaWVyKCkpOworICAgIG1fcHJvY2Vzcy5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOb3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZUhhbmRsZXI6OkRpZERlc3Ryb3lOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSUQp
LCBwYWdlLT5pZGVudGlmaWVyKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0obm90aWZpY2F0
aW9uKTsKICAgICBVTlVTRURfUEFSQU0ocGFnZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441913</attachid>
            <date>2021-10-20 11:57:52 -0700</date>
            <delta_ts>2021-10-20 13:32:45 -0700</delta_ts>
            <desc>PFL v4 - Now with fewer tabs</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>38851</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViS2l0
L0NNYWtlTGlzdHMudHh0CmluZGV4IGUwY2QwY2QyOGFkOS4uYmY2NjJkYzVmMjk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01h
a2VMaXN0cy50eHQKQEAgLTQ0LDYgKzQ0LDcgQEAgc2V0KFdlYktpdF9JTkNMVURFX0RJUkVDVE9S
SUVTCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL0RhdGFiYXNlcy9JbmRleGVkREIiCiAgICAg
IiR7V0VCS0lUX0RJUn0vU2hhcmVkL0ZpbGVBUEkiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVk
L0dhbWVwYWQiCisgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL05vdGlmaWNhdGlvbnMiCiAgICAg
IiR7V0VCS0lUX0RJUn0vU2hhcmVkL1BsdWdpbnMiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVk
L1BsdWdpbnMvTmV0c2NhcGUiCiAgICAgIiR7V0VCS0lUX0RJUn0vU2hhcmVkL1BsdWdpbnMvTmV0
c2NhcGUveDExIgpAQCAtMTkyLDYgKzE5Myw4IEBAIHNldChXZWJLaXRfTUVTU0FHRVNfSU5fRklM
RVMKIAogICAgIFNoYXJlZC9BdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdGlvbk1hbmFnZXIKIAor
ICAgIFNoYXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
cgorCiAgICAgU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RNZXNzYWdlUmVjZWl2ZXIKIAogICAgIFVJ
UHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDExOWU0ZmIzYWIxMi4uMzRjNTdh
YjZlODE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDIxLTEwLTIwICBCcmFkeSBFaWRz
b24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBGYWN0b3Igb3V0IHNvbWUgTm90aWZp
Y2F0aW9ucy1zcGVjaWZpYyBtZXNzYWdlcyBmcm9tIFdlYlBhZ2VQcm94eSBtZXNzYWdlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyMDIxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNlbi4KKworICAgICAgICBJbiBhIGZ1dHVy
ZSBwYXRjaCwgdGhlcmUgd2lsbCBiZSBhIHJ1bnRpbWUgc3dpdGNoIHdoZXJlIFdlYkNvbnRlbnQg
c29tZXRpbWVzIHNlbmRzIHRoZXNlIE5vdGlmaWNhdGlvbgorICAgICAgICByZWxhdGVkIG1lc3Nh
Z2VzIHRvIGFuIG9iamVjdGluZyBpbiBOZXR3b3JraW5nLCBhbmQgb3RoZXJ0aW1lcyBzZW5kcyB0
aGVtIHRvIGEgV2ViUGFnZVByb3h5IGluIHRoZSBVSVByb2Nlc3MuCisKKyAgICAgICAgVG8gYWNj
b21vZGF0ZSB0aGlzIHN3aXRjaCwgbGV0J3Mgc3BsaXQgdGhlbSBvdXQgaW50byB0aGVpciBvd24g
Tm90aWZpY2F0aW9ucyBzcGVjaWZpYyBvYmplY3QgYW5kIG1lc3NhZ2VzLgorICAgICAgICAKKyAg
ICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54
Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0Ogor
ICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6Cisg
ICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAgICAgICAgKiBT
aGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaDog
QWRkZWQuCisgICAgICAgICogU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluOiBBZGRlZC4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhh
bmRsZXI6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6c2hvd05vdGlmaWNh
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFu
ZGxlcjo6Y2FuY2VsTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTm90aWZpY2F0
aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpjbGVhck5vdGlmaWNhdGlvbnMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OmRpZERlc3Ryb3lO
b3RpZmljYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oOiBBZGRlZC4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjptX25vdGlmaWNhdGlvbk1h
bmFnZXJNZXNzYWdlSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YWRk
QWxsTWVzc2FnZVJlY2VpdmVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVt
b3ZlQWxsTWVzc2FnZVJlY2VpdmVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
bGF1bmNoUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3dhcFRvUHJv
dmlzaW9uYWxQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjbG9zZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tbWl0UHJvdmlzaW9uYWxQYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6bV9saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5zKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKworICAgICAgICAqIFdlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OmNhbmNlbCk6CisgICAgICAgIChXZWJLaXQ6OldlYk5vdGlmaWNh
dGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYk5v
dGlmaWNhdGlvbk1hbmFnZXI6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24pOgorCiAyMDIxLTEwLTIw
ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBEb24ndCByZS1l
dmFsdWF0ZSB2aWV3cG9ydCBkZXBlbmRlbnQgbWVkaWEgcXVlcmllcyBpZiB0aGUgdmlld3BvcnQg
ZG9lc24ndCBjaGFuZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMt
aW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdAppbmRleCBlZGZmYTY2MThjYjQuLjNkZjk4YTM1MGQ4ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAtMTAwLDYgKzEwMCw4IEBA
ICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94
eS5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVkL0F1dGhlbnRpY2F0aW9uL0F1dGhl
bnRpY2F0aW9uTWFuYWdlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVkL0F1eGls
aWFyeVByb2Nlc3MubWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1NoYXJlZC9IVFRQU1VwZ3Jh
ZGUvSFRUUFNVcGdyYWRlTGlzdC50eHQKKyQoUFJPSkVDVF9ESVIpL1NoYXJlZC9Ob3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5tZXNzYWdlcy5pbgorJChQUk9K
RUNUX0RJUikvU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCiAkKFBST0pFQ1RfRElSKS9TaGFyZWQvUGx1Z2lucy9OUE9iamVjdE1lc3NhZ2VS
ZWNlaXZlci5tZXNzYWdlcy5pbgogJChQUk9KRUNUX0RJUikvU2hhcmVkL1dlYkNvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KICQoUFJPSkVDVF9ESVIpL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRp
b24uanNvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QKaW5kZXggYTE2OWI4ODQ1MzY0Li4xZjI2NjY4NDAwYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYktp
dC9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTE1LDYgKzExNSw5IEBAICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL05ldHdvcmtTb2NrZXRT
dHJlYW1NZXNzYWdlc1JlcGxpZXMuCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJj
ZXMvV2ViS2l0Mi9OZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9OZXR3b3JrU3RvcmFnZU1h
bmFnZXJNZXNzYWdlcy5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
S2l0Mi9OZXR3b3JrU3RvcmFnZU1hbmFnZXJNZXNzYWdlc1JlcGxpZXMuaAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VIYW5kbGVyTWVzc2FnZVJlY2VpdmVyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2Fn
ZXMuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYktpdDIvTm90aWZp
Y2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXNSZXBsaWVzLmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJLaXQyL1BsYXRmb3JtWFJTeXN0ZW1NZXNzYWdl
UmVjZWl2ZXIuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0
Mi9QbGF0Zm9ybVhSU3lzdGVtTWVzc2FnZXMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYktpdDIvUGxhdGZvcm1YUlN5c3RlbU1lc3NhZ2VzUmVwbGllcy5oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMWJlZmRhNzI0Njk5Li4xNGYyYThjYzA2Y2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2Uv
V2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTQ3LDYgKzQ3LDcgQEAgVlBBVEggPSBcCiAg
ICAgJChXZWJLaXQyKS9TaGFyZWQvQXBwbGVQYXkgXAogICAgICQoV2ViS2l0MikvU2hhcmVkL0F1
dGhlbnRpY2F0aW9uIFwKICAgICAkKFdlYktpdDIpL1NoYXJlZC9tYWMgXAorICAgICQoV2ViS2l0
MikvU2hhcmVkL05vdGlmaWNhdGlvbnMgXAogICAgICQoV2ViS2l0MikvV2ViQXV0aG5Qcm9jZXNz
IFwKICAgICAkKFdlYktpdDIpL1dlYkF1dGhuUHJvY2Vzcy9tYWMgXAogICAgICQoV2ViS2l0Mikv
V2ViUHJvY2Vzcy9BcHBsZVBheSBcCkBAIC0xNDcsNiArMTQ4LDcgQEAgTUVTU0FHRV9SRUNFSVZF
UlMgPSBcCiAJU2hhcmVkL0FQSS9Db2NvYS9SZW1vdGVPYmplY3RSZWdpc3RyeSBcCiAJU2hhcmVk
L0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5IFwKIAlTaGFyZWQvQXV0aGVudGlj
YXRpb24vQXV0aGVudGljYXRpb25NYW5hZ2VyIFwKKwlTaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIgXAogCVNoYXJlZC9XZWJDb25uZWN0aW9uIFwK
IAlVSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSBcCiAJVUlQcm9jZXNzL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5IFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1l
c3NhZ2VIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Ob3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMC4uYjc4OGZkZGIxZGIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRs
ZXIuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVy
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25EaXJlY3Rpb24uaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlciA6
IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+Tm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyKCkgPSBkZWZhdWx0OworCisgICAgdmlydHVh
bCB2b2lkIHNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5n
JiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBT
dHJpbmcmIGxhbmd1YWdlLCBXZWJDb3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb24sIGNvbnN0IFN0
cmluZyYgb3JpZ2luU3RyaW5nLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBjYW5jZWxOb3RpZmljYXRpb24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJOb3RpZmljYXRpb25zKGNvbnN0IFZlY3Rvcjx1aW50
NjRfdD4mIG5vdGlmaWNhdGlvbklEcykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWREZXN0cm95
Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKSA9IDA7CisKK3ByaXZhdGU6Cisg
ICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Ob3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1l
c3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZGQ3NWUz
MzhiNmU1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIubWVzc2FnZXMuaW4KQEAgLTAs
MCArMSwyOCBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNz
YWdlcyAtPiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIgTm90UmVmQ291bnRlZCB7
CisgICAgU2hvd05vdGlmaWNhdGlvbihTdHJpbmcgdGl0bGUsIFN0cmluZyBib2R5LCBTdHJpbmcg
aWNvblVSTCwgU3RyaW5nIHRhZywgU3RyaW5nIGxhbmd1YWdlLCBlbnVtOnVpbnQ4X3QgV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uIGRpcmVjdGlvbiwgU3RyaW5nIG9yaWdpbklkZW50aWZp
ZXIsIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQorICAgIENhbmNlbE5vdGlmaWNhdGlvbih1aW50
NjRfdCBub3RpZmljYXRpb25JRCkKKyAgICBDbGVhck5vdGlmaWNhdGlvbnMoVmVjdG9yPHVpbnQ2
NF90PiBub3RpZmljYXRpb25JRHMpCisgICAgRGlkRGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRf
dCBub3RpZmljYXRpb25JRCkKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CmluZGV4IDU1MzE5Y2JiNTdhZS4uYjEyZTU2
MzE0YTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTQ5NCw2ICs0OTQsNyBAQCBVSVByb2Nlc3MvTWVkaWEv
TWVkaWFVc2FnZU1hbmFnZXIuY3BwCiBVSVByb2Nlc3MvTWVkaWEvUmVtb3RlTWVkaWFTZXNzaW9u
Q29vcmRpbmF0b3JQcm94eS5jcHAKIAogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZp
Y2F0aW9uLmNwcAorVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VIYW5kbGVyLmNwcAogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5LmNwcAogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXIuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VIYW5kbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAuLmJjNTQwOGM2NTEzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmNw
cApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oIgorCisjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJOb3RpZmljYXRp
b25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFu
ZGxlcihXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSkKKyAgICA6IG1fd2ViUGFnZVByb3h5KHdl
YlBhZ2VQcm94eSkKK3sKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhh
bmRsZXI6OnNob3dOb3RpZmljYXRpb24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5n
JiBib2R5LCBjb25zdCBTdHJpbmcmIGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBT
dHJpbmcmIGxhbmd1YWdlLCBXZWJDb3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb24gZGlyZWN0aW9u
LCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCit7
CisgICAgbV93ZWJQYWdlUHJveHkuc2hvd05vdGlmaWNhdGlvbih0aXRsZSwgYm9keSwgaWNvblVS
TCwgdGFnLCBsYW5ndWFnZSwgZGlyZWN0aW9uLCBvcmlnaW5TdHJpbmcsIG5vdGlmaWNhdGlvbklE
KTsKK30KKwordm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OmNhbmNl
bE5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCkKK3sKKyAgICBtX3dlYlBhZ2VQ
cm94eS5jYW5jZWxOb3RpZmljYXRpb24obm90aWZpY2F0aW9uSUQpOworfQorCit2b2lkIFdlYk5v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6Y2xlYXJOb3RpZmljYXRpb25zKGNvbnN0
IFZlY3Rvcjx1aW50NjRfdD4mIG5vdGlmaWNhdGlvbklEcykKK3sKKyAgICBtX3dlYlBhZ2VQcm94
eS5jbGVhck5vdGlmaWNhdGlvbnMobm90aWZpY2F0aW9uSURzKTsKK30KKwordm9pZCBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OmRpZERlc3Ryb3lOb3RpZmljYXRpb24odWlu
dDY0X3Qgbm90aWZpY2F0aW9uSUQpCit7CisgICAgbV93ZWJQYWdlUHJveHkuZGlkRGVzdHJveU5v
dGlmaWNhdGlvbihub3RpZmljYXRpb25JRCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42ZjBmZDY4NTU5OGUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNz
YWdlSGFuZGxlci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZVByb3h5
OworCitjbGFzcyBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIgOiBwdWJsaWMg
Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyIHsKKyAgICBmcmllbmQgY2xhc3MgV2Vi
UGFnZVByb3h5OworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
TWVzc2FnZUhhbmRsZXIoV2ViUGFnZVByb3h5Jik7CisKKyAgICB2b2lkIHNob3dOb3RpZmljYXRp
b24oY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiBib2R5LCBjb25zdCBTdHJpbmcm
IGljb25VUkwsIGNvbnN0IFN0cmluZyYgdGFnLCBjb25zdCBTdHJpbmcmIGxhbmd1YWdlLCBXZWJD
b3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb24sIGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCB1
aW50NjRfdCBub3RpZmljYXRpb25JRCkgZmluYWw7CisgICAgdm9pZCBjYW5jZWxOb3RpZmljYXRp
b24odWludDY0X3Qgbm90aWZpY2F0aW9uSUQpIGZpbmFsOworICAgIHZvaWQgY2xlYXJOb3RpZmlj
YXRpb25zKGNvbnN0IFZlY3Rvcjx1aW50NjRfdD4mIG5vdGlmaWNhdGlvbklEcykgZmluYWw7Cisg
ICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKSBm
aW5hbDsKKworICAgIFdlYlBhZ2VQcm94eSYgbV93ZWJQYWdlUHJveHk7Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IDgyOGYyYmFjMDM5Ny4uZjdhODEwYjI3M2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTc3LDYgKzc3LDcgQEAKICNpbmNsdWRlICJOYXZpZ2F0aW9u
QWN0aW9uRGF0YS5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNs
dWRlICJOZXR3b3JrUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiTm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VIYW5kbGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNz
aW9uUmVxdWVzdC5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlci5oIgogI2luY2x1ZGUgIlBhZ2VDbGllbnQuaCIKQEAgLTUxNiw2ICs1MTcsNyBAQCBXZWJQ
YWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9jZXNz
UHJveHkmIHByb2Nlc3MsIFJlZgogICAgICwgbV9pZ25vcmVzQXBwQm91bmREb21haW5zKG1fY29u
ZmlndXJhdGlvbi0+aWdub3Jlc0FwcEJvdW5kRG9tYWlucygpKQogICAgICwgbV9saW1pdHNOYXZp
Z2F0aW9uc1RvQXBwQm91bmREb21haW5zKG1fY29uZmlndXJhdGlvbi0+bGltaXRzTmF2aWdhdGlv
bnNUb0FwcEJvdW5kRG9tYWlucygpKQogI2VuZGlmCisgICAgLCBtX25vdGlmaWNhdGlvbk1hbmFn
ZXJNZXNzYWdlSGFuZGxlcigqdGhpcykKIHsKICAgICBXRUJQQUdFUFJPWFlfUkVMRUFTRV9MT0co
TG9hZGluZywgImNvbnN0cnVjdG9yOiIpOwogCkBAIC01NDYsNyArNTQ4LDcgQEAgV2ViUGFnZVBy
b3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgV2ViUHJvY2Vzc1Byb3h5
JiBwcm9jZXNzLCBSZWYKICAgICBpZiAoaGFzUnVubmluZ1Byb2Nlc3MoKSkKICAgICAgICAgZGlk
QXR0YWNoVG9SdW5uaW5nUHJvY2VzcygpOwogCi0gICAgbV9wcm9jZXNzLT5hZGRNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3dl
YlBhZ2VJRCwgKnRoaXMpOworICAgIGFkZEFsbE1lc3NhZ2VSZWNlaXZlcnMoKTsKIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzOjpzZXREaXNh
YmxlU2NyZWVuU2l6ZU92ZXJyaWRlKG1fcHJlZmVyZW5jZXMtPmRpc2FibGVTY3JlZW5TaXplT3Zl
cnJpZGUoKSk7CkBAIC02MjAsNiArNjIyLDE4IEBAIFdlYlBhZ2VQcm94eTo6fldlYlBhZ2VQcm94
eSgpCiAjZW5kaWYKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmFkZEFsbE1lc3NhZ2VSZWNlaXZl
cnMoKQoreworICAgIG1fcHJvY2Vzcy0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV93ZWJQYWdlSUQsICp0aGlzKTsKKyAg
ICBtX3Byb2Nlc3MtPmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFu
YWdlck1lc3NhZ2VIYW5kbGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFnZUlELCBt
X25vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcik7Cit9CisKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpyZW1vdmVBbGxNZXNzYWdlUmVjZWl2ZXJzKCkKK3sKKyAgICBtX3Byb2Nlc3MtPnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1fd2ViUGFnZUlEKTsKKyAgICBtX3Byb2Nlc3MtPnJlbW92ZU1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksIG1fd2ViUGFnZUlEKTsKK30KKwogLy8gRklYTUU6IFNob3VsZCByZXR1cm4g
YSBjb25zdCBQYWdlQ2xpZW50JiBhbmQgYWRkIGEgc2VwYXJhdGUgbm9uLWNvbnN0CiAvLyB2ZXJz
aW9uIG9mIHRoaXMgZnVuY3Rpb24sIGJ1dCBzZXZlcmFsIFBhZ2VDbGllbnQgbWV0aG9kcyB3aWxs
IG5lZWQgdG8gYmVjb21lCiAvLyBjb25zdCBmb3IgdGhpcyB0byBiZSBwb3NzaWJsZS4KQEAgLTg0
MSw3ICs4NTUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bGF1bmNoUHJvY2Vzcyhjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgcmVnaXN0cmFibGVEb21haW4sIFBybwogICAgIG1faW5zcGVjdG9yLT5y
ZXNldCgpOwogCiAgICAgbV9wcm9jZXNzLT5yZW1vdmVXZWJQYWdlKCp0aGlzLCBXZWJQcm9jZXNz
UHJveHk6OkVuZHNVc2luZ0RhdGFTdG9yZTo6WWVzKTsKLSAgICBtX3Byb2Nlc3MtPnJlbW92ZU1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1fd2ViUGFnZUlEKTsKKyAgICByZW1vdmVBbGxNZXNzYWdlUmVjZWl2ZXJzKCk7CiAKICAg
ICBhdXRvJiBwcm9jZXNzUG9vbCA9IG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKTsKIApAQCAtODUz
LDcgKzg2Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpsYXVuY2hQcm9jZXNzKGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiByZWdpc3RyYWJsZURvbWFpbiwgUHJvCiAgICAgbV9oYXNSdW5uaW5nUHJv
Y2VzcyA9IHRydWU7CiAKICAgICBtX3Byb2Nlc3MtPmFkZEV4aXN0aW5nV2ViUGFnZSgqdGhpcywg
V2ViUHJvY2Vzc1Byb3h5OjpCZWdpbnNVc2luZ0RhdGFTdG9yZTo6WWVzKTsKLSAgICBtX3Byb2Nl
c3MtPmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVj
ZWl2ZXJOYW1lKCksIG1fd2ViUGFnZUlELCAqdGhpcyk7CisgICAgYWRkQWxsTWVzc2FnZVJlY2Vp
dmVycygpOwogCiAjaWYgRU5BQkxFKElQQ19URVNUSU5HX0FQSSkKICAgICBpZiAobV9wcmVmZXJl
bmNlcy0+c3RvcmUoKS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmlwY1Rl
c3RpbmdBUElFbmFibGVkS2V5KCkpKQpAQCAtOTY0LDcgKzk3OCw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5Ojpzd2FwVG9Qcm92aXNpb25hbFBhZ2Uoc3RkOjp1bmlxdWVfcHRyPFByb3Zpc2lvbmFsUGFn
ZVByb3h5PiBwCiAgICAgbV9tYWluRnJhbWUgPSBwcm92aXNpb25hbFBhZ2UtPm1haW5GcmFtZSgp
OwogCiAgICAgbV9wcm9jZXNzLT5hZGRFeGlzdGluZ1dlYlBhZ2UoKnRoaXMsIFdlYlByb2Nlc3NQ
cm94eTo6QmVnaW5zVXNpbmdEYXRhU3RvcmU6Ok5vKTsKLSAgICBtX3Byb2Nlc3MtPmFkZE1lc3Nh
Z2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCks
IG1fd2ViUGFnZUlELCAqdGhpcyk7CisgICAgYWRkQWxsTWVzc2FnZVJlY2VpdmVycygpOwogCiAg
ICAgZmluaXNoQXR0YWNoaW5nVG9XZWJQcm9jZXNzKFByb2Nlc3NMYXVuY2hSZWFzb246OlByb2Nl
c3NTd2FwKTsKIApAQCAtMTE5Miw3ICsxMjA2LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNsb3Nl
KCkKICAgICAgICAgcHJvdGVjdGVkUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q2xv
c2UoKSwgZGVzdGluYXRpb25JRCk7CiAgICAgfSk7CiAgICAgbV9wcm9jZXNzLT5yZW1vdmVXZWJQ
YWdlKCp0aGlzLCBXZWJQcm9jZXNzUHJveHk6OkVuZHNVc2luZ0RhdGFTdG9yZTo6WWVzKTsKLSAg
ICBtX3Byb2Nlc3MtPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFnZUlEKTsKKyAgICByZW1vdmVBbGxNZXNz
YWdlUmVjZWl2ZXJzKCk7CiAgICAgbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLnN1cHBsZW1lbnQ8
V2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5PigpLT5jbGVhck5vdGlmaWNhdGlvbnModGhpcyk7
CiAKICAgICAvLyBOdWxsIG91dCByZWxhdGVkIFdlYlBhZ2VQcm94eSB0byBhdm9pZCBsZWFrcy4K
QEAgLTM2MTMsNyArMzYyNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb21taXRQcm92aXNpb25h
bFBhZ2UoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIEZyYW1lSW5mb0RhdGEmCiAKICAgICByZXNl
dFN0YXRlQWZ0ZXJQcm9jZXNzVGVybWluYXRpb24oUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uOjpO
YXZpZ2F0aW9uU3dhcCk7CiAKLSAgICBtX3Byb2Nlc3MtPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFnZUlE
KTsKKyAgICByZW1vdmVBbGxNZXNzYWdlUmVjZWl2ZXJzKCk7CiAgICAgYXV0byogbmF2aWdhdGlv
biA9IG5hdmlnYXRpb25TdGF0ZSgpLm5hdmlnYXRpb24obV9wcm92aXNpb25hbFBhZ2UtPm5hdmln
YXRpb25JRCgpKTsKICAgICBib29sIGRpZFN1c3BlbmRQcmV2aW91c1BhZ2UgPSBuYXZpZ2F0aW9u
ICYmICFtX3Byb3Zpc2lvbmFsUGFnZS0+c2hvdWxkQ2xvc2VQcmV2aW91c1BhZ2VBZnRlckNvbW1p
dCgpID8gc3VzcGVuZEN1cnJlbnRQYWdlSWZQb3NzaWJsZSgqbmF2aWdhdGlvbiwgbWFpbkZyYW1l
SURJblByZXZpb3VzUHJvY2VzcywgbV9wcm92aXNpb25hbFBhZ2UtPnByb2Nlc3NTd2FwUmVxdWVz
dGVkQnlDbGllbnQoKSwgc2hvdWxkRGVsYXlDbG9zaW5nVW50aWxGaXJzdExheWVyRmx1c2gpIDog
ZmFsc2U7CiAgICAgbV9wcm9jZXNzLT5yZW1vdmVXZWJQYWdlKCp0aGlzLCBtX3dlYnNpdGVEYXRh
U3RvcmUucHRyKCkgPT0gJm1fcHJvdmlzaW9uYWxQYWdlLT5wcm9jZXNzKCkud2Vic2l0ZURhdGFT
dG9yZSgpID8gV2ViUHJvY2Vzc1Byb3h5OjpFbmRzVXNpbmdEYXRhU3RvcmU6Ok5vIDogV2ViUHJv
Y2Vzc1Byb3h5OjpFbmRzVXNpbmdEYXRhU3RvcmU6Olllcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IGYzZGQyM2NhYTRhMy4uYWJmMWQxZGQ0ZGZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjksNiArNjksNyBAQAogI2luY2x1
ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkRhdGFMaXN0U3VnZ2Vz
dGlvbnNEcm9wZG93bi5oIgogI2luY2x1ZGUgIldlYkZyYW1lUHJveHkuaCIKKyNpbmNsdWRlICJX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaCIKICNpbmNsdWRlICJXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZURpYWdub3N0aWNMb2dnaW5n
Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmgiCkBAIC0x
OTkwLDEwICsxOTkxLDE4IEBAIHB1YmxpYzoKICAgICBib29sIGlzUXVhcmFudGluZWRBbmROb3RV
c2VyQXBwcm92ZWQoY29uc3QgU3RyaW5nJik7CiAjZW5kaWYKIAorICAgIHZvaWQgc2hvd05vdGlm
aWNhdGlvbihjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0
cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgbGFuZywgV2Vi
Q29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywg
dWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOworICAgIHZvaWQgY2FuY2VsTm90aWZpY2F0aW9uKHVp
bnQ2NF90IG5vdGlmaWNhdGlvbklEKTsKKyAgICB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhjb25z
dCBWZWN0b3I8dWludDY0X3Q+JiBub3RpZmljYXRpb25JRHMpOworICAgIHZvaWQgZGlkRGVzdHJv
eU5vdGlmaWNhdGlvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CisKIHByaXZhdGU6CiAgICAg
V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdl
Q29uZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIAorICAg
IHZvaWQgYWRkQWxsTWVzc2FnZVJlY2VpdmVycygpOworICAgIHZvaWQgcmVtb3ZlQWxsTWVzc2Fn
ZVJlY2VpdmVycygpOworCiAgICAgdm9pZCBub3RpZnlQcm9jZXNzUG9vbFRvUHJld2FybSgpOwog
ICAgIGJvb2wgc2hvdWxkVXNlQmFja0ZvcndhcmRDYWNoZSgpIGNvbnN0OwogCkBAIC0yMTg1LDEw
ICsyMTk0LDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBsYXVuY2hQ
cm9jZXNzRm9yUmVsb2FkKCk7CiAKICAgICB2b2lkIHJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNz
aW9uKGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wgYWxsb3dlZCk+JiYpOwotICAgIHZvaWQgc2hvd05vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcm
IHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3Qg
U3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgbGFuZywgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGly
ZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9u
SUQpOwotICAgIHZvaWQgY2FuY2VsTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
KTsKLSAgICB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBu
b3RpZmljYXRpb25JRHMpOwotICAgIHZvaWQgZGlkRGVzdHJveU5vdGlmaWNhdGlvbih1aW50NjRf
dCBub3RpZmljYXRpb25JRCk7CiAKICAgICB2b2lkIGRpZENoYW5nZUNvbnRlbnRTaXplKGNvbnN0
IFdlYkNvcmU6OkludFNpemUmKTsKICAgICB2b2lkIGRpZENoYW5nZUludHJpbnNpY0NvbnRlbnRT
aXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKQEAgLTMxMjIsNiArMzEyNyw4IEBAIHByaXZh
dGU6CiAjZW5kaWYKIAogICAgIFdpbmRvd0tpbmQgbV93aW5kb3dLaW5kIHsgV2luZG93S2luZDo6
VW5wYXJlbnRlZCB9OworCisgICAgV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVy
IG1fbm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOwogfTsKIAogI2lmZGVmIF9fT0JK
Q19fCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KaW5kZXggNTgxMDhmNzQzMTRkLi5mNTcwNWEwNjExNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTI4NSwxMCArMjg1LDYg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKIAogICAgICMgTm90aWZpY2F0aW9uIG1lc3Nh
Z2VzCiAgICAgUmVxdWVzdE5vdGlmaWNhdGlvblBlcm1pc3Npb24oU3RyaW5nIG9yaWdpbklkZW50
aWZpZXIpIC0+IChib29sIGFsbG93ZWQpIEFzeW5jCi0gICAgU2hvd05vdGlmaWNhdGlvbihTdHJp
bmcgdGl0bGUsIFN0cmluZyBib2R5LCBTdHJpbmcgaWNvblVSTCwgU3RyaW5nIHRhZywgU3RyaW5n
IGxhbmcsIGVudW06dWludDhfdCBXZWJDb3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb24gZGlyLCBT
dHJpbmcgb3JpZ2luSWRlbnRpZmllciwgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpCi0gICAgQ2Fu
Y2VsTm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQotICAgIENsZWFyTm90aWZp
Y2F0aW9ucyhWZWN0b3I8dWludDY0X3Q+IG5vdGlmaWNhdGlvbklEcykKLSAgICBEaWREZXN0cm95
Tm90aWZpY2F0aW9uKHVpbnQ2NF90IG5vdGlmaWNhdGlvbklEKQogCiAgICAgIyBTcGVsbGluZyBh
bmQgZ3JhbW1hciBtZXNzYWdlcwogI2lmIFVTRShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwY2Uz
YjhlNWNkMWUuLjgxNzYxNzU0YzE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDU0LDYgKzEwNTQsMTEgQEAKIAkJNTEzRTQ2MkQx
QUQ4Mzc1NjAwMTYyMzRBIC8qIFdLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEzRTQ2MkIxQUQ4Mzc1
NjAwMTYyMzRBIC8qIFdLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5oICovOyB9OwogCQk1
MTNGRkI5MTIwMTQ1OUM2MDAyNTk2RUEgLyogV2ViTWVzc2FnZVBvcnRDaGFubmVsUHJvdmlkZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxM0ZGQjhG
MjAxNDU5QzIwMDI1OTZFQSAvKiBXZWJNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlci5oICovOyB9
OwogCQk1MTQxMjk5NDFDNjQyOEJCMDA1OUU3MTQgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQxMjk5
MjFDNjQyODEwMDA1OUU3MTQgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmggKi87IH07CisJ
CTUxNDUyNkZGMjcxRkI3RUMwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhh
bmRsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
NDUyNkZFMjcxRkI3RTgwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRs
ZXIuaCAqLzsgfTsKKwkJNTE0NTI3MDMyNzFGQkEzQTAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1h
bmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ1MjcwMjI3MUZCQTM2MDAwNDY3QjYgLyog
Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsg
fTsKKwkJNTE0NTI3MDQyNzFGQkE0MDAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNz
YWdlSGFuZGxlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTE0NTI3MDAyNzFGQkEzNDAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlv
bk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzUmVwbGllcy5oICovOyB9OworCQk1MTQ1Mjcw
NTI3MUZCQTQwMDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
NDUyNzAxMjcxRkJBMzUwMDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRs
ZXJNZXNzYWdlcy5oICovOyB9OworCQk1MTQ1MjcwODI3MUZCRUM2MDAwNDY3QjYgLyogV2ViTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTQ1MjcwNzI3MUZCRUMxMDAwNDY3QjYgLyogV2ViTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmggKi87IH07CiAJCTUxNDg5Q0MzMjM3MERC
RkEwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxNDg5Q0MxMjM3MERBQ0MwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1
bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCTUx
NDg5Q0M3MjM3MjM3ODAwMDQ0RTY4QSAvKiBXS0ZpbmRSZXN1bHRJbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE0ODlDQzYyMzcyMzc3ODAw
NDRFNjhBIC8qIFdLRmluZFJlc3VsdEludGVybmFsLmggKi87IH07CiAJCTUxNEFCOUYwMjM2MEQy
QTkwMEVEQzM5NiAvKiBXS0ZpbmRDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTRBQjlFRjIzNUZBNTlCMDBFREMzOTYgLyogV0tG
aW5kQ29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1YmxpYywg
KTsgfTsgfTsKQEAgLTQxNjAsNiArNDE2NSwxMyBAQAogCQk1MTQxMjk5MjFDNjQyODEwMDA1OUU3
MTQgLyogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTQzQjI1RTFERENERkQxMDAxNEZBQzYgLyogX1dLSWNvbkxvYWRpbmdEZWxl
Z2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tJY29uTG9hZGluZ0Rl
bGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNDNCMjYxMURERDBEQTAw
MDE0RkFDNiAvKiBBUElJY29uTG9hZGluZ0NsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBUElJY29uTG9hZGluZ0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MTQ1MjZGQzI3MUZCN0U4MDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1l
c3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTE0NTI2RkUyNzFGQjdFODAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFn
ZXJNZXNzYWdlSGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb3Rp
ZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTE0NTI3MDAyNzFGQkEzNDAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNz
YWdlSGFuZGxlck1lc3NhZ2VzUmVwbGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlc1JlcGxpZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE0NTI3MDEyNzFGQkEzNTAwMDQ2N0I2IC8q
IE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1l
c3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxNDUyNzAyMjcxRkJBMzYw
MDA0NjdCNiAvKiBOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm90aWZpY2F0aW9u
TWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTE0NTI3MDYyNzFGQkVDMTAwMDQ2N0I2IC8qIFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXJNZXNzYWdlSGFuZGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1MTQ1MjcwNzI3MUZCRUMxMDAwNDY3QjYgLyogV2ViTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQ4OUNDMTIzNzBEQUNDMDA0NEU2OEEgLyogV0tGaW5k
UmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLRmluZFJlc3VsdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQ4OUNDMjIzNzBEQUNDMDA0NEU2OEEg
LyogV0tGaW5kUmVzdWx0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV0tGaW5kUmVzdWx0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTQ4OUND
NjIzNzIzNzc4MDA0NEU2OEEgLyogV0tGaW5kUmVzdWx0SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV0tGaW5kUmVzdWx0SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTY5MzksNiArNjk1MSw3IEBACiAJCQkJNTE1QkUxQUUxRDU5MDAz
NDAwREQ3QzY4IC8qIEdhbWVwYWQgKi8sCiAJCQkJMkRBOTQ0OTYxODg0RTREQTAwRUQ4NkRCIC8q
IGlvcyAqLywKIAkJCQlCQzExMUI1QTExMkY2MjgyMDAzMzdCQUIgLyogbWFjICovLAorCQkJCTUx
QUYxQjNEMjcxRjQ2QTYwMDE1MzhFNiAvKiBOb3RpZmljYXRpb25zICovLAogCQkJCTFBQUUwNThD
MTI3OURDRDQwMDg1MjQxOCAvKiBQbHVnaW5zICovLAogCQkJCTJEMkUwNDc2MUY1QkVDNEYwMEJC
MjVFRCAvKiBSZW1vdGVMYXllclRyZWUgKi8sCiAJCQkJRTM2MTJGRjAyNkY5MDg2MjAwN0IxMTc1
IC8qIFNhbmRib3ggKi8sCkBAIC04MTM3LDYgKzgxNTAsOCBAQAogCQkJCTMxQTJFQzUzMTQ4OTk4
MjUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdC5oICovLAogCQkJCTMx
QTJFQzQxMTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb24uY3BwICovLAogCQkJCTMx
QTJFQzQyMTQ4OTk3QkUwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb24uaCAqLywKKwkJCQk1MTQ1
MjcwNjI3MUZCRUMxMDAwNDY3QjYgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5k
bGVyLmNwcCAqLywKKwkJCQk1MTQ1MjcwNzI3MUZCRUMxMDAwNDY3QjYgLyogV2ViTm90aWZpY2F0
aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmggKi8sCiAJCQkJMzFBMkVDNDMxNDg5OTdCRTAwODEw
RDcxIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgKi8sCiAJCQkJMzFBMkVDNDQx
NDg5OTdCRjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5oICovLAogCQkJ
CTMxQTJFQzQ2MTQ4OTk3QzAwMDgxMEQ3MSAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAg
Ki8sCkBAIC05MDkyLDYgKzkxMDcsMTUgQEAKIAkJCXBhdGggPSBBdXRoZW50aWNhdGlvbjsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTUxQUYxQjNEMjcxRjQ2QTYwMDE1MzhF
NiAvKiBOb3RpZmljYXRpb25zICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJl
biA9ICgKKwkJCQk1MTQ1MjZGRTI3MUZCN0U4MDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VIYW5kbGVyLmggKi8sCisJCQkJNTE0NTI2RkMyNzFGQjdFODAwMDQ2N0I2IC8qIE5v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5tZXNzYWdlcy5pbiAqLywKKwkJCSk7CisJ
CQlwYXRoID0gTm90aWZpY2F0aW9uczsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07
CiAJCTUxQjE1QTdEMTM4NDM5QjIwMDMyMUFEOCAvKiB1bml4ICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTExNDc3LDYgKzExNTAxLDkgQEAKIAkJCQk5MzA4
NURDQzI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLywKIAkJCQk5MzA4NURDRDI2RTJFOTAyMDAwRUM2QTcgLyogTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyTWVzc2FnZXMuaCAqLywKIAkJCQk5MzA4NURDRTI2RTJFOTAyMDAwRUM2QTcgLyog
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyTWVzc2FnZXNSZXBsaWVzLmggKi8sCisJCQkJNTE0NTI3MDIy
NzFGQkEzNjAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCisJCQkJNTE0NTI3MDEyNzFGQkEzNTAwMDQ2N0I2IC8qIE5vdGlm
aWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzLmggKi8sCisJCQkJNTE0NTI3MDAy
NzFGQkEzNDAwMDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3Nh
Z2VzUmVwbGllcy5oICovLAogCQkJCTFBMkQ4NDM3MTI3RjY1RDUwMDFFQjk2MiAvKiBOUE9iamVj
dE1lc3NhZ2VSZWNlaXZlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJMUEyRDg0MzgxMjdG
NjVENTAwMUVCOTYyIC8qIE5QT2JqZWN0TWVzc2FnZVJlY2VpdmVyTWVzc2FnZXMuaCAqLywKIAkJ
CQlDREEyOUEyNDFDQkVCNjdBMDA5MDFDQ0YgLyogUGxheWJhY2tTZXNzaW9uTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCkBAIC0xMjQ4NSw2ICsxMjUxMiw3IEBACiAJCQkJMUE2RDg2QzIx
REY3NTI2NTAwNzc0NUU4IC8qIE1hY2hNZXNzYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0M1
NkY3OTExNTk5NTdEMDAxQ0NBRjkgLyogTWFjaFBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
MjRCNUYzMTFGNTMxRTgwMEMzODI2OSAvKiBNYWNoVXRpbGl0aWVzLmggaW4gSGVhZGVycyAqLywK
KwkJCQk1MTQ1MjZGRjI3MUZCN0VDMDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTU3OTlCRTI1ODQ0MzMyMDA1MjgyMzYg
LyogTWVkaWFGb3JtYXRSZWFkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTlBQ0MwN0IxMjVDODE1
RDgwMERDNjM4NiAvKiBNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk5QUNDMDdBRDI1QzgxMzJEMDBEQzYzODYgLyogTWVkaWFLZXlTeXN0ZW1QZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTI1MTksNiArMTI1NDcs
NyBAQAogCQkJCTFBRENCODZCMTg5ODMxQjMwMDIyRUU1QSAvKiBOYXZpZ2F0aW9uQWN0aW9uRGF0
YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTdGRDMxODAyMkIzNTE1ODAwOEQwRThCIC8qIE5hdmln
YXRpb25TT0F1dGhvcml6YXRpb25TZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUJDM0RG
NjE4OTlFNDM3MDA0RjA2MjYgLyogTmF2aWdhdGlvblN0YXRlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1MTQ1MjcwODI3MUZCRUM2MDAwNDY3QjYgLyogV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VIYW5kbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0I4MjY0NDIzMDRGMTQwMDBCNzJFQjAg
LyogTmVhckZpZWxkU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3QjgyNjQxMjMwNEVC
M0UwMEI3MkVCMCAvKiBOZWFyRmllbGRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNkZCQTJB
MTFFNjg2MjcwMERCMTM3MSAvKiBOZXRzY2FwZUJyb3dzZXJGdW5jcy5oIGluIEhlYWRlcnMgKi8s
CkBAIC0xMjU1MSw2ICsxMjU4MCw3IEBACiAJCQkJRTQ3RkM4QTAyNUI4MzMxQzAwNTQ5NUZDIC8q
IE5ldHdvcmtMb2FkU2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTc5NTU2QTE2Mjg3
NkYzMDBGQTQzQjYgLyogTmV0d29ya1Byb2Nlc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0NG
MEU0MTYzQTQ4NkMwMEMyOTUwRSAvKiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNTE0NTI3MDQyNzFGQkE0MDAwMDQ2N0I2IC8qIE5vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzUmVwbGllcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNUMxNDI2RUQxQzIzRjgwOTAwRDQxMTgzIC8qIE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTYzMTk5NTE2Mjg5QTYzMDBFMjJGMDAg
LyogTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE0QTk1NEEx
NkUwMTZBNDAwNjhERTgyIC8qIE5ldHdvcmtQcm9jZXNzUGxhdGZvcm1TdHJhdGVnaWVzLmggaW4g
SGVhZGVycyAqLywKQEAgLTEyNzgyLDYgKzEyODEyLDcgQEAKIAkJCQk5MzY4RUVERjIzMDNBOUVE
MDBCREIxMUEgLyogU3RvcmFnZU1hbmFnZXJTZXRNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDY1RjRFMDYyMzBCMkU5NTAwM0NFREI3IC8qIFN0b3JhZ2VOYW1lc3BhY2VJZGVudGlmaWVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QjczMTIzQzI1Q0M4NTI1MDAzQjI3OTYgLyogU3RyZWFt
Q2xpZW50Q29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTE0NTI3MDUyNzFGQkE0MDAw
MDQ2N0I2IC8qIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlck1lc3NhZ2VzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3QjczMTIzQTI1Q0M4NTI1MDAzQjI3OTYgLyogU3RyZWFtQ29ubmVj
dGlvbkJ1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0I3MzEyNDIyNUNDODUyNTAwM0IyNzk2
IC8qIFN0cmVhbUNvbm5lY3Rpb25FbmNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QjczMTIz
RTI1Q0M4NTI1MDAzQjI3OTYgLyogU3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZS5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xMjk4NCw3ICsxMzAxNSw2IEBACiAJCQkJMzFCQTkyNEUxNDg4MzEyNjAwNjJF
REI1IC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMzFBMkVDNEIxNDg5OTdDMjAwODEwRDcxIC8qIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFBMkVDNEUxNDg5OTdDMjAwODEwRDcxIC8qIFdlYk5v
dGlmaWNhdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTI3MTQ4MzI3MDI0RjAz
MDAxOTcwMzQgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXJDb2NvYS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkM4NTdGODUxMkI4MkQwQjAwRURFQjJFIC8qIFdlYk9wZW5QYW5lbFJlc3VsdExpc3Rl
bmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzFERkVBNDEyQjMxRjg3MDA1REY3MzAgLyogV2Vi
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJE
OEYxMEY0MzdBMDAwNThDMTVBIC8qIFdlYlBhZ2UuaCBpbiBIZWFkZXJzICovLApAQCAtMTQ2MzMs
NiArMTQ2NjMsNyBAQAogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVz
ID0gKAogCQkJCTU3OTBBNjcxMjU2NzlGMUEwMDc3QzVBNyAvKiBfV0tBdXRoZW50aWNhdGlvbkV4
dGVuc2lvbnNDbGllbnRJbnB1dHMubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MTQ1MjcwMzI3MUZC
QTNBMDAwNDY3QjYgLyogTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3OTBBNjdEMjU2N0ExM0UwMDc3QzVBNyAv
KiBfV0tBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTc5MEE2ODkyNTY3QTI4QTAwNzdDNUE3IC8qIF9XS0F1dGhlbnRpY2F0b3JBc3Nl
cnRpb25SZXNwb25zZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTU3OTBBNjg1MjU2N0EyMUUwMDc3
QzVBNyAvKiBfV0tBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZS5tbSBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAppbmRleCAxODg1MjE2ZTAzNTgu
LjBlOWU4YTc4MzA0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAK
ICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykKKyNpbmNsdWRlICJOb3RpZmljYXRpb25NYW5hZ2Vy
TWVzc2FnZUhhbmRsZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbi5oIgog
I2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
YlBhZ2VQcm94eU1lc3NhZ2VzLmgiCkBAIC0xNDksNyArMTUwLDcgQEAgYm9vbCBXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyOjpzaG93KE5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLCBXZWJQYWdlKiBw
YWdlKQogICAgIGF1dG8gaXQgPSBtX25vdGlmaWNhdGlvbkNvbnRleHRNYXAuYWRkKG5vdGlmaWNh
dGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBWZWN0b3I8dWludDY0X3Q+KCkpLml0ZXJh
dG9yOwogICAgIGl0LT52YWx1ZS5hcHBlbmQobm90aWZpY2F0aW9uSUQpOwogCi0gICAgbV9wcm9j
ZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6U2hvd05vdGlmaWNhdGlvbihub3RpZmljYXRpb24tPnRpdGxlKCksIG5vdGlmaWNhdGlvbi0+
Ym9keSgpLCBub3RpZmljYXRpb24tPmljb24oKS5zdHJpbmcoKSwgbm90aWZpY2F0aW9uLT50YWco
KSwgbm90aWZpY2F0aW9uLT5sYW5nKCksIG5vdGlmaWNhdGlvbi0+ZGlyKCksIG5vdGlmaWNhdGlv
bi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygp
LCBub3RpZmljYXRpb25JRCksIHBhZ2UtPmlkZW50aWZpZXIoKSk7CisgICAgbV9wcm9jZXNzLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFn
ZXJNZXNzYWdlSGFuZGxlcjo6U2hvd05vdGlmaWNhdGlvbihub3RpZmljYXRpb24tPnRpdGxlKCks
IG5vdGlmaWNhdGlvbi0+Ym9keSgpLCBub3RpZmljYXRpb24tPmljb24oKS5zdHJpbmcoKSwgbm90
aWZpY2F0aW9uLT50YWcoKSwgbm90aWZpY2F0aW9uLT5sYW5nKCksIG5vdGlmaWNhdGlvbi0+ZGly
KCksIG5vdGlmaWNhdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0eU9yaWdp
bigpLT50b1N0cmluZygpLCBub3RpZmljYXRpb25JRCksIHBhZ2UtPmlkZW50aWZpZXIoKSk7CiAg
ICAgcmV0dXJuIHRydWU7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwpA
QCAtMTY4LDcgKzE2OSw3IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6Y2FuY2VsKE5v
dGlmaWNhdGlvbiogbm90aWZpY2F0aW9uLCBXZWJQYWdlKiBwYWdlKQogICAgIGlmICghbm90aWZp
Y2F0aW9uSUQpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBtX3Byb2Nlc3MucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDYW5jZWxOb3Rp
ZmljYXRpb24obm90aWZpY2F0aW9uSUQpLCBwYWdlLT5pZGVudGlmaWVyKCkpOworICAgIG1fcHJv
Y2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOb3RpZmljYXRp
b25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OkNhbmNlbE5vdGlmaWNhdGlvbihub3RpZmljYXRpb25J
RCksIHBhZ2UtPmlkZW50aWZpZXIoKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShub3RpZmlj
YXRpb24pOwogICAgIFVOVVNFRF9QQVJBTShwYWdlKTsKQEAgLTE4Myw3ICsxODQsNyBAQCB2b2lk
IFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OmNsZWFyTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KgogICAgICAgICByZXR1cm47CiAKICAgICBWZWN0b3I8dWludDY0
X3Q+JiBub3RpZmljYXRpb25JRHMgPSBpdC0+dmFsdWU7Ci0gICAgbV9wcm9jZXNzLnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q2xlYXJOb3Rp
ZmljYXRpb25zKG5vdGlmaWNhdGlvbklEcyksIHBhZ2UtPmlkZW50aWZpZXIoKSk7CisgICAgbV9w
cm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6Q2xlYXJOb3RpZmljYXRpb25zKG5vdGlmaWNhdGlv
bklEcyksIHBhZ2UtPmlkZW50aWZpZXIoKSk7CiAgICAgc2l6ZV90IGNvdW50ID0gbm90aWZpY2F0
aW9uSURzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsK
ICAgICAgICAgUmVmUHRyPE5vdGlmaWNhdGlvbj4gbm90aWZpY2F0aW9uID0gbV9ub3RpZmljYXRp
b25JRE1hcC50YWtlKG5vdGlmaWNhdGlvbklEc1tpXSk7CkBAIC0yMTEsNyArMjEyLDcgQEAgdm9p
ZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpkaWREZXN0cm95Tm90aWZpY2F0aW9uKE5vdGlmaWNh
dGlvbiogbm90aWZpY2F0aW9uLAogCiAgICAgbV9ub3RpZmljYXRpb25JRE1hcC5yZW1vdmUobm90
aWZpY2F0aW9uSUQpOwogICAgIHJlbW92ZU5vdGlmaWNhdGlvbkZyb21Db250ZXh0TWFwKG5vdGlm
aWNhdGlvbklELCBub3RpZmljYXRpb24pOwotICAgIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZERlc3Ryb3lOb3RpZmlj
YXRpb24obm90aWZpY2F0aW9uSUQpLCBwYWdlLT5pZGVudGlmaWVyKCkpOworICAgIG1fcHJvY2Vz
cy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOb3RpZmljYXRpb25N
YW5hZ2VyTWVzc2FnZUhhbmRsZXI6OkRpZERlc3Ryb3lOb3RpZmljYXRpb24obm90aWZpY2F0aW9u
SUQpLCBwYWdlLT5pZGVudGlmaWVyKCkpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0obm90aWZp
Y2F0aW9uKTsKICAgICBVTlVTRURfUEFSQU0ocGFnZSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>