<?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>222411</bug_id>
          
          <creation_ts>2021-02-25 03:49:48 -0800</creation_ts>
          <short_desc>WebGL context count is not limited for GPU process</short_desc>
          <delta_ts>2022-03-23 13:17:15 -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>WebGL</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=234536</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=237464</see_also>
          <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>217211</blocked>
    
    <blocked>238280</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kimmo Kinnunen">kkinnunen</reporter>
          <assigned_to name="Kimmo Kinnunen">kkinnunen</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jonlee</cc>
    
    <cc>kbr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1733279</commentid>
    <comment_count>0</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-02-25 03:49:48 -0800</bug_when>
    <thetext>WebGL context count is not limited for GPU process

Without GPU process, we have 20 context limit per web process.
With GPU process, we don&apos;t have any limit.


webgl/many-contexts-access-after-loss.html [ Failure ]
webgl/max-active-contexts-console-warning.html [ Failure ]
webgl/max-active-contexts-gc.html [ Failure ]
webgl/max-active-contexts-oldest-context-lost.html [ Failure ]
webgl/max-active-contexts-webglcontextlost-prevent-default.html [ Timeout ]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735736</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-04 01:35:09 -0800</bug_when>
    <thetext>&lt;rdar://problem/75025960&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847359</commentid>
    <comment_count>2</comment_count>
      <attachid>453597</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-02 06:09:39 -0800</bug_when>
    <thetext>Created attachment 453597
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847361</commentid>
    <comment_count>3</comment_count>
      <attachid>453599</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-02 06:14:15 -0800</bug_when>
    <thetext>Created attachment 453599
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847366</commentid>
    <comment_count>4</comment_count>
      <attachid>453601</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-02 06:35:14 -0800</bug_when>
    <thetext>Created attachment 453601
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847429</commentid>
    <comment_count>5</comment_count>
      <attachid>453616</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-02 08:45:17 -0800</bug_when>
    <thetext>Created attachment 453616
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847579</commentid>
    <comment_count>6</comment_count>
      <attachid>453616</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2022-03-02 12:46:52 -0800</bug_when>
    <thetext>Comment on attachment 453616
Patch

Looks great. r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847802</commentid>
    <comment_count>7</comment_count>
      <attachid>453714</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-03 02:57:54 -0800</bug_when>
    <thetext>Created attachment 453714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847807</commentid>
    <comment_count>8</comment_count>
      <attachid>453716</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-03 03:11:57 -0800</bug_when>
    <thetext>Created attachment 453716
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847826</commentid>
    <comment_count>9</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-03 04:22:19 -0800</bug_when>
    <thetext>*** Bug 236964 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848002</commentid>
    <comment_count>10</comment_count>
      <attachid>453714</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-03-03 11:28:01 -0800</bug_when>
    <thetext>Comment on attachment 453714
Patch

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

&gt; Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp:817
&gt; +        auto it = contexts.begin();
&gt; +        auto* earliest = *it;
&gt; +        for (++it; it != contexts.end(); ++it) {
&gt; +            if (earliest-&gt;activeOrdinal() &gt; (*it)-&gt;activeOrdinal())
&gt; +                earliest = *it;
&gt; +        }

I might have written this with a modern for loop even though the loop is less tight:

    WebGLRenderingContextBase* earliest = nullptr;
    for (auto&amp; context : contexts) {
        if (!earliest || earliest-&gt;activeOrdinal() &gt; context.activeOrdinal())
            earliest = &amp;context;
    }

Or using an algorithm:

    auto* earliest = *std::min_element(contexts.begin(), contexts.end(), [] (auto&amp; a, auto&amp; b) {
        return a.activeOrdinal() &gt; b.activeOrdinal();
    });

Or some day (not now):

    auto* earliest = std::ranges::min_element(contexts, [] (auto&amp; a, auto&amp; b) {
        return a.activeOrdinal() &gt; b.activeOrdinal();
    });

I may have the lambda backwards, not sure, so please don’t just paste.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848176</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-03 22:04:14 -0800</bug_when>
    <thetext>Committed r290816 (248052@main): &lt;https://commits.webkit.org/248052@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453716.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848217</commentid>
    <comment_count>12</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-03-04 02:32:24 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #10)
&gt; Or using an algorithm:
&gt; 
&gt;     auto* earliest = *std::min_element(contexts.begin(), contexts.end(), []
&gt; (auto&amp; a, auto&amp; b) {
&gt;         return a.activeOrdinal() &gt; b.activeOrdinal();
&gt;     });
&gt; 


Thanks for the suggestion, bug 237464 tracks this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453597</attachid>
            <date>2022-03-02 06:09:39 -0800</date>
            <delta_ts>2022-03-02 06:29:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222411-20220302160938.patch</filename>
            <type>text/plain</type>
            <size>31035</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDVlYTA0ODY3MTMxNjZi
YWI2ZGQzYzgwNmMzNTJlNWUxMDViMGFmZC4uMmVhODg0YzE0YWUxMWNjZDVhNGNiY2MyOGFiYTVm
YmM2ZGRiNmQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIyLTAzLTAyICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY29udGV4
dCBjb3VudCBpcyBub3QgbGltaXRlZCBmb3IgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQxMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGNvbnRleHQgbGltaXQgZnJv
bSB0aGUgR3JhcGhpY3NDb250ZXh0R0wgaW1wbGVtZW50YXRpb24KKyAgICAgICAgbGV2ZWwgdG8g
V2ViR0xSZW5kZXJpbmdDb250ZXh0IGxldmVsLiBUaGlzIHdheSB0aGUgbGltaXQKKyAgICAgICAg
aXMgYXBwbGllZCB0byB0aGUgR1BVUCBpbXBsZW1lbnRhdGlvbiB0b28uCisKKyAgICAgICAgUmVj
eWNsZSB0aGUgY29udGV4dCB3aXRoIHRoZSBlYXJsaWVzdCBhY3Rpdml0eSAoZHJhdywgcmVhZHBp
eGVscykKKyAgICAgICAgaW5zdGVhZCBvZiB0aGUgY3JlYXRpb24gb3JkZXIuCisKKyAgICAgICAg
U3RvcmVzIHRoZSBXZWJHTCBjb250ZXh0cyB0byBwZXItdGhyZWFkIHNldCBhbmQgbGltaXRzIHRo
ZSBzaXplIG9mIHRoZSBzZXQuCisgICAgICAgIFRoZSBzZXQgaXMgcGVyLXRocmVhZCB0byBzdXBw
b3J0IFdlYkdMIGNvbnRleHRzIGluIERPTSBhcyB3ZWxsIGFzCisgICAgICAgIG9mZnNjcmVlbiBj
YW52YXMgdXNlLWNhc2VzLiBPZmZzY3JlZW4gY2FudmFzIGlzIG5vdCBpbXBsZW1lbnRlZCBmb3Ig
Q29jb2EKKyAgICAgICAgYnV0IG90aGVyIHBvcnRzIG1heSBlbmFibGUgaXQuCisKKyAgICAgICAg
VGVzdGVkIGJ5OgorICAgICAgICBMYXlvdXRUZXN0cy93ZWJnbC9sb3NlLWNvbnRleHQtYWZ0ZXIt
Y29udGV4dC1sb3N0Lmh0bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvd2ViZ2wvbWFueS1jb250ZXh0
cy1hY2Nlc3MtYWZ0ZXItbG9zcy5odG1sCisgICAgICAgIExheW91dFRlc3RzL3dlYmdsL21hbnkt
Y29udGV4dHMuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy93ZWJnbC9tYXgtYWN0aXZlLWNvbnRl
eHRzLWNvbnNvbGUtd2FybmluZy5odG1sCisgICAgICAgIExheW91dFRlc3RzL3dlYmdsL21heC1h
Y3RpdmUtY29udGV4dHMtZ2MuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy93ZWJnbC9tYXgtYWN0
aXZlLWNvbnRleHRzLW9sZGVzdC1jb250ZXh0LWxvc3QuaHRtbAorICAgICAgICBMYXlvdXRUZXN0
cy93ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLXdlYmdsY29udGV4dGxvc3QtcHJldmVudC1kZWZh
dWx0Lmh0bWwKKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogU291cmNlcy50
eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6cmVhZFBpeGVscyk6CisgICAgICAgICogaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjphY3RpdmVDb250ZXh0cyk6CisgICAgICAgIChXZWJDb3JlOjphZGRBY3RpdmVDb250ZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZUFjdGl2ZUNvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpzZXRHcmFwaGlj
c0NvbnRleHRHTCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpkZXN0cm95R3JhcGhpY3NDb250ZXh0R0wpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Y2xlYXJJZkNvbXBvc2l0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWF5YmVSZXN0b3JlQ29udGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1cGRhdGVBY3RpdmVBZ2UpOgor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFjdGl2ZUFnZSBjb25zdCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdM
RS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0
R0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6On5H
cmFwaGljc0NvbnRleHRHTEFOR0xFKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjp+R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTE1hbmFnZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRH
TCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdM
VGV4dHVyZU1hcHBlckFOR0xFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMQU5HTEU6On5HcmFwaGljc0NvbnRleHRHTEFOR0xFKToKKwogMjAyMi0wMy0wMSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIFJlbW90ZVZpZGVv
U2FtcGxlIHN1cHBvcnQgZnJvbSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQppbmRleCAzY2I0YTQ5ZDk4NTE2YzljYmQ1MWRlZGNmYWMzNmFmMmRmZDVkMTUxLi4wYTVhZWFi
ZGNhODJlOThmY2ZkOTQ1YTQzZTFiMjY1OGYxMzQ1MWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAg
LTE2NTcsNyArMTY1Nyw2IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMQ29tbW9uLmgK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dMT3BlbkdMRVMuaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oCi0gICAg
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5o
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RlbXBvcmFyeU9wZW5HTFNldHRpbmcuaAog
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVNYXRoRGF0YS5oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0CmluZGV4IGExZDZiNmZjNjNhZDI5MWYwNzI4ZDUxODk3ZThiOWMxNzk3Y2IzMDEuLjNh
MzVlMjYwNWUwM2U2Mjk3OWIyMjlkODI2ZmU2ZTczYmUyOTQyZGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBA
IC0yMTYxLDcgKzIxNjEsNiBAQCBwbGF0Zm9ybS9ncmFwaGljcy9pc28vSVNPU2NoZW1lSW5mb3Jt
YXRpb25Cb3guY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9pc28vSVNPU2NoZW1lVHlwZUJveC5jcHAK
IHBsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09UcmFja0VuY3J5cHRpb25Cb3guY3BwCiBwbGF0Zm9y
bS9ncmFwaGljcy9pc28vSVNPVlRUQ3VlLmNwcAotcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dy
YXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL29wZW50
eXBlL09wZW5UeXBlTWF0aERhdGEuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL0Fm
ZmluZVRyYW5zZm9ybS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvTWF0cml4M0RU
cmFuc2Zvcm1PcGVyYXRpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWE1NzY1ZWY2OGQzMzgxZDg3MDY0NWZmM2U3ZmI3
NWZiY2Q0NGRlMy4uZWFmNGVkMGU0NzVhMWNkMzY3YWNiNzljYmQ2MWY4ZWRjNWNhNGRhOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtOTc3LDcgKzk3Nyw2IEBACiAJCTMxOEVBRDREMUZBOTEzODAwMDhDRUY4NiAvKiBJbWFnZUJp
dG1hcFJlbmRlcmluZ0NvbnRleHRTZXR0aW5ncy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzE4RUFENEExRkE5MTE1NzAwOENFRjg2IC8qIEltYWdlQml0
bWFwUmVuZGVyaW5nQ29udGV4dFNldHRpbmdzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzE5ODQ4MDExQTFEODE3QjAwQTEzMzE4IC8qIEFuaW1h
dGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMTk4NDdGRjFBMUQ4MTY3MDBBMTMzMTggLyogQW5pbWF0aW9uRXZlbnQuaCAqLzsgfTsKIAkJ
MzE5ODQ4MEMxQTFFNkNFODAwQTEzMzE4IC8qIEpTQW5pbWF0aW9uRXZlbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTg0ODA0MUExRTZCNUQwMEEx
MzMxOCAvKiBKU0FuaW1hdGlvbkV2ZW50LmggKi87IH07Ci0JCTMxOUE3Mjg4MjNDMjY3RkUwMDg1
MzUzQyAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOUE3Mjg3MjNDMjY3RTcwMDg1MzUzQyAv
KiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTlBRTA2NDE0MkQ2QjI0MDA2NTYzQTEgLyog
U3R5bGVGaWx0ZXJEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTlBRTA2MjE0MkQ2QjI0MDA2NTYzQTEgLyogU3R5bGVGaWx0ZXJEYXRhLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzE5RkJENUYx
NUQyRjQ2NDAwOTY0MEE2IC8qIENhY2hlZEltYWdlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTlGQkQ1RDE1RDJGNDQ0MDA5NjQwQTYgLyog
Q2FjaGVkSW1hZ2VDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQkzMUEwODk1NjFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVCdWZmZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxQTA4OTFE
MUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVUJ1ZmZlci5oICovOyB9OwpAQCAtODM4MCw3ICs4
Mzc5LDYgQEAKIAkJMzE5ODQ4MDAxQTFEODE2NzAwQTEzMzE4IC8qIEFuaW1hdGlvbkV2ZW50Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBbmltYXRpb25FdmVudC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTMxOTg0ODAzMUExRTZCNUQwMEExMzMxOCAvKiBKU0FuaW1hdGlv
bkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQW5pbWF0
aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTk4NDgwNDFBMUU2
QjVEMDBBMTMzMTggLyogSlNBbmltYXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0FuaW1hdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTMxOUE3Mjg3MjNDMjY3RTcwMDg1MzUzQyAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1h
bmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0xNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxOUFFMDYx
MTQyRDZCMjQwMDY1NjNBMSAvKiBTdHlsZUZpbHRlckRhdGEuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVGaWx0ZXJEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMzE5QUUwNjIxNDJENkIyNDAwNjU2M0ExIC8qIFN0eWxlRmlsdGVyRGF0
YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHlsZUZpbHRlckRhdGEuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5QkRFNEYxRTdBODU4QTAwQkEyOTZDIC8q
IEpTUlRDSWNlVHJhbnNwb3J0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTUlRDSWNlVHJhbnNwb3J0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE2NDk0LDcgKzE2NDkyLDYgQEAKIAkJRDA2QzBEOEUwQ0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92
ZUZvcm1hdENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQw
N0RFQUI3MEEzNjU1NEEwMENBMzBGOCAvKiBJbnNlcnRMaXN0Q29tbWFuZC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zZXJ0TGlzdENvbW1hbmQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDdERUFCODBBMzY1NTRBMDBDQTMwRjggLyogSW5z
ZXJ0TGlzdENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluc2Vy
dExpc3RDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUQwODQzQTRDMjBG
RUMxNjUwMEZFODYwRSAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA4NkZFOTYwOUQ1M0FBQjAwNUJDNzREIC8qIFVubGlu
a0NvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVW5saW5rQ29tbWFu
ZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDg2RkU5NzA5RDUzQUFCMDA1QkM3
NEQgLyogVW5saW5rQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBVbmxpbmtDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDBB
MjBENTQyMDkyQTBBNjAwRTBDMjU5IC8qIFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBU1RDLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMQ29tcHJlc3NlZFRleHR1cmVBU1RD
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjkyNSw4ICszMjkyMiw2IEBACiAJ
CQljaGlsZHJlbiA9ICgKIAkJCQk2RTIxQzZCRjExMjYzMzg1MDBBN0JFMDIgLyogR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wuY3BwICovLAogCQkJCTQ5QzdCOUZCMTA0MkQzNjUwMDA5RDQ0NyAvKiBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTC5oICovLAotCQkJCUQwODQzQTRDMjBGRUMxNjUwMEZFODYw
RSAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwICovLAotCQkJCTMxOUE3Mjg3
MjNDMjY3RTcwMDg1MzUzQyAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCAqLywK
IAkJCSk7CiAJCQlwYXRoID0gb3BlbmdsOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAg
LTM0NzgxLDcgKzM0Nzc2LDYgQEAKIAkJCQk3QkIzNEE0ODI1Mzc3NkNBMDAwMjlEMDggLyogR3Jh
cGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0I2REM4
MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWlu
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3QjlGQzEwNDJEMzY1MDAwOUQ0NDcgLyogR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuaCBpbiBIZWFkZXJzICovLAotCQkJCTMxOUE3Mjg4MjNDMjY3RkUw
MDg1MzUzQyAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTdCOTVDRkVCMjc1NEZGNkUwMDAwNjBDRSAvKiBHcmFwaGljc0NvbnRleHRHTFN0YXRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBENjcwODBFOUU5REVCMDBFNDIwRjAgLyogR3JhcGhp
Y3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNTgwQjBE
MEYxMkEyNjkwMDUxRDY4OSAvKiBHcmFwaGljc0xheWVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5j
cHAKaW5kZXggNmQwYTg3Mjg1YTgwNjFjNTBlNjY5MTZkNTIxNDRiZWM1ZjQ0NmViZS4uMjgwMzE3
YTNjNGRmMTk5NTY2NDlkN2I1OWU5ZWU1NGI0OGFjYTE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0wyUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTM2NDcs
NyArMzY0Nyw2IEBAIHZvaWQgV2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6cmVhZFBpeGVscyhHQ0dM
aW50IHgsIEdDR0xpbnQgeSwgR0NHTHNpemVpIHdpZHRoLCBHCiAgICAgLy8gRHVlIHRvIFdlYkdM
J3Mgc2FtZS1vcmlnaW4gcmVzdHJpY3Rpb25zLCBpdCBpcyBub3QgcG9zc2libGUgdG8KICAgICAv
LyB0YWludCB0aGUgb3JpZ2luIHVzaW5nIHRoZSBXZWJHTCBBUEkuCiAgICAgQVNTRVJUKGNhbnZh
c0Jhc2UoKS5vcmlnaW5DbGVhbigpKTsKLQogICAgIGNsZWFySWZDb21wb3NpdGVkKENsZWFyQ2Fs
bGVyT3RoZXIpOwogCiAgICAgbV9jb250ZXh0LT5yZWFkblBpeGVscyh4LCB5LCB3aWR0aCwgaGVp
Z2h0LCBmb3JtYXQsIHR5cGUsIG9mZnNldCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IDJkZGFjM2Zm
MGEwMmVjMzk0ZGMzMjUyMDIzMjRjNGQ4ZTI3MWMzZDcuLjllODEwZTVlNjRjMjUzZWY4YTYwNmQ2
OGE3YzY2Yjk0NmJkN2U5ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCkBAIC0xMjQsOCArMTI0LDExIEBA
CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5o
PgogI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgor
I2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgog
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lm
aWMuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpAQCAtMTUxLDkg
KzE1NCwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURf
SU1QTChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKTsKIAotc3RhdGljIGNvbnN0IFNlY29uZHMg
c2Vjb25kc0JldHdlZW5SZXN0b3JlQXR0ZW1wdHMgeyAxX3MgfTsKLWNvbnN0IGludCBtYXhHTEVy
cm9yc0FsbG93ZWRUb0NvbnNvbGUgPSAyNTY7Ci1zdGF0aWMgY29uc3QgU2Vjb25kcyBjaGVja0Nv
bnRleHRMb3NzSGFuZGxpbmdEZWxheSB7IDNfcyB9Oworc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRz
IHNlY29uZHNCZXR3ZWVuUmVzdG9yZUF0dGVtcHRzIHsgMV9zIH07CitzdGF0aWMgY29uc3RleHBy
IGludCBtYXhHTEVycm9yc0FsbG93ZWRUb0NvbnNvbGUgPSAyNTY7CitzdGF0aWMgY29uc3RleHBy
IFNlY29uZHMgY2hlY2tDb250ZXh0TG9zc0hhbmRsaW5nRGVsYXkgeyAzX3MgfTsKK3N0YXRpYyBj
b25zdGV4cHIgc2l6ZV90IG1heEFjdGl2ZUNvbnRleHRzID0gMTY7CitzdGF0aWMgY29uc3RleHBy
IHNpemVfdCBtYXhBY3RpdmVXb3JrZXJDb250ZXh0cyA9IDQ7CiAKIG5hbWVzcGFjZSB7CiAgICAg
CkBAIC03ODQsNiArNzg5LDQ1IEBAIHN0YXRpYyBib29sIGlzSGlnaFBlcmZvcm1hbmNlQ29udGV4
dChjb25zdCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0w+JiBjb250ZXh0KQogICAgIHJldHVybiBj
b250ZXh0LT5jb250ZXh0QXR0cmlidXRlcygpLnBvd2VyUHJlZmVyZW5jZSA9PSBXZWJHTFBvd2Vy
UHJlZmVyZW5jZTo6SGlnaFBlcmZvcm1hbmNlOwogfQogCisvLyBDb3VudGVyIGZvciBkZXRlcm1p
bmluZyB3aGljaCBjb250ZXh0IGhhcyB0aGUgZWFybGllc3QgYWN0aXZlIGFnZS4KK3N0YXRpYyBz
dGQ6OmF0b21pYzx1aW50NjRfdD4gc19sYXN0QWN0aXZlT3JkaW5hbDsKKwordXNpbmcgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZVNldCA9IEhhc2hTZXQ8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZSo+OworCitzdGF0aWMgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZVNldCYgYWN0aXZlQ29udGV4
dHMoKQoreworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8VGhyZWFkU3BlY2lmaWM8V2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZVNldD4+IHNfYWN0aXZlQ29udGV4dHM7CisgICAgc3RhdGlj
IHN0ZDo6b25jZV9mbGFnIHNfb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uoc19vbmNlRmxh
ZywgW10geworICAgICAgICBzX2FjdGl2ZUNvbnRleHRzLmNvbnN0cnVjdCgpOworICAgIH0pOwor
ICAgIHJldHVybiAqc19hY3RpdmVDb250ZXh0cy5nZXQoKTsKK30KKworc3RhdGljIHZvaWQgYWRk
QWN0aXZlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBuZXdDb250ZXh0KQorewor
ICAgIGF1dG8mIGNvbnRleHRzID0gYWN0aXZlQ29udGV4dHMoKTsKKyAgICBBU1NFUlQoIWNvbnRl
eHRzLmNvbnRhaW5zKGNvbnRleHQpKTsKKyAgICBhdXRvIG1heENvbnRleHRzU2l6ZSA9IGlzTWFp
blRocmVhZCgpID8gbWF4QWN0aXZlQ29udGV4dHMgOiBtYXhBY3RpdmVXb3JrZXJDb250ZXh0czsK
KyAgICBpZiAoY29udGV4dHMuc2l6ZSgpID49IG1heENvbnRleHRzU2l6ZSkgeworICAgICAgICBh
dXRvIGl0ID0gY29udGV4dHMuYmVnaW4oKTsKKyAgICAgICAgYXV0byogZWFybGllc3QgPSAqaXQ7
CisgICAgICAgIGZvciAoKytpdDsgaXQgIT0gY29udGV4dHMuZW5kKCk7ICsraXQpIHsKKyAgICAg
ICAgICAgIGlmIChlYXJsaWVzdC0+YWN0aXZlT3JkaW5hbCgpID4gKCppdCktPmFjdGl2ZU9yZGlu
YWwoKSkKKyAgICAgICAgICAgICAgICBlYXJsaWVzdCA9ICppdDsKKyAgICAgICAgfQorICAgICAg
ICBlYXJsaWVzdC0+cmVjeWNsZUNvbnRleHQoKTsKKyAgICAgICAgQVNTRVJUKGNvbnRleHRzLnNp
emUoKSA8IG1heENvbnRleHRzU2l6ZSk7CisgICAgfQorICAgIGNvbnRleHRzLmFkZCgmbmV3Q29u
dGV4dCk7Cit9CisKK3N0YXRpYyB2b2lkIHJlbW92ZUFjdGl2ZUNvbnRleHQoV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSYgY29udGV4dCkKK3sKKyAgICBib29sIGRpZENvbnRhaW4gPSBhY3RpdmVD
b250ZXh0cygpLnJlbW92ZSgmY29udGV4dCk7CisgICAgQVNTRVJUX1VOVVNFRChkaWRDb250YWlu
LCBkaWRDb250YWluKTsKK30KKwogc3RkOjp1bmlxdWVfcHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZShDYW52YXNCYXNlJiBjYW52
YXMsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMsIFdlYkdMVmVyc2lvbiB0eXBl
KQogewogICAgIGF1dG8gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCA9IGNhbnZhcy5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7CkBAIC05MTUsNyArOTU5LDYgQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiBjYW52YXMsIFdlYkdM
Q28KIAogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZShDYW52YXNCYXNlJiBjYW52YXMsIFJlZjxHcmFwaGljc0NvbnRleHRHTD4mJiBjb250ZXh0LCBX
ZWJHTENvbnRleHRBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiAgICAgOiBHUFVCYXNlZENhbnZhc1Jl
bmRlcmluZ0NvbnRleHQoY2FudmFzKQotICAgICwgbV9jb250ZXh0KFdURk1vdmUoY29udGV4dCkp
CiAgICAgLCBtX3Jlc3RvcmVUaW1lcihjYW52YXMuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAq
dGhpcywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9yZUNvbnRleHQpCiAg
ICAgLCBtX2dlbmVyYXRlZEltYWdlQ2FjaGUoNCkKICAgICAsIG1fYXR0cmlidXRlcyhhdHRyaWJ1
dGVzKQpAQCAtOTI1LDYgKzk2OCw4IEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UoQ2FudmFzQmFzZSYgY2FudmFzLCBSZWY8R3JhCiAgICAgLCBt
X2lzWFJDb21wYXRpYmxlKGF0dHJpYnV0ZXMueHJDb21wYXRpYmxlKQogI2VuZGlmCiB7CisgICAg
c2V0R3JhcGhpY3NDb250ZXh0R0woV1RGTW92ZShjb250ZXh0KSk7CisgICAgCiAgICAgbV9yZXN0
b3JlVGltZXIuc3VzcGVuZElmTmVlZGVkKCk7CiAKICAgICBtX2NvbnRleHRHcm91cCA9IFdlYkdM
Q29udGV4dEdyb3VwOjpjcmVhdGUoKTsKQEAgLTEyMDIsNiArMTI0NywxNCBAQCBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjp+V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSgpCiAgICAgfQogfQog
Cit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnNldEdyYXBoaWNzQ29udGV4dEdMKFJl
ZjxHcmFwaGljc0NvbnRleHRHTD4mJiBjb250ZXh0KQoreworICAgIEFTU0VSVCghbV9jb250ZXh0
KTsKKyAgICBtX2NvbnRleHQgPSBXVEZNb3ZlKGNvbnRleHQpOworICAgIHVwZGF0ZUFjdGl2ZU9y
ZGluYWwoKTsKKyAgICBhZGRBY3RpdmVDb250ZXh0KCp0aGlzKTsKK30KKwogdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpkZXN0cm95R3JhcGhpY3NDb250ZXh0R0woKQogewogICAgIGlm
IChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24pCkBAIC0xMjEyLDYgKzEyNjUsNyBAQCB2b2lk
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlc3Ryb3lHcmFwaGljc0NvbnRleHRHTCgpCiAg
ICAgaWYgKG1fY29udGV4dCkgewogICAgICAgICBtX2NvbnRleHQtPnJlbW92ZUNsaWVudCgqdGhp
cyk7CiAgICAgICAgIG1fY29udGV4dCA9IG51bGxwdHI7CisgICAgICAgIHJlbW92ZUFjdGl2ZUNv
bnRleHQoKnRoaXMpOwogICAgIH0KIH0KIApAQCAtMTI2Myw2ICsxMzE3LDkgQEAgYm9vbCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjbGVhcklmQ29tcG9zaXRlZChXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpDbGUKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKKyAgICAvLyBgY2xlYXJJZkNvbXBvc2l0ZWQoKWAgaXMgYSBmdW5j
dGlvbiB0aGF0IHByZXBhcmVzIGZvciB1cGRhdGVzLiBNYXJrIHRoZSBjb250ZXh0IGFzIGFjdGl2
ZS4KKyAgICB1cGRhdGVBY3RpdmVPcmRpbmFsKCk7CisKICAgICBpZiAoIW1fY29udGV4dC0+bGF5
ZXJDb21wb3NpdGVkKCkgfHwgbV9sYXllckNsZWFyZWQgfHwgbV9wcmV2ZW50QnVmZmVyQ2xlYXJG
b3JJbnNwZWN0b3IpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNzc2Miw3ICs3ODE5LDcg
QEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYXliZVJlc3RvcmVDb250ZXh0KCkK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fY29udGV4dCA9IGNvbnRleHQ7CisgICAg
c2V0R3JhcGhpY3NDb250ZXh0R0woY29udGV4dC5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICBhZGRB
Y3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXJJZk5lY2Vzc2FyeSgpOwogICAgIG1fY29udGV4dExv
c3QgPSBmYWxzZTsKICAgICBzZXR1cEZsYWdzKCk7CkBAIC04MTgzLDYgKzgyNDAsMTEgQEAgdm9p
ZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpwcmVwYXJlRm9yRGlzcGxheSgpCiAgICAgbV9j
b250ZXh0LT5wcmVwYXJlRm9yRGlzcGxheSgpOwogfQogCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OnVwZGF0ZUFjdGl2ZU9yZGluYWwoKQoreworICAgIG1fYWN0aXZlT3JkaW5hbCA9
IHNfbGFzdEFjdGl2ZU9yZGluYWwrKzsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IGI1NDU3ZTcxMzdmODQyNmRj
MDMxMDRiNGM0ZTZhM2ZiMjIyNGMzYmMuLmFmNzlmOTA3OTU0ODE2YmMyZTgwNjI5NzQ0MTE2YzBj
N2I0YzY5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTQzMiw2ICs0MzIsOCBAQCBwdWJsaWM6CiAgICAg
Ly8gcHJvaGliaXRpdmVseSBleHBlbnNpdmUuCiAgICAgTG9jayYgb2JqZWN0R3JhcGhMb2NrKCkg
V1RGX1JFVFVSTlNfTE9DSyhtX29iamVjdEdyYXBoTG9jayk7CiAKKyAgICAvLyBSZXR1cm5zIHRo
ZSBvcmRpbmFsIG51bWJlciBvZiB3aGVuIHRoZSBjb250ZXh0IHdhcyBsYXN0IGFjdGl2ZSAoZHJl
dywgcmVhZCBwaXhlbHMpLgorICAgIHVpbnQ2NF90IGFjdGl2ZU9yZGluYWwoKSBjb25zdCB7IHJl
dHVybiBtX2FjdGl2ZU9yZGluYWw7IH0KIHByb3RlY3RlZDoKICAgICBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlKENhbnZhc0Jhc2UmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzKTsKICAgICBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlKENhbnZhc0Jhc2UmLCBSZWY8R3JhcGhpY3NDb250ZXh0R0w+
JiYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwpAQCAtNDczLDYgKzQ3NSw3IEBAIHByb3RlY3Rl
ZDoKICAgICB2b2lkIGFkZENvbnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0Jik7CiAgICAg
dm9pZCBkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3RzKCk7CiAKKyAgICB2b2lkIHNldEdyYXBoaWNz
Q29udGV4dEdMKFJlZjxHcmFwaGljc0NvbnRleHRHTD4mJik7CiAgICAgdm9pZCBkZXN0cm95R3Jh
cGhpY3NDb250ZXh0R0woKTsKICAgICB2b2lkIG1hcmtDb250ZXh0Q2hhbmdlZCgpOwogICAgIHZv
aWQgbWFya0NvbnRleHRDaGFuZ2VkQW5kTm90aWZ5Q2FudmFzT2JzZXJ2ZXIoKTsKQEAgLTU0Miw2
ICs1NDUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBjb21wb3NpdGluZ1Jlc3VsdHNOZWVkVXBk
YXRpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2NvbXBvc2l0aW5nUmVzdWx0c05lZWRVcGRh
dGluZzsgfQogICAgIGJvb2wgbmVlZHNQcmVwYXJhdGlvbkZvckRpc3BsYXkoKSBjb25zdCBmaW5h
bCB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheSgpIGZpbmFsOwor
ICAgIHZvaWQgdXBkYXRlQWN0aXZlQWdlKCk7CiAKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0
R0w+IG1fY29udGV4dDsKICAgICBSZWZQdHI8V2ViR0xDb250ZXh0R3JvdXA+IG1fY29udGV4dEdy
b3VwOwpAQCAtMTE0Miw2ICsxMTQ2LDggQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoV0VCWFIpCiAg
ICAgYm9vbCBtX2lzWFJDb21wYXRpYmxlIHsgZmFsc2UgfTsKICNlbmRpZgorICAgIC8vIFRoZSBv
cmRpbmFsIG51bWJlciBvZiB3aGVuIHRoZSBjb250ZXh0IHdhcyBsYXN0IGFjdGl2ZSAoZHJldywg
cmVhZCBwaXhlbHMpLgorICAgIHVpbnQ2NF90IG1fYWN0aXZlT3JkaW5hbCB7IDAgfTsKIH07CiAK
IHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcApp
bmRleCAwYzM5NDk3NWYyZTYwZWM3Y2ZkYTM4NGIxMzgyNmQwNTFmODMxZGI2Li44NzIxMjU0MWM2
MDY4YzBhY2UyYzI5MDU3Nzk4MjMyMTMxMWVlZDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRH
TEFOR0xFLmNwcApAQCAtMzEsNyArMzEsNiBAQAogCiAjaW5jbHVkZSAiQU5HTEVIZWFkZXJzLmgi
CiAjaW5jbHVkZSAiQU5HTEVVdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRH
TE9wZW5HTE1hbmFnZXIuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIklu
dFJlY3QuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YS5tbQppbmRleCAzNWI5MWZiM2RkNjdhNzMyODk3Y2M1NDY3MjJjM2ZmNTBhOWQwOTY5Li5kMmQ4
ODE4Y2I0MzBmNTkzMGUzOTUzYmFhYTNjODQ0NWJjZjQ1M2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29u
dGV4dEdMQ29jb2EubW0KQEAgLTMzLDcgKzMzLDYgQEAKICNpbXBvcnQgIkFOR0xFVXRpbGl0aWVz
Q29jb2EuaCIKICNpbXBvcnQgIkNWVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRl
eHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oIgotI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xNYW5hZ2VyLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJQaXhlbEJ1ZmZlci5o
IgogI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCkBAIC00MjgsNyArNDI3LDYgQEAgYm9vbCBH
cmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogCiBHcmFwaGljc0Nv
bnRleHRHTEFOR0xFOjp+R3JhcGhpY3NDb250ZXh0R0xBTkdMRSgpCiB7Ci0gICAgR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkucmVtb3ZlQ29udGV4dCh0aGlz
KTsKICAgICBpZiAobWFrZUNvbnRleHRDdXJyZW50KCkpIHsKICAgICAgICAgaWYgKG1fdGV4dHVy
ZSkKICAgICAgICAgICAgIEdMX0RlbGV0ZVRleHR1cmVzKDEsICZtX3RleHR1cmUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dy
YXBoaWNzQ29udGV4dEdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQppbmRleCAwYmIxMDY1
YjNhNjE2NjliOTg1MDE4NTMwNDVhNzBiNmZhYTFiNTA4Li5iOTlhYjZlMmI2Mzk4Yzg5YWNmNDQ0
OTg4ZmQ3MWEwNDdhNmRmZTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3ND
b250ZXh0R0xDb2NvYS5tbQpAQCAtMjgsNyArMjgsNiBAQAogCiAjaWYgRU5BQkxFKFdFQkdMKQog
I2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5oIiAvLyBOT0xJTlQKLSNpbXBvcnQgIkdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgogI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVy
LmgiCiAjaW1wb3J0ICJQcm9jZXNzSWRlbnRpdHkuaCIKIApAQCAtMTQ2LDE0ICsxNDUsOSBAQCB2
b2lkIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hOjpkaXNwbGF5V2FzUmVjb25maWd1
cmVkKCkKIAogUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMPiBjcmVhdGVXZWJQcm9jZXNzR3JhcGhp
Y3NDb250ZXh0R0woY29uc3QgR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVz
KQogewotICAgIC8vIE1ha2Ugc3BhY2UgZm9yIHRoZSBpbmNvbWluZyBjb250ZXh0IGlmIHdlJ3Jl
IGZ1bGwuCi0gICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2Vy
KCkucmVjeWNsZUNvbnRleHRJZk5lY2Vzc2FyeSgpOwotICAgIGlmIChHcmFwaGljc0NvbnRleHRH
TE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5oYXNUb29NYW55Q29udGV4dHMoKSkKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IFdl
YlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRl
cyB7IGF0dHJpYnV0ZXMgfSkpOwogICAgIGlmICghY29udGV4dC0+aW5pdGlhbGl6ZSgpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6
OnNoYXJlZE1hbmFnZXIoKS5hZGRDb250ZXh0KGNvbnRleHQuZ2V0KCkpOwogICAgIHJldHVybiBj
b250ZXh0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAppbmRleCA0
ZTQyNzE5YTVkOWYwNzgxOWE1Nzk1NmQxMDJiODJkZTA2YmVmYmFkLi5iNWJhYzdkOGZlNDNjNDgw
ODU2NmFiOWNjZjdmNzQ0MjQwNzY0NmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTC5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJBTkdMRVdlYktpdEJyaWRnZS5o
IgogI2luY2x1ZGUgIkdMQ29udGV4dC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgot
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgogI2luY2x1ZGUgIklt
YWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkludFNpemUuaCIK
QEAgLTI1MSw3ICsyNTAsNiBAQCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIGF0dAogCiBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6fkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKCkKIHsKLSAgICBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5yZW1vdmVDb250ZXh0KHRo
aXMpOwogICAgIGJvb2wgc3VjY2VzcyA9IG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIEFTU0VS
VF9VTlVTRUQoc3VjY2Vzcywgc3VjY2Vzcyk7CiAgICAgaWYgKG1fdGV4dHVyZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHRHTE9wZW5HTE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDEyZDRiM2FmZjI5MWQ4MjAxMDc3NGQ3ZTZkNGY0ODk3MDcyNGMyZjAu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFu
YWdlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKFdFQkdMKQotI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgotCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotCi0jaWYg
VVNFKEFOR0xFKQotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMQU5HTEUuaCIKLSNlbHNlCi0j
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCIKLSNlbmRpZgotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXImIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcj4gc19tYW5hZ2VyOwotICAgIHJl
dHVybiBzX21hbmFnZXI7Ci19Ci0KLXZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
OjphZGRDb250ZXh0KEdyYXBoaWNzQ29udGV4dEdMVHlwZSogY29udGV4dCkKLXsKLSAgICBBU1NF
UlQoY29udGV4dCk7Ci0gICAgaWYgKCFjb250ZXh0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBB
U1NFUlQoIW1fY29udGV4dHMuY29udGFpbnMoY29udGV4dCkpOwotICAgIG1fY29udGV4dHMuYXBw
ZW5kKGNvbnRleHQpOwotfQotCi12b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6
cmVtb3ZlQ29udGV4dChHcmFwaGljc0NvbnRleHRHTFR5cGUqIGNvbnRleHQpCi17Ci0gICAgaWYg
KCFtX2NvbnRleHRzLmNvbnRhaW5zKGNvbnRleHQpKQotICAgICAgICByZXR1cm47Ci0gICAgbV9j
b250ZXh0cy5yZW1vdmVGaXJzdChjb250ZXh0KTsKLX0KLQotdm9pZCBHcmFwaGljc0NvbnRleHRH
TE9wZW5HTE1hbmFnZXI6OnJlY3ljbGVDb250ZXh0SWZOZWNlc3NhcnkoKQotewotICAgIGlmICho
YXNUb29NYW55Q29udGV4dHMoKSkgewotICAgICAgICBMT0coV2ViR0wsICJHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTE1hbmFnZXIgcmVjeWNsZWQgY29udGV4dCAoJXApLiIsIG1fY29udGV4dHNbMF0p
OwotICAgICAgICBtX2NvbnRleHRzWzBdLT5yZWN5Y2xlQ29udGV4dCgpOwotICAgIH0KLX0KLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
b3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmMDc5MDljODFiOTRlNmRmM2RiNGEyZjE0Y2I3ODRjYTMzMTIzMjZmLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFn
ZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21h
IG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNvbnN0IHVuc2lnbmVkIE1heENvbnRleHRzID0g
MTY7Ci0KLSNpZiBVU0UoQU5HTEUpCi1jbGFzcyBHcmFwaGljc0NvbnRleHRHTEFOR0xFOwotI2Vs
c2UKLWNsYXNzIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOwotI2VuZGlmCi0KLWNsYXNzIEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlciB7Ci0gICAgZnJpZW5kIE5ldmVyRGVzdHJveWVkPEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcj47Ci1wdWJsaWM6Ci0jaWYgVVNFKEFOR0xFKQot
ICAgIHVzaW5nIEdyYXBoaWNzQ29udGV4dEdMVHlwZSA9IEdyYXBoaWNzQ29udGV4dEdMQU5HTEU7
Ci0jZWxzZQotICAgIHVzaW5nIEdyYXBoaWNzQ29udGV4dEdMVHlwZSA9IEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOwotI2VuZGlmCi0KLSAgICBzdGF0aWMgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xN
YW5hZ2VyJiBzaGFyZWRNYW5hZ2VyKCk7Ci0gICAgCi0gICAgdm9pZCBhZGRDb250ZXh0KEdyYXBo
aWNzQ29udGV4dEdMVHlwZSopOwotICAgIHZvaWQgcmVtb3ZlQ29udGV4dChHcmFwaGljc0NvbnRl
eHRHTFR5cGUqKTsKLSAgICAKLSAgICB2b2lkIHJlY3ljbGVDb250ZXh0SWZOZWNlc3NhcnkoKTsK
LSAgICBib29sIGhhc1Rvb01hbnlDb250ZXh0cygpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dHMu
c2l6ZSgpID49IE1heENvbnRleHRzOyB9Ci0gICAgCi1wcml2YXRlOgotICAgIEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMTWFuYWdlcigpID0gZGVmYXVsdDsKLQotICAgIFZlY3RvcjxHcmFwaGljc0Nv
bnRleHRHTFR5cGUqPiBtX2NvbnRleHRzOwotfTsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1h
cHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhp
Y3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcAppbmRleCA5MmZmNTIwNmIyNWYwNTFkMDM1ODYy
NWM5M2JiNDkxYTQ5NmViOWY1Li4yYzU3MDJkMDc2Y2U5M2JmMzg2ODJkNjJhZmJlYmI0N2YyODFh
OGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
R3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNw
cApAQCAtMzEsNyArMzEsNiBAQAogCiAjaWYgRU5BQkxFKFdFQkdMKSAmJiBVU0UoVEVYVFVSRV9N
QVBQRVIpCiAKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKICNp
bmNsdWRlICJQaXhlbEJ1ZmZlci5oIgogI2luY2x1ZGUgIlRleHR1cmVNYXBwZXJHQ0dMUGxhdGZv
cm1MYXllci5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgpAQCAtMTA2LDExICsxMDUsNiBAQCBS
ZWZQdHI8R3JhcGhpY3NDb250ZXh0R0w+IGNyZWF0ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRH
TChjb25zdCBHcmFwaGljc0NvbnRleAogICAgIGlmICghc3VjY2VzcykKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKLSAgICAvLyBNYWtlIHNwYWNlIGZvciB0aGUgaW5jb21pbmcgY29udGV4dCBp
ZiB3ZSdyZSBmdWxsLgotICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVk
TWFuYWdlcigpLnJlY3ljbGVDb250ZXh0SWZOZWNlc3NhcnkoKTsKLSAgICBpZiAoR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuaGFzVG9vTWFueUNvbnRleHRz
KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCiAgICAgLy8gQ3JlYXRlIHRoZSBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTCBvYmplY3QgZmlyc3QgaW4gb3JkZXIgdG8gZXN0YWJsaXN0IGEgY3Vy
cmVudCBjb250ZXh0IG9uIHRoaXMgdGhyZWFkLgogICAgIGF1dG8gY29udGV4dCA9IEdyYXBoaWNz
Q29udGV4dEdMVGV4dHVyZU1hcHBlcjo6Y3JlYXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRl
cyB7IGF0dHJpYnV0ZXMgfSk7CiAgICAgaWYgKCFjb250ZXh0KQpAQCAtMTIwLDkgKzExNCw2IEBA
IFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTD4gY3JlYXRlV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4
dEdMKGNvbnN0IEdyYXBoaWNzQ29udGV4CiAgICAgaWYgKGF0dHJpYnV0ZXMud2ViR0xWZXJzaW9u
ID09IEdyYXBoaWNzQ29udGV4dEdMV2ViR0xWZXJzaW9uOjpXZWJHTDIgJiYgIWVwb3h5X2lzX2Rl
c2t0b3BfZ2woKSAmJiBlcG94eV9nbF92ZXJzaW9uKCkgPCAzMCkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAjZW5kaWYKLQotICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hh
cmVkTWFuYWdlcigpLmFkZENvbnRleHQoY29udGV4dC5nZXQoKSk7Ci0KICAgICByZXR1cm4gY29u
dGV4dDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlckFOR0xFLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVN
YXBwZXJBTkdMRS5jcHAKaW5kZXggNTY1MTU0YTg2OWM4ODU1NmE3YzkwOGVmYjg3OTY2YjZmYjUw
M2M0ZC4uYTJkNzFkMWU5NzY4YWFlZTUxYmRlMzFlMjE5NjQxZmQ2NmNiMGM4MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4
dEdMVGV4dHVyZU1hcHBlckFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyQU5HTEUuY3BwCkBA
IC0zMSw3ICszMSw2IEBACiAKICNpbmNsdWRlICJBTkdMRUhlYWRlcnMuaCIKICNpbmNsdWRlICJB
TkdMRVV0aWxpdGllcy5oIgotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdl
ci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJQaXhlbEJ1ZmZlci5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtTGF5ZXJEaXNwbGF5RGVsZWdhdGUuaCIKQEAgLTMxOCw3ICszMTcsNiBA
QCBib29sIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OkVHTEltYWdlQmFja2luZzo6cmVzZXQoaW50
IHdpZHRoLCBpbnQgaGVpZ2h0LCBib29sCiAKIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6On5HcmFw
aGljc0NvbnRleHRHTEFOR0xFKCkKIHsKLSAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFn
ZXI6OnNoYXJlZE1hbmFnZXIoKS5yZW1vdmVDb250ZXh0KHRoaXMpOwogICAgIGJvb2wgc3VjY2Vz
cyA9IG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIEFTU0VSVF9VTlVTRUQoc3VjY2Vzcywgc3Vj
Y2Vzcyk7CiAgICAgaWYgKG1fdGV4dHVyZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13
azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5MjFhMzBlMTI1ZGM2MjJlZDEwODAyNmIzM2I5M2Zh
M2IwNTc5MzE5Li4wNjY3MjdjYzQ1ZWE5ZWRkMjI5MzdkY2E3M2VlZTNkMWRjZTljZGEyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMjA2
LDExICsyMjA2LDUgQEAgaHR0cC93cHQvaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRp
Y3MvdGhlLWEtZWxlbWVudC9hLWRvd25sb2FkLWNsaWNrLTQwNC4KIAogIyBUZXN0IGZhaWx1cmVz
IGZyb20gdHVybmluZyBHUFUgUHJvY2VzcyBvbiBieSBkZWZhdWx0CiB3ZWJraXQub3JnL2IvMjM0
NTM2IHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlL3JlYWRpbmcvcmVhZC1waXhlbHMtdGVzdC5odG1s
Ci13ZWJraXQub3JnL2IvMjM0NTM2IHdlYmdsL21hbnktY29udGV4dHMtYWNjZXNzLWFmdGVyLWxv
c3MuaHRtbAotd2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC9tYW55LWNvbnRleHRzLmh0bWwKLXdl
YmtpdC5vcmcvYi8yMzQ1MzYgd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy1jb25zb2xlLXdhcm5p
bmcuaHRtbAotd2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLWdj
Lmh0bWwKLXdlYmtpdC5vcmcvYi8yMzQ1MzYgd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy1vbGRl
c3QtY29udGV4dC1sb3N0Lmh0bWwKIHdlYmtpdC5vcmcvYi8yMzQ1MzYgd2VieHIvaGlnaC1wZXJm
b3JtYW5jZS5odG1sCi13ZWJraXQub3JnL2IvMjM0NTM2IHdlYmdsL21heC1hY3RpdmUtY29udGV4
dHMtd2ViZ2xjb250ZXh0bG9zdC1wcmV2ZW50LWRlZmF1bHQuaHRtbCBbIFRpbWVvdXQgXQogd2Vi
a2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC8xLjAuMy9jb25mb3JtYW5jZS9zdGF0ZS9nbC1vYmplY3Qt
Z2V0LWNhbGxzLmh0bWwgWyBUaW1lb3V0IF0K
</data>
<flag name="commit-queue"
          id="481024"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453599</attachid>
            <date>2022-03-02 06:14:15 -0800</date>
            <delta_ts>2022-03-02 06:39:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222411-20220302161414.patch</filename>
            <type>text/plain</type>
            <size>31010</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDVlYTA0ODY3MTMxNjZi
YWI2ZGQzYzgwNmMzNTJlNWUxMDViMGFmZC4uODA3MmNkMTEwNWJjNjU4MGQxOWNiNzEzZjdhNWVl
MjVkZDhiMDNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDIyLTAzLTAyICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY29udGV4
dCBjb3VudCBpcyBub3QgbGltaXRlZCBmb3IgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQxMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGNvbnRleHQgbGltaXQgZnJv
bSB0aGUgR3JhcGhpY3NDb250ZXh0R0wgaW1wbGVtZW50YXRpb24KKyAgICAgICAgbGV2ZWwgdG8g
V2ViR0xSZW5kZXJpbmdDb250ZXh0IGxldmVsLiBUaGlzIHdheSB0aGUgbGltaXQKKyAgICAgICAg
aXMgYXBwbGllZCB0byB0aGUgR1BVUCBpbXBsZW1lbnRhdGlvbiB0b28uCisKKyAgICAgICAgUmVj
eWNsZSB0aGUgY29udGV4dCB3aXRoIHRoZSBlYXJsaWVzdCBhY3Rpdml0eSAoZHJhdywgcmVhZHBp
eGVscykKKyAgICAgICAgaW5zdGVhZCBvZiB0aGUgY3JlYXRpb24gb3JkZXIuCisKKyAgICAgICAg
U3RvcmVzIHRoZSBXZWJHTCBjb250ZXh0cyB0byBwZXItdGhyZWFkIHNldCBhbmQgbGltaXRzIHRo
ZSBzaXplIG9mIHRoZSBzZXQuCisgICAgICAgIFRoZSBzZXQgaXMgcGVyLXRocmVhZCB0byBzdXBw
b3J0IFdlYkdMIGNvbnRleHRzIGluIERPTSBhcyB3ZWxsIGFzCisgICAgICAgIG9mZnNjcmVlbiBj
YW52YXMgdXNlLWNhc2VzLiBPZmZzY3JlZW4gY2FudmFzIGlzIG5vdCBpbXBsZW1lbnRlZCBmb3Ig
Q29jb2EKKyAgICAgICAgYnV0IG90aGVyIHBvcnRzIG1heSBlbmFibGUgaXQuCisKKyAgICAgICAg
VGVzdGVkIGJ5OgorICAgICAgICBMYXlvdXRUZXN0cy93ZWJnbC9sb3NlLWNvbnRleHQtYWZ0ZXIt
Y29udGV4dC1sb3N0Lmh0bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvd2ViZ2wvbWFueS1jb250ZXh0
cy1hY2Nlc3MtYWZ0ZXItbG9zcy5odG1sCisgICAgICAgIExheW91dFRlc3RzL3dlYmdsL21hbnkt
Y29udGV4dHMuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy93ZWJnbC9tYXgtYWN0aXZlLWNvbnRl
eHRzLWNvbnNvbGUtd2FybmluZy5odG1sCisgICAgICAgIExheW91dFRlc3RzL3dlYmdsL21heC1h
Y3RpdmUtY29udGV4dHMtZ2MuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy93ZWJnbC9tYXgtYWN0
aXZlLWNvbnRleHRzLW9sZGVzdC1jb250ZXh0LWxvc3QuaHRtbAorICAgICAgICBMYXlvdXRUZXN0
cy93ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLXdlYmdsY29udGV4dGxvc3QtcHJldmVudC1kZWZh
dWx0Lmh0bWwKKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogU291cmNlcy50
eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMMlJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0wyUmVuZGVyaW5nQ29udGV4dDo6cmVhZFBpeGVscyk6CisgICAgICAgICogaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjphY3RpdmVDb250ZXh0cyk6CisgICAgICAgIChXZWJDb3JlOjphZGRBY3RpdmVDb250ZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OnJlbW92ZUFjdGl2ZUNvbnRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpzZXRHcmFwaGlj
c0NvbnRleHRHTCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpkZXN0cm95R3JhcGhpY3NDb250ZXh0R0wpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZTo6Y2xlYXJJZkNvbXBvc2l0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWF5YmVSZXN0b3JlQ29udGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1cGRhdGVBY3RpdmVPcmRpbmFs
KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjphY3RpdmVPcmRpbmFs
IGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRl
eHRHTEFOR0xFLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGlj
c0NvbnRleHRHTENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xB
TkdMRTo6fkdyYXBoaWNzQ29udGV4dEdMQU5HTEUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6On5HcmFwaGljc0NvbnRleHRH
TE9wZW5HTCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMTWFuYWdlci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oOiBSZW1vdmVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1
cmVNYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlV2ViUHJvY2Vzc0dyYXBoaWNz
Q29udGV4dEdMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3ND
b250ZXh0R0xUZXh0dXJlTWFwcGVyQU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0R0xBTkdMRTo6fkdyYXBoaWNzQ29udGV4dEdMQU5HTEUpOgorCiAyMDIyLTAzLTAx
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgUmVt
b3RlVmlkZW9TYW1wbGUgc3VwcG9ydCBmcm9tIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCmluZGV4IDNjYjRhNDlkOTg1MTZjOWNiZDUxZGVkY2ZhYzM2YWYyZGZkNWQxNTEu
LjBhNWFlYWJkY2E4MmU5OGZjZmQ5NDVhNDNlMWIyNjU4ZjEzNDUxYTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQpAQCAtMTY1Nyw3ICsxNjU3LDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xD
b21tb24uaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zR0xPcGVuR0xF
Uy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
LmgKLSAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xN
YW5hZ2VyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGVtcG9yYXJ5T3BlbkdMU2V0
dGluZy5oCiAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZU1hdGhEYXRh
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKaW5kZXggYTFkNmI2ZmM2M2FkMjkxZjA3MjhkNTE4OTdlOGI5YzE3OTdj
YjMwMS4uM2EzNWUyNjA1ZTAzZTYyOTc5YjIyOWQ4MjZmZTZlNzNiZTI5NDJkZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKQEAgLTIxNjEsNyArMjE2MSw2IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09TY2hl
bWVJbmZvcm1hdGlvbkJveC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09TY2hlbWVUeXBl
Qm94LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1RyYWNrRW5jcnlwdGlvbkJveC5jcHAK
IHBsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09WVFRDdWUuY3BwCi1wbGF0Zm9ybS9ncmFwaGljcy9v
cGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbnR5cGUvT3BlblR5cGVNYXRoRGF0YS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvQWZmaW5lVHJhbnNmb3JtLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9N
YXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlYTU3NjVlZjY4ZDMzODFkODcwNjQ1
ZmYzZTdmYjc1ZmJjZDQ0ZGUzLi5lYWY0ZWQwZTQ3NWExY2QzNjdhY2I3OWNiZDYxZjhlZGM1Y2E0
ZGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC05NzcsNyArOTc3LDYgQEAKIAkJMzE4RUFENEQxRkE5MTM4MDAwOENFRjg2IC8q
IEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dFNldHRpbmdzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMThFQUQ0QTFGQTkxMTU3MDA4Q0VGODYgLyog
SW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0U2V0dGluZ3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTk4NDgwMTFBMUQ4MTdCMDBBMTMzMTgg
LyogQW5pbWF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDMxOTg0N0ZGMUExRDgxNjcwMEExMzMxOCAvKiBBbmltYXRpb25FdmVudC5oICov
OyB9OwogCQkzMTk4NDgwQzFBMUU2Q0U4MDBBMTMzMTggLyogSlNBbmltYXRpb25FdmVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5ODQ4MDQxQTFF
NkI1RDAwQTEzMzE4IC8qIEpTQW5pbWF0aW9uRXZlbnQuaCAqLzsgfTsKLQkJMzE5QTcyODgyM0My
NjdGRTAwODUzNTNDIC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5QTcyODcyM0MyNjdFNzAw
ODUzNTNDIC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMxOUFFMDY0MTQyRDZCMjQwMDY1
NjNBMSAvKiBTdHlsZUZpbHRlckRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMxOUFFMDYyMTQyRDZCMjQwMDY1NjNBMSAvKiBTdHlsZUZpbHRlckRh
dGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkz
MTlGQkQ1RjE1RDJGNDY0MDA5NjQwQTYgLyogQ2FjaGVkSW1hZ2VDbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOUZCRDVEMTVEMkY0NDQwMDk2
NDBBNiAvKiBDYWNoZWRJbWFnZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTMxQTA4OTU2MUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQ
VUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzFBMDg5MUQxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVQnVmZmVyLmggKi87IH07CkBAIC04
MzgwLDcgKzgzNzksNiBAQAogCQkzMTk4NDgwMDFBMUQ4MTY3MDBBMTMzMTggLyogQW5pbWF0aW9u
RXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEFuaW1hdGlvbkV2ZW50LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5ODQ4MDMxQTFFNkI1RDAwQTEzMzE4IC8qIEpT
QW5pbWF0aW9uRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNBbmltYXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxOTg0
ODA0MUExRTZCNUQwMEExMzMxOCAvKiBKU0FuaW1hdGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTQW5pbWF0aW9uRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJMzE5QTcyODcyM0MyNjdFNzAwODUzNTNDIC8qIEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MzE5QUUwNjExNDJENkIyNDAwNjU2M0ExIC8qIFN0eWxlRmlsdGVyRGF0YS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZUZpbHRlckRhdGEuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzMTlBRTA2MjE0MkQ2QjI0MDA2NTYzQTEgLyogU3R5bGVG
aWx0ZXJEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlRmlsdGVy
RGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTlCREU0RjFFN0E4NThBMDBC
QTI5NkMgLyogSlNSVENJY2VUcmFuc3BvcnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNSVENJY2VUcmFuc3BvcnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTY0OTQsNyArMTY0OTIsNiBAQAogCQlEMDZDMEQ4RTBDRkQxMTQ2MDA2NUY0M0Yg
LyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZW1vdmVGb3JtYXRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRDA3REVBQjcwQTM2NTU0QTAwQ0EzMEY4IC8qIEluc2VydExpc3RDb21tYW5kLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNlcnRMaXN0Q29tbWFuZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwN0RFQUI4MEEzNjU1NEEwMENBMzBG
OCAvKiBJbnNlcnRMaXN0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSW5zZXJ0TGlzdENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRDA4
NDNBNEMyMEZFQzE2NTAwRkU4NjBFIC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDg2RkU5NjA5RDUzQUFCMDA1QkM3NEQg
LyogVW5saW5rQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVbmxp
bmtDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwODZGRTk3MDlENTNB
QUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFVubGlua0NvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlEMEEyMEQ1NDIwOTJBMEE2MDBFMEMyNTkgLyogV2ViR0xDb21wcmVzc2VkVGV4dHVyZUFT
VEMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xDb21wcmVzc2VkVGV4
dHVyZUFTVEMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyOTI1LDggKzMyOTIy
LDYgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTZFMjFDNkJGMTEyNjMzODUwMEE3QkUwMiAvKiBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAgKi8sCiAJCQkJNDlDN0I5RkIxMDQyRDM2NTAwMDlE
NDQ3IC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmggKi8sCi0JCQkJRDA4NDNBNEMyMEZFQzE2
NTAwRkU4NjBFIC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5jcHAgKi8sCi0JCQkJ
MzE5QTcyODcyM0MyNjdFNzAwODUzNTNDIC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdl
ci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBvcGVuZ2w7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtMzQ3ODEsNyArMzQ3NzYsNiBAQAogCQkJCTdCQjM0QTQ4MjUzNzc2Q0EwMDAyOUQw
OCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk3QjZEQzgxOTI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VT
d2FwQ2hhaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QzdCOUZDMTA0MkQzNjUwMDA5RDQ0NyAv
KiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMzE5QTcyODgy
M0MyNjdGRTAwODUzNTNDIC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0I5NUNGRUIyNzU0RkY2RTAwMDA2MENFIC8qIEdyYXBoaWNzQ29udGV4
dEdMU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEQ2NzA4MEU5RTlERUIwMEU0MjBGMCAv
KiBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY1ODBCMEQwRjEyQTI2OTAwNTFENjg5IC8qIEdyYXBoaWNzTGF5ZXIuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmNwcAppbmRleCAyZGRhYzNmZjBhMDJlYzM5NGRjMzI1MjAyMzI0YzRkOGUy
NzFjM2Q3Li43NGM1ZjgyYjFiNjM2YzlkZDI0NjU1ZWZmNjkwNzFlMWFkNzU4YmEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlLmNwcApAQCAtMTI0LDggKzEyNCwxMSBAQAogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJ
bmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTG9ja2VyLmg+
CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFz
Lmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1
ZUFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0J1aWxkZXIuaD4KQEAgLTE1MSw5ICsxNTQsMTEgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZSk7CiAKLXN0YXRpYyBjb25zdCBTZWNvbmRzIHNlY29uZHNCZXR3ZWVuUmVzdG9yZUF0dGVt
cHRzIHsgMV9zIH07Ci1jb25zdCBpbnQgbWF4R0xFcnJvcnNBbGxvd2VkVG9Db25zb2xlID0gMjU2
Owotc3RhdGljIGNvbnN0IFNlY29uZHMgY2hlY2tDb250ZXh0TG9zc0hhbmRsaW5nRGVsYXkgeyAz
X3MgfTsKK3N0YXRpYyBjb25zdGV4cHIgU2Vjb25kcyBzZWNvbmRzQmV0d2VlblJlc3RvcmVBdHRl
bXB0cyB7IDFfcyB9Oworc3RhdGljIGNvbnN0ZXhwciBpbnQgbWF4R0xFcnJvcnNBbGxvd2VkVG9D
b25zb2xlID0gMjU2Oworc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIGNoZWNrQ29udGV4dExvc3NI
YW5kbGluZ0RlbGF5IHsgM19zIH07CitzdGF0aWMgY29uc3RleHByIHNpemVfdCBtYXhBY3RpdmVD
b250ZXh0cyA9IDE2Oworc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbWF4QWN0aXZlV29ya2VyQ29u
dGV4dHMgPSA0OwogCiBuYW1lc3BhY2UgewogICAgIApAQCAtNzg0LDYgKzc4OSw0NSBAQCBzdGF0
aWMgYm9vbCBpc0hpZ2hQZXJmb3JtYW5jZUNvbnRleHQoY29uc3QgUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dEdMPiYgY29udGV4dCkKICAgICByZXR1cm4gY29udGV4dC0+Y29udGV4dEF0dHJpYnV0ZXMo
KS5wb3dlclByZWZlcmVuY2UgPT0gV2ViR0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5j
ZTsKIH0KIAorLy8gQ291bnRlciBmb3IgZGV0ZXJtaW5pbmcgd2hpY2ggY29udGV4dCBoYXMgdGhl
IGVhcmxpZXN0IGFjdGl2ZSBhZ2UuCitzdGF0aWMgc3RkOjphdG9taWM8dWludDY0X3Q+IHNfbGFz
dEFjdGl2ZU9yZGluYWw7CisKK3VzaW5nIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2VTZXQgPSBI
YXNoU2V0PFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqPjsKKworc3RhdGljIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2VTZXQmIGFjdGl2ZUNvbnRleHRzKCkKK3sKKyAgICBzdGF0aWMgTGF6eU5l
dmVyRGVzdHJveWVkPFRocmVhZFNwZWNpZmljPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2VTZXQ+
PiBzX2FjdGl2ZUNvbnRleHRzOworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBzX29uY2VGbGFn
OworICAgIHN0ZDo6Y2FsbF9vbmNlKHNfb25jZUZsYWcsIFtdIHsKKyAgICAgICAgc19hY3RpdmVD
b250ZXh0cy5jb25zdHJ1Y3QoKTsKKyAgICB9KTsKKyAgICByZXR1cm4gKnNfYWN0aXZlQ29udGV4
dHMuZ2V0KCk7Cit9CisKK3N0YXRpYyB2b2lkIGFkZEFjdGl2ZUNvbnRleHQoV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSYgbmV3Q29udGV4dCkKK3sKKyAgICBhdXRvJiBjb250ZXh0cyA9IGFjdGl2
ZUNvbnRleHRzKCk7CisgICAgQVNTRVJUKCFjb250ZXh0cy5jb250YWlucyhjb250ZXh0KSk7Cisg
ICAgYXV0byBtYXhDb250ZXh0c1NpemUgPSBpc01haW5UaHJlYWQoKSA/IG1heEFjdGl2ZUNvbnRl
eHRzIDogbWF4QWN0aXZlV29ya2VyQ29udGV4dHM7CisgICAgaWYgKGNvbnRleHRzLnNpemUoKSA+
PSBtYXhDb250ZXh0c1NpemUpIHsKKyAgICAgICAgYXV0byBpdCA9IGNvbnRleHRzLmJlZ2luKCk7
CisgICAgICAgIGF1dG8qIGVhcmxpZXN0ID0gKml0OworICAgICAgICBmb3IgKCsraXQ7IGl0ICE9
IGNvbnRleHRzLmVuZCgpOyArK2l0KSB7CisgICAgICAgICAgICBpZiAoZWFybGllc3QtPmFjdGl2
ZU9yZGluYWwoKSA+ICgqaXQpLT5hY3RpdmVPcmRpbmFsKCkpCisgICAgICAgICAgICAgICAgZWFy
bGllc3QgPSAqaXQ7CisgICAgICAgIH0KKyAgICAgICAgZWFybGllc3QtPnJlY3ljbGVDb250ZXh0
KCk7CisgICAgICAgIEFTU0VSVChjb250ZXh0cy5zaXplKCkgPCBtYXhDb250ZXh0c1NpemUpOwor
ICAgIH0KKyAgICBjb250ZXh0cy5hZGQoJm5ld0NvbnRleHQpOworfQorCitzdGF0aWMgdm9pZCBy
ZW1vdmVBY3RpdmVDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIGNvbnRleHQpCit7
CisgICAgYm9vbCBkaWRDb250YWluID0gYWN0aXZlQ29udGV4dHMoKS5yZW1vdmUoJmNvbnRleHQp
OworICAgIEFTU0VSVF9VTlVTRUQoZGlkQ29udGFpbiwgZGlkQ29udGFpbik7Cit9CisKIHN0ZDo6
dW5pcXVlX3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpjcmVhdGUoQ2FudmFzQmFzZSYgY2FudmFzLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVz
JiBhdHRyaWJ1dGVzLCBXZWJHTFZlcnNpb24gdHlwZSkKIHsKICAgICBhdXRvIHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQgPSBjYW52YXMuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwpAQCAtOTE1LDcg
Kzk1OSw2IEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UoQ2FudmFzQmFzZSYgY2FudmFzLCBXZWJHTENvCiAKIFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoQ2FudmFzQmFzZSYgY2FudmFzLCBSZWY8
R3JhcGhpY3NDb250ZXh0R0w+JiYgY29udGV4dCwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyBhdHRy
aWJ1dGVzKQogICAgIDogR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdDb250ZXh0KGNhbnZhcykKLSAg
ICAsIG1fY29udGV4dChXVEZNb3ZlKGNvbnRleHQpKQogICAgICwgbV9yZXN0b3JlVGltZXIoY2Fu
dmFzLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMsICZXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjptYXliZVJlc3RvcmVDb250ZXh0KQogICAgICwgbV9nZW5lcmF0ZWRJbWFnZUNhY2hl
KDQpCiAgICAgLCBtX2F0dHJpYnV0ZXMoYXR0cmlidXRlcykKQEAgLTkyNSw2ICs5NjgsOCBAQCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKENhbnZh
c0Jhc2UmIGNhbnZhcywgUmVmPEdyYQogICAgICwgbV9pc1hSQ29tcGF0aWJsZShhdHRyaWJ1dGVz
LnhyQ29tcGF0aWJsZSkKICNlbmRpZgogeworICAgIHNldEdyYXBoaWNzQ29udGV4dEdMKFdURk1v
dmUoY29udGV4dCkpOworCiAgICAgbV9yZXN0b3JlVGltZXIuc3VzcGVuZElmTmVlZGVkKCk7CiAK
ICAgICBtX2NvbnRleHRHcm91cCA9IFdlYkdMQ29udGV4dEdyb3VwOjpjcmVhdGUoKTsKQEAgLTEy
MDIsNiArMTI0NywxNCBAQCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp+V2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSgpCiAgICAgfQogfQogCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6OnNldEdyYXBoaWNzQ29udGV4dEdMKFJlZjxHcmFwaGljc0NvbnRleHRHTD4mJiBjb250ZXh0
KQoreworICAgIEFTU0VSVCghbV9jb250ZXh0KTsKKyAgICBtX2NvbnRleHQgPSBXVEZNb3ZlKGNv
bnRleHQpOworICAgIHVwZGF0ZUFjdGl2ZU9yZGluYWwoKTsKKyAgICBhZGRBY3RpdmVDb250ZXh0
KCp0aGlzKTsKK30KKwogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZXN0cm95R3Jh
cGhpY3NDb250ZXh0R0woKQogewogICAgIGlmIChtX2lzUGVuZGluZ1BvbGljeVJlc29sdXRpb24p
CkBAIC0xMjEyLDYgKzEyNjUsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRl
c3Ryb3lHcmFwaGljc0NvbnRleHRHTCgpCiAgICAgaWYgKG1fY29udGV4dCkgewogICAgICAgICBt
X2NvbnRleHQtPnJlbW92ZUNsaWVudCgqdGhpcyk7CiAgICAgICAgIG1fY29udGV4dCA9IG51bGxw
dHI7CisgICAgICAgIHJlbW92ZUFjdGl2ZUNvbnRleHQoKnRoaXMpOwogICAgIH0KIH0KIApAQCAt
MTI2Myw2ICsxMzE3LDkgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjbGVhcklm
Q29tcG9zaXRlZChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpDbGUKICAgICBpZiAoaXNDb250
ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICAvLyBgY2xl
YXJJZkNvbXBvc2l0ZWQoKWAgaXMgYSBmdW5jdGlvbiB0aGF0IHByZXBhcmVzIGZvciB1cGRhdGVz
LiBNYXJrIHRoZSBjb250ZXh0IGFzIGFjdGl2ZS4KKyAgICB1cGRhdGVBY3RpdmVPcmRpbmFsKCk7
CisKICAgICBpZiAoIW1fY29udGV4dC0+bGF5ZXJDb21wb3NpdGVkKCkgfHwgbV9sYXllckNsZWFy
ZWQgfHwgbV9wcmV2ZW50QnVmZmVyQ2xlYXJGb3JJbnNwZWN0b3IpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIApAQCAtNzc2Miw3ICs3ODE5LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjptYXliZVJlc3RvcmVDb250ZXh0KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IG1fY29udGV4dCA9IGNvbnRleHQ7CisgICAgc2V0R3JhcGhpY3NDb250ZXh0R0woY29udGV4dC5y
ZWxlYXNlTm9uTnVsbCgpKTsKICAgICBhZGRBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXJJZk5l
Y2Vzc2FyeSgpOwogICAgIG1fY29udGV4dExvc3QgPSBmYWxzZTsKICAgICBzZXR1cEZsYWdzKCk7
CkBAIC04MTgzLDYgKzgyNDAsMTEgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpw
cmVwYXJlRm9yRGlzcGxheSgpCiAgICAgbV9jb250ZXh0LT5wcmVwYXJlRm9yRGlzcGxheSgpOwog
fQogCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVwZGF0ZUFjdGl2ZU9yZGluYWwo
KQoreworICAgIG1fYWN0aXZlT3JkaW5hbCA9IHNfbGFzdEFjdGl2ZU9yZGluYWwrKzsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5oCmluZGV4IGI1NDU3ZTcxMzdmODQyNmRjMDMxMDRiNGM0ZTZhM2ZiMjIyNGMzYmMuLmFmNzlm
OTA3OTU0ODE2YmMyZTgwNjI5NzQ0MTE2YzBjN2I0YzY5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKQEAgLTQz
Miw2ICs0MzIsOCBAQCBwdWJsaWM6CiAgICAgLy8gcHJvaGliaXRpdmVseSBleHBlbnNpdmUuCiAg
ICAgTG9jayYgb2JqZWN0R3JhcGhMb2NrKCkgV1RGX1JFVFVSTlNfTE9DSyhtX29iamVjdEdyYXBo
TG9jayk7CiAKKyAgICAvLyBSZXR1cm5zIHRoZSBvcmRpbmFsIG51bWJlciBvZiB3aGVuIHRoZSBj
b250ZXh0IHdhcyBsYXN0IGFjdGl2ZSAoZHJldywgcmVhZCBwaXhlbHMpLgorICAgIHVpbnQ2NF90
IGFjdGl2ZU9yZGluYWwoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZU9yZGluYWw7IH0KIHByb3Rl
Y3RlZDoKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKENhbnZhc0Jhc2UmLCBXZWJHTENv
bnRleHRBdHRyaWJ1dGVzKTsKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKENhbnZhc0Jh
c2UmLCBSZWY8R3JhcGhpY3NDb250ZXh0R0w+JiYsIFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMpOwpA
QCAtNDczLDYgKzQ3NSw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGFkZENvbnRleHRPYmplY3Qo
V2ViR0xDb250ZXh0T2JqZWN0Jik7CiAgICAgdm9pZCBkZXRhY2hBbmRSZW1vdmVBbGxPYmplY3Rz
KCk7CiAKKyAgICB2b2lkIHNldEdyYXBoaWNzQ29udGV4dEdMKFJlZjxHcmFwaGljc0NvbnRleHRH
TD4mJik7CiAgICAgdm9pZCBkZXN0cm95R3JhcGhpY3NDb250ZXh0R0woKTsKICAgICB2b2lkIG1h
cmtDb250ZXh0Q2hhbmdlZCgpOwogICAgIHZvaWQgbWFya0NvbnRleHRDaGFuZ2VkQW5kTm90aWZ5
Q2FudmFzT2JzZXJ2ZXIoKTsKQEAgLTU0Miw2ICs1NDUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9v
bCBjb21wb3NpdGluZ1Jlc3VsdHNOZWVkVXBkYXRpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X2NvbXBvc2l0aW5nUmVzdWx0c05lZWRVcGRhdGluZzsgfQogICAgIGJvb2wgbmVlZHNQcmVwYXJh
dGlvbkZvckRpc3BsYXkoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBw
cmVwYXJlRm9yRGlzcGxheSgpIGZpbmFsOworICAgIHZvaWQgdXBkYXRlQWN0aXZlQWdlKCk7CiAK
ICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0w+IG1fY29udGV4dDsKICAgICBSZWZQdHI8V2Vi
R0xDb250ZXh0R3JvdXA+IG1fY29udGV4dEdyb3VwOwpAQCAtMTE0Miw2ICsxMTQ2LDggQEAgcHJp
dmF0ZToKICNpZiBFTkFCTEUoV0VCWFIpCiAgICAgYm9vbCBtX2lzWFJDb21wYXRpYmxlIHsgZmFs
c2UgfTsKICNlbmRpZgorICAgIC8vIFRoZSBvcmRpbmFsIG51bWJlciBvZiB3aGVuIHRoZSBjb250
ZXh0IHdhcyBsYXN0IGFjdGl2ZSAoZHJldywgcmVhZCBwaXhlbHMpLgorICAgIHVpbnQ2NF90IG1f
YWN0aXZlT3JkaW5hbCB7IDAgfTsKIH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250
ZXh0R0xBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9H
cmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAppbmRleCAwYzM5NDk3NWYyZTYwZWM3Y2ZkYTM4NGIx
MzgyNmQwNTFmODMxZGI2Li44NzIxMjU0MWM2MDY4YzBhY2UyYzI5MDU3Nzk4MjMyMTMxMWVlZDA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFw
aGljc0NvbnRleHRHTEFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcApAQCAtMzEsNyArMzEsNiBAQAog
CiAjaW5jbHVkZSAiQU5HTEVIZWFkZXJzLmgiCiAjaW5jbHVkZSAiQU5HTEVVdGlsaXRpZXMuaCIK
LSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKICNpbmNsdWRlICJJ
bWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJJbnRTaXplLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFw
aGljc0NvbnRleHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQppbmRleCAzNWI5MWZiM2RkNjdhNzMyODk3
Y2M1NDY3MjJjM2ZmNTBhOWQwOTY5Li5kMmQ4ODE4Y2I0MzBmNTkzMGUzOTUzYmFhYTNjODQ0NWJj
ZjQ1M2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTMzLDcgKzMzLDYg
QEAKICNpbXBvcnQgIkFOR0xFVXRpbGl0aWVzQ29jb2EuaCIKICNpbXBvcnQgIkNWVXRpbGl0aWVz
LmgiCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oIgotI2lt
cG9ydCAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgiCiAjaW1wb3J0ICJMb2dnaW5n
LmgiCiAjaW1wb3J0ICJQaXhlbEJ1ZmZlci5oIgogI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5Lmgi
CkBAIC00MjgsNyArNDI3LDYgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0Zm9y
bUluaXRpYWxpemUoKQogCiBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjp+R3JhcGhpY3NDb250ZXh0
R0xBTkdMRSgpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRN
YW5hZ2VyKCkucmVtb3ZlQ29udGV4dCh0aGlzKTsKICAgICBpZiAobWFrZUNvbnRleHRDdXJyZW50
KCkpIHsKICAgICAgICAgaWYgKG1fdGV4dHVyZSkKICAgICAgICAgICAgIEdMX0RlbGV0ZVRleHR1
cmVzKDEsICZtX3RleHR1cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250
ZXh0R0xDb2NvYS5tbQppbmRleCAwYmIxMDY1YjNhNjE2NjliOTg1MDE4NTMwNDVhNzBiNmZhYTFi
NTA4Li5iOTlhYjZlMmI2Mzk4Yzg5YWNmNDQ0OTg4ZmQ3MWEwNDdhNmRmZTg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQpAQCAtMjgsNyArMjgs
NiBAQAogCiAjaWYgRU5BQkxFKFdFQkdMKQogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xDb2Nv
YS5oIiAvLyBOT0xJTlQKLSNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5o
IgogI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVyLmgiCiAjaW1wb3J0ICJQcm9jZXNzSWRlbnRpdHku
aCIKIApAQCAtMTQ2LDE0ICsxNDUsOSBAQCB2b2lkIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRH
TENvY29hOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKIAogUmVmUHRyPEdyYXBoaWNzQ29udGV4
dEdMPiBjcmVhdGVXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0woY29uc3QgR3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzKQogewotICAgIC8vIE1ha2Ugc3BhY2UgZm9yIHRo
ZSBpbmNvbWluZyBjb250ZXh0IGlmIHdlJ3JlIGZ1bGwuCi0gICAgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkucmVjeWNsZUNvbnRleHRJZk5lY2Vzc2FyeSgp
OwotICAgIGlmIChHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIo
KS5oYXNUb29NYW55Q29udGV4dHMoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgYXV0
byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29h
KEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyB7IGF0dHJpYnV0ZXMgfSkpOwogICAgIGlmICgh
Y29udGV4dC0+aW5pdGlhbGl6ZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5hZGRDb250ZXh0KGNv
bnRleHQuZ2V0KCkpOwogICAgIHJldHVybiBjb250ZXh0OwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dEdMT3BlbkdMLmNwcAppbmRleCA0ZTQyNzE5YTVkOWYwNzgxOWE1Nzk1NmQxMDJiODJk
ZTA2YmVmYmFkLi5iNWJhYzdkOGZlNDNjNDgwODU2NmFiOWNjZjdmNzQ0MjQwNzY0NmE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKICNp
bmNsdWRlICJBTkdMRVdlYktpdEJyaWRnZS5oIgogI2luY2x1ZGUgIkdMQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMTWFuYWdlci5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW50UmVj
dC5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKQEAgLTI1MSw3ICsyNTAsNiBAQCBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xB
dHRyaWJ1dGVzIGF0dAogCiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6fkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKCkKIHsKLSAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJl
ZE1hbmFnZXIoKS5yZW1vdmVDb250ZXh0KHRoaXMpOwogICAgIGJvb2wgc3VjY2VzcyA9IG1ha2VD
b250ZXh0Q3VycmVudCgpOwogICAgIEFTU0VSVF9VTlVTRUQoc3VjY2Vzcywgc3VjY2Vzcyk7CiAg
ICAgaWYgKG1fdGV4dHVyZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
TWFuYWdlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyZDRiM2FmZjI5MWQ4
MjAxMDc3NGQ3ZTZkNGY0ODk3MDcyNGMyZjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3
MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxF
KFdFQkdMKQotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgotCi0j
aW5jbHVkZSAiTG9nZ2luZy5oIgotCi0jaWYgVVNFKEFOR0xFKQotI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dEdMQU5HTEUuaCIKLSNlbHNlCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wuaCIKLSNlbmRpZgotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTE1hbmFnZXImIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdl
cigpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
TWFuYWdlcj4gc19tYW5hZ2VyOwotICAgIHJldHVybiBzX21hbmFnZXI7Ci19Ci0KLXZvaWQgR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjphZGRDb250ZXh0KEdyYXBoaWNzQ29udGV4dEdM
VHlwZSogY29udGV4dCkKLXsKLSAgICBBU1NFUlQoY29udGV4dCk7Ci0gICAgaWYgKCFjb250ZXh0
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBBU1NFUlQoIW1fY29udGV4dHMuY29udGFpbnMoY29u
dGV4dCkpOwotICAgIG1fY29udGV4dHMuYXBwZW5kKGNvbnRleHQpOwotfQotCi12b2lkIEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6cmVtb3ZlQ29udGV4dChHcmFwaGljc0NvbnRleHRH
TFR5cGUqIGNvbnRleHQpCi17Ci0gICAgaWYgKCFtX2NvbnRleHRzLmNvbnRhaW5zKGNvbnRleHQp
KQotICAgICAgICByZXR1cm47Ci0gICAgbV9jb250ZXh0cy5yZW1vdmVGaXJzdChjb250ZXh0KTsK
LX0KLQotdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnJlY3ljbGVDb250ZXh0
SWZOZWNlc3NhcnkoKQotewotICAgIGlmIChoYXNUb29NYW55Q29udGV4dHMoKSkgewotICAgICAg
ICBMT0coV2ViR0wsICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIgcmVjeWNsZWQgY29u
dGV4dCAoJXApLiIsIG1fY29udGV4dHNbMF0pOwotICAgICAgICBtX2NvbnRleHRzWzBdLT5yZWN5
Y2xlQ29udGV4dCgpOwotICAgIH0KLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5k
aWYgLy8gRU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdM
TWFuYWdlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMDc5MDljODFiOTRlNmRm
M2RiNGEyZjE0Y2I3ODRjYTMzMTIzMjZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDY0ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0
Lmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNv
bnN0IHVuc2lnbmVkIE1heENvbnRleHRzID0gMTY7Ci0KLSNpZiBVU0UoQU5HTEUpCi1jbGFzcyBH
cmFwaGljc0NvbnRleHRHTEFOR0xFOwotI2Vsc2UKLWNsYXNzIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMOwotI2VuZGlmCi0KLWNsYXNzIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlciB7Ci0g
ICAgZnJpZW5kIE5ldmVyRGVzdHJveWVkPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcj47
Ci1wdWJsaWM6Ci0jaWYgVVNFKEFOR0xFKQotICAgIHVzaW5nIEdyYXBoaWNzQ29udGV4dEdMVHlw
ZSA9IEdyYXBoaWNzQ29udGV4dEdMQU5HTEU7Ci0jZWxzZQotICAgIHVzaW5nIEdyYXBoaWNzQ29u
dGV4dEdMVHlwZSA9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOwotI2VuZGlmCi0KLSAgICBzdGF0
aWMgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyJiBzaGFyZWRNYW5hZ2VyKCk7Ci0gICAg
Ci0gICAgdm9pZCBhZGRDb250ZXh0KEdyYXBoaWNzQ29udGV4dEdMVHlwZSopOwotICAgIHZvaWQg
cmVtb3ZlQ29udGV4dChHcmFwaGljc0NvbnRleHRHTFR5cGUqKTsKLSAgICAKLSAgICB2b2lkIHJl
Y3ljbGVDb250ZXh0SWZOZWNlc3NhcnkoKTsKLSAgICBib29sIGhhc1Rvb01hbnlDb250ZXh0cygp
IGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dHMuc2l6ZSgpID49IE1heENvbnRleHRzOyB9Ci0gICAg
Ci1wcml2YXRlOgotICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcigpID0gZGVmYXVs
dDsKLQotICAgIFZlY3RvcjxHcmFwaGljc0NvbnRleHRHTFR5cGUqPiBtX2NvbnRleHRzOwotfTsK
LQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcApp
bmRleCA5MmZmNTIwNmIyNWYwNTFkMDM1ODYyNWM5M2JiNDkxYTQ5NmViOWY1Li4yYzU3MDJkMDc2
Y2U5M2JmMzg2ODJkNjJhZmJlYmI0N2YyODFhOGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhp
Y3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcApAQCAtMzEsNyArMzEsNiBAQAogCiAjaWYgRU5B
QkxFKFdFQkdMKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCiAKLSNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKICNpbmNsdWRlICJQaXhlbEJ1ZmZlci5oIgogI2luY2x1
ZGUgIlRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgPHd0Zi9EZXF1
ZS5oPgpAQCAtMTA2LDExICsxMDUsNiBAQCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0w+IGNyZWF0
ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTChjb25zdCBHcmFwaGljc0NvbnRleAogICAgIGlm
ICghc3VjY2VzcykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAvLyBNYWtlIHNwYWNl
IGZvciB0aGUgaW5jb21pbmcgY29udGV4dCBpZiB3ZSdyZSBmdWxsLgotICAgIEdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlY3ljbGVDb250ZXh0SWZOZWNl
c3NhcnkoKTsKLSAgICBpZiAoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRN
YW5hZ2VyKCkuaGFzVG9vTWFueUNvbnRleHRzKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwot
CiAgICAgLy8gQ3JlYXRlIHRoZSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCBvYmplY3QgZmlyc3Qg
aW4gb3JkZXIgdG8gZXN0YWJsaXN0IGEgY3VycmVudCBjb250ZXh0IG9uIHRoaXMgdGhyZWFkLgog
ICAgIGF1dG8gY29udGV4dCA9IEdyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlcjo6Y3JlYXRl
KEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyB7IGF0dHJpYnV0ZXMgfSk7CiAgICAgaWYgKCFj
b250ZXh0KQpAQCAtMTIwLDkgKzExNCw2IEBAIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTD4gY3Jl
YXRlV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMKGNvbnN0IEdyYXBoaWNzQ29udGV4CiAgICAg
aWYgKGF0dHJpYnV0ZXMud2ViR0xWZXJzaW9uID09IEdyYXBoaWNzQ29udGV4dEdMV2ViR0xWZXJz
aW9uOjpXZWJHTDIgJiYgIWVwb3h5X2lzX2Rlc2t0b3BfZ2woKSAmJiBlcG94eV9nbF92ZXJzaW9u
KCkgPCAzMCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKLQotICAgIEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmFkZENvbnRleHQoY29udGV4
dC5nZXQoKSk7Ci0KICAgICByZXR1cm4gY29udGV4dDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVy
ZU1hcHBlckFOR0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXJBTkdMRS5jcHAKaW5kZXggNTY1MTU0YTg2
OWM4ODU1NmE3YzkwOGVmYjg3OTY2YjZmYjUwM2M0ZC4uYTJkNzFkMWU5NzY4YWFlZTUxYmRlMzFl
MjE5NjQxZmQ2NmNiMGM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlckFOR0xFLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0
R0xUZXh0dXJlTWFwcGVyQU5HTEUuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAKICNpbmNsdWRlICJB
TkdMRUhlYWRlcnMuaCIKICNpbmNsdWRlICJBTkdMRVV0aWxpdGllcy5oIgotI2luY2x1ZGUgIkdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNp
bmNsdWRlICJQaXhlbEJ1ZmZlci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXJEaXNwbGF5RGVs
ZWdhdGUuaCIKQEAgLTMxOCw3ICszMTcsNiBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6
OkVHTEltYWdlQmFja2luZzo6cmVzZXQoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBib29sCiAKIEdy
YXBoaWNzQ29udGV4dEdMQU5HTEU6On5HcmFwaGljc0NvbnRleHRHTEFOR0xFKCkKIHsKLSAgICBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5yZW1vdmVDb250
ZXh0KHRoaXMpOwogICAgIGJvb2wgc3VjY2VzcyA9IG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAg
IEFTU0VSVF9VTlVTRUQoc3VjY2Vzcywgc3VjY2Vzcyk7CiAgICAgaWYgKG1fdGV4dHVyZSkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCA0ZWE5ZWE2YTc2NWU2ZGZlZmE4YjhiODQ1MzExMGUzNmU5ZTBhMjRmLi4zNTVkZWUxMThm
ZTdhN2RiZWI3OGE2ZjUxNGFiN2EyNDBjN2U5ZTE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIw
MjItMDMtMDIgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBXZWJHTCBjb250ZXh0IGNvdW50IGlzIG5vdCBsaW1pdGVkIGZvciBHUFUgcHJvY2VzcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDExCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9p
b3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjItMDMtMDEgIERldmluIFJvdXNzbyAgPGRy
b3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBhIHN3aXRjaCB0
byBjb250cm9sIHdoZXRoZXIgYnJlYWtwb2ludCBldmFsdWF0aW9ucyAoY29uZGl0aW9uLCBpZ25v
cmUgY291bnQsIGFjdGlvbnMpIGFyZSBhbHNvIGFmZmVjdGVkIGJ5IHNjcmlwdCBibGFja2JveGlu
ZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDkyMWEzMGUxMjVkYzYyMmVkMTA4MDI2YjMzYjkzZmEzYjA1NzkzMTkuLjA2NjcyN2NjNDVlYTll
ZGQyMjkzN2RjYTczZWVlM2QxZGNlOWNkYTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIyMDYsMTEgKzIyMDYsNSBAQCBodHRwL3dwdC9o
dG1sL3NlbWFudGljcy90ZXh0LWxldmVsLXNlbWFudGljcy90aGUtYS1lbGVtZW50L2EtZG93bmxv
YWQtY2xpY2stNDA0LgogCiAjIFRlc3QgZmFpbHVyZXMgZnJvbSB0dXJuaW5nIEdQVSBQcm9jZXNz
IG9uIGJ5IGRlZmF1bHQKIHdlYmtpdC5vcmcvYi8yMzQ1MzYgd2ViZ2wvMi4wLjAvY29uZm9ybWFu
Y2UvcmVhZGluZy9yZWFkLXBpeGVscy10ZXN0Lmh0bWwKLXdlYmtpdC5vcmcvYi8yMzQ1MzYgd2Vi
Z2wvbWFueS1jb250ZXh0cy1hY2Nlc3MtYWZ0ZXItbG9zcy5odG1sCi13ZWJraXQub3JnL2IvMjM0
NTM2IHdlYmdsL21hbnktY29udGV4dHMuaHRtbAotd2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC9t
YXgtYWN0aXZlLWNvbnRleHRzLWNvbnNvbGUtd2FybmluZy5odG1sCi13ZWJraXQub3JnL2IvMjM0
NTM2IHdlYmdsL21heC1hY3RpdmUtY29udGV4dHMtZ2MuaHRtbAotd2Via2l0Lm9yZy9iLzIzNDUz
NiB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLW9sZGVzdC1jb250ZXh0LWxvc3QuaHRtbAogd2Vi
a2l0Lm9yZy9iLzIzNDUzNiB3ZWJ4ci9oaWdoLXBlcmZvcm1hbmNlLmh0bWwKLXdlYmtpdC5vcmcv
Yi8yMzQ1MzYgd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy13ZWJnbGNvbnRleHRsb3N0LXByZXZl
bnQtZGVmYXVsdC5odG1sIFsgVGltZW91dCBdCiB3ZWJraXQub3JnL2IvMjM0NTM2IHdlYmdsLzEu
MC4zL2NvbmZvcm1hbmNlL3N0YXRlL2dsLW9iamVjdC1nZXQtY2FsbHMuaHRtbCBbIFRpbWVvdXQg
XQo=
</data>
<flag name="commit-queue"
          id="481029"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453601</attachid>
            <date>2022-03-02 06:35:14 -0800</date>
            <delta_ts>2022-03-02 08:45:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222411-20220302163513.patch</filename>
            <type>text/plain</type>
            <size>30918</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDVlYTA0ODY3MTMxNjZi
YWI2ZGQzYzgwNmMzNTJlNWUxMDViMGFmZC4uODQzZWRhNTA1MjE1N2JhZTdhZWZlZjY1NGNiOTk4
MzQxNjg3ODg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIyLTAzLTAyICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY29udGV4
dCBjb3VudCBpcyBub3QgbGltaXRlZCBmb3IgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQxMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGNvbnRleHQgbGltaXQgZnJv
bSB0aGUgR3JhcGhpY3NDb250ZXh0R0wgaW1wbGVtZW50YXRpb24KKyAgICAgICAgbGV2ZWwgdG8g
V2ViR0xSZW5kZXJpbmdDb250ZXh0IGxldmVsLiBUaGlzIHdheSB0aGUgbGltaXQKKyAgICAgICAg
aXMgYXBwbGllZCB0byB0aGUgR1BVUCBpbXBsZW1lbnRhdGlvbiB0b28uCisKKyAgICAgICAgUmVj
eWNsZSB0aGUgY29udGV4dCB3aXRoIHRoZSBlYXJsaWVzdCBhY3Rpdml0eSAoZHJhdywgcmVhZHBp
eGVscykKKyAgICAgICAgaW5zdGVhZCBvZiB0aGUgY3JlYXRpb24gb3JkZXIuCisKKyAgICAgICAg
U3RvcmVzIHRoZSBXZWJHTCBjb250ZXh0cyB0byBwZXItdGhyZWFkIHNldCBhbmQgbGltaXRzIHRo
ZSBzaXplIG9mIHRoZSBzZXQuCisgICAgICAgIFRoZSBzZXQgaXMgcGVyLXRocmVhZCB0byBzdXBw
b3J0IFdlYkdMIGNvbnRleHRzIGluIERPTSBhcyB3ZWxsIGFzCisgICAgICAgIG9mZnNjcmVlbiBj
YW52YXMgdXNlLWNhc2VzLiBPZmZzY3JlZW4gY2FudmFzIGlzIG5vdCBpbXBsZW1lbnRlZCBmb3Ig
Q29jb2EKKyAgICAgICAgYnV0IG90aGVyIHBvcnRzIG1heSBlbmFibGUgaXQuCisKKyAgICAgICAg
VGVzdGVkIGJ5OgorICAgICAgICBMYXlvdXRUZXN0cy93ZWJnbC9sb3NlLWNvbnRleHQtYWZ0ZXIt
Y29udGV4dC1sb3N0Lmh0bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvd2ViZ2wvbWFueS1jb250ZXh0
cy1hY2Nlc3MtYWZ0ZXItbG9zcy5odG1sCisgICAgICAgIExheW91dFRlc3RzL3dlYmdsL21hbnkt
Y29udGV4dHMuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy93ZWJnbC9tYXgtYWN0aXZlLWNvbnRl
eHRzLWNvbnNvbGUtd2FybmluZy5odG1sCisgICAgICAgIExheW91dFRlc3RzL3dlYmdsL21heC1h
Y3RpdmUtY29udGV4dHMtZ2MuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy93ZWJnbC9tYXgtYWN0
aXZlLWNvbnRleHRzLW9sZGVzdC1jb250ZXh0LWxvc3QuaHRtbAorICAgICAgICBMYXlvdXRUZXN0
cy93ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLXdlYmdsY29udGV4dGxvc3QtcHJldmVudC1kZWZh
dWx0Lmh0bWwKKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogU291cmNlcy50
eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6YWN0aXZlQ29udGV4dHMpOgorICAgICAgICAoV2ViQ29yZTo6YWRkQWN0aXZlQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpyZW1vdmVBY3RpdmVDb250ZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6c2V0
R3JhcGhpY3NDb250ZXh0R0wpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6ZGVzdHJveUdyYXBoaWNzQ29udGV4dEdMKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNsZWFySWZDb21wb3NpdGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9yZUNvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dXBkYXRlQWN0aXZl
T3JkaW5hbCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWN0aXZl
T3JkaW5hbCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhp
Y3NDb250ZXh0R0xBTkdMRS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMQU5HTEU6On5HcmFwaGljc0NvbnRleHRHTEFOR0xFKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjp+R3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0
R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdlYlByb2Nlc3NH
cmFwaGljc0NvbnRleHRHTCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dy
YXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlckFOR0xFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6On5HcmFwaGljc0NvbnRleHRHTEFOR0xFKToKKwogMjAy
Mi0wMy0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVt
b3ZlIFJlbW90ZVZpZGVvU2FtcGxlIHN1cHBvcnQgZnJvbSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZU
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZQppbmRleCAzY2I0YTQ5ZDk4NTE2YzljYmQ1MWRlZGNmYWMzNmFmMmRm
ZDVkMTUxLi4wYTVhZWFiZGNhODJlOThmY2ZkOTQ1YTQzZTFiMjY1OGYxMzQ1MWE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKQEAgLTE2NTcsNyArMTY1Nyw2IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJB
TUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dM
T3BlbkdMQ29tbW9uLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dM
T3BlbkdMRVMuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRH
TE9wZW5HTC5oCi0gICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdM
T3BlbkdMTWFuYWdlci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RlbXBvcmFyeU9w
ZW5HTFNldHRpbmcuaAogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVN
YXRoRGF0YS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGExZDZiNmZjNjNhZDI5MWYwNzI4ZDUxODk3ZThi
OWMxNzk3Y2IzMDEuLjNhMzVlMjYwNWUwM2U2Mjk3OWIyMjlkODI2ZmU2ZTczYmUyOTQyZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CkBAIC0yMTYxLDcgKzIxNjEsNiBAQCBwbGF0Zm9ybS9ncmFwaGljcy9pc28v
SVNPU2NoZW1lSW5mb3JtYXRpb25Cb3guY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9pc28vSVNPU2No
ZW1lVHlwZUJveC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09UcmFja0VuY3J5cHRpb25C
b3guY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9pc28vSVNPVlRUQ3VlLmNwcAotcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5jcHAKIHBsYXRmb3Jt
L2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlTWF0aERhdGEuY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL0FmZmluZVRyYW5zZm9ybS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWE1NzY1ZWY2OGQzMzgx
ZDg3MDY0NWZmM2U3ZmI3NWZiY2Q0NGRlMy4uZWFmNGVkMGU0NzVhMWNkMzY3YWNiNzljYmQ2MWY4
ZWRjNWNhNGRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtOTc3LDcgKzk3Nyw2IEBACiAJCTMxOEVBRDREMUZBOTEzODAwMDhD
RUY4NiAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHRTZXR0aW5ncy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE4RUFENEExRkE5MTE1NzAwOENF
Rjg2IC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dFNldHRpbmdzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzE5ODQ4MDExQTFEODE3QjAw
QTEzMzE4IC8qIEFuaW1hdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTk4NDdGRjFBMUQ4MTY3MDBBMTMzMTggLyogQW5pbWF0aW9uRXZl
bnQuaCAqLzsgfTsKIAkJMzE5ODQ4MEMxQTFFNkNFODAwQTEzMzE4IC8qIEpTQW5pbWF0aW9uRXZl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTg0
ODA0MUExRTZCNUQwMEExMzMxOCAvKiBKU0FuaW1hdGlvbkV2ZW50LmggKi87IH07Ci0JCTMxOUE3
Mjg4MjNDMjY3RkUwMDg1MzUzQyAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOUE3Mjg3MjND
MjY3RTcwMDg1MzUzQyAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTlBRTA2NDE0MkQ2
QjI0MDA2NTYzQTEgLyogU3R5bGVGaWx0ZXJEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTlBRTA2MjE0MkQ2QjI0MDA2NTYzQTEgLyogU3R5bGVG
aWx0ZXJEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMzE5RkJENUYxNUQyRjQ2NDAwOTY0MEE2IC8qIENhY2hlZEltYWdlQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTlGQkQ1RDE1RDJG
NDQ0MDA5NjQwQTYgLyogQ2FjaGVkSW1hZ2VDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMUEwODk1NjFFNzM4RDU5MDAzQjY2MDkgLyog
SlNXZWJHUFVCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMxQTA4OTFEMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVUJ1ZmZlci5oICovOyB9
OwpAQCAtODM4MCw3ICs4Mzc5LDYgQEAKIAkJMzE5ODQ4MDAxQTFEODE2NzAwQTEzMzE4IC8qIEFu
aW1hdGlvbkV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBbmltYXRpb25FdmVudC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxOTg0ODAzMUExRTZCNUQwMEExMzMx
OCAvKiBKU0FuaW1hdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTQW5pbWF0aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzMTk4NDgwNDFBMUU2QjVEMDBBMTMzMTggLyogSlNBbmltYXRpb25FdmVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FuaW1hdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTMxOUE3Mjg3MjNDMjY3RTcwMDg1MzUzQyAvKiBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTMxOUFFMDYxMTQyRDZCMjQwMDY1NjNBMSAvKiBTdHlsZUZpbHRlckRhdGEuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVGaWx0ZXJEYXRhLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5QUUwNjIxNDJENkIyNDAwNjU2M0ExIC8q
IFN0eWxlRmlsdGVyRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHls
ZUZpbHRlckRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5QkRFNEYxRTdB
ODU4QTAwQkEyOTZDIC8qIEpTUlRDSWNlVHJhbnNwb3J0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTUlRDSWNlVHJhbnNwb3J0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE2NDk0LDcgKzE2NDkyLDYgQEAKIAkJRDA2QzBEOEUwQ0ZEMTE0NjAw
NjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUQwN0RFQUI3MEEzNjU1NEEwMENBMzBGOCAvKiBJbnNlcnRMaXN0Q29tbWFu
ZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zZXJ0TGlzdENv
bW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDdERUFCODBBMzY1NTRB
MDBDQTMwRjggLyogSW5zZXJ0TGlzdENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluc2VydExpc3RDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUQwODQzQTRDMjBGRUMxNjUwMEZFODYwRSAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1h
bmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5h
Z2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA4NkZFOTYwOUQ1M0FBQjAw
NUJDNzREIC8qIFVubGlua0NvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVW5saW5rQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDg2RkU5
NzA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBVbmxpbmtDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRDBBMjBENTQyMDkyQTBBNjAwRTBDMjU5IC8qIFdlYkdMQ29tcHJlc3NlZFRl
eHR1cmVBU1RDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVBU1RDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjkyNSw4
ICszMjkyMiw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk2RTIxQzZCRjExMjYzMzg1MDBBN0JF
MDIgLyogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwICovLAogCQkJCTQ5QzdCOUZCMTA0MkQz
NjUwMDA5RDQ0NyAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oICovLAotCQkJCUQwODQzQTRD
MjBGRUMxNjUwMEZFODYwRSAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwICov
LAotCQkJCTMxOUE3Mjg3MjNDMjY3RTcwMDg1MzUzQyAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TE1hbmFnZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gb3BlbmdsOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTM0NzgxLDcgKzM0Nzc2LDYgQEAKIAkJCQk3QkIzNEE0ODI1Mzc3NkNB
MDAwMjlEMDggLyogR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJN0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9T
dXJmYWNlU3dhcENoYWluLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3QjlGQzEwNDJEMzY1MDAw
OUQ0NDcgLyogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCBpbiBIZWFkZXJzICovLAotCQkJCTMx
OUE3Mjg4MjNDMjY3RkUwMDg1MzUzQyAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTdCOTVDRkVCMjc1NEZGNkUwMDAwNjBDRSAvKiBHcmFwaGlj
c0NvbnRleHRHTFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBENjcwODBFOUU5REVCMDBF
NDIwRjAgLyogR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNTgwQjBEMEYxMkEyNjkwMDUxRDY4OSAvKiBHcmFwaGljc0xheWVyLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggMmRkYWMzZmYwYTAyZWMzOTRkYzMyNTIwMjMy
NGM0ZDhlMjcxYzNkNy4uNTZmMjI2MWY3MjUxMmU4OGNlOWMwMzI0YWEzYjc5M2EyNWRkNTY2YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZS5jcHAKQEAgLTEyNCw4ICsxMjQsMTEgQEAKICNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0xv
Y2tlci5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExp
YkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgogI2luY2x1ZGUgPHd0
Zi9VbmlxdWVBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkBAIC0xNTEsOSArMTU0LDExIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UpOwogCi1zdGF0aWMgY29uc3QgU2Vjb25kcyBzZWNvbmRzQmV0d2VlblJlc3Rv
cmVBdHRlbXB0cyB7IDFfcyB9OwotY29uc3QgaW50IG1heEdMRXJyb3JzQWxsb3dlZFRvQ29uc29s
ZSA9IDI1NjsKLXN0YXRpYyBjb25zdCBTZWNvbmRzIGNoZWNrQ29udGV4dExvc3NIYW5kbGluZ0Rl
bGF5IHsgM19zIH07CitzdGF0aWMgY29uc3RleHByIFNlY29uZHMgc2Vjb25kc0JldHdlZW5SZXN0
b3JlQXR0ZW1wdHMgeyAxX3MgfTsKK3N0YXRpYyBjb25zdGV4cHIgaW50IG1heEdMRXJyb3JzQWxs
b3dlZFRvQ29uc29sZSA9IDI1NjsKK3N0YXRpYyBjb25zdGV4cHIgU2Vjb25kcyBjaGVja0NvbnRl
eHRMb3NzSGFuZGxpbmdEZWxheSB7IDNfcyB9Oworc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbWF4
QWN0aXZlQ29udGV4dHMgPSAxNjsKK3N0YXRpYyBjb25zdGV4cHIgc2l6ZV90IG1heEFjdGl2ZVdv
cmtlckNvbnRleHRzID0gNDsKIAogbmFtZXNwYWNlIHsKICAgICAKQEAgLTc4NCw2ICs3ODksNDUg
QEAgc3RhdGljIGJvb2wgaXNIaWdoUGVyZm9ybWFuY2VDb250ZXh0KGNvbnN0IFJlZlB0cjxHcmFw
aGljc0NvbnRleHRHTD4mIGNvbnRleHQpCiAgICAgcmV0dXJuIGNvbnRleHQtPmNvbnRleHRBdHRy
aWJ1dGVzKCkucG93ZXJQcmVmZXJlbmNlID09IFdlYkdMUG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVy
Zm9ybWFuY2U7CiB9CiAKKy8vIENvdW50ZXIgZm9yIGRldGVybWluaW5nIHdoaWNoIGNvbnRleHQg
aGFzIHRoZSBlYXJsaWVzdCBhY3RpdmUgb3JkaW5hbCBudW1iZXIuCitzdGF0aWMgc3RkOjphdG9t
aWM8dWludDY0X3Q+IHNfbGFzdEFjdGl2ZU9yZGluYWw7CisKK3VzaW5nIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2VTZXQgPSBIYXNoU2V0PFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqPjsKKwor
c3RhdGljIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2VTZXQmIGFjdGl2ZUNvbnRleHRzKCkKK3sK
KyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPFRocmVhZFNwZWNpZmljPFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2VTZXQ+PiBzX2FjdGl2ZUNvbnRleHRzOworICAgIHN0YXRpYyBzdGQ6Om9u
Y2VfZmxhZyBzX29uY2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKHNfb25jZUZsYWcsIFtdIHsK
KyAgICAgICAgc19hY3RpdmVDb250ZXh0cy5jb25zdHJ1Y3QoKTsKKyAgICB9KTsKKyAgICByZXR1
cm4gKnNfYWN0aXZlQ29udGV4dHMuZ2V0KCk7Cit9CisKK3N0YXRpYyB2b2lkIGFkZEFjdGl2ZUNv
bnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgbmV3Q29udGV4dCkKK3sKKyAgICBhdXRv
JiBjb250ZXh0cyA9IGFjdGl2ZUNvbnRleHRzKCk7CisgICAgQVNTRVJUKCFjb250ZXh0cy5jb250
YWlucyhjb250ZXh0KSk7CisgICAgYXV0byBtYXhDb250ZXh0c1NpemUgPSBpc01haW5UaHJlYWQo
KSA/IG1heEFjdGl2ZUNvbnRleHRzIDogbWF4QWN0aXZlV29ya2VyQ29udGV4dHM7CisgICAgaWYg
KGNvbnRleHRzLnNpemUoKSA+PSBtYXhDb250ZXh0c1NpemUpIHsKKyAgICAgICAgYXV0byBpdCA9
IGNvbnRleHRzLmJlZ2luKCk7CisgICAgICAgIGF1dG8qIGVhcmxpZXN0ID0gKml0OworICAgICAg
ICBmb3IgKCsraXQ7IGl0ICE9IGNvbnRleHRzLmVuZCgpOyArK2l0KSB7CisgICAgICAgICAgICBp
ZiAoZWFybGllc3QtPmFjdGl2ZU9yZGluYWwoKSA+ICgqaXQpLT5hY3RpdmVPcmRpbmFsKCkpCisg
ICAgICAgICAgICAgICAgZWFybGllc3QgPSAqaXQ7CisgICAgICAgIH0KKyAgICAgICAgZWFybGll
c3QtPnJlY3ljbGVDb250ZXh0KCk7CisgICAgICAgIEFTU0VSVChjb250ZXh0cy5zaXplKCkgPCBt
YXhDb250ZXh0c1NpemUpOworICAgIH0KKyAgICBjb250ZXh0cy5hZGQoJm5ld0NvbnRleHQpOwor
fQorCitzdGF0aWMgdm9pZCByZW1vdmVBY3RpdmVDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UmIGNvbnRleHQpCit7CisgICAgYm9vbCBkaWRDb250YWluID0gYWN0aXZlQ29udGV4dHMo
KS5yZW1vdmUoJmNvbnRleHQpOworICAgIEFTU0VSVF9VTlVTRUQoZGlkQ29udGFpbiwgZGlkQ29u
dGFpbik7Cit9CisKIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoQ2FudmFzQmFzZSYgY2FudmFzLCBXZWJH
TENvbnRleHRBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzLCBXZWJHTFZlcnNpb24gdHlwZSkKIHsKICAg
ICBhdXRvIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSBjYW52YXMuc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpOwpAQCAtOTE1LDcgKzk1OSw2IEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoQ2FudmFzQmFzZSYgY2FudmFzLCBXZWJHTENvCiAKIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoQ2FudmFz
QmFzZSYgY2FudmFzLCBSZWY8R3JhcGhpY3NDb250ZXh0R0w+JiYgY29udGV4dCwgV2ViR0xDb250
ZXh0QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogICAgIDogR1BVQmFzZWRDYW52YXNSZW5kZXJpbmdD
b250ZXh0KGNhbnZhcykKLSAgICAsIG1fY29udGV4dChXVEZNb3ZlKGNvbnRleHQpKQogICAgICwg
bV9yZXN0b3JlVGltZXIoY2FudmFzLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMsICZX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYXliZVJlc3RvcmVDb250ZXh0KQogICAgICwgbV9n
ZW5lcmF0ZWRJbWFnZUNhY2hlKDQpCiAgICAgLCBtX2F0dHJpYnV0ZXMoYXR0cmlidXRlcykKQEAg
LTkyNSw2ICs5NjgsOCBAQCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlKENhbnZhc0Jhc2UmIGNhbnZhcywgUmVmPEdyYQogICAgICwgbV9pc1hSQ29t
cGF0aWJsZShhdHRyaWJ1dGVzLnhyQ29tcGF0aWJsZSkKICNlbmRpZgogeworICAgIHNldEdyYXBo
aWNzQ29udGV4dEdMKFdURk1vdmUoY29udGV4dCkpOworCiAgICAgbV9yZXN0b3JlVGltZXIuc3Vz
cGVuZElmTmVlZGVkKCk7CiAKICAgICBtX2NvbnRleHRHcm91cCA9IFdlYkdMQ29udGV4dEdyb3Vw
OjpjcmVhdGUoKTsKQEAgLTEyMDIsNiArMTI0NywxNCBAQCBXZWJHTFJlbmRlcmluZ0NvbnRleHRC
YXNlOjp+V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSgpCiAgICAgfQogfQogCit2b2lkIFdlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2U6OnNldEdyYXBoaWNzQ29udGV4dEdMKFJlZjxHcmFwaGljc0Nv
bnRleHRHTD4mJiBjb250ZXh0KQoreworICAgIEFTU0VSVCghbV9jb250ZXh0KTsKKyAgICBtX2Nv
bnRleHQgPSBXVEZNb3ZlKGNvbnRleHQpOworICAgIHVwZGF0ZUFjdGl2ZU9yZGluYWwoKTsKKyAg
ICBhZGRBY3RpdmVDb250ZXh0KCp0aGlzKTsKK30KKwogdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjpkZXN0cm95R3JhcGhpY3NDb250ZXh0R0woKQogewogICAgIGlmIChtX2lzUGVuZGlu
Z1BvbGljeVJlc29sdXRpb24pCkBAIC0xMjEyLDYgKzEyNjUsNyBAQCB2b2lkIFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2U6OmRlc3Ryb3lHcmFwaGljc0NvbnRleHRHTCgpCiAgICAgaWYgKG1fY29u
dGV4dCkgewogICAgICAgICBtX2NvbnRleHQtPnJlbW92ZUNsaWVudCgqdGhpcyk7CiAgICAgICAg
IG1fY29udGV4dCA9IG51bGxwdHI7CisgICAgICAgIHJlbW92ZUFjdGl2ZUNvbnRleHQoKnRoaXMp
OwogICAgIH0KIH0KIApAQCAtMTI2Myw2ICsxMzE3LDkgQEAgYm9vbCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpjbGVhcklmQ29tcG9zaXRlZChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpD
bGUKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKKyAgICAvLyBgY2xlYXJJZkNvbXBvc2l0ZWQoKWAgaXMgYSBmdW5jdGlvbiB0aGF0IHBy
ZXBhcmVzIGZvciB1cGRhdGVzLiBNYXJrIHRoZSBjb250ZXh0IGFzIGFjdGl2ZS4KKyAgICB1cGRh
dGVBY3RpdmVPcmRpbmFsKCk7CisKICAgICBpZiAoIW1fY29udGV4dC0+bGF5ZXJDb21wb3NpdGVk
KCkgfHwgbV9sYXllckNsZWFyZWQgfHwgbV9wcmV2ZW50QnVmZmVyQ2xlYXJGb3JJbnNwZWN0b3Ip
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNzc2Miw3ICs3ODE5LDcgQEAgdm9pZCBXZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYXliZVJlc3RvcmVDb250ZXh0KCkKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIG1fY29udGV4dCA9IGNvbnRleHQ7CisgICAgc2V0R3JhcGhpY3ND
b250ZXh0R0woY29udGV4dC5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICBhZGRBY3Rpdml0eVN0YXRl
Q2hhbmdlT2JzZXJ2ZXJJZk5lY2Vzc2FyeSgpOwogICAgIG1fY29udGV4dExvc3QgPSBmYWxzZTsK
ICAgICBzZXR1cEZsYWdzKCk7CkBAIC04MTgzLDYgKzgyNDAsMTEgQEAgdm9pZCBXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlOjpwcmVwYXJlRm9yRGlzcGxheSgpCiAgICAgbV9jb250ZXh0LT5wcmVw
YXJlRm9yRGlzcGxheSgpOwogfQogCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVw
ZGF0ZUFjdGl2ZU9yZGluYWwoKQoreworICAgIG1fYWN0aXZlT3JkaW5hbCA9IHNfbGFzdEFjdGl2
ZU9yZGluYWwrKzsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5B
QkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IGI1NDU3ZTcxMzdmODQyNmRjMDMxMDRiNGM0ZTZh
M2ZiMjIyNGMzYmMuLmE4MTY3MzhkOGFkNTFlZGJlZDc5NjU4MzlkNTA5Y2YzOGFiZDNjODcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmgKQEAgLTQzMiw2ICs0MzIsOCBAQCBwdWJsaWM6CiAgICAgLy8gcHJvaGliaXRp
dmVseSBleHBlbnNpdmUuCiAgICAgTG9jayYgb2JqZWN0R3JhcGhMb2NrKCkgV1RGX1JFVFVSTlNf
TE9DSyhtX29iamVjdEdyYXBoTG9jayk7CiAKKyAgICAvLyBSZXR1cm5zIHRoZSBvcmRpbmFsIG51
bWJlciBvZiB3aGVuIHRoZSBjb250ZXh0IHdhcyBsYXN0IGFjdGl2ZSAoZHJldywgcmVhZCBwaXhl
bHMpLgorICAgIHVpbnQ2NF90IGFjdGl2ZU9yZGluYWwoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2
ZU9yZGluYWw7IH0KIHByb3RlY3RlZDoKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKENh
bnZhc0Jhc2UmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzKTsKICAgICBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlKENhbnZhc0Jhc2UmLCBSZWY8R3JhcGhpY3NDb250ZXh0R0w+JiYsIFdlYkdMQ29u
dGV4dEF0dHJpYnV0ZXMpOwpAQCAtNDczLDYgKzQ3NSw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lk
IGFkZENvbnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0Jik7CiAgICAgdm9pZCBkZXRhY2hB
bmRSZW1vdmVBbGxPYmplY3RzKCk7CiAKKyAgICB2b2lkIHNldEdyYXBoaWNzQ29udGV4dEdMKFJl
ZjxHcmFwaGljc0NvbnRleHRHTD4mJik7CiAgICAgdm9pZCBkZXN0cm95R3JhcGhpY3NDb250ZXh0
R0woKTsKICAgICB2b2lkIG1hcmtDb250ZXh0Q2hhbmdlZCgpOwogICAgIHZvaWQgbWFya0NvbnRl
eHRDaGFuZ2VkQW5kTm90aWZ5Q2FudmFzT2JzZXJ2ZXIoKTsKQEAgLTU0Miw2ICs1NDUsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgYm9vbCBjb21wb3NpdGluZ1Jlc3VsdHNOZWVkVXBkYXRpbmcoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBtX2NvbXBvc2l0aW5nUmVzdWx0c05lZWRVcGRhdGluZzsgfQogICAg
IGJvb2wgbmVlZHNQcmVwYXJhdGlvbkZvckRpc3BsYXkoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0
cnVlOyB9CiAgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheSgpIGZpbmFsOworICAgIHZvaWQgdXBk
YXRlQWN0aXZlT3JkaW5hbCgpOwogCiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMPiBtX2Nv
bnRleHQ7CiAgICAgUmVmUHRyPFdlYkdMQ29udGV4dEdyb3VwPiBtX2NvbnRleHRHcm91cDsKQEAg
LTExNDIsNiArMTE0Niw4IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQlhSKQogICAgIGJvb2wg
bV9pc1hSQ29tcGF0aWJsZSB7IGZhbHNlIH07CiAjZW5kaWYKKyAgICAvLyBUaGUgb3JkaW5hbCBu
dW1iZXIgb2Ygd2hlbiB0aGUgY29udGV4dCB3YXMgbGFzdCBhY3RpdmUgKGRyZXcsIHJlYWQgcGl4
ZWxzKS4KKyAgICB1aW50NjRfdCBtX2FjdGl2ZU9yZGluYWwgeyAwIH07CiB9OwogCiB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKaW5kZXggMGMz
OTQ5NzVmMmU2MGVjN2NmZGEzODRiMTM4MjZkMDUxZjgzMWRiNi4uODcyMTI1NDFjNjA2OGMwYWNl
MmMyOTA1Nzc5ODIzMjEzMTFlZWQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5j
cHAKQEAgLTMxLDcgKzMxLDYgQEAKIAogI2luY2x1ZGUgIkFOR0xFSGVhZGVycy5oIgogI2luY2x1
ZGUgIkFOR0xFVXRpbGl0aWVzLmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xN
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJbnRSZWN0Lmgi
CiAjaW5jbHVkZSAiSW50U2l6ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KaW5k
ZXggMzViOTFmYjNkZDY3YTczMjg5N2NjNTQ2NzIyYzNmZjUwYTlkMDk2OS4uZDJkODgxOGNiNDMw
ZjU5MzBlMzk1M2JhYWEzYzg0NDViY2Y0NTNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENv
Y29hLm1tCkBAIC0zMyw3ICszMyw2IEBACiAjaW1wb3J0ICJBTkdMRVV0aWxpdGllc0NvY29hLmgi
CiAjaW1wb3J0ICJDVlV0aWxpdGllcy5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xJT1N1
cmZhY2VTd2FwQ2hhaW4uaCIKLSNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdl
ci5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiUGl4ZWxCdWZmZXIuaCIKICNpbXBv
cnQgIlByb2Nlc3NJZGVudGl0eS5oIgpAQCAtNDI4LDcgKzQyNyw2IEBAIGJvb2wgR3JhcGhpY3ND
b250ZXh0R0xDb2NvYTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIAogR3JhcGhpY3NDb250ZXh0R0xB
TkdMRTo6fkdyYXBoaWNzQ29udGV4dEdMQU5HTEUoKQogewotICAgIEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlbW92ZUNvbnRleHQodGhpcyk7CiAgICAg
aWYgKG1ha2VDb250ZXh0Q3VycmVudCgpKSB7CiAgICAgICAgIGlmIChtX3RleHR1cmUpCiAgICAg
ICAgICAgICBHTF9EZWxldGVUZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0Nv
bnRleHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
V2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KaW5kZXggMGJiMTA2NWIzYTYxNjY5
Yjk4NTAxODUzMDQ1YTcwYjZmYWExYjUwOC4uYjk5YWI2ZTJiNjM5OGM4OWFjZjQ0NDk4OGZkNzFh
MDQ3YTZkZmU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdM
Q29jb2EubW0KQEAgLTI4LDcgKzI4LDYgQEAKIAogI2lmIEVOQUJMRShXRUJHTCkKICNpbXBvcnQg
IkdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCIgLy8gTk9MSU5UCi0jaW1wb3J0ICJHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKICNpbXBvcnQgIlBsYXRmb3JtQ0FMYXllci5oIgogI2lt
cG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAKQEAgLTE0NiwxNCArMTQ1LDkgQEAgdm9pZCBXZWJQ
cm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6ZGlzcGxheVdhc1JlY29uZmlndXJlZCgpCiAK
IFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTD4gY3JlYXRlV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4
dEdMKGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cmlidXRlcykKIHsKLSAg
ICAvLyBNYWtlIHNwYWNlIGZvciB0aGUgaW5jb21pbmcgY29udGV4dCBpZiB3ZSdyZSBmdWxsLgot
ICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlY3lj
bGVDb250ZXh0SWZOZWNlc3NhcnkoKTsKLSAgICBpZiAoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xN
YW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuaGFzVG9vTWFueUNvbnRleHRzKCkpCi0gICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKG5ldyBXZWJQcm9jZXNz
R3JhcGhpY3NDb250ZXh0R0xDb2NvYShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgeyBhdHRy
aWJ1dGVzIH0pKTsKICAgICBpZiAoIWNvbnRleHQtPmluaXRpYWxpemUoKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRN
YW5hZ2VyKCkuYWRkQ29udGV4dChjb250ZXh0LmdldCgpKTsKICAgICByZXR1cm4gY29udGV4dDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5kZXggNGU0MjcxOWE1
ZDlmMDc4MTlhNTc5NTZkMTAyYjgyZGUwNmJlZmJhZC4uYjViYWM3ZDhmZTQzYzQ4MDg1NjZhYjlj
Y2Y3Zjc0NDI0MDc2NDZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3Bw
CkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiQU5HTEVXZWJLaXRCcmlkZ2UuaCIKICNpbmNs
dWRlICJHTENvbnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbmNsdWRl
ICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZl
ci5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCkBAIC0yNTEs
NyArMjUwLDYgQEAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHQKIAogR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w6On5HcmFwaGljc0NvbnRleHRHTE9wZW5HTCgpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkucmVtb3ZlQ29udGV4dCh0aGlzKTsKICAg
ICBib29sIHN1Y2Nlc3MgPSBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICBBU1NFUlRfVU5VU0VE
KHN1Y2Nlc3MsIHN1Y2Nlc3MpOwogICAgIGlmIChtX3RleHR1cmUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxMmQ0YjNhZmYyOTFkODIwMTA3NzRkN2U2ZDRmNDg5NzA3MjRjMmYwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLQotI2lmIEVOQUJMRShXRUJHTCkKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRH
TE9wZW5HTE1hbmFnZXIuaCIKLQotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLQotI2lmIFVTRShBTkdM
RSkKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTEFOR0xFLmgiCi0jZWxzZQotI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgiCi0jZW5kaWYKLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyJiBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxH
cmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI+IHNfbWFuYWdlcjsKLSAgICByZXR1cm4gc19t
YW5hZ2VyOwotfQotCi12b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6YWRkQ29u
dGV4dChHcmFwaGljc0NvbnRleHRHTFR5cGUqIGNvbnRleHQpCi17Ci0gICAgQVNTRVJUKGNvbnRl
eHQpOwotICAgIGlmICghY29udGV4dCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQVNTRVJUKCFt
X2NvbnRleHRzLmNvbnRhaW5zKGNvbnRleHQpKTsKLSAgICBtX2NvbnRleHRzLmFwcGVuZChjb250
ZXh0KTsKLX0KLQotdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnJlbW92ZUNv
bnRleHQoR3JhcGhpY3NDb250ZXh0R0xUeXBlKiBjb250ZXh0KQotewotICAgIGlmICghbV9jb250
ZXh0cy5jb250YWlucyhjb250ZXh0KSkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fY29udGV4dHMu
cmVtb3ZlRmlyc3QoY29udGV4dCk7Ci19Ci0KLXZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xN
YW5hZ2VyOjpyZWN5Y2xlQ29udGV4dElmTmVjZXNzYXJ5KCkKLXsKLSAgICBpZiAoaGFzVG9vTWFu
eUNvbnRleHRzKCkpIHsKLSAgICAgICAgTE9HKFdlYkdMLCAiR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xNYW5hZ2VyIHJlY3ljbGVkIGNvbnRleHQgKCVwKS4iLCBtX2NvbnRleHRzWzBdKTsKLSAgICAg
ICAgbV9jb250ZXh0c1swXS0+cmVjeWNsZUNvbnRleHQoKTsKLSAgICB9Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZjA3OTA5YzgxYjk0ZTZkZjNkYjRhMmYxNGNiNzg0Y2EzMzEyMzI2Zi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1jb25zdCB1bnNpZ25lZCBNYXhDb250ZXh0cyA9IDE2OwotCi0j
aWYgVVNFKEFOR0xFKQotY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTsKLSNlbHNlCi1jbGFz
cyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDsKLSNlbmRpZgotCi1jbGFzcyBHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTE1hbmFnZXIgewotICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTE1hbmFnZXI+OwotcHVibGljOgotI2lmIFVTRShBTkdMRSkKLSAgICB1c2lu
ZyBHcmFwaGljc0NvbnRleHRHTFR5cGUgPSBHcmFwaGljc0NvbnRleHRHTEFOR0xFOwotI2Vsc2UK
LSAgICB1c2luZyBHcmFwaGljc0NvbnRleHRHTFR5cGUgPSBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TDsKLSNlbmRpZgotCi0gICAgc3RhdGljIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlciYg
c2hhcmVkTWFuYWdlcigpOwotICAgIAotICAgIHZvaWQgYWRkQ29udGV4dChHcmFwaGljc0NvbnRl
eHRHTFR5cGUqKTsKLSAgICB2b2lkIHJlbW92ZUNvbnRleHQoR3JhcGhpY3NDb250ZXh0R0xUeXBl
Kik7Ci0gICAgCi0gICAgdm9pZCByZWN5Y2xlQ29udGV4dElmTmVjZXNzYXJ5KCk7Ci0gICAgYm9v
bCBoYXNUb29NYW55Q29udGV4dHMoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHRzLnNpemUoKSA+
PSBNYXhDb250ZXh0czsgfQotICAgIAotcHJpdmF0ZToKLSAgICBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTE1hbmFnZXIoKSA9IGRlZmF1bHQ7Ci0KLSAgICBWZWN0b3I8R3JhcGhpY3NDb250ZXh0R0xU
eXBlKj4gbV9jb250ZXh0czsKLX07Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4
dEdMVGV4dHVyZU1hcHBlci5jcHAKaW5kZXggOTJmZjUyMDZiMjVmMDUxZDAzNTg2MjVjOTNiYjQ5
MWE0OTZlYjlmNS4uMmM1NzAyZDA3NmNlOTNiZjM4NjgyZDYyYWZiZWJiNDdmMjgxYThhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNz
Q29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAKQEAgLTMx
LDcgKzMxLDYgQEAKIAogI2lmIEVOQUJMRShXRUJHTCkgJiYgVVNFKFRFWFRVUkVfTUFQUEVSKQog
Ci0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgiCiAjaW5jbHVkZSAi
UGl4ZWxCdWZmZXIuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5ZXIu
aCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KQEAgLTEwNiwxMSArMTA1LDYgQEAgUmVmUHRyPEdy
YXBoaWNzQ29udGV4dEdMPiBjcmVhdGVXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0woY29uc3Qg
R3JhcGhpY3NDb250ZXgKICAgICBpZiAoIXN1Y2Nlc3MpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCi0gICAgLy8gTWFrZSBzcGFjZSBmb3IgdGhlIGluY29taW5nIGNvbnRleHQgaWYgd2UncmUg
ZnVsbC4KLSAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIo
KS5yZWN5Y2xlQ29udGV4dElmTmVjZXNzYXJ5KCk7Ci0gICAgaWYgKEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmhhc1Rvb01hbnlDb250ZXh0cygpKQotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLQogICAgIC8vIENyZWF0ZSB0aGUgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wgb2JqZWN0IGZpcnN0IGluIG9yZGVyIHRvIGVzdGFibGlzdCBhIGN1cnJlbnQgY29u
dGV4dCBvbiB0aGlzIHRocmVhZC4KICAgICBhdXRvIGNvbnRleHQgPSBHcmFwaGljc0NvbnRleHRH
TFRleHR1cmVNYXBwZXI6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgeyBhdHRy
aWJ1dGVzIH0pOwogICAgIGlmICghY29udGV4dCkKQEAgLTEyMCw5ICsxMTQsNiBAQCBSZWZQdHI8
R3JhcGhpY3NDb250ZXh0R0w+IGNyZWF0ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTChjb25z
dCBHcmFwaGljc0NvbnRleAogICAgIGlmIChhdHRyaWJ1dGVzLndlYkdMVmVyc2lvbiA9PSBHcmFw
aGljc0NvbnRleHRHTFdlYkdMVmVyc2lvbjo6V2ViR0wyICYmICFlcG94eV9pc19kZXNrdG9wX2ds
KCkgJiYgZXBveHlfZ2xfdmVyc2lvbigpIDwgMzApCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
I2VuZGlmCi0KLSAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFn
ZXIoKS5hZGRDb250ZXh0KGNvbnRleHQuZ2V0KCkpOwotCiAgICAgcmV0dXJuIGNvbnRleHQ7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9H
cmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXJBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyQU5H
TEUuY3BwCmluZGV4IDU2NTE1NGE4NjljODg1NTZhN2M5MDhlZmI4Nzk2NmI2ZmI1MDNjNGQuLmEy
ZDcxZDFlOTc2OGFhZWU1MWJkZTMxZTIxOTY0MWZkNjZjYjBjODIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1
cmVNYXBwZXJBTkdMRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlckFOR0xFLmNwcApAQCAtMzEsNyAr
MzEsNiBAQAogCiAjaW5jbHVkZSAiQU5HTEVIZWFkZXJzLmgiCiAjaW5jbHVkZSAiQU5HTEVVdGls
aXRpZXMuaCIKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKICNp
bmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUGl4ZWxCdWZmZXIuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybUxheWVyRGlzcGxheURlbGVnYXRlLmgiCkBAIC0zMTgsNyArMzE3LDYgQEAgYm9vbCBH
cmFwaGljc0NvbnRleHRHTEFOR0xFOjpFR0xJbWFnZUJhY2tpbmc6OnJlc2V0KGludCB3aWR0aCwg
aW50IGhlaWdodCwgYm9vbAogCiBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjp+R3JhcGhpY3NDb250
ZXh0R0xBTkdMRSgpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFy
ZWRNYW5hZ2VyKCkucmVtb3ZlQ29udGV4dCh0aGlzKTsKICAgICBib29sIHN1Y2Nlc3MgPSBtYWtl
Q29udGV4dEN1cnJlbnQoKTsKICAgICBBU1NFUlRfVU5VU0VEKHN1Y2Nlc3MsIHN1Y2Nlc3MpOwog
ICAgIGlmIChtX3RleHR1cmUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGVhOWVhNmE3NjVlNmRmZWZhOGI4Yjg0NTMxMTBl
MzZlOWUwYTI0Zi4uMzU1ZGVlMTE4ZmU3YTdkYmViNzhhNmY1MTRhYjdhMjQwYzdlOWUxNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDIyLTAzLTAyICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5l
bkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY29udGV4dCBjb3VudCBpcyBub3QgbGltaXRl
ZCBmb3IgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyMjQxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIyLTAz
LTAxICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiBhZGQgYSBzd2l0Y2ggdG8gY29udHJvbCB3aGV0aGVyIGJyZWFrcG9pbnQgZXZhbHVh
dGlvbnMgKGNvbmRpdGlvbiwgaWdub3JlIGNvdW50LCBhY3Rpb25zKSBhcmUgYWxzbyBhZmZlY3Rl
ZCBieSBzY3JpcHQgYmxhY2tib3hpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCA5MjFhMzBlMTI1ZGM2MjJlZDEwODAyNmIzM2I5M2ZhM2Iw
NTc5MzE5Li4wNjY3MjdjYzQ1ZWE5ZWRkMjI5MzdkY2E3M2VlZTNkMWRjZTljZGEyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMjA2LDEx
ICsyMjA2LDUgQEAgaHR0cC93cHQvaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRpY3Mv
dGhlLWEtZWxlbWVudC9hLWRvd25sb2FkLWNsaWNrLTQwNC4KIAogIyBUZXN0IGZhaWx1cmVzIGZy
b20gdHVybmluZyBHUFUgUHJvY2VzcyBvbiBieSBkZWZhdWx0CiB3ZWJraXQub3JnL2IvMjM0NTM2
IHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlL3JlYWRpbmcvcmVhZC1waXhlbHMtdGVzdC5odG1sCi13
ZWJraXQub3JnL2IvMjM0NTM2IHdlYmdsL21hbnktY29udGV4dHMtYWNjZXNzLWFmdGVyLWxvc3Mu
aHRtbAotd2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC9tYW55LWNvbnRleHRzLmh0bWwKLXdlYmtp
dC5vcmcvYi8yMzQ1MzYgd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy1jb25zb2xlLXdhcm5pbmcu
aHRtbAotd2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLWdjLmh0
bWwKLXdlYmtpdC5vcmcvYi8yMzQ1MzYgd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy1vbGRlc3Qt
Y29udGV4dC1sb3N0Lmh0bWwKIHdlYmtpdC5vcmcvYi8yMzQ1MzYgd2VieHIvaGlnaC1wZXJmb3Jt
YW5jZS5odG1sCi13ZWJraXQub3JnL2IvMjM0NTM2IHdlYmdsL21heC1hY3RpdmUtY29udGV4dHMt
d2ViZ2xjb250ZXh0bG9zdC1wcmV2ZW50LWRlZmF1bHQuaHRtbCBbIFRpbWVvdXQgXQogd2Via2l0
Lm9yZy9iLzIzNDUzNiB3ZWJnbC8xLjAuMy9jb25mb3JtYW5jZS9zdGF0ZS9nbC1vYmplY3QtZ2V0
LWNhbGxzLmh0bWwgWyBUaW1lb3V0IF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453616</attachid>
            <date>2022-03-02 08:45:17 -0800</date>
            <delta_ts>2022-03-03 02:57:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222411-20220302184514.patch</filename>
            <type>text/plain</type>
            <size>31092</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDVlYTA0ODY3MTMxNjZi
YWI2ZGQzYzgwNmMzNTJlNWUxMDViMGFmZC4uODQzZWRhNTA1MjE1N2JhZTdhZWZlZjY1NGNiOTk4
MzQxNjg3ODg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIyLTAzLTAyICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY29udGV4
dCBjb3VudCBpcyBub3QgbGltaXRlZCBmb3IgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQxMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGNvbnRleHQgbGltaXQgZnJv
bSB0aGUgR3JhcGhpY3NDb250ZXh0R0wgaW1wbGVtZW50YXRpb24KKyAgICAgICAgbGV2ZWwgdG8g
V2ViR0xSZW5kZXJpbmdDb250ZXh0IGxldmVsLiBUaGlzIHdheSB0aGUgbGltaXQKKyAgICAgICAg
aXMgYXBwbGllZCB0byB0aGUgR1BVUCBpbXBsZW1lbnRhdGlvbiB0b28uCisKKyAgICAgICAgUmVj
eWNsZSB0aGUgY29udGV4dCB3aXRoIHRoZSBlYXJsaWVzdCBhY3Rpdml0eSAoZHJhdywgcmVhZHBp
eGVscykKKyAgICAgICAgaW5zdGVhZCBvZiB0aGUgY3JlYXRpb24gb3JkZXIuCisKKyAgICAgICAg
U3RvcmVzIHRoZSBXZWJHTCBjb250ZXh0cyB0byBwZXItdGhyZWFkIHNldCBhbmQgbGltaXRzIHRo
ZSBzaXplIG9mIHRoZSBzZXQuCisgICAgICAgIFRoZSBzZXQgaXMgcGVyLXRocmVhZCB0byBzdXBw
b3J0IFdlYkdMIGNvbnRleHRzIGluIERPTSBhcyB3ZWxsIGFzCisgICAgICAgIG9mZnNjcmVlbiBj
YW52YXMgdXNlLWNhc2VzLiBPZmZzY3JlZW4gY2FudmFzIGlzIG5vdCBpbXBsZW1lbnRlZCBmb3Ig
Q29jb2EKKyAgICAgICAgYnV0IG90aGVyIHBvcnRzIG1heSBlbmFibGUgaXQuCisKKyAgICAgICAg
VGVzdGVkIGJ5OgorICAgICAgICBMYXlvdXRUZXN0cy93ZWJnbC9sb3NlLWNvbnRleHQtYWZ0ZXIt
Y29udGV4dC1sb3N0Lmh0bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvd2ViZ2wvbWFueS1jb250ZXh0
cy1hY2Nlc3MtYWZ0ZXItbG9zcy5odG1sCisgICAgICAgIExheW91dFRlc3RzL3dlYmdsL21hbnkt
Y29udGV4dHMuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy93ZWJnbC9tYXgtYWN0aXZlLWNvbnRl
eHRzLWNvbnNvbGUtd2FybmluZy5odG1sCisgICAgICAgIExheW91dFRlc3RzL3dlYmdsL21heC1h
Y3RpdmUtY29udGV4dHMtZ2MuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy93ZWJnbC9tYXgtYWN0
aXZlLWNvbnRleHRzLW9sZGVzdC1jb250ZXh0LWxvc3QuaHRtbAorICAgICAgICBMYXlvdXRUZXN0
cy93ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLXdlYmdsY29udGV4dGxvc3QtcHJldmVudC1kZWZh
dWx0Lmh0bWwKKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogU291cmNlcy50
eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6YWN0aXZlQ29udGV4dHMpOgorICAgICAgICAoV2ViQ29yZTo6YWRkQWN0aXZlQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpyZW1vdmVBY3RpdmVDb250ZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6c2V0
R3JhcGhpY3NDb250ZXh0R0wpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6ZGVzdHJveUdyYXBoaWNzQ29udGV4dEdMKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNsZWFySWZDb21wb3NpdGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9yZUNvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dXBkYXRlQWN0aXZl
T3JkaW5hbCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWN0aXZl
T3JkaW5hbCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhp
Y3NDb250ZXh0R0xBTkdMRS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMQU5HTEU6On5HcmFwaGljc0NvbnRleHRHTEFOR0xFKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjp+R3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0
R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdlYlByb2Nlc3NH
cmFwaGljc0NvbnRleHRHTCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dy
YXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlckFOR0xFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6On5HcmFwaGljc0NvbnRleHRHTEFOR0xFKToKKwogMjAy
Mi0wMy0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVt
b3ZlIFJlbW90ZVZpZGVvU2FtcGxlIHN1cHBvcnQgZnJvbSBJbWFnZVRyYW5zZmVyU2Vzc2lvblZU
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNv
cmUvSGVhZGVycy5jbWFrZQppbmRleCAzY2I0YTQ5ZDk4NTE2YzljYmQ1MWRlZGNmYWMzNmFmMmRm
ZDVkMTUxLi4wYTVhZWFiZGNhODJlOThmY2ZkOTQ1YTQzZTFiMjY1OGYxMzQ1MWE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKQEAgLTE2NTcsNyArMTY1Nyw2IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJB
TUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dM
T3BlbkdMQ29tbW9uLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uc0dM
T3BlbkdMRVMuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRH
TE9wZW5HTC5oCi0gICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdM
T3BlbkdMTWFuYWdlci5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL1RlbXBvcmFyeU9w
ZW5HTFNldHRpbmcuaAogCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVN
YXRoRGF0YS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGExZDZiNmZjNjNhZDI5MWYwNzI4ZDUxODk3ZThi
OWMxNzk3Y2IzMDEuLjNhMzVlMjYwNWUwM2U2Mjk3OWIyMjlkODI2ZmU2ZTczYmUyOTQyZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CkBAIC0yMTYxLDcgKzIxNjEsNiBAQCBwbGF0Zm9ybS9ncmFwaGljcy9pc28v
SVNPU2NoZW1lSW5mb3JtYXRpb25Cb3guY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9pc28vSVNPU2No
ZW1lVHlwZUJveC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09UcmFja0VuY3J5cHRpb25C
b3guY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9pc28vSVNPVlRUQ3VlLmNwcAotcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5jcHAKIHBsYXRmb3Jt
L2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlTWF0aERhdGEuY3BwCiBwbGF0Zm9ybS9ncmFwaGlj
cy90cmFuc2Zvcm1zL0FmZmluZVRyYW5zZm9ybS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZWE1NzY1ZWY2OGQzMzgx
ZDg3MDY0NWZmM2U3ZmI3NWZiY2Q0NGRlMy4uZWFmNGVkMGU0NzVhMWNkMzY3YWNiNzljYmQ2MWY4
ZWRjNWNhNGRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtOTc3LDcgKzk3Nyw2IEBACiAJCTMxOEVBRDREMUZBOTEzODAwMDhD
RUY4NiAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHRTZXR0aW5ncy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE4RUFENEExRkE5MTE1NzAwOENF
Rjg2IC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dFNldHRpbmdzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzE5ODQ4MDExQTFEODE3QjAw
QTEzMzE4IC8qIEFuaW1hdGlvbkV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTk4NDdGRjFBMUQ4MTY3MDBBMTMzMTggLyogQW5pbWF0aW9uRXZl
bnQuaCAqLzsgfTsKIAkJMzE5ODQ4MEMxQTFFNkNFODAwQTEzMzE4IC8qIEpTQW5pbWF0aW9uRXZl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTg0
ODA0MUExRTZCNUQwMEExMzMxOCAvKiBKU0FuaW1hdGlvbkV2ZW50LmggKi87IH07Ci0JCTMxOUE3
Mjg4MjNDMjY3RkUwMDg1MzUzQyAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOUE3Mjg3MjND
MjY3RTcwMDg1MzUzQyAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTlBRTA2NDE0MkQ2
QjI0MDA2NTYzQTEgLyogU3R5bGVGaWx0ZXJEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTlBRTA2MjE0MkQ2QjI0MDA2NTYzQTEgLyogU3R5bGVG
aWx0ZXJEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMzE5RkJENUYxNUQyRjQ2NDAwOTY0MEE2IC8qIENhY2hlZEltYWdlQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTlGQkQ1RDE1RDJG
NDQ0MDA5NjQwQTYgLyogQ2FjaGVkSW1hZ2VDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMUEwODk1NjFFNzM4RDU5MDAzQjY2MDkgLyog
SlNXZWJHUFVCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMxQTA4OTFEMUU3MzhENTkwMDNCNjYwOSAvKiBKU1dlYkdQVUJ1ZmZlci5oICovOyB9
OwpAQCAtODM4MCw3ICs4Mzc5LDYgQEAKIAkJMzE5ODQ4MDAxQTFEODE2NzAwQTEzMzE4IC8qIEFu
aW1hdGlvbkV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBbmltYXRpb25FdmVudC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxOTg0ODAzMUExRTZCNUQwMEExMzMx
OCAvKiBKU0FuaW1hdGlvbkV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTQW5pbWF0aW9uRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzMTk4NDgwNDFBMUU2QjVEMDBBMTMzMTggLyogSlNBbmltYXRpb25FdmVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FuaW1hdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTMxOUE3Mjg3MjNDMjY3RTcwMDg1MzUzQyAvKiBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTMxOUFFMDYxMTQyRDZCMjQwMDY1NjNBMSAvKiBTdHlsZUZpbHRlckRhdGEuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVGaWx0ZXJEYXRhLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5QUUwNjIxNDJENkIyNDAwNjU2M0ExIC8q
IFN0eWxlRmlsdGVyRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHls
ZUZpbHRlckRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5QkRFNEYxRTdB
ODU4QTAwQkEyOTZDIC8qIEpTUlRDSWNlVHJhbnNwb3J0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTUlRDSWNlVHJhbnNwb3J0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE2NDk0LDcgKzE2NDkyLDYgQEAKIAkJRDA2QzBEOEUwQ0ZEMTE0NjAw
NjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUQwN0RFQUI3MEEzNjU1NEEwMENBMzBGOCAvKiBJbnNlcnRMaXN0Q29tbWFu
ZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zZXJ0TGlzdENv
bW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDdERUFCODBBMzY1NTRB
MDBDQTMwRjggLyogSW5zZXJ0TGlzdENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluc2VydExpc3RDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUQwODQzQTRDMjBGRUMxNjUwMEZFODYwRSAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1h
bmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5h
Z2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA4NkZFOTYwOUQ1M0FBQjAw
NUJDNzREIC8qIFVubGlua0NvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVW5saW5rQ29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDg2RkU5
NzA5RDUzQUFCMDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBVbmxpbmtDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRDBBMjBENTQyMDkyQTBBNjAwRTBDMjU5IC8qIFdlYkdMQ29tcHJlc3NlZFRl
eHR1cmVBU1RDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdMQ29tcHJl
c3NlZFRleHR1cmVBU1RDLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMjkyNSw4
ICszMjkyMiw2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk2RTIxQzZCRjExMjYzMzg1MDBBN0JF
MDIgLyogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuY3BwICovLAogCQkJCTQ5QzdCOUZCMTA0MkQz
NjUwMDA5RDQ0NyAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oICovLAotCQkJCUQwODQzQTRD
MjBGRUMxNjUwMEZFODYwRSAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwICov
LAotCQkJCTMxOUE3Mjg3MjNDMjY3RTcwMDg1MzUzQyAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5H
TE1hbmFnZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gb3BlbmdsOwogCQkJc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsKQEAgLTM0NzgxLDcgKzM0Nzc2LDYgQEAKIAkJCQk3QkIzNEE0ODI1Mzc3NkNB
MDAwMjlEMDggLyogR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJN0I2REM4MTkyNTcxMkU5MjAwMzgwQzcwIC8qIEdyYXBoaWNzQ29udGV4dEdMSU9T
dXJmYWNlU3dhcENoYWluLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3QjlGQzEwNDJEMzY1MDAw
OUQ0NDcgLyogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCBpbiBIZWFkZXJzICovLAotCQkJCTMx
OUE3Mjg4MjNDMjY3RkUwMDg1MzUzQyAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTdCOTVDRkVCMjc1NEZGNkUwMDAwNjBDRSAvKiBHcmFwaGlj
c0NvbnRleHRHTFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBENjcwODBFOUU5REVCMDBF
NDIwRjAgLyogR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlQ0cuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNTgwQjBEMEYxMkEyNjkwMDUxRDY4OSAvKiBHcmFwaGljc0xheWVyLmggaW4gSGVh
ZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAKaW5kZXggMmRkYWMzZmYwYTAyZWMzOTRkYzMyNTIwMjMy
NGM0ZDhlMjcxYzNkNy4uNGRmZjk1YTU0MDgxZTZjNWE0OGNlMjgzZjRhYzFiNzZiYTliMzgzMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZS5jcHAKQEAgLTEyNCw4ICsxMjQsMTEgQEAKICNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL0xv
Y2tlci5oPgorI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL05ldmVy
RGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExp
YkV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9UaHJlYWRTcGVjaWZpYy5oPgogI2luY2x1ZGUgPHd0
Zi9VbmlxdWVBcnJheS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkBAIC0xNTEsOSArMTU0LDExIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2UpOwogCi1zdGF0aWMgY29uc3QgU2Vjb25kcyBzZWNvbmRzQmV0d2VlblJlc3Rv
cmVBdHRlbXB0cyB7IDFfcyB9OwotY29uc3QgaW50IG1heEdMRXJyb3JzQWxsb3dlZFRvQ29uc29s
ZSA9IDI1NjsKLXN0YXRpYyBjb25zdCBTZWNvbmRzIGNoZWNrQ29udGV4dExvc3NIYW5kbGluZ0Rl
bGF5IHsgM19zIH07CitzdGF0aWMgY29uc3RleHByIFNlY29uZHMgc2Vjb25kc0JldHdlZW5SZXN0
b3JlQXR0ZW1wdHMgeyAxX3MgfTsKK3N0YXRpYyBjb25zdGV4cHIgaW50IG1heEdMRXJyb3JzQWxs
b3dlZFRvQ29uc29sZSA9IDI1NjsKK3N0YXRpYyBjb25zdGV4cHIgU2Vjb25kcyBjaGVja0NvbnRl
eHRMb3NzSGFuZGxpbmdEZWxheSB7IDNfcyB9Oworc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbWF4
QWN0aXZlQ29udGV4dHMgPSAxNjsKK3N0YXRpYyBjb25zdGV4cHIgc2l6ZV90IG1heEFjdGl2ZVdv
cmtlckNvbnRleHRzID0gNDsKIAogbmFtZXNwYWNlIHsKICAgICAKQEAgLTc4NCw2ICs3ODksNDYg
QEAgc3RhdGljIGJvb2wgaXNIaWdoUGVyZm9ybWFuY2VDb250ZXh0KGNvbnN0IFJlZlB0cjxHcmFw
aGljc0NvbnRleHRHTD4mIGNvbnRleHQpCiAgICAgcmV0dXJuIGNvbnRleHQtPmNvbnRleHRBdHRy
aWJ1dGVzKCkucG93ZXJQcmVmZXJlbmNlID09IFdlYkdMUG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVy
Zm9ybWFuY2U7CiB9CiAKKy8vIENvdW50ZXIgZm9yIGRldGVybWluaW5nIHdoaWNoIGNvbnRleHQg
aGFzIHRoZSBlYXJsaWVzdCBhY3RpdmUgb3JkaW5hbCBudW1iZXIuCitzdGF0aWMgc3RkOjphdG9t
aWM8dWludDY0X3Q+IHNfbGFzdEFjdGl2ZU9yZGluYWw7CisKK3VzaW5nIFdlYkdMUmVuZGVyaW5n
Q29udGV4dEJhc2VTZXQgPSBIYXNoU2V0PFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UqPjsKKwor
c3RhdGljIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2VTZXQmIGFjdGl2ZUNvbnRleHRzKCkKK3sK
KyAgICBzdGF0aWMgTGF6eU5ldmVyRGVzdHJveWVkPFRocmVhZFNwZWNpZmljPFdlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2VTZXQ+PiBzX2FjdGl2ZUNvbnRleHRzOworICAgIHN0YXRpYyBzdGQ6Om9u
Y2VfZmxhZyBzX29uY2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKHNfb25jZUZsYWcsIFtdIHsK
KyAgICAgICAgc19hY3RpdmVDb250ZXh0cy5jb25zdHJ1Y3QoKTsKKyAgICB9KTsKKyAgICByZXR1
cm4gKnNfYWN0aXZlQ29udGV4dHMuZ2V0KCk7Cit9CisKK3N0YXRpYyB2b2lkIGFkZEFjdGl2ZUNv
bnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSYgbmV3Q29udGV4dCkKK3sKKyAgICBhdXRv
JiBjb250ZXh0cyA9IGFjdGl2ZUNvbnRleHRzKCk7CisgICAgYXV0byBtYXhDb250ZXh0c1NpemUg
PSBpc01haW5UaHJlYWQoKSA/IG1heEFjdGl2ZUNvbnRleHRzIDogbWF4QWN0aXZlV29ya2VyQ29u
dGV4dHM7CisgICAgaWYgKGNvbnRleHRzLnNpemUoKSA+PSBtYXhDb250ZXh0c1NpemUpIHsKKyAg
ICAgICAgYXV0byBpdCA9IGNvbnRleHRzLmJlZ2luKCk7CisgICAgICAgIGF1dG8qIGVhcmxpZXN0
ID0gKml0OworICAgICAgICBmb3IgKCsraXQ7IGl0ICE9IGNvbnRleHRzLmVuZCgpOyArK2l0KSB7
CisgICAgICAgICAgICBpZiAoZWFybGllc3QtPmFjdGl2ZU9yZGluYWwoKSA+ICgqaXQpLT5hY3Rp
dmVPcmRpbmFsKCkpCisgICAgICAgICAgICAgICAgZWFybGllc3QgPSAqaXQ7CisgICAgICAgIH0K
KyAgICAgICAgZWFybGllc3QtPnJlY3ljbGVDb250ZXh0KCk7CisgICAgICAgIEFTU0VSVChlYXJs
aWVzdCAhPSAmbmV3Q29udGV4dCk7IC8vIFRoaXMgYXNzZXJ0IGlzIGhlcmUgc28gd2UgY2FuIGFz
c2VydCBpc05ld0VudHJ5IGJlbG93IGluc3RlYWQgb2YgdG9wLWxldmVsIGAhY29udGV4dHMuY29u
dGFpbnMobmV3Q29udGV4dCk7YC4KKyAgICAgICAgQVNTRVJUKGNvbnRleHRzLnNpemUoKSA8IG1h
eENvbnRleHRzU2l6ZSk7CisgICAgfQorICAgIGF1dG8gcmVzdWx0ID0gY29udGV4dHMuYWRkKCZu
ZXdDb250ZXh0KTsKKyAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkp
OworfQorCitzdGF0aWMgdm9pZCByZW1vdmVBY3RpdmVDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UmIGNvbnRleHQpCit7CisgICAgYm9vbCBkaWRDb250YWluID0gYWN0aXZlQ29udGV4
dHMoKS5yZW1vdmUoJmNvbnRleHQpOworICAgIEFTU0VSVF9VTlVTRUQoZGlkQ29udGFpbiwgZGlk
Q29udGFpbik7Cit9CisKIHN0ZDo6dW5pcXVlX3B0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
PiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjcmVhdGUoQ2FudmFzQmFzZSYgY2FudmFzLCBX
ZWJHTENvbnRleHRBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzLCBXZWJHTFZlcnNpb24gdHlwZSkKIHsK
ICAgICBhdXRvIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSBjYW52YXMuc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOwpAQCAtOTE1LDcgKzk2MCw2IEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoQ2FudmFzQmFzZSYgY2FudmFzLCBXZWJHTENvCiAK
IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoQ2Fu
dmFzQmFzZSYgY2FudmFzLCBSZWY8R3JhcGhpY3NDb250ZXh0R0w+JiYgY29udGV4dCwgV2ViR0xD
b250ZXh0QXR0cmlidXRlcyBhdHRyaWJ1dGVzKQogICAgIDogR1BVQmFzZWRDYW52YXNSZW5kZXJp
bmdDb250ZXh0KGNhbnZhcykKLSAgICAsIG1fY29udGV4dChXVEZNb3ZlKGNvbnRleHQpKQogICAg
ICwgbV9yZXN0b3JlVGltZXIoY2FudmFzLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMs
ICZXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYXliZVJlc3RvcmVDb250ZXh0KQogICAgICwg
bV9nZW5lcmF0ZWRJbWFnZUNhY2hlKDQpCiAgICAgLCBtX2F0dHJpYnV0ZXMoYXR0cmlidXRlcykK
QEAgLTkyNSw2ICs5NjksOCBAQCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlKENhbnZhc0Jhc2UmIGNhbnZhcywgUmVmPEdyYQogICAgICwgbV9pc1hS
Q29tcGF0aWJsZShhdHRyaWJ1dGVzLnhyQ29tcGF0aWJsZSkKICNlbmRpZgogeworICAgIHNldEdy
YXBoaWNzQ29udGV4dEdMKFdURk1vdmUoY29udGV4dCkpOworCiAgICAgbV9yZXN0b3JlVGltZXIu
c3VzcGVuZElmTmVlZGVkKCk7CiAKICAgICBtX2NvbnRleHRHcm91cCA9IFdlYkdMQ29udGV4dEdy
b3VwOjpjcmVhdGUoKTsKQEAgLTEyMDIsNiArMTI0OCwxNCBAQCBXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlOjp+V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSgpCiAgICAgfQogfQogCit2b2lkIFdl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnNldEdyYXBoaWNzQ29udGV4dEdMKFJlZjxHcmFwaGlj
c0NvbnRleHRHTD4mJiBjb250ZXh0KQoreworICAgIEFTU0VSVCghbV9jb250ZXh0KTsKKyAgICBt
X2NvbnRleHQgPSBXVEZNb3ZlKGNvbnRleHQpOworICAgIHVwZGF0ZUFjdGl2ZU9yZGluYWwoKTsK
KyAgICBhZGRBY3RpdmVDb250ZXh0KCp0aGlzKTsKK30KKwogdm9pZCBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlOjpkZXN0cm95R3JhcGhpY3NDb250ZXh0R0woKQogewogICAgIGlmIChtX2lzUGVu
ZGluZ1BvbGljeVJlc29sdXRpb24pCkBAIC0xMjEyLDYgKzEyNjYsNyBAQCB2b2lkIFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2U6OmRlc3Ryb3lHcmFwaGljc0NvbnRleHRHTCgpCiAgICAgaWYgKG1f
Y29udGV4dCkgewogICAgICAgICBtX2NvbnRleHQtPnJlbW92ZUNsaWVudCgqdGhpcyk7CiAgICAg
ICAgIG1fY29udGV4dCA9IG51bGxwdHI7CisgICAgICAgIHJlbW92ZUFjdGl2ZUNvbnRleHQoKnRo
aXMpOwogICAgIH0KIH0KIApAQCAtMTI2Myw2ICsxMzE4LDkgQEAgYm9vbCBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlOjpjbGVhcklmQ29tcG9zaXRlZChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpDbGUKICAgICBpZiAoaXNDb250ZXh0TG9zdE9yUGVuZGluZygpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKKyAgICAvLyBgY2xlYXJJZkNvbXBvc2l0ZWQoKWAgaXMgYSBmdW5jdGlvbiB0aGF0
IHByZXBhcmVzIGZvciB1cGRhdGVzLiBNYXJrIHRoZSBjb250ZXh0IGFzIGFjdGl2ZS4KKyAgICB1
cGRhdGVBY3RpdmVPcmRpbmFsKCk7CisKICAgICBpZiAoIW1fY29udGV4dC0+bGF5ZXJDb21wb3Np
dGVkKCkgfHwgbV9sYXllckNsZWFyZWQgfHwgbV9wcmV2ZW50QnVmZmVyQ2xlYXJGb3JJbnNwZWN0
b3IpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNzc2Miw3ICs3ODIwLDcgQEAgdm9pZCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYXliZVJlc3RvcmVDb250ZXh0KCkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIG1fY29udGV4dCA9IGNvbnRleHQ7CisgICAgc2V0R3JhcGhp
Y3NDb250ZXh0R0woY29udGV4dC5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICBhZGRBY3Rpdml0eVN0
YXRlQ2hhbmdlT2JzZXJ2ZXJJZk5lY2Vzc2FyeSgpOwogICAgIG1fY29udGV4dExvc3QgPSBmYWxz
ZTsKICAgICBzZXR1cEZsYWdzKCk7CkBAIC04MTgzLDYgKzgyNDEsMTEgQEAgdm9pZCBXZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlOjpwcmVwYXJlRm9yRGlzcGxheSgpCiAgICAgbV9jb250ZXh0LT5w
cmVwYXJlRm9yRGlzcGxheSgpOwogfQogCit2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6
OnVwZGF0ZUFjdGl2ZU9yZGluYWwoKQoreworICAgIG1fYWN0aXZlT3JkaW5hbCA9IHNfbGFzdEFj
dGl2ZU9yZGluYWwrKzsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8g
RU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCmluZGV4IGI1NDU3ZTcxMzdmODQyNmRjMDMxMDRiNGM0
ZTZhM2ZiMjIyNGMzYmMuLmE4MTY3MzhkOGFkNTFlZGJlZDc5NjU4MzlkNTA5Y2YzOGFiZDNjODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmgKQEAgLTQzMiw2ICs0MzIsOCBAQCBwdWJsaWM6CiAgICAgLy8gcHJvaGli
aXRpdmVseSBleHBlbnNpdmUuCiAgICAgTG9jayYgb2JqZWN0R3JhcGhMb2NrKCkgV1RGX1JFVFVS
TlNfTE9DSyhtX29iamVjdEdyYXBoTG9jayk7CiAKKyAgICAvLyBSZXR1cm5zIHRoZSBvcmRpbmFs
IG51bWJlciBvZiB3aGVuIHRoZSBjb250ZXh0IHdhcyBsYXN0IGFjdGl2ZSAoZHJldywgcmVhZCBw
aXhlbHMpLgorICAgIHVpbnQ2NF90IGFjdGl2ZU9yZGluYWwoKSBjb25zdCB7IHJldHVybiBtX2Fj
dGl2ZU9yZGluYWw7IH0KIHByb3RlY3RlZDoKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
KENhbnZhc0Jhc2UmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzKTsKICAgICBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlKENhbnZhc0Jhc2UmLCBSZWY8R3JhcGhpY3NDb250ZXh0R0w+JiYsIFdlYkdM
Q29udGV4dEF0dHJpYnV0ZXMpOwpAQCAtNDczLDYgKzQ3NSw3IEBAIHByb3RlY3RlZDoKICAgICB2
b2lkIGFkZENvbnRleHRPYmplY3QoV2ViR0xDb250ZXh0T2JqZWN0Jik7CiAgICAgdm9pZCBkZXRh
Y2hBbmRSZW1vdmVBbGxPYmplY3RzKCk7CiAKKyAgICB2b2lkIHNldEdyYXBoaWNzQ29udGV4dEdM
KFJlZjxHcmFwaGljc0NvbnRleHRHTD4mJik7CiAgICAgdm9pZCBkZXN0cm95R3JhcGhpY3NDb250
ZXh0R0woKTsKICAgICB2b2lkIG1hcmtDb250ZXh0Q2hhbmdlZCgpOwogICAgIHZvaWQgbWFya0Nv
bnRleHRDaGFuZ2VkQW5kTm90aWZ5Q2FudmFzT2JzZXJ2ZXIoKTsKQEAgLTU0Miw2ICs1NDUsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBjb21wb3NpdGluZ1Jlc3VsdHNOZWVkVXBkYXRpbmcoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX2NvbXBvc2l0aW5nUmVzdWx0c05lZWRVcGRhdGluZzsgfQog
ICAgIGJvb2wgbmVlZHNQcmVwYXJhdGlvbkZvckRpc3BsYXkoKSBjb25zdCBmaW5hbCB7IHJldHVy
biB0cnVlOyB9CiAgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheSgpIGZpbmFsOworICAgIHZvaWQg
dXBkYXRlQWN0aXZlT3JkaW5hbCgpOwogCiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMPiBt
X2NvbnRleHQ7CiAgICAgUmVmUHRyPFdlYkdMQ29udGV4dEdyb3VwPiBtX2NvbnRleHRHcm91cDsK
QEAgLTExNDIsNiArMTE0Niw4IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKFdFQlhSKQogICAgIGJv
b2wgbV9pc1hSQ29tcGF0aWJsZSB7IGZhbHNlIH07CiAjZW5kaWYKKyAgICAvLyBUaGUgb3JkaW5h
bCBudW1iZXIgb2Ygd2hlbiB0aGUgY29udGV4dCB3YXMgbGFzdCBhY3RpdmUgKGRyZXcsIHJlYWQg
cGl4ZWxzKS4KKyAgICB1aW50NjRfdCBtX2FjdGl2ZU9yZGluYWwgeyAwIH07CiB9OwogCiB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKaW5kZXgg
MGMzOTQ5NzVmMmU2MGVjN2NmZGEzODRiMTM4MjZkMDUxZjgzMWRiNi4uODcyMTI1NDFjNjA2OGMw
YWNlMmMyOTA1Nzc5ODIzMjEzMTFlZWQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdM
RS5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKIAogI2luY2x1ZGUgIkFOR0xFSGVhZGVycy5oIgogI2lu
Y2x1ZGUgIkFOR0xFVXRpbGl0aWVzLmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJbnRSZWN0
LmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0K
aW5kZXggMzViOTFmYjNkZDY3YTczMjg5N2NjNTQ2NzIyYzNmZjUwYTlkMDk2OS4uZDJkODgxOGNi
NDMwZjU5MzBlMzk1M2JhYWEzYzg0NDViY2Y0NTNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRH
TENvY29hLm1tCkBAIC0zMyw3ICszMyw2IEBACiAjaW1wb3J0ICJBTkdMRVV0aWxpdGllc0NvY29h
LmgiCiAjaW1wb3J0ICJDVlV0aWxpdGllcy5oIgogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xJ
T1N1cmZhY2VTd2FwQ2hhaW4uaCIKLSNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFu
YWdlci5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiUGl4ZWxCdWZmZXIuaCIKICNp
bXBvcnQgIlByb2Nlc3NJZGVudGl0eS5oIgpAQCAtNDI4LDcgKzQyNyw2IEBAIGJvb2wgR3JhcGhp
Y3NDb250ZXh0R0xDb2NvYTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIAogR3JhcGhpY3NDb250ZXh0
R0xBTkdMRTo6fkdyYXBoaWNzQ29udGV4dEdMQU5HTEUoKQogewotICAgIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlbW92ZUNvbnRleHQodGhpcyk7CiAg
ICAgaWYgKG1ha2VDb250ZXh0Q3VycmVudCgpKSB7CiAgICAgICAgIGlmIChtX3RleHR1cmUpCiAg
ICAgICAgICAgICBHTF9EZWxldGVUZXh0dXJlcygxLCAmbV90ZXh0dXJlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGlj
c0NvbnRleHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KaW5kZXggMGJiMTA2NWIzYTYx
NjY5Yjk4NTAxODUzMDQ1YTcwYjZmYWExYjUwOC4uYjk5YWI2ZTJiNjM5OGM4OWFjZjQ0NDk4OGZk
NzFhMDQ3YTZkZmU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4
dEdMQ29jb2EubW0KQEAgLTI4LDcgKzI4LDYgQEAKIAogI2lmIEVOQUJMRShXRUJHTCkKICNpbXBv
cnQgIkdyYXBoaWNzQ29udGV4dEdMQ29jb2EuaCIgLy8gTk9MSU5UCi0jaW1wb3J0ICJHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKICNpbXBvcnQgIlBsYXRmb3JtQ0FMYXllci5oIgog
I2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5LmgiCiAKQEAgLTE0NiwxNCArMTQ1LDkgQEAgdm9pZCBX
ZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYTo6ZGlzcGxheVdhc1JlY29uZmlndXJlZCgp
CiAKIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTD4gY3JlYXRlV2ViUHJvY2Vzc0dyYXBoaWNzQ29u
dGV4dEdMKGNvbnN0IEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyYgYXR0cmlidXRlcykKIHsK
LSAgICAvLyBNYWtlIHNwYWNlIGZvciB0aGUgaW5jb21pbmcgY29udGV4dCBpZiB3ZSdyZSBmdWxs
LgotICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJl
Y3ljbGVDb250ZXh0SWZOZWNlc3NhcnkoKTsKLSAgICBpZiAoR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuaGFzVG9vTWFueUNvbnRleHRzKCkpCi0gICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKG5ldyBXZWJQcm9j
ZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgeyBh
dHRyaWJ1dGVzIH0pKTsKICAgICBpZiAoIWNvbnRleHQtPmluaXRpYWxpemUoKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFy
ZWRNYW5hZ2VyKCkuYWRkQ29udGV4dChjb250ZXh0LmdldCgpKTsKICAgICByZXR1cm4gY29udGV4
dDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKaW5kZXggNGU0Mjcx
OWE1ZDlmMDc4MTlhNTc5NTZkMTAyYjgyZGUwNmJlZmJhZC4uYjViYWM3ZDhmZTQzYzQ4MDg1NjZh
YjljY2Y3Zjc0NDI0MDc2NDZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wu
Y3BwCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiQU5HTEVXZWJLaXRCcmlkZ2UuaCIKICNp
bmNsdWRlICJHTENvbnRleHQuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbmNs
dWRlICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKICNpbmNsdWRlICJJbWFnZUJ1
ZmZlci5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCkBAIC0y
NTEsNyArMjUwLDYgQEAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHQKIAogR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0w6On5HcmFwaGljc0NvbnRleHRHTE9wZW5HTCgpCiB7Ci0gICAgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkucmVtb3ZlQ29udGV4dCh0aGlzKTsK
ICAgICBib29sIHN1Y2Nlc3MgPSBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICBBU1NFUlRfVU5V
U0VEKHN1Y2Nlc3MsIHN1Y2Nlc3MpOwogICAgIGlmIChtX3RleHR1cmUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAxMmQ0YjNhZmYyOTFkODIwMTA3NzRkN2U2ZDRmNDg5NzA3MjRjMmYwLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIu
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLQotI2lmIEVOQUJMRShXRUJHTCkKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTE1hbmFnZXIuaCIKLQotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLQotI2lmIFVTRShB
TkdMRSkKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTEFOR0xFLmgiCi0jZWxzZQotI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgiCi0jZW5kaWYKLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyJiBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI+IHNfbWFuYWdlcjsKLSAgICByZXR1cm4g
c19tYW5hZ2VyOwotfQotCi12b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6YWRk
Q29udGV4dChHcmFwaGljc0NvbnRleHRHTFR5cGUqIGNvbnRleHQpCi17Ci0gICAgQVNTRVJUKGNv
bnRleHQpOwotICAgIGlmICghY29udGV4dCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQVNTRVJU
KCFtX2NvbnRleHRzLmNvbnRhaW5zKGNvbnRleHQpKTsKLSAgICBtX2NvbnRleHRzLmFwcGVuZChj
b250ZXh0KTsKLX0KLQotdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnJlbW92
ZUNvbnRleHQoR3JhcGhpY3NDb250ZXh0R0xUeXBlKiBjb250ZXh0KQotewotICAgIGlmICghbV9j
b250ZXh0cy5jb250YWlucyhjb250ZXh0KSkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fY29udGV4
dHMucmVtb3ZlRmlyc3QoY29udGV4dCk7Ci19Ci0KLXZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xNYW5hZ2VyOjpyZWN5Y2xlQ29udGV4dElmTmVjZXNzYXJ5KCkKLXsKLSAgICBpZiAoaGFzVG9v
TWFueUNvbnRleHRzKCkpIHsKLSAgICAgICAgTE9HKFdlYkdMLCAiR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xNYW5hZ2VyIHJlY3ljbGVkIGNvbnRleHQgKCVwKS4iLCBtX2NvbnRleHRzWzBdKTsKLSAg
ICAgICAgbV9jb250ZXh0c1swXS0+cmVjeWNsZUNvbnRleHQoKTsKLSAgICB9Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRH
TE9wZW5HTE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZjA3OTA5YzgxYjk0ZTZkZjNkYjRhMmYxNGNiNzg0Y2EzMzEyMzI2Zi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNl
Ci0KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1jb25zdCB1bnNpZ25lZCBNYXhDb250ZXh0cyA9IDE2Owot
Ci0jaWYgVVNFKEFOR0xFKQotY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTsKLSNlbHNlCi1j
bGFzcyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDsKLSNlbmRpZgotCi1jbGFzcyBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTE1hbmFnZXIgewotICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTE1hbmFnZXI+OwotcHVibGljOgotI2lmIFVTRShBTkdMRSkKLSAgICB1
c2luZyBHcmFwaGljc0NvbnRleHRHTFR5cGUgPSBHcmFwaGljc0NvbnRleHRHTEFOR0xFOwotI2Vs
c2UKLSAgICB1c2luZyBHcmFwaGljc0NvbnRleHRHTFR5cGUgPSBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDsKLSNlbmRpZgotCi0gICAgc3RhdGljIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdl
ciYgc2hhcmVkTWFuYWdlcigpOwotICAgIAotICAgIHZvaWQgYWRkQ29udGV4dChHcmFwaGljc0Nv
bnRleHRHTFR5cGUqKTsKLSAgICB2b2lkIHJlbW92ZUNvbnRleHQoR3JhcGhpY3NDb250ZXh0R0xU
eXBlKik7Ci0gICAgCi0gICAgdm9pZCByZWN5Y2xlQ29udGV4dElmTmVjZXNzYXJ5KCk7Ci0gICAg
Ym9vbCBoYXNUb29NYW55Q29udGV4dHMoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHRzLnNpemUo
KSA+PSBNYXhDb250ZXh0czsgfQotICAgIAotcHJpdmF0ZToKLSAgICBHcmFwaGljc0NvbnRleHRH
TE9wZW5HTE1hbmFnZXIoKSA9IGRlZmF1bHQ7Ci0KLSAgICBWZWN0b3I8R3JhcGhpY3NDb250ZXh0
R0xUeXBlKj4gbV9jb250ZXh0czsKLX07Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29u
dGV4dEdMVGV4dHVyZU1hcHBlci5jcHAKaW5kZXggOTJmZjUyMDZiMjVmMDUxZDAzNTg2MjVjOTNi
YjQ5MWE0OTZlYjlmNS4uMmM1NzAyZDA3NmNlOTNiZjM4NjgyZDYyYWZiZWJiNDdmMjgxYThhYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBo
aWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAKQEAg
LTMxLDcgKzMxLDYgQEAKIAogI2lmIEVOQUJMRShXRUJHTCkgJiYgVVNFKFRFWFRVUkVfTUFQUEVS
KQogCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgiCiAjaW5jbHVk
ZSAiUGl4ZWxCdWZmZXIuaCIKICNpbmNsdWRlICJUZXh0dXJlTWFwcGVyR0NHTFBsYXRmb3JtTGF5
ZXIuaCIKICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KQEAgLTEwNiwxMSArMTA1LDYgQEAgUmVmUHRy
PEdyYXBoaWNzQ29udGV4dEdMPiBjcmVhdGVXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0woY29u
c3QgR3JhcGhpY3NDb250ZXgKICAgICBpZiAoIXN1Y2Nlc3MpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgLy8gTWFrZSBzcGFjZSBmb3IgdGhlIGluY29taW5nIGNvbnRleHQgaWYgd2Un
cmUgZnVsbC4KLSAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFn
ZXIoKS5yZWN5Y2xlQ29udGV4dElmTmVjZXNzYXJ5KCk7Ci0gICAgaWYgKEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmhhc1Rvb01hbnlDb250ZXh0cygpKQot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQogICAgIC8vIENyZWF0ZSB0aGUgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0wgb2JqZWN0IGZpcnN0IGluIG9yZGVyIHRvIGVzdGFibGlzdCBhIGN1cnJlbnQg
Y29udGV4dCBvbiB0aGlzIHRocmVhZC4KICAgICBhdXRvIGNvbnRleHQgPSBHcmFwaGljc0NvbnRl
eHRHTFRleHR1cmVNYXBwZXI6OmNyZWF0ZShHcmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgeyBh
dHRyaWJ1dGVzIH0pOwogICAgIGlmICghY29udGV4dCkKQEAgLTEyMCw5ICsxMTQsNiBAQCBSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0R0w+IGNyZWF0ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTChj
b25zdCBHcmFwaGljc0NvbnRleAogICAgIGlmIChhdHRyaWJ1dGVzLndlYkdMVmVyc2lvbiA9PSBH
cmFwaGljc0NvbnRleHRHTFdlYkdMVmVyc2lvbjo6V2ViR0wyICYmICFlcG94eV9pc19kZXNrdG9w
X2dsKCkgJiYgZXBveHlfZ2xfdmVyc2lvbigpIDwgMzApCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogI2VuZGlmCi0KLSAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1h
bmFnZXIoKS5hZGRDb250ZXh0KGNvbnRleHQuZ2V0KCkpOwotCiAgICAgcmV0dXJuIGNvbnRleHQ7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXJBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVy
QU5HTEUuY3BwCmluZGV4IDU2NTE1NGE4NjljODg1NTZhN2M5MDhlZmI4Nzk2NmI2ZmI1MDNjNGQu
LmEyZDcxZDFlOTc2OGFhZWU1MWJkZTMxZTIxOTY0MWZkNjZjYjBjODIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRl
eHR1cmVNYXBwZXJBTkdMRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlckFOR0xFLmNwcApAQCAtMzEs
NyArMzEsNiBAQAogCiAjaW5jbHVkZSAiQU5HTEVIZWFkZXJzLmgiCiAjaW5jbHVkZSAiQU5HTEVV
dGlsaXRpZXMuaCIKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUGl4ZWxCdWZmZXIuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybUxheWVyRGlzcGxheURlbGVnYXRlLmgiCkBAIC0zMTgsNyArMzE3LDYgQEAgYm9v
bCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjpFR0xJbWFnZUJhY2tpbmc6OnJlc2V0KGludCB3aWR0
aCwgaW50IGhlaWdodCwgYm9vbAogCiBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjp+R3JhcGhpY3ND
b250ZXh0R0xBTkdMRSgpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpz
aGFyZWRNYW5hZ2VyKCkucmVtb3ZlQ29udGV4dCh0aGlzKTsKICAgICBib29sIHN1Y2Nlc3MgPSBt
YWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICBBU1NFUlRfVU5VU0VEKHN1Y2Nlc3MsIHN1Y2Nlc3Mp
OwogICAgIGlmIChtX3RleHR1cmUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGVhOWVhNmE3NjVlNmRmZWZhOGI4Yjg0NTMx
MTBlMzZlOWUwYTI0Zi4uMzU1ZGVlMTE4ZmU3YTdkYmViNzhhNmY1MTRhYjdhMjQwYzdlOWUxNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIyLTAzLTAyICBLaW1tbyBLaW5udW5lbiAgPGtraW5u
dW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY29udGV4dCBjb3VudCBpcyBub3QgbGlt
aXRlZCBmb3IgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMjQxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIy
LTAzLTAxICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBhZGQgYSBzd2l0Y2ggdG8gY29udHJvbCB3aGV0aGVyIGJyZWFrcG9pbnQgZXZh
bHVhdGlvbnMgKGNvbmRpdGlvbiwgaWdub3JlIGNvdW50LCBhY3Rpb25zKSBhcmUgYWxzbyBhZmZl
Y3RlZCBieSBzY3JpcHQgYmxhY2tib3hpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13
azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5MjFhMzBlMTI1ZGM2MjJlZDEwODAyNmIzM2I5M2Zh
M2IwNTc5MzE5Li4wNjY3MjdjYzQ1ZWE5ZWRkMjI5MzdkY2E3M2VlZTNkMWRjZTljZGEyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMjA2
LDExICsyMjA2LDUgQEAgaHR0cC93cHQvaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRp
Y3MvdGhlLWEtZWxlbWVudC9hLWRvd25sb2FkLWNsaWNrLTQwNC4KIAogIyBUZXN0IGZhaWx1cmVz
IGZyb20gdHVybmluZyBHUFUgUHJvY2VzcyBvbiBieSBkZWZhdWx0CiB3ZWJraXQub3JnL2IvMjM0
NTM2IHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlL3JlYWRpbmcvcmVhZC1waXhlbHMtdGVzdC5odG1s
Ci13ZWJraXQub3JnL2IvMjM0NTM2IHdlYmdsL21hbnktY29udGV4dHMtYWNjZXNzLWFmdGVyLWxv
c3MuaHRtbAotd2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC9tYW55LWNvbnRleHRzLmh0bWwKLXdl
YmtpdC5vcmcvYi8yMzQ1MzYgd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy1jb25zb2xlLXdhcm5p
bmcuaHRtbAotd2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLWdj
Lmh0bWwKLXdlYmtpdC5vcmcvYi8yMzQ1MzYgd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy1vbGRl
c3QtY29udGV4dC1sb3N0Lmh0bWwKIHdlYmtpdC5vcmcvYi8yMzQ1MzYgd2VieHIvaGlnaC1wZXJm
b3JtYW5jZS5odG1sCi13ZWJraXQub3JnL2IvMjM0NTM2IHdlYmdsL21heC1hY3RpdmUtY29udGV4
dHMtd2ViZ2xjb250ZXh0bG9zdC1wcmV2ZW50LWRlZmF1bHQuaHRtbCBbIFRpbWVvdXQgXQogd2Vi
a2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC8xLjAuMy9jb25mb3JtYW5jZS9zdGF0ZS9nbC1vYmplY3Qt
Z2V0LWNhbGxzLmh0bWwgWyBUaW1lb3V0IF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453714</attachid>
            <date>2022-03-03 02:57:54 -0800</date>
            <delta_ts>2022-03-03 03:11:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222411-20220303125752.patch</filename>
            <type>text/plain</type>
            <size>31193</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2QwYzkzMDU4Y2U2ZDAz
NDE5OTBmNjMyNTY5MzdmNzY3OGZjMWNkOC4uZjc1ODZjODZkZTUyZDI3ZTg5ODI5NGI3MmJhNDY2
NjU5ZGNhNWE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIyLTAzLTAyICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY29udGV4
dCBjb3VudCBpcyBub3QgbGltaXRlZCBmb3IgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQxMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgdGhlIGNvbnRleHQgbGltaXQgZnJv
bSB0aGUgR3JhcGhpY3NDb250ZXh0R0wgaW1wbGVtZW50YXRpb24KKyAgICAgICAgbGV2ZWwgdG8g
V2ViR0xSZW5kZXJpbmdDb250ZXh0IGxldmVsLiBUaGlzIHdheSB0aGUgbGltaXQKKyAgICAgICAg
aXMgYXBwbGllZCB0byB0aGUgR1BVUCBpbXBsZW1lbnRhdGlvbiB0b28uCisKKyAgICAgICAgUmVj
eWNsZSB0aGUgY29udGV4dCB3aXRoIHRoZSBlYXJsaWVzdCBhY3Rpdml0eSAoZHJhdywgcmVhZHBp
eGVscykKKyAgICAgICAgaW5zdGVhZCBvZiB0aGUgY3JlYXRpb24gb3JkZXIuCisKKyAgICAgICAg
U3RvcmVzIHRoZSBXZWJHTCBjb250ZXh0cyB0byBwZXItdGhyZWFkIHNldCBhbmQgbGltaXRzIHRo
ZSBzaXplIG9mIHRoZSBzZXQuCisgICAgICAgIFRoZSBzZXQgaXMgcGVyLXRocmVhZCB0byBzdXBw
b3J0IFdlYkdMIGNvbnRleHRzIGluIERPTSBhcyB3ZWxsIGFzCisgICAgICAgIG9mZnNjcmVlbiBj
YW52YXMgdXNlLWNhc2VzLiBPZmZzY3JlZW4gY2FudmFzIGlzIG5vdCBpbXBsZW1lbnRlZCBmb3Ig
Q29jb2EKKyAgICAgICAgYnV0IG90aGVyIHBvcnRzIG1heSBlbmFibGUgaXQuCisKKyAgICAgICAg
VGVzdGVkIGJ5OgorICAgICAgICBMYXlvdXRUZXN0cy93ZWJnbC9sb3NlLWNvbnRleHQtYWZ0ZXIt
Y29udGV4dC1sb3N0Lmh0bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvd2ViZ2wvbWFueS1jb250ZXh0
cy1hY2Nlc3MtYWZ0ZXItbG9zcy5odG1sCisgICAgICAgIExheW91dFRlc3RzL3dlYmdsL21hbnkt
Y29udGV4dHMuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy93ZWJnbC9tYXgtYWN0aXZlLWNvbnRl
eHRzLWNvbnNvbGUtd2FybmluZy5odG1sCisgICAgICAgIExheW91dFRlc3RzL3dlYmdsL21heC1h
Y3RpdmUtY29udGV4dHMtZ2MuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy93ZWJnbC9tYXgtYWN0
aXZlLWNvbnRleHRzLW9sZGVzdC1jb250ZXh0LWxvc3QuaHRtbAorICAgICAgICBMYXlvdXRUZXN0
cy93ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLXdlYmdsY29udGV4dGxvc3QtcHJldmVudC1kZWZh
dWx0Lmh0bWwKKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogU291cmNlcy50
eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6YWN0aXZlQ29udGV4dHMpOgorICAgICAgICAoV2ViQ29yZTo6YWRkQWN0aXZlQ29u
dGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpyZW1vdmVBY3RpdmVDb250ZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVuZGVyaW5nQ29udGV4
dEJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6c2V0
R3JhcGhpY3NDb250ZXh0R0wpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6ZGVzdHJveUdyYXBoaWNzQ29udGV4dEdMKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNsZWFySWZDb21wb3NpdGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9yZUNvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dXBkYXRlQWN0aXZl
T3JkaW5hbCk6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6YWN0aXZl
T3JkaW5hbCBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhp
Y3NDb250ZXh0R0xBTkdMRS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
R3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dEdMQU5HTEU6On5HcmFwaGljc0NvbnRleHRHTEFOR0xFKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjp+R3JhcGhpY3ND
b250ZXh0R0xPcGVuR0wpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0
R0xUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdlYlByb2Nlc3NH
cmFwaGljc0NvbnRleHRHTCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dy
YXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlckFOR0xFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6On5HcmFwaGljc0NvbnRleHRHTEFOR0xFKToKKwogMjAy
Mi0wMy0wMiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFRyZWF0IGVt
cHR5IGludGVyc2VjdGlvbiBjb3JyZWN0bHkgaW4gUmVuZGVyTGF5ZXI6OmdldFJlY3RUb0V4cG9z
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKaW5kZXggM2NiNGE0OWQ5ODUxNmM5Y2JkNTFkZWRjZmFjMzZhZjJk
ZmQ1ZDE1MS4uMGE1YWVhYmRjYTgyZTk4ZmNmZDk0NWE0M2UxYjI2NThmMTM0NTFhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCkBAIC0xNjU3LDcgKzE2NTcsNiBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZS
QU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNH
TE9wZW5HTENvbW1vbi5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnNH
TE9wZW5HTEVTLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0wuaAotICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRH
TE9wZW5HTE1hbmFnZXIuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZW1wb3JhcnlP
cGVuR0xTZXR0aW5nLmgKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBl
TWF0aERhdGEuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBhMWQ2YjZmYzYzYWQyOTFmMDcyOGQ1MTg5N2U4
YjljMTc5N2NiMzAxLi4zYTM1ZTI2MDVlMDNlNjI5NzliMjI5ZDgyNmZlNmU3M2JlMjk0MmRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dApAQCAtMjE2MSw3ICsyMTYxLDYgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvaXNv
L0lTT1NjaGVtZUluZm9ybWF0aW9uQm94LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1Nj
aGVtZVR5cGVCb3guY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9pc28vSVNPVHJhY2tFbmNyeXB0aW9u
Qm94LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1ZUVEN1ZS5jcHAKLXBsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwCiBwbGF0Zm9y
bS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZU1hdGhEYXRhLmNwcAogcGxhdGZvcm0vZ3JhcGhp
Y3MvdHJhbnNmb3Jtcy9BZmZpbmVUcmFuc2Zvcm0uY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL01hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGVhNTc2NWVmNjhkMzM4
MWQ4NzA2NDVmZjNlN2ZiNzVmYmNkNDRkZTMuLmVhZjRlZDBlNDc1YTFjZDM2N2FjYjc5Y2JkNjFm
OGVkYzVjYTRkYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTk3Nyw3ICs5NzcsNiBAQAogCQkzMThFQUQ0RDFGQTkxMzgwMDA4
Q0VGODYgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0U2V0dGluZ3MuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOEVBRDRBMUZBOTExNTcwMDhD
RUY4NiAvKiBJbWFnZUJpdG1hcFJlbmRlcmluZ0NvbnRleHRTZXR0aW5ncy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMxOTg0ODAxMUExRDgxN0Iw
MEExMzMxOCAvKiBBbmltYXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzE5ODQ3RkYxQTFEODE2NzAwQTEzMzE4IC8qIEFuaW1hdGlvbkV2
ZW50LmggKi87IH07CiAJCTMxOTg0ODBDMUExRTZDRTgwMEExMzMxOCAvKiBKU0FuaW1hdGlvbkV2
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTk4
NDgwNDFBMUU2QjVEMDBBMTMzMTggLyogSlNBbmltYXRpb25FdmVudC5oICovOyB9OwotCQkzMTlB
NzI4ODIzQzI2N0ZFMDA4NTM1M0MgLyogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTlBNzI4NzIz
QzI2N0U3MDA4NTM1M0MgLyogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzE5QUUwNjQxNDJE
NkIyNDAwNjU2M0ExIC8qIFN0eWxlRmlsdGVyRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5QUUwNjIxNDJENkIyNDAwNjU2M0ExIC8qIFN0eWxl
RmlsdGVyRGF0YS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTMxOUZCRDVGMTVEMkY0NjQwMDk2NDBBNiAvKiBDYWNoZWRJbWFnZUNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5RkJENUQxNUQy
RjQ0NDAwOTY0MEE2IC8qIENhY2hlZEltYWdlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzFBMDg5NTYxRTczOEQ1OTAwM0I2NjA5IC8q
IEpTV2ViR1BVQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMUEwODkxRDFFNzM4RDU5MDAzQjY2MDkgLyogSlNXZWJHUFVCdWZmZXIuaCAqLzsg
fTsKQEAgLTgzODAsNyArODM3OSw2IEBACiAJCTMxOTg0ODAwMUExRDgxNjcwMEExMzMxOCAvKiBB
bmltYXRpb25FdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQW5pbWF0aW9uRXZlbnQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTk4NDgwMzFBMUU2QjVEMDBBMTMz
MTggLyogSlNBbmltYXRpb25FdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0FuaW1hdGlvbkV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMzE5ODQ4MDQxQTFFNkI1RDAwQTEzMzE4IC8qIEpTQW5pbWF0aW9uRXZlbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBbmltYXRpb25FdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQkzMTlBNzI4NzIzQzI2N0U3MDA4NTM1M0MgLyogR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0xNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzMTlBRTA2MTE0MkQ2QjI0MDA2NTYzQTEgLyogU3R5bGVGaWx0ZXJEYXRhLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlRmlsdGVyRGF0YS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxOUFFMDYyMTQyRDZCMjQwMDY1NjNBMSAv
KiBTdHlsZUZpbHRlckRhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5
bGVGaWx0ZXJEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxOUJERTRGMUU3
QTg1OEEwMEJBMjk2QyAvKiBKU1JUQ0ljZVRyYW5zcG9ydC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1JUQ0ljZVRyYW5zcG9ydC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNjQ5NCw3ICsxNjQ5Miw2IEBACiAJCUQwNkMwRDhFMENGRDExNDYw
MDY1RjQzRiAvKiBSZW1vdmVGb3JtYXRDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJlbW92ZUZvcm1hdENvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEMDdERUFCNzBBMzY1NTRBMDBDQTMwRjggLyogSW5zZXJ0TGlzdENvbW1h
bmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc2VydExpc3RD
b21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA3REVBQjgwQTM2NTU0
QTAwQ0EzMEY4IC8qIEluc2VydExpc3RDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBJbnNlcnRMaXN0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlEMDg0M0E0QzIwRkVDMTY1MDBGRTg2MEUgLyogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xN
YW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwODZGRTk2MDlENTNBQUIw
MDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFVubGlua0NvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA4NkZF
OTcwOUQ1M0FBQjAwNUJDNzREIC8qIFVubGlua0NvbW1hbmQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVW5saW5rQ29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUQwQTIwRDU0MjA5MkEwQTYwMEUwQzI1OSAvKiBXZWJHTENvbXByZXNzZWRU
ZXh0dXJlQVNUQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHTENvbXBy
ZXNzZWRUZXh0dXJlQVNUQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzI5MjUs
OCArMzI5MjIsNiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJNkUyMUM2QkYxMTI2MzM4NTAwQTdC
RTAyIC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcCAqLywKIAkJCQk0OUM3QjlGQjEwNDJE
MzY1MDAwOUQ0NDcgLyogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaCAqLywKLQkJCQlEMDg0M0E0
QzIwRkVDMTY1MDBGRTg2MEUgLyogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmNwcCAq
LywKLQkJCQkzMTlBNzI4NzIzQzI2N0U3MDA4NTM1M0MgLyogR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xNYW5hZ2VyLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IG9wZW5nbDsKIAkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CkBAIC0zNDc4MSw3ICszNDc3Niw2IEBACiAJCQkJN0JCMzRBNDgyNTM3NzZD
QTAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTdCNkRDODE5MjU3MTJFOTIwMDM4MEM3MCAvKiBHcmFwaGljc0NvbnRleHRHTElP
U3VyZmFjZVN3YXBDaGFpbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDlDN0I5RkMxMDQyRDM2NTAw
MDlENDQ3IC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmggaW4gSGVhZGVycyAqLywKLQkJCQkz
MTlBNzI4ODIzQzI2N0ZFMDA4NTM1M0MgLyogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Qjk1Q0ZFQjI3NTRGRjZFMDAwMDYwQ0UgLyogR3JhcGhp
Y3NDb250ZXh0R0xTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRDY3MDgwRTlFOURFQjAw
RTQyMEYwIC8qIEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNHLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjU4MEIwRDBGMTJBMjY5MDA1MUQ2ODkgLyogR3JhcGhpY3NMYXllci5oIGluIEhl
YWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IDJkZGFjM2ZmMGEwMmVjMzk0ZGMzMjUyMDIz
MjRjNGQ4ZTI3MWMzZDcuLmFiODEyMDdhMDMyN2ZjMDM3MjFhMmUwZmRmZWUyMjVlYmY0MjRmNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuY3BwCkBAIC0xMjQsOCArMTI0LDExIEBACiAjaW5jbHVkZSA8d3RmL0lz
b01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9M
b2NrZXIuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU3BlY2lmaWMuaD4KICNpbmNsdWRlIDx3
dGYvVW5pcXVlQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpAQCAtMTUxLDkgKzE1NCwxMSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlKTsKIAotc3RhdGljIGNvbnN0IFNlY29uZHMgc2Vjb25kc0JldHdlZW5SZXN0
b3JlQXR0ZW1wdHMgeyAxX3MgfTsKLWNvbnN0IGludCBtYXhHTEVycm9yc0FsbG93ZWRUb0NvbnNv
bGUgPSAyNTY7Ci1zdGF0aWMgY29uc3QgU2Vjb25kcyBjaGVja0NvbnRleHRMb3NzSGFuZGxpbmdE
ZWxheSB7IDNfcyB9Oworc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIHNlY29uZHNCZXR3ZWVuUmVz
dG9yZUF0dGVtcHRzIHsgMV9zIH07CitzdGF0aWMgY29uc3RleHByIGludCBtYXhHTEVycm9yc0Fs
bG93ZWRUb0NvbnNvbGUgPSAyNTY7CitzdGF0aWMgY29uc3RleHByIFNlY29uZHMgY2hlY2tDb250
ZXh0TG9zc0hhbmRsaW5nRGVsYXkgeyAzX3MgfTsKK3N0YXRpYyBjb25zdGV4cHIgc2l6ZV90IG1h
eEFjdGl2ZUNvbnRleHRzID0gMTY7CitzdGF0aWMgY29uc3RleHByIHNpemVfdCBtYXhBY3RpdmVX
b3JrZXJDb250ZXh0cyA9IDQ7CiAKIG5hbWVzcGFjZSB7CiAgICAgCkBAIC03ODQsNiArNzg5LDQ2
IEBAIHN0YXRpYyBib29sIGlzSGlnaFBlcmZvcm1hbmNlQ29udGV4dChjb25zdCBSZWZQdHI8R3Jh
cGhpY3NDb250ZXh0R0w+JiBjb250ZXh0KQogICAgIHJldHVybiBjb250ZXh0LT5jb250ZXh0QXR0
cmlidXRlcygpLnBvd2VyUHJlZmVyZW5jZSA9PSBXZWJHTFBvd2VyUHJlZmVyZW5jZTo6SGlnaFBl
cmZvcm1hbmNlOwogfQogCisvLyBDb3VudGVyIGZvciBkZXRlcm1pbmluZyB3aGljaCBjb250ZXh0
IGhhcyB0aGUgZWFybGllc3QgYWN0aXZlIG9yZGluYWwgbnVtYmVyLgorc3RhdGljIHN0ZDo6YXRv
bWljPHVpbnQ2NF90PiBzX2xhc3RBY3RpdmVPcmRpbmFsOworCit1c2luZyBXZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlU2V0ID0gSGFzaFNldDxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKj47CisK
K3N0YXRpYyBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlU2V0JiBhY3RpdmVDb250ZXh0cygpCit7
CisgICAgc3RhdGljIExhenlOZXZlckRlc3Ryb3llZDxUaHJlYWRTcGVjaWZpYzxXZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlU2V0Pj4gc19hY3RpdmVDb250ZXh0czsKKyAgICBzdGF0aWMgc3RkOjpv
bmNlX2ZsYWcgc19vbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShzX29uY2VGbGFnLCBbXSB7
CisgICAgICAgIHNfYWN0aXZlQ29udGV4dHMuY29uc3RydWN0KCk7CisgICAgfSk7CisgICAgcmV0
dXJuICpzX2FjdGl2ZUNvbnRleHRzLmdldCgpOworfQorCitzdGF0aWMgdm9pZCBhZGRBY3RpdmVD
b250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UmIG5ld0NvbnRleHQpCit7CisgICAgYXV0
byYgY29udGV4dHMgPSBhY3RpdmVDb250ZXh0cygpOworICAgIGF1dG8gbWF4Q29udGV4dHNTaXpl
ID0gaXNNYWluVGhyZWFkKCkgPyBtYXhBY3RpdmVDb250ZXh0cyA6IG1heEFjdGl2ZVdvcmtlckNv
bnRleHRzOworICAgIGlmIChjb250ZXh0cy5zaXplKCkgPj0gbWF4Q29udGV4dHNTaXplKSB7Cisg
ICAgICAgIGF1dG8gaXQgPSBjb250ZXh0cy5iZWdpbigpOworICAgICAgICBhdXRvKiBlYXJsaWVz
dCA9ICppdDsKKyAgICAgICAgZm9yICgrK2l0OyBpdCAhPSBjb250ZXh0cy5lbmQoKTsgKytpdCkg
eworICAgICAgICAgICAgaWYgKGVhcmxpZXN0LT5hY3RpdmVPcmRpbmFsKCkgPiAoKml0KS0+YWN0
aXZlT3JkaW5hbCgpKQorICAgICAgICAgICAgICAgIGVhcmxpZXN0ID0gKml0OworICAgICAgICB9
CisgICAgICAgIGVhcmxpZXN0LT5yZWN5Y2xlQ29udGV4dCgpOworICAgICAgICBBU1NFUlQoZWFy
bGllc3QgIT0gJm5ld0NvbnRleHQpOyAvLyBUaGlzIGFzc2VydCBpcyBoZXJlIHNvIHdlIGNhbiBh
c3NlcnQgaXNOZXdFbnRyeSBiZWxvdyBpbnN0ZWFkIG9mIHRvcC1sZXZlbCBgIWNvbnRleHRzLmNv
bnRhaW5zKG5ld0NvbnRleHQpO2AuCisgICAgICAgIEFTU0VSVChjb250ZXh0cy5zaXplKCkgPCBt
YXhDb250ZXh0c1NpemUpOworICAgIH0KKyAgICBhdXRvIHJlc3VsdCA9IGNvbnRleHRzLmFkZCgm
bmV3Q29udGV4dCk7CisgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdC5pc05ld0VudHJ5
KTsKK30KKworc3RhdGljIHZvaWQgcmVtb3ZlQWN0aXZlQ29udGV4dChXZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlJiBjb250ZXh0KQoreworICAgIGJvb2wgZGlkQ29udGFpbiA9IGFjdGl2ZUNvbnRl
eHRzKCkucmVtb3ZlKCZjb250ZXh0KTsKKyAgICBBU1NFUlRfVU5VU0VEKGRpZENvbnRhaW4sIGRp
ZENvbnRhaW4pOworfQorCiBzdGQ6OnVuaXF1ZV9wdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZT4gV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y3JlYXRlKENhbnZhc0Jhc2UmIGNhbnZhcywg
V2ViR0xDb250ZXh0QXR0cmlidXRlcyYgYXR0cmlidXRlcywgV2ViR0xWZXJzaW9uIHR5cGUpCiB7
CiAgICAgYXV0byBzY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gY2FudmFzLnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKTsKQEAgLTkxNSw3ICs5NjAsNiBAQCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
OjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKENhbnZhc0Jhc2UmIGNhbnZhcywgV2ViR0xDbwog
CiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKENh
bnZhc0Jhc2UmIGNhbnZhcywgUmVmPEdyYXBoaWNzQ29udGV4dEdMPiYmIGNvbnRleHQsIFdlYkdM
Q29udGV4dEF0dHJpYnV0ZXMgYXR0cmlidXRlcykKICAgICA6IEdQVUJhc2VkQ2FudmFzUmVuZGVy
aW5nQ29udGV4dChjYW52YXMpCi0gICAgLCBtX2NvbnRleHQoV1RGTW92ZShjb250ZXh0KSkKICAg
ICAsIG1fcmVzdG9yZVRpbWVyKGNhbnZhcy5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICp0aGlz
LCAmV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6bWF5YmVSZXN0b3JlQ29udGV4dCkKICAgICAs
IG1fZ2VuZXJhdGVkSW1hZ2VDYWNoZSg0KQogICAgICwgbV9hdHRyaWJ1dGVzKGF0dHJpYnV0ZXMp
CkBAIC05MjUsNiArOTY5LDggQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiBjYW52YXMsIFJlZjxHcmEKICAgICAsIG1faXNY
UkNvbXBhdGlibGUoYXR0cmlidXRlcy54ckNvbXBhdGlibGUpCiAjZW5kaWYKIHsKKyAgICBzZXRH
cmFwaGljc0NvbnRleHRHTChXVEZNb3ZlKGNvbnRleHQpKTsKKwogICAgIG1fcmVzdG9yZVRpbWVy
LnN1c3BlbmRJZk5lZWRlZCgpOwogCiAgICAgbV9jb250ZXh0R3JvdXAgPSBXZWJHTENvbnRleHRH
cm91cDo6Y3JlYXRlKCk7CkBAIC0xMjAyLDYgKzEyNDgsMTUgQEAgV2ViR0xSZW5kZXJpbmdDb250
ZXh0QmFzZTo6fldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoKQogICAgIH0KIH0KIAordm9pZCBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpzZXRHcmFwaGljc0NvbnRleHRHTChSZWY8R3JhcGhp
Y3NDb250ZXh0R0w+JiYgY29udGV4dCkKK3sKKyAgICBib29sIHdhc0FjdGl2ZSA9IG1fY29udGV4
dDsKKyAgICBtX2NvbnRleHQgPSBXVEZNb3ZlKGNvbnRleHQpOworICAgIHVwZGF0ZUFjdGl2ZU9y
ZGluYWwoKTsKKyAgICBpZiAoIXdhc0FjdGl2ZSkKKyAgICAgICAgYWRkQWN0aXZlQ29udGV4dCgq
dGhpcyk7Cit9CisKIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVzdHJveUdyYXBo
aWNzQ29udGV4dEdMKCkKIHsKICAgICBpZiAobV9pc1BlbmRpbmdQb2xpY3lSZXNvbHV0aW9uKQpA
QCAtMTIxMiw2ICsxMjY3LDcgQEAgdm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpkZXN0
cm95R3JhcGhpY3NDb250ZXh0R0woKQogICAgIGlmIChtX2NvbnRleHQpIHsKICAgICAgICAgbV9j
b250ZXh0LT5yZW1vdmVDbGllbnQoKnRoaXMpOwogICAgICAgICBtX2NvbnRleHQgPSBudWxscHRy
OworICAgICAgICByZW1vdmVBY3RpdmVDb250ZXh0KCp0aGlzKTsKICAgICB9CiB9CiAKQEAgLTEy
NjMsNiArMTMxOSw5IEBAIGJvb2wgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Y2xlYXJJZkNv
bXBvc2l0ZWQoV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6Q2xlCiAgICAgaWYgKGlzQ29udGV4
dExvc3RPclBlbmRpbmcoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgLy8gYGNsZWFy
SWZDb21wb3NpdGVkKClgIGlzIGEgZnVuY3Rpb24gdGhhdCBwcmVwYXJlcyBmb3IgdXBkYXRlcy4g
TWFyayB0aGUgY29udGV4dCBhcyBhY3RpdmUuCisgICAgdXBkYXRlQWN0aXZlT3JkaW5hbCgpOwor
CiAgICAgaWYgKCFtX2NvbnRleHQtPmxheWVyQ29tcG9zaXRlZCgpIHx8IG1fbGF5ZXJDbGVhcmVk
IHx8IG1fcHJldmVudEJ1ZmZlckNsZWFyRm9ySW5zcGVjdG9yKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKQEAgLTc3NjIsNyArNzgyMSw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6bWF5YmVSZXN0b3JlQ29udGV4dCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBt
X2NvbnRleHQgPSBjb250ZXh0OworICAgIHNldEdyYXBoaWNzQ29udGV4dEdMKGNvbnRleHQucmVs
ZWFzZU5vbk51bGwoKSk7CiAgICAgYWRkQWN0aXZpdHlTdGF0ZUNoYW5nZU9ic2VydmVySWZOZWNl
c3NhcnkoKTsKICAgICBtX2NvbnRleHRMb3N0ID0gZmFsc2U7CiAgICAgc2V0dXBGbGFncygpOwpA
QCAtODE4Myw2ICs4MjQyLDExIEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6cHJl
cGFyZUZvckRpc3BsYXkoKQogICAgIG1fY29udGV4dC0+cHJlcGFyZUZvckRpc3BsYXkoKTsKIH0K
IAordm9pZCBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjp1cGRhdGVBY3RpdmVPcmRpbmFsKCkK
K3sKKyAgICBtX2FjdGl2ZU9yZGluYWwgPSBzX2xhc3RBY3RpdmVPcmRpbmFsKys7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2Uu
aAppbmRleCBiNTQ1N2U3MTM3Zjg0MjZkYzAzMTA0YjRjNGU2YTNmYjIyMjRjM2JjLi5hODE2NzM4
ZDhhZDUxZWRiZWQ3OTY1ODM5ZDUwOWNmMzhhYmQzYzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCkBAIC00MzIs
NiArNDMyLDggQEAgcHVibGljOgogICAgIC8vIHByb2hpYml0aXZlbHkgZXhwZW5zaXZlLgogICAg
IExvY2smIG9iamVjdEdyYXBoTG9jaygpIFdURl9SRVRVUk5TX0xPQ0sobV9vYmplY3RHcmFwaExv
Y2spOwogCisgICAgLy8gUmV0dXJucyB0aGUgb3JkaW5hbCBudW1iZXIgb2Ygd2hlbiB0aGUgY29u
dGV4dCB3YXMgbGFzdCBhY3RpdmUgKGRyZXcsIHJlYWQgcGl4ZWxzKS4KKyAgICB1aW50NjRfdCBh
Y3RpdmVPcmRpbmFsKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmVPcmRpbmFsOyB9CiBwcm90ZWN0
ZWQ6CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiwgV2ViR0xDb250
ZXh0QXR0cmlidXRlcyk7CiAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNl
JiwgUmVmPEdyYXBoaWNzQ29udGV4dEdMPiYmLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzKTsKQEAg
LTQ3Myw2ICs0NzUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBhZGRDb250ZXh0T2JqZWN0KFdl
YkdMQ29udGV4dE9iamVjdCYpOwogICAgIHZvaWQgZGV0YWNoQW5kUmVtb3ZlQWxsT2JqZWN0cygp
OwogCisgICAgdm9pZCBzZXRHcmFwaGljc0NvbnRleHRHTChSZWY8R3JhcGhpY3NDb250ZXh0R0w+
JiYpOwogICAgIHZvaWQgZGVzdHJveUdyYXBoaWNzQ29udGV4dEdMKCk7CiAgICAgdm9pZCBtYXJr
Q29udGV4dENoYW5nZWQoKTsKICAgICB2b2lkIG1hcmtDb250ZXh0Q2hhbmdlZEFuZE5vdGlmeUNh
bnZhc09ic2VydmVyKCk7CkBAIC01NDIsNiArNTQ1LDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wg
Y29tcG9zaXRpbmdSZXN1bHRzTmVlZFVwZGF0aW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9j
b21wb3NpdGluZ1Jlc3VsdHNOZWVkVXBkYXRpbmc7IH0KICAgICBib29sIG5lZWRzUHJlcGFyYXRp
b25Gb3JEaXNwbGF5KCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZvaWQgcHJl
cGFyZUZvckRpc3BsYXkoKSBmaW5hbDsKKyAgICB2b2lkIHVwZGF0ZUFjdGl2ZU9yZGluYWwoKTsK
IAogICAgIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTD4gbV9jb250ZXh0OwogICAgIFJlZlB0cjxX
ZWJHTENvbnRleHRHcm91cD4gbV9jb250ZXh0R3JvdXA7CkBAIC0xMTQyLDYgKzExNDYsOCBAQCBw
cml2YXRlOgogI2lmIEVOQUJMRShXRUJYUikKICAgICBib29sIG1faXNYUkNvbXBhdGlibGUgeyBm
YWxzZSB9OwogI2VuZGlmCisgICAgLy8gVGhlIG9yZGluYWwgbnVtYmVyIG9mIHdoZW4gdGhlIGNv
bnRleHQgd2FzIGxhc3QgYWN0aXZlIChkcmV3LCByZWFkIHBpeGVscykuCisgICAgdWludDY0X3Qg
bV9hY3RpdmVPcmRpbmFsIHsgMCB9OwogfTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0Nv
bnRleHRHTEFOR0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCmluZGV4IDBjMzk0OTc1ZjJlNjBlYzdjZmRhMzg0
YjEzODI2ZDA1MWY4MzFkYjYuLjg3MjEyNTQxYzYwNjhjMGFjZTJjMjkwNTc3OTgyMzIxMzExZWVk
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dy
YXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCkBAIC0zMSw3ICszMSw2IEBA
CiAKICNpbmNsdWRlICJBTkdMRUhlYWRlcnMuaCIKICNpbmNsdWRlICJBTkdMRVV0aWxpdGllcy5o
IgotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgogI2luY2x1ZGUg
IkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkludFNpemUu
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dy
YXBoaWNzQ29udGV4dEdMQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCmluZGV4IDU3YWQ1N2QwN2IwYjc1ZmUz
OWY5OGFjODExYjA5NmUyYTFkYjUyNDQuLjdiZmU4NWQ1ZjA2NTE3ZDM5NDcxZDMzZjdiOWY3YTgw
MDFkYTk0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQpAQCAtMzMsNyArMzMs
NiBAQAogI2ltcG9ydCAiQU5HTEVVdGlsaXRpZXNDb2NvYS5oIgogI2ltcG9ydCAiQ1ZVdGlsaXRp
ZXMuaCIKICNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMSU9TdXJmYWNlU3dhcENoYWluLmgiCi0j
aW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKICNpbXBvcnQgIkxvZ2dp
bmcuaCIKICNpbXBvcnQgIlBpeGVsQnVmZmVyLmgiCiAjaW1wb3J0ICJQcm9jZXNzSWRlbnRpdHku
aCIKQEAgLTQyOCw3ICs0MjcsNiBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQ29jb2E6OnBsYXRm
b3JtSW5pdGlhbGl6ZSgpCiAKIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6On5HcmFwaGljc0NvbnRl
eHRHTEFOR0xFKCkKIHsKLSAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJl
ZE1hbmFnZXIoKS5yZW1vdmVDb250ZXh0KHRoaXMpOwogICAgIGlmIChtYWtlQ29udGV4dEN1cnJl
bnQoKSkgewogICAgICAgICBpZiAobV90ZXh0dXJlKQogICAgICAgICAgICAgR0xfRGVsZXRlVGV4
dHVyZXMoMSwgJm1fdGV4dHVyZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0Nv
bnRleHRHTENvY29hLm1tCmluZGV4IDBiYjEwNjViM2E2MTY2OWI5ODUwMTg1MzA0NWE3MGI2ZmFh
MWI1MDguLmI5OWFiNmUyYjYzOThjODlhY2Y0NDQ5ODhmZDcxYTA0N2E2ZGZlODYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL1dlYlByb2Nlc3NHcmFw
aGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL1dlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENvY29hLm1tCkBAIC0yOCw3ICsy
OCw2IEBACiAKICNpZiBFTkFCTEUoV0VCR0wpCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTENv
Y29hLmgiIC8vIE5PTElOVAotI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
LmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5ZXIuaCIKICNpbXBvcnQgIlByb2Nlc3NJZGVudGl0
eS5oIgogCkBAIC0xNDYsMTQgKzE0NSw5IEBAIHZvaWQgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4
dEdMQ29jb2E6OmRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKQogCiBSZWZQdHI8R3JhcGhpY3NDb250
ZXh0R0w+IGNyZWF0ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTChjb25zdCBHcmFwaGljc0Nv
bnRleHRHTEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMpCiB7Ci0gICAgLy8gTWFrZSBzcGFjZSBmb3Ig
dGhlIGluY29taW5nIGNvbnRleHQgaWYgd2UncmUgZnVsbC4KLSAgICBHcmFwaGljc0NvbnRleHRH
TE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5yZWN5Y2xlQ29udGV4dElmTmVjZXNzYXJ5
KCk7Ci0gICAgaWYgKEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdl
cigpLmhhc1Rvb01hbnlDb250ZXh0cygpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBh
dXRvIGNvbnRleHQgPSBhZG9wdFJlZihuZXcgV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29j
b2EoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIHsgYXR0cmlidXRlcyB9KSk7CiAgICAgaWYg
KCFjb250ZXh0LT5pbml0aWFsaXplKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmFkZENvbnRleHQo
Y29udGV4dC5nZXQoKSk7CiAgICAgcmV0dXJuIGNvbnRleHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuY3BwCmluZGV4IDRlNDI3MTlhNWQ5ZjA3ODE5YTU3OTU2ZDEwMmI4
MmRlMDZiZWZiYWQuLmI1YmFjN2Q4ZmU0M2M0ODA4NTY2YWI5Y2NmN2Y3NDQyNDA3NjQ2YTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmNwcApAQCAtMzQsNyArMzQsNiBAQAog
I2luY2x1ZGUgIkFOR0xFV2ViS2l0QnJpZGdlLmgiCiAjaW5jbHVkZSAiR0xDb250ZXh0LmgiCiAj
aW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiSW1hZ2VCdWZmZXIuaCIKICNpbmNsdWRlICJJbnRS
ZWN0LmgiCiAjaW5jbHVkZSAiSW50U2l6ZS5oIgpAQCAtMjUxLDcgKzI1MCw2IEBAIEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChHcmFwaGljc0NvbnRleHRH
TEF0dHJpYnV0ZXMgYXR0CiAKIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjp+R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0woKQogewotICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hh
cmVkTWFuYWdlcigpLnJlbW92ZUNvbnRleHQodGhpcyk7CiAgICAgYm9vbCBzdWNjZXNzID0gbWFr
ZUNvbnRleHRDdXJyZW50KCk7CiAgICAgQVNTRVJUX1VOVVNFRChzdWNjZXNzLCBzdWNjZXNzKTsK
ICAgICBpZiAobV90ZXh0dXJlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xNYW5hZ2VyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTJkNGIzYWZmMjkx
ZDgyMDEwNzc0ZDdlNmQ0ZjQ4OTcwNzI0YzJmMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDczICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpZiBFTkFC
TEUoV0VCR0wpCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgiCi0K
LSNpbmNsdWRlICJMb2dnaW5nLmgiCi0KLSNpZiBVU0UoQU5HTEUpCi0jaW5jbHVkZSAiR3JhcGhp
Y3NDb250ZXh0R0xBTkdMRS5oIgotI2Vsc2UKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTC5oIgotI2VuZGlmCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMTWFuYWdlciYgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5h
Z2VyKCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8R3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xNYW5hZ2VyPiBzX21hbmFnZXI7Ci0gICAgcmV0dXJuIHNfbWFuYWdlcjsKLX0KLQotdm9pZCBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OmFkZENvbnRleHQoR3JhcGhpY3NDb250ZXh0
R0xUeXBlKiBjb250ZXh0KQotewotICAgIEFTU0VSVChjb250ZXh0KTsKLSAgICBpZiAoIWNvbnRl
eHQpCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVCghbV9jb250ZXh0cy5jb250YWlucyhj
b250ZXh0KSk7Ci0gICAgbV9jb250ZXh0cy5hcHBlbmQoY29udGV4dCk7Ci19Ci0KLXZvaWQgR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpyZW1vdmVDb250ZXh0KEdyYXBoaWNzQ29udGV4
dEdMVHlwZSogY29udGV4dCkKLXsKLSAgICBpZiAoIW1fY29udGV4dHMuY29udGFpbnMoY29udGV4
dCkpCi0gICAgICAgIHJldHVybjsKLSAgICBtX2NvbnRleHRzLnJlbW92ZUZpcnN0KGNvbnRleHQp
OwotfQotCi12b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6cmVjeWNsZUNvbnRl
eHRJZk5lY2Vzc2FyeSgpCi17Ci0gICAgaWYgKGhhc1Rvb01hbnlDb250ZXh0cygpKSB7Ci0gICAg
ICAgIExPRyhXZWJHTCwgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlciByZWN5Y2xlZCBj
b250ZXh0ICglcCkuIiwgbV9jb250ZXh0c1swXSk7Ci0gICAgICAgIG1fY29udGV4dHNbMF0tPnJl
Y3ljbGVDb250ZXh0KCk7Ci0gICAgfQotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNl
bmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xNYW5hZ2VyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwNzkwOWM4MWI5NGU2
ZGYzZGI0YTJmMTRjYjc4NGNhMzMxMjMyNmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
L0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNjQg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
Y29uc3QgdW5zaWduZWQgTWF4Q29udGV4dHMgPSAxNjsKLQotI2lmIFVTRShBTkdMRSkKLWNsYXNz
IEdyYXBoaWNzQ29udGV4dEdMQU5HTEU7Ci0jZWxzZQotY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0w7Ci0jZW5kaWYKLQotY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyIHsK
LSAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
PjsKLXB1YmxpYzoKLSNpZiBVU0UoQU5HTEUpCi0gICAgdXNpbmcgR3JhcGhpY3NDb250ZXh0R0xU
eXBlID0gR3JhcGhpY3NDb250ZXh0R0xBTkdMRTsKLSNlbHNlCi0gICAgdXNpbmcgR3JhcGhpY3ND
b250ZXh0R0xUeXBlID0gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w7Ci0jZW5kaWYKLQotICAgIHN0
YXRpYyBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXImIHNoYXJlZE1hbmFnZXIoKTsKLSAg
ICAKLSAgICB2b2lkIGFkZENvbnRleHQoR3JhcGhpY3NDb250ZXh0R0xUeXBlKik7Ci0gICAgdm9p
ZCByZW1vdmVDb250ZXh0KEdyYXBoaWNzQ29udGV4dEdMVHlwZSopOwotICAgIAotICAgIHZvaWQg
cmVjeWNsZUNvbnRleHRJZk5lY2Vzc2FyeSgpOwotICAgIGJvb2wgaGFzVG9vTWFueUNvbnRleHRz
KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0cy5zaXplKCkgPj0gTWF4Q29udGV4dHM7IH0KLSAg
ICAKLXByaXZhdGU6Ci0gICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyKCkgPSBkZWZh
dWx0OwotCi0gICAgVmVjdG9yPEdyYXBoaWNzQ29udGV4dEdMVHlwZSo+IG1fY29udGV4dHM7Ci19
OwotCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXIuY3Bw
CmluZGV4IDkyZmY1MjA2YjI1ZjA1MWQwMzU4NjI1YzkzYmI0OTFhNDk2ZWI5ZjUuLjJjNTcwMmQw
NzZjZTkzYmYzODY4MmQ2MmFmYmViYjQ3ZjI4MWE4YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBw
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFw
aGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXIuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAKICNpZiBF
TkFCTEUoV0VCR0wpICYmIFVTRShURVhUVVJFX01BUFBFUikKIAotI2luY2x1ZGUgIkdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgogI2luY2x1ZGUgIlBpeGVsQnVmZmVyLmgiCiAjaW5j
bHVkZSAiVGV4dHVyZU1hcHBlckdDR0xQbGF0Zm9ybUxheWVyLmgiCiAjaW5jbHVkZSA8d3RmL0Rl
cXVlLmg+CkBAIC0xMDYsMTEgKzEwNSw2IEBAIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTD4gY3Jl
YXRlV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMKGNvbnN0IEdyYXBoaWNzQ29udGV4CiAgICAg
aWYgKCFzdWNjZXNzKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIC8vIE1ha2Ugc3Bh
Y2UgZm9yIHRoZSBpbmNvbWluZyBjb250ZXh0IGlmIHdlJ3JlIGZ1bGwuCi0gICAgR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkucmVjeWNsZUNvbnRleHRJZk5l
Y2Vzc2FyeSgpOwotICAgIGlmIChHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJl
ZE1hbmFnZXIoKS5oYXNUb29NYW55Q29udGV4dHMoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0KICAgICAvLyBDcmVhdGUgdGhlIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMIG9iamVjdCBmaXJz
dCBpbiBvcmRlciB0byBlc3RhYmxpc3QgYSBjdXJyZW50IGNvbnRleHQgb24gdGhpcyB0aHJlYWQu
CiAgICAgYXV0byBjb250ZXh0ID0gR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyOjpjcmVh
dGUoR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVzIHsgYXR0cmlidXRlcyB9KTsKICAgICBpZiAo
IWNvbnRleHQpCkBAIC0xMjAsOSArMTE0LDYgQEAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dEdMPiBj
cmVhdGVXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0woY29uc3QgR3JhcGhpY3NDb250ZXgKICAg
ICBpZiAoYXR0cmlidXRlcy53ZWJHTFZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0R0xXZWJHTFZl
cnNpb246OldlYkdMMiAmJiAhZXBveHlfaXNfZGVza3RvcF9nbCgpICYmIGVwb3h5X2dsX3ZlcnNp
b24oKSA8IDMwKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgotCi0gICAgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuYWRkQ29udGV4dChjb250
ZXh0LmdldCgpKTsKLQogICAgIHJldHVybiBjb250ZXh0OwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0
dXJlTWFwcGVyQU5HTEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlckFOR0xFLmNwcAppbmRleCA1NjUxNTRh
ODY5Yzg4NTU2YTdjOTA4ZWZiODc5NjZiNmZiNTAzYzRkLi5hMmQ3MWQxZTk3NjhhYWVlNTFiZGUz
MWUyMTk2NDFmZDY2Y2IwYzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyQU5HTEUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0NvbnRl
eHRHTFRleHR1cmVNYXBwZXJBTkdMRS5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKIAogI2luY2x1ZGUg
IkFOR0xFSGVhZGVycy5oIgogI2luY2x1ZGUgIkFOR0xFVXRpbGl0aWVzLmgiCi0jaW5jbHVkZSAi
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgog
I2luY2x1ZGUgIlBpeGVsQnVmZmVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1MYXllckRpc3BsYXlE
ZWxlZ2F0ZS5oIgpAQCAtMzE4LDcgKzMxNyw2IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xBTkdM
RTo6RUdMSW1hZ2VCYWNraW5nOjpyZXNldChpbnQgd2lkdGgsIGludCBoZWlnaHQsIGJvb2wKIAog
R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6fkdyYXBoaWNzQ29udGV4dEdMQU5HTEUoKQogewotICAg
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlbW92ZUNv
bnRleHQodGhpcyk7CiAgICAgYm9vbCBzdWNjZXNzID0gbWFrZUNvbnRleHRDdXJyZW50KCk7CiAg
ICAgQVNTRVJUX1VOVVNFRChzdWNjZXNzLCBzdWNjZXNzKTsKICAgICBpZiAobV90ZXh0dXJlKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDc4NGUyNzlmNjZhNjI4YzVkODFhNjMwZDhlZmQwMjNhOTVjM2Q0MGQuLjhhOTlkZDMx
MzFhNjU5NzRjMWI1YjRhY2E1YWM0YjY5MjI1MDRhY2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAyMi0wMy0wMiAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFdlYkdMIGNvbnRleHQgY291bnQgaXMgbm90IGxpbWl0ZWQgZm9yIEdQVSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjI0MTEKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3Jt
L2lvcy13azIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMi0wMy0wMiAgU2lodWkgTGl1ICA8c2lo
dWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBUaHJvdyBwcm9wZXIgZXhjZXB0aW9uIG9uIGZh
aWxlZCByZW1vdmVFbnRyeSgpIGNhbGxzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2sy
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMGYxZTk3NGMzNThhYjViZjBkMDc0MzMzNjA2MDU5N2Y4
ZjRlYTFkMy4uMzM0MDNlZmE2Mjg5MzQ0ZjUzMmI5YjQ3ZjljYTUyNmMzNzM4MjgzMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjIyOCwx
MyArMjIyOCw3IEBAIGh0dHAvd3B0L2h0bWwvc2VtYW50aWNzL3RleHQtbGV2ZWwtc2VtYW50aWNz
L3RoZS1hLWVsZW1lbnQvYS1kb3dubG9hZC1jbGljay00MDQuCiAKICMgVGVzdCBmYWlsdXJlcyBm
cm9tIHR1cm5pbmcgR1BVIFByb2Nlc3Mgb24gYnkgZGVmYXVsdAogd2Via2l0Lm9yZy9iLzIzNDUz
NiB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZS9yZWFkaW5nL3JlYWQtcGl4ZWxzLXRlc3QuaHRtbAot
d2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC9tYW55LWNvbnRleHRzLWFjY2Vzcy1hZnRlci1sb3Nz
Lmh0bWwKLXdlYmtpdC5vcmcvYi8yMzQ1MzYgd2ViZ2wvbWFueS1jb250ZXh0cy5odG1sCi13ZWJr
aXQub3JnL2IvMjM0NTM2IHdlYmdsL21heC1hY3RpdmUtY29udGV4dHMtY29uc29sZS13YXJuaW5n
Lmh0bWwKLXdlYmtpdC5vcmcvYi8yMzQ1MzYgd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy1nYy5o
dG1sCi13ZWJraXQub3JnL2IvMjM0NTM2IHdlYmdsL21heC1hY3RpdmUtY29udGV4dHMtb2xkZXN0
LWNvbnRleHQtbG9zdC5odG1sCiB3ZWJraXQub3JnL2IvMjM0NTM2IHdlYnhyL2hpZ2gtcGVyZm9y
bWFuY2UuaHRtbAotd2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRz
LXdlYmdsY29udGV4dGxvc3QtcHJldmVudC1kZWZhdWx0Lmh0bWwgWyBUaW1lb3V0IF0KIHdlYmtp
dC5vcmcvYi8yMzQ1MzYgd2ViZ2wvMS4wLjMvY29uZm9ybWFuY2Uvc3RhdGUvZ2wtb2JqZWN0LWdl
dC1jYWxscy5odG1sIFsgVGltZW91dCBdCiAKICMgd2Via2l0Lm9yZy9iLzIzNzM0NiBSRUdSRVNT
SU9OKHIyOTA1MzkpOiBbIGlPUyBdIDJYIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1jcmVhdGUtZmFpbHVyZS1sb2NhbCAobGF5b3V0LXRlc3RzKSBhcmUgY29uc3RhbnQg
dGV4dCBmYWlsdXJlcwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453716</attachid>
            <date>2022-03-03 03:11:57 -0800</date>
            <delta_ts>2022-03-03 22:04:17 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-222411-20220303131156.patch</filename>
            <type>text/plain</type>
            <size>31195</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2QwYzkzMDU4Y2U2ZDAz
NDE5OTBmNjMyNTY5MzdmNzY3OGZjMWNkOC4uZjM1YmRkMDA4ZjA5NzExMDQ0N2M3MDhkZDVkNTA0
NTdjMzU1YmU3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIyLTAzLTAyICBLaW1t
byBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAgICAgICAgV2ViR0wgY29udGV4
dCBjb3VudCBpcyBub3QgbGltaXRlZCBmb3IgR1BVIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjQxMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IEtlbm5ldGggUnVzc2VsbC4KKworICAgICAgICBNb3ZlIHRoZSBjb250ZXh0IGxpbWl0IGZy
b20gdGhlIEdyYXBoaWNzQ29udGV4dEdMIGltcGxlbWVudGF0aW9uCisgICAgICAgIGxldmVsIHRv
IFdlYkdMUmVuZGVyaW5nQ29udGV4dCBsZXZlbC4gVGhpcyB3YXkgdGhlIGxpbWl0CisgICAgICAg
IGlzIGFwcGxpZWQgdG8gdGhlIEdQVVAgaW1wbGVtZW50YXRpb24gdG9vLgorCisgICAgICAgIFJl
Y3ljbGUgdGhlIGNvbnRleHQgd2l0aCB0aGUgZWFybGllc3QgYWN0aXZpdHkgKGRyYXcsIHJlYWRw
aXhlbHMpCisgICAgICAgIGluc3RlYWQgb2YgdGhlIGNyZWF0aW9uIG9yZGVyLgorCisgICAgICAg
IFN0b3JlcyB0aGUgV2ViR0wgY29udGV4dHMgdG8gcGVyLXRocmVhZCBzZXQgYW5kIGxpbWl0cyB0
aGUgc2l6ZSBvZiB0aGUgc2V0LgorICAgICAgICBUaGUgc2V0IGlzIHBlci10aHJlYWQgdG8gc3Vw
cG9ydCBXZWJHTCBjb250ZXh0cyBpbiBET00gYXMgd2VsbCBhcworICAgICAgICBvZmZzY3JlZW4g
Y2FudmFzIHVzZS1jYXNlcy4gT2Zmc2NyZWVuIGNhbnZhcyBpcyBub3QgaW1wbGVtZW50ZWQgZm9y
IENvY29hCisgICAgICAgIGJ1dCBvdGhlciBwb3J0cyBtYXkgZW5hYmxlIGl0LgorCisgICAgICAg
IFRlc3RlZCBieToKKyAgICAgICAgTGF5b3V0VGVzdHMvd2ViZ2wvbG9zZS1jb250ZXh0LWFmdGVy
LWNvbnRleHQtbG9zdC5odG1sCisgICAgICAgIExheW91dFRlc3RzL3dlYmdsL21hbnktY29udGV4
dHMtYWNjZXNzLWFmdGVyLWxvc3MuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy93ZWJnbC9tYW55
LWNvbnRleHRzLmh0bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvd2ViZ2wvbWF4LWFjdGl2ZS1jb250
ZXh0cy1jb25zb2xlLXdhcm5pbmcuaHRtbAorICAgICAgICBMYXlvdXRUZXN0cy93ZWJnbC9tYXgt
YWN0aXZlLWNvbnRleHRzLWdjLmh0bWwKKyAgICAgICAgTGF5b3V0VGVzdHMvd2ViZ2wvbWF4LWFj
dGl2ZS1jb250ZXh0cy1vbGRlc3QtY29udGV4dC1sb3N0Lmh0bWwKKyAgICAgICAgTGF5b3V0VGVz
dHMvd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy13ZWJnbGNvbnRleHRsb3N0LXByZXZlbnQtZGVm
YXVsdC5odG1sCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmFjdGl2ZUNvbnRleHRzKToKKyAgICAgICAgKFdlYkNvcmU6OmFkZEFjdGl2ZUNv
bnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6cmVtb3ZlQWN0aXZlQ29udGV4dCk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpXZWJHTFJlbmRlcmluZ0NvbnRl
eHRCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnNl
dEdyYXBoaWNzQ29udGV4dEdMKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6OmRlc3Ryb3lHcmFwaGljc0NvbnRleHRHTCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpjbGVhcklmQ29tcG9zaXRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjptYXliZVJlc3RvcmVDb250ZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnVwZGF0ZUFjdGl2
ZU9yZGluYWwpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmFjdGl2
ZU9yZGluYWwgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBo
aWNzQ29udGV4dEdMQU5HTEUuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHRHTEFOR0xFOjp+R3JhcGhpY3NDb250ZXh0R0xBTkdMRSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW06Cisg
ICAgICAgIChXZWJDb3JlOjpjcmVhdGVXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0wpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6fkdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmg6IFJl
bW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4
dEdMVGV4dHVyZU1hcHBlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVXZWJQcm9jZXNz
R3JhcGhpY3NDb250ZXh0R0wpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9H
cmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXJBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHRHTEFOR0xFOjp+R3JhcGhpY3NDb250ZXh0R0xBTkdMRSk6CisKIDIw
MjItMDMtMDIgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBUcmVhdCBl
bXB0eSBpbnRlcnNlY3Rpb24gY29ycmVjdGx5IGluIFJlbmRlckxheWVyOjpnZXRSZWN0VG9FeHBv
c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2Vi
Q29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDNjYjRhNDlkOTg1MTZjOWNiZDUxZGVkY2ZhYzM2YWYy
ZGZkNWQxNTEuLjBhNWFlYWJkY2E4MmU5OGZjZmQ5NDVhNDNlMWIyNjU4ZjEzNDUxYTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQpAQCAtMTY1Nyw3ICsxNjU3LDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9G
UkFNRVdPUktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25z
R0xPcGVuR0xDb21tb24uaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25z
R0xPcGVuR0xFUy5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4
dEdMT3BlbkdMLmgKLSAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0xNYW5hZ2VyLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGVtcG9yYXJ5
T3BlbkdMU2V0dGluZy5oCiAKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlw
ZU1hdGhEYXRhLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYTFkNmI2ZmM2M2FkMjkxZjA3MjhkNTE4OTdl
OGI5YzE3OTdjYjMwMS4uM2EzNWUyNjA1ZTAzZTYyOTc5YjIyOWQ4MjZmZTZlNzNiZTI5NDJkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKQEAgLTIxNjEsNyArMjE2MSw2IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2lz
by9JU09TY2hlbWVJbmZvcm1hdGlvbkJveC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09T
Y2hlbWVUeXBlQm94LmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvaXNvL0lTT1RyYWNrRW5jcnlwdGlv
bkJveC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09WVFRDdWUuY3BwCi1wbGF0Zm9ybS9n
cmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmNwcAogcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVNYXRoRGF0YS5jcHAKIHBsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvQWZmaW5lVHJhbnNmb3JtLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvdHJh
bnNmb3Jtcy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlYTU3NjVlZjY4ZDMz
ODFkODcwNjQ1ZmYzZTdmYjc1ZmJjZDQ0ZGUzLi5lYWY0ZWQwZTQ3NWExY2QzNjdhY2I3OWNiZDYx
ZjhlZGM1Y2E0ZGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC05NzcsNyArOTc3LDYgQEAKIAkJMzE4RUFENEQxRkE5MTM4MDAw
OENFRjg2IC8qIEltYWdlQml0bWFwUmVuZGVyaW5nQ29udGV4dFNldHRpbmdzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMThFQUQ0QTFGQTkxMTU3MDA4
Q0VGODYgLyogSW1hZ2VCaXRtYXBSZW5kZXJpbmdDb250ZXh0U2V0dGluZ3MuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTk4NDgwMTFBMUQ4MTdC
MDBBMTMzMTggLyogQW5pbWF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDMxOTg0N0ZGMUExRDgxNjcwMEExMzMxOCAvKiBBbmltYXRpb25F
dmVudC5oICovOyB9OwogCQkzMTk4NDgwQzFBMUU2Q0U4MDBBMTMzMTggLyogSlNBbmltYXRpb25F
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5
ODQ4MDQxQTFFNkI1RDAwQTEzMzE4IC8qIEpTQW5pbWF0aW9uRXZlbnQuaCAqLzsgfTsKLQkJMzE5
QTcyODgyM0MyNjdGRTAwODUzNTNDIC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE5QTcyODcy
M0MyNjdFNzAwODUzNTNDIC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMxOUFFMDY0MTQy
RDZCMjQwMDY1NjNBMSAvKiBTdHlsZUZpbHRlckRhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOUFFMDYyMTQyRDZCMjQwMDY1NjNBMSAvKiBTdHls
ZUZpbHRlckRhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkzMTlGQkQ1RjE1RDJGNDY0MDA5NjQwQTYgLyogQ2FjaGVkSW1hZ2VDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxOUZCRDVEMTVE
MkY0NDQwMDk2NDBBNiAvKiBDYWNoZWRJbWFnZUNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTMxQTA4OTU2MUU3MzhENTkwMDNCNjYwOSAv
KiBKU1dlYkdQVUJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzFBMDg5MUQxRTczOEQ1OTAwM0I2NjA5IC8qIEpTV2ViR1BVQnVmZmVyLmggKi87
IH07CkBAIC04MzgwLDcgKzgzNzksNiBAQAogCQkzMTk4NDgwMDFBMUQ4MTY3MDBBMTMzMTggLyog
QW5pbWF0aW9uRXZlbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEFuaW1hdGlvbkV2ZW50
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE5ODQ4MDMxQTFFNkI1RDAwQTEz
MzE4IC8qIEpTQW5pbWF0aW9uRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNBbmltYXRpb25FdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTMxOTg0ODA0MUExRTZCNUQwMEExMzMxOCAvKiBKU0FuaW1hdGlvbkV2ZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQW5pbWF0aW9uRXZlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMzE5QTcyODcyM0MyNjdFNzAwODUzNTNDIC8qIEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzE5QUUwNjExNDJENkIyNDAwNjU2M0ExIC8qIFN0eWxlRmlsdGVyRGF0YS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZUZpbHRlckRhdGEuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTlBRTA2MjE0MkQ2QjI0MDA2NTYzQTEg
LyogU3R5bGVGaWx0ZXJEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
eWxlRmlsdGVyRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTlCREU0RjFF
N0E4NThBMDBCQTI5NkMgLyogSlNSVENJY2VUcmFuc3BvcnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNSVENJY2VUcmFuc3BvcnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTY0OTQsNyArMTY0OTIsNiBAQAogCQlEMDZDMEQ4RTBDRkQxMTQ2
MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZW1vdmVGb3JtYXRDb21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRDA3REVBQjcwQTM2NTU0QTAwQ0EzMEY4IC8qIEluc2VydExpc3RDb21t
YW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNlcnRMaXN0
Q29tbWFuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwN0RFQUI4MEEzNjU1
NEEwMENBMzBGOCAvKiBJbnNlcnRMaXN0Q29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSW5zZXJ0TGlzdENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJRDA4NDNBNEMyMEZFQzE2NTAwRkU4NjBFIC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdM
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1h
bmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDg2RkU5NjA5RDUzQUFC
MDA1QkM3NEQgLyogVW5saW5rQ29tbWFuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBVbmxpbmtDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUQwODZG
RTk3MDlENTNBQUIwMDVCQzc0RCAvKiBVbmxpbmtDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVubGlua0NvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlEMEEyMEQ1NDIwOTJBMEE2MDBFMEMyNTkgLyogV2ViR0xDb21wcmVzc2Vk
VGV4dHVyZUFTVEMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViR0xDb21w
cmVzc2VkVGV4dHVyZUFTVEMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTMyOTI1
LDggKzMyOTIyLDYgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTZFMjFDNkJGMTEyNjMzODUwMEE3
QkUwMiAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAgKi8sCiAJCQkJNDlDN0I5RkIxMDQy
RDM2NTAwMDlENDQ3IC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmggKi8sCi0JCQkJRDA4NDNB
NEMyMEZFQzE2NTAwRkU4NjBFIC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5jcHAg
Ki8sCi0JCQkJMzE5QTcyODcyM0MyNjdFNzAwODUzNTNDIC8qIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMTWFuYWdlci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBvcGVuZ2w7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtMzQ3ODEsNyArMzQ3NzYsNiBAQAogCQkJCTdCQjM0QTQ4MjUzNzc2
Q0EwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QjZEQzgxOTI1NzEyRTkyMDAzODBDNzAgLyogR3JhcGhpY3NDb250ZXh0R0xJ
T1N1cmZhY2VTd2FwQ2hhaW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QzdCOUZDMTA0MkQzNjUw
MDA5RDQ0NyAvKiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
MzE5QTcyODgyM0MyNjdGRTAwODUzNTNDIC8qIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0I5NUNGRUIyNzU0RkY2RTAwMDA2MENFIC8qIEdyYXBo
aWNzQ29udGV4dEdMU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEQ2NzA4MEU5RTlERUIw
MEU0MjBGMCAvKiBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDRy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY1ODBCMEQwRjEyQTI2OTAwNTFENjg5IC8qIEdyYXBoaWNzTGF5ZXIuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmluZ0NvbnRleHRCYXNlLmNwcAppbmRleCAyZGRhYzNmZjBhMDJlYzM5NGRjMzI1MjAy
MzI0YzRkOGUyNzFjM2Q3Li5hYjgxMjA3YTAzMjdmYzAzNzIxYTJlMGZkZmVlMjI1ZWJmNDI0ZjY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHRCYXNlLmNwcApAQCAtMTI0LDggKzEyNCwxMSBAQAogI2luY2x1ZGUgPHd0Zi9J
c29NYWxsb2NJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYv
TG9ja2VyLmg+CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3Rk
TGliRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNwZWNpZmljLmg+CiAjaW5jbHVkZSA8
d3RmL1VuaXF1ZUFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KQEAgLTE1MSw5ICsxNTQsMTEgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZSk7CiAKLXN0YXRpYyBjb25zdCBTZWNvbmRzIHNlY29uZHNCZXR3ZWVuUmVz
dG9yZUF0dGVtcHRzIHsgMV9zIH07Ci1jb25zdCBpbnQgbWF4R0xFcnJvcnNBbGxvd2VkVG9Db25z
b2xlID0gMjU2Owotc3RhdGljIGNvbnN0IFNlY29uZHMgY2hlY2tDb250ZXh0TG9zc0hhbmRsaW5n
RGVsYXkgeyAzX3MgfTsKK3N0YXRpYyBjb25zdGV4cHIgU2Vjb25kcyBzZWNvbmRzQmV0d2VlblJl
c3RvcmVBdHRlbXB0cyB7IDFfcyB9Oworc3RhdGljIGNvbnN0ZXhwciBpbnQgbWF4R0xFcnJvcnNB
bGxvd2VkVG9Db25zb2xlID0gMjU2Oworc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIGNoZWNrQ29u
dGV4dExvc3NIYW5kbGluZ0RlbGF5IHsgM19zIH07CitzdGF0aWMgY29uc3RleHByIHNpemVfdCBt
YXhBY3RpdmVDb250ZXh0cyA9IDE2Oworc3RhdGljIGNvbnN0ZXhwciBzaXplX3QgbWF4QWN0aXZl
V29ya2VyQ29udGV4dHMgPSA0OwogCiBuYW1lc3BhY2UgewogICAgIApAQCAtNzg0LDYgKzc4OSw0
NiBAQCBzdGF0aWMgYm9vbCBpc0hpZ2hQZXJmb3JtYW5jZUNvbnRleHQoY29uc3QgUmVmUHRyPEdy
YXBoaWNzQ29udGV4dEdMPiYgY29udGV4dCkKICAgICByZXR1cm4gY29udGV4dC0+Y29udGV4dEF0
dHJpYnV0ZXMoKS5wb3dlclByZWZlcmVuY2UgPT0gV2ViR0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQ
ZXJmb3JtYW5jZTsKIH0KIAorLy8gQ291bnRlciBmb3IgZGV0ZXJtaW5pbmcgd2hpY2ggY29udGV4
dCBoYXMgdGhlIGVhcmxpZXN0IGFjdGl2ZSBvcmRpbmFsIG51bWJlci4KK3N0YXRpYyBzdGQ6OmF0
b21pYzx1aW50NjRfdD4gc19sYXN0QWN0aXZlT3JkaW5hbDsKKwordXNpbmcgV2ViR0xSZW5kZXJp
bmdDb250ZXh0QmFzZVNldCA9IEhhc2hTZXQ8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZSo+Owor
CitzdGF0aWMgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZVNldCYgYWN0aXZlQ29udGV4dHMoKQor
eworICAgIHN0YXRpYyBMYXp5TmV2ZXJEZXN0cm95ZWQ8VGhyZWFkU3BlY2lmaWM8V2ViR0xSZW5k
ZXJpbmdDb250ZXh0QmFzZVNldD4+IHNfYWN0aXZlQ29udGV4dHM7CisgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIHNfb25jZUZsYWc7CisgICAgc3RkOjpjYWxsX29uY2Uoc19vbmNlRmxhZywgW10g
eworICAgICAgICBzX2FjdGl2ZUNvbnRleHRzLmNvbnN0cnVjdCgpOworICAgIH0pOworICAgIHJl
dHVybiAqc19hY3RpdmVDb250ZXh0cy5nZXQoKTsKK30KKworc3RhdGljIHZvaWQgYWRkQWN0aXZl
Q29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlJiBuZXdDb250ZXh0KQoreworICAgIGF1
dG8mIGNvbnRleHRzID0gYWN0aXZlQ29udGV4dHMoKTsKKyAgICBhdXRvIG1heENvbnRleHRzU2l6
ZSA9IGlzTWFpblRocmVhZCgpID8gbWF4QWN0aXZlQ29udGV4dHMgOiBtYXhBY3RpdmVXb3JrZXJD
b250ZXh0czsKKyAgICBpZiAoY29udGV4dHMuc2l6ZSgpID49IG1heENvbnRleHRzU2l6ZSkgewor
ICAgICAgICBhdXRvIGl0ID0gY29udGV4dHMuYmVnaW4oKTsKKyAgICAgICAgYXV0byogZWFybGll
c3QgPSAqaXQ7CisgICAgICAgIGZvciAoKytpdDsgaXQgIT0gY29udGV4dHMuZW5kKCk7ICsraXQp
IHsKKyAgICAgICAgICAgIGlmIChlYXJsaWVzdC0+YWN0aXZlT3JkaW5hbCgpID4gKCppdCktPmFj
dGl2ZU9yZGluYWwoKSkKKyAgICAgICAgICAgICAgICBlYXJsaWVzdCA9ICppdDsKKyAgICAgICAg
fQorICAgICAgICBlYXJsaWVzdC0+cmVjeWNsZUNvbnRleHQoKTsKKyAgICAgICAgQVNTRVJUKGVh
cmxpZXN0ICE9ICZuZXdDb250ZXh0KTsgLy8gVGhpcyBhc3NlcnQgaXMgaGVyZSBzbyB3ZSBjYW4g
YXNzZXJ0IGlzTmV3RW50cnkgYmVsb3cgaW5zdGVhZCBvZiB0b3AtbGV2ZWwgYCFjb250ZXh0cy5j
b250YWlucyhuZXdDb250ZXh0KTtgLgorICAgICAgICBBU1NFUlQoY29udGV4dHMuc2l6ZSgpIDwg
bWF4Q29udGV4dHNTaXplKTsKKyAgICB9CisgICAgYXV0byByZXN1bHQgPSBjb250ZXh0cy5hZGQo
Jm5ld0NvbnRleHQpOworICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQuaXNOZXdFbnRy
eSk7Cit9CisKK3N0YXRpYyB2b2lkIHJlbW92ZUFjdGl2ZUNvbnRleHQoV2ViR0xSZW5kZXJpbmdD
b250ZXh0QmFzZSYgY29udGV4dCkKK3sKKyAgICBib29sIGRpZENvbnRhaW4gPSBhY3RpdmVDb250
ZXh0cygpLnJlbW92ZSgmY29udGV4dCk7CisgICAgQVNTRVJUX1VOVVNFRChkaWRDb250YWluLCBk
aWRDb250YWluKTsKK30KKwogc3RkOjp1bmlxdWVfcHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U+IFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNyZWF0ZShDYW52YXNCYXNlJiBjYW52YXMs
IFdlYkdMQ29udGV4dEF0dHJpYnV0ZXMmIGF0dHJpYnV0ZXMsIFdlYkdMVmVyc2lvbiB0eXBlKQog
ewogICAgIGF1dG8gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCA9IGNhbnZhcy5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCk7CkBAIC05MTUsNyArOTYwLDYgQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFz
ZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShDYW52YXNCYXNlJiBjYW52YXMsIFdlYkdMQ28K
IAogV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZShD
YW52YXNCYXNlJiBjYW52YXMsIFJlZjxHcmFwaGljc0NvbnRleHRHTD4mJiBjb250ZXh0LCBXZWJH
TENvbnRleHRBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMpCiAgICAgOiBHUFVCYXNlZENhbnZhc1JlbmRl
cmluZ0NvbnRleHQoY2FudmFzKQotICAgICwgbV9jb250ZXh0KFdURk1vdmUoY29udGV4dCkpCiAg
ICAgLCBtX3Jlc3RvcmVUaW1lcihjYW52YXMuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhp
cywgJldlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6Om1heWJlUmVzdG9yZUNvbnRleHQpCiAgICAg
LCBtX2dlbmVyYXRlZEltYWdlQ2FjaGUoNCkKICAgICAsIG1fYXR0cmlidXRlcyhhdHRyaWJ1dGVz
KQpAQCAtOTI1LDYgKzk2OSw4IEBAIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OldlYkdMUmVu
ZGVyaW5nQ29udGV4dEJhc2UoQ2FudmFzQmFzZSYgY2FudmFzLCBSZWY8R3JhCiAgICAgLCBtX2lz
WFJDb21wYXRpYmxlKGF0dHJpYnV0ZXMueHJDb21wYXRpYmxlKQogI2VuZGlmCiB7CisgICAgc2V0
R3JhcGhpY3NDb250ZXh0R0woV1RGTW92ZShjb250ZXh0KSk7CisKICAgICBtX3Jlc3RvcmVUaW1l
ci5zdXNwZW5kSWZOZWVkZWQoKTsKIAogICAgIG1fY29udGV4dEdyb3VwID0gV2ViR0xDb250ZXh0
R3JvdXA6OmNyZWF0ZSgpOwpAQCAtMTIwMiw2ICsxMjQ4LDE1IEBAIFdlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2U6On5XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlKCkKICAgICB9CiB9CiAKK3ZvaWQg
V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6c2V0R3JhcGhpY3NDb250ZXh0R0woUmVmPEdyYXBo
aWNzQ29udGV4dEdMPiYmIGNvbnRleHQpCit7CisgICAgYm9vbCB3YXNBY3RpdmUgPSBtX2NvbnRl
eHQ7CisgICAgbV9jb250ZXh0ID0gV1RGTW92ZShjb250ZXh0KTsKKyAgICB1cGRhdGVBY3RpdmVP
cmRpbmFsKCk7CisgICAgaWYgKCF3YXNBY3RpdmUpCisgICAgICAgIGFkZEFjdGl2ZUNvbnRleHQo
KnRoaXMpOworfQorCiB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmRlc3Ryb3lHcmFw
aGljc0NvbnRleHRHTCgpCiB7CiAgICAgaWYgKG1faXNQZW5kaW5nUG9saWN5UmVzb2x1dGlvbikK
QEAgLTEyMTIsNiArMTI2Nyw3IEBAIHZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6ZGVz
dHJveUdyYXBoaWNzQ29udGV4dEdMKCkKICAgICBpZiAobV9jb250ZXh0KSB7CiAgICAgICAgIG1f
Y29udGV4dC0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKICAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0
cjsKKyAgICAgICAgcmVtb3ZlQWN0aXZlQ29udGV4dCgqdGhpcyk7CiAgICAgfQogfQogCkBAIC0x
MjYzLDYgKzEzMTksOSBAQCBib29sIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OmNsZWFySWZD
b21wb3NpdGVkKFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OkNsZQogICAgIGlmIChpc0NvbnRl
eHRMb3N0T3JQZW5kaW5nKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIC8vIGBjbGVh
cklmQ29tcG9zaXRlZCgpYCBpcyBhIGZ1bmN0aW9uIHRoYXQgcHJlcGFyZXMgZm9yIHVwZGF0ZXMu
IE1hcmsgdGhlIGNvbnRleHQgYXMgYWN0aXZlLgorICAgIHVwZGF0ZUFjdGl2ZU9yZGluYWwoKTsK
KwogICAgIGlmICghbV9jb250ZXh0LT5sYXllckNvbXBvc2l0ZWQoKSB8fCBtX2xheWVyQ2xlYXJl
ZCB8fCBtX3ByZXZlbnRCdWZmZXJDbGVhckZvckluc3BlY3RvcikKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCkBAIC03NzYyLDcgKzc4MjEsNyBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2U6Om1heWJlUmVzdG9yZUNvbnRleHQoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
bV9jb250ZXh0ID0gY29udGV4dDsKKyAgICBzZXRHcmFwaGljc0NvbnRleHRHTChjb250ZXh0LnJl
bGVhc2VOb25OdWxsKCkpOwogICAgIGFkZEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlcklmTmVj
ZXNzYXJ5KCk7CiAgICAgbV9jb250ZXh0TG9zdCA9IGZhbHNlOwogICAgIHNldHVwRmxhZ3MoKTsK
QEAgLTgxODMsNiArODI0MiwxMSBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U6OnBy
ZXBhcmVGb3JEaXNwbGF5KCkKICAgICBtX2NvbnRleHQtPnByZXBhcmVGb3JEaXNwbGF5KCk7CiB9
CiAKK3ZvaWQgV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZTo6dXBkYXRlQWN0aXZlT3JkaW5hbCgp
Cit7CisgICAgbV9hY3RpdmVPcmRpbmFsID0gc19sYXN0QWN0aXZlT3JkaW5hbCsrOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCR0wpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNl
LmgKaW5kZXggYjU0NTdlNzEzN2Y4NDI2ZGMwMzEwNGI0YzRlNmEzZmIyMjI0YzNiYy4uYTgxNjcz
OGQ4YWQ1MWVkYmVkNzk2NTgzOWQ1MDljZjM4YWJkM2M4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UuaApAQCAtNDMy
LDYgKzQzMiw4IEBAIHB1YmxpYzoKICAgICAvLyBwcm9oaWJpdGl2ZWx5IGV4cGVuc2l2ZS4KICAg
ICBMb2NrJiBvYmplY3RHcmFwaExvY2soKSBXVEZfUkVUVVJOU19MT0NLKG1fb2JqZWN0R3JhcGhM
b2NrKTsKIAorICAgIC8vIFJldHVybnMgdGhlIG9yZGluYWwgbnVtYmVyIG9mIHdoZW4gdGhlIGNv
bnRleHQgd2FzIGxhc3QgYWN0aXZlIChkcmV3LCByZWFkIHBpeGVscykuCisgICAgdWludDY0X3Qg
YWN0aXZlT3JkaW5hbCgpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlT3JkaW5hbDsgfQogcHJvdGVj
dGVkOgogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoQ2FudmFzQmFzZSYsIFdlYkdMQ29u
dGV4dEF0dHJpYnV0ZXMpOwogICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2UoQ2FudmFzQmFz
ZSYsIFJlZjxHcmFwaGljc0NvbnRleHRHTD4mJiwgV2ViR0xDb250ZXh0QXR0cmlidXRlcyk7CkBA
IC00NzMsNiArNDc1LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgYWRkQ29udGV4dE9iamVjdChX
ZWJHTENvbnRleHRPYmplY3QmKTsKICAgICB2b2lkIGRldGFjaEFuZFJlbW92ZUFsbE9iamVjdHMo
KTsKIAorICAgIHZvaWQgc2V0R3JhcGhpY3NDb250ZXh0R0woUmVmPEdyYXBoaWNzQ29udGV4dEdM
PiYmKTsKICAgICB2b2lkIGRlc3Ryb3lHcmFwaGljc0NvbnRleHRHTCgpOwogICAgIHZvaWQgbWFy
a0NvbnRleHRDaGFuZ2VkKCk7CiAgICAgdm9pZCBtYXJrQ29udGV4dENoYW5nZWRBbmROb3RpZnlD
YW52YXNPYnNlcnZlcigpOwpAQCAtNTQyLDYgKzU0NSw3IEBAIHByb3RlY3RlZDoKICAgICBib29s
IGNvbXBvc2l0aW5nUmVzdWx0c05lZWRVcGRhdGluZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1f
Y29tcG9zaXRpbmdSZXN1bHRzTmVlZFVwZGF0aW5nOyB9CiAgICAgYm9vbCBuZWVkc1ByZXBhcmF0
aW9uRm9yRGlzcGxheSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIHBy
ZXBhcmVGb3JEaXNwbGF5KCkgZmluYWw7CisgICAgdm9pZCB1cGRhdGVBY3RpdmVPcmRpbmFsKCk7
CiAKICAgICBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0w+IG1fY29udGV4dDsKICAgICBSZWZQdHI8
V2ViR0xDb250ZXh0R3JvdXA+IG1fY29udGV4dEdyb3VwOwpAQCAtMTE0Miw2ICsxMTQ2LDggQEAg
cHJpdmF0ZToKICNpZiBFTkFCTEUoV0VCWFIpCiAgICAgYm9vbCBtX2lzWFJDb21wYXRpYmxlIHsg
ZmFsc2UgfTsKICNlbmRpZgorICAgIC8vIFRoZSBvcmRpbmFsIG51bWJlciBvZiB3aGVuIHRoZSBj
b250ZXh0IHdhcyBsYXN0IGFjdGl2ZSAoZHJldywgcmVhZCBwaXhlbHMpLgorICAgIHVpbnQ2NF90
IG1fYWN0aXZlT3JkaW5hbCB7IDAgfTsKIH07CiAKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3ND
b250ZXh0R0xBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmds
ZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAppbmRleCAwYzM5NDk3NWYyZTYwZWM3Y2ZkYTM4
NGIxMzgyNmQwNTFmODMxZGI2Li44NzIxMjU0MWM2MDY4YzBhY2UyYzI5MDU3Nzk4MjMyMTMxMWVl
ZDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9H
cmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcApAQCAtMzEsNyArMzEsNiBA
QAogCiAjaW5jbHVkZSAiQU5HTEVIZWFkZXJzLmgiCiAjaW5jbHVkZSAiQU5HTEVVdGlsaXRpZXMu
aCIKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKICNpbmNsdWRl
ICJJbWFnZUJ1ZmZlci5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJJbnRTaXpl
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9H
cmFwaGljc0NvbnRleHRHTENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQppbmRleCA1N2FkNTdkMDdiMGI3NWZl
MzlmOThhYzgxMWIwOTZlMmExZGI1MjQ0Li43YmZlODVkNWYwNjUxN2QzOTQ3MWQzM2Y3YjlmN2E4
MDAxZGE5NGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9HcmFwaGljc0NvbnRleHRHTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0KQEAgLTMzLDcgKzMz
LDYgQEAKICNpbXBvcnQgIkFOR0xFVXRpbGl0aWVzQ29jb2EuaCIKICNpbXBvcnQgIkNWVXRpbGl0
aWVzLmgiCiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oIgot
I2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgiCiAjaW1wb3J0ICJMb2dn
aW5nLmgiCiAjaW1wb3J0ICJQaXhlbEJ1ZmZlci5oIgogI2ltcG9ydCAiUHJvY2Vzc0lkZW50aXR5
LmgiCkBAIC00MjgsNyArNDI3LDYgQEAgYm9vbCBHcmFwaGljc0NvbnRleHRHTENvY29hOjpwbGF0
Zm9ybUluaXRpYWxpemUoKQogCiBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjp+R3JhcGhpY3NDb250
ZXh0R0xBTkdMRSgpCiB7Ci0gICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFy
ZWRNYW5hZ2VyKCkucmVtb3ZlQ29udGV4dCh0aGlzKTsKICAgICBpZiAobWFrZUNvbnRleHRDdXJy
ZW50KCkpIHsKICAgICAgICAgaWYgKG1fdGV4dHVyZSkKICAgICAgICAgICAgIEdMX0RlbGV0ZVRl
eHR1cmVzKDEsICZtX3RleHR1cmUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMQ29jb2EubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3ND
b250ZXh0R0xDb2NvYS5tbQppbmRleCAwYmIxMDY1YjNhNjE2NjliOTg1MDE4NTMwNDVhNzBiNmZh
YTFiNTA4Li5iOTlhYjZlMmI2Mzk4Yzg5YWNmNDQ0OTg4ZmQ3MWEwNDdhNmRmZTg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9XZWJQcm9jZXNzR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9XZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5tbQpAQCAtMjgsNyAr
MjgsNiBAQAogCiAjaWYgRU5BQkxFKFdFQkdMKQogI2ltcG9ydCAiR3JhcGhpY3NDb250ZXh0R0xD
b2NvYS5oIiAvLyBOT0xJTlQKLSNpbXBvcnQgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdl
ci5oIgogI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVyLmgiCiAjaW1wb3J0ICJQcm9jZXNzSWRlbnRp
dHkuaCIKIApAQCAtMTQ2LDE0ICsxNDUsOSBAQCB2b2lkIFdlYlByb2Nlc3NHcmFwaGljc0NvbnRl
eHRHTENvY29hOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKIAogUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dEdMPiBjcmVhdGVXZWJQcm9jZXNzR3JhcGhpY3NDb250ZXh0R0woY29uc3QgR3JhcGhpY3ND
b250ZXh0R0xBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzKQogewotICAgIC8vIE1ha2Ugc3BhY2UgZm9y
IHRoZSBpbmNvbWluZyBjb250ZXh0IGlmIHdlJ3JlIGZ1bGwuCi0gICAgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkucmVjeWNsZUNvbnRleHRJZk5lY2Vzc2Fy
eSgpOwotICAgIGlmIChHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFn
ZXIoKS5oYXNUb29NYW55Q29udGV4dHMoKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAg
YXV0byBjb250ZXh0ID0gYWRvcHRSZWYobmV3IFdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTENv
Y29hKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyB7IGF0dHJpYnV0ZXMgfSkpOwogICAgIGlm
ICghY29udGV4dC0+aW5pdGlhbGl6ZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5hZGRDb250ZXh0
KGNvbnRleHQuZ2V0KCkpOwogICAgIHJldHVybiBjb250ZXh0OwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dEdMT3BlbkdMLmNwcAppbmRleCA0ZTQyNzE5YTVkOWYwNzgxOWE1Nzk1NmQxMDJi
ODJkZTA2YmVmYmFkLi5iNWJhYzdkOGZlNDNjNDgwODU2NmFiOWNjZjdmNzQ0MjQwNzY0NmE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5jcHAKQEAgLTM0LDcgKzM0LDYgQEAK
ICNpbmNsdWRlICJBTkdMRVdlYktpdEJyaWRnZS5oIgogI2luY2x1ZGUgIkdMQ29udGV4dC5oIgog
I2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMTWFuYWdlci5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiSW50
UmVjdC5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKQEAgLTI1MSw3ICsyNTAsNiBAQCBHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0
R0xBdHRyaWJ1dGVzIGF0dAogCiBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6fkdyYXBoaWNzQ29u
dGV4dEdMT3BlbkdMKCkKIHsKLSAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNo
YXJlZE1hbmFnZXIoKS5yZW1vdmVDb250ZXh0KHRoaXMpOwogICAgIGJvb2wgc3VjY2VzcyA9IG1h
a2VDb250ZXh0Q3VycmVudCgpOwogICAgIEFTU0VSVF9VTlVTRUQoc3VjY2Vzcywgc3VjY2Vzcyk7
CiAgICAgaWYgKG1fdGV4dHVyZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMTWFuYWdlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyZDRiM2FmZjI5
MWQ4MjAxMDc3NGQ3ZTZkNGY0ODk3MDcyNGMyZjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw3MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5B
QkxFKFdFQkdMKQotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgot
Ci0jaW5jbHVkZSAiTG9nZ2luZy5oIgotCi0jaWYgVVNFKEFOR0xFKQotI2luY2x1ZGUgIkdyYXBo
aWNzQ29udGV4dEdMQU5HTEUuaCIKLSNlbHNlCi0jaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wuaCIKLSNlbmRpZgotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1HcmFwaGljc0NvbnRleHRH
TE9wZW5HTE1hbmFnZXImIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFu
YWdlcigpCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMTWFuYWdlcj4gc19tYW5hZ2VyOwotICAgIHJldHVybiBzX21hbmFnZXI7Ci19Ci0KLXZvaWQg
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjphZGRDb250ZXh0KEdyYXBoaWNzQ29udGV4
dEdMVHlwZSogY29udGV4dCkKLXsKLSAgICBBU1NFUlQoY29udGV4dCk7Ci0gICAgaWYgKCFjb250
ZXh0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBBU1NFUlQoIW1fY29udGV4dHMuY29udGFpbnMo
Y29udGV4dCkpOwotICAgIG1fY29udGV4dHMuYXBwZW5kKGNvbnRleHQpOwotfQotCi12b2lkIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6cmVtb3ZlQ29udGV4dChHcmFwaGljc0NvbnRl
eHRHTFR5cGUqIGNvbnRleHQpCi17Ci0gICAgaWYgKCFtX2NvbnRleHRzLmNvbnRhaW5zKGNvbnRl
eHQpKQotICAgICAgICByZXR1cm47Ci0gICAgbV9jb250ZXh0cy5yZW1vdmVGaXJzdChjb250ZXh0
KTsKLX0KLQotdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnJlY3ljbGVDb250
ZXh0SWZOZWNlc3NhcnkoKQotewotICAgIGlmIChoYXNUb29NYW55Q29udGV4dHMoKSkgewotICAg
ICAgICBMT0coV2ViR0wsICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIgcmVjeWNsZWQg
Y29udGV4dCAoJXApLiIsIG1fY29udGV4dHNbMF0pOwotICAgICAgICBtX2NvbnRleHRzWzBdLT5y
ZWN5Y2xlQ29udGV4dCgpOwotICAgIH0KLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0j
ZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMTWFuYWdlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMDc5MDljODFiOTRl
NmRmM2RiNGEyZjE0Y2I3ODRjYTMzMTIzMjZmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDY0
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0K
LWNvbnN0IHVuc2lnbmVkIE1heENvbnRleHRzID0gMTY7Ci0KLSNpZiBVU0UoQU5HTEUpCi1jbGFz
cyBHcmFwaGljc0NvbnRleHRHTEFOR0xFOwotI2Vsc2UKLWNsYXNzIEdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMOwotI2VuZGlmCi0KLWNsYXNzIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlciB7
Ci0gICAgZnJpZW5kIE5ldmVyRGVzdHJveWVkPEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdl
cj47Ci1wdWJsaWM6Ci0jaWYgVVNFKEFOR0xFKQotICAgIHVzaW5nIEdyYXBoaWNzQ29udGV4dEdM
VHlwZSA9IEdyYXBoaWNzQ29udGV4dEdMQU5HTEU7Ci0jZWxzZQotICAgIHVzaW5nIEdyYXBoaWNz
Q29udGV4dEdMVHlwZSA9IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOwotI2VuZGlmCi0KLSAgICBz
dGF0aWMgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyJiBzaGFyZWRNYW5hZ2VyKCk7Ci0g
ICAgCi0gICAgdm9pZCBhZGRDb250ZXh0KEdyYXBoaWNzQ29udGV4dEdMVHlwZSopOwotICAgIHZv
aWQgcmVtb3ZlQ29udGV4dChHcmFwaGljc0NvbnRleHRHTFR5cGUqKTsKLSAgICAKLSAgICB2b2lk
IHJlY3ljbGVDb250ZXh0SWZOZWNlc3NhcnkoKTsKLSAgICBib29sIGhhc1Rvb01hbnlDb250ZXh0
cygpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dHMuc2l6ZSgpID49IE1heENvbnRleHRzOyB9Ci0g
ICAgCi1wcml2YXRlOgotICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcigpID0gZGVm
YXVsdDsKLQotICAgIFZlY3RvcjxHcmFwaGljc0NvbnRleHRHTFR5cGUqPiBtX2NvbnRleHRzOwot
fTsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNw
cAppbmRleCA5MmZmNTIwNmIyNWYwNTFkMDM1ODYyNWM5M2JiNDkxYTQ5NmViOWY1Li4yYzU3MDJk
MDc2Y2U5M2JmMzg2ODJkNjJhZmJlYmI0N2YyODFhOGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250ZXh0R0xUZXh0dXJlTWFw
cGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NDb250ZXh0R0xUZXh0dXJlTWFwcGVyLmNwcApAQCAtMzEsNyArMzEsNiBAQAogCiAjaWYg
RU5BQkxFKFdFQkdMKSAmJiBVU0UoVEVYVFVSRV9NQVBQRVIpCiAKLSNpbmNsdWRlICJHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaCIKICNpbmNsdWRlICJQaXhlbEJ1ZmZlci5oIgogI2lu
Y2x1ZGUgIlRleHR1cmVNYXBwZXJHQ0dMUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgPHd0Zi9E
ZXF1ZS5oPgpAQCAtMTA2LDExICsxMDUsNiBAQCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0w+IGNy
ZWF0ZVdlYlByb2Nlc3NHcmFwaGljc0NvbnRleHRHTChjb25zdCBHcmFwaGljc0NvbnRleAogICAg
IGlmICghc3VjY2VzcykKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAvLyBNYWtlIHNw
YWNlIGZvciB0aGUgaW5jb21pbmcgY29udGV4dCBpZiB3ZSdyZSBmdWxsLgotICAgIEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnJlY3ljbGVDb250ZXh0SWZO
ZWNlc3NhcnkoKTsKLSAgICBpZiAoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFy
ZWRNYW5hZ2VyKCkuaGFzVG9vTWFueUNvbnRleHRzKCkpCi0gICAgICAgIHJldHVybiBudWxscHRy
OwotCiAgICAgLy8gQ3JlYXRlIHRoZSBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCBvYmplY3QgZmly
c3QgaW4gb3JkZXIgdG8gZXN0YWJsaXN0IGEgY3VycmVudCBjb250ZXh0IG9uIHRoaXMgdGhyZWFk
LgogICAgIGF1dG8gY29udGV4dCA9IEdyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlcjo6Y3Jl
YXRlKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyB7IGF0dHJpYnV0ZXMgfSk7CiAgICAgaWYg
KCFjb250ZXh0KQpAQCAtMTIwLDkgKzExNCw2IEBAIFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTD4g
Y3JlYXRlV2ViUHJvY2Vzc0dyYXBoaWNzQ29udGV4dEdMKGNvbnN0IEdyYXBoaWNzQ29udGV4CiAg
ICAgaWYgKGF0dHJpYnV0ZXMud2ViR0xWZXJzaW9uID09IEdyYXBoaWNzQ29udGV4dEdMV2ViR0xW
ZXJzaW9uOjpXZWJHTDIgJiYgIWVwb3h5X2lzX2Rlc2t0b3BfZ2woKSAmJiBlcG94eV9nbF92ZXJz
aW9uKCkgPCAzMCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKLQotICAgIEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmFkZENvbnRleHQoY29u
dGV4dC5nZXQoKSk7Ci0KICAgICByZXR1cm4gY29udGV4dDsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4
dHVyZU1hcHBlckFOR0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9HcmFwaGljc0NvbnRleHRHTFRleHR1cmVNYXBwZXJBTkdMRS5jcHAKaW5kZXggNTY1MTU0
YTg2OWM4ODU1NmE3YzkwOGVmYjg3OTY2YjZmYjUwM2M0ZC4uYTJkNzFkMWU5NzY4YWFlZTUxYmRl
MzFlMjE5NjQxZmQ2NmNiMGM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzQ29udGV4dEdMVGV4dHVyZU1hcHBlckFOR0xFLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NDb250
ZXh0R0xUZXh0dXJlTWFwcGVyQU5HTEUuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAKICNpbmNsdWRl
ICJBTkdMRUhlYWRlcnMuaCIKICNpbmNsdWRlICJBTkdMRVV0aWxpdGllcy5oIgotI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIK
ICNpbmNsdWRlICJQaXhlbEJ1ZmZlci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXJEaXNwbGF5
RGVsZWdhdGUuaCIKQEAgLTMxOCw3ICszMTcsNiBAQCBib29sIEdyYXBoaWNzQ29udGV4dEdMQU5H
TEU6OkVHTEltYWdlQmFja2luZzo6cmVzZXQoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBib29sCiAK
IEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6On5HcmFwaGljc0NvbnRleHRHTEFOR0xFKCkKIHsKLSAg
ICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5yZW1vdmVD
b250ZXh0KHRoaXMpOwogICAgIGJvb2wgc3VjY2VzcyA9IG1ha2VDb250ZXh0Q3VycmVudCgpOwog
ICAgIEFTU0VSVF9VTlVTRUQoc3VjY2Vzcywgc3VjY2Vzcyk7CiAgICAgaWYgKG1fdGV4dHVyZSkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3ODRlMjc5ZjY2YTYyOGM1ZDgxYTYzMGQ4ZWZkMDIzYTk1YzNkNDBkLi4yMjhmY2Vh
NThkODcwMTlkMDc2MmQzMTcwNzFkMzU4MWIwY2Y1YjQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMjItMDMtMDIgIEtpbW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KKworICAg
ICAgICBXZWJHTCBjb250ZXh0IGNvdW50IGlzIG5vdCBsaW1pdGVkIGZvciBHUFUgcHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNDExCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgorCisgICAgICAgICogcGxhdGZv
cm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIyLTAzLTAyICBTaWh1aSBMaXUgIDxz
aWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIFRocm93IHByb3BlciBleGNlcHRpb24gb24g
ZmFpbGVkIHJlbW92ZUVudHJ5KCkgY2FsbHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13
azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwZjFlOTc0YzM1OGFiNWJmMGQwNzQzMzM2MDYwNTk3
ZjhmNGVhMWQzLi4zMzQwM2VmYTYyODkzNDRmNTMyYjliNDdmOWNhNTI2YzM3MzgyODMzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMjI4
LDEzICsyMjI4LDcgQEAgaHR0cC93cHQvaHRtbC9zZW1hbnRpY3MvdGV4dC1sZXZlbC1zZW1hbnRp
Y3MvdGhlLWEtZWxlbWVudC9hLWRvd25sb2FkLWNsaWNrLTQwNC4KIAogIyBUZXN0IGZhaWx1cmVz
IGZyb20gdHVybmluZyBHUFUgUHJvY2VzcyBvbiBieSBkZWZhdWx0CiB3ZWJraXQub3JnL2IvMjM0
NTM2IHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlL3JlYWRpbmcvcmVhZC1waXhlbHMtdGVzdC5odG1s
Ci13ZWJraXQub3JnL2IvMjM0NTM2IHdlYmdsL21hbnktY29udGV4dHMtYWNjZXNzLWFmdGVyLWxv
c3MuaHRtbAotd2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC9tYW55LWNvbnRleHRzLmh0bWwKLXdl
YmtpdC5vcmcvYi8yMzQ1MzYgd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy1jb25zb2xlLXdhcm5p
bmcuaHRtbAotd2Via2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC9tYXgtYWN0aXZlLWNvbnRleHRzLWdj
Lmh0bWwKLXdlYmtpdC5vcmcvYi8yMzQ1MzYgd2ViZ2wvbWF4LWFjdGl2ZS1jb250ZXh0cy1vbGRl
c3QtY29udGV4dC1sb3N0Lmh0bWwKIHdlYmtpdC5vcmcvYi8yMzQ1MzYgd2VieHIvaGlnaC1wZXJm
b3JtYW5jZS5odG1sCi13ZWJraXQub3JnL2IvMjM0NTM2IHdlYmdsL21heC1hY3RpdmUtY29udGV4
dHMtd2ViZ2xjb250ZXh0bG9zdC1wcmV2ZW50LWRlZmF1bHQuaHRtbCBbIFRpbWVvdXQgXQogd2Vi
a2l0Lm9yZy9iLzIzNDUzNiB3ZWJnbC8xLjAuMy9jb25mb3JtYW5jZS9zdGF0ZS9nbC1vYmplY3Qt
Z2V0LWNhbGxzLmh0bWwgWyBUaW1lb3V0IF0KIAogIyB3ZWJraXQub3JnL2IvMjM3MzQ2IFJFR1JF
U1NJT04ocjI5MDUzOSk6IFsgaU9TIF0gMlggaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1j
cmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2FsIChsYXlvdXQtdGVzdHMpIGFyZSBjb25zdGFu
dCB0ZXh0IGZhaWx1cmVzCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>