<?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>146660</bug_id>
          
          <creation_ts>2015-07-06 16:24:13 -0700</creation_ts>
          <short_desc>Media Session: propagate metadata changes to UI clients</short_desc>
          <delta_ts>2015-07-07 16:55:05 -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>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>145411</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Rajca">mrajca</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>conrad_shultz</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>mrajca</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1107267</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-06 16:24:13 -0700</bug_when>
    <thetext>We need to give UI clients a chance to handle media metadata changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107268</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-07-06 16:25:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/21694290&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107277</commentid>
    <comment_count>2</comment_count>
      <attachid>256255</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-06 16:46:34 -0700</bug_when>
    <thetext>Created attachment 256255
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107284</commentid>
    <comment_count>3</comment_count>
      <attachid>256258</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-06 16:50:56 -0700</bug_when>
    <thetext>Created attachment 256258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107443</commentid>
    <comment_count>4</comment_count>
      <attachid>256258</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-07-07 06:39:28 -0700</bug_when>
    <thetext>Comment on attachment 256258
Patch

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

&gt; Source/WebKit2/Shared/WebMediaSessionMetadata.cpp:38
&gt; +PassRefPtr&lt;WebMediaSessionMetadata&gt; WebMediaSessionMetadata::create(const MediaSessionMetadata&amp; metadata)
&gt; +{
&gt; +    return adoptRef(new WebMediaSessionMetadata(metadata));
&gt; +}

The return type should be Ref&lt;WebMediaSessionMetadata&gt;, not PassRefPtr&lt;WebMediaSessionMetadata&gt;. See http://www.webkit.org/coding/RefPtr.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107476</commentid>
    <comment_count>5</comment_count>
      <attachid>256308</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-07 10:25:43 -0700</bug_when>
    <thetext>Created attachment 256308
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107477</commentid>
    <comment_count>6</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-07 10:26:07 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 256258 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=256258&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/Shared/WebMediaSessionMetadata.cpp:38
&gt; &gt; +PassRefPtr&lt;WebMediaSessionMetadata&gt; WebMediaSessionMetadata::create(const MediaSessionMetadata&amp; metadata)
&gt; &gt; +{
&gt; &gt; +    return adoptRef(new WebMediaSessionMetadata(metadata));
&gt; &gt; +}
&gt; 
&gt; The return type should be Ref&lt;WebMediaSessionMetadata&gt;, not
&gt; PassRefPtr&lt;WebMediaSessionMetadata&gt;. See
&gt; http://www.webkit.org/coding/RefPtr.html.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107498</commentid>
    <comment_count>7</comment_count>
      <attachid>256308</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-07-07 11:27:42 -0700</bug_when>
    <thetext>Comment on attachment 256308
Patch

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

&gt; Source/WebKit2/UIProcess/API/APIUIClient.h:61
&gt; +#if ENABLE(MEDIA_SESSION)

no need to guard this forward-declaration (but it&apos;s fine either way)

&gt; Source/WebKit2/UIProcess/API/C/WKAPICast.h:112
&gt; +#if ENABLE(MEDIA_SESSION)

ditto

&gt; Source/WebKit2/UIProcess/API/C/WKAPICast.h:171
&gt; +WK_ADD_API_MAPPING(WKMediaSessionMetadataRef, WebMediaSessionMetadata)

Why is this mapping #if&apos;d out if WKMediaSessionMetadata has all the functions but the contents of said functions are if&apos;d out? Which way are you disabling this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107543</commentid>
    <comment_count>8</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-07 13:21:18 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 256308 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=256308&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/APIUIClient.h:61
&gt; &gt; +#if ENABLE(MEDIA_SESSION)
&gt; 
&gt; no need to guard this forward-declaration (but it&apos;s fine either way)

I think I&apos;ll leave it in.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKAPICast.h:112
&gt; &gt; +#if ENABLE(MEDIA_SESSION)
&gt; 
&gt; ditto
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKAPICast.h:171
&gt; &gt; +WK_ADD_API_MAPPING(WKMediaSessionMetadataRef, WebMediaSessionMetadata)
&gt; 
&gt; Why is this mapping #if&apos;d out if WKMediaSessionMetadata has all the
&gt; functions but the contents of said functions are if&apos;d out? Which way are you
&gt; disabling this?

The contents of the functions have to be #if&apos;d out since it doesn&apos;t seem like we can use #if ENABLE in those header files. I can remove the #if guards around the mapping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107544</commentid>
    <comment_count>9</comment_count>
      <attachid>256318</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-07 13:24:12 -0700</bug_when>
    <thetext>Created attachment 256318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107555</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-07-07 13:45:57 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; Comment on attachment 256308 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=256308&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/APIUIClient.h:61
&gt; &gt; &gt; +#if ENABLE(MEDIA_SESSION)
&gt; &gt; 
&gt; &gt; no need to guard this forward-declaration (but it&apos;s fine either way)
&gt; 
&gt; I think I&apos;ll leave it in.

That&apos;s fine! I only noted this because Darin has previously called this practice &quot;overkill&quot; (see https://bugs.webkit.org/show_bug.cgi?id=134461#c6).

&gt; &gt; Why is this mapping #if&apos;d out if WKMediaSessionMetadata has all the
&gt; &gt; functions but the contents of said functions are if&apos;d out? Which way are you
&gt; &gt; disabling this?
&gt; 
&gt; The contents of the functions have to be #if&apos;d out since it doesn&apos;t seem
&gt; like we can use #if ENABLE in those header files. I can remove the #if
&gt; guards around the mapping.

That&apos;s what I was hoping you&apos;d do :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107556</commentid>
    <comment_count>11</comment_count>
      <attachid>256318</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-07-07 13:49:56 -0700</bug_when>
    <thetext>Comment on attachment 256318
Patch

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

&gt; Source/WebKit2/UIProcess/API/C/WKMediaSessionMetadata.cpp:49
&gt; +    return 0;

These should be nullptr, not 0, I think?

&gt; Source/WebKit2/UIProcess/API/C/WKPageUIClient.h:456
&gt; +    WKPageMediaSessionMetadataDidChangeCallback                         mediaSessionMetadataDidChange;

Please make sure that it&apos;s OK to add this without bumping the version number and that you do everything necessary to not break internal builds because of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107562</commentid>
    <comment_count>12</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-07 14:13:30 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Comment on attachment 256318 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=256318&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKMediaSessionMetadata.cpp:49
&gt; &gt; +    return 0;
&gt; 
&gt; These should be nullptr, not 0, I think?

Fixed. Not sure why we were using 0 in other WK* sources.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/WKPageUIClient.h:456
&gt; &gt; +    WKPageMediaSessionMetadataDidChangeCallback                         mediaSessionMetadataDidChange;
&gt; 
&gt; Please make sure that it&apos;s OK to add this without bumping the version number
&gt; and that you do everything necessary to not break internal builds because of
&gt; it.

I&apos;ll watch the bots. Looks like Brady added a few callbacks last month and things were okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1107616</commentid>
    <comment_count>13</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-07-07 16:55:05 -0700</bug_when>
    <thetext>Committed r186484: &lt;http://trac.webkit.org/changeset/186484&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256255</attachid>
            <date>2015-07-06 16:46:34 -0700</date>
            <delta_ts>2015-07-06 16:50:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146660-20150706164537.patch</filename>
            <type>text/plain</type>
            <size>29640</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODJjOTVlNzE0MjM5ZDY4
N2RlZjVjMzI4YTcwNTU5ZWYxMTI1MWZkNy4uZTVlNzhjYjM3NmE3YzA1ZDFlOGU5NWU1OTA3NTJm
NTJjYzQxMDk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE1LTA3LTA2ICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYSBTZXNzaW9uOiBwcm9w
YWdhdGUgbWV0YWRhdGEgY2hhbmdlcyB0byBVSSBjbGllbnRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY2NjAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGRlZCBXZWJN
ZWRpYVNlc3Npb25NZXRhZGF0YSBhbmQgV0tNZWRpYVNlc3Npb25NZXRhZGF0YS4KKyAgICAgICAg
KiBTaGFyZWQvQVBJL0FQSU9iamVjdC5oOiBBZGRlZCBhIG1lZGlhIHNlc3Npb24gbWV0YWRhdGEg
dHlwZS4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICogU2hhcmVk
L1dlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmNwcDogQWRkZWQgQVBJIGFkYXB0ZXIgZm9yIFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbk1ldGFkYXRhLgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVNlc3Np
b25NZXRhZGF0YTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTZXNzaW9uTWV0
YWRhdGE6OldlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVk
aWFTZXNzaW9uTWV0YWRhdGE6On5XZWJNZWRpYVNlc3Npb25NZXRhZGF0YSk6CisgICAgICAgICog
U2hhcmVkL1dlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmg6IEFkZGVkIEFQSSBhZGFwdGVyIGZvciBX
ZWJDb3JlOjpNZWRpYVNlc3Npb25NZXRhZGF0YS4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFT
ZXNzaW9uTWV0YWRhdGE6OnRpdGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTZXNzaW9u
TWV0YWRhdGE6OmFydGlzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU2Vzc2lvbk1ldGFk
YXRhOjphbGJ1bSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOiBBZGRl
ZCAnbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UnIGludGVyZmFjZS4KKyAgICAgICAgKEFQ
STo6VUlDbGllbnQ6Om1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
TWVkaWFTZXNzaW9uTWV0YWRhdGEuY3BwOiBBZGRlZCBDIHdyYXBwZXIgZm9yIFdlYk1lZGlhU2Vz
c2lvbk1ldGFkYXRhLgorICAgICAgICAoV0tNZWRpYVNlc3Npb25NZXRhZGF0YUdldFR5cGVJRCk6
CisgICAgICAgIChXS01lZGlhU2Vzc2lvbk1ldGFkYXRhQ29weVRpdGxlKToKKyAgICAgICAgKFdL
TWVkaWFTZXNzaW9uTWV0YWRhdGFDb3B5QXJ0aXN0KToKKyAgICAgICAgKFdLTWVkaWFTZXNzaW9u
TWV0YWRhdGFDb3B5QWxidW0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS01lZGlhU2Vz
c2lvbk1ldGFkYXRhLmg6IEFkZGVkIEMgd3JhcHBlciBmb3IgV2ViTWVkaWFTZXNzaW9uTWV0YWRh
dGEuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6IEZvcndhcmQgJ21lZGlh
U2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlJyB0byBjbGllbnQuCisgICAgICAgIChXS1BhZ2VTZXRQ
YWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5o
OiBBZGRlZCAnbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UnIGNhbGxiYWNrLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOiBGb3J3YXJkICdtZWRpYVNlc3Npb25NZXRh
ZGF0YURpZENoYW5nZScgdG8gVUkgY2xpZW50LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6Om1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhIGFu
ZCBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhLgorCiAyMDE1LTA3LTA2ICBBbnR0aSBLb2l2aXN0byAg
PGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBXaXRoIG11bHRpcGFydC9yZXBsYWNlZCAoZS5n
LiBtb3Rpb24gSlBFRyksIG1fYnVmZmVyZWREYXRhRm9yQ2FjaGUgZ3Jvd3MgdW5ib3VuZGVkIGlu
IE5ldHdvcmtpbmcgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCA1MGIxNDI5MmYyYTdj
YjUyODk4MDc5NTc0MzFlZGU3MmQyZDY2OTQwLi5hZWVmNDI3MDE5NzJjNWEyYWM4NzRkODRjMWVj
ODZhMmMwMGU3ZGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtMjUxLDYgKzI1MSw3IEBAIHNl
dChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvV2ViSW1hZ2UuY3BwCiAgICAgU2hhcmVkL1dl
YktleWJvYXJkRXZlbnQuY3BwCiAgICAgU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcAorICAg
IFNoYXJlZC9XZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5jcHAKICAgICBTaGFyZWQvV2ViTWVtb3J5
U2FtcGxlci5jcHAKICAgICBTaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKICAgICBTaGFyZWQvV2Vi
T3BlblBhbmVsUGFyYW1ldGVycy5jcHAKQEAgLTQyNSw2ICs0MjYsNyBAQCBzZXQoV2ViS2l0Ml9T
T1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLSW5zcGVjdG9yLmNwcAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLTWVkaWFDYWNoZU1hbmFnZXIuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFTZXNz
aW9uTWV0YWRhdGEuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkFjdGlvblJl
Zi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YVJlZi5jcHAKICAgICBV
SVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uUmVmLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
QVBJT2JqZWN0LmgKaW5kZXggZWFlZmZmMjYyNTIzMDhiOTViMDU3MmNkZDJmMjdlZjAzNmYyYzBk
My4uZGFiMjA0NzJmM2Q2MDExZGVkMWExNDY1M2ZjYzA3ZGRjZWIwM2M4YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCkBAIC0xNDksNiArMTQ5LDEwIEBAIHB1YmxpYzoKICAg
ICAgICAgV2Vic2l0ZURhdGFSZWNvcmQsCiAgICAgICAgIFdlYnNpdGVEYXRhU3RvcmUsCiAKKyNp
ZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKKyAgICAgICAgTWVkaWFTZXNzaW9uTWV0YWRhdGEsCisj
ZW5kaWYKKwogICAgICAgICAvLyBCdW5kbGUgdHlwZXMKICAgICAgICAgQnVuZGxlLAogICAgICAg
ICBCdW5kbGVCYWNrRm9yd2FyZExpc3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgK
aW5kZXggNTkyNDlmZTEzYjcwZWRlYTZmNjM2NzU2MzJjODgxNzNlOGQzMzMxOS4uMTZiODAwNDM3
NWVkY2I1ZmIyMDFiYjk1NWJiNmQ4Y2IyYzc4MmFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9XS0Jhc2UuaApAQCAtMTEyLDYgKzExMiw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLSWNvbkRhdGFiYXNlKiBXS0ljb25EYXRhYmFzZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLSW5zcGVjdG9yKiBXS0luc3BlY3RvclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlciogV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tNZWRpYUNhY2hlTWFuYWdlciogV0tN
ZWRpYUNhY2hlTWFuYWdlclJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTWVkaWFT
ZXNzaW9uTWV0YWRhdGEqIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGFSZWY7CiB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRpb25BY3Rpb24qIFdLTmF2aWdhdGlvbkFjdGlvblJlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmF2aWdhdGlvbkRhdGEqIFdLTmF2aWdhdGlv
bkRhdGFSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRpb24qIFdLTmF2
aWdhdGlvblJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZWRpYVNl
c3Npb25NZXRhZGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVkaWFTZXNzaW9u
TWV0YWRhdGEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkNDBkMDBmZTc1YmJjYWQ1Y2MyZjdiZmU4NTdjYTFm
NDBlMGI5ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVk
aWFTZXNzaW9uTWV0YWRhdGEuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCIKKwor
I2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8V2ViTWVkaWFTZXNzaW9uTWV0YWRhdGE+
IFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhOjpjcmVhdGUoY29uc3QgTWVkaWFTZXNzaW9uTWV0YWRh
dGEmIG1ldGFkYXRhKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViTWVkaWFTZXNzaW9u
TWV0YWRhdGEobWV0YWRhdGEpKTsKK30KKworV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGE6OldlYk1l
ZGlhU2Vzc2lvbk1ldGFkYXRhKGNvbnN0IE1lZGlhU2Vzc2lvbk1ldGFkYXRhJiBtZXRhZGF0YSkK
KyAgICA6IG1fbWV0YWRhdGEobWV0YWRhdGEpCit7Cit9CisKK1dlYk1lZGlhU2Vzc2lvbk1ldGFk
YXRhOjp+V2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jODMyZmYy
ZWJlNzNlYjQ4ZjUyNmQxN2Q0OTIwZDQwMmE4YWY0OWIwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmgKQEAgLTAsMCArMSw1
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGFfaAorI2Rl
ZmluZSBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YV9oCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
TikKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZXNz
aW9uTWV0YWRhdGEuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhIDogcHVibGljIEFQ
STo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6TWVkaWFTZXNzaW9uTWV0YWRhdGE+IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJNZWRpYVNlc3Npb25NZXRhZGF0YT4g
Y3JlYXRlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1ldGFkYXRhJik7CisgICAgfldlYk1l
ZGlhU2Vzc2lvbk1ldGFkYXRhKCk7CisKKyAgICBTdHJpbmcgdGl0bGUoKSBjb25zdCB7IHJldHVy
biBtX3NldHRpbmdzLnRpdGxlKCk7IH0KKyAgICBTdHJpbmcgYXJ0aXN0KCkgY29uc3QgeyByZXR1
cm4gbV9zZXR0aW5ncy5hcnRpc3QoKTsgfQorICAgIFN0cmluZyBhbGJ1bSgpIGNvbnN0IHsgcmV0
dXJuIG1fc2V0dGluZ3MuYWxidW0oKTsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYk1l
ZGlhU2Vzc2lvbk1ldGFkYXRhKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1ldGFkYXRhJik7
CisKKyAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25NZXRhZGF0YSBtX21ldGFkYXRhOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTikK
KworI2VuZGlmIC8vIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCA2NTBlNjI2YTMxMjY1N2I1ZGIzZDQ0ZjU1
MGEzMGRkNzQ0MTdjZTg1Li5jMjEzNDBhODBiNjJiZGZiYTBkZjIzZTk0MDEyMDk4MjBiODc4YmFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC01Nyw2
ICs1NywxMCBAQCBjbGFzcyBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5OwogY2xhc3Mg
V2ViUGFnZVByb3h5Owogc3RydWN0IE5hdmlnYXRpb25BY3Rpb25EYXRhOwogc3RydWN0IFNlY3Vy
aXR5T3JpZ2luRGF0YTsKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQorY2xhc3MgV2ViTWVk
aWFTZXNzaW9uTWV0YWRhdGE7CisjZW5kaWYKIH0KIAogbmFtZXNwYWNlIEFQSSB7CkBAIC0xNTAs
NiArMTU0LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdBdWRpb0Rp
ZENoYW5nZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogCisjaWYgRU5BQkxFKE1FRElBX1NF
U1NJT04pCisgICAgdmlydHVhbCB2b2lkIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKFdl
YktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJNZWRpYVNlc3Npb25NZXRhZGF0YSopIHsg
fQorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCBSZXRhaW5QdHI8TlNB
cnJheT4gYWN0aW9uc0ZvckVsZW1lbnQoX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKiwgUmV0YWlu
UHRyPE5TQXJyYXk+IGRlZmF1bHRBY3Rpb25zKSB7IHJldHVybiBXVEY6Om1vdmUoZGVmYXVsdEFj
dGlvbnMpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEhhbmRsZVRhcEFzQ2xpY2soY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0FQSUNhc3QuaAppbmRleCA5ZGMxNTZjOTE1MzllYWUxZTZlZjNhYjUxNjNhNjEwMmE1MTExMzAx
Li40Njk4MzdhMTkxZmFhMDlmZGU4NjE2NWEzYmMxMDM5OTc4M2VlMTY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC0xMDksNiArMTA5LDEwIEBAIGNs
YXNzIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OwogY2xhc3MgV2ViVmlicmF0aW9uUHJv
eHk7CiBjbGFzcyBXZWJWaWV3cG9ydEF0dHJpYnV0ZXM7CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VT
U0lPTikKK2NsYXNzIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhOworI2VuZGlmCisKIFdLX0FERF9B
UElfTUFQUElORyhXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUmVmLCBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZVByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQXV0aGVudGljYXRpb25EZWNpc2lv
bkxpc3RlbmVyUmVmLCBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVt
KQpAQCAtMTYzLDYgKzE2NywxMCBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tWaWJyYXRpb25SZWYs
IFdlYlZpYnJhdGlvblByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVmlld3BvcnRBdHRyaWJ1
dGVzUmVmLCBXZWJWaWV3cG9ydEF0dHJpYnV0ZXMpCiBXS19BRERfQVBJX01BUFBJTkcoV0tXZWJz
aXRlRGF0YVN0b3JlUmVmLCBBUEk6OldlYnNpdGVEYXRhU3RvcmUpCiAKKyNpZiBFTkFCTEUoTUVE
SUFfU0VTU0lPTikKK1dLX0FERF9BUElfTUFQUElORyhXS01lZGlhU2Vzc2lvbk1ldGFkYXRhUmVm
LCBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YSkKKyNlbmRpZgorCiAvKiBFbnVtIGNvbnZlcnNpb25z
ICovCiAKIGlubGluZSBCdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBlIHRvQnVuZGxlSGl0VGVz
dFJlc3VsdE1lZGlhVHlwZShXS0J1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUgd2tNZWRpYVR5
cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYVNl
c3Npb25NZXRhZGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tNZWRp
YVNlc3Npb25NZXRhZGF0YS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM4MDE1ZDgzMmNkNjhiZDdiNmRlMGJm
YWRmODk0ZWU1YTRlY2NiMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS01lZGlhU2Vzc2lvbk1ldGFkYXRhLmNwcApAQCAtMCwwICsxLDcxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLTWVkaWFTZXNzaW9u
TWV0YWRhdGEuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYk1lZGlh
U2Vzc2lvbk1ldGFkYXRhLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlE
IFdLTWVkaWFTZXNzaW9uTWV0YWRhdGFHZXRUeXBlSUQoKQoreworI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OKQorICAgIHJldHVybiB0b0FQSShXZWJNZWRpYVNlc3Npb25NZXRhZGF0YTo6QVBJVHlw
ZSk7CisjZWxzZQorICAgIHJldHVybiB0b0FQSShBUEk6Ok9iamVjdDo6VHlwZTo6TnVsbCk7Cisj
ZW5kaWYKK30KKworV0tTdHJpbmdSZWYgV0tNZWRpYVNlc3Npb25NZXRhZGF0YUNvcHlUaXRsZShX
S01lZGlhU2Vzc2lvbk1ldGFkYXRhUmVmIG1ldGFkYXRhKQoreworI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OKQorICAgIHJldHVybiB0b0NvcGllZEFQSSh0b0ltcGwobWV0YWRhdGEpLT50aXRsZSgp
KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG1ldGFkYXRhKTsKKyAgICByZXR1cm4gMDsKKyNl
bmRpZgorfQorCitXS1N0cmluZ1JlZiBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhQ29weUFydGlzdChX
S01lZGlhU2Vzc2lvbk1ldGFkYXRhUmVmIG1ldGFkYXRhKQoreworI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OKQorICAgIHJldHVybiB0b0NvcGllZEFQSSh0b0ltcGwobWV0YWRhdGEpLT5hcnRpc3Qo
KSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShtZXRhZGF0YSk7CisgICAgcmV0dXJuIDA7Cisj
ZW5kaWYKK30KKworV0tTdHJpbmdSZWYgV0tNZWRpYVNlc3Npb25NZXRhZGF0YUNvcHlBbGJ1bShX
S01lZGlhU2Vzc2lvbk1ldGFkYXRhUmVmIG1ldGFkYXRhKQoreworI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OKQorICAgIHJldHVybiB0b0NvcGllZEFQSSh0b0ltcGwobWV0YWRhdGEpLT5hbGJ1bSgp
KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG1ldGFkYXRhKTsKKyAgICByZXR1cm4gMDsKKyNl
bmRpZgorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTWVk
aWFTZXNzaW9uTWV0YWRhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS01l
ZGlhU2Vzc2lvbk1ldGFkYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQwNGM4OTliMWUxODc2N2Y4NTRjNTky
MmY4ZTM3YjgyYmMzY2U1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS01lZGlhU2Vzc2lvbk1ldGFkYXRhLmgKQEAgLTAsMCArMSw0OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgV0tNZWRpYVNlc3Npb25NZXRhZGF0YV9oCisjZGVmaW5lIFdLTWVk
aWFTZXNzaW9uTWV0YWRhdGFfaAorCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorCisjaWZu
ZGVmIF9fY3BsdXNwbHVzCisjaW5jbHVkZSA8c3RkYm9vbC5oPgorI2VuZGlmCisKKyNpZmRlZiBf
X2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdL
TWVkaWFTZXNzaW9uTWV0YWRhdGFHZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIFdLU3RyaW5nUmVm
IFdLTWVkaWFTZXNzaW9uTWV0YWRhdGFDb3B5VGl0bGUoV0tNZWRpYVNlc3Npb25NZXRhZGF0YVJl
ZiBtZXRhZGF0YSk7CitXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tNZWRpYVNlc3Npb25NZXRhZGF0
YUNvcHlBcnRpc3QoV0tNZWRpYVNlc3Npb25NZXRhZGF0YVJlZiBtZXRhZGF0YSk7CitXS19FWFBP
UlQgV0tTdHJpbmdSZWYgV0tNZWRpYVNlc3Npb25NZXRhZGF0YUNvcHlBbGJ1bShXS01lZGlhU2Vz
c2lvbk1ldGFkYXRhUmVmIG1ldGFkYXRhKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5k
aWYKKworI2VuZGlmIC8qIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGFfaCAqLwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCAzZTk3NjJjYWE3OTZiNzRiODJhZjli
MDU5YzhlOWJkMzExZDU3MjFiLi4zODQ3MTYyMDA2MjI0MGMyYmNlOGE2NDkxODI0ZDFkNDlkYWQ4
MjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtODAs
NiArODAsNyBAQAogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKKyNpbmNsdWRl
ICJXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFFdmVu
dFR5cGVzLmg+CiAjZW5kaWYKIApAQCAtMTgwMCw2ICsxODAxLDE2IEBAIHZvaWQgV0tQYWdlU2V0
UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VVSUNsaWVudEJhc2Uq
IHdrQ2xpZW50CiAKICAgICAgICAgICAgIG1fY2xpZW50LmRpZENsaWNrQXV0b0ZpbGxCdXR0b24o
dG9BUEkoJnBhZ2UpLCB0b0FQSSh1c2VySW5mbyksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7
CiAgICAgICAgIH0KKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQorICAgICAgICB2aXJ0dWFs
IHZvaWQgbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UoV2ViUGFnZVByb3h5JiBwYWdlLCBX
ZWJNZWRpYVNlc3Npb25NZXRhZGF0YSogbWV0YWRhdGEpIG92ZXJyaWRlCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmICghbV9jbGllbnQubWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBtX2NsaWVudC5tZWRpYVNlc3Np
b25NZXRhZGF0YURpZENoYW5nZSh0b0FQSSgmcGFnZSksIHRvQVBJKG1ldGFkYXRhKSwgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfTsKIAogICAgIHRv
SW1wbChwYWdlUmVmKS0+c2V0VUlDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxVSUNsaWVudD4od2tD
bGllbnQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xp
ZW50LmgKaW5kZXggN2MyYmQwYmZjN2U1ZTBmNGM4MGFhYzM5YTc0OWJmOWQ4NTRiZDdlNy4uMzZm
OTZhZjg4ZTJiYTdmMzIwZTg2MDdmZTM0OTJiOWQ5MWY5ZjU2NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKQEAgLTkxLDYgKzkxLDcgQEAg
dHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQ
cmVzc0NhbGxiYWNrKShXS1BhZ2VSZWYKIHR5cGVkZWYgdm9pZCAoKldLUGFnZUlzUGxheWluZ0F1
ZGlvRGlkQ2hhbmdlQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBX
S1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJl
ZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZv
aWQgKCpXS1BhZ2VEaWRDbGlja0F1dG9GaWxsQnV0dG9uQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdl
LCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2
b2lkICgqV0tQYWdlTWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2VDYWxsYmFjaykoV0tQYWdl
UmVmIHBhZ2UsIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGFSZWYgbWV0YWRhdGEsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pOwogCiAvLyBEZXByZWNhdGVkCiB0eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFn
ZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYg
cGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVy
cywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KTsKQEAgLTQ1Miw2ICs0NTMsNyBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFY1IHsK
ICAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydDsKICAgICBXS1BhZ2VSdW5KYXZhU2Ny
aXB0Q29uZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkph
dmFTY3JpcHRDb25maXJtOwogICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdFByb21wdDsKKyAg
ICBXS1BhZ2VNZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlOwogfSBXS1BhZ2VVSUNs
aWVudFY1OwogCiBlbnVtIHsga1dLUGFnZVVJQ2xpZW50Q3VycmVudFZlcnNpb24gV0tfRU5VTV9E
RVBSRUNBVEVEKCJVc2UgYW4gZXhwbGljaXQgdmVyc2lvbiBudW1iZXIgaW5zdGVhZCIpID0gMiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3OWQyM2Uw
NTg0ZjI5NDAzNDkwYjY3ZTAwOTFiMGVhZDM3ZmEzNWFmLi44MThmMzBiMWQ4NDFmODQzZjBkYTYy
NDVjYWUxMmVmMmU4MjkzYTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtMTU5LDYgKzE1OSwxMSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvV2ViTWVkaWFT
ZXNzaW9uTWFuYWdlci5oPgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKKyNp
bmNsdWRlICJXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVk
aWFTZXNzaW9uTWV0YWRhdGEuaD4KKyNlbmRpZgorCiAvLyBUaGlzIGNvbnRyb2xzIHdoYXQgc3Ry
YXRlZ3kgd2UgdXNlIGZvciBtb3VzZSB3aGVlbCBjb2FsZXNjaW5nLgogI2RlZmluZSBNRVJHRV9X
SEVFTF9FVkVOVFMgMQogCkBAIC01ODA2LDYgKzU4MTEsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0
YXRlKQogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogdm9pZCBXZWJQYWdlUHJveHk6Om1lZGlh
U2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1ldGFk
YXRhJiBtZXRhZGF0YSkKIHsKKyAgICBSZWZQdHI8V2ViTWVkaWFTZXNzaW9uTWV0YWRhdGE+IHdl
Yk1ldGFkYXRhID0gV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGE6OmNyZWF0ZShtZXRhZGF0YSk7Cisg
ICAgbV91aUNsaWVudC0+bWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UoKnRoaXMsIHdlYk1l
dGFkYXRhLmdldCgpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjZiMzRmODgwNjk4YzcwZWZiZGY5ZDMw
ODQwMjdkMmRhZTA0NDQ4MC4uMjJjN2I2ZGRkZDA3MTJmMWExZjQ4M2UzMmUyZDNhNjk0YTE5NzU5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTY1OSw2ICsxNjU5LDEwIEBACiAJCUM1RTFBRkVGMTZCMjEwMjkwMDZDQzFGMiAv
KiBBUElXZWJBcmNoaXZlUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDMzI5RDlGMTZBQ0Q0NzgwMDMxNkRFMiAvKiBBUElXZWJBcmNoaXZl
UmVzb3VyY2UuaCAqLzsgfTsKIAkJQzVGQTFFRDMxOEUxMDYyMjAwQjNGNDAyIC8qIFdLQWlyUGxh
eVJvdXRlUGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDNUZBMUVEMTE4RTEwNjIyMDBCM0Y0MDIgLyogV0tBaXJQbGF5Um91dGVQaWNrZXIuaCAq
LzsgfTsKIAkJQzVGQTFFRDQxOEUxMDYyMjAwQjNGNDAyIC8qIFdLQWlyUGxheVJvdXRlUGlja2Vy
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzVGQTFF
RDIxOEUxMDYyMjAwQjNGNDAyIC8qIFdLQWlyUGxheVJvdXRlUGlja2VyLm1tICovOyB9OworCQlD
OUNENDM5NzFCNEIwMDE5MDAyMzlFMzMgLyogV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzlDRDQzOTMxQjRC
MDAwRTAwMjM5RTMzIC8qIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmNwcCAqLzsgfTsKKwkJQzlD
RDQzOTgxQjRCMDAxRDAwMjM5RTMzIC8qIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOUNENDM5NDFCNEIwMDBF
MDAyMzlFMzMgLyogV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCAqLzsgfTsKKwkJQzlDRDQzOUQx
QjRCMDI0RjAwMjM5RTMzIC8qIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM5Q0Q0MzlBMUI0QjAyNDIwMDIzOUUz
MyAvKiBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQzlDRDQzOUUxQjRCMDI1MzAwMjM5RTMzIC8qIFdLTWVk
aWFTZXNzaW9uTWV0YWRhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzlDRDQzOTkxQjRCMDI0MjAwMjM5RTMzIC8qIFdLTWVkaWFTZXNzaW9uTWV0
YWRhdGEuY3BwICovOyB9OwogCQlDRDAwM0E1MjE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFL
ZXlTdG9yYWdlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDAwM0E1MDE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdl
TWFuYWdlci5jcHAgKi87IH07CiAJCUNEMDAzQTUzMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRp
YUtleVN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDAwM0E1MTE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdl
TWFuYWdlci5oICovOyB9OwogCQlDRDE5QTI2RDFBMTNFODJBMDA4RDY1MEUgLyogV2ViRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0QxOUEyNjkxQTEzRTgyMDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LmNwcCAqLzsgfTsKQEAgLTM4NzksNiArMzg4MywxMCBAQAogCQlDNTlDNEE1NzE4
QjgxMTc0MDA3QkRDQjYgLyogQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzVGQTFFRDExOEUxMDYyMjAwQjNGNDAyIC8qIFdLQWlyUGxh
eVJvdXRlUGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLQWlyUGxh
eVJvdXRlUGlja2VyLmg7IHBhdGggPSBpb3MvZm9ybXMvV0tBaXJQbGF5Um91dGVQaWNrZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzVGQTFFRDIxOEUxMDYyMjAwQjNGNDAyIC8q
IFdLQWlyUGxheVJvdXRlUGlja2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gV0tBaXJQbGF5Um91dGVQaWNrZXIubW07IHBhdGggPSBpb3MvZm9ybXMvV0tBaXJQ
bGF5Um91dGVQaWNrZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM5Q0Q0Mzkz
MUI0QjAwMEUwMDIzOUUzMyAvKiBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM5Q0Q0Mzk0MUI0QjAwMEUwMDIzOUUzMyAv
KiBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDOUNENDM5OTFCNEIwMjQyMDAyMzlFMzMgLyogV0tNZWRpYVNlc3Npb25NZXRhZGF0YS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS01lZGlhU2Vzc2lvbk1l
dGFkYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzlDRDQzOUExQjRCMDI0
MjAwMjM5RTMzIC8qIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tNZWRpYVNlc3Npb25NZXRhZGF0YS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDAwM0E1MDE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9y
YWdlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJN
ZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcDsgcGF0aCA9IE1lZGlhQ2FjaGUvV2ViTWVkaWFLZXlT
dG9yYWdlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMDAzQTUx
MTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaDsgcGF0
aCA9IE1lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDE5QTI2OTFBMTNFODIwMDA4RDY1MEUgLyogV2ViRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNDc2Myw2ICs0NzcxLDggQEAKIAkJCQlDMDMzN0REMjEyN0EyQTBFMDA4RkY0RjQgLyog
V2ViS2V5Ym9hcmRFdmVudC5jcHAgKi8sCiAJCQkJQkM5QkE1MDIxNjk3QzQ1MzAwRTQ0NjE2IC8q
IFdlYktpdDJJbml0aWFsaXplLmNwcCAqLywKIAkJCQlCQzlCQTUwMzE2OTdDNDUzMDBFNDQ2MTYg
LyogV2ViS2l0MkluaXRpYWxpemUuaCAqLywKKwkJCQlDOUNENDM5MzFCNEIwMDBFMDAyMzlFMzMg
LyogV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuY3BwICovLAorCQkJCUM5Q0Q0Mzk0MUI0QjAwMEUw
MDIzOUUzMyAvKiBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oICovLAogCQkJCTkwNTYyMEU4MTJC
QzI0OEIwMDA3OTlCNiAvKiBXZWJNZW1vcnlTYW1wbGVyLmNwcCAqLywKIAkJCQk5MDU2MjBFOTEy
QkMyNDhCMDAwNzk5QjYgLyogV2ViTWVtb3J5U2FtcGxlci5oICovLAogCQkJCUMwMzM3REFGMTI3
QTI4RDAwMDhGRjRGNCAvKiBXZWJNb3VzZUV2ZW50LmNwcCAqLywKQEAgLTYzMDIsNiArNjMxMiw4
IEBACiAJCQkJMkQ3OTBBOUUxQUQ3MTY0OTAwQUI5MEIzIC8qIFdLTGF5b3V0TW9kZS5oICovLAog
CQkJCTMzRDNBM0IzMTMzOTYwMEIwMDcwOUJFNCAvKiBXS01lZGlhQ2FjaGVNYW5hZ2VyLmNwcCAq
LywKIAkJCQkzM0QzQTNCNDEzMzk2MDBCMDA3MDlCRTQgLyogV0tNZWRpYUNhY2hlTWFuYWdlci5o
ICovLAorCQkJCUM5Q0Q0Mzk5MUI0QjAyNDIwMDIzOUUzMyAvKiBXS01lZGlhU2Vzc2lvbk1ldGFk
YXRhLmNwcCAqLywKKwkJCQlDOUNENDM5QTFCNEIwMjQyMDAyMzlFMzMgLyogV0tNZWRpYVNlc3Np
b25NZXRhZGF0YS5oICovLAogCQkJCUMwOUFFNUU4MTI1MjU3QzIwMDI1ODI1RCAvKiBXS05hdGl2
ZUV2ZW50LmggKi8sCiAJCQkJMkQzQTY1RDgxQTdDM0ExRjAwQ0FDNjM3IC8qIFdLTmF2aWdhdGlv
bkFjdGlvblJlZi5jcHAgKi8sCiAJCQkJMkQzQTY1RDkxQTdDM0ExRjAwQ0FDNjM3IC8qIFdLTmF2
aWdhdGlvbkFjdGlvblJlZi5oICovLApAQCAtNzk2Nyw2ICs3OTc5LDcgQEAKIAkJCQkzM0QzQTNC
QjEzMzk2MDYyMDA3MDlCRTQgLyogV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzNEM0EzQ0IxMzM5NjE3OTAwNzA5QkU0IC8qIFdlYk1lZGlhQ2FjaGVNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QwMDNBNTMxOUQ0OUI1RDAw
NUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUM5Q0Q0Mzk4MUI0QjAwMUQwMDIzOUUzMyAvKiBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMkQzRUY0NDMxOTE3NjQ2MzAwMDM0MTg0IC8qIFdlYk1lbW9yeVBy
ZXNzdXJlSGFuZGxlcklPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTA5ODU0RUQxMkJDNEUxODAw
MEFEMDgwIC8qIFdlYk1lbW9yeVNhbXBsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRjY5RjlB
MTE3NkNFRDYwMDQ3MUE1MiAvKiBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmggaW4gSGVhZGVycyAq
LywKQEAgLTgxODQsNiArODE5Nyw3IEBACiAJCQkJNTFBOUUxMEIxMzE1Q0QxODAwOUU3MDMxIC8q
IFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ3OTBBOUYx
QUQ3MTY0OTAwQUI5MEIzIC8qIFdLTGF5b3V0TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzNE
M0EzQjYxMzM5NjAwQjAwNzA5QkU0IC8qIFdLTWVkaWFDYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUM5Q0Q0MzlEMUI0QjAyNEYwMDIzOUUzMyAvKiBXS01lZGlhU2Vzc2lvbk1ldGFk
YXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzVGRTEyNEZGMDI3MDA2OEYyMEEgLyogV0tN
dXRhYmxlQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjAwMTI0RkYwMjcwMDY4RjIw
QSAvKiBXS011dGFibGVEaWN0aW9uYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDMDlBRTVFOTEy
NTI1N0MyMDAyNTgyNUQgLyogV0tOYXRpdmVFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC05Nzgy
LDYgKzk3OTYsNyBAQAogCQkJCTMzRDNBM0JBMTMzOTYwNjIwMDcwOUJFNCAvKiBXZWJNZWRpYUNh
Y2hlTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzRDNBM0NBMTMzOTYxNzkw
MDcwOUJFNCAvKiBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUNEMDAzQTUyMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtl
eVN0b3JhZ2VNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUM5Q0Q0Mzk3MUI0QjAwMTkw
MDIzOUUzMyAvKiBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyRDNFRjQ0MjE5MTc2NDYzMDAwMzQxODQgLyogV2ViTWVtb3J5UHJlc3N1cmVIYW5kbGVySU9T
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTA5ODU0RUMxMkJDNEUxNzAwMEFEMDgwIC8qIFdlYk1l
bW9yeVNhbXBsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTA5ODU0RUUxMkJDNEUxODAwMEFE
MDgwIC8qIFdlYk1lbW9yeVNhbXBsZXIubWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC05OTY4LDYg
Kzk5ODMsNyBAQAogCQkJCUE1NDI5M0E1MTk1QTQzREQwMDI3ODJDNyAvKiBXS0luc3BlY3Rvck5v
ZGVTZWFyY2hHZXN0dXJlUmVjb2duaXplci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlFMTBB
MTMxNUNEMTgwMDlFNzAzMSAvKiBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMzNEM0EzQjUxMzM5NjAwQjAwNzA5QkU0IC8qIFdLTWVkaWFDYWNoZU1hbmFn
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzlDRDQzOUUxQjRCMDI1MzAwMjM5RTMzIC8qIFdL
TWVkaWFTZXNzaW9uTWV0YWRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc1RkQxMjRG
RjAyNzAwNjhGMjBBIC8qIFdLTXV0YWJsZUFycmF5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
NDA3NUZGMTI0RkYwMjcwMDY4RjIwQSAvKiBXS011dGFibGVEaWN0aW9uYXJ5LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBNUIxQzUwMTg5ODYwNkYwMDRGQ0Y5QiAvKiBXS05hdmlnYXRpb24ubW0g
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCA4NWQyNjRmNjNjZjQ1YjhmNzE1M2U2NmVlNDA5NWU0MjNjZWMwNzMyLi5lY2Jk
ZGU0NzU0Yzg3ZTZmZTAzN2M1NzdmNjYzNTM2Y2MzM2I2YmY2IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTUtMDct
MDYgIE1hdHQgUmFqY2EgIDxtcmFqY2FAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhIFNlc3Np
b246IHByb3BhZ2F0ZSBtZXRhZGF0YSBjaGFuZ2VzIHRvIFVJIGNsaWVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjY2MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHA6IEJ1aWxkIGZpeGVzIGZvciB1cGRhdGVkIFBhZ2VVSUNsaWVudC4K
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZSk6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMpOgorCiAyMDE1
LTA3LTA2ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMTcwNjM5LgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcAppbmRleCA1N2NkN2U3YWNhZjQ2ZTI4MWMyOTY3NzhlZmMzYWRkODliMjRl
ZGQ0Li5kMzllMGUwN2UwNGU0ZWRhNzg5OWZiYjQ3ZDY3YzRjMzczZTM0MjgxIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMjYzLDYgKzI2Myw3IEBAIFdL
UGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdl
LCBXS1VSTFJlcXVlc3RSZWYsIFdLCiAgICAgICAgIDAsIC8vIHJ1bkphdmFTY3JpcHRBbGVydAog
ICAgICAgICAwLCAvLyBydW5KYXZhU2NyaXB0Q29uZmlybQogICAgICAgICAwLCAvLyBydW5KYXZh
U2NyaXB0UHJvbXB0CisgICAgICAgIDAsIC8vIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdl
CiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobmV3UGFnZSwgJm90aGVyUGFnZVVJ
Q2xpZW50LmJhc2UpOwogICAgIApAQCAtNTExLDYgKzUxMiw3IEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhXS0RpY3Rpb25hcnlSZWYgb3B0aW9ucykKICAg
ICAgICAgMCwgLy8gcnVuSmF2YVNjcmlwdEFsZXJ0CiAgICAgICAgIDAsIC8vIHJ1bkphdmFTY3Jp
cHRDb25maXJtCiAgICAgICAgIDAsIC8vIHJ1bkphdmFTY3JpcHRQcm9tcHQKKyAgICAgICAgMCwg
Ly8gbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UKICAgICB9OwogICAgIFdLUGFnZVNldFBh
Z2VVSUNsaWVudChtX21haW5XZWJWaWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQuYmFzZSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256258</attachid>
            <date>2015-07-06 16:50:56 -0700</date>
            <delta_ts>2015-07-07 10:25:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146660-20150706164959.patch</filename>
            <type>text/plain</type>
            <size>29640</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODJjOTVlNzE0MjM5ZDY4
N2RlZjVjMzI4YTcwNTU5ZWYxMTI1MWZkNy4uZTVlNzhjYjM3NmE3YzA1ZDFlOGU5NWU1OTA3NTJm
NTJjYzQxMDk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE1LTA3LTA2ICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYSBTZXNzaW9uOiBwcm9w
YWdhdGUgbWV0YWRhdGEgY2hhbmdlcyB0byBVSSBjbGllbnRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY2NjAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGRlZCBXZWJN
ZWRpYVNlc3Npb25NZXRhZGF0YSBhbmQgV0tNZWRpYVNlc3Npb25NZXRhZGF0YS4KKyAgICAgICAg
KiBTaGFyZWQvQVBJL0FQSU9iamVjdC5oOiBBZGRlZCBhIG1lZGlhIHNlc3Npb24gbWV0YWRhdGEg
dHlwZS4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICogU2hhcmVk
L1dlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmNwcDogQWRkZWQgQVBJIGFkYXB0ZXIgZm9yIFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbk1ldGFkYXRhLgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVNlc3Np
b25NZXRhZGF0YTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTZXNzaW9uTWV0
YWRhdGE6OldlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVk
aWFTZXNzaW9uTWV0YWRhdGE6On5XZWJNZWRpYVNlc3Npb25NZXRhZGF0YSk6CisgICAgICAgICog
U2hhcmVkL1dlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmg6IEFkZGVkIEFQSSBhZGFwdGVyIGZvciBX
ZWJDb3JlOjpNZWRpYVNlc3Npb25NZXRhZGF0YS4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFT
ZXNzaW9uTWV0YWRhdGE6OnRpdGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTZXNzaW9u
TWV0YWRhdGE6OmFydGlzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU2Vzc2lvbk1ldGFk
YXRhOjphbGJ1bSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOiBBZGRl
ZCAnbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UnIGludGVyZmFjZS4KKyAgICAgICAgKEFQ
STo6VUlDbGllbnQ6Om1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
TWVkaWFTZXNzaW9uTWV0YWRhdGEuY3BwOiBBZGRlZCBDIHdyYXBwZXIgZm9yIFdlYk1lZGlhU2Vz
c2lvbk1ldGFkYXRhLgorICAgICAgICAoV0tNZWRpYVNlc3Npb25NZXRhZGF0YUdldFR5cGVJRCk6
CisgICAgICAgIChXS01lZGlhU2Vzc2lvbk1ldGFkYXRhQ29weVRpdGxlKToKKyAgICAgICAgKFdL
TWVkaWFTZXNzaW9uTWV0YWRhdGFDb3B5QXJ0aXN0KToKKyAgICAgICAgKFdLTWVkaWFTZXNzaW9u
TWV0YWRhdGFDb3B5QWxidW0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS01lZGlhU2Vz
c2lvbk1ldGFkYXRhLmg6IEFkZGVkIEMgd3JhcHBlciBmb3IgV2ViTWVkaWFTZXNzaW9uTWV0YWRh
dGEuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6IEZvcndhcmQgJ21lZGlh
U2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlJyB0byBjbGllbnQuCisgICAgICAgIChXS1BhZ2VTZXRQ
YWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5o
OiBBZGRlZCAnbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UnIGNhbGxiYWNrLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOiBGb3J3YXJkICdtZWRpYVNlc3Npb25NZXRh
ZGF0YURpZENoYW5nZScgdG8gVUkgY2xpZW50LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6Om1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhIGFu
ZCBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhLgorCiAyMDE1LTA3LTA2ICBBbnR0aSBLb2l2aXN0byAg
PGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBXaXRoIG11bHRpcGFydC9yZXBsYWNlZCAoZS5n
LiBtb3Rpb24gSlBFRyksIG1fYnVmZmVyZWREYXRhRm9yQ2FjaGUgZ3Jvd3MgdW5ib3VuZGVkIGlu
IE5ldHdvcmtpbmcgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCA1MGIxNDI5MmYyYTdj
YjUyODk4MDc5NTc0MzFlZGU3MmQyZDY2OTQwLi5hZWVmNDI3MDE5NzJjNWEyYWM4NzRkODRjMWVj
ODZhMmMwMGU3ZGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtMjUxLDYgKzI1MSw3IEBAIHNl
dChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvV2ViSW1hZ2UuY3BwCiAgICAgU2hhcmVkL1dl
YktleWJvYXJkRXZlbnQuY3BwCiAgICAgU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcAorICAg
IFNoYXJlZC9XZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5jcHAKICAgICBTaGFyZWQvV2ViTWVtb3J5
U2FtcGxlci5jcHAKICAgICBTaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKICAgICBTaGFyZWQvV2Vi
T3BlblBhbmVsUGFyYW1ldGVycy5jcHAKQEAgLTQyNSw2ICs0MjYsNyBAQCBzZXQoV2ViS2l0Ml9T
T1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLSW5zcGVjdG9yLmNwcAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLTWVkaWFDYWNoZU1hbmFnZXIuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFTZXNz
aW9uTWV0YWRhdGEuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkFjdGlvblJl
Zi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YVJlZi5jcHAKICAgICBV
SVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uUmVmLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
QVBJT2JqZWN0LmgKaW5kZXggZWFlZmZmMjYyNTIzMDhiOTViMDU3MmNkZDJmMjdlZjAzNmYyYzBk
My4uZGFiMjA0NzJmM2Q2MDExZGVkMWExNDY1M2ZjYzA3ZGRjZWIwM2M4YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCkBAIC0xNDksNiArMTQ5LDEwIEBAIHB1YmxpYzoKICAg
ICAgICAgV2Vic2l0ZURhdGFSZWNvcmQsCiAgICAgICAgIFdlYnNpdGVEYXRhU3RvcmUsCiAKKyNp
ZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKKyAgICAgICAgTWVkaWFTZXNzaW9uTWV0YWRhdGEsCisj
ZW5kaWYKKwogICAgICAgICAvLyBCdW5kbGUgdHlwZXMKICAgICAgICAgQnVuZGxlLAogICAgICAg
ICBCdW5kbGVCYWNrRm9yd2FyZExpc3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgK
aW5kZXggNTkyNDlmZTEzYjcwZWRlYTZmNjM2NzU2MzJjODgxNzNlOGQzMzMxOS4uMTZiODAwNDM3
NWVkY2I1ZmIyMDFiYjk1NWJiNmQ4Y2IyYzc4MmFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9XS0Jhc2UuaApAQCAtMTEyLDYgKzExMiw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLSWNvbkRhdGFiYXNlKiBXS0ljb25EYXRhYmFzZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLSW5zcGVjdG9yKiBXS0luc3BlY3RvclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlciogV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tNZWRpYUNhY2hlTWFuYWdlciogV0tN
ZWRpYUNhY2hlTWFuYWdlclJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTWVkaWFT
ZXNzaW9uTWV0YWRhdGEqIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGFSZWY7CiB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRpb25BY3Rpb24qIFdLTmF2aWdhdGlvbkFjdGlvblJlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmF2aWdhdGlvbkRhdGEqIFdLTmF2aWdhdGlv
bkRhdGFSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRpb24qIFdLTmF2
aWdhdGlvblJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZWRpYVNl
c3Npb25NZXRhZGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVkaWFTZXNzaW9u
TWV0YWRhdGEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkNDBkMDBmZTc1YmJjYWQ1Y2MyZjdiZmU4NTdjYTFm
NDBlMGI5ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVk
aWFTZXNzaW9uTWV0YWRhdGEuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCIKKwor
I2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1Bhc3NSZWZQdHI8V2ViTWVkaWFTZXNzaW9uTWV0YWRhdGE+
IFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhOjpjcmVhdGUoY29uc3QgTWVkaWFTZXNzaW9uTWV0YWRh
dGEmIG1ldGFkYXRhKQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViTWVkaWFTZXNzaW9u
TWV0YWRhdGEobWV0YWRhdGEpKTsKK30KKworV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGE6OldlYk1l
ZGlhU2Vzc2lvbk1ldGFkYXRhKGNvbnN0IE1lZGlhU2Vzc2lvbk1ldGFkYXRhJiBtZXRhZGF0YSkK
KyAgICA6IG1fbWV0YWRhdGEobWV0YWRhdGEpCit7Cit9CisKK1dlYk1lZGlhU2Vzc2lvbk1ldGFk
YXRhOjp+V2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOGFjMDA1
MmUxNzNlMTdjOTZkNzE3YjdiNmRkOGE1MjY3YzY1ZTg2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmgKQEAgLTAsMCArMSw1
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGFfaAorI2Rl
ZmluZSBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YV9oCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
TikKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZXNz
aW9uTWV0YWRhdGEuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhIDogcHVibGljIEFQ
STo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6TWVkaWFTZXNzaW9uTWV0YWRhdGE+IHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJNZWRpYVNlc3Npb25NZXRhZGF0YT4g
Y3JlYXRlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1ldGFkYXRhJik7CisgICAgfldlYk1l
ZGlhU2Vzc2lvbk1ldGFkYXRhKCk7CisKKyAgICBTdHJpbmcgdGl0bGUoKSBjb25zdCB7IHJldHVy
biBtX21ldGFkYXRhLnRpdGxlKCk7IH0KKyAgICBTdHJpbmcgYXJ0aXN0KCkgY29uc3QgeyByZXR1
cm4gbV9tZXRhZGF0YS5hcnRpc3QoKTsgfQorICAgIFN0cmluZyBhbGJ1bSgpIGNvbnN0IHsgcmV0
dXJuIG1fbWV0YWRhdGEuYWxidW0oKTsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYk1l
ZGlhU2Vzc2lvbk1ldGFkYXRhKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1ldGFkYXRhJik7
CisKKyAgICBXZWJDb3JlOjpNZWRpYVNlc3Npb25NZXRhZGF0YSBtX21ldGFkYXRhOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU0VTU0lPTikK
KworI2VuZGlmIC8vIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCA2NTBlNjI2YTMxMjY1N2I1ZGIzZDQ0ZjU1
MGEzMGRkNzQ0MTdjZTg1Li5jMjEzNDBhODBiNjJiZGZiYTBkZjIzZTk0MDEyMDk4MjBiODc4YmFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC01Nyw2
ICs1NywxMCBAQCBjbGFzcyBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5OwogY2xhc3Mg
V2ViUGFnZVByb3h5Owogc3RydWN0IE5hdmlnYXRpb25BY3Rpb25EYXRhOwogc3RydWN0IFNlY3Vy
aXR5T3JpZ2luRGF0YTsKKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQorY2xhc3MgV2ViTWVk
aWFTZXNzaW9uTWV0YWRhdGE7CisjZW5kaWYKIH0KIAogbmFtZXNwYWNlIEFQSSB7CkBAIC0xNTAs
NiArMTU0LDEwIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdBdWRpb0Rp
ZENoYW5nZShXZWJLaXQ6OldlYlBhZ2VQcm94eSYpIHsgfQogCisjaWYgRU5BQkxFKE1FRElBX1NF
U1NJT04pCisgICAgdmlydHVhbCB2b2lkIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKFdl
YktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJNZWRpYVNlc3Npb25NZXRhZGF0YSopIHsg
fQorI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCBSZXRhaW5QdHI8TlNB
cnJheT4gYWN0aW9uc0ZvckVsZW1lbnQoX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKiwgUmV0YWlu
UHRyPE5TQXJyYXk+IGRlZmF1bHRBY3Rpb25zKSB7IHJldHVybiBXVEY6Om1vdmUoZGVmYXVsdEFj
dGlvbnMpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZE5vdEhhbmRsZVRhcEFzQ2xpY2soY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0FQSUNhc3QuaAppbmRleCA5ZGMxNTZjOTE1MzllYWUxZTZlZjNhYjUxNjNhNjEwMmE1MTExMzAx
Li40Njk4MzdhMTkxZmFhMDlmZGU4NjE2NWEzYmMxMDM5OTc4M2VlMTY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC0xMDksNiArMTA5LDEwIEBAIGNs
YXNzIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OwogY2xhc3MgV2ViVmlicmF0aW9uUHJv
eHk7CiBjbGFzcyBXZWJWaWV3cG9ydEF0dHJpYnV0ZXM7CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VT
U0lPTikKK2NsYXNzIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhOworI2VuZGlmCisKIFdLX0FERF9B
UElfTUFQUElORyhXS0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUmVmLCBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZVByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLQXV0aGVudGljYXRpb25EZWNpc2lv
bkxpc3RlbmVyUmVmLCBBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXIpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVt
KQpAQCAtMTYzLDYgKzE2NywxMCBAQCBXS19BRERfQVBJX01BUFBJTkcoV0tWaWJyYXRpb25SZWYs
IFdlYlZpYnJhdGlvblByb3h5KQogV0tfQUREX0FQSV9NQVBQSU5HKFdLVmlld3BvcnRBdHRyaWJ1
dGVzUmVmLCBXZWJWaWV3cG9ydEF0dHJpYnV0ZXMpCiBXS19BRERfQVBJX01BUFBJTkcoV0tXZWJz
aXRlRGF0YVN0b3JlUmVmLCBBUEk6OldlYnNpdGVEYXRhU3RvcmUpCiAKKyNpZiBFTkFCTEUoTUVE
SUFfU0VTU0lPTikKK1dLX0FERF9BUElfTUFQUElORyhXS01lZGlhU2Vzc2lvbk1ldGFkYXRhUmVm
LCBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YSkKKyNlbmRpZgorCiAvKiBFbnVtIGNvbnZlcnNpb25z
ICovCiAKIGlubGluZSBCdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBlIHRvQnVuZGxlSGl0VGVz
dFJlc3VsdE1lZGlhVHlwZShXS0J1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUgd2tNZWRpYVR5
cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYVNl
c3Npb25NZXRhZGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tNZWRp
YVNlc3Npb25NZXRhZGF0YS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjM4MDE1ZDgzMmNkNjhiZDdiNmRlMGJm
YWRmODk0ZWU1YTRlY2NiMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS01lZGlhU2Vzc2lvbk1ldGFkYXRhLmNwcApAQCAtMCwwICsxLDcxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLTWVkaWFTZXNzaW9u
TWV0YWRhdGEuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYk1lZGlh
U2Vzc2lvbk1ldGFkYXRhLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlE
IFdLTWVkaWFTZXNzaW9uTWV0YWRhdGFHZXRUeXBlSUQoKQoreworI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OKQorICAgIHJldHVybiB0b0FQSShXZWJNZWRpYVNlc3Npb25NZXRhZGF0YTo6QVBJVHlw
ZSk7CisjZWxzZQorICAgIHJldHVybiB0b0FQSShBUEk6Ok9iamVjdDo6VHlwZTo6TnVsbCk7Cisj
ZW5kaWYKK30KKworV0tTdHJpbmdSZWYgV0tNZWRpYVNlc3Npb25NZXRhZGF0YUNvcHlUaXRsZShX
S01lZGlhU2Vzc2lvbk1ldGFkYXRhUmVmIG1ldGFkYXRhKQoreworI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OKQorICAgIHJldHVybiB0b0NvcGllZEFQSSh0b0ltcGwobWV0YWRhdGEpLT50aXRsZSgp
KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG1ldGFkYXRhKTsKKyAgICByZXR1cm4gMDsKKyNl
bmRpZgorfQorCitXS1N0cmluZ1JlZiBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhQ29weUFydGlzdChX
S01lZGlhU2Vzc2lvbk1ldGFkYXRhUmVmIG1ldGFkYXRhKQoreworI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OKQorICAgIHJldHVybiB0b0NvcGllZEFQSSh0b0ltcGwobWV0YWRhdGEpLT5hcnRpc3Qo
KSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShtZXRhZGF0YSk7CisgICAgcmV0dXJuIDA7Cisj
ZW5kaWYKK30KKworV0tTdHJpbmdSZWYgV0tNZWRpYVNlc3Npb25NZXRhZGF0YUNvcHlBbGJ1bShX
S01lZGlhU2Vzc2lvbk1ldGFkYXRhUmVmIG1ldGFkYXRhKQoreworI2lmIEVOQUJMRShNRURJQV9T
RVNTSU9OKQorICAgIHJldHVybiB0b0NvcGllZEFQSSh0b0ltcGwobWV0YWRhdGEpLT5hbGJ1bSgp
KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG1ldGFkYXRhKTsKKyAgICByZXR1cm4gMDsKKyNl
bmRpZgorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTWVk
aWFTZXNzaW9uTWV0YWRhdGEuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS01l
ZGlhU2Vzc2lvbk1ldGFkYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjQwNGM4OTliMWUxODc2N2Y4NTRjNTky
MmY4ZTM3YjgyYmMzY2U1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS01lZGlhU2Vzc2lvbk1ldGFkYXRhLmgKQEAgLTAsMCArMSw0OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpZm5kZWYgV0tNZWRpYVNlc3Npb25NZXRhZGF0YV9oCisjZGVmaW5lIFdLTWVk
aWFTZXNzaW9uTWV0YWRhdGFfaAorCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorCisjaWZu
ZGVmIF9fY3BsdXNwbHVzCisjaW5jbHVkZSA8c3RkYm9vbC5oPgorI2VuZGlmCisKKyNpZmRlZiBf
X2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdL
TWVkaWFTZXNzaW9uTWV0YWRhdGFHZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIFdLU3RyaW5nUmVm
IFdLTWVkaWFTZXNzaW9uTWV0YWRhdGFDb3B5VGl0bGUoV0tNZWRpYVNlc3Npb25NZXRhZGF0YVJl
ZiBtZXRhZGF0YSk7CitXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tNZWRpYVNlc3Npb25NZXRhZGF0
YUNvcHlBcnRpc3QoV0tNZWRpYVNlc3Npb25NZXRhZGF0YVJlZiBtZXRhZGF0YSk7CitXS19FWFBP
UlQgV0tTdHJpbmdSZWYgV0tNZWRpYVNlc3Npb25NZXRhZGF0YUNvcHlBbGJ1bShXS01lZGlhU2Vz
c2lvbk1ldGFkYXRhUmVmIG1ldGFkYXRhKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5k
aWYKKworI2VuZGlmIC8qIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGFfaCAqLwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAppbmRleCAzZTk3NjJjYWE3OTZiNzRiODJhZjli
MDU5YzhlOWJkMzExZDU3MjFiLi4zODQ3MTYyMDA2MjI0MGMyYmNlOGE2NDkxODI0ZDFkNDlkYWQ4
MjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtODAs
NiArODAsNyBAQAogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKKyNpbmNsdWRl
ICJXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFFdmVu
dFR5cGVzLmg+CiAjZW5kaWYKIApAQCAtMTgwMCw2ICsxODAxLDE2IEBAIHZvaWQgV0tQYWdlU2V0
UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VVSUNsaWVudEJhc2Uq
IHdrQ2xpZW50CiAKICAgICAgICAgICAgIG1fY2xpZW50LmRpZENsaWNrQXV0b0ZpbGxCdXR0b24o
dG9BUEkoJnBhZ2UpLCB0b0FQSSh1c2VySW5mbyksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7
CiAgICAgICAgIH0KKworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQorICAgICAgICB2aXJ0dWFs
IHZvaWQgbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UoV2ViUGFnZVByb3h5JiBwYWdlLCBX
ZWJNZWRpYVNlc3Npb25NZXRhZGF0YSogbWV0YWRhdGEpIG92ZXJyaWRlCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmICghbV9jbGllbnQubWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBtX2NsaWVudC5tZWRpYVNlc3Np
b25NZXRhZGF0YURpZENoYW5nZSh0b0FQSSgmcGFnZSksIHRvQVBJKG1ldGFkYXRhKSwgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfTsKIAogICAgIHRv
SW1wbChwYWdlUmVmKS0+c2V0VUlDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxVSUNsaWVudD4od2tD
bGllbnQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2VVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xp
ZW50LmgKaW5kZXggN2MyYmQwYmZjN2U1ZTBmNGM4MGFhYzM5YTc0OWJmOWQ4NTRiZDdlNy4uMzZm
OTZhZjg4ZTJiYTdmMzIwZTg2MDdmZTM0OTJiOWQ5MWY5ZjU2NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKQEAgLTkxLDYgKzkxLDcgQEAg
dHlwZWRlZiB2b2lkICgqV0tQYWdlRGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQ
cmVzc0NhbGxiYWNrKShXS1BhZ2VSZWYKIHR5cGVkZWYgdm9pZCAoKldLUGFnZUlzUGxheWluZ0F1
ZGlvRGlkQ2hhbmdlQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0Q2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBX
S1NlY3VyaXR5T3JpZ2luUmVmIG9yaWdpbiwgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJl
ZiBwZXJtaXNzaW9uUmVxdWVzdCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZv
aWQgKCpXS1BhZ2VEaWRDbGlja0F1dG9GaWxsQnV0dG9uQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdl
LCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2
b2lkICgqV0tQYWdlTWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2VDYWxsYmFjaykoV0tQYWdl
UmVmIHBhZ2UsIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGFSZWYgbWV0YWRhdGEsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pOwogCiAvLyBEZXByZWNhdGVkCiB0eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFn
ZUNyZWF0ZU5ld1BhZ2VDYWxsYmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYg
cGFnZSwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVy
cywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KTsKQEAgLTQ1Miw2ICs0NTMsNyBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFY1IHsK
ICAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0QWxlcnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRBbGVydDsKICAgICBXS1BhZ2VSdW5KYXZhU2Ny
aXB0Q29uZmlybUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkph
dmFTY3JpcHRDb25maXJtOwogICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdFByb21wdDsKKyAg
ICBXS1BhZ2VNZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlOwogfSBXS1BhZ2VVSUNs
aWVudFY1OwogCiBlbnVtIHsga1dLUGFnZVVJQ2xpZW50Q3VycmVudFZlcnNpb24gV0tfRU5VTV9E
RVBSRUNBVEVEKCJVc2UgYW4gZXhwbGljaXQgdmVyc2lvbiBudW1iZXIgaW5zdGVhZCIpID0gMiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3OWQyM2Uw
NTg0ZjI5NDAzNDkwYjY3ZTAwOTFiMGVhZDM3ZmEzNWFmLi44MThmMzBiMWQ4NDFmODQzZjBkYTYy
NDVjYWUxMmVmMmU4MjkzYTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtMTU5LDYgKzE1OSwxMSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvV2ViTWVkaWFT
ZXNzaW9uTWFuYWdlci5oPgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKKyNp
bmNsdWRlICJXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVk
aWFTZXNzaW9uTWV0YWRhdGEuaD4KKyNlbmRpZgorCiAvLyBUaGlzIGNvbnRyb2xzIHdoYXQgc3Ry
YXRlZ3kgd2UgdXNlIGZvciBtb3VzZSB3aGVlbCBjb2FsZXNjaW5nLgogI2RlZmluZSBNRVJHRV9X
SEVFTF9FVkVOVFMgMQogCkBAIC01ODA2LDYgKzU4MTEsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0
YXRlKQogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogdm9pZCBXZWJQYWdlUHJveHk6Om1lZGlh
U2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1ldGFk
YXRhJiBtZXRhZGF0YSkKIHsKKyAgICBSZWZQdHI8V2ViTWVkaWFTZXNzaW9uTWV0YWRhdGE+IHdl
Yk1ldGFkYXRhID0gV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGE6OmNyZWF0ZShtZXRhZGF0YSk7Cisg
ICAgbV91aUNsaWVudC0+bWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UoKnRoaXMsIHdlYk1l
dGFkYXRhLmdldCgpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZjZiMzRmODgwNjk4YzcwZWZiZGY5ZDMw
ODQwMjdkMmRhZTA0NDQ4MC4uMjJjN2I2ZGRkZDA3MTJmMWExZjQ4M2UzMmUyZDNhNjk0YTE5NzU5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTY1OSw2ICsxNjU5LDEwIEBACiAJCUM1RTFBRkVGMTZCMjEwMjkwMDZDQzFGMiAv
KiBBUElXZWJBcmNoaXZlUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDMzI5RDlGMTZBQ0Q0NzgwMDMxNkRFMiAvKiBBUElXZWJBcmNoaXZl
UmVzb3VyY2UuaCAqLzsgfTsKIAkJQzVGQTFFRDMxOEUxMDYyMjAwQjNGNDAyIC8qIFdLQWlyUGxh
eVJvdXRlUGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDNUZBMUVEMTE4RTEwNjIyMDBCM0Y0MDIgLyogV0tBaXJQbGF5Um91dGVQaWNrZXIuaCAq
LzsgfTsKIAkJQzVGQTFFRDQxOEUxMDYyMjAwQjNGNDAyIC8qIFdLQWlyUGxheVJvdXRlUGlja2Vy
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzVGQTFF
RDIxOEUxMDYyMjAwQjNGNDAyIC8qIFdLQWlyUGxheVJvdXRlUGlja2VyLm1tICovOyB9OworCQlD
OUNENDM5NzFCNEIwMDE5MDAyMzlFMzMgLyogV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzlDRDQzOTMxQjRC
MDAwRTAwMjM5RTMzIC8qIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmNwcCAqLzsgfTsKKwkJQzlD
RDQzOTgxQjRCMDAxRDAwMjM5RTMzIC8qIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOUNENDM5NDFCNEIwMDBF
MDAyMzlFMzMgLyogV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCAqLzsgfTsKKwkJQzlDRDQzOUQx
QjRCMDI0RjAwMjM5RTMzIC8qIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM5Q0Q0MzlBMUI0QjAyNDIwMDIzOUUz
MyAvKiBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQzlDRDQzOUUxQjRCMDI1MzAwMjM5RTMzIC8qIFdLTWVk
aWFTZXNzaW9uTWV0YWRhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzlDRDQzOTkxQjRCMDI0MjAwMjM5RTMzIC8qIFdLTWVkaWFTZXNzaW9uTWV0
YWRhdGEuY3BwICovOyB9OwogCQlDRDAwM0E1MjE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFL
ZXlTdG9yYWdlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDAwM0E1MDE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdl
TWFuYWdlci5jcHAgKi87IH07CiAJCUNEMDAzQTUzMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRp
YUtleVN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDAwM0E1MTE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdl
TWFuYWdlci5oICovOyB9OwogCQlDRDE5QTI2RDFBMTNFODJBMDA4RDY1MEUgLyogV2ViRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0QxOUEyNjkxQTEzRTgyMDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dn
aW5nQ2xpZW50LmNwcCAqLzsgfTsKQEAgLTM4NzksNiArMzg4MywxMCBAQAogCQlDNTlDNEE1NzE4
QjgxMTc0MDA3QkRDQjYgLyogQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzVGQTFFRDExOEUxMDYyMjAwQjNGNDAyIC8qIFdLQWlyUGxh
eVJvdXRlUGlja2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLQWlyUGxh
eVJvdXRlUGlja2VyLmg7IHBhdGggPSBpb3MvZm9ybXMvV0tBaXJQbGF5Um91dGVQaWNrZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzVGQTFFRDIxOEUxMDYyMjAwQjNGNDAyIC8q
IFdLQWlyUGxheVJvdXRlUGlja2VyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBuYW1lID0gV0tBaXJQbGF5Um91dGVQaWNrZXIubW07IHBhdGggPSBpb3MvZm9ybXMvV0tBaXJQ
bGF5Um91dGVQaWNrZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM5Q0Q0Mzkz
MUI0QjAwMEUwMDIzOUUzMyAvKiBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM5Q0Q0Mzk0MUI0QjAwMEUwMDIzOUUzMyAv
KiBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlDOUNENDM5OTFCNEIwMjQyMDAyMzlFMzMgLyogV0tNZWRpYVNlc3Npb25NZXRhZGF0YS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS01lZGlhU2Vzc2lvbk1l
dGFkYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzlDRDQzOUExQjRCMDI0
MjAwMjM5RTMzIC8qIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tNZWRpYVNlc3Npb25NZXRhZGF0YS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDAwM0E1MDE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9y
YWdlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJN
ZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcDsgcGF0aCA9IE1lZGlhQ2FjaGUvV2ViTWVkaWFLZXlT
dG9yYWdlTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMDAzQTUx
MTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaDsgcGF0
aCA9IE1lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDE5QTI2OTFBMTNFODIwMDA4RDY1MEUgLyogV2ViRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNDc2Myw2ICs0NzcxLDggQEAKIAkJCQlDMDMzN0REMjEyN0EyQTBFMDA4RkY0RjQgLyog
V2ViS2V5Ym9hcmRFdmVudC5jcHAgKi8sCiAJCQkJQkM5QkE1MDIxNjk3QzQ1MzAwRTQ0NjE2IC8q
IFdlYktpdDJJbml0aWFsaXplLmNwcCAqLywKIAkJCQlCQzlCQTUwMzE2OTdDNDUzMDBFNDQ2MTYg
LyogV2ViS2l0MkluaXRpYWxpemUuaCAqLywKKwkJCQlDOUNENDM5MzFCNEIwMDBFMDAyMzlFMzMg
LyogV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuY3BwICovLAorCQkJCUM5Q0Q0Mzk0MUI0QjAwMEUw
MDIzOUUzMyAvKiBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oICovLAogCQkJCTkwNTYyMEU4MTJC
QzI0OEIwMDA3OTlCNiAvKiBXZWJNZW1vcnlTYW1wbGVyLmNwcCAqLywKIAkJCQk5MDU2MjBFOTEy
QkMyNDhCMDAwNzk5QjYgLyogV2ViTWVtb3J5U2FtcGxlci5oICovLAogCQkJCUMwMzM3REFGMTI3
QTI4RDAwMDhGRjRGNCAvKiBXZWJNb3VzZUV2ZW50LmNwcCAqLywKQEAgLTYzMDIsNiArNjMxMiw4
IEBACiAJCQkJMkQ3OTBBOUUxQUQ3MTY0OTAwQUI5MEIzIC8qIFdLTGF5b3V0TW9kZS5oICovLAog
CQkJCTMzRDNBM0IzMTMzOTYwMEIwMDcwOUJFNCAvKiBXS01lZGlhQ2FjaGVNYW5hZ2VyLmNwcCAq
LywKIAkJCQkzM0QzQTNCNDEzMzk2MDBCMDA3MDlCRTQgLyogV0tNZWRpYUNhY2hlTWFuYWdlci5o
ICovLAorCQkJCUM5Q0Q0Mzk5MUI0QjAyNDIwMDIzOUUzMyAvKiBXS01lZGlhU2Vzc2lvbk1ldGFk
YXRhLmNwcCAqLywKKwkJCQlDOUNENDM5QTFCNEIwMjQyMDAyMzlFMzMgLyogV0tNZWRpYVNlc3Np
b25NZXRhZGF0YS5oICovLAogCQkJCUMwOUFFNUU4MTI1MjU3QzIwMDI1ODI1RCAvKiBXS05hdGl2
ZUV2ZW50LmggKi8sCiAJCQkJMkQzQTY1RDgxQTdDM0ExRjAwQ0FDNjM3IC8qIFdLTmF2aWdhdGlv
bkFjdGlvblJlZi5jcHAgKi8sCiAJCQkJMkQzQTY1RDkxQTdDM0ExRjAwQ0FDNjM3IC8qIFdLTmF2
aWdhdGlvbkFjdGlvblJlZi5oICovLApAQCAtNzk2Nyw2ICs3OTc5LDcgQEAKIAkJCQkzM0QzQTNC
QjEzMzk2MDYyMDA3MDlCRTQgLyogV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzNEM0EzQ0IxMzM5NjE3OTAwNzA5QkU0IC8qIFdlYk1lZGlhQ2FjaGVNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0QwMDNBNTMxOUQ0OUI1RDAw
NUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUM5Q0Q0Mzk4MUI0QjAwMUQwMDIzOUUzMyAvKiBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMkQzRUY0NDMxOTE3NjQ2MzAwMDM0MTg0IC8qIFdlYk1lbW9yeVBy
ZXNzdXJlSGFuZGxlcklPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTA5ODU0RUQxMkJDNEUxODAw
MEFEMDgwIC8qIFdlYk1lbW9yeVNhbXBsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRjY5RjlB
MTE3NkNFRDYwMDQ3MUE1MiAvKiBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmggaW4gSGVhZGVycyAq
LywKQEAgLTgxODQsNiArODE5Nyw3IEBACiAJCQkJNTFBOUUxMEIxMzE1Q0QxODAwOUU3MDMxIC8q
IFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ3OTBBOUYx
QUQ3MTY0OTAwQUI5MEIzIC8qIFdLTGF5b3V0TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzNE
M0EzQjYxMzM5NjAwQjAwNzA5QkU0IC8qIFdLTWVkaWFDYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUM5Q0Q0MzlEMUI0QjAyNEYwMDIzOUUzMyAvKiBXS01lZGlhU2Vzc2lvbk1ldGFk
YXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzQwNzVGRTEyNEZGMDI3MDA2OEYyMEEgLyogV0tN
dXRhYmxlQXJyYXkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDA3NjAwMTI0RkYwMjcwMDY4RjIw
QSAvKiBXS011dGFibGVEaWN0aW9uYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDMDlBRTVFOTEy
NTI1N0MyMDAyNTgyNUQgLyogV0tOYXRpdmVFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC05Nzgy
LDYgKzk3OTYsNyBAQAogCQkJCTMzRDNBM0JBMTMzOTYwNjIwMDcwOUJFNCAvKiBXZWJNZWRpYUNh
Y2hlTWFuYWdlclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzRDNBM0NBMTMzOTYxNzkw
MDcwOUJFNCAvKiBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUNEMDAzQTUyMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtl
eVN0b3JhZ2VNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUM5Q0Q0Mzk3MUI0QjAwMTkw
MDIzOUUzMyAvKiBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkyRDNFRjQ0MjE5MTc2NDYzMDAwMzQxODQgLyogV2ViTWVtb3J5UHJlc3N1cmVIYW5kbGVySU9T
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTA5ODU0RUMxMkJDNEUxNzAwMEFEMDgwIC8qIFdlYk1l
bW9yeVNhbXBsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTA5ODU0RUUxMkJDNEUxODAwMEFE
MDgwIC8qIFdlYk1lbW9yeVNhbXBsZXIubWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC05OTY4LDYg
Kzk5ODMsNyBAQAogCQkJCUE1NDI5M0E1MTk1QTQzREQwMDI3ODJDNyAvKiBXS0luc3BlY3Rvck5v
ZGVTZWFyY2hHZXN0dXJlUmVjb2duaXplci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlFMTBB
MTMxNUNEMTgwMDlFNzAzMSAvKiBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMzNEM0EzQjUxMzM5NjAwQjAwNzA5QkU0IC8qIFdLTWVkaWFDYWNoZU1hbmFn
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzlDRDQzOUUxQjRCMDI1MzAwMjM5RTMzIC8qIFdL
TWVkaWFTZXNzaW9uTWV0YWRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc1RkQxMjRG
RjAyNzAwNjhGMjBBIC8qIFdLTXV0YWJsZUFycmF5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
NDA3NUZGMTI0RkYwMjcwMDY4RjIwQSAvKiBXS011dGFibGVEaWN0aW9uYXJ5LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFBNUIxQzUwMTg5ODYwNkYwMDRGQ0Y5QiAvKiBXS05hdmlnYXRpb24ubW0g
aW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCA4NWQyNjRmNjNjZjQ1YjhmNzE1M2U2NmVlNDA5NWU0MjNjZWMwNzMyLi5lY2Jk
ZGU0NzU0Yzg3ZTZmZTAzN2M1NzdmNjYzNTM2Y2MzM2I2YmY2IDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTUtMDct
MDYgIE1hdHQgUmFqY2EgIDxtcmFqY2FAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhIFNlc3Np
b246IHByb3BhZ2F0ZSBtZXRhZGF0YSBjaGFuZ2VzIHRvIFVJIGNsaWVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjY2MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHA6IEJ1aWxkIGZpeGVzIGZvciB1cGRhdGVkIFBhZ2VVSUNsaWVudC4K
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZSk6CisgICAgICAg
IChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMpOgorCiAyMDE1
LTA3LTA2ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCByb2xsaW5nIG91dCByMTcwNjM5LgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcAppbmRleCA1N2NkN2U3YWNhZjQ2ZTI4MWMyOTY3NzhlZmMzYWRkODliMjRl
ZGQ0Li5kMzllMGUwN2UwNGU0ZWRhNzg5OWZiYjQ3ZDY3YzRjMzczZTM0MjgxIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtMjYzLDYgKzI2Myw3IEBAIFdL
UGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdl
LCBXS1VSTFJlcXVlc3RSZWYsIFdLCiAgICAgICAgIDAsIC8vIHJ1bkphdmFTY3JpcHRBbGVydAog
ICAgICAgICAwLCAvLyBydW5KYXZhU2NyaXB0Q29uZmlybQogICAgICAgICAwLCAvLyBydW5KYXZh
U2NyaXB0UHJvbXB0CisgICAgICAgIDAsIC8vIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdl
CiAgICAgfTsKICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQobmV3UGFnZSwgJm90aGVyUGFnZVVJ
Q2xpZW50LmJhc2UpOwogICAgIApAQCAtNTExLDYgKzUxMiw3IEBAIHZvaWQgVGVzdENvbnRyb2xs
ZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyhXS0RpY3Rpb25hcnlSZWYgb3B0aW9ucykKICAg
ICAgICAgMCwgLy8gcnVuSmF2YVNjcmlwdEFsZXJ0CiAgICAgICAgIDAsIC8vIHJ1bkphdmFTY3Jp
cHRDb25maXJtCiAgICAgICAgIDAsIC8vIHJ1bkphdmFTY3JpcHRQcm9tcHQKKyAgICAgICAgMCwg
Ly8gbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UKICAgICB9OwogICAgIFdLUGFnZVNldFBh
Z2VVSUNsaWVudChtX21haW5XZWJWaWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQuYmFzZSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256308</attachid>
            <date>2015-07-07 10:25:43 -0700</date>
            <delta_ts>2015-07-07 13:24:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146660-20150707102449.patch</filename>
            <type>text/plain</type>
            <size>29624</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODJjOTVlNzE0MjM5ZDY4
N2RlZjVjMzI4YTcwNTU5ZWYxMTI1MWZkNy4uZTVlNzhjYjM3NmE3YzA1ZDFlOGU5NWU1OTA3NTJm
NTJjYzQxMDk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE1LTA3LTA2ICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYSBTZXNzaW9uOiBwcm9w
YWdhdGUgbWV0YWRhdGEgY2hhbmdlcyB0byBVSSBjbGllbnRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY2NjAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGRlZCBXZWJN
ZWRpYVNlc3Npb25NZXRhZGF0YSBhbmQgV0tNZWRpYVNlc3Npb25NZXRhZGF0YS4KKyAgICAgICAg
KiBTaGFyZWQvQVBJL0FQSU9iamVjdC5oOiBBZGRlZCBhIG1lZGlhIHNlc3Npb24gbWV0YWRhdGEg
dHlwZS4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICogU2hhcmVk
L1dlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmNwcDogQWRkZWQgQVBJIGFkYXB0ZXIgZm9yIFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbk1ldGFkYXRhLgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVNlc3Np
b25NZXRhZGF0YTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTZXNzaW9uTWV0
YWRhdGE6OldlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVk
aWFTZXNzaW9uTWV0YWRhdGE6On5XZWJNZWRpYVNlc3Npb25NZXRhZGF0YSk6CisgICAgICAgICog
U2hhcmVkL1dlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmg6IEFkZGVkIEFQSSBhZGFwdGVyIGZvciBX
ZWJDb3JlOjpNZWRpYVNlc3Npb25NZXRhZGF0YS4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFT
ZXNzaW9uTWV0YWRhdGE6OnRpdGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTZXNzaW9u
TWV0YWRhdGE6OmFydGlzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU2Vzc2lvbk1ldGFk
YXRhOjphbGJ1bSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOiBBZGRl
ZCAnbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UnIGludGVyZmFjZS4KKyAgICAgICAgKEFQ
STo6VUlDbGllbnQ6Om1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
TWVkaWFTZXNzaW9uTWV0YWRhdGEuY3BwOiBBZGRlZCBDIHdyYXBwZXIgZm9yIFdlYk1lZGlhU2Vz
c2lvbk1ldGFkYXRhLgorICAgICAgICAoV0tNZWRpYVNlc3Npb25NZXRhZGF0YUdldFR5cGVJRCk6
CisgICAgICAgIChXS01lZGlhU2Vzc2lvbk1ldGFkYXRhQ29weVRpdGxlKToKKyAgICAgICAgKFdL
TWVkaWFTZXNzaW9uTWV0YWRhdGFDb3B5QXJ0aXN0KToKKyAgICAgICAgKFdLTWVkaWFTZXNzaW9u
TWV0YWRhdGFDb3B5QWxidW0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS01lZGlhU2Vz
c2lvbk1ldGFkYXRhLmg6IEFkZGVkIEMgd3JhcHBlciBmb3IgV2ViTWVkaWFTZXNzaW9uTWV0YWRh
dGEuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6IEZvcndhcmQgJ21lZGlh
U2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlJyB0byBjbGllbnQuCisgICAgICAgIChXS1BhZ2VTZXRQ
YWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5o
OiBBZGRlZCAnbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UnIGNhbGxiYWNrLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOiBGb3J3YXJkICdtZWRpYVNlc3Npb25NZXRh
ZGF0YURpZENoYW5nZScgdG8gVUkgY2xpZW50LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6Om1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhIGFu
ZCBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhLgorCiAyMDE1LTA3LTA2ICBBbnR0aSBLb2l2aXN0byAg
PGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBXaXRoIG11bHRpcGFydC9yZXBsYWNlZCAoZS5n
LiBtb3Rpb24gSlBFRyksIG1fYnVmZmVyZWREYXRhRm9yQ2FjaGUgZ3Jvd3MgdW5ib3VuZGVkIGlu
IE5ldHdvcmtpbmcgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCA1MGIxNDI5MmYyYTdj
YjUyODk4MDc5NTc0MzFlZGU3MmQyZDY2OTQwLi5hZWVmNDI3MDE5NzJjNWEyYWM4NzRkODRjMWVj
ODZhMmMwMGU3ZGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtMjUxLDYgKzI1MSw3IEBAIHNl
dChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvV2ViSW1hZ2UuY3BwCiAgICAgU2hhcmVkL1dl
YktleWJvYXJkRXZlbnQuY3BwCiAgICAgU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcAorICAg
IFNoYXJlZC9XZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5jcHAKICAgICBTaGFyZWQvV2ViTWVtb3J5
U2FtcGxlci5jcHAKICAgICBTaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKICAgICBTaGFyZWQvV2Vi
T3BlblBhbmVsUGFyYW1ldGVycy5jcHAKQEAgLTQyNSw2ICs0MjYsNyBAQCBzZXQoV2ViS2l0Ml9T
T1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLSW5zcGVjdG9yLmNwcAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLTWVkaWFDYWNoZU1hbmFnZXIuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFTZXNz
aW9uTWV0YWRhdGEuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkFjdGlvblJl
Zi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YVJlZi5jcHAKICAgICBV
SVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uUmVmLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
QVBJT2JqZWN0LmgKaW5kZXggZWFlZmZmMjYyNTIzMDhiOTViMDU3MmNkZDJmMjdlZjAzNmYyYzBk
My4uZGFiMjA0NzJmM2Q2MDExZGVkMWExNDY1M2ZjYzA3ZGRjZWIwM2M4YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCkBAIC0xNDksNiArMTQ5LDEwIEBAIHB1YmxpYzoKICAg
ICAgICAgV2Vic2l0ZURhdGFSZWNvcmQsCiAgICAgICAgIFdlYnNpdGVEYXRhU3RvcmUsCiAKKyNp
ZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKKyAgICAgICAgTWVkaWFTZXNzaW9uTWV0YWRhdGEsCisj
ZW5kaWYKKwogICAgICAgICAvLyBCdW5kbGUgdHlwZXMKICAgICAgICAgQnVuZGxlLAogICAgICAg
ICBCdW5kbGVCYWNrRm9yd2FyZExpc3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgK
aW5kZXggNTkyNDlmZTEzYjcwZWRlYTZmNjM2NzU2MzJjODgxNzNlOGQzMzMxOS4uMTZiODAwNDM3
NWVkY2I1ZmIyMDFiYjk1NWJiNmQ4Y2IyYzc4MmFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9XS0Jhc2UuaApAQCAtMTEyLDYgKzExMiw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLSWNvbkRhdGFiYXNlKiBXS0ljb25EYXRhYmFzZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLSW5zcGVjdG9yKiBXS0luc3BlY3RvclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlciogV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tNZWRpYUNhY2hlTWFuYWdlciogV0tN
ZWRpYUNhY2hlTWFuYWdlclJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTWVkaWFT
ZXNzaW9uTWV0YWRhdGEqIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGFSZWY7CiB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRpb25BY3Rpb24qIFdLTmF2aWdhdGlvbkFjdGlvblJlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmF2aWdhdGlvbkRhdGEqIFdLTmF2aWdhdGlv
bkRhdGFSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRpb24qIFdLTmF2
aWdhdGlvblJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZWRpYVNl
c3Npb25NZXRhZGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVkaWFTZXNzaW9u
TWV0YWRhdGEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwM2QxNzMxYmFmMTYyMGU3MjJiNzI1NDM2MDY5ZmVm
ODljZmVjYWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVk
aWFTZXNzaW9uTWV0YWRhdGEuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCIKKwor
I2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1JlZjxXZWJNZWRpYVNlc3Npb25NZXRhZGF0YT4gV2ViTWVk
aWFTZXNzaW9uTWV0YWRhdGE6OmNyZWF0ZShjb25zdCBNZWRpYVNlc3Npb25NZXRhZGF0YSYgbWV0
YWRhdGEpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViTWVkaWFTZXNzaW9uTWV0YWRh
dGEobWV0YWRhdGEpKTsKK30KKworV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGE6OldlYk1lZGlhU2Vz
c2lvbk1ldGFkYXRhKGNvbnN0IE1lZGlhU2Vzc2lvbk1ldGFkYXRhJiBtZXRhZGF0YSkKKyAgICA6
IG1fbWV0YWRhdGEobWV0YWRhdGEpCit7Cit9CisKK1dlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhOjp+
V2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjA4NjU0MzgxMzJk
YTVmMzRjZmQzNzA5MGIxZjhmNDA3NmZiOWQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmgKQEAgLTAsMCArMSw1NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGFfaAorI2RlZmluZSBX
ZWJNZWRpYVNlc3Npb25NZXRhZGF0YV9oCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKKwor
I2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZXNzaW9uTWV0
YWRhdGEuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhIDogcHVibGljIEFQSTo6T2Jq
ZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6TWVkaWFTZXNzaW9uTWV0YWRhdGE+IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhPiBjcmVhdGUoY29uc3Qg
V2ViQ29yZTo6TWVkaWFTZXNzaW9uTWV0YWRhdGEmKTsKKyAgICB+V2ViTWVkaWFTZXNzaW9uTWV0
YWRhdGEoKTsKKworICAgIFN0cmluZyB0aXRsZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0YWRhdGEu
dGl0bGUoKTsgfQorICAgIFN0cmluZyBhcnRpc3QoKSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRh
LmFydGlzdCgpOyB9CisgICAgU3RyaW5nIGFsYnVtKCkgY29uc3QgeyByZXR1cm4gbV9tZXRhZGF0
YS5hbGJ1bSgpOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViTWVkaWFTZXNzaW9uTWV0
YWRhdGEoY29uc3QgV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWV0YWRhdGEmKTsKKworICAgIFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbk1ldGFkYXRhIG1fbWV0YWRhdGE7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OKQorCisjZW5kaWYgLy8g
V2ViTWVkaWFTZXNzaW9uTWV0YWRhdGFfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9B
UElVSUNsaWVudC5oCmluZGV4IDY1MGU2MjZhMzEyNjU3YjVkYjNkNDRmNTUwYTMwZGQ3NDQxN2Nl
ODUuLmMyMTM0MGE4MGI2MmJkZmJhMGRmMjNlOTQwMTIwOTgyMGI4NzhiYWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTU3LDYgKzU3LDEwIEBAIGNs
YXNzIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHk7CiBjbGFzcyBXZWJQYWdlUHJveHk7
CiBzdHJ1Y3QgTmF2aWdhdGlvbkFjdGlvbkRhdGE7CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRh
OworCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCitjbGFzcyBXZWJNZWRpYVNlc3Npb25NZXRh
ZGF0YTsKKyNlbmRpZgogfQogCiBuYW1lc3BhY2UgQVBJIHsKQEAgLTE1MCw2ICsxNTQsMTAgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKFdlYktp
dDo6V2ViUGFnZVByb3h5JikgeyB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKKyAgICB2
aXJ0dWFsIHZvaWQgbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdl
UHJveHkmLCBXZWJLaXQ6OldlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhKikgeyB9CisjZW5kaWYKKwog
I2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIFJldGFpblB0cjxOU0FycmF5PiBhY3Rpb25z
Rm9yRWxlbWVudChfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqLCBSZXRhaW5QdHI8TlNBcnJheT4g
ZGVmYXVsdEFjdGlvbnMpIHsgcmV0dXJuIFdURjo6bW92ZShkZWZhdWx0QWN0aW9ucyk7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGlkTm90SGFuZGxlVGFwQXNDbGljayhjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmlu
ZGV4IDlkYzE1NmM5MTUzOWVhZTFlNmVmM2FiNTE2M2E2MTAyYTUxMTEzMDEuLjQ2OTgzN2ExOTFm
YWEwOWZkZTg2MTY1YTNiYzEwMzk5NzgzZWUxNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTEwOSw2ICsxMDksMTAgQEAgY2xhc3MgV2ViVXNlckNv
bnRlbnRDb250cm9sbGVyUHJveHk7CiBjbGFzcyBXZWJWaWJyYXRpb25Qcm94eTsKIGNsYXNzIFdl
YlZpZXdwb3J0QXR0cmlidXRlczsKIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQorY2xhc3Mg
V2ViTWVkaWFTZXNzaW9uTWV0YWRhdGE7CisjZW5kaWYKKwogV0tfQUREX0FQSV9NQVBQSU5HKFdL
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VSZWYsIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkp
CiBXS19BRERfQVBJX01BUFBJTkcoV0tBdXRoZW50aWNhdGlvbkRlY2lzaW9uTGlzdGVuZXJSZWYs
IEF1dGhlbnRpY2F0aW9uRGVjaXNpb25MaXN0ZW5lcikKIFdLX0FERF9BUElfTUFQUElORyhXS0Jh
Y2tGb3J3YXJkTGlzdEl0ZW1SZWYsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0pCkBAIC0xNjMsNiAr
MTY3LDEwIEBAIFdLX0FERF9BUElfTUFQUElORyhXS1ZpYnJhdGlvblJlZiwgV2ViVmlicmF0aW9u
UHJveHkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tWaWV3cG9ydEF0dHJpYnV0ZXNSZWYsIFdlYlZp
ZXdwb3J0QXR0cmlidXRlcykKIFdLX0FERF9BUElfTUFQUElORyhXS1dlYnNpdGVEYXRhU3RvcmVS
ZWYsIEFQSTo6V2Vic2l0ZURhdGFTdG9yZSkKIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQor
V0tfQUREX0FQSV9NQVBQSU5HKFdLTWVkaWFTZXNzaW9uTWV0YWRhdGFSZWYsIFdlYk1lZGlhU2Vz
c2lvbk1ldGFkYXRhKQorI2VuZGlmCisKIC8qIEVudW0gY29udmVyc2lvbnMgKi8KIAogaW5saW5l
IEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUgdG9CdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFU
eXBlKFdLQnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZSB3a01lZGlhVHlwZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS01lZGlhU2Vzc2lvbk1ldGFkYXRh
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS01lZGlhU2Vzc2lvbk1ldGFk
YXRhLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mMzgwMTVkODMyY2Q2OGJkN2I2ZGUwYmZhZGY4OTRlZTVhNGVj
Y2IwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
TWVkaWFTZXNzaW9uTWV0YWRhdGEuY3BwCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tNZWRpYVNlc3Npb25NZXRhZGF0YS5oIgor
CisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViTWVkaWFTZXNzaW9uTWV0YWRh
dGEuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tUeXBlSUQgV0tNZWRpYVNlc3Np
b25NZXRhZGF0YUdldFR5cGVJRCgpCit7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCisgICAg
cmV0dXJuIHRvQVBJKFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhOjpBUElUeXBlKTsKKyNlbHNlCisg
ICAgcmV0dXJuIHRvQVBJKEFQSTo6T2JqZWN0OjpUeXBlOjpOdWxsKTsKKyNlbmRpZgorfQorCitX
S1N0cmluZ1JlZiBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhQ29weVRpdGxlKFdLTWVkaWFTZXNzaW9u
TWV0YWRhdGFSZWYgbWV0YWRhdGEpCit7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCisgICAg
cmV0dXJuIHRvQ29waWVkQVBJKHRvSW1wbChtZXRhZGF0YSktPnRpdGxlKCkpOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0obWV0YWRhdGEpOworICAgIHJldHVybiAwOworI2VuZGlmCit9CisKK1dL
U3RyaW5nUmVmIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGFDb3B5QXJ0aXN0KFdLTWVkaWFTZXNzaW9u
TWV0YWRhdGFSZWYgbWV0YWRhdGEpCit7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCisgICAg
cmV0dXJuIHRvQ29waWVkQVBJKHRvSW1wbChtZXRhZGF0YSktPmFydGlzdCgpKTsKKyNlbHNlCisg
ICAgVU5VU0VEX1BBUkFNKG1ldGFkYXRhKTsKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCitX
S1N0cmluZ1JlZiBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhQ29weUFsYnVtKFdLTWVkaWFTZXNzaW9u
TWV0YWRhdGFSZWYgbWV0YWRhdGEpCit7CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCisgICAg
cmV0dXJuIHRvQ29waWVkQVBJKHRvSW1wbChtZXRhZGF0YSktPmFsYnVtKCkpOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0obWV0YWRhdGEpOworICAgIHJldHVybiAwOworI2VuZGlmCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYVNlc3Npb25NZXRh
ZGF0YS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFTZXNzaW9uTWV0
YWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yNDA0Yzg5OWIxZTE4NzY3Zjg1NGM1OTIyZjhlMzdiODJiYzNj
ZTVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
TWVkaWFTZXNzaW9uTWV0YWRhdGEuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhX2gKKyNkZWZpbmUgV0tNZWRpYVNlc3Npb25NZXRh
ZGF0YV9oCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisKKyNpZm5kZWYgX19jcGx1c3Bs
dXMKKyNpbmNsdWRlIDxzdGRib29sLmg+CisjZW5kaWYKKworI2lmZGVmIF9fY3BsdXNwbHVzCitl
eHRlcm4gIkMiIHsKKyNlbmRpZgorCitXS19FWFBPUlQgV0tUeXBlSUQgV0tNZWRpYVNlc3Npb25N
ZXRhZGF0YUdldFR5cGVJRCgpOworCitXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tNZWRpYVNlc3Np
b25NZXRhZGF0YUNvcHlUaXRsZShXS01lZGlhU2Vzc2lvbk1ldGFkYXRhUmVmIG1ldGFkYXRhKTsK
K1dLX0VYUE9SVCBXS1N0cmluZ1JlZiBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhQ29weUFydGlzdChX
S01lZGlhU2Vzc2lvbk1ldGFkYXRhUmVmIG1ldGFkYXRhKTsKK1dLX0VYUE9SVCBXS1N0cmluZ1Jl
ZiBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhQ29weUFsYnVtKFdLTWVkaWFTZXNzaW9uTWV0YWRhdGFS
ZWYgbWV0YWRhdGEpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYg
LyogV0tNZWRpYVNlc3Npb25NZXRhZGF0YV9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwCmluZGV4IDNlOTc2MmNhYTc5NmI3NGI4MmFmOWIwNTljOGU5YmQzMTFk
NTcyMWIuLjM4NDcxNjIwMDYyMjQwYzJiY2U4YTY0OTE4MjRkMWQ0OWRhZDgyMDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC04MCw2ICs4MCw3IEBACiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQorI2luY2x1ZGUgIldlYk1lZGlhU2Vz
c2lvbk1ldGFkYXRhLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUV2ZW50VHlwZXMuaD4KICNl
bmRpZgogCkBAIC0xODAwLDYgKzE4MDEsMTYgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQo
V0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGllbnQKIAog
ICAgICAgICAgICAgbV9jbGllbnQuZGlkQ2xpY2tBdXRvRmlsbEJ1dHRvbih0b0FQSSgmcGFnZSks
IHRvQVBJKHVzZXJJbmZvKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQor
CisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCisgICAgICAgIHZpcnR1YWwgdm9pZCBtZWRpYVNl
c3Npb25NZXRhZGF0YURpZENoYW5nZShXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYk1lZGlhU2Vzc2lv
bk1ldGFkYXRhKiBtZXRhZGF0YSkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYg
KCFtX2NsaWVudC5tZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZSkKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgICAgIG1fY2xpZW50Lm1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlk
Q2hhbmdlKHRvQVBJKCZwYWdlKSwgdG9BUEkobWV0YWRhdGEpLCBtX2NsaWVudC5iYXNlLmNsaWVu
dEluZm8pOworICAgICAgICB9CisjZW5kaWYKICAgICB9OwogCiAgICAgdG9JbXBsKHBhZ2VSZWYp
LT5zZXRVSUNsaWVudChzdGQ6Om1ha2VfdW5pcXVlPFVJQ2xpZW50Pih3a0NsaWVudCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaAppbmRleCA3
YzJiZDBiZmM3ZTVlMGY0YzgwYWFjMzlhNzQ5YmY5ZDg1NGJkN2U3Li4zNmY5NmFmODhlMmJhN2Yz
MjBlODYwN2ZlMzQ5MmI5ZDkxZjlmNTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaApAQCAtOTEsNiArOTEsNyBAQCB0eXBlZGVmIHZvaWQg
KCpXS1BhZ2VEaWRDYW5jZWxUcmFja2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzQ2FsbGJhY2sp
KFdLUGFnZVJlZgogdHlwZWRlZiB2b2lkICgqV0tQYWdlSXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2VD
YWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRl
ZiB2b2lkICgqV0tQYWdlRGVjaWRlUG9saWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RD
YWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLU2VjdXJpdHlPcmln
aW5SZWYgb3JpZ2luLCBXS1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UmVmIHBlcm1pc3Npb25S
ZXF1ZXN0LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLUGFnZURp
ZENsaWNrQXV0b0ZpbGxCdXR0b25DYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLVHlwZVJlZiB1
c2VyRGF0YSwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbyk7Cit0eXBlZGVmIHZvaWQgKCpXS1BhZ2VN
ZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZUNhbGxiYWNrKShXS1BhZ2VSZWYgcGFnZSwgV0tN
ZWRpYVNlc3Npb25NZXRhZGF0YVJlZiBtZXRhZGF0YSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7
CiAKIC8vIERlcHJlY2F0ZWQKIHR5cGVkZWYgV0tQYWdlUmVmICgqV0tQYWdlQ3JlYXRlTmV3UGFn
ZUNhbGxiYWNrX2RlcHJlY2F0ZWRGb3JVc2VXaXRoVjApKFdLUGFnZVJlZiBwYWdlLCBXS0RpY3Rp
b25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91
c2VCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwpAQCAtNDUyLDYg
KzQ1Myw3IEBAIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjUgewogICAgIFdLUGFnZVJ1
bkphdmFTY3JpcHRBbGVydENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcnVuSmF2YVNjcmlwdEFsZXJ0OwogICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRDb25maXJtQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdENvbmZp
cm07CiAgICAgV0tQYWdlUnVuSmF2YVNjcmlwdFByb21wdENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBydW5KYXZhU2NyaXB0UHJvbXB0OworICAgIFdLUGFnZU1lZGlh
U2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAg
bWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2U7CiB9IFdLUGFnZVVJQ2xpZW50VjU7CiAKIGVu
dW0geyBrV0tQYWdlVUlDbGllbnRDdXJyZW50VmVyc2lvbiBXS19FTlVNX0RFUFJFQ0FURUQoIlVz
ZSBhbiBleHBsaWNpdCB2ZXJzaW9uIG51bWJlciBpbnN0ZWFkIikgPSAyIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDc5ZDIzZTA1ODRmMjk0MDM0OTBi
NjdlMDA5MWIwZWFkMzdmYTM1YWYuLmUyODlmZTRhNTRhZjZhMjE0MTJjZDY1YmU1ZjNmMDExZjM3
MjhjNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0x
NTksNiArMTU5LDExIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJNZWRpYVNlc3Npb25NYW5hZ2Vy
Lmg+CiAjZW5kaWYKIAorI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQorI2luY2x1ZGUgIldlYk1l
ZGlhU2Vzc2lvbk1ldGFkYXRhLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlc3Npb25NZXRh
ZGF0YS5oPgorI2VuZGlmCisKIC8vIFRoaXMgY29udHJvbHMgd2hhdCBzdHJhdGVneSB3ZSB1c2Ug
Zm9yIG1vdXNlIHdoZWVsIGNvYWxlc2NpbmcuCiAjZGVmaW5lIE1FUkdFX1dIRUVMX0VWRU5UUyAx
CiAKQEAgLTU4MDYsNiArNTgxMSw4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojppc1BsYXlpbmdNZWRp
YURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUpCiAjaWYgRU5B
QkxFKE1FRElBX1NFU1NJT04pCiB2b2lkIFdlYlBhZ2VQcm94eTo6bWVkaWFTZXNzaW9uTWV0YWRh
dGFEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWV0YWRhdGEmIG1ldGFkYXRh
KQogeworICAgIFJlZjxXZWJNZWRpYVNlc3Npb25NZXRhZGF0YT4gd2ViTWV0YWRhdGEgPSBXZWJN
ZWRpYVNlc3Npb25NZXRhZGF0YTo6Y3JlYXRlKG1ldGFkYXRhKTsKKyAgICBtX3VpQ2xpZW50LT5t
ZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZSgqdGhpcywgd2ViTWV0YWRhdGEucHRyKCkpOwog
fQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBmNmIzNGY4ODA2OThjNzBlZmJkZjlkMzA4NDAyN2QyZGFlMDQ0NDgw
Li4yMmM3YjZkZGRkMDcxMmYxYTFmNDgzZTMyZTJkM2E2OTRhMTk3NTk2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjU5LDYg
KzE2NTksMTAgQEAKIAkJQzVFMUFGRUYxNkIyMTAyOTAwNkNDMUYyIC8qIEFQSVdlYkFyY2hpdmVS
ZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkMzMjlEOUYxNkFDRDQ3ODAwMzE2REUyIC8qIEFQSVdlYkFyY2hpdmVSZXNvdXJjZS5oICovOyB9
OwogCQlDNUZBMUVEMzE4RTEwNjIyMDBCM0Y0MDIgLyogV0tBaXJQbGF5Um91dGVQaWNrZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1RkExRUQxMThF
MTA2MjIwMEIzRjQwMiAvKiBXS0FpclBsYXlSb3V0ZVBpY2tlci5oICovOyB9OwogCQlDNUZBMUVE
NDE4RTEwNjIyMDBCM0Y0MDIgLyogV0tBaXJQbGF5Um91dGVQaWNrZXIubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNUZBMUVEMjE4RTEwNjIyMDBCM0Y0
MDIgLyogV0tBaXJQbGF5Um91dGVQaWNrZXIubW0gKi87IH07CisJCUM5Q0Q0Mzk3MUI0QjAwMTkw
MDIzOUUzMyAvKiBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOUNENDM5MzFCNEIwMDBFMDAyMzlFMzMgLyog
V2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuY3BwICovOyB9OworCQlDOUNENDM5ODFCNEIwMDFEMDAy
MzlFMzMgLyogV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM5Q0Q0Mzk0MUI0QjAwMEUwMDIzOUUzMyAvKiBXZWJN
ZWRpYVNlc3Npb25NZXRhZGF0YS5oICovOyB9OworCQlDOUNENDM5RDFCNEIwMjRGMDAyMzlFMzMg
LyogV0tNZWRpYVNlc3Npb25NZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzlDRDQzOUExQjRCMDI0MjAwMjM5RTMzIC8qIFdLTWVkaWFTZXNz
aW9uTWV0YWRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OworCQlDOUNENDM5RTFCNEIwMjUzMDAyMzlFMzMgLyogV0tNZWRpYVNlc3Npb25NZXRhZGF0
YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDOUNE
NDM5OTFCNEIwMjQyMDAyMzlFMzMgLyogV0tNZWRpYVNlc3Npb25NZXRhZGF0YS5jcHAgKi87IH07
CiAJCUNEMDAzQTUyMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2Vy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMDAz
QTUwMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcCAqLzsg
fTsKIAkJQ0QwMDNBNTMxOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMDAz
QTUxMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggKi87IH07
CiAJCUNEMTlBMjZEMUExM0U4MkEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5
QTI2OTFBMTNFODIwMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwICov
OyB9OwpAQCAtMzg3OSw2ICszODgzLDEwIEBACiAJCUM1OUM0QTU3MThCODExNzQwMDdCRENCNiAv
KiBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDNUZBMUVEMTE4RTEwNjIyMDBCM0Y0MDIgLyogV0tBaXJQbGF5Um91dGVQaWNrZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tBaXJQbGF5Um91dGVQaWNrZXIuaDsg
cGF0aCA9IGlvcy9mb3Jtcy9XS0FpclBsYXlSb3V0ZVBpY2tlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDNUZBMUVEMjE4RTEwNjIyMDBCM0Y0MDIgLyogV0tBaXJQbGF5Um91dGVQ
aWNrZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXS0FpclBs
YXlSb3V0ZVBpY2tlci5tbTsgcGF0aCA9IGlvcy9mb3Jtcy9XS0FpclBsYXlSb3V0ZVBpY2tlci5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzlDRDQzOTMxQjRCMDAwRTAwMjM5RTMz
IC8qIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQzlDRDQzOTQxQjRCMDAwRTAwMjM5RTMzIC8qIFdlYk1lZGlhU2Vzc2lv
bk1ldGFkYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk1lZGlhU2Vz
c2lvbk1ldGFkYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM5Q0Q0Mzk5MUI0
QjAyNDIwMDIzOUUzMyAvKiBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLTWVkaWFTZXNzaW9uTWV0YWRhdGEuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDOUNENDM5QTFCNEIwMjQyMDAyMzlFMzMgLyogV0tN
ZWRpYVNlc3Npb25NZXRhZGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S01lZGlhU2Vzc2lvbk1ldGFkYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
MDAzQTUwMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYk1lZGlhS2V5U3RvcmFnZU1h
bmFnZXIuY3BwOyBwYXRoID0gTWVkaWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QwMDNBNTExOUQ0OUI1RDAwNUFCQ0Uw
IC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oOyBwYXRoID0gTWVkaWFDYWNoZS9X
ZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUNEMTlBMjY5MUExM0U4MjAwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJEaWFnbm9zdGljTG9n
Z2luZ0NsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NzYzLDYgKzQ3
NzEsOCBAQAogCQkJCUMwMzM3REQyMTI3QTJBMEUwMDhGRjRGNCAvKiBXZWJLZXlib2FyZEV2ZW50
LmNwcCAqLywKIAkJCQlCQzlCQTUwMjE2OTdDNDUzMDBFNDQ2MTYgLyogV2ViS2l0MkluaXRpYWxp
emUuY3BwICovLAogCQkJCUJDOUJBNTAzMTY5N0M0NTMwMEU0NDYxNiAvKiBXZWJLaXQySW5pdGlh
bGl6ZS5oICovLAorCQkJCUM5Q0Q0MzkzMUI0QjAwMEUwMDIzOUUzMyAvKiBXZWJNZWRpYVNlc3Np
b25NZXRhZGF0YS5jcHAgKi8sCisJCQkJQzlDRDQzOTQxQjRCMDAwRTAwMjM5RTMzIC8qIFdlYk1l
ZGlhU2Vzc2lvbk1ldGFkYXRhLmggKi8sCiAJCQkJOTA1NjIwRTgxMkJDMjQ4QjAwMDc5OUI2IC8q
IFdlYk1lbW9yeVNhbXBsZXIuY3BwICovLAogCQkJCTkwNTYyMEU5MTJCQzI0OEIwMDA3OTlCNiAv
KiBXZWJNZW1vcnlTYW1wbGVyLmggKi8sCiAJCQkJQzAzMzdEQUYxMjdBMjhEMDAwOEZGNEY0IC8q
IFdlYk1vdXNlRXZlbnQuY3BwICovLApAQCAtNjMwMiw2ICs2MzEyLDggQEAKIAkJCQkyRDc5MEE5
RTFBRDcxNjQ5MDBBQjkwQjMgLyogV0tMYXlvdXRNb2RlLmggKi8sCiAJCQkJMzNEM0EzQjMxMzM5
NjAwQjAwNzA5QkU0IC8qIFdLTWVkaWFDYWNoZU1hbmFnZXIuY3BwICovLAogCQkJCTMzRDNBM0I0
MTMzOTYwMEIwMDcwOUJFNCAvKiBXS01lZGlhQ2FjaGVNYW5hZ2VyLmggKi8sCisJCQkJQzlDRDQz
OTkxQjRCMDI0MjAwMjM5RTMzIC8qIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGEuY3BwICovLAorCQkJ
CUM5Q0Q0MzlBMUI0QjAyNDIwMDIzOUUzMyAvKiBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhLmggKi8s
CiAJCQkJQzA5QUU1RTgxMjUyNTdDMjAwMjU4MjVEIC8qIFdLTmF0aXZlRXZlbnQuaCAqLywKIAkJ
CQkyRDNBNjVEODFBN0MzQTFGMDBDQUM2MzcgLyogV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLmNwcCAq
LywKIAkJCQkyRDNBNjVEOTFBN0MzQTFGMDBDQUM2MzcgLyogV0tOYXZpZ2F0aW9uQWN0aW9uUmVm
LmggKi8sCkBAIC03OTY3LDYgKzc5NzksNyBAQAogCQkJCTMzRDNBM0JCMTMzOTYwNjIwMDcwOUJF
NCAvKiBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJCQkzM0Qz
QTNDQjEzMzk2MTc5MDA3MDlCRTQgLyogV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDAwM0E1MzE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVk
aWFLZXlTdG9yYWdlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQzlDRDQzOTgxQjRCMDAx
RDAwMjM5RTMzIC8qIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkyRDNFRjQ0MzE5MTc2NDYzMDAwMzQxODQgLyogV2ViTWVtb3J5UHJlc3N1cmVIYW5kbGVySU9T
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MDk4NTRFRDEyQkM0RTE4MDAwQUQwODAgLyogV2ViTWVt
b3J5U2FtcGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNGNjlGOUExMTc2Q0VENjAwNDcxQTUy
IC8qIFdlYk5hdmlnYXRpb25EYXRhU3RvcmUuaCBpbiBIZWFkZXJzICovLApAQCAtODE4NCw2ICs4
MTk3LDcgQEAKIAkJCQk1MUE5RTEwQjEzMTVDRDE4MDA5RTcwMzEgLyogV0tLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDc5MEE5RjFBRDcxNjQ5MDBBQjkwQjMg
LyogV0tMYXlvdXRNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzM0QzQTNCNjEzMzk2MDBCMDA3
MDlCRTQgLyogV0tNZWRpYUNhY2hlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQzlDRDQz
OUQxQjRCMDI0RjAwMjM5RTMzIC8qIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDNDA3NUZFMTI0RkYwMjcwMDY4RjIwQSAvKiBXS011dGFibGVBcnJheS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM0MDc2MDAxMjRGRjAyNzAwNjhGMjBBIC8qIFdLTXV0YWJsZURp
Y3Rpb25hcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUMwOUFFNUU5MTI1MjU3QzIwMDI1ODI1RCAv
KiBXS05hdGl2ZUV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTk3ODIsNiArOTc5Niw3IEBACiAJ
CQkJMzNEM0EzQkExMzM5NjA2MjAwNzA5QkU0IC8qIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHku
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzNEM0EzQ0ExMzM5NjE3OTAwNzA5QkU0IC8qIFdlYk1l
ZGlhQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0QwMDNBNTIxOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzlDRDQzOTcxQjRCMDAxOTAwMjM5RTMzIC8qIFdlYk1l
ZGlhU2Vzc2lvbk1ldGFkYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEM0VGNDQyMTkxNzY0
NjMwMDAzNDE4NCAvKiBXZWJNZW1vcnlQcmVzc3VyZUhhbmRsZXJJT1MubW0gaW4gU291cmNlcyAq
LywKIAkJCQk5MDk4NTRFQzEyQkM0RTE3MDAwQUQwODAgLyogV2ViTWVtb3J5U2FtcGxlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk5MDk4NTRFRTEyQkM0RTE4MDAwQUQwODAgLyogV2ViTWVtb3J5
U2FtcGxlci5tYWMubW0gaW4gU291cmNlcyAqLywKQEAgLTk5NjgsNiArOTk4Myw3IEBACiAJCQkJ
QTU0MjkzQTUxOTVBNDNERDAwMjc4MkM3IC8qIFdLSW5zcGVjdG9yTm9kZVNlYXJjaEdlc3R1cmVS
ZWNvZ25pemVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBOUUxMEExMzE1Q0QxODAwOUU3MDMx
IC8qIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzM0Qz
QTNCNTEzMzk2MDBCMDA3MDlCRTQgLyogV0tNZWRpYUNhY2hlTWFuYWdlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlDOUNENDM5RTFCNEIwMjUzMDAyMzlFMzMgLyogV0tNZWRpYVNlc3Npb25NZXRh
ZGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQwNzVGRDEyNEZGMDI3MDA2OEYyMEEgLyog
V0tNdXRhYmxlQXJyYXkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc1RkYxMjRGRjAyNzAw
NjhGMjBBIC8qIFdLTXV0YWJsZURpY3Rpb25hcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE1
QjFDNTAxODk4NjA2RjAwNEZDRjlCIC8qIFdLTmF2aWdhdGlvbi5tbSBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDg1ZDI2
NGY2M2NmNDViOGY3MTUzZTY2ZWU0MDk1ZTQyM2NlYzA3MzIuLmVjYmRkZTQ3NTRjODdlNmZlMDM3
YzU3N2Y2NjM1MzZjYzMzYjZiZjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNS0wNy0wNiAgTWF0dCBSYWpjYSAg
PG1yYWpjYUBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWEgU2Vzc2lvbjogcHJvcGFnYXRlIG1l
dGFkYXRhIGNoYW5nZXMgdG8gVUkgY2xpZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2NjYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cDogQnVpbGQgZml4ZXMgZm9yIHVwZGF0ZWQgUGFnZVVJQ2xpZW50LgorICAgICAgICAoV1RSOjpU
ZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRy
b2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRoT3B0aW9ucyk6CisKIDIwMTUtMDctMDYgIERhbmllbCBC
YXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIxNzA2MzkuCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IDU3Y2Q3ZTdhY2FmNDZlMjgxYzI5Njc3OGVmYzNhZGQ4OWIyNGVkZDQuLmQzOWUwZTA3ZTA0
ZTRlZGE3ODk5ZmJiNDdkNjdjNGMzNzNlMzQyODEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0yNjMsNiArMjYzLDcgQEAgV0tQYWdlUmVmIFRlc3RDb250
cm9sbGVyOjpjcmVhdGVPdGhlclBhZ2UoV0tQYWdlUmVmIG9sZFBhZ2UsIFdLVVJMUmVxdWVzdFJl
ZiwgV0sKICAgICAgICAgMCwgLy8gcnVuSmF2YVNjcmlwdEFsZXJ0CiAgICAgICAgIDAsIC8vIHJ1
bkphdmFTY3JpcHRDb25maXJtCiAgICAgICAgIDAsIC8vIHJ1bkphdmFTY3JpcHRQcm9tcHQKKyAg
ICAgICAgMCwgLy8gbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UKICAgICB9OwogICAgIFdL
UGFnZVNldFBhZ2VVSUNsaWVudChuZXdQYWdlLCAmb3RoZXJQYWdlVUlDbGllbnQuYmFzZSk7CiAg
ICAgCkBAIC01MTEsNiArNTEyLDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmll
d1dpdGhPcHRpb25zKFdLRGljdGlvbmFyeVJlZiBvcHRpb25zKQogICAgICAgICAwLCAvLyBydW5K
YXZhU2NyaXB0QWxlcnQKICAgICAgICAgMCwgLy8gcnVuSmF2YVNjcmlwdENvbmZpcm0KICAgICAg
ICAgMCwgLy8gcnVuSmF2YVNjcmlwdFByb21wdAorICAgICAgICAwLCAvLyBtZWRpYVNlc3Npb25N
ZXRhZGF0YURpZENoYW5nZQogICAgIH07CiAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KG1fbWFp
bldlYlZpZXctPnBhZ2UoKSwgJnBhZ2VVSUNsaWVudC5iYXNlKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>256318</attachid>
            <date>2015-07-07 13:24:12 -0700</date>
            <delta_ts>2015-07-07 13:49:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146660-20150707132313.patch</filename>
            <type>text/plain</type>
            <size>29505</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg2MzU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODJjOTVlNzE0MjM5ZDY4
N2RlZjVjMzI4YTcwNTU5ZWYxMTI1MWZkNy4uZTVlNzhjYjM3NmE3YzA1ZDFlOGU5NWU1OTA3NTJm
NTJjYzQxMDk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE1LTA3LTA2ICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYSBTZXNzaW9uOiBwcm9w
YWdhdGUgbWV0YWRhdGEgY2hhbmdlcyB0byBVSSBjbGllbnRzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDY2NjAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OiBBZGRlZCBXZWJN
ZWRpYVNlc3Npb25NZXRhZGF0YSBhbmQgV0tNZWRpYVNlc3Npb25NZXRhZGF0YS4KKyAgICAgICAg
KiBTaGFyZWQvQVBJL0FQSU9iamVjdC5oOiBBZGRlZCBhIG1lZGlhIHNlc3Npb24gbWV0YWRhdGEg
dHlwZS4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICogU2hhcmVk
L1dlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmNwcDogQWRkZWQgQVBJIGFkYXB0ZXIgZm9yIFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbk1ldGFkYXRhLgorICAgICAgICAoV2ViS2l0OjpXZWJNZWRpYVNlc3Np
b25NZXRhZGF0YTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTZXNzaW9uTWV0
YWRhdGE6OldlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVk
aWFTZXNzaW9uTWV0YWRhdGE6On5XZWJNZWRpYVNlc3Npb25NZXRhZGF0YSk6CisgICAgICAgICog
U2hhcmVkL1dlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmg6IEFkZGVkIEFQSSBhZGFwdGVyIGZvciBX
ZWJDb3JlOjpNZWRpYVNlc3Npb25NZXRhZGF0YS4KKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFT
ZXNzaW9uTWV0YWRhdGE6OnRpdGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTWVkaWFTZXNzaW9u
TWV0YWRhdGE6OmFydGlzdCk6CisgICAgICAgIChXZWJLaXQ6OldlYk1lZGlhU2Vzc2lvbk1ldGFk
YXRhOjphbGJ1bSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOiBBZGRl
ZCAnbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UnIGludGVyZmFjZS4KKyAgICAgICAgKEFQ
STo6VUlDbGllbnQ6Om1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dL
TWVkaWFTZXNzaW9uTWV0YWRhdGEuY3BwOiBBZGRlZCBDIHdyYXBwZXIgZm9yIFdlYk1lZGlhU2Vz
c2lvbk1ldGFkYXRhLgorICAgICAgICAoV0tNZWRpYVNlc3Npb25NZXRhZGF0YUdldFR5cGVJRCk6
CisgICAgICAgIChXS01lZGlhU2Vzc2lvbk1ldGFkYXRhQ29weVRpdGxlKToKKyAgICAgICAgKFdL
TWVkaWFTZXNzaW9uTWV0YWRhdGFDb3B5QXJ0aXN0KToKKyAgICAgICAgKFdLTWVkaWFTZXNzaW9u
TWV0YWRhdGFDb3B5QWxidW0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS01lZGlhU2Vz
c2lvbk1ldGFkYXRhLmg6IEFkZGVkIEMgd3JhcHBlciBmb3IgV2ViTWVkaWFTZXNzaW9uTWV0YWRh
dGEuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6IEZvcndhcmQgJ21lZGlh
U2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlJyB0byBjbGllbnQuCisgICAgICAgIChXS1BhZ2VTZXRQ
YWdlVUlDbGllbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5o
OiBBZGRlZCAnbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UnIGNhbGxiYWNrLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOiBGb3J3YXJkICdtZWRpYVNlc3Npb25NZXRh
ZGF0YURpZENoYW5nZScgdG8gVUkgY2xpZW50LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6Om1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhIGFu
ZCBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhLgorCiAyMDE1LTA3LTA2ICBBbnR0aSBLb2l2aXN0byAg
PGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBXaXRoIG11bHRpcGFydC9yZXBsYWNlZCAoZS5n
LiBtb3Rpb24gSlBFRyksIG1fYnVmZmVyZWREYXRhRm9yQ2FjaGUgZ3Jvd3MgdW5ib3VuZGVkIGlu
IE5ldHdvcmtpbmcgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAppbmRleCA1MGIxNDI5MmYyYTdj
YjUyODk4MDc5NTc0MzFlZGU3MmQyZDY2OTQwLi5hZWVmNDI3MDE5NzJjNWEyYWM4NzRkODRjMWVj
ODZhMmMwMGU3ZGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dApAQCAtMjUxLDYgKzI1MSw3IEBAIHNl
dChXZWJLaXQyX1NPVVJDRVMKICAgICBTaGFyZWQvV2ViSW1hZ2UuY3BwCiAgICAgU2hhcmVkL1dl
YktleWJvYXJkRXZlbnQuY3BwCiAgICAgU2hhcmVkL1dlYktpdDJJbml0aWFsaXplLmNwcAorICAg
IFNoYXJlZC9XZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5jcHAKICAgICBTaGFyZWQvV2ViTWVtb3J5
U2FtcGxlci5jcHAKICAgICBTaGFyZWQvV2ViTW91c2VFdmVudC5jcHAKICAgICBTaGFyZWQvV2Vi
T3BlblBhbmVsUGFyYW1ldGVycy5jcHAKQEAgLTQyNSw2ICs0MjYsNyBAQCBzZXQoV2ViS2l0Ml9T
T1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLSW5zcGVjdG9yLmNwcAogICAgIFVJUHJvY2Vz
cy9BUEkvQy9XS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9D
L1dLTWVkaWFDYWNoZU1hbmFnZXIuY3BwCisgICAgVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFTZXNz
aW9uTWV0YWRhdGEuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvbkFjdGlvblJl
Zi5jcHAKICAgICBVSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YVJlZi5jcHAKICAgICBV
SVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uUmVmLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
QVBJT2JqZWN0LmgKaW5kZXggZWFlZmZmMjYyNTIzMDhiOTViMDU3MmNkZDJmMjdlZjAzNmYyYzBk
My4uZGFiMjA0NzJmM2Q2MDExZGVkMWExNDY1M2ZjYzA3ZGRjZWIwM2M4YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9BUElPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCkBAIC0xNDksNiArMTQ5LDEwIEBAIHB1YmxpYzoKICAg
ICAgICAgV2Vic2l0ZURhdGFSZWNvcmQsCiAgICAgICAgIFdlYnNpdGVEYXRhU3RvcmUsCiAKKyNp
ZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKKyAgICAgICAgTWVkaWFTZXNzaW9uTWV0YWRhdGEsCisj
ZW5kaWYKKwogICAgICAgICAvLyBCdW5kbGUgdHlwZXMKICAgICAgICAgQnVuZGxlLAogICAgICAg
ICBCdW5kbGVCYWNrRm9yd2FyZExpc3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgK
aW5kZXggNTkyNDlmZTEzYjcwZWRlYTZmNjM2NzU2MzJjODgxNzNlOGQzMzMxOS4uMTZiODAwNDM3
NWVkY2I1ZmIyMDFiYjk1NWJiNmQ4Y2IyYzc4MmFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9XS0Jhc2UuaApAQCAtMTEyLDYgKzExMiw3IEBAIHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1
ZVdLSWNvbkRhdGFiYXNlKiBXS0ljb25EYXRhYmFzZVJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLSW5zcGVjdG9yKiBXS0luc3BlY3RvclJlZjsKIHR5cGVkZWYgY29uc3Qgc3RydWN0
IE9wYXF1ZVdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlciogV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
UmVmOwogdHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tNZWRpYUNhY2hlTWFuYWdlciogV0tN
ZWRpYUNhY2hlTWFuYWdlclJlZjsKK3R5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTWVkaWFT
ZXNzaW9uTWV0YWRhdGEqIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGFSZWY7CiB0eXBlZGVmIGNvbnN0
IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRpb25BY3Rpb24qIFdLTmF2aWdhdGlvbkFjdGlvblJlZjsK
IHR5cGVkZWYgY29uc3Qgc3RydWN0IE9wYXF1ZVdLTmF2aWdhdGlvbkRhdGEqIFdLTmF2aWdhdGlv
bkRhdGFSZWY7CiB0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS05hdmlnYXRpb24qIFdLTmF2
aWdhdGlvblJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJNZWRpYVNl
c3Npb25NZXRhZGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVkaWFTZXNzaW9u
TWV0YWRhdGEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwM2QxNzMxYmFmMTYyMGU3MjJiNzI1NDM2MDY5ZmVm
ODljZmVjYWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViTWVk
aWFTZXNzaW9uTWV0YWRhdGEuY3BwCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCIKKwor
I2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
bmFtZXNwYWNlIFdlYktpdCB7CisKK1JlZjxXZWJNZWRpYVNlc3Npb25NZXRhZGF0YT4gV2ViTWVk
aWFTZXNzaW9uTWV0YWRhdGE6OmNyZWF0ZShjb25zdCBNZWRpYVNlc3Npb25NZXRhZGF0YSYgbWV0
YWRhdGEpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViTWVkaWFTZXNzaW9uTWV0YWRh
dGEobWV0YWRhdGEpKTsKK30KKworV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGE6OldlYk1lZGlhU2Vz
c2lvbk1ldGFkYXRhKGNvbnN0IE1lZGlhU2Vzc2lvbk1ldGFkYXRhJiBtZXRhZGF0YSkKKyAgICA6
IG1fbWV0YWRhdGEobWV0YWRhdGEpCit7Cit9CisKK1dlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhOjp+
V2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
KworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjA4NjU0MzgxMzJk
YTVmMzRjZmQzNzA5MGIxZjhmNDA3NmZiOWQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmgKQEAgLTAsMCArMSw1NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGFfaAorI2RlZmluZSBX
ZWJNZWRpYVNlc3Npb25NZXRhZGF0YV9oCisKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKKwor
I2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZXNzaW9uTWV0
YWRhdGEuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhIDogcHVibGljIEFQSTo6T2Jq
ZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6TWVkaWFTZXNzaW9uTWV0YWRhdGE+IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhPiBjcmVhdGUoY29uc3Qg
V2ViQ29yZTo6TWVkaWFTZXNzaW9uTWV0YWRhdGEmKTsKKyAgICB+V2ViTWVkaWFTZXNzaW9uTWV0
YWRhdGEoKTsKKworICAgIFN0cmluZyB0aXRsZSgpIGNvbnN0IHsgcmV0dXJuIG1fbWV0YWRhdGEu
dGl0bGUoKTsgfQorICAgIFN0cmluZyBhcnRpc3QoKSBjb25zdCB7IHJldHVybiBtX21ldGFkYXRh
LmFydGlzdCgpOyB9CisgICAgU3RyaW5nIGFsYnVtKCkgY29uc3QgeyByZXR1cm4gbV9tZXRhZGF0
YS5hbGJ1bSgpOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViTWVkaWFTZXNzaW9uTWV0
YWRhdGEoY29uc3QgV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWV0YWRhdGEmKTsKKworICAgIFdlYkNv
cmU6Ok1lZGlhU2Vzc2lvbk1ldGFkYXRhIG1fbWV0YWRhdGE7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TRVNTSU9OKQorCisjZW5kaWYgLy8g
V2ViTWVkaWFTZXNzaW9uTWV0YWRhdGFfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9B
UElVSUNsaWVudC5oCmluZGV4IDY1MGU2MjZhMzEyNjU3YjVkYjNkNDRmNTUwYTMwZGQ3NDQxN2Nl
ODUuLmMyMTM0MGE4MGI2MmJkZmJhMGRmMjNlOTQwMTIwOTgyMGI4NzhiYWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTU3LDYgKzU3LDEwIEBAIGNs
YXNzIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHk7CiBjbGFzcyBXZWJQYWdlUHJveHk7
CiBzdHJ1Y3QgTmF2aWdhdGlvbkFjdGlvbkRhdGE7CiBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5EYXRh
OworCisjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCitjbGFzcyBXZWJNZWRpYVNlc3Npb25NZXRh
ZGF0YTsKKyNlbmRpZgogfQogCiBuYW1lc3BhY2UgQVBJIHsKQEAgLTE1MCw2ICsxNTQsMTAgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKFdlYktp
dDo6V2ViUGFnZVByb3h5JikgeyB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKKyAgICB2
aXJ0dWFsIHZvaWQgbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdl
UHJveHkmLCBXZWJLaXQ6OldlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhKikgeyB9CisjZW5kaWYKKwog
I2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIFJldGFpblB0cjxOU0FycmF5PiBhY3Rpb25z
Rm9yRWxlbWVudChfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqLCBSZXRhaW5QdHI8TlNBcnJheT4g
ZGVmYXVsdEFjdGlvbnMpIHsgcmV0dXJuIFdURjo6bW92ZShkZWZhdWx0QWN0aW9ucyk7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGlkTm90SGFuZGxlVGFwQXNDbGljayhjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dL
QVBJQ2FzdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCmlu
ZGV4IDlkYzE1NmM5MTUzOWVhZTFlNmVmM2FiNTE2M2E2MTAyYTUxMTEzMDEuLjQ3NTEyYmQ2MTBm
MWQzYTcwMmZlYzkzYjllODhiMTM0OGFjYzgxODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTkyLDYgKzkyLDcgQEAgY2xhc3MgV2ViSGl0VGVzdFJl
c3VsdDsKIGNsYXNzIFdlYkljb25EYXRhYmFzZTsKIGNsYXNzIFdlYkluc3BlY3RvclByb3h5Owog
Y2xhc3MgV2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eTsKK2NsYXNzIFdlYk1lZGlhU2Vzc2lvbk1l
dGFkYXRhOwogY2xhc3MgV2ViTm90aWZpY2F0aW9uOwogY2xhc3MgV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5OwogY2xhc3MgV2ViTm90aWZpY2F0aW9uUHJvdmlkZXI7CkBAIC0xMzUsNiArMTM2
LDcgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLSGl0VGVzdFJlc3VsdFJlZiwgV2ViSGl0VGVzdFJl
c3VsdCkKIFdLX0FERF9BUElfTUFQUElORyhXS0ljb25EYXRhYmFzZVJlZiwgV2ViSWNvbkRhdGFi
YXNlKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLSW5zcGVjdG9yUmVmLCBXZWJJbnNwZWN0b3JQcm94
eSkKIFdLX0FERF9BUElfTUFQUElORyhXS01lZGlhQ2FjaGVNYW5hZ2VyUmVmLCBXZWJNZWRpYUNh
Y2hlTWFuYWdlclByb3h5KQorV0tfQUREX0FQSV9NQVBQSU5HKFdLTWVkaWFTZXNzaW9uTWV0YWRh
dGFSZWYsIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhKQogV0tfQUREX0FQSV9NQVBQSU5HKFdLTmF2
aWdhdGlvbkFjdGlvblJlZiwgQVBJOjpOYXZpZ2F0aW9uQWN0aW9uKQogV0tfQUREX0FQSV9NQVBQ
SU5HKFdLTmF2aWdhdGlvbkRhdGFSZWYsIEFQSTo6TmF2aWdhdGlvbkRhdGEpCiBXS19BRERfQVBJ
X01BUFBJTkcoV0tOYXZpZ2F0aW9uUmVmLCBBUEk6Ok5hdmlnYXRpb24pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYVNlc3Npb25NZXRhZGF0YS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tNZWRpYVNlc3Npb25NZXRhZGF0YS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjM4MDE1ZDgzMmNkNjhiZDdiNmRlMGJmYWRmODk0ZWU1YTRlY2NiMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS01lZGlh
U2Vzc2lvbk1ldGFkYXRhLmNwcApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLTWVkaWFTZXNzaW9uTWV0YWRhdGEuaCIKKworI2lu
Y2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmgi
CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK1dLVHlwZUlEIFdLTWVkaWFTZXNzaW9uTWV0
YWRhdGFHZXRUeXBlSUQoKQoreworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQorICAgIHJldHVy
biB0b0FQSShXZWJNZWRpYVNlc3Npb25NZXRhZGF0YTo6QVBJVHlwZSk7CisjZWxzZQorICAgIHJl
dHVybiB0b0FQSShBUEk6Ok9iamVjdDo6VHlwZTo6TnVsbCk7CisjZW5kaWYKK30KKworV0tTdHJp
bmdSZWYgV0tNZWRpYVNlc3Npb25NZXRhZGF0YUNvcHlUaXRsZShXS01lZGlhU2Vzc2lvbk1ldGFk
YXRhUmVmIG1ldGFkYXRhKQoreworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQorICAgIHJldHVy
biB0b0NvcGllZEFQSSh0b0ltcGwobWV0YWRhdGEpLT50aXRsZSgpKTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKG1ldGFkYXRhKTsKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCitXS1N0cmlu
Z1JlZiBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhQ29weUFydGlzdChXS01lZGlhU2Vzc2lvbk1ldGFk
YXRhUmVmIG1ldGFkYXRhKQoreworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQorICAgIHJldHVy
biB0b0NvcGllZEFQSSh0b0ltcGwobWV0YWRhdGEpLT5hcnRpc3QoKSk7CisjZWxzZQorICAgIFVO
VVNFRF9QQVJBTShtZXRhZGF0YSk7CisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKworV0tTdHJp
bmdSZWYgV0tNZWRpYVNlc3Npb25NZXRhZGF0YUNvcHlBbGJ1bShXS01lZGlhU2Vzc2lvbk1ldGFk
YXRhUmVmIG1ldGFkYXRhKQoreworI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQorICAgIHJldHVy
biB0b0NvcGllZEFQSSh0b0ltcGwobWV0YWRhdGEpLT5hbGJ1bSgpKTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKG1ldGFkYXRhKTsKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLTWVkaWFTZXNzaW9uTWV0YWRhdGEu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS01lZGlhU2Vzc2lvbk1ldGFkYXRh
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMjQwNGM4OTliMWUxODc2N2Y4NTRjNTkyMmY4ZTM3YjgyYmMzY2U1ZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS01lZGlh
U2Vzc2lvbk1ldGFkYXRhLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
V0tNZWRpYVNlc3Npb25NZXRhZGF0YV9oCisjZGVmaW5lIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGFf
aAorCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorCisjaWZuZGVmIF9fY3BsdXNwbHVzCisj
aW5jbHVkZSA8c3RkYm9vbC5oPgorI2VuZGlmCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJu
ICJDIiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLVHlwZUlEIFdLTWVkaWFTZXNzaW9uTWV0YWRh
dGFHZXRUeXBlSUQoKTsKKworV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLTWVkaWFTZXNzaW9uTWV0
YWRhdGFDb3B5VGl0bGUoV0tNZWRpYVNlc3Npb25NZXRhZGF0YVJlZiBtZXRhZGF0YSk7CitXS19F
WFBPUlQgV0tTdHJpbmdSZWYgV0tNZWRpYVNlc3Npb25NZXRhZGF0YUNvcHlBcnRpc3QoV0tNZWRp
YVNlc3Npb25NZXRhZGF0YVJlZiBtZXRhZGF0YSk7CitXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tN
ZWRpYVNlc3Npb25NZXRhZGF0YUNvcHlBbGJ1bShXS01lZGlhU2Vzc2lvbk1ldGFkYXRhUmVmIG1l
dGFkYXRhKTsKKworI2lmZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8qIFdL
TWVkaWFTZXNzaW9uTWV0YWRhdGFfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcAppbmRleCAzZTk3NjJjYWE3OTZiNzRiODJhZjliMDU5YzhlOWJkMzExZDU3MjFi
Li4zODQ3MTYyMDA2MjI0MGMyYmNlOGE2NDkxODI0ZDFkNDlkYWQ4MjA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtODAsNiArODAsNyBAQAogI2VuZGlm
CiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKKyNpbmNsdWRlICJXZWJNZWRpYVNlc3Npb25N
ZXRhZGF0YS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFFdmVudFR5cGVzLmg+CiAjZW5kaWYK
IApAQCAtMTgwMCw2ICsxODAxLDE2IEBAIHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFn
ZVJlZiBwYWdlUmVmLCBjb25zdCBXS1BhZ2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50CiAKICAgICAg
ICAgICAgIG1fY2xpZW50LmRpZENsaWNrQXV0b0ZpbGxCdXR0b24odG9BUEkoJnBhZ2UpLCB0b0FQ
SSh1c2VySW5mbyksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiAgICAgICAgIH0KKworI2lm
IEVOQUJMRShNRURJQV9TRVNTSU9OKQorICAgICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFTZXNzaW9u
TWV0YWRhdGFEaWRDaGFuZ2UoV2ViUGFnZVByb3h5JiBwYWdlLCBXZWJNZWRpYVNlc3Npb25NZXRh
ZGF0YSogbWV0YWRhdGEpIG92ZXJyaWRlCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghbV9j
bGllbnQubWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgICAgICBtX2NsaWVudC5tZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5n
ZSh0b0FQSSgmcGFnZSksIHRvQVBJKG1ldGFkYXRhKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZv
KTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgfTsKIAogICAgIHRvSW1wbChwYWdlUmVmKS0+c2V0
VUlDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxVSUNsaWVudD4od2tDbGllbnQpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKaW5kZXggN2MyYmQw
YmZjN2U1ZTBmNGM4MGFhYzM5YTc0OWJmOWQ4NTRiZDdlNy4uMzZmOTZhZjg4ZTJiYTdmMzIwZTg2
MDdmZTM0OTJiOWQ5MWY5ZjU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZVVJQ2xpZW50LmgKQEAgLTkxLDYgKzkxLDcgQEAgdHlwZWRlZiB2b2lkICgqV0tQ
YWdlRGlkQ2FuY2VsVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91c2VQcmVzc0NhbGxiYWNrKShXS1Bh
Z2VSZWYKIHR5cGVkZWYgdm9pZCAoKldLUGFnZUlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlQ2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9p
ZCAoKldLUGFnZURlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJh
Y2spKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1NlY3VyaXR5T3JpZ2luUmVm
IG9yaWdpbiwgV0tVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFJlZiBwZXJtaXNzaW9uUmVxdWVz
dCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CiB0eXBlZGVmIHZvaWQgKCpXS1BhZ2VEaWRDbGlj
a0F1dG9GaWxsQnV0dG9uQ2FsbGJhY2spKFdLUGFnZVJlZiBwYWdlLCBXS1R5cGVSZWYgdXNlckRh
dGEsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tQYWdlTWVkaWFT
ZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2VDYWxsYmFjaykoV0tQYWdlUmVmIHBhZ2UsIFdLTWVkaWFT
ZXNzaW9uTWV0YWRhdGFSZWYgbWV0YWRhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiAv
LyBEZXByZWNhdGVkCiB0eXBlZGVmIFdLUGFnZVJlZiAoKldLUGFnZUNyZWF0ZU5ld1BhZ2VDYWxs
YmFja19kZXByZWNhdGVkRm9yVXNlV2l0aFYwKShXS1BhZ2VSZWYgcGFnZSwgV0tEaWN0aW9uYXJ5
UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0
dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKQEAgLTQ1Miw2ICs0NTMs
NyBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFY1IHsKICAgICBXS1BhZ2VSdW5KYXZh
U2NyaXB0QWxlcnRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bkphdmFTY3JpcHRBbGVydDsKICAgICBXS1BhZ2VSdW5KYXZhU2NyaXB0Q29uZmlybUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bkphdmFTY3JpcHRDb25maXJtOwog
ICAgIFdLUGFnZVJ1bkphdmFTY3JpcHRQcm9tcHRDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcnVuSmF2YVNjcmlwdFByb21wdDsKKyAgICBXS1BhZ2VNZWRpYVNlc3Np
b25NZXRhZGF0YURpZENoYW5nZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgIG1lZGlh
U2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlOwogfSBXS1BhZ2VVSUNsaWVudFY1OwogCiBlbnVtIHsg
a1dLUGFnZVVJQ2xpZW50Q3VycmVudFZlcnNpb24gV0tfRU5VTV9ERVBSRUNBVEVEKCJVc2UgYW4g
ZXhwbGljaXQgdmVyc2lvbiBudW1iZXIgaW5zdGVhZCIpID0gMiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3OWQyM2UwNTg0ZjI5NDAzNDkwYjY3ZTAw
OTFiMGVhZDM3ZmEzNWFmLi5lMjg5ZmU0YTU0YWY2YTIxNDEyY2Q2NWJlNWYzZjAxMWYzNzI4YzQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTU5LDYg
KzE1OSwxMSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oPgog
I2VuZGlmCiAKKyNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKKyNpbmNsdWRlICJXZWJNZWRpYVNl
c3Npb25NZXRhZGF0YS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZXNzaW9uTWV0YWRhdGEu
aD4KKyNlbmRpZgorCiAvLyBUaGlzIGNvbnRyb2xzIHdoYXQgc3RyYXRlZ3kgd2UgdXNlIGZvciBt
b3VzZSB3aGVlbCBjb2FsZXNjaW5nLgogI2RlZmluZSBNRVJHRV9XSEVFTF9FVkVOVFMgMQogCkBA
IC01ODA2LDYgKzU4MTEsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aXNQbGF5aW5nTWVkaWFEaWRD
aGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzIHN0YXRlKQogI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OKQogdm9pZCBXZWJQYWdlUHJveHk6Om1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlk
Q2hhbmdlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1ldGFkYXRhJiBtZXRhZGF0YSkKIHsK
KyAgICBSZWY8V2ViTWVkaWFTZXNzaW9uTWV0YWRhdGE+IHdlYk1ldGFkYXRhID0gV2ViTWVkaWFT
ZXNzaW9uTWV0YWRhdGE6OmNyZWF0ZShtZXRhZGF0YSk7CisgICAgbV91aUNsaWVudC0+bWVkaWFT
ZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UoKnRoaXMsIHdlYk1ldGFkYXRhLnB0cigpKTsKIH0KICNl
bmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggZjZiMzRmODgwNjk4YzcwZWZiZGY5ZDMwODQwMjdkMmRhZTA0NDQ4MC4uMjJj
N2I2ZGRkZDA3MTJmMWExZjQ4M2UzMmUyZDNhNjk0YTE5NzU5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTY1OSw2ICsxNjU5
LDEwIEBACiAJCUM1RTFBRkVGMTZCMjEwMjkwMDZDQzFGMiAvKiBBUElXZWJBcmNoaXZlUmVzb3Vy
Y2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMzI5
RDlGMTZBQ0Q0NzgwMDMxNkRFMiAvKiBBUElXZWJBcmNoaXZlUmVzb3VyY2UuaCAqLzsgfTsKIAkJ
QzVGQTFFRDMxOEUxMDYyMjAwQjNGNDAyIC8qIFdLQWlyUGxheVJvdXRlUGlja2VyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNUZBMUVEMTE4RTEwNjIy
MDBCM0Y0MDIgLyogV0tBaXJQbGF5Um91dGVQaWNrZXIuaCAqLzsgfTsKIAkJQzVGQTFFRDQxOEUx
MDYyMjAwQjNGNDAyIC8qIFdLQWlyUGxheVJvdXRlUGlja2VyLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzVGQTFFRDIxOEUxMDYyMjAwQjNGNDAyIC8q
IFdLQWlyUGxheVJvdXRlUGlja2VyLm1tICovOyB9OworCQlDOUNENDM5NzFCNEIwMDE5MDAyMzlF
MzMgLyogV2ViTWVkaWFTZXNzaW9uTWV0YWRhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzlDRDQzOTMxQjRCMDAwRTAwMjM5RTMzIC8qIFdlYk1l
ZGlhU2Vzc2lvbk1ldGFkYXRhLmNwcCAqLzsgfTsKKwkJQzlDRDQzOTgxQjRCMDAxRDAwMjM5RTMz
IC8qIFdlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDOUNENDM5NDFCNEIwMDBFMDAyMzlFMzMgLyogV2ViTWVkaWFT
ZXNzaW9uTWV0YWRhdGEuaCAqLzsgfTsKKwkJQzlDRDQzOUQxQjRCMDI0RjAwMjM5RTMzIC8qIFdL
TWVkaWFTZXNzaW9uTWV0YWRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEM5Q0Q0MzlBMUI0QjAyNDIwMDIzOUUzMyAvKiBXS01lZGlhU2Vzc2lvbk1l
dGFkYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJQzlDRDQzOUUxQjRCMDI1MzAwMjM5RTMzIC8qIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGEuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzlDRDQzOTkx
QjRCMDI0MjAwMjM5RTMzIC8qIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGEuY3BwICovOyB9OwogCQlD
RDAwM0E1MjE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDAwM0E1MDE5
RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHAgKi87IH07CiAJ
CUNEMDAzQTUzMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDAwM0E1MTE5
RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5oICovOyB9OwogCQlD
RDE5QTI2RDFBMTNFODJBMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUEyNjkx
QTEzRTgyMDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmNwcCAqLzsgfTsK
QEAgLTM4NzksNiArMzg4MywxMCBAQAogCQlDNTlDNEE1NzE4QjgxMTc0MDA3QkRDQjYgLyogQXNz
aXN0ZWROb2RlSW5mb3JtYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QXNzaXN0ZWROb2RlSW5mb3JtYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QzVGQTFFRDExOEUxMDYyMjAwQjNGNDAyIC8qIFdLQWlyUGxheVJvdXRlUGlja2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLQWlyUGxheVJvdXRlUGlja2VyLmg7IHBhdGgg
PSBpb3MvZm9ybXMvV0tBaXJQbGF5Um91dGVQaWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQzVGQTFFRDIxOEUxMDYyMjAwQjNGNDAyIC8qIFdLQWlyUGxheVJvdXRlUGlja2Vy
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tBaXJQbGF5Um91
dGVQaWNrZXIubW07IHBhdGggPSBpb3MvZm9ybXMvV0tBaXJQbGF5Um91dGVQaWNrZXIubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUM5Q0Q0MzkzMUI0QjAwMEUwMDIzOUUzMyAvKiBX
ZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUM5Q0Q0Mzk0MUI0QjAwMEUwMDIzOUUzMyAvKiBXZWJNZWRpYVNlc3Npb25NZXRh
ZGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJNZWRpYVNlc3Npb25N
ZXRhZGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDOUNENDM5OTFCNEIwMjQy
MDAyMzlFMzMgLyogV0tNZWRpYVNlc3Npb25NZXRhZGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzlDRDQzOUExQjRCMDI0MjAwMjM5RTMzIC8qIFdLTWVkaWFT
ZXNzaW9uTWV0YWRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tNZWRp
YVNlc3Npb25NZXRhZGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDAwM0E1
MDE5RDQ5QjVEMDA1QUJDRTAgLyogV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2Vy
LmNwcDsgcGF0aCA9IE1lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMDAzQTUxMTlENDlCNUQwMDVBQkNFMCAvKiBX
ZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdlYk1lZGlhS2V5U3RvcmFnZU1hbmFnZXIuaDsgcGF0aCA9IE1lZGlhQ2FjaGUvV2ViTWVk
aWFLZXlTdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDE5
QTI2OTFBMTNFODIwMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDc2Myw2ICs0NzcxLDgg
QEAKIAkJCQlDMDMzN0REMjEyN0EyQTBFMDA4RkY0RjQgLyogV2ViS2V5Ym9hcmRFdmVudC5jcHAg
Ki8sCiAJCQkJQkM5QkE1MDIxNjk3QzQ1MzAwRTQ0NjE2IC8qIFdlYktpdDJJbml0aWFsaXplLmNw
cCAqLywKIAkJCQlCQzlCQTUwMzE2OTdDNDUzMDBFNDQ2MTYgLyogV2ViS2l0MkluaXRpYWxpemUu
aCAqLywKKwkJCQlDOUNENDM5MzFCNEIwMDBFMDAyMzlFMzMgLyogV2ViTWVkaWFTZXNzaW9uTWV0
YWRhdGEuY3BwICovLAorCQkJCUM5Q0Q0Mzk0MUI0QjAwMEUwMDIzOUUzMyAvKiBXZWJNZWRpYVNl
c3Npb25NZXRhZGF0YS5oICovLAogCQkJCTkwNTYyMEU4MTJCQzI0OEIwMDA3OTlCNiAvKiBXZWJN
ZW1vcnlTYW1wbGVyLmNwcCAqLywKIAkJCQk5MDU2MjBFOTEyQkMyNDhCMDAwNzk5QjYgLyogV2Vi
TWVtb3J5U2FtcGxlci5oICovLAogCQkJCUMwMzM3REFGMTI3QTI4RDAwMDhGRjRGNCAvKiBXZWJN
b3VzZUV2ZW50LmNwcCAqLywKQEAgLTYzMDIsNiArNjMxMiw4IEBACiAJCQkJMkQ3OTBBOUUxQUQ3
MTY0OTAwQUI5MEIzIC8qIFdLTGF5b3V0TW9kZS5oICovLAogCQkJCTMzRDNBM0IzMTMzOTYwMEIw
MDcwOUJFNCAvKiBXS01lZGlhQ2FjaGVNYW5hZ2VyLmNwcCAqLywKIAkJCQkzM0QzQTNCNDEzMzk2
MDBCMDA3MDlCRTQgLyogV0tNZWRpYUNhY2hlTWFuYWdlci5oICovLAorCQkJCUM5Q0Q0Mzk5MUI0
QjAyNDIwMDIzOUUzMyAvKiBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhLmNwcCAqLywKKwkJCQlDOUNE
NDM5QTFCNEIwMjQyMDAyMzlFMzMgLyogV0tNZWRpYVNlc3Npb25NZXRhZGF0YS5oICovLAogCQkJ
CUMwOUFFNUU4MTI1MjU3QzIwMDI1ODI1RCAvKiBXS05hdGl2ZUV2ZW50LmggKi8sCiAJCQkJMkQz
QTY1RDgxQTdDM0ExRjAwQ0FDNjM3IC8qIFdLTmF2aWdhdGlvbkFjdGlvblJlZi5jcHAgKi8sCiAJ
CQkJMkQzQTY1RDkxQTdDM0ExRjAwQ0FDNjM3IC8qIFdLTmF2aWdhdGlvbkFjdGlvblJlZi5oICov
LApAQCAtNzk2Nyw2ICs3OTc5LDcgQEAKIAkJCQkzM0QzQTNCQjEzMzk2MDYyMDA3MDlCRTQgLyog
V2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzNEM0EzQ0Ix
MzM5NjE3OTAwNzA5QkU0IC8qIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQ0QwMDNBNTMxOUQ0OUI1RDAwNUFCQ0UwIC8qIFdlYk1lZGlhS2V5
U3RvcmFnZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUM5Q0Q0Mzk4MUI0QjAwMUQwMDIz
OUUzMyAvKiBXZWJNZWRpYVNlc3Npb25NZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQz
RUY0NDMxOTE3NjQ2MzAwMDM0MTg0IC8qIFdlYk1lbW9yeVByZXNzdXJlSGFuZGxlcklPUy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTA5ODU0RUQxMkJDNEUxODAwMEFEMDgwIC8qIFdlYk1lbW9yeVNh
bXBsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRjY5RjlBMTE3NkNFRDYwMDQ3MUE1MiAvKiBX
ZWJOYXZpZ2F0aW9uRGF0YVN0b3JlLmggaW4gSGVhZGVycyAqLywKQEAgLTgxODQsNiArODE5Nyw3
IEBACiAJCQkJNTFBOUUxMEIxMzE1Q0QxODAwOUU3MDMxIC8qIFdLS2V5VmFsdWVTdG9yYWdlTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ3OTBBOUYxQUQ3MTY0OTAwQUI5MEIzIC8qIFdL
TGF5b3V0TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzNEM0EzQjYxMzM5NjAwQjAwNzA5QkU0
IC8qIFdLTWVkaWFDYWNoZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUM5Q0Q0MzlEMUI0
QjAyNEYwMDIzOUUzMyAvKiBXS01lZGlhU2Vzc2lvbk1ldGFkYXRhLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzQwNzVGRTEyNEZGMDI3MDA2OEYyMEEgLyogV0tNdXRhYmxlQXJyYXkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDNDA3NjAwMTI0RkYwMjcwMDY4RjIwQSAvKiBXS011dGFibGVEaWN0aW9u
YXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlDMDlBRTVFOTEyNTI1N0MyMDAyNTgyNUQgLyogV0tO
YXRpdmVFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC05NzgyLDYgKzk3OTYsNyBAQAogCQkJCTMz
RDNBM0JBMTMzOTYwNjIwMDcwOUJFNCAvKiBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTMzRDNBM0NBMTMzOTYxNzkwMDcwOUJFNCAvKiBXZWJNZWRpYUNh
Y2hlTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNE
MDAzQTUyMTlENDlCNUQwMDVBQkNFMCAvKiBXZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUM5Q0Q0Mzk3MUI0QjAwMTkwMDIzOUUzMyAvKiBXZWJNZWRpYVNl
c3Npb25NZXRhZGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDNFRjQ0MjE5MTc2NDYzMDAw
MzQxODQgLyogV2ViTWVtb3J5UHJlc3N1cmVIYW5kbGVySU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTA5ODU0RUMxMkJDNEUxNzAwMEFEMDgwIC8qIFdlYk1lbW9yeVNhbXBsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTA5ODU0RUUxMkJDNEUxODAwMEFEMDgwIC8qIFdlYk1lbW9yeVNhbXBs
ZXIubWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC05OTY4LDYgKzk5ODMsNyBAQAogCQkJCUE1NDI5
M0E1MTk1QTQzREQwMDI3ODJDNyAvKiBXS0luc3BlY3Rvck5vZGVTZWFyY2hHZXN0dXJlUmVjb2du
aXplci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxQTlFMTBBMTMxNUNEMTgwMDlFNzAzMSAvKiBX
S0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzNEM0EzQjUx
MzM5NjAwQjAwNzA5QkU0IC8qIFdLTWVkaWFDYWNoZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJQzlDRDQzOUUxQjRCMDI1MzAwMjM5RTMzIC8qIFdLTWVkaWFTZXNzaW9uTWV0YWRhdGEu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0MDc1RkQxMjRGRjAyNzAwNjhGMjBBIC8qIFdLTXV0
YWJsZUFycmF5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDA3NUZGMTI0RkYwMjcwMDY4RjIw
QSAvKiBXS011dGFibGVEaWN0aW9uYXJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBNUIxQzUw
MTg5ODYwNkYwMDRGQ0Y5QiAvKiBXS05hdmlnYXRpb24ubW0gaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4NWQyNjRmNjNj
ZjQ1YjhmNzE1M2U2NmVlNDA5NWU0MjNjZWMwNzMyLi5lY2JkZGU0NzU0Yzg3ZTZmZTAzN2M1Nzdm
NjYzNTM2Y2MzM2I2YmY2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTUtMDctMDYgIE1hdHQgUmFqY2EgIDxtcmFq
Y2FAYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhIFNlc3Npb246IHByb3BhZ2F0ZSBtZXRhZGF0
YSBjaGFuZ2VzIHRvIFVJIGNsaWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE0NjY2MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6IEJ1
aWxkIGZpeGVzIGZvciB1cGRhdGVkIFBhZ2VVSUNsaWVudC4KKyAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OmNyZWF0ZU90aGVyUGFnZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVy
OjpjcmVhdGVXZWJWaWV3V2l0aE9wdGlvbnMpOgorCiAyMDE1LTA3LTA2ICBEYW5pZWwgQmF0ZXMg
IDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCBy
MTcwNjM5LgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA1
N2NkN2U3YWNhZjQ2ZTI4MWMyOTY3NzhlZmMzYWRkODliMjRlZGQ0Li5kMzllMGUwN2UwNGU0ZWRh
Nzg5OWZiYjQ3ZDY3YzRjMzczZTM0MjgxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcApAQCAtMjYzLDYgKzI2Myw3IEBAIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxl
cjo6Y3JlYXRlT3RoZXJQYWdlKFdLUGFnZVJlZiBvbGRQYWdlLCBXS1VSTFJlcXVlc3RSZWYsIFdL
CiAgICAgICAgIDAsIC8vIHJ1bkphdmFTY3JpcHRBbGVydAogICAgICAgICAwLCAvLyBydW5KYXZh
U2NyaXB0Q29uZmlybQogICAgICAgICAwLCAvLyBydW5KYXZhU2NyaXB0UHJvbXB0CisgICAgICAg
IDAsIC8vIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlCiAgICAgfTsKICAgICBXS1BhZ2VT
ZXRQYWdlVUlDbGllbnQobmV3UGFnZSwgJm90aGVyUGFnZVVJQ2xpZW50LmJhc2UpOwogICAgIApA
QCAtNTExLDYgKzUxMiw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNyZWF0ZVdlYlZpZXdXaXRo
T3B0aW9ucyhXS0RpY3Rpb25hcnlSZWYgb3B0aW9ucykKICAgICAgICAgMCwgLy8gcnVuSmF2YVNj
cmlwdEFsZXJ0CiAgICAgICAgIDAsIC8vIHJ1bkphdmFTY3JpcHRDb25maXJtCiAgICAgICAgIDAs
IC8vIHJ1bkphdmFTY3JpcHRQcm9tcHQKKyAgICAgICAgMCwgLy8gbWVkaWFTZXNzaW9uTWV0YWRh
dGFEaWRDaGFuZ2UKICAgICB9OwogICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudChtX21haW5XZWJW
aWV3LT5wYWdlKCksICZwYWdlVUlDbGllbnQuYmFzZSk7CiAK
</data>
<flag name="review"
          id="281386"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>