<?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>206478</bug_id>
          
          <creation_ts>2020-01-18 17:34:09 -0800</creation_ts>
          <short_desc>[Cocoa] Media mime types map should be created in the UI process</short_desc>
          <delta_ts>2020-02-06 10:03:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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=206960</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>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1608500</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-18 17:34:09 -0800</bug_when>
    <thetext>Creating this map in the WebContent process will access the launch services daemon, which will be blocked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608502</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-18 17:34:33 -0800</bug_when>
    <thetext>&lt;rdar://problem/58714891&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608503</commentid>
    <comment_count>2</comment_count>
      <attachid>388163</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-18 17:44:34 -0800</bug_when>
    <thetext>Created attachment 388163
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608504</commentid>
    <comment_count>3</comment_count>
      <attachid>388164</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-18 17:53:44 -0800</bug_when>
    <thetext>Created attachment 388164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608507</commentid>
    <comment_count>4</comment_count>
      <attachid>388165</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-18 18:09:49 -0800</bug_when>
    <thetext>Created attachment 388165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608508</commentid>
    <comment_count>5</comment_count>
      <attachid>388166</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-18 18:21:58 -0800</bug_when>
    <thetext>Created attachment 388166
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608509</commentid>
    <comment_count>6</comment_count>
      <attachid>388167</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-18 18:34:17 -0800</bug_when>
    <thetext>Created attachment 388167
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608598</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-01-19 10:51:46 -0800</bug_when>
    <thetext>What happens if the mapping of mime types reported by launch services changes during the lifetime of the process?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1608808</commentid>
    <comment_count>8</comment_count>
      <attachid>388167</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-01-20 11:38:43 -0800</bug_when>
    <thetext>Comment on attachment 388167
Patch

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

Not sure what the Windows failure on EWS is about.

&gt; Source/WebCore/platform/MIMETypeRegistry.cpp:285
&gt; +    // A table of common media MIME types and file extentions used when a platform&apos;s

Spelling error here. It’s extensions, not &quot;extentions&quot;.

&gt; Source/WebCore/platform/MIMETypeRegistry.cpp:287
&gt; +    static NeverDestroyed&lt;std::initializer_list&lt;TypeExtensionPair&gt;&gt; commonMediaTypes;

Should be able to use constexpr for this whole thing rather than needing code to initialize it.

&gt; Source/WebCore/platform/MIMETypeRegistry.cpp:290
&gt; +    static std::once_flag onceFlag;
&gt; +    std::call_once(

Surprised we need this. Is this called from multiple threads? If not then we should just be able to use &quot;= [] {&quot; instead of all the call_once stuff as is done in many other places in WebKit such as canAtttachAuthorShadowRoot, hasEffectiveDisplayNoneForDisplayContents, etc.

&gt; Source/WebCore/platform/MIMETypeRegistry.cpp:381
&gt; +    static std::once_flag onceFlag;
&gt; +    std::call_once(

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609194</commentid>
    <comment_count>9</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-21 12:06:16 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #7)
&gt; What happens if the mapping of mime types reported by launch services
&gt; changes during the lifetime of the process?

Good point! There should be no behavior change with this patch. The only difference is that we create the cached map in the UI process instead of in the WebContent process.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609197</commentid>
    <comment_count>10</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-21 12:08:18 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #8)
&gt; Comment on attachment 388167 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=388167&amp;action=review
&gt; 
&gt; Not sure what the Windows failure on EWS is about.
&gt; 
&gt; &gt; Source/WebCore/platform/MIMETypeRegistry.cpp:285
&gt; &gt; +    // A table of common media MIME types and file extentions used when a platform&apos;s
&gt; 
&gt; Spelling error here. It’s extensions, not &quot;extentions&quot;.
&gt; 
&gt; &gt; Source/WebCore/platform/MIMETypeRegistry.cpp:287
&gt; &gt; +    static NeverDestroyed&lt;std::initializer_list&lt;TypeExtensionPair&gt;&gt; commonMediaTypes;
&gt; 
&gt; Should be able to use constexpr for this whole thing rather than needing
&gt; code to initialize it.
&gt; 
&gt; &gt; Source/WebCore/platform/MIMETypeRegistry.cpp:290
&gt; &gt; +    static std::once_flag onceFlag;
&gt; &gt; +    std::call_once(
&gt; 
&gt; Surprised we need this. Is this called from multiple threads? If not then we
&gt; should just be able to use &quot;= [] {&quot; instead of all the call_once stuff as is
&gt; done in many other places in WebKit such as canAtttachAuthorShadowRoot,
&gt; hasEffectiveDisplayNoneForDisplayContents, etc.
&gt; 
&gt; &gt; Source/WebCore/platform/MIMETypeRegistry.cpp:381
&gt; &gt; +    static std::once_flag onceFlag;
&gt; &gt; +    std::call_once(
&gt; 
&gt; Ditto.

You&apos;re right. I don&apos;t believe we need this, since the function did not use call_once originally. I will update the patch, possibly asserting that this code is being run on the main thread.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609759</commentid>
    <comment_count>11</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-01-22 14:45:19 -0800</bug_when>
    <thetext>(In reply to Per Arne Vollan from comment #9)
&gt; (In reply to Sam Weinig from comment #7)
&gt; &gt; What happens if the mapping of mime types reported by launch services
&gt; &gt; changes during the lifetime of the process?
&gt; 
&gt; Good point! There should be no behavior change with this patch. The only
&gt; difference is that we create the cached map in the UI process instead of in
&gt; the WebContent process.
&gt; 

Sounds like there would be a subtle behavior change then, since the cache will now not be invalidated for the life of the UIProcess, whereas, on each WebProcess creation we used to get a fresh copy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1609764</commentid>
    <comment_count>12</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-22 14:58:36 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #11)
&gt; (In reply to Per Arne Vollan from comment #9)
&gt; &gt; (In reply to Sam Weinig from comment #7)
&gt; &gt; &gt; What happens if the mapping of mime types reported by launch services
&gt; &gt; &gt; changes during the lifetime of the process?
&gt; &gt; 
&gt; &gt; Good point! There should be no behavior change with this patch. The only
&gt; &gt; difference is that we create the cached map in the UI process instead of in
&gt; &gt; the WebContent process.
&gt; &gt; 
&gt; 
&gt; Sounds like there would be a subtle behavior change then, since the cache
&gt; will now not be invalidated for the life of the UIProcess, whereas, on each
&gt; WebProcess creation we used to get a fresh copy.

Ah, yes, that is a good point! We could possibly recreate the map every time we create a new WebContent process, but that would be less performant than just using the previous one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610342</commentid>
    <comment_count>13</comment_count>
      <attachid>388595</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-23 14:55:38 -0800</bug_when>
    <thetext>Created attachment 388595
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610356</commentid>
    <comment_count>14</comment_count>
      <attachid>388601</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-23 15:31:41 -0800</bug_when>
    <thetext>Created attachment 388601
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610491</commentid>
    <comment_count>15</comment_count>
      <attachid>388601</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-23 19:19:00 -0800</bug_when>
    <thetext>Comment on attachment 388601
Patch

Clearing flags on attachment: 388601

Committed r255050: &lt;https://trac.webkit.org/changeset/255050&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610679</commentid>
    <comment_count>16</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-01-24 08:07:53 -0800</bug_when>
    <thetext>Probably worth investigating whether one already exists / filing a radar for a callback from launch services that tells you if it changes.a</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610756</commentid>
    <comment_count>17</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-24 10:53:07 -0800</bug_when>
    <thetext>Reverted r255050 for reason:

Introduced crashes on bots

Committed r255081: &lt;https://trac.webkit.org/changeset/255081&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610798</commentid>
    <comment_count>18</comment_count>
      <attachid>388714</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-24 11:56:51 -0800</bug_when>
    <thetext>Created attachment 388714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610825</commentid>
    <comment_count>19</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-24 12:43:10 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #16)
&gt; Probably worth investigating whether one already exists / filing a radar for
&gt; a callback from launch services that tells you if it changes.a

Thanks! I am looking into this now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610837</commentid>
    <comment_count>20</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-01-24 13:23:53 -0800</bug_when>
    <thetext>(In reply to Per Arne Vollan from comment #19)
&gt; (In reply to Sam Weinig from comment #16)
&gt; &gt; Probably worth investigating whether one already exists / filing a radar for
&gt; &gt; a callback from launch services that tells you if it changes.a
&gt; 
&gt; Thanks! I am looking into this now.

There appears to be an existing mechanism for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611045</commentid>
    <comment_count>21</comment_count>
      <attachid>388714</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-25 08:51:40 -0800</bug_when>
    <thetext>Comment on attachment 388714
Patch

Clearing flags on attachment: 388714

Committed r255119: &lt;https://trac.webkit.org/changeset/255119&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388163</attachid>
            <date>2020-01-18 17:44:34 -0800</date>
            <delta_ts>2020-01-18 17:53:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206478-20200118174433.patch</filename>
            <type>text/plain</type>
            <size>19374</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDc1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAxLTE4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIE1lZGlhIG1p
bWUgdHlwZXMgbWFwIHNob3VsZCBiZSBjcmVhdGVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY0NzgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGluZyB0aGlzIG1h
cCBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHdpbGwgYWNjZXNzIHRoZSBsYXVuY2ggc2Vydmlj
ZXMgZGFlbW9uLCB3aGljaCB3aWxsIGJlIGJsb2NrZWQuCisgICAgICAgIFRoaXMgcGF0Y2ggY3Jl
YXRlcyB0aGUgbWFwIGluIHRoZSBVSSBwcm9jZXNzIGFuZCBzZW5kcyBpdCB0byB0aGUgV2ViQ29u
dGVudCBwcm9jZXNzIGFzIHBhcnQgb2YgdGhlIFdlYlByb2Nlc3MKKyAgICAgICAgY3JlYXRpb24g
cGFyYW1ldGVycy4KKworICAgICAgICBBUEkgdGVzdDogV2ViS2l0Lk1pbWVUeXBlcworCisgICAg
ICAgICogcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpv
dmVycmlkZGVuTWltZVR5cGVzTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbW1vbk1lZGlhVHlw
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29tbW9uTWltZVR5cGVzTWFwKToKKyAgICAgICAgKFdl
YkNvcmU6OnR5cGVzRm9yQ29tbW9uRXh0ZW5zaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NSU1F
VHlwZVJlZ2lzdHJ5Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjptZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlk
bDoKKwogMjAyMC0wMS0xNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0xGQ11bSUZDXSBVc2UgT3B0aW9uYWwgZm9yIHBhcnRpYWxMZWFkaW5nL1RyYWlsaW5n
VGV4dEl0ZW0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0
cnkuY3BwCShyZXZpc2lvbiAyNTQ2MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1F
VHlwZVJlZ2lzdHJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjc0LDE3ICsyNzQsMjMgQEAgY29u
c3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aQogICAgIHJldHVybiB1bnN1cHBv
cnRlZFRleHRNSU1FVHlwZXM7CiB9CiAKLXN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiogdHlw
ZXNGb3JDb21tb25FeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCitPcHRpb25hbDxI
YXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4+
JiBvdmVycmlkZGVuTWltZVR5cGVzTWFwKCkKIHsKLSAgICBzdGF0aWMgY29uc3QgYXV0byBtYXAg
PSBtYWtlTmV2ZXJEZXN0cm95ZWQoW10gewotICAgICAgICBzdHJ1Y3QgVHlwZUV4dGVuc2lvblBh
aXIgewotICAgICAgICAgICAgQVNDSUlMaXRlcmFsIHR5cGU7Ci0gICAgICAgICAgICBBU0NJSUxp
dGVyYWwgZXh0ZW5zaW9uOwotICAgICAgICB9OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxP
cHRpb25hbDxIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0
aXZlSGFzaD4+PiBtYXA7CisgICAgcmV0dXJuIG1hcDsKK30KKworY29uc3Qgc3RkOjppbml0aWFs
aXplcl9saXN0PFR5cGVFeHRlbnNpb25QYWlyPiYgY29tbW9uTWVkaWFUeXBlcygpCit7CisgICAg
Ly8gQSB0YWJsZSBvZiBjb21tb24gbWVkaWEgTUlNRSB0eXBlcyBhbmQgZmlsZSBleHRlbnRpb25z
IHVzZWQgd2hlbiBhIHBsYXRmb3JtJ3MKKyAgICAvLyBzcGVjaWZpYyBNSU1FIHR5cGUgbG9va3Vw
IGRvZXNuJ3QgaGF2ZSBhIG1hdGNoIGZvciBhIG1lZGlhIGZpbGUgZXh0ZW5zaW9uLgorICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VHlwZUV4dGVuc2lvblBh
aXI+PiBjb21tb25NZWRpYVR5cGVzOwogCi0gICAgICAgIC8vIEEgdGFibGUgb2YgY29tbW9uIG1l
ZGlhIE1JTUUgdHlwZXMgYW5kIGZpbGUgZXh0ZW50aW9ucyB1c2VkIHdoZW4gYSBwbGF0Zm9ybSdz
Ci0gICAgICAgIC8vIHNwZWNpZmljIE1JTUUgdHlwZSBsb29rdXAgZG9lc24ndCBoYXZlIGEgbWF0
Y2ggZm9yIGEgbWVkaWEgZmlsZSBleHRlbnNpb24uCi0gICAgICAgIHN0YXRpYyBjb25zdCBUeXBl
RXh0ZW5zaW9uUGFpciBjb21tb25NZWRpYVR5cGVzW10gPSB7CisgICAgc3RhdGljIHN0ZDo6b25j
ZV9mbGFnIG9uY2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKAorICAgICAgICBvbmNlRmxhZywK
KyAgICAgICAgW10geworICAgICAgICBjb21tb25NZWRpYVR5cGVzLmdldCgpID0gewogICAgICAg
ICAgICAgLy8gT2dnCiAgICAgICAgICAgICB7ICJhcHBsaWNhdGlvbi9vZ2ciX3MsICJvZ3giX3Mg
fSwKICAgICAgICAgICAgIHsgImF1ZGlvL29nZyJfcywgIm9nZyJfcyB9LApAQCAtMzYzLDEyICsz
NjksMjIgQEAgc3RhdGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+KiB0eXBlc0ZvckNvbQogICAgICAg
ICAgICAgeyAiYXVkaW8veC13YXYiX3MsICJ3YXYiX3MgfSwKICAgICAgICAgICAgIHsgImF1ZGlv
L3ZuZC53YXZlIl9zLCAid2F2Il9zIH0sCiAgICAgICAgIH07CisgICAgfSk7CisgICAgcmV0dXJu
IGNvbW1vbk1lZGlhVHlwZXM7Cit9CisKK2NvbnN0IEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8U3Ry
aW5nPiwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgY29tbW9uTWltZVR5cGVzTWFwKCkKK3sK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+
LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBtYXA7CiAKLSAgICAgICAgSGFzaE1hcDxTdHJp
bmcsIFZlY3RvcjxTdHJpbmc+LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IG1hcDsKLSAgICAg
ICAgZm9yIChhdXRvJiBwYWlyIDogY29tbW9uTWVkaWFUeXBlcykgeworICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZSgKKyAgICAgICAgb25jZUZs
YWcsCisgICAgICAgIFtdIHsKKyAgICAgICAgZm9yIChhdXRvJiBwYWlyIDogY29tbW9uTWVkaWFU
eXBlcygpKSB7CiAgICAgICAgICAgICBBU0NJSUxpdGVyYWwgdHlwZSA9IHBhaXIudHlwZTsKICAg
ICAgICAgICAgIEFTQ0lJTGl0ZXJhbCBleHRlbnNpb24gPSBwYWlyLmV4dGVuc2lvbjsKLSAgICAg
ICAgICAgIG1hcC5lbnN1cmUoZXh0ZW5zaW9uLCBbdHlwZSwgZXh0ZW5zaW9uXSB7CisgICAgICAg
ICAgICBtYXAuZ2V0KCkuZW5zdXJlKGV4dGVuc2lvbiwgW3R5cGUsIGV4dGVuc2lvbl0gewogICAg
ICAgICAgICAgICAgIC8vIEZpcnN0IHR5cGUgaW4gdGhlIHZlY3RvciBtdXN0IGFsd2F5cyBiZSB0
aGUgb25lIGZyb20gZ2V0TUlNRVR5cGVGb3JFeHRlbnNpb24sCiAgICAgICAgICAgICAgICAgLy8g
c28gd2UgY2FuIHVzZSB0aGUgbWFwIHdpdGhvdXQgYWxzbyBjYWxsaW5nIGdldE1JTUVUeXBlRm9y
RXh0ZW5zaW9uIGVhY2ggdGltZS4KICAgICAgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiBzeW5v
bnltczsKQEAgLTM3OCwxMCArMzk0LDIwIEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiog
dHlwZXNGb3JDb20KICAgICAgICAgICAgICAgICByZXR1cm4gc3lub255bXM7CiAgICAgICAgICAg
ICB9KS5pdGVyYXRvci0+dmFsdWUuYXBwZW5kKHR5cGUpOwogICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiBtYXA7Ci0gICAgfSgpKTsKLSAgICBhdXRvIG1hcEVudHJ5ID0gbWFwLmdldCgpLmZpbmQo
ZXh0ZW5zaW9uKTsKLSAgICBpZiAobWFwRW50cnkgPT0gbWFwLmdldCgpLmVuZCgpKQorICAgIH0p
OworICAgIHJldHVybiBtYXA7Cit9CisKK3N0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiogdHlw
ZXNGb3JDb21tb25FeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCit7CisgICAgaWYg
KG92ZXJyaWRkZW5NaW1lVHlwZXNNYXAoKS5oYXNWYWx1ZSgpKSB7CisgICAgICAgIGF1dG8gbWFw
RW50cnkgPSBvdmVycmlkZGVuTWltZVR5cGVzTWFwKCktPmZpbmQoZXh0ZW5zaW9uKTsKKyAgICAg
ICAgaWYgKG1hcEVudHJ5ID09IG92ZXJyaWRkZW5NaW1lVHlwZXNNYXAoKS0+ZW5kKCkpCisgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuICZtYXBFbnRyeS0+dmFsdWU7
CisgICAgfQorICAgIGF1dG8gbWFwRW50cnkgPSBjb21tb25NaW1lVHlwZXNNYXAoKS5maW5kKGV4
dGVuc2lvbik7CisgICAgaWYgKG1hcEVudHJ5ID09IGNvbW1vbk1pbWVUeXBlc01hcCgpLmVuZCgp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gJm1hcEVudHJ5LT52YWx1ZTsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmgJKHJl
dmlzaW9uIDI1NDYyOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0
cnkuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0
cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4+JiBvdmVycmlkZGVuTWltZVR5cGVzTWFw
KCk7CitXRUJDT1JFX0VYUE9SVCBjb25zdCBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4s
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIGNvbW1vbk1pbWVUeXBlc01hcCgpOworCitzdHJ1
Y3QgVHlwZUV4dGVuc2lvblBhaXIgeworICAgIEFTQ0lJTGl0ZXJhbCB0eXBlOworICAgIEFTQ0lJ
TGl0ZXJhbCBleHRlbnNpb247Cit9OworCitXRUJDT1JFX0VYUE9SVCBjb25zdCBzdGQ6OmluaXRp
YWxpemVyX2xpc3Q8VHlwZUV4dGVuc2lvblBhaXI+JiBjb21tb25NZWRpYVR5cGVzKCk7CisKIHN0
cnVjdCBNSU1FVHlwZVJlZ2lzdHJ5VGhyZWFkR2xvYmFsRGF0YSB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoTUlNRVR5cGVSZWdpc3RyeVRocmVhZEdsb2JhbERhdGEpOwogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwpAQCAtNTIsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6
IFdlYktpdCBjb2Rpbmcgc3R5bGUgc2F5cyB3ZSBzaG91bGQgbm90IGhhdmUgdGhlIHdvcmQgImdl
dCIgaW4gdGhlIG5hbWVzIG9mIHRoZXNlIGZ1bmN0aW9ucy4KICAgICBzdGF0aWMgVmVjdG9yPFN0
cmluZz4gZ2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBnZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1F
VHlwZShjb25zdCBTdHJpbmcmIHR5cGUpOwotICAgIHN0YXRpYyBTdHJpbmcgZ2V0TWVkaWFNSU1F
VHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbik7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFN0cmluZyBnZXRNZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0
cmluZyYgZXh0ZW5zaW9uKTsKICAgICBzdGF0aWMgVmVjdG9yPFN0cmluZz4gZ2V0TWVkaWFNSU1F
VHlwZXNGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pOwogCiAgICAgc3RhdGlj
IFN0cmluZyBnZXRNSU1FVHlwZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDI1NDYyOSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI4LDYg
KzEyOCw3IEBACiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgogI2luY2x1ZGUgIk1lbW9y
eUNhY2hlLmgiCiAjaW5jbHVkZSAiTWVtb3J5SW5mby5oIgorI2luY2x1ZGUgIk1pbWVUeXBlUmVn
aXN0cnkuaCIKICNpbmNsdWRlICJNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgiCiAjaW5jbHVk
ZSAiTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTW9ja1BhZ2VPdmVy
bGF5LmgiCkBAIC01NDE4LDQgKzU0MTksOSBAQCBTdHJpbmcgSW50ZXJuYWxzOjpzeXN0ZW1Db2xv
ckZvckNTU1ZhbHVlCiAgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5zeXN0ZW1D
b2xvcihpZCwgb3B0aW9ucykuY3NzVGV4dCgpOwogfQogCitTdHJpbmcgSW50ZXJuYWxzOjptZWRp
YU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uKQoreworICAgIHJl
dHVybiBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGV4dGVu
c2lvbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaAkocmV2aXNpb24gMjU0NjI5KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaAkod29ya2luZyBjb3B5KQpAQCAtOTI2LDYgKzkyNiw4IEBAIHB1YmxpYzoK
IAogICAgIFN0cmluZyBzeXN0ZW1Db2xvckZvckNTU1ZhbHVlKGNvbnN0IFN0cmluZyYgY3NzVmFs
dWUsIGJvb2wgdXNlRGFya01vZGVBcHBlYXJhbmNlLCBib29sIHVzZUVsZXZhdGVkVXNlckludGVy
ZmFjZUxldmVsKTsKIAorICAgIFN0cmluZyBtZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0
IFN0cmluZyYgZXh0ZW5zaW9uKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMo
RG9jdW1lbnQmKTsKICAgICBEb2N1bWVudCogY29udGV4dERvY3VtZW50KCkgY29uc3Q7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCShyZXZpc2lvbiAyNTQ2MjkpCisrKyBT
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTgz
Myw0ICs4MzMsNiBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKICAgICBib29sZWFuIGhhc1Nh
bmRib3hNYWNoTG9va3VwQWNjZXNzVG9YUENTZXJ2aWNlTmFtZShET01TdHJpbmcgcHJvY2Vzcywg
RE9NU3RyaW5nIHNlcnZpY2UpOwogICAgIAogICAgIERPTVN0cmluZyBzeXN0ZW1Db2xvckZvckNT
U1ZhbHVlKERPTVN0cmluZyBjc3NWYWx1ZSwgYm9vbGVhbiB1c2VEYXJrTW9kZUFwcGVhcmFuY2Us
IGJvb2xlYW4gdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOworCisgICAgRE9NU3RyaW5n
IG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb24oRE9NU3RyaW5nIGV4dGVuc2lvbik7CiB9OwpJbmRl
eDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI1NDYyOSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDEtMTggIFBlciBBcm5lIFZvbGxh
biAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gTWVkaWEgbWltZSB0eXBl
cyBtYXAgc2hvdWxkIGJlIGNyZWF0ZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjQ3OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlbmQgdGhlIG1pbWUgdHlwZSBtYXAg
ZnJvbSB0aGUgVUkgcHJvY2VzcyB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGFzIHBhcnQgb2Yg
dGhlCisgICAgICAgIFdlYlByb2Nlc3MgY3JlYXRpb24gcGFyYW1ldGVycy4KKworICAgICAgICAq
IFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIwLTAxLTE1ICBEb24g
T2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgU2hhcmUgV2ViSW5z
cGVjdG9yIHN0dWJzIGZvciBwb3J0cyB3aXRob3V0IGxvY2FsIGluc3BlY3Rpb24KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCShyZXZpc2lvbiAyNTQ2MjkpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY2LDYgKzE2Niw3
IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKICNpZiBQTEFURk9S
TShDT0NPQSkKICAgICBlbmNvZGVyIDw8IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOwogICAgIGVu
Y29kZXIgPDwgbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKKyAgICBlbmNvZGVyIDw8
IG1pbWVUeXBlc01hcDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTQz
Myw2ICs0MzQsMTQgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZAog
ICAgIGlmICghbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSA9
IFdURk1vdmUoKm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUpOworCisgICAgT3B0aW9u
YWw8T3B0aW9uYWw8SGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+LCBBU0NJSUNhc2VJbnNl
bnNpdGl2ZUhhc2g+Pj4gbWltZVR5cGVzTWFwOworICAgIGRlY29kZXIgPj4gbWltZVR5cGVzTWFw
OworICAgIGlmICghbWltZVR5cGVzTWFwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFy
YW1ldGVycy5taW1lVHlwZXNNYXAgPSBXVEZNb3ZlKCptaW1lVHlwZXNNYXApOworCisKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1NDYy
OSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aAkod29ya2luZyBjb3B5KQpAQCAtMjA4LDYgKzIwOCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBPcHRpb25hbDxTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU+IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOwogICAgIE9wdGlv
bmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhh
bmRsZTsKKyAgICBPcHRpb25hbDxIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJ
Q2FzZUluc2Vuc2l0aXZlSGFzaD4+IG1pbWVUeXBlc01hcDsKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQb29sQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMjU0NjI5KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBj
b3B5KQpAQCAtNDcsNiArNDcsNyBAQAogI2ltcG9ydCAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAj
aW1wb3J0ICJXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9y
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL01pbWVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNv
cmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5oPgpAQCAtMzQzLDYg
KzM0NCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICNlbmRp
ZgogICAgICAgICBwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUgPSBX
VEZNb3ZlKGhhbmRsZSk7CiAgICAgfQorICAgIHBhcmFtZXRlcnMubWltZVR5cGVzTWFwID0gY29t
bW9uTWltZVR5cGVzTWFwKCk7CiAjZW5kaWYKICAgICAKICNpZiBQTEFURk9STShJT1MpCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0JKHJldmlzaW9uIDI1NDYyOSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1OCw2ICsyNTgsOCBAQCB2b2lk
IFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByCiAgICAgaWYgKHBhcmFtZXRlcnMu
bmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgU2FuZGJveEV4dGVuc2lv
bjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNp
b25IYW5kbGUpOwogICAgIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpzZXRIYXNDb25z
dW1lZFNhbmRib3hFeHRlbnNpb25zKHBhcmFtZXRlcnMubmVIZWxwZXJFeHRlbnNpb25IYW5kbGUu
aGFzVmFsdWUoKSAmJiBwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUu
aGFzVmFsdWUoKSk7CisgICAgaWYgKHBhcmFtZXRlcnMubWltZVR5cGVzTWFwKQorICAgICAgICBv
dmVycmlkZGVuTWltZVR5cGVzTWFwKCkgPSBXVEZNb3ZlKHBhcmFtZXRlcnMubWltZVR5cGVzTWFw
KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFRvb2xzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDgwMSkKKysr
IFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAx
LTE4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29j
b2FdIE1lZGlhIG1pbWUgdHlwZXMgbWFwIHNob3VsZCBiZSBjcmVhdGVkIGluIHRoZSBVSSBwcm9j
ZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY0
NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01pbWVUeXBlcy5tbTogQWRkZWQuCisg
ICAgICAgIChURVNUKToKKwogMjAyMC0wMS0xNyAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGln
YWxpYS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJz
aW5nCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU0NjI5KQorKysgVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTg2MCw2ICs4NjAsNyBAQAogCQlDMEFEQkU5NjEyRkNBNzlCMDBE
MkMxMjkgLyogc2ltcGxlLWZvcm0uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMEFEQkU4NDEyRkNBNkI2MDBEMkMxMjkgLyogc2ltcGxl
LWZvcm0uaHRtbCAqLzsgfTsKIAkJQzBCRDY2OUYxMzFEM0NGRjAwRTE4RjJBIC8qIFJlc3BvbnNp
dmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHlfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQkQ2NjlFMTMxRDNDRkYwMEUxOEYyQSAvKiBS
ZXNwb25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0J1bmRsZS5jcHAgKi87IH07CiAJCUMw
QzVEM0M2MTQ1OTkxMjkwMEE4MDJBNiAvKiBHZXRCYWNraW5nU2NhbGVGYWN0b3JfQnVuZGxlLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzBDNUQzQkQx
NDU5OEI2RjAwQTgwMkE2IC8qIEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW0gKi87IH07
CisJCUMxNjkyREUwMjNEM0Q3OTEwMDZFODhGNyAvKiBNaW1lVHlwZXMubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTY5MkRERjIzRDNENzkxMDA2RTg4
RjcgLyogTWltZVR5cGVzLm1tICovOyB9OwogCQlDMjBGODhBNzIyOTVCOTY3MDBENjEwRkEgLyog
Q29yZVRleHQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzIwRjg4QTYyMjk1Qjk2NzAwRDYxMEZBIC8qIENvcmVUZXh0LmZyYW1ld29y
ayAqLzsgfTsKIAkJQzIyRkEzMkIyMjhGODcwODAwOUQ3OTg4IC8qIFRleHRXaWR0aC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyMkZBMzJBMjI4Rjg3
MDgwMDlENzk4OCAvKiBUZXh0V2lkdGgubW0gKi87IH07CiAJCUMyMkZBMzJEMjI4RjhBRUIwMDlE
Nzk4OCAvKiBUZXh0V2lkdGguaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMjJGQTMyQzIyOEY4NzdBMDA5RDc5ODggLyogVGV4dFdpZHRo
Lmh0bWwgKi87IH07CkBAIC0yMzc5LDYgKzIzODAsNyBAQAogCQlDMEJENjY5RTEzMUQzQ0ZGMDBF
MThGMkEgLyogUmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseV9CdW5kbGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzcG9uc2l2ZW5lc3NUaW1lckRv
ZXNudEZpcmVFYXJseV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MEM1RDNCQzE0NTk4QjZGMDBBODAyQTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR2V0QmFja2luZ1NjYWxlRmFjdG9y
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMEM1RDNCRDE0NTk4QjZGMDBBODAy
QTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yX0J1bmRsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxNjkyRERGMjNEM0Q3OTEwMDZFODhGNyAvKiBN
aW1lVHlwZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNaW1lVHlwZXMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxRDhFRTIxMjAyOEU4RTMwMDhFQjE0MSAvKiBXZWJQcm9j
ZXNzVGVybWluYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViUHJvY2Vzc1Rlcm1pbmF0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzIw
Rjg4QTYyMjk1Qjk2NzAwRDYxMEZBIC8qIENvcmVUZXh0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBu
YW1lID0gQ29yZVRleHQuZnJhbWV3b3JrOyBwYXRoID0gU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr
cy9Db3JlVGV4dC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwogCQlDMjJGQTMy
QTIyOEY4NzA4MDA5RDc5ODggLyogVGV4dFdpZHRoLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
VGV4dFdpZHRoLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjgxOCw2ICsyODIw
LDcgQEAKIAkJMEYxMzlFNzQxQTQyM0E0NjAwRjU5MEY1IC8qIGNvY29hICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlDMTY5MkRERjIzRDNENzkxMDA2RTg4
RjcgLyogTWltZVR5cGVzLm1tICovLAogCQkJCTBGMTM5RTc1MUE0MjNBNTMwMEY1OTBGNSAvKiBX
ZWFrT2JqQ1B0ci5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gY29jb2E7CkBAIC00Nzk3LDYgKzQ4
MDAsNyBAQAogCQkJCTVDMEJGODk0MURENTk5QzkwMEIwMDMyOCAvKiBNZW51VHlwZXNGb3JNb3Vz
ZUV2ZW50cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxNjVGRTA0MjAxRUU2MjAwMDlGN0VDMyAv
KiBNZXNzYWdlUG9ydFByb3ZpZGVycy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE1QjE0OURFMUY1
QTE5RUEwMEM2REFGRiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUMxNjkyREUwMjNEM0Q3OTEwMDZFODhGNyAvKiBNaW1lVHlwZXMubW0gaW4gU291cmNlcyAqLywK
IAkJCQk1MUNEMUM2QzFCMzhDRTQzMDAxNDJDQTUgLyogTW9kYWxBbGVydHMubW0gaW4gU291cmNl
cyAqLywKIAkJCQk3QzgzRTBCNjFEMEE2NEIzMDBGRUJDRjMgLyogTW9kYWxBbGVydHNTUEkuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMDExQTQxMUFFNjAwNDQ3QzRDIC8qIE1vdXNlTW92
ZUFmdGVyQ3Jhc2guY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9NaW1lVHlwZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvTWltZVR5cGVzLm1tCShub25leGlzdGVudCkKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01pbWVUeXBlcy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgV0tf
SEFWRV9DX1NQSQorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVz
dFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViQ29yZS9NaW1lVHlwZVJlZ2lzdHJ5Lmg+CisKK1RF
U1QoV2ViS2l0LCBNaW1lVHlwZXMpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBXS1JldGFpblB0
cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNy
ZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxl
VGVzdCIpKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NQb29sID0gKFdLUHJvY2Vz
c1Bvb2wgKiljb250ZXh0LmdldCgpOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDAp
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKKwor
ICAgIGZvciAoYXV0byYgcGFpciA6IFdlYkNvcmU6OmNvbW1vbk1lZGlhVHlwZXMoKSkgeworICAg
ICAgICBBU0NJSUxpdGVyYWwgZXh0ZW5zaW9uID0gcGFpci5leHRlbnNpb247CisKKyAgICAgICAg
YXV0byBqcyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAid2luZG93LmludGVybmFscy5t
ZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKFwiJXNcIikiLCBleHRlbnNpb24uY2hhcmFjdGVycygp
XTsKKworICAgICAgICBhdXRvIG1pbWVUeXBlID0gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5n
SmF2YVNjcmlwdDpqc107CisKKyAgICAgICAgQVNTRVJUX1RSVUUoV2ViQ29yZTo6TUlNRVR5cGVS
ZWdpc3RyeTo6Z2V0TWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihleHRlbnNpb24pID09IFN0cmlu
ZyhtaW1lVHlwZSkpOworICAgIH0KK30KKworI2VuZGlmIC8vIFdLX0hBVkVfQ19TUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388164</attachid>
            <date>2020-01-18 17:53:44 -0800</date>
            <delta_ts>2020-01-18 18:09:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206478-20200118175343.patch</filename>
            <type>text/plain</type>
            <size>19374</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDc1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAxLTE4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIE1lZGlhIG1p
bWUgdHlwZXMgbWFwIHNob3VsZCBiZSBjcmVhdGVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY0NzgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGluZyB0aGlzIG1h
cCBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHdpbGwgYWNjZXNzIHRoZSBsYXVuY2ggc2Vydmlj
ZXMgZGFlbW9uLCB3aGljaCB3aWxsIGJlIGJsb2NrZWQuCisgICAgICAgIFRoaXMgcGF0Y2ggY3Jl
YXRlcyB0aGUgbWFwIGluIHRoZSBVSSBwcm9jZXNzIGFuZCBzZW5kcyBpdCB0byB0aGUgV2ViQ29u
dGVudCBwcm9jZXNzIGFzIHBhcnQgb2YgdGhlIFdlYlByb2Nlc3MKKyAgICAgICAgY3JlYXRpb24g
cGFyYW1ldGVycy4KKworICAgICAgICBBUEkgdGVzdDogV2ViS2l0Lk1pbWVUeXBlcworCisgICAg
ICAgICogcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpv
dmVycmlkZGVuTWltZVR5cGVzTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbW1vbk1lZGlhVHlw
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29tbW9uTWltZVR5cGVzTWFwKToKKyAgICAgICAgKFdl
YkNvcmU6OnR5cGVzRm9yQ29tbW9uRXh0ZW5zaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NSU1F
VHlwZVJlZ2lzdHJ5Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjptZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlk
bDoKKwogMjAyMC0wMS0xNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0xGQ11bSUZDXSBVc2UgT3B0aW9uYWwgZm9yIHBhcnRpYWxMZWFkaW5nL1RyYWlsaW5n
VGV4dEl0ZW0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0
cnkuY3BwCShyZXZpc2lvbiAyNTQ2MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1F
VHlwZVJlZ2lzdHJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjc0LDE3ICsyNzQsMjMgQEAgY29u
c3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aQogICAgIHJldHVybiB1bnN1cHBv
cnRlZFRleHRNSU1FVHlwZXM7CiB9CiAKLXN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiogdHlw
ZXNGb3JDb21tb25FeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCitPcHRpb25hbDxI
YXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4+
JiBvdmVycmlkZGVuTWltZVR5cGVzTWFwKCkKIHsKLSAgICBzdGF0aWMgY29uc3QgYXV0byBtYXAg
PSBtYWtlTmV2ZXJEZXN0cm95ZWQoW10gewotICAgICAgICBzdHJ1Y3QgVHlwZUV4dGVuc2lvblBh
aXIgewotICAgICAgICAgICAgQVNDSUlMaXRlcmFsIHR5cGU7Ci0gICAgICAgICAgICBBU0NJSUxp
dGVyYWwgZXh0ZW5zaW9uOwotICAgICAgICB9OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxP
cHRpb25hbDxIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0
aXZlSGFzaD4+PiBtYXA7CisgICAgcmV0dXJuIG1hcDsKK30KKworY29uc3Qgc3RkOjppbml0aWFs
aXplcl9saXN0PFR5cGVFeHRlbnNpb25QYWlyPiYgY29tbW9uTWVkaWFUeXBlcygpCit7CisgICAg
Ly8gQSB0YWJsZSBvZiBjb21tb24gbWVkaWEgTUlNRSB0eXBlcyBhbmQgZmlsZSBleHRlbnRpb25z
IHVzZWQgd2hlbiBhIHBsYXRmb3JtJ3MKKyAgICAvLyBzcGVjaWZpYyBNSU1FIHR5cGUgbG9va3Vw
IGRvZXNuJ3QgaGF2ZSBhIG1hdGNoIGZvciBhIG1lZGlhIGZpbGUgZXh0ZW5zaW9uLgorICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VHlwZUV4dGVuc2lvblBh
aXI+PiBjb21tb25NZWRpYVR5cGVzOwogCi0gICAgICAgIC8vIEEgdGFibGUgb2YgY29tbW9uIG1l
ZGlhIE1JTUUgdHlwZXMgYW5kIGZpbGUgZXh0ZW50aW9ucyB1c2VkIHdoZW4gYSBwbGF0Zm9ybSdz
Ci0gICAgICAgIC8vIHNwZWNpZmljIE1JTUUgdHlwZSBsb29rdXAgZG9lc24ndCBoYXZlIGEgbWF0
Y2ggZm9yIGEgbWVkaWEgZmlsZSBleHRlbnNpb24uCi0gICAgICAgIHN0YXRpYyBjb25zdCBUeXBl
RXh0ZW5zaW9uUGFpciBjb21tb25NZWRpYVR5cGVzW10gPSB7CisgICAgc3RhdGljIHN0ZDo6b25j
ZV9mbGFnIG9uY2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKAorICAgICAgICBvbmNlRmxhZywK
KyAgICAgICAgW10geworICAgICAgICBjb21tb25NZWRpYVR5cGVzLmdldCgpID0gewogICAgICAg
ICAgICAgLy8gT2dnCiAgICAgICAgICAgICB7ICJhcHBsaWNhdGlvbi9vZ2ciX3MsICJvZ3giX3Mg
fSwKICAgICAgICAgICAgIHsgImF1ZGlvL29nZyJfcywgIm9nZyJfcyB9LApAQCAtMzYzLDEyICsz
NjksMjIgQEAgc3RhdGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+KiB0eXBlc0ZvckNvbQogICAgICAg
ICAgICAgeyAiYXVkaW8veC13YXYiX3MsICJ3YXYiX3MgfSwKICAgICAgICAgICAgIHsgImF1ZGlv
L3ZuZC53YXZlIl9zLCAid2F2Il9zIH0sCiAgICAgICAgIH07CisgICAgfSk7CisgICAgcmV0dXJu
IGNvbW1vbk1lZGlhVHlwZXM7Cit9CisKK2NvbnN0IEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8U3Ry
aW5nPiwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgY29tbW9uTWltZVR5cGVzTWFwKCkKK3sK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+
LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBtYXA7CiAKLSAgICAgICAgSGFzaE1hcDxTdHJp
bmcsIFZlY3RvcjxTdHJpbmc+LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IG1hcDsKLSAgICAg
ICAgZm9yIChhdXRvJiBwYWlyIDogY29tbW9uTWVkaWFUeXBlcykgeworICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZSgKKyAgICAgICAgb25jZUZs
YWcsCisgICAgICAgIFtdIHsKKyAgICAgICAgZm9yIChhdXRvJiBwYWlyIDogY29tbW9uTWVkaWFU
eXBlcygpKSB7CiAgICAgICAgICAgICBBU0NJSUxpdGVyYWwgdHlwZSA9IHBhaXIudHlwZTsKICAg
ICAgICAgICAgIEFTQ0lJTGl0ZXJhbCBleHRlbnNpb24gPSBwYWlyLmV4dGVuc2lvbjsKLSAgICAg
ICAgICAgIG1hcC5lbnN1cmUoZXh0ZW5zaW9uLCBbdHlwZSwgZXh0ZW5zaW9uXSB7CisgICAgICAg
ICAgICBtYXAuZ2V0KCkuZW5zdXJlKGV4dGVuc2lvbiwgW3R5cGUsIGV4dGVuc2lvbl0gewogICAg
ICAgICAgICAgICAgIC8vIEZpcnN0IHR5cGUgaW4gdGhlIHZlY3RvciBtdXN0IGFsd2F5cyBiZSB0
aGUgb25lIGZyb20gZ2V0TUlNRVR5cGVGb3JFeHRlbnNpb24sCiAgICAgICAgICAgICAgICAgLy8g
c28gd2UgY2FuIHVzZSB0aGUgbWFwIHdpdGhvdXQgYWxzbyBjYWxsaW5nIGdldE1JTUVUeXBlRm9y
RXh0ZW5zaW9uIGVhY2ggdGltZS4KICAgICAgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiBzeW5v
bnltczsKQEAgLTM3OCwxMCArMzk0LDIwIEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiog
dHlwZXNGb3JDb20KICAgICAgICAgICAgICAgICByZXR1cm4gc3lub255bXM7CiAgICAgICAgICAg
ICB9KS5pdGVyYXRvci0+dmFsdWUuYXBwZW5kKHR5cGUpOwogICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiBtYXA7Ci0gICAgfSgpKTsKLSAgICBhdXRvIG1hcEVudHJ5ID0gbWFwLmdldCgpLmZpbmQo
ZXh0ZW5zaW9uKTsKLSAgICBpZiAobWFwRW50cnkgPT0gbWFwLmdldCgpLmVuZCgpKQorICAgIH0p
OworICAgIHJldHVybiBtYXA7Cit9CisKK3N0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiogdHlw
ZXNGb3JDb21tb25FeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCit7CisgICAgaWYg
KG92ZXJyaWRkZW5NaW1lVHlwZXNNYXAoKS5oYXNWYWx1ZSgpKSB7CisgICAgICAgIGF1dG8gbWFw
RW50cnkgPSBvdmVycmlkZGVuTWltZVR5cGVzTWFwKCktPmZpbmQoZXh0ZW5zaW9uKTsKKyAgICAg
ICAgaWYgKG1hcEVudHJ5ID09IG92ZXJyaWRkZW5NaW1lVHlwZXNNYXAoKS0+ZW5kKCkpCisgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuICZtYXBFbnRyeS0+dmFsdWU7
CisgICAgfQorICAgIGF1dG8gbWFwRW50cnkgPSBjb21tb25NaW1lVHlwZXNNYXAoKS5maW5kKGV4
dGVuc2lvbik7CisgICAgaWYgKG1hcEVudHJ5ID09IGNvbW1vbk1pbWVUeXBlc01hcCgpLmVuZCgp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gJm1hcEVudHJ5LT52YWx1ZTsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmgJKHJl
dmlzaW9uIDI1NDYyOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0
cnkuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0
cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4+JiBvdmVycmlkZGVuTWltZVR5cGVzTWFw
KCk7CitXRUJDT1JFX0VYUE9SVCBjb25zdCBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4s
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIGNvbW1vbk1pbWVUeXBlc01hcCgpOworCitzdHJ1
Y3QgVHlwZUV4dGVuc2lvblBhaXIgeworICAgIEFTQ0lJTGl0ZXJhbCB0eXBlOworICAgIEFTQ0lJ
TGl0ZXJhbCBleHRlbnNpb247Cit9OworCitXRUJDT1JFX0VYUE9SVCBjb25zdCBzdGQ6OmluaXRp
YWxpemVyX2xpc3Q8VHlwZUV4dGVuc2lvblBhaXI+JiBjb21tb25NZWRpYVR5cGVzKCk7CisKIHN0
cnVjdCBNSU1FVHlwZVJlZ2lzdHJ5VGhyZWFkR2xvYmFsRGF0YSB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoTUlNRVR5cGVSZWdpc3RyeVRocmVhZEdsb2JhbERhdGEpOwogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwpAQCAtNTIsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6
IFdlYktpdCBjb2Rpbmcgc3R5bGUgc2F5cyB3ZSBzaG91bGQgbm90IGhhdmUgdGhlIHdvcmQgImdl
dCIgaW4gdGhlIG5hbWVzIG9mIHRoZXNlIGZ1bmN0aW9ucy4KICAgICBzdGF0aWMgVmVjdG9yPFN0
cmluZz4gZ2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBnZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1F
VHlwZShjb25zdCBTdHJpbmcmIHR5cGUpOwotICAgIHN0YXRpYyBTdHJpbmcgZ2V0TWVkaWFNSU1F
VHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbik7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFN0cmluZyBnZXRNZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0
cmluZyYgZXh0ZW5zaW9uKTsKICAgICBzdGF0aWMgVmVjdG9yPFN0cmluZz4gZ2V0TWVkaWFNSU1F
VHlwZXNGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pOwogCiAgICAgc3RhdGlj
IFN0cmluZyBnZXRNSU1FVHlwZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDI1NDYyOSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI4LDYg
KzEyOCw3IEBACiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgogI2luY2x1ZGUgIk1lbW9y
eUNhY2hlLmgiCiAjaW5jbHVkZSAiTWVtb3J5SW5mby5oIgorI2luY2x1ZGUgIk1pbWVUeXBlUmVn
aXN0cnkuaCIKICNpbmNsdWRlICJNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgiCiAjaW5jbHVk
ZSAiTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTW9ja1BhZ2VPdmVy
bGF5LmgiCkBAIC01NDE4LDQgKzU0MTksOSBAQCBTdHJpbmcgSW50ZXJuYWxzOjpzeXN0ZW1Db2xv
ckZvckNTU1ZhbHVlCiAgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5zeXN0ZW1D
b2xvcihpZCwgb3B0aW9ucykuY3NzVGV4dCgpOwogfQogCitTdHJpbmcgSW50ZXJuYWxzOjptZWRp
YU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uKQoreworICAgIHJl
dHVybiBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGV4dGVu
c2lvbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaAkocmV2aXNpb24gMjU0NjI5KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaAkod29ya2luZyBjb3B5KQpAQCAtOTI2LDYgKzkyNiw4IEBAIHB1YmxpYzoK
IAogICAgIFN0cmluZyBzeXN0ZW1Db2xvckZvckNTU1ZhbHVlKGNvbnN0IFN0cmluZyYgY3NzVmFs
dWUsIGJvb2wgdXNlRGFya01vZGVBcHBlYXJhbmNlLCBib29sIHVzZUVsZXZhdGVkVXNlckludGVy
ZmFjZUxldmVsKTsKIAorICAgIFN0cmluZyBtZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0
IFN0cmluZyYgZXh0ZW5zaW9uKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMo
RG9jdW1lbnQmKTsKICAgICBEb2N1bWVudCogY29udGV4dERvY3VtZW50KCkgY29uc3Q7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCShyZXZpc2lvbiAyNTQ2MjkpCisrKyBT
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTgz
Myw0ICs4MzMsNiBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKICAgICBib29sZWFuIGhhc1Nh
bmRib3hNYWNoTG9va3VwQWNjZXNzVG9YUENTZXJ2aWNlTmFtZShET01TdHJpbmcgcHJvY2Vzcywg
RE9NU3RyaW5nIHNlcnZpY2UpOwogICAgIAogICAgIERPTVN0cmluZyBzeXN0ZW1Db2xvckZvckNT
U1ZhbHVlKERPTVN0cmluZyBjc3NWYWx1ZSwgYm9vbGVhbiB1c2VEYXJrTW9kZUFwcGVhcmFuY2Us
IGJvb2xlYW4gdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOworCisgICAgRE9NU3RyaW5n
IG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb24oRE9NU3RyaW5nIGV4dGVuc2lvbik7CiB9OwpJbmRl
eDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI1NDYyOSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDEtMTggIFBlciBBcm5lIFZvbGxh
biAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gTWVkaWEgbWltZSB0eXBl
cyBtYXAgc2hvdWxkIGJlIGNyZWF0ZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjQ3OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlbmQgdGhlIG1pbWUgdHlwZSBtYXAg
ZnJvbSB0aGUgVUkgcHJvY2VzcyB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGFzIHBhcnQgb2Yg
dGhlCisgICAgICAgIFdlYlByb2Nlc3MgY3JlYXRpb24gcGFyYW1ldGVycy4KKworICAgICAgICAq
IFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIwLTAxLTE1ICBEb24g
T2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgU2hhcmUgV2ViSW5z
cGVjdG9yIHN0dWJzIGZvciBwb3J0cyB3aXRob3V0IGxvY2FsIGluc3BlY3Rpb24KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCShyZXZpc2lvbiAyNTQ2MjkpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY2LDYgKzE2Niw3
IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKICNpZiBQTEFURk9S
TShDT0NPQSkKICAgICBlbmNvZGVyIDw8IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOwogICAgIGVu
Y29kZXIgPDwgbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKKyAgICBlbmNvZGVyIDw8
IG1pbWVUeXBlc01hcDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTQz
Myw2ICs0MzQsMTQgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZAog
ICAgIGlmICghbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSA9
IFdURk1vdmUoKm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUpOworCisgICAgT3B0aW9u
YWw8T3B0aW9uYWw8SGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+LCBBU0NJSUNhc2VJbnNl
bnNpdGl2ZUhhc2g+Pj4gbWltZVR5cGVzTWFwOworICAgIGRlY29kZXIgPj4gbWltZVR5cGVzTWFw
OworICAgIGlmICghbWltZVR5cGVzTWFwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFy
YW1ldGVycy5taW1lVHlwZXNNYXAgPSBXVEZNb3ZlKCptaW1lVHlwZXNNYXApOworCisKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1NDYy
OSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aAkod29ya2luZyBjb3B5KQpAQCAtMjA4LDYgKzIwOCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBPcHRpb25hbDxTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU+IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOwogICAgIE9wdGlv
bmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhh
bmRsZTsKKyAgICBPcHRpb25hbDxIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJ
Q2FzZUluc2Vuc2l0aXZlSGFzaD4+IG1pbWVUeXBlc01hcDsKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQb29sQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMjU0NjI5KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBj
b3B5KQpAQCAtNDcsNiArNDcsNyBAQAogI2ltcG9ydCAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAj
aW1wb3J0ICJXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9y
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNv
cmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5oPgpAQCAtMzQzLDYg
KzM0NCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICNlbmRp
ZgogICAgICAgICBwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUgPSBX
VEZNb3ZlKGhhbmRsZSk7CiAgICAgfQorICAgIHBhcmFtZXRlcnMubWltZVR5cGVzTWFwID0gY29t
bW9uTWltZVR5cGVzTWFwKCk7CiAjZW5kaWYKICAgICAKICNpZiBQTEFURk9STShJT1MpCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0JKHJldmlzaW9uIDI1NDYyOSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1OCw2ICsyNTgsOCBAQCB2b2lk
IFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByCiAgICAgaWYgKHBhcmFtZXRlcnMu
bmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgU2FuZGJveEV4dGVuc2lv
bjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNp
b25IYW5kbGUpOwogICAgIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpzZXRIYXNDb25z
dW1lZFNhbmRib3hFeHRlbnNpb25zKHBhcmFtZXRlcnMubmVIZWxwZXJFeHRlbnNpb25IYW5kbGUu
aGFzVmFsdWUoKSAmJiBwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUu
aGFzVmFsdWUoKSk7CisgICAgaWYgKHBhcmFtZXRlcnMubWltZVR5cGVzTWFwKQorICAgICAgICBv
dmVycmlkZGVuTWltZVR5cGVzTWFwKCkgPSBXVEZNb3ZlKHBhcmFtZXRlcnMubWltZVR5cGVzTWFw
KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFRvb2xzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDgwMSkKKysr
IFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAx
LTE4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29j
b2FdIE1lZGlhIG1pbWUgdHlwZXMgbWFwIHNob3VsZCBiZSBjcmVhdGVkIGluIHRoZSBVSSBwcm9j
ZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY0
NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01pbWVUeXBlcy5tbTogQWRkZWQuCisg
ICAgICAgIChURVNUKToKKwogMjAyMC0wMS0xNyAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGln
YWxpYS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJz
aW5nCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU0NjI5KQorKysgVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTg2MCw2ICs4NjAsNyBAQAogCQlDMEFEQkU5NjEyRkNBNzlCMDBE
MkMxMjkgLyogc2ltcGxlLWZvcm0uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMEFEQkU4NDEyRkNBNkI2MDBEMkMxMjkgLyogc2ltcGxl
LWZvcm0uaHRtbCAqLzsgfTsKIAkJQzBCRDY2OUYxMzFEM0NGRjAwRTE4RjJBIC8qIFJlc3BvbnNp
dmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHlfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQkQ2NjlFMTMxRDNDRkYwMEUxOEYyQSAvKiBS
ZXNwb25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0J1bmRsZS5jcHAgKi87IH07CiAJCUMw
QzVEM0M2MTQ1OTkxMjkwMEE4MDJBNiAvKiBHZXRCYWNraW5nU2NhbGVGYWN0b3JfQnVuZGxlLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzBDNUQzQkQx
NDU5OEI2RjAwQTgwMkE2IC8qIEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW0gKi87IH07
CisJCUMxNjkyREUwMjNEM0Q3OTEwMDZFODhGNyAvKiBNaW1lVHlwZXMubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTY5MkRERjIzRDNENzkxMDA2RTg4
RjcgLyogTWltZVR5cGVzLm1tICovOyB9OwogCQlDMjBGODhBNzIyOTVCOTY3MDBENjEwRkEgLyog
Q29yZVRleHQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzIwRjg4QTYyMjk1Qjk2NzAwRDYxMEZBIC8qIENvcmVUZXh0LmZyYW1ld29y
ayAqLzsgfTsKIAkJQzIyRkEzMkIyMjhGODcwODAwOUQ3OTg4IC8qIFRleHRXaWR0aC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyMkZBMzJBMjI4Rjg3
MDgwMDlENzk4OCAvKiBUZXh0V2lkdGgubW0gKi87IH07CiAJCUMyMkZBMzJEMjI4RjhBRUIwMDlE
Nzk4OCAvKiBUZXh0V2lkdGguaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMjJGQTMyQzIyOEY4NzdBMDA5RDc5ODggLyogVGV4dFdpZHRo
Lmh0bWwgKi87IH07CkBAIC0yMzc5LDYgKzIzODAsNyBAQAogCQlDMEJENjY5RTEzMUQzQ0ZGMDBF
MThGMkEgLyogUmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseV9CdW5kbGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzcG9uc2l2ZW5lc3NUaW1lckRv
ZXNudEZpcmVFYXJseV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MEM1RDNCQzE0NTk4QjZGMDBBODAyQTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR2V0QmFja2luZ1NjYWxlRmFjdG9y
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMEM1RDNCRDE0NTk4QjZGMDBBODAy
QTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yX0J1bmRsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxNjkyRERGMjNEM0Q3OTEwMDZFODhGNyAvKiBN
aW1lVHlwZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNaW1lVHlwZXMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxRDhFRTIxMjAyOEU4RTMwMDhFQjE0MSAvKiBXZWJQcm9j
ZXNzVGVybWluYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViUHJvY2Vzc1Rlcm1pbmF0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzIw
Rjg4QTYyMjk1Qjk2NzAwRDYxMEZBIC8qIENvcmVUZXh0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBu
YW1lID0gQ29yZVRleHQuZnJhbWV3b3JrOyBwYXRoID0gU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr
cy9Db3JlVGV4dC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwogCQlDMjJGQTMy
QTIyOEY4NzA4MDA5RDc5ODggLyogVGV4dFdpZHRoLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
VGV4dFdpZHRoLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjgxOCw2ICsyODIw
LDcgQEAKIAkJMEYxMzlFNzQxQTQyM0E0NjAwRjU5MEY1IC8qIGNvY29hICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlDMTY5MkRERjIzRDNENzkxMDA2RTg4
RjcgLyogTWltZVR5cGVzLm1tICovLAogCQkJCTBGMTM5RTc1MUE0MjNBNTMwMEY1OTBGNSAvKiBX
ZWFrT2JqQ1B0ci5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gY29jb2E7CkBAIC00Nzk3LDYgKzQ4
MDAsNyBAQAogCQkJCTVDMEJGODk0MURENTk5QzkwMEIwMDMyOCAvKiBNZW51VHlwZXNGb3JNb3Vz
ZUV2ZW50cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxNjVGRTA0MjAxRUU2MjAwMDlGN0VDMyAv
KiBNZXNzYWdlUG9ydFByb3ZpZGVycy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE1QjE0OURFMUY1
QTE5RUEwMEM2REFGRiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUMxNjkyREUwMjNEM0Q3OTEwMDZFODhGNyAvKiBNaW1lVHlwZXMubW0gaW4gU291cmNlcyAqLywK
IAkJCQk1MUNEMUM2QzFCMzhDRTQzMDAxNDJDQTUgLyogTW9kYWxBbGVydHMubW0gaW4gU291cmNl
cyAqLywKIAkJCQk3QzgzRTBCNjFEMEE2NEIzMDBGRUJDRjMgLyogTW9kYWxBbGVydHNTUEkuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMDExQTQxMUFFNjAwNDQ3QzRDIC8qIE1vdXNlTW92
ZUFmdGVyQ3Jhc2guY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9NaW1lVHlwZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvTWltZVR5cGVzLm1tCShub25leGlzdGVudCkKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01pbWVUeXBlcy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgV0tf
SEFWRV9DX1NQSQorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVz
dFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViQ29yZS9NaW1lVHlwZVJlZ2lzdHJ5Lmg+CisKK1RF
U1QoV2ViS2l0LCBNaW1lVHlwZXMpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBXS1JldGFpblB0
cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNy
ZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxl
VGVzdCIpKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NQb29sID0gKFdLUHJvY2Vz
c1Bvb2wgKiljb250ZXh0LmdldCgpOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDAp
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKKwor
ICAgIGZvciAoYXV0byYgcGFpciA6IFdlYkNvcmU6OmNvbW1vbk1lZGlhVHlwZXMoKSkgeworICAg
ICAgICBBU0NJSUxpdGVyYWwgZXh0ZW5zaW9uID0gcGFpci5leHRlbnNpb247CisKKyAgICAgICAg
YXV0byBqcyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAid2luZG93LmludGVybmFscy5t
ZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKFwiJXNcIikiLCBleHRlbnNpb24uY2hhcmFjdGVycygp
XTsKKworICAgICAgICBhdXRvIG1pbWVUeXBlID0gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5n
SmF2YVNjcmlwdDpqc107CisKKyAgICAgICAgQVNTRVJUX1RSVUUoV2ViQ29yZTo6TUlNRVR5cGVS
ZWdpc3RyeTo6Z2V0TWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihleHRlbnNpb24pID09IFN0cmlu
ZyhtaW1lVHlwZSkpOworICAgIH0KK30KKworI2VuZGlmIC8vIFdLX0hBVkVfQ19TUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388165</attachid>
            <date>2020-01-18 18:09:49 -0800</date>
            <delta_ts>2020-01-18 18:21:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206478-20200118180948.patch</filename>
            <type>text/plain</type>
            <size>19374</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDc1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAxLTE4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIE1lZGlhIG1p
bWUgdHlwZXMgbWFwIHNob3VsZCBiZSBjcmVhdGVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY0NzgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGluZyB0aGlzIG1h
cCBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHdpbGwgYWNjZXNzIHRoZSBsYXVuY2ggc2Vydmlj
ZXMgZGFlbW9uLCB3aGljaCB3aWxsIGJlIGJsb2NrZWQuCisgICAgICAgIFRoaXMgcGF0Y2ggY3Jl
YXRlcyB0aGUgbWFwIGluIHRoZSBVSSBwcm9jZXNzIGFuZCBzZW5kcyBpdCB0byB0aGUgV2ViQ29u
dGVudCBwcm9jZXNzIGFzIHBhcnQgb2YgdGhlIFdlYlByb2Nlc3MKKyAgICAgICAgY3JlYXRpb24g
cGFyYW1ldGVycy4KKworICAgICAgICBBUEkgdGVzdDogV2ViS2l0Lk1pbWVUeXBlcworCisgICAg
ICAgICogcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpv
dmVycmlkZGVuTWltZVR5cGVzTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbW1vbk1lZGlhVHlw
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29tbW9uTWltZVR5cGVzTWFwKToKKyAgICAgICAgKFdl
YkNvcmU6OnR5cGVzRm9yQ29tbW9uRXh0ZW5zaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NSU1F
VHlwZVJlZ2lzdHJ5Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjptZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlk
bDoKKwogMjAyMC0wMS0xNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0xGQ11bSUZDXSBVc2UgT3B0aW9uYWwgZm9yIHBhcnRpYWxMZWFkaW5nL1RyYWlsaW5n
VGV4dEl0ZW0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0
cnkuY3BwCShyZXZpc2lvbiAyNTQ2MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1F
VHlwZVJlZ2lzdHJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjc0LDE3ICsyNzQsMjMgQEAgY29u
c3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aQogICAgIHJldHVybiB1bnN1cHBv
cnRlZFRleHRNSU1FVHlwZXM7CiB9CiAKLXN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiogdHlw
ZXNGb3JDb21tb25FeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCitPcHRpb25hbDxI
YXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4+
JiBvdmVycmlkZGVuTWltZVR5cGVzTWFwKCkKIHsKLSAgICBzdGF0aWMgY29uc3QgYXV0byBtYXAg
PSBtYWtlTmV2ZXJEZXN0cm95ZWQoW10gewotICAgICAgICBzdHJ1Y3QgVHlwZUV4dGVuc2lvblBh
aXIgewotICAgICAgICAgICAgQVNDSUlMaXRlcmFsIHR5cGU7Ci0gICAgICAgICAgICBBU0NJSUxp
dGVyYWwgZXh0ZW5zaW9uOwotICAgICAgICB9OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxP
cHRpb25hbDxIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0
aXZlSGFzaD4+PiBtYXA7CisgICAgcmV0dXJuIG1hcDsKK30KKworY29uc3Qgc3RkOjppbml0aWFs
aXplcl9saXN0PFR5cGVFeHRlbnNpb25QYWlyPiYgY29tbW9uTWVkaWFUeXBlcygpCit7CisgICAg
Ly8gQSB0YWJsZSBvZiBjb21tb24gbWVkaWEgTUlNRSB0eXBlcyBhbmQgZmlsZSBleHRlbnRpb25z
IHVzZWQgd2hlbiBhIHBsYXRmb3JtJ3MKKyAgICAvLyBzcGVjaWZpYyBNSU1FIHR5cGUgbG9va3Vw
IGRvZXNuJ3QgaGF2ZSBhIG1hdGNoIGZvciBhIG1lZGlhIGZpbGUgZXh0ZW5zaW9uLgorICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VHlwZUV4dGVuc2lvblBh
aXI+PiBjb21tb25NZWRpYVR5cGVzOwogCi0gICAgICAgIC8vIEEgdGFibGUgb2YgY29tbW9uIG1l
ZGlhIE1JTUUgdHlwZXMgYW5kIGZpbGUgZXh0ZW50aW9ucyB1c2VkIHdoZW4gYSBwbGF0Zm9ybSdz
Ci0gICAgICAgIC8vIHNwZWNpZmljIE1JTUUgdHlwZSBsb29rdXAgZG9lc24ndCBoYXZlIGEgbWF0
Y2ggZm9yIGEgbWVkaWEgZmlsZSBleHRlbnNpb24uCi0gICAgICAgIHN0YXRpYyBjb25zdCBUeXBl
RXh0ZW5zaW9uUGFpciBjb21tb25NZWRpYVR5cGVzW10gPSB7CisgICAgc3RhdGljIHN0ZDo6b25j
ZV9mbGFnIG9uY2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKAorICAgICAgICBvbmNlRmxhZywK
KyAgICAgICAgW10geworICAgICAgICBjb21tb25NZWRpYVR5cGVzLmdldCgpID0gewogICAgICAg
ICAgICAgLy8gT2dnCiAgICAgICAgICAgICB7ICJhcHBsaWNhdGlvbi9vZ2ciX3MsICJvZ3giX3Mg
fSwKICAgICAgICAgICAgIHsgImF1ZGlvL29nZyJfcywgIm9nZyJfcyB9LApAQCAtMzYzLDEyICsz
NjksMjIgQEAgc3RhdGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+KiB0eXBlc0ZvckNvbQogICAgICAg
ICAgICAgeyAiYXVkaW8veC13YXYiX3MsICJ3YXYiX3MgfSwKICAgICAgICAgICAgIHsgImF1ZGlv
L3ZuZC53YXZlIl9zLCAid2F2Il9zIH0sCiAgICAgICAgIH07CisgICAgfSk7CisgICAgcmV0dXJu
IGNvbW1vbk1lZGlhVHlwZXM7Cit9CisKK2NvbnN0IEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8U3Ry
aW5nPiwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgY29tbW9uTWltZVR5cGVzTWFwKCkKK3sK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+
LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBtYXA7CiAKLSAgICAgICAgSGFzaE1hcDxTdHJp
bmcsIFZlY3RvcjxTdHJpbmc+LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IG1hcDsKLSAgICAg
ICAgZm9yIChhdXRvJiBwYWlyIDogY29tbW9uTWVkaWFUeXBlcykgeworICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZSgKKyAgICAgICAgb25jZUZs
YWcsCisgICAgICAgIFtdIHsKKyAgICAgICAgZm9yIChhdXRvJiBwYWlyIDogY29tbW9uTWVkaWFU
eXBlcygpKSB7CiAgICAgICAgICAgICBBU0NJSUxpdGVyYWwgdHlwZSA9IHBhaXIudHlwZTsKICAg
ICAgICAgICAgIEFTQ0lJTGl0ZXJhbCBleHRlbnNpb24gPSBwYWlyLmV4dGVuc2lvbjsKLSAgICAg
ICAgICAgIG1hcC5lbnN1cmUoZXh0ZW5zaW9uLCBbdHlwZSwgZXh0ZW5zaW9uXSB7CisgICAgICAg
ICAgICBtYXAuZ2V0KCkuZW5zdXJlKGV4dGVuc2lvbiwgW3R5cGUsIGV4dGVuc2lvbl0gewogICAg
ICAgICAgICAgICAgIC8vIEZpcnN0IHR5cGUgaW4gdGhlIHZlY3RvciBtdXN0IGFsd2F5cyBiZSB0
aGUgb25lIGZyb20gZ2V0TUlNRVR5cGVGb3JFeHRlbnNpb24sCiAgICAgICAgICAgICAgICAgLy8g
c28gd2UgY2FuIHVzZSB0aGUgbWFwIHdpdGhvdXQgYWxzbyBjYWxsaW5nIGdldE1JTUVUeXBlRm9y
RXh0ZW5zaW9uIGVhY2ggdGltZS4KICAgICAgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiBzeW5v
bnltczsKQEAgLTM3OCwxMCArMzk0LDIwIEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiog
dHlwZXNGb3JDb20KICAgICAgICAgICAgICAgICByZXR1cm4gc3lub255bXM7CiAgICAgICAgICAg
ICB9KS5pdGVyYXRvci0+dmFsdWUuYXBwZW5kKHR5cGUpOwogICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiBtYXA7Ci0gICAgfSgpKTsKLSAgICBhdXRvIG1hcEVudHJ5ID0gbWFwLmdldCgpLmZpbmQo
ZXh0ZW5zaW9uKTsKLSAgICBpZiAobWFwRW50cnkgPT0gbWFwLmdldCgpLmVuZCgpKQorICAgIH0p
OworICAgIHJldHVybiBtYXA7Cit9CisKK3N0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiogdHlw
ZXNGb3JDb21tb25FeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCit7CisgICAgaWYg
KG92ZXJyaWRkZW5NaW1lVHlwZXNNYXAoKS5oYXNWYWx1ZSgpKSB7CisgICAgICAgIGF1dG8gbWFw
RW50cnkgPSBvdmVycmlkZGVuTWltZVR5cGVzTWFwKCktPmZpbmQoZXh0ZW5zaW9uKTsKKyAgICAg
ICAgaWYgKG1hcEVudHJ5ID09IG92ZXJyaWRkZW5NaW1lVHlwZXNNYXAoKS0+ZW5kKCkpCisgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuICZtYXBFbnRyeS0+dmFsdWU7
CisgICAgfQorICAgIGF1dG8gbWFwRW50cnkgPSBjb21tb25NaW1lVHlwZXNNYXAoKS5maW5kKGV4
dGVuc2lvbik7CisgICAgaWYgKG1hcEVudHJ5ID09IGNvbW1vbk1pbWVUeXBlc01hcCgpLmVuZCgp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gJm1hcEVudHJ5LT52YWx1ZTsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmgJKHJl
dmlzaW9uIDI1NDYyOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0
cnkuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0
cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4+JiBvdmVycmlkZGVuTWltZVR5cGVzTWFw
KCk7CitXRUJDT1JFX0VYUE9SVCBjb25zdCBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4s
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIGNvbW1vbk1pbWVUeXBlc01hcCgpOworCitzdHJ1
Y3QgVHlwZUV4dGVuc2lvblBhaXIgeworICAgIEFTQ0lJTGl0ZXJhbCB0eXBlOworICAgIEFTQ0lJ
TGl0ZXJhbCBleHRlbnNpb247Cit9OworCitXRUJDT1JFX0VYUE9SVCBjb25zdCBzdGQ6OmluaXRp
YWxpemVyX2xpc3Q8VHlwZUV4dGVuc2lvblBhaXI+JiBjb21tb25NZWRpYVR5cGVzKCk7CisKIHN0
cnVjdCBNSU1FVHlwZVJlZ2lzdHJ5VGhyZWFkR2xvYmFsRGF0YSB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoTUlNRVR5cGVSZWdpc3RyeVRocmVhZEdsb2JhbERhdGEpOwogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwpAQCAtNTIsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6
IFdlYktpdCBjb2Rpbmcgc3R5bGUgc2F5cyB3ZSBzaG91bGQgbm90IGhhdmUgdGhlIHdvcmQgImdl
dCIgaW4gdGhlIG5hbWVzIG9mIHRoZXNlIGZ1bmN0aW9ucy4KICAgICBzdGF0aWMgVmVjdG9yPFN0
cmluZz4gZ2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBnZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1F
VHlwZShjb25zdCBTdHJpbmcmIHR5cGUpOwotICAgIHN0YXRpYyBTdHJpbmcgZ2V0TWVkaWFNSU1F
VHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbik7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFN0cmluZyBnZXRNZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0
cmluZyYgZXh0ZW5zaW9uKTsKICAgICBzdGF0aWMgVmVjdG9yPFN0cmluZz4gZ2V0TWVkaWFNSU1F
VHlwZXNGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pOwogCiAgICAgc3RhdGlj
IFN0cmluZyBnZXRNSU1FVHlwZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDI1NDYyOSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI4LDYg
KzEyOCw3IEBACiAjaW5jbHVkZSAiTWVkaWFTdHJlYW1UcmFjay5oIgogI2luY2x1ZGUgIk1lbW9y
eUNhY2hlLmgiCiAjaW5jbHVkZSAiTWVtb3J5SW5mby5oIgorI2luY2x1ZGUgIk1pbWVUeXBlUmVn
aXN0cnkuaCIKICNpbmNsdWRlICJNb2NrQXVkaW9EZXN0aW5hdGlvbkNvY29hLmgiCiAjaW5jbHVk
ZSAiTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiTW9ja1BhZ2VPdmVy
bGF5LmgiCkBAIC01NDE4LDQgKzU0MTksOSBAQCBTdHJpbmcgSW50ZXJuYWxzOjpzeXN0ZW1Db2xv
ckZvckNTU1ZhbHVlCiAgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5zeXN0ZW1D
b2xvcihpZCwgb3B0aW9ucykuY3NzVGV4dCgpOwogfQogCitTdHJpbmcgSW50ZXJuYWxzOjptZWRp
YU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uKQoreworICAgIHJl
dHVybiBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGV4dGVu
c2lvbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaAkocmV2aXNpb24gMjU0NjI5KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaAkod29ya2luZyBjb3B5KQpAQCAtOTI2LDYgKzkyNiw4IEBAIHB1YmxpYzoK
IAogICAgIFN0cmluZyBzeXN0ZW1Db2xvckZvckNTU1ZhbHVlKGNvbnN0IFN0cmluZyYgY3NzVmFs
dWUsIGJvb2wgdXNlRGFya01vZGVBcHBlYXJhbmNlLCBib29sIHVzZUVsZXZhdGVkVXNlckludGVy
ZmFjZUxldmVsKTsKIAorICAgIFN0cmluZyBtZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0
IFN0cmluZyYgZXh0ZW5zaW9uKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMo
RG9jdW1lbnQmKTsKICAgICBEb2N1bWVudCogY29udGV4dERvY3VtZW50KCkgY29uc3Q7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCShyZXZpc2lvbiAyNTQ2MjkpCisrKyBT
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTgz
Myw0ICs4MzMsNiBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKICAgICBib29sZWFuIGhhc1Nh
bmRib3hNYWNoTG9va3VwQWNjZXNzVG9YUENTZXJ2aWNlTmFtZShET01TdHJpbmcgcHJvY2Vzcywg
RE9NU3RyaW5nIHNlcnZpY2UpOwogICAgIAogICAgIERPTVN0cmluZyBzeXN0ZW1Db2xvckZvckNT
U1ZhbHVlKERPTVN0cmluZyBjc3NWYWx1ZSwgYm9vbGVhbiB1c2VEYXJrTW9kZUFwcGVhcmFuY2Us
IGJvb2xlYW4gdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOworCisgICAgRE9NU3RyaW5n
IG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb24oRE9NU3RyaW5nIGV4dGVuc2lvbik7CiB9OwpJbmRl
eDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI1NDYyOSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDEtMTggIFBlciBBcm5lIFZvbGxh
biAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gTWVkaWEgbWltZSB0eXBl
cyBtYXAgc2hvdWxkIGJlIGNyZWF0ZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjQ3OAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlbmQgdGhlIG1pbWUgdHlwZSBtYXAg
ZnJvbSB0aGUgVUkgcHJvY2VzcyB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGFzIHBhcnQgb2Yg
dGhlCisgICAgICAgIFdlYlByb2Nlc3MgY3JlYXRpb24gcGFyYW1ldGVycy4KKworICAgICAgICAq
IFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIwLTAxLTE1ICBEb24g
T2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgU2hhcmUgV2ViSW5z
cGVjdG9yIHN0dWJzIGZvciBwb3J0cyB3aXRob3V0IGxvY2FsIGluc3BlY3Rpb24KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCShyZXZpc2lvbiAyNTQ2MjkpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY2LDYgKzE2Niw3
IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKICNpZiBQTEFURk9S
TShDT0NPQSkKICAgICBlbmNvZGVyIDw8IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOwogICAgIGVu
Y29kZXIgPDwgbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKKyAgICBlbmNvZGVyIDw8
IG1pbWVUeXBlc01hcDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTQz
Myw2ICs0MzQsMTQgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZAog
ICAgIGlmICghbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSA9
IFdURk1vdmUoKm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUpOworCisgICAgT3B0aW9u
YWw8T3B0aW9uYWw8SGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+LCBBU0NJSUNhc2VJbnNl
bnNpdGl2ZUhhc2g+Pj4gbWltZVR5cGVzTWFwOworICAgIGRlY29kZXIgPj4gbWltZVR5cGVzTWFw
OworICAgIGlmICghbWltZVR5cGVzTWFwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFy
YW1ldGVycy5taW1lVHlwZXNNYXAgPSBXVEZNb3ZlKCptaW1lVHlwZXNNYXApOworCisKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1NDYy
OSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMu
aAkod29ya2luZyBjb3B5KQpAQCAtMjA4LDYgKzIwOCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBPcHRpb25hbDxTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGU+IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOwogICAgIE9wdGlv
bmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhh
bmRsZTsKKyAgICBPcHRpb25hbDxIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJ
Q2FzZUluc2Vuc2l0aXZlSGFzaD4+IG1pbWVUeXBlc01hcDsKICNlbmRpZgogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQb29sQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMjU0NjI5KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBj
b3B5KQpAQCAtNDcsNiArNDcsNyBAQAogI2ltcG9ydCAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAj
aW1wb3J0ICJXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9y
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNv
cmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5oPgpAQCAtMzQzLDYg
KzM0NCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICNlbmRp
ZgogICAgICAgICBwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUgPSBX
VEZNb3ZlKGhhbmRsZSk7CiAgICAgfQorICAgIHBhcmFtZXRlcnMubWltZVR5cGVzTWFwID0gY29t
bW9uTWltZVR5cGVzTWFwKCk7CiAjZW5kaWYKICAgICAKICNpZiBQTEFURk9STShJT1MpCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW0JKHJldmlzaW9uIDI1NDYyOSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9X
ZWJQcm9jZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1OCw2ICsyNTgsOCBAQCB2b2lk
IFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByCiAgICAgaWYgKHBhcmFtZXRlcnMu
bmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgU2FuZGJveEV4dGVuc2lv
bjo6Y29uc3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNp
b25IYW5kbGUpOwogICAgIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpzZXRIYXNDb25z
dW1lZFNhbmRib3hFeHRlbnNpb25zKHBhcmFtZXRlcnMubmVIZWxwZXJFeHRlbnNpb25IYW5kbGUu
aGFzVmFsdWUoKSAmJiBwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUu
aGFzVmFsdWUoKSk7CisgICAgaWYgKHBhcmFtZXRlcnMubWltZVR5cGVzTWFwKQorICAgICAgICBv
dmVycmlkZGVuTWltZVR5cGVzTWFwKCkgPSBXVEZNb3ZlKHBhcmFtZXRlcnMubWltZVR5cGVzTWFw
KTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFRvb2xzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDgwMSkKKysr
IFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAx
LTE4ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29j
b2FdIE1lZGlhIG1pbWUgdHlwZXMgbWFwIHNob3VsZCBiZSBjcmVhdGVkIGluIHRoZSBVSSBwcm9j
ZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY0
NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01pbWVUeXBlcy5tbTogQWRkZWQuCisg
ICAgICAgIChURVNUKToKKwogMjAyMC0wMS0xNyAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGln
YWxpYS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJz
aW5nCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU0NjI5KQorKysgVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTg2MCw2ICs4NjAsNyBAQAogCQlDMEFEQkU5NjEyRkNBNzlCMDBE
MkMxMjkgLyogc2ltcGxlLWZvcm0uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMEFEQkU4NDEyRkNBNkI2MDBEMkMxMjkgLyogc2ltcGxl
LWZvcm0uaHRtbCAqLzsgfTsKIAkJQzBCRDY2OUYxMzFEM0NGRjAwRTE4RjJBIC8qIFJlc3BvbnNp
dmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHlfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQkQ2NjlFMTMxRDNDRkYwMEUxOEYyQSAvKiBS
ZXNwb25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0J1bmRsZS5jcHAgKi87IH07CiAJCUMw
QzVEM0M2MTQ1OTkxMjkwMEE4MDJBNiAvKiBHZXRCYWNraW5nU2NhbGVGYWN0b3JfQnVuZGxlLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzBDNUQzQkQx
NDU5OEI2RjAwQTgwMkE2IC8qIEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW0gKi87IH07
CisJCUMxNjkyREUwMjNEM0Q3OTEwMDZFODhGNyAvKiBNaW1lVHlwZXMubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTY5MkRERjIzRDNENzkxMDA2RTg4
RjcgLyogTWltZVR5cGVzLm1tICovOyB9OwogCQlDMjBGODhBNzIyOTVCOTY3MDBENjEwRkEgLyog
Q29yZVRleHQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzIwRjg4QTYyMjk1Qjk2NzAwRDYxMEZBIC8qIENvcmVUZXh0LmZyYW1ld29y
ayAqLzsgfTsKIAkJQzIyRkEzMkIyMjhGODcwODAwOUQ3OTg4IC8qIFRleHRXaWR0aC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyMkZBMzJBMjI4Rjg3
MDgwMDlENzk4OCAvKiBUZXh0V2lkdGgubW0gKi87IH07CiAJCUMyMkZBMzJEMjI4RjhBRUIwMDlE
Nzk4OCAvKiBUZXh0V2lkdGguaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMjJGQTMyQzIyOEY4NzdBMDA5RDc5ODggLyogVGV4dFdpZHRo
Lmh0bWwgKi87IH07CkBAIC0yMzc5LDYgKzIzODAsNyBAQAogCQlDMEJENjY5RTEzMUQzQ0ZGMDBF
MThGMkEgLyogUmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseV9CdW5kbGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzcG9uc2l2ZW5lc3NUaW1lckRv
ZXNudEZpcmVFYXJseV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MEM1RDNCQzE0NTk4QjZGMDBBODAyQTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR2V0QmFja2luZ1NjYWxlRmFjdG9y
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMEM1RDNCRDE0NTk4QjZGMDBBODAy
QTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yX0J1bmRsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxNjkyRERGMjNEM0Q3OTEwMDZFODhGNyAvKiBN
aW1lVHlwZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNaW1lVHlwZXMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxRDhFRTIxMjAyOEU4RTMwMDhFQjE0MSAvKiBXZWJQcm9j
ZXNzVGVybWluYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
V2ViUHJvY2Vzc1Rlcm1pbmF0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzIw
Rjg4QTYyMjk1Qjk2NzAwRDYxMEZBIC8qIENvcmVUZXh0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBu
YW1lID0gQ29yZVRleHQuZnJhbWV3b3JrOyBwYXRoID0gU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr
cy9Db3JlVGV4dC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwogCQlDMjJGQTMy
QTIyOEY4NzA4MDA5RDc5ODggLyogVGV4dFdpZHRoLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
VGV4dFdpZHRoLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjgxOCw2ICsyODIw
LDcgQEAKIAkJMEYxMzlFNzQxQTQyM0E0NjAwRjU5MEY1IC8qIGNvY29hICovID0gewogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlDMTY5MkRERjIzRDNENzkxMDA2RTg4
RjcgLyogTWltZVR5cGVzLm1tICovLAogCQkJCTBGMTM5RTc1MUE0MjNBNTMwMEY1OTBGNSAvKiBX
ZWFrT2JqQ1B0ci5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gY29jb2E7CkBAIC00Nzk3LDYgKzQ4
MDAsNyBAQAogCQkJCTVDMEJGODk0MURENTk5QzkwMEIwMDMyOCAvKiBNZW51VHlwZXNGb3JNb3Vz
ZUV2ZW50cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxNjVGRTA0MjAxRUU2MjAwMDlGN0VDMyAv
KiBNZXNzYWdlUG9ydFByb3ZpZGVycy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE1QjE0OURFMUY1
QTE5RUEwMEM2REFGRiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUMxNjkyREUwMjNEM0Q3OTEwMDZFODhGNyAvKiBNaW1lVHlwZXMubW0gaW4gU291cmNlcyAqLywK
IAkJCQk1MUNEMUM2QzFCMzhDRTQzMDAxNDJDQTUgLyogTW9kYWxBbGVydHMubW0gaW4gU291cmNl
cyAqLywKIAkJCQk3QzgzRTBCNjFEMEE2NEIzMDBGRUJDRjMgLyogTW9kYWxBbGVydHNTUEkuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMDExQTQxMUFFNjAwNDQ3QzRDIC8qIE1vdXNlTW92
ZUFmdGVyQ3Jhc2guY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9NaW1lVHlwZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvTWltZVR5cGVzLm1tCShub25leGlzdGVudCkKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01pbWVUeXBlcy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgV0tf
SEFWRV9DX1NQSQorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVz
dFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CisKK1RF
U1QoV2ViS2l0LCBNaW1lVHlwZXMpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBXS1JldGFpblB0
cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNy
ZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxl
VGVzdCIpKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NQb29sID0gKFdLUHJvY2Vz
c1Bvb2wgKiljb250ZXh0LmdldCgpOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDAp
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKKwor
ICAgIGZvciAoYXV0byYgcGFpciA6IFdlYkNvcmU6OmNvbW1vbk1lZGlhVHlwZXMoKSkgeworICAg
ICAgICBBU0NJSUxpdGVyYWwgZXh0ZW5zaW9uID0gcGFpci5leHRlbnNpb247CisKKyAgICAgICAg
YXV0byBqcyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAid2luZG93LmludGVybmFscy5t
ZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKFwiJXNcIikiLCBleHRlbnNpb24uY2hhcmFjdGVycygp
XTsKKworICAgICAgICBhdXRvIG1pbWVUeXBlID0gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5n
SmF2YVNjcmlwdDpqc107CisKKyAgICAgICAgQVNTRVJUX1RSVUUoV2ViQ29yZTo6TUlNRVR5cGVS
ZWdpc3RyeTo6Z2V0TWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihleHRlbnNpb24pID09IFN0cmlu
ZyhtaW1lVHlwZSkpOworICAgIH0KK30KKworI2VuZGlmIC8vIFdLX0hBVkVfQ19TUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388166</attachid>
            <date>2020-01-18 18:21:58 -0800</date>
            <delta_ts>2020-01-18 18:34:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206478-20200118182157.patch</filename>
            <type>text/plain</type>
            <size>20101</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDc1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAxLTE4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIE1lZGlhIG1p
bWUgdHlwZXMgbWFwIHNob3VsZCBiZSBjcmVhdGVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY0NzgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGluZyB0aGlzIG1h
cCBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHdpbGwgYWNjZXNzIHRoZSBsYXVuY2ggc2Vydmlj
ZXMgZGFlbW9uLCB3aGljaCB3aWxsIGJlIGJsb2NrZWQuCisgICAgICAgIFRoaXMgcGF0Y2ggY3Jl
YXRlcyB0aGUgbWFwIGluIHRoZSBVSSBwcm9jZXNzIGFuZCBzZW5kcyBpdCB0byB0aGUgV2ViQ29u
dGVudCBwcm9jZXNzIGFzIHBhcnQgb2YgdGhlIFdlYlByb2Nlc3MKKyAgICAgICAgY3JlYXRpb24g
cGFyYW1ldGVycy4KKworICAgICAgICBBUEkgdGVzdDogV2ViS2l0Lk1pbWVUeXBlcworCisgICAg
ICAgICogcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpv
dmVycmlkZGVuTWltZVR5cGVzTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbW1vbk1lZGlhVHlw
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29tbW9uTWltZVR5cGVzTWFwKToKKyAgICAgICAgKFdl
YkNvcmU6OnR5cGVzRm9yQ29tbW9uRXh0ZW5zaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NSU1F
VHlwZVJlZ2lzdHJ5Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjptZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlk
bDoKKwogMjAyMC0wMS0xNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0xGQ11bSUZDXSBVc2UgT3B0aW9uYWwgZm9yIHBhcnRpYWxMZWFkaW5nL1RyYWlsaW5n
VGV4dEl0ZW0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0
cnkuY3BwCShyZXZpc2lvbiAyNTQ2MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1F
VHlwZVJlZ2lzdHJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjc0LDE3ICsyNzQsMjMgQEAgY29u
c3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aQogICAgIHJldHVybiB1bnN1cHBv
cnRlZFRleHRNSU1FVHlwZXM7CiB9CiAKLXN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiogdHlw
ZXNGb3JDb21tb25FeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCitPcHRpb25hbDxI
YXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4+
JiBvdmVycmlkZGVuTWltZVR5cGVzTWFwKCkKIHsKLSAgICBzdGF0aWMgY29uc3QgYXV0byBtYXAg
PSBtYWtlTmV2ZXJEZXN0cm95ZWQoW10gewotICAgICAgICBzdHJ1Y3QgVHlwZUV4dGVuc2lvblBh
aXIgewotICAgICAgICAgICAgQVNDSUlMaXRlcmFsIHR5cGU7Ci0gICAgICAgICAgICBBU0NJSUxp
dGVyYWwgZXh0ZW5zaW9uOwotICAgICAgICB9OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxP
cHRpb25hbDxIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0
aXZlSGFzaD4+PiBtYXA7CisgICAgcmV0dXJuIG1hcDsKK30KKworY29uc3Qgc3RkOjppbml0aWFs
aXplcl9saXN0PFR5cGVFeHRlbnNpb25QYWlyPiYgY29tbW9uTWVkaWFUeXBlcygpCit7CisgICAg
Ly8gQSB0YWJsZSBvZiBjb21tb24gbWVkaWEgTUlNRSB0eXBlcyBhbmQgZmlsZSBleHRlbnRpb25z
IHVzZWQgd2hlbiBhIHBsYXRmb3JtJ3MKKyAgICAvLyBzcGVjaWZpYyBNSU1FIHR5cGUgbG9va3Vw
IGRvZXNuJ3QgaGF2ZSBhIG1hdGNoIGZvciBhIG1lZGlhIGZpbGUgZXh0ZW5zaW9uLgorICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VHlwZUV4dGVuc2lvblBh
aXI+PiBjb21tb25NZWRpYVR5cGVzOwogCi0gICAgICAgIC8vIEEgdGFibGUgb2YgY29tbW9uIG1l
ZGlhIE1JTUUgdHlwZXMgYW5kIGZpbGUgZXh0ZW50aW9ucyB1c2VkIHdoZW4gYSBwbGF0Zm9ybSdz
Ci0gICAgICAgIC8vIHNwZWNpZmljIE1JTUUgdHlwZSBsb29rdXAgZG9lc24ndCBoYXZlIGEgbWF0
Y2ggZm9yIGEgbWVkaWEgZmlsZSBleHRlbnNpb24uCi0gICAgICAgIHN0YXRpYyBjb25zdCBUeXBl
RXh0ZW5zaW9uUGFpciBjb21tb25NZWRpYVR5cGVzW10gPSB7CisgICAgc3RhdGljIHN0ZDo6b25j
ZV9mbGFnIG9uY2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKAorICAgICAgICBvbmNlRmxhZywK
KyAgICAgICAgW10geworICAgICAgICBjb21tb25NZWRpYVR5cGVzLmdldCgpID0gewogICAgICAg
ICAgICAgLy8gT2dnCiAgICAgICAgICAgICB7ICJhcHBsaWNhdGlvbi9vZ2ciX3MsICJvZ3giX3Mg
fSwKICAgICAgICAgICAgIHsgImF1ZGlvL29nZyJfcywgIm9nZyJfcyB9LApAQCAtMzYzLDEyICsz
NjksMjIgQEAgc3RhdGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+KiB0eXBlc0ZvckNvbQogICAgICAg
ICAgICAgeyAiYXVkaW8veC13YXYiX3MsICJ3YXYiX3MgfSwKICAgICAgICAgICAgIHsgImF1ZGlv
L3ZuZC53YXZlIl9zLCAid2F2Il9zIH0sCiAgICAgICAgIH07CisgICAgfSk7CisgICAgcmV0dXJu
IGNvbW1vbk1lZGlhVHlwZXM7Cit9CisKK2NvbnN0IEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8U3Ry
aW5nPiwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgY29tbW9uTWltZVR5cGVzTWFwKCkKK3sK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+
LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBtYXA7CiAKLSAgICAgICAgSGFzaE1hcDxTdHJp
bmcsIFZlY3RvcjxTdHJpbmc+LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IG1hcDsKLSAgICAg
ICAgZm9yIChhdXRvJiBwYWlyIDogY29tbW9uTWVkaWFUeXBlcykgeworICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZSgKKyAgICAgICAgb25jZUZs
YWcsCisgICAgICAgIFtdIHsKKyAgICAgICAgZm9yIChhdXRvJiBwYWlyIDogY29tbW9uTWVkaWFU
eXBlcygpKSB7CiAgICAgICAgICAgICBBU0NJSUxpdGVyYWwgdHlwZSA9IHBhaXIudHlwZTsKICAg
ICAgICAgICAgIEFTQ0lJTGl0ZXJhbCBleHRlbnNpb24gPSBwYWlyLmV4dGVuc2lvbjsKLSAgICAg
ICAgICAgIG1hcC5lbnN1cmUoZXh0ZW5zaW9uLCBbdHlwZSwgZXh0ZW5zaW9uXSB7CisgICAgICAg
ICAgICBtYXAuZ2V0KCkuZW5zdXJlKGV4dGVuc2lvbiwgW3R5cGUsIGV4dGVuc2lvbl0gewogICAg
ICAgICAgICAgICAgIC8vIEZpcnN0IHR5cGUgaW4gdGhlIHZlY3RvciBtdXN0IGFsd2F5cyBiZSB0
aGUgb25lIGZyb20gZ2V0TUlNRVR5cGVGb3JFeHRlbnNpb24sCiAgICAgICAgICAgICAgICAgLy8g
c28gd2UgY2FuIHVzZSB0aGUgbWFwIHdpdGhvdXQgYWxzbyBjYWxsaW5nIGdldE1JTUVUeXBlRm9y
RXh0ZW5zaW9uIGVhY2ggdGltZS4KICAgICAgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiBzeW5v
bnltczsKQEAgLTM3OCwxMCArMzk0LDIwIEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiog
dHlwZXNGb3JDb20KICAgICAgICAgICAgICAgICByZXR1cm4gc3lub255bXM7CiAgICAgICAgICAg
ICB9KS5pdGVyYXRvci0+dmFsdWUuYXBwZW5kKHR5cGUpOwogICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiBtYXA7Ci0gICAgfSgpKTsKLSAgICBhdXRvIG1hcEVudHJ5ID0gbWFwLmdldCgpLmZpbmQo
ZXh0ZW5zaW9uKTsKLSAgICBpZiAobWFwRW50cnkgPT0gbWFwLmdldCgpLmVuZCgpKQorICAgIH0p
OworICAgIHJldHVybiBtYXA7Cit9CisKK3N0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiogdHlw
ZXNGb3JDb21tb25FeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCit7CisgICAgaWYg
KG92ZXJyaWRkZW5NaW1lVHlwZXNNYXAoKS5oYXNWYWx1ZSgpKSB7CisgICAgICAgIGF1dG8gbWFw
RW50cnkgPSBvdmVycmlkZGVuTWltZVR5cGVzTWFwKCktPmZpbmQoZXh0ZW5zaW9uKTsKKyAgICAg
ICAgaWYgKG1hcEVudHJ5ID09IG92ZXJyaWRkZW5NaW1lVHlwZXNNYXAoKS0+ZW5kKCkpCisgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuICZtYXBFbnRyeS0+dmFsdWU7
CisgICAgfQorICAgIGF1dG8gbWFwRW50cnkgPSBjb21tb25NaW1lVHlwZXNNYXAoKS5maW5kKGV4
dGVuc2lvbik7CisgICAgaWYgKG1hcEVudHJ5ID09IGNvbW1vbk1pbWVUeXBlc01hcCgpLmVuZCgp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gJm1hcEVudHJ5LT52YWx1ZTsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmgJKHJl
dmlzaW9uIDI1NDYyOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0
cnkuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0
cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4+JiBvdmVycmlkZGVuTWltZVR5cGVzTWFw
KCk7CitXRUJDT1JFX0VYUE9SVCBjb25zdCBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4s
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIGNvbW1vbk1pbWVUeXBlc01hcCgpOworCitzdHJ1
Y3QgVHlwZUV4dGVuc2lvblBhaXIgeworICAgIEFTQ0lJTGl0ZXJhbCB0eXBlOworICAgIEFTQ0lJ
TGl0ZXJhbCBleHRlbnNpb247Cit9OworCitXRUJDT1JFX0VYUE9SVCBjb25zdCBzdGQ6OmluaXRp
YWxpemVyX2xpc3Q8VHlwZUV4dGVuc2lvblBhaXI+JiBjb21tb25NZWRpYVR5cGVzKCk7CisKIHN0
cnVjdCBNSU1FVHlwZVJlZ2lzdHJ5VGhyZWFkR2xvYmFsRGF0YSB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoTUlNRVR5cGVSZWdpc3RyeVRocmVhZEdsb2JhbERhdGEpOwogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwpAQCAtNTIsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6
IFdlYktpdCBjb2Rpbmcgc3R5bGUgc2F5cyB3ZSBzaG91bGQgbm90IGhhdmUgdGhlIHdvcmQgImdl
dCIgaW4gdGhlIG5hbWVzIG9mIHRoZXNlIGZ1bmN0aW9ucy4KICAgICBzdGF0aWMgVmVjdG9yPFN0
cmluZz4gZ2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBnZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1F
VHlwZShjb25zdCBTdHJpbmcmIHR5cGUpOwotICAgIHN0YXRpYyBTdHJpbmcgZ2V0TWVkaWFNSU1F
VHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbik7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFN0cmluZyBnZXRNZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0
cmluZyYgZXh0ZW5zaW9uKTsKICAgICBzdGF0aWMgVmVjdG9yPFN0cmluZz4gZ2V0TWVkaWFNSU1F
VHlwZXNGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pOwogCiAgICAgc3RhdGlj
IFN0cmluZyBnZXRNSU1FVHlwZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDI1NDYyOSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDYg
KzExOCw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJMb2Fk
ZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIkxvY2F0aW9uLmgiCisjaW5jbHVkZSAiTUlNRVR5cGVS
ZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1hbGxvY1N0YXRpc3RpY3MuaCIKICNpbmNsdWRlICJNZWRp
YURldmljZXMuaCIKICNpbmNsdWRlICJNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Lmgi
CkBAIC01NDE4LDQgKzU0MTksOSBAQCBTdHJpbmcgSW50ZXJuYWxzOjpzeXN0ZW1Db2xvckZvckNT
U1ZhbHVlCiAgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5zeXN0ZW1Db2xvcihp
ZCwgb3B0aW9ucykuY3NzVGV4dCgpOwogfQogCitTdHJpbmcgSW50ZXJuYWxzOjptZWRpYU1JTUVU
eXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uKQoreworICAgIHJldHVybiBN
SU1FVHlwZVJlZ2lzdHJ5OjpnZXRNZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGV4dGVuc2lvbik7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaAkocmV2aXNpb24gMjU0NjI5KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaAkod29ya2luZyBjb3B5KQpAQCAtOTI2LDYgKzkyNiw4IEBAIHB1YmxpYzoKIAogICAg
IFN0cmluZyBzeXN0ZW1Db2xvckZvckNTU1ZhbHVlKGNvbnN0IFN0cmluZyYgY3NzVmFsdWUsIGJv
b2wgdXNlRGFya01vZGVBcHBlYXJhbmNlLCBib29sIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxl
dmVsKTsKIAorICAgIFN0cmluZyBtZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmlu
ZyYgZXh0ZW5zaW9uKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1l
bnQmKTsKICAgICBEb2N1bWVudCogY29udGV4dERvY3VtZW50KCkgY29uc3Q7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCShyZXZpc2lvbiAyNTQ2MjkpCisrKyBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTgzMyw0ICs4
MzMsNiBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKICAgICBib29sZWFuIGhhc1NhbmRib3hN
YWNoTG9va3VwQWNjZXNzVG9YUENTZXJ2aWNlTmFtZShET01TdHJpbmcgcHJvY2VzcywgRE9NU3Ry
aW5nIHNlcnZpY2UpOwogICAgIAogICAgIERPTVN0cmluZyBzeXN0ZW1Db2xvckZvckNTU1ZhbHVl
KERPTVN0cmluZyBjc3NWYWx1ZSwgYm9vbGVhbiB1c2VEYXJrTW9kZUFwcGVhcmFuY2UsIGJvb2xl
YW4gdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOworCisgICAgRE9NU3RyaW5nIG1lZGlh
TUlNRVR5cGVGb3JFeHRlbnNpb24oRE9NU3RyaW5nIGV4dGVuc2lvbik7CiB9OwpJbmRleDogU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cJKHJldmlzaW9uIDI1NDYyOSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDEtMTggIFBlciBBcm5lIFZvbGxhbiAgPHB2
b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gTWVkaWEgbWltZSB0eXBlcyBtYXAg
c2hvdWxkIGJlIGNyZWF0ZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjQ3OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlbmQgdGhlIG1pbWUgdHlwZSBtYXAgZnJvbSB0
aGUgVUkgcHJvY2VzcyB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGFzIHBhcnQgb2YgdGhlCisg
ICAgICAgIFdlYlByb2Nlc3MgY3JlYXRpb24gcGFyYW1ldGVycy4KKworICAgICAgICAqIFNoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIwLTAxLTE1ICBEb24gT2xtc3Rl
YWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgU2hhcmUgV2ViSW5zcGVjdG9y
IHN0dWJzIGZvciBwb3J0cyB3aXRob3V0IGxvY2FsIGluc3BlY3Rpb24KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CShyZXZpc2lvbiAyNTQ2MjkpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY2LDYgKzE2Niw3IEBAIHZv
aWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKICNpZiBQTEFURk9STShDT0NP
QSkKICAgICBlbmNvZGVyIDw8IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOwogICAgIGVuY29kZXIg
PDwgbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKKyAgICBlbmNvZGVyIDw8IG1pbWVU
eXBlc01hcDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTQzMyw2ICs0
MzQsMTQgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZAogICAgIGlm
ICghbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1v
dmUoKm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUpOworCisgICAgT3B0aW9uYWw8T3B0
aW9uYWw8SGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+LCBBU0NJSUNhc2VJbnNlbnNpdGl2
ZUhhc2g+Pj4gbWltZVR5cGVzTWFwOworICAgIGRlY29kZXIgPj4gbWltZVR5cGVzTWFwOworICAg
IGlmICghbWltZVR5cGVzTWFwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFyYW1ldGVy
cy5taW1lVHlwZXNNYXAgPSBXVEZNb3ZlKCptaW1lVHlwZXNNYXApOworCisKICNlbmRpZgogCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1NDYyOSkKKysr
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkod29y
a2luZyBjb3B5KQpAQCAtMjA4LDYgKzIwOCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBPcHRpb25hbDxTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGU+IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOwogICAgIE9wdGlvbmFsPFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZT4gbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsK
KyAgICBPcHRpb25hbDxIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJQ2FzZUlu
c2Vuc2l0aXZlSGFzaD4+IG1pbWVUeXBlc01hcDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMjU0NjI5KQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpA
QCAtNDcsNiArNDcsNyBAQAogI2ltcG9ydCAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW1wb3J0
ICJXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5oPgpAQCAtMzQzLDYgKzM0NCw3
IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICNlbmRpZgogICAg
ICAgICBwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3Zl
KGhhbmRsZSk7CiAgICAgfQorICAgIHBhcmFtZXRlcnMubWltZVR5cGVzTWFwID0gY29tbW9uTWlt
ZVR5cGVzTWFwKCk7CiAjZW5kaWYKICAgICAKICNpZiBQTEFURk9STShJT1MpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHJl
dmlzaW9uIDI1NDYyOSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1OCw2ICsyNTgsOCBAQCB2b2lkIFdlYlBy
b2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByCiAgICAgaWYgKHBhcmFtZXRlcnMubmVTZXNz
aW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y29u
c3VtZVBlcm1hbmVudGx5KCpwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5k
bGUpOwogICAgIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyOjpzZXRIYXNDb25zdW1lZFNh
bmRib3hFeHRlbnNpb25zKHBhcmFtZXRlcnMubmVIZWxwZXJFeHRlbnNpb25IYW5kbGUuaGFzVmFs
dWUoKSAmJiBwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUuaGFzVmFs
dWUoKSk7CisgICAgaWYgKHBhcmFtZXRlcnMubWltZVR5cGVzTWFwKQorICAgICAgICBvdmVycmlk
ZGVuTWltZVR5cGVzTWFwKCkgPSBXVEZNb3ZlKHBhcmFtZXRlcnMubWltZVR5cGVzTWFwKTsKICNl
bmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDgwMSkKKysrIFRvb2xz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDIwLTAxLTE4ICBQ
ZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIE1l
ZGlhIG1pbWUgdHlwZXMgbWFwIHNob3VsZCBiZSBjcmVhdGVkIGluIHRoZSBVSSBwcm9jZXNzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY0NzgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01pbWVUeXBlcy5tbTogQWRkZWQuCisgICAgICAg
IChURVNUKToKKwogMjAyMC0wMS0xNyAgQ2F0aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5j
b20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9sbCBiZWhhdmlvciBwYXJzaW5nCklu
ZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU0NjI5KQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTg2MCw2ICs4NjAsNyBAQAogCQlDMEFEQkU5NjEyRkNBNzlCMDBEMkMxMjkg
Lyogc2ltcGxlLWZvcm0uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDMEFEQkU4NDEyRkNBNkI2MDBEMkMxMjkgLyogc2ltcGxlLWZvcm0u
aHRtbCAqLzsgfTsKIAkJQzBCRDY2OUYxMzFEM0NGRjAwRTE4RjJBIC8qIFJlc3BvbnNpdmVuZXNz
VGltZXJEb2VzbnRGaXJlRWFybHlfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQkQ2NjlFMTMxRDNDRkYwMEUxOEYyQSAvKiBSZXNwb25z
aXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0J1bmRsZS5jcHAgKi87IH07CiAJCUMwQzVEM0M2
MTQ1OTkxMjkwMEE4MDJBNiAvKiBHZXRCYWNraW5nU2NhbGVGYWN0b3JfQnVuZGxlLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzBDNUQzQkQxNDU5OEI2
RjAwQTgwMkE2IC8qIEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW0gKi87IH07CisJCUMx
NjkyREUwMjNEM0Q3OTEwMDZFODhGNyAvKiBNaW1lVHlwZXMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTY5MkRERjIzRDNENzkxMDA2RTg4RjcgLyog
TWltZVR5cGVzLm1tICovOyB9OwogCQlDMjBGODhBNzIyOTVCOTY3MDBENjEwRkEgLyogQ29yZVRl
eHQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzIwRjg4QTYyMjk1Qjk2NzAwRDYxMEZBIC8qIENvcmVUZXh0LmZyYW1ld29yayAqLzsg
fTsKIAkJQzIyRkEzMkIyMjhGODcwODAwOUQ3OTg4IC8qIFRleHRXaWR0aC5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyMkZBMzJBMjI4Rjg3MDgwMDlE
Nzk4OCAvKiBUZXh0V2lkdGgubW0gKi87IH07CiAJCUMyMkZBMzJEMjI4RjhBRUIwMDlENzk4OCAv
KiBUZXh0V2lkdGguaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDMjJGQTMyQzIyOEY4NzdBMDA5RDc5ODggLyogVGV4dFdpZHRoLmh0bWwg
Ki87IH07CkBAIC0yMzc5LDYgKzIzODAsNyBAQAogCQlDMEJENjY5RTEzMUQzQ0ZGMDBFMThGMkEg
LyogUmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseV9CdW5kbGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZp
cmVFYXJseV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMEM1RDNC
QzE0NTk4QjZGMDBBODAyQTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR2V0QmFja2luZ1NjYWxlRmFjdG9yLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMEM1RDNCRDE0NTk4QjZGMDBBODAyQTYgLyog
R2V0QmFja2luZ1NjYWxlRmFjdG9yX0J1bmRsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxNjkyRERGMjNEM0Q3OTEwMDZFODhGNyAvKiBNaW1lVHlw
ZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNaW1lVHlwZXMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUMxRDhFRTIxMjAyOEU4RTMwMDhFQjE0MSAvKiBXZWJQcm9jZXNzVGVy
bWluYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViUHJv
Y2Vzc1Rlcm1pbmF0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzIwRjg4QTYy
Mjk1Qjk2NzAwRDYxMEZBIC8qIENvcmVUZXh0LmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0g
Q29yZVRleHQuZnJhbWV3b3JrOyBwYXRoID0gU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3Jl
VGV4dC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBTREtST09UOyB9OwogCQlDMjJGQTMyQTIyOEY4
NzA4MDA5RDc5ODggLyogVGV4dFdpZHRoLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGV4dFdp
ZHRoLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjgxOCw2ICsyODIwLDcgQEAK
IAkJMEYxMzlFNzQxQTQyM0E0NjAwRjU5MEY1IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJY
R3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlDMTY5MkRERjIzRDNENzkxMDA2RTg4RjcgLyog
TWltZVR5cGVzLm1tICovLAogCQkJCTBGMTM5RTc1MUE0MjNBNTMwMEY1OTBGNSAvKiBXZWFrT2Jq
Q1B0ci5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gY29jb2E7CkBAIC00Nzk3LDYgKzQ4MDAsNyBA
QAogCQkJCTVDMEJGODk0MURENTk5QzkwMEIwMDMyOCAvKiBNZW51VHlwZXNGb3JNb3VzZUV2ZW50
cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxNjVGRTA0MjAxRUU2MjAwMDlGN0VDMyAvKiBNZXNz
YWdlUG9ydFByb3ZpZGVycy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE1QjE0OURFMUY1QTE5RUEw
MEM2REFGRiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMxNjky
REUwMjNEM0Q3OTEwMDZFODhGNyAvKiBNaW1lVHlwZXMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1
MUNEMUM2QzFCMzhDRTQzMDAxNDJDQTUgLyogTW9kYWxBbGVydHMubW0gaW4gU291cmNlcyAqLywK
IAkJCQk3QzgzRTBCNjFEMEE2NEIzMDBGRUJDRjMgLyogTW9kYWxBbGVydHNTUEkuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdGMDExQTQxMUFFNjAwNDQ3QzRDIC8qIE1vdXNlTW92ZUFmdGVy
Q3Jhc2guY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC9NaW1lVHlwZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvTWltZVR5cGVzLm1tCShub25leGlzdGVudCkKKysrIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L01pbWVUeXBlcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgV0tfSEFWRV9D
X1NQSQorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdFdLV2Vi
Vmlldy5oIgorI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CisKK1RFU1QoV2Vi
S2l0LCBNaW1lVHlwZXMpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBXS1JldGFpblB0cjxXS0Nv
bnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNv
bnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIp
KTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NQb29sID0gKFdLUHJvY2Vzc1Bvb2wg
Kiljb250ZXh0LmdldCgpOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKKworICAgIGZv
ciAoYXV0byYgcGFpciA6IFdlYkNvcmU6OmNvbW1vbk1lZGlhVHlwZXMoKSkgeworICAgICAgICBB
U0NJSUxpdGVyYWwgZXh0ZW5zaW9uID0gcGFpci5leHRlbnNpb247CisKKyAgICAgICAgYXV0byBq
cyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAid2luZG93LmludGVybmFscy5tZWRpYU1J
TUVUeXBlRm9yRXh0ZW5zaW9uKFwiJXNcIikiLCBleHRlbnNpb24uY2hhcmFjdGVycygpXTsKKwor
ICAgICAgICBhdXRvIG1pbWVUeXBlID0gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpqc107CisKKyAgICAgICAgQVNTRVJUX1RSVUUoV2ViQ29yZTo6TUlNRVR5cGVSZWdpc3Ry
eTo6Z2V0TWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihleHRlbnNpb24pID09IFN0cmluZyhtaW1l
VHlwZSkpOworICAgIH0KK30KKworI2VuZGlmIC8vIFdLX0hBVkVfQ19TUEkKSW5kZXg6IFdlYktp
dC54Y3dvcmtzcGFjZS94Y3NoYXJlZGRhdGEveGNzY2hlbWVzL0FsbCBTb3VyY2UueGNzY2hlbWUK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0Lnhjd29ya3NwYWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMv
QWxsIFNvdXJjZS54Y3NjaGVtZQkocmV2aXNpb24gMjU0NjI5KQorKysgV2ViS2l0Lnhjd29ya3Nw
YWNlL3hjc2hhcmVkZGF0YS94Y3NjaGVtZXMvQWxsIFNvdXJjZS54Y3NjaGVtZQkod29ya2luZyBj
b3B5KQpAQCAtNTcsNyArNTcsNyBAQAogICAgICAgICAgICAgPEJ1aWxkYWJsZVJlZmVyZW5jZQog
ICAgICAgICAgICAgICAgQnVpbGRhYmxlSWRlbnRpZmllciA9ICJwcmltYXJ5IgogICAgICAgICAg
ICAgICAgQmx1ZXByaW50SWRlbnRpZmllciA9ICJGQjM5RDBEMDEyMDBGMEUzMDAwODhFNjkiCi0g
ICAgICAgICAgICAgICBCdWlsZGFibGVOYW1lID0gImxpYkFOR0xFLXNoYXJlZC5keWxpYiIKKyAg
ICAgICAgICAgICAgIEJ1aWxkYWJsZU5hbWUgPSAibGliQU5HTEUuYSIKICAgICAgICAgICAgICAg
IEJsdWVwcmludE5hbWUgPSAiQU5HTEUiCiAgICAgICAgICAgICAgICBSZWZlcmVuY2VkQ29udGFp
bmVyID0gImNvbnRhaW5lcjpTb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9BTkdMRS54Y29kZXByb2oi
PgogICAgICAgICAgICAgPC9CdWlsZGFibGVSZWZlcmVuY2U+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388167</attachid>
            <date>2020-01-18 18:34:17 -0800</date>
            <delta_ts>2020-01-20 11:38:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206478-20200118183417.patch</filename>
            <type>text/plain</type>
            <size>19651</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDc1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAxLTE4ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIE1lZGlhIG1p
bWUgdHlwZXMgbWFwIHNob3VsZCBiZSBjcmVhdGVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY0NzgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDcmVhdGluZyB0aGlzIG1h
cCBpbiB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHdpbGwgYWNjZXNzIHRoZSBsYXVuY2ggc2Vydmlj
ZXMgZGFlbW9uLCB3aGljaCB3aWxsIGJlIGJsb2NrZWQuCisgICAgICAgIFRoaXMgcGF0Y2ggY3Jl
YXRlcyB0aGUgbWFwIGluIHRoZSBVSSBwcm9jZXNzIGFuZCBzZW5kcyBpdCB0byB0aGUgV2ViQ29u
dGVudCBwcm9jZXNzIGFzIHBhcnQgb2YgdGhlIFdlYlByb2Nlc3MKKyAgICAgICAgY3JlYXRpb24g
cGFyYW1ldGVycy4KKworICAgICAgICBBUEkgdGVzdDogV2ViS2l0Lk1pbWVUeXBlcworCisgICAg
ICAgICogcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpv
dmVycmlkZGVuTWltZVR5cGVzTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbW1vbk1lZGlhVHlw
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29tbW9uTWltZVR5cGVzTWFwKToKKyAgICAgICAgKFdl
YkNvcmU6OnR5cGVzRm9yQ29tbW9uRXh0ZW5zaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NSU1F
VHlwZVJlZ2lzdHJ5Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjptZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKToKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlk
bDoKKwogMjAyMC0wMS0xNyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0xGQ11bSUZDXSBVc2UgT3B0aW9uYWwgZm9yIHBhcnRpYWxMZWFkaW5nL1RyYWlsaW5n
VGV4dEl0ZW0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnku
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0
cnkuY3BwCShyZXZpc2lvbiAyNTQ2MjkpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1F
VHlwZVJlZ2lzdHJ5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjc0LDE3ICsyNzQsMjMgQEAgY29u
c3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aQogICAgIHJldHVybiB1bnN1cHBv
cnRlZFRleHRNSU1FVHlwZXM7CiB9CiAKLXN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiogdHlw
ZXNGb3JDb21tb25FeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCitPcHRpb25hbDxI
YXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4+
JiBvdmVycmlkZGVuTWltZVR5cGVzTWFwKCkKIHsKLSAgICBzdGF0aWMgY29uc3QgYXV0byBtYXAg
PSBtYWtlTmV2ZXJEZXN0cm95ZWQoW10gewotICAgICAgICBzdHJ1Y3QgVHlwZUV4dGVuc2lvblBh
aXIgewotICAgICAgICAgICAgQVNDSUlMaXRlcmFsIHR5cGU7Ci0gICAgICAgICAgICBBU0NJSUxp
dGVyYWwgZXh0ZW5zaW9uOwotICAgICAgICB9OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxP
cHRpb25hbDxIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0
aXZlSGFzaD4+PiBtYXA7CisgICAgcmV0dXJuIG1hcDsKK30KKworY29uc3Qgc3RkOjppbml0aWFs
aXplcl9saXN0PFR5cGVFeHRlbnNpb25QYWlyPiYgY29tbW9uTWVkaWFUeXBlcygpCit7CisgICAg
Ly8gQSB0YWJsZSBvZiBjb21tb24gbWVkaWEgTUlNRSB0eXBlcyBhbmQgZmlsZSBleHRlbnRpb25z
IHVzZWQgd2hlbiBhIHBsYXRmb3JtJ3MKKyAgICAvLyBzcGVjaWZpYyBNSU1FIHR5cGUgbG9va3Vw
IGRvZXNuJ3QgaGF2ZSBhIG1hdGNoIGZvciBhIG1lZGlhIGZpbGUgZXh0ZW5zaW9uLgorICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VHlwZUV4dGVuc2lvblBh
aXI+PiBjb21tb25NZWRpYVR5cGVzOwogCi0gICAgICAgIC8vIEEgdGFibGUgb2YgY29tbW9uIG1l
ZGlhIE1JTUUgdHlwZXMgYW5kIGZpbGUgZXh0ZW50aW9ucyB1c2VkIHdoZW4gYSBwbGF0Zm9ybSdz
Ci0gICAgICAgIC8vIHNwZWNpZmljIE1JTUUgdHlwZSBsb29rdXAgZG9lc24ndCBoYXZlIGEgbWF0
Y2ggZm9yIGEgbWVkaWEgZmlsZSBleHRlbnNpb24uCi0gICAgICAgIHN0YXRpYyBjb25zdCBUeXBl
RXh0ZW5zaW9uUGFpciBjb21tb25NZWRpYVR5cGVzW10gPSB7CisgICAgc3RhdGljIHN0ZDo6b25j
ZV9mbGFnIG9uY2VGbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKAorICAgICAgICBvbmNlRmxhZywK
KyAgICAgICAgW10geworICAgICAgICBjb21tb25NZWRpYVR5cGVzLmdldCgpID0gewogICAgICAg
ICAgICAgLy8gT2dnCiAgICAgICAgICAgICB7ICJhcHBsaWNhdGlvbi9vZ2ciX3MsICJvZ3giX3Mg
fSwKICAgICAgICAgICAgIHsgImF1ZGlvL29nZyJfcywgIm9nZyJfcyB9LApAQCAtMzYzLDEyICsz
NjksMjIgQEAgc3RhdGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+KiB0eXBlc0ZvckNvbQogICAgICAg
ICAgICAgeyAiYXVkaW8veC13YXYiX3MsICJ3YXYiX3MgfSwKICAgICAgICAgICAgIHsgImF1ZGlv
L3ZuZC53YXZlIl9zLCAid2F2Il9zIH0sCiAgICAgICAgIH07CisgICAgfSk7CisgICAgcmV0dXJu
IGNvbW1vbk1lZGlhVHlwZXM7Cit9CisKK2NvbnN0IEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8U3Ry
aW5nPiwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgY29tbW9uTWltZVR5cGVzTWFwKCkKK3sK
KyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+
LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBtYXA7CiAKLSAgICAgICAgSGFzaE1hcDxTdHJp
bmcsIFZlY3RvcjxTdHJpbmc+LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IG1hcDsKLSAgICAg
ICAgZm9yIChhdXRvJiBwYWlyIDogY29tbW9uTWVkaWFUeXBlcykgeworICAgIHN0YXRpYyBzdGQ6
Om9uY2VfZmxhZyBvbmNlRmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZSgKKyAgICAgICAgb25jZUZs
YWcsCisgICAgICAgIFtdIHsKKyAgICAgICAgZm9yIChhdXRvJiBwYWlyIDogY29tbW9uTWVkaWFU
eXBlcygpKSB7CiAgICAgICAgICAgICBBU0NJSUxpdGVyYWwgdHlwZSA9IHBhaXIudHlwZTsKICAg
ICAgICAgICAgIEFTQ0lJTGl0ZXJhbCBleHRlbnNpb24gPSBwYWlyLmV4dGVuc2lvbjsKLSAgICAg
ICAgICAgIG1hcC5lbnN1cmUoZXh0ZW5zaW9uLCBbdHlwZSwgZXh0ZW5zaW9uXSB7CisgICAgICAg
ICAgICBtYXAuZ2V0KCkuZW5zdXJlKGV4dGVuc2lvbiwgW3R5cGUsIGV4dGVuc2lvbl0gewogICAg
ICAgICAgICAgICAgIC8vIEZpcnN0IHR5cGUgaW4gdGhlIHZlY3RvciBtdXN0IGFsd2F5cyBiZSB0
aGUgb25lIGZyb20gZ2V0TUlNRVR5cGVGb3JFeHRlbnNpb24sCiAgICAgICAgICAgICAgICAgLy8g
c28gd2UgY2FuIHVzZSB0aGUgbWFwIHdpdGhvdXQgYWxzbyBjYWxsaW5nIGdldE1JTUVUeXBlRm9y
RXh0ZW5zaW9uIGVhY2ggdGltZS4KICAgICAgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiBzeW5v
bnltczsKQEAgLTM3OCwxMCArMzk0LDIwIEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiog
dHlwZXNGb3JDb20KICAgICAgICAgICAgICAgICByZXR1cm4gc3lub255bXM7CiAgICAgICAgICAg
ICB9KS5pdGVyYXRvci0+dmFsdWUuYXBwZW5kKHR5cGUpOwogICAgICAgICB9Ci0gICAgICAgIHJl
dHVybiBtYXA7Ci0gICAgfSgpKTsKLSAgICBhdXRvIG1hcEVudHJ5ID0gbWFwLmdldCgpLmZpbmQo
ZXh0ZW5zaW9uKTsKLSAgICBpZiAobWFwRW50cnkgPT0gbWFwLmdldCgpLmVuZCgpKQorICAgIH0p
OworICAgIHJldHVybiBtYXA7Cit9CisKK3N0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiogdHlw
ZXNGb3JDb21tb25FeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCit7CisgICAgaWYg
KG92ZXJyaWRkZW5NaW1lVHlwZXNNYXAoKS5oYXNWYWx1ZSgpKSB7CisgICAgICAgIGF1dG8gbWFw
RW50cnkgPSBvdmVycmlkZGVuTWltZVR5cGVzTWFwKCktPmZpbmQoZXh0ZW5zaW9uKTsKKyAgICAg
ICAgaWYgKG1hcEVudHJ5ID09IG92ZXJyaWRkZW5NaW1lVHlwZXNNYXAoKS0+ZW5kKCkpCisgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuICZtYXBFbnRyeS0+dmFsdWU7
CisgICAgfQorICAgIGF1dG8gbWFwRW50cnkgPSBjb21tb25NaW1lVHlwZXNNYXAoKS5maW5kKGV4
dGVuc2lvbik7CisgICAgaWYgKG1hcEVudHJ5ID09IGNvbW1vbk1pbWVUeXBlc01hcCgpLmVuZCgp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gJm1hcEVudHJ5LT52YWx1ZTsK
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmgJKHJl
dmlzaW9uIDI1NDYyOSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0
cnkuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitXRUJDT1JFX0VYUE9SVCBPcHRpb25hbDxIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0
cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4+JiBvdmVycmlkZGVuTWltZVR5cGVzTWFw
KCk7CitXRUJDT1JFX0VYUE9SVCBjb25zdCBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4s
IEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIGNvbW1vbk1pbWVUeXBlc01hcCgpOworCitzdHJ1
Y3QgVHlwZUV4dGVuc2lvblBhaXIgeworICAgIEFTQ0lJTGl0ZXJhbCB0eXBlOworICAgIEFTQ0lJ
TGl0ZXJhbCBleHRlbnNpb247Cit9OworCitXRUJDT1JFX0VYUE9SVCBjb25zdCBzdGQ6OmluaXRp
YWxpemVyX2xpc3Q8VHlwZUV4dGVuc2lvblBhaXI+JiBjb21tb25NZWRpYVR5cGVzKCk7CisKIHN0
cnVjdCBNSU1FVHlwZVJlZ2lzdHJ5VGhyZWFkR2xvYmFsRGF0YSB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoTUlNRVR5cGVSZWdpc3RyeVRocmVhZEdsb2JhbERhdGEpOwogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwpAQCAtNTIsNyArNjIsNyBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6
IFdlYktpdCBjb2Rpbmcgc3R5bGUgc2F5cyB3ZSBzaG91bGQgbm90IGhhdmUgdGhlIHdvcmQgImdl
dCIgaW4gdGhlIG5hbWVzIG9mIHRoZXNlIGZ1bmN0aW9ucy4KICAgICBzdGF0aWMgVmVjdG9yPFN0
cmluZz4gZ2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBnZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1F
VHlwZShjb25zdCBTdHJpbmcmIHR5cGUpOwotICAgIHN0YXRpYyBTdHJpbmcgZ2V0TWVkaWFNSU1F
VHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbik7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFN0cmluZyBnZXRNZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0
cmluZyYgZXh0ZW5zaW9uKTsKICAgICBzdGF0aWMgVmVjdG9yPFN0cmluZz4gZ2V0TWVkaWFNSU1F
VHlwZXNGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pOwogCiAgICAgc3RhdGlj
IFN0cmluZyBnZXRNSU1FVHlwZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDI1NDYyOSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDYg
KzExOCw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJMb2Fk
ZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIkxvY2F0aW9uLmgiCisjaW5jbHVkZSAiTUlNRVR5cGVS
ZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1hbGxvY1N0YXRpc3RpY3MuaCIKICNpbmNsdWRlICJNZWRp
YURldmljZXMuaCIKICNpbmNsdWRlICJNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5Lmgi
CkBAIC01NDE4LDQgKzU0MTksOSBAQCBTdHJpbmcgSW50ZXJuYWxzOjpzeXN0ZW1Db2xvckZvckNT
U1ZhbHVlCiAgICAgcmV0dXJuIFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5zeXN0ZW1Db2xvcihp
ZCwgb3B0aW9ucykuY3NzVGV4dCgpOwogfQogCitTdHJpbmcgSW50ZXJuYWxzOjptZWRpYU1JTUVU
eXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uKQoreworICAgIHJldHVybiBN
SU1FVHlwZVJlZ2lzdHJ5OjpnZXRNZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGV4dGVuc2lvbik7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaAkocmV2aXNpb24gMjU0NjI5KQorKysgU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaAkod29ya2luZyBjb3B5KQpAQCAtOTI2LDYgKzkyNiw4IEBAIHB1YmxpYzoKIAogICAg
IFN0cmluZyBzeXN0ZW1Db2xvckZvckNTU1ZhbHVlKGNvbnN0IFN0cmluZyYgY3NzVmFsdWUsIGJv
b2wgdXNlRGFya01vZGVBcHBlYXJhbmNlLCBib29sIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxl
dmVsKTsKIAorICAgIFN0cmluZyBtZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmlu
ZyYgZXh0ZW5zaW9uKTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1l
bnQmKTsKICAgICBEb2N1bWVudCogY29udGV4dERvY3VtZW50KCkgY29uc3Q7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCShyZXZpc2lvbiAyNTQ2MjkpCisrKyBTb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTgzMyw0ICs4
MzMsNiBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKICAgICBib29sZWFuIGhhc1NhbmRib3hN
YWNoTG9va3VwQWNjZXNzVG9YUENTZXJ2aWNlTmFtZShET01TdHJpbmcgcHJvY2VzcywgRE9NU3Ry
aW5nIHNlcnZpY2UpOwogICAgIAogICAgIERPTVN0cmluZyBzeXN0ZW1Db2xvckZvckNTU1ZhbHVl
KERPTVN0cmluZyBjc3NWYWx1ZSwgYm9vbGVhbiB1c2VEYXJrTW9kZUFwcGVhcmFuY2UsIGJvb2xl
YW4gdXNlRWxldmF0ZWRVc2VySW50ZXJmYWNlTGV2ZWwpOworCisgICAgRE9NU3RyaW5nIG1lZGlh
TUlNRVR5cGVGb3JFeHRlbnNpb24oRE9NU3RyaW5nIGV4dGVuc2lvbik7CiB9OwpJbmRleDogU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cJKHJldmlzaW9uIDI1NDYyOSkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDEtMTggIFBlciBBcm5lIFZvbGxhbiAgPHB2
b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gTWVkaWEgbWltZSB0eXBlcyBtYXAg
c2hvdWxkIGJlIGNyZWF0ZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjQ3OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlbmQgdGhlIG1pbWUgdHlwZSBtYXAgZnJvbSB0
aGUgVUkgcHJvY2VzcyB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGFzIHBhcnQgb2YgdGhlCisg
ICAgICAgIFdlYlByb2Nlc3MgY3JlYXRpb24gcGFyYW1ldGVycy4KKworICAgICAgICAqIFNoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIwLTAxLTE1ICBEb24gT2xtc3Rl
YWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgU2hhcmUgV2ViSW5zcGVjdG9y
IHN0dWJzIGZvciBwb3J0cyB3aXRob3V0IGxvY2FsIGluc3BlY3Rpb24KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CShyZXZpc2lvbiAyNTQ2MjkpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY2LDYgKzE2Niw3IEBAIHZv
aWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKICNpZiBQTEFURk9STShDT0NP
QSkKICAgICBlbmNvZGVyIDw8IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOwogICAgIGVuY29kZXIg
PDwgbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKKyAgICBlbmNvZGVyIDw8IG1pbWVU
eXBlc01hcDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTQzMyw2ICs0
MzQsMTQgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZAogICAgIGlm
ICghbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1v
dmUoKm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUpOworCisgICAgT3B0aW9uYWw8T3B0
aW9uYWw8SGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+LCBBU0NJSUNhc2VJbnNlbnNpdGl2
ZUhhc2g+Pj4gbWltZVR5cGVzTWFwOworICAgIGRlY29kZXIgPj4gbWltZVR5cGVzTWFwOworICAg
IGlmICghbWltZVR5cGVzTWFwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcGFyYW1ldGVy
cy5taW1lVHlwZXNNYXAgPSBXVEZNb3ZlKCptaW1lVHlwZXNNYXApOworCisKICNlbmRpZgogCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
b2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1NDYyOSkKKysr
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkod29y
a2luZyBjb3B5KQpAQCAtMjA4LDYgKzIwOCw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBPcHRpb25hbDxTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGU+IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOwogICAgIE9wdGlvbmFsPFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZT4gbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsK
KyAgICBPcHRpb25hbDxIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJQ2FzZUlu
c2Vuc2l0aXZlSGFzaD4+IG1pbWVUeXBlc01hcDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
b29sQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkocmV2aXNpb24gMjU0NjI5KQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQkod29ya2luZyBjb3B5KQpA
QCAtNDcsNiArNDcsNyBAQAogI2ltcG9ydCAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW1wb3J0
ICJXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2FyZC5oPgpAQCAtMzQzLDYgKzM0NCw3
IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVcKICNlbmRpZgogICAg
ICAgICBwYXJhbWV0ZXJzLm5lU2Vzc2lvbk1hbmFnZXJFeHRlbnNpb25IYW5kbGUgPSBXVEZNb3Zl
KGhhbmRsZSk7CiAgICAgfQorICAgIHBhcmFtZXRlcnMubWltZVR5cGVzTWFwID0gY29tbW9uTWlt
ZVR5cGVzTWFwKCk7CiAjZW5kaWYKICAgICAKICNpZiBQTEFURk9STShJT1MpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHJl
dmlzaW9uIDI1NDYyOSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTU5LDYgKzU5LDcgQEAKICNpbXBvcnQgPFdl
YkNvcmUvSGlzdG9yeUl0ZW0uaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9Mb2dJbml0aWFsaXphdGlvbi5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL01lbW9yeVJlbGVhc2UuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvTlNTY3JvbGxlckltcERldGFpbHMuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUGVyZm9ybWFuY2VMb2dnaW5nLmg+CkBAIC0yNTgsNiArMjU5LDggQEAgdm9pZCBXZWJQcm9j
ZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcgogICAgIGlmIChwYXJhbWV0ZXJzLm5lU2Vzc2lv
bk1hbmFnZXJFeHRlbnNpb25IYW5kbGUpCiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNvbnN1
bWVQZXJtYW5lbnRseSgqcGFyYW1ldGVycy5uZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxl
KTsKICAgICBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6c2V0SGFzQ29uc3VtZWRTYW5k
Ym94RXh0ZW5zaW9ucyhwYXJhbWV0ZXJzLm5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlLmhhc1ZhbHVl
KCkgJiYgcGFyYW1ldGVycy5uZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFuZGxlLmhhc1ZhbHVl
KCkpOworICAgIGlmIChwYXJhbWV0ZXJzLm1pbWVUeXBlc01hcCkKKyAgICAgICAgb3ZlcnJpZGRl
bk1pbWVUeXBlc01hcCgpID0gV1RGTW92ZShwYXJhbWV0ZXJzLm1pbWVUeXBlc01hcCk7CiAjZW5k
aWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTQ4MDEpCisrKyBUb29scy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAyMC0wMS0xOCAgUGVy
IEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBNZWRp
YSBtaW1lIHR5cGVzIG1hcCBzaG91bGQgYmUgY3JlYXRlZCBpbiB0aGUgVUkgcHJvY2VzcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA2NDc4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NaW1lVHlwZXMubW06IEFkZGVkLgorICAgICAgICAo
VEVTVCk6CisKIDIwMjAtMDEtMTcgIENhdGhpZSBDaGVuICA8Y2F0aGllY2hlbkBpZ2FsaWEuY29t
PgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3JvbGwgYmVoYXZpb3IgcGFyc2luZwpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI1NDYyOSkKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC04NjAsNiArODYwLDcgQEAKIAkJQzBBREJFOTYxMkZDQTc5QjAwRDJDMTI5IC8q
IHNpbXBsZS1mb3JtLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzBBREJFODQxMkZDQTZCNjAwRDJDMTI5IC8qIHNpbXBsZS1mb3JtLmh0
bWwgKi87IH07CiAJCUMwQkQ2NjlGMTMxRDNDRkYwMEUxOEYyQSAvKiBSZXNwb25zaXZlbmVzc1Rp
bWVyRG9lc250RmlyZUVhcmx5X0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMEJENjY5RTEzMUQzQ0ZGMDBFMThGMkEgLyogUmVzcG9uc2l2
ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseV9CdW5kbGUuY3BwICovOyB9OwogCQlDMEM1RDNDNjE0
NTk5MTI5MDBBODAyQTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yX0J1bmRsZS5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQzVEM0JEMTQ1OThCNkYw
MEE4MDJBNiAvKiBHZXRCYWNraW5nU2NhbGVGYWN0b3JfQnVuZGxlLm1tICovOyB9OworCQlDMTY5
MkRFMDIzRDNENzkxMDA2RTg4RjcgLyogTWltZVR5cGVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE2OTJEREYyM0QzRDc5MTAwNkU4OEY3IC8qIE1p
bWVUeXBlcy5tbSAqLzsgfTsKIAkJQzIwRjg4QTcyMjk1Qjk2NzAwRDYxMEZBIC8qIENvcmVUZXh0
LmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMyMEY4OEE2MjI5NUI5NjcwMEQ2MTBGQSAvKiBDb3JlVGV4dC5mcmFtZXdvcmsgKi87IH07
CiAJCUMyMkZBMzJCMjI4Rjg3MDgwMDlENzk4OCAvKiBUZXh0V2lkdGgubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjJGQTMyQTIyOEY4NzA4MDA5RDc5
ODggLyogVGV4dFdpZHRoLm1tICovOyB9OwogCQlDMjJGQTMyRDIyOEY4QUVCMDA5RDc5ODggLyog
VGV4dFdpZHRoLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzIyRkEzMkMyMjhGODc3QTAwOUQ3OTg4IC8qIFRleHRXaWR0aC5odG1sICov
OyB9OwpAQCAtMjM3OSw2ICsyMzgwLDcgQEAKIAkJQzBCRDY2OUUxMzFEM0NGRjAwRTE4RjJBIC8q
IFJlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHlfQnVuZGxlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJl
RWFybHlfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzBDNUQzQkMx
NDU5OEI2RjAwQTgwMkE2IC8qIEdldEJhY2tpbmdTY2FsZUZhY3Rvci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdldEJhY2tpbmdTY2FsZUZhY3Rvci5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzBDNUQzQkQxNDU5OEI2RjAwQTgwMkE2IC8qIEdl
dEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBHZXRCYWNraW5nU2NhbGVGYWN0b3JfQnVuZGxlLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDMTY5MkRERjIzRDNENzkxMDA2RTg4RjcgLyogTWltZVR5cGVz
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTWltZVR5cGVzLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDMUQ4RUUyMTIwMjhFOEUzMDA4RUIxNDEgLyogV2ViUHJvY2Vzc1Rlcm1p
bmF0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlByb2Nl
c3NUZXJtaW5hdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyMEY4OEE2MjI5
NUI5NjcwMEQ2MTBGQSAvKiBDb3JlVGV4dC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IENv
cmVUZXh0LmZyYW1ld29yazsgcGF0aCA9IFN5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVRl
eHQuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gU0RLUk9PVDsgfTsKIAkJQzIyRkEzMkEyMjhGODcw
ODAwOUQ3OTg4IC8qIFRleHRXaWR0aC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFRleHRXaWR0
aC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4MTgsNiArMjgyMCw3IEBACiAJ
CTBGMTM5RTc0MUE0MjNBNDYwMEY1OTBGNSAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQzE2OTJEREYyM0QzRDc5MTAwNkU4OEY3IC8qIE1p
bWVUeXBlcy5tbSAqLywKIAkJCQkwRjEzOUU3NTFBNDIzQTUzMDBGNTkwRjUgLyogV2Vha09iakNQ
dHIubW0gKi8sCiAJCQkpOwogCQkJbmFtZSA9IGNvY29hOwpAQCAtNDc5Nyw2ICs0ODAwLDcgQEAK
IAkJCQk1QzBCRjg5NDFERDU5OUM5MDBCMDAzMjggLyogTWVudVR5cGVzRm9yTW91c2VFdmVudHMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTY1RkUwNDIwMUVFNjIwMDA5RjdFQzMgLyogTWVzc2Fn
ZVBvcnRQcm92aWRlcnMubW0gaW4gU291cmNlcyAqLywKIAkJCQlBNUIxNDlERTFGNUExOUVBMDBD
NkRBRkYgLyogTUlNRVR5cGVSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMTY5MkRF
MDIzRDNENzkxMDA2RTg4RjcgLyogTWltZVR5cGVzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFD
RDFDNkMxQjM4Q0U0MzAwMTQyQ0E1IC8qIE1vZGFsQWxlcnRzLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJN0M4M0UwQjYxRDBBNjRCMzAwRkVCQ0YzIC8qIE1vZGFsQWxlcnRzU1BJLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDQ0U3RjAxMUE0MTFBRTYwMDQ0N0M0QyAvKiBNb3VzZU1vdmVBZnRlckNy
YXNoLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvTWltZVR5cGVzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L01pbWVUeXBlcy5tbQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9NaW1lVHlwZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lmIFdLX0hBVkVfQ19T
UEkKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZp
ZXcuaCIKKyNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgorCitURVNUKFdlYktp
dCwgTWltZVR5cGVzKQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dl
YlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgV0tSZXRhaW5QdHI8V0tDb250
ZXh0UmVmPiBjb250ZXh0ID0gYWRvcHRXSyhUZXN0V2ViS2l0QVBJOjpVdGlsOjpjcmVhdGVDb250
ZXh0Rm9ySW5qZWN0ZWRCdW5kbGVUZXN0KCJJbnRlcm5hbHNJbmplY3RlZEJ1bmRsZVRlc3QiKSk7
CisgICAgY29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCA9IChXS1Byb2Nlc3NQb29sICop
Y29udGV4dC5nZXQoKTsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDMwMCwgMzAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCkgYWRkVG9XaW5kb3c6WUVTXSk7CisKKyAgICBmb3Ig
KGF1dG8mIHBhaXIgOiBXZWJDb3JlOjpjb21tb25NZWRpYVR5cGVzKCkpIHsKKyAgICAgICAgQVND
SUlMaXRlcmFsIGV4dGVuc2lvbiA9IHBhaXIuZXh0ZW5zaW9uOworCisgICAgICAgIGF1dG8ganMg
PSBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIndpbmRvdy5pbnRlcm5hbHMubWVkaWFNSU1F
VHlwZUZvckV4dGVuc2lvbihcIiVzXCIpIiwgZXh0ZW5zaW9uLmNoYXJhY3RlcnMoKV07CisKKyAg
ICAgICAgYXV0byBtaW1lVHlwZSA9IFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6anNdOworCisgICAgICAgIEFTU0VSVF9UUlVFKFdlYkNvcmU6Ok1JTUVUeXBlUmVnaXN0cnk6
OmdldE1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb24oZXh0ZW5zaW9uKSA9PSBTdHJpbmcobWltZVR5
cGUpKTsKKyAgICB9Cit9CisKKyNlbmRpZiAvLyBXS19IQVZFX0NfU1BJCg==
</data>
<flag name="review"
          id="403927"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388595</attachid>
            <date>2020-01-23 14:55:38 -0800</date>
            <delta_ts>2020-01-23 15:33:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206478-20200123145537.patch</filename>
            <type>text/plain</type>
            <size>23841</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDk5OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAxLTIzICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIE1lZGlhIG1p
bWUgdHlwZXMgbWFwIHNob3VsZCBiZSBjcmVhdGVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY0NzgKKworICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBDcmVhdGluZyB0aGlzIG1hcCBp
biB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHdpbGwgYWNjZXNzIHRoZSBsYXVuY2ggc2VydmljZXMg
ZGFlbW9uLCB3aGljaCB3aWxsIGJlIGJsb2NrZWQuCisgICAgICAgIFRoaXMgcGF0Y2ggY3JlYXRl
cyB0aGUgbWFwIGluIHRoZSBVSSBwcm9jZXNzIGFuZCBzZW5kcyBpdCB0byB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIGFzIHBhcnQgb2YgdGhlIFdlYlByb2Nlc3MKKyAgICAgICAgY3JlYXRpb24gcGFy
YW1ldGVycy4KKworICAgICAgICBBUEkgdGVzdDogV2ViS2l0Lk1pbWVUeXBlcworCisgICAgICAg
ICogcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvdmVy
cmlkZGVuTWltZVR5cGVzTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbW1vbk1lZGlhVHlwZXMp
OgorICAgICAgICAoV2ViQ29yZTo6Y29tbW9uTWltZVR5cGVzTWFwKToKKyAgICAgICAgKFdlYkNv
cmU6OnR5cGVzRm9yQ29tbW9uRXh0ZW5zaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NSU1FVHlw
ZVJlZ2lzdHJ5Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjptZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoK
KwogMjAyMC0wMS0yMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0NvY29hXSBCcm9rZXIgYWNjZXNzIHRvIHRoZSBQb3dlck1hbmFnZW1lbnQgQVBJCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcAkocmV2
aXNpb24gMjU0OTk4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3Ry
eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3NCw5OCArMjc0LDEwNCBAQCBjb25zdCBIYXNoU2V0
PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpCiAgICAgcmV0dXJuIHVuc3VwcG9ydGVkVGV4dE1J
TUVUeXBlczsKIH0KIAotc3RhdGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+KiB0eXBlc0ZvckNvbW1v
bkV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbikKK09wdGlvbmFsPEhhc2hNYXA8U3Ry
aW5nLCBWZWN0b3I8U3RyaW5nPiwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPj4mIG92ZXJyaWRk
ZW5NaW1lVHlwZXNNYXAoKQogewotICAgIHN0YXRpYyBjb25zdCBhdXRvIG1hcCA9IG1ha2VOZXZl
ckRlc3Ryb3llZChbXSB7Ci0gICAgICAgIHN0cnVjdCBUeXBlRXh0ZW5zaW9uUGFpciB7Ci0gICAg
ICAgICAgICBBU0NJSUxpdGVyYWwgdHlwZTsKLSAgICAgICAgICAgIEFTQ0lJTGl0ZXJhbCBleHRl
bnNpb247Ci0gICAgICAgIH07CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE9wdGlvbmFsPEhh
c2hNYXA8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPiwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPj4+
IG1hcDsKKyAgICByZXR1cm4gbWFwOworfQogCi0gICAgICAgIC8vIEEgdGFibGUgb2YgY29tbW9u
IG1lZGlhIE1JTUUgdHlwZXMgYW5kIGZpbGUgZXh0ZW50aW9ucyB1c2VkIHdoZW4gYSBwbGF0Zm9y
bSdzCi0gICAgICAgIC8vIHNwZWNpZmljIE1JTUUgdHlwZSBsb29rdXAgZG9lc24ndCBoYXZlIGEg
bWF0Y2ggZm9yIGEgbWVkaWEgZmlsZSBleHRlbnNpb24uCi0gICAgICAgIHN0YXRpYyBjb25zdCBU
eXBlRXh0ZW5zaW9uUGFpciBjb21tb25NZWRpYVR5cGVzW10gPSB7Ci0gICAgICAgICAgICAvLyBP
Z2cKLSAgICAgICAgICAgIHsgImFwcGxpY2F0aW9uL29nZyJfcywgIm9neCJfcyB9LAotICAgICAg
ICAgICAgeyAiYXVkaW8vb2dnIl9zLCAib2dnIl9zIH0sCi0gICAgICAgICAgICB7ICJhdWRpby9v
Z2ciX3MsICJvZ2EiX3MgfSwKLSAgICAgICAgICAgIHsgInZpZGVvL29nZyJfcywgIm9ndiJfcyB9
LAotCi0gICAgICAgICAgICAvLyBBbm5vZGV4Ci0gICAgICAgICAgICB7ICJhcHBsaWNhdGlvbi9h
bm5vZGV4Il9zLCAiYW54Il9zIH0sCi0gICAgICAgICAgICB7ICJhdWRpby9hbm5vZGV4Il9zLCAi
YXhhIl9zIH0sCi0gICAgICAgICAgICB7ICJ2aWRlby9hbm5vZGV4Il9zLCAiYXh2Il9zIH0sCi0g
ICAgICAgICAgICB7ICJhdWRpby9zcGVleCJfcywgInNweCJfcyB9LAotCi0gICAgICAgICAgICAv
LyBXZWJNCi0gICAgICAgICAgICB7ICJ2aWRlby93ZWJtIl9zLCAid2VibSJfcyB9LAotICAgICAg
ICAgICAgeyAiYXVkaW8vd2VibSJfcywgIndlYm0iX3MgfSwKLQotICAgICAgICAgICAgLy8gTVBF
RwotICAgICAgICAgICAgeyAiYXVkaW8vbXBlZyJfcywgIm0xYSJfcyB9LAotICAgICAgICAgICAg
eyAiYXVkaW8vbXBlZyJfcywgIm0yYSJfcyB9LAotICAgICAgICAgICAgeyAiYXVkaW8vbXBlZyJf
cywgIm0xcyJfcyB9LAotICAgICAgICAgICAgeyAiYXVkaW8vbXBlZyJfcywgIm1wYSJfcyB9LAot
ICAgICAgICAgICAgeyAidmlkZW8vbXBlZyJfcywgIm1wZyJfcyB9LAotICAgICAgICAgICAgeyAi
dmlkZW8vbXBlZyJfcywgIm0xNSJfcyB9LAotICAgICAgICAgICAgeyAidmlkZW8vbXBlZyJfcywg
Im0xcyJfcyB9LAotICAgICAgICAgICAgeyAidmlkZW8vbXBlZyJfcywgIm0xdiJfcyB9LAotICAg
ICAgICAgICAgeyAidmlkZW8vbXBlZyJfcywgIm03NSJfcyB9LAotICAgICAgICAgICAgeyAidmlk
ZW8vbXBlZyJfcywgIm1wYSJfcyB9LAotICAgICAgICAgICAgeyAidmlkZW8vbXBlZyJfcywgIm1w
ZWciX3MgfSwKLSAgICAgICAgICAgIHsgInZpZGVvL21wZWciX3MsICJtcG0iX3MgfSwKLSAgICAg
ICAgICAgIHsgInZpZGVvL21wZWciX3MsICJtcHYiX3MgfSwKLQotICAgICAgICAgICAgLy8gTVBF
RyBwbGF5bGlzdAotICAgICAgICAgICAgeyAiYXBwbGljYXRpb24vdm5kLmFwcGxlLm1wZWd1cmwi
X3MsICJtM3U4Il9zIH0sCi0gICAgICAgICAgICB7ICJhcHBsaWNhdGlvbi9tcGVndXJsIl9zLCAi
bTN1OCJfcyB9LAotICAgICAgICAgICAgeyAiYXBwbGljYXRpb24veC1tcGVndXJsIl9zLCAibTN1
OCJfcyB9LAotICAgICAgICAgICAgeyAiYXVkaW8vbXBlZ3VybCJfcywgIm0zdXJsIl9zIH0sCi0g
ICAgICAgICAgICB7ICJhdWRpby94LW1wZWd1cmwiX3MsICJtM3VybCJfcyB9LAotICAgICAgICAg
ICAgeyAiYXVkaW8vbXBlZ3VybCJfcywgIm0zdSJfcyB9LAotICAgICAgICAgICAgeyAiYXVkaW8v
eC1tcGVndXJsIl9zLCAibTN1Il9zIH0sCi0KLSAgICAgICAgICAgIC8vIE1QRUctNAotICAgICAg
ICAgICAgeyAidmlkZW8veC1tNHYiX3MsICJtNHYiX3MgfSwKLSAgICAgICAgICAgIHsgImF1ZGlv
L3gtbTRhIl9zLCAibTRhIl9zIH0sCi0gICAgICAgICAgICB7ICJhdWRpby94LW00YiJfcywgIm00
YiJfcyB9LAotICAgICAgICAgICAgeyAiYXVkaW8veC1tNHAiX3MsICJtNHAiX3MgfSwKLSAgICAg
ICAgICAgIHsgImF1ZGlvL21wNCJfcywgIm00YSJfcyB9LAotCi0gICAgICAgICAgICAvLyBNUDMK
LSAgICAgICAgICAgIHsgImF1ZGlvL21wMyJfcywgIm1wMyJfcyB9LAotICAgICAgICAgICAgeyAi
YXVkaW8veC1tcDMiX3MsICJtcDMiX3MgfSwKLSAgICAgICAgICAgIHsgImF1ZGlvL3gtbXBlZyJf
cywgIm1wMyJfcyB9LAotCi0gICAgICAgICAgICAvLyBNUEVHLTIKLSAgICAgICAgICAgIHsgInZp
ZGVvL3gtbXBlZzIiX3MsICJtcDIiX3MgfSwKLSAgICAgICAgICAgIHsgInZpZGVvL21wZWcyIl9z
LCAidm9iIl9zIH0sCi0gICAgICAgICAgICB7ICJ2aWRlby9tcGVnMiJfcywgIm1vZCJfcyB9LAot
ICAgICAgICAgICAgeyAidmlkZW8vbTJ0cyJfcywgIm0ydHMiX3MgfSwKLSAgICAgICAgICAgIHsg
InZpZGVvL3gtbTJ0cyJfcywgIm0ydCJfcyB9LAotICAgICAgICAgICAgeyAidmlkZW8veC1tMnRz
Il9zLCAidHMiX3MgfSwKLQotICAgICAgICAgICAgLy8gM0dQLzNHUDIKLSAgICAgICAgICAgIHsg
ImF1ZGlvLzNncHAiX3MsICIzZ3BwIl9zIH0sCi0gICAgICAgICAgICB7ICJhdWRpby8zZ3BwMiJf
cywgIjNnMiJfcyB9LAotICAgICAgICAgICAgeyAiYXBwbGljYXRpb24veC1tcGVnIl9zLCAiYW1j
Il9zIH0sCi0KLSAgICAgICAgICAgIC8vIEFBQwotICAgICAgICAgICAgeyAiYXVkaW8vYWFjIl9z
LCAiYWFjIl9zIH0sCi0gICAgICAgICAgICB7ICJhdWRpby9hYWMiX3MsICJhZHRzIl9zIH0sCi0g
ICAgICAgICAgICB7ICJhdWRpby94LWFhYyJfcywgIm00ciJfcyB9LAotCi0gICAgICAgICAgICAv
LyBDb3JlQXVkaW8gRmlsZQotICAgICAgICAgICAgeyAiYXVkaW8veC1jYWYiX3MsICJjYWYiX3Mg
fSwKLSAgICAgICAgICAgIHsgImF1ZGlvL3gtZ3NtIl9zLCAiZ3NtIl9zIH0sCi0KLSAgICAgICAg
ICAgIC8vIEFEUENNCi0gICAgICAgICAgICB7ICJhdWRpby94LXdhdiJfcywgIndhdiJfcyB9LAot
ICAgICAgICAgICAgeyAiYXVkaW8vdm5kLndhdmUiX3MsICJ3YXYiX3MgfSwKLSAgICAgICAgfTsK
K2NvbnN0ZXhwciBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VHlwZUV4dGVuc2lvblBhaXI+IGNvbW1v
bk1lZGlhVHlwZXMoKQoreworICAgIC8vIEEgdGFibGUgb2YgY29tbW9uIG1lZGlhIE1JTUUgdHlw
ZXMgYW5kIGZpbGUgZXh0ZW5zaW9ucyB1c2VkIHdoZW4gYSBwbGF0Zm9ybSdzCisgICAgLy8gc3Bl
Y2lmaWMgTUlNRSB0eXBlIGxvb2t1cCBkb2Vzbid0IGhhdmUgYSBtYXRjaCBmb3IgYSBtZWRpYSBm
aWxlIGV4dGVuc2lvbi4KKyAgICBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VHlwZUV4dGVuc2lvblBh
aXI+IGNvbW1vbk1lZGlhVHlwZXMgPSB7CisgICAgICAgIC8vIE9nZworICAgICAgICB7ICJhcHBs
aWNhdGlvbi9vZ2ciX3MsICJvZ3giX3MgfSwKKyAgICAgICAgeyAiYXVkaW8vb2dnIl9zLCAib2dn
Il9zIH0sCisgICAgICAgIHsgImF1ZGlvL29nZyJfcywgIm9nYSJfcyB9LAorICAgICAgICB7ICJ2
aWRlby9vZ2ciX3MsICJvZ3YiX3MgfSwKKworICAgICAgICAvLyBBbm5vZGV4CisgICAgICAgIHsg
ImFwcGxpY2F0aW9uL2Fubm9kZXgiX3MsICJhbngiX3MgfSwKKyAgICAgICAgeyAiYXVkaW8vYW5u
b2RleCJfcywgImF4YSJfcyB9LAorICAgICAgICB7ICJ2aWRlby9hbm5vZGV4Il9zLCAiYXh2Il9z
IH0sCisgICAgICAgIHsgImF1ZGlvL3NwZWV4Il9zLCAic3B4Il9zIH0sCisKKyAgICAgICAgLy8g
V2ViTQorICAgICAgICB7ICJ2aWRlby93ZWJtIl9zLCAid2VibSJfcyB9LAorICAgICAgICB7ICJh
dWRpby93ZWJtIl9zLCAid2VibSJfcyB9LAorCisgICAgICAgIC8vIE1QRUcKKyAgICAgICAgeyAi
YXVkaW8vbXBlZyJfcywgIm0xYSJfcyB9LAorICAgICAgICB7ICJhdWRpby9tcGVnIl9zLCAibTJh
Il9zIH0sCisgICAgICAgIHsgImF1ZGlvL21wZWciX3MsICJtMXMiX3MgfSwKKyAgICAgICAgeyAi
YXVkaW8vbXBlZyJfcywgIm1wYSJfcyB9LAorICAgICAgICB7ICJ2aWRlby9tcGVnIl9zLCAibXBn
Il9zIH0sCisgICAgICAgIHsgInZpZGVvL21wZWciX3MsICJtMTUiX3MgfSwKKyAgICAgICAgeyAi
dmlkZW8vbXBlZyJfcywgIm0xcyJfcyB9LAorICAgICAgICB7ICJ2aWRlby9tcGVnIl9zLCAibTF2
Il9zIH0sCisgICAgICAgIHsgInZpZGVvL21wZWciX3MsICJtNzUiX3MgfSwKKyAgICAgICAgeyAi
dmlkZW8vbXBlZyJfcywgIm1wYSJfcyB9LAorICAgICAgICB7ICJ2aWRlby9tcGVnIl9zLCAibXBl
ZyJfcyB9LAorICAgICAgICB7ICJ2aWRlby9tcGVnIl9zLCAibXBtIl9zIH0sCisgICAgICAgIHsg
InZpZGVvL21wZWciX3MsICJtcHYiX3MgfSwKKworICAgICAgICAvLyBNUEVHIHBsYXlsaXN0Cisg
ICAgICAgIHsgImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5tcGVndXJsIl9zLCAibTN1OCJfcyB9LAor
ICAgICAgICB7ICJhcHBsaWNhdGlvbi9tcGVndXJsIl9zLCAibTN1OCJfcyB9LAorICAgICAgICB7
ICJhcHBsaWNhdGlvbi94LW1wZWd1cmwiX3MsICJtM3U4Il9zIH0sCisgICAgICAgIHsgImF1ZGlv
L21wZWd1cmwiX3MsICJtM3VybCJfcyB9LAorICAgICAgICB7ICJhdWRpby94LW1wZWd1cmwiX3Ms
ICJtM3VybCJfcyB9LAorICAgICAgICB7ICJhdWRpby9tcGVndXJsIl9zLCAibTN1Il9zIH0sCisg
ICAgICAgIHsgImF1ZGlvL3gtbXBlZ3VybCJfcywgIm0zdSJfcyB9LAorCisgICAgICAgIC8vIE1Q
RUctNAorICAgICAgICB7ICJ2aWRlby94LW00diJfcywgIm00diJfcyB9LAorICAgICAgICB7ICJh
dWRpby94LW00YSJfcywgIm00YSJfcyB9LAorICAgICAgICB7ICJhdWRpby94LW00YiJfcywgIm00
YiJfcyB9LAorICAgICAgICB7ICJhdWRpby94LW00cCJfcywgIm00cCJfcyB9LAorICAgICAgICB7
ICJhdWRpby9tcDQiX3MsICJtNGEiX3MgfSwKKworICAgICAgICAvLyBNUDMKKyAgICAgICAgeyAi
YXVkaW8vbXAzIl9zLCAibXAzIl9zIH0sCisgICAgICAgIHsgImF1ZGlvL3gtbXAzIl9zLCAibXAz
Il9zIH0sCisgICAgICAgIHsgImF1ZGlvL3gtbXBlZyJfcywgIm1wMyJfcyB9LAorCisgICAgICAg
IC8vIE1QRUctMgorICAgICAgICB7ICJ2aWRlby94LW1wZWcyIl9zLCAibXAyIl9zIH0sCisgICAg
ICAgIHsgInZpZGVvL21wZWcyIl9zLCAidm9iIl9zIH0sCisgICAgICAgIHsgInZpZGVvL21wZWcy
Il9zLCAibW9kIl9zIH0sCisgICAgICAgIHsgInZpZGVvL20ydHMiX3MsICJtMnRzIl9zIH0sCisg
ICAgICAgIHsgInZpZGVvL3gtbTJ0cyJfcywgIm0ydCJfcyB9LAorICAgICAgICB7ICJ2aWRlby94
LW0ydHMiX3MsICJ0cyJfcyB9LAorCisgICAgICAgIC8vIDNHUC8zR1AyCisgICAgICAgIHsgImF1
ZGlvLzNncHAiX3MsICIzZ3BwIl9zIH0sCisgICAgICAgIHsgImF1ZGlvLzNncHAyIl9zLCAiM2cy
Il9zIH0sCisgICAgICAgIHsgImFwcGxpY2F0aW9uL3gtbXBlZyJfcywgImFtYyJfcyB9LAorCisg
ICAgICAgIC8vIEFBQworICAgICAgICB7ICJhdWRpby9hYWMiX3MsICJhYWMiX3MgfSwKKyAgICAg
ICAgeyAiYXVkaW8vYWFjIl9zLCAiYWR0cyJfcyB9LAorICAgICAgICB7ICJhdWRpby94LWFhYyJf
cywgIm00ciJfcyB9LAorCisgICAgICAgIC8vIENvcmVBdWRpbyBGaWxlCisgICAgICAgIHsgImF1
ZGlvL3gtY2FmIl9zLCAiY2FmIl9zIH0sCisgICAgICAgIHsgImF1ZGlvL3gtZ3NtIl9zLCAiZ3Nt
Il9zIH0sCisKKyAgICAgICAgLy8gQURQQ00KKyAgICAgICAgeyAiYXVkaW8veC13YXYiX3MsICJ3
YXYiX3MgfSwKKyAgICAgICAgeyAiYXVkaW8vdm5kLndhdmUiX3MsICJ3YXYiX3MgfSwKKyAgICB9
OworICAgIHJldHVybiBjb21tb25NZWRpYVR5cGVzOworfQogCitjb25zdCBIYXNoTWFwPFN0cmlu
ZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIGNvbW1vbk1pbWVU
eXBlc01hcCgpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+LCBBU0NJSUNhc2VJbnNl
bnNpdGl2ZUhhc2g+PiBtaW1lVHlwZXNNYXAgPSBbXSB7CiAgICAgICAgIEhhc2hNYXA8U3RyaW5n
LCBWZWN0b3I8U3RyaW5nPiwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiBtYXA7Ci0gICAgICAg
IGZvciAoYXV0byYgcGFpciA6IGNvbW1vbk1lZGlhVHlwZXMpIHsKKyAgICAgICAgZm9yIChhdXRv
JiBwYWlyIDogY29tbW9uTWVkaWFUeXBlcygpKSB7CiAgICAgICAgICAgICBBU0NJSUxpdGVyYWwg
dHlwZSA9IHBhaXIudHlwZTsKICAgICAgICAgICAgIEFTQ0lJTGl0ZXJhbCBleHRlbnNpb24gPSBw
YWlyLmV4dGVuc2lvbjsKICAgICAgICAgICAgIG1hcC5lbnN1cmUoZXh0ZW5zaW9uLCBbdHlwZSwg
ZXh0ZW5zaW9uXSB7CkBAIC0zNzksOSArMzg1LDIwIEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8U3Ry
aW5nPiogdHlwZXNGb3JDb20KICAgICAgICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQo
dHlwZSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1hcDsKLSAgICB9KCkpOwotICAgIGF1
dG8gbWFwRW50cnkgPSBtYXAuZ2V0KCkuZmluZChleHRlbnNpb24pOwotICAgIGlmIChtYXBFbnRy
eSA9PSBtYXAuZ2V0KCkuZW5kKCkpCisgICAgfSgpOworICAgIHJldHVybiBtaW1lVHlwZXNNYXA7
Cit9CisKK3N0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiogdHlwZXNGb3JDb21tb25FeHRlbnNp
b24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCit7CisgICAgaWYgKG92ZXJyaWRkZW5NaW1lVHlw
ZXNNYXAoKS5oYXNWYWx1ZSgpKSB7CisgICAgICAgIGF1dG8gbWFwRW50cnkgPSBvdmVycmlkZGVu
TWltZVR5cGVzTWFwKCktPmZpbmQoZXh0ZW5zaW9uKTsKKyAgICAgICAgaWYgKG1hcEVudHJ5ID09
IG92ZXJyaWRkZW5NaW1lVHlwZXNNYXAoKS0+ZW5kKCkpCisgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICAgICAgcmV0dXJuICZtYXBFbnRyeS0+dmFsdWU7CisgICAgfQorICAgIGF1dG8g
bWFwRW50cnkgPSBjb21tb25NaW1lVHlwZXNNYXAoKS5maW5kKGV4dGVuc2lvbik7CisgICAgaWYg
KG1hcEVudHJ5ID09IGNvbW1vbk1pbWVUeXBlc01hcCgpLmVuZCgpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKICAgICByZXR1cm4gJm1hcEVudHJ5LT52YWx1ZTsKIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmgJKHJldmlzaW9uIDI1NDk5OCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaAkod29ya2luZyBjb3B5
KQpAQCAtMzEsNiArMzEsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitXRUJDT1JFX0VY
UE9SVCBPcHRpb25hbDxIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJQ2FzZUlu
c2Vuc2l0aXZlSGFzaD4+JiBvdmVycmlkZGVuTWltZVR5cGVzTWFwKCk7CitXRUJDT1JFX0VYUE9S
VCBjb25zdCBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0
aXZlSGFzaD4mIGNvbW1vbk1pbWVUeXBlc01hcCgpOworCitzdHJ1Y3QgVHlwZUV4dGVuc2lvblBh
aXIgeworICAgIEFTQ0lJTGl0ZXJhbCB0eXBlOworICAgIEFTQ0lJTGl0ZXJhbCBleHRlbnNpb247
Cit9OworCitjb25zdGV4cHIgc3RkOjppbml0aWFsaXplcl9saXN0PFR5cGVFeHRlbnNpb25QYWly
PiBjb21tb25NZWRpYVR5cGVzKCk7CisKIHN0cnVjdCBNSU1FVHlwZVJlZ2lzdHJ5VGhyZWFkR2xv
YmFsRGF0YSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTUlNRVR5cGVSZWdpc3RyeVRocmVh
ZEdsb2JhbERhdGEpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNTIsNyArNjIs
NyBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IFdlYktpdCBjb2Rpbmcgc3R5bGUgc2F5cyB3ZSBz
aG91bGQgbm90IGhhdmUgdGhlIHdvcmQgImdldCIgaW4gdGhlIG5hbWVzIG9mIHRoZXNlIGZ1bmN0
aW9ucy4KICAgICBzdGF0aWMgVmVjdG9yPFN0cmluZz4gZ2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBl
KGNvbnN0IFN0cmluZyYgdHlwZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBn
ZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpOwotICAg
IHN0YXRpYyBTdHJpbmcgZ2V0TWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcm
IGV4dGVuc2lvbik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBnZXRNZWRpYU1J
TUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uKTsKICAgICBzdGF0aWMg
VmVjdG9yPFN0cmluZz4gZ2V0TWVkaWFNSU1FVHlwZXNGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5n
JiBleHRlbnNpb24pOwogCiAgICAgc3RhdGljIFN0cmluZyBnZXRNSU1FVHlwZUZvclBhdGgoY29u
c3QgU3RyaW5nJiBwYXRoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJ
KHJldmlzaW9uIDI1NDk5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDYgKzExOCw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRD
UHJvdmlkZXIuaCIKICNpbmNsdWRlICJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIkxvY2F0
aW9uLmgiCisjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1hbGxvY1N0
YXRpc3RpY3MuaCIKICNpbmNsdWRlICJNZWRpYURldmljZXMuaCIKICNpbmNsdWRlICJNZWRpYUVu
Z2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5LmgiCkBAIC01NDM2LDQgKzU0MzcsOSBAQCBib29sIElu
dGVybmFsczo6c3lzdGVtSGFzQmF0dGVyeSgpIGNvbnN0CiAjZW5kaWYKIH0KIAorU3RyaW5nIElu
dGVybmFsczo6bWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lv
bikKK3sKKyAgICByZXR1cm4gTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TWVkaWFNSU1FVHlwZUZvckV4
dGVuc2lvbihleHRlbnNpb24pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlzaW9uIDI1NDk5OCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTkzMCw2ICs5MzAs
OCBAQCBwdWJsaWM6CiAKICAgICBib29sIHN5c3RlbUhhc0JhdHRlcnkoKSBjb25zdDsKIAorICAg
IFN0cmluZyBtZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9u
KTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1lbnQmKTsKICAgICBE
b2N1bWVudCogY29udGV4dERvY3VtZW50KCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCShyZXZpc2lvbiAyNTQ5OTgpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTgzNyw0ICs4MzcsNiBAQCBlbnVt
IENvbXBvc2l0aW5nUG9saWN5IHsKICAgICBET01TdHJpbmcgc3lzdGVtQ29sb3JGb3JDU1NWYWx1
ZShET01TdHJpbmcgY3NzVmFsdWUsIGJvb2xlYW4gdXNlRGFya01vZGVBcHBlYXJhbmNlLCBib29s
ZWFuIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKIAogICAgIGJvb2xlYW4gc3lzdGVt
SGFzQmF0dGVyeSgpOworCisgICAgRE9NU3RyaW5nIG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb24o
RE9NU3RyaW5nIGV4dGVuc2lvbik7CiB9OwpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDk5OCkK
KysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMjAtMDEtMjMgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFtDb2NvYV0gTWVkaWEgbWltZSB0eXBlcyBtYXAgc2hvdWxkIGJlIGNyZWF0ZWQgaW4g
dGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNjQ3OAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAg
ICAgIFNlbmQgdGhlIG1pbWUgdHlwZSBtYXAgZnJvbSB0aGUgVUkgcHJvY2VzcyB0byB0aGUgV2Vi
Q29udGVudCBwcm9jZXNzIGFzIHBhcnQgb2YgdGhlCisgICAgICAgIFdlYlByb2Nlc3MgY3JlYXRp
b24gcGFyYW1ldGVycy4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlBy
b2Nlc3MpOgorCiAyMDIwLTAxLTIzICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBbQ29jb2FdIEJyb2tlciBhY2Nlc3MgdG8gdGhlIFBvd2VyTWFuYWdlbWVu
dCBBUEkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAyNTQ5OTgpCisrKyBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTY3LDYgKzE2Nyw3IEBAIHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2QKICAgICBlbmNvZGVyIDw8IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOwogICAgIGVuY29kZXIg
PDwgbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKICAgICBlbmNvZGVyIDw8IHN5c3Rl
bUhhc0JhdHRlcnk7CisgICAgZW5jb2RlciA8PCBtaW1lVHlwZXNNYXA7CiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC00NDAsNiArNDQxLDEyIEBAIGJvb2wgV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2QKICAgICBpZiAoIXN5c3RlbUhhc0JhdHRlcnkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBwYXJhbWV0ZXJzLnN5c3RlbUhhc0JhdHRlcnkgPSBX
VEZNb3ZlKCpzeXN0ZW1IYXNCYXR0ZXJ5KTsKKworICAgIE9wdGlvbmFsPE9wdGlvbmFsPEhhc2hN
YXA8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPiwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPj4+IG1p
bWVUeXBlc01hcDsKKyAgICBkZWNvZGVyID4+IG1pbWVUeXBlc01hcDsKKyAgICBpZiAoIW1pbWVU
eXBlc01hcCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHBhcmFtZXRlcnMubWltZVR5cGVz
TWFwID0gV1RGTW92ZSgqbWltZVR5cGVzTWFwKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDI1NDk5OCkKKysrIFNvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAt
MjA5LDYgKzIwOSw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAg
ICBPcHRpb25hbDxTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGU+IG5lSGVscGVyRXh0ZW5zaW9uSGFu
ZGxlOwogICAgIE9wdGlvbmFsPFNhbmRib3hFeHRlbnNpb246OkhhbmRsZT4gbmVTZXNzaW9uTWFu
YWdlckV4dGVuc2lvbkhhbmRsZTsKICAgICBib29sIHN5c3RlbUhhc0JhdHRlcnkgeyBmYWxzZSB9
OworICAgIE9wdGlvbmFsPEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPiwgQVNDSUlDYXNl
SW5zZW5zaXRpdmVIYXNoPj4gbWltZVR5cGVzTWFwOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vz
c1Bvb2xDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCShyZXZpc2lvbiAyNTQ5OTgpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC00Nyw2ICs0Nyw3IEBACiAjaW1wb3J0ICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbXBv
cnQgIldpbmRvd1NlcnZlckNvbm5lY3Rpb24uaCIKICNpbXBvcnQgPFdlYkNvcmUvQ29sb3IuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9O
ZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQu
aD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1QYXN0ZWJvYXJkLmg+CkBAIC0zNTMsNiArMzU0
LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplVwogICAgICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUudWlr
aXQudmlld3NlcnZpY2UuY29tLmFwcGxlLldlYkNvbnRlbnRGaWx0ZXIucmVtb3RlVUkiLCBXVEY6
Om51bGxvcHQsIGhhbmRsZSk7CiAgICAgICAgIHBhcmFtZXRlcnMuY29udGVudEZpbHRlckV4dGVu
c2lvbkhhbmRsZSA9IFdURk1vdmUoaGFuZGxlKTsKICAgICB9CisgICAgcGFyYW1ldGVycy5taW1l
VHlwZXNNYXAgPSBjb21tb25NaW1lVHlwZXNNYXAoKTsKICNlbmRpZgogICAgIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHJldmlzaW9uIDI1NDk5OCkKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAg
LTU5LDYgKzU5LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvSGlzdG9yeUl0ZW0uaD4KICNpbXBvcnQg
PFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2dJbml0aWFs
aXphdGlvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL01lbW9yeVJlbGVhc2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvTlNTY3JvbGxlcklt
cERldGFpbHMuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGVyZm9ybWFuY2VMb2dnaW5nLmg+CkBAIC0y
NjAsNiArMjYxLDkgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcgog
ICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkoKnBhcmFtZXRlcnMu
bmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZSk7CiAgICAgTmV0d29ya0V4dGVuc2lvbkNv
bnRlbnRGaWx0ZXI6OnNldEhhc0NvbnN1bWVkU2FuZGJveEV4dGVuc2lvbnMocGFyYW1ldGVycy5u
ZUhlbHBlckV4dGVuc2lvbkhhbmRsZS5oYXNWYWx1ZSgpICYmIHBhcmFtZXRlcnMubmVTZXNzaW9u
TWFuYWdlckV4dGVuc2lvbkhhbmRsZS5oYXNWYWx1ZSgpKTsKICAgICBzZXRTeXN0ZW1IYXNCYXR0
ZXJ5KHBhcmFtZXRlcnMuc3lzdGVtSGFzQmF0dGVyeSk7CisKKyAgICBpZiAocGFyYW1ldGVycy5t
aW1lVHlwZXNNYXApCisgICAgICAgIG92ZXJyaWRkZW5NaW1lVHlwZXNNYXAoKSA9IFdURk1vdmUo
cGFyYW1ldGVycy5taW1lVHlwZXNNYXApOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMjU0OTk4KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMjAtMDEtMjMgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBw
bGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gTWVkaWEgbWltZSB0eXBlcyBtYXAgc2hvdWxkIGJl
IGNyZWF0ZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNjQ3OAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWlt
ZVR5cGVzLm1tOiBBZGRlZC4KKyAgICAgICAgKFRFU1QpOgorCiAyMDIwLTAxLTIzICBUdW9tYXMg
S2Fya2thaW5lbiAgPHR1b21hcy53ZWJraXRAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBtaXNz
aW5nIGNvdmVyYWdlLnhjY29uZmlnCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gMjU0OTk4KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTg2Miw2ICs4NjIsNyBAQAogCQlD
MEFEQkU5NjEyRkNBNzlCMDBEMkMxMjkgLyogc2ltcGxlLWZvcm0uaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMEFEQkU4NDEyRkNBNkI2
MDBEMkMxMjkgLyogc2ltcGxlLWZvcm0uaHRtbCAqLzsgfTsKIAkJQzBCRDY2OUYxMzFEM0NGRjAw
RTE4RjJBIC8qIFJlc3BvbnNpdmVuZXNzVGltZXJEb2VzbnRGaXJlRWFybHlfQnVuZGxlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQkQ2NjlFMTMx
RDNDRkYwMEUxOEYyQSAvKiBSZXNwb25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0J1bmRs
ZS5jcHAgKi87IH07CiAJCUMwQzVEM0M2MTQ1OTkxMjkwMEE4MDJBNiAvKiBHZXRCYWNraW5nU2Nh
bGVGYWN0b3JfQnVuZGxlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzBDNUQzQkQxNDU5OEI2RjAwQTgwMkE2IC8qIEdldEJhY2tpbmdTY2FsZUZhY3Rv
cl9CdW5kbGUubW0gKi87IH07CisJCUMxNDVDQzBDMjNEQTVBMUYwMDNBNUVFQiAvKiBNaW1lVHlw
ZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ1
Q0MwQjIzREE1QTBGMDAzQTVFRUIgLyogTWltZVR5cGVzLm1tICovOyB9OwogCQlDMTY5MkRDQTIz
RDEwREFFMDA2RTg4RjcgLyogQmF0dGVyeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMxNjkyREM5MjNEMTBEQUUwMDZFODhGNyAvKiBCYXR0ZXJ5Lm1t
ICovOyB9OwogCQlDMjBGODhBNzIyOTVCOTY3MDBENjEwRkEgLyogQ29yZVRleHQuZnJhbWV3b3Jr
IGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIwRjg4
QTYyMjk1Qjk2NzAwRDYxMEZBIC8qIENvcmVUZXh0LmZyYW1ld29yayAqLzsgfTsKIAkJQzIyRkEz
MkIyMjhGODcwODAwOUQ3OTg4IC8qIFRleHRXaWR0aC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyMkZBMzJBMjI4Rjg3MDgwMDlENzk4OCAvKiBUZXh0
V2lkdGgubW0gKi87IH07CkBAIC0yMzg1LDYgKzIzODYsNyBAQAogCQlDMEJENjY5RTEzMUQzQ0ZG
MDBFMThGMkEgLyogUmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseV9CdW5kbGUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVzcG9uc2l2ZW5lc3NUaW1l
ckRvZXNudEZpcmVFYXJseV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDMEM1RDNCQzE0NTk4QjZGMDBBODAyQTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gR2V0QmFja2luZ1NjYWxlRmFj
dG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMEM1RDNCRDE0NTk4QjZGMDBB
ODAyQTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yX0J1bmRsZS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxNDVDQzBCMjNEQTVBMEYwMDNBNUVFQiAv
KiBNaW1lVHlwZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBN
aW1lVHlwZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNjkyREM5MjNEMTBE
QUUwMDZFODhGNyAvKiBCYXR0ZXJ5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmF0dGVyeS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzFEOEVFMjEyMDI4RThFMzAwOEVCMTQx
IC8qIFdlYlByb2Nlc3NUZXJtaW5hdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJQcm9jZXNzVGVybWluYXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDMjBGODhBNjIyOTVCOTY3MDBENjEwRkEgLyogQ29yZVRleHQuZnJhbWV3b3JrICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5m
cmFtZXdvcms7IG5hbWUgPSBDb3JlVGV4dC5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFy
eS9GcmFtZXdvcmtzL0NvcmVUZXh0LmZyYW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07
CkBAIC0yODI2LDYgKzI4MjgsNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9
ICgKIAkJCQlDMTY5MkRDOTIzRDEwREFFMDA2RTg4RjcgLyogQmF0dGVyeS5tbSAqLywKKwkJCQlD
MTQ1Q0MwQjIzREE1QTBGMDAzQTVFRUIgLyogTWltZVR5cGVzLm1tICovLAogCQkJCTBGMTM5RTc1
MUE0MjNBNTMwMEY1OTBGNSAvKiBXZWFrT2JqQ1B0ci5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0g
Y29jb2E7CkBAIC00ODA5LDYgKzQ4MTIsNyBAQAogCQkJCTVDMEJGODk0MURENTk5QzkwMEIwMDMy
OCAvKiBNZW51VHlwZXNGb3JNb3VzZUV2ZW50cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxNjVG
RTA0MjAxRUU2MjAwMDlGN0VDMyAvKiBNZXNzYWdlUG9ydFByb3ZpZGVycy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCUE1QjE0OURFMUY1QTE5RUEwMEM2REFGRiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUMxNDVDQzBDMjNEQTVBMUYwMDNBNUVFQiAvKiBNaW1lVHlw
ZXMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUNEMUM2QzFCMzhDRTQzMDAxNDJDQTUgLyogTW9k
YWxBbGVydHMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTBCNjFEMEE2NEIzMDBGRUJDRjMg
LyogTW9kYWxBbGVydHNTUEkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMDExQTQxMUFF
NjAwNDQ3QzRDIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2guY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4
OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NaW1lVHlwZXMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWltZVR5cGVzLm1tCShub25l
eGlzdGVudCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01pbWVUeXBlcy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaWYgV0tfSEFWRV9DX1NQSQorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxp
dGllcy5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViQ29yZS9NSU1F
VHlwZVJlZ2lzdHJ5Lmg+CisKK1RFU1QoV2ViS2l0LCBNaW1lVHlwZXMpCit7CisgICAgYXV0byBj
b25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGlu
aXRdKTsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFRl
c3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIklu
dGVybmFsc0luamVjdGVkQnVuZGxlVGVzdCIpKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgpLnBy
b2Nlc3NQb29sID0gKFdLUHJvY2Vzc1Bvb2wgKiljb250ZXh0LmdldCgpOworICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFr
ZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBh
ZGRUb1dpbmRvdzpZRVNdKTsKKworICAgIGZvciAoYXV0byYgcGFpciA6IFdlYkNvcmU6OmNvbW1v
bk1lZGlhVHlwZXMoKSkgeworICAgICAgICBBU0NJSUxpdGVyYWwgZXh0ZW5zaW9uID0gcGFpci5l
eHRlbnNpb247CisKKyAgICAgICAgYXV0byBqcyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0
OkAid2luZG93LmludGVybmFscy5tZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKFwiJXNcIikiLCBl
eHRlbnNpb24uY2hhcmFjdGVycygpXTsKKworICAgICAgICBhdXRvIG1pbWVUeXBlID0gW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpqc107CisKKyAgICAgICAgQVNTRVJUX1RS
VUUoV2ViQ29yZTo6TUlNRVR5cGVSZWdpc3RyeTo6Z2V0TWVkaWFNSU1FVHlwZUZvckV4dGVuc2lv
bihleHRlbnNpb24pID09IFN0cmluZyhtaW1lVHlwZSkpOworICAgIH0KK30KKworI2VuZGlmIC8v
IFdLX0hBVkVfQ19TUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388601</attachid>
            <date>2020-01-23 15:31:41 -0800</date>
            <delta_ts>2020-01-24 11:58:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206478-20200123153140.patch</filename>
            <type>text/plain</type>
            <size>23874</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDk5OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAxLTIzICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIE1lZGlhIG1p
bWUgdHlwZXMgbWFwIHNob3VsZCBiZSBjcmVhdGVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY0NzgKKworICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBDcmVhdGluZyB0aGlzIG1hcCBp
biB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHdpbGwgYWNjZXNzIHRoZSBsYXVuY2ggc2VydmljZXMg
ZGFlbW9uLCB3aGljaCB3aWxsIGJlIGJsb2NrZWQuCisgICAgICAgIFRoaXMgcGF0Y2ggY3JlYXRl
cyB0aGUgbWFwIGluIHRoZSBVSSBwcm9jZXNzIGFuZCBzZW5kcyBpdCB0byB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIGFzIHBhcnQgb2YgdGhlIFdlYlByb2Nlc3MKKyAgICAgICAgY3JlYXRpb24gcGFy
YW1ldGVycy4KKworICAgICAgICBBUEkgdGVzdDogV2ViS2l0Lk1pbWVUeXBlcworCisgICAgICAg
ICogcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvdmVy
cmlkZGVuTWltZVR5cGVzTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbW1vbk1lZGlhVHlwZXMp
OgorICAgICAgICAoV2ViQ29yZTo6Y29tbW9uTWltZVR5cGVzTWFwKToKKyAgICAgICAgKFdlYkNv
cmU6OnR5cGVzRm9yQ29tbW9uRXh0ZW5zaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NSU1FVHlw
ZVJlZ2lzdHJ5Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjptZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoK
KwogMjAyMC0wMS0yMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0NvY29hXSBCcm9rZXIgYWNjZXNzIHRvIHRoZSBQb3dlck1hbmFnZW1lbnQgQVBJCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcAkocmV2
aXNpb24gMjU0OTk4KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3Ry
eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3NCw5OCArMjc0LDE4IEBAIGNvbnN0IEhhc2hTZXQ8
U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGkKICAgICByZXR1cm4gdW5zdXBwb3J0ZWRUZXh0TUlN
RVR5cGVzOwogfQogCi1zdGF0aWMgY29uc3QgVmVjdG9yPFN0cmluZz4qIHR5cGVzRm9yQ29tbW9u
RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uKQorT3B0aW9uYWw8SGFzaE1hcDxTdHJp
bmcsIFZlY3RvcjxTdHJpbmc+LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiYgb3ZlcnJpZGRl
bk1pbWVUeXBlc01hcCgpCiB7Ci0gICAgc3RhdGljIGNvbnN0IGF1dG8gbWFwID0gbWFrZU5ldmVy
RGVzdHJveWVkKFtdIHsKLSAgICAgICAgc3RydWN0IFR5cGVFeHRlbnNpb25QYWlyIHsKLSAgICAg
ICAgICAgIEFTQ0lJTGl0ZXJhbCB0eXBlOwotICAgICAgICAgICAgQVNDSUlMaXRlcmFsIGV4dGVu
c2lvbjsKLSAgICAgICAgfTsKLQotICAgICAgICAvLyBBIHRhYmxlIG9mIGNvbW1vbiBtZWRpYSBN
SU1FIHR5cGVzIGFuZCBmaWxlIGV4dGVudGlvbnMgdXNlZCB3aGVuIGEgcGxhdGZvcm0ncwotICAg
ICAgICAvLyBzcGVjaWZpYyBNSU1FIHR5cGUgbG9va3VwIGRvZXNuJ3QgaGF2ZSBhIG1hdGNoIGZv
ciBhIG1lZGlhIGZpbGUgZXh0ZW5zaW9uLgotICAgICAgICBzdGF0aWMgY29uc3QgVHlwZUV4dGVu
c2lvblBhaXIgY29tbW9uTWVkaWFUeXBlc1tdID0gewotICAgICAgICAgICAgLy8gT2dnCi0gICAg
ICAgICAgICB7ICJhcHBsaWNhdGlvbi9vZ2ciX3MsICJvZ3giX3MgfSwKLSAgICAgICAgICAgIHsg
ImF1ZGlvL29nZyJfcywgIm9nZyJfcyB9LAotICAgICAgICAgICAgeyAiYXVkaW8vb2dnIl9zLCAi
b2dhIl9zIH0sCi0gICAgICAgICAgICB7ICJ2aWRlby9vZ2ciX3MsICJvZ3YiX3MgfSwKLQotICAg
ICAgICAgICAgLy8gQW5ub2RleAotICAgICAgICAgICAgeyAiYXBwbGljYXRpb24vYW5ub2RleCJf
cywgImFueCJfcyB9LAotICAgICAgICAgICAgeyAiYXVkaW8vYW5ub2RleCJfcywgImF4YSJfcyB9
LAotICAgICAgICAgICAgeyAidmlkZW8vYW5ub2RleCJfcywgImF4diJfcyB9LAotICAgICAgICAg
ICAgeyAiYXVkaW8vc3BlZXgiX3MsICJzcHgiX3MgfSwKLQotICAgICAgICAgICAgLy8gV2ViTQot
ICAgICAgICAgICAgeyAidmlkZW8vd2VibSJfcywgIndlYm0iX3MgfSwKLSAgICAgICAgICAgIHsg
ImF1ZGlvL3dlYm0iX3MsICJ3ZWJtIl9zIH0sCi0KLSAgICAgICAgICAgIC8vIE1QRUcKLSAgICAg
ICAgICAgIHsgImF1ZGlvL21wZWciX3MsICJtMWEiX3MgfSwKLSAgICAgICAgICAgIHsgImF1ZGlv
L21wZWciX3MsICJtMmEiX3MgfSwKLSAgICAgICAgICAgIHsgImF1ZGlvL21wZWciX3MsICJtMXMi
X3MgfSwKLSAgICAgICAgICAgIHsgImF1ZGlvL21wZWciX3MsICJtcGEiX3MgfSwKLSAgICAgICAg
ICAgIHsgInZpZGVvL21wZWciX3MsICJtcGciX3MgfSwKLSAgICAgICAgICAgIHsgInZpZGVvL21w
ZWciX3MsICJtMTUiX3MgfSwKLSAgICAgICAgICAgIHsgInZpZGVvL21wZWciX3MsICJtMXMiX3Mg
fSwKLSAgICAgICAgICAgIHsgInZpZGVvL21wZWciX3MsICJtMXYiX3MgfSwKLSAgICAgICAgICAg
IHsgInZpZGVvL21wZWciX3MsICJtNzUiX3MgfSwKLSAgICAgICAgICAgIHsgInZpZGVvL21wZWci
X3MsICJtcGEiX3MgfSwKLSAgICAgICAgICAgIHsgInZpZGVvL21wZWciX3MsICJtcGVnIl9zIH0s
Ci0gICAgICAgICAgICB7ICJ2aWRlby9tcGVnIl9zLCAibXBtIl9zIH0sCi0gICAgICAgICAgICB7
ICJ2aWRlby9tcGVnIl9zLCAibXB2Il9zIH0sCi0KLSAgICAgICAgICAgIC8vIE1QRUcgcGxheWxp
c3QKLSAgICAgICAgICAgIHsgImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5tcGVndXJsIl9zLCAibTN1
OCJfcyB9LAotICAgICAgICAgICAgeyAiYXBwbGljYXRpb24vbXBlZ3VybCJfcywgIm0zdTgiX3Mg
fSwKLSAgICAgICAgICAgIHsgImFwcGxpY2F0aW9uL3gtbXBlZ3VybCJfcywgIm0zdTgiX3MgfSwK
LSAgICAgICAgICAgIHsgImF1ZGlvL21wZWd1cmwiX3MsICJtM3VybCJfcyB9LAotICAgICAgICAg
ICAgeyAiYXVkaW8veC1tcGVndXJsIl9zLCAibTN1cmwiX3MgfSwKLSAgICAgICAgICAgIHsgImF1
ZGlvL21wZWd1cmwiX3MsICJtM3UiX3MgfSwKLSAgICAgICAgICAgIHsgImF1ZGlvL3gtbXBlZ3Vy
bCJfcywgIm0zdSJfcyB9LAotCi0gICAgICAgICAgICAvLyBNUEVHLTQKLSAgICAgICAgICAgIHsg
InZpZGVvL3gtbTR2Il9zLCAibTR2Il9zIH0sCi0gICAgICAgICAgICB7ICJhdWRpby94LW00YSJf
cywgIm00YSJfcyB9LAotICAgICAgICAgICAgeyAiYXVkaW8veC1tNGIiX3MsICJtNGIiX3MgfSwK
LSAgICAgICAgICAgIHsgImF1ZGlvL3gtbTRwIl9zLCAibTRwIl9zIH0sCi0gICAgICAgICAgICB7
ICJhdWRpby9tcDQiX3MsICJtNGEiX3MgfSwKLQotICAgICAgICAgICAgLy8gTVAzCi0gICAgICAg
ICAgICB7ICJhdWRpby9tcDMiX3MsICJtcDMiX3MgfSwKLSAgICAgICAgICAgIHsgImF1ZGlvL3gt
bXAzIl9zLCAibXAzIl9zIH0sCi0gICAgICAgICAgICB7ICJhdWRpby94LW1wZWciX3MsICJtcDMi
X3MgfSwKLQotICAgICAgICAgICAgLy8gTVBFRy0yCi0gICAgICAgICAgICB7ICJ2aWRlby94LW1w
ZWcyIl9zLCAibXAyIl9zIH0sCi0gICAgICAgICAgICB7ICJ2aWRlby9tcGVnMiJfcywgInZvYiJf
cyB9LAotICAgICAgICAgICAgeyAidmlkZW8vbXBlZzIiX3MsICJtb2QiX3MgfSwKLSAgICAgICAg
ICAgIHsgInZpZGVvL20ydHMiX3MsICJtMnRzIl9zIH0sCi0gICAgICAgICAgICB7ICJ2aWRlby94
LW0ydHMiX3MsICJtMnQiX3MgfSwKLSAgICAgICAgICAgIHsgInZpZGVvL3gtbTJ0cyJfcywgInRz
Il9zIH0sCi0KLSAgICAgICAgICAgIC8vIDNHUC8zR1AyCi0gICAgICAgICAgICB7ICJhdWRpby8z
Z3BwIl9zLCAiM2dwcCJfcyB9LAotICAgICAgICAgICAgeyAiYXVkaW8vM2dwcDIiX3MsICIzZzIi
X3MgfSwKLSAgICAgICAgICAgIHsgImFwcGxpY2F0aW9uL3gtbXBlZyJfcywgImFtYyJfcyB9LAot
Ci0gICAgICAgICAgICAvLyBBQUMKLSAgICAgICAgICAgIHsgImF1ZGlvL2FhYyJfcywgImFhYyJf
cyB9LAotICAgICAgICAgICAgeyAiYXVkaW8vYWFjIl9zLCAiYWR0cyJfcyB9LAotICAgICAgICAg
ICAgeyAiYXVkaW8veC1hYWMiX3MsICJtNHIiX3MgfSwKLQotICAgICAgICAgICAgLy8gQ29yZUF1
ZGlvIEZpbGUKLSAgICAgICAgICAgIHsgImF1ZGlvL3gtY2FmIl9zLCAiY2FmIl9zIH0sCi0gICAg
ICAgICAgICB7ICJhdWRpby94LWdzbSJfcywgImdzbSJfcyB9LAotCi0gICAgICAgICAgICAvLyBB
RFBDTQotICAgICAgICAgICAgeyAiYXVkaW8veC13YXYiX3MsICJ3YXYiX3MgfSwKLSAgICAgICAg
ICAgIHsgImF1ZGlvL3ZuZC53YXZlIl9zLCAid2F2Il9zIH0sCi0gICAgICAgIH07CisgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPE9wdGlvbmFsPEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8U3RyaW5n
PiwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPj4+IG1hcDsKKyAgICByZXR1cm4gbWFwOworfQog
Citjb25zdCBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0
aXZlSGFzaD4mIGNvbW1vbk1pbWVUeXBlc01hcCgpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxT
dHJpbmc+LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBtaW1lVHlwZXNNYXAgPSBbXSB7CiAg
ICAgICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPiwgQVNDSUlDYXNlSW5zZW5zaXRp
dmVIYXNoPiBtYXA7Ci0gICAgICAgIGZvciAoYXV0byYgcGFpciA6IGNvbW1vbk1lZGlhVHlwZXMp
IHsKKyAgICAgICAgZm9yIChhdXRvJiBwYWlyIDogY29tbW9uTWVkaWFUeXBlcygpKSB7CiAgICAg
ICAgICAgICBBU0NJSUxpdGVyYWwgdHlwZSA9IHBhaXIudHlwZTsKICAgICAgICAgICAgIEFTQ0lJ
TGl0ZXJhbCBleHRlbnNpb24gPSBwYWlyLmV4dGVuc2lvbjsKICAgICAgICAgICAgIG1hcC5lbnN1
cmUoZXh0ZW5zaW9uLCBbdHlwZSwgZXh0ZW5zaW9uXSB7CkBAIC0zNzksOSArMjk5LDIwIEBAIHN0
YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiogdHlwZXNGb3JDb20KICAgICAgICAgICAgIH0pLml0
ZXJhdG9yLT52YWx1ZS5hcHBlbmQodHlwZSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1h
cDsKLSAgICB9KCkpOwotICAgIGF1dG8gbWFwRW50cnkgPSBtYXAuZ2V0KCkuZmluZChleHRlbnNp
b24pOwotICAgIGlmIChtYXBFbnRyeSA9PSBtYXAuZ2V0KCkuZW5kKCkpCisgICAgfSgpOworICAg
IHJldHVybiBtaW1lVHlwZXNNYXA7Cit9CisKK3N0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiog
dHlwZXNGb3JDb21tb25FeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pCit7CisgICAg
aWYgKG92ZXJyaWRkZW5NaW1lVHlwZXNNYXAoKS5oYXNWYWx1ZSgpKSB7CisgICAgICAgIGF1dG8g
bWFwRW50cnkgPSBvdmVycmlkZGVuTWltZVR5cGVzTWFwKCktPmZpbmQoZXh0ZW5zaW9uKTsKKyAg
ICAgICAgaWYgKG1hcEVudHJ5ID09IG92ZXJyaWRkZW5NaW1lVHlwZXNNYXAoKS0+ZW5kKCkpCisg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuICZtYXBFbnRyeS0+dmFs
dWU7CisgICAgfQorICAgIGF1dG8gbWFwRW50cnkgPSBjb21tb25NaW1lVHlwZXNNYXAoKS5maW5k
KGV4dGVuc2lvbik7CisgICAgaWYgKG1hcEVudHJ5ID09IGNvbW1vbk1pbWVUeXBlc01hcCgpLmVu
ZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gJm1hcEVudHJ5LT52YWx1
ZTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmgJ
KHJldmlzaW9uIDI1NDk5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVn
aXN0cnkuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsOSBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK1dFQkNPUkVfRVhQT1JUIE9wdGlvbmFsPEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8
U3RyaW5nPiwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPj4mIG92ZXJyaWRkZW5NaW1lVHlwZXNN
YXAoKTsKK1dFQkNPUkVfRVhQT1JUIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8U3RyaW5n
PiwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgY29tbW9uTWltZVR5cGVzTWFwKCk7CisKIHN0
cnVjdCBNSU1FVHlwZVJlZ2lzdHJ5VGhyZWFkR2xvYmFsRGF0YSB7CiAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoTUlNRVR5cGVSZWdpc3RyeVRocmVhZEdsb2JhbERhdGEpOwogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwpAQCAtNTIsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6
IFdlYktpdCBjb2Rpbmcgc3R5bGUgc2F5cyB3ZSBzaG91bGQgbm90IGhhdmUgdGhlIHdvcmQgImdl
dCIgaW4gdGhlIG5hbWVzIG9mIHRoZXNlIGZ1bmN0aW9ucy4KICAgICBzdGF0aWMgVmVjdG9yPFN0
cmluZz4gZ2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBnZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1F
VHlwZShjb25zdCBTdHJpbmcmIHR5cGUpOwotICAgIHN0YXRpYyBTdHJpbmcgZ2V0TWVkaWFNSU1F
VHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbik7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFN0cmluZyBnZXRNZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0
cmluZyYgZXh0ZW5zaW9uKTsKICAgICBzdGF0aWMgVmVjdG9yPFN0cmluZz4gZ2V0TWVkaWFNSU1F
VHlwZXNGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBleHRlbnNpb24pOwogCiAgICAgc3RhdGlj
IFN0cmluZyBnZXRNSU1FVHlwZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKTsKQEAgLTE0NCw0
ICsxNDcsOTUgQEAgcHJpdmF0ZToKIAogV0VCQ09SRV9FWFBPUlQgY29uc3QgU3RyaW5nJiBkZWZh
dWx0TUlNRVR5cGUoKTsKIAorc3RydWN0IFR5cGVFeHRlbnNpb25QYWlyIHsKKyAgICBBU0NJSUxp
dGVyYWwgdHlwZTsKKyAgICBBU0NJSUxpdGVyYWwgZXh0ZW5zaW9uOworfTsKKworY29uc3RleHBy
IHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxUeXBlRXh0ZW5zaW9uUGFpcj4gY29tbW9uTWVkaWFUeXBl
cygpCit7CisgICAgLy8gQSB0YWJsZSBvZiBjb21tb24gbWVkaWEgTUlNRSB0eXBlcyBhbmQgZmls
ZSBleHRlbnNpb25zIHVzZWQgd2hlbiBhIHBsYXRmb3JtJ3MKKyAgICAvLyBzcGVjaWZpYyBNSU1F
IHR5cGUgbG9va3VwIGRvZXNuJ3QgaGF2ZSBhIG1hdGNoIGZvciBhIG1lZGlhIGZpbGUgZXh0ZW5z
aW9uLgorICAgIHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxUeXBlRXh0ZW5zaW9uUGFpcj4gY29tbW9u
TWVkaWFUeXBlcyA9IHsKKyAgICAgICAgLy8gT2dnCisgICAgICAgIHsgImFwcGxpY2F0aW9uL29n
ZyJfcywgIm9neCJfcyB9LAorICAgICAgICB7ICJhdWRpby9vZ2ciX3MsICJvZ2ciX3MgfSwKKyAg
ICAgICAgeyAiYXVkaW8vb2dnIl9zLCAib2dhIl9zIH0sCisgICAgICAgIHsgInZpZGVvL29nZyJf
cywgIm9ndiJfcyB9LAorCisgICAgICAgIC8vIEFubm9kZXgKKyAgICAgICAgeyAiYXBwbGljYXRp
b24vYW5ub2RleCJfcywgImFueCJfcyB9LAorICAgICAgICB7ICJhdWRpby9hbm5vZGV4Il9zLCAi
YXhhIl9zIH0sCisgICAgICAgIHsgInZpZGVvL2Fubm9kZXgiX3MsICJheHYiX3MgfSwKKyAgICAg
ICAgeyAiYXVkaW8vc3BlZXgiX3MsICJzcHgiX3MgfSwKKworICAgICAgICAvLyBXZWJNCisgICAg
ICAgIHsgInZpZGVvL3dlYm0iX3MsICJ3ZWJtIl9zIH0sCisgICAgICAgIHsgImF1ZGlvL3dlYm0i
X3MsICJ3ZWJtIl9zIH0sCisKKyAgICAgICAgLy8gTVBFRworICAgICAgICB7ICJhdWRpby9tcGVn
Il9zLCAibTFhIl9zIH0sCisgICAgICAgIHsgImF1ZGlvL21wZWciX3MsICJtMmEiX3MgfSwKKyAg
ICAgICAgeyAiYXVkaW8vbXBlZyJfcywgIm0xcyJfcyB9LAorICAgICAgICB7ICJhdWRpby9tcGVn
Il9zLCAibXBhIl9zIH0sCisgICAgICAgIHsgInZpZGVvL21wZWciX3MsICJtcGciX3MgfSwKKyAg
ICAgICAgeyAidmlkZW8vbXBlZyJfcywgIm0xNSJfcyB9LAorICAgICAgICB7ICJ2aWRlby9tcGVn
Il9zLCAibTFzIl9zIH0sCisgICAgICAgIHsgInZpZGVvL21wZWciX3MsICJtMXYiX3MgfSwKKyAg
ICAgICAgeyAidmlkZW8vbXBlZyJfcywgIm03NSJfcyB9LAorICAgICAgICB7ICJ2aWRlby9tcGVn
Il9zLCAibXBhIl9zIH0sCisgICAgICAgIHsgInZpZGVvL21wZWciX3MsICJtcGVnIl9zIH0sCisg
ICAgICAgIHsgInZpZGVvL21wZWciX3MsICJtcG0iX3MgfSwKKyAgICAgICAgeyAidmlkZW8vbXBl
ZyJfcywgIm1wdiJfcyB9LAorCisgICAgICAgIC8vIE1QRUcgcGxheWxpc3QKKyAgICAgICAgeyAi
YXBwbGljYXRpb24vdm5kLmFwcGxlLm1wZWd1cmwiX3MsICJtM3U4Il9zIH0sCisgICAgICAgIHsg
ImFwcGxpY2F0aW9uL21wZWd1cmwiX3MsICJtM3U4Il9zIH0sCisgICAgICAgIHsgImFwcGxpY2F0
aW9uL3gtbXBlZ3VybCJfcywgIm0zdTgiX3MgfSwKKyAgICAgICAgeyAiYXVkaW8vbXBlZ3VybCJf
cywgIm0zdXJsIl9zIH0sCisgICAgICAgIHsgImF1ZGlvL3gtbXBlZ3VybCJfcywgIm0zdXJsIl9z
IH0sCisgICAgICAgIHsgImF1ZGlvL21wZWd1cmwiX3MsICJtM3UiX3MgfSwKKyAgICAgICAgeyAi
YXVkaW8veC1tcGVndXJsIl9zLCAibTN1Il9zIH0sCisKKyAgICAgICAgLy8gTVBFRy00CisgICAg
ICAgIHsgInZpZGVvL3gtbTR2Il9zLCAibTR2Il9zIH0sCisgICAgICAgIHsgImF1ZGlvL3gtbTRh
Il9zLCAibTRhIl9zIH0sCisgICAgICAgIHsgImF1ZGlvL3gtbTRiIl9zLCAibTRiIl9zIH0sCisg
ICAgICAgIHsgImF1ZGlvL3gtbTRwIl9zLCAibTRwIl9zIH0sCisgICAgICAgIHsgImF1ZGlvL21w
NCJfcywgIm00YSJfcyB9LAorCisgICAgICAgIC8vIE1QMworICAgICAgICB7ICJhdWRpby9tcDMi
X3MsICJtcDMiX3MgfSwKKyAgICAgICAgeyAiYXVkaW8veC1tcDMiX3MsICJtcDMiX3MgfSwKKyAg
ICAgICAgeyAiYXVkaW8veC1tcGVnIl9zLCAibXAzIl9zIH0sCisKKyAgICAgICAgLy8gTVBFRy0y
CisgICAgICAgIHsgInZpZGVvL3gtbXBlZzIiX3MsICJtcDIiX3MgfSwKKyAgICAgICAgeyAidmlk
ZW8vbXBlZzIiX3MsICJ2b2IiX3MgfSwKKyAgICAgICAgeyAidmlkZW8vbXBlZzIiX3MsICJtb2Qi
X3MgfSwKKyAgICAgICAgeyAidmlkZW8vbTJ0cyJfcywgIm0ydHMiX3MgfSwKKyAgICAgICAgeyAi
dmlkZW8veC1tMnRzIl9zLCAibTJ0Il9zIH0sCisgICAgICAgIHsgInZpZGVvL3gtbTJ0cyJfcywg
InRzIl9zIH0sCisKKyAgICAgICAgLy8gM0dQLzNHUDIKKyAgICAgICAgeyAiYXVkaW8vM2dwcCJf
cywgIjNncHAiX3MgfSwKKyAgICAgICAgeyAiYXVkaW8vM2dwcDIiX3MsICIzZzIiX3MgfSwKKyAg
ICAgICAgeyAiYXBwbGljYXRpb24veC1tcGVnIl9zLCAiYW1jIl9zIH0sCisKKyAgICAgICAgLy8g
QUFDCisgICAgICAgIHsgImF1ZGlvL2FhYyJfcywgImFhYyJfcyB9LAorICAgICAgICB7ICJhdWRp
by9hYWMiX3MsICJhZHRzIl9zIH0sCisgICAgICAgIHsgImF1ZGlvL3gtYWFjIl9zLCAibTRyIl9z
IH0sCisKKyAgICAgICAgLy8gQ29yZUF1ZGlvIEZpbGUKKyAgICAgICAgeyAiYXVkaW8veC1jYWYi
X3MsICJjYWYiX3MgfSwKKyAgICAgICAgeyAiYXVkaW8veC1nc20iX3MsICJnc20iX3MgfSwKKwor
ICAgICAgICAvLyBBRFBDTQorICAgICAgICB7ICJhdWRpby94LXdhdiJfcywgIndhdiJfcyB9LAor
ICAgICAgICB7ICJhdWRpby92bmQud2F2ZSJfcywgIndhdiJfcyB9LAorICAgIH07CisgICAgcmV0
dXJuIGNvbW1vbk1lZGlhVHlwZXM7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJKHJldmlzaW9uIDI1NDk5OCkKKysrIFNv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE4
LDYgKzExOCw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRDUHJvdmlkZXIuaCIKICNpbmNsdWRlICJM
b2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIkxvY2F0aW9uLmgiCisjaW5jbHVkZSAiTUlNRVR5
cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1hbGxvY1N0YXRpc3RpY3MuaCIKICNpbmNsdWRlICJN
ZWRpYURldmljZXMuaCIKICNpbmNsdWRlICJNZWRpYUVuZ2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5
LmgiCkBAIC01NDM2LDQgKzU0MzcsOSBAQCBib29sIEludGVybmFsczo6c3lzdGVtSGFzQmF0dGVy
eSgpIGNvbnN0CiAjZW5kaWYKIH0KIAorU3RyaW5nIEludGVybmFsczo6bWVkaWFNSU1FVHlwZUZv
ckV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbikKK3sKKyAgICByZXR1cm4gTUlNRVR5
cGVSZWdpc3RyeTo6Z2V0TWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihleHRlbnNpb24pOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgJKHJldmlzaW9uIDI1NDk5OCkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTkzMCw2ICs5MzAsOCBAQCBwdWJsaWM6CiAKICAgICBib29s
IHN5c3RlbUhhc0JhdHRlcnkoKSBjb25zdDsKIAorICAgIFN0cmluZyBtZWRpYU1JTUVUeXBlRm9y
RXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uKTsKKwogcHJpdmF0ZToKICAgICBleHBs
aWNpdCBJbnRlcm5hbHMoRG9jdW1lbnQmKTsKICAgICBEb2N1bWVudCogY29udGV4dERvY3VtZW50
KCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCShyZXZpc2lv
biAyNTQ5OTgpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwJKHdvcmtp
bmcgY29weSkKQEAgLTgzNyw0ICs4MzcsNiBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKICAg
ICBET01TdHJpbmcgc3lzdGVtQ29sb3JGb3JDU1NWYWx1ZShET01TdHJpbmcgY3NzVmFsdWUsIGJv
b2xlYW4gdXNlRGFya01vZGVBcHBlYXJhbmNlLCBib29sZWFuIHVzZUVsZXZhdGVkVXNlckludGVy
ZmFjZUxldmVsKTsKIAogICAgIGJvb2xlYW4gc3lzdGVtSGFzQmF0dGVyeSgpOworCisgICAgRE9N
U3RyaW5nIG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb24oRE9NU3RyaW5nIGV4dGVuc2lvbik7CiB9
OwpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NDk5OCkKKysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDEtMjMgIFBlciBBcm5l
IFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gTWVkaWEgbWlt
ZSB0eXBlcyBtYXAgc2hvdWxkIGJlIGNyZWF0ZWQgaW4gdGhlIFVJIHByb2Nlc3MKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjQ3OAorCisgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFNlbmQgdGhlIG1pbWUgdHlwZSBt
YXAgZnJvbSB0aGUgVUkgcHJvY2VzcyB0byB0aGUgV2ViQ29udGVudCBwcm9jZXNzIGFzIHBhcnQg
b2YgdGhlCisgICAgICAgIFdlYlByb2Nlc3MgY3JlYXRpb24gcGFyYW1ldGVycy4KKworICAgICAg
ICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKToKKyAgICAg
ICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDIwLTAxLTIzICBQ
ZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29jb2FdIEJy
b2tlciBhY2Nlc3MgdG8gdGhlIFBvd2VyTWFuYWdlbWVudCBBUEkKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShy
ZXZpc2lvbiAyNTQ5OTgpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY3LDYgKzE2Nyw3IEBAIHZvaWQg
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2QKICAgICBlbmNvZGVyIDw8IG5lSGVs
cGVyRXh0ZW5zaW9uSGFuZGxlOwogICAgIGVuY29kZXIgPDwgbmVTZXNzaW9uTWFuYWdlckV4dGVu
c2lvbkhhbmRsZTsKICAgICBlbmNvZGVyIDw8IHN5c3RlbUhhc0JhdHRlcnk7CisgICAgZW5jb2Rl
ciA8PCBtaW1lVHlwZXNNYXA7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBA
IC00NDAsNiArNDQxLDEyIEBAIGJvb2wgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2QKICAgICBpZiAoIXN5c3RlbUhhc0JhdHRlcnkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICBwYXJhbWV0ZXJzLnN5c3RlbUhhc0JhdHRlcnkgPSBXVEZNb3ZlKCpzeXN0ZW1IYXNCYXR0ZXJ5
KTsKKworICAgIE9wdGlvbmFsPE9wdGlvbmFsPEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8U3RyaW5n
PiwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPj4+IG1pbWVUeXBlc01hcDsKKyAgICBkZWNvZGVy
ID4+IG1pbWVUeXBlc01hcDsKKyAgICBpZiAoIW1pbWVUeXBlc01hcCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIHBhcmFtZXRlcnMubWltZVR5cGVzTWFwID0gV1RGTW92ZSgqbWltZVR5cGVz
TWFwKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJl
dmlzaW9uIDI1NDk5OCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaAkod29ya2luZyBjb3B5KQpAQCAtMjA5LDYgKzIwOSw3IEBAIHN0cnVjdCBX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBPcHRpb25hbDxTYW5kYm94RXh0ZW5z
aW9uOjpIYW5kbGU+IG5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlOwogICAgIE9wdGlvbmFsPFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZT4gbmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZTsKICAg
ICBib29sIHN5c3RlbUhhc0JhdHRlcnkgeyBmYWxzZSB9OworICAgIE9wdGlvbmFsPEhhc2hNYXA8
U3RyaW5nLCBWZWN0b3I8U3RyaW5nPiwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPj4gbWltZVR5
cGVzTWFwOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRleDogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1t
CShyZXZpc2lvbiAyNTQ5OTgpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW1w
b3J0ICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbXBvcnQgIldpbmRvd1NlcnZlckNvbm5lY3Rp
b24uaCIKICNpbXBvcnQgPFdlYkNvcmUvQ29sb3IuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5
cGVSZWdpc3RyeS5oPgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4K
ICNpbXBvcnQgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxh
dGZvcm1QYXN0ZWJvYXJkLmg+CkBAIC0zNTMsNiArMzU0LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cGxhdGZvcm1Jbml0aWFsaXplVwogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVI
YW5kbGVGb3JNYWNoTG9va3VwKCJjb20uYXBwbGUudWlraXQudmlld3NlcnZpY2UuY29tLmFwcGxl
LldlYkNvbnRlbnRGaWx0ZXIucmVtb3RlVUkiLCBXVEY6Om51bGxvcHQsIGhhbmRsZSk7CiAgICAg
ICAgIHBhcmFtZXRlcnMuY29udGVudEZpbHRlckV4dGVuc2lvbkhhbmRsZSA9IFdURk1vdmUoaGFu
ZGxlKTsKICAgICB9CisgICAgcGFyYW1ldGVycy5taW1lVHlwZXNNYXAgPSBjb21tb25NaW1lVHlw
ZXNNYXAoKTsKICNlbmRpZgogICAgIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0J
KHJldmlzaW9uIDI1NDk5OCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQ
cm9jZXNzQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTU5LDYgKzU5LDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvSGlzdG9yeUl0ZW0uaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5n
cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2dJbml0aWFsaXphdGlvbi5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL01lbW9yeVJlbGVhc2Uu
aD4KICNpbXBvcnQgPFdlYkNvcmUvTlNTY3JvbGxlckltcERldGFpbHMuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUGVyZm9ybWFuY2VMb2dnaW5nLmg+CkBAIC0yNjAsNiArMjYxLDkgQEAgdm9pZCBXZWJQ
cm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcgogICAgICAgICBTYW5kYm94RXh0ZW5zaW9u
Ojpjb25zdW1lUGVybWFuZW50bHkoKnBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lv
bkhhbmRsZSk7CiAgICAgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXI6OnNldEhhc0NvbnN1
bWVkU2FuZGJveEV4dGVuc2lvbnMocGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRsZS5o
YXNWYWx1ZSgpICYmIHBhcmFtZXRlcnMubmVTZXNzaW9uTWFuYWdlckV4dGVuc2lvbkhhbmRsZS5o
YXNWYWx1ZSgpKTsKICAgICBzZXRTeXN0ZW1IYXNCYXR0ZXJ5KHBhcmFtZXRlcnMuc3lzdGVtSGFz
QmF0dGVyeSk7CisKKyAgICBpZiAocGFyYW1ldGVycy5taW1lVHlwZXNNYXApCisgICAgICAgIG92
ZXJyaWRkZW5NaW1lVHlwZXNNYXAoKSA9IFdURk1vdmUocGFyYW1ldGVycy5taW1lVHlwZXNNYXAp
OwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRleDogVG9vbHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjU0OTk4KQorKysg
VG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjAtMDEt
MjMgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtDb2Nv
YV0gTWVkaWEgbWltZSB0eXBlcyBtYXAgc2hvdWxkIGJlIGNyZWF0ZWQgaW4gdGhlIFVJIHByb2Nl
c3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNjQ3
OAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTWltZVR5cGVzLm1tOiBBZGRlZC4KKyAgICAg
ICAgKFRFU1QpOgorCiAyMDIwLTAxLTIzICBUdW9tYXMgS2Fya2thaW5lbiAgPHR1b21hcy53ZWJr
aXRAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBtaXNzaW5nIGNvdmVyYWdlLnhjY29uZmlnCklu
ZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU0OTk4KQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTg2Miw2ICs4NjIsNyBAQAogCQlDMEFEQkU5NjEyRkNBNzlCMDBEMkMxMjkg
Lyogc2ltcGxlLWZvcm0uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDMEFEQkU4NDEyRkNBNkI2MDBEMkMxMjkgLyogc2ltcGxlLWZvcm0u
aHRtbCAqLzsgfTsKIAkJQzBCRDY2OUYxMzFEM0NGRjAwRTE4RjJBIC8qIFJlc3BvbnNpdmVuZXNz
VGltZXJEb2VzbnRGaXJlRWFybHlfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQkQ2NjlFMTMxRDNDRkYwMEUxOEYyQSAvKiBSZXNwb25z
aXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0J1bmRsZS5jcHAgKi87IH07CiAJCUMwQzVEM0M2
MTQ1OTkxMjkwMEE4MDJBNiAvKiBHZXRCYWNraW5nU2NhbGVGYWN0b3JfQnVuZGxlLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzBDNUQzQkQxNDU5OEI2
RjAwQTgwMkE2IC8qIEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW0gKi87IH07CisJCUMx
NDVDQzBDMjNEQTVBMUYwMDNBNUVFQiAvKiBNaW1lVHlwZXMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ1Q0MwQjIzREE1QTBGMDAzQTVFRUIgLyog
TWltZVR5cGVzLm1tICovOyB9OwogCQlDMTY5MkRDQTIzRDEwREFFMDA2RTg4RjcgLyogQmF0dGVy
eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNjky
REM5MjNEMTBEQUUwMDZFODhGNyAvKiBCYXR0ZXJ5Lm1tICovOyB9OwogCQlDMjBGODhBNzIyOTVC
OTY3MDBENjEwRkEgLyogQ29yZVRleHQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIwRjg4QTYyMjk1Qjk2NzAwRDYxMEZBIC8qIENv
cmVUZXh0LmZyYW1ld29yayAqLzsgfTsKIAkJQzIyRkEzMkIyMjhGODcwODAwOUQ3OTg4IC8qIFRl
eHRXaWR0aC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEMyMkZBMzJBMjI4Rjg3MDgwMDlENzk4OCAvKiBUZXh0V2lkdGgubW0gKi87IH07CkBAIC0yMzg1
LDYgKzIzODYsNyBAQAogCQlDMEJENjY5RTEzMUQzQ0ZGMDBFMThGMkEgLyogUmVzcG9uc2l2ZW5l
c3NUaW1lckRvZXNudEZpcmVFYXJseV9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gUmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseV9CdW5kbGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMEM1RDNCQzE0NTk4QjZGMDBBODAy
QTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gR2V0QmFja2luZ1NjYWxlRmFjdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDMEM1RDNCRDE0NTk4QjZGMDBBODAyQTYgLyogR2V0QmFja2luZ1NjYWxl
RmFjdG9yX0J1bmRsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUMxNDVDQzBCMjNEQTVBMEYwMDNBNUVFQiAvKiBNaW1lVHlwZXMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNaW1lVHlwZXMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUMxNjkyREM5MjNEMTBEQUUwMDZFODhGNyAvKiBCYXR0ZXJ5Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmF0dGVyeS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQzFEOEVFMjEyMDI4RThFMzAwOEVCMTQxIC8qIFdlYlByb2Nlc3NUZXJtaW5hdGUu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQcm9jZXNzVGVy
bWluYXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjBGODhBNjIyOTVCOTY3
MDBENjEwRkEgLyogQ29yZVRleHQuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBDb3JlVGV4
dC5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVUZXh0LmZy
YW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07CkBAIC0yODI2LDYgKzI4MjgsNyBAQAog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlDMTY5MkRDOTIzRDEwREFF
MDA2RTg4RjcgLyogQmF0dGVyeS5tbSAqLywKKwkJCQlDMTQ1Q0MwQjIzREE1QTBGMDAzQTVFRUIg
LyogTWltZVR5cGVzLm1tICovLAogCQkJCTBGMTM5RTc1MUE0MjNBNTMwMEY1OTBGNSAvKiBXZWFr
T2JqQ1B0ci5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gY29jb2E7CkBAIC00ODA5LDYgKzQ4MTIs
NyBAQAogCQkJCTVDMEJGODk0MURENTk5QzkwMEIwMDMyOCAvKiBNZW51VHlwZXNGb3JNb3VzZUV2
ZW50cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxNjVGRTA0MjAxRUU2MjAwMDlGN0VDMyAvKiBN
ZXNzYWdlUG9ydFByb3ZpZGVycy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE1QjE0OURFMUY1QTE5
RUEwMEM2REFGRiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUMx
NDVDQzBDMjNEQTVBMUYwMDNBNUVFQiAvKiBNaW1lVHlwZXMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk1MUNEMUM2QzFCMzhDRTQzMDAxNDJDQTUgLyogTW9kYWxBbGVydHMubW0gaW4gU291cmNlcyAq
LywKIAkJCQk3QzgzRTBCNjFEMEE2NEIzMDBGRUJDRjMgLyogTW9kYWxBbGVydHNTUEkuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMDExQTQxMUFFNjAwNDQ3QzRDIC8qIE1vdXNlTW92ZUFm
dGVyQ3Jhc2guY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdC9NaW1lVHlwZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvTWltZVR5cGVzLm1tCShub25leGlzdGVudCkKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01pbWVUeXBlcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgV0tfSEFW
RV9DX1NQSQorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdFdL
V2ViVmlldy5oIgorI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CisKK1RFU1Qo
V2ViS2l0LCBNaW1lVHlwZXMpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhb
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBXS1JldGFpblB0cjxX
S0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNyZWF0
ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxlVGVz
dCIpKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NQb29sID0gKFdLUHJvY2Vzc1Bv
b2wgKiljb250ZXh0LmdldCgpOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDApIGNv
bmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKKworICAg
IGZvciAoYXV0byYgcGFpciA6IFdlYkNvcmU6OmNvbW1vbk1lZGlhVHlwZXMoKSkgeworICAgICAg
ICBBU0NJSUxpdGVyYWwgZXh0ZW5zaW9uID0gcGFpci5leHRlbnNpb247CisKKyAgICAgICAgYXV0
byBqcyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAid2luZG93LmludGVybmFscy5tZWRp
YU1JTUVUeXBlRm9yRXh0ZW5zaW9uKFwiJXNcIikiLCBleHRlbnNpb24uY2hhcmFjdGVycygpXTsK
KworICAgICAgICBhdXRvIG1pbWVUeXBlID0gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDpqc107CisKKyAgICAgICAgQVNTRVJUX1RSVUUoV2ViQ29yZTo6TUlNRVR5cGVSZWdp
c3RyeTo6Z2V0TWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihleHRlbnNpb24pID09IFN0cmluZyht
aW1lVHlwZSkpOworICAgIH0KK30KKworI2VuZGlmIC8vIFdLX0hBVkVfQ19TUEkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388714</attachid>
            <date>2020-01-24 11:56:51 -0800</date>
            <delta_ts>2020-01-25 08:51:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206478-20200124115649.patch</filename>
            <type>text/plain</type>
            <size>23820</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NTA4MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAxLTI0ICBQZXIgQXJu
ZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIE1lZGlhIG1p
bWUgdHlwZXMgbWFwIHNob3VsZCBiZSBjcmVhdGVkIGluIHRoZSBVSSBwcm9jZXNzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDY0NzgKKworICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBDcmVhdGluZyB0aGlzIG1hcCBp
biB0aGUgV2ViQ29udGVudCBwcm9jZXNzIHdpbGwgYWNjZXNzIHRoZSBsYXVuY2ggc2VydmljZXMg
ZGFlbW9uLCB3aGljaCB3aWxsIGJlIGJsb2NrZWQuCisgICAgICAgIFRoaXMgcGF0Y2ggY3JlYXRl
cyB0aGUgbWFwIGluIHRoZSBVSSBwcm9jZXNzIGFuZCBzZW5kcyBpdCB0byB0aGUgV2ViQ29udGVu
dCBwcm9jZXNzIGFzIHBhcnQgb2YgdGhlIFdlYlByb2Nlc3MKKyAgICAgICAgY3JlYXRpb24gcGFy
YW1ldGVycy4KKworICAgICAgICBBUEkgdGVzdDogV2ViS2l0Lk1pbWVUeXBlcworCisgICAgICAg
ICogcGxhdGZvcm0vTUlNRVR5cGVSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvdmVy
cmlkZGVuTWltZVR5cGVzTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbW1vbk1lZGlhVHlwZXMp
OgorICAgICAgICAoV2ViQ29yZTo6Y29tbW9uTWltZVR5cGVzTWFwKToKKyAgICAgICAgKFdlYkNv
cmU6OnR5cGVzRm9yQ29tbW9uRXh0ZW5zaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9NSU1FVHlw
ZVJlZ2lzdHJ5Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjptZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKToKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoK
KwogMjAyMC0wMS0yNCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI1NTA1MC4KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwCShyZXZpc2lvbiAyNTUwODEpCisr
KyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjc0LDk4ICsyNzQsMTA0IEBAIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNh
c2VJbnNlbnNpdGkKICAgICByZXR1cm4gdW5zdXBwb3J0ZWRUZXh0TUlNRVR5cGVzOwogfQogCi1z
dGF0aWMgY29uc3QgVmVjdG9yPFN0cmluZz4qIHR5cGVzRm9yQ29tbW9uRXh0ZW5zaW9uKGNvbnN0
IFN0cmluZyYgZXh0ZW5zaW9uKQorT3B0aW9uYWw8SGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxTdHJp
bmc+LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiYgb3ZlcnJpZGRlbk1pbWVUeXBlc01hcCgp
CiB7Ci0gICAgc3RhdGljIGNvbnN0IGF1dG8gbWFwID0gbWFrZU5ldmVyRGVzdHJveWVkKFtdIHsK
LSAgICAgICAgc3RydWN0IFR5cGVFeHRlbnNpb25QYWlyIHsKLSAgICAgICAgICAgIEFTQ0lJTGl0
ZXJhbCB0eXBlOwotICAgICAgICAgICAgQVNDSUlMaXRlcmFsIGV4dGVuc2lvbjsKLSAgICAgICAg
fTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8T3B0aW9uYWw8SGFzaE1hcDxTdHJpbmcsIFZl
Y3RvcjxTdHJpbmc+LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+Pj4gbWFwOworICAgIHJldHVy
biBtYXA7Cit9CiAKLSAgICAgICAgLy8gQSB0YWJsZSBvZiBjb21tb24gbWVkaWEgTUlNRSB0eXBl
cyBhbmQgZmlsZSBleHRlbnRpb25zIHVzZWQgd2hlbiBhIHBsYXRmb3JtJ3MKLSAgICAgICAgLy8g
c3BlY2lmaWMgTUlNRSB0eXBlIGxvb2t1cCBkb2Vzbid0IGhhdmUgYSBtYXRjaCBmb3IgYSBtZWRp
YSBmaWxlIGV4dGVuc2lvbi4KLSAgICAgICAgc3RhdGljIGNvbnN0IFR5cGVFeHRlbnNpb25QYWly
IGNvbW1vbk1lZGlhVHlwZXNbXSA9IHsKLSAgICAgICAgICAgIC8vIE9nZwotICAgICAgICAgICAg
eyAiYXBwbGljYXRpb24vb2dnIl9zLCAib2d4Il9zIH0sCi0gICAgICAgICAgICB7ICJhdWRpby9v
Z2ciX3MsICJvZ2ciX3MgfSwKLSAgICAgICAgICAgIHsgImF1ZGlvL29nZyJfcywgIm9nYSJfcyB9
LAotICAgICAgICAgICAgeyAidmlkZW8vb2dnIl9zLCAib2d2Il9zIH0sCi0KLSAgICAgICAgICAg
IC8vIEFubm9kZXgKLSAgICAgICAgICAgIHsgImFwcGxpY2F0aW9uL2Fubm9kZXgiX3MsICJhbngi
X3MgfSwKLSAgICAgICAgICAgIHsgImF1ZGlvL2Fubm9kZXgiX3MsICJheGEiX3MgfSwKLSAgICAg
ICAgICAgIHsgInZpZGVvL2Fubm9kZXgiX3MsICJheHYiX3MgfSwKLSAgICAgICAgICAgIHsgImF1
ZGlvL3NwZWV4Il9zLCAic3B4Il9zIH0sCi0KLSAgICAgICAgICAgIC8vIFdlYk0KLSAgICAgICAg
ICAgIHsgInZpZGVvL3dlYm0iX3MsICJ3ZWJtIl9zIH0sCi0gICAgICAgICAgICB7ICJhdWRpby93
ZWJtIl9zLCAid2VibSJfcyB9LAotCi0gICAgICAgICAgICAvLyBNUEVHCi0gICAgICAgICAgICB7
ICJhdWRpby9tcGVnIl9zLCAibTFhIl9zIH0sCi0gICAgICAgICAgICB7ICJhdWRpby9tcGVnIl9z
LCAibTJhIl9zIH0sCi0gICAgICAgICAgICB7ICJhdWRpby9tcGVnIl9zLCAibTFzIl9zIH0sCi0g
ICAgICAgICAgICB7ICJhdWRpby9tcGVnIl9zLCAibXBhIl9zIH0sCi0gICAgICAgICAgICB7ICJ2
aWRlby9tcGVnIl9zLCAibXBnIl9zIH0sCi0gICAgICAgICAgICB7ICJ2aWRlby9tcGVnIl9zLCAi
bTE1Il9zIH0sCi0gICAgICAgICAgICB7ICJ2aWRlby9tcGVnIl9zLCAibTFzIl9zIH0sCi0gICAg
ICAgICAgICB7ICJ2aWRlby9tcGVnIl9zLCAibTF2Il9zIH0sCi0gICAgICAgICAgICB7ICJ2aWRl
by9tcGVnIl9zLCAibTc1Il9zIH0sCi0gICAgICAgICAgICB7ICJ2aWRlby9tcGVnIl9zLCAibXBh
Il9zIH0sCi0gICAgICAgICAgICB7ICJ2aWRlby9tcGVnIl9zLCAibXBlZyJfcyB9LAotICAgICAg
ICAgICAgeyAidmlkZW8vbXBlZyJfcywgIm1wbSJfcyB9LAotICAgICAgICAgICAgeyAidmlkZW8v
bXBlZyJfcywgIm1wdiJfcyB9LAotCi0gICAgICAgICAgICAvLyBNUEVHIHBsYXlsaXN0Ci0gICAg
ICAgICAgICB7ICJhcHBsaWNhdGlvbi92bmQuYXBwbGUubXBlZ3VybCJfcywgIm0zdTgiX3MgfSwK
LSAgICAgICAgICAgIHsgImFwcGxpY2F0aW9uL21wZWd1cmwiX3MsICJtM3U4Il9zIH0sCi0gICAg
ICAgICAgICB7ICJhcHBsaWNhdGlvbi94LW1wZWd1cmwiX3MsICJtM3U4Il9zIH0sCi0gICAgICAg
ICAgICB7ICJhdWRpby9tcGVndXJsIl9zLCAibTN1cmwiX3MgfSwKLSAgICAgICAgICAgIHsgImF1
ZGlvL3gtbXBlZ3VybCJfcywgIm0zdXJsIl9zIH0sCi0gICAgICAgICAgICB7ICJhdWRpby9tcGVn
dXJsIl9zLCAibTN1Il9zIH0sCi0gICAgICAgICAgICB7ICJhdWRpby94LW1wZWd1cmwiX3MsICJt
M3UiX3MgfSwKLQotICAgICAgICAgICAgLy8gTVBFRy00Ci0gICAgICAgICAgICB7ICJ2aWRlby94
LW00diJfcywgIm00diJfcyB9LAotICAgICAgICAgICAgeyAiYXVkaW8veC1tNGEiX3MsICJtNGEi
X3MgfSwKLSAgICAgICAgICAgIHsgImF1ZGlvL3gtbTRiIl9zLCAibTRiIl9zIH0sCi0gICAgICAg
ICAgICB7ICJhdWRpby94LW00cCJfcywgIm00cCJfcyB9LAotICAgICAgICAgICAgeyAiYXVkaW8v
bXA0Il9zLCAibTRhIl9zIH0sCi0KLSAgICAgICAgICAgIC8vIE1QMwotICAgICAgICAgICAgeyAi
YXVkaW8vbXAzIl9zLCAibXAzIl9zIH0sCi0gICAgICAgICAgICB7ICJhdWRpby94LW1wMyJfcywg
Im1wMyJfcyB9LAotICAgICAgICAgICAgeyAiYXVkaW8veC1tcGVnIl9zLCAibXAzIl9zIH0sCi0K
LSAgICAgICAgICAgIC8vIE1QRUctMgotICAgICAgICAgICAgeyAidmlkZW8veC1tcGVnMiJfcywg
Im1wMiJfcyB9LAotICAgICAgICAgICAgeyAidmlkZW8vbXBlZzIiX3MsICJ2b2IiX3MgfSwKLSAg
ICAgICAgICAgIHsgInZpZGVvL21wZWcyIl9zLCAibW9kIl9zIH0sCi0gICAgICAgICAgICB7ICJ2
aWRlby9tMnRzIl9zLCAibTJ0cyJfcyB9LAotICAgICAgICAgICAgeyAidmlkZW8veC1tMnRzIl9z
LCAibTJ0Il9zIH0sCi0gICAgICAgICAgICB7ICJ2aWRlby94LW0ydHMiX3MsICJ0cyJfcyB9LAot
Ci0gICAgICAgICAgICAvLyAzR1AvM0dQMgotICAgICAgICAgICAgeyAiYXVkaW8vM2dwcCJfcywg
IjNncHAiX3MgfSwKLSAgICAgICAgICAgIHsgImF1ZGlvLzNncHAyIl9zLCAiM2cyIl9zIH0sCi0g
ICAgICAgICAgICB7ICJhcHBsaWNhdGlvbi94LW1wZWciX3MsICJhbWMiX3MgfSwKLQotICAgICAg
ICAgICAgLy8gQUFDCi0gICAgICAgICAgICB7ICJhdWRpby9hYWMiX3MsICJhYWMiX3MgfSwKLSAg
ICAgICAgICAgIHsgImF1ZGlvL2FhYyJfcywgImFkdHMiX3MgfSwKLSAgICAgICAgICAgIHsgImF1
ZGlvL3gtYWFjIl9zLCAibTRyIl9zIH0sCi0KLSAgICAgICAgICAgIC8vIENvcmVBdWRpbyBGaWxl
Ci0gICAgICAgICAgICB7ICJhdWRpby94LWNhZiJfcywgImNhZiJfcyB9LAotICAgICAgICAgICAg
eyAiYXVkaW8veC1nc20iX3MsICJnc20iX3MgfSwKLQotICAgICAgICAgICAgLy8gQURQQ00KLSAg
ICAgICAgICAgIHsgImF1ZGlvL3gtd2F2Il9zLCAid2F2Il9zIH0sCi0gICAgICAgICAgICB7ICJh
dWRpby92bmQud2F2ZSJfcywgIndhdiJfcyB9LAotICAgICAgICB9OworY29uc3Qgc3RkOjppbml0
aWFsaXplcl9saXN0PFR5cGVFeHRlbnNpb25QYWlyPiYgY29tbW9uTWVkaWFUeXBlcygpCit7Cisg
ICAgLy8gQSB0YWJsZSBvZiBjb21tb24gbWVkaWEgTUlNRSB0eXBlcyBhbmQgZmlsZSBleHRlbnNp
b25zIHVzZWQgd2hlbiBhIHBsYXRmb3JtJ3MKKyAgICAvLyBzcGVjaWZpYyBNSU1FIHR5cGUgbG9v
a3VwIGRvZXNuJ3QgaGF2ZSBhIG1hdGNoIGZvciBhIG1lZGlhIGZpbGUgZXh0ZW5zaW9uLgorICAg
IHN0YXRpYyBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VHlwZUV4dGVuc2lvblBhaXI+IGNvbW1vbk1l
ZGlhVHlwZXMgPSB7CisgICAgICAgIC8vIE9nZworICAgICAgICB7ICJhcHBsaWNhdGlvbi9vZ2ci
X3MsICJvZ3giX3MgfSwKKyAgICAgICAgeyAiYXVkaW8vb2dnIl9zLCAib2dnIl9zIH0sCisgICAg
ICAgIHsgImF1ZGlvL29nZyJfcywgIm9nYSJfcyB9LAorICAgICAgICB7ICJ2aWRlby9vZ2ciX3Ms
ICJvZ3YiX3MgfSwKKworICAgICAgICAvLyBBbm5vZGV4CisgICAgICAgIHsgImFwcGxpY2F0aW9u
L2Fubm9kZXgiX3MsICJhbngiX3MgfSwKKyAgICAgICAgeyAiYXVkaW8vYW5ub2RleCJfcywgImF4
YSJfcyB9LAorICAgICAgICB7ICJ2aWRlby9hbm5vZGV4Il9zLCAiYXh2Il9zIH0sCisgICAgICAg
IHsgImF1ZGlvL3NwZWV4Il9zLCAic3B4Il9zIH0sCisKKyAgICAgICAgLy8gV2ViTQorICAgICAg
ICB7ICJ2aWRlby93ZWJtIl9zLCAid2VibSJfcyB9LAorICAgICAgICB7ICJhdWRpby93ZWJtIl9z
LCAid2VibSJfcyB9LAorCisgICAgICAgIC8vIE1QRUcKKyAgICAgICAgeyAiYXVkaW8vbXBlZyJf
cywgIm0xYSJfcyB9LAorICAgICAgICB7ICJhdWRpby9tcGVnIl9zLCAibTJhIl9zIH0sCisgICAg
ICAgIHsgImF1ZGlvL21wZWciX3MsICJtMXMiX3MgfSwKKyAgICAgICAgeyAiYXVkaW8vbXBlZyJf
cywgIm1wYSJfcyB9LAorICAgICAgICB7ICJ2aWRlby9tcGVnIl9zLCAibXBnIl9zIH0sCisgICAg
ICAgIHsgInZpZGVvL21wZWciX3MsICJtMTUiX3MgfSwKKyAgICAgICAgeyAidmlkZW8vbXBlZyJf
cywgIm0xcyJfcyB9LAorICAgICAgICB7ICJ2aWRlby9tcGVnIl9zLCAibTF2Il9zIH0sCisgICAg
ICAgIHsgInZpZGVvL21wZWciX3MsICJtNzUiX3MgfSwKKyAgICAgICAgeyAidmlkZW8vbXBlZyJf
cywgIm1wYSJfcyB9LAorICAgICAgICB7ICJ2aWRlby9tcGVnIl9zLCAibXBlZyJfcyB9LAorICAg
ICAgICB7ICJ2aWRlby9tcGVnIl9zLCAibXBtIl9zIH0sCisgICAgICAgIHsgInZpZGVvL21wZWci
X3MsICJtcHYiX3MgfSwKKworICAgICAgICAvLyBNUEVHIHBsYXlsaXN0CisgICAgICAgIHsgImFw
cGxpY2F0aW9uL3ZuZC5hcHBsZS5tcGVndXJsIl9zLCAibTN1OCJfcyB9LAorICAgICAgICB7ICJh
cHBsaWNhdGlvbi9tcGVndXJsIl9zLCAibTN1OCJfcyB9LAorICAgICAgICB7ICJhcHBsaWNhdGlv
bi94LW1wZWd1cmwiX3MsICJtM3U4Il9zIH0sCisgICAgICAgIHsgImF1ZGlvL21wZWd1cmwiX3Ms
ICJtM3VybCJfcyB9LAorICAgICAgICB7ICJhdWRpby94LW1wZWd1cmwiX3MsICJtM3VybCJfcyB9
LAorICAgICAgICB7ICJhdWRpby9tcGVndXJsIl9zLCAibTN1Il9zIH0sCisgICAgICAgIHsgImF1
ZGlvL3gtbXBlZ3VybCJfcywgIm0zdSJfcyB9LAorCisgICAgICAgIC8vIE1QRUctNAorICAgICAg
ICB7ICJ2aWRlby94LW00diJfcywgIm00diJfcyB9LAorICAgICAgICB7ICJhdWRpby94LW00YSJf
cywgIm00YSJfcyB9LAorICAgICAgICB7ICJhdWRpby94LW00YiJfcywgIm00YiJfcyB9LAorICAg
ICAgICB7ICJhdWRpby94LW00cCJfcywgIm00cCJfcyB9LAorICAgICAgICB7ICJhdWRpby9tcDQi
X3MsICJtNGEiX3MgfSwKKworICAgICAgICAvLyBNUDMKKyAgICAgICAgeyAiYXVkaW8vbXAzIl9z
LCAibXAzIl9zIH0sCisgICAgICAgIHsgImF1ZGlvL3gtbXAzIl9zLCAibXAzIl9zIH0sCisgICAg
ICAgIHsgImF1ZGlvL3gtbXBlZyJfcywgIm1wMyJfcyB9LAorCisgICAgICAgIC8vIE1QRUctMgor
ICAgICAgICB7ICJ2aWRlby94LW1wZWcyIl9zLCAibXAyIl9zIH0sCisgICAgICAgIHsgInZpZGVv
L21wZWcyIl9zLCAidm9iIl9zIH0sCisgICAgICAgIHsgInZpZGVvL21wZWcyIl9zLCAibW9kIl9z
IH0sCisgICAgICAgIHsgInZpZGVvL20ydHMiX3MsICJtMnRzIl9zIH0sCisgICAgICAgIHsgInZp
ZGVvL3gtbTJ0cyJfcywgIm0ydCJfcyB9LAorICAgICAgICB7ICJ2aWRlby94LW0ydHMiX3MsICJ0
cyJfcyB9LAorCisgICAgICAgIC8vIDNHUC8zR1AyCisgICAgICAgIHsgImF1ZGlvLzNncHAiX3Ms
ICIzZ3BwIl9zIH0sCisgICAgICAgIHsgImF1ZGlvLzNncHAyIl9zLCAiM2cyIl9zIH0sCisgICAg
ICAgIHsgImFwcGxpY2F0aW9uL3gtbXBlZyJfcywgImFtYyJfcyB9LAorCisgICAgICAgIC8vIEFB
QworICAgICAgICB7ICJhdWRpby9hYWMiX3MsICJhYWMiX3MgfSwKKyAgICAgICAgeyAiYXVkaW8v
YWFjIl9zLCAiYWR0cyJfcyB9LAorICAgICAgICB7ICJhdWRpby94LWFhYyJfcywgIm00ciJfcyB9
LAorCisgICAgICAgIC8vIENvcmVBdWRpbyBGaWxlCisgICAgICAgIHsgImF1ZGlvL3gtY2FmIl9z
LCAiY2FmIl9zIH0sCisgICAgICAgIHsgImF1ZGlvL3gtZ3NtIl9zLCAiZ3NtIl9zIH0sCisKKyAg
ICAgICAgLy8gQURQQ00KKyAgICAgICAgeyAiYXVkaW8veC13YXYiX3MsICJ3YXYiX3MgfSwKKyAg
ICAgICAgeyAiYXVkaW8vdm5kLndhdmUiX3MsICJ3YXYiX3MgfSwKKyAgICB9OworICAgIHJldHVy
biBjb21tb25NZWRpYVR5cGVzOworfQogCitjb25zdCBIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0
cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIGNvbW1vbk1pbWVUeXBlc01hcCgpCit7
CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
SGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+
PiBtaW1lVHlwZXNNYXAgPSBbXSB7CiAgICAgICAgIEhhc2hNYXA8U3RyaW5nLCBWZWN0b3I8U3Ry
aW5nPiwgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiBtYXA7Ci0gICAgICAgIGZvciAoYXV0byYg
cGFpciA6IGNvbW1vbk1lZGlhVHlwZXMpIHsKKyAgICAgICAgZm9yIChhdXRvJiBwYWlyIDogY29t
bW9uTWVkaWFUeXBlcygpKSB7CiAgICAgICAgICAgICBBU0NJSUxpdGVyYWwgdHlwZSA9IHBhaXIu
dHlwZTsKICAgICAgICAgICAgIEFTQ0lJTGl0ZXJhbCBleHRlbnNpb24gPSBwYWlyLmV4dGVuc2lv
bjsKICAgICAgICAgICAgIG1hcC5lbnN1cmUoZXh0ZW5zaW9uLCBbdHlwZSwgZXh0ZW5zaW9uXSB7
CkBAIC0zNzksOSArMzg1LDIwIEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiogdHlwZXNG
b3JDb20KICAgICAgICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQodHlwZSk7CiAgICAg
ICAgIH0KICAgICAgICAgcmV0dXJuIG1hcDsKLSAgICB9KCkpOwotICAgIGF1dG8gbWFwRW50cnkg
PSBtYXAuZ2V0KCkuZmluZChleHRlbnNpb24pOwotICAgIGlmIChtYXBFbnRyeSA9PSBtYXAuZ2V0
KCkuZW5kKCkpCisgICAgfSgpOworICAgIHJldHVybiBtaW1lVHlwZXNNYXA7Cit9CisKK3N0YXRp
YyBjb25zdCBWZWN0b3I8U3RyaW5nPiogdHlwZXNGb3JDb21tb25FeHRlbnNpb24oY29uc3QgU3Ry
aW5nJiBleHRlbnNpb24pCit7CisgICAgaWYgKG92ZXJyaWRkZW5NaW1lVHlwZXNNYXAoKS5oYXNW
YWx1ZSgpKSB7CisgICAgICAgIGF1dG8gbWFwRW50cnkgPSBvdmVycmlkZGVuTWltZVR5cGVzTWFw
KCktPmZpbmQoZXh0ZW5zaW9uKTsKKyAgICAgICAgaWYgKG1hcEVudHJ5ID09IG92ZXJyaWRkZW5N
aW1lVHlwZXNNYXAoKS0+ZW5kKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAg
ICAgcmV0dXJuICZtYXBFbnRyeS0+dmFsdWU7CisgICAgfQorICAgIGF1dG8gbWFwRW50cnkgPSBj
b21tb25NaW1lVHlwZXNNYXAoKS5maW5kKGV4dGVuc2lvbik7CisgICAgaWYgKG1hcEVudHJ5ID09
IGNvbW1vbk1pbWVUeXBlc01hcCgpLmVuZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICByZXR1cm4gJm1hcEVudHJ5LT52YWx1ZTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01JTUVUeXBlUmVnaXN0cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9NSU1FVHlwZVJlZ2lzdHJ5LmgJKHJldmlzaW9uIDI1NTA4MSkKKysrIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiAr
MzEsMTYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitXRUJDT1JFX0VYUE9SVCBPcHRpb25h
bDxIYXNoTWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFz
aD4+JiBvdmVycmlkZGVuTWltZVR5cGVzTWFwKCk7CitXRUJDT1JFX0VYUE9SVCBjb25zdCBIYXNo
TWFwPFN0cmluZywgVmVjdG9yPFN0cmluZz4sIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIGNv
bW1vbk1pbWVUeXBlc01hcCgpOworCitzdHJ1Y3QgVHlwZUV4dGVuc2lvblBhaXIgeworICAgIEFT
Q0lJTGl0ZXJhbCB0eXBlOworICAgIEFTQ0lJTGl0ZXJhbCBleHRlbnNpb247Cit9OworCitXRUJD
T1JFX0VYUE9SVCBjb25zdCBzdGQ6OmluaXRpYWxpemVyX2xpc3Q8VHlwZUV4dGVuc2lvblBhaXI+
JiBjb21tb25NZWRpYVR5cGVzKCk7CisKIHN0cnVjdCBNSU1FVHlwZVJlZ2lzdHJ5VGhyZWFkR2xv
YmFsRGF0YSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTUlNRVR5cGVSZWdpc3RyeVRocmVh
ZEdsb2JhbERhdGEpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtNTIsNyArNjIs
NyBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IFdlYktpdCBjb2Rpbmcgc3R5bGUgc2F5cyB3ZSBz
aG91bGQgbm90IGhhdmUgdGhlIHdvcmQgImdldCIgaW4gdGhlIG5hbWVzIG9mIHRoZXNlIGZ1bmN0
aW9ucy4KICAgICBzdGF0aWMgVmVjdG9yPFN0cmluZz4gZ2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBl
KGNvbnN0IFN0cmluZyYgdHlwZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBn
ZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpOwotICAg
IHN0YXRpYyBTdHJpbmcgZ2V0TWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcm
IGV4dGVuc2lvbik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBnZXRNZWRpYU1J
TUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uKTsKICAgICBzdGF0aWMg
VmVjdG9yPFN0cmluZz4gZ2V0TWVkaWFNSU1FVHlwZXNGb3JFeHRlbnNpb24oY29uc3QgU3RyaW5n
JiBleHRlbnNpb24pOwogCiAgICAgc3RhdGljIFN0cmluZyBnZXRNSU1FVHlwZUZvclBhdGgoY29u
c3QgU3RyaW5nJiBwYXRoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAJ
KHJldmlzaW9uIDI1NTA4MSkKKysrIFNvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDYgKzExOCw3IEBACiAjaW5jbHVkZSAiTGliV2ViUlRD
UHJvdmlkZXIuaCIKICNpbmNsdWRlICJMb2FkZXJTdHJhdGVneS5oIgogI2luY2x1ZGUgIkxvY2F0
aW9uLmgiCisjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk1hbGxvY1N0
YXRpc3RpY3MuaCIKICNpbmNsdWRlICJNZWRpYURldmljZXMuaCIKICNpbmNsdWRlICJNZWRpYUVu
Z2luZUNvbmZpZ3VyYXRpb25GYWN0b3J5LmgiCkBAIC01NDQwLDQgKzU0NDEsOSBAQCBib29sIElu
dGVybmFsczo6c3lzdGVtSGFzQmF0dGVyeSgpIGNvbnN0CiAjZW5kaWYKIH0KIAorU3RyaW5nIElu
dGVybmFsczo6bWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lv
bikKK3sKKyAgICByZXR1cm4gTUlNRVR5cGVSZWdpc3RyeTo6Z2V0TWVkaWFNSU1FVHlwZUZvckV4
dGVuc2lvbihleHRlbnNpb24pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHJldmlzaW9uIDI1NTA4MSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTkzMCw2ICs5MzAs
OCBAQCBwdWJsaWM6CiAKICAgICBib29sIHN5c3RlbUhhc0JhdHRlcnkoKSBjb25zdDsKIAorICAg
IFN0cmluZyBtZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9u
KTsKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRlcm5hbHMoRG9jdW1lbnQmKTsKICAgICBE
b2N1bWVudCogY29udGV4dERvY3VtZW50KCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCShyZXZpc2lvbiAyNTUwODEpCisrKyBTb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTgzNyw0ICs4MzcsNiBAQCBlbnVt
IENvbXBvc2l0aW5nUG9saWN5IHsKICAgICBET01TdHJpbmcgc3lzdGVtQ29sb3JGb3JDU1NWYWx1
ZShET01TdHJpbmcgY3NzVmFsdWUsIGJvb2xlYW4gdXNlRGFya01vZGVBcHBlYXJhbmNlLCBib29s
ZWFuIHVzZUVsZXZhdGVkVXNlckludGVyZmFjZUxldmVsKTsKIAogICAgIGJvb2xlYW4gc3lzdGVt
SGFzQmF0dGVyeSgpOworCisgICAgRE9NU3RyaW5nIG1lZGlhTUlNRVR5cGVGb3JFeHRlbnNpb24o
RE9NU3RyaW5nIGV4dGVuc2lvbik7CiB9OwpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1NTA4MSkK
KysrIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMjAtMDEtMjQgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFtDb2NvYV0gTWVkaWEgbWltZSB0eXBlcyBtYXAgc2hvdWxkIGJlIGNyZWF0ZWQgaW4g
dGhlIFVJIHByb2Nlc3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIwNjQ3OAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAg
ICAgIFNlbmQgdGhlIG1pbWUgdHlwZSBtYXAgZnJvbSB0aGUgVUkgcHJvY2VzcyB0byB0aGUgV2Vi
Q29udGVudCBwcm9jZXNzIGFzIHBhcnQgb2YgdGhlCisgICAgICAgIFdlYlByb2Nlc3MgY3JlYXRp
b24gcGFyYW1ldGVycy4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
czo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVyczo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2Eu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlBy
b2Nlc3MpOgorCiAyMDIwLTAxLTI0ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjU1MDUwLgpJbmRleDogU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAJKHJldmlzaW9uIDI1NTA4MSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjcsNiArMTY3LDcg
QEAgdm9pZCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZAogICAgIGVuY29kZXIg
PDwgbmVIZWxwZXJFeHRlbnNpb25IYW5kbGU7CiAgICAgZW5jb2RlciA8PCBuZVNlc3Npb25NYW5h
Z2VyRXh0ZW5zaW9uSGFuZGxlOwogICAgIGVuY29kZXIgPDwgc3lzdGVtSGFzQmF0dGVyeTsKKyAg
ICBlbmNvZGVyIDw8IG1pbWVUeXBlc01hcDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKQEAgLTQ0MCw2ICs0NDEsMTIgQEAgYm9vbCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWNvZAogICAgIGlmICghc3lzdGVtSGFzQmF0dGVyeSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIHBhcmFtZXRlcnMuc3lzdGVtSGFzQmF0dGVyeSA9IFdURk1vdmUoKnN5c3RlbUhh
c0JhdHRlcnkpOworCisgICAgT3B0aW9uYWw8T3B0aW9uYWw8SGFzaE1hcDxTdHJpbmcsIFZlY3Rv
cjxTdHJpbmc+LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+Pj4gbWltZVR5cGVzTWFwOworICAg
IGRlY29kZXIgPj4gbWltZVR5cGVzTWFwOworICAgIGlmICghbWltZVR5cGVzTWFwKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcGFyYW1ldGVycy5taW1lVHlwZXNNYXAgPSBXVEZNb3ZlKCpt
aW1lVHlwZXNNYXApOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRleDog
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMuaAkocmV2aXNpb24gMjU1MDgxKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDksNiArMjA5LDcgQEAg
c3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIE9wdGlvbmFsPFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZT4gbmVIZWxwZXJFeHRlbnNpb25IYW5kbGU7CiAgICAgT3B0aW9u
YWw8U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlPiBuZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9uSGFu
ZGxlOwogICAgIGJvb2wgc3lzdGVtSGFzQmF0dGVyeSB7IGZhbHNlIH07CisgICAgT3B0aW9uYWw8
SGFzaE1hcDxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+
PiBtaW1lVHlwZXNNYXA7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUG9vbENvY29hLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29s
Q29jb2EubW0JKHJldmlzaW9uIDI1NTA4MSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQb29sQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDcg
QEAKICNpbXBvcnQgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2luZG93U2VydmVy
Q29ubmVjdGlvbi5oIgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvci5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQuaD4KQEAgLTM1Myw2ICszNTQsNyBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXCiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246
OmNyZWF0ZUhhbmRsZUZvck1hY2hMb29rdXAoImNvbS5hcHBsZS51aWtpdC52aWV3c2VydmljZS5j
b20uYXBwbGUuV2ViQ29udGVudEZpbHRlci5yZW1vdGVVSSIsIFdURjo6bnVsbG9wdCwgaGFuZGxl
KTsKICAgICAgICAgcGFyYW1ldGVycy5jb250ZW50RmlsdGVyRXh0ZW5zaW9uSGFuZGxlID0gV1RG
TW92ZShoYW5kbGUpOwogICAgIH0KKyAgICBwYXJhbWV0ZXJzLm1pbWVUeXBlc01hcCA9IGNvbW1v
bk1pbWVUeXBlc01hcCgpOwogI2VuZGlmCiAgICAgCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbQkocmV2aXNpb24gMjU1MDgxKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1dlYlByb2Nlc3NDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtNTksNiArNTksNyBAQAog
I2ltcG9ydCA8V2ViQ29yZS9IaXN0b3J5SXRlbS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6
ZWRTdHJpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvZ0luaXRpYWxpemF0aW9uLmg+CisjaW1w
b3J0IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTWVtb3J5
UmVsZWFzZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9OU1Njcm9sbGVySW1wRGV0YWlscy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9QZXJmb3JtYW5jZUxvZ2dpbmcuaD4KQEAgLTI2MCw2ICsyNjEsOSBAQCB2
b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByCiAgICAgICAgIFNhbmRib3hF
eHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseSgqcGFyYW1ldGVycy5uZVNlc3Npb25NYW5hZ2Vy
RXh0ZW5zaW9uSGFuZGxlKTsKICAgICBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlcjo6c2V0
SGFzQ29uc3VtZWRTYW5kYm94RXh0ZW5zaW9ucyhwYXJhbWV0ZXJzLm5lSGVscGVyRXh0ZW5zaW9u
SGFuZGxlLmhhc1ZhbHVlKCkgJiYgcGFyYW1ldGVycy5uZVNlc3Npb25NYW5hZ2VyRXh0ZW5zaW9u
SGFuZGxlLmhhc1ZhbHVlKCkpOwogICAgIHNldFN5c3RlbUhhc0JhdHRlcnkocGFyYW1ldGVycy5z
eXN0ZW1IYXNCYXR0ZXJ5KTsKKworICAgIGlmIChwYXJhbWV0ZXJzLm1pbWVUeXBlc01hcCkKKyAg
ICAgICAgb3ZlcnJpZGRlbk1pbWVUeXBlc01hcCgpID0gV1RGTW92ZShwYXJhbWV0ZXJzLm1pbWVU
eXBlc01hcCk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4OiBUb29s
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNTUw
ODEpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAor
MjAyMC0wMS0yNCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0NvY29hXSBNZWRpYSBtaW1lIHR5cGVzIG1hcCBzaG91bGQgYmUgY3JlYXRlZCBpbiB0aGUg
VUkgcHJvY2VzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA2NDc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9NaW1lVHlwZXMubW06IEFkZGVk
LgorICAgICAgICAoVEVTVCk6CisKIDIwMjAtMDEtMjQgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xs
YW5AYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNTUwNTAu
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjU1MDgxKQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTg2Miw2ICs4NjIsNyBAQAogCQlDMEFEQkU5NjEyRkNBNzlCMDBEMkMx
MjkgLyogc2ltcGxlLWZvcm0uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMEFEQkU4NDEyRkNBNkI2MDBEMkMxMjkgLyogc2ltcGxlLWZv
cm0uaHRtbCAqLzsgfTsKIAkJQzBCRDY2OUYxMzFEM0NGRjAwRTE4RjJBIC8qIFJlc3BvbnNpdmVu
ZXNzVGltZXJEb2VzbnRGaXJlRWFybHlfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMwQkQ2NjlFMTMxRDNDRkYwMEUxOEYyQSAvKiBSZXNw
b25zaXZlbmVzc1RpbWVyRG9lc250RmlyZUVhcmx5X0J1bmRsZS5jcHAgKi87IH07CiAJCUMwQzVE
M0M2MTQ1OTkxMjkwMEE4MDJBNiAvKiBHZXRCYWNraW5nU2NhbGVGYWN0b3JfQnVuZGxlLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzBDNUQzQkQxNDU5
OEI2RjAwQTgwMkE2IC8qIEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW0gKi87IH07CisJ
CUMxNDVDQzBDMjNEQTVBMUYwMDNBNUVFQiAvKiBNaW1lVHlwZXMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTQ1Q0MwQjIzREE1QTBGMDAzQTVFRUIg
LyogTWltZVR5cGVzLm1tICovOyB9OwogCQlDMTY5MkRDQTIzRDEwREFFMDA2RTg4RjcgLyogQmF0
dGVyeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMx
NjkyREM5MjNEMTBEQUUwMDZFODhGNyAvKiBCYXR0ZXJ5Lm1tICovOyB9OwogCQlDMjBGODhBNzIy
OTVCOTY3MDBENjEwRkEgLyogQ29yZVRleHQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIwRjg4QTYyMjk1Qjk2NzAwRDYxMEZBIC8q
IENvcmVUZXh0LmZyYW1ld29yayAqLzsgfTsKIAkJQzIyRkEzMkIyMjhGODcwODAwOUQ3OTg4IC8q
IFRleHRXaWR0aC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMyMkZBMzJBMjI4Rjg3MDgwMDlENzk4OCAvKiBUZXh0V2lkdGgubW0gKi87IH07CkBAIC0y
Mzg1LDYgKzIzODYsNyBAQAogCQlDMEJENjY5RTEzMUQzQ0ZGMDBFMThGMkEgLyogUmVzcG9uc2l2
ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseV9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gUmVzcG9uc2l2ZW5lc3NUaW1lckRvZXNudEZpcmVFYXJseV9CdW5k
bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMEM1RDNCQzE0NTk4QjZGMDBB
ODAyQTYgLyogR2V0QmFja2luZ1NjYWxlRmFjdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gR2V0QmFja2luZ1NjYWxlRmFjdG9yLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDMEM1RDNCRDE0NTk4QjZGMDBBODAyQTYgLyogR2V0QmFja2luZ1Nj
YWxlRmFjdG9yX0J1bmRsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEdldEJhY2tpbmdTY2FsZUZhY3Rvcl9CdW5kbGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMxNDVDQzBCMjNEQTVBMEYwMDNBNUVFQiAvKiBNaW1lVHlwZXMubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBNaW1lVHlwZXMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxNjkyREM5MjNEMTBEQUUwMDZFODhGNyAvKiBCYXR0ZXJ5
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQmF0dGVyeS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQzFEOEVFMjEyMDI4RThFMzAwOEVCMTQxIC8qIFdlYlByb2Nlc3NUZXJtaW5h
dGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJQcm9jZXNz
VGVybWluYXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjBGODhBNjIyOTVC
OTY3MDBENjEwRkEgLyogQ29yZVRleHQuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBDb3Jl
VGV4dC5mcmFtZXdvcms7IHBhdGggPSBTeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVUZXh0
LmZyYW1ld29yazsgc291cmNlVHJlZSA9IFNES1JPT1Q7IH07CkBAIC0yODI2LDYgKzI4MjgsNyBA
QAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlDMTY5MkRDOTIzRDEw
REFFMDA2RTg4RjcgLyogQmF0dGVyeS5tbSAqLywKKwkJCQlDMTQ1Q0MwQjIzREE1QTBGMDAzQTVF
RUIgLyogTWltZVR5cGVzLm1tICovLAogCQkJCTBGMTM5RTc1MUE0MjNBNTMwMEY1OTBGNSAvKiBX
ZWFrT2JqQ1B0ci5tbSAqLywKIAkJCSk7CiAJCQluYW1lID0gY29jb2E7CkBAIC00ODA5LDYgKzQ4
MTIsNyBAQAogCQkJCTVDMEJGODk0MURENTk5QzkwMEIwMDMyOCAvKiBNZW51VHlwZXNGb3JNb3Vz
ZUV2ZW50cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxNjVGRTA0MjAxRUU2MjAwMDlGN0VDMyAv
KiBNZXNzYWdlUG9ydFByb3ZpZGVycy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE1QjE0OURFMUY1
QTE5RUEwMEM2REFGRiAvKiBNSU1FVHlwZVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CUMxNDVDQzBDMjNEQTVBMUYwMDNBNUVFQiAvKiBNaW1lVHlwZXMubW0gaW4gU291cmNlcyAqLywK
IAkJCQk1MUNEMUM2QzFCMzhDRTQzMDAxNDJDQTUgLyogTW9kYWxBbGVydHMubW0gaW4gU291cmNl
cyAqLywKIAkJCQk3QzgzRTBCNjFEMEE2NEIzMDBGRUJDRjMgLyogTW9kYWxBbGVydHNTUEkuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMDExQTQxMUFFNjAwNDQ3QzRDIC8qIE1vdXNlTW92
ZUFmdGVyQ3Jhc2guY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdC9NaW1lVHlwZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvTWltZVR5cGVzLm1tCShub25leGlzdGVudCkKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01pbWVUeXBlcy5tbQkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgV0tf
SEFWRV9DX1NQSQorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVz
dFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CisKK1RF
U1QoV2ViS2l0LCBNaW1lVHlwZXMpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBXS1JldGFpblB0
cjxXS0NvbnRleHRSZWY+IGNvbnRleHQgPSBhZG9wdFdLKFRlc3RXZWJLaXRBUEk6OlV0aWw6OmNy
ZWF0ZUNvbnRleHRGb3JJbmplY3RlZEJ1bmRsZVRlc3QoIkludGVybmFsc0luamVjdGVkQnVuZGxl
VGVzdCIpKTsKKyAgICBjb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NQb29sID0gKFdLUHJvY2Vz
c1Bvb2wgKiljb250ZXh0LmdldCgpOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMzAwLCAzMDAp
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKSBhZGRUb1dpbmRvdzpZRVNdKTsKKwor
ICAgIGZvciAoYXV0byYgcGFpciA6IFdlYkNvcmU6OmNvbW1vbk1lZGlhVHlwZXMoKSkgeworICAg
ICAgICBBU0NJSUxpdGVyYWwgZXh0ZW5zaW9uID0gcGFpci5leHRlbnNpb247CisKKyAgICAgICAg
YXV0byBqcyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAid2luZG93LmludGVybmFscy5t
ZWRpYU1JTUVUeXBlRm9yRXh0ZW5zaW9uKFwiJXNcIikiLCBleHRlbnNpb24uY2hhcmFjdGVycygp
XTsKKworICAgICAgICBhdXRvIG1pbWVUeXBlID0gW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5n
SmF2YVNjcmlwdDpqc107CisKKyAgICAgICAgQVNTRVJUX1RSVUUoV2ViQ29yZTo6TUlNRVR5cGVS
ZWdpc3RyeTo6Z2V0TWVkaWFNSU1FVHlwZUZvckV4dGVuc2lvbihleHRlbnNpb24pID09IFN0cmlu
ZyhtaW1lVHlwZSkpOworICAgIH0KK30KKworI2VuZGlmIC8vIFdLX0hBVkVfQ19TUEkK
</data>

          </attachment>
      

    </bug>

</bugzilla>