<?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>72378</bug_id>
          
          <creation_ts>2011-11-15 04:47:30 -0800</creation_ts>
          <short_desc>[CSSShaders] Implement the style cached resources and computed style for the shader urls</short_desc>
          <delta_ts>2011-11-15 23:51:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>71446</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexandru Chiculita">achicu</reporter>
          <assigned_to name="Alexandru Chiculita">achicu</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dino</cc>
    
    <cc>japhet</cc>
    
    <cc>macpherson</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>502810</commentid>
    <comment_count>0</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2011-11-15 04:47:30 -0800</bug_when>
    <thetext>This patch will add the CustomFilterOperation and add the code in CSSStyleSelector for creating it. The only parsed arguments will be the urls for the shaders. Also it should add code for the Computed style, so that we can test the functionality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502893</commentid>
    <comment_count>1</comment_count>
      <attachid>115163</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2011-11-15 07:15:48 -0800</bug_when>
    <thetext>Created attachment 115163
Patch V1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>502912</commentid>
    <comment_count>2</comment_count>
      <attachid>115163</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-15 08:11:33 -0800</bug_when>
    <thetext>Comment on attachment 115163
Patch V1

Attachment 115163 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10484359</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503007</commentid>
    <comment_count>3</comment_count>
      <attachid>115190</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2011-11-15 10:09:47 -0800</bug_when>
    <thetext>Created attachment 115190
Patch V2

Fixed the Chromium gypi file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503031</commentid>
    <comment_count>4</comment_count>
      <attachid>115163</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-11-15 10:30:25 -0800</bug_when>
    <thetext>Comment on attachment 115163
Patch V1

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

r- up front for the chromium build issue, otherwise looks good. I wonder if we should retitle the bug because it now does a lot more than just computed style.

&gt; LayoutTests/css3/filters/script-tests/custom-filter-property-computed-style.js:1
&gt; +description(&quot;Test the parsing of the custom() function of the -webkit-filter property.&quot;);

This needs updating.

&gt; LayoutTests/css3/filters/script-tests/custom-filter-property-computed-style.js:82
&gt; +testFilterRule(&quot;Custom with vertex shader&quot;,
&gt; +               &quot;custom(url(vertex.shader))&quot;, &quot;custom(url(vertex.shader))&quot;);
&gt; +
&gt; +testFilterRule(&quot;Custom with fragment shader&quot;,
&gt; +              &quot;custom(none url(fragment.shader))&quot;, &quot;custom(none url(fragment.shader))&quot;);
&gt; +
&gt; +testFilterRule(&quot;Custom with both shaders&quot;,
&gt; +            &quot;custom(url(vertex.shader) url(fragment.shader))&quot;, &quot;custom(url(vertex.shader) url(fragment.shader))&quot;);
&gt; +
&gt; +testFilterRule(&quot;Multiple with fragment shader&quot;,
&gt; +            &quot;grayscale() custom(none url(fragment.shader)) sepia()&quot;, &quot;grayscale(1) custom(none url(fragment.shader)) sepia(1)&quot;,
&gt; +            [&quot;WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE&quot;,
&gt; +            &quot;WebKitCSSFilterValue.CSS_FILTER_CUSTOM&quot;,
&gt; +            &quot;WebKitCSSFilterValue.CSS_FILTER_SEPIA&quot;],
&gt; +            [&quot;grayscale(1)&quot;,
&gt; +            &quot;custom(none url(fragment.shader))&quot;,
&gt; +            &quot;sepia(1)&quot;]);

Nit: some indentation differences up there.

&gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:66
&gt; +#include &lt;algorithm&gt;

Is there a reason for this?

&gt; Source/WebCore/css/CSSStyleSelector.h:211
&gt; +    StyleShader* styleShader(CSSValue*);
&gt; +    StyleShader* cachedOrPendingFromValue(WebKitCSSShaderValue*);

I wonder if this should be named cachedOrPendingStyleShaderFromValue ?

&gt; Source/WebCore/rendering/style/StyleShader.h:57
&gt; +    bool m_isCachedShader:1;
&gt; +    bool m_isPendingShader:1;

I think we typically separate the : and num with spaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503032</commentid>
    <comment_count>5</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-11-15 10:31:59 -0800</bug_when>
    <thetext>oops! patch was updated as I was reviewing :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503034</commentid>
    <comment_count>6</comment_count>
      <attachid>115190</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-11-15 10:32:59 -0800</bug_when>
    <thetext>Comment on attachment 115190
Patch V2

r+ with the changes from the previous review. I do think the bug needs a better title.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503049</commentid>
    <comment_count>7</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2011-11-15 10:49:23 -0800</bug_when>
    <thetext>I will post a new patch in a few moments.

&gt; &gt; LayoutTests/css3/filters/script-tests/custom-filter-property-computed-style.js:1
&gt; &gt; +description(&quot;Test the parsing of the custom() function of the -webkit-filter property.&quot;);
&gt; 
&gt; This needs updating.

Ok.

&gt; 
&gt; &gt; LayoutTests/css3/filters/script-tests/custom-filter-property-computed-style.js:82
&gt; &gt; +testFilterRule(&quot;Custom with vertex shader&quot;,
&gt; &gt; +               &quot;custom(url(vertex.shader))&quot;, &quot;custom(url(vertex.shader))&quot;);
&gt; &gt; +
&gt; &gt; +testFilterRule(&quot;Custom with fragment shader&quot;,
&gt; &gt; +              &quot;custom(none url(fragment.shader))&quot;, &quot;custom(none url(fragment.shader))&quot;);
&gt; &gt; +
&gt; &gt; +testFilterRule(&quot;Custom with both shaders&quot;,
&gt; &gt; +            &quot;custom(url(vertex.shader) url(fragment.shader))&quot;, &quot;custom(url(vertex.shader) url(fragment.shader))&quot;);
&gt; &gt; +
&gt; &gt; +testFilterRule(&quot;Multiple with fragment shader&quot;,
&gt; &gt; +            &quot;grayscale() custom(none url(fragment.shader)) sepia()&quot;, &quot;grayscale(1) custom(none url(fragment.shader)) sepia(1)&quot;,
&gt; &gt; +            [&quot;WebKitCSSFilterValue.CSS_FILTER_GRAYSCALE&quot;,
&gt; &gt; +            &quot;WebKitCSSFilterValue.CSS_FILTER_CUSTOM&quot;,
&gt; &gt; +            &quot;WebKitCSSFilterValue.CSS_FILTER_SEPIA&quot;],
&gt; &gt; +            [&quot;grayscale(1)&quot;,
&gt; &gt; +            &quot;custom(none url(fragment.shader))&quot;,
&gt; &gt; +            &quot;sepia(1)&quot;]);
&gt; Nit: some indentation differences up there.

Ok.

&gt; &gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:66
&gt; &gt; +#include &lt;algorithm&gt;
&gt; 
&gt; Is there a reason for this?
Good catch. I will remove it. I&apos;ve actually took the big patch posted on the #71446 and deleted some code.  It was used for std::sort, to sort the parameters by name. Sorting the parameters is not really required, but it makes testing easier.

&gt; &gt; Source/WebCore/css/CSSStyleSelector.h:211
&gt; &gt; +    StyleShader* styleShader(CSSValue*);
&gt; &gt; +    StyleShader* cachedOrPendingFromValue(WebKitCSSShaderValue*);
&gt; 
&gt; I wonder if this should be named cachedOrPendingStyleShaderFromValue ?

Ok. cachedOrPendingStyleShaderFromValue makes sense.

&gt; &gt; Source/WebCore/rendering/style/StyleShader.h:57
&gt; &gt; +    bool m_isCachedShader:1;
&gt; &gt; +    bool m_isPendingShader:1;
&gt; 
&gt; I think we typically separate the : and num with spaces.

Ok. That was copied from StyleImage.h, so I thought it was correct. It seems like both styles are used in WebKit&apos;s code (ie. CSSValue.h uses space), so I assume that the new style is to use spaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503055</commentid>
    <comment_count>8</comment_count>
      <attachid>115202</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2011-11-15 10:56:42 -0800</bug_when>
    <thetext>Created attachment 115202
Patch V3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503108</commentid>
    <comment_count>9</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-11-15 11:44:26 -0800</bug_when>
    <thetext>(In reply to comment #7)


&gt; &gt; &gt; Source/WebCore/css/CSSComputedStyleDeclaration.cpp:66
&gt; &gt; &gt; +#include &lt;algorithm&gt;
&gt; &gt; 
&gt; &gt; Is there a reason for this?
&gt; Good catch. I will remove it. I&apos;ve actually took the big patch posted on the #71446 and deleted some code.  It was used for std::sort, to sort the parameters by name. Sorting the parameters is not really required, but it makes testing easier.

Cool.

&gt; &gt; &gt; Source/WebCore/rendering/style/StyleShader.h:57
&gt; &gt; &gt; +    bool m_isCachedShader:1;
&gt; &gt; &gt; +    bool m_isPendingShader:1;
&gt; &gt; 
&gt; &gt; I think we typically separate the : and num with spaces.
&gt; 
&gt; Ok. That was copied from StyleImage.h, so I thought it was correct. It seems like both styles are used in WebKit&apos;s code (ie. CSSValue.h uses space), so I assume that the new style is to use spaces.

Yeah, I&apos;m not sure myself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503124</commentid>
    <comment_count>10</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2011-11-15 12:05:40 -0800</bug_when>
    <thetext>Is everything ok with the last patch? Can you r+ and cq+ please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503128</commentid>
    <comment_count>11</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-11-15 12:07:35 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Is everything ok with the last patch? Can you r+ and cq+ please?

Yep, doing so now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503130</commentid>
    <comment_count>12</comment_count>
      <attachid>115202</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-11-15 12:07:58 -0800</bug_when>
    <thetext>Comment on attachment 115202
Patch V3

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

&gt; Source/WebCore/css/CSSStyleSelector.cpp:5519
&gt; +                operations.operations().append(operation);

Reading this line makes my head hurt :) I wonder if we should rename the operations() accessor on FilterOperations. What do you think? (or we could put the append method on FilterOperations)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503147</commentid>
    <comment_count>13</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2011-11-15 12:21:17 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 115202 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=115202&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/CSSStyleSelector.cpp:5519
&gt; &gt; +                operations.operations().append(operation);
&gt; 
&gt; Reading this line makes my head hurt :) I wonder if we should rename the operations() accessor on FilterOperations. What do you think? (or we could put the append method on FilterOperations)

It looks like there&apos;s a lot of operations.operations().append in CSSStyleSelector.cpp. CSS Transforms have the same issue.

Yes adding an append() method on the FilterOperations sound great. Also, operationAt() might be useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503162</commentid>
    <comment_count>14</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2011-11-15 12:39:36 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; (From update of attachment 115202 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=115202&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/css/CSSStyleSelector.cpp:5519
&gt; &gt; &gt; +                operations.operations().append(operation);
&gt; &gt; 
&gt; &gt; Reading this line makes my head hurt :) I wonder if we should rename the operations() accessor on FilterOperations. What do you think? (or we could put the append method on FilterOperations)
&gt; 
&gt; It looks like there&apos;s a lot of operations.operations().append in CSSStyleSelector.cpp. CSS Transforms have the same issue.
&gt; 
&gt; Yes adding an append() method on the FilterOperations sound great. Also, operationAt() might be useful.

OK. I filed https://bugs.webkit.org/show_bug.cgi?id=72406</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503163</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-11-15 12:40:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/10450040&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503175</commentid>
    <comment_count>16</comment_count>
      <attachid>115202</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-15 13:01:39 -0800</bug_when>
    <thetext>Comment on attachment 115202
Patch V3

Rejecting attachment 115202 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
n/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.
Updating chromium port dependencies using gclient...

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/10310664</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503185</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-15 13:19:44 -0800</bug_when>
    <thetext>Looks like the patch didn&apos;t apply.  Not sure why the bot produced a junky error message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503598</commentid>
    <comment_count>18</comment_count>
      <attachid>115323</attachid>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2011-11-15 22:34:20 -0800</bug_when>
    <thetext>Created attachment 115323
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503599</commentid>
    <comment_count>19</comment_count>
    <who name="Alexandru Chiculita">achicu</who>
    <bug_when>2011-11-15 22:35:24 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; Created an attachment (id=115323) [details]
&gt; Patch for landing

I&apos;ve rebased the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503651</commentid>
    <comment_count>20</comment_count>
      <attachid>115323</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-15 23:51:20 -0800</bug_when>
    <thetext>Comment on attachment 115323
Patch for landing

Clearing flags on attachment: 115323

Committed r100416: &lt;http://trac.webkit.org/changeset/100416&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503652</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-15 23:51:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115163</attachid>
            <date>2011-11-15 07:15:48 -0800</date>
            <delta_ts>2011-11-15 10:30:25 -0800</delta_ts>
            <desc>Patch V1</desc>
            <filename>bug72378.patch</filename>
            <type>text/plain</type>
            <size>63926</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxMTA2Njk4Li5iYzRiYjVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTEt
MTUgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIFtD
U1NTaGFkZXJzXSBJbXBsZW1lbnQgdGhlIGNvbXB1dGVkIHN0eWxlIGZvciB2ZXJ0ZXggYW5kIGZy
YWdtZW50IHNoYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzIzNzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LWNvbXB1dGVkLXN0eWxl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0
ZXItcHJvcGVydHktY29tcHV0ZWQtc3R5bGUuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9m
aWx0ZXJzL3NjcmlwdC10ZXN0cy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LWNvbXB1dGVkLXN0eWxl
LmpzOiBBZGRlZC4KKyAgICAgICAgKGpzV3JhcHBlckNsYXNzKToKKyAgICAgICAgKGV4cHJlc3Np
b24pOgorICAgICAgICAoZGVzY3JpcHRpb24pOgorCiAyMDExLTExLTE1ICBUb255IEdlbnRpbGNv
cmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBwZXJmL2RvY3Vt
ZW50LWNvbnRhaW5zLmh0bWwgaXMgZmxha3kgb24gd2luCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jc3MzL2ZpbHRlcnMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0
eS1jb21wdXRlZC1zdHlsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYmY1ZDNkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmls
dGVycy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LWNvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQ5IEBACitUZXN0IHRoZSBwYXJzaW5nIG9mIHRoZSBjdXN0b20oKSBmdW5jdGlv
biBvZiB0aGUgLXdlYmtpdC1maWx0ZXIgcHJvcGVydHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCisKK0N1c3RvbSB3aXRoIHZlcnRleCBzaGFkZXIgOiBjdXN0b20odXJsKHZlcnRl
eC5zaGFkZXIpKQorUEFTUyByZW1vdmVCYXNlVVJMKGZpbHRlclN0eWxlLmdldFByb3BlcnR5VmFs
dWUoJy13ZWJraXQtZmlsdGVyJykpIGlzICdjdXN0b20odXJsKHZlcnRleC5zaGFkZXIpKScKK1BB
U1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZSkgaXMgJ0NTU1ZhbHVlTGlzdCcKK1BBU1MganNX
cmFwcGVyQ2xhc3MoZmlsdGVyUnVsZS5fX3Byb3RvX18pIGlzICdDU1NWYWx1ZUxpc3RQcm90b3R5
cGUnCitQQVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1bGUuY29uc3RydWN0b3IpIGlzICdDU1NW
YWx1ZUxpc3RDb25zdHJ1Y3RvcicKK1BBU1MgZmlsdGVyUnVsZS5sZW5ndGggaXMgMQorUEFTUyBz
dWJSdWxlLm9wZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9D
VVNUT00KK1BBU1MgcmVtb3ZlQmFzZVVSTChzdWJSdWxlLmNzc1RleHQpIGlzICdjdXN0b20odXJs
KHZlcnRleC5zaGFkZXIpKScKKworQ3VzdG9tIHdpdGggZnJhZ21lbnQgc2hhZGVyIDogY3VzdG9t
KG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlcikpCitQQVNTIHJlbW92ZUJhc2VVUkwoZmlsdGVyU3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSkgaXMgJ2N1c3RvbShub25lIHVy
bChmcmFnbWVudC5zaGFkZXIpKScKK1BBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZSkgaXMg
J0NTU1ZhbHVlTGlzdCcKK1BBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZS5fX3Byb3RvX18p
IGlzICdDU1NWYWx1ZUxpc3RQcm90b3R5cGUnCitQQVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1
bGUuY29uc3RydWN0b3IpIGlzICdDU1NWYWx1ZUxpc3RDb25zdHJ1Y3RvcicKK1BBU1MgZmlsdGVy
UnVsZS5sZW5ndGggaXMgMQorUEFTUyBzdWJSdWxlLm9wZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NT
RmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00KK1BBU1MgcmVtb3ZlQmFzZVVSTChzdWJSdWxl
LmNzc1RleHQpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSknCisKK0N1c3Rv
bSB3aXRoIGJvdGggc2hhZGVycyA6IGN1c3RvbSh1cmwodmVydGV4LnNoYWRlcikgdXJsKGZyYWdt
ZW50LnNoYWRlcikpCitQQVNTIHJlbW92ZUJhc2VVUkwoZmlsdGVyU3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1maWx0ZXInKSkgaXMgJ2N1c3RvbSh1cmwodmVydGV4LnNoYWRlcikgdXJs
KGZyYWdtZW50LnNoYWRlcikpJworUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxlKSBpcyAn
Q1NTVmFsdWVMaXN0JworUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxlLl9fcHJvdG9fXykg
aXMgJ0NTU1ZhbHVlTGlzdFByb3RvdHlwZScKK1BBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVs
ZS5jb25zdHJ1Y3RvcikgaXMgJ0NTU1ZhbHVlTGlzdENvbnN0cnVjdG9yJworUEFTUyBmaWx0ZXJS
dWxlLmxlbmd0aCBpcyAxCitQQVNTIHN1YlJ1bGUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NG
aWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RPTQorUEFTUyByZW1vdmVCYXNlVVJMKHN1YlJ1bGUu
Y3NzVGV4dCkgaXMgJ2N1c3RvbSh1cmwodmVydGV4LnNoYWRlcikgdXJsKGZyYWdtZW50LnNoYWRl
cikpJworCitNdWx0aXBsZSB3aXRoIGZyYWdtZW50IHNoYWRlciA6IGdyYXlzY2FsZSgpIGN1c3Rv
bShub25lIHVybChmcmFnbWVudC5zaGFkZXIpKSBzZXBpYSgpCitQQVNTIHJlbW92ZUJhc2VVUkwo
ZmlsdGVyU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSkgaXMgJ2dyYXlz
Y2FsZSgxKSBjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSkgc2VwaWEoMSknCitQQVNT
IGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1bGUpIGlzICdDU1NWYWx1ZUxpc3QnCitQQVNTIGpzV3Jh
cHBlckNsYXNzKGZpbHRlclJ1bGUuX19wcm90b19fKSBpcyAnQ1NTVmFsdWVMaXN0UHJvdG90eXBl
JworUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxlLmNvbnN0cnVjdG9yKSBpcyAnQ1NTVmFs
dWVMaXN0Q29uc3RydWN0b3InCitQQVNTIGZpbHRlclJ1bGUubGVuZ3RoIGlzIDMKK1BBU1Mgc3Vi
UnVsZS5vcGVyYXRpb25UeXBlIGlzIFdlYktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfR1JB
WVNDQUxFCitQQVNTIHJlbW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAnZ3JheXNjYWxl
KDEpJworUEFTUyBzdWJSdWxlLm9wZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NTRmlsdGVyVmFsdWUu
Q1NTX0ZJTFRFUl9DVVNUT00KK1BBU1MgcmVtb3ZlQmFzZVVSTChzdWJSdWxlLmNzc1RleHQpIGlz
ICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSknCitQQVNTIHN1YlJ1bGUub3BlcmF0
aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX1NFUElBCitQQVNTIHJl
bW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAnc2VwaWEoMSknCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItcHJvcGVydHktY29tcHV0ZWQtc3R5bGUu
aHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LWNv
bXB1dGVkLXN0eWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY3
YWM2YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20t
ZmlsdGVyLXByb3BlcnR5LWNvbXB1dGVkLXN0eWxlLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvZmlsdGVycy9zY3JpcHQtdGVzdHMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1jb21wdXRlZC1z
dHlsZS5qcyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9zY3JpcHQtdGVzdHMvY3VzdG9tLWZp
bHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5lMjk1ODc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9m
aWx0ZXJzL3NjcmlwdC10ZXN0cy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LWNvbXB1dGVkLXN0eWxl
LmpzCkBAIC0wLDAgKzEsODIgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoZSBwYXJzaW5nIG9mIHRo
ZSBjdXN0b20oKSBmdW5jdGlvbiBvZiB0aGUgLXdlYmtpdC1maWx0ZXIgcHJvcGVydHkuIik7CisK
K2Z1bmN0aW9uIGpzV3JhcHBlckNsYXNzKG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAg
ICByZXR1cm4gIltudWxsXSI7CisgICAgdmFyIHN0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9T
dHJpbmcuYXBwbHkobm9kZSk7CisgICAgcmV0dXJuIHN0cmluZy5zdWJzdHIoOCwgc3RyaW5nLmxl
bmd0aCAtIDkpOworfQorCisvLyBOZWVkIHRvIHJlbW92ZSB0aGUgYmFzZSBVUkwgdG8gYXZvaWQg
aGF2aW5nIGxvY2FsIHBhdGhzIGluIHRoZSBleHBlY3RlZCByZXN1bHRzLgorZnVuY3Rpb24gcmVt
b3ZlQmFzZVVSTChzcmMpIHsKKyAgICB2YXIgdXJsUmVnZXhwID0gL3VybFwoKFteXCldKilcKS9n
OworICAgIHJldHVybiBzcmMucmVwbGFjZSh1cmxSZWdleHAsIGZ1bmN0aW9uKG1hdGNoLCB1cmwp
IHsKKyAgICAgICAgcmV0dXJuICJ1cmwoIiArIHVybC5zdWJzdHIodXJsLmxhc3RJbmRleE9mKCIv
IikgKyAxKSArICIpIjsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVUeXBlKGV4cHJl
c3Npb24sIGNsYXNzTmFtZSwgcHJvdG90eXBlTmFtZSwgY29uc3RydWN0b3JOYW1lKQoreworICAg
IGlmICghcHJvdG90eXBlTmFtZSkKKyAgICAgICAgcHJvdG90eXBlTmFtZSA9IGNsYXNzTmFtZSAr
ICJQcm90b3R5cGUiOworICAgIGlmICghY29uc3RydWN0b3JOYW1lKQorICAgICAgICBjb25zdHJ1
Y3Rvck5hbWUgPSBjbGFzc05hbWUgKyAiQ29uc3RydWN0b3IiOworICAgIHNob3VsZEJlKCJqc1dy
YXBwZXJDbGFzcygiICsgZXhwcmVzc2lvbiArICIpIiwgIiciICsgY2xhc3NOYW1lICsgIiciKTsK
KyAgICBzaG91bGRCZSgianNXcmFwcGVyQ2xhc3MoIiArIGV4cHJlc3Npb24gKyAiLl9fcHJvdG9f
XykiLCAiJyIgKyBwcm90b3R5cGVOYW1lICsgIiciKTsKKyAgICBzaG91bGRCZSgianNXcmFwcGVy
Q2xhc3MoIiArIGV4cHJlc3Npb24gKyAiLmNvbnN0cnVjdG9yKSIsICInIiArIGNvbnN0cnVjdG9y
TmFtZSArICInIik7Cit9CisKKy8vIFRoZXNlIGhhdmUgdG8gYmUgZ2xvYmFsIGZvciB0aGUgdGVz
dCBoZWxwZXJzIHRvIHNlZSB0aGVtLgordmFyIHN0eWxlc2hlZXQsIGNzc1J1bGUsIGRlY2xhcmF0
aW9uLCBmaWx0ZXJSdWxlLCBzdWJSdWxlOworCitmdW5jdGlvbiB0ZXN0RmlsdGVyUnVsZShkZXNj
cmlwdGlvbiwgcnVsZSwgZXhwZWN0ZWRWYWx1ZSwgZXhwZWN0ZWRUeXBlcywgZXhwZWN0ZWRUZXh0
cykKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoZGVzY3JpcHRpb24gKyAiIDogIiArIHJ1
bGUpOworCisgICAgc3R5bGVzaGVldCA9IGRvY3VtZW50LnN0eWxlU2hlZXRzLml0ZW0oMCk7Cisg
ICAgc3R5bGVzaGVldC5pbnNlcnRSdWxlKCJib2R5IHsgLXdlYmtpdC1maWx0ZXI6ICIgKyBydWxl
ICsgIjsgfSIsIDApOworCisgICAgZmlsdGVyU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5ib2R5KTsKKyAgICAKKyAgICBzaG91bGRCZSgicmVtb3ZlQmFzZVVSTChmaWx0
ZXJTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpKSIsICInIiArIGV4cGVj
dGVkVmFsdWUgKyAiJyIpOworCisgICAgZmlsdGVyUnVsZSA9IGZpbHRlclN0eWxlLmdldFByb3Bl
cnR5Q1NTVmFsdWUoJy13ZWJraXQtZmlsdGVyJyk7CisgICAgc2hvdWxkQmVUeXBlKCJmaWx0ZXJS
dWxlIiwgIkNTU1ZhbHVlTGlzdCIpOworCisgICAgaWYgKCFleHBlY3RlZFR5cGVzKSB7CisgICAg
ICAgIGV4cGVjdGVkVHlwZXMgPSBbIldlYktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfQ1VT
VE9NIl07CisgICAgICAgIGV4cGVjdGVkVGV4dHMgPSBbZXhwZWN0ZWRWYWx1ZV07CisgICAgfQor
ICAgIAorICAgIHNob3VsZEJlKCJmaWx0ZXJSdWxlLmxlbmd0aCIsICIiICsgZXhwZWN0ZWRUeXBl
cy5sZW5ndGgpOyAvLyBzaG91bGRCZSBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMKKyAgCisgICAg
aWYgKGZpbHRlclJ1bGUpIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZFR5
cGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBzdWJSdWxlID0gZmlsdGVyUnVsZVtpXTsK
KyAgICAgICAgICAgIHNob3VsZEJlKCJzdWJSdWxlLm9wZXJhdGlvblR5cGUiLCBleHBlY3RlZFR5
cGVzW2ldKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJyZW1vdmVCYXNlVVJMKHN1YlJ1bGUuY3Nz
VGV4dCkiLCAiJyIgKyBleHBlY3RlZFRleHRzW2ldICsgIiciKTsKKyAgICAgICAgfQorICAgIH0K
KyAgICAKKyAgICBzdHlsZXNoZWV0LmRlbGV0ZVJ1bGUoMCk7Cit9CisKK3Rlc3RGaWx0ZXJSdWxl
KCJDdXN0b20gd2l0aCB2ZXJ0ZXggc2hhZGVyIiwKKyAgICAgICAgICAgICAgICJjdXN0b20odXJs
KHZlcnRleC5zaGFkZXIpKSIsICJjdXN0b20odXJsKHZlcnRleC5zaGFkZXIpKSIpOworCit0ZXN0
RmlsdGVyUnVsZSgiQ3VzdG9tIHdpdGggZnJhZ21lbnQgc2hhZGVyIiwKKyAgICAgICAgICAgICAg
ImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpKSIsICJjdXN0b20obm9uZSB1cmwoZnJh
Z21lbnQuc2hhZGVyKSkiKTsKKwordGVzdEZpbHRlclJ1bGUoIkN1c3RvbSB3aXRoIGJvdGggc2hh
ZGVycyIsCisgICAgICAgICAgICAiY3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSB1cmwoZnJhZ21l
bnQuc2hhZGVyKSkiLCAiY3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSB1cmwoZnJhZ21lbnQuc2hh
ZGVyKSkiKTsKKwordGVzdEZpbHRlclJ1bGUoIk11bHRpcGxlIHdpdGggZnJhZ21lbnQgc2hhZGVy
IiwKKyAgICAgICAgICAgICJncmF5c2NhbGUoKSBjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hh
ZGVyKSkgc2VwaWEoKSIsICJncmF5c2NhbGUoMSkgY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNo
YWRlcikpIHNlcGlhKDEpIiwKKyAgICAgICAgICAgIFsiV2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NT
X0ZJTFRFUl9HUkFZU0NBTEUiLAorICAgICAgICAgICAgIldlYktpdENTU0ZpbHRlclZhbHVlLkNT
U19GSUxURVJfQ1VTVE9NIiwKKyAgICAgICAgICAgICJXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1Nf
RklMVEVSX1NFUElBIl0sCisgICAgICAgICAgICBbImdyYXlzY2FsZSgxKSIsCisgICAgICAgICAg
ICAiY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlcikpIiwKKyAgICAgICAgICAgICJzZXBp
YSgxKSJdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxYzU3MTA5Li43YjZlZjk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNjkgQEAKKzIwMTEtMTEtMTUgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRv
YmUuY29tPgorCisgICAgICAgIFtDU1NTaGFkZXJzXSBJbXBsZW1lbnQgdGhlIGNvbXB1dGVkIHN0
eWxlIGZvciB2ZXJ0ZXggYW5kIGZyYWdtZW50IHNoYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzNzgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBjc3MzL2ZpbHRlcnMvY3VzdG9tLWZpbHRl
ci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS5odG1sCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbjo6dmFsdWVGb3JGaWx0ZXIpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVj
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OkNTU1N0eWxlU2Vs
ZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6c3R5bGVGb3JLZXlm
cmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpwc2V1ZG9TdHlsZUZv
ckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6c3R5bGVGb3JQ
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5TWF0Y2hlZERl
Y2xhcmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZVNo
YWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpjYWNoZWRPclBlbmRp
bmdGcm9tVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6bG9hZFBl
bmRpbmdTaGFkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmNyZWF0
ZUN1c3RvbUZpbHRlck9wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVj
dG9yOjpjcmVhdGVGaWx0ZXJPcGVyYXRpb25zKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5oOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJLaXRDU1NTaGFkZXJWYWx1ZTo6V2ViS2l0Q1NTU2hhZGVyVmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTU2hhZGVyVmFsdWU6On5XZWJLaXRDU1NTaGFkZXJW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NTaGFkZXJWYWx1ZTo6Y2FjaGVkU2hh
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU1NoYWRlclZhbHVlOjpjYWNoZWRPclBl
bmRpbmdTaGFkZXIpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5oOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpkZWZhdWx0UHJpb3JpdHlGb3JSZXNvdXJjZVR5cGUpOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVSZXNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNoYWRlcik6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJbnNlY3VyZUNvbnRlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QpOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2hh
ZGVyOjpDYWNoZWRTaGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2hhZGVyOjp+Q2Fj
aGVkU2hhZGVyKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkluaGVyaXRlZEZsYWdzOjpmaWx0ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9T
dHlsZUNhY2hlZFNoYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUNhY2hlZFNoYWRl
cjo6U3R5bGVDYWNoZWRTaGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVDYWNoZWRTaGFk
ZXI6OmNzc1ZhbHVlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFk
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQ2FjaGVkU2hhZGVyOjpjcmVhdGUpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdTaGFkZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlUGVuZGluZ1NoYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUGVuZGluZ1NoYWRlcjo6Y3NzVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5k
aW5nU2hhZGVyOjpjc3NTaGFkZXJWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVBlbmRp
bmdTaGFkZXI6OlN0eWxlUGVuZGluZ1NoYWRlcik6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1N0eWxlU2hhZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNoYWRlcjo6flN0eWxlU2hh
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hhZGVyOjppc0NhY2hlZFNoYWRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVNoYWRlcjo6aXNQZW5kaW5nU2hhZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlU2hhZGVyOjpTdHlsZVNoYWRlcik6CisKIDIwMTEtMTEtMTUgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIxMDAyMTMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRl
eCBiNzE4YzEwLi5kNjhmMGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTEx
MjEsNiArMTEyMSw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvY3Nz
L1dlYktpdENTU0tleWZyYW1lc1J1bGUuaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENT
U01hdHJpeC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguaCBcCisJ
U291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9X
ZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NUcmFuc2Zvcm1WYWx1ZS5oIFwKQEAgLTIxNjksNiArMjE3MCw4IEBAIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oIFwKKwlTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU3R5bGVTaGVldENsaWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkVGV4dFRyYWNrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFRleHRUcmFjay5oIFwKQEAgLTI1MzMsNiArMjUzNiw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVHJhbnNmb3JtYXRpb25N
YXRyaXhDYWlyby5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0
ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2x1dHRlci9HcmFwaGljc0xheWVyQ2x1dHRlci5jcHAgXAorCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNl
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9EaXN0YW50
TGlnaHRTb3VyY2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUJsZW5kLmNwcCBcCkBAIC0zMjY3LDYgKzMyNzEsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUJveERhdGEuaCBcCiAJU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5oIFwKKwlTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIuaCBcCiAJU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlRGFzaGJvYXJkUmVnaW9uLmggXAogCVNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVEZXByZWNhdGVkRmxleGli
bGVCb3hEYXRhLmggXApAQCAtMzI4NCwxMSArMzI5MCwxMyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nSW1hZ2UuaCBcCisJ
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ1NoYWRlci5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRh
LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmVmbGVjdGlvbi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVTaGFk
ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlU3Vycm91bmREYXRh
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlU3Vycm91bmREYXRh
LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVRyYW5zZm9ybURhdGEu
Y3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCmluZGV4IGU0ODQ5ZjAuLmQzZjM2YWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAt
NDYxLDYgKzQ2MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGNzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1
bGUuY3BwIFwKICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAgXAogICAgIGNzcy9X
ZWJLaXRDU1NNYXRyaXguY3BwIFwKKyAgICBjc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwIFwK
ICAgICBjc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIFwKICAgICBkb20vQWN0aXZlRE9N
T2JqZWN0LmNwcCBcCiAgICAgZG9tL0F0dHIuY3BwIFwKQEAgLTkxMyw2ICs5MTQsNyBAQCBTT1VS
Q0VTICs9IFwKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBcCiAg
ICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBcCiAgICAgbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNjcmlwdC5jcHAgXAorICAgIGxvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwIFwKICAg
ICBsb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHAgXAogICAgIGxvYWRlci9Dcm9z
c09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwIFwKICAgICBsb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGln
aHRSZXN1bHRDYWNoZS5jcHAgXApAQCAtMTI1Myw2ICsxMjU1LDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQmFja2dyb3VuZERhdGEuY3BwIFwKICAgICByZW5kZXJp
bmcvc3R5bGUvU3R5bGVCb3hEYXRhLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2Fj
aGVkSW1hZ2UuY3BwIFwKKyAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIuY3Bw
IFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmNw
cCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmlsdGVyRGF0YS5jcHAgXAogICAgIHJlbmRl
cmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAgXApAQCAtMTk1NCw2ICsxOTU3LDcg
QEAgSEVBREVSUyArPSBcCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlSGFuZGxlLmgg
XAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBcCiAgICAgbG9hZGVy
L2NhY2hlL0NhY2hlZFNjcmlwdC5oIFwKKyAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmgg
XAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmggXAogICAgIGxvYWRlci9j
YWNoZS9NZW1vcnlDYWNoZS5oIFwKICAgICBsb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmggXApAQCAtMjA3MSw2ICsyMDc1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vbW9j
ay9TY3JvbGxiYXJUaGVtZU1vY2suaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaCBcCisgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaCBcCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUJsZW5kLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb2xvck1hdHJpeC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9u
ZW50VHJhbnNmZXIuaCBcCkBAIC0yMzcwLDYgKzIzNzUsNyBAQCBIRUFERVJTICs9IFwKICAgICBy
ZW5kZXJpbmcvc3R5bGUvU3R5bGVCYWNrZ3JvdW5kRGF0YS5oIFwKICAgICByZW5kZXJpbmcvc3R5
bGUvU3R5bGVCb3hEYXRhLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdl
LmggXAorICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZFNoYWRlci5oIFwKICAgICByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmggXAogICAgIHJlbmRl
cmluZy9zdHlsZS9TdHlsZUZpbHRlckRhdGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxl
RmxleGlibGVCb3hEYXRhLmggXApAQCAtMjM3Nyw5ICsyMzgzLDExIEBAIEhFQURFUlMgKz0gXAog
ICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUluaGVyaXRlZERhdGEuaCBcCiAgICAgcmVuZGVyaW5n
L3N0eWxlL1N0eWxlTWFycXVlZURhdGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVs
dGlDb2xEYXRhLmggXAorICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdTaGFkZXIuaCBc
CiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaCBcCiAgICAgcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBcCiAgICAgcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmVmbGVjdGlvbi5oIFwKKyAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVTaGFk
ZXIuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlU3Vycm91bmREYXRhLmggXAogICAgIHJl
bmRlcmluZy9zdHlsZS9TdHlsZVRyYW5zZm9ybURhdGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxl
L1N0eWxlVmlzdWFsRGF0YS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBlODMwNjFkLi44NDY3YzMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC01OTcsNiArNTk3LDcgQEAKICAgICAgICAgICAgICdsb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuaCcsCisgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hl
ZFNoYWRlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU3R5bGVTaGVldENs
aWVudC5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaCcsCiAgICAg
ICAgICAgICAnbG9hZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIuaCcsCkBAIC0yNDcyLDYgKzI0NzMs
OCBAQAogICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgnLAogICAgICAg
ICAgICAgJ2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwJywKICAgICAgICAgICAgICdjc3MvV2ViS2l0
Q1NTTWF0cml4LmgnLAorICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAn
LAorICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5oJywKICAgICAgICAgICAg
ICdjc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwJywKICAgICAgICAgICAgICdlZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmNwcCcsCiAgICAgICAgICAgICAnZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5oJywKQEAgLTI4NjQsNiArMjg2Nyw4IEBACiAgICAgICAgICAgICAnbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNo
ZS9DYWNoZWRTY3JpcHQuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2Ny
aXB0LmgnLAorICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwJywKKyAg
ICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmgnLAogICAgICAgICAgICAgJ2xv
YWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2Fj
aGUvQ2FjaGVkVGV4dFRyYWNrLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRY
U0xTdHlsZVNoZWV0LmNwcCcsCkBAIC0zNjEwLDYgKzM2MTUsNyBAQAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL2VmbC9JbWFnZUVmbC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL2VmbC9JbnRQb2ludEVmbC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL2VmbC9JbnRSZWN0RWZsLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9EaXN0YW50TGlnaHRTb3VyY2UuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwJywKQEAgLTQ3NTUs
NiArNDc2MSw4IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlQmFja2dyb3Vu
ZERhdGEuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVCb3hEYXRhLmNw
cCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwJywK
KyAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIuaCcsCisgICAg
ICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkU2hhZGVyLmNwcCcsCiAgICAgICAg
ICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YS5jcHAn
LAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUZpbHRlckRhdGEuY3BwJywKICAg
ICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwJywKQEAg
LTQ3NjMsOCArNDc3MSwxMCBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZU1h
cnF1ZWVEYXRhLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlD
b2xEYXRhLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ0lt
YWdlLmgnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdTaGFkZXIu
aCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEu
Y3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5jcHAnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZVNoYWRlci5jcHAn
LAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZVN1cnJvdW5kRGF0YS5jcHAnLAog
ICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZVRyYW5zZm9ybURhdGEuY3BwJywKICAg
ICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVWaXN1YWxEYXRhLmNwcCcsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDQxMjlhY2YuLjMx
ODM2ODEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CkBAIC0yNjIwNSw2ICsyNjIwNSwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxl
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFNoYWRlci5jcHAiCisJ
CQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2Fk
ZXJcY2FjaGVcQ2FjaGVkU2hhZGVyLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUK
IAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVkU3R5bGVTaGVldENsaWVu
dC5oIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpAQCAtMjk0OTYsNiArMjk1MDQsMTAgQEAKIAkJCQkJ
TmFtZT0iZmlsdGVycyIKIAkJCQkJPgogCQkJCQk8RmlsZQorCQkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxwbGF0Zm9ybVxncmFwaGljc1xmaWx0ZXJzXEN1c3RvbUZpbHRlck9wZXJhdGlvbi5oIgorCQkJ
CQkJPgorCQkJCQk8L0ZpbGU+CisJCQkJCTxGaWxlCiAJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBs
YXRmb3JtXGdyYXBoaWNzXGZpbHRlcnNcRGlzdGFudExpZ2h0U291cmNlLmNwcCIKIAkJCQkJCT4K
IAkJCQkJPC9GaWxlPgpAQCAtMzI5NTAsNiArMzI5NjIsMTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+
CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXFdlYktpdENTU1NoYWRlclZhbHVl
LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
Y3NzXFdlYktpdENTU1NoYWRlclZhbHVlLmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIgogCQkJ
CT4KIAkJCTwvRmlsZT4KQEAgLTQwNDYzLDYgKzQwNDgzLDE0IEBACiAJCQkJCT4KIAkJCQk8L0Zp
bGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcU3R5
bGVDYWNoZWRTaGFkZXIuY3BwIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxlXFN0eWxlQ2FjaGVkU2hhZGVyLmgiCisJ
CQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5k
ZXJpbmdcc3R5bGVcU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmNwcCIKIAkJCQkJPgog
CQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTQwODYzLDYgKzQwODkxLDEwIEBACiAJCQkJCT4K
IAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdc
c3R5bGVcU3R5bGVQZW5kaW5nU2hhZGVyLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZp
bGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC00MDk3OSw2
ICs0MTAxMSwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0
aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxlXFN0eWxlU2hhZGVyLmgiCisJCQkJCT4KKwkJCQk8
L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVc
U3R5bGVTdXJyb3VuZERhdGEuY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDM5ODRhOTIuLjM2NGUzYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNjMsNiArMTM2MywxMiBAQAogCQk0RkQ4RDBG
MzExOUM3MThCMDAyRkE4MjUgLyogU2NyaXB0R0NFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEZEOEQwRjExMTlDNzE4QjAwMkZBODI1IC8qIFNj
cmlwdEdDRXZlbnQuaCAqLzsgfTsKIAkJNTAxQkE5RTIxMzkzQ0VBMDAwRjdBQ0VCIC8qIENTU1dy
YXBTaGFwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUwMUJBOUUxMTM5M0NFQTAwMEY3QUNFQiAvKiBDU1NXcmFwU2hhcGVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTAxQkFBQTkxMzk1MEUyQzAw
RjdBQ0VCIC8qIFdpbmRSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MDFCQUFBODEzOTUwRTJDMDBGN0FDRUIgLyogV2luZFJ1bGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MDM4QkMwNzE0NzEx
Q0RCMDA5NUUwRDEgLyogV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAzOEJDMDYxNDcxMUNEQjAwOTVFMEQxIC8q
IFdlYktpdENTU1NoYWRlclZhbHVlLmNwcCAqLzsgfTsKKwkJNTAzOEJDMEIxNDcxMUQzNDAwOTVF
MEQxIC8qIEN1c3RvbUZpbHRlck9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTAzOEJDMDkxNDcxMUQzNDAwOTVFMEQxIC8qIEN1c3RvbUZp
bHRlck9wZXJhdGlvbi5oICovOyB9OworCQk1MDM4QkUyRjE0NzJBRDIzMDA5NUUwRDEgLyogU3R5
bGVDYWNoZWRTaGFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTAzOEJFMkQxNDcyQUQyMzAwOTVFMEQxIC8qIFN0eWxlQ2FjaGVkU2hhZGVyLmNw
cCAqLzsgfTsKKwkJNTAzOEJFMzAxNDcyQUQyMzAwOTVFMEQxIC8qIFN0eWxlQ2FjaGVkU2hhZGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDM4QkUy
RTE0NzJBRDIzMDA5NUUwRDEgLyogU3R5bGVDYWNoZWRTaGFkZXIuaCAqLzsgfTsKKwkJNTAzOEJF
NDAxNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDM4QkUzRTE0NzJBRDk4MDA5NUUwRDEgLyog
Q2FjaGVkU2hhZGVyLmNwcCAqLzsgfTsKKwkJNTAzOEJFNDExNDcyQUQ5ODAwOTVFMEQxIC8qIENh
Y2hlZFNoYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTAzOEJFM0YxNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5oICovOyB9OwogCQk1
MDhDQ0E0RjEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTA4Q0NBNEQxM0NGMTA2QjAwMzE1
MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuaCAqLzsgfTsKIAkJNTA4Q0NBNTAxM0NGMTA2QjAwMzE1
MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTA4Q0NBNEUxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dU
aHJlYWQuY3BwICovOyB9OwogCQk1MEU1NjZENjEzOUUzOEM1MDAyMTQ0MzMgLyogQ1NTV3JhcFNo
YXBlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MDFCQUFCMTEzOTUxMTRCMDBGN0FDRUIgLyogQ1NTV3JhcFNoYXBlcy5jcHAgKi87IH07CkBAIC04
NTUyLDYgKzg1NTgsMTIgQEAKIAkJNTAxQkE5RTExMzkzQ0VBMDAwRjdBQ0VCIC8qIENTU1dyYXBT
aGFwZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTV3JhcFNoYXBlcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MDFCQUFBODEzOTUwRTJDMDBGN0FDRUIg
LyogV2luZFJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2luZFJ1bGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTAxQkFBQjExMzk1MTE0QjAwRjdBQ0VC
IC8qIENTU1dyYXBTaGFwZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ1NTV3JhcFNoYXBlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUwMzhC
QzA2MTQ3MTFDREIwMDk1RTBEMSAvKiBXZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUwMzhCQzA5MTQ3MTFEMzQwMDk1RTBEMSAvKiBD
dXN0b21GaWx0ZXJPcGVyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
Q3VzdG9tRmlsdGVyT3BlcmF0aW9uLmg7IHBhdGggPSBmaWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJh
dGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MDM4QkUyRDE0NzJBRDIzMDA5
NUUwRDEgLyogU3R5bGVDYWNoZWRTaGFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gU3R5bGVDYWNoZWRTaGFkZXIuY3BwOyBwYXRoID0gc3R5bGUvU3R5bGVDYWNo
ZWRTaGFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MDM4QkUyRTE0NzJB
RDIzMDA5NUUwRDEgLyogU3R5bGVDYWNoZWRTaGFkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gU3R5bGVDYWNoZWRTaGFkZXIuaDsgcGF0aCA9IHN0eWxlL1N0eWxlQ2FjaGVk
U2hhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUwMzhCRTNFMTQ3MkFEOTgw
MDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ2FjaGVkU2hhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTAzOEJFM0YxNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRTaGFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTA4Q0NBNEQxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyRmxvd1RocmVhZC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MDhDQ0E0RTEzQ0YxMDZCMDAzMTUxRjMgLyogUmVu
ZGVyRmxvd1RocmVhZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBS
ZW5kZXJGbG93VGhyZWFkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTBCNDIx
NTcxNDY5NzY5NjAwODdFNjA0IC8qIFdlYktpdENTU1NoYWRlclZhbHVlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdENTU1NoYWRlclZhbHVlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNzU4Myw2ICsxNzU5NSw3IEBACiAJCUE3NUU4QjdGMEUxREUy
QjAwMDdGMjQ4MSAvKiBmaWx0ZXJzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKKwkJCQk1MDM4QkMwOTE0NzExRDM0MDA5NUUwRDEgLyogQ3VzdG9tRmlsdGVyT3Bl
cmF0aW9uLmggKi8sCiAJCQkJMTk4NDFCRkExMzY4MzZBMTAwNkVCQkI5IC8qIGFybSAqLywKIAkJ
CQlBMUUxMTU0MzEzMDE1QzNEMDA1NEFDOEMgLyogRGlzdGFudExpZ2h0U291cmNlLmNwcCAqLywK
IAkJCQk4NDczMEQ1QTEyNDhGMEIzMDBEM0E5QzkgLyogRGlzdGFudExpZ2h0U291cmNlLmggKi8s
CkBAIC0xODQ4MSw2ICsxODQ5NCw4IEBACiAJCUE4RDJCMjUyMTI4N0E1NjAwMEFGNEREQSAvKiBj
YWNoZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTAz
OEJFM0UxNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5jcHAgKi8sCisJCQkJNTAzOEJF
M0YxNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5oICovLAogCQkJCUJDQjE2QzAwMDk3
OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRDU1NTdHlsZVNoZWV0LmNwcCAqLywKIAkJCQlCQ0IxNkMw
MTA5NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGVkQ1NTU3R5bGVTaGVldC5oICovLAogCQkJCUJDNjRC
NEM5MENCNDI5NUQwMDVGMkI2MiAvKiBDYWNoZWRGb250LmNwcCAqLywKQEAgLTE5NzQ4LDYgKzE5
NzYzLDggQEAKIAkJQkM4QzhGQUEwRERDRDJGMjAwQjU5MkY0IC8qIHN0eWxlICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1MDM4QkUyRDE0NzJBRDIzMDA5
NUUwRDEgLyogU3R5bGVDYWNoZWRTaGFkZXIuY3BwICovLAorCQkJCTUwMzhCRTJFMTQ3MkFEMjMw
MDk1RTBEMSAvKiBTdHlsZUNhY2hlZFNoYWRlci5oICovLAogCQkJCUJDNUVCNUUwMEU4MUJFODcw
MEIyNTk2NSAvKiBCb3JkZXJEYXRhLmggKi8sCiAJCQkJQkM1RUI1REEwRTgxQjdFQTAwQjI1OTY1
IC8qIEJvcmRlclZhbHVlLmggKi8sCiAJCQkJQkM1RUI1REUwRTgxQjlBQjAwQjI1OTY1IC8qIENv
bGxhcHNlZEJvcmRlclZhbHVlLmggKi8sCkBAIC0yMDU2Niw2ICsyMDU4Myw4IEBACiAJCUY1MjNE
MTg0MDJERTQyRTgwMTg2MzVDQSAvKiBjc3MgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTUwMzhCQzA2MTQ3MTFDREIwMDk1RTBEMSAvKiBXZWJLaXRDU1NT
aGFkZXJWYWx1ZS5jcHAgKi8sCisJCQkJNTBCNDIxNTcxNDY5NzY5NjAwODdFNjA0IC8qIFdlYktp
dENTU1NoYWRlclZhbHVlLmggKi8sCiAJCQkJQUQwM0FBRjgxNDY4NDUzOTAwQTM5QjVCIC8qIENT
U1ZhbHVlLmNwcCAqLywKIAkJCQlDQUU5RjkwRDE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0
UmF0aW9WYWx1ZS5jcHAgKi8sCiAJCQkJQ0FFOUY5MEUxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0Fz
cGVjdFJhdGlvVmFsdWUuaCAqLywKQEAgLTI0NjkxLDYgKzI0NzEwLDkgQEAKIAkJCQkyOUNENjFE
RTE0NkQwMjg5MDA2OEU4MkEgLyogV2ViS2l0Q1NTU2hhZGVyVmFsdWUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNERjY1Q0M4MTQ1QjFFNzUwMEM0QzdBQSAvKiBNZWRpYUNvbnRyb2xsZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUNERjY1Q0NBMTQ1QjQ0ODgwMEM0QzdBQSAvKiBNZWRpYUNvbnRyb2xs
ZXJJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTUwMzhCQzBCMTQ3MTFEMzQwMDk1RTBE
MSAvKiBDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTUwMzhCRTMw
MTQ3MkFEMjMwMDk1RTBEMSAvKiBTdHlsZUNhY2hlZFNoYWRlci5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJNTAzOEJFNDExNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CkBAIC0yNzU2MCw2ICsyNzU4Miw5IEBACiAJCQkJNzEzNDQ5NkQxNDY5NDFCMzAwNzIwMzEy
IC8qIFNWR0xlbmd0aENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc0RDJEQTQxNDZB
NTM1RDAwRDUxRjhCIC8qIFNlY3VyaXR5UG9saWN5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMx
MzEzRjY1MTQ0M0IzNUYwMDZFMkE5MCAvKiBGaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAgaW4gU291
cmNlcyAqLywKKwkJCQk1MDM4QkMwNzE0NzExQ0RCMDA5NUUwRDEgLyogV2ViS2l0Q1NTU2hhZGVy
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTAzOEJFMkYxNDcyQUQyMzAwOTVFMEQxIC8q
IFN0eWxlQ2FjaGVkU2hhZGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUwMzhCRTQwMTQ3MkFE
OTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCmluZGV4IGZk
MWZiMzIuLmZmZmQ2Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC00MCw2ICs0MCw5IEBACiAjaW5jbHVkZSAiQ1NTU2Vs
ZWN0b3IuaCIKICNpbmNsdWRlICJDU1NUaW1pbmdGdW5jdGlvblZhbHVlLmgiCiAjaW5jbHVkZSAi
Q1NTVmFsdWVMaXN0LmgiCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorI2luY2x1ZGUgIkN1c3Rv
bUZpbHRlck9wZXJhdGlvbi5oIgorI2VuZGlmCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRm9udEZlYXR1cmVTZXR0aW5ncy5oIgpA
QCAtNjAsNiArNjMsOCBAQAogI2luY2x1ZGUgIkRhc2hib2FyZFJlZ2lvbi5oIgogI2VuZGlmCiAK
KyNpbmNsdWRlIDxhbGdvcml0aG0+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gTGlzdCBv
ZiBhbGwgcHJvcGVydGllcyB3ZSBrbm93IGhvdyB0byBjb21wdXRlLCBvbWl0dGluZyBzaG9ydGhh
bmRzLgpAQCAtNzM3LDggKzc0MiwxOCBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb246OnZhbHVlRm9yRmlsdGVyKFJlbmRlclN0eWxlKiBzdAogICAgICAg
ICB9CiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQogICAgICAgICBjYXNlIEZpbHRlck9wZXJhdGlv
bjo6Q1VTVE9NOiB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGN1c3RvbSBzaGFk
ZXIgZnVuY3Rpb24uCi0gICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzEzOTYKKyAgICAgICAgICAgIEN1c3RvbUZpbHRlck9wZXJhdGlvbiogY3Vz
dG9tT3BlcmF0aW9uID0gc3RhdGljX2Nhc3Q8Q3VzdG9tRmlsdGVyT3BlcmF0aW9uKj4oZmlsdGVy
T3BlcmF0aW9uKTsKKyAgICAgICAgICAgIGZpbHRlclZhbHVlID0gV2ViS2l0Q1NTRmlsdGVyVmFs
dWU6OmNyZWF0ZShXZWJLaXRDU1NGaWx0ZXJWYWx1ZTo6Q3VzdG9tRmlsdGVyT3BlcmF0aW9uKTsK
KyAgICAgICAgICAgIAorICAgICAgICAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gc2hhZGVyc0xp
c3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CisgICAgICAgICAgICBp
ZiAoY3VzdG9tT3BlcmF0aW9uLT52ZXJ0ZXhTaGFkZXIoKSkKKyAgICAgICAgICAgICAgICBzaGFk
ZXJzTGlzdC0+YXBwZW5kKGN1c3RvbU9wZXJhdGlvbi0+dmVydGV4U2hhZGVyKCktPmNzc1ZhbHVl
KCkpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHNoYWRlcnNMaXN0LT5hcHBl
bmQocHJpbWl0aXZlVmFsdWVDYWNoZS0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9u
ZSkpOworICAgICAgICAgICAgaWYgKGN1c3RvbU9wZXJhdGlvbi0+ZnJhZ21lbnRTaGFkZXIoKSkK
KyAgICAgICAgICAgICAgICBzaGFkZXJzTGlzdC0+YXBwZW5kKGN1c3RvbU9wZXJhdGlvbi0+ZnJh
Z21lbnRTaGFkZXIoKS0+Y3NzVmFsdWUoKSk7CisgICAgICAgICAgICBmaWx0ZXJWYWx1ZS0+YXBw
ZW5kKHNoYWRlcnNMaXN0LnJlbGVhc2UoKSk7CisgICAgICAgICAgICAKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAppbmRleCAwNWQxNDYzLi43NjFjYWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
U2VsZWN0b3IuY3BwCkBAIC0xMjIsNiArMTIyLDE0IEBACiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIK
ICNlbmRpZgogCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorI2luY2x1ZGUgIkN1c3RvbUZpbHRl
ck9wZXJhdGlvbi5oIgorI2luY2x1ZGUgIlN0eWxlQ2FjaGVkU2hhZGVyLmgiCisjaW5jbHVkZSAi
U3R5bGVQZW5kaW5nU2hhZGVyLmgiCisjaW5jbHVkZSAiU3R5bGVTaGFkZXIuaCIKKyNpbmNsdWRl
ICJXZWJLaXRDU1NTaGFkZXJWYWx1ZS5oIgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM0OSw2ICszNTcsOSBAQCBDU1NTdHlsZVNlbGVj
dG9yOjpDU1NTdHlsZVNlbGVjdG9yKERvY3VtZW50KiBkb2N1bWVudCwgU3R5bGVTaGVldExpc3Qq
IHN0eWxlU2hlZQogICAgICwgbV9hcHBseVByb3BlcnR5VG9SZWd1bGFyU3R5bGUodHJ1ZSkKICAg
ICAsIG1fYXBwbHlQcm9wZXJ0eVRvVmlzaXRlZExpbmtTdHlsZShmYWxzZSkKICAgICAsIG1fYXBw
bHlQcm9wZXJ0eShDU1NTdHlsZUFwcGx5UHJvcGVydHk6OnNoYXJlZENTU1N0eWxlQXBwbHlQcm9w
ZXJ0eSgpKQorI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyAgICAsIG1faGFzUGVuZGluZ1NoYWRl
cnMoZmFsc2UpCisjZW5kaWYKIHsKICAgICBFbGVtZW50KiByb290ID0gZG9jdW1lbnQtPmRvY3Vt
ZW50RWxlbWVudCgpOwogCkBAIC0xMzA3LDYgKzEzMTgsMTEgQEAgUGFzc1JlZlB0cjxSZW5kZXJT
dHlsZT4gQ1NTU3R5bGVTZWxlY3Rvcjo6c3R5bGVGb3JLZXlmcmFtZShjb25zdCBSZW5kZXJTdHls
ZSogZWwKIAogICAgIC8vIFN0YXJ0IGxvYWRpbmcgaW1hZ2VzIHJlZmVyZW5jZWQgYnkgdGhpcyBz
dHlsZS4KICAgICBsb2FkUGVuZGluZ0ltYWdlcygpOworICAgIAorI2lmIEVOQUJMRShDU1NfU0hB
REVSUykKKyAgICAvLyBTdGFydCBsb2FkaW5nIHRoZSBzaGFkZXJzIHJlZmVyZW5jZWQgYnkgdGhp
cyBzdHlsZS4KKyAgICBsb2FkUGVuZGluZ1NoYWRlcnMoKTsKKyNlbmRpZgogCiAgICAgLy8gQWRk
IGFsbCB0aGUgYW5pbWF0aW5nIHByb3BlcnRpZXMgdG8gdGhlIGtleWZyYW1lLgogICAgIGlmIChr
ZXlmcmFtZVJ1bGUtPnN0eWxlKCkpIHsKQEAgLTE0MTYsNiArMTQzMiwxMSBAQCBQYXNzUmVmUHRy
PFJlbmRlclN0eWxlPiBDU1NTdHlsZVNlbGVjdG9yOjpwc2V1ZG9TdHlsZUZvckVsZW1lbnQoUHNl
dWRvSWQgcHNldWRvLAogICAgIC8vIFN0YXJ0IGxvYWRpbmcgaW1hZ2VzIHJlZmVyZW5jZWQgYnkg
dGhpcyBzdHlsZS4KICAgICBsb2FkUGVuZGluZ0ltYWdlcygpOwogCisjaWYgRU5BQkxFKENTU19T
SEFERVJTKQorICAgIC8vIFN0YXJ0IGxvYWRpbmcgdGhlIHNoYWRlcnMgcmVmZXJlbmNlZCBieSB0
aGlzIHN0eWxlLgorICAgIGxvYWRQZW5kaW5nU2hhZGVycygpOworI2VuZGlmCisKICAgICAvLyBO
b3cgcmV0dXJuIHRoZSBzdHlsZS4KICAgICByZXR1cm4gbV9zdHlsZS5yZWxlYXNlKCk7CiB9CkBA
IC0xNDQ5LDYgKzE0NzAsMTEgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gQ1NTU3R5bGVTZWxl
Y3Rvcjo6c3R5bGVGb3JQYWdlKGludCBwYWdlSW5kZXgpCiAgICAgLy8gU3RhcnQgbG9hZGluZyBp
bWFnZXMgcmVmZXJlbmNlZCBieSB0aGlzIHN0eWxlLgogICAgIGxvYWRQZW5kaW5nSW1hZ2VzKCk7
CiAKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgLy8gU3RhcnQgbG9hZGluZyB0aGUgc2hh
ZGVycyByZWZlcmVuY2VkIGJ5IHRoaXMgc3R5bGUuCisgICAgbG9hZFBlbmRpbmdTaGFkZXJzKCk7
CisjZW5kaWYKKwogICAgIC8vIE5vdyByZXR1cm4gdGhlIHN0eWxlLgogICAgIHJldHVybiBtX3N0
eWxlLnJlbGVhc2UoKTsKIH0KQEAgLTIzMDUsNyArMjMzMSwxMSBAQCB2b2lkIENTU1N0eWxlU2Vs
ZWN0b3I6OmFwcGx5TWF0Y2hlZERlY2xhcmF0aW9ucyhjb25zdCBNYXRjaFJlc3VsdCYgbWF0Y2hS
ZXN1bHQpCiAgICAgYXBwbHlEZWNsYXJhdGlvbnM8ZmFsc2U+KHRydWUsIG1hdGNoUmVzdWx0LmZp
cnN0VUFSdWxlLCBtYXRjaFJlc3VsdC5sYXN0VUFSdWxlLCBhcHBseUluaGVyaXRlZE9ubHkpOwog
ICAgIAogICAgIGxvYWRQZW5kaW5nSW1hZ2VzKCk7Ci0gICAgICAgIAorICAgIAorI2lmIEVOQUJM
RShDU1NfU0hBREVSUykKKyAgICBsb2FkUGVuZGluZ1NoYWRlcnMoKTsKKyNlbmRpZgorICAgIAog
ICAgIEFTU0VSVCghbV9mb250RGlydHkpOwogICAgIAogICAgIGlmIChjYWNoZWRTdHlsZSB8fCAh
Y2FjaGVIYXNoKQpAQCAtNTQwOCw2ICs1NDM4LDYzIEBAIHN0YXRpYyBGaWx0ZXJPcGVyYXRpb246
Ok9wZXJhdGlvblR5cGUgZmlsdGVyT3BlcmF0aW9uRm9yVHlwZShXZWJLaXRDU1NGaWx0ZXJWYWx1
CiAgICAgcmV0dXJuIEZpbHRlck9wZXJhdGlvbjo6Tk9ORTsKIH0KIAorI2lmIEVOQUJMRShDU1Nf
U0hBREVSUykKK1N0eWxlU2hhZGVyKiBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZVNoYWRlcihDU1NW
YWx1ZSogdmFsdWUpCit7CisgICAgaWYgKHZhbHVlLT5pc1dlYktpdENTU1NoYWRlclZhbHVlKCkp
CisgICAgICAgIHJldHVybiBjYWNoZWRPclBlbmRpbmdGcm9tVmFsdWUoc3RhdGljX2Nhc3Q8V2Vi
S2l0Q1NTU2hhZGVyVmFsdWUqPih2YWx1ZSkpOworICAgIHJldHVybiAwOworfQorCitTdHlsZVNo
YWRlciogQ1NTU3R5bGVTZWxlY3Rvcjo6Y2FjaGVkT3JQZW5kaW5nRnJvbVZhbHVlKFdlYktpdENT
U1NoYWRlclZhbHVlKiB2YWx1ZSkKK3sKKyAgICBTdHlsZVNoYWRlciogc2hhZGVyID0gdmFsdWUt
PmNhY2hlZE9yUGVuZGluZ1NoYWRlcigpOworICAgIGlmIChzaGFkZXIgJiYgc2hhZGVyLT5pc1Bl
bmRpbmdTaGFkZXIoKSkKKyAgICAgICAgbV9oYXNQZW5kaW5nU2hhZGVycyA9IHRydWU7CisgICAg
cmV0dXJuIHNoYWRlcjsKK30KKwordm9pZCBDU1NTdHlsZVNlbGVjdG9yOjpsb2FkUGVuZGluZ1No
YWRlcnMoKQoreworICAgIGlmICghbV9zdHlsZS0+aGFzRmlsdGVyKCkgfHwgIW1faGFzUGVuZGlu
Z1NoYWRlcnMpCisgICAgICAgIHJldHVybjsKKworICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBj
YWNoZWRSZXNvdXJjZUxvYWRlciA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3Vy
Y2VMb2FkZXIoKTsKKworICAgIFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiA+JiBmaWx0
ZXJPcGVyYXRpb25zID0gbV9zdHlsZS0+ZmlsdGVyKCkub3BlcmF0aW9ucygpOworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBmaWx0ZXJPcGVyYXRpb25zLnNpemUoKTsgKytpKSB7CisgICAg
ICAgIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGZpbHRlck9wZXJhdGlvbiA9IGZpbHRlck9wZXJh
dGlvbnMuYXQoaSk7CisgICAgICAgIGlmIChmaWx0ZXJPcGVyYXRpb24tPmdldE9wZXJhdGlvblR5
cGUoKSA9PSBGaWx0ZXJPcGVyYXRpb246OkNVU1RPTSkgeworICAgICAgICAgICAgQ3VzdG9tRmls
dGVyT3BlcmF0aW9uKiBjdXN0b21GaWx0ZXIgPSBzdGF0aWNfY2FzdDxDdXN0b21GaWx0ZXJPcGVy
YXRpb24qPihmaWx0ZXJPcGVyYXRpb24uZ2V0KCkpOworICAgICAgICAgICAgaWYgKGN1c3RvbUZp
bHRlci0+dmVydGV4U2hhZGVyKCkgJiYgY3VzdG9tRmlsdGVyLT52ZXJ0ZXhTaGFkZXIoKS0+aXNQ
ZW5kaW5nU2hhZGVyKCkpIHsKKyAgICAgICAgICAgICAgICBXZWJLaXRDU1NTaGFkZXJWYWx1ZSog
c2hhZGVyVmFsdWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdTaGFkZXIqPihjdXN0b21GaWx0
ZXItPnZlcnRleFNoYWRlcigpKS0+Y3NzU2hhZGVyVmFsdWUoKTsKKyAgICAgICAgICAgICAgICBj
dXN0b21GaWx0ZXItPnNldFZlcnRleFNoYWRlcihzaGFkZXJWYWx1ZS0+Y2FjaGVkU2hhZGVyKGNh
Y2hlZFJlc291cmNlTG9hZGVyKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY3Vz
dG9tRmlsdGVyLT5mcmFnbWVudFNoYWRlcigpICYmIGN1c3RvbUZpbHRlci0+ZnJhZ21lbnRTaGFk
ZXIoKS0+aXNQZW5kaW5nU2hhZGVyKCkpIHsKKyAgICAgICAgICAgICAgICBXZWJLaXRDU1NTaGFk
ZXJWYWx1ZSogc2hhZGVyVmFsdWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdTaGFkZXIqPihj
dXN0b21GaWx0ZXItPmZyYWdtZW50U2hhZGVyKCkpLT5jc3NTaGFkZXJWYWx1ZSgpOworICAgICAg
ICAgICAgICAgIGN1c3RvbUZpbHRlci0+c2V0RnJhZ21lbnRTaGFkZXIoc2hhZGVyVmFsdWUtPmNh
Y2hlZFNoYWRlcihjYWNoZWRSZXNvdXJjZUxvYWRlcikpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisgICAgfQorICAgIG1faGFzUGVuZGluZ1NoYWRlcnMgPSBmYWxzZTsKK30KKworUGFzc1Jl
ZlB0cjxDdXN0b21GaWx0ZXJPcGVyYXRpb24+IENTU1N0eWxlU2VsZWN0b3I6OmNyZWF0ZUN1c3Rv
bUZpbHRlck9wZXJhdGlvbihXZWJLaXRDU1NGaWx0ZXJWYWx1ZSogZmlsdGVyVmFsdWUpCit7Cisg
ICAgQVNTRVJUKGZpbHRlclZhbHVlLT5sZW5ndGgoKSk7CisKKyAgICBDU1NWYWx1ZSogc2hhZGVy
c1ZhbHVlID0gZmlsdGVyVmFsdWUtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soMCk7CisgICAgQVNT
RVJUKHNoYWRlcnNWYWx1ZS0+aXNWYWx1ZUxpc3QoKSk7CisgICAgQ1NTVmFsdWVMaXN0KiBzaGFk
ZXJzTGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHNoYWRlcnNWYWx1ZSk7CisKKyAg
ICBBU1NFUlQoc2hhZGVyc0xpc3QtPmxlbmd0aCgpKTsKKyAgICBSZWZQdHI8U3R5bGVTaGFkZXI+
IHZlcnRleFNoYWRlciA9IHN0eWxlU2hhZGVyKHNoYWRlcnNMaXN0LT5pdGVtV2l0aG91dEJvdW5k
c0NoZWNrKDApKTsKKyAgICBSZWZQdHI8U3R5bGVTaGFkZXI+IGZyYWdtZW50U2hhZGVyID0gKHNo
YWRlcnNMaXN0LT5sZW5ndGgoKSA+IDEpID8gc3R5bGVTaGFkZXIoc2hhZGVyc0xpc3QtPml0ZW1X
aXRob3V0Qm91bmRzQ2hlY2soMSkpIDogMDsKKyAgICAKKyAgICByZXR1cm4gQ3VzdG9tRmlsdGVy
T3BlcmF0aW9uOjpjcmVhdGUodmVydGV4U2hhZGVyLCBmcmFnbWVudFNoYWRlcik7Cit9CisjZW5k
aWYKKwogYm9vbCBDU1NTdHlsZVNlbGVjdG9yOjpjcmVhdGVGaWx0ZXJPcGVyYXRpb25zKENTU1Zh
bHVlKiBpblZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIFJlbmRlclN0eWxlKiByb290U3R5bGUs
IEZpbHRlck9wZXJhdGlvbnMmIG91dE9wZXJhdGlvbnMpCiB7CiAgICAgaWYgKCFpblZhbHVlIHx8
ICFpblZhbHVlLT5pc1ZhbHVlTGlzdCgpKSB7CkBAIC01NDI3LDggKzU1MTQsOSBAQCBib29sIENT
U1N0eWxlU2VsZWN0b3I6OmNyZWF0ZUZpbHRlck9wZXJhdGlvbnMoQ1NTVmFsdWUqIGluVmFsdWUs
IFJlbmRlclN0eWxlKiBzdAogCiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQogICAgICAgICBpZiAo
b3BlcmF0aW9uVHlwZSA9PSBGaWx0ZXJPcGVyYXRpb246OkNVU1RPTSkgewotICAgICAgICAgICAg
Ly8gRklYTUU6IEltcGxlbWVudCB0aGUgZmlsdGVyIG9wZXJhdGlvbiBmb3IgdGhlIGN1c3RvbSBz
aGFkZXIuCi0gICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzE0NDYKKyAgICAgICAgICAgIFJlZlB0cjxDdXN0b21GaWx0ZXJPcGVyYXRpb24+IG9w
ZXJhdGlvbiA9IGNyZWF0ZUN1c3RvbUZpbHRlck9wZXJhdGlvbihmaWx0ZXJWYWx1ZSk7CisgICAg
ICAgICAgICBpZiAob3BlcmF0aW9uKQorICAgICAgICAgICAgICAgIG9wZXJhdGlvbnMub3BlcmF0
aW9ucygpLmFwcGVuZChvcGVyYXRpb24pOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgKaW5kZXggZGZiOWVh
Yy4uYzk2ZjZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0
b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oCkBAIC01Myw2
ICs1Myw3IEBAIGNsYXNzIENTU1N0eWxlUnVsZTsKIGNsYXNzIENTU1N0eWxlU2hlZXQ7CiBjbGFz
cyBDU1NWYWx1ZTsKIGNsYXNzIENvbnRhaW5lck5vZGU7CitjbGFzcyBDdXN0b21GaWx0ZXJPcGVy
YXRpb247CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsKQEAg
LTY2LDExICs2NywxNCBAQCBjbGFzcyBSdWxlRGF0YTsKIGNsYXNzIFJ1bGVTZXQ7CiBjbGFzcyBT
ZXR0aW5nczsKIGNsYXNzIFN0eWxlSW1hZ2U7CitjbGFzcyBTdHlsZVNoYWRlcjsKIGNsYXNzIFN0
eWxlU2hlZXQ7CiBjbGFzcyBTdHlsZVNoZWV0TGlzdDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CiBj
bGFzcyBXZWJLaXRDU1NLZXlmcmFtZVJ1bGU7CiBjbGFzcyBXZWJLaXRDU1NLZXlmcmFtZXNSdWxl
OworY2xhc3MgV2ViS2l0Q1NTRmlsdGVyVmFsdWU7CitjbGFzcyBXZWJLaXRDU1NTaGFkZXJWYWx1
ZTsKIAogY2xhc3MgTWVkaWFRdWVyeVJlc3VsdCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
TWVkaWFRdWVyeVJlc3VsdCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtMjAyLDcgKzIw
NiwxMyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgYm9vbCBjcmVh
dGVGaWx0ZXJPcGVyYXRpb25zKENTU1ZhbHVlKiBpblZhbHVlLCBSZW5kZXJTdHlsZSogaW5TdHls
ZSwgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSwgRmlsdGVyT3BlcmF0aW9ucyYgb3V0T3BlcmF0aW9u
cyk7CisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorICAgIFN0eWxlU2hhZGVyKiBzdHlsZVNoYWRl
cihDU1NWYWx1ZSopOworICAgIFN0eWxlU2hhZGVyKiBjYWNoZWRPclBlbmRpbmdGcm9tVmFsdWUo
V2ViS2l0Q1NTU2hhZGVyVmFsdWUqKTsKKyAgICBQYXNzUmVmUHRyPEN1c3RvbUZpbHRlck9wZXJh
dGlvbj4gY3JlYXRlQ3VzdG9tRmlsdGVyT3BlcmF0aW9uKFdlYktpdENTU0ZpbHRlclZhbHVlKik7
CisgICAgdm9pZCBsb2FkUGVuZGluZ1NoYWRlcnMoKTsKICNlbmRpZgorI2VuZGlmIC8vIEVOQUJM
RShDU1NfRklMVEVSUykKIAogICAgIHN0cnVjdCBGZWF0dXJlcyB7CiAgICAgICAgIEZlYXR1cmVz
KCk7CkBAIC0zODYsNiArMzk2LDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2FwcGx5UHJvcGVy
dHlUb1JlZ3VsYXJTdHlsZTsKICAgICBib29sIG1fYXBwbHlQcm9wZXJ0eVRvVmlzaXRlZExpbmtT
dHlsZTsKICAgICBjb25zdCBDU1NTdHlsZUFwcGx5UHJvcGVydHkmIG1fYXBwbHlQcm9wZXJ0eTsK
KyAgICAKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgYm9vbCBtX2hhc1BlbmRpbmdTaGFk
ZXJzOworI2VuZGlmCiAKICAgICBmcmllbmQgY2xhc3MgQ1NTU3R5bGVBcHBseVByb3BlcnR5Owog
ICAgIGZyaWVuZCBib29sIG9wZXJhdG9yPT0oY29uc3QgTWF0Y2hlZFN0eWxlRGVjbGFyYXRpb24m
LCBjb25zdCBNYXRjaGVkU3R5bGVEZWNsYXJhdGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9X
ZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNTFjZjhhMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NTaGFkZXJWYWx1ZS5jcHAKQEAgLTAsMCArMSw3OCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEx
IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisg
KiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisj
aW5jbHVkZSAiV2ViS2l0Q1NTU2hhZGVyVmFsdWUuaCIKKworI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJTdHlsZUNhY2hl
ZFNoYWRlci5oIgorI2luY2x1ZGUgIlN0eWxlUGVuZGluZ1NoYWRlci5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1dlYktpdENTU1NoYWRlclZhbHVlOjpXZWJLaXRDU1NTaGFkZXJWYWx1ZShj
b25zdCBTdHJpbmcmIHVybCkKKyAgICA6IENTU1ByaW1pdGl2ZVZhbHVlKFdlYktpdENTU1NoYWRl
ckNsYXNzLCB1cmwsIENTU19VUkkpCisgICAgLCBtX2FjY2Vzc2VkU2hhZGVyKGZhbHNlKQorewor
fQorCitXZWJLaXRDU1NTaGFkZXJWYWx1ZTo6fldlYktpdENTU1NoYWRlclZhbHVlKCkKK3sKK30K
KworU3R5bGVDYWNoZWRTaGFkZXIqIFdlYktpdENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIo
Q2FjaGVkUmVzb3VyY2VMb2FkZXIqIGxvYWRlcikKK3sKKyAgICBBU1NFUlQobG9hZGVyKTsKKwor
ICAgIGlmICghbV9hY2Nlc3NlZFNoYWRlcikgeworICAgICAgICBtX2FjY2Vzc2VkU2hhZGVyID0g
dHJ1ZTsKKworICAgICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChsb2FkZXItPmRvY3VtZW50
KCktPmNvbXBsZXRlVVJMKGdldFN0cmluZ1ZhbHVlKCkpKTsKKyAgICAgICAgaWYgKENhY2hlZFNo
YWRlciogY2FjaGVkU2hhZGVyID0gbG9hZGVyLT5yZXF1ZXN0U2hhZGVyKHJlcXVlc3QpKQorICAg
ICAgICAgICAgbV9zaGFkZXIgPSBTdHlsZUNhY2hlZFNoYWRlcjo6Y3JlYXRlKGNhY2hlZFNoYWRl
cik7CisgICAgfQorCisgICAgcmV0dXJuIChtX3NoYWRlciAmJiBtX3NoYWRlci0+aXNDYWNoZWRT
aGFkZXIoKSkgPyBzdGF0aWNfY2FzdDxTdHlsZUNhY2hlZFNoYWRlcio+KG1fc2hhZGVyLmdldCgp
KSA6IDA7Cit9CisKK1N0eWxlU2hhZGVyKiBXZWJLaXRDU1NTaGFkZXJWYWx1ZTo6Y2FjaGVkT3JQ
ZW5kaW5nU2hhZGVyKCkKK3sKKyAgICBpZiAoIW1fc2hhZGVyKQorICAgICAgICBtX3NoYWRlciA9
IFN0eWxlUGVuZGluZ1NoYWRlcjo6Y3JlYXRlKHRoaXMpOworCisgICAgcmV0dXJuIG1fc2hhZGVy
LmdldCgpOworfQorCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShDU1NfU0hBREVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NT
aGFkZXJWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmgK
aW5kZXggNTVmYTY1Yy4uODI1NDgyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dl
YktpdENTU1NoYWRlclZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1No
YWRlclZhbHVlLmgKQEAgLTMyLDE5ICszMiwyOCBAQAogCiAjaWYgRU5BQkxFKENTU19TSEFERVJT
KQogCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJDU1NQcmlt
aXRpdmVWYWx1ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIENhY2hlZFJlc291
cmNlTG9hZGVyOworY2xhc3MgU3R5bGVDYWNoZWRTaGFkZXI7CitjbGFzcyBTdHlsZVNoYWRlcjsK
KwogY2xhc3MgV2ViS2l0Q1NTU2hhZGVyVmFsdWUgOiBwdWJsaWMgQ1NTUHJpbWl0aXZlVmFsdWUg
ewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYktpdENTU1NoYWRlclZhbHVlPiBj
cmVhdGUoY29uc3QgU3RyaW5nJiB1cmwpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJLaXRDU1NT
aGFkZXJWYWx1ZSh1cmwpKTsgfQorICAgIH5XZWJLaXRDU1NTaGFkZXJWYWx1ZSgpOwogCisgICAg
U3R5bGVDYWNoZWRTaGFkZXIqIGNhY2hlZFNoYWRlcihDYWNoZWRSZXNvdXJjZUxvYWRlciopOwor
ICAgIFN0eWxlU2hhZGVyKiBjYWNoZWRPclBlbmRpbmdTaGFkZXIoKTsKKyAgICAKIHByaXZhdGU6
Ci0gICAgV2ViS2l0Q1NTU2hhZGVyVmFsdWUoY29uc3QgU3RyaW5nJiB1cmwpCi0gICAgICAgIDog
Q1NTUHJpbWl0aXZlVmFsdWUoV2ViS2l0Q1NTU2hhZGVyQ2xhc3MsIHVybCwgQ1NTX1VSSSkKLSAg
ICB7Ci0gICAgfQorICAgIFdlYktpdENTU1NoYWRlclZhbHVlKGNvbnN0IFN0cmluZyYgdXJsKTsK
KyAgICAKKyAgICBSZWZQdHI8U3R5bGVTaGFkZXI+IG1fc2hhZGVyOworICAgIGJvb2wgbV9hY2Nl
c3NlZFNoYWRlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCmluZGV4IGI0OWRhYmQuLmRkZjk1
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNw
cApAQCAtNzUsNiArNzUsMTAgQEAgc3RhdGljIFJlc291cmNlTG9hZFByaW9yaXR5IGRlZmF1bHRQ
cmlvcml0eUZvclJlc291cmNlVHlwZShDYWNoZWRSZXNvdXJjZTo6VHlwZQogICAgICAgICBjYXNl
IENhY2hlZFJlc291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZToKICAgICAgICAgICAgIHJldHVybiBS
ZXNvdXJjZUxvYWRQcmlvcml0eUxvdzsKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfU0hBREVSUykK
KyAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6U2hhZGVyUmVzb3VyY2U6CisgICAgICAgICAg
ICByZXR1cm4gUmVzb3VyY2VMb2FkUHJpb3JpdHlNZWRpdW07CisjZW5kaWYKICAgICB9CiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIFJlc291cmNlTG9hZFByaW9yaXR5TG93
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaAppbmRleCA1
ZDExNDY3Li40MDZhNDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2UuaApAQCAtNzYsNiArNzYsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQogICAgICAgICAsIFRleHRUcmFja1Jlc291cmNlCiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NT
X1NIQURFUlMpCisgICAgICAgICwgU2hhZGVyUmVzb3VyY2UKKyNlbmRpZgogICAgIH07CiAKICAg
ICBlbnVtIFN0YXR1cyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlTG9hZGVyLmNwcAppbmRleCBlN2YzOTM2Li40M2ZhYzQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAK
QEAgLTU2LDYgKzU2LDEwIEBACiAjaW5jbHVkZSAiQ2FjaGVkVGV4dFRyYWNrLmgiCiAjZW5kaWYK
IAorI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyNpbmNsdWRlICJDYWNoZWRTaGFkZXIuaCIKKyNl
bmRpZgorCiAjZGVmaW5lIFBSRUxPQURfREVCVUcgMAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC04OSw2ICs5MywxMCBAQCBzdGF0aWMgQ2FjaGVkUmVzb3VyY2UqIGNyZWF0ZVJlc291cmNlKENh
Y2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVzdAogICAgIGNhc2UgQ2FjaGVk
UmVzb3VyY2U6OlRleHRUcmFja1Jlc291cmNlOgogICAgICAgICByZXR1cm4gbmV3IENhY2hlZFRl
eHRUcmFjayhyZXF1ZXN0KTsKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyAgICBj
YXNlIENhY2hlZFJlc291cmNlOjpTaGFkZXJSZXNvdXJjZToKKyAgICAgICAgcmV0dXJuIG5ldyBD
YWNoZWRTaGFkZXIocmVxdWVzdCk7CisjZW5kaWYKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CiAgICAgcmV0dXJuIDA7CkBAIC0xNjgsNiArMTc2LDEzIEBAIENhY2hlZFRleHRUcmFj
ayogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RUZXh0VHJhY2soUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0CiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShDU1NfU0hBREVSUykKK0NhY2hlZFNo
YWRlciogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RTaGFkZXIoUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0KQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNoZWRTaGFkZXIqPihyZXF1
ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OlNoYWRlclJlc291cmNlLCByZXF1ZXN0LCBTdHJp
bmcoKSwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygpKSk7Cit9CisjZW5kaWYKKwogQ2Fj
aGVkQ1NTU3R5bGVTaGVldCogQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OnJlcXVlc3RDU1NTdHlsZVNo
ZWV0KFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBjaGFyc2V0LCBSZXNv
dXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2Fj
aGVkQ1NTU3R5bGVTaGVldCo+KHJlcXVlc3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6Q1NTU3R5
bGVTaGVldCwgcmVxdWVzdCwgY2hhcnNldCwgZGVmYXVsdENhY2hlZFJlc291cmNlT3B0aW9ucygp
LCBwcmlvcml0eSkpOwpAQCAtMjQyLDYgKzI1Nyw5IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXI6OmNoZWNrSW5zZWN1cmVDb250ZW50KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0
CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlRleHRU
cmFja1Jlc291cmNlOgogI2VuZGlmCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorICAgIGNhc2Ug
Q2FjaGVkUmVzb3VyY2U6OlNoYWRlclJlc291cmNlOgorI2VuZGlmCiAgICAgY2FzZSBDYWNoZWRS
ZXNvdXJjZTo6SW1hZ2VSZXNvdXJjZToKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpGb250UmVz
b3VyY2U6IHsKICAgICAgICAgLy8gVGhlc2UgcmVzb3VyY2VzIGNhbiBjb3JydXB0IG9ubHkgdGhl
IGZyYW1lJ3MgcGl4ZWxzLgpAQCAtMjkwLDYgKzMwOCw5IEBAIGJvb2wgQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OmNhblJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgS1VSTCYg
dXJsCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlRl
eHRUcmFja1Jlc291cmNlOgogI2VuZGlmCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorICAgIGNh
c2UgQ2FjaGVkUmVzb3VyY2U6OlNoYWRlclJlc291cmNlOgorI2VuZGlmCiAgICAgICAgIC8vIFRo
ZXNlIHR5cGVzIG9mIHJlc291cmNlcyBjYW4gYmUgbG9hZGVkIGZyb20gYW55IG9yaWdpbi4KICAg
ICAgICAgLy8gRklYTUU6IEFyZSB3ZSBzdXJlIGFib3V0IENhY2hlZFJlc291cmNlOjpGb250UmVz
b3VyY2U/CiAgICAgICAgIGJyZWFrOwpAQCAtMzE5LDYgKzM0MCwxMCBAQCBib29sIENhY2hlZFJl
c291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0
IEtVUkwmIHVybAogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGJyZWFrOworI2lm
IEVOQUJMRShDU1NfU0hBREVSUykKKyAgICBjYXNlIENhY2hlZFJlc291cmNlOjpTaGFkZXJSZXNv
dXJjZToKKyAgICAgICAgLy8gU2luY2Ugc2hhZGVycyBhcmUgcmVmZXJlbmNlZCBmcm9tIENTUyBT
dHlsZXMgdXNlIHRoZSBzYW1lIHJ1bGVzIGhlcmUuCisjZW5kaWYKICAgICBjYXNlIENhY2hlZFJl
c291cmNlOjpDU1NTdHlsZVNoZWV0OgogICAgICAgICBpZiAoIW1fZG9jdW1lbnQtPmNvbnRlbnRT
ZWN1cml0eVBvbGljeSgpLT5hbGxvd1N0eWxlRnJvbVNvdXJjZSh1cmwpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaAppbmRleCAzNTZiYjBjLi44NmRjYTBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaApAQCAtNDQsNiAr
NDQsNyBAQCBjbGFzcyBDYWNoZWRGb250OwogY2xhc3MgQ2FjaGVkSW1hZ2U7CiBjbGFzcyBDYWNo
ZWRSYXdSZXNvdXJjZTsKIGNsYXNzIENhY2hlZFNjcmlwdDsKK2NsYXNzIENhY2hlZFNoYWRlcjsK
IGNsYXNzIENhY2hlZFRleHRUcmFjazsKIGNsYXNzIENhY2hlZFhTTFN0eWxlU2hlZXQ7CiBjbGFz
cyBEb2N1bWVudDsKQEAgLTc3LDYgKzc4LDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShWSURFT19U
UkFDSykKICAgICBDYWNoZWRUZXh0VHJhY2sqIHJlcXVlc3RUZXh0VHJhY2soUmVzb3VyY2VSZXF1
ZXN0Jik7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgQ2FjaGVkU2hhZGVy
KiByZXF1ZXN0U2hhZGVyKFJlc291cmNlUmVxdWVzdCYpOworI2VuZGlmCiAKICAgICAvLyBMb2dz
IGFuIGFjY2VzcyBkZW5pZWQgbWVzc2FnZSB0byB0aGUgY29uc29sZSBmb3IgdGhlIHNwZWNpZmll
ZCBVUkwuCiAgICAgdm9pZCBwcmludEFjY2Vzc0RlbmllZE1lc3NhZ2UoY29uc3QgS1VSTCYgdXJs
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRT
aGFkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWQ4ZjU0MAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwCkBAIC0w
LDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMSBBZG9iZSBTeXN0ZW1zIEluY29ycG9y
YXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIOKA
nEFTIElT4oCdIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJF
CisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorCisjaW5jbHVkZSAiQ2FjaGVkU2hhZGVy
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ2FjaGVkU2hhZGVyOjpDYWNoZWRTaGFkZXIo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCisgICAgOiBDYWNoZWRSZXNv
dXJjZShyZXNvdXJjZVJlcXVlc3QsIFNoYWRlclJlc291cmNlKQoreworfQorCitDYWNoZWRTaGFk
ZXI6On5DYWNoZWRTaGFkZXIoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoQ1NTX1NIQURFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU2hhZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGRlYWQw
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRT
aGFkZXIuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IDIwMTEgQWRvYmUgU3lz
dGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgQ2FjaGVkU2hhZGVyX2gKKyNkZWZpbmUgQ2FjaGVkU2hhZGVyX2gKKworI2lmIEVOQUJM
RShDU1NfU0hBREVSUykKKworI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgQ2FjaGVkU2hhZGVyIDogcHVibGljIENhY2hlZFJlc291cmNl
IHsKK3B1YmxpYzoKKyAgICBDYWNoZWRTaGFkZXIoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7Cisg
ICAgdmlydHVhbCB+Q2FjaGVkU2hhZGVyKCk7Cit9OworCit9CisKKyNlbmRpZiAvLyBFTkFCTEUo
Q1NTX1NIQURFUlMpCisKKyNlbmRpZiAvLyBDYWNoZWRTaGFkZXJfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmls
dGVyT3BlcmF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWYzMWEz
YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENv
cHlyaWdodCAyMDExIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUK
KyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2Ns
YWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEN1c3RvbUZpbHRlck9wZXJhdGlvbl9oCisjZGVm
aW5lIEN1c3RvbUZpbHRlck9wZXJhdGlvbl9oCisKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisK
KyNpbmNsdWRlICJGaWx0ZXJPcGVyYXRpb24uaCIKKyNpbmNsdWRlICJTdHlsZVNoYWRlci5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKKy8vIENTUyBTaGFkZXJzCisKK2NsYXNzIEN1c3RvbUZp
bHRlck9wZXJhdGlvbjogcHVibGljIEZpbHRlck9wZXJhdGlvbiB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8Q3VzdG9tRmlsdGVyT3BlcmF0aW9uPiBjcmVhdGUoUGFzc1JlZlB0cjxT
dHlsZVNoYWRlcj4gdmVydGV4U2hhZGVyLCBQYXNzUmVmUHRyPFN0eWxlU2hhZGVyPiBmcmFnbWVu
dFNoYWRlcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ3VzdG9tRmlsdGVy
T3BlcmF0aW9uKHZlcnRleFNoYWRlciwgZnJhZ21lbnRTaGFkZXIpKTsKKyAgICB9CisgICAgCisg
ICAgdm9pZCBzZXRWZXJ0ZXhTaGFkZXIoUGFzc1JlZlB0cjxTdHlsZVNoYWRlcj4gc2hhZGVyKSB7
IG1fdmVydGV4U2hhZGVyID0gc2hhZGVyOyB9CisgICAgU3R5bGVTaGFkZXIqIHZlcnRleFNoYWRl
cigpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGV4U2hhZGVyLmdldCgpOyB9CisgICAgCisgICAgdm9p
ZCBzZXRGcmFnbWVudFNoYWRlcihQYXNzUmVmUHRyPFN0eWxlU2hhZGVyPiBzaGFkZXIpIHsgbV9m
cmFnbWVudFNoYWRlciA9IHNoYWRlcjsgfQorICAgIFN0eWxlU2hhZGVyKiBmcmFnbWVudFNoYWRl
cigpIGNvbnN0IHsgcmV0dXJuIG1fZnJhZ21lbnRTaGFkZXIuZ2V0KCk7IH0KKyAgICAKK3ByaXZh
dGU6CisgICAgdmlydHVhbCBib29sIG9wZXJhdG9yPT0oY29uc3QgRmlsdGVyT3BlcmF0aW9uJiBv
KSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKCFpc1NhbWVUeXBlKG8pKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgICAgIGNvbnN0IEN1c3RvbUZpbHRlck9wZXJhdGlvbiogb3Ro
ZXIgPSBzdGF0aWNfY2FzdDxjb25zdCBDdXN0b21GaWx0ZXJPcGVyYXRpb24qPigmbyk7CisgICAg
ICAgIHJldHVybiBtX3ZlcnRleFNoYWRlci5nZXQoKSA9PSBvdGhlci0+bV92ZXJ0ZXhTaGFkZXIu
Z2V0KCkKKyAgICAgICAgICAgICYmIG1fZnJhZ21lbnRTaGFkZXIuZ2V0KCkgPT0gb3RoZXItPm1f
ZnJhZ21lbnRTaGFkZXIuZ2V0KCk7CisgICAgfQorICAgIAorICAgIEN1c3RvbUZpbHRlck9wZXJh
dGlvbihQYXNzUmVmUHRyPFN0eWxlU2hhZGVyPiB2ZXJ0ZXhTaGFkZXIsIFBhc3NSZWZQdHI8U3R5
bGVTaGFkZXI+IGZyYWdtZW50U2hhZGVyKQorICAgICAgICA6IEZpbHRlck9wZXJhdGlvbihDVVNU
T00pCisgICAgICAgICwgbV92ZXJ0ZXhTaGFkZXIodmVydGV4U2hhZGVyKQorICAgICAgICAsIG1f
ZnJhZ21lbnRTaGFkZXIoZnJhZ21lbnRTaGFkZXIpCisgICAgeworICAgIH0KKworICAgIFJlZlB0
cjxTdHlsZVNoYWRlcj4gbV92ZXJ0ZXhTaGFkZXI7CisgICAgUmVmUHRyPFN0eWxlU2hhZGVyPiBt
X2ZyYWdtZW50U2hhZGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKENTU19TSEFERVJTKQorCisjZW5kaWYgLy8gQ3VzdG9tRmlsdGVyT3BlcmF0aW9u
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXgg
ZDhiMmE1MC4uOWEwOTE1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmgKQEAgLTg1Niw2ICs4NTYsNyBAQCBwdWJsaWM6CiAgICAgRVNwZWFrIHNwZWFr
KCkgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RVNwZWFrPihyYXJlSW5oZXJpdGVkRGF0YS0+c3BlYWsp
OyB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCisgICAgRmlsdGVyT3BlcmF0aW9ucyYgZmls
dGVyKCkgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZmlsdGVyLmFj
Y2VzcygpLT5tX29wZXJhdGlvbnM7IH0KICAgICBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0
ZXIoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9maWx0ZXItPm1fb3Bl
cmF0aW9uczsgfQogICAgIGJvb2wgaGFzRmlsdGVyKCkgY29uc3QgeyByZXR1cm4gIXJhcmVOb25J
bmhlcml0ZWREYXRhLT5tX2ZpbHRlci0+bV9vcGVyYXRpb25zLm9wZXJhdGlvbnMoKS5pc0VtcHR5
KCk7IH0KICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVDYWNoZWRTaGFkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlQ2FjaGVkU2hhZGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41
MmZkMmVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlQ2FjaGVkU2hhZGVyLmNwcApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0
IDIwMTEgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShDU1NfU0hBREVS
UykKKworI2luY2x1ZGUgIlN0eWxlQ2FjaGVkU2hhZGVyLmgiCisKKyNpbmNsdWRlICJDU1NQcmlt
aXRpdmVWYWx1ZS5oIgorI2luY2x1ZGUgIkNhY2hlZFNoYWRlci5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKKworU3R5bGVDYWNoZWRTaGFkZXI6OlN0eWxlQ2FjaGVkU2hhZGVyKENhY2hlZFNo
YWRlciogc2hhZGVyKQorICAgIDogbV9zaGFkZXIoc2hhZGVyKQoreworICAgICBtX2lzQ2FjaGVk
U2hhZGVyID0gdHJ1ZTsKK30KKworUGFzc1JlZlB0cjxDU1NWYWx1ZT4gU3R5bGVDYWNoZWRTaGFk
ZXI6OmNzc1ZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNy
ZWF0ZShtX3NoYWRlci0+dXJsKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVVJJKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19TSEFERVJTKQor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRT
aGFkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZFNoYWRl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg4YmZjODEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFk
ZXIuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IDIwMTEgQWRvYmUgU3lzdGVt
cyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
IEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgU3R5bGVDYWNoZWRTaGFkZXJfaAorI2RlZmluZSBTdHlsZUNhY2hlZFNoYWRlcl9oCisKKyNp
ZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5o
IgorI2luY2x1ZGUgIlN0eWxlU2hhZGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgQ2FjaGVkU2hhZGVyOworCitjbGFzcyBTdHlsZUNhY2hlZFNoYWRlciA6IHB1YmxpYyBTdHls
ZVNoYWRlciB7CitwdWJsaWM6CisgICAgLy8gRklYTUU6IEtlZXAgYSByZWZlcmVuY2UgdG8gdGhl
IGFjdHVhbCBDYWNoZWRTaGFkZXIgaW4gdGhpcyBjbGFzcy4KKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTdHlsZUNhY2hlZFNoYWRlcj4gY3JlYXRlKENhY2hlZFNoYWRlciogc2hhZGVyKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgU3R5bGVDYWNoZWRTaGFkZXIoc2hhZGVyKSk7IH0KKyAgICAKKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGNzc1ZhbHVlKCkgY29uc3Q7CisgICAgCitwcml2
YXRlOgorICAgIFN0eWxlQ2FjaGVkU2hhZGVyKENhY2hlZFNoYWRlciopOworICAgIAorICAgIENh
Y2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNoYWRlcj4gbV9zaGFkZXI7Cit9OworCit9CisjZW5k
aWYgLy8gRU5BQkxFKENTU19TSEFERVJTKQorCisjZW5kaWYgLy8gU3R5bGVDYWNoZWRTaGFkZXJf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGlu
Z1NoYWRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ1No
YWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAwNDZjODIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5n
U2hhZGVyLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAyMDExIEFkb2JlIFN5
c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFN0eWxlUGVuZGluZ1NoYWRlcl9oCisjZGVmaW5lIFN0eWxlUGVuZGluZ1NoYWRlcl9o
CisKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisKKyNpbmNsdWRlICJDU1NWYWx1ZS5oIgorI2lu
Y2x1ZGUgIlN0eWxlU2hhZGVyLmgiCisjaW5jbHVkZSAiV2ViS2l0Q1NTU2hhZGVyVmFsdWUuaCIK
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIFdlYktpdENTU1NoYWRlclZhbHVlOworCitjbGFzcyBTdHlsZVBlbmRpbmdTaGFkZXIgOiBw
dWJsaWMgU3R5bGVTaGFkZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0eWxl
UGVuZGluZ1NoYWRlcj4gY3JlYXRlKFdlYktpdENTU1NoYWRlclZhbHVlKiB2YWx1ZSkgeyByZXR1
cm4gYWRvcHRSZWYobmV3IFN0eWxlUGVuZGluZ1NoYWRlcih2YWx1ZSkpOyB9CisgICAgCisgICAg
dmlydHVhbCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBjc3NWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
dmFsdWU7IH0KKyAgICBXZWJLaXRDU1NTaGFkZXJWYWx1ZSogY3NzU2hhZGVyVmFsdWUoKSBjb25z
dCB7IHJldHVybiBtX3ZhbHVlOyB9Citwcml2YXRlOgorICAgIFN0eWxlUGVuZGluZ1NoYWRlcihX
ZWJLaXRDU1NTaGFkZXJWYWx1ZSogdmFsdWUpCisgICAgICAgIDogbV92YWx1ZSh2YWx1ZSkKKyAg
ICB7CisgICAgICAgICBtX2lzUGVuZGluZ1NoYWRlciA9IHRydWU7CisgICAgfQorICAgIAorICAg
IFdlYktpdENTU1NoYWRlclZhbHVlKiBtX3ZhbHVlOyAvLyBOb3QgcmV0YWluZWQ7IGl0IG93bnMg
dXMuCit9OworCit9CisjZW5kaWYgLy8gRU5BQkxFKENTU19TSEFERVJTKQorCisjZW5kaWYgLy8g
U3R5bGVQZW5kaW5nU2hhZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVNoYWRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlU2hhZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDQwMTQ5MAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVNo
YWRlci5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMSBBZG9iZSBTeXN0
ZW1zIEluY29ycG9yYXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBTdHlsZVNoYWRlcl9oCisjZGVmaW5lIFN0eWxlU2hhZGVyX2gKKworI2lmIEVOQUJMRShD
U1NfU0hBREVSUykKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgQ1NTVmFsdWU7CisgICAgCitjbGFzcyBTdHlsZVNoYWRlciA6IHB1
YmxpYyBSZWZDb3VudGVkPFN0eWxlU2hhZGVyPiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+U3R5
bGVTaGFkZXIoKSB7IH0KKworICAgIEFMV0FZU19JTkxJTkUgYm9vbCBpc0NhY2hlZFNoYWRlcigp
IGNvbnN0IHsgcmV0dXJuIG1faXNDYWNoZWRTaGFkZXI7IH0KKyAgICBBTFdBWVNfSU5MSU5FIGJv
b2wgaXNQZW5kaW5nU2hhZGVyKCkgY29uc3QgeyByZXR1cm4gbV9pc1BlbmRpbmdTaGFkZXI7IH0K
KyAgICAKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGNzc1ZhbHVlKCkgY29uc3Qg
PSAwOworICAgIAorcHJvdGVjdGVkOgorICAgIFN0eWxlU2hhZGVyKCkKKyAgICAgICAgOiBtX2lz
Q2FjaGVkU2hhZGVyKGZhbHNlKQorICAgICAgICAsIG1faXNQZW5kaW5nU2hhZGVyKGZhbHNlKQor
ICAgIHsKKyAgICB9CisgICAgYm9vbCBtX2lzQ2FjaGVkU2hhZGVyOjE7CisgICAgYm9vbCBtX2lz
UGVuZGluZ1NoYWRlcjoxOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19TSEFERVJT
KQorCisjZW5kaWYgLy8gU3R5bGVTaGFkZXJfaAo=
</data>
<flag name="review"
          id="114040"
          type_id="1"
          status="-"
          setter="dino"
    />
    <flag name="commit-queue"
          id="113998"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115190</attachid>
            <date>2011-11-15 10:09:47 -0800</date>
            <delta_ts>2011-11-15 10:56:42 -0800</delta_ts>
            <desc>Patch V2</desc>
            <filename>bug72378_2.patch</filename>
            <type>text/plain</type>
            <size>63924</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxMTA2Njk4Li5iYzRiYjVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTEt
MTUgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIFtD
U1NTaGFkZXJzXSBJbXBsZW1lbnQgdGhlIGNvbXB1dGVkIHN0eWxlIGZvciB2ZXJ0ZXggYW5kIGZy
YWdtZW50IHNoYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzIzNzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LWNvbXB1dGVkLXN0eWxl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0
ZXItcHJvcGVydHktY29tcHV0ZWQtc3R5bGUuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9m
aWx0ZXJzL3NjcmlwdC10ZXN0cy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LWNvbXB1dGVkLXN0eWxl
LmpzOiBBZGRlZC4KKyAgICAgICAgKGpzV3JhcHBlckNsYXNzKToKKyAgICAgICAgKGV4cHJlc3Np
b24pOgorICAgICAgICAoZGVzY3JpcHRpb24pOgorCiAyMDExLTExLTE1ICBUb255IEdlbnRpbGNv
cmUgIDx0b255Z0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBwZXJmL2RvY3Vt
ZW50LWNvbnRhaW5zLmh0bWwgaXMgZmxha3kgb24gd2luCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jc3MzL2ZpbHRlcnMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0
eS1jb21wdXRlZC1zdHlsZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYmY1ZDNkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmls
dGVycy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LWNvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDQ5IEBACitUZXN0IHRoZSBwYXJzaW5nIG9mIHRoZSBjdXN0b20oKSBmdW5jdGlv
biBvZiB0aGUgLXdlYmtpdC1maWx0ZXIgcHJvcGVydHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCisKK0N1c3RvbSB3aXRoIHZlcnRleCBzaGFkZXIgOiBjdXN0b20odXJsKHZlcnRl
eC5zaGFkZXIpKQorUEFTUyByZW1vdmVCYXNlVVJMKGZpbHRlclN0eWxlLmdldFByb3BlcnR5VmFs
dWUoJy13ZWJraXQtZmlsdGVyJykpIGlzICdjdXN0b20odXJsKHZlcnRleC5zaGFkZXIpKScKK1BB
U1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZSkgaXMgJ0NTU1ZhbHVlTGlzdCcKK1BBU1MganNX
cmFwcGVyQ2xhc3MoZmlsdGVyUnVsZS5fX3Byb3RvX18pIGlzICdDU1NWYWx1ZUxpc3RQcm90b3R5
cGUnCitQQVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1bGUuY29uc3RydWN0b3IpIGlzICdDU1NW
YWx1ZUxpc3RDb25zdHJ1Y3RvcicKK1BBU1MgZmlsdGVyUnVsZS5sZW5ndGggaXMgMQorUEFTUyBz
dWJSdWxlLm9wZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9D
VVNUT00KK1BBU1MgcmVtb3ZlQmFzZVVSTChzdWJSdWxlLmNzc1RleHQpIGlzICdjdXN0b20odXJs
KHZlcnRleC5zaGFkZXIpKScKKworQ3VzdG9tIHdpdGggZnJhZ21lbnQgc2hhZGVyIDogY3VzdG9t
KG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlcikpCitQQVNTIHJlbW92ZUJhc2VVUkwoZmlsdGVyU3R5
bGUuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSkgaXMgJ2N1c3RvbShub25lIHVy
bChmcmFnbWVudC5zaGFkZXIpKScKK1BBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZSkgaXMg
J0NTU1ZhbHVlTGlzdCcKK1BBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZS5fX3Byb3RvX18p
IGlzICdDU1NWYWx1ZUxpc3RQcm90b3R5cGUnCitQQVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1
bGUuY29uc3RydWN0b3IpIGlzICdDU1NWYWx1ZUxpc3RDb25zdHJ1Y3RvcicKK1BBU1MgZmlsdGVy
UnVsZS5sZW5ndGggaXMgMQorUEFTUyBzdWJSdWxlLm9wZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NT
RmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00KK1BBU1MgcmVtb3ZlQmFzZVVSTChzdWJSdWxl
LmNzc1RleHQpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSknCisKK0N1c3Rv
bSB3aXRoIGJvdGggc2hhZGVycyA6IGN1c3RvbSh1cmwodmVydGV4LnNoYWRlcikgdXJsKGZyYWdt
ZW50LnNoYWRlcikpCitQQVNTIHJlbW92ZUJhc2VVUkwoZmlsdGVyU3R5bGUuZ2V0UHJvcGVydHlW
YWx1ZSgnLXdlYmtpdC1maWx0ZXInKSkgaXMgJ2N1c3RvbSh1cmwodmVydGV4LnNoYWRlcikgdXJs
KGZyYWdtZW50LnNoYWRlcikpJworUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxlKSBpcyAn
Q1NTVmFsdWVMaXN0JworUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxlLl9fcHJvdG9fXykg
aXMgJ0NTU1ZhbHVlTGlzdFByb3RvdHlwZScKK1BBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVs
ZS5jb25zdHJ1Y3RvcikgaXMgJ0NTU1ZhbHVlTGlzdENvbnN0cnVjdG9yJworUEFTUyBmaWx0ZXJS
dWxlLmxlbmd0aCBpcyAxCitQQVNTIHN1YlJ1bGUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NG
aWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RPTQorUEFTUyByZW1vdmVCYXNlVVJMKHN1YlJ1bGUu
Y3NzVGV4dCkgaXMgJ2N1c3RvbSh1cmwodmVydGV4LnNoYWRlcikgdXJsKGZyYWdtZW50LnNoYWRl
cikpJworCitNdWx0aXBsZSB3aXRoIGZyYWdtZW50IHNoYWRlciA6IGdyYXlzY2FsZSgpIGN1c3Rv
bShub25lIHVybChmcmFnbWVudC5zaGFkZXIpKSBzZXBpYSgpCitQQVNTIHJlbW92ZUJhc2VVUkwo
ZmlsdGVyU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSkgaXMgJ2dyYXlz
Y2FsZSgxKSBjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSkgc2VwaWEoMSknCitQQVNT
IGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1bGUpIGlzICdDU1NWYWx1ZUxpc3QnCitQQVNTIGpzV3Jh
cHBlckNsYXNzKGZpbHRlclJ1bGUuX19wcm90b19fKSBpcyAnQ1NTVmFsdWVMaXN0UHJvdG90eXBl
JworUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxlLmNvbnN0cnVjdG9yKSBpcyAnQ1NTVmFs
dWVMaXN0Q29uc3RydWN0b3InCitQQVNTIGZpbHRlclJ1bGUubGVuZ3RoIGlzIDMKK1BBU1Mgc3Vi
UnVsZS5vcGVyYXRpb25UeXBlIGlzIFdlYktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfR1JB
WVNDQUxFCitQQVNTIHJlbW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAnZ3JheXNjYWxl
KDEpJworUEFTUyBzdWJSdWxlLm9wZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NTRmlsdGVyVmFsdWUu
Q1NTX0ZJTFRFUl9DVVNUT00KK1BBU1MgcmVtb3ZlQmFzZVVSTChzdWJSdWxlLmNzc1RleHQpIGlz
ICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSknCitQQVNTIHN1YlJ1bGUub3BlcmF0
aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX1NFUElBCitQQVNTIHJl
bW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAnc2VwaWEoMSknCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItcHJvcGVydHktY29tcHV0ZWQtc3R5bGUu
aHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LWNv
bXB1dGVkLXN0eWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmY3
YWM2YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20t
ZmlsdGVyLXByb3BlcnR5LWNvbXB1dGVkLXN0eWxlLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFE
T0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3Jp
cHQtdGVzdHMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvZmlsdGVycy9zY3JpcHQtdGVzdHMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1jb21wdXRlZC1z
dHlsZS5qcyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9zY3JpcHQtdGVzdHMvY3VzdG9tLWZp
bHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5lMjk1ODc1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9m
aWx0ZXJzL3NjcmlwdC10ZXN0cy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LWNvbXB1dGVkLXN0eWxl
LmpzCkBAIC0wLDAgKzEsODIgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0IHRoZSBwYXJzaW5nIG9mIHRo
ZSBjdXN0b20oKSBmdW5jdGlvbiBvZiB0aGUgLXdlYmtpdC1maWx0ZXIgcHJvcGVydHkuIik7CisK
K2Z1bmN0aW9uIGpzV3JhcHBlckNsYXNzKG5vZGUpCit7CisgICAgaWYgKCFub2RlKQorICAgICAg
ICByZXR1cm4gIltudWxsXSI7CisgICAgdmFyIHN0cmluZyA9IE9iamVjdC5wcm90b3R5cGUudG9T
dHJpbmcuYXBwbHkobm9kZSk7CisgICAgcmV0dXJuIHN0cmluZy5zdWJzdHIoOCwgc3RyaW5nLmxl
bmd0aCAtIDkpOworfQorCisvLyBOZWVkIHRvIHJlbW92ZSB0aGUgYmFzZSBVUkwgdG8gYXZvaWQg
aGF2aW5nIGxvY2FsIHBhdGhzIGluIHRoZSBleHBlY3RlZCByZXN1bHRzLgorZnVuY3Rpb24gcmVt
b3ZlQmFzZVVSTChzcmMpIHsKKyAgICB2YXIgdXJsUmVnZXhwID0gL3VybFwoKFteXCldKilcKS9n
OworICAgIHJldHVybiBzcmMucmVwbGFjZSh1cmxSZWdleHAsIGZ1bmN0aW9uKG1hdGNoLCB1cmwp
IHsKKyAgICAgICAgcmV0dXJuICJ1cmwoIiArIHVybC5zdWJzdHIodXJsLmxhc3RJbmRleE9mKCIv
IikgKyAxKSArICIpIjsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVUeXBlKGV4cHJl
c3Npb24sIGNsYXNzTmFtZSwgcHJvdG90eXBlTmFtZSwgY29uc3RydWN0b3JOYW1lKQoreworICAg
IGlmICghcHJvdG90eXBlTmFtZSkKKyAgICAgICAgcHJvdG90eXBlTmFtZSA9IGNsYXNzTmFtZSAr
ICJQcm90b3R5cGUiOworICAgIGlmICghY29uc3RydWN0b3JOYW1lKQorICAgICAgICBjb25zdHJ1
Y3Rvck5hbWUgPSBjbGFzc05hbWUgKyAiQ29uc3RydWN0b3IiOworICAgIHNob3VsZEJlKCJqc1dy
YXBwZXJDbGFzcygiICsgZXhwcmVzc2lvbiArICIpIiwgIiciICsgY2xhc3NOYW1lICsgIiciKTsK
KyAgICBzaG91bGRCZSgianNXcmFwcGVyQ2xhc3MoIiArIGV4cHJlc3Npb24gKyAiLl9fcHJvdG9f
XykiLCAiJyIgKyBwcm90b3R5cGVOYW1lICsgIiciKTsKKyAgICBzaG91bGRCZSgianNXcmFwcGVy
Q2xhc3MoIiArIGV4cHJlc3Npb24gKyAiLmNvbnN0cnVjdG9yKSIsICInIiArIGNvbnN0cnVjdG9y
TmFtZSArICInIik7Cit9CisKKy8vIFRoZXNlIGhhdmUgdG8gYmUgZ2xvYmFsIGZvciB0aGUgdGVz
dCBoZWxwZXJzIHRvIHNlZSB0aGVtLgordmFyIHN0eWxlc2hlZXQsIGNzc1J1bGUsIGRlY2xhcmF0
aW9uLCBmaWx0ZXJSdWxlLCBzdWJSdWxlOworCitmdW5jdGlvbiB0ZXN0RmlsdGVyUnVsZShkZXNj
cmlwdGlvbiwgcnVsZSwgZXhwZWN0ZWRWYWx1ZSwgZXhwZWN0ZWRUeXBlcywgZXhwZWN0ZWRUZXh0
cykKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoZGVzY3JpcHRpb24gKyAiIDogIiArIHJ1
bGUpOworCisgICAgc3R5bGVzaGVldCA9IGRvY3VtZW50LnN0eWxlU2hlZXRzLml0ZW0oMCk7Cisg
ICAgc3R5bGVzaGVldC5pbnNlcnRSdWxlKCJib2R5IHsgLXdlYmtpdC1maWx0ZXI6ICIgKyBydWxl
ICsgIjsgfSIsIDApOworCisgICAgZmlsdGVyU3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5ib2R5KTsKKyAgICAKKyAgICBzaG91bGRCZSgicmVtb3ZlQmFzZVVSTChmaWx0
ZXJTdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCctd2Via2l0LWZpbHRlcicpKSIsICInIiArIGV4cGVj
dGVkVmFsdWUgKyAiJyIpOworCisgICAgZmlsdGVyUnVsZSA9IGZpbHRlclN0eWxlLmdldFByb3Bl
cnR5Q1NTVmFsdWUoJy13ZWJraXQtZmlsdGVyJyk7CisgICAgc2hvdWxkQmVUeXBlKCJmaWx0ZXJS
dWxlIiwgIkNTU1ZhbHVlTGlzdCIpOworCisgICAgaWYgKCFleHBlY3RlZFR5cGVzKSB7CisgICAg
ICAgIGV4cGVjdGVkVHlwZXMgPSBbIldlYktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfQ1VT
VE9NIl07CisgICAgICAgIGV4cGVjdGVkVGV4dHMgPSBbZXhwZWN0ZWRWYWx1ZV07CisgICAgfQor
ICAgIAorICAgIHNob3VsZEJlKCJmaWx0ZXJSdWxlLmxlbmd0aCIsICIiICsgZXhwZWN0ZWRUeXBl
cy5sZW5ndGgpOyAvLyBzaG91bGRCZSBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMKKyAgCisgICAg
aWYgKGZpbHRlclJ1bGUpIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZFR5
cGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBzdWJSdWxlID0gZmlsdGVyUnVsZVtpXTsK
KyAgICAgICAgICAgIHNob3VsZEJlKCJzdWJSdWxlLm9wZXJhdGlvblR5cGUiLCBleHBlY3RlZFR5
cGVzW2ldKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJyZW1vdmVCYXNlVVJMKHN1YlJ1bGUuY3Nz
VGV4dCkiLCAiJyIgKyBleHBlY3RlZFRleHRzW2ldICsgIiciKTsKKyAgICAgICAgfQorICAgIH0K
KyAgICAKKyAgICBzdHlsZXNoZWV0LmRlbGV0ZVJ1bGUoMCk7Cit9CisKK3Rlc3RGaWx0ZXJSdWxl
KCJDdXN0b20gd2l0aCB2ZXJ0ZXggc2hhZGVyIiwKKyAgICAgICAgICAgICAgICJjdXN0b20odXJs
KHZlcnRleC5zaGFkZXIpKSIsICJjdXN0b20odXJsKHZlcnRleC5zaGFkZXIpKSIpOworCit0ZXN0
RmlsdGVyUnVsZSgiQ3VzdG9tIHdpdGggZnJhZ21lbnQgc2hhZGVyIiwKKyAgICAgICAgICAgICAg
ImN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpKSIsICJjdXN0b20obm9uZSB1cmwoZnJh
Z21lbnQuc2hhZGVyKSkiKTsKKwordGVzdEZpbHRlclJ1bGUoIkN1c3RvbSB3aXRoIGJvdGggc2hh
ZGVycyIsCisgICAgICAgICAgICAiY3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSB1cmwoZnJhZ21l
bnQuc2hhZGVyKSkiLCAiY3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSB1cmwoZnJhZ21lbnQuc2hh
ZGVyKSkiKTsKKwordGVzdEZpbHRlclJ1bGUoIk11bHRpcGxlIHdpdGggZnJhZ21lbnQgc2hhZGVy
IiwKKyAgICAgICAgICAgICJncmF5c2NhbGUoKSBjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hh
ZGVyKSkgc2VwaWEoKSIsICJncmF5c2NhbGUoMSkgY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNo
YWRlcikpIHNlcGlhKDEpIiwKKyAgICAgICAgICAgIFsiV2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NT
X0ZJTFRFUl9HUkFZU0NBTEUiLAorICAgICAgICAgICAgIldlYktpdENTU0ZpbHRlclZhbHVlLkNT
U19GSUxURVJfQ1VTVE9NIiwKKyAgICAgICAgICAgICJXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1Nf
RklMVEVSX1NFUElBIl0sCisgICAgICAgICAgICBbImdyYXlzY2FsZSgxKSIsCisgICAgICAgICAg
ICAiY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlcikpIiwKKyAgICAgICAgICAgICJzZXBp
YSgxKSJdKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxYzU3MTA5Li43YjZlZjk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNjkgQEAKKzIwMTEtMTEtMTUgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRv
YmUuY29tPgorCisgICAgICAgIFtDU1NTaGFkZXJzXSBJbXBsZW1lbnQgdGhlIGNvbXB1dGVkIHN0
eWxlIGZvciB2ZXJ0ZXggYW5kIGZyYWdtZW50IHNoYWRlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzIzNzgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBjc3MzL2ZpbHRlcnMvY3VzdG9tLWZpbHRl
ci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS5odG1sCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5s
aXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgor
ICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbjo6dmFsdWVGb3JGaWx0ZXIpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVj
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OkNTU1N0eWxlU2Vs
ZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6c3R5bGVGb3JLZXlm
cmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpwc2V1ZG9TdHlsZUZv
ckVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6c3R5bGVGb3JQ
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5TWF0Y2hlZERl
Y2xhcmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZVNo
YWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpjYWNoZWRPclBlbmRp
bmdGcm9tVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6bG9hZFBl
bmRpbmdTaGFkZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmNyZWF0
ZUN1c3RvbUZpbHRlck9wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVj
dG9yOjpjcmVhdGVGaWx0ZXJPcGVyYXRpb25zKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTZWxl
Y3Rvci5oOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJLaXRDU1NTaGFkZXJWYWx1ZTo6V2ViS2l0Q1NTU2hhZGVyVmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTU2hhZGVyVmFsdWU6On5XZWJLaXRDU1NTaGFkZXJW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJLaXRDU1NTaGFkZXJWYWx1ZTo6Y2FjaGVkU2hh
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU1NoYWRlclZhbHVlOjpjYWNoZWRPclBl
bmRpbmdTaGFkZXIpOgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5oOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpkZWZhdWx0UHJpb3JpdHlGb3JSZXNvdXJjZVR5cGUpOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZS5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVSZXNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNoYWRlcik6CisgICAgICAg
IChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2hlY2tJbnNlY3VyZUNvbnRlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VMb2FkZXI6OmNhblJlcXVlc3QpOgorICAg
ICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIGxv
YWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2hh
ZGVyOjpDYWNoZWRTaGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2hhZGVyOjp+Q2Fj
aGVkU2hhZGVyKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmg6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkluaGVyaXRlZEZsYWdzOjpmaWx0ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9T
dHlsZUNhY2hlZFNoYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUNhY2hlZFNoYWRl
cjo6U3R5bGVDYWNoZWRTaGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVDYWNoZWRTaGFk
ZXI6OmNzc1ZhbHVlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFk
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQ2FjaGVkU2hhZGVyOjpjcmVhdGUpOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdTaGFkZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlUGVuZGluZ1NoYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUGVuZGluZ1NoYWRlcjo6Y3NzVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5k
aW5nU2hhZGVyOjpjc3NTaGFkZXJWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVBlbmRp
bmdTaGFkZXI6OlN0eWxlUGVuZGluZ1NoYWRlcik6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1N0eWxlU2hhZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNoYWRlcjo6flN0eWxlU2hh
ZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hhZGVyOjppc0NhY2hlZFNoYWRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVNoYWRlcjo6aXNQZW5kaW5nU2hhZGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlU2hhZGVyOjpTdHlsZVNoYWRlcik6CisKIDIwMTEtMTEtMTUgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIxMDAyMTMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRl
eCBiNzE4YzEwLi5kNjhmMGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTEx
MjEsNiArMTEyMSw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvY3Nz
L1dlYktpdENTU0tleWZyYW1lc1J1bGUuaCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENT
U01hdHJpeC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguaCBcCisJ
U291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcCBcCiAJU291cmNlL1dl
YkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9X
ZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NUcmFuc2Zvcm1WYWx1ZS5oIFwKQEAgLTIxNjksNiArMjE3MCw4IEBAIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oIFwKKwlTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU3R5bGVTaGVldENsaWVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkVGV4dFRyYWNrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hl
ZFRleHRUcmFjay5oIFwKQEAgLTI1MzMsNiArMjUzNiw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVHJhbnNmb3JtYXRpb25N
YXRyaXhDYWlyby5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0
ZXIvR3JhcGhpY3NMYXllckNsdXR0ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2x1dHRlci9HcmFwaGljc0xheWVyQ2x1dHRlci5jcHAgXAorCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNl
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9EaXN0YW50
TGlnaHRTb3VyY2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUJsZW5kLmNwcCBcCkBAIC0zMjY3LDYgKzMyNzEsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUJveERhdGEuaCBcCiAJU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5oIFwKKwlTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIuY3BwIFwKKwlTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIuaCBcCiAJU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlRGFzaGJvYXJkUmVnaW9uLmggXAogCVNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVEZXByZWNhdGVkRmxleGli
bGVCb3hEYXRhLmggXApAQCAtMzI4NCwxMSArMzI5MCwxMyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0g
XAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nSW1hZ2UuaCBcCisJ
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ1NoYWRlci5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAg
XAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRh
LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmVmbGVjdGlvbi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVTaGFk
ZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlU3Vycm91bmREYXRh
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlU3Vycm91bmREYXRh
LmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVRyYW5zZm9ybURhdGEu
Y3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2Vi
Q29yZS9UYXJnZXQucHJpCmluZGV4IGU0ODQ5ZjAuLmQzZjM2YWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAt
NDYxLDYgKzQ2MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGNzcy9XZWJLaXRDU1NLZXlmcmFtZVJ1
bGUuY3BwIFwKICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAgXAogICAgIGNzcy9X
ZWJLaXRDU1NNYXRyaXguY3BwIFwKKyAgICBjc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwIFwK
ICAgICBjc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIFwKICAgICBkb20vQWN0aXZlRE9N
T2JqZWN0LmNwcCBcCiAgICAgZG9tL0F0dHIuY3BwIFwKQEAgLTkxMyw2ICs5MTQsNyBAQCBTT1VS
Q0VTICs9IFwKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBcCiAg
ICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBcCiAgICAgbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNjcmlwdC5jcHAgXAorICAgIGxvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwIFwKICAg
ICBsb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHAgXAogICAgIGxvYWRlci9Dcm9z
c09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwIFwKICAgICBsb2FkZXIvQ3Jvc3NPcmlnaW5QcmVmbGln
aHRSZXN1bHRDYWNoZS5jcHAgXApAQCAtMTI1Myw2ICsxMjU1LDcgQEAgU09VUkNFUyArPSBcCiAg
ICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQmFja2dyb3VuZERhdGEuY3BwIFwKICAgICByZW5kZXJp
bmcvc3R5bGUvU3R5bGVCb3hEYXRhLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2Fj
aGVkSW1hZ2UuY3BwIFwKKyAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIuY3Bw
IFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmNw
cCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmlsdGVyRGF0YS5jcHAgXAogICAgIHJlbmRl
cmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAgXApAQCAtMTk1NCw2ICsxOTU3LDcg
QEAgSEVBREVSUyArPSBcCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlSGFuZGxlLmgg
XAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBcCiAgICAgbG9hZGVy
L2NhY2hlL0NhY2hlZFNjcmlwdC5oIFwKKyAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmgg
XAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRYU0xTdHlsZVNoZWV0LmggXAogICAgIGxvYWRlci9j
YWNoZS9NZW1vcnlDYWNoZS5oIFwKICAgICBsb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmggXApAQCAtMjA3MSw2ICsyMDc1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0vbW9j
ay9TY3JvbGxiYXJUaGVtZU1vY2suaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQ29sb3IuaCBcCisgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaCBcCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUJsZW5kLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
RkVDb2xvck1hdHJpeC5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9u
ZW50VHJhbnNmZXIuaCBcCkBAIC0yMzcwLDYgKzIzNzUsNyBAQCBIRUFERVJTICs9IFwKICAgICBy
ZW5kZXJpbmcvc3R5bGUvU3R5bGVCYWNrZ3JvdW5kRGF0YS5oIFwKICAgICByZW5kZXJpbmcvc3R5
bGUvU3R5bGVCb3hEYXRhLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdl
LmggXAorICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZFNoYWRlci5oIFwKICAgICByZW5k
ZXJpbmcvc3R5bGUvU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmggXAogICAgIHJlbmRl
cmluZy9zdHlsZS9TdHlsZUZpbHRlckRhdGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxl
RmxleGlibGVCb3hEYXRhLmggXApAQCAtMjM3Nyw5ICsyMzgzLDExIEBAIEhFQURFUlMgKz0gXAog
ICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUluaGVyaXRlZERhdGEuaCBcCiAgICAgcmVuZGVyaW5n
L3N0eWxlL1N0eWxlTWFycXVlZURhdGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVs
dGlDb2xEYXRhLmggXAorICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdTaGFkZXIuaCBc
CiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaCBcCiAgICAgcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBcCiAgICAgcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmVmbGVjdGlvbi5oIFwKKyAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVTaGFk
ZXIuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlU3Vycm91bmREYXRhLmggXAogICAgIHJl
bmRlcmluZy9zdHlsZS9TdHlsZVRyYW5zZm9ybURhdGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxl
L1N0eWxlVmlzdWFsRGF0YS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBlODMwNjFkLi44MGQwN2I2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC01OTcsNiArNTk3LDcgQEAKICAgICAgICAgICAgICdsb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZVJlcXVlc3QuaCcsCisgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hl
ZFNoYWRlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU3R5bGVTaGVldENs
aWVudC5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaCcsCiAgICAg
ICAgICAgICAnbG9hZGVyL2ljb24vSWNvbkNvbnRyb2xsZXIuaCcsCkBAIC0yNDcyLDYgKzI0NzMs
OCBAQAogICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgnLAogICAgICAg
ICAgICAgJ2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwJywKICAgICAgICAgICAgICdjc3MvV2ViS2l0
Q1NTTWF0cml4LmgnLAorICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAn
LAorICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5oJywKICAgICAgICAgICAg
ICdjc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwJywKICAgICAgICAgICAgICdlZGl0aW5n
L0FwcGVuZE5vZGVDb21tYW5kLmNwcCcsCiAgICAgICAgICAgICAnZWRpdGluZy9BcHBlbmROb2Rl
Q29tbWFuZC5oJywKQEAgLTI4NjQsNiArMjg2Nyw4IEBACiAgICAgICAgICAgICAnbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNo
ZS9DYWNoZWRTY3JpcHQuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2Ny
aXB0LmgnLAorICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwJywKKyAg
ICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmgnLAogICAgICAgICAgICAgJ2xv
YWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2Fj
aGUvQ2FjaGVkVGV4dFRyYWNrLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRY
U0xTdHlsZVNoZWV0LmNwcCcsCkBAIC0zNjEwLDYgKzM2MTUsNyBAQAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL2dyYXBoaWNzL2VmbC9JbWFnZUVmbC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL2VmbC9JbnRQb2ludEVmbC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL2VmbC9JbnRSZWN0RWZsLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9EaXN0YW50TGlnaHRTb3VyY2UuY3BwJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5oJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwJywKQEAgLTQ3NTUs
NiArNDc2MSw4IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlQmFja2dyb3Vu
ZERhdGEuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVCb3hEYXRhLmNw
cCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwJywK
KyAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIuaCcsCisgICAg
ICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkU2hhZGVyLmNwcCcsCiAgICAgICAg
ICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YS5jcHAn
LAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUZpbHRlckRhdGEuY3BwJywKICAg
ICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwJywKQEAg
LTQ3NjMsOCArNDc3MSwxMCBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZU1h
cnF1ZWVEYXRhLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlD
b2xEYXRhLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ0lt
YWdlLmgnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdTaGFkZXIu
aCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEu
Y3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVk
RGF0YS5jcHAnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZVNoYWRlci5oJywK
ICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVTdXJyb3VuZERhdGEuY3BwJywKICAg
ICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVUcmFuc2Zvcm1EYXRhLmNwcCcsCiAgICAg
ICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlVmlzdWFsRGF0YS5jcHAnLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCA0MTI5YWNmLi4zMTgz
NjgxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpA
QCAtMjYyMDUsNiArMjYyMDUsMTQgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxjYWNoZVxDYWNoZWRTaGFkZXIuY3BwIgorCQkJ
CQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVy
XGNhY2hlXENhY2hlZFNoYWRlci5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJ
CQkJCVJlbGF0aXZlUGF0aD0iLi5cbG9hZGVyXGNhY2hlXENhY2hlZFN0eWxlU2hlZXRDbGllbnQu
aCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KQEAgLTI5NDk2LDYgKzI5NTA0LDEwIEBACiAJCQkJCU5h
bWU9ImZpbHRlcnMiCiAJCQkJCT4KIAkJCQkJPEZpbGUKKwkJCQkJCVJlbGF0aXZlUGF0aD0iLi5c
cGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCIKKwkJCQkJ
CT4KKwkJCQkJPC9GaWxlPgorCQkJCQk8RmlsZQogCQkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0
Zm9ybVxncmFwaGljc1xmaWx0ZXJzXERpc3RhbnRMaWdodFNvdXJjZS5jcHAiCiAJCQkJCQk+CiAJ
CQkJCTwvRmlsZT4KQEAgLTMyOTUwLDYgKzMyOTYyLDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgog
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNzc1xXZWJLaXRDU1NTaGFkZXJWYWx1ZS5j
cHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGNz
c1xXZWJLaXRDU1NTaGFkZXJWYWx1ZS5oIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCIKIAkJCQk+
CiAJCQk8L0ZpbGU+CkBAIC00MDQ2Myw2ICs0MDQ4MywxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxl
PgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxlXFN0eWxl
Q2FjaGVkU2hhZGVyLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxTdHlsZUNhY2hlZFNoYWRlci5oIgorCQkJ
CQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVy
aW5nXHN0eWxlXFN0eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YS5jcHAiCiAJCQkJCT4KIAkJ
CQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC00MDg2Myw2ICs0MDg5MSwxMCBAQAogCQkJCQk+CiAJ
CQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0
eWxlXFN0eWxlUGVuZGluZ1NoYWRlci5oIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxl
CiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxlXFN0eWxlUmFyZUluaGVyaXRl
ZERhdGEuY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAtNDA5NzksNiAr
NDEwMTEsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxTdHlsZVNoYWRlci5oIgorCQkJCQk+CisJCQkJPC9G
aWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxlXFN0
eWxlU3Vycm91bmREYXRhLmNwcCIKIAkJCQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCAzOTg0YTkyLi4zNjRlM2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMzYzLDYgKzEzNjMsMTIgQEAKIAkJNEZEOEQwRjMx
MTlDNzE4QjAwMkZBODI1IC8qIFNjcmlwdEdDRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRGRDhEMEYxMTE5QzcxOEIwMDJGQTgyNSAvKiBTY3Jp
cHRHQ0V2ZW50LmggKi87IH07CiAJCTUwMUJBOUUyMTM5M0NFQTAwMEY3QUNFQiAvKiBDU1NXcmFw
U2hhcGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MDFCQTlFMTEzOTNDRUEwMDBGN0FDRUIgLyogQ1NTV3JhcFNoYXBlcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUwMUJBQUE5MTM5NTBFMkMwMEY3
QUNFQiAvKiBXaW5kUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTAxQkFBQTgxMzk1MEUyQzAwRjdBQ0VCIC8qIFdpbmRSdWxlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTAzOEJDMDcxNDcxMUNE
QjAwOTVFMEQxIC8qIFdlYktpdENTU1NoYWRlclZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwMzhCQzA2MTQ3MTFDREIwMDk1RTBEMSAvKiBX
ZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAgKi87IH07CisJCTUwMzhCQzBCMTQ3MTFEMzQwMDk1RTBE
MSAvKiBDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUwMzhCQzA5MTQ3MTFEMzQwMDk1RTBEMSAvKiBDdXN0b21GaWx0
ZXJPcGVyYXRpb24uaCAqLzsgfTsKKwkJNTAzOEJFMkYxNDcyQUQyMzAwOTVFMEQxIC8qIFN0eWxl
Q2FjaGVkU2hhZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUwMzhCRTJEMTQ3MkFEMjMwMDk1RTBEMSAvKiBTdHlsZUNhY2hlZFNoYWRlci5jcHAg
Ki87IH07CisJCTUwMzhCRTMwMTQ3MkFEMjMwMDk1RTBEMSAvKiBTdHlsZUNhY2hlZFNoYWRlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAzOEJFMkUx
NDcyQUQyMzAwOTVFMEQxIC8qIFN0eWxlQ2FjaGVkU2hhZGVyLmggKi87IH07CisJCTUwMzhCRTQw
MTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAzOEJFM0UxNDcyQUQ5ODAwOTVFMEQxIC8qIENh
Y2hlZFNoYWRlci5jcHAgKi87IH07CisJCTUwMzhCRTQxMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNo
ZWRTaGFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUwMzhCRTNGMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuaCAqLzsgfTsKIAkJNTA4
Q0NBNEYxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRlckZsb3dUaHJlYWQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwOENDQTREMTNDRjEwNkIwMDMxNTFG
MyAvKiBSZW5kZXJGbG93VGhyZWFkLmggKi87IH07CiAJCTUwOENDQTUwMTNDRjEwNkIwMDMxNTFG
MyAvKiBSZW5kZXJGbG93VGhyZWFkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUwOENDQTRFMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhy
ZWFkLmNwcCAqLzsgfTsKIAkJNTBFNTY2RDYxMzlFMzhDNTAwMjE0NDMzIC8qIENTU1dyYXBTaGFw
ZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAx
QkFBQjExMzk1MTE0QjAwRjdBQ0VCIC8qIENTU1dyYXBTaGFwZXMuY3BwICovOyB9OwpAQCAtODU1
Miw2ICs4NTU4LDEyIEBACiAJCTUwMUJBOUUxMTM5M0NFQTAwMEY3QUNFQiAvKiBDU1NXcmFwU2hh
cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1dyYXBTaGFwZXMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTAxQkFBQTgxMzk1MEUyQzAwRjdBQ0VCIC8q
IFdpbmRSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdpbmRSdWxlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUwMUJBQUIxMTM5NTExNEIwMEY3QUNFQiAv
KiBDU1NXcmFwU2hhcGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IENTU1dyYXBTaGFwZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MDM4QkMw
NjE0NzExQ0RCMDA5NUUwRDEgLyogV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MDM4QkMwOTE0NzExRDM0MDA5NUUwRDEgLyogQ3Vz
dG9tRmlsdGVyT3BlcmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEN1
c3RvbUZpbHRlck9wZXJhdGlvbi5oOyBwYXRoID0gZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVyYXRp
b24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTAzOEJFMkQxNDcyQUQyMzAwOTVF
MEQxIC8qIFN0eWxlQ2FjaGVkU2hhZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IFN0eWxlQ2FjaGVkU2hhZGVyLmNwcDsgcGF0aCA9IHN0eWxlL1N0eWxlQ2FjaGVk
U2hhZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTAzOEJFMkUxNDcyQUQy
MzAwOTVFMEQxIC8qIFN0eWxlQ2FjaGVkU2hhZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFN0eWxlQ2FjaGVkU2hhZGVyLmg7IHBhdGggPSBzdHlsZS9TdHlsZUNhY2hlZFNo
YWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MDM4QkUzRTE0NzJBRDk4MDA5
NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENhY2hlZFNoYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUw
MzhCRTNGMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkU2hhZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUwOENDQTREMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlckZsb3dUaHJlYWQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTA4Q0NBNEUxM0NGMTA2QjAwMzE1MUYzIC8qIFJlbmRl
ckZsb3dUaHJlYWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVu
ZGVyRmxvd1RocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUwQjQyMTU3
MTQ2OTc2OTYwMDg3RTYwNCAvKiBXZWJLaXRDU1NTaGFkZXJWYWx1ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRDU1NTaGFkZXJWYWx1ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTc1ODMsNiArMTc1OTUsNyBAQAogCQlBNzVFOEI3RjBFMURFMkIw
MDA3RjI0ODEgLyogZmlsdGVycyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJNTAzOEJDMDkxNDcxMUQzNDAwOTVFMEQxIC8qIEN1c3RvbUZpbHRlck9wZXJh
dGlvbi5oICovLAogCQkJCTE5ODQxQkZBMTM2ODM2QTEwMDZFQkJCOSAvKiBhcm0gKi8sCiAJCQkJ
QTFFMTE1NDMxMzAxNUMzRDAwNTRBQzhDIC8qIERpc3RhbnRMaWdodFNvdXJjZS5jcHAgKi8sCiAJ
CQkJODQ3MzBENUExMjQ4RjBCMzAwRDNBOUM5IC8qIERpc3RhbnRMaWdodFNvdXJjZS5oICovLApA
QCAtMTg0ODEsNiArMTg0OTQsOCBAQAogCQlBOEQyQjI1MjEyODdBNTYwMDBBRjREREEgLyogY2Fj
aGUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTUwMzhC
RTNFMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuY3BwICovLAorCQkJCTUwMzhCRTNG
MTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuaCAqLywKIAkJCQlCQ0IxNkMwMDA5NzlD
M0JEMDA0Njc3NDEgLyogQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAgKi8sCiAJCQkJQkNCMTZDMDEw
OTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZENTU1N0eWxlU2hlZXQuaCAqLywKIAkJCQlCQzY0QjRD
OTBDQjQyOTVEMDA1RjJCNjIgLyogQ2FjaGVkRm9udC5jcHAgKi8sCkBAIC0xOTc0OCw2ICsxOTc2
Myw4IEBACiAJCUJDOEM4RkFBMEREQ0QyRjIwMEI1OTJGNCAvKiBzdHlsZSAqLyA9IHsKIAkJCWlz
YSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTAzOEJFMkQxNDcyQUQyMzAwOTVF
MEQxIC8qIFN0eWxlQ2FjaGVkU2hhZGVyLmNwcCAqLywKKwkJCQk1MDM4QkUyRTE0NzJBRDIzMDA5
NUUwRDEgLyogU3R5bGVDYWNoZWRTaGFkZXIuaCAqLywKIAkJCQlCQzVFQjVFMDBFODFCRTg3MDBC
MjU5NjUgLyogQm9yZGVyRGF0YS5oICovLAogCQkJCUJDNUVCNURBMEU4MUI3RUEwMEIyNTk2NSAv
KiBCb3JkZXJWYWx1ZS5oICovLAogCQkJCUJDNUVCNURFMEU4MUI5QUIwMEIyNTk2NSAvKiBDb2xs
YXBzZWRCb3JkZXJWYWx1ZS5oICovLApAQCAtMjA1NjYsNiArMjA1ODMsOCBAQAogCQlGNTIzRDE4
NDAyREU0MkU4MDE4NjM1Q0EgLyogY3NzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKKwkJCQk1MDM4QkMwNjE0NzExQ0RCMDA5NUUwRDEgLyogV2ViS2l0Q1NTU2hh
ZGVyVmFsdWUuY3BwICovLAorCQkJCTUwQjQyMTU3MTQ2OTc2OTYwMDg3RTYwNCAvKiBXZWJLaXRD
U1NTaGFkZXJWYWx1ZS5oICovLAogCQkJCUFEMDNBQUY4MTQ2ODQ1MzkwMEEzOUI1QiAvKiBDU1NW
YWx1ZS5jcHAgKi8sCiAJCQkJQ0FFOUY5MEQxNDY0NDFGMDAwQzI0NUIwIC8qIENTU0FzcGVjdFJh
dGlvVmFsdWUuY3BwICovLAogCQkJCUNBRTlGOTBFMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3Bl
Y3RSYXRpb1ZhbHVlLmggKi8sCkBAIC0yNDY5MSw2ICsyNDcxMCw5IEBACiAJCQkJMjlDRDYxREUx
NDZEMDI4OTAwNjhFODJBIC8qIFdlYktpdENTU1NoYWRlclZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlDREY2NUNDODE0NUIxRTc1MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDREY2NUNDQTE0NUI0NDg4MDBDNEM3QUEgLyogTWVkaWFDb250cm9sbGVy
SW50ZXJmYWNlLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MDM4QkMwQjE0NzExRDM0MDA5NUUwRDEg
LyogQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MDM4QkUzMDE0
NzJBRDIzMDA5NUUwRDEgLyogU3R5bGVDYWNoZWRTaGFkZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTUwMzhCRTQxMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpAQCAtMjc1NjAsNiArMjc1ODIsOSBAQAogCQkJCTcxMzQ0OTZEMTQ2OTQxQjMwMDcyMDMxMiAv
KiBTVkdMZW5ndGhDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NEQyREE0MTQ2QTUz
NUQwMEQ1MUY4QiAvKiBTZWN1cml0eVBvbGljeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMTMx
M0Y2NTE0NDNCMzVGMDA2RTJBOTAgLyogRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJNTAzOEJDMDcxNDcxMUNEQjAwOTVFMEQxIC8qIFdlYktpdENTU1NoYWRlclZh
bHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUwMzhCRTJGMTQ3MkFEMjMwMDk1RTBEMSAvKiBT
dHlsZUNhY2hlZFNoYWRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MDM4QkU0MDE0NzJBRDk4
MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1
bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBmZDFm
YjMyLi5mZmZkNmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmNwcApAQCAtNDAsNiArNDAsOSBAQAogI2luY2x1ZGUgIkNTU1NlbGVj
dG9yLmgiCiAjaW5jbHVkZSAiQ1NTVGltaW5nRnVuY3Rpb25WYWx1ZS5oIgogI2luY2x1ZGUgIkNT
U1ZhbHVlTGlzdC5oIgorI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyNpbmNsdWRlICJDdXN0b21G
aWx0ZXJPcGVyYXRpb24uaCIKKyNlbmRpZgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZvbnRGZWF0dXJlU2V0dGluZ3MuaCIKQEAg
LTYwLDYgKzYzLDggQEAKICNpbmNsdWRlICJEYXNoYm9hcmRSZWdpb24uaCIKICNlbmRpZgogCisj
aW5jbHVkZSA8YWxnb3JpdGhtPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIExpc3Qgb2Yg
YWxsIHByb3BlcnRpZXMgd2Uga25vdyBob3cgdG8gY29tcHV0ZSwgb21pdHRpbmcgc2hvcnRoYW5k
cy4KQEAgLTczNyw4ICs3NDIsMTggQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uOjp2YWx1ZUZvckZpbHRlcihSZW5kZXJTdHlsZSogc3QKICAgICAgICAg
fQogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKICAgICAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246
OkNVU1RPTTogewotICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBjdXN0b20gc2hhZGVy
IGZ1bmN0aW9uLgotICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTcxMzk2CisgICAgICAgICAgICBDdXN0b21GaWx0ZXJPcGVyYXRpb24qIGN1c3Rv
bU9wZXJhdGlvbiA9IHN0YXRpY19jYXN0PEN1c3RvbUZpbHRlck9wZXJhdGlvbio+KGZpbHRlck9w
ZXJhdGlvbik7CisgICAgICAgICAgICBmaWx0ZXJWYWx1ZSA9IFdlYktpdENTU0ZpbHRlclZhbHVl
OjpjcmVhdGUoV2ViS2l0Q1NTRmlsdGVyVmFsdWU6OkN1c3RvbUZpbHRlck9wZXJhdGlvbik7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IHNoYWRlcnNMaXN0
ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOworICAgICAgICAgICAgaWYg
KGN1c3RvbU9wZXJhdGlvbi0+dmVydGV4U2hhZGVyKCkpCisgICAgICAgICAgICAgICAgc2hhZGVy
c0xpc3QtPmFwcGVuZChjdXN0b21PcGVyYXRpb24tPnZlcnRleFNoYWRlcigpLT5jc3NWYWx1ZSgp
KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzaGFkZXJzTGlzdC0+YXBwZW5k
KHByaW1pdGl2ZVZhbHVlQ2FjaGUtPmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUp
KTsKKyAgICAgICAgICAgIGlmIChjdXN0b21PcGVyYXRpb24tPmZyYWdtZW50U2hhZGVyKCkpCisg
ICAgICAgICAgICAgICAgc2hhZGVyc0xpc3QtPmFwcGVuZChjdXN0b21PcGVyYXRpb24tPmZyYWdt
ZW50U2hhZGVyKCktPmNzc1ZhbHVlKCkpOworICAgICAgICAgICAgZmlsdGVyVmFsdWUtPmFwcGVu
ZChzaGFkZXJzTGlzdC5yZWxlYXNlKCkpOworICAgICAgICAgICAgCiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5j
cHAKaW5kZXggMDVkMTQ2My4uNzYxY2FmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNl
bGVjdG9yLmNwcApAQCAtMTIyLDYgKzEyMiwxNCBAQAogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAj
ZW5kaWYKIAorI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyNpbmNsdWRlICJDdXN0b21GaWx0ZXJP
cGVyYXRpb24uaCIKKyNpbmNsdWRlICJTdHlsZUNhY2hlZFNoYWRlci5oIgorI2luY2x1ZGUgIlN0
eWxlUGVuZGluZ1NoYWRlci5oIgorI2luY2x1ZGUgIlN0eWxlU2hhZGVyLmgiCisjaW5jbHVkZSAi
V2ViS2l0Q1NTU2hhZGVyVmFsdWUuaCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNDksNiArMzU3LDkgQEAgQ1NTU3R5bGVTZWxlY3Rv
cjo6Q1NTU3R5bGVTZWxlY3RvcihEb2N1bWVudCogZG9jdW1lbnQsIFN0eWxlU2hlZXRMaXN0KiBz
dHlsZVNoZWUKICAgICAsIG1fYXBwbHlQcm9wZXJ0eVRvUmVndWxhclN0eWxlKHRydWUpCiAgICAg
LCBtX2FwcGx5UHJvcGVydHlUb1Zpc2l0ZWRMaW5rU3R5bGUoZmFsc2UpCiAgICAgLCBtX2FwcGx5
UHJvcGVydHkoQ1NTU3R5bGVBcHBseVByb3BlcnR5OjpzaGFyZWRDU1NTdHlsZUFwcGx5UHJvcGVy
dHkoKSkKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgLCBtX2hhc1BlbmRpbmdTaGFkZXJz
KGZhbHNlKQorI2VuZGlmCiB7CiAgICAgRWxlbWVudCogcm9vdCA9IGRvY3VtZW50LT5kb2N1bWVu
dEVsZW1lbnQoKTsKIApAQCAtMTMwNyw2ICsxMzE4LDExIEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5
bGU+IENTU1N0eWxlU2VsZWN0b3I6OnN0eWxlRm9yS2V5ZnJhbWUoY29uc3QgUmVuZGVyU3R5bGUq
IGVsCiAKICAgICAvLyBTdGFydCBsb2FkaW5nIGltYWdlcyByZWZlcmVuY2VkIGJ5IHRoaXMgc3R5
bGUuCiAgICAgbG9hZFBlbmRpbmdJbWFnZXMoKTsKKyAgICAKKyNpZiBFTkFCTEUoQ1NTX1NIQURF
UlMpCisgICAgLy8gU3RhcnQgbG9hZGluZyB0aGUgc2hhZGVycyByZWZlcmVuY2VkIGJ5IHRoaXMg
c3R5bGUuCisgICAgbG9hZFBlbmRpbmdTaGFkZXJzKCk7CisjZW5kaWYKIAogICAgIC8vIEFkZCBh
bGwgdGhlIGFuaW1hdGluZyBwcm9wZXJ0aWVzIHRvIHRoZSBrZXlmcmFtZS4KICAgICBpZiAoa2V5
ZnJhbWVSdWxlLT5zdHlsZSgpKSB7CkBAIC0xNDE2LDYgKzE0MzIsMTEgQEAgUGFzc1JlZlB0cjxS
ZW5kZXJTdHlsZT4gQ1NTU3R5bGVTZWxlY3Rvcjo6cHNldWRvU3R5bGVGb3JFbGVtZW50KFBzZXVk
b0lkIHBzZXVkbywKICAgICAvLyBTdGFydCBsb2FkaW5nIGltYWdlcyByZWZlcmVuY2VkIGJ5IHRo
aXMgc3R5bGUuCiAgICAgbG9hZFBlbmRpbmdJbWFnZXMoKTsKIAorI2lmIEVOQUJMRShDU1NfU0hB
REVSUykKKyAgICAvLyBTdGFydCBsb2FkaW5nIHRoZSBzaGFkZXJzIHJlZmVyZW5jZWQgYnkgdGhp
cyBzdHlsZS4KKyAgICBsb2FkUGVuZGluZ1NoYWRlcnMoKTsKKyNlbmRpZgorCiAgICAgLy8gTm93
IHJldHVybiB0aGUgc3R5bGUuCiAgICAgcmV0dXJuIG1fc3R5bGUucmVsZWFzZSgpOwogfQpAQCAt
MTQ0OSw2ICsxNDcwLDExIEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IENTU1N0eWxlU2VsZWN0
b3I6OnN0eWxlRm9yUGFnZShpbnQgcGFnZUluZGV4KQogICAgIC8vIFN0YXJ0IGxvYWRpbmcgaW1h
Z2VzIHJlZmVyZW5jZWQgYnkgdGhpcyBzdHlsZS4KICAgICBsb2FkUGVuZGluZ0ltYWdlcygpOwog
CisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorICAgIC8vIFN0YXJ0IGxvYWRpbmcgdGhlIHNoYWRl
cnMgcmVmZXJlbmNlZCBieSB0aGlzIHN0eWxlLgorICAgIGxvYWRQZW5kaW5nU2hhZGVycygpOwor
I2VuZGlmCisKICAgICAvLyBOb3cgcmV0dXJuIHRoZSBzdHlsZS4KICAgICByZXR1cm4gbV9zdHls
ZS5yZWxlYXNlKCk7CiB9CkBAIC0yMzA1LDcgKzIzMzEsMTEgQEAgdm9pZCBDU1NTdHlsZVNlbGVj
dG9yOjphcHBseU1hdGNoZWREZWNsYXJhdGlvbnMoY29uc3QgTWF0Y2hSZXN1bHQmIG1hdGNoUmVz
dWx0KQogICAgIGFwcGx5RGVjbGFyYXRpb25zPGZhbHNlPih0cnVlLCBtYXRjaFJlc3VsdC5maXJz
dFVBUnVsZSwgbWF0Y2hSZXN1bHQubGFzdFVBUnVsZSwgYXBwbHlJbmhlcml0ZWRPbmx5KTsKICAg
ICAKICAgICBsb2FkUGVuZGluZ0ltYWdlcygpOwotICAgICAgICAKKyAgICAKKyNpZiBFTkFCTEUo
Q1NTX1NIQURFUlMpCisgICAgbG9hZFBlbmRpbmdTaGFkZXJzKCk7CisjZW5kaWYKKyAgICAKICAg
ICBBU1NFUlQoIW1fZm9udERpcnR5KTsKICAgICAKICAgICBpZiAoY2FjaGVkU3R5bGUgfHwgIWNh
Y2hlSGFzaCkKQEAgLTU0MDgsNiArNTQzOCw2MyBAQCBzdGF0aWMgRmlsdGVyT3BlcmF0aW9uOjpP
cGVyYXRpb25UeXBlIGZpbHRlck9wZXJhdGlvbkZvclR5cGUoV2ViS2l0Q1NTRmlsdGVyVmFsdQog
ICAgIHJldHVybiBGaWx0ZXJPcGVyYXRpb246Ok5PTkU7CiB9CiAKKyNpZiBFTkFCTEUoQ1NTX1NI
QURFUlMpCitTdHlsZVNoYWRlciogQ1NTU3R5bGVTZWxlY3Rvcjo6c3R5bGVTaGFkZXIoQ1NTVmFs
dWUqIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS0+aXNXZWJLaXRDU1NTaGFkZXJWYWx1ZSgpKQor
ICAgICAgICByZXR1cm4gY2FjaGVkT3JQZW5kaW5nRnJvbVZhbHVlKHN0YXRpY19jYXN0PFdlYktp
dENTU1NoYWRlclZhbHVlKj4odmFsdWUpKTsKKyAgICByZXR1cm4gMDsKK30KKworU3R5bGVTaGFk
ZXIqIENTU1N0eWxlU2VsZWN0b3I6OmNhY2hlZE9yUGVuZGluZ0Zyb21WYWx1ZShXZWJLaXRDU1NT
aGFkZXJWYWx1ZSogdmFsdWUpCit7CisgICAgU3R5bGVTaGFkZXIqIHNoYWRlciA9IHZhbHVlLT5j
YWNoZWRPclBlbmRpbmdTaGFkZXIoKTsKKyAgICBpZiAoc2hhZGVyICYmIHNoYWRlci0+aXNQZW5k
aW5nU2hhZGVyKCkpCisgICAgICAgIG1faGFzUGVuZGluZ1NoYWRlcnMgPSB0cnVlOworICAgIHJl
dHVybiBzaGFkZXI7Cit9CisKK3ZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6bG9hZFBlbmRpbmdTaGFk
ZXJzKCkKK3sKKyAgICBpZiAoIW1fc3R5bGUtPmhhc0ZpbHRlcigpIHx8ICFtX2hhc1BlbmRpbmdT
aGFkZXJzKQorICAgICAgICByZXR1cm47CisKKyAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciogY2Fj
aGVkUmVzb3VyY2VMb2FkZXIgPSBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmNhY2hlZFJlc291cmNl
TG9hZGVyKCk7CisKKyAgICBWZWN0b3I8UmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gPiYgZmlsdGVy
T3BlcmF0aW9ucyA9IG1fc3R5bGUtPmZpbHRlcigpLm9wZXJhdGlvbnMoKTsKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgZmlsdGVyT3BlcmF0aW9ucy5zaXplKCk7ICsraSkgeworICAgICAg
ICBSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBmaWx0ZXJPcGVyYXRpb24gPSBmaWx0ZXJPcGVyYXRp
b25zLmF0KGkpOworICAgICAgICBpZiAoZmlsdGVyT3BlcmF0aW9uLT5nZXRPcGVyYXRpb25UeXBl
KCkgPT0gRmlsdGVyT3BlcmF0aW9uOjpDVVNUT00pIHsKKyAgICAgICAgICAgIEN1c3RvbUZpbHRl
ck9wZXJhdGlvbiogY3VzdG9tRmlsdGVyID0gc3RhdGljX2Nhc3Q8Q3VzdG9tRmlsdGVyT3BlcmF0
aW9uKj4oZmlsdGVyT3BlcmF0aW9uLmdldCgpKTsKKyAgICAgICAgICAgIGlmIChjdXN0b21GaWx0
ZXItPnZlcnRleFNoYWRlcigpICYmIGN1c3RvbUZpbHRlci0+dmVydGV4U2hhZGVyKCktPmlzUGVu
ZGluZ1NoYWRlcigpKSB7CisgICAgICAgICAgICAgICAgV2ViS2l0Q1NTU2hhZGVyVmFsdWUqIHNo
YWRlclZhbHVlID0gc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nU2hhZGVyKj4oY3VzdG9tRmlsdGVy
LT52ZXJ0ZXhTaGFkZXIoKSktPmNzc1NoYWRlclZhbHVlKCk7CisgICAgICAgICAgICAgICAgY3Vz
dG9tRmlsdGVyLT5zZXRWZXJ0ZXhTaGFkZXIoc2hhZGVyVmFsdWUtPmNhY2hlZFNoYWRlcihjYWNo
ZWRSZXNvdXJjZUxvYWRlcikpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGN1c3Rv
bUZpbHRlci0+ZnJhZ21lbnRTaGFkZXIoKSAmJiBjdXN0b21GaWx0ZXItPmZyYWdtZW50U2hhZGVy
KCktPmlzUGVuZGluZ1NoYWRlcigpKSB7CisgICAgICAgICAgICAgICAgV2ViS2l0Q1NTU2hhZGVy
VmFsdWUqIHNoYWRlclZhbHVlID0gc3RhdGljX2Nhc3Q8U3R5bGVQZW5kaW5nU2hhZGVyKj4oY3Vz
dG9tRmlsdGVyLT5mcmFnbWVudFNoYWRlcigpKS0+Y3NzU2hhZGVyVmFsdWUoKTsKKyAgICAgICAg
ICAgICAgICBjdXN0b21GaWx0ZXItPnNldEZyYWdtZW50U2hhZGVyKHNoYWRlclZhbHVlLT5jYWNo
ZWRTaGFkZXIoY2FjaGVkUmVzb3VyY2VMb2FkZXIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgIH0KKyAgICBtX2hhc1BlbmRpbmdTaGFkZXJzID0gZmFsc2U7Cit9CisKK1Bhc3NSZWZQ
dHI8Q3VzdG9tRmlsdGVyT3BlcmF0aW9uPiBDU1NTdHlsZVNlbGVjdG9yOjpjcmVhdGVDdXN0b21G
aWx0ZXJPcGVyYXRpb24oV2ViS2l0Q1NTRmlsdGVyVmFsdWUqIGZpbHRlclZhbHVlKQoreworICAg
IEFTU0VSVChmaWx0ZXJWYWx1ZS0+bGVuZ3RoKCkpOworCisgICAgQ1NTVmFsdWUqIHNoYWRlcnNW
YWx1ZSA9IGZpbHRlclZhbHVlLT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKDApOworICAgIEFTU0VS
VChzaGFkZXJzVmFsdWUtPmlzVmFsdWVMaXN0KCkpOworICAgIENTU1ZhbHVlTGlzdCogc2hhZGVy
c0xpc3QgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPihzaGFkZXJzVmFsdWUpOworCisgICAg
QVNTRVJUKHNoYWRlcnNMaXN0LT5sZW5ndGgoKSk7CisgICAgUmVmUHRyPFN0eWxlU2hhZGVyPiB2
ZXJ0ZXhTaGFkZXIgPSBzdHlsZVNoYWRlcihzaGFkZXJzTGlzdC0+aXRlbVdpdGhvdXRCb3VuZHND
aGVjaygwKSk7CisgICAgUmVmUHRyPFN0eWxlU2hhZGVyPiBmcmFnbWVudFNoYWRlciA9IChzaGFk
ZXJzTGlzdC0+bGVuZ3RoKCkgPiAxKSA/IHN0eWxlU2hhZGVyKHNoYWRlcnNMaXN0LT5pdGVtV2l0
aG91dEJvdW5kc0NoZWNrKDEpKSA6IDA7CisgICAgCisgICAgcmV0dXJuIEN1c3RvbUZpbHRlck9w
ZXJhdGlvbjo6Y3JlYXRlKHZlcnRleFNoYWRlciwgZnJhZ21lbnRTaGFkZXIpOworfQorI2VuZGlm
CisKIGJvb2wgQ1NTU3R5bGVTZWxlY3Rvcjo6Y3JlYXRlRmlsdGVyT3BlcmF0aW9ucyhDU1NWYWx1
ZSogaW5WYWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBG
aWx0ZXJPcGVyYXRpb25zJiBvdXRPcGVyYXRpb25zKQogewogICAgIGlmICghaW5WYWx1ZSB8fCAh
aW5WYWx1ZS0+aXNWYWx1ZUxpc3QoKSkgewpAQCAtNTQyNyw4ICs1NTE0LDkgQEAgYm9vbCBDU1NT
dHlsZVNlbGVjdG9yOjpjcmVhdGVGaWx0ZXJPcGVyYXRpb25zKENTU1ZhbHVlKiBpblZhbHVlLCBS
ZW5kZXJTdHlsZSogc3QKIAogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKICAgICAgICAgaWYgKG9w
ZXJhdGlvblR5cGUgPT0gRmlsdGVyT3BlcmF0aW9uOjpDVVNUT00pIHsKLSAgICAgICAgICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGhlIGZpbHRlciBvcGVyYXRpb24gZm9yIHRoZSBjdXN0b20gc2hh
ZGVyLgotICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTcxNDQ2CisgICAgICAgICAgICBSZWZQdHI8Q3VzdG9tRmlsdGVyT3BlcmF0aW9uPiBvcGVy
YXRpb24gPSBjcmVhdGVDdXN0b21GaWx0ZXJPcGVyYXRpb24oZmlsdGVyVmFsdWUpOworICAgICAg
ICAgICAgaWYgKG9wZXJhdGlvbikKKyAgICAgICAgICAgICAgICBvcGVyYXRpb25zLm9wZXJhdGlv
bnMoKS5hcHBlbmQob3BlcmF0aW9uKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oCmluZGV4IGRmYjllYWMu
LmM5NmY2YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaApAQCAtNTMsNiAr
NTMsNyBAQCBjbGFzcyBDU1NTdHlsZVJ1bGU7CiBjbGFzcyBDU1NTdHlsZVNoZWV0OwogY2xhc3Mg
Q1NTVmFsdWU7CiBjbGFzcyBDb250YWluZXJOb2RlOworY2xhc3MgQ3VzdG9tRmlsdGVyT3BlcmF0
aW9uOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50OwogY2xhc3MgRnJhbWU7CkBAIC02
NiwxMSArNjcsMTQgQEAgY2xhc3MgUnVsZURhdGE7CiBjbGFzcyBSdWxlU2V0OwogY2xhc3MgU2V0
dGluZ3M7CiBjbGFzcyBTdHlsZUltYWdlOworY2xhc3MgU3R5bGVTaGFkZXI7CiBjbGFzcyBTdHls
ZVNoZWV0OwogY2xhc3MgU3R5bGVTaGVldExpc3Q7CiBjbGFzcyBTdHlsZWRFbGVtZW50OwogY2xh
c3MgV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlOwogY2xhc3MgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZTsK
K2NsYXNzIFdlYktpdENTU0ZpbHRlclZhbHVlOworY2xhc3MgV2ViS2l0Q1NTU2hhZGVyVmFsdWU7
CiAKIGNsYXNzIE1lZGlhUXVlcnlSZXN1bHQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1l
ZGlhUXVlcnlSZXN1bHQpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTIwMiw3ICsyMDYs
MTMgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIGJvb2wgY3JlYXRl
RmlsdGVyT3BlcmF0aW9ucyhDU1NWYWx1ZSogaW5WYWx1ZSwgUmVuZGVyU3R5bGUqIGluU3R5bGUs
IFJlbmRlclN0eWxlKiByb290U3R5bGUsIEZpbHRlck9wZXJhdGlvbnMmIG91dE9wZXJhdGlvbnMp
OworI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyAgICBTdHlsZVNoYWRlciogc3R5bGVTaGFkZXIo
Q1NTVmFsdWUqKTsKKyAgICBTdHlsZVNoYWRlciogY2FjaGVkT3JQZW5kaW5nRnJvbVZhbHVlKFdl
YktpdENTU1NoYWRlclZhbHVlKik7CisgICAgUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJPcGVyYXRp
b24+IGNyZWF0ZUN1c3RvbUZpbHRlck9wZXJhdGlvbihXZWJLaXRDU1NGaWx0ZXJWYWx1ZSopOwor
ICAgIHZvaWQgbG9hZFBlbmRpbmdTaGFkZXJzKCk7CiAjZW5kaWYKKyNlbmRpZiAvLyBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCiAKICAgICBzdHJ1Y3QgRmVhdHVyZXMgewogICAgICAgICBGZWF0dXJlcygp
OwpAQCAtMzg2LDYgKzM5NiwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hcHBseVByb3BlcnR5
VG9SZWd1bGFyU3R5bGU7CiAgICAgYm9vbCBtX2FwcGx5UHJvcGVydHlUb1Zpc2l0ZWRMaW5rU3R5
bGU7CiAgICAgY29uc3QgQ1NTU3R5bGVBcHBseVByb3BlcnR5JiBtX2FwcGx5UHJvcGVydHk7Cisg
ICAgCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorICAgIGJvb2wgbV9oYXNQZW5kaW5nU2hhZGVy
czsKKyNlbmRpZgogCiAgICAgZnJpZW5kIGNsYXNzIENTU1N0eWxlQXBwbHlQcm9wZXJ0eTsKICAg
ICBmcmllbmQgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1hdGNoZWRTdHlsZURlY2xhcmF0aW9uJiwg
Y29uc3QgTWF0Y2hlZFN0eWxlRGVjbGFyYXRpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2Vi
S2l0Q1NTU2hhZGVyVmFsdWUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjUxY2Y4YTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NT
U2hhZGVyVmFsdWUuY3BwCkBAIC0wLDAgKzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMSBB
ZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICog
ICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorI2lu
Y2x1ZGUgIldlYktpdENTU1NoYWRlclZhbHVlLmgiCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJj
ZUxvYWRlci5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiU3R5bGVDYWNoZWRT
aGFkZXIuaCIKKyNpbmNsdWRlICJTdHlsZVBlbmRpbmdTaGFkZXIuaCIKKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitXZWJLaXRDU1NTaGFkZXJWYWx1ZTo6V2ViS2l0Q1NTU2hhZGVyVmFsdWUoY29u
c3QgU3RyaW5nJiB1cmwpCisgICAgOiBDU1NQcmltaXRpdmVWYWx1ZShXZWJLaXRDU1NTaGFkZXJD
bGFzcywgdXJsLCBDU1NfVVJJKQorICAgICwgbV9hY2Nlc3NlZFNoYWRlcihmYWxzZSkKK3sKK30K
KworV2ViS2l0Q1NTU2hhZGVyVmFsdWU6On5XZWJLaXRDU1NTaGFkZXJWYWx1ZSgpCit7Cit9CisK
K1N0eWxlQ2FjaGVkU2hhZGVyKiBXZWJLaXRDU1NTaGFkZXJWYWx1ZTo6Y2FjaGVkU2hhZGVyKENh
Y2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIpCit7CisgICAgQVNTRVJUKGxvYWRlcik7CisKKyAg
ICBpZiAoIW1fYWNjZXNzZWRTaGFkZXIpIHsKKyAgICAgICAgbV9hY2Nlc3NlZFNoYWRlciA9IHRy
dWU7CisKKyAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobG9hZGVyLT5kb2N1bWVudCgp
LT5jb21wbGV0ZVVSTChnZXRTdHJpbmdWYWx1ZSgpKSk7CisgICAgICAgIGlmIChDYWNoZWRTaGFk
ZXIqIGNhY2hlZFNoYWRlciA9IGxvYWRlci0+cmVxdWVzdFNoYWRlcihyZXF1ZXN0KSkKKyAgICAg
ICAgICAgIG1fc2hhZGVyID0gU3R5bGVDYWNoZWRTaGFkZXI6OmNyZWF0ZShjYWNoZWRTaGFkZXIp
OworICAgIH0KKworICAgIHJldHVybiAobV9zaGFkZXIgJiYgbV9zaGFkZXItPmlzQ2FjaGVkU2hh
ZGVyKCkpID8gc3RhdGljX2Nhc3Q8U3R5bGVDYWNoZWRTaGFkZXIqPihtX3NoYWRlci5nZXQoKSkg
OiAwOworfQorCitTdHlsZVNoYWRlciogV2ViS2l0Q1NTU2hhZGVyVmFsdWU6OmNhY2hlZE9yUGVu
ZGluZ1NoYWRlcigpCit7CisgICAgaWYgKCFtX3NoYWRlcikKKyAgICAgICAgbV9zaGFkZXIgPSBT
dHlsZVBlbmRpbmdTaGFkZXI6OmNyZWF0ZSh0aGlzKTsKKworICAgIHJldHVybiBtX3NoYWRlci5n
ZXQoKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
Q1NTX1NIQURFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hh
ZGVyVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5oCmlu
ZGV4IDU1ZmE2NWMuLjgyNTQ4MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJL
aXRDU1NTaGFkZXJWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFk
ZXJWYWx1ZS5oCkBAIC0zMiwxOSArMzIsMjggQEAKIAogI2lmIEVOQUJMRShDU1NfU0hBREVSUykK
IAorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCiAjaW5jbHVkZSAiQ1NTUHJpbWl0
aXZlVmFsdWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBDYWNoZWRSZXNvdXJj
ZUxvYWRlcjsKK2NsYXNzIFN0eWxlQ2FjaGVkU2hhZGVyOworY2xhc3MgU3R5bGVTaGFkZXI7CisK
IGNsYXNzIFdlYktpdENTU1NoYWRlclZhbHVlIDogcHVibGljIENTU1ByaW1pdGl2ZVZhbHVlIHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJLaXRDU1NTaGFkZXJWYWx1ZT4gY3Jl
YXRlKGNvbnN0IFN0cmluZyYgdXJsKSB7IHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2l0Q1NTU2hh
ZGVyVmFsdWUodXJsKSk7IH0KKyAgICB+V2ViS2l0Q1NTU2hhZGVyVmFsdWUoKTsKIAorICAgIFN0
eWxlQ2FjaGVkU2hhZGVyKiBjYWNoZWRTaGFkZXIoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqKTsKKyAg
ICBTdHlsZVNoYWRlciogY2FjaGVkT3JQZW5kaW5nU2hhZGVyKCk7CisgICAgCiBwcml2YXRlOgot
ICAgIFdlYktpdENTU1NoYWRlclZhbHVlKGNvbnN0IFN0cmluZyYgdXJsKQotICAgICAgICA6IENT
U1ByaW1pdGl2ZVZhbHVlKFdlYktpdENTU1NoYWRlckNsYXNzLCB1cmwsIENTU19VUkkpCi0gICAg
ewotICAgIH0KKyAgICBXZWJLaXRDU1NTaGFkZXJWYWx1ZShjb25zdCBTdHJpbmcmIHVybCk7Cisg
ICAgCisgICAgUmVmUHRyPFN0eWxlU2hhZGVyPiBtX3NoYWRlcjsKKyAgICBib29sIG1fYWNjZXNz
ZWRTaGFkZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAppbmRleCBiNDlkYWJkLi5kZGY5NTYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAK
QEAgLTc1LDYgKzc1LDEwIEBAIHN0YXRpYyBSZXNvdXJjZUxvYWRQcmlvcml0eSBkZWZhdWx0UHJp
b3JpdHlGb3JSZXNvdXJjZVR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUKICAgICAgICAgY2FzZSBD
YWNoZWRSZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2U6CiAgICAgICAgICAgICByZXR1cm4gUmVz
b3VyY2VMb2FkUHJpb3JpdHlMb3c7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisg
ICAgICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNoYWRlclJlc291cmNlOgorICAgICAgICAgICAg
cmV0dXJuIFJlc291cmNlTG9hZFByaW9yaXR5TWVkaXVtOworI2VuZGlmCiAgICAgfQogICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBSZXNvdXJjZUxvYWRQcmlvcml0eUxvdzsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKaW5kZXggNWQx
MTQ2Ny4uNDA2YTQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlLmgKQEAgLTc2LDYgKzc2LDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShWSURFT19UUkFD
SykKICAgICAgICAgLCBUZXh0VHJhY2tSZXNvdXJjZQogI2VuZGlmCisjaWYgRU5BQkxFKENTU19T
SEFERVJTKQorICAgICAgICAsIFNoYWRlclJlc291cmNlCisjZW5kaWYKICAgICB9OwogCiAgICAg
ZW51bSBTdGF0dXMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggZTdmMzkzNi4uNDNmYWM0MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBA
IC01Niw2ICs1NiwxMCBAQAogI2luY2x1ZGUgIkNhY2hlZFRleHRUcmFjay5oIgogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisjaW5jbHVkZSAiQ2FjaGVkU2hhZGVyLmgiCisjZW5k
aWYKKwogI2RlZmluZSBQUkVMT0FEX0RFQlVHIDAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
ODksNiArOTMsMTAgQEAgc3RhdGljIENhY2hlZFJlc291cmNlKiBjcmVhdGVSZXNvdXJjZShDYWNo
ZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QKICAgICBjYXNlIENhY2hlZFJl
c291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZToKICAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRUZXh0
VHJhY2socmVxdWVzdCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgY2Fz
ZSBDYWNoZWRSZXNvdXJjZTo6U2hhZGVyUmVzb3VyY2U6CisgICAgICAgIHJldHVybiBuZXcgQ2Fj
aGVkU2hhZGVyKHJlcXVlc3QpOworI2VuZGlmCiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgIHJldHVybiAwOwpAQCAtMTY4LDYgKzE3NiwxMyBAQCBDYWNoZWRUZXh0VHJhY2sq
IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VGV4dFRyYWNrKFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdAogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCitDYWNoZWRTaGFk
ZXIqIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U2hhZGVyKFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU2hhZGVyKj4ocmVxdWVz
dFJlc291cmNlKENhY2hlZFJlc291cmNlOjpTaGFkZXJSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5n
KCksIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkpOworfQorI2VuZGlmCisKIENhY2hl
ZENTU1N0eWxlU2hlZXQqIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Q1NTU3R5bGVTaGVl
dChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgUmVzb3Vy
Y2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hl
ZENTU1N0eWxlU2hlZXQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxl
U2hlZXQsIHJlcXVlc3QsIGNoYXJzZXQsIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSwg
cHJpb3JpdHkpKTsKQEAgLTI0Miw2ICsyNTcsOSBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVy
OjpjaGVja0luc2VjdXJlQ29udGVudChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdAog
I2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUZXh0VHJh
Y2tSZXNvdXJjZToKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyAgICBjYXNlIENh
Y2hlZFJlc291cmNlOjpTaGFkZXJSZXNvdXJjZToKKyNlbmRpZgogICAgIGNhc2UgQ2FjaGVkUmVz
b3VyY2U6OkltYWdlUmVzb3VyY2U6CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291
cmNlOiB7CiAgICAgICAgIC8vIFRoZXNlIHJlc291cmNlcyBjYW4gY29ycnVwdCBvbmx5IHRoZSBm
cmFtZSdzIHBpeGVscy4KQEAgLTI5MCw2ICszMDgsOSBAQCBib29sIENhY2hlZFJlc291cmNlTG9h
ZGVyOjpjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVy
bAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUZXh0
VHJhY2tSZXNvdXJjZToKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyAgICBjYXNl
IENhY2hlZFJlc291cmNlOjpTaGFkZXJSZXNvdXJjZToKKyNlbmRpZgogICAgICAgICAvLyBUaGVz
ZSB0eXBlcyBvZiByZXNvdXJjZXMgY2FuIGJlIGxvYWRlZCBmcm9tIGFueSBvcmlnaW4uCiAgICAg
ICAgIC8vIEZJWE1FOiBBcmUgd2Ugc3VyZSBhYm91dCBDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291
cmNlPwogICAgICAgICBicmVhazsKQEAgLTMxOSw2ICszNDAsMTAgQEAgYm9vbCBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6Y2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBL
VVJMJiB1cmwKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBicmVhazsKKyNpZiBF
TkFCTEUoQ1NTX1NIQURFUlMpCisgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6U2hhZGVyUmVzb3Vy
Y2U6CisgICAgICAgIC8vIFNpbmNlIHNoYWRlcnMgYXJlIHJlZmVyZW5jZWQgZnJvbSBDU1MgU3R5
bGVzIHVzZSB0aGUgc2FtZSBydWxlcyBoZXJlLgorI2VuZGlmCiAgICAgY2FzZSBDYWNoZWRSZXNv
dXJjZTo6Q1NTU3R5bGVTaGVldDoKICAgICAgICAgaWYgKCFtX2RvY3VtZW50LT5jb250ZW50U2Vj
dXJpdHlQb2xpY3koKS0+YWxsb3dTdHlsZUZyb21Tb3VyY2UodXJsKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmgKaW5kZXggMzU2YmIwYy4uODZkY2EwZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKQEAgLTQ0LDYgKzQ0
LDcgQEAgY2xhc3MgQ2FjaGVkRm9udDsKIGNsYXNzIENhY2hlZEltYWdlOwogY2xhc3MgQ2FjaGVk
UmF3UmVzb3VyY2U7CiBjbGFzcyBDYWNoZWRTY3JpcHQ7CitjbGFzcyBDYWNoZWRTaGFkZXI7CiBj
bGFzcyBDYWNoZWRUZXh0VHJhY2s7CiBjbGFzcyBDYWNoZWRYU0xTdHlsZVNoZWV0OwogY2xhc3Mg
RG9jdW1lbnQ7CkBAIC03Nyw2ICs3OCw5IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCiAgICAgQ2FjaGVkVGV4dFRyYWNrKiByZXF1ZXN0VGV4dFRyYWNrKFJlc291cmNlUmVxdWVz
dCYpOwogI2VuZGlmCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorICAgIENhY2hlZFNoYWRlciog
cmVxdWVzdFNoYWRlcihSZXNvdXJjZVJlcXVlc3QmKTsKKyNlbmRpZgogCiAgICAgLy8gTG9ncyBh
biBhY2Nlc3MgZGVuaWVkIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUgZm9yIHRoZSBzcGVjaWZpZWQg
VVJMLgogICAgIHZvaWQgcHJpbnRBY2Nlc3NEZW5pZWRNZXNzYWdlKGNvbnN0IEtVUkwmIHVybCkg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2hh
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFkOGY1NDAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcApAQCAtMCww
ICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IDIwMTEgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0
ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxB
UyBJU+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQor
ICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKworI2luY2x1ZGUgIkNhY2hlZFNoYWRlci5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NhY2hlZFNoYWRlcjo6Q2FjaGVkU2hhZGVyKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQorICAgIDogQ2FjaGVkUmVzb3Vy
Y2UocmVzb3VyY2VSZXF1ZXN0LCBTaGFkZXJSZXNvdXJjZSkKK3sKK30KKworQ2FjaGVkU2hhZGVy
Ojp+Q2FjaGVkU2hhZGVyKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKENTU19TSEFERVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNoYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhkZWFkMDEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2hh
ZGVyLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDExIEFkb2JlIFN5c3Rl
bXMgSW5jb3Jwb3JhdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIENhY2hlZFNoYWRlcl9oCisjZGVmaW5lIENhY2hlZFNoYWRlcl9oCisKKyNpZiBFTkFCTEUo
Q1NTX1NIQURFUlMpCisKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIENhY2hlZFNoYWRlciA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7
CitwdWJsaWM6CisgICAgQ2FjaGVkU2hhZGVyKGNvbnN0IFJlc291cmNlUmVxdWVzdCYpOworICAg
IHZpcnR1YWwgfkNhY2hlZFNoYWRlcigpOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKENT
U19TSEFERVJTKQorCisjZW5kaWYgLy8gQ2FjaGVkU2hhZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRl
ck9wZXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmMzFhM2IK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgMjAxMSBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisg
KiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFp
bWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDdXN0b21GaWx0ZXJPcGVyYXRpb25faAorI2RlZmlu
ZSBDdXN0b21GaWx0ZXJPcGVyYXRpb25faAorCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorCisj
aW5jbHVkZSAiRmlsdGVyT3BlcmF0aW9uLmgiCisjaW5jbHVkZSAiU3R5bGVTaGFkZXIuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBDU1MgU2hhZGVycworCitjbGFzcyBDdXN0b21GaWx0
ZXJPcGVyYXRpb246IHB1YmxpYyBGaWx0ZXJPcGVyYXRpb24geworcHVibGljOgorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEN1c3RvbUZpbHRlck9wZXJhdGlvbj4gY3JlYXRlKFBhc3NSZWZQdHI8U3R5
bGVTaGFkZXI+IHZlcnRleFNoYWRlciwgUGFzc1JlZlB0cjxTdHlsZVNoYWRlcj4gZnJhZ21lbnRT
aGFkZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEN1c3RvbUZpbHRlck9w
ZXJhdGlvbih2ZXJ0ZXhTaGFkZXIsIGZyYWdtZW50U2hhZGVyKSk7CisgICAgfQorICAgIAorICAg
IHZvaWQgc2V0VmVydGV4U2hhZGVyKFBhc3NSZWZQdHI8U3R5bGVTaGFkZXI+IHNoYWRlcikgeyBt
X3ZlcnRleFNoYWRlciA9IHNoYWRlcjsgfQorICAgIFN0eWxlU2hhZGVyKiB2ZXJ0ZXhTaGFkZXIo
KSBjb25zdCB7IHJldHVybiBtX3ZlcnRleFNoYWRlci5nZXQoKTsgfQorICAgIAorICAgIHZvaWQg
c2V0RnJhZ21lbnRTaGFkZXIoUGFzc1JlZlB0cjxTdHlsZVNoYWRlcj4gc2hhZGVyKSB7IG1fZnJh
Z21lbnRTaGFkZXIgPSBzaGFkZXI7IH0KKyAgICBTdHlsZVNoYWRlciogZnJhZ21lbnRTaGFkZXIo
KSBjb25zdCB7IHJldHVybiBtX2ZyYWdtZW50U2hhZGVyLmdldCgpOyB9CisgICAgCitwcml2YXRl
OgorICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZpbHRlck9wZXJhdGlvbiYgbykg
Y29uc3QKKyAgICB7CisgICAgICAgIGlmICghaXNTYW1lVHlwZShvKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgICAgICBjb25zdCBDdXN0b21GaWx0ZXJPcGVyYXRpb24qIG90aGVy
ID0gc3RhdGljX2Nhc3Q8Y29uc3QgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uKj4oJm8pOworICAgICAg
ICByZXR1cm4gbV92ZXJ0ZXhTaGFkZXIuZ2V0KCkgPT0gb3RoZXItPm1fdmVydGV4U2hhZGVyLmdl
dCgpCisgICAgICAgICAgICAmJiBtX2ZyYWdtZW50U2hhZGVyLmdldCgpID09IG90aGVyLT5tX2Zy
YWdtZW50U2hhZGVyLmdldCgpOworICAgIH0KKyAgICAKKyAgICBDdXN0b21GaWx0ZXJPcGVyYXRp
b24oUGFzc1JlZlB0cjxTdHlsZVNoYWRlcj4gdmVydGV4U2hhZGVyLCBQYXNzUmVmUHRyPFN0eWxl
U2hhZGVyPiBmcmFnbWVudFNoYWRlcikKKyAgICAgICAgOiBGaWx0ZXJPcGVyYXRpb24oQ1VTVE9N
KQorICAgICAgICAsIG1fdmVydGV4U2hhZGVyKHZlcnRleFNoYWRlcikKKyAgICAgICAgLCBtX2Zy
YWdtZW50U2hhZGVyKGZyYWdtZW50U2hhZGVyKQorICAgIHsKKyAgICB9CisKKyAgICBSZWZQdHI8
U3R5bGVTaGFkZXI+IG1fdmVydGV4U2hhZGVyOworICAgIFJlZlB0cjxTdHlsZVNoYWRlcj4gbV9m
cmFnbWVudFNoYWRlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShDU1NfU0hBREVSUykKKworI2VuZGlmIC8vIEN1c3RvbUZpbHRlck9wZXJhdGlvbl9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGQ4
YjJhNTAuLjlhMDkxNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCkBAIC04NTYsNiArODU2LDcgQEAgcHVibGljOgogICAgIEVTcGVhayBzcGVhaygp
IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVTcGVhaz4ocmFyZUluaGVyaXRlZERhdGEtPnNwZWFrKTsg
fQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQorICAgIEZpbHRlck9wZXJhdGlvbnMmIGZpbHRl
cigpIHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2ZpbHRlci5hY2Nl
c3MoKS0+bV9vcGVyYXRpb25zOyB9CiAgICAgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVy
KCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZmlsdGVyLT5tX29wZXJh
dGlvbnM7IH0KICAgICBib29sIGhhc0ZpbHRlcigpIGNvbnN0IHsgcmV0dXJuICFyYXJlTm9uSW5o
ZXJpdGVkRGF0YS0+bV9maWx0ZXItPm1fb3BlcmF0aW9ucy5vcGVyYXRpb25zKCkuaXNFbXB0eSgp
OyB9CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlQ2FjaGVkU2hhZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZUNhY2hlZFNoYWRlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTJm
ZDJlZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZUNhY2hlZFNoYWRlci5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAy
MDExIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
CisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMp
CisKKyNpbmNsdWRlICJTdHlsZUNhY2hlZFNoYWRlci5oIgorCisjaW5jbHVkZSAiQ1NTUHJpbWl0
aXZlVmFsdWUuaCIKKyNpbmNsdWRlICJDYWNoZWRTaGFkZXIuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCisKK1N0eWxlQ2FjaGVkU2hhZGVyOjpTdHlsZUNhY2hlZFNoYWRlcihDYWNoZWRTaGFk
ZXIqIHNoYWRlcikKKyAgICA6IG1fc2hhZGVyKHNoYWRlcikKK3sKKyAgICAgbV9pc0NhY2hlZFNo
YWRlciA9IHRydWU7Cit9CisKK1Bhc3NSZWZQdHI8Q1NTVmFsdWU+IFN0eWxlQ2FjaGVkU2hhZGVy
Ojpjc3NWYWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVh
dGUobV9zaGFkZXItPnVybCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VSSSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDU1NfU0hBREVSUykKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkU2hh
ZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44OGJmYzgxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkU2hhZGVy
LmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDExIEFkb2JlIFN5c3RlbXMg
SW5jb3Jwb3JhdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBI
T0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IK
KyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFN0eWxlQ2FjaGVkU2hhZGVyX2gKKyNkZWZpbmUgU3R5bGVDYWNoZWRTaGFkZXJfaAorCisjaWYg
RU5BQkxFKENTU19TSEFERVJTKQorCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIK
KyNpbmNsdWRlICJTdHlsZVNoYWRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IENhY2hlZFNoYWRlcjsKKworY2xhc3MgU3R5bGVDYWNoZWRTaGFkZXIgOiBwdWJsaWMgU3R5bGVT
aGFkZXIgeworcHVibGljOgorICAgIC8vIEZJWE1FOiBLZWVwIGEgcmVmZXJlbmNlIHRvIHRoZSBh
Y3R1YWwgQ2FjaGVkU2hhZGVyIGluIHRoaXMgY2xhc3MuCisgICAgc3RhdGljIFBhc3NSZWZQdHI8
U3R5bGVDYWNoZWRTaGFkZXI+IGNyZWF0ZShDYWNoZWRTaGFkZXIqIHNoYWRlcikgeyByZXR1cm4g
YWRvcHRSZWYobmV3IFN0eWxlQ2FjaGVkU2hhZGVyKHNoYWRlcikpOyB9CisgICAgCisgICAgdmly
dHVhbCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBjc3NWYWx1ZSgpIGNvbnN0OworICAgIAorcHJpdmF0
ZToKKyAgICBTdHlsZUNhY2hlZFNoYWRlcihDYWNoZWRTaGFkZXIqKTsKKyAgICAKKyAgICBDYWNo
ZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IG1fc2hhZGVyOworfTsKKworfQorI2VuZGlm
IC8vIEVOQUJMRShDU1NfU0hBREVSUykKKworI2VuZGlmIC8vIFN0eWxlQ2FjaGVkU2hhZGVyX2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdT
aGFkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdTaGFk
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDQ2YzgyCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ1No
YWRlci5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMSBBZG9iZSBTeXN0
ZW1zIEluY29ycG9yYXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBTdHlsZVBlbmRpbmdTaGFkZXJfaAorI2RlZmluZSBTdHlsZVBlbmRpbmdTaGFkZXJfaAor
CisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorCisjaW5jbHVkZSAiQ1NTVmFsdWUuaCIKKyNpbmNs
dWRlICJTdHlsZVNoYWRlci5oIgorI2luY2x1ZGUgIldlYktpdENTU1NoYWRlclZhbHVlLmgiCisj
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBXZWJLaXRDU1NTaGFkZXJWYWx1ZTsKKworY2xhc3MgU3R5bGVQZW5kaW5nU2hhZGVyIDogcHVi
bGljIFN0eWxlU2hhZGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHlsZVBl
bmRpbmdTaGFkZXI+IGNyZWF0ZShXZWJLaXRDU1NTaGFkZXJWYWx1ZSogdmFsdWUpIHsgcmV0dXJu
IGFkb3B0UmVmKG5ldyBTdHlsZVBlbmRpbmdTaGFkZXIodmFsdWUpKTsgfQorICAgIAorICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gY3NzVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3Zh
bHVlOyB9CisgICAgV2ViS2l0Q1NTU2hhZGVyVmFsdWUqIGNzc1NoYWRlclZhbHVlKCkgY29uc3Qg
eyByZXR1cm4gbV92YWx1ZTsgfQorcHJpdmF0ZToKKyAgICBTdHlsZVBlbmRpbmdTaGFkZXIoV2Vi
S2l0Q1NTU2hhZGVyVmFsdWUqIHZhbHVlKQorICAgICAgICA6IG1fdmFsdWUodmFsdWUpCisgICAg
eworICAgICAgICAgbV9pc1BlbmRpbmdTaGFkZXIgPSB0cnVlOworICAgIH0KKyAgICAKKyAgICBX
ZWJLaXRDU1NTaGFkZXJWYWx1ZSogbV92YWx1ZTsgLy8gTm90IHJldGFpbmVkOyBpdCBvd25zIHVz
LgorfTsKKworfQorI2VuZGlmIC8vIEVOQUJMRShDU1NfU0hBREVSUykKKworI2VuZGlmIC8vIFN0
eWxlUGVuZGluZ1NoYWRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVTaGFkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVNoYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0MDE0OTAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVTaGFk
ZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IDIwMTEgQWRvYmUgU3lzdGVt
cyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
IEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgU3R5bGVTaGFkZXJfaAorI2RlZmluZSBTdHlsZVNoYWRlcl9oCisKKyNpZiBFTkFCTEUoQ1NT
X1NIQURFUlMpCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIENTU1ZhbHVlOworICAgIAorY2xhc3MgU3R5bGVTaGFkZXIgOiBwdWJs
aWMgUmVmQ291bnRlZDxTdHlsZVNoYWRlcj4geworcHVibGljOgorICAgIHZpcnR1YWwgflN0eWxl
U2hhZGVyKCkgeyB9CisKKyAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNDYWNoZWRTaGFkZXIoKSBj
b25zdCB7IHJldHVybiBtX2lzQ2FjaGVkU2hhZGVyOyB9CisgICAgQUxXQVlTX0lOTElORSBib29s
IGlzUGVuZGluZ1NoYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1faXNQZW5kaW5nU2hhZGVyOyB9Cisg
ICAgCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBjc3NWYWx1ZSgpIGNvbnN0ID0g
MDsKKyAgICAKK3Byb3RlY3RlZDoKKyAgICBTdHlsZVNoYWRlcigpCisgICAgICAgIDogbV9pc0Nh
Y2hlZFNoYWRlcihmYWxzZSkKKyAgICAgICAgLCBtX2lzUGVuZGluZ1NoYWRlcihmYWxzZSkKKyAg
ICB7CisgICAgfQorICAgIGJvb2wgbV9pc0NhY2hlZFNoYWRlcjoxOworICAgIGJvb2wgbV9pc1Bl
bmRpbmdTaGFkZXI6MTsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShDU1NfU0hBREVSUykK
KworI2VuZGlmIC8vIFN0eWxlU2hhZGVyX2gK
</data>
<flag name="review"
          id="114034"
          type_id="1"
          status="+"
          setter="dino"
    />
    <flag name="commit-queue"
          id="114035"
          type_id="3"
          status="-"
          setter="dino"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115202</attachid>
            <date>2011-11-15 10:56:42 -0800</date>
            <delta_ts>2011-11-15 22:34:13 -0800</delta_ts>
            <desc>Patch V3</desc>
            <filename>bug72378_3.patch</filename>
            <type>text/plain</type>
            <size>63758</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxMTA2Njk4Li5iNmM5NmJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTEt
MTUgIEFsZXhhbmRydSBDaGljdWxpdGEgIDxhY2hpY3VAYWRvYmUuY29tPgorCisgICAgICAgIFtD
U1NTaGFkZXJzXSBJbXBsZW1lbnQgdGhlIHN0eWxlIGNhY2hlZCByZXNvdXJjZXMgYW5kIGNvbXB1
dGVkIHN0eWxlIGZvciB0aGUgc2hhZGVyIHVybHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTcyMzc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBjc3MzL2ZpbHRlcnMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0
eS1jb21wdXRlZC1zdHlsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvZmls
dGVycy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LWNvbXB1dGVkLXN0eWxlLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGNzczMvZmlsdGVycy9zY3JpcHQtdGVzdHMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0
eS1jb21wdXRlZC1zdHlsZS5qczogQWRkZWQuCisgICAgICAgIChqc1dyYXBwZXJDbGFzcyk6Cisg
ICAgICAgIChleHByZXNzaW9uKToKKyAgICAgICAgKGRlc2NyaXB0aW9uKToKKwogMjAxMS0xMS0x
NSAgVG9ueSBHZW50aWxjb3JlICA8dG9ueWdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJv
bWl1bV0gcGVyZi9kb2N1bWVudC1jb250YWlucy5odG1sIGlzIGZsYWt5IG9uIHdpbgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItcHJvcGVydHktY29t
cHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3Rv
bS1maWx0ZXItcHJvcGVydHktY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiNTA0YmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHls
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0OSBAQAorVGVzdHMgdGhlIGNvbXB1dGVkIHN0eWxl
IG9mIHRoZSBjdXN0b20oKSBmdW5jdGlvbiBvZiB0aGUgLXdlYmtpdC1maWx0ZXIgcHJvcGVydHku
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK0N1c3RvbSB3aXRoIHZlcnRleCBz
aGFkZXIgOiBjdXN0b20odXJsKHZlcnRleC5zaGFkZXIpKQorUEFTUyByZW1vdmVCYXNlVVJMKGZp
bHRlclN0eWxlLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmlsdGVyJykpIGlzICdjdXN0b20o
dXJsKHZlcnRleC5zaGFkZXIpKScKK1BBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZSkgaXMg
J0NTU1ZhbHVlTGlzdCcKK1BBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZS5fX3Byb3RvX18p
IGlzICdDU1NWYWx1ZUxpc3RQcm90b3R5cGUnCitQQVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1
bGUuY29uc3RydWN0b3IpIGlzICdDU1NWYWx1ZUxpc3RDb25zdHJ1Y3RvcicKK1BBU1MgZmlsdGVy
UnVsZS5sZW5ndGggaXMgMQorUEFTUyBzdWJSdWxlLm9wZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NT
RmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00KK1BBU1MgcmVtb3ZlQmFzZVVSTChzdWJSdWxl
LmNzc1RleHQpIGlzICdjdXN0b20odXJsKHZlcnRleC5zaGFkZXIpKScKKworQ3VzdG9tIHdpdGgg
ZnJhZ21lbnQgc2hhZGVyIDogY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlcikpCitQQVNT
IHJlbW92ZUJhc2VVUkwoZmlsdGVyU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0
ZXInKSkgaXMgJ2N1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpKScKK1BBU1MganNXcmFw
cGVyQ2xhc3MoZmlsdGVyUnVsZSkgaXMgJ0NTU1ZhbHVlTGlzdCcKK1BBU1MganNXcmFwcGVyQ2xh
c3MoZmlsdGVyUnVsZS5fX3Byb3RvX18pIGlzICdDU1NWYWx1ZUxpc3RQcm90b3R5cGUnCitQQVNT
IGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1bGUuY29uc3RydWN0b3IpIGlzICdDU1NWYWx1ZUxpc3RD
b25zdHJ1Y3RvcicKK1BBU1MgZmlsdGVyUnVsZS5sZW5ndGggaXMgMQorUEFTUyBzdWJSdWxlLm9w
ZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00KK1BB
U1MgcmVtb3ZlQmFzZVVSTChzdWJSdWxlLmNzc1RleHQpIGlzICdjdXN0b20obm9uZSB1cmwoZnJh
Z21lbnQuc2hhZGVyKSknCisKK0N1c3RvbSB3aXRoIGJvdGggc2hhZGVycyA6IGN1c3RvbSh1cmwo
dmVydGV4LnNoYWRlcikgdXJsKGZyYWdtZW50LnNoYWRlcikpCitQQVNTIHJlbW92ZUJhc2VVUkwo
ZmlsdGVyU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSkgaXMgJ2N1c3Rv
bSh1cmwodmVydGV4LnNoYWRlcikgdXJsKGZyYWdtZW50LnNoYWRlcikpJworUEFTUyBqc1dyYXBw
ZXJDbGFzcyhmaWx0ZXJSdWxlKSBpcyAnQ1NTVmFsdWVMaXN0JworUEFTUyBqc1dyYXBwZXJDbGFz
cyhmaWx0ZXJSdWxlLl9fcHJvdG9fXykgaXMgJ0NTU1ZhbHVlTGlzdFByb3RvdHlwZScKK1BBU1Mg
anNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZS5jb25zdHJ1Y3RvcikgaXMgJ0NTU1ZhbHVlTGlzdENv
bnN0cnVjdG9yJworUEFTUyBmaWx0ZXJSdWxlLmxlbmd0aCBpcyAxCitQQVNTIHN1YlJ1bGUub3Bl
cmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0NVU1RPTQorUEFT
UyByZW1vdmVCYXNlVVJMKHN1YlJ1bGUuY3NzVGV4dCkgaXMgJ2N1c3RvbSh1cmwodmVydGV4LnNo
YWRlcikgdXJsKGZyYWdtZW50LnNoYWRlcikpJworCitNdWx0aXBsZSB3aXRoIGZyYWdtZW50IHNo
YWRlciA6IGdyYXlzY2FsZSgpIGN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpKSBzZXBp
YSgpCitQQVNTIHJlbW92ZUJhc2VVUkwoZmlsdGVyU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnLXdl
YmtpdC1maWx0ZXInKSkgaXMgJ2dyYXlzY2FsZSgxKSBjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQu
c2hhZGVyKSkgc2VwaWEoMSknCitQQVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1bGUpIGlzICdD
U1NWYWx1ZUxpc3QnCitQQVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1bGUuX19wcm90b19fKSBp
cyAnQ1NTVmFsdWVMaXN0UHJvdG90eXBlJworUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxl
LmNvbnN0cnVjdG9yKSBpcyAnQ1NTVmFsdWVMaXN0Q29uc3RydWN0b3InCitQQVNTIGZpbHRlclJ1
bGUubGVuZ3RoIGlzIDMKK1BBU1Mgc3ViUnVsZS5vcGVyYXRpb25UeXBlIGlzIFdlYktpdENTU0Zp
bHRlclZhbHVlLkNTU19GSUxURVJfR1JBWVNDQUxFCitQQVNTIHJlbW92ZUJhc2VVUkwoc3ViUnVs
ZS5jc3NUZXh0KSBpcyAnZ3JheXNjYWxlKDEpJworUEFTUyBzdWJSdWxlLm9wZXJhdGlvblR5cGUg
aXMgV2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00KK1BBU1MgcmVtb3ZlQmFz
ZVVSTChzdWJSdWxlLmNzc1RleHQpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVy
KSknCitQQVNTIHN1YlJ1bGUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5D
U1NfRklMVEVSX1NFUElBCitQQVNTIHJlbW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAn
c2VwaWEoMSknCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXIt
cHJvcGVydHktY29tcHV0ZWQtc3R5bGUuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9j
dXN0b20tZmlsdGVyLXByb3BlcnR5LWNvbXB1dGVkLXN0eWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNmY3YWM2YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NzczMvZmlsdGVycy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LWNvbXB1dGVkLXN0eWxlLmh0
bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQg
SFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1j
b21wdXRlZC1zdHlsZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9zY3JpcHQtdGVzdHMvY3VzdG9tLWZp
bHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS5qcyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVy
cy9zY3JpcHQtdGVzdHMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTMxNDI2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL3NjcmlwdC10ZXN0cy9jdXN0b20tZmlsdGVy
LXByb3BlcnR5LWNvbXB1dGVkLXN0eWxlLmpzCkBAIC0wLDAgKzEsODIgQEAKK2Rlc2NyaXB0aW9u
KCJUZXN0cyB0aGUgY29tcHV0ZWQgc3R5bGUgb2YgdGhlIGN1c3RvbSgpIGZ1bmN0aW9uIG9mIHRo
ZSAtd2Via2l0LWZpbHRlciBwcm9wZXJ0eS4iKTsKKworZnVuY3Rpb24ganNXcmFwcGVyQ2xhc3Mo
bm9kZSkKK3sKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiAiW251bGxdIjsKKyAgICB2
YXIgc3RyaW5nID0gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseShub2RlKTsKKyAgICBy
ZXR1cm4gc3RyaW5nLnN1YnN0cig4LCBzdHJpbmcubGVuZ3RoIC0gOSk7Cit9CisKKy8vIE5lZWQg
dG8gcmVtb3ZlIHRoZSBiYXNlIFVSTCB0byBhdm9pZCBoYXZpbmcgbG9jYWwgcGF0aHMgaW4gdGhl
IGV4cGVjdGVkIHJlc3VsdHMuCitmdW5jdGlvbiByZW1vdmVCYXNlVVJMKHNyYykgeworICAgIHZh
ciB1cmxSZWdleHAgPSAvdXJsXCgoW15cKV0qKVwpL2c7CisgICAgcmV0dXJuIHNyYy5yZXBsYWNl
KHVybFJlZ2V4cCwgZnVuY3Rpb24obWF0Y2gsIHVybCkgeworICAgICAgICByZXR1cm4gInVybCgi
ICsgdXJsLnN1YnN0cih1cmwubGFzdEluZGV4T2YoIi8iKSArIDEpICsgIikiOworICAgIH0pOwor
fQorCitmdW5jdGlvbiBzaG91bGRCZVR5cGUoZXhwcmVzc2lvbiwgY2xhc3NOYW1lLCBwcm90b3R5
cGVOYW1lLCBjb25zdHJ1Y3Rvck5hbWUpCit7CisgICAgaWYgKCFwcm90b3R5cGVOYW1lKQorICAg
ICAgICBwcm90b3R5cGVOYW1lID0gY2xhc3NOYW1lICsgIlByb3RvdHlwZSI7CisgICAgaWYgKCFj
b25zdHJ1Y3Rvck5hbWUpCisgICAgICAgIGNvbnN0cnVjdG9yTmFtZSA9IGNsYXNzTmFtZSArICJD
b25zdHJ1Y3RvciI7CisgICAgc2hvdWxkQmUoImpzV3JhcHBlckNsYXNzKCIgKyBleHByZXNzaW9u
ICsgIikiLCAiJyIgKyBjbGFzc05hbWUgKyAiJyIpOworICAgIHNob3VsZEJlKCJqc1dyYXBwZXJD
bGFzcygiICsgZXhwcmVzc2lvbiArICIuX19wcm90b19fKSIsICInIiArIHByb3RvdHlwZU5hbWUg
KyAiJyIpOworICAgIHNob3VsZEJlKCJqc1dyYXBwZXJDbGFzcygiICsgZXhwcmVzc2lvbiArICIu
Y29uc3RydWN0b3IpIiwgIiciICsgY29uc3RydWN0b3JOYW1lICsgIiciKTsKK30KKworLy8gVGhl
c2UgaGF2ZSB0byBiZSBnbG9iYWwgZm9yIHRoZSB0ZXN0IGhlbHBlcnMgdG8gc2VlIHRoZW0uCit2
YXIgc3R5bGVzaGVldCwgY3NzUnVsZSwgZGVjbGFyYXRpb24sIGZpbHRlclJ1bGUsIHN1YlJ1bGU7
CisKK2Z1bmN0aW9uIHRlc3RGaWx0ZXJSdWxlKGRlc2NyaXB0aW9uLCBydWxlLCBleHBlY3RlZFZh
bHVlLCBleHBlY3RlZFR5cGVzLCBleHBlY3RlZFRleHRzKQoreworICAgIGRlYnVnKCIiKTsKKyAg
ICBkZWJ1ZyhkZXNjcmlwdGlvbiArICIgOiAiICsgcnVsZSk7CisKKyAgICBzdHlsZXNoZWV0ID0g
ZG9jdW1lbnQuc3R5bGVTaGVldHMuaXRlbSgwKTsKKyAgICBzdHlsZXNoZWV0Lmluc2VydFJ1bGUo
ImJvZHkgeyAtd2Via2l0LWZpbHRlcjogIiArIHJ1bGUgKyAiOyB9IiwgMCk7CisKKyAgICBmaWx0
ZXJTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpOworICAgIAor
ICAgIHNob3VsZEJlKCJyZW1vdmVCYXNlVVJMKGZpbHRlclN0eWxlLmdldFByb3BlcnR5VmFsdWUo
Jy13ZWJraXQtZmlsdGVyJykpIiwgIiciICsgZXhwZWN0ZWRWYWx1ZSArICInIik7CisKKyAgICBm
aWx0ZXJSdWxlID0gZmlsdGVyU3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnLXdlYmtpdC1maWx0
ZXInKTsKKyAgICBzaG91bGRCZVR5cGUoImZpbHRlclJ1bGUiLCAiQ1NTVmFsdWVMaXN0Iik7CisK
KyAgICBpZiAoIWV4cGVjdGVkVHlwZXMpIHsKKyAgICAgICAgZXhwZWN0ZWRUeXBlcyA9IFsiV2Vi
S2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00iXTsKKyAgICAgICAgZXhwZWN0ZWRU
ZXh0cyA9IFtleHBlY3RlZFZhbHVlXTsKKyAgICB9CisgICAgCisgICAgc2hvdWxkQmUoImZpbHRl
clJ1bGUubGVuZ3RoIiwgIiIgKyBleHBlY3RlZFR5cGVzLmxlbmd0aCk7IC8vIHNob3VsZEJlIGV4
cGVjdHMgc3RyaW5nIGFyZ3VtZW50cworICAKKyAgICBpZiAoZmlsdGVyUnVsZSkgeworICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVjdGVkVHlwZXMubGVuZ3RoOyBpKyspIHsKKyAgICAg
ICAgICAgIHN1YlJ1bGUgPSBmaWx0ZXJSdWxlW2ldOworICAgICAgICAgICAgc2hvdWxkQmUoInN1
YlJ1bGUub3BlcmF0aW9uVHlwZSIsIGV4cGVjdGVkVHlwZXNbaV0pOworICAgICAgICAgICAgc2hv
dWxkQmUoInJlbW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSIsICInIiArIGV4cGVjdGVkVGV4
dHNbaV0gKyAiJyIpOworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0eWxlc2hlZXQuZGVs
ZXRlUnVsZSgwKTsKK30KKwordGVzdEZpbHRlclJ1bGUoIkN1c3RvbSB3aXRoIHZlcnRleCBzaGFk
ZXIiLAorICAgICJjdXN0b20odXJsKHZlcnRleC5zaGFkZXIpKSIsICJjdXN0b20odXJsKHZlcnRl
eC5zaGFkZXIpKSIpOworCit0ZXN0RmlsdGVyUnVsZSgiQ3VzdG9tIHdpdGggZnJhZ21lbnQgc2hh
ZGVyIiwKKyAgICAiY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlcikpIiwgImN1c3RvbShu
b25lIHVybChmcmFnbWVudC5zaGFkZXIpKSIpOworCit0ZXN0RmlsdGVyUnVsZSgiQ3VzdG9tIHdp
dGggYm90aCBzaGFkZXJzIiwKKyAgICAiY3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSB1cmwoZnJh
Z21lbnQuc2hhZGVyKSkiLCAiY3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSB1cmwoZnJhZ21lbnQu
c2hhZGVyKSkiKTsKKwordGVzdEZpbHRlclJ1bGUoIk11bHRpcGxlIHdpdGggZnJhZ21lbnQgc2hh
ZGVyIiwKKyAgICAiZ3JheXNjYWxlKCkgY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlcikp
IHNlcGlhKCkiLCAiZ3JheXNjYWxlKDEpIGN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIp
KSBzZXBpYSgxKSIsCisgICAgWyJXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0dSQVlT
Q0FMRSIsCisgICAgIldlYktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfQ1VTVE9NIiwKKyAg
ICAiV2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9TRVBJQSJdLAorICAgIFsiZ3JheXNj
YWxlKDEpIiwKKyAgICAiY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlcikpIiwKKyAgICAi
c2VwaWEoMSkiXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWM1NzEwOS4uNDkyODc0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDY5IEBACisyMDExLTExLTE1ICBBbGV4YW5kcnUgQ2hpY3VsaXRhICA8YWNoaWN1
QGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTU2hhZGVyc10gSW1wbGVtZW50IHRoZSBzdHlsZSBj
YWNoZWQgcmVzb3VyY2VzIGFuZCBjb21wdXRlZCBzdHlsZSBmb3IgdGhlIHNoYWRlciB1cmxzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjM3OAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGNzczMv
ZmlsdGVycy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LWNvbXB1dGVkLXN0eWxlLmh0bWwKKworICAg
ICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAg
ICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGNzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjp2YWx1ZUZvckZpbHRlcik6CisgICAgICAg
ICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVT
ZWxlY3Rvcjo6Q1NTU3R5bGVTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNl
bGVjdG9yOjpzdHlsZUZvcktleWZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2Vs
ZWN0b3I6OnBzZXVkb1N0eWxlRm9yRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHls
ZVNlbGVjdG9yOjpzdHlsZUZvclBhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxl
Y3Rvcjo6YXBwbHlNYXRjaGVkRGVjbGFyYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0
eWxlU2VsZWN0b3I6OnN0eWxlU2hhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2Vs
ZWN0b3I6OmNhY2hlZE9yUGVuZGluZ1N0eWxlU2hhZGVyRnJvbVZhbHVlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmxvYWRQZW5kaW5nU2hhZGVycyk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpjcmVhdGVDdXN0b21GaWx0ZXJPcGVyYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6Y3JlYXRlRmlsdGVyT3BlcmF0aW9u
cyk6CisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuaDoKKyAgICAgICAgKiBjc3MvV2Vi
S2l0Q1NTU2hhZGVyVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTU2hhZGVy
VmFsdWU6OldlYktpdENTU1NoYWRlclZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENT
U1NoYWRlclZhbHVlOjp+V2ViS2l0Q1NTU2hhZGVyVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViS2l0Q1NTU2hhZGVyVmFsdWU6OmNhY2hlZFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJLaXRDU1NTaGFkZXJWYWx1ZTo6Y2FjaGVkT3JQZW5kaW5nU2hhZGVyKToKKyAgICAgICAgKiBj
c3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGVmYXVsdFByaW9yaXR5Rm9yUmVzb3Vy
Y2VUeXBlKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuaDoKKyAgICAg
ICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y3JlYXRlUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnJlcXVlc3RTaGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VM
b2FkZXI6OmNoZWNrSW5zZWN1cmVDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJl
c291cmNlTG9hZGVyOjpjYW5SZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNoYWRlcjo6Q2FjaGVkU2hhZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNhY2hlZFNoYWRlcjo6fkNhY2hlZFNoYWRlcik6CisgICAgICAgICogbG9h
ZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6ZmlsdGVy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVDYWNoZWRTaGFkZXI6OlN0eWxlQ2FjaGVkU2hhZGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlQ2FjaGVkU2hhZGVyOjpjc3NWYWx1ZSk6CisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkU2hhZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZUNhY2hlZFNoYWRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5
bGVQZW5kaW5nU2hhZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVBlbmRpbmdTaGFkZXI6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVBlbmRpbmdTaGFkZXI6OmNzc1ZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUGVuZGluZ1NoYWRlcjo6Y3NzU2hhZGVyVmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQZW5kaW5nU2hhZGVyOjpTdHlsZVBlbmRpbmdTaGFk
ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVNoYWRlci5oOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVTaGFkZXI6On5TdHlsZVNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVNoYWRlcjo6aXNDYWNoZWRTaGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVTaGFk
ZXI6OmlzUGVuZGluZ1NoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNoYWRlcjo6U3R5
bGVTaGFkZXIpOgorCiAyMDExLTExLTE1ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90
QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTAwMjEzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggYjcxOGMxMC4uZDY4ZjBlZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xMTIxLDYgKzExMjEsNyBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgg
XAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmggXAorCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NTaGFkZXJWYWx1ZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJW
YWx1ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBcCkBAIC0y
MTY5LDYgKzIxNzAsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCBcCiAJU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRTY3JpcHQuaCBcCisJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNo
YWRlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuaCBc
CiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFN0eWxlU2hlZXRDbGllbnQuaCBc
CiAJU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suaCBcCkBAIC0yNTMzLDYg
KzI1MzYsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL1RyYW5zZm9ybWF0aW9uTWF0cml4Q2Fpcm8uY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0dGVyLmgg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NsdXR0ZXIvR3JhcGhpY3NMYXll
ckNsdXR0ZXIuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRGlzdGFudExpZ2h0U291cmNlLmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5jcHAgXApAQCAtMzI2Nyw2
ICszMjcxLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVCb3hEYXRhLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZUNhY2hlZEltYWdlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlQ2FjaGVkSW1hZ2UuaCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlQ2FjaGVkU2hhZGVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlQ2FjaGVkU2hhZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZURhc2hib2FyZFJlZ2lvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YS5oIFwKQEAgLTMyODQsMTEg
KzMyOTAsMTMgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVNdWx0aUNvbERhdGEuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVNdWx0aUNvbERhdGEuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUGVuZGluZ0ltYWdlLmggXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVBlbmRpbmdTaGFkZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJlZmxlY3Rpb24uaCBcCisJU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlU2hhZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVN1cnJvdW5kRGF0YS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVN1cnJvdW5kRGF0YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVUcmFuc2Zvcm1EYXRhLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9UYXJnZXQucHJpIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQppbmRleCBlNDg0
OWYwLi5kM2YzNmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKQEAgLTQ2MSw2ICs0NjEsNyBAQCBTT1VSQ0VTICs9
IFwKICAgICBjc3MvV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCBcCiAgICAgY3NzL1dlYktpdENT
U0tleWZyYW1lc1J1bGUuY3BwIFwKICAgICBjc3MvV2ViS2l0Q1NTTWF0cml4LmNwcCBcCisgICAg
Y3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcCBcCiAgICAgY3NzL1dlYktpdENTU1RyYW5zZm9y
bVZhbHVlLmNwcCBcCiAgICAgZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAgXAogICAgIGRvbS9BdHRy
LmNwcCBcCkBAIC05MTMsNiArOTE0LDcgQEAgU09VUkNFUyArPSBcCiAgICAgbG9hZGVyL2NhY2hl
L0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAgXAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZS5jcHAgXAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwIFwKKyAgICBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcCBcCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFhTTFN0
eWxlU2hlZXQuY3BwIFwKICAgICBsb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcCBc
CiAgICAgbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwIFwKQEAgLTEy
NTMsNiArMTI1NSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUJh
Y2tncm91bmREYXRhLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQm94RGF0YS5jcHAg
XAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmNwcCBcCisgICAgcmVuZGVy
aW5nL3N0eWxlL1N0eWxlQ2FjaGVkU2hhZGVyLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0
eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YS5jcHAgXAogICAgIHJlbmRlcmluZy9zdHlsZS9T
dHlsZUZpbHRlckRhdGEuY3BwIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJv
eERhdGEuY3BwIFwKQEAgLTE5NTQsNiArMTk1Nyw3IEBAIEhFQURFUlMgKz0gXAogICAgIGxvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5oIFwKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmggXAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuaCBcCisg
ICAgbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5oIFwKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVk
WFNMU3R5bGVTaGVldC5oIFwKICAgICBsb2FkZXIvY2FjaGUvTWVtb3J5Q2FjaGUuaCBcCiAgICAg
bG9hZGVyL0Nyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5oIFwKQEAgLTIwNzEsNiArMjA3NSw3IEBA
IEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL21vY2svU2Nyb2xsYmFyVGhlbWVNb2NrLmggXAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggXAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0NvbG9yLmggXAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVy
T3BlcmF0aW9uLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVCbGVuZC5oIFwK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29sb3JNYXRyaXguaCBcCiAgICAgcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUNvbXBvbmVudFRyYW5zZmVyLmggXApAQCAtMjM3MCw2
ICsyMzc1LDcgQEAgSEVBREVSUyArPSBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQmFja2dy
b3VuZERhdGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQm94RGF0YS5oIFwKICAgICBy
ZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5oIFwKKyAgICByZW5kZXJpbmcvc3R5bGUv
U3R5bGVDYWNoZWRTaGFkZXIuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlRGVwcmVjYXRl
ZEZsZXhpYmxlQm94RGF0YS5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVGaWx0ZXJEYXRh
LmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oIFwKQEAgLTIz
NzcsOSArMjM4MywxMSBAQCBIRUFERVJTICs9IFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVJ
bmhlcml0ZWREYXRhLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZU1hcnF1ZWVEYXRhLmgg
XAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5oIFwKKyAgICByZW5kZXJp
bmcvc3R5bGUvU3R5bGVQZW5kaW5nU2hhZGVyLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHls
ZVJhcmVJbmhlcml0ZWREYXRhLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25J
bmhlcml0ZWREYXRhLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJlZmxlY3Rpb24uaCBc
CisgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlU2hhZGVyLmggXAogICAgIHJlbmRlcmluZy9zdHls
ZS9TdHlsZVN1cnJvdW5kRGF0YS5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVUcmFuc2Zv
cm1EYXRhLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZVZpc3VhbERhdGEuaCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKaW5kZXggZTgzMDYxZC4uODBkMDdiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTk3
LDYgKzU5Nyw3IEBACiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlSGFu
ZGxlLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5o
JywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgnLAor
ICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuaCcsCiAgICAgICAgICAgICAn
bG9hZGVyL2NhY2hlL0NhY2hlZFN0eWxlU2hlZXRDbGllbnQuaCcsCiAgICAgICAgICAgICAnbG9h
ZGVyL2NhY2hlL01lbW9yeUNhY2hlLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9pY29uL0ljb25D
b250cm9sbGVyLmgnLApAQCAtMjQ3Miw2ICsyNDczLDggQEAKICAgICAgICAgICAgICdjc3MvV2Vi
S2l0Q1NTS2V5ZnJhbWVzUnVsZS5oJywKICAgICAgICAgICAgICdjc3MvV2ViS2l0Q1NTTWF0cml4
LmNwcCcsCiAgICAgICAgICAgICAnY3NzL1dlYktpdENTU01hdHJpeC5oJywKKyAgICAgICAgICAg
ICdjc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwJywKKyAgICAgICAgICAgICdjc3MvV2ViS2l0
Q1NTU2hhZGVyVmFsdWUuaCcsCiAgICAgICAgICAgICAnY3NzL1dlYktpdENTU1RyYW5zZm9ybVZh
bHVlLmNwcCcsCiAgICAgICAgICAgICAnZWRpdGluZy9BcHBlbmROb2RlQ29tbWFuZC5jcHAnLAog
ICAgICAgICAgICAgJ2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuaCcsCkBAIC0yODY0LDYgKzI4
NjcsOCBAQAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3Qu
Y3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCcsCiAgICAg
ICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oJywKKyAgICAgICAgICAgICdsb2Fk
ZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcCcsCisgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNoYWRlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNr
LmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oJywKICAg
ICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHAnLApAQCAtMzYx
MCw2ICszNjE1LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9lZmwvSW1hZ2VF
ZmwuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9lZmwvSW50UG9pbnRFZmwu
Y3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9lZmwvSW50UmVjdEVmbC5jcHAn
LAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3Bl
cmF0aW9uLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRGlzdGFu
dExpZ2h0U291cmNlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9EaXN0YW50TGlnaHRTb3VyY2UuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUJsZW5kLmNwcCcsCkBAIC00NzU1LDYgKzQ3NjEsOCBAQAogICAgICAgICAgICAg
J3JlbmRlcmluZy9zdHlsZS9TdHlsZUJhY2tncm91bmREYXRhLmNwcCcsCiAgICAgICAgICAgICAn
cmVuZGVyaW5nL3N0eWxlL1N0eWxlQm94RGF0YS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmNwcCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL3N0
eWxlL1N0eWxlQ2FjaGVkU2hhZGVyLmgnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9T
dHlsZUNhY2hlZFNoYWRlci5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHls
ZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcv
c3R5bGUvU3R5bGVGaWx0ZXJEYXRhLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxl
L1N0eWxlRmxleGlibGVCb3hEYXRhLmNwcCcsCkBAIC00NzYzLDggKzQ3NzEsMTAgQEAKICAgICAg
ICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVNYXJxdWVlRGF0YS5jcHAnLAogICAgICAgICAg
ICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5jcHAnLAogICAgICAgICAgICAg
J3JlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdJbWFnZS5oJywKKyAgICAgICAgICAgICdyZW5k
ZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nU2hhZGVyLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwJywKKyAgICAgICAgICAgICdy
ZW5kZXJpbmcvc3R5bGUvU3R5bGVTaGFkZXIuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0
eWxlL1N0eWxlU3Vycm91bmREYXRhLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxl
L1N0eWxlVHJhbnNmb3JtRGF0YS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9T
dHlsZVZpc3VhbERhdGEuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKaW5kZXggNDEyOWFjZi4uMzE4MzY4MSAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI2MjA1LDYgKzI2MjA1LDE0IEBACiAJ
CQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxsb2Fk
ZXJcY2FjaGVcQ2FjaGVkU2hhZGVyLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8Rmls
ZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxjYWNoZVxDYWNoZWRTaGFkZXIuaCIKKwkJ
CQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRl
clxjYWNoZVxDYWNoZWRTdHlsZVNoZWV0Q2xpZW50LmgiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+CkBA
IC0yOTQ5Niw2ICsyOTUwNCwxMCBAQAogCQkJCQlOYW1lPSJmaWx0ZXJzIgogCQkJCQk+CiAJCQkJ
CTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBoaWNzXGZpbHRlcnNc
Q3VzdG9tRmlsdGVyT3BlcmF0aW9uLmgiCisJCQkJCQk+CisJCQkJCTwvRmlsZT4KKwkJCQkJPEZp
bGUKIAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3NcZmlsdGVyc1xEaXN0
YW50TGlnaHRTb3VyY2UuY3BwIgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CkBAIC0zMjk1MCw2ICsz
Mjk2MiwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIuLlxjc3NcV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJ
CTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcV2ViS2l0Q1NTU2hhZGVyVmFsdWUuaCIK
KwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cY3NzXFdl
YktpdENTU0tleWZyYW1lUnVsZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpAQCAtNDA0NjMsNiAr
NDA0ODMsMTQgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxTdHlsZUNhY2hlZFNoYWRlci5jcHAiCisJCQkJCT4K
KwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdc
c3R5bGVcU3R5bGVDYWNoZWRTaGFkZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8Rmls
ZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxTdHlsZURlcHJlY2F0ZWRG
bGV4aWJsZUJveERhdGEuY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpAQCAt
NDA4NjMsNiArNDA4OTEsMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxTdHlsZVBlbmRpbmdTaGFkZXIuaCIK
KwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJl
bmRlcmluZ1xzdHlsZVxTdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcCIKIAkJCQkJPgogCQkJCQk8
RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTQwOTc5LDYgKzQxMDExLDEwIEBACiAJCQkJCT4KIAkJCQk8
L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVc
U3R5bGVTaGFkZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxTdHlsZVN1cnJvdW5kRGF0YS5jcHAiCiAJCQkJ
CT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzk4NGE5Mi4uMzY0ZTNiMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTM2Myw2ICsxMzYzLDEyIEBACiAJCTRGRDhEMEYzMTE5QzcxOEIwMDJGQTgyNSAvKiBTY3JpcHRH
Q0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
RkQ4RDBGMTExOUM3MThCMDAyRkE4MjUgLyogU2NyaXB0R0NFdmVudC5oICovOyB9OwogCQk1MDFC
QTlFMjEzOTNDRUEwMDBGN0FDRUIgLyogQ1NTV3JhcFNoYXBlcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAxQkE5RTExMzkzQ0VBMDAwRjdBQ0VCIC8q
IENTU1dyYXBTaGFwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MDFCQUFBOTEzOTUwRTJDMDBGN0FDRUIgLyogV2luZFJ1bGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwMUJBQUE4MTM5NTBFMkMw
MEY3QUNFQiAvKiBXaW5kUnVsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CisJCTUwMzhCQzA3MTQ3MTFDREIwMDk1RTBEMSAvKiBXZWJLaXRDU1NTaGFk
ZXJWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MDM4QkMwNjE0NzExQ0RCMDA5NUUwRDEgLyogV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwICov
OyB9OworCQk1MDM4QkMwQjE0NzExRDM0MDA5NUUwRDEgLyogQ3VzdG9tRmlsdGVyT3BlcmF0aW9u
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDM4QkMw
OTE0NzExRDM0MDA5NUUwRDEgLyogQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggKi87IH07CisJCTUw
MzhCRTJGMTQ3MkFEMjMwMDk1RTBEMSAvKiBTdHlsZUNhY2hlZFNoYWRlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDM4QkUyRDE0NzJBRDIzMDA5
NUUwRDEgLyogU3R5bGVDYWNoZWRTaGFkZXIuY3BwICovOyB9OworCQk1MDM4QkUzMDE0NzJBRDIz
MDA5NUUwRDEgLyogU3R5bGVDYWNoZWRTaGFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwMzhCRTJFMTQ3MkFEMjMwMDk1RTBEMSAvKiBTdHlsZUNh
Y2hlZFNoYWRlci5oICovOyB9OworCQk1MDM4QkU0MDE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVk
U2hhZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUwMzhCRTNFMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRTaGFkZXIuY3BwICovOyB9OworCQk1
MDM4QkU0MTE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDM4QkUzRjE0NzJBRDk4MDA5NUUwRDEg
LyogQ2FjaGVkU2hhZGVyLmggKi87IH07CiAJCTUwOENDQTRGMTNDRjEwNkIwMDMxNTFGMyAvKiBS
ZW5kZXJGbG93VGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1MDhDQ0E0RDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5oICov
OyB9OwogCQk1MDhDQ0E1MDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDhDQ0E0RTEz
Q0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5jcHAgKi87IH07CiAJCTUwRTU2NkQ2
MTM5RTM4QzUwMDIxNDQzMyAvKiBDU1NXcmFwU2hhcGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwMUJBQUIxMTM5NTExNEIwMEY3QUNFQiAvKiBD
U1NXcmFwU2hhcGVzLmNwcCAqLzsgfTsKQEAgLTg1NTIsNiArODU1OCwxMiBAQAogCQk1MDFCQTlF
MTEzOTNDRUEwMDBGN0FDRUIgLyogQ1NTV3JhcFNoYXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDU1NXcmFwU2hhcGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUwMUJBQUE4MTM5NTBFMkMwMEY3QUNFQiAvKiBXaW5kUnVsZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXaW5kUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MDFCQUFCMTEzOTUxMTRCMDBGN0FDRUIgLyogQ1NTV3JhcFNoYXBlcy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NXcmFwU2hhcGVzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTAzOEJDMDYxNDcxMUNEQjAwOTVFMEQxIC8qIFdlYktp
dENTU1NoYWRlclZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYktpdENTU1NoYWRlclZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTAzOEJDMDkxNDcxMUQzNDAwOTVFMEQxIC8qIEN1c3RvbUZpbHRlck9wZXJhdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDdXN0b21GaWx0ZXJPcGVyYXRpb24uaDsgcGF0
aCA9IGZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUwMzhCRTJEMTQ3MkFEMjMwMDk1RTBEMSAvKiBTdHlsZUNhY2hlZFNoYWRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdHlsZUNhY2hlZFNoYWRl
ci5jcHA7IHBhdGggPSBzdHlsZS9TdHlsZUNhY2hlZFNoYWRlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTUwMzhCRTJFMTQ3MkFEMjMwMDk1RTBEMSAvKiBTdHlsZUNhY2hlZFNo
YWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdHlsZUNhY2hlZFNoYWRl
ci5oOyBwYXRoID0gc3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTAzOEJFM0UxNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDYWNoZWRTaGFkZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MDM4QkUzRjE0NzJBRDk4MDA5NUUwRDEgLyog
Q2FjaGVkU2hhZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFNo
YWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MDhDQ0E0RDEzQ0YxMDZCMDAz
MTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSZW5kZXJGbG93VGhyZWFkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUw
OENDQTRFMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckZsb3dUaHJlYWQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MEI0MjE1NzE0Njk3Njk2MDA4N0U2MDQgLyogV2ViS2l0
Q1NTU2hhZGVyVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0
Q1NTU2hhZGVyVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE3NTgzLDYg
KzE3NTk1LDcgQEAKIAkJQTc1RThCN0YwRTFERTJCMDAwN0YyNDgxIC8qIGZpbHRlcnMgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTUwMzhCQzA5MTQ3MTFE
MzQwMDk1RTBEMSAvKiBDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCAqLywKIAkJCQkxOTg0MUJGQTEz
NjgzNkExMDA2RUJCQjkgLyogYXJtICovLAogCQkJCUExRTExNTQzMTMwMTVDM0QwMDU0QUM4QyAv
KiBEaXN0YW50TGlnaHRTb3VyY2UuY3BwICovLAogCQkJCTg0NzMwRDVBMTI0OEYwQjMwMEQzQTlD
OSAvKiBEaXN0YW50TGlnaHRTb3VyY2UuaCAqLywKQEAgLTE4NDgxLDYgKzE4NDk0LDggQEAKIAkJ
QThEMkIyNTIxMjg3QTU2MDAwQUY0RERBIC8qIGNhY2hlICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1MDM4QkUzRTE0NzJBRDk4MDA5NUUwRDEgLyogQ2Fj
aGVkU2hhZGVyLmNwcCAqLywKKwkJCQk1MDM4QkUzRjE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVk
U2hhZGVyLmggKi8sCiAJCQkJQkNCMTZDMDAwOTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlZENTU1N0
eWxlU2hlZXQuY3BwICovLAogCQkJCUJDQjE2QzAxMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZWRD
U1NTdHlsZVNoZWV0LmggKi8sCiAJCQkJQkM2NEI0QzkwQ0I0Mjk1RDAwNUYyQjYyIC8qIENhY2hl
ZEZvbnQuY3BwICovLApAQCAtMTk3NDgsNiArMTk3NjMsOCBAQAogCQlCQzhDOEZBQTBERENEMkYy
MDBCNTkyRjQgLyogc3R5bGUgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCTUwMzhCRTJEMTQ3MkFEMjMwMDk1RTBEMSAvKiBTdHlsZUNhY2hlZFNoYWRlci5j
cHAgKi8sCisJCQkJNTAzOEJFMkUxNDcyQUQyMzAwOTVFMEQxIC8qIFN0eWxlQ2FjaGVkU2hhZGVy
LmggKi8sCiAJCQkJQkM1RUI1RTAwRTgxQkU4NzAwQjI1OTY1IC8qIEJvcmRlckRhdGEuaCAqLywK
IAkJCQlCQzVFQjVEQTBFODFCN0VBMDBCMjU5NjUgLyogQm9yZGVyVmFsdWUuaCAqLywKIAkJCQlC
QzVFQjVERTBFODFCOUFCMDBCMjU5NjUgLyogQ29sbGFwc2VkQm9yZGVyVmFsdWUuaCAqLywKQEAg
LTIwNTY2LDYgKzIwNTgzLDggQEAKIAkJRjUyM0QxODQwMkRFNDJFODAxODYzNUNBIC8qIGNzcyAq
LyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTAzOEJDMDYx
NDcxMUNEQjAwOTVFMEQxIC8qIFdlYktpdENTU1NoYWRlclZhbHVlLmNwcCAqLywKKwkJCQk1MEI0
MjE1NzE0Njk3Njk2MDA4N0U2MDQgLyogV2ViS2l0Q1NTU2hhZGVyVmFsdWUuaCAqLywKIAkJCQlB
RDAzQUFGODE0Njg0NTM5MDBBMzlCNUIgLyogQ1NTVmFsdWUuY3BwICovLAogCQkJCUNBRTlGOTBE
MTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCAqLywKIAkJCQlDQUU5
RjkwRTE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9WYWx1ZS5oICovLApAQCAtMjQ2
OTEsNiArMjQ3MTAsOSBAQAogCQkJCTI5Q0Q2MURFMTQ2RDAyODkwMDY4RTgyQSAvKiBXZWJLaXRD
U1NTaGFkZXJWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RGNjVDQzgxNDVCMUU3NTAwQzRD
N0FBIC8qIE1lZGlhQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RGNjVDQ0ExNDVC
NDQ4ODAwQzRDN0FBIC8qIE1lZGlhQ29udHJvbGxlckludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNTAzOEJDMEIxNDcxMUQzNDAwOTVFMEQxIC8qIEN1c3RvbUZpbHRlck9wZXJhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNTAzOEJFMzAxNDcyQUQyMzAwOTVFMEQxIC8qIFN0eWxlQ2Fj
aGVkU2hhZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MDM4QkU0MTE0NzJBRDk4MDA5NUUwRDEg
LyogQ2FjaGVkU2hhZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTI3NTYwLDYgKzI3NTgyLDkgQEAK
IAkJCQk3MTM0NDk2RDE0Njk0MUIzMDA3MjAzMTIgLyogU1ZHTGVuZ3RoQ29udGV4dC5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5NzREMkRBNDE0NkE1MzVEMDBENTFGOEIgLyogU2VjdXJpdHlQb2xp
Y3kuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzEzMTNGNjUxNDQzQjM1RjAwNkUyQTkwIC8qIEZp
bHRlckVmZmVjdFJlbmRlcmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUwMzhCQzA3MTQ3MTFD
REIwMDk1RTBEMSAvKiBXZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk1MDM4QkUyRjE0NzJBRDIzMDA5NUUwRDEgLyogU3R5bGVDYWNoZWRTaGFkZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNTAzOEJFNDAxNDcyQUQ5ODAwOTVFMEQxIC8qIENhY2hlZFNoYWRlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggZmQxZmIzMi4uYWNiN2Y5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTQw
LDYgKzQwLDkgQEAKICNpbmNsdWRlICJDU1NTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTU1RpbWlu
Z0Z1bmN0aW9uVmFsdWUuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKKyNpZiBFTkFCTEUo
Q1NTX1NIQURFUlMpCisjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmgiCisjZW5kaWYK
ICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNs
dWRlICJGb250RmVhdHVyZVNldHRpbmdzLmgiCkBAIC03MzcsOCArNzQwLDE4IEBAIFBhc3NSZWZQ
dHI8Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6dmFsdWVGb3JGaWx0ZXIo
UmVuZGVyU3R5bGUqIHN0CiAgICAgICAgIH0KICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCiAgICAg
ICAgIGNhc2UgRmlsdGVyT3BlcmF0aW9uOjpDVVNUT006IHsKLSAgICAgICAgICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgY3VzdG9tIHNoYWRlciBmdW5jdGlvbi4KLSAgICAgICAgICAgIC8vIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTM5NgorICAgICAgICAgICAgQ3Vz
dG9tRmlsdGVyT3BlcmF0aW9uKiBjdXN0b21PcGVyYXRpb24gPSBzdGF0aWNfY2FzdDxDdXN0b21G
aWx0ZXJPcGVyYXRpb24qPihmaWx0ZXJPcGVyYXRpb24pOworICAgICAgICAgICAgZmlsdGVyVmFs
dWUgPSBXZWJLaXRDU1NGaWx0ZXJWYWx1ZTo6Y3JlYXRlKFdlYktpdENTU0ZpbHRlclZhbHVlOjpD
dXN0b21GaWx0ZXJPcGVyYXRpb24pOworICAgICAgICAgICAgCisgICAgICAgICAgICBSZWZQdHI8
Q1NTVmFsdWVMaXN0PiBzaGFkZXJzTGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlU3BhY2VTZXBh
cmF0ZWQoKTsKKyAgICAgICAgICAgIGlmIChjdXN0b21PcGVyYXRpb24tPnZlcnRleFNoYWRlcigp
KQorICAgICAgICAgICAgICAgIHNoYWRlcnNMaXN0LT5hcHBlbmQoY3VzdG9tT3BlcmF0aW9uLT52
ZXJ0ZXhTaGFkZXIoKS0+Y3NzVmFsdWUoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgc2hhZGVyc0xpc3QtPmFwcGVuZChwcmltaXRpdmVWYWx1ZUNhY2hlLT5jcmVhdGVJZGVu
dGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKSk7CisgICAgICAgICAgICBpZiAoY3VzdG9tT3BlcmF0
aW9uLT5mcmFnbWVudFNoYWRlcigpKQorICAgICAgICAgICAgICAgIHNoYWRlcnNMaXN0LT5hcHBl
bmQoY3VzdG9tT3BlcmF0aW9uLT5mcmFnbWVudFNoYWRlcigpLT5jc3NWYWx1ZSgpKTsKKyAgICAg
ICAgICAgIGZpbHRlclZhbHVlLT5hcHBlbmQoc2hhZGVyc0xpc3QucmVsZWFzZSgpKTsKKyAgICAg
ICAgICAgIAogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCmluZGV4IDA1ZDE0NjMuLjEzYjdkZDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKQEAgLTEyMiw2ICsxMjIsMTQgQEAK
ICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMp
CisjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmgiCisjaW5jbHVkZSAiU3R5bGVDYWNo
ZWRTaGFkZXIuaCIKKyNpbmNsdWRlICJTdHlsZVBlbmRpbmdTaGFkZXIuaCIKKyNpbmNsdWRlICJT
dHlsZVNoYWRlci5oIgorI2luY2x1ZGUgIldlYktpdENTU1NoYWRlclZhbHVlLmgiCisjZW5kaWYK
KwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzQ5LDYg
KzM1Nyw5IEBAIENTU1N0eWxlU2VsZWN0b3I6OkNTU1N0eWxlU2VsZWN0b3IoRG9jdW1lbnQqIGRv
Y3VtZW50LCBTdHlsZVNoZWV0TGlzdCogc3R5bGVTaGVlCiAgICAgLCBtX2FwcGx5UHJvcGVydHlU
b1JlZ3VsYXJTdHlsZSh0cnVlKQogICAgICwgbV9hcHBseVByb3BlcnR5VG9WaXNpdGVkTGlua1N0
eWxlKGZhbHNlKQogICAgICwgbV9hcHBseVByb3BlcnR5KENTU1N0eWxlQXBwbHlQcm9wZXJ0eTo6
c2hhcmVkQ1NTU3R5bGVBcHBseVByb3BlcnR5KCkpCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQor
ICAgICwgbV9oYXNQZW5kaW5nU2hhZGVycyhmYWxzZSkKKyNlbmRpZgogewogICAgIEVsZW1lbnQq
IHJvb3QgPSBkb2N1bWVudC0+ZG9jdW1lbnRFbGVtZW50KCk7CiAKQEAgLTEzMDcsNiArMTMxOCwx
MSBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvcktl
eWZyYW1lKGNvbnN0IFJlbmRlclN0eWxlKiBlbAogCiAgICAgLy8gU3RhcnQgbG9hZGluZyBpbWFn
ZXMgcmVmZXJlbmNlZCBieSB0aGlzIHN0eWxlLgogICAgIGxvYWRQZW5kaW5nSW1hZ2VzKCk7Cisg
ICAgCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorICAgIC8vIFN0YXJ0IGxvYWRpbmcgdGhlIHNo
YWRlcnMgcmVmZXJlbmNlZCBieSB0aGlzIHN0eWxlLgorICAgIGxvYWRQZW5kaW5nU2hhZGVycygp
OworI2VuZGlmCiAKICAgICAvLyBBZGQgYWxsIHRoZSBhbmltYXRpbmcgcHJvcGVydGllcyB0byB0
aGUga2V5ZnJhbWUuCiAgICAgaWYgKGtleWZyYW1lUnVsZS0+c3R5bGUoKSkgewpAQCAtMTQxNiw2
ICsxNDMyLDExIEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IENTU1N0eWxlU2VsZWN0b3I6OnBz
ZXVkb1N0eWxlRm9yRWxlbWVudChQc2V1ZG9JZCBwc2V1ZG8sCiAgICAgLy8gU3RhcnQgbG9hZGlu
ZyBpbWFnZXMgcmVmZXJlbmNlZCBieSB0aGlzIHN0eWxlLgogICAgIGxvYWRQZW5kaW5nSW1hZ2Vz
KCk7CiAKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgLy8gU3RhcnQgbG9hZGluZyB0aGUg
c2hhZGVycyByZWZlcmVuY2VkIGJ5IHRoaXMgc3R5bGUuCisgICAgbG9hZFBlbmRpbmdTaGFkZXJz
KCk7CisjZW5kaWYKKwogICAgIC8vIE5vdyByZXR1cm4gdGhlIHN0eWxlLgogICAgIHJldHVybiBt
X3N0eWxlLnJlbGVhc2UoKTsKIH0KQEAgLTE0NDksNiArMTQ3MCwxMSBAQCBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZUZvclBhZ2UoaW50IHBhZ2VJbmRleCkK
ICAgICAvLyBTdGFydCBsb2FkaW5nIGltYWdlcyByZWZlcmVuY2VkIGJ5IHRoaXMgc3R5bGUuCiAg
ICAgbG9hZFBlbmRpbmdJbWFnZXMoKTsKIAorI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyAgICAv
LyBTdGFydCBsb2FkaW5nIHRoZSBzaGFkZXJzIHJlZmVyZW5jZWQgYnkgdGhpcyBzdHlsZS4KKyAg
ICBsb2FkUGVuZGluZ1NoYWRlcnMoKTsKKyNlbmRpZgorCiAgICAgLy8gTm93IHJldHVybiB0aGUg
c3R5bGUuCiAgICAgcmV0dXJuIG1fc3R5bGUucmVsZWFzZSgpOwogfQpAQCAtMjMwNSw3ICsyMzMx
LDExIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlNYXRjaGVkRGVjbGFyYXRpb25zKGNv
bnN0IE1hdGNoUmVzdWx0JiBtYXRjaFJlc3VsdCkKICAgICBhcHBseURlY2xhcmF0aW9uczxmYWxz
ZT4odHJ1ZSwgbWF0Y2hSZXN1bHQuZmlyc3RVQVJ1bGUsIG1hdGNoUmVzdWx0Lmxhc3RVQVJ1bGUs
IGFwcGx5SW5oZXJpdGVkT25seSk7CiAgICAgCiAgICAgbG9hZFBlbmRpbmdJbWFnZXMoKTsKLSAg
ICAgICAgCisgICAgCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorICAgIGxvYWRQZW5kaW5nU2hh
ZGVycygpOworI2VuZGlmCisgICAgCiAgICAgQVNTRVJUKCFtX2ZvbnREaXJ0eSk7CiAgICAgCiAg
ICAgaWYgKGNhY2hlZFN0eWxlIHx8ICFjYWNoZUhhc2gpCkBAIC01NDA4LDYgKzU0MzgsNjMgQEAg
c3RhdGljIEZpbHRlck9wZXJhdGlvbjo6T3BlcmF0aW9uVHlwZSBmaWx0ZXJPcGVyYXRpb25Gb3JU
eXBlKFdlYktpdENTU0ZpbHRlclZhbHUKICAgICByZXR1cm4gRmlsdGVyT3BlcmF0aW9uOjpOT05F
OwogfQogCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorU3R5bGVTaGFkZXIqIENTU1N0eWxlU2Vs
ZWN0b3I6OnN0eWxlU2hhZGVyKENTU1ZhbHVlKiB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUtPmlz
V2ViS2l0Q1NTU2hhZGVyVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIGNhY2hlZE9yUGVuZGluZ1N0
eWxlU2hhZGVyRnJvbVZhbHVlKHN0YXRpY19jYXN0PFdlYktpdENTU1NoYWRlclZhbHVlKj4odmFs
dWUpKTsKKyAgICByZXR1cm4gMDsKK30KKworU3R5bGVTaGFkZXIqIENTU1N0eWxlU2VsZWN0b3I6
OmNhY2hlZE9yUGVuZGluZ1N0eWxlU2hhZGVyRnJvbVZhbHVlKFdlYktpdENTU1NoYWRlclZhbHVl
KiB2YWx1ZSkKK3sKKyAgICBTdHlsZVNoYWRlciogc2hhZGVyID0gdmFsdWUtPmNhY2hlZE9yUGVu
ZGluZ1NoYWRlcigpOworICAgIGlmIChzaGFkZXIgJiYgc2hhZGVyLT5pc1BlbmRpbmdTaGFkZXIo
KSkKKyAgICAgICAgbV9oYXNQZW5kaW5nU2hhZGVycyA9IHRydWU7CisgICAgcmV0dXJuIHNoYWRl
cjsKK30KKwordm9pZCBDU1NTdHlsZVNlbGVjdG9yOjpsb2FkUGVuZGluZ1NoYWRlcnMoKQorewor
ICAgIGlmICghbV9zdHlsZS0+aGFzRmlsdGVyKCkgfHwgIW1faGFzUGVuZGluZ1NoYWRlcnMpCisg
ICAgICAgIHJldHVybjsKKworICAgIENhY2hlZFJlc291cmNlTG9hZGVyKiBjYWNoZWRSZXNvdXJj
ZUxvYWRlciA9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKTsK
KworICAgIFZlY3RvcjxSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiA+JiBmaWx0ZXJPcGVyYXRpb25z
ID0gbV9zdHlsZS0+ZmlsdGVyKCkub3BlcmF0aW9ucygpOworICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBmaWx0ZXJPcGVyYXRpb25zLnNpemUoKTsgKytpKSB7CisgICAgICAgIFJlZlB0cjxG
aWx0ZXJPcGVyYXRpb24+IGZpbHRlck9wZXJhdGlvbiA9IGZpbHRlck9wZXJhdGlvbnMuYXQoaSk7
CisgICAgICAgIGlmIChmaWx0ZXJPcGVyYXRpb24tPmdldE9wZXJhdGlvblR5cGUoKSA9PSBGaWx0
ZXJPcGVyYXRpb246OkNVU1RPTSkgeworICAgICAgICAgICAgQ3VzdG9tRmlsdGVyT3BlcmF0aW9u
KiBjdXN0b21GaWx0ZXIgPSBzdGF0aWNfY2FzdDxDdXN0b21GaWx0ZXJPcGVyYXRpb24qPihmaWx0
ZXJPcGVyYXRpb24uZ2V0KCkpOworICAgICAgICAgICAgaWYgKGN1c3RvbUZpbHRlci0+dmVydGV4
U2hhZGVyKCkgJiYgY3VzdG9tRmlsdGVyLT52ZXJ0ZXhTaGFkZXIoKS0+aXNQZW5kaW5nU2hhZGVy
KCkpIHsKKyAgICAgICAgICAgICAgICBXZWJLaXRDU1NTaGFkZXJWYWx1ZSogc2hhZGVyVmFsdWUg
PSBzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdTaGFkZXIqPihjdXN0b21GaWx0ZXItPnZlcnRleFNo
YWRlcigpKS0+Y3NzU2hhZGVyVmFsdWUoKTsKKyAgICAgICAgICAgICAgICBjdXN0b21GaWx0ZXIt
PnNldFZlcnRleFNoYWRlcihzaGFkZXJWYWx1ZS0+Y2FjaGVkU2hhZGVyKGNhY2hlZFJlc291cmNl
TG9hZGVyKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY3VzdG9tRmlsdGVyLT5m
cmFnbWVudFNoYWRlcigpICYmIGN1c3RvbUZpbHRlci0+ZnJhZ21lbnRTaGFkZXIoKS0+aXNQZW5k
aW5nU2hhZGVyKCkpIHsKKyAgICAgICAgICAgICAgICBXZWJLaXRDU1NTaGFkZXJWYWx1ZSogc2hh
ZGVyVmFsdWUgPSBzdGF0aWNfY2FzdDxTdHlsZVBlbmRpbmdTaGFkZXIqPihjdXN0b21GaWx0ZXIt
PmZyYWdtZW50U2hhZGVyKCkpLT5jc3NTaGFkZXJWYWx1ZSgpOworICAgICAgICAgICAgICAgIGN1
c3RvbUZpbHRlci0+c2V0RnJhZ21lbnRTaGFkZXIoc2hhZGVyVmFsdWUtPmNhY2hlZFNoYWRlcihj
YWNoZWRSZXNvdXJjZUxvYWRlcikpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfQor
ICAgIG1faGFzUGVuZGluZ1NoYWRlcnMgPSBmYWxzZTsKK30KKworUGFzc1JlZlB0cjxDdXN0b21G
aWx0ZXJPcGVyYXRpb24+IENTU1N0eWxlU2VsZWN0b3I6OmNyZWF0ZUN1c3RvbUZpbHRlck9wZXJh
dGlvbihXZWJLaXRDU1NGaWx0ZXJWYWx1ZSogZmlsdGVyVmFsdWUpCit7CisgICAgQVNTRVJUKGZp
bHRlclZhbHVlLT5sZW5ndGgoKSk7CisKKyAgICBDU1NWYWx1ZSogc2hhZGVyc1ZhbHVlID0gZmls
dGVyVmFsdWUtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soMCk7CisgICAgQVNTRVJUKHNoYWRlcnNW
YWx1ZS0+aXNWYWx1ZUxpc3QoKSk7CisgICAgQ1NTVmFsdWVMaXN0KiBzaGFkZXJzTGlzdCA9IHN0
YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHNoYWRlcnNWYWx1ZSk7CisKKyAgICBBU1NFUlQoc2hh
ZGVyc0xpc3QtPmxlbmd0aCgpKTsKKyAgICBSZWZQdHI8U3R5bGVTaGFkZXI+IHZlcnRleFNoYWRl
ciA9IHN0eWxlU2hhZGVyKHNoYWRlcnNMaXN0LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKDApKTsK
KyAgICBSZWZQdHI8U3R5bGVTaGFkZXI+IGZyYWdtZW50U2hhZGVyID0gKHNoYWRlcnNMaXN0LT5s
ZW5ndGgoKSA+IDEpID8gc3R5bGVTaGFkZXIoc2hhZGVyc0xpc3QtPml0ZW1XaXRob3V0Qm91bmRz
Q2hlY2soMSkpIDogMDsKKyAgICAKKyAgICByZXR1cm4gQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpj
cmVhdGUodmVydGV4U2hhZGVyLCBmcmFnbWVudFNoYWRlcik7Cit9CisjZW5kaWYKKwogYm9vbCBD
U1NTdHlsZVNlbGVjdG9yOjpjcmVhdGVGaWx0ZXJPcGVyYXRpb25zKENTU1ZhbHVlKiBpblZhbHVl
LCBSZW5kZXJTdHlsZSogc3R5bGUsIFJlbmRlclN0eWxlKiByb290U3R5bGUsIEZpbHRlck9wZXJh
dGlvbnMmIG91dE9wZXJhdGlvbnMpCiB7CiAgICAgaWYgKCFpblZhbHVlIHx8ICFpblZhbHVlLT5p
c1ZhbHVlTGlzdCgpKSB7CkBAIC01NDI3LDggKzU1MTQsOSBAQCBib29sIENTU1N0eWxlU2VsZWN0
b3I6OmNyZWF0ZUZpbHRlck9wZXJhdGlvbnMoQ1NTVmFsdWUqIGluVmFsdWUsIFJlbmRlclN0eWxl
KiBzdAogCiAjaWYgRU5BQkxFKENTU19TSEFERVJTKQogICAgICAgICBpZiAob3BlcmF0aW9uVHlw
ZSA9PSBGaWx0ZXJPcGVyYXRpb246OkNVU1RPTSkgewotICAgICAgICAgICAgLy8gRklYTUU6IElt
cGxlbWVudCB0aGUgZmlsdGVyIG9wZXJhdGlvbiBmb3IgdGhlIGN1c3RvbSBzaGFkZXIuCi0gICAg
ICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE0NDYK
KyAgICAgICAgICAgIFJlZlB0cjxDdXN0b21GaWx0ZXJPcGVyYXRpb24+IG9wZXJhdGlvbiA9IGNy
ZWF0ZUN1c3RvbUZpbHRlck9wZXJhdGlvbihmaWx0ZXJWYWx1ZSk7CisgICAgICAgICAgICBpZiAo
b3BlcmF0aW9uKQorICAgICAgICAgICAgICAgIG9wZXJhdGlvbnMub3BlcmF0aW9ucygpLmFwcGVu
ZChvcGVyYXRpb24pOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgKaW5kZXggZGZiOWVhYy4uYThkZjA1ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oCkBAIC01Myw2ICs1Myw3IEBAIGNs
YXNzIENTU1N0eWxlUnVsZTsKIGNsYXNzIENTU1N0eWxlU2hlZXQ7CiBjbGFzcyBDU1NWYWx1ZTsK
IGNsYXNzIENvbnRhaW5lck5vZGU7CitjbGFzcyBDdXN0b21GaWx0ZXJPcGVyYXRpb247CiBjbGFz
cyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsKQEAgLTY2LDExICs2Nywx
NCBAQCBjbGFzcyBSdWxlRGF0YTsKIGNsYXNzIFJ1bGVTZXQ7CiBjbGFzcyBTZXR0aW5nczsKIGNs
YXNzIFN0eWxlSW1hZ2U7CitjbGFzcyBTdHlsZVNoYWRlcjsKIGNsYXNzIFN0eWxlU2hlZXQ7CiBj
bGFzcyBTdHlsZVNoZWV0TGlzdDsKIGNsYXNzIFN0eWxlZEVsZW1lbnQ7CiBjbGFzcyBXZWJLaXRD
U1NLZXlmcmFtZVJ1bGU7CiBjbGFzcyBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlOworY2xhc3MgV2Vi
S2l0Q1NTRmlsdGVyVmFsdWU7CitjbGFzcyBXZWJLaXRDU1NTaGFkZXJWYWx1ZTsKIAogY2xhc3Mg
TWVkaWFRdWVyeVJlc3VsdCB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWVkaWFRdWVyeVJl
c3VsdCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtMjAyLDcgKzIwNiwxMyBAQCBwdWJs
aWM6CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgYm9vbCBjcmVhdGVGaWx0ZXJPcGVy
YXRpb25zKENTU1ZhbHVlKiBpblZhbHVlLCBSZW5kZXJTdHlsZSogaW5TdHlsZSwgUmVuZGVyU3R5
bGUqIHJvb3RTdHlsZSwgRmlsdGVyT3BlcmF0aW9ucyYgb3V0T3BlcmF0aW9ucyk7CisjaWYgRU5B
QkxFKENTU19TSEFERVJTKQorICAgIFN0eWxlU2hhZGVyKiBzdHlsZVNoYWRlcihDU1NWYWx1ZSop
OworICAgIFN0eWxlU2hhZGVyKiBjYWNoZWRPclBlbmRpbmdTdHlsZVNoYWRlckZyb21WYWx1ZShX
ZWJLaXRDU1NTaGFkZXJWYWx1ZSopOworICAgIFBhc3NSZWZQdHI8Q3VzdG9tRmlsdGVyT3BlcmF0
aW9uPiBjcmVhdGVDdXN0b21GaWx0ZXJPcGVyYXRpb24oV2ViS2l0Q1NTRmlsdGVyVmFsdWUqKTsK
KyAgICB2b2lkIGxvYWRQZW5kaW5nU2hhZGVycygpOwogI2VuZGlmCisjZW5kaWYgLy8gRU5BQkxF
KENTU19GSUxURVJTKQogCiAgICAgc3RydWN0IEZlYXR1cmVzIHsKICAgICAgICAgRmVhdHVyZXMo
KTsKQEAgLTM4Niw2ICszOTYsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIG1fYXBwbHlQcm9wZXJ0
eVRvUmVndWxhclN0eWxlOwogICAgIGJvb2wgbV9hcHBseVByb3BlcnR5VG9WaXNpdGVkTGlua1N0
eWxlOwogICAgIGNvbnN0IENTU1N0eWxlQXBwbHlQcm9wZXJ0eSYgbV9hcHBseVByb3BlcnR5Owor
ICAgIAorI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyAgICBib29sIG1faGFzUGVuZGluZ1NoYWRl
cnM7CisjZW5kaWYKIAogICAgIGZyaWVuZCBjbGFzcyBDU1NTdHlsZUFwcGx5UHJvcGVydHk7CiAg
ICAgZnJpZW5kIGJvb2wgb3BlcmF0b3I9PShjb25zdCBNYXRjaGVkU3R5bGVEZWNsYXJhdGlvbiYs
IGNvbnN0IE1hdGNoZWRTdHlsZURlY2xhcmF0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1dl
YktpdENTU1NoYWRlclZhbHVlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li41MWNmOGEzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENT
U1NoYWRlclZhbHVlLmNwcApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0IDIwMTEg
QWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAq
ICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyNp
bmNsdWRlICJXZWJLaXRDU1NTaGFkZXJWYWx1ZS5oIgorCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXIuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlN0eWxlQ2FjaGVk
U2hhZGVyLmgiCisjaW5jbHVkZSAiU3R5bGVQZW5kaW5nU2hhZGVyLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworV2ViS2l0Q1NTU2hhZGVyVmFsdWU6OldlYktpdENTU1NoYWRlclZhbHVlKGNv
bnN0IFN0cmluZyYgdXJsKQorICAgIDogQ1NTUHJpbWl0aXZlVmFsdWUoV2ViS2l0Q1NTU2hhZGVy
Q2xhc3MsIHVybCwgQ1NTX1VSSSkKKyAgICAsIG1fYWNjZXNzZWRTaGFkZXIoZmFsc2UpCit7Cit9
CisKK1dlYktpdENTU1NoYWRlclZhbHVlOjp+V2ViS2l0Q1NTU2hhZGVyVmFsdWUoKQoreworfQor
CitTdHlsZUNhY2hlZFNoYWRlciogV2ViS2l0Q1NTU2hhZGVyVmFsdWU6OmNhY2hlZFNoYWRlcihD
YWNoZWRSZXNvdXJjZUxvYWRlciogbG9hZGVyKQoreworICAgIEFTU0VSVChsb2FkZXIpOworCisg
ICAgaWYgKCFtX2FjY2Vzc2VkU2hhZGVyKSB7CisgICAgICAgIG1fYWNjZXNzZWRTaGFkZXIgPSB0
cnVlOworCisgICAgICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGxvYWRlci0+ZG9jdW1lbnQo
KS0+Y29tcGxldGVVUkwoZ2V0U3RyaW5nVmFsdWUoKSkpOworICAgICAgICBpZiAoQ2FjaGVkU2hh
ZGVyKiBjYWNoZWRTaGFkZXIgPSBsb2FkZXItPnJlcXVlc3RTaGFkZXIocmVxdWVzdCkpCisgICAg
ICAgICAgICBtX3NoYWRlciA9IFN0eWxlQ2FjaGVkU2hhZGVyOjpjcmVhdGUoY2FjaGVkU2hhZGVy
KTsKKyAgICB9CisKKyAgICByZXR1cm4gKG1fc2hhZGVyICYmIG1fc2hhZGVyLT5pc0NhY2hlZFNo
YWRlcigpKSA/IHN0YXRpY19jYXN0PFN0eWxlQ2FjaGVkU2hhZGVyKj4obV9zaGFkZXIuZ2V0KCkp
IDogMDsKK30KKworU3R5bGVTaGFkZXIqIFdlYktpdENTU1NoYWRlclZhbHVlOjpjYWNoZWRPclBl
bmRpbmdTaGFkZXIoKQoreworICAgIGlmICghbV9zaGFkZXIpCisgICAgICAgIG1fc2hhZGVyID0g
U3R5bGVQZW5kaW5nU2hhZGVyOjpjcmVhdGUodGhpcyk7CisKKyAgICByZXR1cm4gbV9zaGFkZXIu
Z2V0KCk7Cit9CisKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KENTU19TSEFERVJTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1No
YWRlclZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuaApp
bmRleCA1NWZhNjVjLi44MjU0ODJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2Vi
S2l0Q1NTU2hhZGVyVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hh
ZGVyVmFsdWUuaApAQCAtMzIsMTkgKzMyLDI4IEBACiAKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMp
CiAKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUhhbmRsZS5oIgogI2luY2x1ZGUgIkNTU1ByaW1p
dGl2ZVZhbHVlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI7CitjbGFzcyBTdHlsZUNhY2hlZFNoYWRlcjsKK2NsYXNzIFN0eWxlU2hhZGVyOwor
CiBjbGFzcyBXZWJLaXRDU1NTaGFkZXJWYWx1ZSA6IHB1YmxpYyBDU1NQcmltaXRpdmVWYWx1ZSB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0Q1NTU2hhZGVyVmFsdWU+IGNy
ZWF0ZShjb25zdCBTdHJpbmcmIHVybCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFdlYktpdENTU1No
YWRlclZhbHVlKHVybCkpOyB9CisgICAgfldlYktpdENTU1NoYWRlclZhbHVlKCk7CiAKKyAgICBT
dHlsZUNhY2hlZFNoYWRlciogY2FjaGVkU2hhZGVyKENhY2hlZFJlc291cmNlTG9hZGVyKik7Cisg
ICAgU3R5bGVTaGFkZXIqIGNhY2hlZE9yUGVuZGluZ1NoYWRlcigpOworICAgIAogcHJpdmF0ZToK
LSAgICBXZWJLaXRDU1NTaGFkZXJWYWx1ZShjb25zdCBTdHJpbmcmIHVybCkKLSAgICAgICAgOiBD
U1NQcmltaXRpdmVWYWx1ZShXZWJLaXRDU1NTaGFkZXJDbGFzcywgdXJsLCBDU1NfVVJJKQotICAg
IHsKLSAgICB9CisgICAgV2ViS2l0Q1NTU2hhZGVyVmFsdWUoY29uc3QgU3RyaW5nJiB1cmwpOwor
ICAgIAorICAgIFJlZlB0cjxTdHlsZVNoYWRlcj4gbV9zaGFkZXI7CisgICAgYm9vbCBtX2FjY2Vz
c2VkU2hhZGVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggYjQ5ZGFiZC4uZGRmOTU2
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3Bw
CkBAIC03NSw2ICs3NSwxMCBAQCBzdGF0aWMgUmVzb3VyY2VMb2FkUHJpb3JpdHkgZGVmYXVsdFBy
aW9yaXR5Rm9yUmVzb3VyY2VUeXBlKENhY2hlZFJlc291cmNlOjpUeXBlCiAgICAgICAgIGNhc2Ug
Q2FjaGVkUmVzb3VyY2U6OlRleHRUcmFja1Jlc291cmNlOgogICAgICAgICAgICAgcmV0dXJuIFJl
c291cmNlTG9hZFByaW9yaXR5TG93OwogI2VuZGlmCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQor
ICAgICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpTaGFkZXJSZXNvdXJjZToKKyAgICAgICAgICAg
IHJldHVybiBSZXNvdXJjZUxvYWRQcmlvcml0eU1lZGl1bTsKKyNlbmRpZgogICAgIH0KICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gUmVzb3VyY2VMb2FkUHJpb3JpdHlMb3c7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oCmluZGV4IDVk
MTE0NjcuLjQwNmE0OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5oCkBAIC03Niw2ICs3Niw5IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCiAgICAgICAgICwgVGV4dFRyYWNrUmVzb3VyY2UKICNlbmRpZgorI2lmIEVOQUJMRShDU1Nf
U0hBREVSUykKKyAgICAgICAgLCBTaGFkZXJSZXNvdXJjZQorI2VuZGlmCiAgICAgfTsKIAogICAg
IGVudW0gU3RhdHVzIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGU3ZjM5MzYuLjQzZmFjNDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcApA
QCAtNTYsNiArNTYsMTAgQEAKICNpbmNsdWRlICJDYWNoZWRUZXh0VHJhY2suaCIKICNlbmRpZgog
CisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorI2luY2x1ZGUgIkNhY2hlZFNoYWRlci5oIgorI2Vu
ZGlmCisKICNkZWZpbmUgUFJFTE9BRF9ERUJVRyAwCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTg5LDYgKzkzLDEwIEBAIHN0YXRpYyBDYWNoZWRSZXNvdXJjZSogY3JlYXRlUmVzb3VyY2UoQ2Fj
aGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXN0CiAgICAgY2FzZSBDYWNoZWRS
ZXNvdXJjZTo6VGV4dFRyYWNrUmVzb3VyY2U6CiAgICAgICAgIHJldHVybiBuZXcgQ2FjaGVkVGV4
dFRyYWNrKHJlcXVlc3QpOwogI2VuZGlmCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorICAgIGNh
c2UgQ2FjaGVkUmVzb3VyY2U6OlNoYWRlclJlc291cmNlOgorICAgICAgICByZXR1cm4gbmV3IENh
Y2hlZFNoYWRlcihyZXF1ZXN0KTsKKyNlbmRpZgogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICByZXR1cm4gMDsKQEAgLTE2OCw2ICsxNzYsMTMgQEAgQ2FjaGVkVGV4dFRyYWNr
KiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFRleHRUcmFjayhSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QKIH0KICNlbmRpZgogCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorQ2FjaGVkU2hh
ZGVyKiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdFNoYWRlcihSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QpCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hlZFNoYWRlcio+KHJlcXVl
c3RSZXNvdXJjZShDYWNoZWRSZXNvdXJjZTo6U2hhZGVyUmVzb3VyY2UsIHJlcXVlc3QsIFN0cmlu
ZygpLCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCkpKTsKK30KKyNlbmRpZgorCiBDYWNo
ZWRDU1NTdHlsZVNoZWV0KiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdWVzdENTU1N0eWxlU2hl
ZXQoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGNoYXJzZXQsIFJlc291
cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQogewogICAgIHJldHVybiBzdGF0aWNfY2FzdDxDYWNo
ZWRDU1NTdHlsZVNoZWV0Kj4ocmVxdWVzdFJlc291cmNlKENhY2hlZFJlc291cmNlOjpDU1NTdHls
ZVNoZWV0LCByZXF1ZXN0LCBjaGFyc2V0LCBkZWZhdWx0Q2FjaGVkUmVzb3VyY2VPcHRpb25zKCks
IHByaW9yaXR5KSk7CkBAIC0yNDIsNiArMjU3LDkgQEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6Y2hlY2tJbnNlY3VyZUNvbnRlbnQoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QK
ICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VGV4dFRy
YWNrUmVzb3VyY2U6CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgY2FzZSBD
YWNoZWRSZXNvdXJjZTo6U2hhZGVyUmVzb3VyY2U6CisjZW5kaWYKICAgICBjYXNlIENhY2hlZFJl
c291cmNlOjpJbWFnZVJlc291cmNlOgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNv
dXJjZTogewogICAgICAgICAvLyBUaGVzZSByZXNvdXJjZXMgY2FuIGNvcnJ1cHQgb25seSB0aGUg
ZnJhbWUncyBwaXhlbHMuCkBAIC0yOTAsNiArMzA4LDkgQEAgYm9vbCBDYWNoZWRSZXNvdXJjZUxv
YWRlcjo6Y2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBLVVJMJiB1
cmwKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VGV4
dFRyYWNrUmVzb3VyY2U6CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgY2Fz
ZSBDYWNoZWRSZXNvdXJjZTo6U2hhZGVyUmVzb3VyY2U6CisjZW5kaWYKICAgICAgICAgLy8gVGhl
c2UgdHlwZXMgb2YgcmVzb3VyY2VzIGNhbiBiZSBsb2FkZWQgZnJvbSBhbnkgb3JpZ2luLgogICAg
ICAgICAvLyBGSVhNRTogQXJlIHdlIHN1cmUgYWJvdXQgQ2FjaGVkUmVzb3VyY2U6OkZvbnRSZXNv
dXJjZT8KICAgICAgICAgYnJlYWs7CkBAIC0zMTksNiArMzQwLDEwIEBAIGJvb2wgQ2FjaGVkUmVz
b3VyY2VMb2FkZXI6OmNhblJlcXVlc3QoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgY29uc3Qg
S1VSTCYgdXJsCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICAgICAgYnJlYWs7CisjaWYg
RU5BQkxFKENTU19TSEFERVJTKQorICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlNoYWRlclJlc291
cmNlOgorICAgICAgICAvLyBTaW5jZSBzaGFkZXJzIGFyZSByZWZlcmVuY2VkIGZyb20gQ1NTIFN0
eWxlcyB1c2UgdGhlIHNhbWUgcnVsZXMgaGVyZS4KKyNlbmRpZgogICAgIGNhc2UgQ2FjaGVkUmVz
b3VyY2U6OkNTU1N0eWxlU2hlZXQ6CiAgICAgICAgIGlmICghbV9kb2N1bWVudC0+Y29udGVudFNl
Y3VyaXR5UG9saWN5KCktPmFsbG93U3R5bGVGcm9tU291cmNlKHVybCkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5oCmluZGV4IDM1NmJiMGMuLjg2ZGNhMGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5oCkBAIC00NCw2ICs0
NCw3IEBAIGNsYXNzIENhY2hlZEZvbnQ7CiBjbGFzcyBDYWNoZWRJbWFnZTsKIGNsYXNzIENhY2hl
ZFJhd1Jlc291cmNlOwogY2xhc3MgQ2FjaGVkU2NyaXB0OworY2xhc3MgQ2FjaGVkU2hhZGVyOwog
Y2xhc3MgQ2FjaGVkVGV4dFRyYWNrOwogY2xhc3MgQ2FjaGVkWFNMU3R5bGVTaGVldDsKIGNsYXNz
IERvY3VtZW50OwpAQCAtNzcsNiArNzgsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQogICAgIENhY2hlZFRleHRUcmFjayogcmVxdWVzdFRleHRUcmFjayhSZXNvdXJjZVJlcXVl
c3QmKTsKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyAgICBDYWNoZWRTaGFkZXIq
IHJlcXVlc3RTaGFkZXIoUmVzb3VyY2VSZXF1ZXN0Jik7CisjZW5kaWYKIAogICAgIC8vIExvZ3Mg
YW4gYWNjZXNzIGRlbmllZCBtZXNzYWdlIHRvIHRoZSBjb25zb2xlIGZvciB0aGUgc3BlY2lmaWVk
IFVSTC4KICAgICB2b2lkIHByaW50QWNjZXNzRGVuaWVkTWVzc2FnZShjb25zdCBLVVJMJiB1cmwp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNo
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xZDhmNTQwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5jcHAKQEAgLTAs
MCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAyMDExIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3Jh
dGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCc
QVMgSVPigJ0gQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUK
KyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisKKyNpbmNsdWRlICJDYWNoZWRTaGFkZXIu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDYWNoZWRTaGFkZXI6OkNhY2hlZFNoYWRlcihj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKKyAgICA6IENhY2hlZFJlc291
cmNlKHJlc291cmNlUmVxdWVzdCwgU2hhZGVyUmVzb3VyY2UpCit7Cit9CisKK0NhY2hlZFNoYWRl
cjo6fkNhY2hlZFNoYWRlcigpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShDU1NfU0hBREVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9D
YWNoZWRTaGFkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZGVhZDAx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNo
YWRlci5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMSBBZG9iZSBTeXN0
ZW1zIEluY29ycG9yYXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBDYWNoZWRTaGFkZXJfaAorI2RlZmluZSBDYWNoZWRTaGFkZXJfaAorCisjaWYgRU5BQkxF
KENTU19TSEFERVJTKQorCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBDYWNoZWRTaGFkZXIgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2Ug
eworcHVibGljOgorICAgIENhY2hlZFNoYWRlcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKKyAg
ICB2aXJ0dWFsIH5DYWNoZWRTaGFkZXIoKTsKK307CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShD
U1NfU0hBREVSUykKKworI2VuZGlmIC8vIENhY2hlZFNoYWRlcl9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0
ZXJPcGVyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZjMxYTNi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9DdXN0b21GaWx0ZXJPcGVyYXRpb24uaApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29w
eXJpZ2h0IDIwMTEgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQor
ICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xh
aW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uX2gKKyNkZWZp
bmUgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uX2gKKworI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKwor
I2luY2x1ZGUgIkZpbHRlck9wZXJhdGlvbi5oIgorI2luY2x1ZGUgIlN0eWxlU2hhZGVyLmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworLy8gQ1NTIFNoYWRlcnMKKworY2xhc3MgQ3VzdG9tRmls
dGVyT3BlcmF0aW9uOiBwdWJsaWMgRmlsdGVyT3BlcmF0aW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxDdXN0b21GaWx0ZXJPcGVyYXRpb24+IGNyZWF0ZShQYXNzUmVmUHRyPFN0
eWxlU2hhZGVyPiB2ZXJ0ZXhTaGFkZXIsIFBhc3NSZWZQdHI8U3R5bGVTaGFkZXI+IGZyYWdtZW50
U2hhZGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDdXN0b21GaWx0ZXJP
cGVyYXRpb24odmVydGV4U2hhZGVyLCBmcmFnbWVudFNoYWRlcikpOworICAgIH0KKyAgICAKKyAg
ICB2b2lkIHNldFZlcnRleFNoYWRlcihQYXNzUmVmUHRyPFN0eWxlU2hhZGVyPiBzaGFkZXIpIHsg
bV92ZXJ0ZXhTaGFkZXIgPSBzaGFkZXI7IH0KKyAgICBTdHlsZVNoYWRlciogdmVydGV4U2hhZGVy
KCkgY29uc3QgeyByZXR1cm4gbV92ZXJ0ZXhTaGFkZXIuZ2V0KCk7IH0KKyAgICAKKyAgICB2b2lk
IHNldEZyYWdtZW50U2hhZGVyKFBhc3NSZWZQdHI8U3R5bGVTaGFkZXI+IHNoYWRlcikgeyBtX2Zy
YWdtZW50U2hhZGVyID0gc2hhZGVyOyB9CisgICAgU3R5bGVTaGFkZXIqIGZyYWdtZW50U2hhZGVy
KCkgY29uc3QgeyByZXR1cm4gbV9mcmFnbWVudFNoYWRlci5nZXQoKTsgfQorICAgIAorcHJpdmF0
ZToKKyAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGaWx0ZXJPcGVyYXRpb24mIG8p
IGNvbnN0CisgICAgeworICAgICAgICBpZiAoIWlzU2FtZVR5cGUobykpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAgICAgY29uc3QgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uKiBvdGhl
ciA9IHN0YXRpY19jYXN0PGNvbnN0IEN1c3RvbUZpbHRlck9wZXJhdGlvbio+KCZvKTsKKyAgICAg
ICAgcmV0dXJuIG1fdmVydGV4U2hhZGVyLmdldCgpID09IG90aGVyLT5tX3ZlcnRleFNoYWRlci5n
ZXQoKQorICAgICAgICAgICAgJiYgbV9mcmFnbWVudFNoYWRlci5nZXQoKSA9PSBvdGhlci0+bV9m
cmFnbWVudFNoYWRlci5nZXQoKTsKKyAgICB9CisgICAgCisgICAgQ3VzdG9tRmlsdGVyT3BlcmF0
aW9uKFBhc3NSZWZQdHI8U3R5bGVTaGFkZXI+IHZlcnRleFNoYWRlciwgUGFzc1JlZlB0cjxTdHls
ZVNoYWRlcj4gZnJhZ21lbnRTaGFkZXIpCisgICAgICAgIDogRmlsdGVyT3BlcmF0aW9uKENVU1RP
TSkKKyAgICAgICAgLCBtX3ZlcnRleFNoYWRlcih2ZXJ0ZXhTaGFkZXIpCisgICAgICAgICwgbV9m
cmFnbWVudFNoYWRlcihmcmFnbWVudFNoYWRlcikKKyAgICB7CisgICAgfQorCisgICAgUmVmUHRy
PFN0eWxlU2hhZGVyPiBtX3ZlcnRleFNoYWRlcjsKKyAgICBSZWZQdHI8U3R5bGVTaGFkZXI+IG1f
ZnJhZ21lbnRTaGFkZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoQ1NTX1NIQURFUlMpCisKKyNlbmRpZiAvLyBDdXN0b21GaWx0ZXJPcGVyYXRpb25f
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCBk
OGIyYTUwLi45YTA5MTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaApAQCAtODU2LDYgKzg1Niw3IEBAIHB1YmxpYzoKICAgICBFU3BlYWsgc3BlYWso
KSB7IHJldHVybiBzdGF0aWNfY2FzdDxFU3BlYWs+KHJhcmVJbmhlcml0ZWREYXRhLT5zcGVhayk7
IH0KIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKKyAgICBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0
ZXIoKSB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9maWx0ZXIuYWNj
ZXNzKCktPm1fb3BlcmF0aW9uczsgfQogICAgIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZpbHRl
cigpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2ZpbHRlci0+bV9vcGVy
YXRpb25zOyB9CiAgICAgYm9vbCBoYXNGaWx0ZXIoKSBjb25zdCB7IHJldHVybiAhcmFyZU5vbklu
aGVyaXRlZERhdGEtPm1fZmlsdGVyLT5tX29wZXJhdGlvbnMub3BlcmF0aW9ucygpLmlzRW1wdHko
KTsgfQogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZUNhY2hlZFNoYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVDYWNoZWRTaGFkZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUy
ZmQyZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVDYWNoZWRTaGFkZXIuY3BwCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
MjAxMSBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKENTU19TSEFERVJT
KQorCisjaW5jbHVkZSAiU3R5bGVDYWNoZWRTaGFkZXIuaCIKKworI2luY2x1ZGUgIkNTU1ByaW1p
dGl2ZVZhbHVlLmgiCisjaW5jbHVkZSAiQ2FjaGVkU2hhZGVyLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworCitTdHlsZUNhY2hlZFNoYWRlcjo6U3R5bGVDYWNoZWRTaGFkZXIoQ2FjaGVkU2hh
ZGVyKiBzaGFkZXIpCisgICAgOiBtX3NoYWRlcihzaGFkZXIpCit7CisgICAgIG1faXNDYWNoZWRT
aGFkZXIgPSB0cnVlOworfQorCitQYXNzUmVmUHRyPENTU1ZhbHVlPiBTdHlsZUNhY2hlZFNoYWRl
cjo6Y3NzVmFsdWUoKSBjb25zdAoreworICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3Jl
YXRlKG1fc2hhZGVyLT51cmwoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19VUkkpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NIQURFUlMpCisK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZFNo
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkU2hhZGVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODhiZmM4MQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZFNoYWRl
ci5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMSBBZG9iZSBTeXN0ZW1z
IEluY29ycG9yYXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQg
SE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
CisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBTdHlsZUNhY2hlZFNoYWRlcl9oCisjZGVmaW5lIFN0eWxlQ2FjaGVkU2hhZGVyX2gKKworI2lm
IEVOQUJMRShDU1NfU0hBREVSUykKKworI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgi
CisjaW5jbHVkZSAiU3R5bGVTaGFkZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBDYWNoZWRTaGFkZXI7CisKK2NsYXNzIFN0eWxlQ2FjaGVkU2hhZGVyIDogcHVibGljIFN0eWxl
U2hhZGVyIHsKK3B1YmxpYzoKKyAgICAvLyBGSVhNRTogS2VlcCBhIHJlZmVyZW5jZSB0byB0aGUg
YWN0dWFsIENhY2hlZFNoYWRlciBpbiB0aGlzIGNsYXNzLgorICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFN0eWxlQ2FjaGVkU2hhZGVyPiBjcmVhdGUoQ2FjaGVkU2hhZGVyKiBzaGFkZXIpIHsgcmV0dXJu
IGFkb3B0UmVmKG5ldyBTdHlsZUNhY2hlZFNoYWRlcihzaGFkZXIpKTsgfQorICAgIAorICAgIHZp
cnR1YWwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gY3NzVmFsdWUoKSBjb25zdDsKKyAgICAKK3ByaXZh
dGU6CisgICAgU3R5bGVDYWNoZWRTaGFkZXIoQ2FjaGVkU2hhZGVyKik7CisgICAgCisgICAgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2hhZGVyPiBtX3NoYWRlcjsKK307CisKK30KKyNlbmRp
ZiAvLyBFTkFCTEUoQ1NTX1NIQURFUlMpCisKKyNlbmRpZiAvLyBTdHlsZUNhY2hlZFNoYWRlcl9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5n
U2hhZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nU2hh
ZGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDA0NmM4MgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdT
aGFkZXIuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IDIwMTEgQWRvYmUgU3lz
dGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgU3R5bGVQZW5kaW5nU2hhZGVyX2gKKyNkZWZpbmUgU3R5bGVQZW5kaW5nU2hhZGVyX2gK
KworI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKworI2luY2x1ZGUgIkNTU1ZhbHVlLmgiCisjaW5j
bHVkZSAiU3R5bGVTaGFkZXIuaCIKKyNpbmNsdWRlICJXZWJLaXRDU1NTaGFkZXJWYWx1ZS5oIgor
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgV2ViS2l0Q1NTU2hhZGVyVmFsdWU7CisKK2NsYXNzIFN0eWxlUGVuZGluZ1NoYWRlciA6IHB1
YmxpYyBTdHlsZVNoYWRlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3R5bGVQ
ZW5kaW5nU2hhZGVyPiBjcmVhdGUoV2ViS2l0Q1NTU2hhZGVyVmFsdWUqIHZhbHVlKSB7IHJldHVy
biBhZG9wdFJlZihuZXcgU3R5bGVQZW5kaW5nU2hhZGVyKHZhbHVlKSk7IH0KKyAgICAKKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IGNzc1ZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92
YWx1ZTsgfQorICAgIFdlYktpdENTU1NoYWRlclZhbHVlKiBjc3NTaGFkZXJWYWx1ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fdmFsdWU7IH0KK3ByaXZhdGU6CisgICAgU3R5bGVQZW5kaW5nU2hhZGVyKFdl
YktpdENTU1NoYWRlclZhbHVlKiB2YWx1ZSkKKyAgICAgICAgOiBtX3ZhbHVlKHZhbHVlKQorICAg
IHsKKyAgICAgICAgIG1faXNQZW5kaW5nU2hhZGVyID0gdHJ1ZTsKKyAgICB9CisgICAgCisgICAg
V2ViS2l0Q1NTU2hhZGVyVmFsdWUqIG1fdmFsdWU7IC8vIE5vdCByZXRhaW5lZDsgaXQgb3ducyB1
cy4KK307CisKK30KKyNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NIQURFUlMpCisKKyNlbmRpZiAvLyBT
dHlsZVBlbmRpbmdTaGFkZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlU2hhZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVTaGFkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjM2Njc3Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlU2hh
ZGVyLmgKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDExIEFkb2JlIFN5c3Rl
bXMgSW5jb3Jwb3JhdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFN0eWxlU2hhZGVyX2gKKyNkZWZpbmUgU3R5bGVTaGFkZXJfaAorCisjaWYgRU5BQkxFKENT
U19TSEFERVJTKQorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBDU1NWYWx1ZTsKKyAgICAKK2NsYXNzIFN0eWxlU2hhZGVyIDogcHVi
bGljIFJlZkNvdW50ZWQ8U3R5bGVTaGFkZXI+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5TdHls
ZVNoYWRlcigpIHsgfQorCisgICAgQUxXQVlTX0lOTElORSBib29sIGlzQ2FjaGVkU2hhZGVyKCkg
Y29uc3QgeyByZXR1cm4gbV9pc0NhY2hlZFNoYWRlcjsgfQorICAgIEFMV0FZU19JTkxJTkUgYm9v
bCBpc1BlbmRpbmdTaGFkZXIoKSBjb25zdCB7IHJldHVybiBtX2lzUGVuZGluZ1NoYWRlcjsgfQor
ICAgIAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gY3NzVmFsdWUoKSBjb25zdCA9
IDA7CisgICAgCitwcm90ZWN0ZWQ6CisgICAgU3R5bGVTaGFkZXIoKQorICAgICAgICA6IG1faXND
YWNoZWRTaGFkZXIoZmFsc2UpCisgICAgICAgICwgbV9pc1BlbmRpbmdTaGFkZXIoZmFsc2UpCisg
ICAgeworICAgIH0KKyAgICBib29sIG1faXNDYWNoZWRTaGFkZXIgOiAxOworICAgIGJvb2wgbV9p
c1BlbmRpbmdTaGFkZXIgOiAxOworfTsKKworfQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19TSEFE
RVJTKQorCisjZW5kaWYgLy8gU3R5bGVTaGFkZXJfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115323</attachid>
            <date>2011-11-15 22:34:20 -0800</date>
            <delta_ts>2011-11-15 23:51:20 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-72378-20111116083417.patch</filename>
            <type>text/plain</type>
            <size>65665</size>
            <attacher name="Alexandru Chiculita">achicu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwNDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmRhMWY2YmVkZWY4MThh
NGVkNDkyYTFlMjA2ZmE4M2FhOWIzMjFmNC4uZWY2Mjc5Mjk0OTc2NzM3Mzk1ZjQyZjVkZDYzZGYx
YmIwYmZhMTIyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDExLTExLTE1ICBBbGV4
YW5kcnUgQ2hpY3VsaXRhICA8YWNoaWN1QGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTU2hhZGVy
c10gSW1wbGVtZW50IHRoZSBzdHlsZSBjYWNoZWQgcmVzb3VyY2VzIGFuZCBjb21wdXRlZCBzdHls
ZSBmb3IgdGhlIHNoYWRlciB1cmxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MjM3OAorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3Nvbi4K
KworICAgICAgICBUZXN0OiBjc3MzL2ZpbHRlcnMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1jb21w
dXRlZC1zdHlsZS5odG1sCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAg
ICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBjc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6dmFs
dWVGb3JGaWx0ZXIpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OkNTU1N0eWxlU2VsZWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6c3R5bGVGb3JLZXlmcmFtZSk6CisgICAgICAg
IChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpwc2V1ZG9TdHlsZUZvckVsZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6c3R5bGVGb3JQYWdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5TWF0Y2hlZERlY2xhcmF0aW9ucyk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpzdHlsZVNoYWRlcik6CisgICAgICAg
IChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpjYWNoZWRPclBlbmRpbmdTdHlsZVNoYWRlckZy
b21WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNlbGVjdG9yOjpsb2FkUGVuZGlu
Z1NoYWRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6Y3JlYXRlQ3Vz
dG9tRmlsdGVyT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6
OmNyZWF0ZUZpbHRlck9wZXJhdGlvbnMpOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9y
Lmg6CisgICAgICAgICogY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYktpdENTU1NoYWRlclZhbHVlOjpXZWJLaXRDU1NTaGFkZXJWYWx1ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJLaXRDU1NTaGFkZXJWYWx1ZTo6fldlYktpdENTU1NoYWRlclZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYktpdENTU1NoYWRlclZhbHVlOjpjYWNoZWRTaGFkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViS2l0Q1NTU2hhZGVyVmFsdWU6OmNhY2hlZE9yUGVuZGlu
Z1NoYWRlcik6CisgICAgICAgICogY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmg6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmRl
ZmF1bHRQcmlvcml0eUZvclJlc291cmNlVHlwZSk6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVJlc291cmNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U2hhZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkNhY2hlZFJlc291cmNlTG9hZGVyOjpjaGVja0luc2VjdXJlQ29udGVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRlcjo6Y2FuUmVxdWVzdCk6CisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmg6CisgICAgICAgICogbG9hZGVy
L2NhY2hlL0NhY2hlZFNoYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTaGFkZXI6
OkNhY2hlZFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTaGFkZXI6On5DYWNoZWRT
aGFkZXIpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6
SW5oZXJpdGVkRmxhZ3M6OmZpbHRlcik6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxl
Q2FjaGVkU2hhZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlQ2FjaGVkU2hhZGVyOjpT
dHlsZUNhY2hlZFNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUNhY2hlZFNoYWRlcjo6
Y3NzVmFsdWUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZFNoYWRlci5o
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVDYWNoZWRTaGFkZXI6OmNyZWF0ZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUGVuZGluZ1NoYWRlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVQZW5kaW5nU2hhZGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQ
ZW5kaW5nU2hhZGVyOjpjc3NWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVBlbmRpbmdT
aGFkZXI6OmNzc1NoYWRlclZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUGVuZGluZ1No
YWRlcjo6U3R5bGVQZW5kaW5nU2hhZGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5
bGVTaGFkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hhZGVyOjp+U3R5bGVTaGFkZXIp
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVTaGFkZXI6OmlzQ2FjaGVkU2hhZGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlU2hhZGVyOjppc1BlbmRpbmdTaGFkZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVTaGFkZXI6OlN0eWxlU2hhZGVyKToKKwogMjAxMS0xMS0xNSAgSmVmZiBUaW1h
bnVzICA8dHdpekBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBEdXJpbmcgdGVh
ciBkb3duLCBwcmV2ZW50IHRoZSBXZWJHTExheWVyQ2hyb21pdW0gaW5zdGFuY2UgZnJvbSBhdHRl
bXB0aW5nIHRvIHN0b3AgYSB0aW1lciBmb3IgYSBOVUxMIGNvbnRleHQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQppbmRleCA4ZDI0Y2JkZGI5ZGIyNTg1YzQ1YTY5ZWRiNzkwODVhYjcyMGFj
N2VmLi4zNDdlOTYzZTAzYWE5MmY4MjUzYjhkNjcxNDY4OTRiMzE0N2UwZDIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTExMjEsNiArMTEyMSw3IEBAIHdlYmNvcmVfc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuaCBcCiAJ
U291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L2Nzcy9XZWJLaXRDU1NNYXRyaXguaCBcCisJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1No
YWRlclZhbHVlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1NoYWRlclZhbHVl
LmggXAogCVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgXAog
CVNvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIFwKQEAgLTIxNjcs
NiArMjE2OCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRTY3JpcHQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkU2NyaXB0LmggXAorCVNvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTaGFkZXIu
Y3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmggXAogCVNv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTdHlsZVNoZWV0Q2xpZW50LmggXAogCVNv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRUZXh0VHJhY2suY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRyYWNrLmggXApAQCAtMjUzMCw2ICsyNTMz
LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9UcmFuc2Zvcm1hdGlvbk1hdHJpeENhaXJvLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2x1dHRlci9HcmFwaGljc0xheWVyQ2x1dHRlci5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jbHV0dGVyL0dyYXBoaWNzTGF5ZXJDbHV0
dGVyLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0
b21GaWx0ZXJPcGVyYXRpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9EaXN0YW50TGlnaHRTb3VyY2UuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5oIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwIFwKQEAgLTMyNjQsNiArMzI2
OCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlQm94RGF0YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5
bGVDYWNoZWRJbWFnZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZUNhY2hlZEltYWdlLmggXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNh
Y2hlZFNoYWRlci5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNh
Y2hlZFNoYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVEYXNo
Ym9hcmRSZWdpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlRGVw
cmVjYXRlZEZsZXhpYmxlQm94RGF0YS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuaCBcCkBAIC0zMjgxLDExICszMjg3
LDEzIEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlTXVsdGlDb2xEYXRhLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlTXVsdGlDb2xEYXRhLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9TdHlsZVBlbmRpbmdJbWFnZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVQZW5kaW5nU2hhZGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSZWZsZWN0aW9uLmggXAorCVNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVNoYWRlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVTdXJyb3VuZERhdGEuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVTdXJyb3VuZERhdGEuaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlVHJhbnNmb3JtRGF0YS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggMTJiN2FjZjVm
YTc4Yjc5NzY5N2I4ZmU5M2EwNTI1OTI4OWZiYzFmNC4uNGE5N2E4YjQ2NTQxNzFlY2Q5MjNiNTg4
OWQ0ZTRlZDEzYjE5NWNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC00NTksNiArNDU5LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgY3NzL1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAgXAogICAgIGNzcy9XZWJL
aXRDU1NLZXlmcmFtZXNSdWxlLmNwcCBcCiAgICAgY3NzL1dlYktpdENTU01hdHJpeC5jcHAgXAor
ICAgIGNzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAgXAogICAgIGNzcy9XZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZS5jcHAgXAogICAgIGRvbS9BY3RpdmVET01PYmplY3QuY3BwIFwKICAgICBkb20v
QXR0ci5jcHAgXApAQCAtOTEwLDYgKzkxMSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUhhbmRsZS5jcHAgXAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5jcHAgXAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRTY3JpcHQuY3BwIFwKKyAgICBs
b2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcCBcCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFhT
TFN0eWxlU2hlZXQuY3BwIFwKICAgICBsb2FkZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNw
cCBcCiAgICAgbG9hZGVyL0Nyb3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGUuY3BwIFwKQEAg
LTEyNTAsNiArMTI1Miw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHls
ZUJhY2tncm91bmREYXRhLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQm94RGF0YS5j
cHAgXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmNwcCBcCisgICAgcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkU2hhZGVyLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxl
L1N0eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YS5jcHAgXAogICAgIHJlbmRlcmluZy9zdHls
ZS9TdHlsZUZpbHRlckRhdGEuY3BwIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJs
ZUJveERhdGEuY3BwIFwKQEAgLTE5NTAsNiArMTk1Myw3IEBAIEhFQURFUlMgKz0gXAogICAgIGxv
YWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oIFwKICAgICBsb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VIYW5kbGUuaCBcCiAgICAgbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oIFwKKyAgICBs
b2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmggXAogICAgIGxvYWRlci9jYWNoZS9DYWNoZWRYU0xT
dHlsZVNoZWV0LmggXAogICAgIGxvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oIFwKICAgICBsb2Fk
ZXIvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmggXApAQCAtMjA2Nyw2ICsyMDcxLDcgQEAgSEVB
REVSUyArPSBcCiAgICAgcGxhdGZvcm0vbW9jay9TY3JvbGxiYXJUaGVtZU1vY2suaCBcCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
Q29sb3IuaCBcCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVy
YXRpb24uaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUJsZW5kLmggXAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVDb2xvck1hdHJpeC5oIFwKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFQ29tcG9uZW50VHJhbnNmZXIuaCBcCkBAIC0yMzY2LDYgKzIz
NzEsNyBAQCBIRUFERVJTICs9IFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVCYWNrZ3JvdW5k
RGF0YS5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVCb3hEYXRhLmggXAogICAgIHJlbmRl
cmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmggXAorICAgIHJlbmRlcmluZy9zdHlsZS9TdHls
ZUNhY2hlZFNoYWRlci5oIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVEZXByZWNhdGVkRmxl
eGlibGVCb3hEYXRhLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUZpbHRlckRhdGEuaCBc
CiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmggXApAQCAtMjM3Myw5
ICsyMzc5LDExIEBAIEhFQURFUlMgKz0gXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUluaGVy
aXRlZERhdGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlTWFycXVlZURhdGEuaCBcCiAg
ICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlTXVsdGlDb2xEYXRhLmggXAorICAgIHJlbmRlcmluZy9z
dHlsZS9TdHlsZVBlbmRpbmdTaGFkZXIuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZUluaGVyaXRlZERhdGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmVmbGVjdGlvbi5oIFwKKyAg
ICByZW5kZXJpbmcvc3R5bGUvU3R5bGVTaGFkZXIuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0
eWxlU3Vycm91bmREYXRhLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZVRyYW5zZm9ybURh
dGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlVmlzdWFsRGF0YS5oIFwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQppbmRleCAxY2ZiZGI2YjU2MzI3MTg0M2E4M2E1YTJiMjc2NTEwYzE5Y2IyYzI4Li5iNWNj
YWQwMDM4YzMyMmYwOWU5ZDIxMGVkMjBhZWZlYWM1ZDcyM2RiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBA
IC01OTUsNiArNTk1LDcgQEAKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VDbGllbnQuaCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlSGFu
ZGxlLmgnLAogICAgICAgICAgICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5o
JywKKyAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmgnLAogICAgICAgICAg
ICAgJ2xvYWRlci9jYWNoZS9DYWNoZWRTdHlsZVNoZWV0Q2xpZW50LmgnLAogICAgICAgICAgICAg
J2xvYWRlci9jYWNoZS9NZW1vcnlDYWNoZS5oJywKICAgICAgICAgICAgICdsb2FkZXIvaWNvbi9J
Y29uQ29udHJvbGxlci5oJywKQEAgLTI0NzAsNiArMjQ3MSw4IEBACiAgICAgICAgICAgICAnY3Nz
L1dlYktpdENTU0tleWZyYW1lc1J1bGUuaCcsCiAgICAgICAgICAgICAnY3NzL1dlYktpdENTU01h
dHJpeC5jcHAnLAogICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NNYXRyaXguaCcsCisgICAgICAg
ICAgICAnY3NzL1dlYktpdENTU1NoYWRlclZhbHVlLmNwcCcsCisgICAgICAgICAgICAnY3NzL1dl
YktpdENTU1NoYWRlclZhbHVlLmgnLAogICAgICAgICAgICAgJ2Nzcy9XZWJLaXRDU1NUcmFuc2Zv
cm1WYWx1ZS5jcHAnLAogICAgICAgICAgICAgJ2VkaXRpbmcvQXBwZW5kTm9kZUNvbW1hbmQuY3Bw
JywKICAgICAgICAgICAgICdlZGl0aW5nL0FwcGVuZE5vZGVDb21tYW5kLmgnLApAQCAtMjg2MSw2
ICsyODY0LDggQEAKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2Fk
ZXIuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkU2NyaXB0LmNwcCcsCiAg
ICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFNjcmlwdC5oJywKKyAgICAgICAgICAgICds
b2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmNwcCcsCisgICAgICAgICAgICAnbG9hZGVyL2NhY2hl
L0NhY2hlZFNoYWRlci5oJywKICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkVGV4dFRy
YWNrLmNwcCcsCiAgICAgICAgICAgICAnbG9hZGVyL2NhY2hlL0NhY2hlZFRleHRUcmFjay5oJywK
ICAgICAgICAgICAgICdsb2FkZXIvY2FjaGUvQ2FjaGVkWFNMU3R5bGVTaGVldC5jcHAnLApAQCAt
MzU5Nyw2ICszNjAyLDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9lZmwvSW1h
Z2VFZmwuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9lZmwvSW50UG9pbnRF
ZmwuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9lZmwvSW50UmVjdEVmbC5j
cHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVy
T3BlcmF0aW9uLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRGlz
dGFudExpZ2h0U291cmNlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9EaXN0YW50TGlnaHRTb3VyY2UuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GRUJsZW5kLmNwcCcsCkBAIC00NzQyLDYgKzQ3NDgsOCBAQAogICAgICAgICAg
ICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUJhY2tncm91bmREYXRhLmNwcCcsCiAgICAgICAgICAg
ICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlQm94RGF0YS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRl
cmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmNwcCcsCisgICAgICAgICAgICAncmVuZGVyaW5n
L3N0eWxlL1N0eWxlQ2FjaGVkU2hhZGVyLmgnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHls
ZS9TdHlsZUNhY2hlZFNoYWRlci5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9T
dHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJp
bmcvc3R5bGUvU3R5bGVGaWx0ZXJEYXRhLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0
eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmNwcCcsCkBAIC00NzUwLDggKzQ3NTgsMTAgQEAKICAg
ICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVNYXJxdWVlRGF0YS5jcHAnLAogICAgICAg
ICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZU11bHRpQ29sRGF0YS5jcHAnLAogICAgICAgICAg
ICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRpbmdJbWFnZS5oJywKKyAgICAgICAgICAgICdy
ZW5kZXJpbmcvc3R5bGUvU3R5bGVQZW5kaW5nU2hhZGVyLmgnLAogICAgICAgICAgICAgJ3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcCcsCiAgICAgICAgICAgICAncmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwJywKKyAgICAgICAgICAg
ICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVTaGFkZXIuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5n
L3N0eWxlL1N0eWxlU3Vycm91bmREYXRhLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0
eWxlL1N0eWxlVHJhbnNmb3JtRGF0YS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHls
ZS9TdHlsZVZpc3VhbERhdGEuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2oKaW5kZXggNDE0NDAzYTE2NDNlYTEyOGU5MTc2ZWY0NGY0ZDM0OTljYzVh
Y2YxMy4uZDdmZjBiZmRhMzA2MzhkNjQzZjY0ZmU4YmIwNDA1ODE3OTg3MjZmZiAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTI2MTkzLDYgKzI2
MTkzLDE0IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxsb2FkZXJcY2FjaGVcQ2FjaGVkU2hhZGVyLmNwcCIKKwkJCQkJPgorCQkJCTwvRmls
ZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGxvYWRlclxjYWNoZVxDYWNoZWRT
aGFkZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGxvYWRlclxjYWNoZVxDYWNoZWRTdHlsZVNoZWV0Q2xpZW50LmgiCiAJCQkJCT4KIAkJ
CQk8L0ZpbGU+CkBAIC0yOTQ4NCw2ICsyOTQ5MiwxMCBAQAogCQkJCQlOYW1lPSJmaWx0ZXJzIgog
CQkJCQk+CiAJCQkJCTxGaWxlCisJCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXGdyYXBo
aWNzXGZpbHRlcnNcQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmgiCisJCQkJCQk+CisJCQkJCTwvRmls
ZT4KKwkJCQkJPEZpbGUKIAkJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cZ3JhcGhpY3Nc
ZmlsdGVyc1xEaXN0YW50TGlnaHRTb3VyY2UuY3BwIgogCQkJCQkJPgogCQkJCQk8L0ZpbGU+CkBA
IC0zMjkzOCw2ICszMjk1MCwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxjc3NcV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxjc3NcV2ViS2l0Q1NTU2hh
ZGVyVmFsdWUuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0
aD0iLi5cY3NzXFdlYktpdENTU0tleWZyYW1lUnVsZS5jcHAiCiAJCQkJPgogCQkJPC9GaWxlPgpA
QCAtNDA0NTEsNiArNDA0NzEsMTQgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxTdHlsZUNhY2hlZFNoYWRlci5j
cHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIu
LlxyZW5kZXJpbmdcc3R5bGVcU3R5bGVDYWNoZWRTaGFkZXIuaCIKKwkJCQkJPgorCQkJCTwvRmls
ZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxTdHls
ZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgpAQCAtNDA4NTEsNiArNDA4NzksMTAgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJ
CQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxTdHlsZVBlbmRp
bmdTaGFkZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxTdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcCIKIAkJ
CQkJPgogCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KQEAgLTQwOTY3LDYgKzQwOTk5LDEwIEBACiAJ
CQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5k
ZXJpbmdcc3R5bGVcU3R5bGVTaGFkZXIuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8Rmls
ZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHJlbmRlcmluZ1xzdHlsZVxTdHlsZVN1cnJvdW5kRGF0
YS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMGI2NTA4MjVjN2Ji
ODVjOTM0ODU2ZTYzNjA4NjBjMjE1NTZmMzA5MS4uNTZjMDU2MzFkODIwNWQ4MjEzYTY4MzNjNzk3
ZmQyYTM4MzZiZTUzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTM2Niw2ICsxMzY2LDEyIEBACiAJCTRGRDhEMEYzMTE5Qzcx
OEIwMDJGQTgyNSAvKiBTY3JpcHRHQ0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0RkQ4RDBGMTExOUM3MThCMDAyRkE4MjUgLyogU2NyaXB0R0NF
dmVudC5oICovOyB9OwogCQk1MDFCQTlFMjEzOTNDRUEwMDBGN0FDRUIgLyogQ1NTV3JhcFNoYXBl
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTAxQkE5
RTExMzkzQ0VBMDAwRjdBQ0VCIC8qIENTU1dyYXBTaGFwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MDFCQUFBOTEzOTUwRTJDMDBGN0FDRUIg
LyogV2luZFJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUwMUJBQUE4MTM5NTBFMkMwMEY3QUNFQiAvKiBXaW5kUnVsZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUwMzhCQzA3MTQ3MTFDREIwMDk1
RTBEMSAvKiBXZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDM4QkMwNjE0NzExQ0RCMDA5NUUwRDEgLyogV2ViS2l0
Q1NTU2hhZGVyVmFsdWUuY3BwICovOyB9OworCQk1MDM4QkMwQjE0NzExRDM0MDA5NUUwRDEgLyog
Q3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MDM4QkMwOTE0NzExRDM0MDA5NUUwRDEgLyogQ3VzdG9tRmlsdGVyT3Bl
cmF0aW9uLmggKi87IH07CisJCTUwMzhCRTJGMTQ3MkFEMjMwMDk1RTBEMSAvKiBTdHlsZUNhY2hl
ZFNoYWRlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MDM4QkUyRDE0NzJBRDIzMDA5NUUwRDEgLyogU3R5bGVDYWNoZWRTaGFkZXIuY3BwICovOyB9
OworCQk1MDM4QkUzMDE0NzJBRDIzMDA5NUUwRDEgLyogU3R5bGVDYWNoZWRTaGFkZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwMzhCRTJFMTQ3MkFE
MjMwMDk1RTBEMSAvKiBTdHlsZUNhY2hlZFNoYWRlci5oICovOyB9OworCQk1MDM4QkU0MDE0NzJB
RDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwMzhCRTNFMTQ3MkFEOTgwMDk1RTBEMSAvKiBDYWNoZWRT
aGFkZXIuY3BwICovOyB9OworCQk1MDM4QkU0MTE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hh
ZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDM4
QkUzRjE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmggKi87IH07CiAJCTUwOENDQTRG
MTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93VGhyZWFkLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MDhDQ0E0RDEzQ0YxMDZCMDAzMTUxRjMgLyog
UmVuZGVyRmxvd1RocmVhZC5oICovOyB9OwogCQk1MDhDQ0E1MDEzQ0YxMDZCMDAzMTUxRjMgLyog
UmVuZGVyRmxvd1RocmVhZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MDhDQ0E0RTEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5j
cHAgKi87IH07CiAJCTUwRTU2NkQ2MTM5RTM4QzUwMDIxNDQzMyAvKiBDU1NXcmFwU2hhcGVzLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUwMUJBQUIx
MTM5NTExNEIwMEY3QUNFQiAvKiBDU1NXcmFwU2hhcGVzLmNwcCAqLzsgfTsKQEAgLTg1NTYsNiAr
ODU2MiwxMiBAQAogCQk1MDFCQTlFMTEzOTNDRUEwMDBGN0FDRUIgLyogQ1NTV3JhcFNoYXBlcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NXcmFwU2hhcGVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUwMUJBQUE4MTM5NTBFMkMwMEY3QUNFQiAvKiBXaW5k
UnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaW5kUnVsZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MDFCQUFCMTEzOTUxMTRCMDBGN0FDRUIgLyogQ1NT
V3JhcFNoYXBlcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NX
cmFwU2hhcGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTAzOEJDMDYxNDcx
MUNEQjAwOTVFMEQxIC8qIFdlYktpdENTU1NoYWRlclZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdENTU1NoYWRlclZhbHVlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTAzOEJDMDkxNDcxMUQzNDAwOTVFMEQxIC8qIEN1c3RvbUZp
bHRlck9wZXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDdXN0b21G
aWx0ZXJPcGVyYXRpb24uaDsgcGF0aCA9IGZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUwMzhCRTJEMTQ3MkFEMjMwMDk1RTBEMSAv
KiBTdHlsZUNhY2hlZFNoYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBTdHlsZUNhY2hlZFNoYWRlci5jcHA7IHBhdGggPSBzdHlsZS9TdHlsZUNhY2hlZFNoYWRl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUwMzhCRTJFMTQ3MkFEMjMwMDk1
RTBEMSAvKiBTdHlsZUNhY2hlZFNoYWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBTdHlsZUNhY2hlZFNoYWRlci5oOyBwYXRoID0gc3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTAzOEJFM0UxNDcyQUQ5ODAwOTVFMEQx
IC8qIENhY2hlZFNoYWRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDYWNoZWRTaGFkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MDM4QkUz
RjE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IENhY2hlZFNoYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MDhDQ0E0RDEzQ0YxMDZCMDAzMTUxRjMgLyogUmVuZGVyRmxvd1RocmVhZC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJGbG93VGhyZWFkLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUwOENDQTRFMTNDRjEwNkIwMDMxNTFGMyAvKiBSZW5kZXJGbG93
VGhyZWFkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlckZs
b3dUaHJlYWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MEI0MjE1NzE0Njk3
Njk2MDA4N0U2MDQgLyogV2ViS2l0Q1NTU2hhZGVyVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViS2l0Q1NTU2hhZGVyVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE3NTg5LDYgKzE3NjAxLDcgQEAKIAkJQTc1RThCN0YwRTFERTJCMDAwN0Yy
NDgxIC8qIGZpbHRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCTUwMzhCQzA5MTQ3MTFEMzQwMDk1RTBEMSAvKiBDdXN0b21GaWx0ZXJPcGVyYXRpb24u
aCAqLywKIAkJCQkxOTg0MUJGQTEzNjgzNkExMDA2RUJCQjkgLyogYXJtICovLAogCQkJCUExRTEx
NTQzMTMwMTVDM0QwMDU0QUM4QyAvKiBEaXN0YW50TGlnaHRTb3VyY2UuY3BwICovLAogCQkJCTg0
NzMwRDVBMTI0OEYwQjMwMEQzQTlDOSAvKiBEaXN0YW50TGlnaHRTb3VyY2UuaCAqLywKQEAgLTE4
NDg3LDYgKzE4NTAwLDggQEAKIAkJQThEMkIyNTIxMjg3QTU2MDAwQUY0RERBIC8qIGNhY2hlICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1MDM4QkUzRTE0
NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmNwcCAqLywKKwkJCQk1MDM4QkUzRjE0NzJB
RDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmggKi8sCiAJCQkJQkNCMTZDMDAwOTc5QzNCRDAw
NDY3NzQxIC8qIENhY2hlZENTU1N0eWxlU2hlZXQuY3BwICovLAogCQkJCUJDQjE2QzAxMDk3OUMz
QkQwMDQ2Nzc0MSAvKiBDYWNoZWRDU1NTdHlsZVNoZWV0LmggKi8sCiAJCQkJQkM2NEI0QzkwQ0I0
Mjk1RDAwNUYyQjYyIC8qIENhY2hlZEZvbnQuY3BwICovLApAQCAtMTk3NTIsNiArMTk3NjcsOCBA
QAogCQlCQzhDOEZBQTBERENEMkYyMDBCNTkyRjQgLyogc3R5bGUgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTUwMzhCRTJEMTQ3MkFEMjMwMDk1RTBEMSAv
KiBTdHlsZUNhY2hlZFNoYWRlci5jcHAgKi8sCisJCQkJNTAzOEJFMkUxNDcyQUQyMzAwOTVFMEQx
IC8qIFN0eWxlQ2FjaGVkU2hhZGVyLmggKi8sCiAJCQkJQkM1RUI1RTAwRTgxQkU4NzAwQjI1OTY1
IC8qIEJvcmRlckRhdGEuaCAqLywKIAkJCQlCQzVFQjVEQTBFODFCN0VBMDBCMjU5NjUgLyogQm9y
ZGVyVmFsdWUuaCAqLywKIAkJCQlCQzVFQjVERTBFODFCOUFCMDBCMjU5NjUgLyogQ29sbGFwc2Vk
Qm9yZGVyVmFsdWUuaCAqLywKQEAgLTIwNTY5LDYgKzIwNTg2LDggQEAKIAkJRjUyM0QxODQwMkRF
NDJFODAxODYzNUNBIC8qIGNzcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCisJCQkJNTAzOEJDMDYxNDcxMUNEQjAwOTVFMEQxIC8qIFdlYktpdENTU1NoYWRlclZh
bHVlLmNwcCAqLywKKwkJCQk1MEI0MjE1NzE0Njk3Njk2MDA4N0U2MDQgLyogV2ViS2l0Q1NTU2hh
ZGVyVmFsdWUuaCAqLywKIAkJCQlBRDAzQUFGODE0Njg0NTM5MDBBMzlCNUIgLyogQ1NTVmFsdWUu
Y3BwICovLAogCQkJCUNBRTlGOTBEMTQ2NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1Zh
bHVlLmNwcCAqLywKIAkJCQlDQUU5RjkwRTE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0
aW9WYWx1ZS5oICovLApAQCAtMjQ2OTQsNiArMjQ3MTMsOSBAQAogCQkJCUNERjY1Q0NBMTQ1QjQ0
ODgwMEM0QzdBQSAvKiBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTI5MTdCNTYyMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkyOTE3QjU2MzE0NzM0OTZDMDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNj
aGVkdWxlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTAzOEJDMEIxNDcxMUQzNDAwOTVF
MEQxIC8qIEN1c3RvbUZpbHRlck9wZXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTAzOEJF
MzAxNDcyQUQyMzAwOTVFMEQxIC8qIFN0eWxlQ2FjaGVkU2hhZGVyLmggaW4gSGVhZGVycyAqLywK
KwkJCQk1MDM4QkU0MTE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsK
IAkJfTsKQEAgLTI3NTY0LDYgKzI3NTg2LDkgQEAKIAkJCQkzMTMxM0Y2NTE0NDNCMzVGMDA2RTJB
OTAgLyogRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjkxN0I1
NjExNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMjkxN0I1NjYxNDczNDk5NTAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJN
YWMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTAzOEJDMDcxNDcxMUNEQjAwOTVFMEQxIC8qIFdl
YktpdENTU1NoYWRlclZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUwMzhCRTJGMTQ3MkFE
MjMwMDk1RTBEMSAvKiBTdHlsZUNhY2hlZFNoYWRlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1
MDM4QkU0MDE0NzJBRDk4MDA5NUUwRDEgLyogQ2FjaGVkU2hhZGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJh
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcAppbmRleCBmZDFmYjMyOTIzMDViOWM1MDZjNzg4OWZlYTRkOWEwMmMxMjk4YmZhLi5hY2I3
ZjlmMDFlZDMyZDM4NjM3YTQ1ZjM0YzA0ZmFiODc0ZDYxMmRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtNDAsNiArNDAs
OSBAQAogI2luY2x1ZGUgIkNTU1NlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ1NTVGltaW5nRnVuY3Rp
b25WYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlTGlzdC5oIgorI2lmIEVOQUJMRShDU1NfU0hB
REVSUykKKyNpbmNsdWRlICJDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCIKKyNlbmRpZgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZv
bnRGZWF0dXJlU2V0dGluZ3MuaCIKQEAgLTczNyw4ICs3NDAsMTggQEAgUGFzc1JlZlB0cjxDU1NW
YWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjp2YWx1ZUZvckZpbHRlcihSZW5kZXJT
dHlsZSogc3QKICAgICAgICAgfQogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKICAgICAgICAgY2Fz
ZSBGaWx0ZXJPcGVyYXRpb246OkNVU1RPTTogewotICAgICAgICAgICAgLy8gRklYTUU6IEltcGxl
bWVudCBjdXN0b20gc2hhZGVyIGZ1bmN0aW9uLgotICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzk2CisgICAgICAgICAgICBDdXN0b21GaWx0
ZXJPcGVyYXRpb24qIGN1c3RvbU9wZXJhdGlvbiA9IHN0YXRpY19jYXN0PEN1c3RvbUZpbHRlck9w
ZXJhdGlvbio+KGZpbHRlck9wZXJhdGlvbik7CisgICAgICAgICAgICBmaWx0ZXJWYWx1ZSA9IFdl
YktpdENTU0ZpbHRlclZhbHVlOjpjcmVhdGUoV2ViS2l0Q1NTRmlsdGVyVmFsdWU6OkN1c3RvbUZp
bHRlck9wZXJhdGlvbik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1
ZUxpc3Q+IHNoYWRlcnNMaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgp
OworICAgICAgICAgICAgaWYgKGN1c3RvbU9wZXJhdGlvbi0+dmVydGV4U2hhZGVyKCkpCisgICAg
ICAgICAgICAgICAgc2hhZGVyc0xpc3QtPmFwcGVuZChjdXN0b21PcGVyYXRpb24tPnZlcnRleFNo
YWRlcigpLT5jc3NWYWx1ZSgpKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBz
aGFkZXJzTGlzdC0+YXBwZW5kKHByaW1pdGl2ZVZhbHVlQ2FjaGUtPmNyZWF0ZUlkZW50aWZpZXJW
YWx1ZShDU1NWYWx1ZU5vbmUpKTsKKyAgICAgICAgICAgIGlmIChjdXN0b21PcGVyYXRpb24tPmZy
YWdtZW50U2hhZGVyKCkpCisgICAgICAgICAgICAgICAgc2hhZGVyc0xpc3QtPmFwcGVuZChjdXN0
b21PcGVyYXRpb24tPmZyYWdtZW50U2hhZGVyKCktPmNzc1ZhbHVlKCkpOworICAgICAgICAgICAg
ZmlsdGVyVmFsdWUtPmFwcGVuZChzaGFkZXJzTGlzdC5yZWxlYXNlKCkpOworICAgICAgICAgICAg
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVTZWxlY3Rvci5jcHAKaW5kZXggMzQzNzNlMDRhMzdmMzhiMTZlMzQwODFjMjJiNzMx
OTdkYTdkZDJmMi4uNzUyN2Q3M2VmNDJmYThiMGIzZDJhMDAyODAxNTlhMGU2OWRkMTkxZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcApAQCAtMTIyLDYgKzEyMiwxNCBA
QAogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShDU1NfU0hBREVS
UykKKyNpbmNsdWRlICJDdXN0b21GaWx0ZXJPcGVyYXRpb24uaCIKKyNpbmNsdWRlICJTdHlsZUNh
Y2hlZFNoYWRlci5oIgorI2luY2x1ZGUgIlN0eWxlUGVuZGluZ1NoYWRlci5oIgorI2luY2x1ZGUg
IlN0eWxlU2hhZGVyLmgiCisjaW5jbHVkZSAiV2ViS2l0Q1NTU2hhZGVyVmFsdWUuaCIKKyNlbmRp
ZgorCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNDks
NiArMzU3LDkgQEAgQ1NTU3R5bGVTZWxlY3Rvcjo6Q1NTU3R5bGVTZWxlY3RvcihEb2N1bWVudCog
ZG9jdW1lbnQsIFN0eWxlU2hlZXRMaXN0KiBzdHlsZVNoZWUKICAgICAsIG1fYXBwbHlQcm9wZXJ0
eVRvUmVndWxhclN0eWxlKHRydWUpCiAgICAgLCBtX2FwcGx5UHJvcGVydHlUb1Zpc2l0ZWRMaW5r
U3R5bGUoZmFsc2UpCiAgICAgLCBtX2FwcGx5UHJvcGVydHkoQ1NTU3R5bGVBcHBseVByb3BlcnR5
OjpzaGFyZWRDU1NTdHlsZUFwcGx5UHJvcGVydHkoKSkKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMp
CisgICAgLCBtX2hhc1BlbmRpbmdTaGFkZXJzKGZhbHNlKQorI2VuZGlmCiB7CiAgICAgRWxlbWVu
dCogcm9vdCA9IGRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKTsKIApAQCAtMTMwNyw2ICsxMzE4
LDExIEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IENTU1N0eWxlU2VsZWN0b3I6OnN0eWxlRm9y
S2V5ZnJhbWUoY29uc3QgUmVuZGVyU3R5bGUqIGVsCiAKICAgICAvLyBTdGFydCBsb2FkaW5nIGlt
YWdlcyByZWZlcmVuY2VkIGJ5IHRoaXMgc3R5bGUuCiAgICAgbG9hZFBlbmRpbmdJbWFnZXMoKTsK
KyAgICAKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgLy8gU3RhcnQgbG9hZGluZyB0aGUg
c2hhZGVycyByZWZlcmVuY2VkIGJ5IHRoaXMgc3R5bGUuCisgICAgbG9hZFBlbmRpbmdTaGFkZXJz
KCk7CisjZW5kaWYKIAogICAgIC8vIEFkZCBhbGwgdGhlIGFuaW1hdGluZyBwcm9wZXJ0aWVzIHRv
IHRoZSBrZXlmcmFtZS4KICAgICBpZiAoa2V5ZnJhbWVSdWxlLT5zdHlsZSgpKSB7CkBAIC0xNDE2
LDYgKzE0MzIsMTEgQEAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gQ1NTU3R5bGVTZWxlY3Rvcjo6
cHNldWRvU3R5bGVGb3JFbGVtZW50KFBzZXVkb0lkIHBzZXVkbywKICAgICAvLyBTdGFydCBsb2Fk
aW5nIGltYWdlcyByZWZlcmVuY2VkIGJ5IHRoaXMgc3R5bGUuCiAgICAgbG9hZFBlbmRpbmdJbWFn
ZXMoKTsKIAorI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyAgICAvLyBTdGFydCBsb2FkaW5nIHRo
ZSBzaGFkZXJzIHJlZmVyZW5jZWQgYnkgdGhpcyBzdHlsZS4KKyAgICBsb2FkUGVuZGluZ1NoYWRl
cnMoKTsKKyNlbmRpZgorCiAgICAgLy8gTm93IHJldHVybiB0aGUgc3R5bGUuCiAgICAgcmV0dXJu
IG1fc3R5bGUucmVsZWFzZSgpOwogfQpAQCAtMTQ0OSw2ICsxNDcwLDExIEBAIFBhc3NSZWZQdHI8
UmVuZGVyU3R5bGU+IENTU1N0eWxlU2VsZWN0b3I6OnN0eWxlRm9yUGFnZShpbnQgcGFnZUluZGV4
KQogICAgIC8vIFN0YXJ0IGxvYWRpbmcgaW1hZ2VzIHJlZmVyZW5jZWQgYnkgdGhpcyBzdHlsZS4K
ICAgICBsb2FkUGVuZGluZ0ltYWdlcygpOwogCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorICAg
IC8vIFN0YXJ0IGxvYWRpbmcgdGhlIHNoYWRlcnMgcmVmZXJlbmNlZCBieSB0aGlzIHN0eWxlLgor
ICAgIGxvYWRQZW5kaW5nU2hhZGVycygpOworI2VuZGlmCisKICAgICAvLyBOb3cgcmV0dXJuIHRo
ZSBzdHlsZS4KICAgICByZXR1cm4gbV9zdHlsZS5yZWxlYXNlKCk7CiB9CkBAIC0yMzA1LDcgKzIz
MzEsMTEgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseU1hdGNoZWREZWNsYXJhdGlvbnMo
Y29uc3QgTWF0Y2hSZXN1bHQmIG1hdGNoUmVzdWx0KQogICAgIGFwcGx5RGVjbGFyYXRpb25zPGZh
bHNlPih0cnVlLCBtYXRjaFJlc3VsdC5maXJzdFVBUnVsZSwgbWF0Y2hSZXN1bHQubGFzdFVBUnVs
ZSwgYXBwbHlJbmhlcml0ZWRPbmx5KTsKICAgICAKICAgICBsb2FkUGVuZGluZ0ltYWdlcygpOwot
ICAgICAgICAKKyAgICAKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgbG9hZFBlbmRpbmdT
aGFkZXJzKCk7CisjZW5kaWYKKyAgICAKICAgICBBU1NFUlQoIW1fZm9udERpcnR5KTsKICAgICAK
ICAgICBpZiAoY2FjaGVkU3R5bGUgfHwgIWNhY2hlSGFzaCkKQEAgLTU0MTMsNiArNTQ0Myw2MyBA
QCBzdGF0aWMgRmlsdGVyT3BlcmF0aW9uOjpPcGVyYXRpb25UeXBlIGZpbHRlck9wZXJhdGlvbkZv
clR5cGUoV2ViS2l0Q1NTRmlsdGVyVmFsdQogICAgIHJldHVybiBGaWx0ZXJPcGVyYXRpb246Ok5P
TkU7CiB9CiAKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCitTdHlsZVNoYWRlciogQ1NTU3R5bGVT
ZWxlY3Rvcjo6c3R5bGVTaGFkZXIoQ1NTVmFsdWUqIHZhbHVlKQoreworICAgIGlmICh2YWx1ZS0+
aXNXZWJLaXRDU1NTaGFkZXJWYWx1ZSgpKQorICAgICAgICByZXR1cm4gY2FjaGVkT3JQZW5kaW5n
U3R5bGVTaGFkZXJGcm9tVmFsdWUoc3RhdGljX2Nhc3Q8V2ViS2l0Q1NTU2hhZGVyVmFsdWUqPih2
YWx1ZSkpOworICAgIHJldHVybiAwOworfQorCitTdHlsZVNoYWRlciogQ1NTU3R5bGVTZWxlY3Rv
cjo6Y2FjaGVkT3JQZW5kaW5nU3R5bGVTaGFkZXJGcm9tVmFsdWUoV2ViS2l0Q1NTU2hhZGVyVmFs
dWUqIHZhbHVlKQoreworICAgIFN0eWxlU2hhZGVyKiBzaGFkZXIgPSB2YWx1ZS0+Y2FjaGVkT3JQ
ZW5kaW5nU2hhZGVyKCk7CisgICAgaWYgKHNoYWRlciAmJiBzaGFkZXItPmlzUGVuZGluZ1NoYWRl
cigpKQorICAgICAgICBtX2hhc1BlbmRpbmdTaGFkZXJzID0gdHJ1ZTsKKyAgICByZXR1cm4gc2hh
ZGVyOworfQorCit2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmxvYWRQZW5kaW5nU2hhZGVycygpCit7
CisgICAgaWYgKCFtX3N0eWxlLT5oYXNGaWx0ZXIoKSB8fCAhbV9oYXNQZW5kaW5nU2hhZGVycykK
KyAgICAgICAgcmV0dXJuOworCisgICAgQ2FjaGVkUmVzb3VyY2VMb2FkZXIqIGNhY2hlZFJlc291
cmNlTG9hZGVyID0gbV9lbGVtZW50LT5kb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigp
OworCisgICAgVmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+ID4mIGZpbHRlck9wZXJhdGlv
bnMgPSBtX3N0eWxlLT5maWx0ZXIoKS5vcGVyYXRpb25zKCk7CisgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IGZpbHRlck9wZXJhdGlvbnMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgUmVmUHRy
PEZpbHRlck9wZXJhdGlvbj4gZmlsdGVyT3BlcmF0aW9uID0gZmlsdGVyT3BlcmF0aW9ucy5hdChp
KTsKKyAgICAgICAgaWYgKGZpbHRlck9wZXJhdGlvbi0+Z2V0T3BlcmF0aW9uVHlwZSgpID09IEZp
bHRlck9wZXJhdGlvbjo6Q1VTVE9NKSB7CisgICAgICAgICAgICBDdXN0b21GaWx0ZXJPcGVyYXRp
b24qIGN1c3RvbUZpbHRlciA9IHN0YXRpY19jYXN0PEN1c3RvbUZpbHRlck9wZXJhdGlvbio+KGZp
bHRlck9wZXJhdGlvbi5nZXQoKSk7CisgICAgICAgICAgICBpZiAoY3VzdG9tRmlsdGVyLT52ZXJ0
ZXhTaGFkZXIoKSAmJiBjdXN0b21GaWx0ZXItPnZlcnRleFNoYWRlcigpLT5pc1BlbmRpbmdTaGFk
ZXIoKSkgeworICAgICAgICAgICAgICAgIFdlYktpdENTU1NoYWRlclZhbHVlKiBzaGFkZXJWYWx1
ZSA9IHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ1NoYWRlcio+KGN1c3RvbUZpbHRlci0+dmVydGV4
U2hhZGVyKCkpLT5jc3NTaGFkZXJWYWx1ZSgpOworICAgICAgICAgICAgICAgIGN1c3RvbUZpbHRl
ci0+c2V0VmVydGV4U2hhZGVyKHNoYWRlclZhbHVlLT5jYWNoZWRTaGFkZXIoY2FjaGVkUmVzb3Vy
Y2VMb2FkZXIpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjdXN0b21GaWx0ZXIt
PmZyYWdtZW50U2hhZGVyKCkgJiYgY3VzdG9tRmlsdGVyLT5mcmFnbWVudFNoYWRlcigpLT5pc1Bl
bmRpbmdTaGFkZXIoKSkgeworICAgICAgICAgICAgICAgIFdlYktpdENTU1NoYWRlclZhbHVlKiBz
aGFkZXJWYWx1ZSA9IHN0YXRpY19jYXN0PFN0eWxlUGVuZGluZ1NoYWRlcio+KGN1c3RvbUZpbHRl
ci0+ZnJhZ21lbnRTaGFkZXIoKSktPmNzc1NoYWRlclZhbHVlKCk7CisgICAgICAgICAgICAgICAg
Y3VzdG9tRmlsdGVyLT5zZXRGcmFnbWVudFNoYWRlcihzaGFkZXJWYWx1ZS0+Y2FjaGVkU2hhZGVy
KGNhY2hlZFJlc291cmNlTG9hZGVyKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
CisgICAgbV9oYXNQZW5kaW5nU2hhZGVycyA9IGZhbHNlOworfQorCitQYXNzUmVmUHRyPEN1c3Rv
bUZpbHRlck9wZXJhdGlvbj4gQ1NTU3R5bGVTZWxlY3Rvcjo6Y3JlYXRlQ3VzdG9tRmlsdGVyT3Bl
cmF0aW9uKFdlYktpdENTU0ZpbHRlclZhbHVlKiBmaWx0ZXJWYWx1ZSkKK3sKKyAgICBBU1NFUlQo
ZmlsdGVyVmFsdWUtPmxlbmd0aCgpKTsKKworICAgIENTU1ZhbHVlKiBzaGFkZXJzVmFsdWUgPSBm
aWx0ZXJWYWx1ZS0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjaygwKTsKKyAgICBBU1NFUlQoc2hhZGVy
c1ZhbHVlLT5pc1ZhbHVlTGlzdCgpKTsKKyAgICBDU1NWYWx1ZUxpc3QqIHNoYWRlcnNMaXN0ID0g
c3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4oc2hhZGVyc1ZhbHVlKTsKKworICAgIEFTU0VSVChz
aGFkZXJzTGlzdC0+bGVuZ3RoKCkpOworICAgIFJlZlB0cjxTdHlsZVNoYWRlcj4gdmVydGV4U2hh
ZGVyID0gc3R5bGVTaGFkZXIoc2hhZGVyc0xpc3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soMCkp
OworICAgIFJlZlB0cjxTdHlsZVNoYWRlcj4gZnJhZ21lbnRTaGFkZXIgPSAoc2hhZGVyc0xpc3Qt
Pmxlbmd0aCgpID4gMSkgPyBzdHlsZVNoYWRlcihzaGFkZXJzTGlzdC0+aXRlbVdpdGhvdXRCb3Vu
ZHNDaGVjaygxKSkgOiAwOworICAgIAorICAgIHJldHVybiBDdXN0b21GaWx0ZXJPcGVyYXRpb246
OmNyZWF0ZSh2ZXJ0ZXhTaGFkZXIsIGZyYWdtZW50U2hhZGVyKTsKK30KKyNlbmRpZgorCiBib29s
IENTU1N0eWxlU2VsZWN0b3I6OmNyZWF0ZUZpbHRlck9wZXJhdGlvbnMoQ1NTVmFsdWUqIGluVmFs
dWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSwgRmlsdGVyT3Bl
cmF0aW9ucyYgb3V0T3BlcmF0aW9ucykKIHsKICAgICBpZiAoIWluVmFsdWUgfHwgIWluVmFsdWUt
PmlzVmFsdWVMaXN0KCkpIHsKQEAgLTU0MzIsOCArNTUxOSw5IEBAIGJvb2wgQ1NTU3R5bGVTZWxl
Y3Rvcjo6Y3JlYXRlRmlsdGVyT3BlcmF0aW9ucyhDU1NWYWx1ZSogaW5WYWx1ZSwgUmVuZGVyU3R5
bGUqIHN0CiAKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCiAgICAgICAgIGlmIChvcGVyYXRpb25U
eXBlID09IEZpbHRlck9wZXJhdGlvbjo6Q1VTVE9NKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTog
SW1wbGVtZW50IHRoZSBmaWx0ZXIgb3BlcmF0aW9uIGZvciB0aGUgY3VzdG9tIHNoYWRlci4KLSAg
ICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTQ0
NgorICAgICAgICAgICAgUmVmUHRyPEN1c3RvbUZpbHRlck9wZXJhdGlvbj4gb3BlcmF0aW9uID0g
Y3JlYXRlQ3VzdG9tRmlsdGVyT3BlcmF0aW9uKGZpbHRlclZhbHVlKTsKKyAgICAgICAgICAgIGlm
IChvcGVyYXRpb24pCisgICAgICAgICAgICAgICAgb3BlcmF0aW9ucy5vcGVyYXRpb25zKCkuYXBw
ZW5kKG9wZXJhdGlvbik7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuaAppbmRleCAxNTNlZjg2NTRiN2M5Njhh
NGM1MGIxYjRjZjVlNTJkN2E5YTU2MmY3Li45NzlmYzk5M2Y5OWJmN2U4YmU4N2Y0MjdhMTlmMTE3
ODU5Y2FlNDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmgKQEAgLTUzLDYg
KzUzLDcgQEAgY2xhc3MgQ1NTU3R5bGVSdWxlOwogY2xhc3MgQ1NTU3R5bGVTaGVldDsKIGNsYXNz
IENTU1ZhbHVlOwogY2xhc3MgQ29udGFpbmVyTm9kZTsKK2NsYXNzIEN1c3RvbUZpbHRlck9wZXJh
dGlvbjsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1lOwpAQCAt
NjYsMTEgKzY3LDE0IEBAIGNsYXNzIFJ1bGVEYXRhOwogY2xhc3MgUnVsZVNldDsKIGNsYXNzIFNl
dHRpbmdzOwogY2xhc3MgU3R5bGVJbWFnZTsKK2NsYXNzIFN0eWxlU2hhZGVyOwogY2xhc3MgU3R5
bGVTaGVldDsKIGNsYXNzIFN0eWxlU2hlZXRMaXN0OwogY2xhc3MgU3R5bGVkRWxlbWVudDsKIGNs
YXNzIFdlYktpdENTU0tleWZyYW1lUnVsZTsKIGNsYXNzIFdlYktpdENTU0tleWZyYW1lc1J1bGU7
CitjbGFzcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZTsKK2NsYXNzIFdlYktpdENTU1NoYWRlclZhbHVl
OwogCiBjbGFzcyBNZWRpYVF1ZXJ5UmVzdWx0IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShN
ZWRpYVF1ZXJ5UmVzdWx0KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC0yMDYsNyArMjEw
LDEzIEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShDU1NfRklMVEVSUykKICAgICBib29sIGNyZWF0
ZUZpbHRlck9wZXJhdGlvbnMoQ1NTVmFsdWUqIGluVmFsdWUsIFJlbmRlclN0eWxlKiBpblN0eWxl
LCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBGaWx0ZXJPcGVyYXRpb25zJiBvdXRPcGVyYXRpb25z
KTsKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgU3R5bGVTaGFkZXIqIHN0eWxlU2hhZGVy
KENTU1ZhbHVlKik7CisgICAgU3R5bGVTaGFkZXIqIGNhY2hlZE9yUGVuZGluZ1N0eWxlU2hhZGVy
RnJvbVZhbHVlKFdlYktpdENTU1NoYWRlclZhbHVlKik7CisgICAgUGFzc1JlZlB0cjxDdXN0b21G
aWx0ZXJPcGVyYXRpb24+IGNyZWF0ZUN1c3RvbUZpbHRlck9wZXJhdGlvbihXZWJLaXRDU1NGaWx0
ZXJWYWx1ZSopOworICAgIHZvaWQgbG9hZFBlbmRpbmdTaGFkZXJzKCk7CiAjZW5kaWYKKyNlbmRp
ZiAvLyBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAKICAgICBzdHJ1Y3QgRmVhdHVyZXMgewogICAgICAg
ICBGZWF0dXJlcygpOwpAQCAtMzg5LDYgKzM5OSwxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9h
cHBseVByb3BlcnR5VG9SZWd1bGFyU3R5bGU7CiAgICAgYm9vbCBtX2FwcGx5UHJvcGVydHlUb1Zp
c2l0ZWRMaW5rU3R5bGU7CiAgICAgY29uc3QgQ1NTU3R5bGVBcHBseVByb3BlcnR5JiBtX2FwcGx5
UHJvcGVydHk7CisgICAgCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorICAgIGJvb2wgbV9oYXNQ
ZW5kaW5nU2hhZGVyczsKKyNlbmRpZgogCiAgICAgZnJpZW5kIGNsYXNzIENTU1N0eWxlQXBwbHlQ
cm9wZXJ0eTsKICAgICBmcmllbmQgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE1hdGNoZWRTdHlsZURl
Y2xhcmF0aW9uJiwgY29uc3QgTWF0Y2hlZFN0eWxlRGVjbGFyYXRpb24mKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUxY2Y4YTMwZmQw
MTUzODE4NTQwZDViYzVhMGFiNDEzMzlmMDUxNzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwCkBAIC0wLDAgKzEsNzggQEAKKy8q
CisgKiBDb3B5cmlnaHQgMjAxMSBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAg
ICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMK
KyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisg
KiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5B
QkxFKENTU19TSEFERVJTKQorI2luY2x1ZGUgIldlYktpdENTU1NoYWRlclZhbHVlLmgiCisKKyNp
bmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisj
aW5jbHVkZSAiU3R5bGVDYWNoZWRTaGFkZXIuaCIKKyNpbmNsdWRlICJTdHlsZVBlbmRpbmdTaGFk
ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXZWJLaXRDU1NTaGFkZXJWYWx1ZTo6V2Vi
S2l0Q1NTU2hhZGVyVmFsdWUoY29uc3QgU3RyaW5nJiB1cmwpCisgICAgOiBDU1NQcmltaXRpdmVW
YWx1ZShXZWJLaXRDU1NTaGFkZXJDbGFzcywgdXJsLCBDU1NfVVJJKQorICAgICwgbV9hY2Nlc3Nl
ZFNoYWRlcihmYWxzZSkKK3sKK30KKworV2ViS2l0Q1NTU2hhZGVyVmFsdWU6On5XZWJLaXRDU1NT
aGFkZXJWYWx1ZSgpCit7Cit9CisKK1N0eWxlQ2FjaGVkU2hhZGVyKiBXZWJLaXRDU1NTaGFkZXJW
YWx1ZTo6Y2FjaGVkU2hhZGVyKENhY2hlZFJlc291cmNlTG9hZGVyKiBsb2FkZXIpCit7CisgICAg
QVNTRVJUKGxvYWRlcik7CisKKyAgICBpZiAoIW1fYWNjZXNzZWRTaGFkZXIpIHsKKyAgICAgICAg
bV9hY2Nlc3NlZFNoYWRlciA9IHRydWU7CisKKyAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVl
c3QobG9hZGVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVSTChnZXRTdHJpbmdWYWx1ZSgpKSk7Cisg
ICAgICAgIGlmIChDYWNoZWRTaGFkZXIqIGNhY2hlZFNoYWRlciA9IGxvYWRlci0+cmVxdWVzdFNo
YWRlcihyZXF1ZXN0KSkKKyAgICAgICAgICAgIG1fc2hhZGVyID0gU3R5bGVDYWNoZWRTaGFkZXI6
OmNyZWF0ZShjYWNoZWRTaGFkZXIpOworICAgIH0KKworICAgIHJldHVybiAobV9zaGFkZXIgJiYg
bV9zaGFkZXItPmlzQ2FjaGVkU2hhZGVyKCkpID8gc3RhdGljX2Nhc3Q8U3R5bGVDYWNoZWRTaGFk
ZXIqPihtX3NoYWRlci5nZXQoKSkgOiAwOworfQorCitTdHlsZVNoYWRlciogV2ViS2l0Q1NTU2hh
ZGVyVmFsdWU6OmNhY2hlZE9yUGVuZGluZ1NoYWRlcigpCit7CisgICAgaWYgKCFtX3NoYWRlcikK
KyAgICAgICAgbV9zaGFkZXIgPSBTdHlsZVBlbmRpbmdTaGFkZXI6OmNyZWF0ZSh0aGlzKTsKKwor
ICAgIHJldHVybiBtX3NoYWRlci5nZXQoKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NIQURFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJL
aXRDU1NTaGFkZXJWYWx1ZS5oCmluZGV4IDU1ZmE2NWMxMjUxYjg2ZWMzNWIzZDQ5YWEyNGUwMmRi
NWViOTBiYjQuLjgyNTQ4MmRiMzdjNWU2MmJjZjQ3N2EyZGUzMWFiMTVkN2Q5NGExYjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NTaGFkZXJWYWx1ZS5oCkBAIC0zMiwxOSArMzIsMjgg
QEAKIAogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKIAorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNl
SGFuZGxlLmgiCiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitjbGFzcyBDYWNoZWRSZXNvdXJjZUxvYWRlcjsKK2NsYXNzIFN0eWxlQ2FjaGVk
U2hhZGVyOworY2xhc3MgU3R5bGVTaGFkZXI7CisKIGNsYXNzIFdlYktpdENTU1NoYWRlclZhbHVl
IDogcHVibGljIENTU1ByaW1pdGl2ZVZhbHVlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxXZWJLaXRDU1NTaGFkZXJWYWx1ZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYgdXJsKSB7IHJl
dHVybiBhZG9wdFJlZihuZXcgV2ViS2l0Q1NTU2hhZGVyVmFsdWUodXJsKSk7IH0KKyAgICB+V2Vi
S2l0Q1NTU2hhZGVyVmFsdWUoKTsKIAorICAgIFN0eWxlQ2FjaGVkU2hhZGVyKiBjYWNoZWRTaGFk
ZXIoQ2FjaGVkUmVzb3VyY2VMb2FkZXIqKTsKKyAgICBTdHlsZVNoYWRlciogY2FjaGVkT3JQZW5k
aW5nU2hhZGVyKCk7CisgICAgCiBwcml2YXRlOgotICAgIFdlYktpdENTU1NoYWRlclZhbHVlKGNv
bnN0IFN0cmluZyYgdXJsKQotICAgICAgICA6IENTU1ByaW1pdGl2ZVZhbHVlKFdlYktpdENTU1No
YWRlckNsYXNzLCB1cmwsIENTU19VUkkpCi0gICAgewotICAgIH0KKyAgICBXZWJLaXRDU1NTaGFk
ZXJWYWx1ZShjb25zdCBTdHJpbmcmIHVybCk7CisgICAgCisgICAgUmVmUHRyPFN0eWxlU2hhZGVy
PiBtX3NoYWRlcjsKKyAgICBib29sIG1fYWNjZXNzZWRTaGFkZXI7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlLmNwcAppbmRleCA2Y2NhNDFlZDEzOWU1ZTYwZGNhZDc2YzQ5MTBkYmVlMzc5ZmY0N2MwLi5l
MWQxZGVjZGEwMjYwYzIzMGJjMWUzZTIxMTRmMjQyYWQ3MmIxMGZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTc3LDYgKzc3LDEwIEBA
IHN0YXRpYyBSZXNvdXJjZUxvYWRQcmlvcml0eSBkZWZhdWx0UHJpb3JpdHlGb3JSZXNvdXJjZVR5
cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUKICAgICAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VGV4
dFRyYWNrUmVzb3VyY2U6CiAgICAgICAgICAgICByZXR1cm4gUmVzb3VyY2VMb2FkUHJpb3JpdHlM
b3c7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgICAgIGNhc2UgQ2FjaGVk
UmVzb3VyY2U6OlNoYWRlclJlc291cmNlOgorICAgICAgICAgICAgcmV0dXJuIFJlc291cmNlTG9h
ZFByaW9yaXR5TWVkaXVtOworI2VuZGlmCiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIHJldHVybiBSZXNvdXJjZUxvYWRQcmlvcml0eUxvdzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgKaW5kZXggYmEzMzlmODcyNTkzYjM5ZGFkOTU5
YTkwODk0ODdjZmMxMzUwNGEzMy4uZWFjMjYyMTAxOTVjM2RmNzJkOTFiOGNhNzIzYWYzMTEzNTJh
MDM3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmgK
QEAgLTc2LDYgKzc2LDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICAg
ICAgLCBUZXh0VHJhY2tSZXNvdXJjZQogI2VuZGlmCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQor
ICAgICAgICAsIFNoYWRlclJlc291cmNlCisjZW5kaWYKICAgICB9OwogCiAgICAgZW51bSBTdGF0
dXMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZUxvYWRlci5jcHAKaW5kZXggM2NhOTJkYmU4NDcyZTZmNDFhMjBhMDYxZDA5ZDkyNmI0MDBhYWYw
OS4uNzFkMmY2YmVkYjQ3OGJkNzJjOWZiZWRmODY3OTZkZjRlZWE1NDUwZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCkBA
IC01NSw2ICs1NSwxMCBAQAogI2luY2x1ZGUgIkNhY2hlZFRleHRUcmFjay5oIgogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisjaW5jbHVkZSAiQ2FjaGVkU2hhZGVyLmgiCisjZW5k
aWYKKwogI2RlZmluZSBQUkVMT0FEX0RFQlVHIDAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
ODgsNiArOTIsMTAgQEAgc3RhdGljIENhY2hlZFJlc291cmNlKiBjcmVhdGVSZXNvdXJjZShDYWNo
ZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlc3QKICAgICBjYXNlIENhY2hlZFJl
c291cmNlOjpUZXh0VHJhY2tSZXNvdXJjZToKICAgICAgICAgcmV0dXJuIG5ldyBDYWNoZWRUZXh0
VHJhY2socmVxdWVzdCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgY2Fz
ZSBDYWNoZWRSZXNvdXJjZTo6U2hhZGVyUmVzb3VyY2U6CisgICAgICAgIHJldHVybiBuZXcgQ2Fj
aGVkU2hhZGVyKHJlcXVlc3QpOworI2VuZGlmCiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgIHJldHVybiAwOwpAQCAtMTY3LDYgKzE3NSwxMyBAQCBDYWNoZWRUZXh0VHJhY2sq
IENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0VGV4dFRyYWNrKFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdAogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCitDYWNoZWRTaGFk
ZXIqIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0U2hhZGVyKFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q2FjaGVkU2hhZGVyKj4ocmVxdWVz
dFJlc291cmNlKENhY2hlZFJlc291cmNlOjpTaGFkZXJSZXNvdXJjZSwgcmVxdWVzdCwgU3RyaW5n
KCksIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSkpOworfQorI2VuZGlmCisKIENhY2hl
ZENTU1N0eWxlU2hlZXQqIENhY2hlZFJlc291cmNlTG9hZGVyOjpyZXF1ZXN0Q1NTU3R5bGVTaGVl
dChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0cmluZyYgY2hhcnNldCwgUmVzb3Vy
Y2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PENhY2hl
ZENTU1N0eWxlU2hlZXQqPihyZXF1ZXN0UmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxl
U2hlZXQsIHJlcXVlc3QsIGNoYXJzZXQsIGRlZmF1bHRDYWNoZWRSZXNvdXJjZU9wdGlvbnMoKSwg
cHJpb3JpdHkpKTsKQEAgLTI0MSw2ICsyNTYsOSBAQCBib29sIENhY2hlZFJlc291cmNlTG9hZGVy
OjpjaGVja0luc2VjdXJlQ29udGVudChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdAog
I2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUZXh0VHJh
Y2tSZXNvdXJjZToKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyAgICBjYXNlIENh
Y2hlZFJlc291cmNlOjpTaGFkZXJSZXNvdXJjZToKKyNlbmRpZgogICAgIGNhc2UgQ2FjaGVkUmVz
b3VyY2U6OkltYWdlUmVzb3VyY2U6CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291
cmNlOiB7CiAgICAgICAgIC8vIFRoZXNlIHJlc291cmNlcyBjYW4gY29ycnVwdCBvbmx5IHRoZSBm
cmFtZSdzIHBpeGVscy4KQEAgLTI4OSw2ICszMDcsOSBAQCBib29sIENhY2hlZFJlc291cmNlTG9h
ZGVyOjpjYW5SZXF1ZXN0KENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IEtVUkwmIHVy
bAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUZXh0
VHJhY2tSZXNvdXJjZToKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyAgICBjYXNl
IENhY2hlZFJlc291cmNlOjpTaGFkZXJSZXNvdXJjZToKKyNlbmRpZgogICAgICAgICAvLyBUaGVz
ZSB0eXBlcyBvZiByZXNvdXJjZXMgY2FuIGJlIGxvYWRlZCBmcm9tIGFueSBvcmlnaW4uCiAgICAg
ICAgIC8vIEZJWE1FOiBBcmUgd2Ugc3VyZSBhYm91dCBDYWNoZWRSZXNvdXJjZTo6Rm9udFJlc291
cmNlPwogICAgICAgICBicmVhazsKQEAgLTMxOCw2ICszMzksMTAgQEAgYm9vbCBDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6Y2FuUmVxdWVzdChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBL
VVJMJiB1cmwKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBicmVhazsKKyNpZiBF
TkFCTEUoQ1NTX1NIQURFUlMpCisgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6U2hhZGVyUmVzb3Vy
Y2U6CisgICAgICAgIC8vIFNpbmNlIHNoYWRlcnMgYXJlIHJlZmVyZW5jZWQgZnJvbSBDU1MgU3R5
bGVzIHVzZSB0aGUgc2FtZSBydWxlcyBoZXJlLgorI2VuZGlmCiAgICAgY2FzZSBDYWNoZWRSZXNv
dXJjZTo6Q1NTU3R5bGVTaGVldDoKICAgICAgICAgaWYgKCFtX2RvY3VtZW50LT5jb250ZW50U2Vj
dXJpdHlQb2xpY3koKS0+YWxsb3dTdHlsZUZyb21Tb3VyY2UodXJsKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmgKaW5kZXggMzU2YmIwYzQ3ZDc0ZWRkNzcyMGJlOTNmNzMyM2QxYTA1YzRl
MmUzZS4uODZkY2EwZTFlYjcxOGZiZWUyYTdjYTE1NjQwM2ZjODhiNTAyOTU3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9hZGVyLmgKQEAg
LTQ0LDYgKzQ0LDcgQEAgY2xhc3MgQ2FjaGVkRm9udDsKIGNsYXNzIENhY2hlZEltYWdlOwogY2xh
c3MgQ2FjaGVkUmF3UmVzb3VyY2U7CiBjbGFzcyBDYWNoZWRTY3JpcHQ7CitjbGFzcyBDYWNoZWRT
aGFkZXI7CiBjbGFzcyBDYWNoZWRUZXh0VHJhY2s7CiBjbGFzcyBDYWNoZWRYU0xTdHlsZVNoZWV0
OwogY2xhc3MgRG9jdW1lbnQ7CkBAIC03Nyw2ICs3OCw5IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCiAgICAgQ2FjaGVkVGV4dFRyYWNrKiByZXF1ZXN0VGV4dFRyYWNrKFJlc291
cmNlUmVxdWVzdCYpOwogI2VuZGlmCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorICAgIENhY2hl
ZFNoYWRlciogcmVxdWVzdFNoYWRlcihSZXNvdXJjZVJlcXVlc3QmKTsKKyNlbmRpZgogCiAgICAg
Ly8gTG9ncyBhbiBhY2Nlc3MgZGVuaWVkIG1lc3NhZ2UgdG8gdGhlIGNvbnNvbGUgZm9yIHRoZSBz
cGVjaWZpZWQgVVJMLgogICAgIHZvaWQgcHJpbnRBY2Nlc3NEZW5pZWRNZXNzYWdlKGNvbnN0IEtV
UkwmIHVybCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU2hhZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTaGFk
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjFkOGY1NDA0NTdhMjIyN2Q1YjVhMmM1OWMzYmI5YzFmMTQzYjFj
NzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
U2hhZGVyLmNwcApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IDIwMTEgQWRvYmUg
U3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKworI2luY2x1
ZGUgIkNhY2hlZFNoYWRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0NhY2hlZFNoYWRl
cjo6Q2FjaGVkU2hhZGVyKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQor
ICAgIDogQ2FjaGVkUmVzb3VyY2UocmVzb3VyY2VSZXF1ZXN0LCBTaGFkZXJSZXNvdXJjZSkKK3sK
K30KKworQ2FjaGVkU2hhZGVyOjp+Q2FjaGVkU2hhZGVyKCkKK3sKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19TSEFERVJTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNoYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhkZWFkMDFlYTk4M2Jk
MTBmOTk1NThmYjY5N2Y1NTI1MTJmZWViNzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU2hhZGVyLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAq
IENvcHlyaWdodCAyMDExIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRp
c2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICog
ICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisg
KiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENhY2hlZFNoYWRlcl9oCisjZGVmaW5lIENh
Y2hlZFNoYWRlcl9oCisKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisKKyNpbmNsdWRlICJDYWNo
ZWRSZXNvdXJjZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENhY2hlZFNoYWRl
ciA6IHB1YmxpYyBDYWNoZWRSZXNvdXJjZSB7CitwdWJsaWM6CisgICAgQ2FjaGVkU2hhZGVyKGNv
bnN0IFJlc291cmNlUmVxdWVzdCYpOworICAgIHZpcnR1YWwgfkNhY2hlZFNoYWRlcigpOworfTsK
KworfQorCisjZW5kaWYgLy8gRU5BQkxFKENTU19TSEFERVJTKQorCisjZW5kaWYgLy8gQ2FjaGVk
U2hhZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVmMzFh
M2JhZWVjZDQwNWRiNTA4YWViMGNjZWZjZTcxODUzMmQ3YTMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck9wZXJh
dGlvbi5oCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgMjAxMSBBZG9iZSBTeXN0
ZW1zIEluY29ycG9yYXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBDdXN0b21GaWx0ZXJPcGVyYXRpb25faAorI2RlZmluZSBDdXN0b21GaWx0ZXJPcGVyYXRp
b25faAorCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorCisjaW5jbHVkZSAiRmlsdGVyT3BlcmF0
aW9uLmgiCisjaW5jbHVkZSAiU3R5bGVTaGFkZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CisvLyBDU1MgU2hhZGVycworCitjbGFzcyBDdXN0b21GaWx0ZXJPcGVyYXRpb246IHB1YmxpYyBG
aWx0ZXJPcGVyYXRpb24geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEN1c3RvbUZp
bHRlck9wZXJhdGlvbj4gY3JlYXRlKFBhc3NSZWZQdHI8U3R5bGVTaGFkZXI+IHZlcnRleFNoYWRl
ciwgUGFzc1JlZlB0cjxTdHlsZVNoYWRlcj4gZnJhZ21lbnRTaGFkZXIpCisgICAgeworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEN1c3RvbUZpbHRlck9wZXJhdGlvbih2ZXJ0ZXhTaGFkZXIs
IGZyYWdtZW50U2hhZGVyKSk7CisgICAgfQorICAgIAorICAgIHZvaWQgc2V0VmVydGV4U2hhZGVy
KFBhc3NSZWZQdHI8U3R5bGVTaGFkZXI+IHNoYWRlcikgeyBtX3ZlcnRleFNoYWRlciA9IHNoYWRl
cjsgfQorICAgIFN0eWxlU2hhZGVyKiB2ZXJ0ZXhTaGFkZXIoKSBjb25zdCB7IHJldHVybiBtX3Zl
cnRleFNoYWRlci5nZXQoKTsgfQorICAgIAorICAgIHZvaWQgc2V0RnJhZ21lbnRTaGFkZXIoUGFz
c1JlZlB0cjxTdHlsZVNoYWRlcj4gc2hhZGVyKSB7IG1fZnJhZ21lbnRTaGFkZXIgPSBzaGFkZXI7
IH0KKyAgICBTdHlsZVNoYWRlciogZnJhZ21lbnRTaGFkZXIoKSBjb25zdCB7IHJldHVybiBtX2Zy
YWdtZW50U2hhZGVyLmdldCgpOyB9CisgICAgCitwcml2YXRlOgorICAgIHZpcnR1YWwgYm9vbCBv
cGVyYXRvcj09KGNvbnN0IEZpbHRlck9wZXJhdGlvbiYgbykgY29uc3QKKyAgICB7CisgICAgICAg
IGlmICghaXNTYW1lVHlwZShvKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAg
ICBjb25zdCBDdXN0b21GaWx0ZXJPcGVyYXRpb24qIG90aGVyID0gc3RhdGljX2Nhc3Q8Y29uc3Qg
Q3VzdG9tRmlsdGVyT3BlcmF0aW9uKj4oJm8pOworICAgICAgICByZXR1cm4gbV92ZXJ0ZXhTaGFk
ZXIuZ2V0KCkgPT0gb3RoZXItPm1fdmVydGV4U2hhZGVyLmdldCgpCisgICAgICAgICAgICAmJiBt
X2ZyYWdtZW50U2hhZGVyLmdldCgpID09IG90aGVyLT5tX2ZyYWdtZW50U2hhZGVyLmdldCgpOwor
ICAgIH0KKyAgICAKKyAgICBDdXN0b21GaWx0ZXJPcGVyYXRpb24oUGFzc1JlZlB0cjxTdHlsZVNo
YWRlcj4gdmVydGV4U2hhZGVyLCBQYXNzUmVmUHRyPFN0eWxlU2hhZGVyPiBmcmFnbWVudFNoYWRl
cikKKyAgICAgICAgOiBGaWx0ZXJPcGVyYXRpb24oQ1VTVE9NKQorICAgICAgICAsIG1fdmVydGV4
U2hhZGVyKHZlcnRleFNoYWRlcikKKyAgICAgICAgLCBtX2ZyYWdtZW50U2hhZGVyKGZyYWdtZW50
U2hhZGVyKQorICAgIHsKKyAgICB9CisKKyAgICBSZWZQdHI8U3R5bGVTaGFkZXI+IG1fdmVydGV4
U2hhZGVyOworICAgIFJlZlB0cjxTdHlsZVNoYWRlcj4gbV9mcmFnbWVudFNoYWRlcjsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDU1NfU0hBREVSUykK
KworI2VuZGlmIC8vIEN1c3RvbUZpbHRlck9wZXJhdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IGQ4YjJhNTA2NzUyOWI0NzRmNWQzMWRj
M2UzMjdmOTc1YWVkZmU2ZjkuLjlhMDkxNTQ4MTUyYTAxNGQwMDQ2Mzg2ZTNiYTMwOGQyYWQwZDNi
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBA
IC04NTYsNiArODU2LDcgQEAgcHVibGljOgogICAgIEVTcGVhayBzcGVhaygpIHsgcmV0dXJuIHN0
YXRpY19jYXN0PEVTcGVhaz4ocmFyZUluaGVyaXRlZERhdGEtPnNwZWFrKTsgfQogCiAjaWYgRU5B
QkxFKENTU19GSUxURVJTKQorICAgIEZpbHRlck9wZXJhdGlvbnMmIGZpbHRlcigpIHsgcmV0dXJu
IHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2ZpbHRlci5hY2Nlc3MoKS0+bV9vcGVy
YXRpb25zOyB9CiAgICAgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZmlsdGVyKCkgY29uc3QgeyBy
ZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZmlsdGVyLT5tX29wZXJhdGlvbnM7IH0KICAg
ICBib29sIGhhc0ZpbHRlcigpIGNvbnN0IHsgcmV0dXJuICFyYXJlTm9uSW5oZXJpdGVkRGF0YS0+
bV9maWx0ZXItPm1fb3BlcmF0aW9ucy5vcGVyYXRpb25zKCkuaXNFbXB0eSgpOyB9CiAjZWxzZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkU2hh
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZFNoYWRl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTJmZDJlZjY0YmNlYWY0ZmQ4OGY5YThkYWI1NjNlOGQ4YTEzMDJm
NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZUNhY2hlZFNoYWRlci5jcHAKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAyMDEx
IEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisg
KiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisK
KyNpbmNsdWRlICJTdHlsZUNhY2hlZFNoYWRlci5oIgorCisjaW5jbHVkZSAiQ1NTUHJpbWl0aXZl
VmFsdWUuaCIKKyNpbmNsdWRlICJDYWNoZWRTaGFkZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCisKK1N0eWxlQ2FjaGVkU2hhZGVyOjpTdHlsZUNhY2hlZFNoYWRlcihDYWNoZWRTaGFkZXIq
IHNoYWRlcikKKyAgICA6IG1fc2hhZGVyKHNoYWRlcikKK3sKKyAgICAgbV9pc0NhY2hlZFNoYWRl
ciA9IHRydWU7Cit9CisKK1Bhc3NSZWZQdHI8Q1NTVmFsdWU+IFN0eWxlQ2FjaGVkU2hhZGVyOjpj
c3NWYWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUo
bV9zaGFkZXItPnVybCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VSSSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShDU1NfU0hBREVSUykKKwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkU2hhZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRTaGFkZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44OGJmYzgxZTQ1NzRhMDcxMGFiOGU1ZjljNmQxOWYyNGUxMjA0N2I2Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVk
U2hhZGVyLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAyMDExIEFkb2JlIFN5
c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFN0eWxlQ2FjaGVkU2hhZGVyX2gKKyNkZWZpbmUgU3R5bGVDYWNoZWRTaGFkZXJfaAor
CisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorCisjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5k
bGUuaCIKKyNpbmNsdWRlICJTdHlsZVNoYWRlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIENhY2hlZFNoYWRlcjsKKworY2xhc3MgU3R5bGVDYWNoZWRTaGFkZXIgOiBwdWJsaWMg
U3R5bGVTaGFkZXIgeworcHVibGljOgorICAgIC8vIEZJWE1FOiBLZWVwIGEgcmVmZXJlbmNlIHRv
IHRoZSBhY3R1YWwgQ2FjaGVkU2hhZGVyIGluIHRoaXMgY2xhc3MuCisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8U3R5bGVDYWNoZWRTaGFkZXI+IGNyZWF0ZShDYWNoZWRTaGFkZXIqIHNoYWRlcikgeyBy
ZXR1cm4gYWRvcHRSZWYobmV3IFN0eWxlQ2FjaGVkU2hhZGVyKHNoYWRlcikpOyB9CisgICAgCisg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBjc3NWYWx1ZSgpIGNvbnN0OworICAgIAor
cHJpdmF0ZToKKyAgICBTdHlsZUNhY2hlZFNoYWRlcihDYWNoZWRTaGFkZXIqKTsKKyAgICAKKyAg
ICBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTaGFkZXI+IG1fc2hhZGVyOworfTsKKworfQor
I2VuZGlmIC8vIEVOQUJMRShDU1NfU0hBREVSUykKKworI2VuZGlmIC8vIFN0eWxlQ2FjaGVkU2hh
ZGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVBl
bmRpbmdTaGFkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVBlbmRp
bmdTaGFkZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMDQ2YzgyYTEyZDA0NzY4MTI0ZDAzZmNmMDllYjg0ODAw
NDU0YzY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUGVuZGluZ1NoYWRlci5oCkBAIC0wLDAgKzEsNjMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
MjAxMSBBZG9iZSBTeXN0ZW1zIEluY29ycG9yYXRlZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlCisgKiAgICBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZworICogICAgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMKKyAqICAgIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIOKAnEFTIElT4oCdIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgKiBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SCisgKiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YKKyAqIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRgorICogU1VDSCBEQU1B
R0UuCisgKi8KKworI2lmbmRlZiBTdHlsZVBlbmRpbmdTaGFkZXJfaAorI2RlZmluZSBTdHlsZVBl
bmRpbmdTaGFkZXJfaAorCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorCisjaW5jbHVkZSAiQ1NT
VmFsdWUuaCIKKyNpbmNsdWRlICJTdHlsZVNoYWRlci5oIgorI2luY2x1ZGUgIldlYktpdENTU1No
YWRlclZhbHVlLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBXZWJLaXRDU1NTaGFkZXJWYWx1ZTsKKworY2xhc3MgU3R5bGVQZW5k
aW5nU2hhZGVyIDogcHVibGljIFN0eWxlU2hhZGVyIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTdHlsZVBlbmRpbmdTaGFkZXI+IGNyZWF0ZShXZWJLaXRDU1NTaGFkZXJWYWx1ZSog
dmFsdWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHlsZVBlbmRpbmdTaGFkZXIodmFsdWUpKTsg
fQorICAgIAorICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gY3NzVmFsdWUoKSBjb25z
dCB7IHJldHVybiBtX3ZhbHVlOyB9CisgICAgV2ViS2l0Q1NTU2hhZGVyVmFsdWUqIGNzc1NoYWRl
clZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQorcHJpdmF0ZToKKyAgICBTdHlsZVBl
bmRpbmdTaGFkZXIoV2ViS2l0Q1NTU2hhZGVyVmFsdWUqIHZhbHVlKQorICAgICAgICA6IG1fdmFs
dWUodmFsdWUpCisgICAgeworICAgICAgICAgbV9pc1BlbmRpbmdTaGFkZXIgPSB0cnVlOworICAg
IH0KKyAgICAKKyAgICBXZWJLaXRDU1NTaGFkZXJWYWx1ZSogbV92YWx1ZTsgLy8gTm90IHJldGFp
bmVkOyBpdCBvd25zIHVzLgorfTsKKworfQorI2VuZGlmIC8vIEVOQUJMRShDU1NfU0hBREVSUykK
KworI2VuZGlmIC8vIFN0eWxlUGVuZGluZ1NoYWRlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVTaGFkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVNoYWRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliMzY2NzdlZjFmMmNlOWYxNWJk
NWVhNjYxYTgyMWI3OGE4MWJhN2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVTaGFkZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29w
eXJpZ2h0IDIwMTEgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZQor
ICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZworICogICAgZGlzY2xh
aW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzCisgKiAgICBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KAnSBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICogT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisgKiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YKKyAqIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3R5bGVTaGFkZXJfaAorI2RlZmluZSBTdHlsZVNo
YWRlcl9oCisKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIENTU1ZhbHVlOworICAgIAor
Y2xhc3MgU3R5bGVTaGFkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxTdHlsZVNoYWRlcj4geworcHVi
bGljOgorICAgIHZpcnR1YWwgflN0eWxlU2hhZGVyKCkgeyB9CisKKyAgICBBTFdBWVNfSU5MSU5F
IGJvb2wgaXNDYWNoZWRTaGFkZXIoKSBjb25zdCB7IHJldHVybiBtX2lzQ2FjaGVkU2hhZGVyOyB9
CisgICAgQUxXQVlTX0lOTElORSBib29sIGlzUGVuZGluZ1NoYWRlcigpIGNvbnN0IHsgcmV0dXJu
IG1faXNQZW5kaW5nU2hhZGVyOyB9CisgICAgCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPENTU1Zh
bHVlPiBjc3NWYWx1ZSgpIGNvbnN0ID0gMDsKKyAgICAKK3Byb3RlY3RlZDoKKyAgICBTdHlsZVNo
YWRlcigpCisgICAgICAgIDogbV9pc0NhY2hlZFNoYWRlcihmYWxzZSkKKyAgICAgICAgLCBtX2lz
UGVuZGluZ1NoYWRlcihmYWxzZSkKKyAgICB7CisgICAgfQorICAgIGJvb2wgbV9pc0NhY2hlZFNo
YWRlciA6IDE7CisgICAgYm9vbCBtX2lzUGVuZGluZ1NoYWRlciA6IDE7Cit9OworCit9CisKKyNl
bmRpZiAvLyBFTkFCTEUoQ1NTX1NIQURFUlMpCisKKyNlbmRpZiAvLyBTdHlsZVNoYWRlcl9oCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggNWZkYTIyMDZlMDg1ZmUyZDM0NzlkYThkMTNmM2I2MzFkZjJkNGNkNC4uYmEwNzc1NmI5
YjdkZmU2NjRlOGNjYjUxZmIyYmEwMmE4MDUwZTg5OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDExLTExLTE1ICBBbGV4YW5kcnUgQ2hpY3VsaXRhICA8YWNoaWN1QGFkb2JlLmNvbT4KKworICAg
ICAgICBbQ1NTU2hhZGVyc10gSW1wbGVtZW50IHRoZSBzdHlsZSBjYWNoZWQgcmVzb3VyY2VzIGFu
ZCBjb21wdXRlZCBzdHlsZSBmb3IgdGhlIHNoYWRlciB1cmxzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjM3OAorCisgICAgICAgIFJldmlld2VkIGJ5
IERlYW4gSmFja3Nvbi4KKworICAgICAgICAqIGNzczMvZmlsdGVycy9jdXN0b20tZmlsdGVyLXBy
b3BlcnR5LWNvbXB1dGVkLXN0eWxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogY3Nz
My9maWx0ZXJzL2N1c3RvbS1maWx0ZXItcHJvcGVydHktY29tcHV0ZWQtc3R5bGUuaHRtbDogQWRk
ZWQuCisgICAgICAgICogY3NzMy9maWx0ZXJzL3NjcmlwdC10ZXN0cy9jdXN0b20tZmlsdGVyLXBy
b3BlcnR5LWNvbXB1dGVkLXN0eWxlLmpzOiBBZGRlZC4KKyAgICAgICAgKGpzV3JhcHBlckNsYXNz
KToKKyAgICAgICAgKGV4cHJlc3Npb24pOgorICAgICAgICAoZGVzY3JpcHRpb24pOgorCiAyMDEx
LTExLTE1ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W2Nocm9taXVtXSBSZW1vdmUgZXhwZWN0ZWQgUEFTUyBleHBlY3RhdGlvbnMgZm9yIGNvbXBvc2l0
aW5nIHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9maWx0ZXJzL2N1c3RvbS1m
aWx0ZXItcHJvcGVydHktY29tcHV0ZWQtc3R5bGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
Y3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItcHJvcGVydHktY29tcHV0ZWQtc3R5bGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhiNTA0YmU5M2Q1NWQzYWI5NDJhOTVkOWYyMDI3ZjA2YWY1ODkz
OTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZpbHRlcnMvY3VzdG9tLWZp
bHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0OSBA
QAorVGVzdHMgdGhlIGNvbXB1dGVkIHN0eWxlIG9mIHRoZSBjdXN0b20oKSBmdW5jdGlvbiBvZiB0
aGUgLXdlYmtpdC1maWx0ZXIgcHJvcGVydHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCisKK0N1c3RvbSB3aXRoIHZlcnRleCBzaGFkZXIgOiBjdXN0b20odXJsKHZlcnRleC5zaGFk
ZXIpKQorUEFTUyByZW1vdmVCYXNlVVJMKGZpbHRlclN0eWxlLmdldFByb3BlcnR5VmFsdWUoJy13
ZWJraXQtZmlsdGVyJykpIGlzICdjdXN0b20odXJsKHZlcnRleC5zaGFkZXIpKScKK1BBU1MganNX
cmFwcGVyQ2xhc3MoZmlsdGVyUnVsZSkgaXMgJ0NTU1ZhbHVlTGlzdCcKK1BBU1MganNXcmFwcGVy
Q2xhc3MoZmlsdGVyUnVsZS5fX3Byb3RvX18pIGlzICdDU1NWYWx1ZUxpc3RQcm90b3R5cGUnCitQ
QVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1bGUuY29uc3RydWN0b3IpIGlzICdDU1NWYWx1ZUxp
c3RDb25zdHJ1Y3RvcicKK1BBU1MgZmlsdGVyUnVsZS5sZW5ndGggaXMgMQorUEFTUyBzdWJSdWxl
Lm9wZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00K
K1BBU1MgcmVtb3ZlQmFzZVVSTChzdWJSdWxlLmNzc1RleHQpIGlzICdjdXN0b20odXJsKHZlcnRl
eC5zaGFkZXIpKScKKworQ3VzdG9tIHdpdGggZnJhZ21lbnQgc2hhZGVyIDogY3VzdG9tKG5vbmUg
dXJsKGZyYWdtZW50LnNoYWRlcikpCitQQVNTIHJlbW92ZUJhc2VVUkwoZmlsdGVyU3R5bGUuZ2V0
UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSkgaXMgJ2N1c3RvbShub25lIHVybChmcmFn
bWVudC5zaGFkZXIpKScKK1BBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZSkgaXMgJ0NTU1Zh
bHVlTGlzdCcKK1BBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZS5fX3Byb3RvX18pIGlzICdD
U1NWYWx1ZUxpc3RQcm90b3R5cGUnCitQQVNTIGpzV3JhcHBlckNsYXNzKGZpbHRlclJ1bGUuY29u
c3RydWN0b3IpIGlzICdDU1NWYWx1ZUxpc3RDb25zdHJ1Y3RvcicKK1BBU1MgZmlsdGVyUnVsZS5s
ZW5ndGggaXMgMQorUEFTUyBzdWJSdWxlLm9wZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NTRmlsdGVy
VmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00KK1BBU1MgcmVtb3ZlQmFzZVVSTChzdWJSdWxlLmNzc1Rl
eHQpIGlzICdjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSknCisKK0N1c3RvbSB3aXRo
IGJvdGggc2hhZGVycyA6IGN1c3RvbSh1cmwodmVydGV4LnNoYWRlcikgdXJsKGZyYWdtZW50LnNo
YWRlcikpCitQQVNTIHJlbW92ZUJhc2VVUkwoZmlsdGVyU3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgn
LXdlYmtpdC1maWx0ZXInKSkgaXMgJ2N1c3RvbSh1cmwodmVydGV4LnNoYWRlcikgdXJsKGZyYWdt
ZW50LnNoYWRlcikpJworUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxlKSBpcyAnQ1NTVmFs
dWVMaXN0JworUEFTUyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxlLl9fcHJvdG9fXykgaXMgJ0NT
U1ZhbHVlTGlzdFByb3RvdHlwZScKK1BBU1MganNXcmFwcGVyQ2xhc3MoZmlsdGVyUnVsZS5jb25z
dHJ1Y3RvcikgaXMgJ0NTU1ZhbHVlTGlzdENvbnN0cnVjdG9yJworUEFTUyBmaWx0ZXJSdWxlLmxl
bmd0aCBpcyAxCitQQVNTIHN1YlJ1bGUub3BlcmF0aW9uVHlwZSBpcyBXZWJLaXRDU1NGaWx0ZXJW
YWx1ZS5DU1NfRklMVEVSX0NVU1RPTQorUEFTUyByZW1vdmVCYXNlVVJMKHN1YlJ1bGUuY3NzVGV4
dCkgaXMgJ2N1c3RvbSh1cmwodmVydGV4LnNoYWRlcikgdXJsKGZyYWdtZW50LnNoYWRlcikpJwor
CitNdWx0aXBsZSB3aXRoIGZyYWdtZW50IHNoYWRlciA6IGdyYXlzY2FsZSgpIGN1c3RvbShub25l
IHVybChmcmFnbWVudC5zaGFkZXIpKSBzZXBpYSgpCitQQVNTIHJlbW92ZUJhc2VVUkwoZmlsdGVy
U3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKSkgaXMgJ2dyYXlzY2FsZSgx
KSBjdXN0b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSkgc2VwaWEoMSknCitQQVNTIGpzV3Jh
cHBlckNsYXNzKGZpbHRlclJ1bGUpIGlzICdDU1NWYWx1ZUxpc3QnCitQQVNTIGpzV3JhcHBlckNs
YXNzKGZpbHRlclJ1bGUuX19wcm90b19fKSBpcyAnQ1NTVmFsdWVMaXN0UHJvdG90eXBlJworUEFT
UyBqc1dyYXBwZXJDbGFzcyhmaWx0ZXJSdWxlLmNvbnN0cnVjdG9yKSBpcyAnQ1NTVmFsdWVMaXN0
Q29uc3RydWN0b3InCitQQVNTIGZpbHRlclJ1bGUubGVuZ3RoIGlzIDMKK1BBU1Mgc3ViUnVsZS5v
cGVyYXRpb25UeXBlIGlzIFdlYktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfR1JBWVNDQUxF
CitQQVNTIHJlbW92ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAnZ3JheXNjYWxlKDEpJwor
UEFTUyBzdWJSdWxlLm9wZXJhdGlvblR5cGUgaXMgV2ViS2l0Q1NTRmlsdGVyVmFsdWUuQ1NTX0ZJ
TFRFUl9DVVNUT00KK1BBU1MgcmVtb3ZlQmFzZVVSTChzdWJSdWxlLmNzc1RleHQpIGlzICdjdXN0
b20obm9uZSB1cmwoZnJhZ21lbnQuc2hhZGVyKSknCitQQVNTIHN1YlJ1bGUub3BlcmF0aW9uVHlw
ZSBpcyBXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX1NFUElBCitQQVNTIHJlbW92ZUJh
c2VVUkwoc3ViUnVsZS5jc3NUZXh0KSBpcyAnc2VwaWEoMSknCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3NzMy9maWx0ZXJzL2N1c3RvbS1maWx0ZXItcHJvcGVydHktY29tcHV0ZWQtc3R5bGUuaHRtbCBi
L0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LWNvbXB1dGVk
LXN0eWxlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmY3YWM2YzI1MGNjZjczODBhZmI1YjY3ZDM4MWQyOTg4
MDU0MTcyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9jdXN0
b20tZmlsdGVyLXByb3BlcnR5LWNvbXB1dGVkLXN0eWxlLmh0bWwKQEAgLTAsMCArMSwxMyBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NzczMvZmlsdGVycy9zY3JpcHQtdGVzdHMvY3VzdG9tLWZpbHRlci1wcm9wZXJ0eS1jb21wdXRl
ZC1zdHlsZS5qcyBiL0xheW91dFRlc3RzL2NzczMvZmlsdGVycy9zY3JpcHQtdGVzdHMvY3VzdG9t
LWZpbHRlci1wcm9wZXJ0eS1jb21wdXRlZC1zdHlsZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMTMxNDI2MjJl
ZWI3YzY0MjVmODQ4N2UzZWZkZGFiOTJkOGE1Y2NiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY3NzMy9maWx0ZXJzL3NjcmlwdC10ZXN0cy9jdXN0b20tZmlsdGVyLXByb3BlcnR5LWNv
bXB1dGVkLXN0eWxlLmpzCkBAIC0wLDAgKzEsODIgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0cyB0aGUg
Y29tcHV0ZWQgc3R5bGUgb2YgdGhlIGN1c3RvbSgpIGZ1bmN0aW9uIG9mIHRoZSAtd2Via2l0LWZp
bHRlciBwcm9wZXJ0eS4iKTsKKworZnVuY3Rpb24ganNXcmFwcGVyQ2xhc3Mobm9kZSkKK3sKKyAg
ICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiAiW251bGxdIjsKKyAgICB2YXIgc3RyaW5nID0g
T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseShub2RlKTsKKyAgICByZXR1cm4gc3RyaW5n
LnN1YnN0cig4LCBzdHJpbmcubGVuZ3RoIC0gOSk7Cit9CisKKy8vIE5lZWQgdG8gcmVtb3ZlIHRo
ZSBiYXNlIFVSTCB0byBhdm9pZCBoYXZpbmcgbG9jYWwgcGF0aHMgaW4gdGhlIGV4cGVjdGVkIHJl
c3VsdHMuCitmdW5jdGlvbiByZW1vdmVCYXNlVVJMKHNyYykgeworICAgIHZhciB1cmxSZWdleHAg
PSAvdXJsXCgoW15cKV0qKVwpL2c7CisgICAgcmV0dXJuIHNyYy5yZXBsYWNlKHVybFJlZ2V4cCwg
ZnVuY3Rpb24obWF0Y2gsIHVybCkgeworICAgICAgICByZXR1cm4gInVybCgiICsgdXJsLnN1YnN0
cih1cmwubGFzdEluZGV4T2YoIi8iKSArIDEpICsgIikiOworICAgIH0pOworfQorCitmdW5jdGlv
biBzaG91bGRCZVR5cGUoZXhwcmVzc2lvbiwgY2xhc3NOYW1lLCBwcm90b3R5cGVOYW1lLCBjb25z
dHJ1Y3Rvck5hbWUpCit7CisgICAgaWYgKCFwcm90b3R5cGVOYW1lKQorICAgICAgICBwcm90b3R5
cGVOYW1lID0gY2xhc3NOYW1lICsgIlByb3RvdHlwZSI7CisgICAgaWYgKCFjb25zdHJ1Y3Rvck5h
bWUpCisgICAgICAgIGNvbnN0cnVjdG9yTmFtZSA9IGNsYXNzTmFtZSArICJDb25zdHJ1Y3RvciI7
CisgICAgc2hvdWxkQmUoImpzV3JhcHBlckNsYXNzKCIgKyBleHByZXNzaW9uICsgIikiLCAiJyIg
KyBjbGFzc05hbWUgKyAiJyIpOworICAgIHNob3VsZEJlKCJqc1dyYXBwZXJDbGFzcygiICsgZXhw
cmVzc2lvbiArICIuX19wcm90b19fKSIsICInIiArIHByb3RvdHlwZU5hbWUgKyAiJyIpOworICAg
IHNob3VsZEJlKCJqc1dyYXBwZXJDbGFzcygiICsgZXhwcmVzc2lvbiArICIuY29uc3RydWN0b3Ip
IiwgIiciICsgY29uc3RydWN0b3JOYW1lICsgIiciKTsKK30KKworLy8gVGhlc2UgaGF2ZSB0byBi
ZSBnbG9iYWwgZm9yIHRoZSB0ZXN0IGhlbHBlcnMgdG8gc2VlIHRoZW0uCit2YXIgc3R5bGVzaGVl
dCwgY3NzUnVsZSwgZGVjbGFyYXRpb24sIGZpbHRlclJ1bGUsIHN1YlJ1bGU7CisKK2Z1bmN0aW9u
IHRlc3RGaWx0ZXJSdWxlKGRlc2NyaXB0aW9uLCBydWxlLCBleHBlY3RlZFZhbHVlLCBleHBlY3Rl
ZFR5cGVzLCBleHBlY3RlZFRleHRzKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZyhkZXNj
cmlwdGlvbiArICIgOiAiICsgcnVsZSk7CisKKyAgICBzdHlsZXNoZWV0ID0gZG9jdW1lbnQuc3R5
bGVTaGVldHMuaXRlbSgwKTsKKyAgICBzdHlsZXNoZWV0Lmluc2VydFJ1bGUoImJvZHkgeyAtd2Vi
a2l0LWZpbHRlcjogIiArIHJ1bGUgKyAiOyB9IiwgMCk7CisKKyAgICBmaWx0ZXJTdHlsZSA9IHdp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmJvZHkpOworICAgIAorICAgIHNob3VsZEJl
KCJyZW1vdmVCYXNlVVJMKGZpbHRlclN0eWxlLmdldFByb3BlcnR5VmFsdWUoJy13ZWJraXQtZmls
dGVyJykpIiwgIiciICsgZXhwZWN0ZWRWYWx1ZSArICInIik7CisKKyAgICBmaWx0ZXJSdWxlID0g
ZmlsdGVyU3R5bGUuZ2V0UHJvcGVydHlDU1NWYWx1ZSgnLXdlYmtpdC1maWx0ZXInKTsKKyAgICBz
aG91bGRCZVR5cGUoImZpbHRlclJ1bGUiLCAiQ1NTVmFsdWVMaXN0Iik7CisKKyAgICBpZiAoIWV4
cGVjdGVkVHlwZXMpIHsKKyAgICAgICAgZXhwZWN0ZWRUeXBlcyA9IFsiV2ViS2l0Q1NTRmlsdGVy
VmFsdWUuQ1NTX0ZJTFRFUl9DVVNUT00iXTsKKyAgICAgICAgZXhwZWN0ZWRUZXh0cyA9IFtleHBl
Y3RlZFZhbHVlXTsKKyAgICB9CisgICAgCisgICAgc2hvdWxkQmUoImZpbHRlclJ1bGUubGVuZ3Ro
IiwgIiIgKyBleHBlY3RlZFR5cGVzLmxlbmd0aCk7IC8vIHNob3VsZEJlIGV4cGVjdHMgc3RyaW5n
IGFyZ3VtZW50cworICAKKyAgICBpZiAoZmlsdGVyUnVsZSkgeworICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IGV4cGVjdGVkVHlwZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIHN1YlJ1
bGUgPSBmaWx0ZXJSdWxlW2ldOworICAgICAgICAgICAgc2hvdWxkQmUoInN1YlJ1bGUub3BlcmF0
aW9uVHlwZSIsIGV4cGVjdGVkVHlwZXNbaV0pOworICAgICAgICAgICAgc2hvdWxkQmUoInJlbW92
ZUJhc2VVUkwoc3ViUnVsZS5jc3NUZXh0KSIsICInIiArIGV4cGVjdGVkVGV4dHNbaV0gKyAiJyIp
OworICAgICAgICB9CisgICAgfQorICAgIAorICAgIHN0eWxlc2hlZXQuZGVsZXRlUnVsZSgwKTsK
K30KKwordGVzdEZpbHRlclJ1bGUoIkN1c3RvbSB3aXRoIHZlcnRleCBzaGFkZXIiLAorICAgICJj
dXN0b20odXJsKHZlcnRleC5zaGFkZXIpKSIsICJjdXN0b20odXJsKHZlcnRleC5zaGFkZXIpKSIp
OworCit0ZXN0RmlsdGVyUnVsZSgiQ3VzdG9tIHdpdGggZnJhZ21lbnQgc2hhZGVyIiwKKyAgICAi
Y3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlcikpIiwgImN1c3RvbShub25lIHVybChmcmFn
bWVudC5zaGFkZXIpKSIpOworCit0ZXN0RmlsdGVyUnVsZSgiQ3VzdG9tIHdpdGggYm90aCBzaGFk
ZXJzIiwKKyAgICAiY3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSB1cmwoZnJhZ21lbnQuc2hhZGVy
KSkiLCAiY3VzdG9tKHVybCh2ZXJ0ZXguc2hhZGVyKSB1cmwoZnJhZ21lbnQuc2hhZGVyKSkiKTsK
KwordGVzdEZpbHRlclJ1bGUoIk11bHRpcGxlIHdpdGggZnJhZ21lbnQgc2hhZGVyIiwKKyAgICAi
Z3JheXNjYWxlKCkgY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlcikpIHNlcGlhKCkiLCAi
Z3JheXNjYWxlKDEpIGN1c3RvbShub25lIHVybChmcmFnbWVudC5zaGFkZXIpKSBzZXBpYSgxKSIs
CisgICAgWyJXZWJLaXRDU1NGaWx0ZXJWYWx1ZS5DU1NfRklMVEVSX0dSQVlTQ0FMRSIsCisgICAg
IldlYktpdENTU0ZpbHRlclZhbHVlLkNTU19GSUxURVJfQ1VTVE9NIiwKKyAgICAiV2ViS2l0Q1NT
RmlsdGVyVmFsdWUuQ1NTX0ZJTFRFUl9TRVBJQSJdLAorICAgIFsiZ3JheXNjYWxlKDEpIiwKKyAg
ICAiY3VzdG9tKG5vbmUgdXJsKGZyYWdtZW50LnNoYWRlcikpIiwKKyAgICAic2VwaWEoMSkiXSk7
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>