<?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>204314</bug_id>
          
          <creation_ts>2019-11-18 13:30:46 -0800</creation_ts>
          <short_desc>Map CSS value ID to system color in the UI process</short_desc>
          <delta_ts>2020-06-19 11:53:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=213396</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1591211</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-11-18 13:30:46 -0800</bug_when>
    <thetext>Currently, RenderThemeIOS is mapping CSS value IDs to system colors in the WebContent process. This mapping leads to invoking selectors on UITraitCollection and UIColor, which will send messages to the runningboard daemon. Since we will be blocking access to this daemon in the WebContent process, this mapping should be moved to the UI process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591212</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-18 13:31:09 -0800</bug_when>
    <thetext>&lt;rdar://problem/57295392&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591245</commentid>
    <comment_count>2</comment_count>
      <attachid>383791</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-11-18 14:40:29 -0800</bug_when>
    <thetext>Created attachment 383791
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595861</commentid>
    <comment_count>3</comment_count>
      <attachid>383791</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-12-05 10:02:52 -0800</bug_when>
    <thetext>Comment on attachment 383791
Patch

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

r=me, but please consider the improvements I suggested.

&gt; Source/WebCore/rendering/RenderThemeIOS.h:-42
&gt; -    

Whitespace change isn&apos;t needed, but maybe the editor just does this automatically.

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:1476
&gt; +        { CSSValueAppleSystemYellow, @selector(systemYellowColor) }

Is there any way to help future developers know that they should update this list if they need new CSS color values?

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:1489
&gt; +        for (unsigned i = 0; i &lt; size; i++) {

Could this be a modern C++ loop?

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:1524
&gt; +                map.add(CSSValueKey { cssValueIDSelectors[i].cssValueID, useDarkAppearance, useElevatedUserInterfaceLevel }, *color);

I wonder if this would be clearer if we made a setter function and just called it four times:

&apos;createCSSColorValueForOptions(unsigned valueID, bool useDarkAppearance, bool userElevatedUserInterfaceLevel)&apos;

Then the loop would just be once over the selectors:

for (auto valueSelectors : cssValueIDSelectors) {
    createCSSColorValueForOptions(valueSelectors.cssValueID, false, false);
    createCSSColorValueForOptions(valueSelectors.cssValueID, false, true);
    createCSSColorValueForOptions(valueSelectors.cssValueID, true, false);
    createCSSColorValueForOptions(valueSelectors.cssValueID, true, true);
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598425</commentid>
    <comment_count>4</comment_count>
      <attachid>385624</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-12-13 11:51:07 -0800</bug_when>
    <thetext>Created attachment 385624
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598433</commentid>
    <comment_count>5</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-12-13 12:00:21 -0800</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #3)
&gt; Comment on attachment 383791 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=383791&amp;action=review
&gt; 
&gt; r=me, but please consider the improvements I suggested.
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderThemeIOS.h:-42
&gt; &gt; -    
&gt; 
&gt; Whitespace change isn&apos;t needed, but maybe the editor just does this
&gt; automatically.
&gt; 

Fixed.

&gt; &gt; Source/WebCore/rendering/RenderThemeIOS.mm:1476
&gt; &gt; +        { CSSValueAppleSystemYellow, @selector(systemYellowColor) }
&gt; 
&gt; Is there any way to help future developers know that they should update this
&gt; list if they need new CSS color values?
&gt; 

That&apos;s a good point. Perhaps we could add a comment?

&gt; &gt; Source/WebCore/rendering/RenderThemeIOS.mm:1489
&gt; &gt; +        for (unsigned i = 0; i &lt; size; i++) {
&gt; 
&gt; Could this be a modern C++ loop?
&gt; 

Fixed.

&gt; &gt; Source/WebCore/rendering/RenderThemeIOS.mm:1524
&gt; &gt; +                map.add(CSSValueKey { cssValueIDSelectors[i].cssValueID, useDarkAppearance, useElevatedUserInterfaceLevel }, *color);
&gt; 
&gt; I wonder if this would be clearer if we made a setter function and just
&gt; called it four times:
&gt; 
&gt; &apos;createCSSColorValueForOptions(unsigned valueID, bool useDarkAppearance,
&gt; bool userElevatedUserInterfaceLevel)&apos;
&gt; 
&gt; Then the loop would just be once over the selectors:
&gt; 
&gt; for (auto valueSelectors : cssValueIDSelectors) {
&gt;     createCSSColorValueForOptions(valueSelectors.cssValueID, false, false);
&gt;     createCSSColorValueForOptions(valueSelectors.cssValueID, false, true);
&gt;     createCSSColorValueForOptions(valueSelectors.cssValueID, true, false);
&gt;     createCSSColorValueForOptions(valueSelectors.cssValueID, true, true);
&gt; }

I used the following loop construct in the latest patch:

for (bool useDarkAppearance : { false, true }) ...

I hope this will make it easier to read.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598639</commentid>
    <comment_count>6</comment_count>
      <attachid>385688</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-12-14 08:32:21 -0800</bug_when>
    <thetext>Created attachment 385688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598655</commentid>
    <comment_count>7</comment_count>
      <attachid>385694</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-12-14 11:18:25 -0800</bug_when>
    <thetext>Created attachment 385694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598666</commentid>
    <comment_count>8</comment_count>
      <attachid>385699</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2019-12-14 13:48:55 -0800</bug_when>
    <thetext>Created attachment 385699
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598678</commentid>
    <comment_count>9</comment_count>
      <attachid>385699</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-14 15:37:22 -0800</bug_when>
    <thetext>Comment on attachment 385699
Patch

Clearing flags on attachment: 385699

Committed r253530: &lt;https://trac.webkit.org/changeset/253530&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603310</commentid>
    <comment_count>10</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-06 15:21:14 -0800</bug_when>
    <thetext>Landed in &lt;https://trac.webkit.org/changeset/253530/webkit&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603320</commentid>
    <comment_count>11</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-06 15:34:39 -0800</bug_when>
    <thetext>Rolled out in &lt;https://trac.webkit.org/changeset/253784/webkit&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603834</commentid>
    <comment_count>12</comment_count>
      <attachid>387045</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-07 15:37:56 -0800</bug_when>
    <thetext>Created attachment 387045
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603849</commentid>
    <comment_count>13</comment_count>
      <attachid>387048</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-07 16:05:49 -0800</bug_when>
    <thetext>Created attachment 387048
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604735</commentid>
    <comment_count>14</comment_count>
      <attachid>387048</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-01-09 11:19:57 -0800</bug_when>
    <thetext>Comment on attachment 387048
Patch

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

&gt; Source/WebCore/rendering/RenderThemeIOS.h:63
&gt; +    WEBCORE_EXPORT static const HashMap&lt;CSSValueKey, Color&gt;&amp; getOrCreateCSSValueToSystemColorMap();

I think this should be just cssValueToSystemColorMap(). The &quot;getOrCreate&quot; doesn&apos;t add much value.

Also, could you define this map type with a using statement, so that it has a name?

&gt; Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:265
&gt; +    RenderThemeIOS::setCSSValueToSystemColorMap(WTFMove(parameters.cssValueToSystemColorMap));
&gt; +#endif

Why is this only iOS?

&gt; LayoutTests/TestExpectations:26
&gt; +fast/css/ios [ Skip ]

Why is this skipped on iOS? You have code above that sets the mapping on iOS.

&gt; LayoutTests/fast/css/ios/system-color-for-css-value.html:12
&gt; +    shouldBe(&quot;internals.systemColorForCSSValue(\&quot;-apple-system-control-background\&quot;, true, false)&quot;, &quot;\&quot;rgb(0, 0, 0)\&quot;&quot;);
&gt; +    shouldBe(&quot;internals.systemColorForCSSValue(\&quot;-apple-system-secondary-grouped-background\&quot;, true, false)&quot;, &quot;\&quot;rgb(28, 28, 30)\&quot;&quot;);

You could use `` strings to avoid having to escape the &quot;

Are you testing dark mode anywhere? Also, don&apos;t you want to test all the values?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605239</commentid>
    <comment_count>15</comment_count>
      <attachid>387362</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-10 12:16:09 -0800</bug_when>
    <thetext>Created attachment 387362
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605241</commentid>
    <comment_count>16</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-10 12:19:26 -0800</bug_when>
    <thetext>(In reply to Dean Jackson from comment #14)
&gt; Comment on attachment 387048 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=387048&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderThemeIOS.h:63
&gt; &gt; +    WEBCORE_EXPORT static const HashMap&lt;CSSValueKey, Color&gt;&amp; getOrCreateCSSValueToSystemColorMap();
&gt; 
&gt; I think this should be just cssValueToSystemColorMap(). The &quot;getOrCreate&quot;
&gt; doesn&apos;t add much value.
&gt; 

Fixed.

&gt; Also, could you define this map type with a using statement, so that it has
&gt; a name?
&gt; 

Done.

&gt; &gt; Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:265
&gt; &gt; +    RenderThemeIOS::setCSSValueToSystemColorMap(WTFMove(parameters.cssValueToSystemColorMap));
&gt; &gt; +#endif
&gt; 
&gt; Why is this only iOS?
&gt; 
&gt; &gt; LayoutTests/TestExpectations:26
&gt; &gt; +fast/css/ios [ Skip ]
&gt; 
&gt; Why is this skipped on iOS? You have code above that sets the mapping on iOS.
&gt; 

The tests are skipped globally, but then enabled for iOS in the iOS platform directory.

&gt; &gt; LayoutTests/fast/css/ios/system-color-for-css-value.html:12
&gt; &gt; +    shouldBe(&quot;internals.systemColorForCSSValue(\&quot;-apple-system-control-background\&quot;, true, false)&quot;, &quot;\&quot;rgb(0, 0, 0)\&quot;&quot;);
&gt; &gt; +    shouldBe(&quot;internals.systemColorForCSSValue(\&quot;-apple-system-secondary-grouped-background\&quot;, true, false)&quot;, &quot;\&quot;rgb(28, 28, 30)\&quot;&quot;);
&gt; 
&gt; You could use `` strings to avoid having to escape the &quot;
&gt; 

Fixed.

&gt; Are you testing dark mode anywhere? Also, don&apos;t you want to test all the
&gt; values?

This is only testing dark mode (the first boolean parameter to internals.systemColorForCSSValue). I have added tests of the rest of the values.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605351</commentid>
    <comment_count>17</comment_count>
      <attachid>387385</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-10 15:35:53 -0800</bug_when>
    <thetext>Created attachment 387385
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1605355</commentid>
    <comment_count>18</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-10 15:41:53 -0800</bug_when>
    <thetext>Committed r254373: &lt;https://trac.webkit.org/changeset/254373/webkit&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383791</attachid>
            <date>2019-11-18 14:40:29 -0800</date>
            <delta_ts>2020-01-07 15:37:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204314-20191118144028.patch</filename>
            <type>text/plain</type>
            <size>26623</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MjU5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE5LTExLTE4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNYXAgQ1NTIHZhbHVlIElE
IHRvIHN5c3RlbSBjb2xvciBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MzE0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81NzI5NTM5Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBDdXJyZW50bHksIFJlbmRlclRoZW1lSU9TIGlzIG1hcHBpbmcgQ1NTIHZhbHVlIElEcyB0
byBzeXN0ZW0gY29sb3JzIGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3MuIFRoaXMgbWFwcGluZyBs
ZWFkcyB0bworICAgICAgICBpbnZva2luZyBzZWxlY3RvcnMgb24gVUlUcmFpdENvbGxlY3Rpb24g
YW5kIFVJQ29sb3IsIHdoaWNoIHdpbGwgc2VuZCBtZXNzYWdlcyB0byB0aGUgcnVubmluZ2JvYXJk
IGRhZW1vbi4gU2luY2Ugd2UKKyAgICAgICAgd2lsbCBiZSBibG9ja2luZyBhY2Nlc3MgdG8gdGhp
cyBkYWVtb24gaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcywgdGhpcyBtYXBwaW5nIHNob3VsZCBi
ZSBtb3ZlZCB0byB0aGUgVUkgcHJvY2Vzcy4KKyAgICAgICAgVGhlIFVJIHByb2Nlc3Mgd2lsbCBj
cmVhdGUgYSBtYXBwaW5nIGJldHdlZW4gQ1NTIHZhbHVlIElEcyBhbmQgc3lzdGVtIGNvbG9ycywg
YW5kIHBhc3MgaXQgdG8gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcy4KKworICAgICAgICBObyBuZXcg
dGVzdHMsIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcmVuZGVyaW5nL0NTU1ZhbHVlS2V5
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NWYWx1ZUtleTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Zh
bHVlS2V5OjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVLZXk6Omhhc2ggY29u
c3QpOgorICAgICAgICAoV1RGOjpDU1NWYWx1ZUtleUhhc2g6Omhhc2gpOgorICAgICAgICAoV1RG
OjpDU1NWYWx1ZUtleUhhc2g6OmVxdWFsKToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJD
b3JlOjpDU1NWYWx1ZUtleT46OmVtcHR5VmFsdWUpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRz
PFdlYkNvcmU6OkNTU1ZhbHVlS2V5Pjo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKToKKyAgICAgICAg
KFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpDU1NWYWx1ZUtleT46OmlzRGVsZXRlZFZhbHVlKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpjc3NWYWx1ZUlEU2VsZWN0
b3JMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OnN5c3RlbUNvbG9yRnJvbUNTU1ZhbHVlSUQpOgor
ICAgICAgICAoV2ViQ29yZTo6Z2xvYmFsQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpjcmVhdGVDU1NWYWx1ZVRvU3lzdGVtQ29sb3JN
YXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OnNldENTU1ZhbHVlVG9TeXN0
ZW1Db2xvck1hcCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6c3lzdGVtQ29s
b3IgY29uc3QpOgorCiAyMDE5LTExLTE4ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3
YUBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGdldFRvdGFsTGVuZ3RoKCkgYW5kIGdldFBvaW50
QXRMZW5ndGgoKSBmb3Igb3B0aW1pemVkIHJlY3QgYW5kIGVsbGlwc2UgcmVuZGVyZXJzCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CShyZXZpc2lvbiAyNTI1OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ3ODEsNiArNDc4MSw3IEBACiAJCUUz
QjJGMEVEMUQ3RjRDQTMwMEIwQzlEMSAvKiBMb2FkYWJsZVNjcmlwdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCMkYwRTcxRDdGMzVFQzAwQjBDOUQx
IC8qIExvYWRhYmxlU2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJRTNCMkYwRUUxRDdGNENBOTAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0
Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
M0IyRjBFODFEN0YzNUVDMDBCMEM5RDEgLyogTG9hZGFibGVTY3JpcHRDbGllbnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0IyRjBGMDFEN0Y0
Q0I1MDBCMEM5RDEgLyogTG9hZGFibGVDbGFzc2ljU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IyRjBFNDFEN0YzNUVDMDBCMEM5RDEgLyog
TG9hZGFibGVDbGFzc2ljU2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJRTNCQkMyNDcyMzgzNTUyNjAwNkVDMzlGIC8qIENTU1ZhbHVlS2V5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0JCQzI0
NTIzODM1NTFBMDA2RUMzOUYgLyogQ1NTVmFsdWVLZXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRBRDMgLyog
RE9NSklUQ2hlY2tET00uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUzQzk5QTA4MURDM0Q0MTcwMDc5NEFEMyAvKiBET01KSVRDaGVja0RPTS5oICovOyB9
OwogCQlFM0M5QUVDQjIxMTMxNDk5MDA0MTlCOTIgLyogSlNNaWNyb3Rhc2tDYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNDOUFFQzkyMTEz
MTQ3NDAwNDE5QjkyIC8qIEpTTWljcm90YXNrQ2FsbGJhY2suaCAqLzsgfTsKIAkJRTNFNEUyQTgx
RTNCMTcxMDAwMjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0U0RTJBNjFFM0Ix
NkZDMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTUwNzMsNiArMTUw
NzQsNyBAQAogCQlFM0IyRjBFODFEN0YzNUVDMDBCMEM5RDEgLyogTG9hZGFibGVTY3JpcHRDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9hZGFibGVTY3JpcHRDbGll
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNCMkYwRTkxRDdGM0QzQzAwQjBD
OUQxIC8qIExvYWRhYmxlU2NyaXB0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IExvYWRhYmxlU2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTNCN0MwNjIxREMzNDE1QTAwMUZCMEI4IC8qIEpTRG9jdW1lbnRET01KSVQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNEb2N1bWVudERPTUpJVC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQkJDMjQ1MjM4MzU1MUEwMDZFQzM5RiAvKiBDU1NW
YWx1ZUtleS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NWYWx1ZUtleS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0JDODI3MzIyNTMwMjIxMDA1Mjc2REUg
LyogTm9kZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm9kZUxpc3QuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0JGMTlFMTIyQUYyRjU1MDA5Qzk5MjYgLyogWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTEh0dHBSZXF1
ZXN0UHJvZ3Jlc3NFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQkYx
OUUzMjJBRjJGQTUwMDlDOTkyNiAvKiBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjc1MTksNiArMjc1MjEsNyBAQAogCQkJCTkzOTJGMTRCMEFE
MTg2MUIwMDY5MUJENCAvKiBDb3VudGVyTm9kZS5oICovLAogCQkJCTBGNTNGQjgxMjEzQjFCQjgw
MEM0MEQzNCAvKiBDU1NGaWx0ZXIuY3BwICovLAogCQkJCTBGNTNGQjgzMjEzQjFCQjgwMEM0MEQz
NCAvKiBDU1NGaWx0ZXIuaCAqLywKKwkJCQlFM0JCQzI0NTIzODM1NTFBMDA2RUMzOUYgLyogQ1NT
VmFsdWVLZXkuaCAqLywKIAkJCQlBOENGRjZDQTBBMTU2MUNEMDAwQTQyMzQgLyogRWxsaXBzaXNC
b3guY3BwICovLAogCQkJCUE4Q0ZGNkJEMEExNTYxMTgwMDBBNDIzNCAvKiBFbGxpcHNpc0JveC5o
ICovLAogCQkJCUU0QThEMjE1MjI1NzhEQTAwMEE4NDYzQyAvKiBFdmVudFJlZ2lvbi5jcHAgKi8s
CkBAIC0yOTM5OSw2ICsyOTQwMiw3IEBACiAJCQkJREQ3Q0RGMjUwQTIzQ0Y5ODAwMDY5OTI4IC8q
IENTU1Vua25vd25SdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzdEOEZGMDFCRDAzQjY0MDBG
RkU1NDAgLyogQ1NTVW5zZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRUUwQTE5
ODlDQTAwN0ZCOEM1IC8qIENTU1ZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFM0JCQzI0NzIz
ODM1NTI2MDA2RUMzOUYgLyogQ1NTVmFsdWVLZXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NjU4
MTUxMDlEMTMwNDMwMDBFNjFENyAvKiBDU1NWYWx1ZUtleXdvcmRzLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBODBFNkNFOTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVmFsdWVMaXN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFNDlCRDlGQTEzMUZEMkVEMDAzQzU2RjAgLyogQ1NTVmFsdWVQb29sLmggaW4g
SGVhZGVycyAqLywKQEAgLTI5NTM0LDcgKzI5NTM4LDYgQEAKIAkJCQlDRTA1N0ZBNjEyMjA3MzEx
MDBBNDc2RDUgLyogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0NGQkFFODBCNTE1MkVEMDAwMUYxRDcgLyogRG9jdW1lbnRQYXJzZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFEMkY4RTAzMjM0NDc0RUYwMDk5M0I2OCAvKiBEb2N1bWVudFBpY3R1cmVJblBp
Y3R1cmUuaCBpbiBIZWFkZXJzICovLAotCQkJCTRBNEY0OEFBMTZCMERGQzAwMEVEQkIyOSAvKiBT
dHlsZVNjb3BlUnVsZVNldHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUFENkU3MUFEMTY2ODg5OUQw
MDMyMEMxMyAvKiBEb2N1bWVudFNoYXJlZE9iamVjdFBvb2wuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTZCREI1REMyMjI3QkQzQjgwMDkxOTc3MCAvKiBEb2N1bWVudFN0b3JhZ2VBY2Nlc3MuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBCOTA1NjFBMEYyNTc4QkYwMDk1RkY2QSAvKiBEb2N1bWVudFRocmVh
ZGFibGVMb2FkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMzIyNjksNiArMzIyNzIsNyBAQAogCQkJ
CUU0OTQ2RUFGMTU2RTY0REQwMEQzMjk3RiAvKiBTdHlsZVJ1bGVJbXBvcnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGOTRGMzdFMjM2NjE2MjYwMDNBQTVDNyAvKiBTdHlsZVJ1bGVUeXBlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlFNDYxRDY1RjFCQjBDODBEMDBDQjU2NDUgLyogU3R5bGVTY29wZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNEE0RjQ4QUExNkIwREZDMDAwRURCQjI5IC8qIFN0eWxlU2Nv
cGVSdWxlU2V0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ3QTVFM0UxOTVCOEM4QTAwNDgzMTAw
IC8qIFN0eWxlU2Nyb2xsU25hcFBvaW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUQ2MzgwMTAx
QUYxNzMyMjAwMzFBMTVDIC8qIFN0eWxlU2VsZkFsaWdubWVudERhdGEuaCBpbiBIZWFkZXJzICov
LAogCQkJCUU0N0EzQUM2MUM1RUFDOUQwMENDQkZBNyAvKiBTdHlsZVNoYXJpbmdSZXNvbHZlci5o
IGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTVmFsdWVL
ZXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTVmFsdWVLZXku
aAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTVmFsdWVLZXku
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3N0cnVjdCBDU1NWYWx1ZUtleSB7CisKKyAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3Q7
CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29u
c3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPENTU1ZhbHVl
S2V5PiBkZWNvZGUoRGVjb2RlciYpOworCisgICAgdW5zaWduZWQgY3NzVmFsdWVJRDsKKyAgICBi
b29sIHVzZURhcmtBcHBlYXJhbmNlOworICAgIGJvb2wgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNl
TGV2ZWw7Cit9OworCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1ZhbHVlS2V5JiBh
LCBjb25zdCBDU1NWYWx1ZUtleSYgYikKK3sKKyAgICByZXR1cm4gYS5jc3NWYWx1ZUlEID09IGIu
Y3NzVmFsdWVJRCAmJiBhLnVzZURhcmtBcHBlYXJhbmNlID09IGIudXNlRGFya0FwcGVhcmFuY2Ug
JiYgYS51c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA9PSBiLnVzZUVsZXZhdGVkVXNlcklu
dGVyZmFjZUxldmVsOworfQorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBDU1NWYWx1
ZUtleTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBj
c3NWYWx1ZUlEOworICAgIGVuY29kZXIgPDwgdXNlRGFya0FwcGVhcmFuY2U7CisgICAgZW5jb2Rl
ciA8PCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbDsKK30KKwordGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4KK09wdGlvbmFsPENTU1ZhbHVlS2V5PiBDU1NWYWx1ZUtleTo6ZGVjb2RlKERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8dW5zaWduZWQ+IGNzc1ZhbHVlSUQ7CisgICAg
ZGVjb2RlciA+PiBjc3NWYWx1ZUlEOworICAgIGlmICghY3NzVmFsdWVJRCkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKKyAgICBPcHRpb25hbDxib29sPiB1c2VEYXJrQXBwZWFyYW5jZTsK
KyAgICBkZWNvZGVyID4+IHVzZURhcmtBcHBlYXJhbmNlOworICAgIGlmICghdXNlRGFya0FwcGVh
cmFuY2UpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgT3B0aW9uYWw8Ym9vbD4g
dXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWw7CisgICAgZGVjb2RlciA+PiB1c2VFbGV2YXRl
ZFVzZXJJbnRlcmZhY2VMZXZlbDsKKyAgICBpZiAoIXVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxl
dmVsKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJldHVybiB7IHsgV1RGTW92
ZSgqY3NzVmFsdWVJRCksIFdURk1vdmUoKnVzZURhcmtBcHBlYXJhbmNlKSwgV1RGTW92ZSgqdXNl
RWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpIH0gfTsKK30KKworaW5saW5lIHVuc2lnbmVkIENT
U1ZhbHVlS2V5OjpoYXNoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY3NzVmFsdWVJRDsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKworc3RydWN0IENTU1Zh
bHVlS2V5SGFzaCB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgV2ViQ29yZTo6Q1NT
VmFsdWVLZXkmIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQorICAgIHN0YXRpYyBib29sIGVx
dWFsKGNvbnN0IFdlYkNvcmU6OkNTU1ZhbHVlS2V5JiBhLCBjb25zdCBXZWJDb3JlOjpDU1NWYWx1
ZUtleSYgYikgeyByZXR1cm4gYSA9PSBiOyB9CisgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRv
Q29tcGFyZVRvRW1wdHlPckRlbGV0ZWQgPSB0cnVlOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3Qg
SGFzaFRyYWl0czxXZWJDb3JlOjpDU1NWYWx1ZUtleT4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJD
b3JlOjpDU1NWYWx1ZUtleT4geworICAgIHN0YXRpYyBXZWJDb3JlOjpDU1NWYWx1ZUtleSBlbXB0
eVZhbHVlKCkgeyByZXR1cm4gV2ViQ29yZTo6Q1NTVmFsdWVLZXkgeyBXZWJDb3JlOjpDU1NWYWx1
ZUludmFsaWQsIGZhbHNlLCBmYWxzZX07IH0KKyAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxl
dGVkVmFsdWUoV2ViQ29yZTo6Q1NTVmFsdWVLZXkmIHNsb3QpIHsgc2xvdCA9IFdlYkNvcmU6OkNT
U1ZhbHVlS2V5IHsgV2ViQ29yZTo6Q1NTVmFsdWVJbnZhbGlkLCB0cnVlLCB0cnVlfTt9CisgICAg
c3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgV2ViQ29yZTo6Q1NTVmFsdWVLZXkmIHNs
b3QpIHsgcmV0dXJuIHNsb3QuY3NzVmFsdWVJRCA9PSBXZWJDb3JlOjpDU1NWYWx1ZUludmFsaWQg
JiYgc2xvdC51c2VEYXJrQXBwZWFyYW5jZSAmJiBzbG90LnVzZUVsZXZhdGVkVXNlckludGVyZmFj
ZUxldmVsOyB9Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJDb3JlOjpD
U1NWYWx1ZUtleT4geworICAgIHR5cGVkZWYgQ1NTVmFsdWVLZXlIYXNoIEhhc2g7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUlPUy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUlPUy5oCShyZXZpc2lvbiAyNTI1OTMpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKIAorI2luY2x1ZGUgIkNTU1ZhbHVlS2V5LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyVGhlbWVDb2NvYS5oIgogCiAjaWYgVVNFKFNZU1RFTV9QUkVWSUVXKQpAQCAtMzks
NyArNDAsNyBAQAogT0JKQ19DTEFTUyBDSUNvbnRleHQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
LSAgICAKKwogY2xhc3MgUmVuZGVyU3R5bGU7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiAKQEAg
LTU5LDYgKzYwLDkgQEAgcHVibGljOgogICAgIHZvaWQgcGFpbnRTeXN0ZW1QcmV2aWV3QmFkZ2Uo
SW1hZ2UmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICNl
bmRpZgogCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEhhc2hNYXA8Q1NTVmFsdWVLZXksIENv
bG9yPiBjcmVhdGVDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgdm9pZCBzZXRDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoSGFzaE1hcDxDU1NWYWx1
ZUtleSwgQ29sb3I+KTsKKyAgICAKIHByb3RlY3RlZDoKICAgICBMZW5ndGhCb3ggcG9wdXBJbnRl
cm5hbFBhZGRpbmdCb3goY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBvdmVycmlkZTsKICAgICAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0JKHJldmlz
aW9uIDI1MjU5MykKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiQml0bWFwSW1hZ2Uu
aCIKICNpbXBvcnQgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCiAjaW1wb3J0ICJDU1NUb0xlbmd0aENv
bnZlcnNpb25EYXRhLmgiCisjaW1wb3J0ICJDU1NWYWx1ZUtleS5oIgogI2ltcG9ydCAiQ1NTVmFs
dWVLZXl3b3Jkcy5oIgogI2ltcG9ydCAiQ29sb3JJT1MuaCIKICNpbXBvcnQgIkRhdGVDb21wb25l
bnRzLmgiCkBAIC0xNDMwLDYgKzE0MzEsMTA5IEBAIFN0cmluZyBSZW5kZXJUaGVtZUlPUzo6bWVk
aWFDb250cm9sc0Jhc2UKIAogI2VuZGlmIC8vIEVOQUJMRShWSURFTykKIAorc3RydWN0IENTU1Zh
bHVlSURBbmRTZWxlY3RvciB7CisgICAgQ1NTVmFsdWVJRCBjc3NWYWx1ZUlEOworICAgIFNFTCBz
ZWxlY3RvcjsKK307CisKK3N0YXRpYyBDU1NWYWx1ZUlEQW5kU2VsZWN0b3IqIGNzc1ZhbHVlSURT
ZWxlY3Rvckxpc3QodW5zaWduZWQmIHNpemUpCit7CisgICAgc3RhdGljIENTU1ZhbHVlSURBbmRT
ZWxlY3RvciBjc3NWYWx1ZUlEU2VsZWN0b3JMaXN0W10gPSB7CisjaWYgSEFWRShPU19EQVJLX01P
REVfU1VQUE9SVCkKKyAgICAgICAgeyBDU1NWYWx1ZVRleHQsIEBzZWxlY3RvcihsYWJlbENvbG9y
KSB9LAorICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1MYWJlbCwgQHNlbGVjdG9yKGxhYmVs
Q29sb3IpIH0sCisgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUhlYWRlclRleHQsIEBzZWxl
Y3RvcihsYWJlbENvbG9yKSB9LAorICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1TZWNvbmRh
cnlMYWJlbCwgQHNlbGVjdG9yKHNlY29uZGFyeUxhYmVsQ29sb3IpIH0sCisgICAgICAgIHsgQ1NT
VmFsdWVBcHBsZVN5c3RlbVRlcnRpYXJ5TGFiZWwsIEBzZWxlY3Rvcih0ZXJ0aWFyeUxhYmVsQ29s
b3IpIH0sCisgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVF1YXRlcm5hcnlMYWJlbCwgQHNl
bGVjdG9yKHF1YXRlcm5hcnlMYWJlbENvbG9yKSB9LAorICAgICAgICB7IENTU1ZhbHVlQXBwbGVT
eXN0ZW1QbGFjZWhvbGRlclRleHQsIEBzZWxlY3RvcihwbGFjZWhvbGRlclRleHRDb2xvcikgfSwK
KyAgICAgICAgeyBDU1NWYWx1ZVdlYmtpdENvbnRyb2xCYWNrZ3JvdW5kLCBAc2VsZWN0b3Ioc3lz
dGVtQmFja2dyb3VuZENvbG9yKSB9LAorICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1Db250
cm9sQmFja2dyb3VuZCwgQHNlbGVjdG9yKHN5c3RlbUJhY2tncm91bmRDb2xvcikgfSwKKyAgICAg
ICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtVGV4dEJhY2tncm91bmQsIEBzZWxlY3RvcihzeXN0ZW1C
YWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUJhY2tncm91
bmQsIEBzZWxlY3RvcihzeXN0ZW1CYWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAgIHsgQ1NTVmFs
dWVBcHBsZVN5c3RlbVNlY29uZGFyeUJhY2tncm91bmQsIEBzZWxlY3RvcihzZWNvbmRhcnlTeXN0
ZW1CYWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVRlcnRp
YXJ5QmFja2dyb3VuZCwgQHNlbGVjdG9yKHRlcnRpYXJ5U3lzdGVtQmFja2dyb3VuZENvbG9yKSB9
LAorICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1Hcm91cGVkQmFja2dyb3VuZCwgQHNlbGVj
dG9yKHN5c3RlbUdyb3VwZWRCYWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAgIHsgQ1NTVmFsdWVB
cHBsZVN5c3RlbVNlY29uZGFyeUdyb3VwZWRCYWNrZ3JvdW5kLCBAc2VsZWN0b3Ioc2Vjb25kYXJ5
U3lzdGVtR3JvdXBlZEJhY2tncm91bmRDb2xvcikgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUFwcGxl
U3lzdGVtVGVydGlhcnlHcm91cGVkQmFja2dyb3VuZCwgQHNlbGVjdG9yKHRlcnRpYXJ5U3lzdGVt
R3JvdXBlZEJhY2tncm91bmRDb2xvcikgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVt
R3JpZCwgQHNlbGVjdG9yKHNlcGFyYXRvckNvbG9yKSB9LAorICAgICAgICB7IENTU1ZhbHVlQXBw
bGVTeXN0ZW1TZXBhcmF0b3IsIEBzZWxlY3RvcihzZXBhcmF0b3JDb2xvcikgfSwKKyAgICAgICAg
eyBDU1NWYWx1ZUFwcGxlU3lzdGVtQ29udGFpbmVyQm9yZGVyLCBAc2VsZWN0b3Ioc2VwYXJhdG9y
Q29sb3IpIH0sCisgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVNlbGVjdGVkQ29udGVudEJh
Y2tncm91bmQsIEBzZWxlY3Rvcih0YWJsZUNlbGxEZWZhdWx0U2VsZWN0aW9uVGludENvbG9yKSB9
LAorICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1VbmVtcGhhc2l6ZWRTZWxlY3RlZENvbnRl
bnRCYWNrZ3JvdW5kLCBAc2VsZWN0b3IodGFibGVDZWxsRGVmYXVsdFNlbGVjdGlvblRpbnRDb2xv
cikgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtQnJvd24sIEBzZWxlY3RvcihzeXN0
ZW1Ccm93bkNvbG9yKSB9LAorICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1JbmRpZ28sIEBz
ZWxlY3RvcihzeXN0ZW1JbmRpZ29Db2xvcikgfSwKKyNlbmRpZgorICAgICAgICB7IENTU1ZhbHVl
QXBwbGVTeXN0ZW1UZWFsLCBAc2VsZWN0b3Ioc3lzdGVtVGVhbENvbG9yKSB9LAorICAgICAgICB7
IENTU1ZhbHVlQXBwbGVXaXJlbGVzc1BsYXliYWNrVGFyZ2V0QWN0aXZlLCBAc2VsZWN0b3Ioc3lz
dGVtQmx1ZUNvbG9yKSB9LAorICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1CbHVlLCBAc2Vs
ZWN0b3Ioc3lzdGVtQmx1ZUNvbG9yKSB9LAorICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1H
cmF5LCBAc2VsZWN0b3Ioc3lzdGVtR3JheUNvbG9yKSB9LAorICAgICAgICB7IENTU1ZhbHVlQXBw
bGVTeXN0ZW1HcmVlbiwgQHNlbGVjdG9yKHN5c3RlbUdyZWVuQ29sb3IpIH0sCisgICAgICAgIHsg
Q1NTVmFsdWVBcHBsZVN5c3RlbU9yYW5nZSwgQHNlbGVjdG9yKHN5c3RlbU9yYW5nZUNvbG9yKSB9
LAorICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1QaW5rLCBAc2VsZWN0b3Ioc3lzdGVtUGlu
a0NvbG9yKSB9LAorICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1QdXJwbGUsIEBzZWxlY3Rv
cihzeXN0ZW1QdXJwbGVDb2xvcikgfSwKKyAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtUmVk
LCBAc2VsZWN0b3Ioc3lzdGVtUmVkQ29sb3IpIH0sCisgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5
c3RlbVllbGxvdywgQHNlbGVjdG9yKHN5c3RlbVllbGxvd0NvbG9yKSB9CisgICAgfTsKKyAgICBz
aXplID0gV1RGX0FSUkFZX0xFTkdUSChjc3NWYWx1ZUlEU2VsZWN0b3JMaXN0KTsKKyAgICByZXR1
cm4gY3NzVmFsdWVJRFNlbGVjdG9yTGlzdDsKK30KKworc3RhdGljIE9wdGlvbmFsPENvbG9yPiBz
eXN0ZW1Db2xvckZyb21DU1NWYWx1ZUlEKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgYm9vbCB1c2VE
YXJrQXBwZWFyYW5jZSwgYm9vbCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCkKK3sKKyAg
ICBMb2NhbEN1cnJlbnRUcmFpdENvbGxlY3Rpb24gbG9jYWxUcmFpdENvbGxlY3Rpb24odXNlRGFy
a0FwcGVhcmFuY2UsIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKKworICAgIGF1dG8g
Y3NzQ29sb3JUb1NlbGVjdG9yID0gW2Nzc1ZhbHVlSURdICgpIC0+IFNFTCB7CisgICAgICAgIHVu
c2lnbmVkIHNpemUgPSAwOworICAgICAgICBhdXRvIGNzc1ZhbHVlSURTZWxlY3RvcnMgPSBjc3NW
YWx1ZUlEU2VsZWN0b3JMaXN0KHNpemUpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICBpZiAoY3NzVmFsdWVJRFNlbGVjdG9yc1tpXS5j
c3NWYWx1ZUlEID09IGNzc1ZhbHVlSUQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVl
SURTZWxlY3RvcnNbaV0uc2VsZWN0b3I7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisgICAgfTsKKworICAgIGlmIChhdXRvIHNlbGVjdG9yID0gY3NzQ29sb3JUb1NlbGVjdG9y
KCkpIHsKKyAgICAgICAgaWYgKGF1dG8gY29sb3IgPSB3dGZPYmpDTXNnU2VuZDxVSUNvbG9yICo+
KFBBTDo6Z2V0VUlDb2xvckNsYXNzKCksIHNlbGVjdG9yKSkKKyAgICAgICAgICAgIHJldHVybiBD
b2xvcihjb2xvci5DR0NvbG9yLCBDb2xvcjo6U2VtYW50aWMpOworICAgIH0KKyAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworfQorCisKK3N0YXRpYyBPcHRpb25hbDxIYXNoTWFwPENTU1ZhbHVlS2V5
LCBDb2xvcj4+JiBnbG9iYWxDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKQoreworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxPcHRpb25hbDxIYXNoTWFwPENTU1ZhbHVlS2V5LCBDb2xvcj4+PiBj
b2xvck1hcDsKKyAgICByZXR1cm4gY29sb3JNYXA7Cit9CisKK0hhc2hNYXA8Q1NTVmFsdWVLZXks
IENvbG9yPiBSZW5kZXJUaGVtZUlPUzo6Y3JlYXRlQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKCkK
K3sKKyAgICBIYXNoTWFwPENTU1ZhbHVlS2V5LCBDb2xvcj4gbWFwOworCisgICAgdW5zaWduZWQg
c2l6ZSA9IDA7CisgICAgYXV0byBjc3NWYWx1ZUlEU2VsZWN0b3JzID0gY3NzVmFsdWVJRFNlbGVj
dG9yTGlzdChzaXplKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7
CisgICAgICAgIGZvciAodW5zaWduZWQgaiA9IDA7IGogPCAyOyBqKyspIHsKKyAgICAgICAgICAg
IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgPSBqOworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBr
ID0gMDsgayA8IDI7IGsrKykgeworICAgICAgICAgICAgICAgIGJvb2wgdXNlRWxldmF0ZWRVc2Vy
SW50ZXJmYWNlTGV2ZWwgPSBrOworICAgICAgICAgICAgICAgIGF1dG8gY29sb3IgPSBzeXN0ZW1D
b2xvckZyb21DU1NWYWx1ZUlEKGNzc1ZhbHVlSURTZWxlY3RvcnNbaV0uY3NzVmFsdWVJRCwgdXNl
RGFya0FwcGVhcmFuY2UsIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKKyAgICAgICAg
ICAgICAgICBpZiAoIWNvbG9yKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgICAgICAgICBtYXAuYWRkKENTU1ZhbHVlS2V5IHsgY3NzVmFsdWVJRFNlbGVjdG9yc1tpXS5j
c3NWYWx1ZUlELCB1c2VEYXJrQXBwZWFyYW5jZSwgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2
ZWwgfSwgKmNvbG9yKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHJl
dHVybiBtYXA7Cit9CisKK3ZvaWQgUmVuZGVyVGhlbWVJT1M6OnNldENTU1ZhbHVlVG9TeXN0ZW1D
b2xvck1hcChIYXNoTWFwPENTU1ZhbHVlS2V5LCBDb2xvcj4gY29sb3JNYXApCit7CisgICAgZ2xv
YmFsQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKCkgPSBXVEZNb3ZlKGNvbG9yTWFwKTsKK30KKwog
Q29sb3IgUmVuZGVyVGhlbWVJT1M6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwg
T3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgY29u
c3QgYm9vbCBmb3JWaXNpdGVkTGluayA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0
aW9uczo6Rm9yVmlzaXRlZExpbmspOwpAQCAtMTQ0Niw4MCArMTU1MCwxNyBAQCBDb2xvciBSZW5k
ZXJUaGVtZUlPUzo6c3lzdGVtQ29sb3IoQ1NTVmFsCiAgICAgcmV0dXJuIGNhY2hlLnN5c3RlbVN0
eWxlQ29sb3JzLmVuc3VyZShjc3NWYWx1ZUlELCBbdGhpcywgY3NzVmFsdWVJRCwgb3B0aW9uc10g
KCkgLT4gQ29sb3IgewogICAgICAgICBjb25zdCBib29sIHVzZURhcmtBcHBlYXJhbmNlID0gb3B0
aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CiAg
ICAgICAgIGNvbnN0IGJvb2wgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgPSBvcHRpb25z
LmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxl
dmVsKTsKLSAgICAgICAgTG9jYWxDdXJyZW50VHJhaXRDb2xsZWN0aW9uIGxvY2FsVHJhaXRDb2xs
ZWN0aW9uKHVzZURhcmtBcHBlYXJhbmNlLCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCk7
Ci0KLSAgICAgICAgYXV0byBjc3NDb2xvclRvU2VsZWN0b3IgPSBbY3NzVmFsdWVJRF0gKCkgLT4g
U0VMIHsKLSAgICAgICAgICAgIHN3aXRjaCAoY3NzVmFsdWVJRCkgewotI2lmIEhBVkUoT1NfREFS
S19NT0RFX1NVUFBPUlQpCi0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlVGV4dDoKLSAgICAgICAg
ICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUxhYmVsOgotICAgICAgICAgICAgY2FzZSBDU1NW
YWx1ZUFwcGxlU3lzdGVtSGVhZGVyVGV4dDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVj
dG9yKGxhYmVsQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vj
b25kYXJ5TGFiZWw6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzZWNvbmRhcnlM
YWJlbENvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVRlcnRpYXJ5
TGFiZWw6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3Rvcih0ZXJ0aWFyeUxhYmVsQ29s
b3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtUXVhdGVybmFyeUxhYmVs
OgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3IocXVhdGVybmFyeUxhYmVsQ29sb3Ip
OwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtUGxhY2Vob2xkZXJUZXh0Ogot
ICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3IocGxhY2Vob2xkZXJUZXh0Q29sb3IpOwot
ICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdENvbnRyb2xCYWNrZ3JvdW5kOgotICAgICAg
ICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtQ29udHJvbEJhY2tncm91bmQ6Ci0gICAgICAg
ICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1UZXh0QmFja2dyb3VuZDoKLSAgICAgICAgICAg
IGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUJhY2tncm91bmQ6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIEBzZWxlY3RvcihzeXN0ZW1CYWNrZ3JvdW5kQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBD
U1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5QmFja2dyb3VuZDoKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gQHNlbGVjdG9yKHNlY29uZGFyeVN5c3RlbUJhY2tncm91bmRDb2xvcik7Ci0gICAgICAg
ICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1UZXJ0aWFyeUJhY2tncm91bmQ6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIEBzZWxlY3Rvcih0ZXJ0aWFyeVN5c3RlbUJhY2tncm91bmRDb2xvcik7
Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1Hcm91cGVkQmFja2dyb3VuZDoK
LSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbUdyb3VwZWRCYWNrZ3JvdW5k
Q29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5R3Jv
dXBlZEJhY2tncm91bmQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzZWNvbmRh
cnlTeXN0ZW1Hcm91cGVkQmFja2dyb3VuZENvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFs
dWVBcHBsZVN5c3RlbVRlcnRpYXJ5R3JvdXBlZEJhY2tncm91bmQ6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIEBzZWxlY3Rvcih0ZXJ0aWFyeVN5c3RlbUdyb3VwZWRCYWNrZ3JvdW5kQ29sb3IpOwot
ICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtR3JpZDoKLSAgICAgICAgICAgIGNh
c2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVNlcGFyYXRvcjoKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFs
dWVBcHBsZVN5c3RlbUNvbnRhaW5lckJvcmRlcjoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNl
bGVjdG9yKHNlcGFyYXRvckNvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5
c3RlbVNlbGVjdGVkQ29udGVudEJhY2tncm91bmQ6Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVl
QXBwbGVTeXN0ZW1VbmVtcGhhc2l6ZWRTZWxlY3RlZENvbnRlbnRCYWNrZ3JvdW5kOgotICAgICAg
ICAgICAgICAgIHJldHVybiBAc2VsZWN0b3IodGFibGVDZWxsRGVmYXVsdFNlbGVjdGlvblRpbnRD
b2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1Ccm93bjoKLSAgICAg
ICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbUJyb3duQ29sb3IpOwotICAgICAgICAg
ICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtSW5kaWdvOgotICAgICAgICAgICAgICAgIHJldHVy
biBAc2VsZWN0b3Ioc3lzdGVtSW5kaWdvQ29sb3IpOwotI2VuZGlmCi0gICAgICAgICAgICBjYXNl
IENTU1ZhbHVlQXBwbGVTeXN0ZW1UZWFsOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0
b3Ioc3lzdGVtVGVhbENvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVdpcmVs
ZXNzUGxheWJhY2tUYXJnZXRBY3RpdmU6Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVT
eXN0ZW1CbHVlOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtQmx1ZUNv
bG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUdyYXk6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1HcmF5Q29sb3IpOwotICAgICAgICAgICAg
Y2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtR3JlZW46Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBz
ZWxlY3RvcihzeXN0ZW1HcmVlbkNvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBs
ZVN5c3RlbU9yYW5nZToKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbU9y
YW5nZUNvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVBpbms6Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1QaW5rQ29sb3IpOwotICAgICAg
ICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtUHVycGxlOgotICAgICAgICAgICAgICAgIHJl
dHVybiBAc2VsZWN0b3Ioc3lzdGVtUHVycGxlQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NW
YWx1ZUFwcGxlU3lzdGVtUmVkOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lz
dGVtUmVkQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtWWVsbG93
OgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtWWVsbG93Q29sb3IpOwot
ICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAg
ICAgICAgICAgIH0KLSAgICAgICAgfTsKLQotICAgICAgICBpZiAoYXV0byBzZWxlY3RvciA9IGNz
c0NvbG9yVG9TZWxlY3RvcigpKSB7Ci0gICAgICAgICAgICBpZiAoYXV0byBjb2xvciA9IHd0Zk9i
akNNc2dTZW5kPFVJQ29sb3IgKj4oUEFMOjpnZXRVSUNvbG9yQ2xhc3MoKSwgc2VsZWN0b3IpKQot
ICAgICAgICAgICAgICAgIHJldHVybiBDb2xvcihjb2xvci5DR0NvbG9yLCBDb2xvcjo6U2VtYW50
aWMpOworICAgICAgICBpZiAoZ2xvYmFsQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKCkpIHsKKyAg
ICAgICAgICAgIGF1dG8gaXQgPSBnbG9iYWxDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKS0+Zmlu
ZChDU1NWYWx1ZUtleSB7IGNzc1ZhbHVlSUQsIHVzZURhcmtBcHBlYXJhbmNlLCB1c2VFbGV2YXRl
ZFVzZXJJbnRlcmZhY2VMZXZlbCB9KTsKKyAgICAgICAgICAgIGlmIChpdCA9PSBnbG9iYWxDU1NW
YWx1ZVRvU3lzdGVtQ29sb3JNYXAoKS0+ZW5kKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIFJl
bmRlclRoZW1lOjpzeXN0ZW1Db2xvcihjc3NWYWx1ZUlELCBvcHRpb25zKTsKKyAgICAgICAgICAg
IHJldHVybiBpdC0+dmFsdWU7CiAgICAgICAgIH0KLQorICAgICAgICBhdXRvIGNvbG9yID0gc3lz
dGVtQ29sb3JGcm9tQ1NTVmFsdWVJRChjc3NWYWx1ZUlELCB1c2VEYXJrQXBwZWFyYW5jZSwgdXNl
RWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOworICAgICAgICBpZiAoY29sb3IpCisgICAgICAg
ICAgICByZXR1cm4gKmNvbG9yOwogICAgICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnN5c3RlbUNv
bG9yKGNzc1ZhbHVlSUQsIG9wdGlvbnMpOworCiAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOwogfQog
CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjUyNTkzKQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyNSBAQAorMjAxOS0xMS0xOCAgUGVyIEFybmUg
Vm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFwIENTUyB2YWx1ZSBJRCB0
byBzeXN0ZW0gY29sb3IgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDMxNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTcyOTUzOTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ3JlYXRlIG1hcHBpbmcgYmV0d2VlbiBDU1MgdmFsdWUgSURzIGFuZCBzeXN0ZW0gY29sb3Jz
IGluIHRoZSBVSSBwcm9jZXNzIGFuZCBzZW5kIHRvIHRoZSBXZWJDb250ZW50IHByb2Nlc3MKKyAg
ICAgICAgb24gcHJvY2VzcyBzdGFydHVwLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJl
ZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MpOgorCiAyMDE5LTExLTE4ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNv
bT4KIAogICAgICAgICBXS1dlYlZpZXcubWVkaWFUeXBlIGlzIG51bGxhYmxlLCBub3QgbnVsbF9y
ZXNldHRhYmxlCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjUyNTkzKQorKysgU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE1OCw2ICsxNTgsMTAgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjplbmNvZAogI2VuZGlmCiAKICAgICBlbmNvZGVyIDw8IHdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0
ZXJzOworICAgIAorI2lmIFBMQVRGT1JNKElPUykKKyAgICBlbmNvZGVyIDw8IGNzc1ZhbHVlVG9T
eXN0ZW1Db2xvck1hcDsKKyNlbmRpZgogfQogCiBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMmIHBhcmFtZXRlcnMpCkBAIC0zODgsNiArMzkyLDE0IEBAIGJvb2wgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHBh
cmFtZXRlcnMud2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMgPSBXVEZNb3ZlKCp3ZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVycyk7CiAKKyNpZiBQTEFURk9STShJT1MpCisgICAgT3B0aW9uYWw8SGFz
aE1hcDxXZWJDb3JlOjpDU1NWYWx1ZUtleSwgV2ViQ29yZTo6Q29sb3I+PiBjc3NWYWx1ZVRvU3lz
dGVtQ29sb3JNYXA7CisgICAgZGVjb2RlciA+PiBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7Cisg
ICAgaWYgKCFjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXApCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBwYXJhbWV0ZXJzLmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCA9IFdURk1vdmUoKmNzc1Zh
bHVlVG9TeXN0ZW1Db2xvck1hcCk7CisjZW5kaWYKKwogICAgIHJldHVybiB0cnVlOwogfQogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oCShyZXZpc2lvbiAyNTI1OTMpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDEw
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Tb3VwTmV0d29ya1Byb3h5U2V0dGluZ3MuaD4KICNlbmRp
ZgogCisjaWYgUExBVEZPUk0oSU9TKQorI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVGhlbWVJT1Mu
aD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIERhdGE7CiB9CkBAIC0xOTYsNiAr
MjAwLDEwIEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICNlbmRpZgog
CiAgICAgT3B0aW9uYWw8V2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnM+IHdlYnNpdGVEYXRh
U3RvcmVQYXJhbWV0ZXJzOworICAgIAorI2lmIFBMQVRGT1JNKElPUykKKyAgICBIYXNoTWFwPFdl
YkNvcmU6OkNTU1ZhbHVlS2V5LCBXZWJDb3JlOjpDb2xvcj4gY3NzVmFsdWVUb1N5c3RlbUNvbG9y
TWFwOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQko
cmV2aXNpb24gMjUyNTkzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjY0LDYgKzI2NCwxMCBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXCiAgICAgcGFyYW1ldGVycy5zY3Jl
ZW5Qcm9wZXJ0aWVzID0gV1RGTW92ZShzY3JlZW5Qcm9wZXJ0aWVzKTsKICAgICBwYXJhbWV0ZXJz
LnVzZU92ZXJsYXlTY3JvbGxiYXJzID0gKFtOU1Njcm9sbGVyIHByZWZlcnJlZFNjcm9sbGVyU3R5
bGVdID09IE5TU2Nyb2xsZXJTdHlsZU92ZXJsYXkpOwogI2VuZGlmCisgICAgCisjaWYgUExBVEZP
Uk0oSU9TKQorICAgIHBhcmFtZXRlcnMuY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwID0gUmVuZGVy
VGhlbWVJT1M6OmNyZWF0ZUNTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpOworI2VuZGlmCiB9CiAK
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNzKE5l
dHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpJbmRleDogU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCShyZXZp
c2lvbiAyNTI1OTMpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMjEsNiArMjIxLDEwIEBAIHZvaWQgV2ViUHJv
Y2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIKICAgICBzY3JvbGxlclN0eWxlUHJlZmVyZW5j
ZUNoYW5nZWQocGFyYW1ldGVycy51c2VPdmVybGF5U2Nyb2xsYmFycyk7CiAjZW5kaWYKICNlbmRp
ZgorCisjaWYgUExBVEZPUk0oSU9TKQorICAgIFJlbmRlclRoZW1lSU9TOjpzZXRDU1NWYWx1ZVRv
U3lzdGVtQ29sb3JNYXAoV1RGTW92ZShwYXJhbWV0ZXJzLmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1h
cCkpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRXZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBhcmFtZXRl
cnMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385624</attachid>
            <date>2019-12-13 11:51:07 -0800</date>
            <delta_ts>2019-12-14 08:32:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204314-20191213115106.patch</filename>
            <type>text/plain</type>
            <size>25730</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MzQ1MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE5LTEyLTEyICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNYXAgQ1NTIHZhbHVlIElE
IHRvIHN5c3RlbSBjb2xvciBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MzE0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81NzI5NTM5Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAg
ICAgIEN1cnJlbnRseSwgUmVuZGVyVGhlbWVJT1MgaXMgbWFwcGluZyBDU1MgdmFsdWUgSURzIHRv
IHN5c3RlbSBjb2xvcnMgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcy4gVGhpcyBtYXBwaW5nIGxl
YWRzIHRvCisgICAgICAgIGludm9raW5nIHNlbGVjdG9ycyBvbiBVSVRyYWl0Q29sbGVjdGlvbiBh
bmQgVUlDb2xvciwgd2hpY2ggd2lsbCBzZW5kIG1lc3NhZ2VzIHRvIHRoZSBydW5uaW5nYm9hcmQg
ZGFlbW9uLiBTaW5jZSB3ZQorICAgICAgICB3aWxsIGJlIGJsb2NraW5nIGFjY2VzcyB0byB0aGlz
IGRhZW1vbiBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLCB0aGlzIG1hcHBpbmcgc2hvdWxkIGJl
IG1vdmVkIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGUgVUkgcHJvY2VzcyB3aWxsIGNy
ZWF0ZSBhIG1hcHBpbmcgYmV0d2VlbiBDU1MgdmFsdWUgSURzIGFuZCBzeXN0ZW0gY29sb3JzLCBh
bmQgcGFzcyBpdCB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNzLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiByZW5kZXJpbmcvQ1NTVmFsdWVLZXku
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ZhbHVlS2V5OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFs
dWVLZXk6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZUtleTo6aGFzaCBjb25z
dCk6CisgICAgICAgIChXVEY6OkNTU1ZhbHVlS2V5SGFzaDo6aGFzaCk6CisgICAgICAgIChXVEY6
OkNTU1ZhbHVlS2V5SGFzaDo6ZXF1YWwpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNv
cmU6OkNTU1ZhbHVlS2V5Pjo6ZW1wdHlWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8
V2ViQ29yZTo6Q1NTVmFsdWVLZXk+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOgorICAgICAgICAo
V1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OkNTU1ZhbHVlS2V5Pjo6aXNEZWxldGVkVmFsdWUpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNzc1ZhbHVlSURTZWxlY3Rv
ckxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6c3lzdGVtQ29sb3JGcm9tQ1NTVmFsdWVJRCk6Cisg
ICAgICAgIChXZWJDb3JlOjpnbG9iYWxDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXApOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OmNyZWF0ZUNTU1ZhbHVlVG9TeXN0ZW1Db2xvck1h
cCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6c2V0Q1NTVmFsdWVUb1N5c3Rl
bUNvbG9yTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpzeXN0ZW1Db2xv
ciBjb25zdCk6CisKIDIwMTktMTItMTIgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTcyODE0KTogRG9uJ3QgZXhwb3J0IGlubGluZSBT
UUxpdGVEYXRhYmFzZTo6ZGlzYWJsZVRocmVhZGluZ0NoZWNrcygpIG1ldGhvZApJbmRleDogU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMjUzNDUyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00NzkxLDYgKzQ3OTEsNyBAQAogCQlFM0IyRjBF
RDFEN0Y0Q0EzMDBCMEM5RDEgLyogTG9hZGFibGVTY3JpcHQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQjJGMEU3MUQ3RjM1RUMwMEIwQzlEMSAvKiBM
b2FkYWJsZVNjcmlwdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUUzQjJGMEVFMUQ3RjRDQTkwMEIwQzlEMSAvKiBMb2FkYWJsZVNjcmlwdENsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCMkYw
RTgxRDdGMzVFQzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0Q2xpZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNCMkYwRjAxRDdGNENCNTAw
QjBDOUQxIC8qIExvYWRhYmxlQ2xhc3NpY1NjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCMkYwRTQxRDdGMzVFQzAwQjBDOUQxIC8qIExvYWRh
YmxlQ2xhc3NpY1NjcmlwdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCUUzQkJDMjQ3MjM4MzU1MjYwMDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCQkMyNDUyMzgz
NTUxQTAwNkVDMzlGIC8qIENTU1ZhbHVlS2V5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNDOTlBMDkxREMzRDQxQzAwNzk0QUQzIC8qIERPTUpJ
VENoZWNrRE9NLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFM0M5OUEwODFEQzNENDE3MDA3OTRBRDMgLyogRE9NSklUQ2hlY2tET00uaCAqLzsgfTsKIAkJ
RTNDOUFFQ0IyMTEzMTQ5OTAwNDE5QjkyIC8qIEpTTWljcm90YXNrQ2FsbGJhY2suaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQzlBRUM5MjExMzE0NzQw
MDQxOUI5MiAvKiBKU01pY3JvdGFza0NhbGxiYWNrLmggKi87IH07CiAJCUUzRTRFMkE4MUUzQjE3
MTAwMDIzQkI4QSAvKiBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNFNEUyQTYxRTNCMTZGQzAw
MjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1MTE4LDYgKzE1MTE5LDcg
QEAKIAkJRTNCMkYwRTgxRDdGMzVFQzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0Q2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvYWRhYmxlU2NyaXB0Q2xpZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQjJGMEU5MUQ3RjNEM0MwMEIwQzlEMSAv
KiBMb2FkYWJsZVNjcmlwdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBMb2FkYWJsZVNjcmlwdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQjdD
MDYyMURDMzQxNUEwMDFGQjBCOCAvKiBKU0RvY3VtZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRG9jdW1lbnRET01KSVQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFM0JCQzI0NTIzODM1NTFBMDA2RUMzOUYgLyogQ1NTVmFsdWVL
ZXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTVmFsdWVLZXkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNCQzgyNzMyMjUzMDIyMTAwNTI3NkRFIC8qIE5v
ZGVMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5vZGVMaXN0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTNCRjE5RTEyMkFGMkY1NTAwOUM5OTI2IC8qIFhNTEh0dHBSZXF1
ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0JGMTlFMzIy
QUYyRkE1MDA5Qzk5MjYgLyogT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTI3NjMzLDYgKzI3NjM1LDcgQEAKIAkJCQk5MzkyRjE0QjBBRDE4NjFC
MDA2OTFCRDQgLyogQ291bnRlck5vZGUuaCAqLywKIAkJCQkwRjUzRkI4MTIxM0IxQkI4MDBDNDBE
MzQgLyogQ1NTRmlsdGVyLmNwcCAqLywKIAkJCQkwRjUzRkI4MzIxM0IxQkI4MDBDNDBEMzQgLyog
Q1NTRmlsdGVyLmggKi8sCisJCQkJRTNCQkMyNDUyMzgzNTUxQTAwNkVDMzlGIC8qIENTU1ZhbHVl
S2V5LmggKi8sCiAJCQkJQThDRkY2Q0EwQTE1NjFDRDAwMEE0MjM0IC8qIEVsbGlwc2lzQm94LmNw
cCAqLywKIAkJCQlBOENGRjZCRDBBMTU2MTE4MDAwQTQyMzQgLyogRWxsaXBzaXNCb3guaCAqLywK
IAkJCQlFNEE4RDIxNTIyNTc4REEwMDBBODQ2M0MgLyogRXZlbnRSZWdpb24uY3BwICovLApAQCAt
Mjk1MTMsNiArMjk1MTYsNyBAQAogCQkJCUREN0NERjI1MEEyM0NGOTgwMDA2OTkyOCAvKiBDU1NV
bmtub3duUnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3RDhGRjAxQkQwM0I2NDAwRkZFNTQw
IC8qIENTU1Vuc2V0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2Q0VFMEExOTg5Q0Ew
MDdGQjhDNSAvKiBDU1NWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTNCQkMyNDcyMzgzNTUy
NjAwNkVDMzlGIC8qIENTU1ZhbHVlS2V5LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTY1ODE1MTA5
RDEzMDQzMDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTgwRTZDRTkwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1ZhbHVlTGlzdC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJRTQ5QkQ5RkExMzFGRDJFRDAwM0M1NkYwIC8qIENTU1ZhbHVlUG9vbC5oIGluIEhlYWRl
cnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTVmFsdWVLZXkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTVmFsdWVLZXkuaAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ1NTVmFsdWVLZXkuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0
cnVjdCBDU1NWYWx1ZUtleSB7CisKKyAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3Q7CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAg
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9wdGlvbmFsPENTU1ZhbHVlS2V5PiBkZWNv
ZGUoRGVjb2RlciYpOworCisgICAgdW5zaWduZWQgY3NzVmFsdWVJRDsKKyAgICBib29sIHVzZURh
cmtBcHBlYXJhbmNlOworICAgIGJvb2wgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWw7Cit9
OworCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENTU1ZhbHVlS2V5JiBhLCBjb25zdCBD
U1NWYWx1ZUtleSYgYikKK3sKKyAgICByZXR1cm4gYS5jc3NWYWx1ZUlEID09IGIuY3NzVmFsdWVJ
RCAmJiBhLnVzZURhcmtBcHBlYXJhbmNlID09IGIudXNlRGFya0FwcGVhcmFuY2UgJiYgYS51c2VF
bGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA9PSBiLnVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxl
dmVsOworfQorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBDU1NWYWx1ZUtleTo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBjc3NWYWx1ZUlE
OworICAgIGVuY29kZXIgPDwgdXNlRGFya0FwcGVhcmFuY2U7CisgICAgZW5jb2RlciA8PCB1c2VF
bGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4K
K09wdGlvbmFsPENTU1ZhbHVlS2V5PiBDU1NWYWx1ZUtleTo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCit7CisgICAgT3B0aW9uYWw8dW5zaWduZWQ+IGNzc1ZhbHVlSUQ7CisgICAgZGVjb2RlciA+
PiBjc3NWYWx1ZUlEOworICAgIGlmICghY3NzVmFsdWVJRCkKKyAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKKyAgICBPcHRpb25hbDxib29sPiB1c2VEYXJrQXBwZWFyYW5jZTsKKyAgICBkZWNv
ZGVyID4+IHVzZURhcmtBcHBlYXJhbmNlOworICAgIGlmICghdXNlRGFya0FwcGVhcmFuY2UpCisg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgT3B0aW9uYWw8Ym9vbD4gdXNlRWxldmF0
ZWRVc2VySW50ZXJmYWNlTGV2ZWw7CisgICAgZGVjb2RlciA+PiB1c2VFbGV2YXRlZFVzZXJJbnRl
cmZhY2VMZXZlbDsKKyAgICBpZiAoIXVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJldHVybiB7IHsgV1RGTW92ZSgqY3NzVmFs
dWVJRCksIFdURk1vdmUoKnVzZURhcmtBcHBlYXJhbmNlKSwgV1RGTW92ZSgqdXNlRWxldmF0ZWRV
c2VySW50ZXJmYWNlTGV2ZWwpIH0gfTsKK30KKworaW5saW5lIHVuc2lnbmVkIENTU1ZhbHVlS2V5
OjpoYXNoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gY3NzVmFsdWVJRDsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKworc3RydWN0IENTU1ZhbHVlS2V5SGFz
aCB7CisgICAgc3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgV2ViQ29yZTo6Q1NTVmFsdWVLZXkm
IGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQorICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0
IFdlYkNvcmU6OkNTU1ZhbHVlS2V5JiBhLCBjb25zdCBXZWJDb3JlOjpDU1NWYWx1ZUtleSYgYikg
eyByZXR1cm4gYSA9PSBiOyB9CisgICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRv
RW1wdHlPckRlbGV0ZWQgPSB0cnVlOworfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0
czxXZWJDb3JlOjpDU1NWYWx1ZUtleT4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJDb3JlOjpDU1NW
YWx1ZUtleT4geworICAgIHN0YXRpYyBXZWJDb3JlOjpDU1NWYWx1ZUtleSBlbXB0eVZhbHVlKCkg
eyByZXR1cm4gV2ViQ29yZTo6Q1NTVmFsdWVLZXkgeyBXZWJDb3JlOjpDU1NWYWx1ZUludmFsaWQs
IGZhbHNlLCBmYWxzZX07IH0KKyAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUo
V2ViQ29yZTo6Q1NTVmFsdWVLZXkmIHNsb3QpIHsgc2xvdCA9IFdlYkNvcmU6OkNTU1ZhbHVlS2V5
IHsgV2ViQ29yZTo6Q1NTVmFsdWVJbnZhbGlkLCB0cnVlLCB0cnVlfTt9CisgICAgc3RhdGljIGJv
b2wgaXNEZWxldGVkVmFsdWUoY29uc3QgV2ViQ29yZTo6Q1NTVmFsdWVLZXkmIHNsb3QpIHsgcmV0
dXJuIHNsb3QuY3NzVmFsdWVJRCA9PSBXZWJDb3JlOjpDU1NWYWx1ZUludmFsaWQgJiYgc2xvdC51
c2VEYXJrQXBwZWFyYW5jZSAmJiBzbG90LnVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsOyB9
Cit9OworCit0ZW1wbGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJDb3JlOjpDU1NWYWx1ZUtl
eT4geworICAgIHR5cGVkZWYgQ1NTVmFsdWVLZXlIYXNoIEhhc2g7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXVEYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5o
CShyZXZpc2lvbiAyNTM0NTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVJT1MuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKIAorI2luY2x1ZGUgIkNTU1ZhbHVlS2V5LmgiCiAjaW5jbHVkZSAiUmVuZGVy
VGhlbWVDb2NvYS5oIgogCiAjaWYgVVNFKFNZU1RFTV9QUkVWSUVXKQpAQCAtNTksNiArNjAsOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBwYWludFN5c3RlbVByZXZpZXdCYWRnZShJbWFnZSYsIGNvbnN0
IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogI2VuZGlmCiAKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgSGFzaE1hcDxDU1NWYWx1ZUtleSwgQ29sb3I+IGNyZWF0ZUNT
U1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lk
IHNldENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcChIYXNoTWFwPENTU1ZhbHVlS2V5LCBDb2xvcj4m
Jik7CisgICAgCiBwcm90ZWN0ZWQ6CiAgICAgTGVuZ3RoQm94IHBvcHVwSW50ZXJuYWxQYWRkaW5n
Qm94KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCShyZXZpc2lvbiAyNTM0NTIp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIkJpdG1hcEltYWdlLmgiCiAjaW1wb3J0
ICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2ltcG9ydCAiQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0
YS5oIgorI2ltcG9ydCAiQ1NTVmFsdWVLZXkuaCIKICNpbXBvcnQgIkNTU1ZhbHVlS2V5d29yZHMu
aCIKICNpbXBvcnQgIkNvbG9ySU9TLmgiCiAjaW1wb3J0ICJEYXRlQ29tcG9uZW50cy5oIgpAQCAt
MTQzMCw2ICsxNDMxLDEwOCBAQCBTdHJpbmcgUmVuZGVyVGhlbWVJT1M6Om1lZGlhQ29udHJvbHNC
YXNlCiAKICNlbmRpZiAvLyBFTkFCTEUoVklERU8pCiAKK3N0cnVjdCBDU1NWYWx1ZUlEQW5kU2Vs
ZWN0b3IgeworICAgIENTU1ZhbHVlSUQgY3NzVmFsdWVJRDsKKyAgICBTRUwgc2VsZWN0b3I7Cit9
OworCitzdGF0aWMgVmVjdG9yPENTU1ZhbHVlSURBbmRTZWxlY3Rvcj4mIGNzc1ZhbHVlSURTZWxl
Y3Rvckxpc3QoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8Q1NTVmFsdWVJ
REFuZFNlbGVjdG9yPj4gY3NzVmFsdWVJRFNlbGVjdG9yTGlzdDsKKworICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBpbml0aWFsaXplT25jZTsKKyAgICBzdGQ6OmNhbGxfb25jZSgKKyAgICAgICAg
aW5pdGlhbGl6ZU9uY2UsCisgICAgICAgIFtdIHsKKyAgICAgICAgY3NzVmFsdWVJRFNlbGVjdG9y
TGlzdC5nZXQoKSA9IFZlY3RvcihzdGQ6OmluaXRpYWxpemVyX2xpc3Q8Q1NTVmFsdWVJREFuZFNl
bGVjdG9yPiB7CisjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKKyAgICAgICAgICAgIHsg
Q1NTVmFsdWVUZXh0LCBAc2VsZWN0b3IobGFiZWxDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NT
VmFsdWVBcHBsZVN5c3RlbUxhYmVsLCBAc2VsZWN0b3IobGFiZWxDb2xvcikgfSwKKyAgICAgICAg
ICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUhlYWRlclRleHQsIEBzZWxlY3RvcihsYWJlbENvbG9y
KSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5TGFiZWwsIEBz
ZWxlY3RvcihzZWNvbmRhcnlMYWJlbENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFw
cGxlU3lzdGVtVGVydGlhcnlMYWJlbCwgQHNlbGVjdG9yKHRlcnRpYXJ5TGFiZWxDb2xvcikgfSwK
KyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVF1YXRlcm5hcnlMYWJlbCwgQHNlbGVj
dG9yKHF1YXRlcm5hcnlMYWJlbENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxl
U3lzdGVtUGxhY2Vob2xkZXJUZXh0LCBAc2VsZWN0b3IocGxhY2Vob2xkZXJUZXh0Q29sb3IpIH0s
CisgICAgICAgICAgICB7IENTU1ZhbHVlV2Via2l0Q29udHJvbEJhY2tncm91bmQsIEBzZWxlY3Rv
cihzeXN0ZW1CYWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVT
eXN0ZW1Db250cm9sQmFja2dyb3VuZCwgQHNlbGVjdG9yKHN5c3RlbUJhY2tncm91bmRDb2xvcikg
fSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVRleHRCYWNrZ3JvdW5kLCBAc2Vs
ZWN0b3Ioc3lzdGVtQmFja2dyb3VuZENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFw
cGxlU3lzdGVtQmFja2dyb3VuZCwgQHNlbGVjdG9yKHN5c3RlbUJhY2tncm91bmRDb2xvcikgfSwK
KyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVNlY29uZGFyeUJhY2tncm91bmQsIEBz
ZWxlY3RvcihzZWNvbmRhcnlTeXN0ZW1CYWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAgICAgICB7
IENTU1ZhbHVlQXBwbGVTeXN0ZW1UZXJ0aWFyeUJhY2tncm91bmQsIEBzZWxlY3Rvcih0ZXJ0aWFy
eVN5c3RlbUJhY2tncm91bmRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5
c3RlbUdyb3VwZWRCYWNrZ3JvdW5kLCBAc2VsZWN0b3Ioc3lzdGVtR3JvdXBlZEJhY2tncm91bmRD
b2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVNlY29uZGFyeUdyb3Vw
ZWRCYWNrZ3JvdW5kLCBAc2VsZWN0b3Ioc2Vjb25kYXJ5U3lzdGVtR3JvdXBlZEJhY2tncm91bmRD
b2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVRlcnRpYXJ5R3JvdXBl
ZEJhY2tncm91bmQsIEBzZWxlY3Rvcih0ZXJ0aWFyeVN5c3RlbUdyb3VwZWRCYWNrZ3JvdW5kQ29s
b3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1HcmlkLCBAc2VsZWN0b3Io
c2VwYXJhdG9yQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1TZXBh
cmF0b3IsIEBzZWxlY3RvcihzZXBhcmF0b3JDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFs
dWVBcHBsZVN5c3RlbUNvbnRhaW5lckJvcmRlciwgQHNlbGVjdG9yKHNlcGFyYXRvckNvbG9yKSB9
LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtU2VsZWN0ZWRDb250ZW50QmFja2dy
b3VuZCwgQHNlbGVjdG9yKHRhYmxlQ2VsbERlZmF1bHRTZWxlY3Rpb25UaW50Q29sb3IpIH0sCisg
ICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1VbmVtcGhhc2l6ZWRTZWxlY3RlZENvbnRl
bnRCYWNrZ3JvdW5kLCBAc2VsZWN0b3IodGFibGVDZWxsRGVmYXVsdFNlbGVjdGlvblRpbnRDb2xv
cikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUJyb3duLCBAc2VsZWN0b3Io
c3lzdGVtQnJvd25Db2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUlu
ZGlnbywgQHNlbGVjdG9yKHN5c3RlbUluZGlnb0NvbG9yKSB9LAorI2VuZGlmCisgICAgICAgICAg
ICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1UZWFsLCBAc2VsZWN0b3Ioc3lzdGVtVGVhbENvbG9yKSB9
LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlV2lyZWxlc3NQbGF5YmFja1RhcmdldEFjdGl2
ZSwgQHNlbGVjdG9yKHN5c3RlbUJsdWVDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVB
cHBsZVN5c3RlbUJsdWUsIEBzZWxlY3RvcihzeXN0ZW1CbHVlQ29sb3IpIH0sCisgICAgICAgICAg
ICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1HcmF5LCBAc2VsZWN0b3Ioc3lzdGVtR3JheUNvbG9yKSB9
LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtR3JlZW4sIEBzZWxlY3RvcihzeXN0
ZW1HcmVlbkNvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtT3Jhbmdl
LCBAc2VsZWN0b3Ioc3lzdGVtT3JhbmdlQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVl
QXBwbGVTeXN0ZW1QaW5rLCBAc2VsZWN0b3Ioc3lzdGVtUGlua0NvbG9yKSB9LAorICAgICAgICAg
ICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtUHVycGxlLCBAc2VsZWN0b3Ioc3lzdGVtUHVycGxlQ29s
b3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1SZWQsIEBzZWxlY3Rvcihz
eXN0ZW1SZWRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVllbGxv
dywgQHNlbGVjdG9yKHN5c3RlbVllbGxvd0NvbG9yKSB9CisgICAgICAgIH0pOworICAgIH0pOwor
CisgICAgcmV0dXJuIGNzc1ZhbHVlSURTZWxlY3Rvckxpc3Q7Cit9CisKK3N0YXRpYyBPcHRpb25h
bDxDb2xvcj4gc3lzdGVtQ29sb3JGcm9tQ1NTVmFsdWVJRChDU1NWYWx1ZUlEIGNzc1ZhbHVlSUQs
IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UsIGJvb2wgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2
ZWwpCit7CisgICAgTG9jYWxDdXJyZW50VHJhaXRDb2xsZWN0aW9uIGxvY2FsVHJhaXRDb2xsZWN0
aW9uKHVzZURhcmtBcHBlYXJhbmNlLCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCk7CisK
KyAgICBhdXRvIGNzc0NvbG9yVG9TZWxlY3RvciA9IFtjc3NWYWx1ZUlEXSAoKSAtPiBTRUwgewor
ICAgICAgICBmb3IgKGF1dG8mIGNzc1ZhbHVlSURTZWxlY3RvcnMgOiBjc3NWYWx1ZUlEU2VsZWN0
b3JMaXN0KCkpIHsKKyAgICAgICAgICAgIGlmIChjc3NWYWx1ZUlEU2VsZWN0b3JzLmNzc1ZhbHVl
SUQgPT0gY3NzVmFsdWVJRCkKKyAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVJRFNlbGVj
dG9ycy5zZWxlY3RvcjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9
OworCisgICAgaWYgKGF1dG8gc2VsZWN0b3IgPSBjc3NDb2xvclRvU2VsZWN0b3IoKSkgeworICAg
ICAgICBpZiAoYXV0byBjb2xvciA9IHd0Zk9iakNNc2dTZW5kPFVJQ29sb3IgKj4oUEFMOjpnZXRV
SUNvbG9yQ2xhc3MoKSwgc2VsZWN0b3IpKQorICAgICAgICAgICAgcmV0dXJuIENvbG9yKGNvbG9y
LkNHQ29sb3IsIENvbG9yOjpTZW1hbnRpYyk7CisgICAgfQorICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7Cit9CisKKworc3RhdGljIE9wdGlvbmFsPEhhc2hNYXA8Q1NTVmFsdWVLZXksIENvbG9yPj4m
IGdsb2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPE9wdGlvbmFsPEhhc2hNYXA8Q1NTVmFsdWVLZXksIENvbG9yPj4+IGNvbG9yTWFwOwor
ICAgIHJldHVybiBjb2xvck1hcDsKK30KKworSGFzaE1hcDxDU1NWYWx1ZUtleSwgQ29sb3I+IFJl
bmRlclRoZW1lSU9TOjpjcmVhdGVDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKQoreworICAgIEhh
c2hNYXA8Q1NTVmFsdWVLZXksIENvbG9yPiBtYXA7CisKKyAgICBmb3IgKGF1dG8mIGNzc1ZhbHVl
SURTZWxlY3RvciA6IGNzc1ZhbHVlSURTZWxlY3Rvckxpc3QoKSkgeworICAgICAgICBmb3IgKGJv
b2wgdXNlRGFya0FwcGVhcmFuY2UgOiB7IGZhbHNlLCB0cnVlIH0pIHsKKyAgICAgICAgICAgIGZv
ciAoYm9vbCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA6IHsgZmFsc2UsIHRydWUgfSkg
eworICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbG9yID0gc3lzdGVtQ29sb3JGcm9tQ1NTVmFs
dWVJRChjc3NWYWx1ZUlEU2VsZWN0b3IuY3NzVmFsdWVJRCwgdXNlRGFya0FwcGVhcmFuY2UsIHVz
ZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKSkKKyAgICAgICAgICAgICAgICAgICAgbWFwLmFk
ZChDU1NWYWx1ZUtleSB7IGNzc1ZhbHVlSURTZWxlY3Rvci5jc3NWYWx1ZUlELCB1c2VEYXJrQXBw
ZWFyYW5jZSwgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgfSwgKmNvbG9yKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBtYXA7Cit9CisKK3ZvaWQg
UmVuZGVyVGhlbWVJT1M6OnNldENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcChIYXNoTWFwPENTU1Zh
bHVlS2V5LCBDb2xvcj4mJiBjb2xvck1hcCkKK3sKKyAgICBnbG9iYWxDU1NWYWx1ZVRvU3lzdGVt
Q29sb3JNYXAoKSA9IFdURk1vdmUoY29sb3JNYXApOworfQorCiBDb2xvciBSZW5kZXJUaGVtZUlP
Uzo6c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBjb25zdCBib29sIGZvclZpc2l0ZWRM
aW5rID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpGb3JWaXNpdGVkTGlu
ayk7CkBAIC0xNDQ2LDc5ICsxNTQ5LDE1IEBAIENvbG9yIFJlbmRlclRoZW1lSU9TOjpzeXN0ZW1D
b2xvcihDU1NWYWwKICAgICByZXR1cm4gY2FjaGUuc3lzdGVtU3R5bGVDb2xvcnMuZW5zdXJlKGNz
c1ZhbHVlSUQsIFt0aGlzLCBjc3NWYWx1ZUlELCBvcHRpb25zXSAoKSAtPiBDb2xvciB7CiAgICAg
ICAgIGNvbnN0IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxl
Q29sb3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKICAgICAgICAgY29uc3QgYm9vbCB1
c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xv
cjo6T3B0aW9uczo6VXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOwotICAgICAgICBMb2Nh
bEN1cnJlbnRUcmFpdENvbGxlY3Rpb24gbG9jYWxUcmFpdENvbGxlY3Rpb24odXNlRGFya0FwcGVh
cmFuY2UsIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKLQotICAgICAgICBhdXRvIGNz
c0NvbG9yVG9TZWxlY3RvciA9IFtjc3NWYWx1ZUlEXSAoKSAtPiBTRUwgewotICAgICAgICAgICAg
c3dpdGNoIChjc3NWYWx1ZUlEKSB7Ci0jaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKLSAg
ICAgICAgICAgIGNhc2UgQ1NTVmFsdWVUZXh0OgotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFw
cGxlU3lzdGVtTGFiZWw6Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1IZWFk
ZXJUZXh0OgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3IobGFiZWxDb2xvcik7Ci0g
ICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1TZWNvbmRhcnlMYWJlbDoKLSAgICAg
ICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHNlY29uZGFyeUxhYmVsQ29sb3IpOwotICAgICAg
ICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtVGVydGlhcnlMYWJlbDoKLSAgICAgICAgICAg
ICAgICByZXR1cm4gQHNlbGVjdG9yKHRlcnRpYXJ5TGFiZWxDb2xvcik7Ci0gICAgICAgICAgICBj
YXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1RdWF0ZXJuYXJ5TGFiZWw6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIEBzZWxlY3RvcihxdWF0ZXJuYXJ5TGFiZWxDb2xvcik7Ci0gICAgICAgICAgICBjYXNl
IENTU1ZhbHVlQXBwbGVTeXN0ZW1QbGFjZWhvbGRlclRleHQ6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIEBzZWxlY3RvcihwbGFjZWhvbGRlclRleHRDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENT
U1ZhbHVlV2Via2l0Q29udHJvbEJhY2tncm91bmQ6Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVl
QXBwbGVTeXN0ZW1Db250cm9sQmFja2dyb3VuZDoKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVB
cHBsZVN5c3RlbVRleHRCYWNrZ3JvdW5kOgotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxl
U3lzdGVtQmFja2dyb3VuZDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3Rl
bUJhY2tncm91bmRDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1T
ZWNvbmRhcnlCYWNrZ3JvdW5kOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc2Vj
b25kYXJ5U3lzdGVtQmFja2dyb3VuZENvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVB
cHBsZVN5c3RlbVRlcnRpYXJ5QmFja2dyb3VuZDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNl
bGVjdG9yKHRlcnRpYXJ5U3lzdGVtQmFja2dyb3VuZENvbG9yKTsKLSAgICAgICAgICAgIGNhc2Ug
Q1NTVmFsdWVBcHBsZVN5c3RlbUdyb3VwZWRCYWNrZ3JvdW5kOgotICAgICAgICAgICAgICAgIHJl
dHVybiBAc2VsZWN0b3Ioc3lzdGVtR3JvdXBlZEJhY2tncm91bmRDb2xvcik7Ci0gICAgICAgICAg
ICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1TZWNvbmRhcnlHcm91cGVkQmFja2dyb3VuZDoKLSAg
ICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHNlY29uZGFyeVN5c3RlbUdyb3VwZWRCYWNr
Z3JvdW5kQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtVGVydGlh
cnlHcm91cGVkQmFja2dyb3VuZDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHRl
cnRpYXJ5U3lzdGVtR3JvdXBlZEJhY2tncm91bmRDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENT
U1ZhbHVlQXBwbGVTeXN0ZW1HcmlkOgotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lz
dGVtU2VwYXJhdG9yOgotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtQ29udGFp
bmVyQm9yZGVyOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc2VwYXJhdG9yQ29s
b3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtU2VsZWN0ZWRDb250ZW50
QmFja2dyb3VuZDoKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVVuZW1waGFz
aXplZFNlbGVjdGVkQ29udGVudEJhY2tncm91bmQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBz
ZWxlY3Rvcih0YWJsZUNlbGxEZWZhdWx0U2VsZWN0aW9uVGludENvbG9yKTsKLSAgICAgICAgICAg
IGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUJyb3duOgotICAgICAgICAgICAgICAgIHJldHVybiBA
c2VsZWN0b3Ioc3lzdGVtQnJvd25Db2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBw
bGVTeXN0ZW1JbmRpZ286Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1J
bmRpZ29Db2xvcik7Ci0jZW5kaWYKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3Rl
bVRlYWw6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1UZWFsQ29sb3Ip
OwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlV2lyZWxlc3NQbGF5YmFja1RhcmdldEFj
dGl2ZToKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUJsdWU6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1CbHVlQ29sb3IpOwotICAgICAgICAgICAg
Y2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtR3JheToKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNl
bGVjdG9yKHN5c3RlbUdyYXlDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVT
eXN0ZW1HcmVlbjoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbUdyZWVu
Q29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtT3JhbmdlOgotICAg
ICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtT3JhbmdlQ29sb3IpOwotICAgICAg
ICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtUGluazoKLSAgICAgICAgICAgICAgICByZXR1
cm4gQHNlbGVjdG9yKHN5c3RlbVBpbmtDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVl
QXBwbGVTeXN0ZW1QdXJwbGU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0
ZW1QdXJwbGVDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1SZWQ6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1SZWRDb2xvcik7Ci0gICAg
ICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1ZZWxsb3c6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1ZZWxsb3dDb2xvcik7Ci0gICAgICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICAgICAgfQotICAgICAg
ICB9OwotCi0gICAgICAgIGlmIChhdXRvIHNlbGVjdG9yID0gY3NzQ29sb3JUb1NlbGVjdG9yKCkp
IHsKLSAgICAgICAgICAgIGlmIChhdXRvIGNvbG9yID0gd3RmT2JqQ01zZ1NlbmQ8VUlDb2xvciAq
PihQQUw6OmdldFVJQ29sb3JDbGFzcygpLCBzZWxlY3RvcikpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIENvbG9yKGNvbG9yLkNHQ29sb3IsIENvbG9yOjpTZW1hbnRpYyk7CisgICAgICAgIGlmIChn
bG9iYWxDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKSkgeworICAgICAgICAgICAgYXV0byBpdCA9
IGdsb2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpLT5maW5kKENTU1ZhbHVlS2V5IHsgY3Nz
VmFsdWVJRCwgdXNlRGFya0FwcGVhcmFuY2UsIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVs
IH0pOworICAgICAgICAgICAgaWYgKGl0ID09IGdsb2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1h
cCgpLT5lbmQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnN5c3RlbUNv
bG9yKGNzc1ZhbHVlSUQsIG9wdGlvbnMpOworICAgICAgICAgICAgcmV0dXJuIGl0LT52YWx1ZTsK
ICAgICAgICAgfQotCisgICAgICAgIGF1dG8gY29sb3IgPSBzeXN0ZW1Db2xvckZyb21DU1NWYWx1
ZUlEKGNzc1ZhbHVlSUQsIHVzZURhcmtBcHBlYXJhbmNlLCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZh
Y2VMZXZlbCk7CisgICAgICAgIGlmIChjb2xvcikKKyAgICAgICAgICAgIHJldHVybiAqY29sb3I7
CiAgICAgICAgIHJldHVybiBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoY3NzVmFsdWVJRCwgb3B0
aW9ucyk7CiAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOwogfQpJbmRleDogU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9u
IDI1MzQ1MikKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMjUgQEAKKzIwMTktMTItMTIgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUu
Y29tPgorCisgICAgICAgIE1hcCBDU1MgdmFsdWUgSUQgdG8gc3lzdGVtIGNvbG9yIGluIHRoZSBV
SSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDQzMTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3Mjk1MzkyPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgQ3JlYXRlIG1hcHBpbmcgYmV0d2Vl
biBDU1MgdmFsdWUgSURzIGFuZCBzeXN0ZW0gY29sb3JzIGluIHRoZSBVSSBwcm9jZXNzIGFuZCBz
ZW5kIHRvIHRoZSBXZWJDb250ZW50IHByb2Nlc3MKKyAgICAgICAgb24gcHJvY2VzcyBzdGFydHVw
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKwor
ICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToK
KyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDE5LTEy
LTEyICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIEluZGV4ZWRE
QjogbWFrZSBXZWJJREJTZXJ2ZXIgYSBNZXNzYWdlUmVjZWl2ZXIgdG8gcmVwbGFjZSBXZWJJREJD
b25uZWN0aW9uCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjUzNDUyKQorKysgU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE2OSw2ICsxNjksMTAgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjplbmNvZAogICAgIGVuY29kZXIgPDwgbmVIZWxwZXJFeHRlbnNpb25IYW5kbGU7CiAgICAgZW5j
b2RlciA8PCBuZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOwogI2VuZGlmCisKKyNpZiBQ
TEFURk9STShJT1MpCisgICAgZW5jb2RlciA8PCBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7Cisj
ZW5kaWYKIH0KIAogYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBD
OjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0
ZXJzKQpAQCAtNDI5LDYgKzQzMywxNCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnM6OmRlY29kCiAgICAgcGFyYW1ldGVycy5uZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxl
ID0gV1RGTW92ZSgqbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSk7CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKElPUykKKyAgICBPcHRpb25hbDxIYXNoTWFwPFdlYkNvcmU6OkNTU1ZhbHVl
S2V5LCBXZWJDb3JlOjpDb2xvcj4+IGNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcDsKKyAgICBkZWNv
ZGVyID4+IGNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcDsKKyAgICBpZiAoIWNzc1ZhbHVlVG9TeXN0
ZW1Db2xvck1hcCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMuY3NzVmFs
dWVUb1N5c3RlbUNvbG9yTWFwID0gV1RGTW92ZSgqY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwKTsK
KyNlbmRpZgorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1
MzQ1MikKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L1NvdXBOZXR3b3JrUHJveHlTZXR0aW5ncy5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1Mp
CisjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJUaGVtZUlPUy5oPgorI2VuZGlmCisKIG5hbWVzcGFj
ZSBBUEkgewogY2xhc3MgRGF0YTsKIH0KQEAgLTIwNyw2ICsyMTEsMTAgQEAgc3RydWN0IFdlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZT4gbmVIZWxwZXJFeHRlbnNpb25IYW5kbGU7CiAgICAgT3B0aW9uYWw8U2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlPiBuZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOwogI2VuZGlm
CisKKyNpZiBQTEFURk9STShJT1MpCisgICAgSGFzaE1hcDxXZWJDb3JlOjpDU1NWYWx1ZUtleSwg
V2ViQ29yZTo6Q29sb3I+IGNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcDsKKyNlbmRpZgogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHJldmlzaW9uIDI1MzQ1MikKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHdv
cmtpbmcgY29weSkKQEAgLTMyNCw2ICszMjQsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxh
dGZvcm1Jbml0aWFsaXplVwogICAgICAgICBwYXJhbWV0ZXJzLmNvbnRlbnRGaWx0ZXJFeHRlbnNp
b25IYW5kbGUgPSBXVEZNb3ZlKGhhbmRsZSk7CiAgICAgfQogI2VuZGlmCisgICAgCisjaWYgUExB
VEZPUk0oSU9TKQorICAgIHBhcmFtZXRlcnMuY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwID0gUmVu
ZGVyVGhlbWVJT1M6OmNyZWF0ZUNTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpOworI2VuZGlmCiB9
CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQcm9jZXNz
KE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpJbmRleDogU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCShy
ZXZpc2lvbiAyNTM0NTIpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNDMsNiArMjQzLDEwIEBAIHZvaWQgV2Vi
UHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIKICAgICAgICAgU2FuZGJveEV4dGVuc2lv
bjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNp
b25IYW5kbGUpOwogICAgIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpzZXRIYXNDb25z
dW1lZFNhbmRib3hFeHRlbnNpb25zKHBhcmFtZXRlcnMubmVIZWxwZXJFeHRlbnNpb25IYW5kbGUu
aGFzVmFsdWUoKSAmJiBwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUu
aGFzVmFsdWUoKSk7CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICBSZW5kZXJUaGVt
ZUlPUzo6c2V0Q1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKFdURk1vdmUocGFyYW1ldGVycy5jc3NW
YWx1ZVRvU3lzdGVtQ29sb3JNYXApKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3M6OnBs
YXRmb3JtU2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc0RhdGFTdG9yZVBh
cmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385688</attachid>
            <date>2019-12-14 08:32:21 -0800</date>
            <delta_ts>2019-12-14 11:22:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204314-20191214083221.patch</filename>
            <type>text/plain</type>
            <size>21589</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MzQ5MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE5LTEyLTEyICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNYXAgQ1NTIHZhbHVlIElE
IHRvIHN5c3RlbSBjb2xvciBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MzE0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81NzI5NTM5Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAg
ICAgIEN1cnJlbnRseSwgUmVuZGVyVGhlbWVJT1MgaXMgbWFwcGluZyBDU1MgdmFsdWUgSURzIHRv
IHN5c3RlbSBjb2xvcnMgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcy4gVGhpcyBtYXBwaW5nIGxl
YWRzIHRvCisgICAgICAgIGludm9raW5nIHNlbGVjdG9ycyBvbiBVSVRyYWl0Q29sbGVjdGlvbiBh
bmQgVUlDb2xvciwgd2hpY2ggd2lsbCBzZW5kIG1lc3NhZ2VzIHRvIHRoZSBydW5uaW5nYm9hcmQg
ZGFlbW9uLiBTaW5jZSB3ZQorICAgICAgICB3aWxsIGJlIGJsb2NraW5nIGFjY2VzcyB0byB0aGlz
IGRhZW1vbiBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLCB0aGlzIG1hcHBpbmcgc2hvdWxkIGJl
IG1vdmVkIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGUgVUkgcHJvY2VzcyB3aWxsIGNy
ZWF0ZSBhIG1hcHBpbmcgYmV0d2VlbiBDU1MgdmFsdWUgSURzIGFuZCBzeXN0ZW0gY29sb3JzLCBh
bmQgcGFzcyBpdCB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNzLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiByZW5kZXJpbmcvQ1NTVmFsdWVLZXku
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ZhbHVlS2V5OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFs
dWVLZXk6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZUtleTo6aGFzaCBjb25z
dCk6CisgICAgICAgIChXVEY6OkNTU1ZhbHVlS2V5SGFzaDo6aGFzaCk6CisgICAgICAgIChXVEY6
OkNTU1ZhbHVlS2V5SGFzaDo6ZXF1YWwpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNv
cmU6OkNTU1ZhbHVlS2V5Pjo6ZW1wdHlWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8
V2ViQ29yZTo6Q1NTVmFsdWVLZXk+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOgorICAgICAgICAo
V1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OkNTU1ZhbHVlS2V5Pjo6aXNEZWxldGVkVmFsdWUpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNzc1ZhbHVlSURTZWxlY3Rv
ckxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6c3lzdGVtQ29sb3JGcm9tQ1NTVmFsdWVJRCk6Cisg
ICAgICAgIChXZWJDb3JlOjpnbG9iYWxDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXApOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OmNyZWF0ZUNTU1ZhbHVlVG9TeXN0ZW1Db2xvck1h
cCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6c2V0Q1NTVmFsdWVUb1N5c3Rl
bUNvbG9yTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpzeXN0ZW1Db2xv
ciBjb25zdCk6CisKIDIwMTktMTItMTMgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5j
b20+CiAKICAgICAgICAgSXNMb2dnZWRJbjogQWJzdHJhY3QgZGF0YSB0eXBlIGZvciBJc0xvZ2dl
ZEluIHN0YXRlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTM0OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ3OTMsNiAr
NDc5Myw3IEBACiAJCUUzQjJGMEVEMUQ3RjRDQTMwMEIwQzlEMSAvKiBMb2FkYWJsZVNjcmlwdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCMkYwRTcx
RDdGMzVFQzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNCMkYwRUUxRDdGNENBOTAwQjBDOUQxIC8q
IExvYWRhYmxlU2NyaXB0Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFM0IyRjBFODFEN0YzNUVDMDBCMEM5RDEgLyogTG9hZGFibGVTY3JpcHRD
bGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlFM0IyRjBGMDFEN0Y0Q0I1MDBCMEM5RDEgLyogTG9hZGFibGVDbGFzc2ljU2NyaXB0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IyRjBFNDFEN0Yz
NUVDMDBCMEM5RDEgLyogTG9hZGFibGVDbGFzc2ljU2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTNCQkMyNDcyMzgzNTUyNjAwNkVDMzlG
IC8qIENTU1ZhbHVlS2V5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFM0JCQzI0NTIzODM1NTFBMDA2RUMzOUYgLyogQ1NTVmFsdWVLZXkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0M5OUEwOTFEQzNE
NDFDMDA3OTRBRDMgLyogRE9NSklUQ2hlY2tET00uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQzk5QTA4MURDM0Q0MTcwMDc5NEFEMyAvKiBET01KSVRD
aGVja0RPTS5oICovOyB9OwogCQlFM0M5QUVDQjIxMTMxNDk5MDA0MTlCOTIgLyogSlNNaWNyb3Rh
c2tDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTNDOUFFQzkyMTEzMTQ3NDAwNDE5QjkyIC8qIEpTTWljcm90YXNrQ2FsbGJhY2suaCAqLzsg
fTsKIAkJRTNFNEUyQTgxRTNCMTcxMDAwMjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3Jp
cHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFM0U0RTJBNjFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZl
dGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMTUxMjQsNiArMTUxMjUsNyBAQAogCQlFM0IyRjBFODFEN0YzNUVDMDBCMEM5RDEgLyogTG9h
ZGFibGVTY3JpcHRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9h
ZGFibGVTY3JpcHRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNCMkYw
RTkxRDdGM0QzQzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvYWRhYmxlU2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTNCN0MwNjIxREMzNDE1QTAwMUZCMEI4IC8qIEpTRG9jdW1lbnRET01K
SVQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNEb2N1bWVudERP
TUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQkJDMjQ1MjM4MzU1MUEw
MDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDU1NWYWx1ZUtleS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0JDODI3MzIy
NTMwMjIxMDA1Mjc2REUgLyogTm9kZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm9kZUxp
c3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0JGMTlFMTIyQUYyRjU1MDA5
Qzk5MjYgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUzQkYxOUUzMjJBRjJGQTUwMDlDOTkyNiAvKiBPdmVyY29uc3RyYWluZWRFcnJv
ckV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjc2NDMsNiArMjc2NDUsNyBAQAog
CQkJCTkzOTJGMTRCMEFEMTg2MUIwMDY5MUJENCAvKiBDb3VudGVyTm9kZS5oICovLAogCQkJCTBG
NTNGQjgxMjEzQjFCQjgwMEM0MEQzNCAvKiBDU1NGaWx0ZXIuY3BwICovLAogCQkJCTBGNTNGQjgz
MjEzQjFCQjgwMEM0MEQzNCAvKiBDU1NGaWx0ZXIuaCAqLywKKwkJCQlFM0JCQzI0NTIzODM1NTFB
MDA2RUMzOUYgLyogQ1NTVmFsdWVLZXkuaCAqLywKIAkJCQlBOENGRjZDQTBBMTU2MUNEMDAwQTQy
MzQgLyogRWxsaXBzaXNCb3guY3BwICovLAogCQkJCUE4Q0ZGNkJEMEExNTYxMTgwMDBBNDIzNCAv
KiBFbGxpcHNpc0JveC5oICovLAogCQkJCUU0QThEMjE1MjI1NzhEQTAwMEE4NDYzQyAvKiBFdmVu
dFJlZ2lvbi5jcHAgKi8sCkBAIC0yOTUyMyw2ICsyOTUyNiw3IEBACiAJCQkJREQ3Q0RGMjUwQTIz
Q0Y5ODAwMDY5OTI4IC8qIENTU1Vua25vd25SdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzdE
OEZGMDFCRDAzQjY0MDBGRkU1NDAgLyogQ1NTVW5zZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTgwRTZDRUUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1ZhbHVlLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFM0JCQzI0NzIzODM1NTI2MDA2RUMzOUYgLyogQ1NTVmFsdWVLZXkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTY1NjU4MTUxMDlEMTMwNDMwMDBFNjFENyAvKiBDU1NWYWx1ZUtleXdvcmRzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNFOTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVmFsdWVM
aXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDlCRDlGQTEzMUZEMkVEMDAzQzU2RjAgLyogQ1NT
VmFsdWVQb29sLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUlPUy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUlPUy5oCShyZXZpc2lvbiAyNTM0OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBA
QAogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAorI2luY2x1ZGUgIkNTU1ZhbHVlS2V5Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyVGhlbWVDb2NvYS5oIgogCiAjaWYgVVNFKFNZU1RFTV9QUkVWSUVX
KQpAQCAtNTksNiArNjAsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBwYWludFN5c3RlbVByZXZpZXdC
YWRnZShJbWFnZSYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRl
OwogI2VuZGlmCiAKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgSGFzaE1hcDxDU1NWYWx1ZUtl
eSwgQ29sb3I+IGNyZWF0ZUNTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpOworICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyB2b2lkIHNldENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcChIYXNoTWFwPENT
U1ZhbHVlS2V5LCBDb2xvcj4mJik7CisgICAgCiBwcm90ZWN0ZWQ6CiAgICAgTGVuZ3RoQm94IHBv
cHVwSW50ZXJuYWxQYWRkaW5nQm94KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1t
CShyZXZpc2lvbiAyNTM0OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIkJpdG1h
cEltYWdlLmgiCiAjaW1wb3J0ICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2ltcG9ydCAiQ1NTVG9M
ZW5ndGhDb252ZXJzaW9uRGF0YS5oIgorI2ltcG9ydCAiQ1NTVmFsdWVLZXkuaCIKICNpbXBvcnQg
IkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbXBvcnQgIkNvbG9ySU9TLmgiCiAjaW1wb3J0ICJEYXRl
Q29tcG9uZW50cy5oIgpAQCAtMTQzMCw2ICsxNDMxLDEwOCBAQCBTdHJpbmcgUmVuZGVyVGhlbWVJ
T1M6Om1lZGlhQ29udHJvbHNCYXNlCiAKICNlbmRpZiAvLyBFTkFCTEUoVklERU8pCiAKK3N0cnVj
dCBDU1NWYWx1ZUlEQW5kU2VsZWN0b3IgeworICAgIENTU1ZhbHVlSUQgY3NzVmFsdWVJRDsKKyAg
ICBTRUwgc2VsZWN0b3I7Cit9OworCitzdGF0aWMgVmVjdG9yPENTU1ZhbHVlSURBbmRTZWxlY3Rv
cj4mIGNzc1ZhbHVlSURTZWxlY3Rvckxpc3QoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxWZWN0b3I8Q1NTVmFsdWVJREFuZFNlbGVjdG9yPj4gY3NzVmFsdWVJRFNlbGVjdG9yTGlzdDsK
KworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplT25jZTsKKyAgICBzdGQ6OmNh
bGxfb25jZSgKKyAgICAgICAgaW5pdGlhbGl6ZU9uY2UsCisgICAgICAgIFtdIHsKKyAgICAgICAg
Y3NzVmFsdWVJRFNlbGVjdG9yTGlzdC5nZXQoKSA9IFZlY3RvcihzdGQ6OmluaXRpYWxpemVyX2xp
c3Q8Q1NTVmFsdWVJREFuZFNlbGVjdG9yPiB7CisjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9S
VCkKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVUZXh0LCBAc2VsZWN0b3IobGFiZWxDb2xvcikgfSwK
KyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUxhYmVsLCBAc2VsZWN0b3IobGFiZWxD
b2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUhlYWRlclRleHQsIEBz
ZWxlY3RvcihsYWJlbENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVt
U2Vjb25kYXJ5TGFiZWwsIEBzZWxlY3RvcihzZWNvbmRhcnlMYWJlbENvbG9yKSB9LAorICAgICAg
ICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtVGVydGlhcnlMYWJlbCwgQHNlbGVjdG9yKHRlcnRp
YXJ5TGFiZWxDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVF1YXRl
cm5hcnlMYWJlbCwgQHNlbGVjdG9yKHF1YXRlcm5hcnlMYWJlbENvbG9yKSB9LAorICAgICAgICAg
ICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtUGxhY2Vob2xkZXJUZXh0LCBAc2VsZWN0b3IocGxhY2Vo
b2xkZXJUZXh0Q29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlV2Via2l0Q29udHJvbEJh
Y2tncm91bmQsIEBzZWxlY3RvcihzeXN0ZW1CYWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAgICAg
ICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1Db250cm9sQmFja2dyb3VuZCwgQHNlbGVjdG9yKHN5c3Rl
bUJhY2tncm91bmRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVRl
eHRCYWNrZ3JvdW5kLCBAc2VsZWN0b3Ioc3lzdGVtQmFja2dyb3VuZENvbG9yKSB9LAorICAgICAg
ICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtQmFja2dyb3VuZCwgQHNlbGVjdG9yKHN5c3RlbUJh
Y2tncm91bmRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVNlY29u
ZGFyeUJhY2tncm91bmQsIEBzZWxlY3RvcihzZWNvbmRhcnlTeXN0ZW1CYWNrZ3JvdW5kQ29sb3Ip
IH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1UZXJ0aWFyeUJhY2tncm91bmQs
IEBzZWxlY3Rvcih0ZXJ0aWFyeVN5c3RlbUJhY2tncm91bmRDb2xvcikgfSwKKyAgICAgICAgICAg
IHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUdyb3VwZWRCYWNrZ3JvdW5kLCBAc2VsZWN0b3Ioc3lzdGVt
R3JvdXBlZEJhY2tncm91bmRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5
c3RlbVNlY29uZGFyeUdyb3VwZWRCYWNrZ3JvdW5kLCBAc2VsZWN0b3Ioc2Vjb25kYXJ5U3lzdGVt
R3JvdXBlZEJhY2tncm91bmRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5
c3RlbVRlcnRpYXJ5R3JvdXBlZEJhY2tncm91bmQsIEBzZWxlY3Rvcih0ZXJ0aWFyeVN5c3RlbUdy
b3VwZWRCYWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0
ZW1HcmlkLCBAc2VsZWN0b3Ioc2VwYXJhdG9yQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1Zh
bHVlQXBwbGVTeXN0ZW1TZXBhcmF0b3IsIEBzZWxlY3RvcihzZXBhcmF0b3JDb2xvcikgfSwKKyAg
ICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUNvbnRhaW5lckJvcmRlciwgQHNlbGVjdG9y
KHNlcGFyYXRvckNvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vs
ZWN0ZWRDb250ZW50QmFja2dyb3VuZCwgQHNlbGVjdG9yKHRhYmxlQ2VsbERlZmF1bHRTZWxlY3Rp
b25UaW50Q29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1VbmVtcGhh
c2l6ZWRTZWxlY3RlZENvbnRlbnRCYWNrZ3JvdW5kLCBAc2VsZWN0b3IodGFibGVDZWxsRGVmYXVs
dFNlbGVjdGlvblRpbnRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3Rl
bUJyb3duLCBAc2VsZWN0b3Ioc3lzdGVtQnJvd25Db2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NT
VmFsdWVBcHBsZVN5c3RlbUluZGlnbywgQHNlbGVjdG9yKHN5c3RlbUluZGlnb0NvbG9yKSB9LAor
I2VuZGlmCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1UZWFsLCBAc2VsZWN0b3Io
c3lzdGVtVGVhbENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlV2lyZWxlc3NQ
bGF5YmFja1RhcmdldEFjdGl2ZSwgQHNlbGVjdG9yKHN5c3RlbUJsdWVDb2xvcikgfSwKKyAgICAg
ICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUJsdWUsIEBzZWxlY3RvcihzeXN0ZW1CbHVlQ29s
b3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1HcmF5LCBAc2VsZWN0b3Io
c3lzdGVtR3JheUNvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtR3Jl
ZW4sIEBzZWxlY3RvcihzeXN0ZW1HcmVlbkNvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1
ZUFwcGxlU3lzdGVtT3JhbmdlLCBAc2VsZWN0b3Ioc3lzdGVtT3JhbmdlQ29sb3IpIH0sCisgICAg
ICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1QaW5rLCBAc2VsZWN0b3Ioc3lzdGVtUGlua0Nv
bG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtUHVycGxlLCBAc2VsZWN0
b3Ioc3lzdGVtUHVycGxlQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0
ZW1SZWQsIEBzZWxlY3RvcihzeXN0ZW1SZWRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFs
dWVBcHBsZVN5c3RlbVllbGxvdywgQHNlbGVjdG9yKHN5c3RlbVllbGxvd0NvbG9yKSB9CisgICAg
ICAgIH0pOworICAgIH0pOworCisgICAgcmV0dXJuIGNzc1ZhbHVlSURTZWxlY3Rvckxpc3Q7Cit9
CisKK3N0YXRpYyBPcHRpb25hbDxDb2xvcj4gc3lzdGVtQ29sb3JGcm9tQ1NTVmFsdWVJRChDU1NW
YWx1ZUlEIGNzc1ZhbHVlSUQsIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UsIGJvb2wgdXNlRWxldmF0
ZWRVc2VySW50ZXJmYWNlTGV2ZWwpCit7CisgICAgTG9jYWxDdXJyZW50VHJhaXRDb2xsZWN0aW9u
IGxvY2FsVHJhaXRDb2xsZWN0aW9uKHVzZURhcmtBcHBlYXJhbmNlLCB1c2VFbGV2YXRlZFVzZXJJ
bnRlcmZhY2VMZXZlbCk7CisKKyAgICBhdXRvIGNzc0NvbG9yVG9TZWxlY3RvciA9IFtjc3NWYWx1
ZUlEXSAoKSAtPiBTRUwgeworICAgICAgICBmb3IgKGF1dG8mIGNzc1ZhbHVlSURTZWxlY3RvciA6
IGNzc1ZhbHVlSURTZWxlY3Rvckxpc3QoKSkgeworICAgICAgICAgICAgaWYgKGNzc1ZhbHVlSURT
ZWxlY3Rvci5jc3NWYWx1ZUlEID09IGNzc1ZhbHVlSUQpCisgICAgICAgICAgICAgICAgcmV0dXJu
IGNzc1ZhbHVlSURTZWxlY3Rvci5zZWxlY3RvcjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICB9OworCisgICAgaWYgKGF1dG8gc2VsZWN0b3IgPSBjc3NDb2xvclRvU2Vs
ZWN0b3IoKSkgeworICAgICAgICBpZiAoYXV0byBjb2xvciA9IHd0Zk9iakNNc2dTZW5kPFVJQ29s
b3IgKj4oUEFMOjpnZXRVSUNvbG9yQ2xhc3MoKSwgc2VsZWN0b3IpKQorICAgICAgICAgICAgcmV0
dXJuIENvbG9yKGNvbG9yLkNHQ29sb3IsIENvbG9yOjpTZW1hbnRpYyk7CisgICAgfQorICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7Cit9CisKKworc3RhdGljIEhhc2hNYXA8Q1NTVmFsdWVLZXksIENv
bG9yPiYgZ2xvYmFsQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKCkKK3sKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8SGFzaE1hcDxDU1NWYWx1ZUtleSwgQ29sb3I+PiBjb2xvck1hcDsKKyAgICBy
ZXR1cm4gY29sb3JNYXA7Cit9CisKK0hhc2hNYXA8Q1NTVmFsdWVLZXksIENvbG9yPiBSZW5kZXJU
aGVtZUlPUzo6Y3JlYXRlQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKCkKK3sKKyAgICBIYXNoTWFw
PENTU1ZhbHVlS2V5LCBDb2xvcj4gbWFwOworCisgICAgZm9yIChhdXRvJiBjc3NWYWx1ZUlEU2Vs
ZWN0b3IgOiBjc3NWYWx1ZUlEU2VsZWN0b3JMaXN0KCkpIHsKKyAgICAgICAgZm9yIChib29sIHVz
ZURhcmtBcHBlYXJhbmNlIDogeyBmYWxzZSwgdHJ1ZSB9KSB7CisgICAgICAgICAgICBmb3IgKGJv
b2wgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgOiB7IGZhbHNlLCB0cnVlIH0pIHsKKyAg
ICAgICAgICAgICAgICBpZiAoYXV0byBjb2xvciA9IHN5c3RlbUNvbG9yRnJvbUNTU1ZhbHVlSUQo
Y3NzVmFsdWVJRFNlbGVjdG9yLmNzc1ZhbHVlSUQsIHVzZURhcmtBcHBlYXJhbmNlLCB1c2VFbGV2
YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCkpCisgICAgICAgICAgICAgICAgICAgIG1hcC5hZGQoQ1NT
VmFsdWVLZXkgeyBjc3NWYWx1ZUlEU2VsZWN0b3IuY3NzVmFsdWVJRCwgdXNlRGFya0FwcGVhcmFu
Y2UsIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsIH0sICpjb2xvcik7CisgICAgICAgICAg
ICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4gbWFwOworfQorCit2b2lkIFJlbmRl
clRoZW1lSU9TOjpzZXRDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoSGFzaE1hcDxDU1NWYWx1ZUtl
eSwgQ29sb3I+JiYgY29sb3JNYXApCit7CisgICAgZ2xvYmFsQ1NTVmFsdWVUb1N5c3RlbUNvbG9y
TWFwKCkgPSBXVEZNb3ZlKGNvbG9yTWFwKTsKK30KKwogQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnN5
c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9w
dGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgY29uc3QgYm9vbCBmb3JWaXNpdGVkTGluayA9
IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOwpA
QCAtMTQ0Niw3OSArMTU0OSwxNSBAQCBDb2xvciBSZW5kZXJUaGVtZUlPUzo6c3lzdGVtQ29sb3Io
Q1NTVmFsCiAgICAgcmV0dXJuIGNhY2hlLnN5c3RlbVN0eWxlQ29sb3JzLmVuc3VyZShjc3NWYWx1
ZUlELCBbdGhpcywgY3NzVmFsdWVJRCwgb3B0aW9uc10gKCkgLT4gQ29sb3IgewogICAgICAgICBj
b25zdCBib29sIHVzZURhcmtBcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9y
OjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CiAgICAgICAgIGNvbnN0IGJvb2wgdXNlRWxl
dmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9w
dGlvbnM6OlVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKLSAgICAgICAgTG9jYWxDdXJy
ZW50VHJhaXRDb2xsZWN0aW9uIGxvY2FsVHJhaXRDb2xsZWN0aW9uKHVzZURhcmtBcHBlYXJhbmNl
LCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCk7Ci0KLSAgICAgICAgYXV0byBjc3NDb2xv
clRvU2VsZWN0b3IgPSBbY3NzVmFsdWVJRF0gKCkgLT4gU0VMIHsKLSAgICAgICAgICAgIHN3aXRj
aCAoY3NzVmFsdWVJRCkgewotI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCi0gICAgICAg
ICAgICBjYXNlIENTU1ZhbHVlVGV4dDoKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5
c3RlbUxhYmVsOgotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtSGVhZGVyVGV4
dDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKGxhYmVsQ29sb3IpOwotICAgICAg
ICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5TGFiZWw6Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIEBzZWxlY3RvcihzZWNvbmRhcnlMYWJlbENvbG9yKTsKLSAgICAgICAgICAg
IGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVRlcnRpYXJ5TGFiZWw6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIEBzZWxlY3Rvcih0ZXJ0aWFyeUxhYmVsQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBD
U1NWYWx1ZUFwcGxlU3lzdGVtUXVhdGVybmFyeUxhYmVsOgotICAgICAgICAgICAgICAgIHJldHVy
biBAc2VsZWN0b3IocXVhdGVybmFyeUxhYmVsQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NW
YWx1ZUFwcGxlU3lzdGVtUGxhY2Vob2xkZXJUZXh0OgotICAgICAgICAgICAgICAgIHJldHVybiBA
c2VsZWN0b3IocGxhY2Vob2xkZXJUZXh0Q29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1
ZVdlYmtpdENvbnRyb2xCYWNrZ3JvdW5kOgotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxl
U3lzdGVtQ29udHJvbEJhY2tncm91bmQ6Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVT
eXN0ZW1UZXh0QmFja2dyb3VuZDoKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3Rl
bUJhY2tncm91bmQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1CYWNr
Z3JvdW5kQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25k
YXJ5QmFja2dyb3VuZDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHNlY29uZGFy
eVN5c3RlbUJhY2tncm91bmRDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVT
eXN0ZW1UZXJ0aWFyeUJhY2tncm91bmQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3Rv
cih0ZXJ0aWFyeVN5c3RlbUJhY2tncm91bmRDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1Zh
bHVlQXBwbGVTeXN0ZW1Hcm91cGVkQmFja2dyb3VuZDoKLSAgICAgICAgICAgICAgICByZXR1cm4g
QHNlbGVjdG9yKHN5c3RlbUdyb3VwZWRCYWNrZ3JvdW5kQ29sb3IpOwotICAgICAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5R3JvdXBlZEJhY2tncm91bmQ6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzZWNvbmRhcnlTeXN0ZW1Hcm91cGVkQmFja2dyb3Vu
ZENvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVRlcnRpYXJ5R3Jv
dXBlZEJhY2tncm91bmQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3Rvcih0ZXJ0aWFy
eVN5c3RlbUdyb3VwZWRCYWNrZ3JvdW5kQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1
ZUFwcGxlU3lzdGVtR3JpZDoKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVNl
cGFyYXRvcjoKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUNvbnRhaW5lckJv
cmRlcjoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHNlcGFyYXRvckNvbG9yKTsK
LSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVNlbGVjdGVkQ29udGVudEJhY2tn
cm91bmQ6Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1VbmVtcGhhc2l6ZWRT
ZWxlY3RlZENvbnRlbnRCYWNrZ3JvdW5kOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0
b3IodGFibGVDZWxsRGVmYXVsdFNlbGVjdGlvblRpbnRDb2xvcik7Ci0gICAgICAgICAgICBjYXNl
IENTU1ZhbHVlQXBwbGVTeXN0ZW1Ccm93bjoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVj
dG9yKHN5c3RlbUJyb3duQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lz
dGVtSW5kaWdvOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtSW5kaWdv
Q29sb3IpOwotI2VuZGlmCi0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1UZWFs
OgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtVGVhbENvbG9yKTsKLSAg
ICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVdpcmVsZXNzUGxheWJhY2tUYXJnZXRBY3RpdmU6
Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1CbHVlOgotICAgICAgICAgICAg
ICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtQmx1ZUNvbG9yKTsKLSAgICAgICAgICAgIGNhc2Ug
Q1NTVmFsdWVBcHBsZVN5c3RlbUdyYXk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3Rv
cihzeXN0ZW1HcmF5Q29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVt
R3JlZW46Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1HcmVlbkNvbG9y
KTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbU9yYW5nZToKLSAgICAgICAg
ICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbU9yYW5nZUNvbG9yKTsKLSAgICAgICAgICAg
IGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVBpbms6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBz
ZWxlY3RvcihzeXN0ZW1QaW5rQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxl
U3lzdGVtUHVycGxlOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtUHVy
cGxlQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtUmVkOgotICAg
ICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtUmVkQ29sb3IpOwotICAgICAgICAg
ICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtWWVsbG93OgotICAgICAgICAgICAgICAgIHJldHVy
biBAc2VsZWN0b3Ioc3lzdGVtWWVsbG93Q29sb3IpOwotICAgICAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsK
LQotICAgICAgICBpZiAoYXV0byBzZWxlY3RvciA9IGNzc0NvbG9yVG9TZWxlY3RvcigpKSB7Ci0g
ICAgICAgICAgICBpZiAoYXV0byBjb2xvciA9IHd0Zk9iakNNc2dTZW5kPFVJQ29sb3IgKj4oUEFM
OjpnZXRVSUNvbG9yQ2xhc3MoKSwgc2VsZWN0b3IpKQotICAgICAgICAgICAgICAgIHJldHVybiBD
b2xvcihjb2xvci5DR0NvbG9yLCBDb2xvcjo6U2VtYW50aWMpOworICAgICAgICBpZiAoIWdsb2Jh
bENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgYXV0
byBpdCA9IGdsb2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpLmZpbmQoQ1NTVmFsdWVLZXkg
eyBjc3NWYWx1ZUlELCB1c2VEYXJrQXBwZWFyYW5jZSwgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNl
TGV2ZWwgfSk7CisgICAgICAgICAgICBpZiAoaXQgPT0gZ2xvYmFsQ1NTVmFsdWVUb1N5c3RlbUNv
bG9yTWFwKCkuZW5kKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpzeXN0
ZW1Db2xvcihjc3NWYWx1ZUlELCBvcHRpb25zKTsKKyAgICAgICAgICAgIHJldHVybiBpdC0+dmFs
dWU7CiAgICAgICAgIH0KLQorICAgICAgICBhdXRvIGNvbG9yID0gc3lzdGVtQ29sb3JGcm9tQ1NT
VmFsdWVJRChjc3NWYWx1ZUlELCB1c2VEYXJrQXBwZWFyYW5jZSwgdXNlRWxldmF0ZWRVc2VySW50
ZXJmYWNlTGV2ZWwpOworICAgICAgICBpZiAoY29sb3IpCisgICAgICAgICAgICByZXR1cm4gKmNv
bG9yOwogICAgICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnN5c3RlbUNvbG9yKGNzc1ZhbHVlSUQs
IG9wdGlvbnMpOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZp
c2lvbiAyNTM0OTIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDI1IEBACisyMDE5LTEyLTEyICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFw
cGxlLmNvbT4KKworICAgICAgICBNYXAgQ1NTIHZhbHVlIElEIHRvIHN5c3RlbSBjb2xvciBpbiB0
aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA0MzE0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzI5NTM5Mj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIENyZWF0ZSBtYXBwaW5nIGJl
dHdlZW4gQ1NTIHZhbHVlIElEcyBhbmQgc3lzdGVtIGNvbG9ycyBpbiB0aGUgVUkgcHJvY2VzcyBh
bmQgc2VuZCB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNzCisgICAgICAgIG9uIHByb2Nlc3Mgc3Rh
cnR1cC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMu
CisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
ZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKwogMjAx
OS0xMi0xMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W2lPU10gRGVueSBtYWNoIGxvb2t1cCBhY2Nlc3MgdG8gIiouYXBwbGUtZXh0ZW5zaW9uLXNlcnZp
Y2UiIGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3MKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAy
NTM0OTIpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY5LDYgKzE2OSwxMCBAQCB2b2lkIFdlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kCiAgICAgZW5jb2RlciA8PCBuZUhlbHBlckV4dGVu
c2lvbkhhbmRsZTsKICAgICBlbmNvZGVyIDw8IG5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5k
bGU7CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICBlbmNvZGVyIDw8IGNzc1ZhbHVl
VG9TeXN0ZW1Db2xvck1hcDsKKyNlbmRpZgogfQogCiBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCkBAIC00MjksNiArNDMzLDE0IEBAIGJvb2wgV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2QKICAgICBwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1h
bmFnZXJFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKCpuZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9u
SGFuZGxlKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TKQorICAgIE9wdGlvbmFsPEhhc2hN
YXA8V2ViQ29yZTo6Q1NTVmFsdWVLZXksIFdlYkNvcmU6OkNvbG9yPj4gY3NzVmFsdWVUb1N5c3Rl
bUNvbG9yTWFwOworICAgIGRlY29kZXIgPj4gY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwOworICAg
IGlmICghY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgcGFyYW1ldGVycy5jc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAgPSBXVEZNb3ZlKCpjc3NWYWx1
ZVRvU3lzdGVtQ29sb3JNYXApOworI2VuZGlmCisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApJbmRl
eDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuaAkocmV2aXNpb24gMjUzNDkyKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSwxMCBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtQcm94eVNldHRpbmdzLmg+CiAjZW5kaWYK
IAorI2lmIFBMQVRGT1JNKElPUykKKyNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclRoZW1lSU9TLmg+
CisjZW5kaWYKKwogbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBEYXRhOwogfQpAQCAtMjA3LDYgKzIx
MSwxMCBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgT3B0aW9u
YWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBuZUhlbHBlckV4dGVuc2lvbkhhbmRsZTsKICAg
ICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IG5lU2Vzc2lvbk1hbmFnZXJFeHRl
bnNpb25IYW5kbGU7CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICBIYXNoTWFwPFdl
YkNvcmU6OkNTU1ZhbHVlS2V5LCBXZWJDb3JlOjpDb2xvcj4gY3NzVmFsdWVUb1N5c3RlbUNvbG9y
TWFwOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQko
cmV2aXNpb24gMjUzNDkyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJv
Y2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzI0LDYgKzMyNCwxMCBAQCB2b2lk
IFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXCiAgICAgICAgIHBhcmFtZXRlcnMu
Y29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoaGFuZGxlKTsKICAgICB9CiAj
ZW5kaWYKKyAgICAKKyNpZiBQTEFURk9STShJT1MpCisgICAgcGFyYW1ldGVycy5jc3NWYWx1ZVRv
U3lzdGVtQ29sb3JNYXAgPSBSZW5kZXJUaGVtZUlPUzo6Y3JlYXRlQ1NTVmFsdWVUb1N5c3RlbUNv
bG9yTWFwKCk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0
aWFsaXplTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW0JKHJldmlzaW9uIDI1MzQ5MikKKysrIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTI0Myw2
ICsyNDMsMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcgogICAg
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoKnBhcmFtZXRlcnMubmVT
ZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSk7CiAgICAgTmV0d29ya0V4dGVuc2lvbkNvbnRl
bnRGaWx0ZXI6OnNldEhhc0NvbnN1bWVkU2FuZGJveEV4dGVuc2lvbnMocGFyYW1ldGVycy5uZUhl
bHBlckV4dGVuc2lvbkhhbmRsZS5oYXNWYWx1ZSgpICYmIHBhcmFtZXRlcnMubmVTZXNzaW9uTWFu
YWdlckV4dGVuc2lvbkhhbmRsZS5oYXNWYWx1ZSgpKTsKICNlbmRpZgorCisjaWYgUExBVEZPUk0o
SU9TKQorICAgIFJlbmRlclRoZW1lSU9TOjpzZXRDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoV1RG
TW92ZShwYXJhbWV0ZXJzLmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCkpOworI2VuZGlmCiB9CiAK
IHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1TZXRXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyhX
ZWJQcm9jZXNzRGF0YVN0b3JlUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385694</attachid>
            <date>2019-12-14 11:18:25 -0800</date>
            <delta_ts>2019-12-14 13:49:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204314-20191214111824.patch</filename>
            <type>text/plain</type>
            <size>25679</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MzQ5MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE5LTEyLTEyICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNYXAgQ1NTIHZhbHVlIElE
IHRvIHN5c3RlbSBjb2xvciBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MzE0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81NzI5NTM5Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAg
ICAgIEN1cnJlbnRseSwgUmVuZGVyVGhlbWVJT1MgaXMgbWFwcGluZyBDU1MgdmFsdWUgSURzIHRv
IHN5c3RlbSBjb2xvcnMgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcy4gVGhpcyBtYXBwaW5nIGxl
YWRzIHRvCisgICAgICAgIGludm9raW5nIHNlbGVjdG9ycyBvbiBVSVRyYWl0Q29sbGVjdGlvbiBh
bmQgVUlDb2xvciwgd2hpY2ggd2lsbCBzZW5kIG1lc3NhZ2VzIHRvIHRoZSBydW5uaW5nYm9hcmQg
ZGFlbW9uLiBTaW5jZSB3ZQorICAgICAgICB3aWxsIGJlIGJsb2NraW5nIGFjY2VzcyB0byB0aGlz
IGRhZW1vbiBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLCB0aGlzIG1hcHBpbmcgc2hvdWxkIGJl
IG1vdmVkIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGUgVUkgcHJvY2VzcyB3aWxsIGNy
ZWF0ZSBhIG1hcHBpbmcgYmV0d2VlbiBDU1MgdmFsdWUgSURzIGFuZCBzeXN0ZW0gY29sb3JzLCBh
bmQgcGFzcyBpdCB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNzLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiByZW5kZXJpbmcvQ1NTVmFsdWVLZXku
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ZhbHVlS2V5OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFs
dWVLZXk6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZUtleTo6aGFzaCBjb25z
dCk6CisgICAgICAgIChXVEY6OkNTU1ZhbHVlS2V5SGFzaDo6aGFzaCk6CisgICAgICAgIChXVEY6
OkNTU1ZhbHVlS2V5SGFzaDo6ZXF1YWwpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNv
cmU6OkNTU1ZhbHVlS2V5Pjo6ZW1wdHlWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8
V2ViQ29yZTo6Q1NTVmFsdWVLZXk+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOgorICAgICAgICAo
V1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OkNTU1ZhbHVlS2V5Pjo6aXNEZWxldGVkVmFsdWUpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNzc1ZhbHVlSURTZWxlY3Rv
ckxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6c3lzdGVtQ29sb3JGcm9tQ1NTVmFsdWVJRCk6Cisg
ICAgICAgIChXZWJDb3JlOjpnbG9iYWxDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXApOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OmNyZWF0ZUNTU1ZhbHVlVG9TeXN0ZW1Db2xvck1h
cCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6c2V0Q1NTVmFsdWVUb1N5c3Rl
bUNvbG9yTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpzeXN0ZW1Db2xv
ciBjb25zdCk6CisKIDIwMTktMTItMTMgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5j
b20+CiAKICAgICAgICAgSXNMb2dnZWRJbjogQWJzdHJhY3QgZGF0YSB0eXBlIGZvciBJc0xvZ2dl
ZEluIHN0YXRlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTM0OTIpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQ3OTMsNiAr
NDc5Myw3IEBACiAJCUUzQjJGMEVEMUQ3RjRDQTMwMEIwQzlEMSAvKiBMb2FkYWJsZVNjcmlwdC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCMkYwRTcx
RDdGMzVFQzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNCMkYwRUUxRDdGNENBOTAwQjBDOUQxIC8q
IExvYWRhYmxlU2NyaXB0Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFM0IyRjBFODFEN0YzNUVDMDBCMEM5RDEgLyogTG9hZGFibGVTY3JpcHRD
bGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlFM0IyRjBGMDFEN0Y0Q0I1MDBCMEM5RDEgLyogTG9hZGFibGVDbGFzc2ljU2NyaXB0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IyRjBFNDFEN0Yz
NUVDMDBCMEM5RDEgLyogTG9hZGFibGVDbGFzc2ljU2NyaXB0LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTNCQkMyNDcyMzgzNTUyNjAwNkVDMzlG
IC8qIENTU1ZhbHVlS2V5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFM0JCQzI0NTIzODM1NTFBMDA2RUMzOUYgLyogQ1NTVmFsdWVLZXkuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0M5OUEwOTFEQzNE
NDFDMDA3OTRBRDMgLyogRE9NSklUQ2hlY2tET00uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQzk5QTA4MURDM0Q0MTcwMDc5NEFEMyAvKiBET01KSVRD
aGVja0RPTS5oICovOyB9OwogCQlFM0M5QUVDQjIxMTMxNDk5MDA0MTlCOTIgLyogSlNNaWNyb3Rh
c2tDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTNDOUFFQzkyMTEzMTQ3NDAwNDE5QjkyIC8qIEpTTWljcm90YXNrQ2FsbGJhY2suaCAqLzsg
fTsKIAkJRTNFNEUyQTgxRTNCMTcxMDAwMjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3Jp
cHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFM0U0RTJBNjFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZl
dGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMTUxMjQsNiArMTUxMjUsNyBAQAogCQlFM0IyRjBFODFEN0YzNUVDMDBCMEM5RDEgLyogTG9h
ZGFibGVTY3JpcHRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9h
ZGFibGVTY3JpcHRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNCMkYw
RTkxRDdGM0QzQzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvYWRhYmxlU2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTNCN0MwNjIxREMzNDE1QTAwMUZCMEI4IC8qIEpTRG9jdW1lbnRET01K
SVQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNEb2N1bWVudERP
TUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzQkJDMjQ1MjM4MzU1MUEw
MDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDU1NWYWx1ZUtleS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0JDODI3MzIy
NTMwMjIxMDA1Mjc2REUgLyogTm9kZUxpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTm9kZUxp
c3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0JGMTlFMTIyQUYyRjU1MDA5
Qzk5MjYgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUzQkYxOUUzMjJBRjJGQTUwMDlDOTkyNiAvKiBPdmVyY29uc3RyYWluZWRFcnJv
ckV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjc2NDMsNiArMjc2NDUsNyBAQAog
CQkJCTkzOTJGMTRCMEFEMTg2MUIwMDY5MUJENCAvKiBDb3VudGVyTm9kZS5oICovLAogCQkJCTBG
NTNGQjgxMjEzQjFCQjgwMEM0MEQzNCAvKiBDU1NGaWx0ZXIuY3BwICovLAogCQkJCTBGNTNGQjgz
MjEzQjFCQjgwMEM0MEQzNCAvKiBDU1NGaWx0ZXIuaCAqLywKKwkJCQlFM0JCQzI0NTIzODM1NTFB
MDA2RUMzOUYgLyogQ1NTVmFsdWVLZXkuaCAqLywKIAkJCQlBOENGRjZDQTBBMTU2MUNEMDAwQTQy
MzQgLyogRWxsaXBzaXNCb3guY3BwICovLAogCQkJCUE4Q0ZGNkJEMEExNTYxMTgwMDBBNDIzNCAv
KiBFbGxpcHNpc0JveC5oICovLAogCQkJCUU0QThEMjE1MjI1NzhEQTAwMEE4NDYzQyAvKiBFdmVu
dFJlZ2lvbi5jcHAgKi8sCkBAIC0yOTUyMyw2ICsyOTUyNiw3IEBACiAJCQkJREQ3Q0RGMjUwQTIz
Q0Y5ODAwMDY5OTI4IC8qIENTU1Vua25vd25SdWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzdE
OEZGMDFCRDAzQjY0MDBGRkU1NDAgLyogQ1NTVW5zZXRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTgwRTZDRUUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1ZhbHVlLmggaW4gSGVhZGVycyAqLywK
KwkJCQlFM0JCQzI0NzIzODM1NTI2MDA2RUMzOUYgLyogQ1NTVmFsdWVLZXkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTY1NjU4MTUxMDlEMTMwNDMwMDBFNjFENyAvKiBDU1NWYWx1ZUtleXdvcmRzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNFOTBBMTk4OUNBMDA3RkI4QzUgLyogQ1NTVmFsdWVM
aXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDlCRDlGQTEzMUZEMkVEMDAzQzU2RjAgLyogQ1NT
VmFsdWVQb29sLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9DU1NWYWx1ZUtleS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9D
U1NWYWx1ZUtleS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9D
U1NWYWx1ZUtleS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworc3RydWN0IENTU1ZhbHVlS2V5IHsKKworICAgIHVuc2lnbmVkIGhh
c2goKSBjb25zdDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9u
YWw8Q1NTVmFsdWVLZXk+IGRlY29kZShEZWNvZGVyJik7CisKKyAgICB1bnNpZ25lZCBjc3NWYWx1
ZUlEOworICAgIGJvb2wgdXNlRGFya0FwcGVhcmFuY2U7CisgICAgYm9vbCB1c2VFbGV2YXRlZFVz
ZXJJbnRlcmZhY2VMZXZlbDsKK307CisKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgQ1NT
VmFsdWVLZXkmIGEsIGNvbnN0IENTU1ZhbHVlS2V5JiBiKQoreworICAgIHJldHVybiBhLmNzc1Zh
bHVlSUQgPT0gYi5jc3NWYWx1ZUlEICYmIGEudXNlRGFya0FwcGVhcmFuY2UgPT0gYi51c2VEYXJr
QXBwZWFyYW5jZSAmJiBhLnVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsID09IGIudXNlRWxl
dmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWw7Cit9CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2
b2lkIENTU1ZhbHVlS2V5OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBl
bmNvZGVyIDw8IGNzc1ZhbHVlSUQ7CisgICAgZW5jb2RlciA8PCB1c2VEYXJrQXBwZWFyYW5jZTsK
KyAgICBlbmNvZGVyIDw8IHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsOworfQorCit0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8Q1NTVmFsdWVLZXk+IENTU1ZhbHVlS2V5Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDx1bnNpZ25lZD4gY3NzVmFs
dWVJRDsKKyAgICBkZWNvZGVyID4+IGNzc1ZhbHVlSUQ7CisgICAgaWYgKCFjc3NWYWx1ZUlEKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIE9wdGlvbmFsPGJvb2w+IHVzZURhcmtB
cHBlYXJhbmNlOworICAgIGRlY29kZXIgPj4gdXNlRGFya0FwcGVhcmFuY2U7CisgICAgaWYgKCF1
c2VEYXJrQXBwZWFyYW5jZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBPcHRp
b25hbDxib29sPiB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbDsKKyAgICBkZWNvZGVyID4+
IHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsOworICAgIGlmICghdXNlRWxldmF0ZWRVc2Vy
SW50ZXJmYWNlTGV2ZWwpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmV0dXJu
IHsgeyBXVEZNb3ZlKCpjc3NWYWx1ZUlEKSwgV1RGTW92ZSgqdXNlRGFya0FwcGVhcmFuY2UpLCBX
VEZNb3ZlKCp1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCkgfSB9OworfQorCitpbmxpbmUg
dW5zaWduZWQgQ1NTVmFsdWVLZXk6Omhhc2goKSBjb25zdAoreworICAgIHJldHVybiBjc3NWYWx1
ZUlEOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCitz
dHJ1Y3QgQ1NTVmFsdWVLZXlIYXNoIHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBX
ZWJDb3JlOjpDU1NWYWx1ZUtleSYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CisgICAgc3Rh
dGljIGJvb2wgZXF1YWwoY29uc3QgV2ViQ29yZTo6Q1NTVmFsdWVLZXkmIGEsIGNvbnN0IFdlYkNv
cmU6OkNTU1ZhbHVlS2V5JiBiKSB7IHJldHVybiBhID09IGI7IH0KKyAgICBzdGF0aWMgY29uc3Qg
Ym9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Cit9OworCit0ZW1wbGF0
ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYkNvcmU6OkNTU1ZhbHVlS2V5PiA6IEdlbmVyaWNIYXNo
VHJhaXRzPFdlYkNvcmU6OkNTU1ZhbHVlS2V5PiB7CisgICAgc3RhdGljIFdlYkNvcmU6OkNTU1Zh
bHVlS2V5IGVtcHR5VmFsdWUoKSB7IHJldHVybiBXZWJDb3JlOjpDU1NWYWx1ZUtleSB7IFdlYkNv
cmU6OkNTU1ZhbHVlSW52YWxpZCwgZmFsc2UsIGZhbHNlfTsgfQorICAgIHN0YXRpYyB2b2lkIGNv
bnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJDb3JlOjpDU1NWYWx1ZUtleSYgc2xvdCkgeyBzbG90ID0g
V2ViQ29yZTo6Q1NTVmFsdWVLZXkgeyBXZWJDb3JlOjpDU1NWYWx1ZUludmFsaWQsIHRydWUsIHRy
dWV9O30KKyAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJDb3JlOjpDU1NW
YWx1ZUtleSYgc2xvdCkgeyByZXR1cm4gc2xvdC5jc3NWYWx1ZUlEID09IFdlYkNvcmU6OkNTU1Zh
bHVlSW52YWxpZCAmJiBzbG90LnVzZURhcmtBcHBlYXJhbmNlICYmIHNsb3QudXNlRWxldmF0ZWRV
c2VySW50ZXJmYWNlTGV2ZWw7IH0KK307CisKK3RlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNo
PFdlYkNvcmU6OkNTU1ZhbHVlS2V5PiB7CisgICAgdHlwZWRlZiBDU1NWYWx1ZUtleUhhc2ggSGFz
aDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lSU9TLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lSU9TLmgJKHJldmlzaW9uIDI1MzQ5MikKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3
IEBACiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogCisjaW5jbHVkZSAiQ1NTVmFsdWVLZXku
aCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZUNvY29hLmgiCiAKICNpZiBVU0UoU1lTVEVNX1BSRVZJ
RVcpCkBAIC01OSw2ICs2MCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhaW50U3lzdGVtUHJldmll
d0JhZGdlKEltYWdlJiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJp
ZGU7CiAjZW5kaWYKIAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBIYXNoTWFwPENTU1ZhbHVl
S2V5LCBDb2xvcj4gY3JlYXRlQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKCk7CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0Q1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKEhhc2hNYXA8
Q1NTVmFsdWVLZXksIENvbG9yPiYmKTsKKyAgICAKIHByb3RlY3RlZDoKICAgICBMZW5ndGhCb3gg
cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3goY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBvdmVycmlk
ZTsKICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1Mu
bW0JKHJldmlzaW9uIDI1MzQ5MikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2ltcG9ydCAiQml0
bWFwSW1hZ2UuaCIKICNpbXBvcnQgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCiAjaW1wb3J0ICJDU1NU
b0xlbmd0aENvbnZlcnNpb25EYXRhLmgiCisjaW1wb3J0ICJDU1NWYWx1ZUtleS5oIgogI2ltcG9y
dCAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2ltcG9ydCAiQ29sb3JJT1MuaCIKICNpbXBvcnQgIkRh
dGVDb21wb25lbnRzLmgiCkBAIC0xNDMwLDYgKzE0MzEsMTA4IEBAIFN0cmluZyBSZW5kZXJUaGVt
ZUlPUzo6bWVkaWFDb250cm9sc0Jhc2UKIAogI2VuZGlmIC8vIEVOQUJMRShWSURFTykKIAorc3Ry
dWN0IENTU1ZhbHVlSURBbmRTZWxlY3RvciB7CisgICAgQ1NTVmFsdWVJRCBjc3NWYWx1ZUlEOwor
ICAgIFNFTCBzZWxlY3RvcjsKK307CisKK3N0YXRpYyBWZWN0b3I8Q1NTVmFsdWVJREFuZFNlbGVj
dG9yPiYgY3NzVmFsdWVJRFNlbGVjdG9yTGlzdCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFZlY3RvcjxDU1NWYWx1ZUlEQW5kU2VsZWN0b3I+PiBjc3NWYWx1ZUlEU2VsZWN0b3JMaXN0
OworCisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGluaXRpYWxpemVPbmNlOworICAgIHN0ZDo6
Y2FsbF9vbmNlKAorICAgICAgICBpbml0aWFsaXplT25jZSwKKyAgICAgICAgW10geworICAgICAg
ICBjc3NWYWx1ZUlEU2VsZWN0b3JMaXN0LmdldCgpID0gVmVjdG9yKHN0ZDo6aW5pdGlhbGl6ZXJf
bGlzdDxDU1NWYWx1ZUlEQW5kU2VsZWN0b3I+IHsKKyNpZiBIQVZFKE9TX0RBUktfTU9ERV9TVVBQ
T1JUKQorICAgICAgICAgICAgeyBDU1NWYWx1ZVRleHQsIEBzZWxlY3RvcihsYWJlbENvbG9yKSB9
LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtTGFiZWwsIEBzZWxlY3RvcihsYWJl
bENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtSGVhZGVyVGV4dCwg
QHNlbGVjdG9yKGxhYmVsQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0
ZW1TZWNvbmRhcnlMYWJlbCwgQHNlbGVjdG9yKHNlY29uZGFyeUxhYmVsQ29sb3IpIH0sCisgICAg
ICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1UZXJ0aWFyeUxhYmVsLCBAc2VsZWN0b3IodGVy
dGlhcnlMYWJlbENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtUXVh
dGVybmFyeUxhYmVsLCBAc2VsZWN0b3IocXVhdGVybmFyeUxhYmVsQ29sb3IpIH0sCisgICAgICAg
ICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1QbGFjZWhvbGRlclRleHQsIEBzZWxlY3RvcihwbGFj
ZWhvbGRlclRleHRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVXZWJraXRDb250cm9s
QmFja2dyb3VuZCwgQHNlbGVjdG9yKHN5c3RlbUJhY2tncm91bmRDb2xvcikgfSwKKyAgICAgICAg
ICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUNvbnRyb2xCYWNrZ3JvdW5kLCBAc2VsZWN0b3Ioc3lz
dGVtQmFja2dyb3VuZENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVt
VGV4dEJhY2tncm91bmQsIEBzZWxlY3RvcihzeXN0ZW1CYWNrZ3JvdW5kQ29sb3IpIH0sCisgICAg
ICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1CYWNrZ3JvdW5kLCBAc2VsZWN0b3Ioc3lzdGVt
QmFja2dyb3VuZENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vj
b25kYXJ5QmFja2dyb3VuZCwgQHNlbGVjdG9yKHNlY29uZGFyeVN5c3RlbUJhY2tncm91bmRDb2xv
cikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVRlcnRpYXJ5QmFja2dyb3Vu
ZCwgQHNlbGVjdG9yKHRlcnRpYXJ5U3lzdGVtQmFja2dyb3VuZENvbG9yKSB9LAorICAgICAgICAg
ICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtR3JvdXBlZEJhY2tncm91bmQsIEBzZWxlY3RvcihzeXN0
ZW1Hcm91cGVkQmFja2dyb3VuZENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxl
U3lzdGVtU2Vjb25kYXJ5R3JvdXBlZEJhY2tncm91bmQsIEBzZWxlY3RvcihzZWNvbmRhcnlTeXN0
ZW1Hcm91cGVkQmFja2dyb3VuZENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxl
U3lzdGVtVGVydGlhcnlHcm91cGVkQmFja2dyb3VuZCwgQHNlbGVjdG9yKHRlcnRpYXJ5U3lzdGVt
R3JvdXBlZEJhY2tncm91bmRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5
c3RlbUdyaWQsIEBzZWxlY3RvcihzZXBhcmF0b3JDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NT
VmFsdWVBcHBsZVN5c3RlbVNlcGFyYXRvciwgQHNlbGVjdG9yKHNlcGFyYXRvckNvbG9yKSB9LAor
ICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtQ29udGFpbmVyQm9yZGVyLCBAc2VsZWN0
b3Ioc2VwYXJhdG9yQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1T
ZWxlY3RlZENvbnRlbnRCYWNrZ3JvdW5kLCBAc2VsZWN0b3IodGFibGVDZWxsRGVmYXVsdFNlbGVj
dGlvblRpbnRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVVuZW1w
aGFzaXplZFNlbGVjdGVkQ29udGVudEJhY2tncm91bmQsIEBzZWxlY3Rvcih0YWJsZUNlbGxEZWZh
dWx0U2VsZWN0aW9uVGludENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lz
dGVtQnJvd24sIEBzZWxlY3RvcihzeXN0ZW1Ccm93bkNvbG9yKSB9LAorICAgICAgICAgICAgeyBD
U1NWYWx1ZUFwcGxlU3lzdGVtSW5kaWdvLCBAc2VsZWN0b3Ioc3lzdGVtSW5kaWdvQ29sb3IpIH0s
CisjZW5kaWYKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVRlYWwsIEBzZWxlY3Rv
cihzeXN0ZW1UZWFsQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVXaXJlbGVz
c1BsYXliYWNrVGFyZ2V0QWN0aXZlLCBAc2VsZWN0b3Ioc3lzdGVtQmx1ZUNvbG9yKSB9LAorICAg
ICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtQmx1ZSwgQHNlbGVjdG9yKHN5c3RlbUJsdWVD
b2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUdyYXksIEBzZWxlY3Rv
cihzeXN0ZW1HcmF5Q29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1H
cmVlbiwgQHNlbGVjdG9yKHN5c3RlbUdyZWVuQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1Zh
bHVlQXBwbGVTeXN0ZW1PcmFuZ2UsIEBzZWxlY3RvcihzeXN0ZW1PcmFuZ2VDb2xvcikgfSwKKyAg
ICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVBpbmssIEBzZWxlY3RvcihzeXN0ZW1QaW5r
Q29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1QdXJwbGUsIEBzZWxl
Y3RvcihzeXN0ZW1QdXJwbGVDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5
c3RlbVJlZCwgQHNlbGVjdG9yKHN5c3RlbVJlZENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NW
YWx1ZUFwcGxlU3lzdGVtWWVsbG93LCBAc2VsZWN0b3Ioc3lzdGVtWWVsbG93Q29sb3IpIH0KKyAg
ICAgICAgfSk7CisgICAgfSk7CisKKyAgICByZXR1cm4gY3NzVmFsdWVJRFNlbGVjdG9yTGlzdDsK
K30KKworc3RhdGljIE9wdGlvbmFsPENvbG9yPiBzeXN0ZW1Db2xvckZyb21DU1NWYWx1ZUlEKENT
U1ZhbHVlSUQgY3NzVmFsdWVJRCwgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSwgYm9vbCB1c2VFbGV2
YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCkKK3sKKyAgICBMb2NhbEN1cnJlbnRUcmFpdENvbGxlY3Rp
b24gbG9jYWxUcmFpdENvbGxlY3Rpb24odXNlRGFya0FwcGVhcmFuY2UsIHVzZUVsZXZhdGVkVXNl
ckludGVyZmFjZUxldmVsKTsKKworICAgIGF1dG8gY3NzQ29sb3JUb1NlbGVjdG9yID0gW2Nzc1Zh
bHVlSURdICgpIC0+IFNFTCB7CisgICAgICAgIGZvciAoYXV0byYgY3NzVmFsdWVJRFNlbGVjdG9y
IDogY3NzVmFsdWVJRFNlbGVjdG9yTGlzdCgpKSB7CisgICAgICAgICAgICBpZiAoY3NzVmFsdWVJ
RFNlbGVjdG9yLmNzc1ZhbHVlSUQgPT0gY3NzVmFsdWVJRCkKKyAgICAgICAgICAgICAgICByZXR1
cm4gY3NzVmFsdWVJRFNlbGVjdG9yLnNlbGVjdG9yOworICAgICAgICB9CisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIH07CisKKyAgICBpZiAoYXV0byBzZWxlY3RvciA9IGNzc0NvbG9yVG9T
ZWxlY3RvcigpKSB7CisgICAgICAgIGlmIChhdXRvIGNvbG9yID0gd3RmT2JqQ01zZ1NlbmQ8VUlD
b2xvciAqPihQQUw6OmdldFVJQ29sb3JDbGFzcygpLCBzZWxlY3RvcikpCisgICAgICAgICAgICBy
ZXR1cm4gQ29sb3IoY29sb3IuQ0dDb2xvciwgQ29sb3I6OlNlbWFudGljKTsKKyAgICB9CisgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKworCitzdGF0aWMgSGFzaE1hcDxDU1NWYWx1ZUtleSwg
Q29sb3I+JiBnbG9iYWxDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKQoreworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxIYXNoTWFwPENTU1ZhbHVlS2V5LCBDb2xvcj4+IGNvbG9yTWFwOworICAg
IHJldHVybiBjb2xvck1hcDsKK30KKworSGFzaE1hcDxDU1NWYWx1ZUtleSwgQ29sb3I+IFJlbmRl
clRoZW1lSU9TOjpjcmVhdGVDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKQoreworICAgIEhhc2hN
YXA8Q1NTVmFsdWVLZXksIENvbG9yPiBtYXA7CisKKyAgICBmb3IgKGF1dG8mIGNzc1ZhbHVlSURT
ZWxlY3RvciA6IGNzc1ZhbHVlSURTZWxlY3Rvckxpc3QoKSkgeworICAgICAgICBmb3IgKGJvb2wg
dXNlRGFya0FwcGVhcmFuY2UgOiB7IGZhbHNlLCB0cnVlIH0pIHsKKyAgICAgICAgICAgIGZvciAo
Ym9vbCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA6IHsgZmFsc2UsIHRydWUgfSkgewor
ICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbG9yID0gc3lzdGVtQ29sb3JGcm9tQ1NTVmFsdWVJ
RChjc3NWYWx1ZUlEU2VsZWN0b3IuY3NzVmFsdWVJRCwgdXNlRGFya0FwcGVhcmFuY2UsIHVzZUVs
ZXZhdGVkVXNlckludGVyZmFjZUxldmVsKSkKKyAgICAgICAgICAgICAgICAgICAgbWFwLmFkZChD
U1NWYWx1ZUtleSB7IGNzc1ZhbHVlSURTZWxlY3Rvci5jc3NWYWx1ZUlELCB1c2VEYXJrQXBwZWFy
YW5jZSwgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgfSwgKmNvbG9yKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBtYXA7Cit9CisKK3ZvaWQgUmVu
ZGVyVGhlbWVJT1M6OnNldENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcChIYXNoTWFwPENTU1ZhbHVl
S2V5LCBDb2xvcj4mJiBjb2xvck1hcCkKK3sKKyAgICBnbG9iYWxDU1NWYWx1ZVRvU3lzdGVtQ29s
b3JNYXAoKSA9IFdURk1vdmUoY29sb3JNYXApOworfQorCiBDb2xvciBSZW5kZXJUaGVtZUlPUzo6
c3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6
T3B0aW9ucz4gb3B0aW9ucykgY29uc3QKIHsKICAgICBjb25zdCBib29sIGZvclZpc2l0ZWRMaW5r
ID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpGb3JWaXNpdGVkTGluayk7
CkBAIC0xNDQ2LDc5ICsxNTQ5LDE1IEBAIENvbG9yIFJlbmRlclRoZW1lSU9TOjpzeXN0ZW1Db2xv
cihDU1NWYWwKICAgICByZXR1cm4gY2FjaGUuc3lzdGVtU3R5bGVDb2xvcnMuZW5zdXJlKGNzc1Zh
bHVlSUQsIFt0aGlzLCBjc3NWYWx1ZUlELCBvcHRpb25zXSAoKSAtPiBDb2xvciB7CiAgICAgICAg
IGNvbnN0IGJvb2wgdXNlRGFya0FwcGVhcmFuY2UgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29s
b3I6Ok9wdGlvbnM6OlVzZURhcmtBcHBlYXJhbmNlKTsKICAgICAgICAgY29uc3QgYm9vbCB1c2VF
bGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6
T3B0aW9uczo6VXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOwotICAgICAgICBMb2NhbEN1
cnJlbnRUcmFpdENvbGxlY3Rpb24gbG9jYWxUcmFpdENvbGxlY3Rpb24odXNlRGFya0FwcGVhcmFu
Y2UsIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKLQotICAgICAgICBhdXRvIGNzc0Nv
bG9yVG9TZWxlY3RvciA9IFtjc3NWYWx1ZUlEXSAoKSAtPiBTRUwgewotICAgICAgICAgICAgc3dp
dGNoIChjc3NWYWx1ZUlEKSB7Ci0jaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKLSAgICAg
ICAgICAgIGNhc2UgQ1NTVmFsdWVUZXh0OgotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxl
U3lzdGVtTGFiZWw6Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1IZWFkZXJU
ZXh0OgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3IobGFiZWxDb2xvcik7Ci0gICAg
ICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1TZWNvbmRhcnlMYWJlbDoKLSAgICAgICAg
ICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHNlY29uZGFyeUxhYmVsQ29sb3IpOwotICAgICAgICAg
ICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtVGVydGlhcnlMYWJlbDoKLSAgICAgICAgICAgICAg
ICByZXR1cm4gQHNlbGVjdG9yKHRlcnRpYXJ5TGFiZWxDb2xvcik7Ci0gICAgICAgICAgICBjYXNl
IENTU1ZhbHVlQXBwbGVTeXN0ZW1RdWF0ZXJuYXJ5TGFiZWw6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIEBzZWxlY3RvcihxdWF0ZXJuYXJ5TGFiZWxDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENT
U1ZhbHVlQXBwbGVTeXN0ZW1QbGFjZWhvbGRlclRleHQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IEBzZWxlY3RvcihwbGFjZWhvbGRlclRleHRDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1Zh
bHVlV2Via2l0Q29udHJvbEJhY2tncm91bmQ6Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBw
bGVTeXN0ZW1Db250cm9sQmFja2dyb3VuZDoKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBs
ZVN5c3RlbVRleHRCYWNrZ3JvdW5kOgotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lz
dGVtQmFja2dyb3VuZDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbUJh
Y2tncm91bmRDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1TZWNv
bmRhcnlCYWNrZ3JvdW5kOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc2Vjb25k
YXJ5U3lzdGVtQmFja2dyb3VuZENvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBs
ZVN5c3RlbVRlcnRpYXJ5QmFja2dyb3VuZDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVj
dG9yKHRlcnRpYXJ5U3lzdGVtQmFja2dyb3VuZENvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NT
VmFsdWVBcHBsZVN5c3RlbUdyb3VwZWRCYWNrZ3JvdW5kOgotICAgICAgICAgICAgICAgIHJldHVy
biBAc2VsZWN0b3Ioc3lzdGVtR3JvdXBlZEJhY2tncm91bmRDb2xvcik7Ci0gICAgICAgICAgICBj
YXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1TZWNvbmRhcnlHcm91cGVkQmFja2dyb3VuZDoKLSAgICAg
ICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHNlY29uZGFyeVN5c3RlbUdyb3VwZWRCYWNrZ3Jv
dW5kQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtVGVydGlhcnlH
cm91cGVkQmFja2dyb3VuZDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHRlcnRp
YXJ5U3lzdGVtR3JvdXBlZEJhY2tncm91bmRDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1Zh
bHVlQXBwbGVTeXN0ZW1HcmlkOgotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVt
U2VwYXJhdG9yOgotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtQ29udGFpbmVy
Qm9yZGVyOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc2VwYXJhdG9yQ29sb3Ip
OwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtU2VsZWN0ZWRDb250ZW50QmFj
a2dyb3VuZDoKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVVuZW1waGFzaXpl
ZFNlbGVjdGVkQ29udGVudEJhY2tncm91bmQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxl
Y3Rvcih0YWJsZUNlbGxEZWZhdWx0U2VsZWN0aW9uVGludENvbG9yKTsKLSAgICAgICAgICAgIGNh
c2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUJyb3duOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2Vs
ZWN0b3Ioc3lzdGVtQnJvd25Db2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVT
eXN0ZW1JbmRpZ286Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1JbmRp
Z29Db2xvcik7Ci0jZW5kaWYKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVRl
YWw6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1UZWFsQ29sb3IpOwot
ICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlV2lyZWxlc3NQbGF5YmFja1RhcmdldEFjdGl2
ZToKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUJsdWU6Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1CbHVlQ29sb3IpOwotICAgICAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUFwcGxlU3lzdGVtR3JheToKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVj
dG9yKHN5c3RlbUdyYXlDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0
ZW1HcmVlbjoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbUdyZWVuQ29s
b3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtT3JhbmdlOgotICAgICAg
ICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtT3JhbmdlQ29sb3IpOwotICAgICAgICAg
ICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtUGluazoKLSAgICAgICAgICAgICAgICByZXR1cm4g
QHNlbGVjdG9yKHN5c3RlbVBpbmtDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBw
bGVTeXN0ZW1QdXJwbGU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1Q
dXJwbGVDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1SZWQ6Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1SZWRDb2xvcik7Ci0gICAgICAg
ICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1ZZWxsb3c6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIEBzZWxlY3RvcihzeXN0ZW1ZZWxsb3dDb2xvcik7Ci0gICAgICAgICAgICBkZWZhdWx0Ogot
ICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICAgICAgfQotICAgICAgICB9
OwotCi0gICAgICAgIGlmIChhdXRvIHNlbGVjdG9yID0gY3NzQ29sb3JUb1NlbGVjdG9yKCkpIHsK
LSAgICAgICAgICAgIGlmIChhdXRvIGNvbG9yID0gd3RmT2JqQ01zZ1NlbmQ8VUlDb2xvciAqPihQ
QUw6OmdldFVJQ29sb3JDbGFzcygpLCBzZWxlY3RvcikpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IENvbG9yKGNvbG9yLkNHQ29sb3IsIENvbG9yOjpTZW1hbnRpYyk7CisgICAgICAgIGlmICghZ2xv
YmFsQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKCkuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBh
dXRvIGl0ID0gZ2xvYmFsQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKCkuZmluZChDU1NWYWx1ZUtl
eSB7IGNzc1ZhbHVlSUQsIHVzZURhcmtBcHBlYXJhbmNlLCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZh
Y2VMZXZlbCB9KTsKKyAgICAgICAgICAgIGlmIChpdCA9PSBnbG9iYWxDU1NWYWx1ZVRvU3lzdGVt
Q29sb3JNYXAoKS5lbmQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnN5
c3RlbUNvbG9yKGNzc1ZhbHVlSUQsIG9wdGlvbnMpOworICAgICAgICAgICAgcmV0dXJuIGl0LT52
YWx1ZTsKICAgICAgICAgfQotCisgICAgICAgIGF1dG8gY29sb3IgPSBzeXN0ZW1Db2xvckZyb21D
U1NWYWx1ZUlEKGNzc1ZhbHVlSUQsIHVzZURhcmtBcHBlYXJhbmNlLCB1c2VFbGV2YXRlZFVzZXJJ
bnRlcmZhY2VMZXZlbCk7CisgICAgICAgIGlmIChjb2xvcikKKyAgICAgICAgICAgIHJldHVybiAq
Y29sb3I7CiAgICAgICAgIHJldHVybiBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoY3NzVmFsdWVJ
RCwgb3B0aW9ucyk7CiAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOwogfQpJbmRleDogU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MzUyNSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjUgQEAKKzIwMTktMTItMTIgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5A
YXBwbGUuY29tPgorCisgICAgICAgIE1hcCBDU1MgdmFsdWUgSUQgdG8gc3lzdGVtIGNvbG9yIGlu
IHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDQzMTQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3Mjk1MzkyPgorIAorICAg
ICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorIAorICAgICAgICBDcmVhdGUgbWFwcGlu
ZyBiZXR3ZWVuIENTUyB2YWx1ZSBJRHMgYW5kIHN5c3RlbSBjb2xvcnMgaW4gdGhlIFVJIHByb2Nl
c3MgYW5kIHNlbmQgdG8gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcworICAgICAgICBvbiBwcm9jZXNz
IHN0YXJ0dXAuCisgCisgICAgICAgIE5vIG5ldyB0ZXN0cywgY292ZXJlZCBieSBleGlzdGluZyB0
ZXN0cy4KKyAKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6
OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToK
KwogMjAxOS0xMi0xNCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFkZCByZWxlYXNlIGFzc2VydCBmb3Igc2VsZWN0ZWRJbmRleCBpbiBXZWJLaXQ6OldlYlBv
cHVwTWVudTo6c2hvdygpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkocmV2aXNpb24gMjUzNDkyKQorKysgU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE2OSw2ICsxNjksMTAgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZAogICAgIGVuY29kZXIgPDwgbmVIZWxwZXJFeHRlbnNpb25IYW5kbGU7CiAg
ICAgZW5jb2RlciA8PCBuZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOwogI2VuZGlmCisK
KyNpZiBQTEFURk9STShJT1MpCisgICAgZW5jb2RlciA8PCBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JN
YXA7CisjZW5kaWYKIH0KIAogYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNv
ZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBw
YXJhbWV0ZXJzKQpAQCAtNDI5LDYgKzQzMywxNCBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmRlY29kCiAgICAgcGFyYW1ldGVycy5uZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9u
SGFuZGxlID0gV1RGTW92ZSgqbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSk7CiAjZW5k
aWYKIAorI2lmIFBMQVRGT1JNKElPUykKKyAgICBPcHRpb25hbDxIYXNoTWFwPFdlYkNvcmU6OkNT
U1ZhbHVlS2V5LCBXZWJDb3JlOjpDb2xvcj4+IGNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcDsKKyAg
ICBkZWNvZGVyID4+IGNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcDsKKyAgICBpZiAoIWNzc1ZhbHVl
VG9TeXN0ZW1Db2xvck1hcCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMu
Y3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwID0gV1RGTW92ZSgqY3NzVmFsdWVUb1N5c3RlbUNvbG9y
TWFwKTsKKyNlbmRpZgorCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlz
aW9uIDI1MzQ5MikKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsMTAgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL1NvdXBOZXR3b3JrUHJveHlTZXR0aW5ncy5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9S
TShJT1MpCisjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJUaGVtZUlPUy5oPgorI2VuZGlmCisKIG5h
bWVzcGFjZSBBUEkgewogY2xhc3MgRGF0YTsKIH0KQEAgLTIwNyw2ICsyMTEsMTAgQEAgc3RydWN0
IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIE9wdGlvbmFsPFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZT4gbmVIZWxwZXJFeHRlbnNpb25IYW5kbGU7CiAgICAgT3B0aW9uYWw8U2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBuZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlOwog
I2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpCisgICAgSGFzaE1hcDxXZWJDb3JlOjpDU1NWYWx1
ZUtleSwgV2ViQ29yZTo6Q29sb3I+IGNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcDsKKyNlbmRpZgog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHJldmlzaW9uIDI1MzQ5
MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTMyNCw2ICszMjQsMTAgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplVwogICAgICAgICBwYXJhbWV0ZXJzLmNvbnRlbnRGaWx0ZXJF
eHRlbnNpb25IYW5kbGUgPSBXVEZNb3ZlKGhhbmRsZSk7CiAgICAgfQogI2VuZGlmCisgICAgCisj
aWYgUExBVEZPUk0oSU9TKQorICAgIHBhcmFtZXRlcnMuY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFw
ID0gUmVuZGVyVGhlbWVJT1M6OmNyZWF0ZUNTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpOworI2Vu
ZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5ldHdvcmtQ
cm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQpJbmRl
eDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29h
Lm1tCShyZXZpc2lvbiAyNTM0OTIpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNDMsNiArMjQzLDEwIEBAIHZv
aWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIKICAgICAgICAgU2FuZGJveEV4
dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJF
eHRlbnNpb25IYW5kbGUpOwogICAgIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpzZXRI
YXNDb25zdW1lZFNhbmRib3hFeHRlbnNpb25zKHBhcmFtZXRlcnMubmVIZWxwZXJFeHRlbnNpb25I
YW5kbGUuaGFzVmFsdWUoKSAmJiBwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25I
YW5kbGUuaGFzVmFsdWUoKSk7CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPUykKKyAgICBSZW5k
ZXJUaGVtZUlPUzo6c2V0Q1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKFdURk1vdmUocGFyYW1ldGVy
cy5jc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXApKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nl
c3M6OnBsYXRmb3JtU2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc0RhdGFT
dG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385699</attachid>
            <date>2019-12-14 13:48:55 -0800</date>
            <delta_ts>2020-01-07 15:37:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204314-20191214134854.patch</filename>
            <type>text/plain</type>
            <size>25913</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MzUyNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE5LTEyLTE0ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNYXAgQ1NTIHZhbHVlIElE
IHRvIHN5c3RlbSBjb2xvciBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MzE0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81NzI5NTM5Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAg
ICAgIEN1cnJlbnRseSwgUmVuZGVyVGhlbWVJT1MgaXMgbWFwcGluZyBDU1MgdmFsdWUgSURzIHRv
IHN5c3RlbSBjb2xvcnMgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2Vzcy4gVGhpcyBtYXBwaW5nIGxl
YWRzIHRvCisgICAgICAgIGludm9raW5nIHNlbGVjdG9ycyBvbiBVSVRyYWl0Q29sbGVjdGlvbiBh
bmQgVUlDb2xvciwgd2hpY2ggd2lsbCBzZW5kIG1lc3NhZ2VzIHRvIHRoZSBydW5uaW5nYm9hcmQg
ZGFlbW9uLiBTaW5jZSB3ZQorICAgICAgICB3aWxsIGJlIGJsb2NraW5nIGFjY2VzcyB0byB0aGlz
IGRhZW1vbiBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLCB0aGlzIG1hcHBpbmcgc2hvdWxkIGJl
IG1vdmVkIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBUaGUgVUkgcHJvY2VzcyB3aWxsIGNy
ZWF0ZSBhIG1hcHBpbmcgYmV0d2VlbiBDU1MgdmFsdWUgSURzIGFuZCBzeXN0ZW0gY29sb3JzLCBh
bmQgcGFzcyBpdCB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNzLgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiByZW5kZXJpbmcvQ1NTVmFsdWVLZXku
aDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1ZhbHVlS2V5OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFs
dWVLZXk6OmRlY29kZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZUtleTo6aGFzaCBjb25z
dCk6CisgICAgICAgIChXVEY6OkNTU1ZhbHVlS2V5SGFzaDo6aGFzaCk6CisgICAgICAgIChXVEY6
OkNTU1ZhbHVlS2V5SGFzaDo6ZXF1YWwpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNv
cmU6OkNTU1ZhbHVlS2V5Pjo6ZW1wdHlWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8
V2ViQ29yZTo6Q1NTVmFsdWVLZXk+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOgorICAgICAgICAo
V1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OkNTU1ZhbHVlS2V5Pjo6aXNEZWxldGVkVmFsdWUpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNzc1ZhbHVlSURTZWxlY3Rv
ckxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6c3lzdGVtQ29sb3JGcm9tQ1NTVmFsdWVJRCk6Cisg
ICAgICAgIChXZWJDb3JlOjpnbG9iYWxDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXApOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OmNyZWF0ZUNTU1ZhbHVlVG9TeXN0ZW1Db2xvck1h
cCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6c2V0Q1NTVmFsdWVUb1N5c3Rl
bUNvbG9yTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpzeXN0ZW1Db2xv
ciBjb25zdCk6CisKIDIwMTktMTItMTQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTEZDXVtJRkNdIEZpeCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtdGV4dC93aGl0ZS1zcGFjZS9icmVhay1zcGFjZXMtMDAzLmh0bWwKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJl
dmlzaW9uIDI1MzUyNikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDc5NCw2ICs0Nzk0LDcgQEAKIAkJRTNCMkYw
RUQxRDdGNENBMzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IyRjBFNzFEN0YzNUVDMDBCMEM5RDEgLyog
TG9hZGFibGVTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlFM0IyRjBFRTFEN0Y0Q0E5MDBCMEM5RDEgLyogTG9hZGFibGVTY3JpcHRDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQjJG
MEU4MUQ3RjM1RUMwMEIwQzlEMSAvKiBMb2FkYWJsZVNjcmlwdENsaWVudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzQjJGMEYwMUQ3RjRDQjUw
MEIwQzlEMSAvKiBMb2FkYWJsZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQjJGMEU0MUQ3RjM1RUMwMEIwQzlEMSAvKiBMb2Fk
YWJsZUNsYXNzaWNTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlFM0JCQzI0NzIzODM1NTI2MDA2RUMzOUYgLyogQ1NTVmFsdWVLZXkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQkJDMjQ1MjM4
MzU1MUEwMDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzQzk5QTA5MURDM0Q0MUMwMDc5NEFEMyAvKiBET01K
SVRDaGVja0RPTS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTNDOTlBMDgxREMzRDQxNzAwNzk0QUQzIC8qIERPTUpJVENoZWNrRE9NLmggKi87IH07CiAJ
CUUzQzlBRUNCMjExMzE0OTkwMDQxOUI5MiAvKiBKU01pY3JvdGFza0NhbGxiYWNrLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0M5QUVDOTIxMTMxNDc0
MDA0MTlCOTIgLyogSlNNaWNyb3Rhc2tDYWxsYmFjay5oICovOyB9OwogCQlFM0U0RTJBODFFM0Ix
NzEwMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRTRFMkE2MUUzQjE2RkMw
MDIzQkI4QSAvKiBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNTEyNyw2ICsxNTEyOCw3
IEBACiAJCUUzQjJGMEU4MUQ3RjM1RUMwMEIwQzlEMSAvKiBMb2FkYWJsZVNjcmlwdENsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2FkYWJsZVNjcmlwdENsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0IyRjBFOTFEN0YzRDNDMDBCMEM5RDEg
LyogTG9hZGFibGVTY3JpcHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTG9hZGFibGVTY3JpcHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0I3
QzA2MjFEQzM0MTVBMDAxRkIwQjggLyogSlNEb2N1bWVudERPTUpJVC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RvY3VtZW50RE9NSklULmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNCQkMyNDUyMzgzNTUxQTAwNkVDMzlGIC8qIENTU1ZhbHVl
S2V5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1ZhbHVlS2V5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQkM4MjczMjI1MzAyMjEwMDUyNzZERSAvKiBO
b2RlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOb2RlTGlzdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUzQkYxOUUxMjJBRjJGNTUwMDlDOTkyNiAvKiBYTUxIdHRwUmVx
dWVzdFByb2dyZXNzRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWE1MSHR0cFJlcXVlc3RQ
cm9ncmVzc0V2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNCRjE5RTMy
MkFGMkZBNTAwOUM5OTI2IC8qIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNzY0OCw2ICsyNzY1MCw3IEBACiAJCQkJOTM5MkYxNEIwQUQxODYx
QjAwNjkxQkQ0IC8qIENvdW50ZXJOb2RlLmggKi8sCiAJCQkJMEY1M0ZCODEyMTNCMUJCODAwQzQw
RDM0IC8qIENTU0ZpbHRlci5jcHAgKi8sCiAJCQkJMEY1M0ZCODMyMTNCMUJCODAwQzQwRDM0IC8q
IENTU0ZpbHRlci5oICovLAorCQkJCUUzQkJDMjQ1MjM4MzU1MUEwMDZFQzM5RiAvKiBDU1NWYWx1
ZUtleS5oICovLAogCQkJCUE4Q0ZGNkNBMEExNTYxQ0QwMDBBNDIzNCAvKiBFbGxpcHNpc0JveC5j
cHAgKi8sCiAJCQkJQThDRkY2QkQwQTE1NjExODAwMEE0MjM0IC8qIEVsbGlwc2lzQm94LmggKi8s
CiAJCQkJRTRBOEQyMTUyMjU3OERBMDAwQTg0NjNDIC8qIEV2ZW50UmVnaW9uLmNwcCAqLywKQEAg
LTI5NTI4LDYgKzI5NTMxLDcgQEAKIAkJCQlERDdDREYyNTBBMjNDRjk4MDAwNjk5MjggLyogQ1NT
VW5rbm93blJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDN0Q4RkYwMUJEMDNCNjQwMEZGRTU0
MCAvKiBDU1NVbnNldFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNFRTBBMTk4OUNB
MDA3RkI4QzUgLyogQ1NTVmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzQkJDMjQ3MjM4MzU1
MjYwMDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2NTgxNTEw
OUQxMzA0MzAwMEU2MUQ3IC8qIENTU1ZhbHVlS2V5d29yZHMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4MEU2Q0U5MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NWYWx1ZUxpc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCUU0OUJEOUZBMTMxRkQyRUQwMDNDNTZGMCAvKiBDU1NWYWx1ZVBvb2wuaCBpbiBIZWFk
ZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU1ZhbHVlS2V5LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU1ZhbHVlS2V5LmgJKG5vbmV4
aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU1ZhbHVlS2V5LmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitz
dHJ1Y3QgQ1NTVmFsdWVLZXkgeworCisgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0OworCisgICAg
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAg
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxDU1NWYWx1ZUtleT4gZGVj
b2RlKERlY29kZXImKTsKKworICAgIHVuc2lnbmVkIGNzc1ZhbHVlSUQ7CisgICAgYm9vbCB1c2VE
YXJrQXBwZWFyYW5jZTsKKyAgICBib29sIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsOwor
fTsKKworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NWYWx1ZUtleSYgYSwgY29uc3Qg
Q1NTVmFsdWVLZXkmIGIpCit7CisgICAgcmV0dXJuIGEuY3NzVmFsdWVJRCA9PSBiLmNzc1ZhbHVl
SUQgJiYgYS51c2VEYXJrQXBwZWFyYW5jZSA9PSBiLnVzZURhcmtBcHBlYXJhbmNlICYmIGEudXNl
RWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgPT0gYi51c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VM
ZXZlbDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQ1NTVmFsdWVLZXk6OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgY3NzVmFsdWVJ
RDsKKyAgICBlbmNvZGVyIDw8IHVzZURhcmtBcHBlYXJhbmNlOworICAgIGVuY29kZXIgPDwgdXNl
RWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWw7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+
CitPcHRpb25hbDxDU1NWYWx1ZUtleT4gQ1NTVmFsdWVLZXk6OmRlY29kZShEZWNvZGVyJiBkZWNv
ZGVyKQoreworICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBjc3NWYWx1ZUlEOworICAgIGRlY29kZXIg
Pj4gY3NzVmFsdWVJRDsKKyAgICBpZiAoIWNzc1ZhbHVlSUQpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisgICAgT3B0aW9uYWw8Ym9vbD4gdXNlRGFya0FwcGVhcmFuY2U7CisgICAgZGVj
b2RlciA+PiB1c2VEYXJrQXBwZWFyYW5jZTsKKyAgICBpZiAoIXVzZURhcmtBcHBlYXJhbmNlKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIE9wdGlvbmFsPGJvb2w+IHVzZUVsZXZh
dGVkVXNlckludGVyZmFjZUxldmVsOworICAgIGRlY29kZXIgPj4gdXNlRWxldmF0ZWRVc2VySW50
ZXJmYWNlTGV2ZWw7CisgICAgaWYgKCF1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCkKKyAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmNzc1Zh
bHVlSUQpLCBXVEZNb3ZlKCp1c2VEYXJrQXBwZWFyYW5jZSksIFdURk1vdmUoKnVzZUVsZXZhdGVk
VXNlckludGVyZmFjZUxldmVsKSB9IH07Cit9CisKK2lubGluZSB1bnNpZ25lZCBDU1NWYWx1ZUtl
eTo6aGFzaCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNzc1ZhbHVlSUQ7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3N0cnVjdCBDU1NWYWx1ZUtleUhh
c2ggeworICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFdlYkNvcmU6OkNTU1ZhbHVlS2V5
JiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25z
dCBXZWJDb3JlOjpDU1NWYWx1ZUtleSYgYSwgY29uc3QgV2ViQ29yZTo6Q1NTVmFsdWVLZXkmIGIp
IHsgcmV0dXJuIGEgPT0gYjsgfQorICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVU
b0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFp
dHM8V2ViQ29yZTo6Q1NTVmFsdWVLZXk+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViQ29yZTo6Q1NT
VmFsdWVLZXk+IHsKKyAgICBzdGF0aWMgV2ViQ29yZTo6Q1NTVmFsdWVLZXkgZW1wdHlWYWx1ZSgp
IHsgcmV0dXJuIFdlYkNvcmU6OkNTU1ZhbHVlS2V5IHsgV2ViQ29yZTo6Q1NTVmFsdWVJbnZhbGlk
LCBmYWxzZSwgZmFsc2V9OyB9CisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVl
KFdlYkNvcmU6OkNTU1ZhbHVlS2V5JiBzbG90KSB7IHNsb3QgPSBXZWJDb3JlOjpDU1NWYWx1ZUtl
eSB7IFdlYkNvcmU6OkNTU1ZhbHVlSW52YWxpZCwgdHJ1ZSwgdHJ1ZX07fQorICAgIHN0YXRpYyBi
b29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYkNvcmU6OkNTU1ZhbHVlS2V5JiBzbG90KSB7IHJl
dHVybiBzbG90LmNzc1ZhbHVlSUQgPT0gV2ViQ29yZTo6Q1NTVmFsdWVJbnZhbGlkICYmIHNsb3Qu
dXNlRGFya0FwcGVhcmFuY2UgJiYgc2xvdC51c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbDsg
fQorfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29yZTo6Q1NTVmFsdWVL
ZXk+IHsKKyAgICB0eXBlZGVmIENTU1ZhbHVlS2V5SGFzaCBIYXNoOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1Mu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1Mu
aAkocmV2aXNpb24gMjUzNTI2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lSU9TLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAKKyNpbmNsdWRlICJDU1NWYWx1ZUtleS5oIgogI2luY2x1ZGUgIlJlbmRl
clRoZW1lQ29jb2EuaCIKIAogI2lmIFVTRShTWVNURU1fUFJFVklFVykKQEAgLTU5LDYgKzYwLDkg
QEAgcHVibGljOgogICAgIHZvaWQgcGFpbnRTeXN0ZW1QcmV2aWV3QmFkZ2UoSW1hZ2UmLCBjb25z
dCBQYWludEluZm8mLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICNlbmRpZgogCisgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IEhhc2hNYXA8Q1NTVmFsdWVLZXksIENvbG9yPiYg
Z2V0T3JDcmVhdGVDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgdm9pZCBzZXRDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoSGFzaE1hcDxDU1NWYWx1
ZUtleSwgQ29sb3I+JiYpOworICAgIAogcHJvdGVjdGVkOgogICAgIExlbmd0aEJveCBwb3B1cElu
dGVybmFsUGFkZGluZ0JveChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlOwogICAg
IApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQkocmV2
aXNpb24gMjUzNTI2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9T
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJCaXRtYXBJbWFn
ZS5oIgogI2ltcG9ydCAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKICNpbXBvcnQgIkNTU1RvTGVuZ3Ro
Q29udmVyc2lvbkRhdGEuaCIKKyNpbXBvcnQgIkNTU1ZhbHVlS2V5LmgiCiAjaW1wb3J0ICJDU1NW
YWx1ZUtleXdvcmRzLmgiCiAjaW1wb3J0ICJDb2xvcklPUy5oIgogI2ltcG9ydCAiRGF0ZUNvbXBv
bmVudHMuaCIKQEAgLTE0MzAsNiArMTQzMSwxMTMgQEAgU3RyaW5nIFJlbmRlclRoZW1lSU9TOjpt
ZWRpYUNvbnRyb2xzQmFzZQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQogCitzdHJ1Y3QgQ1NT
VmFsdWVJREFuZFNlbGVjdG9yIHsKKyAgICBDU1NWYWx1ZUlEIGNzc1ZhbHVlSUQ7CisgICAgU0VM
IHNlbGVjdG9yOworfTsKKworc3RhdGljIGNvbnN0IFZlY3RvcjxDU1NWYWx1ZUlEQW5kU2VsZWN0
b3I+JiBjc3NWYWx1ZUlEU2VsZWN0b3JMaXN0KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8VmVjdG9yPENTU1ZhbHVlSURBbmRTZWxlY3Rvcj4+IGNzc1ZhbHVlSURTZWxlY3Rvckxpc3Q7
CisKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZU9uY2U7CisgICAgc3RkOjpj
YWxsX29uY2UoCisgICAgICAgIGluaXRpYWxpemVPbmNlLAorICAgICAgICBbXSB7CisgICAgICAg
IGNzc1ZhbHVlSURTZWxlY3Rvckxpc3QuZ2V0KCkgPSBWZWN0b3Ioc3RkOjppbml0aWFsaXplcl9s
aXN0PENTU1ZhbHVlSURBbmRTZWxlY3Rvcj4geworI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBP
UlQpCisgICAgICAgICAgICB7IENTU1ZhbHVlVGV4dCwgQHNlbGVjdG9yKGxhYmVsQ29sb3IpIH0s
CisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1MYWJlbCwgQHNlbGVjdG9yKGxhYmVs
Q29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1IZWFkZXJUZXh0LCBA
c2VsZWN0b3IobGFiZWxDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3Rl
bVNlY29uZGFyeUxhYmVsLCBAc2VsZWN0b3Ioc2Vjb25kYXJ5TGFiZWxDb2xvcikgfSwKKyAgICAg
ICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVRlcnRpYXJ5TGFiZWwsIEBzZWxlY3Rvcih0ZXJ0
aWFyeUxhYmVsQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1RdWF0
ZXJuYXJ5TGFiZWwsIEBzZWxlY3RvcihxdWF0ZXJuYXJ5TGFiZWxDb2xvcikgfSwKKyAgICAgICAg
ICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVBsYWNlaG9sZGVyVGV4dCwgQHNlbGVjdG9yKHBsYWNl
aG9sZGVyVGV4dENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZVdlYmtpdENvbnRyb2xC
YWNrZ3JvdW5kLCBAc2VsZWN0b3Ioc3lzdGVtQmFja2dyb3VuZENvbG9yKSB9LAorICAgICAgICAg
ICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtQ29udHJvbEJhY2tncm91bmQsIEBzZWxlY3RvcihzeXN0
ZW1CYWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1U
ZXh0QmFja2dyb3VuZCwgQHNlbGVjdG9yKHN5c3RlbUJhY2tncm91bmRDb2xvcikgfSwKKyAgICAg
ICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUJhY2tncm91bmQsIEBzZWxlY3RvcihzeXN0ZW1C
YWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1TZWNv
bmRhcnlCYWNrZ3JvdW5kLCBAc2VsZWN0b3Ioc2Vjb25kYXJ5U3lzdGVtQmFja2dyb3VuZENvbG9y
KSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtVGVydGlhcnlCYWNrZ3JvdW5k
LCBAc2VsZWN0b3IodGVydGlhcnlTeXN0ZW1CYWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAgICAg
ICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1Hcm91cGVkQmFja2dyb3VuZCwgQHNlbGVjdG9yKHN5c3Rl
bUdyb3VwZWRCYWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVT
eXN0ZW1TZWNvbmRhcnlHcm91cGVkQmFja2dyb3VuZCwgQHNlbGVjdG9yKHNlY29uZGFyeVN5c3Rl
bUdyb3VwZWRCYWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVT
eXN0ZW1UZXJ0aWFyeUdyb3VwZWRCYWNrZ3JvdW5kLCBAc2VsZWN0b3IodGVydGlhcnlTeXN0ZW1H
cm91cGVkQmFja2dyb3VuZENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lz
dGVtR3JpZCwgQHNlbGVjdG9yKHNlcGFyYXRvckNvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NW
YWx1ZUFwcGxlU3lzdGVtU2VwYXJhdG9yLCBAc2VsZWN0b3Ioc2VwYXJhdG9yQ29sb3IpIH0sCisg
ICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1Db250YWluZXJCb3JkZXIsIEBzZWxlY3Rv
cihzZXBhcmF0b3JDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVNl
bGVjdGVkQ29udGVudEJhY2tncm91bmQsIEBzZWxlY3Rvcih0YWJsZUNlbGxEZWZhdWx0U2VsZWN0
aW9uVGludENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtVW5lbXBo
YXNpemVkU2VsZWN0ZWRDb250ZW50QmFja2dyb3VuZCwgQHNlbGVjdG9yKHRhYmxlQ2VsbERlZmF1
bHRTZWxlY3Rpb25UaW50Q29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0
ZW1Ccm93biwgQHNlbGVjdG9yKHN5c3RlbUJyb3duQ29sb3IpIH0sCisgICAgICAgICAgICB7IENT
U1ZhbHVlQXBwbGVTeXN0ZW1JbmRpZ28sIEBzZWxlY3RvcihzeXN0ZW1JbmRpZ29Db2xvcikgfSwK
KyNlbmRpZgorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtVGVhbCwgQHNlbGVjdG9y
KHN5c3RlbVRlYWxDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVdpcmVsZXNz
UGxheWJhY2tUYXJnZXRBY3RpdmUsIEBzZWxlY3RvcihzeXN0ZW1CbHVlQ29sb3IpIH0sCisgICAg
ICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1CbHVlLCBAc2VsZWN0b3Ioc3lzdGVtQmx1ZUNv
bG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtR3JheSwgQHNlbGVjdG9y
KHN5c3RlbUdyYXlDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUdy
ZWVuLCBAc2VsZWN0b3Ioc3lzdGVtR3JlZW5Db2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFs
dWVBcHBsZVN5c3RlbU9yYW5nZSwgQHNlbGVjdG9yKHN5c3RlbU9yYW5nZUNvbG9yKSB9LAorICAg
ICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtUGluaywgQHNlbGVjdG9yKHN5c3RlbVBpbmtD
b2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVB1cnBsZSwgQHNlbGVj
dG9yKHN5c3RlbVB1cnBsZUNvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lz
dGVtUmVkLCBAc2VsZWN0b3Ioc3lzdGVtUmVkQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1Zh
bHVlQXBwbGVTeXN0ZW1ZZWxsb3csIEBzZWxlY3RvcihzeXN0ZW1ZZWxsb3dDb2xvcikgfQorICAg
ICAgICB9KTsKKyAgICB9KTsKKworICAgIHJldHVybiBjc3NWYWx1ZUlEU2VsZWN0b3JMaXN0Owor
fQorCitzdGF0aWMgT3B0aW9uYWw8Q29sb3I+IHN5c3RlbUNvbG9yRnJvbUNTU1ZhbHVlSUQoQ1NT
VmFsdWVJRCBjc3NWYWx1ZUlELCBib29sIHVzZURhcmtBcHBlYXJhbmNlLCBib29sIHVzZUVsZXZh
dGVkVXNlckludGVyZmFjZUxldmVsKQoreworICAgIExvY2FsQ3VycmVudFRyYWl0Q29sbGVjdGlv
biBsb2NhbFRyYWl0Q29sbGVjdGlvbih1c2VEYXJrQXBwZWFyYW5jZSwgdXNlRWxldmF0ZWRVc2Vy
SW50ZXJmYWNlTGV2ZWwpOworCisgICAgYXV0byBjc3NDb2xvclRvU2VsZWN0b3IgPSBbY3NzVmFs
dWVJRF0gKCkgLT4gU0VMIHsKKyAgICAgICAgZm9yIChhdXRvJiBjc3NWYWx1ZUlEU2VsZWN0b3Ig
OiBjc3NWYWx1ZUlEU2VsZWN0b3JMaXN0KCkpIHsKKyAgICAgICAgICAgIGlmIChjc3NWYWx1ZUlE
U2VsZWN0b3IuY3NzVmFsdWVJRCA9PSBjc3NWYWx1ZUlEKQorICAgICAgICAgICAgICAgIHJldHVy
biBjc3NWYWx1ZUlEU2VsZWN0b3Iuc2VsZWN0b3I7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgfTsKKworICAgIGlmIChhdXRvIHNlbGVjdG9yID0gY3NzQ29sb3JUb1Nl
bGVjdG9yKCkpIHsKKyAgICAgICAgaWYgKGF1dG8gY29sb3IgPSB3dGZPYmpDTXNnU2VuZDxVSUNv
bG9yICo+KFBBTDo6Z2V0VUlDb2xvckNsYXNzKCksIHNlbGVjdG9yKSkKKyAgICAgICAgICAgIHJl
dHVybiBDb2xvcihjb2xvci5DR0NvbG9yLCBDb2xvcjo6U2VtYW50aWMpOworICAgIH0KKyAgICBy
ZXR1cm4gV1RGOjpudWxsb3B0OworfQorCisKK3N0YXRpYyBIYXNoTWFwPENTU1ZhbHVlS2V5LCBD
b2xvcj4mIGdsb2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpCit7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEhhc2hNYXA8Q1NTVmFsdWVLZXksIENvbG9yPj4gY29sb3JNYXA7CisgICAg
cmV0dXJuIGNvbG9yTWFwOworfQorCitjb25zdCBIYXNoTWFwPENTU1ZhbHVlS2V5LCBDb2xvcj4m
IFJlbmRlclRoZW1lSU9TOjpnZXRPckNyZWF0ZUNTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpCit7
CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8Q1NTVmFsdWVLZXksIENvbG9yPj4g
bWFwOworCisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOworICAgIHN0ZDo6Y2Fs
bF9vbmNlKAorICAgICAgICBvbmNlRmxhZywKKyAgICAgICAgW10geworICAgICAgICBmb3IgKGF1
dG8mIGNzc1ZhbHVlSURTZWxlY3RvciA6IGNzc1ZhbHVlSURTZWxlY3Rvckxpc3QoKSkgeworICAg
ICAgICAgICAgZm9yIChib29sIHVzZURhcmtBcHBlYXJhbmNlIDogeyBmYWxzZSwgdHJ1ZSB9KSB7
CisgICAgICAgICAgICAgICAgZm9yIChib29sIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVs
IDogeyBmYWxzZSwgdHJ1ZSB9KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbG9y
ID0gc3lzdGVtQ29sb3JGcm9tQ1NTVmFsdWVJRChjc3NWYWx1ZUlEU2VsZWN0b3IuY3NzVmFsdWVJ
RCwgdXNlRGFya0FwcGVhcmFuY2UsIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIG1hcC5nZXQoKS5hZGQoQ1NTVmFsdWVLZXkgeyBjc3NWYWx1
ZUlEU2VsZWN0b3IuY3NzVmFsdWVJRCwgdXNlRGFya0FwcGVhcmFuY2UsIHVzZUVsZXZhdGVkVXNl
ckludGVyZmFjZUxldmVsIH0sICpjb2xvcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgfSk7CisKKyAgICByZXR1cm4gbWFwOworfQorCit2b2lkIFJl
bmRlclRoZW1lSU9TOjpzZXRDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoSGFzaE1hcDxDU1NWYWx1
ZUtleSwgQ29sb3I+JiYgY29sb3JNYXApCit7CisgICAgZ2xvYmFsQ1NTVmFsdWVUb1N5c3RlbUNv
bG9yTWFwKCkgPSBXVEZNb3ZlKGNvbG9yTWFwKTsKK30KKwogQ29sb3IgUmVuZGVyVGhlbWVJT1M6
OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6
Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgY29uc3QgYm9vbCBmb3JWaXNpdGVkTGlu
ayA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6Rm9yVmlzaXRlZExpbmsp
OwpAQCAtMTQ0Niw3OSArMTU1NCwxNSBAQCBDb2xvciBSZW5kZXJUaGVtZUlPUzo6c3lzdGVtQ29s
b3IoQ1NTVmFsCiAgICAgcmV0dXJuIGNhY2hlLnN5c3RlbVN0eWxlQ29sb3JzLmVuc3VyZShjc3NW
YWx1ZUlELCBbdGhpcywgY3NzVmFsdWVJRCwgb3B0aW9uc10gKCkgLT4gQ29sb3IgewogICAgICAg
ICBjb25zdCBib29sIHVzZURhcmtBcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNv
bG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CiAgICAgICAgIGNvbnN0IGJvb2wgdXNl
RWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6
Ok9wdGlvbnM6OlVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKLSAgICAgICAgTG9jYWxD
dXJyZW50VHJhaXRDb2xsZWN0aW9uIGxvY2FsVHJhaXRDb2xsZWN0aW9uKHVzZURhcmtBcHBlYXJh
bmNlLCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCk7Ci0KLSAgICAgICAgYXV0byBjc3ND
b2xvclRvU2VsZWN0b3IgPSBbY3NzVmFsdWVJRF0gKCkgLT4gU0VMIHsKLSAgICAgICAgICAgIHN3
aXRjaCAoY3NzVmFsdWVJRCkgewotI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCi0gICAg
ICAgICAgICBjYXNlIENTU1ZhbHVlVGV4dDoKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBs
ZVN5c3RlbUxhYmVsOgotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtSGVhZGVy
VGV4dDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKGxhYmVsQ29sb3IpOwotICAg
ICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5TGFiZWw6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzZWNvbmRhcnlMYWJlbENvbG9yKTsKLSAgICAgICAg
ICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVRlcnRpYXJ5TGFiZWw6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIEBzZWxlY3Rvcih0ZXJ0aWFyeUxhYmVsQ29sb3IpOwotICAgICAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUFwcGxlU3lzdGVtUXVhdGVybmFyeUxhYmVsOgotICAgICAgICAgICAgICAgIHJl
dHVybiBAc2VsZWN0b3IocXVhdGVybmFyeUxhYmVsQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBD
U1NWYWx1ZUFwcGxlU3lzdGVtUGxhY2Vob2xkZXJUZXh0OgotICAgICAgICAgICAgICAgIHJldHVy
biBAc2VsZWN0b3IocGxhY2Vob2xkZXJUZXh0Q29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NW
YWx1ZVdlYmtpdENvbnRyb2xCYWNrZ3JvdW5kOgotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFw
cGxlU3lzdGVtQ29udHJvbEJhY2tncm91bmQ6Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBw
bGVTeXN0ZW1UZXh0QmFja2dyb3VuZDoKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5
c3RlbUJhY2tncm91bmQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1C
YWNrZ3JvdW5kQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vj
b25kYXJ5QmFja2dyb3VuZDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHNlY29u
ZGFyeVN5c3RlbUJhY2tncm91bmRDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBw
bGVTeXN0ZW1UZXJ0aWFyeUJhY2tncm91bmQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxl
Y3Rvcih0ZXJ0aWFyeVN5c3RlbUJhY2tncm91bmRDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENT
U1ZhbHVlQXBwbGVTeXN0ZW1Hcm91cGVkQmFja2dyb3VuZDoKLSAgICAgICAgICAgICAgICByZXR1
cm4gQHNlbGVjdG9yKHN5c3RlbUdyb3VwZWRCYWNrZ3JvdW5kQ29sb3IpOwotICAgICAgICAgICAg
Y2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5R3JvdXBlZEJhY2tncm91bmQ6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzZWNvbmRhcnlTeXN0ZW1Hcm91cGVkQmFja2dy
b3VuZENvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVRlcnRpYXJ5
R3JvdXBlZEJhY2tncm91bmQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3Rvcih0ZXJ0
aWFyeVN5c3RlbUdyb3VwZWRCYWNrZ3JvdW5kQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NW
YWx1ZUFwcGxlU3lzdGVtR3JpZDoKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3Rl
bVNlcGFyYXRvcjoKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUNvbnRhaW5l
ckJvcmRlcjoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHNlcGFyYXRvckNvbG9y
KTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVNlbGVjdGVkQ29udGVudEJh
Y2tncm91bmQ6Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1VbmVtcGhhc2l6
ZWRTZWxlY3RlZENvbnRlbnRCYWNrZ3JvdW5kOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2Vs
ZWN0b3IodGFibGVDZWxsRGVmYXVsdFNlbGVjdGlvblRpbnRDb2xvcik7Ci0gICAgICAgICAgICBj
YXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1Ccm93bjoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNl
bGVjdG9yKHN5c3RlbUJyb3duQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxl
U3lzdGVtSW5kaWdvOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtSW5k
aWdvQ29sb3IpOwotI2VuZGlmCi0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1U
ZWFsOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtVGVhbENvbG9yKTsK
LSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVdpcmVsZXNzUGxheWJhY2tUYXJnZXRBY3Rp
dmU6Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1CbHVlOgotICAgICAgICAg
ICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtQmx1ZUNvbG9yKTsKLSAgICAgICAgICAgIGNh
c2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUdyYXk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxl
Y3RvcihzeXN0ZW1HcmF5Q29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lz
dGVtR3JlZW46Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1HcmVlbkNv
bG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbU9yYW5nZToKLSAgICAg
ICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbU9yYW5nZUNvbG9yKTsKLSAgICAgICAg
ICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVBpbms6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IEBzZWxlY3RvcihzeXN0ZW1QaW5rQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFw
cGxlU3lzdGVtUHVycGxlOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVt
UHVycGxlQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtUmVkOgot
ICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtUmVkQ29sb3IpOwotICAgICAg
ICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtWWVsbG93OgotICAgICAgICAgICAgICAgIHJl
dHVybiBAc2VsZWN0b3Ioc3lzdGVtWWVsbG93Q29sb3IpOwotICAgICAgICAgICAgZGVmYXVsdDoK
LSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fTsKLQotICAgICAgICBpZiAoYXV0byBzZWxlY3RvciA9IGNzc0NvbG9yVG9TZWxlY3RvcigpKSB7
Ci0gICAgICAgICAgICBpZiAoYXV0byBjb2xvciA9IHd0Zk9iakNNc2dTZW5kPFVJQ29sb3IgKj4o
UEFMOjpnZXRVSUNvbG9yQ2xhc3MoKSwgc2VsZWN0b3IpKQotICAgICAgICAgICAgICAgIHJldHVy
biBDb2xvcihjb2xvci5DR0NvbG9yLCBDb2xvcjo6U2VtYW50aWMpOworICAgICAgICBpZiAoIWds
b2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpLmlzRW1wdHkoKSkgeworICAgICAgICAgICAg
YXV0byBpdCA9IGdsb2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpLmZpbmQoQ1NTVmFsdWVL
ZXkgeyBjc3NWYWx1ZUlELCB1c2VEYXJrQXBwZWFyYW5jZSwgdXNlRWxldmF0ZWRVc2VySW50ZXJm
YWNlTGV2ZWwgfSk7CisgICAgICAgICAgICBpZiAoaXQgPT0gZ2xvYmFsQ1NTVmFsdWVUb1N5c3Rl
bUNvbG9yTWFwKCkuZW5kKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpz
eXN0ZW1Db2xvcihjc3NWYWx1ZUlELCBvcHRpb25zKTsKKyAgICAgICAgICAgIHJldHVybiBpdC0+
dmFsdWU7CiAgICAgICAgIH0KLQorICAgICAgICBhdXRvIGNvbG9yID0gc3lzdGVtQ29sb3JGcm9t
Q1NTVmFsdWVJRChjc3NWYWx1ZUlELCB1c2VEYXJrQXBwZWFyYW5jZSwgdXNlRWxldmF0ZWRVc2Vy
SW50ZXJmYWNlTGV2ZWwpOworICAgICAgICBpZiAoY29sb3IpCisgICAgICAgICAgICByZXR1cm4g
KmNvbG9yOwogICAgICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnN5c3RlbUNvbG9yKGNzc1ZhbHVl
SUQsIG9wdGlvbnMpOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyNTM1MjYpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDI1IEBACisyMDE5LTEyLTEyICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBNYXAgQ1NTIHZhbHVlIElEIHRvIHN5c3RlbSBjb2xvciBp
biB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA0MzE0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzI5NTM5Mj4KKyAKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKyAKKyAgICAgICAgQ3JlYXRlIG1hcHBp
bmcgYmV0d2VlbiBDU1MgdmFsdWUgSURzIGFuZCBzeXN0ZW0gY29sb3JzIGluIHRoZSBVSSBwcm9j
ZXNzIGFuZCBzZW5kIHRvIHRoZSBXZWJDb250ZW50IHByb2Nlc3MKKyAgICAgICAgb24gcHJvY2Vz
cyBzdGFydHVwLgorIAorICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVyZWQgYnkgZXhpc3Rpbmcg
dGVzdHMuCisgCisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9j
ZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6
CisKIDIwMTktMTItMTQgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgcmVsZWFzZSBhc3NlcnQgZm9yIHNlbGVjdGVkSW5kZXggaW4gV2ViS2l0OjpXZWJQ
b3B1cE1lbnU6OnNob3coKQpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDI1MzUyNikKKysrIFNv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNjksNiArMTY5LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZW5jb2QKICAgICBlbmNvZGVyIDw8IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOwog
ICAgIGVuY29kZXIgPDwgbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKICNlbmRpZgor
CisjaWYgUExBVEZPUk0oSU9TKQorICAgIGVuY29kZXIgPDwgY3NzVmFsdWVUb1N5c3RlbUNvbG9y
TWFwOworI2VuZGlmCiB9CiAKIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYg
cGFyYW1ldGVycykKQEAgLTQyOSw2ICs0MzMsMTQgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpkZWNvZAogICAgIHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lv
bkhhbmRsZSA9IFdURk1vdmUoKm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUpOwogI2Vu
ZGlmCiAKKyNpZiBQTEFURk9STShJT1MpCisgICAgT3B0aW9uYWw8SGFzaE1hcDxXZWJDb3JlOjpD
U1NWYWx1ZUtleSwgV2ViQ29yZTo6Q29sb3I+PiBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7Cisg
ICAgZGVjb2RlciA+PiBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CisgICAgaWYgKCFjc3NWYWx1
ZVRvU3lzdGVtQ29sb3JNYXApCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBwYXJhbWV0ZXJz
LmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCA9IFdURk1vdmUoKmNzc1ZhbHVlVG9TeXN0ZW1Db2xv
ck1hcCk7CisjZW5kaWYKKwogICAgIHJldHVybiB0cnVlOwogfQogCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCShyZXZp
c2lvbiAyNTM1MjYpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDEwIEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9Tb3VwTmV0d29ya1Byb3h5U2V0dGluZ3MuaD4KICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oSU9TKQorI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVGhlbWVJT1MuaD4KKyNlbmRpZgorCiBu
YW1lc3BhY2UgQVBJIHsKIGNsYXNzIERhdGE7CiB9CkBAIC0yMDcsNiArMjExLDEwIEBAIHN0cnVj
dCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBPcHRpb25hbDxTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGU+IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOwogICAgIE9wdGlvbmFsPFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZT4gbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsK
ICNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TKQorICAgIEhhc2hNYXA8V2ViQ29yZTo6Q1NTVmFs
dWVLZXksIFdlYkNvcmU6OkNvbG9yPiBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CisjZW5kaWYK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCShyZXZpc2lvbiAyNTM1
MjYpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29h
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMjQsNiArMzI0LDEwIEBAIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICAgICAgICAgcGFyYW1ldGVycy5jb250ZW50RmlsdGVy
RXh0ZW5zaW9uSGFuZGxlID0gV1RGTW92ZShoYW5kbGUpOwogICAgIH0KICNlbmRpZgorICAgIAor
I2lmIFBMQVRGT1JNKElPUykKKyAgICBwYXJhbWV0ZXJzLmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1h
cCA9IFJlbmRlclRoZW1lSU9TOjpnZXRPckNyZWF0ZUNTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgp
OworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZU5l
dHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJz
KQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tCShyZXZpc2lvbiAyNTM1MjYpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNDMsNiArMjQzLDEw
IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIKICAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1h
bmFnZXJFeHRlbnNpb25IYW5kbGUpOwogICAgIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVy
OjpzZXRIYXNDb25zdW1lZFNhbmRib3hFeHRlbnNpb25zKHBhcmFtZXRlcnMubmVIZWxwZXJFeHRl
bnNpb25IYW5kbGUuaGFzVmFsdWUoKSAmJiBwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRl
bnNpb25IYW5kbGUuaGFzVmFsdWUoKSk7CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPUykKKyAg
ICBSZW5kZXJUaGVtZUlPUzo6c2V0Q1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKFdURk1vdmUocGFy
YW1ldGVycy5jc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXApKTsKKyNlbmRpZgogfQogCiB2b2lkIFdl
YlByb2Nlc3M6OnBsYXRmb3JtU2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vz
c0RhdGFTdG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387045</attachid>
            <date>2020-01-07 15:37:56 -0800</date>
            <delta_ts>2020-01-07 16:05:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204314-20200107153755.patch</filename>
            <type>text/plain</type>
            <size>28446</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDA5MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDIwLTAxLTA3ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNYXAgQ1NTIHZhbHVlIElE
IHRvIHN5c3RlbSBjb2xvciBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MzE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5LCBSZW5kZXJUaGVtZUlPUyBpcyBt
YXBwaW5nIENTUyB2YWx1ZSBJRHMgdG8gc3lzdGVtIGNvbG9ycyBpbiB0aGUgV2ViQ29udGVudCBw
cm9jZXNzLiBUaGlzIG1hcHBpbmcgbGVhZHMgdG8KKyAgICAgICAgaW52b2tpbmcgc2VsZWN0b3Jz
IG9uIFVJVHJhaXRDb2xsZWN0aW9uIGFuZCBVSUNvbG9yLCB3aGljaCB3aWxsIHNlbmQgbWVzc2Fn
ZXMgdG8gdGhlIHJ1bm5pbmdib2FyZCBkYWVtb24uIFNpbmNlIHdlCisgICAgICAgIHdpbGwgYmUg
YmxvY2tpbmcgYWNjZXNzIHRvIHRoaXMgZGFlbW9uIGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3Ms
IHRoaXMgbWFwcGluZyBzaG91bGQgYmUgbW92ZWQgdG8gdGhlIFVJIHByb2Nlc3MuCisgICAgICAg
IFRoZSBVSSBwcm9jZXNzIHdpbGwgY3JlYXRlIGEgbWFwcGluZyBiZXR3ZWVuIENTUyB2YWx1ZSBJ
RHMgYW5kIHN5c3RlbSBjb2xvcnMsIGFuZCBwYXNzIGl0IHRvIHRoZSBXZWJDb250ZW50IHByb2Nl
c3MuCisKKyAgICAgICAgVGVzdDogZmFzdC9jc3MvaW9zL3N5c3RlbS1jb2xvci1mb3ItY3NzLXZh
bHVlLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBjc3MvU3R5bGVDb2xvci5oOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJv
cGVydHlQYXJzZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpj
c3NWYWx1ZUlEU2VsZWN0b3JMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OnN5c3RlbUNvbG9yRnJv
bUNTU1ZhbHVlSUQpOgorICAgICAgICAoV2ViQ29yZTo6Z2xvYmFsQ1NTVmFsdWVUb1N5c3RlbUNv
bG9yTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpnZXRPckNyZWF0ZUNT
U1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlP
Uzo6c2V0Q1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lSU9TOjpzeXN0ZW1Db2xvciBjb25zdCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzeXN0ZW1Db2xvckZvckNTU1Zh
bHVlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3Rpbmcv
SW50ZXJuYWxzLmlkbDoKKwogMjAyMC0wMS0wNiAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBs
ZS5jb20+CiAKICAgICAgICAgUHJlY2lzaW9uIG9mIGdldENsaWVudFJlY3RzKCksIGdldEJvdW5k
aW5nQ2xpZW50UmVjdCgpIGRpZmZlcnMgZGVwZW5kaW5nIHdoZXRoZXIgc2ltcGxlIGxpbmUgbGF5
b3V0IG9yIGxpbmUgYm94IGxheW91dCBpcyB1c2VkCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTQwOTIpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTQ4MDMsNiArNDgwMyw3IEBACiAJCUUzQjJGMEVEMUQ3RjRDQTMwMEIwQzlE
MSAvKiBMb2FkYWJsZVNjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTNCMkYwRTcxRDdGMzVFQzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNCMkYw
RUUxRDdGNENBOTAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0Q2xpZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IyRjBFODFEN0YzNUVDMDBCMEM5
RDEgLyogTG9hZGFibGVTY3JpcHRDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlFM0IyRjBGMDFEN0Y0Q0I1MDBCMEM5RDEgLyogTG9hZGFi
bGVDbGFzc2ljU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFM0IyRjBFNDFEN0YzNUVDMDBCMEM5RDEgLyogTG9hZGFibGVDbGFzc2ljU2NyaXB0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTNC
QkMyNDcyMzgzNTUyNjAwNkVDMzlGIC8qIENTU1ZhbHVlS2V5LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0JCQzI0NTIzODM1NTFBMDA2RUMzOUYgLyog
Q1NTVmFsdWVLZXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlFM0M5OUEwOTFEQzNENDFDMDA3OTRBRDMgLyogRE9NSklUQ2hlY2tET00uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQzk5QTA4MURDM0Q0
MTcwMDc5NEFEMyAvKiBET01KSVRDaGVja0RPTS5oICovOyB9OwogCQlFM0M5QUVDQjIxMTMxNDk5
MDA0MTlCOTIgLyogSlNNaWNyb3Rhc2tDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNDOUFFQzkyMTEzMTQ3NDAwNDE5QjkyIC8qIEpTTWlj
cm90YXNrQ2FsbGJhY2suaCAqLzsgfTsKIAkJRTNFNEUyQTgxRTNCMTcxMDAwMjNCQjhBIC8qIFNj
cmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0U0RTJBNjFFM0IxNkZDMDAyM0JCOEEgLyogU2NyaXB0
RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTUxNTAsNiArMTUxNTEsNyBAQAogCQlFM0IyRjBFODFE
N0YzNUVDMDBCMEM5RDEgLyogTG9hZGFibGVTY3JpcHRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTG9hZGFibGVTY3JpcHRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTNCMkYwRTkxRDdGM0QzQzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvYWRhYmxlU2NyaXB0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNCN0MwNjIxREMzNDE1QTAwMUZC
MEI4IC8qIEpTRG9jdW1lbnRET01KSVQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNEb2N1bWVudERPTUpJVC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUzQkJDMjQ1MjM4MzU1MUEwMDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NWYWx1ZUtleS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFM0JDODI3MzIyNTMwMjIxMDA1Mjc2REUgLyogTm9kZUxpc3QuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTm9kZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFM0JGMTlFMTIyQUYyRjU1MDA5Qzk5MjYgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQkYxOUUzMjJBRjJGQTUwMDlDOTkyNiAv
KiBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE92ZXJj
b25zdHJhaW5lZEVycm9yRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
Mjc2NzcsNiArMjc2NzksNyBAQAogCQkJCTkzOTJGMTRCMEFEMTg2MUIwMDY5MUJENCAvKiBDb3Vu
dGVyTm9kZS5oICovLAogCQkJCTBGNTNGQjgxMjEzQjFCQjgwMEM0MEQzNCAvKiBDU1NGaWx0ZXIu
Y3BwICovLAogCQkJCTBGNTNGQjgzMjEzQjFCQjgwMEM0MEQzNCAvKiBDU1NGaWx0ZXIuaCAqLywK
KwkJCQlFM0JCQzI0NTIzODM1NTFBMDA2RUMzOUYgLyogQ1NTVmFsdWVLZXkuaCAqLywKIAkJCQlB
OENGRjZDQTBBMTU2MUNEMDAwQTQyMzQgLyogRWxsaXBzaXNCb3guY3BwICovLAogCQkJCUE4Q0ZG
NkJEMEExNTYxMTgwMDBBNDIzNCAvKiBFbGxpcHNpc0JveC5oICovLAogCQkJCUU0QThEMjE1MjI1
NzhEQTAwMEE4NDYzQyAvKiBFdmVudFJlZ2lvbi5jcHAgKi8sCkBAIC0yOTU2Niw2ICsyOTU2OSw3
IEBACiAJCQkJREQ3Q0RGMjUwQTIzQ0Y5ODAwMDY5OTI4IC8qIENTU1Vua25vd25SdWxlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzdEOEZGMDFCRDAzQjY0MDBGRkU1NDAgLyogQ1NTVW5zZXRWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRUUwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1Zh
bHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQlFM0JCQzI0NzIzODM1NTI2MDA2RUMzOUYgLyogQ1NT
VmFsdWVLZXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NjU4MTUxMDlEMTMwNDMwMDBFNjFENyAv
KiBDU1NWYWx1ZUtleXdvcmRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNFOTBBMTk4OUNB
MDA3RkI4QzUgLyogQ1NTVmFsdWVMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDlCRDlGQTEz
MUZEMkVEMDAzQzU2RjAgLyogQ1NTVmFsdWVQb29sLmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUNvbG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlQ29sb3IuaAkocmV2aXNpb24gMjU0MDkyKQorKysgU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlQ29sb3IuaAkod29ya2luZyBjb3B5KQpAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgQ29sb3IgY29sb3JGcm9tS2V5d29yZChDU1NWYWx1ZUlELCBPcHRpb25T
ZXQ8T3B0aW9ucz4pOwogICAgIHN0YXRpYyBib29sIGlzQ29sb3JLZXl3b3JkKENTU1ZhbHVlSUQp
OwotICAgIHN0YXRpYyBib29sIGlzU3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCk7CisgICAgV0VCQ09S
RV9FWFBPUlQgc3RhdGljIGJvb2wgaXNTeXN0ZW1Db2xvcihDU1NWYWx1ZUlEKTsKIAogcHJpdmF0
ZToKICAgICBDb2xvciBtX2NvbG9yOwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTUHJvcGVydHlQYXJzZXIuaAkocmV2aXNpb24gMjU0MDkyKQorKysgU291cmNlL1dlYkNv
cmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjIs
NyArMTIyLDcgQEAgcHJpdmF0ZToKIH07CiAKIENTU1Byb3BlcnR5SUQgY3NzUHJvcGVydHlJRChT
dHJpbmdWaWV3KTsKLUNTU1ZhbHVlSUQgY3NzVmFsdWVLZXl3b3JkSUQoU3RyaW5nVmlldyk7CitX
RUJDT1JFX0VYUE9SVCBDU1NWYWx1ZUlEIGNzc1ZhbHVlS2V5d29yZElEKFN0cmluZ1ZpZXcpOwog
Ym9vbCBpc0N1c3RvbVByb3BlcnR5TmFtZShjb25zdCBTdHJpbmcmKTsKIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJ
T1MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJ
T1MuaAkocmV2aXNpb24gMjU0MDkyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lSU9TLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAKKyNpbmNsdWRlICJDU1NWYWx1ZUtleS5oIgogI2luY2x1ZGUgIlJl
bmRlclRoZW1lQ29jb2EuaCIKIAogI2lmIFVTRShTWVNURU1fUFJFVklFVykKQEAgLTU5LDYgKzYw
LDkgQEAgcHVibGljOgogICAgIHZvaWQgcGFpbnRTeXN0ZW1QcmV2aWV3QmFkZ2UoSW1hZ2UmLCBj
b25zdCBQYWludEluZm8mLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICNlbmRpZgogCisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IEhhc2hNYXA8Q1NTVmFsdWVLZXksIENvbG9y
PiYgZ2V0T3JDcmVhdGVDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgdm9pZCBzZXRDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoSGFzaE1hcDxDU1NW
YWx1ZUtleSwgQ29sb3I+JiYpOworICAgIAogcHJvdGVjdGVkOgogICAgIExlbmd0aEJveCBwb3B1
cEludGVybmFsUGFkZGluZ0JveChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQko
cmV2aXNpb24gMjU0MDkyKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJCaXRtYXBJ
bWFnZS5oIgogI2ltcG9ydCAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKICNpbXBvcnQgIkNTU1RvTGVu
Z3RoQ29udmVyc2lvbkRhdGEuaCIKKyNpbXBvcnQgIkNTU1ZhbHVlS2V5LmgiCiAjaW1wb3J0ICJD
U1NWYWx1ZUtleXdvcmRzLmgiCiAjaW1wb3J0ICJDb2xvcklPUy5oIgogI2ltcG9ydCAiRGF0ZUNv
bXBvbmVudHMuaCIKQEAgLTE0MzAsNiArMTQzMSwxMTMgQEAgU3RyaW5nIFJlbmRlclRoZW1lSU9T
OjptZWRpYUNvbnRyb2xzQmFzZQogCiAjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQogCitzdHJ1Y3Qg
Q1NTVmFsdWVJREFuZFNlbGVjdG9yIHsKKyAgICBDU1NWYWx1ZUlEIGNzc1ZhbHVlSUQ7CisgICAg
U0VMIHNlbGVjdG9yOworfTsKKworc3RhdGljIGNvbnN0IFZlY3RvcjxDU1NWYWx1ZUlEQW5kU2Vs
ZWN0b3I+JiBjc3NWYWx1ZUlEU2VsZWN0b3JMaXN0KCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8VmVjdG9yPENTU1ZhbHVlSURBbmRTZWxlY3Rvcj4+IGNzc1ZhbHVlSURTZWxlY3Rvckxp
c3Q7CisKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgaW5pdGlhbGl6ZU9uY2U7CisgICAgc3Rk
OjpjYWxsX29uY2UoCisgICAgICAgIGluaXRpYWxpemVPbmNlLAorICAgICAgICBbXSB7CisgICAg
ICAgIGNzc1ZhbHVlSURTZWxlY3Rvckxpc3QuZ2V0KCkgPSBWZWN0b3Ioc3RkOjppbml0aWFsaXpl
cl9saXN0PENTU1ZhbHVlSURBbmRTZWxlY3Rvcj4geworI2lmIEhBVkUoT1NfREFSS19NT0RFX1NV
UFBPUlQpCisgICAgICAgICAgICB7IENTU1ZhbHVlVGV4dCwgQHNlbGVjdG9yKGxhYmVsQ29sb3Ip
IH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1MYWJlbCwgQHNlbGVjdG9yKGxh
YmVsQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1IZWFkZXJUZXh0
LCBAc2VsZWN0b3IobGFiZWxDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5
c3RlbVNlY29uZGFyeUxhYmVsLCBAc2VsZWN0b3Ioc2Vjb25kYXJ5TGFiZWxDb2xvcikgfSwKKyAg
ICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVRlcnRpYXJ5TGFiZWwsIEBzZWxlY3Rvcih0
ZXJ0aWFyeUxhYmVsQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1R
dWF0ZXJuYXJ5TGFiZWwsIEBzZWxlY3RvcihxdWF0ZXJuYXJ5TGFiZWxDb2xvcikgfSwKKyAgICAg
ICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVBsYWNlaG9sZGVyVGV4dCwgQHNlbGVjdG9yKHBs
YWNlaG9sZGVyVGV4dENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZVdlYmtpdENvbnRy
b2xCYWNrZ3JvdW5kLCBAc2VsZWN0b3Ioc3lzdGVtQmFja2dyb3VuZENvbG9yKSB9LAorICAgICAg
ICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtQ29udHJvbEJhY2tncm91bmQsIEBzZWxlY3Rvcihz
eXN0ZW1CYWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0
ZW1UZXh0QmFja2dyb3VuZCwgQHNlbGVjdG9yKHN5c3RlbUJhY2tncm91bmRDb2xvcikgfSwKKyAg
ICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUJhY2tncm91bmQsIEBzZWxlY3RvcihzeXN0
ZW1CYWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1T
ZWNvbmRhcnlCYWNrZ3JvdW5kLCBAc2VsZWN0b3Ioc2Vjb25kYXJ5U3lzdGVtQmFja2dyb3VuZENv
bG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtVGVydGlhcnlCYWNrZ3Jv
dW5kLCBAc2VsZWN0b3IodGVydGlhcnlTeXN0ZW1CYWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAg
ICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1Hcm91cGVkQmFja2dyb3VuZCwgQHNlbGVjdG9yKHN5
c3RlbUdyb3VwZWRCYWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBw
bGVTeXN0ZW1TZWNvbmRhcnlHcm91cGVkQmFja2dyb3VuZCwgQHNlbGVjdG9yKHNlY29uZGFyeVN5
c3RlbUdyb3VwZWRCYWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBw
bGVTeXN0ZW1UZXJ0aWFyeUdyb3VwZWRCYWNrZ3JvdW5kLCBAc2VsZWN0b3IodGVydGlhcnlTeXN0
ZW1Hcm91cGVkQmFja2dyb3VuZENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxl
U3lzdGVtR3JpZCwgQHNlbGVjdG9yKHNlcGFyYXRvckNvbG9yKSB9LAorICAgICAgICAgICAgeyBD
U1NWYWx1ZUFwcGxlU3lzdGVtU2VwYXJhdG9yLCBAc2VsZWN0b3Ioc2VwYXJhdG9yQ29sb3IpIH0s
CisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1Db250YWluZXJCb3JkZXIsIEBzZWxl
Y3RvcihzZXBhcmF0b3JDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3Rl
bVNlbGVjdGVkQ29udGVudEJhY2tncm91bmQsIEBzZWxlY3Rvcih0YWJsZUNlbGxEZWZhdWx0U2Vs
ZWN0aW9uVGludENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtVW5l
bXBoYXNpemVkU2VsZWN0ZWRDb250ZW50QmFja2dyb3VuZCwgQHNlbGVjdG9yKHRhYmxlQ2VsbERl
ZmF1bHRTZWxlY3Rpb25UaW50Q29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVT
eXN0ZW1Ccm93biwgQHNlbGVjdG9yKHN5c3RlbUJyb3duQ29sb3IpIH0sCisgICAgICAgICAgICB7
IENTU1ZhbHVlQXBwbGVTeXN0ZW1JbmRpZ28sIEBzZWxlY3RvcihzeXN0ZW1JbmRpZ29Db2xvcikg
fSwKKyNlbmRpZgorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtVGVhbCwgQHNlbGVj
dG9yKHN5c3RlbVRlYWxDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVdpcmVs
ZXNzUGxheWJhY2tUYXJnZXRBY3RpdmUsIEBzZWxlY3RvcihzeXN0ZW1CbHVlQ29sb3IpIH0sCisg
ICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1CbHVlLCBAc2VsZWN0b3Ioc3lzdGVtQmx1
ZUNvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtR3JheSwgQHNlbGVj
dG9yKHN5c3RlbUdyYXlDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3Rl
bUdyZWVuLCBAc2VsZWN0b3Ioc3lzdGVtR3JlZW5Db2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NT
VmFsdWVBcHBsZVN5c3RlbU9yYW5nZSwgQHNlbGVjdG9yKHN5c3RlbU9yYW5nZUNvbG9yKSB9LAor
ICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtUGluaywgQHNlbGVjdG9yKHN5c3RlbVBp
bmtDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVB1cnBsZSwgQHNl
bGVjdG9yKHN5c3RlbVB1cnBsZUNvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxl
U3lzdGVtUmVkLCBAc2VsZWN0b3Ioc3lzdGVtUmVkQ29sb3IpIH0sCisgICAgICAgICAgICB7IENT
U1ZhbHVlQXBwbGVTeXN0ZW1ZZWxsb3csIEBzZWxlY3RvcihzeXN0ZW1ZZWxsb3dDb2xvcikgfQor
ICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIHJldHVybiBjc3NWYWx1ZUlEU2VsZWN0b3JMaXN0
OworfQorCitzdGF0aWMgT3B0aW9uYWw8Q29sb3I+IHN5c3RlbUNvbG9yRnJvbUNTU1ZhbHVlSUQo
Q1NTVmFsdWVJRCBjc3NWYWx1ZUlELCBib29sIHVzZURhcmtBcHBlYXJhbmNlLCBib29sIHVzZUVs
ZXZhdGVkVXNlckludGVyZmFjZUxldmVsKQoreworICAgIExvY2FsQ3VycmVudFRyYWl0Q29sbGVj
dGlvbiBsb2NhbFRyYWl0Q29sbGVjdGlvbih1c2VEYXJrQXBwZWFyYW5jZSwgdXNlRWxldmF0ZWRV
c2VySW50ZXJmYWNlTGV2ZWwpOworCisgICAgYXV0byBjc3NDb2xvclRvU2VsZWN0b3IgPSBbY3Nz
VmFsdWVJRF0gKCkgLT4gU0VMIHsKKyAgICAgICAgZm9yIChhdXRvJiBjc3NWYWx1ZUlEU2VsZWN0
b3IgOiBjc3NWYWx1ZUlEU2VsZWN0b3JMaXN0KCkpIHsKKyAgICAgICAgICAgIGlmIChjc3NWYWx1
ZUlEU2VsZWN0b3IuY3NzVmFsdWVJRCA9PSBjc3NWYWx1ZUlEKQorICAgICAgICAgICAgICAgIHJl
dHVybiBjc3NWYWx1ZUlEU2VsZWN0b3Iuc2VsZWN0b3I7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgfTsKKworICAgIGlmIChhdXRvIHNlbGVjdG9yID0gY3NzQ29sb3JU
b1NlbGVjdG9yKCkpIHsKKyAgICAgICAgaWYgKGF1dG8gY29sb3IgPSB3dGZPYmpDTXNnU2VuZDxV
SUNvbG9yICo+KFBBTDo6Z2V0VUlDb2xvckNsYXNzKCksIHNlbGVjdG9yKSkKKyAgICAgICAgICAg
IHJldHVybiBDb2xvcihjb2xvci5DR0NvbG9yLCBDb2xvcjo6U2VtYW50aWMpOworICAgIH0KKyAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworfQorCisKK3N0YXRpYyBIYXNoTWFwPENTU1ZhbHVlS2V5
LCBDb2xvcj4mIGdsb2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpCit7CisgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8Q1NTVmFsdWVLZXksIENvbG9yPj4gY29sb3JNYXA7Cisg
ICAgcmV0dXJuIGNvbG9yTWFwOworfQorCitjb25zdCBIYXNoTWFwPENTU1ZhbHVlS2V5LCBDb2xv
cj4mIFJlbmRlclRoZW1lSU9TOjpnZXRPckNyZWF0ZUNTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8Q1NTVmFsdWVLZXksIENvbG9y
Pj4gbWFwOworCisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOworICAgIHN0ZDo6
Y2FsbF9vbmNlKAorICAgICAgICBvbmNlRmxhZywKKyAgICAgICAgW10geworICAgICAgICBmb3Ig
KGF1dG8mIGNzc1ZhbHVlSURTZWxlY3RvciA6IGNzc1ZhbHVlSURTZWxlY3Rvckxpc3QoKSkgewor
ICAgICAgICAgICAgZm9yIChib29sIHVzZURhcmtBcHBlYXJhbmNlIDogeyBmYWxzZSwgdHJ1ZSB9
KSB7CisgICAgICAgICAgICAgICAgZm9yIChib29sIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxl
dmVsIDogeyBmYWxzZSwgdHJ1ZSB9KSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIGNv
bG9yID0gc3lzdGVtQ29sb3JGcm9tQ1NTVmFsdWVJRChjc3NWYWx1ZUlEU2VsZWN0b3IuY3NzVmFs
dWVJRCwgdXNlRGFya0FwcGVhcmFuY2UsIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5nZXQoKS5hZGQoQ1NTVmFsdWVLZXkgeyBjc3NW
YWx1ZUlEU2VsZWN0b3IuY3NzVmFsdWVJRCwgdXNlRGFya0FwcGVhcmFuY2UsIHVzZUVsZXZhdGVk
VXNlckludGVyZmFjZUxldmVsIH0sICpjb2xvcik7CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgfSk7CisKKyAgICByZXR1cm4gbWFwOworfQorCit2b2lk
IFJlbmRlclRoZW1lSU9TOjpzZXRDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoSGFzaE1hcDxDU1NW
YWx1ZUtleSwgQ29sb3I+JiYgY29sb3JNYXApCit7CisgICAgZ2xvYmFsQ1NTVmFsdWVUb1N5c3Rl
bUNvbG9yTWFwKCkgPSBXVEZNb3ZlKGNvbG9yTWFwKTsKK30KKwogQ29sb3IgUmVuZGVyVGhlbWVJ
T1M6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29s
b3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgY29uc3QgYm9vbCBmb3JWaXNpdGVk
TGluayA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6Rm9yVmlzaXRlZExp
bmspOwpAQCAtMTQ0Niw3OSArMTU1NCwxNSBAQCBDb2xvciBSZW5kZXJUaGVtZUlPUzo6c3lzdGVt
Q29sb3IoQ1NTVmFsCiAgICAgcmV0dXJuIGNhY2hlLnN5c3RlbVN0eWxlQ29sb3JzLmVuc3VyZShj
c3NWYWx1ZUlELCBbdGhpcywgY3NzVmFsdWVJRCwgb3B0aW9uc10gKCkgLT4gQ29sb3IgewogICAg
ICAgICBjb25zdCBib29sIHVzZURhcmtBcHBlYXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHls
ZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CiAgICAgICAgIGNvbnN0IGJvb2wg
dXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29s
b3I6Ok9wdGlvbnM6OlVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKLSAgICAgICAgTG9j
YWxDdXJyZW50VHJhaXRDb2xsZWN0aW9uIGxvY2FsVHJhaXRDb2xsZWN0aW9uKHVzZURhcmtBcHBl
YXJhbmNlLCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCk7Ci0KLSAgICAgICAgYXV0byBj
c3NDb2xvclRvU2VsZWN0b3IgPSBbY3NzVmFsdWVJRF0gKCkgLT4gU0VMIHsKLSAgICAgICAgICAg
IHN3aXRjaCAoY3NzVmFsdWVJRCkgewotI2lmIEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCi0g
ICAgICAgICAgICBjYXNlIENTU1ZhbHVlVGV4dDoKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVB
cHBsZVN5c3RlbUxhYmVsOgotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtSGVh
ZGVyVGV4dDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKGxhYmVsQ29sb3IpOwot
ICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5TGFiZWw6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzZWNvbmRhcnlMYWJlbENvbG9yKTsKLSAgICAg
ICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVRlcnRpYXJ5TGFiZWw6Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIEBzZWxlY3Rvcih0ZXJ0aWFyeUxhYmVsQ29sb3IpOwotICAgICAgICAgICAg
Y2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtUXVhdGVybmFyeUxhYmVsOgotICAgICAgICAgICAgICAg
IHJldHVybiBAc2VsZWN0b3IocXVhdGVybmFyeUxhYmVsQ29sb3IpOwotICAgICAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUFwcGxlU3lzdGVtUGxhY2Vob2xkZXJUZXh0OgotICAgICAgICAgICAgICAgIHJl
dHVybiBAc2VsZWN0b3IocGxhY2Vob2xkZXJUZXh0Q29sb3IpOwotICAgICAgICAgICAgY2FzZSBD
U1NWYWx1ZVdlYmtpdENvbnRyb2xCYWNrZ3JvdW5kOgotICAgICAgICAgICAgY2FzZSBDU1NWYWx1
ZUFwcGxlU3lzdGVtQ29udHJvbEJhY2tncm91bmQ6Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVl
QXBwbGVTeXN0ZW1UZXh0QmFja2dyb3VuZDoKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBs
ZVN5c3RlbUJhY2tncm91bmQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0
ZW1CYWNrZ3JvdW5kQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVt
U2Vjb25kYXJ5QmFja2dyb3VuZDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHNl
Y29uZGFyeVN5c3RlbUJhY2tncm91bmRDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVl
QXBwbGVTeXN0ZW1UZXJ0aWFyeUJhY2tncm91bmQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBz
ZWxlY3Rvcih0ZXJ0aWFyeVN5c3RlbUJhY2tncm91bmRDb2xvcik7Ci0gICAgICAgICAgICBjYXNl
IENTU1ZhbHVlQXBwbGVTeXN0ZW1Hcm91cGVkQmFja2dyb3VuZDoKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gQHNlbGVjdG9yKHN5c3RlbUdyb3VwZWRCYWNrZ3JvdW5kQ29sb3IpOwotICAgICAgICAg
ICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5R3JvdXBlZEJhY2tncm91bmQ6Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzZWNvbmRhcnlTeXN0ZW1Hcm91cGVkQmFj
a2dyb3VuZENvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVRlcnRp
YXJ5R3JvdXBlZEJhY2tncm91bmQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3Rvcih0
ZXJ0aWFyeVN5c3RlbUdyb3VwZWRCYWNrZ3JvdW5kQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBD
U1NWYWx1ZUFwcGxlU3lzdGVtR3JpZDoKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5
c3RlbVNlcGFyYXRvcjoKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUNvbnRh
aW5lckJvcmRlcjoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHNlcGFyYXRvckNv
bG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVNlbGVjdGVkQ29udGVu
dEJhY2tncm91bmQ6Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1VbmVtcGhh
c2l6ZWRTZWxlY3RlZENvbnRlbnRCYWNrZ3JvdW5kOgotICAgICAgICAgICAgICAgIHJldHVybiBA
c2VsZWN0b3IodGFibGVDZWxsRGVmYXVsdFNlbGVjdGlvblRpbnRDb2xvcik7Ci0gICAgICAgICAg
ICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1Ccm93bjoKLSAgICAgICAgICAgICAgICByZXR1cm4g
QHNlbGVjdG9yKHN5c3RlbUJyb3duQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFw
cGxlU3lzdGVtSW5kaWdvOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVt
SW5kaWdvQ29sb3IpOwotI2VuZGlmCi0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0
ZW1UZWFsOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtVGVhbENvbG9y
KTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVdpcmVsZXNzUGxheWJhY2tUYXJnZXRB
Y3RpdmU6Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1CbHVlOgotICAgICAg
ICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtQmx1ZUNvbG9yKTsKLSAgICAgICAgICAg
IGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUdyYXk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBz
ZWxlY3RvcihzeXN0ZW1HcmF5Q29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxl
U3lzdGVtR3JlZW46Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1HcmVl
bkNvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbU9yYW5nZToKLSAg
ICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbU9yYW5nZUNvbG9yKTsKLSAgICAg
ICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVBpbms6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIEBzZWxlY3RvcihzeXN0ZW1QaW5rQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1
ZUFwcGxlU3lzdGVtUHVycGxlOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lz
dGVtUHVycGxlQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtUmVk
OgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtUmVkQ29sb3IpOwotICAg
ICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtWWVsbG93OgotICAgICAgICAgICAgICAg
IHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtWWVsbG93Q29sb3IpOwotICAgICAgICAgICAgZGVmYXVs
dDoKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfTsKLQotICAgICAgICBpZiAoYXV0byBzZWxlY3RvciA9IGNzc0NvbG9yVG9TZWxlY3Rvcigp
KSB7Ci0gICAgICAgICAgICBpZiAoYXV0byBjb2xvciA9IHd0Zk9iakNNc2dTZW5kPFVJQ29sb3Ig
Kj4oUEFMOjpnZXRVSUNvbG9yQ2xhc3MoKSwgc2VsZWN0b3IpKQotICAgICAgICAgICAgICAgIHJl
dHVybiBDb2xvcihjb2xvci5DR0NvbG9yLCBDb2xvcjo6U2VtYW50aWMpOworICAgICAgICBpZiAo
IWdsb2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpLmlzRW1wdHkoKSkgeworICAgICAgICAg
ICAgYXV0byBpdCA9IGdsb2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpLmZpbmQoQ1NTVmFs
dWVLZXkgeyBjc3NWYWx1ZUlELCB1c2VEYXJrQXBwZWFyYW5jZSwgdXNlRWxldmF0ZWRVc2VySW50
ZXJmYWNlTGV2ZWwgfSk7CisgICAgICAgICAgICBpZiAoaXQgPT0gZ2xvYmFsQ1NTVmFsdWVUb1N5
c3RlbUNvbG9yTWFwKCkuZW5kKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIFJlbmRlclRoZW1l
OjpzeXN0ZW1Db2xvcihjc3NWYWx1ZUlELCBvcHRpb25zKTsKKyAgICAgICAgICAgIHJldHVybiBD
b2xvcihpdC0+dmFsdWUucmdiKCksIENvbG9yOjpTZW1hbnRpYyk7CiAgICAgICAgIH0KLQorICAg
ICAgICBhdXRvIGNvbG9yID0gc3lzdGVtQ29sb3JGcm9tQ1NTVmFsdWVJRChjc3NWYWx1ZUlELCB1
c2VEYXJrQXBwZWFyYW5jZSwgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOworICAgICAg
ICBpZiAoY29sb3IpCisgICAgICAgICAgICByZXR1cm4gKmNvbG9yOwogICAgICAgICByZXR1cm4g
UmVuZGVyVGhlbWU6OnN5c3RlbUNvbG9yKGNzc1ZhbHVlSUQsIG9wdGlvbnMpOwogICAgIH0pLml0
ZXJhdG9yLT52YWx1ZTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJ
KHJldmlzaW9uIDI1NDA5MikKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkNTU0FuaW1hdGlv
bkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDU1NLZXlmcmFtZXNSdWxlLmgiCiAjaW5jbHVkZSAi
Q1NTTWVkaWFSdWxlLmgiCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlQYXJzZXIuaCIKICNpbmNsdWRl
ICJDU1NTdHlsZVJ1bGUuaCIKICNpbmNsdWRlICJDU1NTdXBwb3J0c1J1bGUuaCIKICNpbmNsdWRl
ICJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgiCkBAIC0xNDgsNiArMTQ5LDcgQEAKICNpbmNsdWRl
ICJSZW5kZXJMYXllckJhY2tpbmcuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3Iu
aCIKICNpbmNsdWRlICJSZW5kZXJNZW51TGlzdC5oIgorI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgi
CiAjaW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4dC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIK
ICNpbmNsdWRlICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgiCkBAIC01NDA4LDQgKzU0MTAsMTgg
QEAgU3RyaW5nIEludGVybmFsczo6d2luZG93TG9jYXRpb25Ib3N0KERPTQogICAgIHJldHVybiB3
aW5kb3cubG9jYXRpb24oKS5ob3N0KCk7CiB9CiAKK1N0cmluZyBJbnRlcm5hbHM6OnN5c3RlbUNv
bG9yRm9yQ1NTVmFsdWUoY29uc3QgU3RyaW5nJiBjc3NWYWx1ZSwgYm9vbCB1c2VEYXJrTW9kZUFw
cGVhcmFuY2UsIGJvb2wgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpCit7CisgICAgQ1NT
VmFsdWVJRCBpZCA9IGNzc1ZhbHVlS2V5d29yZElEKGNzc1ZhbHVlKTsKKyAgICBSRUxFQVNFX0FT
U0VSVChTdHlsZUNvbG9yOjppc1N5c3RlbUNvbG9yKGlkKSk7CisKKyAgICBPcHRpb25TZXQ8U3R5
bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9uczsKKyAgICBpZiAodXNlRGFya01vZGVBcHBlYXJhbmNl
KQorICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFy
YW5jZSk7CisgICAgaWYgKHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKQorICAgICAgICBv
cHRpb25zLmFkZChTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VM
ZXZlbCk7CisgICAgCisgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5zeXN0ZW1D
b2xvcihpZCwgb3B0aW9ucykuY3NzVGV4dCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlzaW9uIDI1NDA5MikKKysr
IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTky
Myw2ICs5MjMsOCBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgd2luZG93TG9jYXRpb25Ib3N0KERP
TVdpbmRvdyYpOwogCisgICAgU3RyaW5nIHN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoY29uc3QgU3Ry
aW5nJiBjc3NWYWx1ZSwgYm9vbCB1c2VEYXJrTW9kZUFwcGVhcmFuY2UsIGJvb2wgdXNlRWxldmF0
ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEludGVybmFs
cyhEb2N1bWVudCYpOwogICAgIERvY3VtZW50KiBjb250ZXh0RG9jdW1lbnQoKSBjb25zdDsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHJldmlzaW9uIDI1NDA5MikKKysr
IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAkod29ya2luZyBjb3B5KQpAQCAt
ODMwLDQgKzgzMCw2IEBAIGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewogCiAgICAgYm9vbGVhbiBo
YXNTYW5kYm94TWFjaExvb2t1cEFjY2Vzc1RvR2xvYmFsTmFtZShET01TdHJpbmcgcHJvY2Vzcywg
RE9NU3RyaW5nIHNlcnZpY2UpOwogICAgIGJvb2xlYW4gaGFzU2FuZGJveE1hY2hMb29rdXBBY2Nl
c3NUb1hQQ1NlcnZpY2VOYW1lKERPTVN0cmluZyBwcm9jZXNzLCBET01TdHJpbmcgc2VydmljZSk7
CisgICAgCisgICAgRE9NU3RyaW5nIHN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoRE9NU3RyaW5nIGNz
c1ZhbHVlLCBib29sZWFuIHVzZURhcmtNb2RlQXBwZWFyYW5jZSwgYm9vbGVhbiB1c2VFbGV2YXRl
ZFVzZXJJbnRlcmZhY2VMZXZlbCk7CiB9OwpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDE2NCkK
KysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMjAtMDEtMDcgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisg
ICAgICAgIE1hcCBDU1MgdmFsdWUgSUQgdG8gc3lzdGVtIGNvbG9yIGluIHRoZSBVSSBwcm9jZXNz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzMTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGUg
bWFwcGluZyBiZXR3ZWVuIENTUyB2YWx1ZSBJRHMgYW5kIHN5c3RlbSBjb2xvcnMgaW4gdGhlIFVJ
IHByb2Nlc3MgYW5kIHNlbmQgdG8gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcworICAgICAgICBvbiBw
cm9jZXNzIHN0YXJ0dXAuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2Nv
YS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQ
cm9jZXNzKToKKwogMjAyMC0wMS0wNyAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+
CiAKICAgICAgICAgRmlyc3QgY2hhcmFjdGVyIGluIGVhY2ggd29yZC13cmFwcGVkIGxpbmUgaGFz
IGluY29ycmVjdCBjaGFyYWN0ZXIgcmVjdCB3aGVuIHJlcXVlc3RlZCByYW5nZSBzcGFucyBtdWx0
aXBsZSBsaW5lcwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDI1NDA5MikKKysrIFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNzQsNiArMTc0LDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
OjplbmNvZAogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBlbmNvZGVyIDw8IGN1cnJl
bnRVc2VySW50ZXJmYWNlSWRpb21Jc1BhZDsKKyAgICBlbmNvZGVyIDw8IGNzc1ZhbHVlVG9TeXN0
ZW1Db2xvck1hcDsKICNlbmRpZgogfQogCkBAIC00NTAsNiArNDUxLDEyIEBAIGJvb2wgV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2QKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5jdXJyZW50VXNlckludGVyZmFjZUlk
aW9tSXNQYWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBPcHRpb25hbDxIYXNoTWFw
PFdlYkNvcmU6OkNTU1ZhbHVlS2V5LCBXZWJDb3JlOjpDb2xvcj4+IGNzc1ZhbHVlVG9TeXN0ZW1D
b2xvck1hcDsKKyAgICBkZWNvZGVyID4+IGNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcDsKKyAgICBp
ZiAoIWNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHBhcmFtZXRlcnMuY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwID0gV1RGTW92ZSgqY3NzVmFsdWVU
b1N5c3RlbUNvbG9yTWFwKTsKICNlbmRpZgogCiAgICAgcmV0dXJuIHRydWU7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5o
CShyZXZpc2lvbiAyNTQwOTIpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDEwIEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9Tb3VwTmV0d29ya1Byb3h5U2V0dGluZ3MuaD4KICNlbmRpZgogCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclRoZW1lSU9TLmg+
CisjZW5kaWYKKwogbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBEYXRhOwogfQpAQCAtMjEyLDYgKzIx
Niw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAgICAgYm9vbCBjdXJyZW50VXNlckludGVyZmFjZUlkaW9tSXNQYWQg
eyBmYWxzZSB9OworICAgIEhhc2hNYXA8V2ViQ29yZTo6Q1NTVmFsdWVLZXksIFdlYkNvcmU6OkNv
bG9yPiBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CiAjZW5kaWYKIH07CiAKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5t
bQkocmV2aXNpb24gMjU0MDkyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
UHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzQ5LDYgKzM0OSw3IEBAIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICAgICAKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQogICAgIHBhcmFtZXRlcnMuY3VycmVudFVzZXJJbnRlcmZhY2VJZGlvbUlz
UGFkID0gY3VycmVudFVzZXJJbnRlcmZhY2VJZGlvbUlzUGFkKCk7CisgICAgcGFyYW1ldGVycy5j
c3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAgPSBSZW5kZXJUaGVtZUlPUzo6Z2V0T3JDcmVhdGVDU1NW
YWx1ZVRvU3lzdGVtQ29sb3JNYXAoKTsKICNlbmRpZgogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHJldmlzaW9uIDI1
NDA5MikKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTI1OSw2ICsyNTksMTAgQEAgdm9pZCBXZWJQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcgogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1l
UGVybWFuZW50bHkoKnBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSk7
CiAgICAgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OnNldEhhc0NvbnN1bWVkU2FuZGJv
eEV4dGVuc2lvbnMocGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRsZS5oYXNWYWx1ZSgp
ICYmIHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZS5oYXNWYWx1ZSgp
KTsKICNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBSZW5kZXJUaGVtZUlP
Uzo6c2V0Q1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKFdURk1vdmUocGFyYW1ldGVycy5jc3NWYWx1
ZVRvU3lzdGVtQ29sb3JNYXApKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRm
b3JtU2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFt
ZXRlcnMmJiBwYXJhbWV0ZXJzKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjU0MDkyKQorKysgTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDEt
MDcgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIE1hcCBD
U1MgdmFsdWUgSUQgdG8gc3lzdGVtIGNvbG9yIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzMTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6
CisgICAgICAgICogZmFzdC9jc3MvaW9zOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9pb3Mv
c3lzdGVtLWNvbG9yLWZvci1jc3MtdmFsdWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2Nzcy9pb3Mvc3lzdGVtLWNvbG9yLWZvci1jc3MtdmFsdWUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMjAtMDEtMDYgIERh
bmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFByZWNpc2lvbiBvZiBn
ZXRDbGllbnRSZWN0cygpLCBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBkaWZmZXJzIGRlcGVuZGlu
ZyB3aGV0aGVyIHNpbXBsZSBsaW5lIGxheW91dCBvciBsaW5lIGJveCBsYXlvdXQgaXMgdXNlZApJ
bmRleDogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAyNTQwOTIpCisrKyBMYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBAIGVkaXRpbmcv
cGFzdGVib2FyZC9ndGsgWyBTa2lwIF0KIGVkaXRpbmcvc2VsZWN0aW9uL2lvcyBbIFNraXAgXQog
ZWRpdGluZy91bmRvLW1hbmFnZXIgWyBTa2lwIF0KIHRpbGVkLWRyYXdpbmcgWyBTa2lwIF0KK2Zh
c3QvY3NzL2lvcyBbIFNraXAgXQogZmFzdC9jc3Mvd2F0Y2hvcyBbIFNraXAgXQogZmFzdC9kb20v
V2luZG93L3dhdGNob3MgWyBTa2lwIF0KIGZhc3QvZm9ybXMvc2VsZWN0L21hYy13azIgWyBTa2lw
IF0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2lvcy9zeXN0ZW0tY29sb3ItZm9yLWNzcy12
YWx1ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW9z
L3N5c3RlbS1jb2xvci1mb3ItY3NzLXZhbHVlLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pb3Mvc3lzdGVtLWNvbG9yLWZvci1jc3MtdmFsdWUtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3QgdGhhdCBzeXN0
ZW0gY29sb3JzIGZvciBDU1MgdmFsdWVzIGFyZSBjb3JyZWN0LgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZSgiLWFw
cGxlLXN5c3RlbS1jb250cm9sLWJhY2tncm91bmQiLCB0cnVlLCBmYWxzZSkgaXMgInJnYigwLCAw
LCAwKSIKK1BBU1MgaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoIi1hcHBsZS1zeXN0
ZW0tc2Vjb25kYXJ5LWdyb3VwZWQtYmFja2dyb3VuZCIsIHRydWUsIGZhbHNlKSBpcyAicmdiKDI4
LCAyOCwgMzApIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2lvcy9zeXN0ZW0tY29sb3ItZm9yLWNz
cy12YWx1ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2lvcy9zeXN0
ZW0tY29sb3ItZm9yLWNzcy12YWx1ZS5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvY3NzL2lvcy9zeXN0ZW0tY29sb3ItZm9yLWNzcy12YWx1ZS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMTkgQEAKKzxodG1sPgorPGhlYWQgaWQ9ImhlYWQiPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSA+Cis8c2NyaXB0PgorICAgIAorZGVzY3JpcHRpb24oIlRlc3QgdGhhdCBzeXN0ZW0gY29s
b3JzIGZvciBDU1MgdmFsdWVzIGFyZSBjb3JyZWN0LiIpOworCitpZiAod2luZG93LmludGVybmFs
cykgeworICAgIHNob3VsZEJlKCJpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZShcIi1h
cHBsZS1zeXN0ZW0tY29udHJvbC1iYWNrZ3JvdW5kXCIsIHRydWUsIGZhbHNlKSIsICJcInJnYigw
LCAwLCAwKVwiIik7CisgICAgc2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1Zh
bHVlKFwiLWFwcGxlLXN5c3RlbS1zZWNvbmRhcnktZ3JvdXBlZC1iYWNrZ3JvdW5kXCIsIHRydWUs
IGZhbHNlKSIsICJcInJnYigyOCwgMjgsIDMwKVwiIik7Cit9CisKKzwvc2NyaXB0PgorCis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0
aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0
aW9ucwkocmV2aXNpb24gMjU0MDkyKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RF
eHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTEzLDYgKzEzLDcgQEAgbWVkaWEvaW9zIFsg
UGFzcyBdCiBxdWlja2xvb2sgWyBQYXNzIF0KIHN3aXBlIFsgUGFzcyBdCiAKK2Zhc3QvY3NzL2lv
cyBbIFBhc3MgXQogZmFzdC9tZWRpYS9pb3MgWyBQYXNzIF0KIAogZmFzdC9mb3Jtcy90ZXh0YXJl
YS9pb3MgWyBQYXNzIF0KQEAgLTM0NTgsNCArMzQ1OSw0IEBAIHdlYmtpdC5vcmcvYi8yMDM0MTYg
aW1wb3J0ZWQvdzNjL3dlYi1wbGEKIAogd2Via2l0Lm9yZy9iLzIwNDc1NyBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L2Rlc3RpbmF0aW9uL2ZldGNoLWRl
c3RpbmF0aW9uLW5vLWxvYWQtZXZlbnQuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKLXdl
YmtpdC5vcmcvYi8yMDUzMDkgc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zL3Njcm9sbC1wb3NpdGlv
bi1hZnRlci1yZWF0dGFjaC5odG1sIFsgSW1hZ2Vvbmx5RmFpbHVyZSBdClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQord2Via2l0Lm9yZy9iLzIwNTMwOSBzY3JvbGxpbmdjb29yZGluYXRvci9p
b3Mvc2Nyb2xsLXBvc2l0aW9uLWFmdGVyLXJlYXR0YWNoLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387048</attachid>
            <date>2020-01-07 16:05:49 -0800</date>
            <delta_ts>2020-01-09 11:19:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204314-20200107160548.patch</filename>
            <type>text/plain</type>
            <size>32968</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDE2NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDIwLTAxLTA3ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNYXAgQ1NTIHZhbHVlIElE
IHRvIHN5c3RlbSBjb2xvciBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MzE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5LCBSZW5kZXJUaGVtZUlPUyBpcyBt
YXBwaW5nIENTUyB2YWx1ZSBJRHMgdG8gc3lzdGVtIGNvbG9ycyBpbiB0aGUgV2ViQ29udGVudCBw
cm9jZXNzLiBUaGlzIG1hcHBpbmcgbGVhZHMgdG8KKyAgICAgICAgaW52b2tpbmcgc2VsZWN0b3Jz
IG9uIFVJVHJhaXRDb2xsZWN0aW9uIGFuZCBVSUNvbG9yLCB3aGljaCB3aWxsIHNlbmQgbWVzc2Fn
ZXMgdG8gdGhlIHJ1bm5pbmdib2FyZCBkYWVtb24uIFNpbmNlIHdlCisgICAgICAgIHdpbGwgYmUg
YmxvY2tpbmcgYWNjZXNzIHRvIHRoaXMgZGFlbW9uIGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3Ms
IHRoaXMgbWFwcGluZyBzaG91bGQgYmUgbW92ZWQgdG8gdGhlIFVJIHByb2Nlc3MuCisgICAgICAg
IFRoZSBVSSBwcm9jZXNzIHdpbGwgY3JlYXRlIGEgbWFwcGluZyBiZXR3ZWVuIENTUyB2YWx1ZSBJ
RHMgYW5kIHN5c3RlbSBjb2xvcnMsIGFuZCBwYXNzIGl0IHRvIHRoZSBXZWJDb250ZW50IHByb2Nl
c3MuCisKKyAgICAgICAgVGVzdDogZmFzdC9jc3MvaW9zL3N5c3RlbS1jb2xvci1mb3ItY3NzLXZh
bHVlLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBjc3MvU3R5bGVDb2xvci5oOgorICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJv
cGVydHlQYXJzZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvQ1NTVmFsdWVLZXkuaDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Zh
bHVlS2V5OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVLZXk6OmRl
Y29kZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZUtleTo6aGFzaCBjb25zdCk6CisgICAg
ICAgIChXVEY6OkNTU1ZhbHVlS2V5SGFzaDo6aGFzaCk6CisgICAgICAgIChXVEY6OkNTU1ZhbHVl
S2V5SGFzaDo6ZXF1YWwpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OkNTU1Zh
bHVlS2V5Pjo6ZW1wdHlWYWx1ZSk6CisgICAgICAgIChXVEY6Okhhc2hUcmFpdHM8V2ViQ29yZTo6
Q1NTVmFsdWVLZXk+Ojpjb25zdHJ1Y3REZWxldGVkVmFsdWUpOgorICAgICAgICAoV1RGOjpIYXNo
VHJhaXRzPFdlYkNvcmU6OkNTU1ZhbHVlS2V5Pjo6aXNEZWxldGVkVmFsdWUpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
aGVtZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmNzc1ZhbHVlSURTZWxlY3Rvckxpc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6c3lzdGVtQ29sb3JGcm9tQ1NTVmFsdWVJRCk6CisgICAgICAgIChX
ZWJDb3JlOjpnbG9iYWxDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXApOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVJT1M6OmdldE9yQ3JlYXRlQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpzZXRDU1NWYWx1ZVRvU3lzdGVtQ29s
b3JNYXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OnN5c3RlbUNvbG9yIGNv
bnN0KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbHM6OnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUpOgorICAgICAgICAqIHRlc3Rpbmcv
SW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDIwLTAx
LTA3ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkIHJlc3RhYmlsaXphdGlvbiBvZiBub24tdW5pZmllZCBidWlsZC4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJl
dmlzaW9uIDI1NDA5MikKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDgwMyw2ICs0ODAzLDcgQEAKIAkJRTNCMkYw
RUQxRDdGNENBMzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0IyRjBFNzFEN0YzNUVDMDBCMEM5RDEgLyog
TG9hZGFibGVTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlFM0IyRjBFRTFEN0Y0Q0E5MDBCMEM5RDEgLyogTG9hZGFibGVTY3JpcHRDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQjJG
MEU4MUQ3RjM1RUMwMEIwQzlEMSAvKiBMb2FkYWJsZVNjcmlwdENsaWVudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzQjJGMEYwMUQ3RjRDQjUw
MEIwQzlEMSAvKiBMb2FkYWJsZUNsYXNzaWNTY3JpcHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQjJGMEU0MUQ3RjM1RUMwMEIwQzlEMSAvKiBMb2Fk
YWJsZUNsYXNzaWNTY3JpcHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlFM0JCQzI0NzIzODM1NTI2MDA2RUMzOUYgLyogQ1NTVmFsdWVLZXkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQkJDMjQ1MjM4
MzU1MUEwMDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzQzk5QTA5MURDM0Q0MUMwMDc5NEFEMyAvKiBET01K
SVRDaGVja0RPTS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTNDOTlBMDgxREMzRDQxNzAwNzk0QUQzIC8qIERPTUpJVENoZWNrRE9NLmggKi87IH07CiAJ
CUUzQzlBRUNCMjExMzE0OTkwMDQxOUI5MiAvKiBKU01pY3JvdGFza0NhbGxiYWNrLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0M5QUVDOTIxMTMxNDc0
MDA0MTlCOTIgLyogSlNNaWNyb3Rhc2tDYWxsYmFjay5oICovOyB9OwogCQlFM0U0RTJBODFFM0Ix
NzEwMDAyM0JCOEEgLyogU2NyaXB0RWxlbWVudENhY2hlZFNjcmlwdEZldGNoZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRTRFMkE2MUUzQjE2RkMw
MDIzQkI4QSAvKiBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xNTE1MCw2ICsxNTE1MSw3
IEBACiAJCUUzQjJGMEU4MUQ3RjM1RUMwMEIwQzlEMSAvKiBMb2FkYWJsZVNjcmlwdENsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2FkYWJsZVNjcmlwdENsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0IyRjBFOTFEN0YzRDNDMDBCMEM5RDEg
LyogTG9hZGFibGVTY3JpcHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTG9hZGFibGVTY3JpcHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0I3
QzA2MjFEQzM0MTVBMDAxRkIwQjggLyogSlNEb2N1bWVudERPTUpJVC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RvY3VtZW50RE9NSklULmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNCQkMyNDUyMzgzNTUxQTAwNkVDMzlGIC8qIENTU1ZhbHVl
S2V5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1ZhbHVlS2V5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQkM4MjczMjI1MzAyMjEwMDUyNzZERSAvKiBO
b2RlTGlzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOb2RlTGlzdC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUzQkYxOUUxMjJBRjJGNTUwMDlDOTkyNiAvKiBYTUxIdHRwUmVx
dWVzdFByb2dyZXNzRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWE1MSHR0cFJlcXVlc3RQ
cm9ncmVzc0V2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNCRjE5RTMy
MkFGMkZBNTAwOUM5OTI2IC8qIE92ZXJjb25zdHJhaW5lZEVycm9yRXZlbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yNzY3Nyw2ICsyNzY3OSw3IEBACiAJCQkJOTM5MkYxNEIwQUQxODYx
QjAwNjkxQkQ0IC8qIENvdW50ZXJOb2RlLmggKi8sCiAJCQkJMEY1M0ZCODEyMTNCMUJCODAwQzQw
RDM0IC8qIENTU0ZpbHRlci5jcHAgKi8sCiAJCQkJMEY1M0ZCODMyMTNCMUJCODAwQzQwRDM0IC8q
IENTU0ZpbHRlci5oICovLAorCQkJCUUzQkJDMjQ1MjM4MzU1MUEwMDZFQzM5RiAvKiBDU1NWYWx1
ZUtleS5oICovLAogCQkJCUE4Q0ZGNkNBMEExNTYxQ0QwMDBBNDIzNCAvKiBFbGxpcHNpc0JveC5j
cHAgKi8sCiAJCQkJQThDRkY2QkQwQTE1NjExODAwMEE0MjM0IC8qIEVsbGlwc2lzQm94LmggKi8s
CiAJCQkJRTRBOEQyMTUyMjU3OERBMDAwQTg0NjNDIC8qIEV2ZW50UmVnaW9uLmNwcCAqLywKQEAg
LTI5NTY2LDYgKzI5NTY5LDcgQEAKIAkJCQlERDdDREYyNTBBMjNDRjk4MDAwNjk5MjggLyogQ1NT
VW5rbm93blJ1bGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDN0Q4RkYwMUJEMDNCNjQwMEZGRTU0
MCAvKiBDU1NVbnNldFZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODBFNkNFRTBBMTk4OUNB
MDA3RkI4QzUgLyogQ1NTVmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCUUzQkJDMjQ3MjM4MzU1
MjYwMDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU2NTgxNTEw
OUQxMzA0MzAwMEU2MUQ3IC8qIENTU1ZhbHVlS2V5d29yZHMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4MEU2Q0U5MEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NWYWx1ZUxpc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCUU0OUJEOUZBMTMxRkQyRUQwMDNDNTZGMCAvKiBDU1NWYWx1ZVBvb2wuaCBpbiBIZWFk
ZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQ29sb3IuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVDb2xvci5oCShyZXZpc2lvbiAyNTQwOTIpCisr
KyBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVDb2xvci5oCSh3b3JraW5nIGNvcHkpCkBAIC02MCw3
ICs2MCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBDb2xvciBjb2xvckZyb21LZXl3b3JkKENT
U1ZhbHVlSUQsIE9wdGlvblNldDxPcHRpb25zPik7CiAgICAgc3RhdGljIGJvb2wgaXNDb2xvcktl
eXdvcmQoQ1NTVmFsdWVJRCk7Ci0gICAgc3RhdGljIGJvb2wgaXNTeXN0ZW1Db2xvcihDU1NWYWx1
ZUlEKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBpc1N5c3RlbUNvbG9yKENTU1Zh
bHVlSUQpOwogCiBwcml2YXRlOgogICAgIENvbG9yIG1fY29sb3I7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5oCShyZXZpc2lvbiAyNTQwOTIp
CisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEyMiw3ICsxMjIsNyBAQCBwcml2YXRlOgogfTsKIAogQ1NTUHJvcGVydHlJ
RCBjc3NQcm9wZXJ0eUlEKFN0cmluZ1ZpZXcpOwotQ1NTVmFsdWVJRCBjc3NWYWx1ZUtleXdvcmRJ
RChTdHJpbmdWaWV3KTsKK1dFQkNPUkVfRVhQT1JUIENTU1ZhbHVlSUQgY3NzVmFsdWVLZXl3b3Jk
SUQoU3RyaW5nVmlldyk7CiBib29sIGlzQ3VzdG9tUHJvcGVydHlOYW1lKGNvbnN0IFN0cmluZyYp
OwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9DU1NWYWx1ZUtleS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9DU1NWYWx1ZUtleS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9DU1NWYWx1ZUtleS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IENTU1ZhbHVlS2V5IHsKKworICAgIHVuc2lnbmVk
IGhhc2goKSBjb25zdDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0
aW9uYWw8Q1NTVmFsdWVLZXk+IGRlY29kZShEZWNvZGVyJik7CisKKyAgICB1bnNpZ25lZCBjc3NW
YWx1ZUlEOworICAgIGJvb2wgdXNlRGFya0FwcGVhcmFuY2U7CisgICAgYm9vbCB1c2VFbGV2YXRl
ZFVzZXJJbnRlcmZhY2VMZXZlbDsKK307CisKK2lubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3Qg
Q1NTVmFsdWVLZXkmIGEsIGNvbnN0IENTU1ZhbHVlS2V5JiBiKQoreworICAgIHJldHVybiBhLmNz
c1ZhbHVlSUQgPT0gYi5jc3NWYWx1ZUlEICYmIGEudXNlRGFya0FwcGVhcmFuY2UgPT0gYi51c2VE
YXJrQXBwZWFyYW5jZSAmJiBhLnVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsID09IGIudXNl
RWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWw7Cit9CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+
Cit2b2lkIENTU1ZhbHVlS2V5OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAg
ICBlbmNvZGVyIDw8IGNzc1ZhbHVlSUQ7CisgICAgZW5jb2RlciA8PCB1c2VEYXJrQXBwZWFyYW5j
ZTsKKyAgICBlbmNvZGVyIDw8IHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsOworfQorCit0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorT3B0aW9uYWw8Q1NTVmFsdWVLZXk+IENTU1ZhbHVlS2V5
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBPcHRpb25hbDx1bnNpZ25lZD4gY3Nz
VmFsdWVJRDsKKyAgICBkZWNvZGVyID4+IGNzc1ZhbHVlSUQ7CisgICAgaWYgKCFjc3NWYWx1ZUlE
KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIE9wdGlvbmFsPGJvb2w+IHVzZURh
cmtBcHBlYXJhbmNlOworICAgIGRlY29kZXIgPj4gdXNlRGFya0FwcGVhcmFuY2U7CisgICAgaWYg
KCF1c2VEYXJrQXBwZWFyYW5jZSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBP
cHRpb25hbDxib29sPiB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbDsKKyAgICBkZWNvZGVy
ID4+IHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsOworICAgIGlmICghdXNlRWxldmF0ZWRV
c2VySW50ZXJmYWNlTGV2ZWwpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmV0
dXJuIHsgeyBXVEZNb3ZlKCpjc3NWYWx1ZUlEKSwgV1RGTW92ZSgqdXNlRGFya0FwcGVhcmFuY2Up
LCBXVEZNb3ZlKCp1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCkgfSB9OworfQorCitpbmxp
bmUgdW5zaWduZWQgQ1NTVmFsdWVLZXk6Omhhc2goKSBjb25zdAoreworICAgIHJldHVybiBjc3NW
YWx1ZUlEOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgewor
CitzdHJ1Y3QgQ1NTVmFsdWVLZXlIYXNoIHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25z
dCBXZWJDb3JlOjpDU1NWYWx1ZUtleSYga2V5KSB7IHJldHVybiBrZXkuaGFzaCgpOyB9CisgICAg
c3RhdGljIGJvb2wgZXF1YWwoY29uc3QgV2ViQ29yZTo6Q1NTVmFsdWVLZXkmIGEsIGNvbnN0IFdl
YkNvcmU6OkNTU1ZhbHVlS2V5JiBiKSB7IHJldHVybiBhID09IGI7IH0KKyAgICBzdGF0aWMgY29u
c3QgYm9vbCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Cit9OworCit0ZW1w
bGF0ZTw+IHN0cnVjdCBIYXNoVHJhaXRzPFdlYkNvcmU6OkNTU1ZhbHVlS2V5PiA6IEdlbmVyaWNI
YXNoVHJhaXRzPFdlYkNvcmU6OkNTU1ZhbHVlS2V5PiB7CisgICAgc3RhdGljIFdlYkNvcmU6OkNT
U1ZhbHVlS2V5IGVtcHR5VmFsdWUoKSB7IHJldHVybiBXZWJDb3JlOjpDU1NWYWx1ZUtleSB7IFdl
YkNvcmU6OkNTU1ZhbHVlSW52YWxpZCwgZmFsc2UsIGZhbHNlfTsgfQorICAgIHN0YXRpYyB2b2lk
IGNvbnN0cnVjdERlbGV0ZWRWYWx1ZShXZWJDb3JlOjpDU1NWYWx1ZUtleSYgc2xvdCkgeyBzbG90
ID0gV2ViQ29yZTo6Q1NTVmFsdWVLZXkgeyBXZWJDb3JlOjpDU1NWYWx1ZUludmFsaWQsIHRydWUs
IHRydWV9O30KKyAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJDb3JlOjpD
U1NWYWx1ZUtleSYgc2xvdCkgeyByZXR1cm4gc2xvdC5jc3NWYWx1ZUlEID09IFdlYkNvcmU6OkNT
U1ZhbHVlSW52YWxpZCAmJiBzbG90LnVzZURhcmtBcHBlYXJhbmNlICYmIHNsb3QudXNlRWxldmF0
ZWRVc2VySW50ZXJmYWNlTGV2ZWw7IH0KK307CisKK3RlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRI
YXNoPFdlYkNvcmU6OkNTU1ZhbHVlS2V5PiB7CisgICAgdHlwZWRlZiBDU1NWYWx1ZUtleUhhc2gg
SGFzaDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgJKHJldmlzaW9uIDI1NDA5MikKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsy
Nyw3IEBACiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogCisjaW5jbHVkZSAiQ1NTVmFsdWVL
ZXkuaCIKICNpbmNsdWRlICJSZW5kZXJUaGVtZUNvY29hLmgiCiAKICNpZiBVU0UoU1lTVEVNX1BS
RVZJRVcpCkBAIC01OSw2ICs2MCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHBhaW50U3lzdGVtUHJl
dmlld0JhZGdlKEltYWdlJiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0Jikgb3Zl
cnJpZGU7CiAjZW5kaWYKIAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBjb25zdCBIYXNoTWFw
PENTU1ZhbHVlS2V5LCBDb2xvcj4mIGdldE9yQ3JlYXRlQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFw
KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0Q1NTVmFsdWVUb1N5c3RlbUNv
bG9yTWFwKEhhc2hNYXA8Q1NTVmFsdWVLZXksIENvbG9yPiYmKTsKKyAgICAKIHByb3RlY3RlZDoK
ICAgICBMZW5ndGhCb3ggcG9wdXBJbnRlcm5hbFBhZGRpbmdCb3goY29uc3QgUmVuZGVyU3R5bGUm
KSBjb25zdCBvdmVycmlkZTsKICAgICAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUlPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MubW0JKHJldmlzaW9uIDI1NDA5MikKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBA
QAogI2ltcG9ydCAiQml0bWFwSW1hZ2UuaCIKICNpbXBvcnQgIkNTU1ByaW1pdGl2ZVZhbHVlLmgi
CiAjaW1wb3J0ICJDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhLmgiCisjaW1wb3J0ICJDU1NWYWx1
ZUtleS5oIgogI2ltcG9ydCAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2ltcG9ydCAiQ29sb3JJT1Mu
aCIKICNpbXBvcnQgIkRhdGVDb21wb25lbnRzLmgiCkBAIC0xNDMwLDYgKzE0MzEsMTEzIEBAIFN0
cmluZyBSZW5kZXJUaGVtZUlPUzo6bWVkaWFDb250cm9sc0Jhc2UKIAogI2VuZGlmIC8vIEVOQUJM
RShWSURFTykKIAorc3RydWN0IENTU1ZhbHVlSURBbmRTZWxlY3RvciB7CisgICAgQ1NTVmFsdWVJ
RCBjc3NWYWx1ZUlEOworICAgIFNFTCBzZWxlY3RvcjsKK307CisKK3N0YXRpYyBjb25zdCBWZWN0
b3I8Q1NTVmFsdWVJREFuZFNlbGVjdG9yPiYgY3NzVmFsdWVJRFNlbGVjdG9yTGlzdCgpCit7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFZlY3RvcjxDU1NWYWx1ZUlEQW5kU2VsZWN0b3I+PiBj
c3NWYWx1ZUlEU2VsZWN0b3JMaXN0OworCisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIGluaXRp
YWxpemVPbmNlOworICAgIHN0ZDo6Y2FsbF9vbmNlKAorICAgICAgICBpbml0aWFsaXplT25jZSwK
KyAgICAgICAgW10geworICAgICAgICBjc3NWYWx1ZUlEU2VsZWN0b3JMaXN0LmdldCgpID0gVmVj
dG9yKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxDU1NWYWx1ZUlEQW5kU2VsZWN0b3I+IHsKKyNpZiBI
QVZFKE9TX0RBUktfTU9ERV9TVVBQT1JUKQorICAgICAgICAgICAgeyBDU1NWYWx1ZVRleHQsIEBz
ZWxlY3RvcihsYWJlbENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVt
TGFiZWwsIEBzZWxlY3RvcihsYWJlbENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFw
cGxlU3lzdGVtSGVhZGVyVGV4dCwgQHNlbGVjdG9yKGxhYmVsQ29sb3IpIH0sCisgICAgICAgICAg
ICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1TZWNvbmRhcnlMYWJlbCwgQHNlbGVjdG9yKHNlY29uZGFy
eUxhYmVsQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1UZXJ0aWFy
eUxhYmVsLCBAc2VsZWN0b3IodGVydGlhcnlMYWJlbENvbG9yKSB9LAorICAgICAgICAgICAgeyBD
U1NWYWx1ZUFwcGxlU3lzdGVtUXVhdGVybmFyeUxhYmVsLCBAc2VsZWN0b3IocXVhdGVybmFyeUxh
YmVsQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1QbGFjZWhvbGRl
clRleHQsIEBzZWxlY3RvcihwbGFjZWhvbGRlclRleHRDb2xvcikgfSwKKyAgICAgICAgICAgIHsg
Q1NTVmFsdWVXZWJraXRDb250cm9sQmFja2dyb3VuZCwgQHNlbGVjdG9yKHN5c3RlbUJhY2tncm91
bmRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUNvbnRyb2xCYWNr
Z3JvdW5kLCBAc2VsZWN0b3Ioc3lzdGVtQmFja2dyb3VuZENvbG9yKSB9LAorICAgICAgICAgICAg
eyBDU1NWYWx1ZUFwcGxlU3lzdGVtVGV4dEJhY2tncm91bmQsIEBzZWxlY3RvcihzeXN0ZW1CYWNr
Z3JvdW5kQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1CYWNrZ3Jv
dW5kLCBAc2VsZWN0b3Ioc3lzdGVtQmFja2dyb3VuZENvbG9yKSB9LAorICAgICAgICAgICAgeyBD
U1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5QmFja2dyb3VuZCwgQHNlbGVjdG9yKHNlY29uZGFy
eVN5c3RlbUJhY2tncm91bmRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5
c3RlbVRlcnRpYXJ5QmFja2dyb3VuZCwgQHNlbGVjdG9yKHRlcnRpYXJ5U3lzdGVtQmFja2dyb3Vu
ZENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtR3JvdXBlZEJhY2tn
cm91bmQsIEBzZWxlY3RvcihzeXN0ZW1Hcm91cGVkQmFja2dyb3VuZENvbG9yKSB9LAorICAgICAg
ICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5R3JvdXBlZEJhY2tncm91bmQsIEBz
ZWxlY3RvcihzZWNvbmRhcnlTeXN0ZW1Hcm91cGVkQmFja2dyb3VuZENvbG9yKSB9LAorICAgICAg
ICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtVGVydGlhcnlHcm91cGVkQmFja2dyb3VuZCwgQHNl
bGVjdG9yKHRlcnRpYXJ5U3lzdGVtR3JvdXBlZEJhY2tncm91bmRDb2xvcikgfSwKKyAgICAgICAg
ICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUdyaWQsIEBzZWxlY3RvcihzZXBhcmF0b3JDb2xvcikg
fSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVNlcGFyYXRvciwgQHNlbGVjdG9y
KHNlcGFyYXRvckNvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtQ29u
dGFpbmVyQm9yZGVyLCBAc2VsZWN0b3Ioc2VwYXJhdG9yQ29sb3IpIH0sCisgICAgICAgICAgICB7
IENTU1ZhbHVlQXBwbGVTeXN0ZW1TZWxlY3RlZENvbnRlbnRCYWNrZ3JvdW5kLCBAc2VsZWN0b3Io
dGFibGVDZWxsRGVmYXVsdFNlbGVjdGlvblRpbnRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NT
VmFsdWVBcHBsZVN5c3RlbVVuZW1waGFzaXplZFNlbGVjdGVkQ29udGVudEJhY2tncm91bmQsIEBz
ZWxlY3Rvcih0YWJsZUNlbGxEZWZhdWx0U2VsZWN0aW9uVGludENvbG9yKSB9LAorICAgICAgICAg
ICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtQnJvd24sIEBzZWxlY3RvcihzeXN0ZW1Ccm93bkNvbG9y
KSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtSW5kaWdvLCBAc2VsZWN0b3Io
c3lzdGVtSW5kaWdvQ29sb3IpIH0sCisjZW5kaWYKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBs
ZVN5c3RlbVRlYWwsIEBzZWxlY3RvcihzeXN0ZW1UZWFsQ29sb3IpIH0sCisgICAgICAgICAgICB7
IENTU1ZhbHVlQXBwbGVXaXJlbGVzc1BsYXliYWNrVGFyZ2V0QWN0aXZlLCBAc2VsZWN0b3Ioc3lz
dGVtQmx1ZUNvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtQmx1ZSwg
QHNlbGVjdG9yKHN5c3RlbUJsdWVDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBs
ZVN5c3RlbUdyYXksIEBzZWxlY3RvcihzeXN0ZW1HcmF5Q29sb3IpIH0sCisgICAgICAgICAgICB7
IENTU1ZhbHVlQXBwbGVTeXN0ZW1HcmVlbiwgQHNlbGVjdG9yKHN5c3RlbUdyZWVuQ29sb3IpIH0s
CisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1PcmFuZ2UsIEBzZWxlY3RvcihzeXN0
ZW1PcmFuZ2VDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVBpbmss
IEBzZWxlY3RvcihzeXN0ZW1QaW5rQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBw
bGVTeXN0ZW1QdXJwbGUsIEBzZWxlY3RvcihzeXN0ZW1QdXJwbGVDb2xvcikgfSwKKyAgICAgICAg
ICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVJlZCwgQHNlbGVjdG9yKHN5c3RlbVJlZENvbG9yKSB9
LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtWWVsbG93LCBAc2VsZWN0b3Ioc3lz
dGVtWWVsbG93Q29sb3IpIH0KKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICByZXR1cm4gY3Nz
VmFsdWVJRFNlbGVjdG9yTGlzdDsKK30KKworc3RhdGljIE9wdGlvbmFsPENvbG9yPiBzeXN0ZW1D
b2xvckZyb21DU1NWYWx1ZUlEKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgYm9vbCB1c2VEYXJrQXBw
ZWFyYW5jZSwgYm9vbCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCkKK3sKKyAgICBMb2Nh
bEN1cnJlbnRUcmFpdENvbGxlY3Rpb24gbG9jYWxUcmFpdENvbGxlY3Rpb24odXNlRGFya0FwcGVh
cmFuY2UsIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKKworICAgIGF1dG8gY3NzQ29s
b3JUb1NlbGVjdG9yID0gW2Nzc1ZhbHVlSURdICgpIC0+IFNFTCB7CisgICAgICAgIGZvciAoYXV0
byYgY3NzVmFsdWVJRFNlbGVjdG9yIDogY3NzVmFsdWVJRFNlbGVjdG9yTGlzdCgpKSB7CisgICAg
ICAgICAgICBpZiAoY3NzVmFsdWVJRFNlbGVjdG9yLmNzc1ZhbHVlSUQgPT0gY3NzVmFsdWVJRCkK
KyAgICAgICAgICAgICAgICByZXR1cm4gY3NzVmFsdWVJRFNlbGVjdG9yLnNlbGVjdG9yOworICAg
ICAgICB9CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH07CisKKyAgICBpZiAoYXV0byBz
ZWxlY3RvciA9IGNzc0NvbG9yVG9TZWxlY3RvcigpKSB7CisgICAgICAgIGlmIChhdXRvIGNvbG9y
ID0gd3RmT2JqQ01zZ1NlbmQ8VUlDb2xvciAqPihQQUw6OmdldFVJQ29sb3JDbGFzcygpLCBzZWxl
Y3RvcikpCisgICAgICAgICAgICByZXR1cm4gQ29sb3IoY29sb3IuQ0dDb2xvciwgQ29sb3I6OlNl
bWFudGljKTsKKyAgICB9CisgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKK30KKworCitzdGF0aWMg
SGFzaE1hcDxDU1NWYWx1ZUtleSwgQ29sb3I+JiBnbG9iYWxDU1NWYWx1ZVRvU3lzdGVtQ29sb3JN
YXAoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPENTU1ZhbHVlS2V5LCBD
b2xvcj4+IGNvbG9yTWFwOworICAgIHJldHVybiBjb2xvck1hcDsKK30KKworY29uc3QgSGFzaE1h
cDxDU1NWYWx1ZUtleSwgQ29sb3I+JiBSZW5kZXJUaGVtZUlPUzo6Z2V0T3JDcmVhdGVDU1NWYWx1
ZVRvU3lzdGVtQ29sb3JNYXAoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFw
PENTU1ZhbHVlS2V5LCBDb2xvcj4+IG1hcDsKKworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBv
bmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZSgKKyAgICAgICAgb25jZUZsYWcsCisgICAgICAg
IFtdIHsKKyAgICAgICAgZm9yIChhdXRvJiBjc3NWYWx1ZUlEU2VsZWN0b3IgOiBjc3NWYWx1ZUlE
U2VsZWN0b3JMaXN0KCkpIHsKKyAgICAgICAgICAgIGZvciAoYm9vbCB1c2VEYXJrQXBwZWFyYW5j
ZSA6IHsgZmFsc2UsIHRydWUgfSkgeworICAgICAgICAgICAgICAgIGZvciAoYm9vbCB1c2VFbGV2
YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCA6IHsgZmFsc2UsIHRydWUgfSkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoYXV0byBjb2xvciA9IHN5c3RlbUNvbG9yRnJvbUNTU1ZhbHVlSUQoY3NzVmFs
dWVJRFNlbGVjdG9yLmNzc1ZhbHVlSUQsIHVzZURhcmtBcHBlYXJhbmNlLCB1c2VFbGV2YXRlZFVz
ZXJJbnRlcmZhY2VMZXZlbCkpCisgICAgICAgICAgICAgICAgICAgICAgICBtYXAuZ2V0KCkuYWRk
KENTU1ZhbHVlS2V5IHsgY3NzVmFsdWVJRFNlbGVjdG9yLmNzc1ZhbHVlSUQsIHVzZURhcmtBcHBl
YXJhbmNlLCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCB9LCAqY29sb3IpOworICAgICAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pOworCisgICAgcmV0
dXJuIG1hcDsKK30KKwordm9pZCBSZW5kZXJUaGVtZUlPUzo6c2V0Q1NTVmFsdWVUb1N5c3RlbUNv
bG9yTWFwKEhhc2hNYXA8Q1NTVmFsdWVLZXksIENvbG9yPiYmIGNvbG9yTWFwKQoreworICAgIGds
b2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpID0gV1RGTW92ZShjb2xvck1hcCk7Cit9CisK
IENvbG9yIFJlbmRlclRoZW1lSU9TOjpzeXN0ZW1Db2xvcihDU1NWYWx1ZUlEIGNzc1ZhbHVlSUQs
IE9wdGlvblNldDxTdHlsZUNvbG9yOjpPcHRpb25zPiBvcHRpb25zKSBjb25zdAogewogICAgIGNv
bnN0IGJvb2wgZm9yVmlzaXRlZExpbmsgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9w
dGlvbnM6OkZvclZpc2l0ZWRMaW5rKTsKQEAgLTE0NDYsNzkgKzE1NTQsMTUgQEAgQ29sb3IgUmVu
ZGVyVGhlbWVJT1M6OnN5c3RlbUNvbG9yKENTU1ZhbAogICAgIHJldHVybiBjYWNoZS5zeXN0ZW1T
dHlsZUNvbG9ycy5lbnN1cmUoY3NzVmFsdWVJRCwgW3RoaXMsIGNzc1ZhbHVlSUQsIG9wdGlvbnNd
ICgpIC0+IENvbG9yIHsKICAgICAgICAgY29uc3QgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZSA9IG9w
dGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOwog
ICAgICAgICBjb25zdCBib29sIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsID0gb3B0aW9u
cy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VM
ZXZlbCk7Ci0gICAgICAgIExvY2FsQ3VycmVudFRyYWl0Q29sbGVjdGlvbiBsb2NhbFRyYWl0Q29s
bGVjdGlvbih1c2VEYXJrQXBwZWFyYW5jZSwgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwp
OwotCi0gICAgICAgIGF1dG8gY3NzQ29sb3JUb1NlbGVjdG9yID0gW2Nzc1ZhbHVlSURdICgpIC0+
IFNFTCB7Ci0gICAgICAgICAgICBzd2l0Y2ggKGNzc1ZhbHVlSUQpIHsKLSNpZiBIQVZFKE9TX0RB
UktfTU9ERV9TVVBQT1JUKQotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVRleHQ6Ci0gICAgICAg
ICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1MYWJlbDoKLSAgICAgICAgICAgIGNhc2UgQ1NT
VmFsdWVBcHBsZVN5c3RlbUhlYWRlclRleHQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxl
Y3RvcihsYWJlbENvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVNl
Y29uZGFyeUxhYmVsOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc2Vjb25kYXJ5
TGFiZWxDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1UZXJ0aWFy
eUxhYmVsOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3IodGVydGlhcnlMYWJlbENv
bG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVF1YXRlcm5hcnlMYWJl
bDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHF1YXRlcm5hcnlMYWJlbENvbG9y
KTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVBsYWNlaG9sZGVyVGV4dDoK
LSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHBsYWNlaG9sZGVyVGV4dENvbG9yKTsK
LSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVXZWJraXRDb250cm9sQmFja2dyb3VuZDoKLSAgICAg
ICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUNvbnRyb2xCYWNrZ3JvdW5kOgotICAgICAg
ICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtVGV4dEJhY2tncm91bmQ6Ci0gICAgICAgICAg
ICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1CYWNrZ3JvdW5kOgotICAgICAgICAgICAgICAgIHJl
dHVybiBAc2VsZWN0b3Ioc3lzdGVtQmFja2dyb3VuZENvbG9yKTsKLSAgICAgICAgICAgIGNhc2Ug
Q1NTVmFsdWVBcHBsZVN5c3RlbVNlY29uZGFyeUJhY2tncm91bmQ6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIEBzZWxlY3RvcihzZWNvbmRhcnlTeXN0ZW1CYWNrZ3JvdW5kQ29sb3IpOwotICAgICAg
ICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtVGVydGlhcnlCYWNrZ3JvdW5kOgotICAgICAg
ICAgICAgICAgIHJldHVybiBAc2VsZWN0b3IodGVydGlhcnlTeXN0ZW1CYWNrZ3JvdW5kQ29sb3Ip
OwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtR3JvdXBlZEJhY2tncm91bmQ6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1Hcm91cGVkQmFja2dyb3Vu
ZENvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVNlY29uZGFyeUdy
b3VwZWRCYWNrZ3JvdW5kOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc2Vjb25k
YXJ5U3lzdGVtR3JvdXBlZEJhY2tncm91bmRDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1Zh
bHVlQXBwbGVTeXN0ZW1UZXJ0aWFyeUdyb3VwZWRCYWNrZ3JvdW5kOgotICAgICAgICAgICAgICAg
IHJldHVybiBAc2VsZWN0b3IodGVydGlhcnlTeXN0ZW1Hcm91cGVkQmFja2dyb3VuZENvbG9yKTsK
LSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUdyaWQ6Ci0gICAgICAgICAgICBj
YXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1TZXBhcmF0b3I6Ci0gICAgICAgICAgICBjYXNlIENTU1Zh
bHVlQXBwbGVTeXN0ZW1Db250YWluZXJCb3JkZXI6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBz
ZWxlY3RvcihzZXBhcmF0b3JDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVT
eXN0ZW1TZWxlY3RlZENvbnRlbnRCYWNrZ3JvdW5kOgotICAgICAgICAgICAgY2FzZSBDU1NWYWx1
ZUFwcGxlU3lzdGVtVW5lbXBoYXNpemVkU2VsZWN0ZWRDb250ZW50QmFja2dyb3VuZDoKLSAgICAg
ICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHRhYmxlQ2VsbERlZmF1bHRTZWxlY3Rpb25UaW50
Q29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtQnJvd246Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1Ccm93bkNvbG9yKTsKLSAgICAgICAg
ICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUluZGlnbzoKLSAgICAgICAgICAgICAgICByZXR1
cm4gQHNlbGVjdG9yKHN5c3RlbUluZGlnb0NvbG9yKTsKLSNlbmRpZgotICAgICAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUFwcGxlU3lzdGVtVGVhbDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVj
dG9yKHN5c3RlbVRlYWxDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVXaXJl
bGVzc1BsYXliYWNrVGFyZ2V0QWN0aXZlOgotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxl
U3lzdGVtQmx1ZToKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbUJsdWVD
b2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1HcmF5OgotICAgICAg
ICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtR3JheUNvbG9yKTsKLSAgICAgICAgICAg
IGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUdyZWVuOgotICAgICAgICAgICAgICAgIHJldHVybiBA
c2VsZWN0b3Ioc3lzdGVtR3JlZW5Db2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBw
bGVTeXN0ZW1PcmFuZ2U6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1P
cmFuZ2VDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1QaW5rOgot
ICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtUGlua0NvbG9yKTsKLSAgICAg
ICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVB1cnBsZToKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gQHNlbGVjdG9yKHN5c3RlbVB1cnBsZUNvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NT
VmFsdWVBcHBsZVN5c3RlbVJlZDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHN5
c3RlbVJlZENvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVllbGxv
dzoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbVllbGxvd0NvbG9yKTsK
LSAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0KLSAgICAgICAgaWYgKGF1dG8gc2VsZWN0b3IgPSBj
c3NDb2xvclRvU2VsZWN0b3IoKSkgewotICAgICAgICAgICAgaWYgKGF1dG8gY29sb3IgPSB3dGZP
YmpDTXNnU2VuZDxVSUNvbG9yICo+KFBBTDo6Z2V0VUlDb2xvckNsYXNzKCksIHNlbGVjdG9yKSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gQ29sb3IoY29sb3IuQ0dDb2xvciwgQ29sb3I6OlNlbWFu
dGljKTsKKyAgICAgICAgaWYgKCFnbG9iYWxDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKS5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgICAgIGF1dG8gaXQgPSBnbG9iYWxDU1NWYWx1ZVRvU3lzdGVtQ29s
b3JNYXAoKS5maW5kKENTU1ZhbHVlS2V5IHsgY3NzVmFsdWVJRCwgdXNlRGFya0FwcGVhcmFuY2Us
IHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsIH0pOworICAgICAgICAgICAgaWYgKGl0ID09
IGdsb2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpLmVuZCgpKQorICAgICAgICAgICAgICAg
IHJldHVybiBSZW5kZXJUaGVtZTo6c3lzdGVtQ29sb3IoY3NzVmFsdWVJRCwgb3B0aW9ucyk7Cisg
ICAgICAgICAgICByZXR1cm4gQ29sb3IoaXQtPnZhbHVlLnJnYigpLCBDb2xvcjo6U2VtYW50aWMp
OwogICAgICAgICB9Ci0KKyAgICAgICAgYXV0byBjb2xvciA9IHN5c3RlbUNvbG9yRnJvbUNTU1Zh
bHVlSUQoY3NzVmFsdWVJRCwgdXNlRGFya0FwcGVhcmFuY2UsIHVzZUVsZXZhdGVkVXNlckludGVy
ZmFjZUxldmVsKTsKKyAgICAgICAgaWYgKGNvbG9yKQorICAgICAgICAgICAgcmV0dXJuICpjb2xv
cjsKICAgICAgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpzeXN0ZW1Db2xvcihjc3NWYWx1ZUlELCBv
cHRpb25zKTsKICAgICB9KS5pdGVyYXRvci0+dmFsdWU7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCShyZXZpc2lvbiAyNTQwOTIpCisrKyBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDYgKzM5LDcgQEAKICNp
bmNsdWRlICJDU1NBbmltYXRpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQ1NTS2V5ZnJhbWVz
UnVsZS5oIgogI2luY2x1ZGUgIkNTU01lZGlhUnVsZS5oIgorI2luY2x1ZGUgIkNTU1Byb3BlcnR5
UGFyc2VyLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTU3VwcG9y
dHNSdWxlLmgiCiAjaW5jbHVkZSAiQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5oIgpAQCAtMTQ4LDYg
KzE0OSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyTWVudUxpc3QuaCIKKyNpbmNs
dWRlICJSZW5kZXJUaGVtZS5oIgogI2luY2x1ZGUgIlJlbmRlclRyZWVBc1RleHQuaCIKICNpbmNs
dWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiUmVuZGVyZWREb2N1bWVudE1hcmtlci5oIgpA
QCAtNTQwOCw0ICs1NDEwLDE4IEBAIFN0cmluZyBJbnRlcm5hbHM6OndpbmRvd0xvY2F0aW9uSG9z
dChET00KICAgICByZXR1cm4gd2luZG93LmxvY2F0aW9uKCkuaG9zdCgpOwogfQogCitTdHJpbmcg
SW50ZXJuYWxzOjpzeXN0ZW1Db2xvckZvckNTU1ZhbHVlKGNvbnN0IFN0cmluZyYgY3NzVmFsdWUs
IGJvb2wgdXNlRGFya01vZGVBcHBlYXJhbmNlLCBib29sIHVzZUVsZXZhdGVkVXNlckludGVyZmFj
ZUxldmVsKQoreworICAgIENTU1ZhbHVlSUQgaWQgPSBjc3NWYWx1ZUtleXdvcmRJRChjc3NWYWx1
ZSk7CisgICAgUkVMRUFTRV9BU1NFUlQoU3R5bGVDb2xvcjo6aXNTeXN0ZW1Db2xvcihpZCkpOwor
CisgICAgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnM7CisgICAgaWYgKHVz
ZURhcmtNb2RlQXBwZWFyYW5jZSkKKyAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvcjo6T3B0
aW9uczo6VXNlRGFya0FwcGVhcmFuY2UpOworICAgIGlmICh1c2VFbGV2YXRlZFVzZXJJbnRlcmZh
Y2VMZXZlbCkKKyAgICAgICAgb3B0aW9ucy5hZGQoU3R5bGVDb2xvcjo6T3B0aW9uczo6VXNlRWxl
dmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOworICAgIAorICAgIHJldHVybiBSZW5kZXJUaGVtZTo6
c2luZ2xldG9uKCkuc3lzdGVtQ29sb3IoaWQsIG9wdGlvbnMpLmNzc1RleHQoKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCShy
ZXZpc2lvbiAyNTQwOTIpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCSh3
b3JraW5nIGNvcHkpCkBAIC05MjMsNiArOTIzLDggQEAgcHVibGljOgogCiAgICAgU3RyaW5nIHdp
bmRvd0xvY2F0aW9uSG9zdChET01XaW5kb3cmKTsKIAorICAgIFN0cmluZyBzeXN0ZW1Db2xvckZv
ckNTU1ZhbHVlKGNvbnN0IFN0cmluZyYgY3NzVmFsdWUsIGJvb2wgdXNlRGFya01vZGVBcHBlYXJh
bmNlLCBib29sIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKKwogcHJpdmF0ZToKICAg
ICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1lbnQmKTsKICAgICBEb2N1bWVudCogY29udGV4dERv
Y3VtZW50KCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCShy
ZXZpc2lvbiAyNTQwOTIpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTgzMCw0ICs4MzAsNiBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5
IHsKIAogICAgIGJvb2xlYW4gaGFzU2FuZGJveE1hY2hMb29rdXBBY2Nlc3NUb0dsb2JhbE5hbWUo
RE9NU3RyaW5nIHByb2Nlc3MsIERPTVN0cmluZyBzZXJ2aWNlKTsKICAgICBib29sZWFuIGhhc1Nh
bmRib3hNYWNoTG9va3VwQWNjZXNzVG9YUENTZXJ2aWNlTmFtZShET01TdHJpbmcgcHJvY2Vzcywg
RE9NU3RyaW5nIHNlcnZpY2UpOworICAgIAorICAgIERPTVN0cmluZyBzeXN0ZW1Db2xvckZvckNT
U1ZhbHVlKERPTVN0cmluZyBjc3NWYWx1ZSwgYm9vbGVhbiB1c2VEYXJrTW9kZUFwcGVhcmFuY2Us
IGJvb2xlYW4gdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOwogfTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNTQxNjQpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDIwLTAxLTA3ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9s
bGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNYXAgQ1NTIHZhbHVlIElEIHRvIHN5c3RlbSBjb2xv
ciBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA0MzE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ3JlYXRlIG1hcHBpbmcgYmV0d2VlbiBDU1MgdmFsdWUgSURzIGFuZCBzeXN0
ZW0gY29sb3JzIGluIHRoZSBVSSBwcm9jZXNzIGFuZCBzZW5kIHRvIHRoZSBXZWJDb250ZW50IHBy
b2Nlc3MKKyAgICAgICAgb24gcHJvY2VzcyBzdGFydHVwLgorCisgICAgICAgICogU2hhcmVkL1dl
YlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29s
OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxh
dGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMjAtMDEtMDcgIERhbmllbCBCYXRlcyAg
PGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEZpcnN0IGNoYXJhY3RlciBpbiBlYWNoIHdv
cmQtd3JhcHBlZCBsaW5lIGhhcyBpbmNvcnJlY3QgY2hhcmFjdGVyIHJlY3Qgd2hlbiByZXF1ZXN0
ZWQgcmFuZ2Ugc3BhbnMgbXVsdGlwbGUgbGluZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAy
NTQwOTIpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTc0LDYgKzE3NCw3IEBAIHZvaWQgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAg
ICAgZW5jb2RlciA8PCBjdXJyZW50VXNlckludGVyZmFjZUlkaW9tSXNQYWQ7CisgICAgZW5jb2Rl
ciA8PCBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CiAjZW5kaWYKIH0KIApAQCAtNDUwLDYgKzQ1
MSwxMiBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuY3Vy
cmVudFVzZXJJbnRlcmZhY2VJZGlvbUlzUGFkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgT3B0aW9uYWw8SGFzaE1hcDxXZWJDb3JlOjpDU1NWYWx1ZUtleSwgV2ViQ29yZTo6Q29sb3I+
PiBjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CisgICAgZGVjb2RlciA+PiBjc3NWYWx1ZVRvU3lz
dGVtQ29sb3JNYXA7CisgICAgaWYgKCFjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXApCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBwYXJhbWV0ZXJzLmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCA9
IFdURk1vdmUoKmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCk7CiAjZW5kaWYKIAogICAgIHJldHVy
biB0cnVlOwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuaAkocmV2aXNpb24gMjU0MDkyKQorKysgU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC01
MSw2ICs1MSwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtQcm94eVNldHRpbmdz
Lmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW5jbHVkZSA8V2ViQ29y
ZS9SZW5kZXJUaGVtZUlPUy5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgRGF0
YTsKIH0KQEAgLTIxMiw2ICsyMTYsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyB7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGJvb2wgY3VycmVudFVzZXJJ
bnRlcmZhY2VJZGlvbUlzUGFkIHsgZmFsc2UgfTsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkNTU1Zh
bHVlS2V5LCBXZWJDb3JlOjpDb2xvcj4gY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwOwogI2VuZGlm
CiB9OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9v
bENvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlByb2Nlc3NQb29sQ29jb2EubW0JKHJldmlzaW9uIDI1NDA5MikKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAg
LTM0OSw2ICszNDksNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVX
CiAgICAgCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBwYXJhbWV0ZXJzLmN1cnJlbnRV
c2VySW50ZXJmYWNlSWRpb21Jc1BhZCA9IGN1cnJlbnRVc2VySW50ZXJmYWNlSWRpb21Jc1BhZCgp
OworICAgIHBhcmFtZXRlcnMuY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwID0gUmVuZGVyVGhlbWVJ
T1M6OmdldE9yQ3JlYXRlQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKCk7CiAjZW5kaWYKIH0KIApJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0Nv
Y29hLm1tCShyZXZpc2lvbiAyNTQwOTIpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvV2ViUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNTksNiArMjU5LDEwIEBA
IHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHIKICAgICAgICAgU2FuZGJv
eEV4dGVuc2lvbjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFn
ZXJFeHRlbnNpb25IYW5kbGUpOwogICAgIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpz
ZXRIYXNDb25zdW1lZFNhbmRib3hFeHRlbnNpb25zKHBhcmFtZXRlcnMubmVIZWxwZXJFeHRlbnNp
b25IYW5kbGUuaGFzVmFsdWUoKSAmJiBwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNp
b25IYW5kbGUuaGFzVmFsdWUoKSk7CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgUmVuZGVyVGhlbWVJT1M6OnNldENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcChXVEZNb3Zl
KHBhcmFtZXRlcnMuY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwKSk7CisjZW5kaWYKIH0KIAogdm9p
ZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybVNldFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlBy
b2Nlc3NEYXRhU3RvcmVQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDI1NDA5MikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE2IEBACisyMDIwLTAxLTA3ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNv
bT4KKworICAgICAgICBNYXAgQ1NTIHZhbHVlIElEIHRvIHN5c3RlbSBjb2xvciBpbiB0aGUgVUkg
cHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA0MzE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBUZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIGZhc3QvY3NzL2lvczogQWRkZWQuCisgICAg
ICAgICogZmFzdC9jc3MvaW9zL3N5c3RlbS1jb2xvci1mb3ItY3NzLXZhbHVlLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvaW9zL3N5c3RlbS1jb2xvci1mb3ItY3NzLXZh
bHVlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25z
OgorCiAyMDIwLTAxLTA2ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAg
ICAgICBQcmVjaXNpb24gb2YgZ2V0Q2xpZW50UmVjdHMoKSwgZ2V0Qm91bmRpbmdDbGllbnRSZWN0
KCkgZGlmZmVycyBkZXBlbmRpbmcgd2hldGhlciBzaW1wbGUgbGluZSBsYXlvdXQgb3IgbGluZSBi
b3ggbGF5b3V0IGlzIHVzZWQKSW5kZXg6IExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMjU0MDky
KQorKysgTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMjMs
NiArMjMsNyBAQCBlZGl0aW5nL3Bhc3RlYm9hcmQvZ3RrIFsgU2tpcCBdCiBlZGl0aW5nL3NlbGVj
dGlvbi9pb3MgWyBTa2lwIF0KIGVkaXRpbmcvdW5kby1tYW5hZ2VyIFsgU2tpcCBdCiB0aWxlZC1k
cmF3aW5nIFsgU2tpcCBdCitmYXN0L2Nzcy9pb3MgWyBTa2lwIF0KIGZhc3QvY3NzL3dhdGNob3Mg
WyBTa2lwIF0KIGZhc3QvZG9tL1dpbmRvdy93YXRjaG9zIFsgU2tpcCBdCiBmYXN0L2Zvcm1zL3Nl
bGVjdC9tYWMtd2syIFsgU2tpcCBdCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pb3Mvc3lz
dGVtLWNvbG9yLWZvci1jc3MtdmFsdWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvY3NzL2lvcy9zeXN0ZW0tY29sb3ItZm9yLWNzcy12YWx1ZS1leHBlY3RlZC50
eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW9zL3N5c3RlbS1jb2xv
ci1mb3ItY3NzLXZhbHVlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDEx
IEBACitUZXN0IHRoYXQgc3lzdGVtIGNvbG9ycyBmb3IgQ1NTIHZhbHVlcyBhcmUgY29ycmVjdC4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW50ZXJuYWxzLnN5c3RlbUNv
bG9yRm9yQ1NTVmFsdWUoIi1hcHBsZS1zeXN0ZW0tY29udHJvbC1iYWNrZ3JvdW5kIiwgdHJ1ZSwg
ZmFsc2UpIGlzICJyZ2IoMCwgMCwgMCkiCitQQVNTIGludGVybmFscy5zeXN0ZW1Db2xvckZvckNT
U1ZhbHVlKCItYXBwbGUtc3lzdGVtLXNlY29uZGFyeS1ncm91cGVkLWJhY2tncm91bmQiLCB0cnVl
LCBmYWxzZSkgaXMgInJnYigyOCwgMjgsIDMwKSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pb3Mv
c3lzdGVtLWNvbG9yLWZvci1jc3MtdmFsdWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2Nzcy9pb3Mvc3lzdGVtLWNvbG9yLWZvci1jc3MtdmFsdWUuaHRtbAkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pb3Mvc3lzdGVtLWNvbG9yLWZvci1jc3MtdmFs
dWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBACis8aHRtbD4KKzxoZWFkIGlk
PSJoZWFkIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgPgorPHNjcmlwdD4KKyAgICAKK2Rlc2NyaXB0aW9uKCJU
ZXN0IHRoYXQgc3lzdGVtIGNvbG9ycyBmb3IgQ1NTIHZhbHVlcyBhcmUgY29ycmVjdC4iKTsKKwor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICBzaG91bGRCZSgiaW50ZXJuYWxzLnN5c3RlbUNv
bG9yRm9yQ1NTVmFsdWUoXCItYXBwbGUtc3lzdGVtLWNvbnRyb2wtYmFja2dyb3VuZFwiLCB0cnVl
LCBmYWxzZSkiLCAiXCJyZ2IoMCwgMCwgMClcIiIpOworICAgIHNob3VsZEJlKCJpbnRlcm5hbHMu
c3lzdGVtQ29sb3JGb3JDU1NWYWx1ZShcIi1hcHBsZS1zeXN0ZW0tc2Vjb25kYXJ5LWdyb3VwZWQt
YmFja2dyb3VuZFwiLCB0cnVlLCBmYWxzZSkiLCAiXCJyZ2IoMjgsIDI4LCAzMClcIiIpOworfQor
Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDI1NDA5MikKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0xMyw2ICsx
Myw3IEBAIG1lZGlhL2lvcyBbIFBhc3MgXQogcXVpY2tsb29rIFsgUGFzcyBdCiBzd2lwZSBbIFBh
c3MgXQogCitmYXN0L2Nzcy9pb3MgWyBQYXNzIF0KIGZhc3QvbWVkaWEvaW9zIFsgUGFzcyBdCiAK
IGZhc3QvZm9ybXMvdGV4dGFyZWEvaW9zIFsgUGFzcyBdCkBAIC0zNDU4LDQgKzM0NTksNCBAQCB3
ZWJraXQub3JnL2IvMjAzNDE2IGltcG9ydGVkL3czYy93ZWItcGxhCiAKIHdlYmtpdC5vcmcvYi8y
MDQ3NTcgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvcmVxdWVzdC9k
ZXN0aW5hdGlvbi9mZXRjaC1kZXN0aW5hdGlvbi1uby1sb2FkLWV2ZW50Lmh0dHBzLmh0bWwgWyBQ
YXNzIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMjA1MzA5IHNjcm9sbGluZ2Nvb3JkaW5hdG9y
L2lvcy9zY3JvbGwtcG9zaXRpb24tYWZ0ZXItcmVhdHRhY2guaHRtbCBbIEltYWdlb25seUZhaWx1
cmUgXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK3dlYmtpdC5vcmcvYi8yMDUzMDkgc2Ny
b2xsaW5nY29vcmRpbmF0b3IvaW9zL3Njcm9sbC1wb3NpdGlvbi1hZnRlci1yZWF0dGFjaC5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCg==
</data>
<flag name="review"
          id="402812"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387362</attachid>
            <date>2020-01-10 12:16:09 -0800</date>
            <delta_ts>2020-01-10 15:37:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204314-20200110121608.patch</filename>
            <type>text/plain</type>
            <size>40350</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDIwLTAxLTA5ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNYXAgQ1NTIHZhbHVlIElE
IHRvIHN5c3RlbSBjb2xvciBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MzE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGVhbiBKYWNrc29uLgorCisgICAgICAgIEN1cnJlbnRseSwgUmVuZGVyVGhlbWVJT1MgaXMgbWFw
cGluZyBDU1MgdmFsdWUgSURzIHRvIHN5c3RlbSBjb2xvcnMgaW4gdGhlIFdlYkNvbnRlbnQgcHJv
Y2Vzcy4gVGhpcyBtYXBwaW5nIGxlYWRzIHRvCisgICAgICAgIGludm9raW5nIHNlbGVjdG9ycyBv
biBVSVRyYWl0Q29sbGVjdGlvbiBhbmQgVUlDb2xvciwgd2hpY2ggd2lsbCBzZW5kIG1lc3NhZ2Vz
IHRvIHRoZSBydW5uaW5nYm9hcmQgZGFlbW9uLiBTaW5jZSB3ZQorICAgICAgICB3aWxsIGJlIGJs
b2NraW5nIGFjY2VzcyB0byB0aGlzIGRhZW1vbiBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLCB0
aGlzIG1hcHBpbmcgc2hvdWxkIGJlIG1vdmVkIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBU
aGUgVUkgcHJvY2VzcyB3aWxsIGNyZWF0ZSBhIG1hcHBpbmcgYmV0d2VlbiBDU1MgdmFsdWUgSURz
IGFuZCBzeXN0ZW0gY29sb3JzLCBhbmQgcGFzcyBpdCB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNz
LgorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL2lvcy9zeXN0ZW0tY29sb3ItZm9yLWNzcy12YWx1
ZS5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogY3NzL1N0eWxlQ29sb3IuaDoKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VyLmg6CisgICAgICAgICogcmVuZGVyaW5nL0NTU1ZhbHVlS2V5Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1
ZUtleTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlS2V5OjpkZWNv
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVLZXk6Omhhc2ggY29uc3QpOgorICAgICAg
ICAoV1RGOjpDU1NWYWx1ZUtleUhhc2g6Omhhc2gpOgorICAgICAgICAoV1RGOjpDU1NWYWx1ZUtl
eUhhc2g6OmVxdWFsKToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpDU1NWYWx1
ZUtleT46OmVtcHR5VmFsdWUpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OkNT
U1ZhbHVlS2V5Pjo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdURjo6SGFzaFRy
YWl0czxXZWJDb3JlOjpDU1NWYWx1ZUtleT46OmlzRGVsZXRlZFZhbHVlKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpjc3NWYWx1ZUlEU2VsZWN0b3JMaXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OnN5c3RlbUNvbG9yRnJvbUNTU1ZhbHVlSUQpOgorICAgICAgICAoV2Vi
Q29yZTo6Z2xvYmFsQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lSU9TOjpnZXRPckNyZWF0ZUNTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6c2V0Q1NTVmFsdWVUb1N5c3RlbUNvbG9y
TWFwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpzeXN0ZW1Db2xvciBjb25z
dCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjpzeXN0ZW1Db2xvckZvckNTU1ZhbHVlKToKKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAyMC0wMS0w
OSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBUZXh0
IG1hbmlwdWxhdGlvbiBjb250cm9sbGVyIHNob3VsZCBub3Qgb2JzZXJ2ZSBjaGFuZ2VzIGluIG5l
dyByZXBsYWNlbWVudCBlbGVtZW50cwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU0MzE0KQorKysgU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC00ODAzLDYgKzQ4MDMsNyBAQAogCQlFM0IyRjBFRDFEN0Y0Q0EzMDBCMEM5RDEgLyogTG9h
ZGFibGVTY3JpcHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUzQjJGMEU3MUQ3RjM1RUMwMEIwQzlEMSAvKiBMb2FkYWJsZVNjcmlwdC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzQjJGMEVFMUQ3RjRD
QTkwMEIwQzlEMSAvKiBMb2FkYWJsZVNjcmlwdENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCMkYwRTgxRDdGMzVFQzAwQjBDOUQxIC8qIExv
YWRhYmxlU2NyaXB0Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJRTNCMkYwRjAxRDdGNENCNTAwQjBDOUQxIC8qIExvYWRhYmxlQ2xhc3Np
Y1NjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTNCMkYwRTQxRDdGMzVFQzAwQjBDOUQxIC8qIExvYWRhYmxlQ2xhc3NpY1NjcmlwdC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzQkJDMjQ3MjM4
MzU1MjYwMDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCQkMyNDUyMzgzNTUxQTAwNkVDMzlGIC8qIENTU1ZhbHVl
S2V5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTNDOTlBMDkxREMzRDQxQzAwNzk0QUQzIC8qIERPTUpJVENoZWNrRE9NLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0M5OUEwODFEQzNENDE3MDA3OTRB
RDMgLyogRE9NSklUQ2hlY2tET00uaCAqLzsgfTsKIAkJRTNDOUFFQ0IyMTEzMTQ5OTAwNDE5Qjky
IC8qIEpTTWljcm90YXNrQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUzQzlBRUM5MjExMzE0NzQwMDQxOUI5MiAvKiBKU01pY3JvdGFza0Nh
bGxiYWNrLmggKi87IH07CiAJCUUzRTRFMkE4MUUzQjE3MTAwMDIzQkI4QSAvKiBTY3JpcHRFbGVt
ZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTNFNEUyQTYxRTNCMTZGQzAwMjNCQjhBIC8qIFNjcmlwdEVsZW1lbnRD
YWNoZWRTY3JpcHRGZXRjaGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTE1MTUyLDYgKzE1MTUzLDcgQEAKIAkJRTNCMkYwRTgxRDdGMzVFQzAw
QjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IExvYWRhYmxlU2NyaXB0Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzQjJGMEU5MUQ3RjNEM0MwMEIwQzlEMSAvKiBMb2FkYWJsZVNjcmlwdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2FkYWJsZVNjcmlwdC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQjdDMDYyMURDMzQxNUEwMDFGQjBCOCAvKiBK
U0RvY3VtZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTRG9jdW1lbnRET01KSVQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0JC
QzI0NTIzODM1NTFBMDA2RUMzOUYgLyogQ1NTVmFsdWVLZXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ1NTVmFsdWVLZXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTNCQzgyNzMyMjUzMDIyMTAwNTI3NkRFIC8qIE5vZGVMaXN0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IE5vZGVMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNCRjE5
RTEyMkFGMkY1NTAwOUM5OTI2IC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFM0JGMTlFMzIyQUYyRkE1MDA5Qzk5MjYgLyogT3ZlcmNv
bnN0cmFpbmVkRXJyb3JFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBPdmVyY29uc3RyYWlu
ZWRFcnJvckV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI3NjgxLDYg
KzI3NjgzLDcgQEAKIAkJCQk5MzkyRjE0QjBBRDE4NjFCMDA2OTFCRDQgLyogQ291bnRlck5vZGUu
aCAqLywKIAkJCQkwRjUzRkI4MTIxM0IxQkI4MDBDNDBEMzQgLyogQ1NTRmlsdGVyLmNwcCAqLywK
IAkJCQkwRjUzRkI4MzIxM0IxQkI4MDBDNDBEMzQgLyogQ1NTRmlsdGVyLmggKi8sCisJCQkJRTNC
QkMyNDUyMzgzNTUxQTAwNkVDMzlGIC8qIENTU1ZhbHVlS2V5LmggKi8sCiAJCQkJQThDRkY2Q0Ew
QTE1NjFDRDAwMEE0MjM0IC8qIEVsbGlwc2lzQm94LmNwcCAqLywKIAkJCQlBOENGRjZCRDBBMTU2
MTE4MDAwQTQyMzQgLyogRWxsaXBzaXNCb3guaCAqLywKIAkJCQlFNEE4RDIxNTIyNTc4REEwMDBB
ODQ2M0MgLyogRXZlbnRSZWdpb24uY3BwICovLApAQCAtMjk1NzAsNiArMjk1NzMsNyBAQAogCQkJ
CUREN0NERjI1MEEyM0NGOTgwMDA2OTkyOCAvKiBDU1NVbmtub3duUnVsZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkM3RDhGRjAxQkQwM0I2NDAwRkZFNTQwIC8qIENTU1Vuc2V0VmFsdWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE4MEU2Q0VFMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTNCQkMyNDcyMzgzNTUyNjAwNkVDMzlGIC8qIENTU1ZhbHVlS2V5
LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTY1ODE1MTA5RDEzMDQzMDAwRTYxRDcgLyogQ1NTVmFs
dWVLZXl3b3Jkcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZDRTkwQTE5ODlDQTAwN0ZCOEM1
IC8qIENTU1ZhbHVlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ5QkQ5RkExMzFGRDJFRDAw
M0M1NkYwIC8qIENTU1ZhbHVlUG9vbC5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVDb2xvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZUNvbG9yLmgJKHJldmlzaW9uIDI1NDMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZUNvbG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIENvbG9yIGNvbG9yRnJvbUtleXdvcmQoQ1NTVmFsdWVJRCwgT3B0aW9uU2V0PE9wdGlv
bnM+KTsKICAgICBzdGF0aWMgYm9vbCBpc0NvbG9yS2V5d29yZChDU1NWYWx1ZUlEKTsKLSAgICBz
dGF0aWMgYm9vbCBpc1N5c3RlbUNvbG9yKENTU1ZhbHVlSUQpOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBib29sIGlzU3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCk7CiAKIHByaXZhdGU6CiAgICAg
Q29sb3IgbV9jb2xvcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVy
dHlQYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1By
b3BlcnR5UGFyc2VyLmgJKHJldmlzaW9uIDI1NDMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTIyLDcgKzEyMiw3
IEBAIHByaXZhdGU6CiB9OwogCiBDU1NQcm9wZXJ0eUlEIGNzc1Byb3BlcnR5SUQoU3RyaW5nVmll
dyk7Ci1DU1NWYWx1ZUlEIGNzc1ZhbHVlS2V5d29yZElEKFN0cmluZ1ZpZXcpOworV0VCQ09SRV9F
WFBPUlQgQ1NTVmFsdWVJRCBjc3NWYWx1ZUtleXdvcmRJRChTdHJpbmdWaWV3KTsKIGJvb2wgaXND
dXN0b21Qcm9wZXJ0eU5hbWUoY29uc3QgU3RyaW5nJik7CiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU1ZhbHVlS2V5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU1ZhbHVlS2V5LmgJKG5vbmV4aXN0
ZW50KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU1ZhbHVlS2V5LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1
Y3QgQ1NTVmFsdWVLZXkgeworCisgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0OworCisgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxDU1NWYWx1ZUtleT4gZGVjb2Rl
KERlY29kZXImKTsKKworICAgIHVuc2lnbmVkIGNzc1ZhbHVlSUQ7CisgICAgYm9vbCB1c2VEYXJr
QXBwZWFyYW5jZTsKKyAgICBib29sIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsOworfTsK
KworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NWYWx1ZUtleSYgYSwgY29uc3QgQ1NT
VmFsdWVLZXkmIGIpCit7CisgICAgcmV0dXJuIGEuY3NzVmFsdWVJRCA9PSBiLmNzc1ZhbHVlSUQg
JiYgYS51c2VEYXJrQXBwZWFyYW5jZSA9PSBiLnVzZURhcmtBcHBlYXJhbmNlICYmIGEudXNlRWxl
dmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgPT0gYi51c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZl
bDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQ1NTVmFsdWVLZXk6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgY3NzVmFsdWVJRDsK
KyAgICBlbmNvZGVyIDw8IHVzZURhcmtBcHBlYXJhbmNlOworICAgIGVuY29kZXIgPDwgdXNlRWxl
dmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWw7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitP
cHRpb25hbDxDU1NWYWx1ZUtleT4gQ1NTVmFsdWVLZXk6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQoreworICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBjc3NWYWx1ZUlEOworICAgIGRlY29kZXIgPj4g
Y3NzVmFsdWVJRDsKKyAgICBpZiAoIWNzc1ZhbHVlSUQpCisgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CisgICAgT3B0aW9uYWw8Ym9vbD4gdXNlRGFya0FwcGVhcmFuY2U7CisgICAgZGVjb2Rl
ciA+PiB1c2VEYXJrQXBwZWFyYW5jZTsKKyAgICBpZiAoIXVzZURhcmtBcHBlYXJhbmNlKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIE9wdGlvbmFsPGJvb2w+IHVzZUVsZXZhdGVk
VXNlckludGVyZmFjZUxldmVsOworICAgIGRlY29kZXIgPj4gdXNlRWxldmF0ZWRVc2VySW50ZXJm
YWNlTGV2ZWw7CisgICAgaWYgKCF1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCkKKyAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICByZXR1cm4geyB7IFdURk1vdmUoKmNzc1ZhbHVl
SUQpLCBXVEZNb3ZlKCp1c2VEYXJrQXBwZWFyYW5jZSksIFdURk1vdmUoKnVzZUVsZXZhdGVkVXNl
ckludGVyZmFjZUxldmVsKSB9IH07Cit9CisKK2lubGluZSB1bnNpZ25lZCBDU1NWYWx1ZUtleTo6
aGFzaCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNzc1ZhbHVlSUQ7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3N0cnVjdCBDU1NWYWx1ZUtleUhhc2gg
eworICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFdlYkNvcmU6OkNTU1ZhbHVlS2V5JiBr
ZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KKyAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBX
ZWJDb3JlOjpDU1NWYWx1ZUtleSYgYSwgY29uc3QgV2ViQ29yZTo6Q1NTVmFsdWVLZXkmIGIpIHsg
cmV0dXJuIGEgPT0gYjsgfQorICAgIHN0YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0Vt
cHR5T3JEZWxldGVkID0gdHJ1ZTsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8
V2ViQ29yZTo6Q1NTVmFsdWVLZXk+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViQ29yZTo6Q1NTVmFs
dWVLZXk+IHsKKyAgICBzdGF0aWMgV2ViQ29yZTo6Q1NTVmFsdWVLZXkgZW1wdHlWYWx1ZSgpIHsg
cmV0dXJuIFdlYkNvcmU6OkNTU1ZhbHVlS2V5IHsgV2ViQ29yZTo6Q1NTVmFsdWVJbnZhbGlkLCBm
YWxzZSwgZmFsc2V9OyB9CisgICAgc3RhdGljIHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFdl
YkNvcmU6OkNTU1ZhbHVlS2V5JiBzbG90KSB7IHNsb3QgPSBXZWJDb3JlOjpDU1NWYWx1ZUtleSB7
IFdlYkNvcmU6OkNTU1ZhbHVlSW52YWxpZCwgdHJ1ZSwgdHJ1ZX07fQorICAgIHN0YXRpYyBib29s
IGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYkNvcmU6OkNTU1ZhbHVlS2V5JiBzbG90KSB7IHJldHVy
biBzbG90LmNzc1ZhbHVlSUQgPT0gV2ViQ29yZTo6Q1NTVmFsdWVJbnZhbGlkICYmIHNsb3QudXNl
RGFya0FwcGVhcmFuY2UgJiYgc2xvdC51c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbDsgfQor
fTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2ViQ29yZTo6Q1NTVmFsdWVLZXk+
IHsKKyAgICB0eXBlZGVmIENTU1ZhbHVlS2V5SGFzaCBIYXNoOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV1RGCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAko
cmV2aXNpb24gMjU0MzE0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
SU9TLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCiAKKyNpbmNsdWRlICJDU1NWYWx1ZUtleS5oIgogI2luY2x1ZGUgIlJlbmRlclRo
ZW1lQ29jb2EuaCIKIAogI2lmIFVTRShTWVNURU1fUFJFVklFVykKQEAgLTU5LDYgKzYwLDExIEBA
IHB1YmxpYzoKICAgICB2b2lkIHBhaW50U3lzdGVtUHJldmlld0JhZGdlKEltYWdlJiwgY29uc3Qg
UGFpbnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAjZW5kaWYKIAorICAgIHVz
aW5nIENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCA9IEhhc2hNYXA8Q1NTVmFsdWVLZXksIENvbG9y
PjsKKworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBjb25zdCBDU1NWYWx1ZVRvU3lzdGVtQ29s
b3JNYXAmIGNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyB2b2lkIHNldENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcChDU1NWYWx1ZVRvU3lzdGVtQ29s
b3JNYXAmJik7CisgICAgCiBwcm90ZWN0ZWQ6CiAgICAgTGVuZ3RoQm94IHBvcHVwSW50ZXJuYWxQ
YWRkaW5nQm94KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCShyZXZpc2lvbiAy
NTQzMTQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0JKHdv
cmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIkJpdG1hcEltYWdlLmgiCiAj
aW1wb3J0ICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2ltcG9ydCAiQ1NTVG9MZW5ndGhDb252ZXJz
aW9uRGF0YS5oIgorI2ltcG9ydCAiQ1NTVmFsdWVLZXkuaCIKICNpbXBvcnQgIkNTU1ZhbHVlS2V5
d29yZHMuaCIKICNpbXBvcnQgIkNvbG9ySU9TLmgiCiAjaW1wb3J0ICJEYXRlQ29tcG9uZW50cy5o
IgpAQCAtMTQzMCw2ICsxNDMxLDExMyBAQCBTdHJpbmcgUmVuZGVyVGhlbWVJT1M6Om1lZGlhQ29u
dHJvbHNCYXNlCiAKICNlbmRpZiAvLyBFTkFCTEUoVklERU8pCiAKK3N0cnVjdCBDU1NWYWx1ZUlE
QW5kU2VsZWN0b3IgeworICAgIENTU1ZhbHVlSUQgY3NzVmFsdWVJRDsKKyAgICBTRUwgc2VsZWN0
b3I7Cit9OworCitzdGF0aWMgY29uc3QgVmVjdG9yPENTU1ZhbHVlSURBbmRTZWxlY3Rvcj4mIGNz
c1ZhbHVlSURTZWxlY3Rvckxpc3QoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0
b3I8Q1NTVmFsdWVJREFuZFNlbGVjdG9yPj4gY3NzVmFsdWVJRFNlbGVjdG9yTGlzdDsKKworICAg
IHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplT25jZTsKKyAgICBzdGQ6OmNhbGxfb25j
ZSgKKyAgICAgICAgaW5pdGlhbGl6ZU9uY2UsCisgICAgICAgIFtdIHsKKyAgICAgICAgY3NzVmFs
dWVJRFNlbGVjdG9yTGlzdC5nZXQoKSA9IFZlY3RvcihzdGQ6OmluaXRpYWxpemVyX2xpc3Q8Q1NT
VmFsdWVJREFuZFNlbGVjdG9yPiB7CisjaWYgSEFWRShPU19EQVJLX01PREVfU1VQUE9SVCkKKyAg
ICAgICAgICAgIHsgQ1NTVmFsdWVUZXh0LCBAc2VsZWN0b3IobGFiZWxDb2xvcikgfSwKKyAgICAg
ICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUxhYmVsLCBAc2VsZWN0b3IobGFiZWxDb2xvcikg
fSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUhlYWRlclRleHQsIEBzZWxlY3Rv
cihsYWJlbENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25k
YXJ5TGFiZWwsIEBzZWxlY3RvcihzZWNvbmRhcnlMYWJlbENvbG9yKSB9LAorICAgICAgICAgICAg
eyBDU1NWYWx1ZUFwcGxlU3lzdGVtVGVydGlhcnlMYWJlbCwgQHNlbGVjdG9yKHRlcnRpYXJ5TGFi
ZWxDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVF1YXRlcm5hcnlM
YWJlbCwgQHNlbGVjdG9yKHF1YXRlcm5hcnlMYWJlbENvbG9yKSB9LAorICAgICAgICAgICAgeyBD
U1NWYWx1ZUFwcGxlU3lzdGVtUGxhY2Vob2xkZXJUZXh0LCBAc2VsZWN0b3IocGxhY2Vob2xkZXJU
ZXh0Q29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlV2Via2l0Q29udHJvbEJhY2tncm91
bmQsIEBzZWxlY3RvcihzeXN0ZW1CYWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAgICAgICB7IENT
U1ZhbHVlQXBwbGVTeXN0ZW1Db250cm9sQmFja2dyb3VuZCwgQHNlbGVjdG9yKHN5c3RlbUJhY2tn
cm91bmRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVRleHRCYWNr
Z3JvdW5kLCBAc2VsZWN0b3Ioc3lzdGVtQmFja2dyb3VuZENvbG9yKSB9LAorICAgICAgICAgICAg
eyBDU1NWYWx1ZUFwcGxlU3lzdGVtQmFja2dyb3VuZCwgQHNlbGVjdG9yKHN5c3RlbUJhY2tncm91
bmRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVNlY29uZGFyeUJh
Y2tncm91bmQsIEBzZWxlY3RvcihzZWNvbmRhcnlTeXN0ZW1CYWNrZ3JvdW5kQ29sb3IpIH0sCisg
ICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1UZXJ0aWFyeUJhY2tncm91bmQsIEBzZWxl
Y3Rvcih0ZXJ0aWFyeVN5c3RlbUJhY2tncm91bmRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NT
VmFsdWVBcHBsZVN5c3RlbUdyb3VwZWRCYWNrZ3JvdW5kLCBAc2VsZWN0b3Ioc3lzdGVtR3JvdXBl
ZEJhY2tncm91bmRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVNl
Y29uZGFyeUdyb3VwZWRCYWNrZ3JvdW5kLCBAc2VsZWN0b3Ioc2Vjb25kYXJ5U3lzdGVtR3JvdXBl
ZEJhY2tncm91bmRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVRl
cnRpYXJ5R3JvdXBlZEJhY2tncm91bmQsIEBzZWxlY3Rvcih0ZXJ0aWFyeVN5c3RlbUdyb3VwZWRC
YWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1Hcmlk
LCBAc2VsZWN0b3Ioc2VwYXJhdG9yQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBw
bGVTeXN0ZW1TZXBhcmF0b3IsIEBzZWxlY3RvcihzZXBhcmF0b3JDb2xvcikgfSwKKyAgICAgICAg
ICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUNvbnRhaW5lckJvcmRlciwgQHNlbGVjdG9yKHNlcGFy
YXRvckNvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtU2VsZWN0ZWRD
b250ZW50QmFja2dyb3VuZCwgQHNlbGVjdG9yKHRhYmxlQ2VsbERlZmF1bHRTZWxlY3Rpb25UaW50
Q29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1VbmVtcGhhc2l6ZWRT
ZWxlY3RlZENvbnRlbnRCYWNrZ3JvdW5kLCBAc2VsZWN0b3IodGFibGVDZWxsRGVmYXVsdFNlbGVj
dGlvblRpbnRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUJyb3du
LCBAc2VsZWN0b3Ioc3lzdGVtQnJvd25Db2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVB
cHBsZVN5c3RlbUluZGlnbywgQHNlbGVjdG9yKHN5c3RlbUluZGlnb0NvbG9yKSB9LAorI2VuZGlm
CisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1UZWFsLCBAc2VsZWN0b3Ioc3lzdGVt
VGVhbENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlV2lyZWxlc3NQbGF5YmFj
a1RhcmdldEFjdGl2ZSwgQHNlbGVjdG9yKHN5c3RlbUJsdWVDb2xvcikgfSwKKyAgICAgICAgICAg
IHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUJsdWUsIEBzZWxlY3RvcihzeXN0ZW1CbHVlQ29sb3IpIH0s
CisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1HcmF5LCBAc2VsZWN0b3Ioc3lzdGVt
R3JheUNvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtR3JlZW4sIEBz
ZWxlY3RvcihzeXN0ZW1HcmVlbkNvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxl
U3lzdGVtT3JhbmdlLCBAc2VsZWN0b3Ioc3lzdGVtT3JhbmdlQ29sb3IpIH0sCisgICAgICAgICAg
ICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1QaW5rLCBAc2VsZWN0b3Ioc3lzdGVtUGlua0NvbG9yKSB9
LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtUHVycGxlLCBAc2VsZWN0b3Ioc3lz
dGVtUHVycGxlQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1SZWQs
IEBzZWxlY3RvcihzeXN0ZW1SZWRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBs
ZVN5c3RlbVllbGxvdywgQHNlbGVjdG9yKHN5c3RlbVllbGxvd0NvbG9yKSB9CisgICAgICAgIH0p
OworICAgIH0pOworCisgICAgcmV0dXJuIGNzc1ZhbHVlSURTZWxlY3Rvckxpc3Q7Cit9CisKK3N0
YXRpYyBPcHRpb25hbDxDb2xvcj4gc3lzdGVtQ29sb3JGcm9tQ1NTVmFsdWVJRChDU1NWYWx1ZUlE
IGNzc1ZhbHVlSUQsIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UsIGJvb2wgdXNlRWxldmF0ZWRVc2Vy
SW50ZXJmYWNlTGV2ZWwpCit7CisgICAgTG9jYWxDdXJyZW50VHJhaXRDb2xsZWN0aW9uIGxvY2Fs
VHJhaXRDb2xsZWN0aW9uKHVzZURhcmtBcHBlYXJhbmNlLCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZh
Y2VMZXZlbCk7CisKKyAgICBhdXRvIGNzc0NvbG9yVG9TZWxlY3RvciA9IFtjc3NWYWx1ZUlEXSAo
KSAtPiBTRUwgeworICAgICAgICBmb3IgKGF1dG8mIGNzc1ZhbHVlSURTZWxlY3RvciA6IGNzc1Zh
bHVlSURTZWxlY3Rvckxpc3QoKSkgeworICAgICAgICAgICAgaWYgKGNzc1ZhbHVlSURTZWxlY3Rv
ci5jc3NWYWx1ZUlEID09IGNzc1ZhbHVlSUQpCisgICAgICAgICAgICAgICAgcmV0dXJuIGNzc1Zh
bHVlSURTZWxlY3Rvci5zZWxlY3RvcjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICB9OworCisgICAgaWYgKGF1dG8gc2VsZWN0b3IgPSBjc3NDb2xvclRvU2VsZWN0b3Io
KSkgeworICAgICAgICBpZiAoYXV0byBjb2xvciA9IHd0Zk9iakNNc2dTZW5kPFVJQ29sb3IgKj4o
UEFMOjpnZXRVSUNvbG9yQ2xhc3MoKSwgc2VsZWN0b3IpKQorICAgICAgICAgICAgcmV0dXJuIENv
bG9yKGNvbG9yLkNHQ29sb3IsIENvbG9yOjpTZW1hbnRpYyk7CisgICAgfQorICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7Cit9CisKKworc3RhdGljIFJlbmRlclRoZW1lSU9TOjpDU1NWYWx1ZVRvU3lz
dGVtQ29sb3JNYXAmIGdsb2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpCit7CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPFJlbmRlclRoZW1lSU9TOjpDU1NWYWx1ZVRvU3lzdGVtQ29sb3JN
YXA+IGNvbG9yTWFwOworICAgIHJldHVybiBjb2xvck1hcDsKK30KKworY29uc3QgUmVuZGVyVGhl
bWVJT1M6OkNTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCYgUmVuZGVyVGhlbWVJT1M6OmNzc1ZhbHVl
VG9TeXN0ZW1Db2xvck1hcCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPENTU1ZhbHVl
VG9TeXN0ZW1Db2xvck1hcD4gbWFwOworCisgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VG
bGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKAorICAgICAgICBvbmNlRmxhZywKKyAgICAgICAgW10g
eworICAgICAgICBmb3IgKGF1dG8mIGNzc1ZhbHVlSURTZWxlY3RvciA6IGNzc1ZhbHVlSURTZWxl
Y3Rvckxpc3QoKSkgeworICAgICAgICAgICAgZm9yIChib29sIHVzZURhcmtBcHBlYXJhbmNlIDog
eyBmYWxzZSwgdHJ1ZSB9KSB7CisgICAgICAgICAgICAgICAgZm9yIChib29sIHVzZUVsZXZhdGVk
VXNlckludGVyZmFjZUxldmVsIDogeyBmYWxzZSwgdHJ1ZSB9KSB7CisgICAgICAgICAgICAgICAg
ICAgIGlmIChhdXRvIGNvbG9yID0gc3lzdGVtQ29sb3JGcm9tQ1NTVmFsdWVJRChjc3NWYWx1ZUlE
U2VsZWN0b3IuY3NzVmFsdWVJRCwgdXNlRGFya0FwcGVhcmFuY2UsIHVzZUVsZXZhdGVkVXNlcklu
dGVyZmFjZUxldmVsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIG1hcC5nZXQoKS5hZGQoQ1NT
VmFsdWVLZXkgeyBjc3NWYWx1ZUlEU2VsZWN0b3IuY3NzVmFsdWVJRCwgdXNlRGFya0FwcGVhcmFu
Y2UsIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsIH0sICpjb2xvcik7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSk7CisKKyAgICByZXR1cm4g
bWFwOworfQorCit2b2lkIFJlbmRlclRoZW1lSU9TOjpzZXRDU1NWYWx1ZVRvU3lzdGVtQ29sb3JN
YXAoQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwJiYgY29sb3JNYXApCit7CisgICAgZ2xvYmFsQ1NT
VmFsdWVUb1N5c3RlbUNvbG9yTWFwKCkgPSBXVEZNb3ZlKGNvbG9yTWFwKTsKK30KKwogQ29sb3Ig
UmVuZGVyVGhlbWVJT1M6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQgY3NzVmFsdWVJRCwgT3B0aW9u
U2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0CiB7CiAgICAgY29uc3QgYm9v
bCBmb3JWaXNpdGVkTGluayA9IG9wdGlvbnMuY29udGFpbnMoU3R5bGVDb2xvcjo6T3B0aW9uczo6
Rm9yVmlzaXRlZExpbmspOwpAQCAtMTQ0Niw3OSArMTU1NCwxNSBAQCBDb2xvciBSZW5kZXJUaGVt
ZUlPUzo6c3lzdGVtQ29sb3IoQ1NTVmFsCiAgICAgcmV0dXJuIGNhY2hlLnN5c3RlbVN0eWxlQ29s
b3JzLmVuc3VyZShjc3NWYWx1ZUlELCBbdGhpcywgY3NzVmFsdWVJRCwgb3B0aW9uc10gKCkgLT4g
Q29sb3IgewogICAgICAgICBjb25zdCBib29sIHVzZURhcmtBcHBlYXJhbmNlID0gb3B0aW9ucy5j
b250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CiAgICAgICAg
IGNvbnN0IGJvb2wgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgPSBvcHRpb25zLmNvbnRh
aW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsK
LSAgICAgICAgTG9jYWxDdXJyZW50VHJhaXRDb2xsZWN0aW9uIGxvY2FsVHJhaXRDb2xsZWN0aW9u
KHVzZURhcmtBcHBlYXJhbmNlLCB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCk7Ci0KLSAg
ICAgICAgYXV0byBjc3NDb2xvclRvU2VsZWN0b3IgPSBbY3NzVmFsdWVJRF0gKCkgLT4gU0VMIHsK
LSAgICAgICAgICAgIHN3aXRjaCAoY3NzVmFsdWVJRCkgewotI2lmIEhBVkUoT1NfREFSS19NT0RF
X1NVUFBPUlQpCi0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlVGV4dDoKLSAgICAgICAgICAgIGNh
c2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUxhYmVsOgotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFw
cGxlU3lzdGVtSGVhZGVyVGV4dDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKGxh
YmVsQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5
TGFiZWw6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzZWNvbmRhcnlMYWJlbENv
bG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVRlcnRpYXJ5TGFiZWw6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3Rvcih0ZXJ0aWFyeUxhYmVsQ29sb3IpOwot
ICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtUXVhdGVybmFyeUxhYmVsOgotICAg
ICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3IocXVhdGVybmFyeUxhYmVsQ29sb3IpOwotICAg
ICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtUGxhY2Vob2xkZXJUZXh0OgotICAgICAg
ICAgICAgICAgIHJldHVybiBAc2VsZWN0b3IocGxhY2Vob2xkZXJUZXh0Q29sb3IpOwotICAgICAg
ICAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdENvbnRyb2xCYWNrZ3JvdW5kOgotICAgICAgICAgICAg
Y2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtQ29udHJvbEJhY2tncm91bmQ6Ci0gICAgICAgICAgICBj
YXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1UZXh0QmFja2dyb3VuZDoKLSAgICAgICAgICAgIGNhc2Ug
Q1NTVmFsdWVBcHBsZVN5c3RlbUJhY2tncm91bmQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBz
ZWxlY3RvcihzeXN0ZW1CYWNrZ3JvdW5kQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1
ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5QmFja2dyb3VuZDoKLSAgICAgICAgICAgICAgICByZXR1cm4g
QHNlbGVjdG9yKHNlY29uZGFyeVN5c3RlbUJhY2tncm91bmRDb2xvcik7Ci0gICAgICAgICAgICBj
YXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1UZXJ0aWFyeUJhY2tncm91bmQ6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIEBzZWxlY3Rvcih0ZXJ0aWFyeVN5c3RlbUJhY2tncm91bmRDb2xvcik7Ci0gICAg
ICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1Hcm91cGVkQmFja2dyb3VuZDoKLSAgICAg
ICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbUdyb3VwZWRCYWNrZ3JvdW5kQ29sb3Ip
OwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5R3JvdXBlZEJh
Y2tncm91bmQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzZWNvbmRhcnlTeXN0
ZW1Hcm91cGVkQmFja2dyb3VuZENvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBs
ZVN5c3RlbVRlcnRpYXJ5R3JvdXBlZEJhY2tncm91bmQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IEBzZWxlY3Rvcih0ZXJ0aWFyeVN5c3RlbUdyb3VwZWRCYWNrZ3JvdW5kQ29sb3IpOwotICAgICAg
ICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtR3JpZDoKLSAgICAgICAgICAgIGNhc2UgQ1NT
VmFsdWVBcHBsZVN5c3RlbVNlcGFyYXRvcjoKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBs
ZVN5c3RlbUNvbnRhaW5lckJvcmRlcjoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9y
KHNlcGFyYXRvckNvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVNl
bGVjdGVkQ29udGVudEJhY2tncm91bmQ6Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVT
eXN0ZW1VbmVtcGhhc2l6ZWRTZWxlY3RlZENvbnRlbnRCYWNrZ3JvdW5kOgotICAgICAgICAgICAg
ICAgIHJldHVybiBAc2VsZWN0b3IodGFibGVDZWxsRGVmYXVsdFNlbGVjdGlvblRpbnRDb2xvcik7
Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1Ccm93bjoKLSAgICAgICAgICAg
ICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbUJyb3duQ29sb3IpOwotICAgICAgICAgICAgY2Fz
ZSBDU1NWYWx1ZUFwcGxlU3lzdGVtSW5kaWdvOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2Vs
ZWN0b3Ioc3lzdGVtSW5kaWdvQ29sb3IpOwotI2VuZGlmCi0gICAgICAgICAgICBjYXNlIENTU1Zh
bHVlQXBwbGVTeXN0ZW1UZWFsOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lz
dGVtVGVhbENvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVdpcmVsZXNzUGxh
eWJhY2tUYXJnZXRBY3RpdmU6Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1C
bHVlOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtQmx1ZUNvbG9yKTsK
LSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUdyYXk6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1HcmF5Q29sb3IpOwotICAgICAgICAgICAgY2FzZSBD
U1NWYWx1ZUFwcGxlU3lzdGVtR3JlZW46Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3Rv
cihzeXN0ZW1HcmVlbkNvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3Rl
bU9yYW5nZToKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbU9yYW5nZUNv
bG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVBpbms6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1QaW5rQ29sb3IpOwotICAgICAgICAgICAg
Y2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtUHVycGxlOgotICAgICAgICAgICAgICAgIHJldHVybiBA
c2VsZWN0b3Ioc3lzdGVtUHVycGxlQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFw
cGxlU3lzdGVtUmVkOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtUmVk
Q29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtWWVsbG93OgotICAg
ICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtWWVsbG93Q29sb3IpOwotICAgICAg
ICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfTsKLQotICAgICAgICBpZiAoYXV0byBzZWxlY3RvciA9IGNzc0NvbG9y
VG9TZWxlY3RvcigpKSB7Ci0gICAgICAgICAgICBpZiAoYXV0byBjb2xvciA9IHd0Zk9iakNNc2dT
ZW5kPFVJQ29sb3IgKj4oUEFMOjpnZXRVSUNvbG9yQ2xhc3MoKSwgc2VsZWN0b3IpKQotICAgICAg
ICAgICAgICAgIHJldHVybiBDb2xvcihjb2xvci5DR0NvbG9yLCBDb2xvcjo6U2VtYW50aWMpOwor
ICAgICAgICBpZiAoIWdsb2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpLmlzRW1wdHkoKSkg
eworICAgICAgICAgICAgYXV0byBpdCA9IGdsb2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgp
LmZpbmQoQ1NTVmFsdWVLZXkgeyBjc3NWYWx1ZUlELCB1c2VEYXJrQXBwZWFyYW5jZSwgdXNlRWxl
dmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgfSk7CisgICAgICAgICAgICBpZiAoaXQgPT0gZ2xvYmFs
Q1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKCkuZW5kKCkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IFJlbmRlclRoZW1lOjpzeXN0ZW1Db2xvcihjc3NWYWx1ZUlELCBvcHRpb25zKTsKKyAgICAgICAg
ICAgIHJldHVybiBDb2xvcihpdC0+dmFsdWUucmdiKCksIENvbG9yOjpTZW1hbnRpYyk7CiAgICAg
ICAgIH0KLQorICAgICAgICBhdXRvIGNvbG9yID0gc3lzdGVtQ29sb3JGcm9tQ1NTVmFsdWVJRChj
c3NWYWx1ZUlELCB1c2VEYXJrQXBwZWFyYW5jZSwgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2
ZWwpOworICAgICAgICBpZiAoY29sb3IpCisgICAgICAgICAgICByZXR1cm4gKmNvbG9yOwogICAg
ICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnN5c3RlbUNvbG9yKGNzc1ZhbHVlSUQsIG9wdGlvbnMp
OwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAJKHJldmlzaW9uIDI1NDMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUg
IkNTU0FuaW1hdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJDU1NLZXlmcmFtZXNSdWxlLmgi
CiAjaW5jbHVkZSAiQ1NTTWVkaWFSdWxlLmgiCisjaW5jbHVkZSAiQ1NTUHJvcGVydHlQYXJzZXIu
aCIKICNpbmNsdWRlICJDU1NTdHlsZVJ1bGUuaCIKICNpbmNsdWRlICJDU1NTdXBwb3J0c1J1bGUu
aCIKICNpbmNsdWRlICJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgiCkBAIC0xNDksNiArMTUwLDcg
QEAKICNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKICNpbmNsdWRlICJSZW5kZXJMYXll
ckNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJNZW51TGlzdC5oIgorI2luY2x1ZGUgIlJl
bmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4dC5oIgogI2luY2x1ZGUgIlJl
bmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJlZERvY3VtZW50TWFya2VyLmgiCkBAIC01NDE5
LDQgKzU0MjEsMTggQEAgU3RyaW5nIEludGVybmFsczo6d2luZG93TG9jYXRpb25Ib3N0KERPTQog
ICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24oKS5ob3N0KCk7CiB9CiAKK1N0cmluZyBJbnRlcm5h
bHM6OnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoY29uc3QgU3RyaW5nJiBjc3NWYWx1ZSwgYm9vbCB1
c2VEYXJrTW9kZUFwcGVhcmFuY2UsIGJvb2wgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwp
Cit7CisgICAgQ1NTVmFsdWVJRCBpZCA9IGNzc1ZhbHVlS2V5d29yZElEKGNzc1ZhbHVlKTsKKyAg
ICBSRUxFQVNFX0FTU0VSVChTdHlsZUNvbG9yOjppc1N5c3RlbUNvbG9yKGlkKSk7CisKKyAgICBP
cHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9uczsKKyAgICBpZiAodXNlRGFya01v
ZGVBcHBlYXJhbmNlKQorICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yOjpPcHRpb25zOjpV
c2VEYXJrQXBwZWFyYW5jZSk7CisgICAgaWYgKHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVs
KQorICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VFbGV2YXRlZFVz
ZXJJbnRlcmZhY2VMZXZlbCk7CisgICAgCisgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpzaW5nbGV0
b24oKS5zeXN0ZW1Db2xvcihpZCwgb3B0aW9ucykuY3NzVGV4dCgpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlzaW9u
IDI1NDMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTkyNCw2ICs5MjQsOCBAQCBwdWJsaWM6CiAKICAgICBTdHJpbmcgd2luZG93TG9j
YXRpb25Ib3N0KERPTVdpbmRvdyYpOwogCisgICAgU3RyaW5nIHN5c3RlbUNvbG9yRm9yQ1NTVmFs
dWUoY29uc3QgU3RyaW5nJiBjc3NWYWx1ZSwgYm9vbCB1c2VEYXJrTW9kZUFwcGVhcmFuY2UsIGJv
b2wgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOworCiBwcml2YXRlOgogICAgIGV4cGxp
Y2l0IEludGVybmFscyhEb2N1bWVudCYpOwogICAgIERvY3VtZW50KiBjb250ZXh0RG9jdW1lbnQo
KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHJldmlzaW9u
IDI1NDMxNCkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtODMxLDQgKzgzMSw2IEBAIGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewogCiAg
ICAgYm9vbGVhbiBoYXNTYW5kYm94TWFjaExvb2t1cEFjY2Vzc1RvR2xvYmFsTmFtZShET01TdHJp
bmcgcHJvY2VzcywgRE9NU3RyaW5nIHNlcnZpY2UpOwogICAgIGJvb2xlYW4gaGFzU2FuZGJveE1h
Y2hMb29rdXBBY2Nlc3NUb1hQQ1NlcnZpY2VOYW1lKERPTVN0cmluZyBwcm9jZXNzLCBET01TdHJp
bmcgc2VydmljZSk7CisgICAgCisgICAgRE9NU3RyaW5nIHN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUo
RE9NU3RyaW5nIGNzc1ZhbHVlLCBib29sZWFuIHVzZURhcmtNb2RlQXBwZWFyYW5jZSwgYm9vbGVh
biB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCk7CiB9OwpJbmRleDogU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlz
aW9uIDI1NDMxNCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMjAtMDEtMDkgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBw
bGUuY29tPgorCisgICAgICAgIE1hcCBDU1MgdmFsdWUgSUQgdG8gc3lzdGVtIGNvbG9yIGluIHRo
ZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDQzMTQKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAg
ICAgQ3JlYXRlIG1hcHBpbmcgYmV0d2VlbiBDU1MgdmFsdWUgSURzIGFuZCBzeXN0ZW0gY29sb3Jz
IGluIHRoZSBVSSBwcm9jZXNzIGFuZCBzZW5kIHRvIHRoZSBXZWJDb250ZW50IHByb2Nlc3MKKyAg
ICAgICAgb24gcHJvY2VzcyBzdGFydHVwLgorCisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0
aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMjAtMDEtMDkgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgQ2hlY2sgdGhlIGV4aXN0ZW5jZSBvZiB0aGUgb3B0aW9u
YWwgbV9zZXNzaW9uSUQgYmVmb3JlIHVzaW5nIGl0IGluIFdlYlByb2Nlc3M6OnNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNTQzMTQp
CisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTcwLDYgKzE3MCw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVyczo6ZW5jb2QKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgZW5j
b2RlciA8PCBjdXJyZW50VXNlckludGVyZmFjZUlkaW9tSXNQYWQ7CisgICAgZW5jb2RlciA8PCBj
c3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CiAjZW5kaWYKIH0KIApAQCAtNDM3LDYgKzQzOCwxMiBA
QCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuY3VycmVudFVz
ZXJJbnRlcmZhY2VJZGlvbUlzUGFkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgT3B0
aW9uYWw8SGFzaE1hcDxXZWJDb3JlOjpDU1NWYWx1ZUtleSwgV2ViQ29yZTo6Q29sb3I+PiBjc3NW
YWx1ZVRvU3lzdGVtQ29sb3JNYXA7CisgICAgZGVjb2RlciA+PiBjc3NWYWx1ZVRvU3lzdGVtQ29s
b3JNYXA7CisgICAgaWYgKCFjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXApCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBwYXJhbWV0ZXJzLmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCA9IFdURk1v
dmUoKmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCk7CiAjZW5kaWYKIAogICAgIHJldHVybiB0cnVl
OwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaAkocmV2aXNpb24gMjU0MzE0KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1
MSwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtQcm94eVNldHRpbmdzLmg+CiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW5jbHVkZSA8V2ViQ29yZS9SZW5k
ZXJUaGVtZUlPUy5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgRGF0YTsKIH0K
QEAgLTIwOCw2ICsyMTIsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGJvb2wgY3VycmVudFVzZXJJbnRlcmZh
Y2VJZGlvbUlzUGFkIHsgZmFsc2UgfTsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OkNTU1ZhbHVlS2V5
LCBXZWJDb3JlOjpDb2xvcj4gY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwOwogI2VuZGlmCiB9Owog
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29h
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nl
c3NQb29sQ29jb2EubW0JKHJldmlzaW9uIDI1NDMxNCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTM0OSw2
ICszNDksNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXCiAgICAg
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBwYXJhbWV0ZXJzLmN1cnJlbnRVc2VySW50
ZXJmYWNlSWRpb21Jc1BhZCA9IGN1cnJlbnRVc2VySW50ZXJmYWNlSWRpb21Jc1BhZCgpOworICAg
IHBhcmFtZXRlcnMuY3NzVmFsdWVUb1N5c3RlbUNvbG9yTWFwID0gUmVuZGVyVGhlbWVJT1M6OmNz
c1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpOwogI2VuZGlmCiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkocmV2aXNpb24g
MjU0MzE0KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjU5LDYgKzI1OSwxMCBAQCB2b2lkIFdlYlByb2Nlc3M6
OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByCiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1
bWVQZXJtYW5lbnRseSgqcGFyYW1ldGVycy5uZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxl
KTsKICAgICBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6c2V0SGFzQ29uc3VtZWRTYW5k
Ym94RXh0ZW5zaW9ucyhwYXJhbWV0ZXJzLm5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlLmhhc1ZhbHVl
KCkgJiYgcGFyYW1ldGVycy5uZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlLmhhc1ZhbHVl
KCkpOwogI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFJlbmRlclRoZW1l
SU9TOjpzZXRDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoV1RGTW92ZShwYXJhbWV0ZXJzLmNzc1Zh
bHVlVG9TeXN0ZW1Db2xvck1hcCkpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGxh
dGZvcm1TZXRXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyhXZWJQcm9jZXNzRGF0YVN0b3JlUGFy
YW1ldGVycyYmIHBhcmFtZXRlcnMpCkluZGV4OiBXZWJLaXQueGN3b3Jrc3BhY2UveGNzaGFyZWRk
YXRhL3hjc2NoZW1lcy9BbGwgU291cmNlLnhjc2NoZW1lCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC54
Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL0FsbCBTb3VyY2UueGNzY2hlbWUJKHJl
dmlzaW9uIDI1NDMxNCkKKysrIFdlYktpdC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEveGNzY2hl
bWVzL0FsbCBTb3VyY2UueGNzY2hlbWUJKHdvcmtpbmcgY29weSkKQEAgLTE1Miw3ICsxNTIsNyBA
QAogICAgICAgPC9UZXN0YWJsZXM+CiAgICA8L1Rlc3RBY3Rpb24+CiAgICA8TGF1bmNoQWN0aW9u
Ci0gICAgICBidWlsZENvbmZpZ3VyYXRpb24gPSAiRGVidWciCisgICAgICBidWlsZENvbmZpZ3Vy
YXRpb24gPSAiUmVsZWFzZSIKICAgICAgIHNlbGVjdGVkRGVidWdnZXJJZGVudGlmaWVyID0gIlhj
b2RlLkRlYnVnZ2VyRm91bmRhdGlvbi5EZWJ1Z2dlci5MTERCIgogICAgICAgc2VsZWN0ZWRMYXVu
Y2hlcklkZW50aWZpZXIgPSAiWGNvZGUuRGVidWdnZXJGb3VuZGF0aW9uLkxhdW5jaGVyLkxMREIi
CiAgICAgICBsYXVuY2hTdHlsZSA9ICIwIgpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjU0MzE0KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MjAtMDEtMDkgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAg
IE1hcCBDU1MgdmFsdWUgSUQgdG8gc3lzdGVtIGNvbG9yIGluIHRoZSBVSSBwcm9jZXNzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzMTQKKworICAg
ICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAqIGZhc3QvY3NzL2lvczogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mv
aW9zL3N5c3RlbS1jb2xvci1mb3ItY3NzLXZhbHVlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9jc3MvaW9zL3N5c3RlbS1jb2xvci1mb3ItY3NzLXZhbHVlLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTAxLTA5
ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJ
T04gKHIyNTM2NjIpOiBMYXJnZSBEYXRhIFVSTHMgYXJlIG5vdCBiZWluZyBoYW5kbGVkIHByb3Bl
cmx5CkluZGV4OiBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDI1NDMxNCkKKysrIExheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAgZWRp
dGluZy9wYXN0ZWJvYXJkL2d0ayBbIFNraXAgXQogZWRpdGluZy9zZWxlY3Rpb24vaW9zIFsgU2tp
cCBdCiBlZGl0aW5nL3VuZG8tbWFuYWdlciBbIFNraXAgXQogdGlsZWQtZHJhd2luZyBbIFNraXAg
XQorZmFzdC9jc3MvaW9zIFsgU2tpcCBdCiBmYXN0L2Nzcy93YXRjaG9zIFsgU2tpcCBdCiBmYXN0
L2RvbS9XaW5kb3cvd2F0Y2hvcyBbIFNraXAgXQogZmFzdC9mb3Jtcy9zZWxlY3QvbWFjLXdrMiBb
IFNraXAgXQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW9zL3N5c3RlbS1jb2xvci1mb3It
Y3NzLXZhbHVlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9pb3Mvc3lzdGVtLWNvbG9yLWZvci1jc3MtdmFsdWUtZXhwZWN0ZWQudHh0CShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2lvcy9zeXN0ZW0tY29sb3ItZm9yLWNzcy12YWx1
ZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MSBAQAorVGVzdCB0aGF0
IHN5c3RlbSBjb2xvcnMgZm9yIENTUyB2YWx1ZXMgYXJlIGNvcnJlY3QuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIGludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVl
KCctYXBwbGUtc3lzdGVtLWxhYmVsJywgdHJ1ZSwgZmFsc2UpIGlzICdyZ2IoMjU1LCAyNTUsIDI1
NSknCitQQVNTIGludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVt
LWhlYWRlci10ZXh0JywgdHJ1ZSwgZmFsc2UpIGlzICdyZ2IoMjU1LCAyNTUsIDI1NSknCitQQVNT
IGludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLXNlY29uZGFy
eS1sYWJlbCcsIHRydWUsIGZhbHNlKSBpcyAncmdiYSgyMzUsIDIzNSwgMjQ1LCAwLjYpJworUEFT
UyBpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZSgnLWFwcGxlLXN5c3RlbS10ZXJ0aWFy
eS1sYWJlbCcsIHRydWUsIGZhbHNlKSBpcyAncmdiYSgyMzUsIDIzNSwgMjQ1LCAwLjI5OCknCitQ
QVNTIGludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLXF1YXRl
cm5hcnktbGFiZWwnLCB0cnVlLCBmYWxzZSkgaXMgJ3JnYmEoMjM1LCAyMzUsIDI0NSwgMC4xOCkn
CitQQVNTIGludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLXBs
YWNlaG9sZGVyLXRleHQnLCB0cnVlLCBmYWxzZSkgaXMgJ3JnYmEoMjM1LCAyMzUsIDI0NSwgMC4y
OTgpJworUEFTUyBpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZSgnLXdlYmtpdC1jb250
cm9sLWJhY2tncm91bmQnLCB0cnVlLCBmYWxzZSkgaXMgJ3JnYigwLCAwLCAwKScKK1BBU1MgaW50
ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0tY29udHJvbC1iYWNr
Z3JvdW5kJywgdHJ1ZSwgZmFsc2UpIGlzICdyZ2IoMCwgMCwgMCknCitQQVNTIGludGVybmFscy5z
eXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLXRleHQtYmFja2dyb3VuZCcsIHRy
dWUsIGZhbHNlKSBpcyAncmdiKDAsIDAsIDApJworUEFTUyBpbnRlcm5hbHMuc3lzdGVtQ29sb3JG
b3JDU1NWYWx1ZSgnLWFwcGxlLXN5c3RlbS1iYWNrZ3JvdW5kJywgdHJ1ZSwgZmFsc2UpIGlzICdy
Z2IoMCwgMCwgMCknCitQQVNTIGludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBw
bGUtc3lzdGVtLXNlY29uZGFyeS1iYWNrZ3JvdW5kJywgdHJ1ZSwgZmFsc2UpIGlzICdyZ2IoMjgs
IDI4LCAzMCknCitQQVNTIGludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUt
c3lzdGVtLXRlcnRpYXJ5LWJhY2tncm91bmQnLCB0cnVlLCBmYWxzZSkgaXMgJ3JnYig0NCwgNDQs
IDQ2KScKK1BBU1MgaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0
ZW0tZ3JvdXBlZC1iYWNrZ3JvdW5kJywgdHJ1ZSwgZmFsc2UpIGlzICdyZ2IoMCwgMCwgMCknCitQ
QVNTIGludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLXNlY29u
ZGFyeS1ncm91cGVkLWJhY2tncm91bmQnLCB0cnVlLCBmYWxzZSkgaXMgJ3JnYigyOCwgMjgsIDMw
KScKK1BBU1MgaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0t
dGVydGlhcnktZ3JvdXBlZC1iYWNrZ3JvdW5kJywgdHJ1ZSwgZmFsc2UpIGlzICdyZ2IoNDQsIDQ0
LCA0NiknCitQQVNTIGludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lz
dGVtLWdyaWQnLCB0cnVlLCBmYWxzZSkgaXMgJ3JnYmEoODQsIDg0LCA4OCwgMC42KScKK1BBU1Mg
aW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0tc2VwYXJhdG9y
JywgdHJ1ZSwgZmFsc2UpIGlzICdyZ2JhKDg0LCA4NCwgODgsIDAuNiknCitQQVNTIGludGVybmFs
cy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLWNvbnRhaW5lci1ib3JkZXIn
LCB0cnVlLCBmYWxzZSkgaXMgJ3JnYmEoODQsIDg0LCA4OCwgMC42KScKK1BBU1MgaW50ZXJuYWxz
LnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0tc2VsZWN0ZWQtY29udGVudC1i
YWNrZ3JvdW5kJywgdHJ1ZSwgZmFsc2UpIGlzICdyZ2IoNTgsIDU4LCA2MCknCitQQVNTIGludGVy
bmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLXVuZW1waGFzaXplZC1z
ZWxlY3RlZC1jb250ZW50LWJhY2tncm91bmQnLCB0cnVlLCBmYWxzZSkgaXMgJ3JnYig1OCwgNTgs
IDYwKScKK1BBU1MgaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0
ZW0tYnJvd24nLCB0cnVlLCBmYWxzZSkgaXMgJ3JnYigxNzIsIDE0MiwgMTA0KScKK1BBU1MgaW50
ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0taW5kaWdvJywgdHJ1
ZSwgZmFsc2UpIGlzICdyZ2IoOTQsIDkyLCAyMzApJworUEFTUyBpbnRlcm5hbHMuc3lzdGVtQ29s
b3JGb3JDU1NWYWx1ZSgnLWFwcGxlLXN5c3RlbS10ZWFsJywgdHJ1ZSwgZmFsc2UpIGlzICdyZ2Io
MTAwLCAyMTAsIDI1NSknCitQQVNTIGludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCct
YXBwbGUtd2lyZWxlc3MtcGxheWJhY2stdGFyZ2V0LWFjdGl2ZScsIHRydWUsIGZhbHNlKSBpcyAn
cmdiKDEwLCAxMzIsIDI1NSknCitQQVNTIGludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVl
KCctYXBwbGUtc3lzdGVtLWJsdWUnLCB0cnVlLCBmYWxzZSkgaXMgJ3JnYigxMCwgMTMyLCAyNTUp
JworUEFTUyBpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZSgnLWFwcGxlLXN5c3RlbS1n
cmF5JywgdHJ1ZSwgZmFsc2UpIGlzICdyZ2IoMTQyLCAxNDIsIDE0NyknCitQQVNTIGludGVybmFs
cy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLWdyZWVuJywgdHJ1ZSwgZmFs
c2UpIGlzICdyZ2IoNDgsIDIwOSwgODgpJworUEFTUyBpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JD
U1NWYWx1ZSgnLWFwcGxlLXN5c3RlbS1vcmFuZ2UnLCB0cnVlLCBmYWxzZSkgaXMgJ3JnYigyNTUs
IDE1OSwgMTApJworUEFTUyBpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZSgnLWFwcGxl
LXN5c3RlbS1waW5rJywgdHJ1ZSwgZmFsc2UpIGlzICdyZ2IoMjU1LCA1NSwgOTUpJworUEFTUyBp
bnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZSgnLWFwcGxlLXN5c3RlbS1wdXJwbGUnLCB0
cnVlLCBmYWxzZSkgaXMgJ3JnYigxOTEsIDkwLCAyNDIpJworUEFTUyBpbnRlcm5hbHMuc3lzdGVt
Q29sb3JGb3JDU1NWYWx1ZSgnLWFwcGxlLXN5c3RlbS1yZWQnLCB0cnVlLCBmYWxzZSkgaXMgJ3Jn
YigyNTUsIDY5LCA1OCknCitQQVNTIGludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCct
YXBwbGUtc3lzdGVtLXllbGxvdycsIHRydWUsIGZhbHNlKSBpcyAncmdiKDI1NSwgMjE0LCAxMCkn
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW9zL3N5c3RlbS1jb2xvci1mb3ItY3NzLXZhbHVlLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW9zL3N5c3RlbS1jb2xvci1m
b3ItY3NzLXZhbHVlLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
aW9zL3N5c3RlbS1jb2xvci1mb3ItY3NzLXZhbHVlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw0OSBAQAorPGh0bWw+Cis8aGVhZCBpZD0iaGVhZCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5ID4K
KzxzY3JpcHQ+CisgICAgCitkZXNjcmlwdGlvbigiVGVzdCB0aGF0IHN5c3RlbSBjb2xvcnMgZm9y
IENTUyB2YWx1ZXMgYXJlIGNvcnJlY3QuIik7CisKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7Cisg
ICAgc2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lz
dGVtLWxhYmVsJywgdHJ1ZSwgZmFsc2UpIiwgIidyZ2IoMjU1LCAyNTUsIDI1NSknIik7CisgICAg
c2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVt
LWhlYWRlci10ZXh0JywgdHJ1ZSwgZmFsc2UpIiwgIidyZ2IoMjU1LCAyNTUsIDI1NSknIik7Cisg
ICAgc2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lz
dGVtLXNlY29uZGFyeS1sYWJlbCcsIHRydWUsIGZhbHNlKSIsICIncmdiYSgyMzUsIDIzNSwgMjQ1
LCAwLjYpJyIpOworICAgIHNob3VsZEJlKCJpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1
ZSgnLWFwcGxlLXN5c3RlbS10ZXJ0aWFyeS1sYWJlbCcsIHRydWUsIGZhbHNlKSIsICIncmdiYSgy
MzUsIDIzNSwgMjQ1LCAwLjI5OCknIik7CisgICAgc2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1D
b2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLXF1YXRlcm5hcnktbGFiZWwnLCB0cnVlLCBm
YWxzZSkiLCAiJ3JnYmEoMjM1LCAyMzUsIDI0NSwgMC4xOCknIik7CisgICAgc2hvdWxkQmUoImlu
dGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLXBsYWNlaG9sZGVy
LXRleHQnLCB0cnVlLCBmYWxzZSkiLCAiJ3JnYmEoMjM1LCAyMzUsIDI0NSwgMC4yOTgpJyIpOwor
ICAgIHNob3VsZEJlKCJpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZSgnLXdlYmtpdC1j
b250cm9sLWJhY2tncm91bmQnLCB0cnVlLCBmYWxzZSkiLCAiJ3JnYigwLCAwLCAwKSciKTsKKyAg
ICBzaG91bGRCZSgiaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0
ZW0tY29udHJvbC1iYWNrZ3JvdW5kJywgdHJ1ZSwgZmFsc2UpIiwgIidyZ2IoMCwgMCwgMCknIik7
CisgICAgc2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUt
c3lzdGVtLXRleHQtYmFja2dyb3VuZCcsIHRydWUsIGZhbHNlKSIsICIncmdiKDAsIDAsIDApJyIp
OworICAgIHNob3VsZEJlKCJpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZSgnLWFwcGxl
LXN5c3RlbS1iYWNrZ3JvdW5kJywgdHJ1ZSwgZmFsc2UpIiwgIidyZ2IoMCwgMCwgMCknIik7Cisg
ICAgc2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lz
dGVtLXNlY29uZGFyeS1iYWNrZ3JvdW5kJywgdHJ1ZSwgZmFsc2UpIiwgIidyZ2IoMjgsIDI4LCAz
MCknIik7CisgICAgc2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCct
YXBwbGUtc3lzdGVtLXRlcnRpYXJ5LWJhY2tncm91bmQnLCB0cnVlLCBmYWxzZSkiLCAiJ3JnYig0
NCwgNDQsIDQ2KSciKTsKKyAgICBzaG91bGRCZSgiaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NT
VmFsdWUoJy1hcHBsZS1zeXN0ZW0tZ3JvdXBlZC1iYWNrZ3JvdW5kJywgdHJ1ZSwgZmFsc2UpIiwg
IidyZ2IoMCwgMCwgMCknIik7CisgICAgc2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1Db2xvckZv
ckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLXNlY29uZGFyeS1ncm91cGVkLWJhY2tncm91bmQnLCB0
cnVlLCBmYWxzZSkiLCAiJ3JnYigyOCwgMjgsIDMwKSciKTsKKyAgICBzaG91bGRCZSgiaW50ZXJu
YWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0tdGVydGlhcnktZ3JvdXBl
ZC1iYWNrZ3JvdW5kJywgdHJ1ZSwgZmFsc2UpIiwgIidyZ2IoNDQsIDQ0LCA0NiknIik7CisgICAg
c2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVt
LWdyaWQnLCB0cnVlLCBmYWxzZSkiLCAiJ3JnYmEoODQsIDg0LCA4OCwgMC42KSciKTsKKyAgICBz
aG91bGRCZSgiaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0t
c2VwYXJhdG9yJywgdHJ1ZSwgZmFsc2UpIiwgIidyZ2JhKDg0LCA4NCwgODgsIDAuNiknIik7Cisg
ICAgc2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lz
dGVtLWNvbnRhaW5lci1ib3JkZXInLCB0cnVlLCBmYWxzZSkiLCAiJ3JnYmEoODQsIDg0LCA4OCwg
MC42KSciKTsKKyAgICBzaG91bGRCZSgiaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUo
Jy1hcHBsZS1zeXN0ZW0tc2VsZWN0ZWQtY29udGVudC1iYWNrZ3JvdW5kJywgdHJ1ZSwgZmFsc2Up
IiwgIidyZ2IoNTgsIDU4LCA2MCknIik7CisgICAgc2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1D
b2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLXVuZW1waGFzaXplZC1zZWxlY3RlZC1jb250
ZW50LWJhY2tncm91bmQnLCB0cnVlLCBmYWxzZSkiLCAiJ3JnYig1OCwgNTgsIDYwKSciKTsKKyAg
ICBzaG91bGRCZSgiaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0
ZW0tYnJvd24nLCB0cnVlLCBmYWxzZSkiLCAiJ3JnYigxNzIsIDE0MiwgMTA0KSciKTsKKyAgICBz
aG91bGRCZSgiaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0t
aW5kaWdvJywgdHJ1ZSwgZmFsc2UpIiwgIidyZ2IoOTQsIDkyLCAyMzApJyIpOworICAgIHNob3Vs
ZEJlKCJpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZSgnLWFwcGxlLXN5c3RlbS10ZWFs
JywgdHJ1ZSwgZmFsc2UpIiwgIidyZ2IoMTAwLCAyMTAsIDI1NSknIik7CisgICAgc2hvdWxkQmUo
ImludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtd2lyZWxlc3MtcGxheWJh
Y2stdGFyZ2V0LWFjdGl2ZScsIHRydWUsIGZhbHNlKSIsICIncmdiKDEwLCAxMzIsIDI1NSknIik7
CisgICAgc2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUt
c3lzdGVtLWJsdWUnLCB0cnVlLCBmYWxzZSkiLCAiJ3JnYigxMCwgMTMyLCAyNTUpJyIpOworICAg
IHNob3VsZEJlKCJpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZSgnLWFwcGxlLXN5c3Rl
bS1ncmF5JywgdHJ1ZSwgZmFsc2UpIiwgIidyZ2IoMTQyLCAxNDIsIDE0NyknIik7CisgICAgc2hv
dWxkQmUoImludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLWdy
ZWVuJywgdHJ1ZSwgZmFsc2UpIiwgIidyZ2IoNDgsIDIwOSwgODgpJyIpOworICAgIHNob3VsZEJl
KCJpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZSgnLWFwcGxlLXN5c3RlbS1vcmFuZ2Un
LCB0cnVlLCBmYWxzZSkiLCAiJ3JnYigyNTUsIDE1OSwgMTApJyIpOworICAgIHNob3VsZEJlKCJp
bnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZSgnLWFwcGxlLXN5c3RlbS1waW5rJywgdHJ1
ZSwgZmFsc2UpIiwgIidyZ2IoMjU1LCA1NSwgOTUpJyIpOworICAgIHNob3VsZEJlKCJpbnRlcm5h
bHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZSgnLWFwcGxlLXN5c3RlbS1wdXJwbGUnLCB0cnVlLCBm
YWxzZSkiLCAiJ3JnYigxOTEsIDkwLCAyNDIpJyIpOworICAgIHNob3VsZEJlKCJpbnRlcm5hbHMu
c3lzdGVtQ29sb3JGb3JDU1NWYWx1ZSgnLWFwcGxlLXN5c3RlbS1yZWQnLCB0cnVlLCBmYWxzZSki
LCAiJ3JnYigyNTUsIDY5LCA1OCknIik7CisgICAgc2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1D
b2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLXllbGxvdycsIHRydWUsIGZhbHNlKSIsICIn
cmdiKDI1NSwgMjE0LCAxMCknIik7Cit9CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwkocmV2
aXNpb24gMjU0MzE0KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlv
bnMJKHdvcmtpbmcgY29weSkKQEAgLTEzLDYgKzEzLDcgQEAgbWVkaWEvaW9zIFsgUGFzcyBdCiBx
dWlja2xvb2sgWyBQYXNzIF0KIHN3aXBlIFsgUGFzcyBdCiAKK2Zhc3QvY3NzL2lvcyBbIFBhc3Mg
XQogZmFzdC9tZWRpYS9pb3MgWyBQYXNzIF0KIAogZmFzdC9mb3Jtcy90ZXh0YXJlYS9pb3MgWyBQ
YXNzIF0KQEAgLTM0NTgsNCArMzQ1OSw0IEBAIHdlYmtpdC5vcmcvYi8yMDM0MTYgaW1wb3J0ZWQv
dzNjL3dlYi1wbGEKIAogd2Via2l0Lm9yZy9iLzIwNDc1NyBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9yZXF1ZXN0L2Rlc3RpbmF0aW9uL2ZldGNoLWRlc3RpbmF0aW9u
LW5vLWxvYWQtZXZlbnQuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcv
Yi8yMDUzMDkgc2Nyb2xsaW5nY29vcmRpbmF0b3IvaW9zL3Njcm9sbC1wb3NpdGlvbi1hZnRlci1y
ZWF0dGFjaC5odG1sIFsgSW1hZ2Vvbmx5RmFpbHVyZSBdClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQord2Via2l0Lm9yZy9iLzIwNTMwOSBzY3JvbGxpbmdjb29yZGluYXRvci9pb3Mvc2Nyb2xs
LXBvc2l0aW9uLWFmdGVyLXJlYXR0YWNoLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
</data>
<flag name="commit-queue"
          id="403188"
          type_id="3"
          status="-"
          setter="pvollan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387385</attachid>
            <date>2020-01-10 15:35:53 -0800</date>
            <delta_ts>2020-01-10 15:35:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204314-20200110153552.patch</filename>
            <type>text/plain</type>
            <size>39629</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDM3MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDIwLTAxLTA5ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBNYXAgQ1NTIHZhbHVlIElE
IHRvIHN5c3RlbSBjb2xvciBpbiB0aGUgVUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MzE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RGVhbiBKYWNrc29uLgorCisgICAgICAgIEN1cnJlbnRseSwgUmVuZGVyVGhlbWVJT1MgaXMgbWFw
cGluZyBDU1MgdmFsdWUgSURzIHRvIHN5c3RlbSBjb2xvcnMgaW4gdGhlIFdlYkNvbnRlbnQgcHJv
Y2Vzcy4gVGhpcyBtYXBwaW5nIGxlYWRzIHRvCisgICAgICAgIGludm9raW5nIHNlbGVjdG9ycyBv
biBVSVRyYWl0Q29sbGVjdGlvbiBhbmQgVUlDb2xvciwgd2hpY2ggd2lsbCBzZW5kIG1lc3NhZ2Vz
IHRvIHRoZSBydW5uaW5nYm9hcmQgZGFlbW9uLiBTaW5jZSB3ZQorICAgICAgICB3aWxsIGJlIGJs
b2NraW5nIGFjY2VzcyB0byB0aGlzIGRhZW1vbiBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzLCB0
aGlzIG1hcHBpbmcgc2hvdWxkIGJlIG1vdmVkIHRvIHRoZSBVSSBwcm9jZXNzLgorICAgICAgICBU
aGUgVUkgcHJvY2VzcyB3aWxsIGNyZWF0ZSBhIG1hcHBpbmcgYmV0d2VlbiBDU1MgdmFsdWUgSURz
IGFuZCBzeXN0ZW0gY29sb3JzLCBhbmQgcGFzcyBpdCB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNz
LgorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL2lvcy9zeXN0ZW0tY29sb3ItZm9yLWNzcy12YWx1
ZS5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogY3NzL1N0eWxlQ29sb3IuaDoKKyAgICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VyLmg6CisgICAgICAgICogcmVuZGVyaW5nL0NTU1ZhbHVlS2V5Lmg6IEFkZGVkLgor
ICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1
ZUtleTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlS2V5OjpkZWNv
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWVLZXk6Omhhc2ggY29uc3QpOgorICAgICAg
ICAoV1RGOjpDU1NWYWx1ZUtleUhhc2g6Omhhc2gpOgorICAgICAgICAoV1RGOjpDU1NWYWx1ZUtl
eUhhc2g6OmVxdWFsKToKKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpDU1NWYWx1
ZUtleT46OmVtcHR5VmFsdWUpOgorICAgICAgICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OkNT
U1ZhbHVlS2V5Pjo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdURjo6SGFzaFRy
YWl0czxXZWJDb3JlOjpDU1NWYWx1ZUtleT46OmlzRGVsZXRlZFZhbHVlKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpjc3NWYWx1ZUlEU2VsZWN0b3JMaXN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OnN5c3RlbUNvbG9yRnJvbUNTU1ZhbHVlSUQpOgorICAgICAgICAoV2Vi
Q29yZTo6Z2xvYmFsQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lSU9TOjpnZXRPckNyZWF0ZUNTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6c2V0Q1NTVmFsdWVUb1N5c3RlbUNvbG9y
TWFwKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpzeXN0ZW1Db2xvciBjb25z
dCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjpzeXN0ZW1Db2xvckZvckNTU1ZhbHVlKToKKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAyMC0wMS0x
MCAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJBdXRo
bl0gU3VwcG9ydCBhdXRoZW50aWNhdG9yR2V0TmV4dEFzc2VydGlvbgpJbmRleDogU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
MjU0MzcwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC00ODAzLDYgKzQ4MDMsNyBAQAogCQlFM0IyRjBFRDFEN0Y0
Q0EzMDBCMEM5RDEgLyogTG9hZGFibGVTY3JpcHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQjJGMEU3MUQ3RjM1RUMwMEIwQzlEMSAvKiBMb2FkYWJs
ZVNjcmlwdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUUzQjJGMEVFMUQ3RjRDQTkwMEIwQzlEMSAvKiBMb2FkYWJsZVNjcmlwdENsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCMkYwRTgxRDdG
MzVFQzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTNCMkYwRjAxRDdGNENCNTAwQjBDOUQx
IC8qIExvYWRhYmxlQ2xhc3NpY1NjcmlwdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTNCMkYwRTQxRDdGMzVFQzAwQjBDOUQxIC8qIExvYWRhYmxlQ2xh
c3NpY1NjcmlwdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCUUzQkJDMjQ3MjM4MzU1MjYwMDZFQzM5RiAvKiBDU1NWYWx1ZUtleS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNCQkMyNDUyMzgzNTUxQTAw
NkVDMzlGIC8qIENTU1ZhbHVlS2V5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJRTNDOTlBMDkxREMzRDQxQzAwNzk0QUQzIC8qIERPTUpJVENoZWNr
RE9NLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFM0M5
OUEwODFEQzNENDE3MDA3OTRBRDMgLyogRE9NSklUQ2hlY2tET00uaCAqLzsgfTsKIAkJRTNDOUFF
Q0IyMTEzMTQ5OTAwNDE5QjkyIC8qIEpTTWljcm90YXNrQ2FsbGJhY2suaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzQzlBRUM5MjExMzE0NzQwMDQxOUI5
MiAvKiBKU01pY3JvdGFza0NhbGxiYWNrLmggKi87IH07CiAJCUUzRTRFMkE4MUUzQjE3MTAwMDIz
QkI4QSAvKiBTY3JpcHRFbGVtZW50Q2FjaGVkU2NyaXB0RmV0Y2hlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTNFNEUyQTYxRTNCMTZGQzAwMjNCQjhB
IC8qIFNjcmlwdEVsZW1lbnRDYWNoZWRTY3JpcHRGZXRjaGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1MTUyLDYgKzE1MTUzLDcgQEAKIAkJ
RTNCMkYwRTgxRDdGMzVFQzAwQjBDOUQxIC8qIExvYWRhYmxlU2NyaXB0Q2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvYWRhYmxlU2NyaXB0Q2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQjJGMEU5MUQ3RjNEM0MwMEIwQzlEMSAvKiBMb2Fk
YWJsZVNjcmlwdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2Fk
YWJsZVNjcmlwdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzQjdDMDYyMURD
MzQxNUEwMDFGQjBCOCAvKiBKU0RvY3VtZW50RE9NSklULmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEpTRG9jdW1lbnRET01KSVQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFM0JCQzI0NTIzODM1NTFBMDA2RUMzOUYgLyogQ1NTVmFsdWVLZXkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTVmFsdWVLZXkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTNCQzgyNzMyMjUzMDIyMTAwNTI3NkRFIC8qIE5vZGVMaXN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5vZGVMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTNCRjE5RTEyMkFGMkY1NTAwOUM5OTI2IC8qIFhNTEh0dHBSZXF1ZXN0UHJv
Z3Jlc3NFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFM0JGMTlFMzIyQUYyRkE1
MDA5Qzk5MjYgLyogT3ZlcmNvbnN0cmFpbmVkRXJyb3JFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBPdmVyY29uc3RyYWluZWRFcnJvckV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI3NjgxLDYgKzI3NjgzLDcgQEAKIAkJCQk5MzkyRjE0QjBBRDE4NjFCMDA2OTFC
RDQgLyogQ291bnRlck5vZGUuaCAqLywKIAkJCQkwRjUzRkI4MTIxM0IxQkI4MDBDNDBEMzQgLyog
Q1NTRmlsdGVyLmNwcCAqLywKIAkJCQkwRjUzRkI4MzIxM0IxQkI4MDBDNDBEMzQgLyogQ1NTRmls
dGVyLmggKi8sCisJCQkJRTNCQkMyNDUyMzgzNTUxQTAwNkVDMzlGIC8qIENTU1ZhbHVlS2V5Lmgg
Ki8sCiAJCQkJQThDRkY2Q0EwQTE1NjFDRDAwMEE0MjM0IC8qIEVsbGlwc2lzQm94LmNwcCAqLywK
IAkJCQlBOENGRjZCRDBBMTU2MTE4MDAwQTQyMzQgLyogRWxsaXBzaXNCb3guaCAqLywKIAkJCQlF
NEE4RDIxNTIyNTc4REEwMDBBODQ2M0MgLyogRXZlbnRSZWdpb24uY3BwICovLApAQCAtMjk1NzAs
NiArMjk1NzMsNyBAQAogCQkJCUREN0NERjI1MEEyM0NGOTgwMDA2OTkyOCAvKiBDU1NVbmtub3du
UnVsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3RDhGRjAxQkQwM0I2NDAwRkZFNTQwIC8qIENT
U1Vuc2V0VmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEU2Q0VFMEExOTg5Q0EwMDdGQjhD
NSAvKiBDU1NWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTNCQkMyNDcyMzgzNTUyNjAwNkVD
MzlGIC8qIENTU1ZhbHVlS2V5LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTY1ODE1MTA5RDEzMDQz
MDAwRTYxRDcgLyogQ1NTVmFsdWVLZXl3b3Jkcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRTZD
RTkwQTE5ODlDQTAwN0ZCOEM1IC8qIENTU1ZhbHVlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RTQ5QkQ5RkExMzFGRDJFRDAwM0M1NkYwIC8qIENTU1ZhbHVlUG9vbC5oIGluIEhlYWRlcnMgKi8s
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVDb2xvci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUNvbG9yLmgJKHJldmlzaW9uIDI1NDM3MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZUNvbG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIENvbG9yIGNvbG9yRnJvbUtleXdvcmQoQ1NTVmFsdWVJ
RCwgT3B0aW9uU2V0PE9wdGlvbnM+KTsKICAgICBzdGF0aWMgYm9vbCBpc0NvbG9yS2V5d29yZChD
U1NWYWx1ZUlEKTsKLSAgICBzdGF0aWMgYm9vbCBpc1N5c3RlbUNvbG9yKENTU1ZhbHVlSUQpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGlzU3lzdGVtQ29sb3IoQ1NTVmFsdWVJRCk7
CiAKIHByaXZhdGU6CiAgICAgQ29sb3IgbV9jb2xvcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmgJKHJldmlzaW9uIDI1NDM3MCkKKysrIFNv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiB9OwogCiBDU1NQcm9wZXJ0eUlEIGNzc1By
b3BlcnR5SUQoU3RyaW5nVmlldyk7Ci1DU1NWYWx1ZUlEIGNzc1ZhbHVlS2V5d29yZElEKFN0cmlu
Z1ZpZXcpOworV0VCQ09SRV9FWFBPUlQgQ1NTVmFsdWVJRCBjc3NWYWx1ZUtleXdvcmRJRChTdHJp
bmdWaWV3KTsKIGJvb2wgaXNDdXN0b21Qcm9wZXJ0eU5hbWUoY29uc3QgU3RyaW5nJik7CiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NT
U1ZhbHVlS2V5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU1Zh
bHVlS2V5LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NTU1Zh
bHVlS2V5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdHJ1Y3QgQ1NTVmFsdWVLZXkgeworCisgICAgdW5zaWduZWQgaGFzaCgp
IGNvbnN0OworCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxD
U1NWYWx1ZUtleT4gZGVjb2RlKERlY29kZXImKTsKKworICAgIHVuc2lnbmVkIGNzc1ZhbHVlSUQ7
CisgICAgYm9vbCB1c2VEYXJrQXBwZWFyYW5jZTsKKyAgICBib29sIHVzZUVsZXZhdGVkVXNlcklu
dGVyZmFjZUxldmVsOworfTsKKworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDU1NWYWx1
ZUtleSYgYSwgY29uc3QgQ1NTVmFsdWVLZXkmIGIpCit7CisgICAgcmV0dXJuIGEuY3NzVmFsdWVJ
RCA9PSBiLmNzc1ZhbHVlSUQgJiYgYS51c2VEYXJrQXBwZWFyYW5jZSA9PSBiLnVzZURhcmtBcHBl
YXJhbmNlICYmIGEudXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgPT0gYi51c2VFbGV2YXRl
ZFVzZXJJbnRlcmZhY2VMZXZlbDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQg
Q1NTVmFsdWVLZXk6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29k
ZXIgPDwgY3NzVmFsdWVJRDsKKyAgICBlbmNvZGVyIDw8IHVzZURhcmtBcHBlYXJhbmNlOworICAg
IGVuY29kZXIgPDwgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWw7Cit9CisKK3RlbXBsYXRl
PGNsYXNzIERlY29kZXI+CitPcHRpb25hbDxDU1NWYWx1ZUtleT4gQ1NTVmFsdWVLZXk6OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIE9wdGlvbmFsPHVuc2lnbmVkPiBjc3NWYWx1ZUlE
OworICAgIGRlY29kZXIgPj4gY3NzVmFsdWVJRDsKKyAgICBpZiAoIWNzc1ZhbHVlSUQpCisgICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgT3B0aW9uYWw8Ym9vbD4gdXNlRGFya0FwcGVh
cmFuY2U7CisgICAgZGVjb2RlciA+PiB1c2VEYXJrQXBwZWFyYW5jZTsKKyAgICBpZiAoIXVzZURh
cmtBcHBlYXJhbmNlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIE9wdGlvbmFs
PGJvb2w+IHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsOworICAgIGRlY29kZXIgPj4gdXNl
RWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWw7CisgICAgaWYgKCF1c2VFbGV2YXRlZFVzZXJJbnRl
cmZhY2VMZXZlbCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICByZXR1cm4geyB7
IFdURk1vdmUoKmNzc1ZhbHVlSUQpLCBXVEZNb3ZlKCp1c2VEYXJrQXBwZWFyYW5jZSksIFdURk1v
dmUoKnVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKSB9IH07Cit9CisKK2lubGluZSB1bnNp
Z25lZCBDU1NWYWx1ZUtleTo6aGFzaCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGNzc1ZhbHVlSUQ7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3N0cnVj
dCBDU1NWYWx1ZUtleUhhc2ggeworICAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0IFdlYkNv
cmU6OkNTU1ZhbHVlS2V5JiBrZXkpIHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KKyAgICBzdGF0aWMg
Ym9vbCBlcXVhbChjb25zdCBXZWJDb3JlOjpDU1NWYWx1ZUtleSYgYSwgY29uc3QgV2ViQ29yZTo6
Q1NTVmFsdWVLZXkmIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQorICAgIHN0YXRpYyBjb25zdCBib29s
IHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKK307CisKK3RlbXBsYXRlPD4g
c3RydWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6Q1NTVmFsdWVLZXk+IDogR2VuZXJpY0hhc2hUcmFp
dHM8V2ViQ29yZTo6Q1NTVmFsdWVLZXk+IHsKKyAgICBzdGF0aWMgV2ViQ29yZTo6Q1NTVmFsdWVL
ZXkgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIFdlYkNvcmU6OkNTU1ZhbHVlS2V5IHsgV2ViQ29yZTo6
Q1NTVmFsdWVJbnZhbGlkLCBmYWxzZSwgZmFsc2V9OyB9CisgICAgc3RhdGljIHZvaWQgY29uc3Ry
dWN0RGVsZXRlZFZhbHVlKFdlYkNvcmU6OkNTU1ZhbHVlS2V5JiBzbG90KSB7IHNsb3QgPSBXZWJD
b3JlOjpDU1NWYWx1ZUtleSB7IFdlYkNvcmU6OkNTU1ZhbHVlSW52YWxpZCwgdHJ1ZSwgdHJ1ZX07
fQorICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdlYkNvcmU6OkNTU1ZhbHVl
S2V5JiBzbG90KSB7IHJldHVybiBzbG90LmNzc1ZhbHVlSUQgPT0gV2ViQ29yZTo6Q1NTVmFsdWVJ
bnZhbGlkICYmIHNsb3QudXNlRGFya0FwcGVhcmFuY2UgJiYgc2xvdC51c2VFbGV2YXRlZFVzZXJJ
bnRlcmZhY2VMZXZlbDsgfQorfTsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRGVmYXVsdEhhc2g8V2Vi
Q29yZTo6Q1NTVmFsdWVLZXk+IHsKKyAgICB0eXBlZGVmIENTU1ZhbHVlS2V5SGFzaCBIYXNoOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MuaAkocmV2aXNpb24gMjU0MzcwKQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lSU9TLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAK
IAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKKyNpbmNsdWRlICJDU1NWYWx1ZUtleS5oIgog
I2luY2x1ZGUgIlJlbmRlclRoZW1lQ29jb2EuaCIKIAogI2lmIFVTRShTWVNURU1fUFJFVklFVykK
QEAgLTU5LDYgKzYwLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHBhaW50U3lzdGVtUHJldmlld0Jh
ZGdlKEltYWdlJiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7
CiAjZW5kaWYKIAorICAgIHVzaW5nIENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCA9IEhhc2hNYXA8
Q1NTVmFsdWVLZXksIENvbG9yPjsKKworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBjb25zdCBD
U1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAmIGNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpOworICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcChD
U1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAmJik7CisgICAgCiBwcm90ZWN0ZWQ6CiAgICAgTGVuZ3Ro
Qm94IHBvcHVwSW50ZXJuYWxQYWRkaW5nQm94KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJ
T1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
SU9TLm1tCShyZXZpc2lvbiAyNTQzNzApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQg
IkJpdG1hcEltYWdlLmgiCiAjaW1wb3J0ICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2ltcG9ydCAi
Q1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YS5oIgorI2ltcG9ydCAiQ1NTVmFsdWVLZXkuaCIKICNp
bXBvcnQgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbXBvcnQgIkNvbG9ySU9TLmgiCiAjaW1wb3J0
ICJEYXRlQ29tcG9uZW50cy5oIgpAQCAtMTQzMCw2ICsxNDMxLDExMyBAQCBTdHJpbmcgUmVuZGVy
VGhlbWVJT1M6Om1lZGlhQ29udHJvbHNCYXNlCiAKICNlbmRpZiAvLyBFTkFCTEUoVklERU8pCiAK
K3N0cnVjdCBDU1NWYWx1ZUlEQW5kU2VsZWN0b3IgeworICAgIENTU1ZhbHVlSUQgY3NzVmFsdWVJ
RDsKKyAgICBTRUwgc2VsZWN0b3I7Cit9OworCitzdGF0aWMgY29uc3QgVmVjdG9yPENTU1ZhbHVl
SURBbmRTZWxlY3Rvcj4mIGNzc1ZhbHVlSURTZWxlY3Rvckxpc3QoKQoreworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxWZWN0b3I8Q1NTVmFsdWVJREFuZFNlbGVjdG9yPj4gY3NzVmFsdWVJRFNl
bGVjdG9yTGlzdDsKKworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBpbml0aWFsaXplT25jZTsK
KyAgICBzdGQ6OmNhbGxfb25jZSgKKyAgICAgICAgaW5pdGlhbGl6ZU9uY2UsCisgICAgICAgIFtd
IHsKKyAgICAgICAgY3NzVmFsdWVJRFNlbGVjdG9yTGlzdC5nZXQoKSA9IFZlY3RvcihzdGQ6Omlu
aXRpYWxpemVyX2xpc3Q8Q1NTVmFsdWVJREFuZFNlbGVjdG9yPiB7CisjaWYgSEFWRShPU19EQVJL
X01PREVfU1VQUE9SVCkKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVUZXh0LCBAc2VsZWN0b3IobGFi
ZWxDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUxhYmVsLCBAc2Vs
ZWN0b3IobGFiZWxDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUhl
YWRlclRleHQsIEBzZWxlY3RvcihsYWJlbENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1
ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5TGFiZWwsIEBzZWxlY3RvcihzZWNvbmRhcnlMYWJlbENvbG9y
KSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtVGVydGlhcnlMYWJlbCwgQHNl
bGVjdG9yKHRlcnRpYXJ5TGFiZWxDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBs
ZVN5c3RlbVF1YXRlcm5hcnlMYWJlbCwgQHNlbGVjdG9yKHF1YXRlcm5hcnlMYWJlbENvbG9yKSB9
LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtUGxhY2Vob2xkZXJUZXh0LCBAc2Vs
ZWN0b3IocGxhY2Vob2xkZXJUZXh0Q29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlV2Vi
a2l0Q29udHJvbEJhY2tncm91bmQsIEBzZWxlY3RvcihzeXN0ZW1CYWNrZ3JvdW5kQ29sb3IpIH0s
CisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1Db250cm9sQmFja2dyb3VuZCwgQHNl
bGVjdG9yKHN5c3RlbUJhY2tncm91bmRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVB
cHBsZVN5c3RlbVRleHRCYWNrZ3JvdW5kLCBAc2VsZWN0b3Ioc3lzdGVtQmFja2dyb3VuZENvbG9y
KSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtQmFja2dyb3VuZCwgQHNlbGVj
dG9yKHN5c3RlbUJhY2tncm91bmRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBs
ZVN5c3RlbVNlY29uZGFyeUJhY2tncm91bmQsIEBzZWxlY3RvcihzZWNvbmRhcnlTeXN0ZW1CYWNr
Z3JvdW5kQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1UZXJ0aWFy
eUJhY2tncm91bmQsIEBzZWxlY3Rvcih0ZXJ0aWFyeVN5c3RlbUJhY2tncm91bmRDb2xvcikgfSwK
KyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUdyb3VwZWRCYWNrZ3JvdW5kLCBAc2Vs
ZWN0b3Ioc3lzdGVtR3JvdXBlZEJhY2tncm91bmRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NT
VmFsdWVBcHBsZVN5c3RlbVNlY29uZGFyeUdyb3VwZWRCYWNrZ3JvdW5kLCBAc2VsZWN0b3Ioc2Vj
b25kYXJ5U3lzdGVtR3JvdXBlZEJhY2tncm91bmRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NT
VmFsdWVBcHBsZVN5c3RlbVRlcnRpYXJ5R3JvdXBlZEJhY2tncm91bmQsIEBzZWxlY3Rvcih0ZXJ0
aWFyeVN5c3RlbUdyb3VwZWRCYWNrZ3JvdW5kQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1Zh
bHVlQXBwbGVTeXN0ZW1HcmlkLCBAc2VsZWN0b3Ioc2VwYXJhdG9yQ29sb3IpIH0sCisgICAgICAg
ICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1TZXBhcmF0b3IsIEBzZWxlY3RvcihzZXBhcmF0b3JD
b2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUNvbnRhaW5lckJvcmRl
ciwgQHNlbGVjdG9yKHNlcGFyYXRvckNvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFw
cGxlU3lzdGVtU2VsZWN0ZWRDb250ZW50QmFja2dyb3VuZCwgQHNlbGVjdG9yKHRhYmxlQ2VsbERl
ZmF1bHRTZWxlY3Rpb25UaW50Q29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVT
eXN0ZW1VbmVtcGhhc2l6ZWRTZWxlY3RlZENvbnRlbnRCYWNrZ3JvdW5kLCBAc2VsZWN0b3IodGFi
bGVDZWxsRGVmYXVsdFNlbGVjdGlvblRpbnRDb2xvcikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFs
dWVBcHBsZVN5c3RlbUJyb3duLCBAc2VsZWN0b3Ioc3lzdGVtQnJvd25Db2xvcikgfSwKKyAgICAg
ICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUluZGlnbywgQHNlbGVjdG9yKHN5c3RlbUluZGln
b0NvbG9yKSB9LAorI2VuZGlmCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1UZWFs
LCBAc2VsZWN0b3Ioc3lzdGVtVGVhbENvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFw
cGxlV2lyZWxlc3NQbGF5YmFja1RhcmdldEFjdGl2ZSwgQHNlbGVjdG9yKHN5c3RlbUJsdWVDb2xv
cikgfSwKKyAgICAgICAgICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbUJsdWUsIEBzZWxlY3Rvcihz
eXN0ZW1CbHVlQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1HcmF5
LCBAc2VsZWN0b3Ioc3lzdGVtR3JheUNvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFw
cGxlU3lzdGVtR3JlZW4sIEBzZWxlY3RvcihzeXN0ZW1HcmVlbkNvbG9yKSB9LAorICAgICAgICAg
ICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtT3JhbmdlLCBAc2VsZWN0b3Ioc3lzdGVtT3JhbmdlQ29s
b3IpIH0sCisgICAgICAgICAgICB7IENTU1ZhbHVlQXBwbGVTeXN0ZW1QaW5rLCBAc2VsZWN0b3Io
c3lzdGVtUGlua0NvbG9yKSB9LAorICAgICAgICAgICAgeyBDU1NWYWx1ZUFwcGxlU3lzdGVtUHVy
cGxlLCBAc2VsZWN0b3Ioc3lzdGVtUHVycGxlQ29sb3IpIH0sCisgICAgICAgICAgICB7IENTU1Zh
bHVlQXBwbGVTeXN0ZW1SZWQsIEBzZWxlY3RvcihzeXN0ZW1SZWRDb2xvcikgfSwKKyAgICAgICAg
ICAgIHsgQ1NTVmFsdWVBcHBsZVN5c3RlbVllbGxvdywgQHNlbGVjdG9yKHN5c3RlbVllbGxvd0Nv
bG9yKSB9CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgcmV0dXJuIGNzc1ZhbHVlSURTZWxl
Y3Rvckxpc3Q7Cit9CisKK3N0YXRpYyBPcHRpb25hbDxDb2xvcj4gc3lzdGVtQ29sb3JGcm9tQ1NT
VmFsdWVJRChDU1NWYWx1ZUlEIGNzc1ZhbHVlSUQsIGJvb2wgdXNlRGFya0FwcGVhcmFuY2UsIGJv
b2wgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpCit7CisgICAgTG9jYWxDdXJyZW50VHJh
aXRDb2xsZWN0aW9uIGxvY2FsVHJhaXRDb2xsZWN0aW9uKHVzZURhcmtBcHBlYXJhbmNlLCB1c2VF
bGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCk7CisKKyAgICBhdXRvIGNzc0NvbG9yVG9TZWxlY3Rv
ciA9IFtjc3NWYWx1ZUlEXSAoKSAtPiBTRUwgeworICAgICAgICBmb3IgKGF1dG8mIGNzc1ZhbHVl
SURTZWxlY3RvciA6IGNzc1ZhbHVlSURTZWxlY3Rvckxpc3QoKSkgeworICAgICAgICAgICAgaWYg
KGNzc1ZhbHVlSURTZWxlY3Rvci5jc3NWYWx1ZUlEID09IGNzc1ZhbHVlSUQpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIGNzc1ZhbHVlSURTZWxlY3Rvci5zZWxlY3RvcjsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9OworCisgICAgaWYgKGF1dG8gc2VsZWN0b3IgPSBj
c3NDb2xvclRvU2VsZWN0b3IoKSkgeworICAgICAgICBpZiAoYXV0byBjb2xvciA9IHd0Zk9iakNN
c2dTZW5kPFVJQ29sb3IgKj4oUEFMOjpnZXRVSUNvbG9yQ2xhc3MoKSwgc2VsZWN0b3IpKQorICAg
ICAgICAgICAgcmV0dXJuIENvbG9yKGNvbG9yLkNHQ29sb3IsIENvbG9yOjpTZW1hbnRpYyk7Cisg
ICAgfQorICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKKworc3RhdGljIFJlbmRlclRoZW1l
SU9TOjpDU1NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAmIGdsb2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xv
ck1hcCgpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlbmRlclRoZW1lSU9TOjpDU1NW
YWx1ZVRvU3lzdGVtQ29sb3JNYXA+IGNvbG9yTWFwOworICAgIHJldHVybiBjb2xvck1hcDsKK30K
KworY29uc3QgUmVuZGVyVGhlbWVJT1M6OkNTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCYgUmVuZGVy
VGhlbWVJT1M6OmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCgpCit7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPENTU1ZhbHVlVG9TeXN0ZW1Db2xvck1hcD4gbWFwOworCisgICAgc3RhdGljIHN0
ZDo6b25jZV9mbGFnIG9uY2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKAorICAgICAgICBvbmNl
RmxhZywKKyAgICAgICAgW10geworICAgICAgICBmb3IgKGF1dG8mIGNzc1ZhbHVlSURTZWxlY3Rv
ciA6IGNzc1ZhbHVlSURTZWxlY3Rvckxpc3QoKSkgeworICAgICAgICAgICAgZm9yIChib29sIHVz
ZURhcmtBcHBlYXJhbmNlIDogeyBmYWxzZSwgdHJ1ZSB9KSB7CisgICAgICAgICAgICAgICAgZm9y
IChib29sIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsIDogeyBmYWxzZSwgdHJ1ZSB9KSB7
CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbG9yID0gc3lzdGVtQ29sb3JGcm9tQ1NT
VmFsdWVJRChjc3NWYWx1ZUlEU2VsZWN0b3IuY3NzVmFsdWVJRCwgdXNlRGFya0FwcGVhcmFuY2Us
IHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IG1hcC5nZXQoKS5hZGQoQ1NTVmFsdWVLZXkgeyBjc3NWYWx1ZUlEU2VsZWN0b3IuY3NzVmFsdWVJ
RCwgdXNlRGFya0FwcGVhcmFuY2UsIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsIH0sICpj
b2xvcik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAg
fSk7CisKKyAgICByZXR1cm4gbWFwOworfQorCit2b2lkIFJlbmRlclRoZW1lSU9TOjpzZXRDU1NW
YWx1ZVRvU3lzdGVtQ29sb3JNYXAoQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwJiYgY29sb3JNYXAp
Cit7CisgICAgZ2xvYmFsQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKCkgPSBXVEZNb3ZlKGNvbG9y
TWFwKTsKK30KKwogQ29sb3IgUmVuZGVyVGhlbWVJT1M6OnN5c3RlbUNvbG9yKENTU1ZhbHVlSUQg
Y3NzVmFsdWVJRCwgT3B0aW9uU2V0PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IG9wdGlvbnMpIGNvbnN0
CiB7CiAgICAgY29uc3QgYm9vbCBmb3JWaXNpdGVkTGluayA9IG9wdGlvbnMuY29udGFpbnMoU3R5
bGVDb2xvcjo6T3B0aW9uczo6Rm9yVmlzaXRlZExpbmspOwpAQCAtMTQ0Niw3OSArMTU1NCwxNSBA
QCBDb2xvciBSZW5kZXJUaGVtZUlPUzo6c3lzdGVtQ29sb3IoQ1NTVmFsCiAgICAgcmV0dXJuIGNh
Y2hlLnN5c3RlbVN0eWxlQ29sb3JzLmVuc3VyZShjc3NWYWx1ZUlELCBbdGhpcywgY3NzVmFsdWVJ
RCwgb3B0aW9uc10gKCkgLT4gQ29sb3IgewogICAgICAgICBjb25zdCBib29sIHVzZURhcmtBcHBl
YXJhbmNlID0gb3B0aW9ucy5jb250YWlucyhTdHlsZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBw
ZWFyYW5jZSk7CiAgICAgICAgIGNvbnN0IGJvb2wgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2
ZWwgPSBvcHRpb25zLmNvbnRhaW5zKFN0eWxlQ29sb3I6Ok9wdGlvbnM6OlVzZUVsZXZhdGVkVXNl
ckludGVyZmFjZUxldmVsKTsKLSAgICAgICAgTG9jYWxDdXJyZW50VHJhaXRDb2xsZWN0aW9uIGxv
Y2FsVHJhaXRDb2xsZWN0aW9uKHVzZURhcmtBcHBlYXJhbmNlLCB1c2VFbGV2YXRlZFVzZXJJbnRl
cmZhY2VMZXZlbCk7Ci0KLSAgICAgICAgYXV0byBjc3NDb2xvclRvU2VsZWN0b3IgPSBbY3NzVmFs
dWVJRF0gKCkgLT4gU0VMIHsKLSAgICAgICAgICAgIHN3aXRjaCAoY3NzVmFsdWVJRCkgewotI2lm
IEhBVkUoT1NfREFSS19NT0RFX1NVUFBPUlQpCi0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlVGV4
dDoKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUxhYmVsOgotICAgICAgICAg
ICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtSGVhZGVyVGV4dDoKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gQHNlbGVjdG9yKGxhYmVsQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFw
cGxlU3lzdGVtU2Vjb25kYXJ5TGFiZWw6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3Rv
cihzZWNvbmRhcnlMYWJlbENvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5
c3RlbVRlcnRpYXJ5TGFiZWw6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3Rvcih0ZXJ0
aWFyeUxhYmVsQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtUXVh
dGVybmFyeUxhYmVsOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3IocXVhdGVybmFy
eUxhYmVsQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtUGxhY2Vo
b2xkZXJUZXh0OgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3IocGxhY2Vob2xkZXJU
ZXh0Q29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVdlYmtpdENvbnRyb2xCYWNrZ3Jv
dW5kOgotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtQ29udHJvbEJhY2tncm91
bmQ6Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1UZXh0QmFja2dyb3VuZDoK
LSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUJhY2tncm91bmQ6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1CYWNrZ3JvdW5kQ29sb3IpOwotICAgICAg
ICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtU2Vjb25kYXJ5QmFja2dyb3VuZDoKLSAgICAg
ICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHNlY29uZGFyeVN5c3RlbUJhY2tncm91bmRDb2xv
cik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1UZXJ0aWFyeUJhY2tncm91
bmQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3Rvcih0ZXJ0aWFyeVN5c3RlbUJhY2tn
cm91bmRDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1Hcm91cGVk
QmFja2dyb3VuZDoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbUdyb3Vw
ZWRCYWNrZ3JvdW5kQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVt
U2Vjb25kYXJ5R3JvdXBlZEJhY2tncm91bmQ6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxl
Y3RvcihzZWNvbmRhcnlTeXN0ZW1Hcm91cGVkQmFja2dyb3VuZENvbG9yKTsKLSAgICAgICAgICAg
IGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVRlcnRpYXJ5R3JvdXBlZEJhY2tncm91bmQ6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3Rvcih0ZXJ0aWFyeVN5c3RlbUdyb3VwZWRCYWNrZ3Jv
dW5kQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtR3JpZDoKLSAg
ICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbVNlcGFyYXRvcjoKLSAgICAgICAgICAg
IGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUNvbnRhaW5lckJvcmRlcjoKLSAgICAgICAgICAgICAg
ICByZXR1cm4gQHNlbGVjdG9yKHNlcGFyYXRvckNvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NT
VmFsdWVBcHBsZVN5c3RlbVNlbGVjdGVkQ29udGVudEJhY2tncm91bmQ6Ci0gICAgICAgICAgICBj
YXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1VbmVtcGhhc2l6ZWRTZWxlY3RlZENvbnRlbnRCYWNrZ3Jv
dW5kOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3IodGFibGVDZWxsRGVmYXVsdFNl
bGVjdGlvblRpbnRDb2xvcik7Ci0gICAgICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1C
cm93bjoKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVjdG9yKHN5c3RlbUJyb3duQ29sb3Ip
OwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtSW5kaWdvOgotICAgICAgICAg
ICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtSW5kaWdvQ29sb3IpOwotI2VuZGlmCi0gICAg
ICAgICAgICBjYXNlIENTU1ZhbHVlQXBwbGVTeXN0ZW1UZWFsOgotICAgICAgICAgICAgICAgIHJl
dHVybiBAc2VsZWN0b3Ioc3lzdGVtVGVhbENvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFs
dWVBcHBsZVdpcmVsZXNzUGxheWJhY2tUYXJnZXRBY3RpdmU6Ci0gICAgICAgICAgICBjYXNlIENT
U1ZhbHVlQXBwbGVTeXN0ZW1CbHVlOgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Io
c3lzdGVtQmx1ZUNvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5c3RlbUdy
YXk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1HcmF5Q29sb3IpOwot
ICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtR3JlZW46Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1HcmVlbkNvbG9yKTsKLSAgICAgICAgICAgIGNhc2Ug
Q1NTVmFsdWVBcHBsZVN5c3RlbU9yYW5nZToKLSAgICAgICAgICAgICAgICByZXR1cm4gQHNlbGVj
dG9yKHN5c3RlbU9yYW5nZUNvbG9yKTsKLSAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVBcHBsZVN5
c3RlbVBpbms6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEBzZWxlY3RvcihzeXN0ZW1QaW5rQ29s
b3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtUHVycGxlOgotICAgICAg
ICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtUHVycGxlQ29sb3IpOwotICAgICAgICAg
ICAgY2FzZSBDU1NWYWx1ZUFwcGxlU3lzdGVtUmVkOgotICAgICAgICAgICAgICAgIHJldHVybiBA
c2VsZWN0b3Ioc3lzdGVtUmVkQ29sb3IpOwotICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUFwcGxl
U3lzdGVtWWVsbG93OgotICAgICAgICAgICAgICAgIHJldHVybiBAc2VsZWN0b3Ioc3lzdGVtWWVs
bG93Q29sb3IpOwotICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfTsKLQotICAgICAgICBpZiAoYXV0byBz
ZWxlY3RvciA9IGNzc0NvbG9yVG9TZWxlY3RvcigpKSB7Ci0gICAgICAgICAgICBpZiAoYXV0byBj
b2xvciA9IHd0Zk9iakNNc2dTZW5kPFVJQ29sb3IgKj4oUEFMOjpnZXRVSUNvbG9yQ2xhc3MoKSwg
c2VsZWN0b3IpKQotICAgICAgICAgICAgICAgIHJldHVybiBDb2xvcihjb2xvci5DR0NvbG9yLCBD
b2xvcjo6U2VtYW50aWMpOworICAgICAgICBpZiAoIWdsb2JhbENTU1ZhbHVlVG9TeXN0ZW1Db2xv
ck1hcCgpLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgYXV0byBpdCA9IGdsb2JhbENTU1ZhbHVl
VG9TeXN0ZW1Db2xvck1hcCgpLmZpbmQoQ1NTVmFsdWVLZXkgeyBjc3NWYWx1ZUlELCB1c2VEYXJr
QXBwZWFyYW5jZSwgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwgfSk7CisgICAgICAgICAg
ICBpZiAoaXQgPT0gZ2xvYmFsQ1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKCkuZW5kKCkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpzeXN0ZW1Db2xvcihjc3NWYWx1ZUlELCBv
cHRpb25zKTsKKyAgICAgICAgICAgIHJldHVybiBDb2xvcihpdC0+dmFsdWUucmdiKCksIENvbG9y
OjpTZW1hbnRpYyk7CiAgICAgICAgIH0KLQorICAgICAgICBhdXRvIGNvbG9yID0gc3lzdGVtQ29s
b3JGcm9tQ1NTVmFsdWVJRChjc3NWYWx1ZUlELCB1c2VEYXJrQXBwZWFyYW5jZSwgdXNlRWxldmF0
ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOworICAgICAgICBpZiAoY29sb3IpCisgICAgICAgICAgICBy
ZXR1cm4gKmNvbG9yOwogICAgICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnN5c3RlbUNvbG9yKGNz
c1ZhbHVlSUQsIG9wdGlvbnMpOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKIH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDI1NDM3MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNiAr
MzksNyBAQAogI2luY2x1ZGUgIkNTU0FuaW1hdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJD
U1NLZXlmcmFtZXNSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTTWVkaWFSdWxlLmgiCisjaW5jbHVkZSAi
Q1NTUHJvcGVydHlQYXJzZXIuaCIKICNpbmNsdWRlICJDU1NTdHlsZVJ1bGUuaCIKICNpbmNsdWRl
ICJDU1NTdXBwb3J0c1J1bGUuaCIKICNpbmNsdWRlICJDYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmgi
CkBAIC0xNDksNiArMTUwLDcgQEAKICNpbmNsdWRlICJSZW5kZXJMYXllckJhY2tpbmcuaCIKICNp
bmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJNZW51TGlz
dC5oIgorI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVHJlZUFzVGV4
dC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJlZERvY3VtZW50
TWFya2VyLmgiCkBAIC01NDE5LDQgKzU0MjEsMTggQEAgU3RyaW5nIEludGVybmFsczo6d2luZG93
TG9jYXRpb25Ib3N0KERPTQogICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24oKS5ob3N0KCk7CiB9
CiAKK1N0cmluZyBJbnRlcm5hbHM6OnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoY29uc3QgU3RyaW5n
JiBjc3NWYWx1ZSwgYm9vbCB1c2VEYXJrTW9kZUFwcGVhcmFuY2UsIGJvb2wgdXNlRWxldmF0ZWRV
c2VySW50ZXJmYWNlTGV2ZWwpCit7CisgICAgQ1NTVmFsdWVJRCBpZCA9IGNzc1ZhbHVlS2V5d29y
ZElEKGNzc1ZhbHVlKTsKKyAgICBSRUxFQVNFX0FTU0VSVChTdHlsZUNvbG9yOjppc1N5c3RlbUNv
bG9yKGlkKSk7CisKKyAgICBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gb3B0aW9uczsK
KyAgICBpZiAodXNlRGFya01vZGVBcHBlYXJhbmNlKQorICAgICAgICBvcHRpb25zLmFkZChTdHls
ZUNvbG9yOjpPcHRpb25zOjpVc2VEYXJrQXBwZWFyYW5jZSk7CisgICAgaWYgKHVzZUVsZXZhdGVk
VXNlckludGVyZmFjZUxldmVsKQorICAgICAgICBvcHRpb25zLmFkZChTdHlsZUNvbG9yOjpPcHRp
b25zOjpVc2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCk7CisgICAgCisgICAgcmV0dXJuIFJl
bmRlclRoZW1lOjpzaW5nbGV0b24oKS5zeXN0ZW1Db2xvcihpZCwgb3B0aW9ucykuY3NzVGV4dCgp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgJKHJldmlzaW9uIDI1NDM3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTkyNCw2ICs5MjQsOCBAQCBwdWJsaWM6CiAKICAg
ICBTdHJpbmcgd2luZG93TG9jYXRpb25Ib3N0KERPTVdpbmRvdyYpOwogCisgICAgU3RyaW5nIHN5
c3RlbUNvbG9yRm9yQ1NTVmFsdWUoY29uc3QgU3RyaW5nJiBjc3NWYWx1ZSwgYm9vbCB1c2VEYXJr
TW9kZUFwcGVhcmFuY2UsIGJvb2wgdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOworCiBw
cml2YXRlOgogICAgIGV4cGxpY2l0IEludGVybmFscyhEb2N1bWVudCYpOwogICAgIERvY3VtZW50
KiBjb250ZXh0RG9jdW1lbnQoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwJKHJldmlzaW9uIDI1NDM3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbAkod29ya2luZyBjb3B5KQpAQCAtODMxLDQgKzgzMSw2IEBAIGVudW0gQ29tcG9z
aXRpbmdQb2xpY3kgewogCiAgICAgYm9vbGVhbiBoYXNTYW5kYm94TWFjaExvb2t1cEFjY2Vzc1Rv
R2xvYmFsTmFtZShET01TdHJpbmcgcHJvY2VzcywgRE9NU3RyaW5nIHNlcnZpY2UpOwogICAgIGJv
b2xlYW4gaGFzU2FuZGJveE1hY2hMb29rdXBBY2Nlc3NUb1hQQ1NlcnZpY2VOYW1lKERPTVN0cmlu
ZyBwcm9jZXNzLCBET01TdHJpbmcgc2VydmljZSk7CisgICAgCisgICAgRE9NU3RyaW5nIHN5c3Rl
bUNvbG9yRm9yQ1NTVmFsdWUoRE9NU3RyaW5nIGNzc1ZhbHVlLCBib29sZWFuIHVzZURhcmtNb2Rl
QXBwZWFyYW5jZSwgYm9vbGVhbiB1c2VFbGV2YXRlZFVzZXJJbnRlcmZhY2VMZXZlbCk7CiB9OwpJ
bmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDM3MCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDEtMDkgIFBlciBBcm5lIFZv
bGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIE1hcCBDU1MgdmFsdWUgSUQgdG8g
c3lzdGVtIGNvbG9yIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzMTQKKworICAgICAgICBSZXZpZXdlZCBieSBEZWFu
IEphY2tzb24uCisKKyAgICAgICAgQ3JlYXRlIG1hcHBpbmcgYmV0d2VlbiBDU1MgdmFsdWUgSURz
IGFuZCBzeXN0ZW0gY29sb3JzIGluIHRoZSBVSSBwcm9jZXNzIGFuZCBzZW5kIHRvIHRoZSBXZWJD
b250ZW50IHByb2Nlc3MKKyAgICAgICAgb24gcHJvY2VzcyBzdGFydHVwLgorCisgICAgICAgICog
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisKIDIwMjAtMDEtMTAgIE1hcmsg
TGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEdhcmRlbmluZzogc2ltcGxlIGJ1
aWxkIGZpeCBhZnRlciByMjU0MTE5LgpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDI1NDM3MCkK
KysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzAsNiArMTcwLDcgQEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzOjplbmNvZAogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBlbmNv
ZGVyIDw8IGN1cnJlbnRVc2VySW50ZXJmYWNlSWRpb21Jc1BhZDsKKyAgICBlbmNvZGVyIDw8IGNz
c1ZhbHVlVG9TeXN0ZW1Db2xvck1hcDsKICNlbmRpZgogfQogCkBAIC00MzcsNiArNDM4LDEyIEBA
IGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2QKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5jdXJyZW50VXNl
ckludGVyZmFjZUlkaW9tSXNQYWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBPcHRp
b25hbDxXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6Q1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwPiBj
c3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXA7CisgICAgZGVjb2RlciA+PiBjc3NWYWx1ZVRvU3lzdGVt
Q29sb3JNYXA7CisgICAgaWYgKCFjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXApCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBwYXJhbWV0ZXJzLmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCA9IFdU
Rk1vdmUoKmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCk7CiAjZW5kaWYKIAogICAgIHJldHVybiB0
cnVlOwpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMuaAkocmV2aXNpb24gMjU0MzcwKQorKysgU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2
ICs1MSwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU291cE5ldHdvcmtQcm94eVNldHRpbmdzLmg+
CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjaW5jbHVkZSA8V2ViQ29yZS9S
ZW5kZXJUaGVtZUlPUy5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgRGF0YTsK
IH0KQEAgLTIwOCw2ICsyMTIsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyB7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGJvb2wgY3VycmVudFVzZXJJbnRl
cmZhY2VJZGlvbUlzUGFkIHsgZmFsc2UgfTsKKyAgICBXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6
Q1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwIGNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcDsKICNlbmRp
ZgogfTsKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bv
b2xDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJQcm9jZXNzUG9vbENvY29hLm1tCShyZXZpc2lvbiAyNTQzNzApCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0zNTMsNiArMzUzLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
VwogICAgIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgcGFyYW1ldGVycy5jdXJyZW50
VXNlckludGVyZmFjZUlkaW9tSXNQYWQgPSBjdXJyZW50VXNlckludGVyZmFjZUlkaW9tSXNQYWQo
KTsKKyAgICBwYXJhbWV0ZXJzLmNzc1ZhbHVlVG9TeXN0ZW1Db2xvck1hcCA9IFJlbmRlclRoZW1l
SU9TOjpjc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXAoKTsKICNlbmRpZgogfQogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHJl
dmlzaW9uIDI1NDM3MCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1OSw2ICsyNTksMTAgQEAgdm9pZCBXZWJQ
cm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcgogICAgICAgICBTYW5kYm94RXh0ZW5zaW9u
Ojpjb25zdW1lUGVybWFuZW50bHkoKnBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lv
bkhhbmRsZSk7CiAgICAgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OnNldEhhc0NvbnN1
bWVkU2FuZGJveEV4dGVuc2lvbnMocGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRsZS5o
YXNWYWx1ZSgpICYmIHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZS5o
YXNWYWx1ZSgpKTsKICNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBSZW5k
ZXJUaGVtZUlPUzo6c2V0Q1NTVmFsdWVUb1N5c3RlbUNvbG9yTWFwKFdURk1vdmUocGFyYW1ldGVy
cy5jc3NWYWx1ZVRvU3lzdGVtQ29sb3JNYXApKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlByb2Nl
c3M6OnBsYXRmb3JtU2V0V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMoV2ViUHJvY2Vzc0RhdGFT
dG9yZVBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjU0MzcwKQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMjAtMDEtMDkgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAg
ICAgIE1hcCBDU1MgdmFsdWUgSUQgdG8gc3lzdGVtIGNvbG9yIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQzMTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgKiBUZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICAqIGZhc3QvY3NzL2lvczogQWRkZWQuCisgICAgICAgICogZmFzdC9j
c3MvaW9zL3N5c3RlbS1jb2xvci1mb3ItY3NzLXZhbHVlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9jc3MvaW9zL3N5c3RlbS1jb2xvci1mb3ItY3NzLXZhbHVlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTAx
LTEwICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1Nd
IFJlbW92ZSAnY29tLmFwcGxlLnBvd2VybG9nLnBseHBjbG9nZ2VyLnhwYycgZnJvbSB0aGUgV2Vi
Q29udGVudCBwcm9jZXNzIHNhbmRib3gKSW5kZXg6IExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24g
MjU0MzcwKQorKysgTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpA
QCAtMjMsNiArMjMsNyBAQCBlZGl0aW5nL3Bhc3RlYm9hcmQvZ3RrIFsgU2tpcCBdCiBlZGl0aW5n
L3NlbGVjdGlvbi9pb3MgWyBTa2lwIF0KIGVkaXRpbmcvdW5kby1tYW5hZ2VyIFsgU2tpcCBdCiB0
aWxlZC1kcmF3aW5nIFsgU2tpcCBdCitmYXN0L2Nzcy9pb3MgWyBTa2lwIF0KIGZhc3QvY3NzL3dh
dGNob3MgWyBTa2lwIF0KIGZhc3QvZG9tL1dpbmRvdy93YXRjaG9zIFsgU2tpcCBdCiBmYXN0L2Zv
cm1zL3NlbGVjdC9tYWMtd2syIFsgU2tpcCBdCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9p
b3Mvc3lzdGVtLWNvbG9yLWZvci1jc3MtdmFsdWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvY3NzL2lvcy9zeXN0ZW0tY29sb3ItZm9yLWNzcy12YWx1ZS1leHBl
Y3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW9zL3N5c3Rl
bS1jb2xvci1mb3ItY3NzLXZhbHVlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDQxIEBACitUZXN0IHRoYXQgc3lzdGVtIGNvbG9ycyBmb3IgQ1NTIHZhbHVlcyBhcmUgY29y
cmVjdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgaW50ZXJuYWxzLnN5
c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0tbGFiZWwnLCB0cnVlLCBmYWxzZSkg
aXMgJ3JnYigyNTUsIDI1NSwgMjU1KScKK1BBU1MgaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NT
VmFsdWUoJy1hcHBsZS1zeXN0ZW0taGVhZGVyLXRleHQnLCB0cnVlLCBmYWxzZSkgaXMgJ3JnYigy
NTUsIDI1NSwgMjU1KScKK1BBU1MgaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1h
cHBsZS1zeXN0ZW0tc2Vjb25kYXJ5LWxhYmVsJywgdHJ1ZSwgZmFsc2UpIGlzICdyZ2JhKDIzNSwg
MjM1LCAyNDUsIDAuNiknCitQQVNTIGludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCct
YXBwbGUtc3lzdGVtLXRlcnRpYXJ5LWxhYmVsJywgdHJ1ZSwgZmFsc2UpIGlzICdyZ2JhKDIzNSwg
MjM1LCAyNDUsIDAuMjk4KScKK1BBU1MgaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUo
Jy1hcHBsZS1zeXN0ZW0tcXVhdGVybmFyeS1sYWJlbCcsIHRydWUsIGZhbHNlKSBpcyAncmdiYSgy
MzUsIDIzNSwgMjQ1LCAwLjE4KScKK1BBU1MgaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFs
dWUoJy1hcHBsZS1zeXN0ZW0tcGxhY2Vob2xkZXItdGV4dCcsIHRydWUsIGZhbHNlKSBpcyAncmdi
YSgyMzUsIDIzNSwgMjQ1LCAwLjI5OCknCitQQVNTIGludGVybmFscy5zeXN0ZW1Db2xvckZvckNT
U1ZhbHVlKCctd2Via2l0LWNvbnRyb2wtYmFja2dyb3VuZCcsIHRydWUsIGZhbHNlKSBpcyAncmdi
KDAsIDAsIDApJworUEFTUyBpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZSgnLWFwcGxl
LXN5c3RlbS1jb250cm9sLWJhY2tncm91bmQnLCB0cnVlLCBmYWxzZSkgaXMgJ3JnYigwLCAwLCAw
KScKK1BBU1MgaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0t
dGV4dC1iYWNrZ3JvdW5kJywgdHJ1ZSwgZmFsc2UpIGlzICdyZ2IoMCwgMCwgMCknCitQQVNTIGlu
dGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLWJhY2tncm91bmQn
LCB0cnVlLCBmYWxzZSkgaXMgJ3JnYigwLCAwLCAwKScKK1BBU1MgaW50ZXJuYWxzLnN5c3RlbUNv
bG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0tc2Vjb25kYXJ5LWJhY2tncm91bmQnLCB0cnVl
LCBmYWxzZSkgaXMgJ3JnYigyOCwgMjgsIDMwKScKK1BBU1MgaW50ZXJuYWxzLnN5c3RlbUNvbG9y
Rm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0tdGVydGlhcnktYmFja2dyb3VuZCcsIHRydWUsIGZh
bHNlKSBpcyAncmdiKDQ0LCA0NCwgNDYpJworUEFTUyBpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JD
U1NWYWx1ZSgnLWFwcGxlLXN5c3RlbS1ncm91cGVkLWJhY2tncm91bmQnLCB0cnVlLCBmYWxzZSkg
aXMgJ3JnYigwLCAwLCAwKScKK1BBU1MgaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUo
Jy1hcHBsZS1zeXN0ZW0tc2Vjb25kYXJ5LWdyb3VwZWQtYmFja2dyb3VuZCcsIHRydWUsIGZhbHNl
KSBpcyAncmdiKDI4LCAyOCwgMzApJworUEFTUyBpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NW
YWx1ZSgnLWFwcGxlLXN5c3RlbS10ZXJ0aWFyeS1ncm91cGVkLWJhY2tncm91bmQnLCB0cnVlLCBm
YWxzZSkgaXMgJ3JnYig0NCwgNDQsIDQ2KScKK1BBU1MgaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9y
Q1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0tZ3JpZCcsIHRydWUsIGZhbHNlKSBpcyAncmdiYSg4NCwg
ODQsIDg4LCAwLjYpJworUEFTUyBpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZSgnLWFw
cGxlLXN5c3RlbS1zZXBhcmF0b3InLCB0cnVlLCBmYWxzZSkgaXMgJ3JnYmEoODQsIDg0LCA4OCwg
MC42KScKK1BBU1MgaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0
ZW0tY29udGFpbmVyLWJvcmRlcicsIHRydWUsIGZhbHNlKSBpcyAncmdiYSg4NCwgODQsIDg4LCAw
LjYpJworUEFTUyBpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZSgnLWFwcGxlLXN5c3Rl
bS1zZWxlY3RlZC1jb250ZW50LWJhY2tncm91bmQnLCB0cnVlLCBmYWxzZSkgaXMgJ3JnYig1OCwg
NTgsIDYwKScKK1BBU1MgaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1z
eXN0ZW0tdW5lbXBoYXNpemVkLXNlbGVjdGVkLWNvbnRlbnQtYmFja2dyb3VuZCcsIHRydWUsIGZh
bHNlKSBpcyAncmdiKDU4LCA1OCwgNjApJworUEFTUyBpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JD
U1NWYWx1ZSgnLWFwcGxlLXN5c3RlbS1icm93bicsIHRydWUsIGZhbHNlKSBpcyAncmdiKDE3Miwg
MTQyLCAxMDQpJworUEFTUyBpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZSgnLWFwcGxl
LXN5c3RlbS1pbmRpZ28nLCB0cnVlLCBmYWxzZSkgaXMgJ3JnYig5NCwgOTIsIDIzMCknCitQQVNT
IGludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLXRlYWwnLCB0
cnVlLCBmYWxzZSkgaXMgJ3JnYigxMDAsIDIxMCwgMjU1KScKK1BBU1MgaW50ZXJuYWxzLnN5c3Rl
bUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS13aXJlbGVzcy1wbGF5YmFjay10YXJnZXQtYWN0aXZl
JywgdHJ1ZSwgZmFsc2UpIGlzICdyZ2IoMTAsIDEzMiwgMjU1KScKK1BBU1MgaW50ZXJuYWxzLnN5
c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0tYmx1ZScsIHRydWUsIGZhbHNlKSBp
cyAncmdiKDEwLCAxMzIsIDI1NSknCitQQVNTIGludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1Zh
bHVlKCctYXBwbGUtc3lzdGVtLWdyYXknLCB0cnVlLCBmYWxzZSkgaXMgJ3JnYigxNDIsIDE0Miwg
MTQ3KScKK1BBU1MgaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0
ZW0tZ3JlZW4nLCB0cnVlLCBmYWxzZSkgaXMgJ3JnYig0OCwgMjA5LCA4OCknCitQQVNTIGludGVy
bmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLW9yYW5nZScsIHRydWUs
IGZhbHNlKSBpcyAncmdiKDI1NSwgMTU5LCAxMCknCitQQVNTIGludGVybmFscy5zeXN0ZW1Db2xv
ckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLXBpbmsnLCB0cnVlLCBmYWxzZSkgaXMgJ3JnYigy
NTUsIDU1LCA5NSknCitQQVNTIGludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBw
bGUtc3lzdGVtLXB1cnBsZScsIHRydWUsIGZhbHNlKSBpcyAncmdiKDE5MSwgOTAsIDI0MiknCitQ
QVNTIGludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLXJlZCcs
IHRydWUsIGZhbHNlKSBpcyAncmdiKDI1NSwgNjksIDU4KScKK1BBU1MgaW50ZXJuYWxzLnN5c3Rl
bUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0teWVsbG93JywgdHJ1ZSwgZmFsc2UpIGlz
ICdyZ2IoMjU1LCAyMTQsIDEwKScKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pb3Mvc3lzdGVtLWNv
bG9yLWZvci1jc3MtdmFsdWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9pb3Mvc3lzdGVtLWNvbG9yLWZvci1jc3MtdmFsdWUuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9pb3Mvc3lzdGVtLWNvbG9yLWZvci1jc3MtdmFsdWUuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ5IEBACis8aHRtbD4KKzxoZWFkIGlkPSJoZWFkIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgPgorPHNjcmlwdD4KKyAgICAKK2Rlc2NyaXB0aW9uKCJUZXN0IHRo
YXQgc3lzdGVtIGNvbG9ycyBmb3IgQ1NTIHZhbHVlcyBhcmUgY29ycmVjdC4iKTsKKworaWYgKHdp
bmRvdy5pbnRlcm5hbHMpIHsKKyAgICBzaG91bGRCZSgiaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9y
Q1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0tbGFiZWwnLCB0cnVlLCBmYWxzZSkiLCAiJ3JnYigyNTUs
IDI1NSwgMjU1KSciKTsKKyAgICBzaG91bGRCZSgiaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NT
VmFsdWUoJy1hcHBsZS1zeXN0ZW0taGVhZGVyLXRleHQnLCB0cnVlLCBmYWxzZSkiLCAiJ3JnYigy
NTUsIDI1NSwgMjU1KSciKTsKKyAgICBzaG91bGRCZSgiaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9y
Q1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0tc2Vjb25kYXJ5LWxhYmVsJywgdHJ1ZSwgZmFsc2UpIiwg
IidyZ2JhKDIzNSwgMjM1LCAyNDUsIDAuNiknIik7CisgICAgc2hvdWxkQmUoImludGVybmFscy5z
eXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLXRlcnRpYXJ5LWxhYmVsJywgdHJ1
ZSwgZmFsc2UpIiwgIidyZ2JhKDIzNSwgMjM1LCAyNDUsIDAuMjk4KSciKTsKKyAgICBzaG91bGRC
ZSgiaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0tcXVhdGVy
bmFyeS1sYWJlbCcsIHRydWUsIGZhbHNlKSIsICIncmdiYSgyMzUsIDIzNSwgMjQ1LCAwLjE4KSci
KTsKKyAgICBzaG91bGRCZSgiaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBs
ZS1zeXN0ZW0tcGxhY2Vob2xkZXItdGV4dCcsIHRydWUsIGZhbHNlKSIsICIncmdiYSgyMzUsIDIz
NSwgMjQ1LCAwLjI5OCknIik7CisgICAgc2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1Db2xvckZv
ckNTU1ZhbHVlKCctd2Via2l0LWNvbnRyb2wtYmFja2dyb3VuZCcsIHRydWUsIGZhbHNlKSIsICIn
cmdiKDAsIDAsIDApJyIpOworICAgIHNob3VsZEJlKCJpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JD
U1NWYWx1ZSgnLWFwcGxlLXN5c3RlbS1jb250cm9sLWJhY2tncm91bmQnLCB0cnVlLCBmYWxzZSki
LCAiJ3JnYigwLCAwLCAwKSciKTsKKyAgICBzaG91bGRCZSgiaW50ZXJuYWxzLnN5c3RlbUNvbG9y
Rm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0tdGV4dC1iYWNrZ3JvdW5kJywgdHJ1ZSwgZmFsc2Up
IiwgIidyZ2IoMCwgMCwgMCknIik7CisgICAgc2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1Db2xv
ckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVtLWJhY2tncm91bmQnLCB0cnVlLCBmYWxzZSkiLCAi
J3JnYigwLCAwLCAwKSciKTsKKyAgICBzaG91bGRCZSgiaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9y
Q1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0tc2Vjb25kYXJ5LWJhY2tncm91bmQnLCB0cnVlLCBmYWxz
ZSkiLCAiJ3JnYigyOCwgMjgsIDMwKSciKTsKKyAgICBzaG91bGRCZSgiaW50ZXJuYWxzLnN5c3Rl
bUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0tdGVydGlhcnktYmFja2dyb3VuZCcsIHRy
dWUsIGZhbHNlKSIsICIncmdiKDQ0LCA0NCwgNDYpJyIpOworICAgIHNob3VsZEJlKCJpbnRlcm5h
bHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZSgnLWFwcGxlLXN5c3RlbS1ncm91cGVkLWJhY2tncm91
bmQnLCB0cnVlLCBmYWxzZSkiLCAiJ3JnYigwLCAwLCAwKSciKTsKKyAgICBzaG91bGRCZSgiaW50
ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0tc2Vjb25kYXJ5LWdy
b3VwZWQtYmFja2dyb3VuZCcsIHRydWUsIGZhbHNlKSIsICIncmdiKDI4LCAyOCwgMzApJyIpOwor
ICAgIHNob3VsZEJlKCJpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZSgnLWFwcGxlLXN5
c3RlbS10ZXJ0aWFyeS1ncm91cGVkLWJhY2tncm91bmQnLCB0cnVlLCBmYWxzZSkiLCAiJ3JnYig0
NCwgNDQsIDQ2KSciKTsKKyAgICBzaG91bGRCZSgiaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NT
VmFsdWUoJy1hcHBsZS1zeXN0ZW0tZ3JpZCcsIHRydWUsIGZhbHNlKSIsICIncmdiYSg4NCwgODQs
IDg4LCAwLjYpJyIpOworICAgIHNob3VsZEJlKCJpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NW
YWx1ZSgnLWFwcGxlLXN5c3RlbS1zZXBhcmF0b3InLCB0cnVlLCBmYWxzZSkiLCAiJ3JnYmEoODQs
IDg0LCA4OCwgMC42KSciKTsKKyAgICBzaG91bGRCZSgiaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9y
Q1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0tY29udGFpbmVyLWJvcmRlcicsIHRydWUsIGZhbHNlKSIs
ICIncmdiYSg4NCwgODQsIDg4LCAwLjYpJyIpOworICAgIHNob3VsZEJlKCJpbnRlcm5hbHMuc3lz
dGVtQ29sb3JGb3JDU1NWYWx1ZSgnLWFwcGxlLXN5c3RlbS1zZWxlY3RlZC1jb250ZW50LWJhY2tn
cm91bmQnLCB0cnVlLCBmYWxzZSkiLCAiJ3JnYig1OCwgNTgsIDYwKSciKTsKKyAgICBzaG91bGRC
ZSgiaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0tdW5lbXBo
YXNpemVkLXNlbGVjdGVkLWNvbnRlbnQtYmFja2dyb3VuZCcsIHRydWUsIGZhbHNlKSIsICIncmdi
KDU4LCA1OCwgNjApJyIpOworICAgIHNob3VsZEJlKCJpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JD
U1NWYWx1ZSgnLWFwcGxlLXN5c3RlbS1icm93bicsIHRydWUsIGZhbHNlKSIsICIncmdiKDE3Miwg
MTQyLCAxMDQpJyIpOworICAgIHNob3VsZEJlKCJpbnRlcm5hbHMuc3lzdGVtQ29sb3JGb3JDU1NW
YWx1ZSgnLWFwcGxlLXN5c3RlbS1pbmRpZ28nLCB0cnVlLCBmYWxzZSkiLCAiJ3JnYig5NCwgOTIs
IDIzMCknIik7CisgICAgc2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVl
KCctYXBwbGUtc3lzdGVtLXRlYWwnLCB0cnVlLCBmYWxzZSkiLCAiJ3JnYigxMDAsIDIxMCwgMjU1
KSciKTsKKyAgICBzaG91bGRCZSgiaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1h
cHBsZS13aXJlbGVzcy1wbGF5YmFjay10YXJnZXQtYWN0aXZlJywgdHJ1ZSwgZmFsc2UpIiwgIidy
Z2IoMTAsIDEzMiwgMjU1KSciKTsKKyAgICBzaG91bGRCZSgiaW50ZXJuYWxzLnN5c3RlbUNvbG9y
Rm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0tYmx1ZScsIHRydWUsIGZhbHNlKSIsICIncmdiKDEw
LCAxMzIsIDI1NSknIik7CisgICAgc2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1Db2xvckZvckNT
U1ZhbHVlKCctYXBwbGUtc3lzdGVtLWdyYXknLCB0cnVlLCBmYWxzZSkiLCAiJ3JnYigxNDIsIDE0
MiwgMTQ3KSciKTsKKyAgICBzaG91bGRCZSgiaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFs
dWUoJy1hcHBsZS1zeXN0ZW0tZ3JlZW4nLCB0cnVlLCBmYWxzZSkiLCAiJ3JnYig0OCwgMjA5LCA4
OCknIik7CisgICAgc2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCct
YXBwbGUtc3lzdGVtLW9yYW5nZScsIHRydWUsIGZhbHNlKSIsICIncmdiKDI1NSwgMTU5LCAxMCkn
Iik7CisgICAgc2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBw
bGUtc3lzdGVtLXBpbmsnLCB0cnVlLCBmYWxzZSkiLCAiJ3JnYigyNTUsIDU1LCA5NSknIik7Cisg
ICAgc2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lz
dGVtLXB1cnBsZScsIHRydWUsIGZhbHNlKSIsICIncmdiKDE5MSwgOTAsIDI0MiknIik7CisgICAg
c2hvdWxkQmUoImludGVybmFscy5zeXN0ZW1Db2xvckZvckNTU1ZhbHVlKCctYXBwbGUtc3lzdGVt
LXJlZCcsIHRydWUsIGZhbHNlKSIsICIncmdiKDI1NSwgNjksIDU4KSciKTsKKyAgICBzaG91bGRC
ZSgiaW50ZXJuYWxzLnN5c3RlbUNvbG9yRm9yQ1NTVmFsdWUoJy1hcHBsZS1zeXN0ZW0teWVsbG93
JywgdHJ1ZSwgZmFsc2UpIiwgIidyZ2IoMjU1LCAyMTQsIDEwKSciKTsKK30KKworPC9zY3JpcHQ+
CisKKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9U
ZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9U
ZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAyNTQzNzApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3MvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTMsNiArMTMsNyBAQCBt
ZWRpYS9pb3MgWyBQYXNzIF0KIHF1aWNrbG9vayBbIFBhc3MgXQogc3dpcGUgWyBQYXNzIF0KIAor
ZmFzdC9jc3MvaW9zIFsgUGFzcyBdCiBmYXN0L21lZGlhL2lvcyBbIFBhc3MgXQogCiBmYXN0L2Zv
cm1zL3RleHRhcmVhL2lvcyBbIFBhc3MgXQpAQCAtMzQ1OCw0ICszNDU5LDQgQEAgd2Via2l0Lm9y
Zy9iLzIwMzQxNiBpbXBvcnRlZC93M2Mvd2ViLXBsYQogCiB3ZWJraXQub3JnL2IvMjA0NzU3IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL3JlcXVlc3QvZGVzdGluYXRp
b24vZmV0Y2gtZGVzdGluYXRpb24tbm8tbG9hZC1ldmVudC5odHRwcy5odG1sIFsgUGFzcyBGYWls
dXJlIF0KIAotd2Via2l0Lm9yZy9iLzIwNTMwOSBzY3JvbGxpbmdjb29yZGluYXRvci9pb3Mvc2Ny
b2xsLXBvc2l0aW9uLWFmdGVyLXJlYXR0YWNoLmh0bWwgWyBJbWFnZW9ubHlGYWlsdXJlIF0KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCit3ZWJraXQub3JnL2IvMjA1MzA5IHNjcm9sbGluZ2Nv
b3JkaW5hdG9yL2lvcy9zY3JvbGwtcG9zaXRpb24tYWZ0ZXItcmVhdHRhY2guaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>