<?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>71870</bug_id>
          
          <creation_ts>2011-11-08 17:56:59 -0800</creation_ts>
          <short_desc>Rename WEBKIT_lose_context to WEBKIT_WEBGL_lose_context</short_desc>
          <delta_ts>2011-12-15 11:54:32 -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>WebGL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>74161</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Russell">kbr</reporter>
          <assigned_to name="Kenneth Russell">kbr</assigned_to>
          <cc>abarth</cc>
    
    <cc>bashi</cc>
    
    <cc>cmarrin</cc>
    
    <cc>gustavo</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan</cc>
    
    <cc>senorblanco</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zmo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>498576</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-11-08 17:56:59 -0800</bug_when>
    <thetext>Mozilla indicated that they desired to add the WEBKIT_lose_context extension to their WebGL implementation for testing purposes. After discussion on the public_webgl mailing list it was decided to simply rename this extension to WEBGL_EXT_lose_context to avoid going down the route of having one browser vendor implement another&apos;s WebGL extensions. This renaming has been done in the extension registry and needs to be done in WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504468</commentid>
    <comment_count>1</comment_count>
      <attachid>115495</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-11-16 17:53:30 -0800</bug_when>
    <thetext>Created attachment 115495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504470</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-16 17:56:01 -0800</bug_when>
    <thetext>Attachment 115495 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1

Source/WebCore/html/canvas/WebGLExtLoseContext.h:26:  #ifndef header guard has wrong style, please use: WebGLExtLoseContext_h  [build/header_guard] [5]
Total errors found: 1 in 23 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504476</commentid>
    <comment_count>3</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-11-16 18:04:50 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Attachment 115495 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1
&gt; 
&gt; Source/WebCore/html/canvas/WebGLExtLoseContext.h:26:  #ifndef header guard has wrong style, please use: WebGLExtLoseContext_h  [build/header_guard] [5]
&gt; Total errors found: 1 in 23 files
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

Shouldn&apos;t &quot;webkit-patch upload&quot; have caught this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504477</commentid>
    <comment_count>4</comment_count>
      <attachid>115500</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-11-16 18:08:12 -0800</bug_when>
    <thetext>Created attachment 115500
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504480</commentid>
    <comment_count>5</comment_count>
      <attachid>115500</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-16 18:13:04 -0800</bug_when>
    <thetext>Comment on attachment 115500
Patch

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

There are a number of tests checked into the chromium repository that use this extension name.  There also might be content in the wild using this identifier.  Should we perhaps recognize both for a period of time to give people a chance to update their code?

&gt; Source/WebCore/html/canvas/WebGLExtLoseContext.h:47
&gt; +    WebKitLoseContext(WebGLRenderingContext*);

explicit please

&gt; Source/WebCore/html/canvas/WebGLExtLoseContext.h:47
&gt; +    WebGLExtLoseContext(WebGLRenderingContext*);

explicit please

&gt; Tools/Scripts/do-webcore-rename:100
&gt; +    &quot;WebKitLoseContext&quot; =&gt; &quot;WebGLExtLoseContext&quot;,

you shouldn&apos;t check this bit in</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504493</commentid>
    <comment_count>6</comment_count>
      <attachid>115507</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-11-16 18:28:09 -0800</bug_when>
    <thetext>Created attachment 115507
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504494</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-11-16 18:29:10 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 115500 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=115500&amp;action=review
&gt; 
&gt; There are a number of tests checked into the chromium repository that use this extension name.  There also might be content in the wild using this identifier.  Should we perhaps recognize both for a period of time to give people a chance to update their code?

Fair enough. Done.

&gt; &gt; Source/WebCore/html/canvas/WebGLExtLoseContext.h:47
&gt; &gt; +    WebKitLoseContext(WebGLRenderingContext*);
&gt; 
&gt; explicit please

Done.

&gt; &gt; Tools/Scripts/do-webcore-rename:100
&gt; &gt; +    &quot;WebKitLoseContext&quot; =&gt; &quot;WebGLExtLoseContext&quot;,
&gt; 
&gt; you shouldn&apos;t check this bit in

In my experience the convention is to check in the change to do-webcore-rename along with the changes it made, but I&apos;m happy enough to not do so. Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504506</commentid>
    <comment_count>8</comment_count>
      <attachid>115507</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-16 18:56:39 -0800</bug_when>
    <thetext>Comment on attachment 115507
Patch

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516449</commentid>
    <comment_count>9</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-12-06 19:36:17 -0800</bug_when>
    <thetext>After much more discussion on the WebGL mailing list the decision was made to use vendor prefixes for draft extensions being implemented by multiple browsers. Updated the summary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516457</commentid>
    <comment_count>10</comment_count>
      <attachid>118163</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-12-06 19:52:40 -0800</bug_when>
    <thetext>Created attachment 118163
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516461</commentid>
    <comment_count>11</comment_count>
      <attachid>118163</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-12-06 20:01:23 -0800</bug_when>
    <thetext>Comment on attachment 118163
Patch

Attachment 118163 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10751030</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516951</commentid>
    <comment_count>12</comment_count>
      <attachid>118283</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-12-07 15:35:09 -0800</bug_when>
    <thetext>Created attachment 118283
Patch

Fixed GTK build problem</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517007</commentid>
    <comment_count>13</comment_count>
      <attachid>118283</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-12-07 17:17:33 -0800</bug_when>
    <thetext>Comment on attachment 118283
Patch

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

&gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:2583
&gt; +    result.append(&quot;WEBKIT_WEBGL_lose_context&quot;);

this appears to be a (slight) WebGL spec violation:
DOMString[ ] getSupportedExtensions()
Returns an array of all the supported extension strings. Any string in this list, when passed to getExtension must return a valid object. Any other string passed to getExtension must return null.
object getExtension(DOMString name)
Returns an object if the passed extension is supported, or null if not. The object returned from getExtension contains any constants or functions used by the extension, if any. A returned object may have no constants or functions if the extension does not define any, but a unique object must still be returned. That object is used to indicate that the extension has been enabled.

We&apos;re not exporting WEBKIT_lose_context in getSupportedExtensions() but we are returning non-null to getExtension(&quot;WEBKIT_lose_context&quot;). If this is a deliberate choice to make migration easier I think it sounds fine, but I want to make sure it&apos;s a conscious violation and not an accident.

&gt; LayoutTests/ChangeLog:6
&gt; +        Synchronized context-lost-restored.html and context-lost.html with

do we want to attempt to verify that WEBKIT_lost_context keeps working until we decide to remove it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517014</commentid>
    <comment_count>14</comment_count>
      <attachid>118283</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-12-07 17:33:48 -0800</bug_when>
    <thetext>Comment on attachment 118283
Patch

Otherwise, this code looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517021</commentid>
    <comment_count>15</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-12-07 17:38:25 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 118283 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=118283&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/canvas/WebGLRenderingContext.cpp:2583
&gt; &gt; +    result.append(&quot;WEBKIT_WEBGL_lose_context&quot;);
&gt; 
&gt; this appears to be a (slight) WebGL spec violation:
&gt; DOMString[ ] getSupportedExtensions()
&gt; Returns an array of all the supported extension strings. Any string in this list, when passed to getExtension must return a valid object. Any other string passed to getExtension must return null.
&gt; object getExtension(DOMString name)
&gt; Returns an object if the passed extension is supported, or null if not. The object returned from getExtension contains any constants or functions used by the extension, if any. A returned object may have no constants or functions if the extension does not define any, but a unique object must still be returned. That object is used to indicate that the extension has been enabled.
&gt; 
&gt; We&apos;re not exporting WEBKIT_lose_context in getSupportedExtensions() but we are returning non-null to getExtension(&quot;WEBKIT_lose_context&quot;). If this is a deliberate choice to make migration easier I think it sounds fine, but I want to make sure it&apos;s a conscious violation and not an accident.

Yes, this is a slight violation, but it doesn&apos;t seem to be a good idea to continue advertising the deprecated name. No applications I know of are actually calling getSupportedExtensions(), only getExtension(). I&apos;d remove support for it right now if it weren&apos;t for the concern you raised earlier about possible breakage of Chromium tests. Once those have been updated I am going to remove support for the old name.

&gt; &gt; LayoutTests/ChangeLog:6
&gt; &gt; +        Synchronized context-lost-restored.html and context-lost.html with
&gt; 
&gt; do we want to attempt to verify that WEBKIT_lost_context keeps working until we decide to remove it?

No, this would be a waste of code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518030</commentid>
    <comment_count>16</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-12-08 19:07:23 -0800</bug_when>
    <thetext>Committed r102418: &lt;http://trac.webkit.org/changeset/102418&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518098</commentid>
    <comment_count>17</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2011-12-08 21:23:52 -0800</bug_when>
    <thetext>Reverted r102418 for reason:

Caused chromium build failure

Committed r102430: &lt;http://trac.webkit.org/changeset/102430&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518963</commentid>
    <comment_count>18</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-12-11 18:48:59 -0800</bug_when>
    <thetext>The bug ID with the failing build log was https://bugs.webkit.org/show_bug.cgi?id=74161 . It seems clear that the bot simply needed to be clobbered. The Chromium build worked fine on my local workstation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>521980</commentid>
    <comment_count>19</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-12-15 09:53:08 -0800</bug_when>
    <thetext>I&apos;ve built this patch on Chromium Windows as well with no problems. Re-landing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>522119</commentid>
    <comment_count>20</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-12-15 11:54:32 -0800</bug_when>
    <thetext>Committed r102973: &lt;http://trac.webkit.org/changeset/102973&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115495</attachid>
            <date>2011-11-16 17:53:30 -0800</date>
            <delta_ts>2011-11-16 18:08:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71870-20111116175329.patch</filename>
            <type>text/plain</type>
            <size>39854</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDU0MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDExLTExLTE2ICBLZW5uZXRo
IFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZW5hbWUgV0VCS0lUX2xvc2Vf
Y29udGV4dCB0byBXRUJHTF9FWFRfbG9zZV9jb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTg3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBsYXJnZWx5IGRvbmUgd2l0aCBkby13ZWJj
b3JlLXJlbmFtZSB3aXRoIGEgY291cGxlIG9mCisgICAgICAgIG5lY2Vzc2FyeSBtYW51YWwgZml4
dXBzLiBSYW4gV2ViR0wgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQu
cHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICog
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRvVjhPYmplY3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdM
RXh0TG9zZUNvbnRleHQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJLaXRMb3NlQ29udGV4dC5jcHAuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTEV4dExvc2VD
b250ZXh0OjpXZWJHTEV4dExvc2VDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRXh0
TG9zZUNvbnRleHQ6On5XZWJHTEV4dExvc2VDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMRXh0TG9zZUNvbnRleHQ6OmdldE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xFeHRM
b3NlQ29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRXh0TG9zZUNvbnRl
eHQ6Omxvc2VDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRXh0TG9zZUNvbnRleHQ6
OnJlc3RvcmVDb250ZXh0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEV4dExvc2VDb250
ZXh0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VD
b250ZXh0LmguCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xFeHRMb3NlQ29udGV4dC5pZGw6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0
LmlkbC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24pOgor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5oOiBSZW1vdmVkLgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYktpdExvc2VDb250ZXh0LmlkbDogUmVtb3ZlZC4KKwogMjAxMS0xMS0xNiAgTWlj
aGFlbCBOb3JkbWFuICA8bWljaGFlbG5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBBcHBsaWNhdGlv
bkNhY2hlIG1hbmlmZXN0IHNob3VsZCB3b3JrIHdpdGggYW55IE1JTUUgdHlwZS4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMDA1MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjE1Myw3ICsyMTUzLDcgQEAgSUYgKEVOQUJM
RV9XRUJHTCkKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAK
ICAgICAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmNwcAogICAgICAgICBodG1sL2Nh
bnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKLSAgICAgICAgaHRtbC9jYW52YXMvV2ViS2l0
TG9zZUNvbnRleHQuY3BwCisgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRXh0TG9zZUNvbnRleHQu
Y3BwCiAKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCiAg
ICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcApAQCAtMjE3OCw3
ICsyMTc4LDcgQEAgSUYgKEVOQUJMRV9XRUJHTCkKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xU
ZXh0dXJlLmlkbAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5pZGwK
ICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5pZGwKLSAgICAg
ICAgaHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQuaWRsCisgICAgICAgIGh0bWwvY2FudmFz
L1dlYkdMRXh0TG9zZUNvbnRleHQuaWRsCiAgICAgKQogRU5ESUYgKCkKIApJbmRleDogU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAxMDA1MzgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC01NDYsNyArNTQ2LDcgQEAg
RE9NX0NMQVNTRVMgPSBcCiAgICAgV2ViS2l0Q1NTTWF0cml4IFwKICAgICBXZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZSBcCiAgICAgV2ViS2l0RmxhZ3MgXAotICAgIFdlYktpdExvc2VDb250ZXh0IFwK
KyAgICBXZWJHTEV4dExvc2VDb250ZXh0IFwKICAgICBXZWJLaXRNdXRhdGlvbk9ic2VydmVyIFwK
ICAgICBXZWJLaXRQb2ludCBcCiAgICAgV2ViS2l0VHJhbnNpdGlvbkV2ZW50IFwKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5wcmkJKHJldmlzaW9uIDEwMDUzOCkKKysrIFNvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLnByaQkod29ya2luZyBjb3B5KQpAQCAtMjMyLDcgKzIzMiw3IEBA
IElETF9CSU5ESU5HUyArPSBcCiAgICAgaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlkbCBcCiAg
ICAgaHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uaWRsIFwKICAgICBodG1sL2NhbnZh
cy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbCBcCi0gICAgaHRtbC9jYW52YXMvV2ViS2l0
TG9zZUNvbnRleHQuaWRsIFwKKyAgICBodG1sL2NhbnZhcy9XZWJHTEV4dExvc2VDb250ZXh0Lmlk
bCBcCiAgICAgaHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwgXAogICAgIGh0bWwvY2FudmFzL1Vp
bnQzMkFycmF5LmlkbCBcCiAgICAgaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsIFwKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTAwNTM4KQorKysgU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtNTAxNCw4ICs1
MDE0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9PRVNUZXh0dXJlRmxvYXQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVy
dGV4QXJyYXlPYmplY3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0
ZXhBcnJheU9iamVjdC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJLaXRMb3Nl
Q29udGV4dC5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250
ZXh0LmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0TG9zZUNvbnRleHQu
Y3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dExvc2VDb250ZXh0Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2Uu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0M0RDYWlyby5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAxMDA1MzgpCisrKyBT
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0zNjQ2LDcgKzM2NDYs
NyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0VCR0w9MSkgewogICAgICAgICBodG1sL2Nh
bnZhcy9XZWJHTFRleHR1cmUuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxv
Y2F0aW9uLmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
LmggXAotICAgICAgICBodG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5oIFwKKyAgICAgICAg
aHRtbC9jYW52YXMvV2ViR0xFeHRMb3NlQ29udGV4dC5oIFwKICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0V4
dGVuc2lvbnMzRC5oIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuaCBcCkBAIC0zNjc5LDcgKzM2NzksNyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0VC
R0w9MSkgewogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuY3BwIFwKICAgICAgICAg
aHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uY3BwIFwKICAgICAgICAgaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAgXAotICAgICAgICBodG1sL2NhbnZhcy9X
ZWJLaXRMb3NlQ29udGV4dC5jcHAgXAorICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEV4dExvc2VD
b250ZXh0LmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdl
LmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcCBc
CiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5nQnVmZmVyLmNwcCBcCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxMDA1MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTEzNzIsNyArMTM3Miw3IEBACiAgICAgICAgICAg
ICAnaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52
YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9X
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbCcsCi0gICAgICAgICAgICAnaHRtbC9jYW52YXMv
V2ViS2l0TG9zZUNvbnRleHQuaWRsJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEV4
dExvc2VDb250ZXh0LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0
LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC90cmFjay9UcmFja0V2ZW50LmlkbCcsCiAgICAgICAg
ICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwnLApAQCAtNTc0MCw4ICs1NzQw
LDggQEAKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5oJywK
ICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcCcs
CiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oJywK
LSAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5jcHAnLAotICAgICAg
ICAgICAgJ2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmgnLAorICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL1dlYkdMRXh0TG9zZUNvbnRleHQuY3BwJywKKyAgICAgICAgICAgICdodG1sL2Nh
bnZhcy9XZWJHTEV4dExvc2VDb250ZXh0LmgnLAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL0NT
U1ByZWxvYWRTY2FubmVyLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIvQ1NTUHJlbG9h
ZFNjYW5uZXIuaCcsCiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNp
dGUuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDEwMDUzOCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzE5Niw4ICsz
MTk2LDggQEAKIAkJOTNGMTlCMTUwODI0NUU1OTAwMUU5QUJDIC8qIENvY29hLmZyYW1ld29yayBp
biBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzI4Njk1
MDI4NDZEQ0QwMTg2MzVDQSAvKiBDb2NvYS5mcmFtZXdvcmsgKi87IH07CiAJCTkzRjE5QjE2MDgy
NDVFNTkwMDFFOUFCQyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGODIxNjI5OTAyOUY0RkI1MDEwMDAx
MzEgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovOyB9OwogCQk5M0YxOUIxNzA4MjQ1RTU5
MDAxRTlBQkMgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjFEMzFBMDU1OENDNUMwMDgyMUJDMCAvKiBsaWJpY3Vj
b3JlLmR5bGliICovOyB9OwotCQk5M0YxRDVCQTEyRDUzMkM0MDA4MzJCRUMgLyogV2ViS2l0TG9z
ZUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNGMUQ1QjcxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0LmNwcCAqLzsg
fTsKLQkJOTNGMUQ1QkIxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YxRDVCODEyRDUz
MkM0MDA4MzJCRUMgLyogV2ViS2l0TG9zZUNvbnRleHQuaCAqLzsgfTsKKwkJOTNGMUQ1QkExMkQ1
MzJDNDAwODMyQkVDIC8qIFdlYkdMRXh0TG9zZUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1QjcxMkQ1MzJDNDAwODMyQkVDIC8q
IFdlYkdMRXh0TG9zZUNvbnRleHQuY3BwICovOyB9OworCQk5M0YxRDVCQjEyRDUzMkM0MDA4MzJC
RUMgLyogV2ViR0xFeHRMb3NlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1QjgxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMRXh0TG9z
ZUNvbnRleHQuaCAqLzsgfTsKIAkJOTNGMUQ1QzAxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViS2l0
TG9zZUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNGMUQ1QkUxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViS2l0TG9zZUNvbnRleHQuY3Bw
ICovOyB9OwogCQk5M0YxRDVDMTEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJLaXRMb3NlQ29udGV4
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1
QkYxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViS2l0TG9zZUNvbnRleHQuaCAqLzsgfTsKIAkJOTNG
NkYxRUQxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjZGMUVBMTI3RjcwQjEwMDU1
Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5jcHAgKi87IH07CkBAIC0xMDM4Myw5ICsxMDM4Myw5
IEBACiAJCTkzRjE5QjE5MDgyNDVFNTkwMDFFOUFCQyAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk5M0YxOUIxQTA4MjQ1RTVBMDAxRTlB
QkMgLyogV2ViQ29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhw
bGljaXRGaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBh
dGggPSBXZWJDb3JlLmZyYW1ld29yazsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKIAkJOTNGMUQzMUEwNTU4Q0M1QzAwODIxQkMwIC8qIGxpYmljdWNvcmUuZHlsaWIgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29tcGlsZWQubWFj
aC1vLmR5bGliIjsgbmFtZSA9IGxpYmljdWNvcmUuZHlsaWI7IHBhdGggPSAvdXNyL2xpYi9saWJp
Y3Vjb3JlLmR5bGliOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwotCQk5M0YxRDVCNzEy
RDUzMkM0MDA4MzJCRUMgLyogV2ViS2l0TG9zZUNvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gV2ViS2l0TG9zZUNvbnRleHQuY3BwOyBwYXRoID0gY2FudmFz
L1dlYktpdExvc2VDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNG
MUQ1QjgxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYktpdExvc2VDb250ZXh0Lmg7IHBhdGggPSBjYW52YXMv
V2ViS2l0TG9zZUNvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNGMUQ1
QjkxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IG5hbWUgPSBXZWJLaXRMb3NlQ29udGV4dC5pZGw7IHBhdGggPSBjYW52YXMvV2ViS2l0TG9z
ZUNvbnRleHQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0YxRDVCNzEyRDUz
MkM0MDA4MzJCRUMgLyogV2ViR0xFeHRMb3NlQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJHTEV4dExvc2VDb250ZXh0LmNwcDsgcGF0aCA9IGNhbnZh
cy9XZWJHTEV4dExvc2VDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTNGMUQ1QjgxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMRXh0TG9zZUNvbnRleHQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViR0xFeHRMb3NlQ29udGV4dC5oOyBwYXRoID0g
Y2FudmFzL1dlYkdMRXh0TG9zZUNvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTNGMUQ1QjkxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMRXh0TG9zZUNvbnRleHQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYkdMRXh0TG9zZUNvbnRleHQuaWRsOyBwYXRoID0gY2Fu
dmFzL1dlYkdMRXh0TG9zZUNvbnRleHQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5M0YxRDVCRTEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJLaXRMb3NlQ29udGV4dC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdExvc2VDb250ZXh0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGMUQ1QkYxMkQ1MzM1NjAwODMyQkVD
IC8qIEpTV2ViS2l0TG9zZUNvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNXZWJLaXRMb3NlQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
M0Y2RjFFQTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViR0xDb250ZXh0RXZlbnQuY3BwOyBwYXRo
ID0gY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE0OTczLDkgKzE0OTczLDkgQEAKIAkJCQk3N0ExN0E3NDEyRjI4NjQyMDA0RTAyRjYg
LyogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAgKi8sCiAJCQkJNzdBMTdBNzUxMkYyODY0
MjAwNEUwMkY2IC8qIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCAqLywKIAkJCQk3N0ExN0E3
NjEyRjI4NjQyMDA0RTAyRjYgLyogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5pZGwgKi8sCi0J
CQkJOTNGMUQ1QjcxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0LmNwcCAqLywK
LQkJCQk5M0YxRDVCODEyRDUzMkM0MDA4MzJCRUMgLyogV2ViS2l0TG9zZUNvbnRleHQuaCAqLywK
LQkJCQk5M0YxRDVCOTEyRDUzMkM0MDA4MzJCRUMgLyogV2ViS2l0TG9zZUNvbnRleHQuaWRsICov
LAorCQkJCTkzRjFENUI3MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTEV4dExvc2VDb250ZXh0LmNw
cCAqLywKKwkJCQk5M0YxRDVCODEyRDUzMkM0MDA4MzJCRUMgLyogV2ViR0xFeHRMb3NlQ29udGV4
dC5oICovLAorCQkJCTkzRjFENUI5MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTEV4dExvc2VDb250
ZXh0LmlkbCAqLywKIAkJCSk7CiAJCQluYW1lID0gY2FudmFzOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKQEAgLTI0NTU2LDcgKzI0NTU2LDcgQEAKIAkJCQk0OTgzOTE1OTBGMUU3NzY5MDBD
MjM3ODIgLyogV2ViS2l0Q1NTTWF0cml4LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzlBREQyMzBD
QzQwMzI2MDAwOThDNEMgLyogV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg5ODc4NTY2MTIyQ0EwNjQwMDNBQUJEQSAvKiBXZWJLaXRGbGFncy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJOTNGMUQ1QkIxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0YxRDVCQjEyRDUzMkM0MDA4MzJCRUMgLyogV2ViR0xF
eHRMb3NlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzZGMDkwMEYxNDMyN0I2MTAwNjg1
ODQ5IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5NEJE
Nzk1MEY1NUM4RUUwMDc0NzgyOCAvKiBXZWJLaXRQb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzFDMEZGMjUwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNzQ0MSw3ICsyNzQ0MSw3IEBACiAJCQkJMzEyODhFNzQwRTMwMDVENjAw
MzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDk4MzkxNTgwRjFFNzc2OTAwQzIzNzgyIC8qIFdlYktpdENTU01hdHJpeC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzlBREQ4MDBDQzQwOTIyMDAwOThDNEMgLyogV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTNGMUQ1QkExMkQ1MzJDNDAwODMyQkVDIC8q
IFdlYktpdExvc2VDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkzRjFENUJBMTJENTMy
QzQwMDgzMkJFQyAvKiBXZWJHTEV4dExvc2VDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUM2RjA5MDBFMTQzMjdCNjEwMDY4NTg0OSAvKiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTMxQzBGRjI0MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFu
c2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDRjMzMkUwRjJCOUEyNTAwNEI2
Nzk1IC8qIFdlYkxheWVyLm1tIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0
b20uY3BwCShyZXZpc2lvbiAxMDA1MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYg
KzQ0LDcgQEAKICNpbmNsdWRlICJKU09FU1ZlcnRleEFycmF5T2JqZWN0LmgiCiAjaW5jbHVkZSAi
SlNVaW50OEFycmF5LmgiCiAjaW5jbHVkZSAiSlNXZWJHTEJ1ZmZlci5oIgorI2luY2x1ZGUgIkpT
V2ViR0xFeHRMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIkpTV2ViR0xGcmFtZWJ1ZmZlci5oIgog
I2luY2x1ZGUgIkpTV2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiSlNXZWJHTFJlbmRlcmJ1ZmZl
ci5oIgpAQCAtNTIsNyArNTMsNiBAQAogI2luY2x1ZGUgIkpTV2ViR0xVbmlmb3JtTG9jYXRpb24u
aCIKICNpbmNsdWRlICJKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKICNpbmNsdWRlICJK
U1dlYktpdENTU01hdHJpeC5oIgotI2luY2x1ZGUgIkpTV2ViS2l0TG9zZUNvbnRleHQuaCIKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIk9FU1N0YW5kYXJkRGVyaXZhdGl2
ZXMuaCIKICNpbmNsdWRlICJPRVNUZXh0dXJlRmxvYXQuaCIKQEAgLTYwLDEzICs2MCwxMyBAQAog
I2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xEZWJ1Z1JlbmRlcmVySW5m
by5oIgogI2luY2x1ZGUgIldlYkdMRGVidWdTaGFkZXJzLmgiCisjaW5jbHVkZSAiV2ViR0xFeHRM
b3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiV2Vi
R0xGcmFtZWJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMR2V0SW5mby5oIgogI2luY2x1ZGUgIldl
YkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1
ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKLSNpbmNsdWRlICJXZWJLaXRMb3NlQ29u
dGV4dC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRlIDxydW50aW1lL0pT
QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgpAQCAtMTgyLDcgKzE4Miw3IEBA
IHN0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0QKICAgICAgICAgcmV0dXJu
IGpzTnVsbCgpOwogICAgIHN3aXRjaCAoZXh0ZW5zaW9uLT5nZXROYW1lKCkpIHsKICAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpXZWJLaXRMb3NlQ29udGV4dE5hbWU6Ci0gICAgICAgIHJldHVybiB0
b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViS2l0TG9zZUNvbnRleHQqPihl
eHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0
aWNfY2FzdDxXZWJHTEV4dExvc2VDb250ZXh0Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJH
TEV4dGVuc2lvbjo6T0VTU3RhbmRhcmREZXJpdmF0aXZlc05hbWU6CiAgICAgICAgIHJldHVybiB0
b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTU3RhbmRhcmREZXJpdmF0aXZl
cyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1RleHR1cmVGbG9h
dE5hbWU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJl
bmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHJldmlz
aW9uIDEwMDUzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdM
UmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDYg
QEAKICNpbmNsdWRlICJWOEFycmF5QnVmZmVyVmlldy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5o
IgogI2luY2x1ZGUgIlY4QmluZGluZ01hY3Jvcy5oIgotI2luY2x1ZGUgIlY4V2ViS2l0TG9zZUNv
bnRleHQuaCIKICNpbmNsdWRlICJWOEZsb2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIlY4SFRNTENh
bnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJWOEhUTUxJbWFnZUVsZW1lbnQuaCIKQEAgLTU4LDYg
KzU3LDcgQEAKICNpbmNsdWRlICJWOFdlYkdMQnVmZmVyLmgiCiAjaW5jbHVkZSAiVjhXZWJHTERl
YnVnUmVuZGVyZXJJbmZvLmgiCiAjaW5jbHVkZSAiVjhXZWJHTERlYnVnU2hhZGVycy5oIgorI2lu
Y2x1ZGUgIlY4V2ViR0xFeHRMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4V2ViR0xGcmFtZWJ1
ZmZlci5oIgogI2luY2x1ZGUgIlY4V2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiVjhXZWJHTFJl
bmRlcmJ1ZmZlci5oIgpAQCAtMTY5LDcgKzE2OSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gdG9WOE9iamVjdCgKICAgICBjb25zdCBjaGFyKiByZWZlcmVuY2VOYW1lID0gMDsKICAg
ICBzd2l0Y2ggKGV4dGVuc2lvbi0+Z2V0TmFtZSgpKSB7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lv
bjo6V2ViS2l0TG9zZUNvbnRleHROYW1lOgotICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4
KHN0YXRpY19jYXN0PFdlYktpdExvc2VDb250ZXh0Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIGV4
dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xFeHRMb3NlQ29udGV4dCo+KGV4
dGVuc2lvbikpOwogICAgICAgICByZWZlcmVuY2VOYW1lID0gIndlYktpdExvc2VDb250ZXh0TmFt
ZSI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1N0YW5kYXJk
RGVyaXZhdGl2ZXNOYW1lOgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xF
eHRMb3NlQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xFeHRMb3NlQ29udGV4dC5jcHAJKHJldmlzaW9uIDEwMDE5NSkJKGZyb20gU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQuY3BwOjEwMDE5NSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0TG9zZUNvbnRleHQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
ZiBFTkFCTEUoV0VCR0wpCisKKyNpbmNsdWRlICJXZWJLaXRMb3NlQ29udGV4dC5oIgorCisjaW5j
bHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
V2ViS2l0TG9zZUNvbnRleHQ6OldlYktpdExvc2VDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4
dCogY29udGV4dCkKKyAgICA6IFdlYkdMRXh0ZW5zaW9uKGNvbnRleHQpCit7Cit9CisKK1dlYktp
dExvc2VDb250ZXh0Ojp+V2ViS2l0TG9zZUNvbnRleHQoKQoreworfQorCitXZWJHTEV4dGVuc2lv
bjo6RXh0ZW5zaW9uTmFtZSBXZWJLaXRMb3NlQ29udGV4dDo6Z2V0TmFtZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIFdlYktpdExvc2VDb250ZXh0TmFtZTsKK30KKworUGFzc093blB0cjxXZWJLaXRM
b3NlQ29udGV4dD4gV2ViS2l0TG9zZUNvbnRleHQ6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRl
eHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJLaXRMb3NlQ29udGV4
dChjb250ZXh0KSk7Cit9CisKK3ZvaWQgV2ViS2l0TG9zZUNvbnRleHQ6Omxvc2VDb250ZXh0KCkK
K3sKKyAgICBtX2NvbnRleHQtPmZvcmNlTG9zdENvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpTeW50aGV0aWNMb3N0Q29udGV4dCk7Cit9CisKK3ZvaWQgV2ViS2l0TG9zZUNvbnRleHQ6OnJl
c3RvcmVDb250ZXh0KCkKK3sKKyAgICBtX2NvbnRleHQtPmZvcmNlUmVzdG9yZUNvbnRleHQoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRMb3NlQ29udGV4dC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRMb3NlQ29u
dGV4dC5jcHAJKHJldmlzaW9uIDEwMDE5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMRXh0TG9zZUNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNywzNyArMjcsMzcg
QEAKIAogI2lmIEVOQUJMRShXRUJHTCkKIAotI2luY2x1ZGUgIldlYktpdExvc2VDb250ZXh0Lmgi
CisjaW5jbHVkZSAiV2ViR0xFeHRMb3NlQ29udGV4dC5oIgogCiAjaW5jbHVkZSAiV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV2ViS2l0TG9zZUNvbnRl
eHQ6OldlYktpdExvc2VDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKK1dl
YkdMRXh0TG9zZUNvbnRleHQ6OldlYkdMRXh0TG9zZUNvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250
ZXh0KiBjb250ZXh0KQogICAgIDogV2ViR0xFeHRlbnNpb24oY29udGV4dCkKIHsKIH0KIAotV2Vi
S2l0TG9zZUNvbnRleHQ6On5XZWJLaXRMb3NlQ29udGV4dCgpCitXZWJHTEV4dExvc2VDb250ZXh0
Ojp+V2ViR0xFeHRMb3NlQ29udGV4dCgpCiB7CiB9CiAKLVdlYkdMRXh0ZW5zaW9uOjpFeHRlbnNp
b25OYW1lIFdlYktpdExvc2VDb250ZXh0OjpnZXROYW1lKCkgY29uc3QKK1dlYkdMRXh0ZW5zaW9u
OjpFeHRlbnNpb25OYW1lIFdlYkdMRXh0TG9zZUNvbnRleHQ6OmdldE5hbWUoKSBjb25zdAogewog
ICAgIHJldHVybiBXZWJLaXRMb3NlQ29udGV4dE5hbWU7CiB9CiAKLVBhc3NPd25QdHI8V2ViS2l0
TG9zZUNvbnRleHQ+IFdlYktpdExvc2VDb250ZXh0OjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250
ZXh0KiBjb250ZXh0KQorUGFzc093blB0cjxXZWJHTEV4dExvc2VDb250ZXh0PiBXZWJHTEV4dExv
c2VDb250ZXh0OjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAg
IHJldHVybiBhZG9wdFB0cihuZXcgV2ViS2l0TG9zZUNvbnRleHQoY29udGV4dCkpOworICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgV2ViR0xFeHRMb3NlQ29udGV4dChjb250ZXh0KSk7CiB9CiAKLXZv
aWQgV2ViS2l0TG9zZUNvbnRleHQ6Omxvc2VDb250ZXh0KCkKK3ZvaWQgV2ViR0xFeHRMb3NlQ29u
dGV4dDo6bG9zZUNvbnRleHQoKQogewogICAgIG1fY29udGV4dC0+Zm9yY2VMb3N0Q29udGV4dChX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OlN5bnRoZXRpY0xvc3RDb250ZXh0KTsKIH0KIAotdm9pZCBX
ZWJLaXRMb3NlQ29udGV4dDo6cmVzdG9yZUNvbnRleHQoKQordm9pZCBXZWJHTEV4dExvc2VDb250
ZXh0OjpyZXN0b3JlQ29udGV4dCgpCiB7CiAgICAgbV9jb250ZXh0LT5mb3JjZVJlc3RvcmVDb250
ZXh0KCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dExvc2VD
b250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xF
eHRMb3NlQ29udGV4dC5oCShyZXZpc2lvbiAxMDAxOTUpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0Lmg6MTAwMTk1KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xFeHRMb3NlQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYktpdExvc2VDb250ZXh0X2gKKyNkZWZpbmUgV2Vi
S2l0TG9zZUNvbnRleHRfaAorCisjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKKyNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDsKKworY2xhc3MgV2ViS2l0TG9zZUNvbnRleHQgOiBwdWJsaWMgV2Vi
R0xFeHRlbnNpb24geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYktpdExvc2VD
b250ZXh0PiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CisKKyAgICB2aXJ0dWFsIH5X
ZWJLaXRMb3NlQ29udGV4dCgpOworICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkg
Y29uc3Q7CisKKyAgICB2b2lkIGxvc2VDb250ZXh0KCk7CisgICAgdm9pZCByZXN0b3JlQ29udGV4
dCgpOworCitwcml2YXRlOgorICAgIFdlYktpdExvc2VDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29u
dGV4dCopOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gV2ViS2l0
TG9zZUNvbnRleHRfaApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRM
b3NlQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMRXh0TG9zZUNvbnRleHQuaAkocmV2aXNpb24gMTAwMTk1KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xFeHRMb3NlQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMywx
OCArMzMsMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ7CiAKLWNsYXNzIFdlYktpdExvc2VDb250ZXh0IDogcHVibGljIFdlYkdMRXh0ZW5zaW9u
IHsKK2NsYXNzIFdlYkdMRXh0TG9zZUNvbnRleHQgOiBwdWJsaWMgV2ViR0xFeHRlbnNpb24gewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYktpdExvc2VDb250ZXh0PiBjcmVhdGUo
V2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CisgICAgc3RhdGljIFBhc3NPd25QdHI8V2ViR0xFeHRM
b3NlQ29udGV4dD4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwogCi0gICAgdmlydHVh
bCB+V2ViS2l0TG9zZUNvbnRleHQoKTsKKyAgICB2aXJ0dWFsIH5XZWJHTEV4dExvc2VDb250ZXh0
KCk7CiAgICAgdmlydHVhbCBFeHRlbnNpb25OYW1lIGdldE5hbWUoKSBjb25zdDsKIAogICAgIHZv
aWQgbG9zZUNvbnRleHQoKTsKICAgICB2b2lkIHJlc3RvcmVDb250ZXh0KCk7CiAKIHByaXZhdGU6
Ci0gICAgV2ViS2l0TG9zZUNvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CisgICAgV2Vi
R0xFeHRMb3NlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0
TG9zZUNvbnRleHQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMRXh0TG9zZUNvbnRleHQuaWRsCShyZXZpc2lvbiAxMDAxOTUpCShmcm9tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmlkbDoxMDAxOTUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dExvc2VDb250ZXh0LmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGh0bWwgeworICAgIGludGVyZmFj
ZSBbCisgICAgICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgICAgICBHZW5lcmF0ZUlzUmVhY2hh
YmxlPUltcGxDb250ZXh0LAorICAgICAgICBPbWl0Q29uc3RydWN0b3IKKyAgICBdIFdlYktpdExv
c2VDb250ZXh0IHsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCBsb3NlQ29udGV4
dCgpOworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHJlc3RvcmVDb250ZXh0KCk7
CisgICAgfTsKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0TG9z
ZUNvbnRleHQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMRXh0TG9zZUNvbnRleHQuaWRsCShyZXZpc2lvbiAxMDAxOTUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTEV4dExvc2VDb250ZXh0LmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MjgsNyArMjgsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIENvbmRpdGlvbmFsPVdFQkdMLAog
ICAgICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxDb250ZXh0LAogICAgICAgICBPbWl0Q29u
c3RydWN0b3IKLSAgICBdIFdlYktpdExvc2VDb250ZXh0IHsKKyAgICBdIFdlYkdMRXh0TG9zZUNv
bnRleHQgewogICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIGxvc2VDb250ZXh0KCk7
CiAgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgcmVzdG9yZUNvbnRleHQoKTsKICAg
ICB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250
ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuY3BwCShyZXZpc2lvbiAxMDA1MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01
OSwxMyArNTksMTMgQEAKICNpbmNsdWRlICJXZWJHTENvbnRleHRFdmVudC5oIgogI2luY2x1ZGUg
IldlYkdMRGVidWdSZW5kZXJlckluZm8uaCIKICNpbmNsdWRlICJXZWJHTERlYnVnU2hhZGVycy5o
IgorI2luY2x1ZGUgIldlYkdMRXh0TG9zZUNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJHTEZyYW1l
YnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiV2ViR0xSZW5k
ZXJidWZmZXIuaCIKICNpbmNsdWRlICJXZWJHTFNoYWRlci5oIgogI2luY2x1ZGUgIldlYkdMVGV4
dHVyZS5oIgogI2luY2x1ZGUgIldlYkdMVW5pZm9ybUxvY2F0aW9uLmgiCi0jaW5jbHVkZSAiV2Vi
S2l0TG9zZUNvbnRleHQuaCIKIAogI2luY2x1ZGUgPHd0Zi9CeXRlQXJyYXkuaD4KICNpbmNsdWRl
IDx3dGYvT3duQXJyYXlQdHIuaD4KQEAgLTIxMTMsMTAgKzIxMTMsMTAgQEAgV2ViR0xFeHRlbnNp
b24qIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6ZwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBt
X29lc1ZlcnRleEFycmF5T2JqZWN0LmdldCgpOwogICAgIH0KLSAgICBpZiAoZXF1YWxJZ25vcmlu
Z0Nhc2UobmFtZSwgIldFQktJVF9sb3NlX2NvbnRleHQiKSkgewotICAgICAgICBpZiAoIW1fd2Vi
a2l0TG9zZUNvbnRleHQpCi0gICAgICAgICAgICBtX3dlYmtpdExvc2VDb250ZXh0ID0gV2ViS2l0
TG9zZUNvbnRleHQ6OmNyZWF0ZSh0aGlzKTsKLSAgICAgICAgcmV0dXJuIG1fd2Via2l0TG9zZUNv
bnRleHQuZ2V0KCk7CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJXRUJHTF9FWFRf
bG9zZV9jb250ZXh0IikpIHsKKyAgICAgICAgaWYgKCFtX3dlYmdsRXh0TG9zZUNvbnRleHQpCisg
ICAgICAgICAgICBtX3dlYmdsRXh0TG9zZUNvbnRleHQgPSBXZWJHTEV4dExvc2VDb250ZXh0Ojpj
cmVhdGUodGhpcyk7CisgICAgICAgIHJldHVybiBtX3dlYmdsRXh0TG9zZUNvbnRleHQuZ2V0KCk7
CiAgICAgfQogCiAgICAgaWYgKGFsbG93UHJpdmlsZWdlZEV4dGVuc2lvbnMoKSkgewpJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0
LmgJKHJldmlzaW9uIDEwMDUzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
UmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Miw3ICs2Miw3IEBAIGNsYXNz
IFdlYkdMU2hhZGVyOwogY2xhc3MgV2ViR0xUZXh0dXJlOwogY2xhc3MgV2ViR0xVbmlmb3JtTG9j
YXRpb247CiBjbGFzcyBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTOwotY2xhc3MgV2ViS2l0TG9z
ZUNvbnRleHQ7CitjbGFzcyBXZWJHTEV4dExvc2VDb250ZXh0OwogCiB0eXBlZGVmIGludCBFeGNl
cHRpb25Db2RlOwogCkBAIC00ODIsNyArNDgyLDcgQEAgcHVibGljOgogICAgIE93blB0cjxPRVNU
ZXh0dXJlRmxvYXQ+IG1fb2VzVGV4dHVyZUZsb2F0OwogICAgIE93blB0cjxPRVNTdGFuZGFyZERl
cml2YXRpdmVzPiBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXM7CiAgICAgT3duUHRyPE9FU1ZlcnRl
eEFycmF5T2JqZWN0PiBtX29lc1ZlcnRleEFycmF5T2JqZWN0OwotICAgIE93blB0cjxXZWJLaXRM
b3NlQ29udGV4dD4gbV93ZWJraXRMb3NlQ29udGV4dDsKKyAgICBPd25QdHI8V2ViR0xFeHRMb3Nl
Q29udGV4dD4gbV93ZWJnbEV4dExvc2VDb250ZXh0OwogICAgIE93blB0cjxXZWJHTERlYnVnUmVu
ZGVyZXJJbmZvPiBtX3dlYmdsRGVidWdSZW5kZXJlckluZm87CiAgICAgT3duUHRyPFdlYkdMRGVi
dWdTaGFkZXJzPiBtX3dlYmdsRGVidWdTaGFkZXJzOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQuY3BwCShyZXZpc2lvbiAxMDA1Mzgp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNjcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0g
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LQotI2lmIEVOQUJMRShXRUJHTCkKLQotI2luY2x1ZGUgIldlYktpdExvc2VDb250ZXh0LmgiCi0K
LSNpbmNsdWRlICJXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1XZWJLaXRMb3NlQ29udGV4dDo6V2ViS2l0TG9zZUNvbnRleHQoV2ViR0xSZW5kZXJpbmdD
b250ZXh0KiBjb250ZXh0KQotICAgIDogV2ViR0xFeHRlbnNpb24oY29udGV4dCkKLXsKLX0KLQot
V2ViS2l0TG9zZUNvbnRleHQ6On5XZWJLaXRMb3NlQ29udGV4dCgpCi17Ci19Ci0KLVdlYkdMRXh0
ZW5zaW9uOjpFeHRlbnNpb25OYW1lIFdlYktpdExvc2VDb250ZXh0OjpnZXROYW1lKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gV2ViS2l0TG9zZUNvbnRleHROYW1lOwotfQotCi1QYXNzT3duUHRyPFdl
YktpdExvc2VDb250ZXh0PiBXZWJLaXRMb3NlQ29udGV4dDo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5n
Q29udGV4dCogY29udGV4dCkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdlYktpdExvc2VD
b250ZXh0KGNvbnRleHQpKTsKLX0KLQotdm9pZCBXZWJLaXRMb3NlQ29udGV4dDo6bG9zZUNvbnRl
eHQoKQotewotICAgIG1fY29udGV4dC0+Zm9yY2VMb3N0Q29udGV4dChXZWJHTFJlbmRlcmluZ0Nv
bnRleHQ6OlN5bnRoZXRpY0xvc3RDb250ZXh0KTsKLX0KLQotdm9pZCBXZWJLaXRMb3NlQ29udGV4
dDo6cmVzdG9yZUNvbnRleHQoKQotewotICAgIG1fY29udGV4dC0+Zm9yY2VSZXN0b3JlQ29udGV4
dCgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoV0VC
R0wpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250
ZXh0LmgJKHJldmlzaW9uIDEwMDUzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YktpdExvc2VDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNTIgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
Ci0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgV2ViS2l0TG9zZUNvbnRleHRfaAotI2RlZmluZSBXZWJLaXRMb3NlQ29udGV4dF9o
Ci0KLSNpbmNsdWRlICJXZWJHTEV4dGVuc2lvbi5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgV2ViR0xSZW5kZXJpbmdDb250ZXh0
OwotCi1jbGFzcyBXZWJLaXRMb3NlQ29udGV4dCA6IHB1YmxpYyBXZWJHTEV4dGVuc2lvbiB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8V2ViS2l0TG9zZUNvbnRleHQ+IGNyZWF0ZShX
ZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKLQotICAgIHZpcnR1YWwgfldlYktpdExvc2VDb250ZXh0
KCk7Ci0gICAgdmlydHVhbCBFeHRlbnNpb25OYW1lIGdldE5hbWUoKSBjb25zdDsKLQotICAgIHZv
aWQgbG9zZUNvbnRleHQoKTsKLSAgICB2b2lkIHJlc3RvcmVDb250ZXh0KCk7Ci0KLXByaXZhdGU6
Ci0gICAgV2ViS2l0TG9zZUNvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBXZWJLaXRMb3NlQ29udGV4dF9oCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQu
aWRsCShyZXZpc2lvbiAxMDA1MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJL
aXRMb3NlQ29udGV4dC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
Ci0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LW1vZHVsZSBodG1sIHsKLSAgICBpbnRlcmZhY2UgWwotICAgICAgICBDb25kaXRpb25hbD1XRUJH
TCwKLSAgICAgICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBsQ29udGV4dCwKLSAgICAgICAgT21p
dENvbnN0cnVjdG9yCi0gICAgXSBXZWJLaXRMb3NlQ29udGV4dCB7Ci0gICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIHZvaWQgbG9zZUNvbnRleHQoKTsKLSAgICAgICAgW1N0cmljdFR5cGVDaGVj
a2luZ10gdm9pZCByZXN0b3JlQ29udGV4dCgpOwotICAgIH07Ci19CkluZGV4OiBUb29scy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDA1NDIpCisr
KyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0x
MS0xNiAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVuYW1l
IFdFQktJVF9sb3NlX2NvbnRleHQgdG8gV0VCR0xfRVhUX2xvc2VfY29udGV4dAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE4NzAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvZG8td2ViY29y
ZS1yZW5hbWU6CisKIDIwMTEtMTEtMTYgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIEVuYWJsZSB2aWRlbyBhbmQgY2FudmFzIDJkIGNv
bXBvc2l0aW5nIHRyaWdnZXJzIGJ5IGRlZmF1bHQgZm9yIGxheW91dCB0ZXN0cyBpbiB0aGUgY29t
cG9zaXRpbmcgZGlyZWN0b3J5CkluZGV4OiBUb29scy9TY3JpcHRzL2RvLXdlYmNvcmUtcmVuYW1l
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvZG8td2ViY29yZS1yZW5hbWUJKHJldmlzaW9u
IDEwMDUzOCkKKysrIFRvb2xzL1NjcmlwdHMvZG8td2ViY29yZS1yZW5hbWUJKHdvcmtpbmcgY29w
eSkKQEAgLTk3LDcgKzk3LDcgQEAgc3ViIHdhbnRlZAogbXkgJGlzRE9NVHlwZVJlbmFtZSA9IDA7
CiBteSAlcmVuYW1lcyA9ICgKICAgICAjIFJlbmFtZXMgZ28gaGVyZSBpbiB0aGUgZm9ybSBvZjoK
LSAgICAiTWVkaWFDb250cm9scyIgPT4gIk1lZGlhQ29udHJvbFJvb3RFbGVtZW50IiwKKyAgICAi
V2ViS2l0TG9zZUNvbnRleHQiID0+ICJXZWJHTEV4dExvc2VDb250ZXh0IiwKICk7CiAKIG15ICVy
ZW5hbWVzQ29udGVtcGxhdGVkRm9yVGhlRnV0dXJlID0gKApJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTAw
NTQyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTEtMTEtMTYgIEtlbm5ldGggUnVzc2VsbCAgPGtickBnb29nbGUuY29tPgorCisg
ICAgICAgIFJlbmFtZSBXRUJLSVRfbG9zZV9jb250ZXh0IHRvIFdFQkdMX0VYVF9sb3NlX2NvbnRl
eHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxODcw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0
L2NhbnZhcy93ZWJnbC9XZWJHTENvbnRleHRFdmVudC5odG1sOgorICAgICAgICAqIGZhc3QvY2Fu
dmFzL3dlYmdsL2NvbnRleHQtZGVzdHJveWVkLWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9j
YW52YXMvd2ViZ2wvY29udGV4dC1sb3N0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nh
bnZhcy93ZWJnbC9jb250ZXh0LWxvc3QtcmVzdG9yZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nh
bnZhcy93ZWJnbC9jb250ZXh0LWxvc3QuaHRtbDoKKwogMjAxMS0xMS0xNiAgTWljaGFlbCBOb3Jk
bWFuICA8bWljaGFlbG5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBBcHBsaWNhdGlvbkNhY2hlIG1h
bmlmZXN0IHNob3VsZCB3b3JrIHdpdGggYW55IE1JTUUgdHlwZS4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL1dlYkdMQ29udGV4dEV2ZW50Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvV2ViR0xDb250ZXh0RXZlbnQuaHRtbAkocmV2
aXNpb24gMTAwNTM4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvV2ViR0xDb250
ZXh0RXZlbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTcsOSArMTcsOSBAQCBmdW5jdGlvbiBj
cmVhdGVOZXdDYW52YXMoKQogICAgIGNhbnZhcy5oZWlnaHQgPSAxOwogCiAgICAgY29udGV4dCA9
IFdlYkdMVGVzdFV0aWxzLmNyZWF0ZTNEQ29udGV4dChjYW52YXMpOwotICAgIGV4dGVuc2lvbiA9
IGNvbnRleHQuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfbG9zZV9jb250ZXh0Iik7CisgICAgZXh0ZW5z
aW9uID0gY29udGV4dC5nZXRFeHRlbnNpb24oIldFQkdMX0VYVF9sb3NlX2NvbnRleHQiKTsKICAg
ICBpZiAoIWV4dGVuc2lvbikgewotICAgICAgICBkZWJ1ZygiQ291bGQgbm90IGZpbmQgdGhlIFdF
QktJVF9sb3NlX2NvbnRleHQgZXh0ZW5zaW9uLiIpOworICAgICAgICBkZWJ1ZygiQ291bGQgbm90
IGZpbmQgdGhlIFdFQkdMX0VYVF9sb3NlX2NvbnRleHQgZXh0ZW5zaW9uLiIpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY29u
dGV4dC1kZXN0cm95ZWQtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy93ZWJnbC9jb250ZXh0LWRlc3Ryb3llZC1jcmFzaC5odG1sCShyZXZpc2lvbiAxMDA1
MzgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWRlc3Ryb3llZC1j
cmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw3ICsyMiw3IEBAIHdpbmRvdy5vbmxvYWQg
PSBmdW5jdGlvbigpCiB7CiAgICAgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2Fu
dmFzIik7CiAgICAgY29udGV4dCA9IGNyZWF0ZTNEQ29udGV4dChjYW52YXMpOwotICAgIGV4dGVu
c2lvbiA9IGNvbnRleHQuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfbG9zZV9jb250ZXh0Iik7CisgICAg
ZXh0ZW5zaW9uID0gY29udGV4dC5nZXRFeHRlbnNpb24oIldFQkdMX0VYVF9sb3NlX2NvbnRleHQi
KTsKICAgICAKICAgICBjYW52YXMgPSBudWxsOwogICAgIGNvbnRleHQgPSBudWxsOwpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1sb3N0LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWxvc3Qt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMDA1MzgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy93ZWJnbC9jb250ZXh0LWxvc3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xNjgs
NyArMTY4LDcgQEAgUEFTUyBnbC5nZXRVbmlmb3JtKHByb2dyYW0sIHVuaWZvcm1Mb2NhdAogUEFT
UyBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgJ3ZQb3NpdGlvbicpIGlzIG51bGwKIFBB
U1MgZ2wuZ2V0VmVydGV4QXR0cmliKDAsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJ
TkRJTkcpIGlzIG51bGwKIFBBU1MgZ2wuZ2V0U3VwcG9ydGVkRXh0ZW5zaW9ucygpIGlzIG51bGwK
LVBBU1MgZ2wuZ2V0RXh0ZW5zaW9uKCdXRUJLSVRfbG9zZV9jb250ZXh0JykgaXMgbnVsbAorUEFT
UyBnbC5nZXRFeHRlbnNpb24oJ1dFQkdMX0VYVF9sb3NlX2NvbnRleHQnKSBpcyBudWxsCiBQQVNT
IGdsLmlzQnVmZmVyKGJ1ZmZlcikgaXMgZmFsc2UKIFBBU1MgZ2wuaXNFbmFibGVkKGdsLkJMRU5E
KSBpcyBmYWxzZQogUEFTUyBnbC5pc0ZyYW1lYnVmZmVyKGZyYW1lYnVmZmVyKSBpcyBmYWxzZQpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1sb3N0LXJlc3RvcmVk
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4
dC1sb3N0LXJlc3RvcmVkLmh0bWwJKHJldmlzaW9uIDEwMDUzOCkKKysrIExheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL2NvbnRleHQtbG9zdC1yZXN0b3JlZC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC04LDcgKzgsNyBAQCB2YXIgd3R1ID0gV2ViR0xUZXN0VXRpbHM7CiB2YXIgY2FudmFzOwog
dmFyIGdsOwogdmFyIHNob3VsZEdlbmVyYXRlR0xFcnJvcjsKLXZhciBleHRlbnNpb25fbmFtZSA9
ICJXRUJLSVRfbG9zZV9jb250ZXh0IjsKK3ZhciBleHRlbnNpb25fbmFtZSA9ICJXRUJHTF9FWFRf
bG9zZV9jb250ZXh0IjsKIHZhciBleHRlbnNpb247CiB2YXIgYnVmZmVyT2JqZWN0czsKIHZhciBw
cm9ncmFtOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1sb3N0
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4
dC1sb3N0Lmh0bWwJKHJldmlzaW9uIDEwMDUzOCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL2NvbnRleHQtbG9zdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsNyBAQCB2
YXIgd3R1OwogdmFyIGNhbnZhczsKIHZhciBnbDsKIHZhciBzaG91bGRHZW5lcmF0ZUdMRXJyb3I7
Ci12YXIgZXh0ZW5zaW9uX25hbWUgPSAiV0VCS0lUX2xvc2VfY29udGV4dCI7Cit2YXIgZXh0ZW5z
aW9uX25hbWUgPSAiV0VCR0xfRVhUX2xvc2VfY29udGV4dCI7CiB2YXIgZXh0ZW5zaW9uOwogCiB2
YXIgYnVmZmVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115500</attachid>
            <date>2011-11-16 18:08:12 -0800</date>
            <delta_ts>2011-11-16 18:28:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71870-20111116180811.patch</filename>
            <type>text/plain</type>
            <size>40195</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDU0MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDExLTExLTE2ICBLZW5uZXRo
IFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZW5hbWUgV0VCS0lUX2xvc2Vf
Y29udGV4dCB0byBXRUJHTF9FWFRfbG9zZV9jb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTg3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBsYXJnZWx5IGRvbmUgd2l0aCBkby13ZWJj
b3JlLXJlbmFtZSB3aXRoIGEgY291cGxlIG9mCisgICAgICAgIG5lY2Vzc2FyeSBtYW51YWwgZml4
dXBzLiBSYW4gV2ViR0wgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQu
cHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICog
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRvVjhPYmplY3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdM
RXh0TG9zZUNvbnRleHQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJLaXRMb3NlQ29udGV4dC5jcHAuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTEV4dExvc2VD
b250ZXh0OjpXZWJHTEV4dExvc2VDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRXh0
TG9zZUNvbnRleHQ6On5XZWJHTEV4dExvc2VDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMRXh0TG9zZUNvbnRleHQ6OmdldE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xFeHRM
b3NlQ29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRXh0TG9zZUNvbnRl
eHQ6Omxvc2VDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRXh0TG9zZUNvbnRleHQ6
OnJlc3RvcmVDb250ZXh0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEV4dExvc2VDb250
ZXh0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VD
b250ZXh0LmguCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xFeHRMb3NlQ29udGV4dC5pZGw6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0
LmlkbC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24pOgor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5oOiBSZW1vdmVkLgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYktpdExvc2VDb250ZXh0LmlkbDogUmVtb3ZlZC4KKwogMjAxMS0xMS0xNiAgTWlj
aGFlbCBOb3JkbWFuICA8bWljaGFlbG5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBBcHBsaWNhdGlv
bkNhY2hlIG1hbmlmZXN0IHNob3VsZCB3b3JrIHdpdGggYW55IE1JTUUgdHlwZS4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMDA1MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjE1Myw3ICsyMTUzLDcgQEAgSUYgKEVOQUJM
RV9XRUJHTCkKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAK
ICAgICAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmNwcAogICAgICAgICBodG1sL2Nh
bnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKLSAgICAgICAgaHRtbC9jYW52YXMvV2ViS2l0
TG9zZUNvbnRleHQuY3BwCisgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRXh0TG9zZUNvbnRleHQu
Y3BwCiAKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCiAg
ICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcApAQCAtMjE3OCw3
ICsyMTc4LDcgQEAgSUYgKEVOQUJMRV9XRUJHTCkKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xU
ZXh0dXJlLmlkbAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5pZGwK
ICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5pZGwKLSAgICAg
ICAgaHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQuaWRsCisgICAgICAgIGh0bWwvY2FudmFz
L1dlYkdMRXh0TG9zZUNvbnRleHQuaWRsCiAgICAgKQogRU5ESUYgKCkKIApJbmRleDogU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAxMDA1MzgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC01NDYsNyArNTQ2LDcgQEAg
RE9NX0NMQVNTRVMgPSBcCiAgICAgV2ViS2l0Q1NTTWF0cml4IFwKICAgICBXZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZSBcCiAgICAgV2ViS2l0RmxhZ3MgXAotICAgIFdlYktpdExvc2VDb250ZXh0IFwK
KyAgICBXZWJHTEV4dExvc2VDb250ZXh0IFwKICAgICBXZWJLaXRNdXRhdGlvbk9ic2VydmVyIFwK
ICAgICBXZWJLaXRQb2ludCBcCiAgICAgV2ViS2l0VHJhbnNpdGlvbkV2ZW50IFwKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5wcmkJKHJldmlzaW9uIDEwMDUzOCkKKysrIFNvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLnByaQkod29ya2luZyBjb3B5KQpAQCAtMjMyLDcgKzIzMiw3IEBA
IElETF9CSU5ESU5HUyArPSBcCiAgICAgaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlkbCBcCiAg
ICAgaHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uaWRsIFwKICAgICBodG1sL2NhbnZh
cy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbCBcCi0gICAgaHRtbC9jYW52YXMvV2ViS2l0
TG9zZUNvbnRleHQuaWRsIFwKKyAgICBodG1sL2NhbnZhcy9XZWJHTEV4dExvc2VDb250ZXh0Lmlk
bCBcCiAgICAgaHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwgXAogICAgIGh0bWwvY2FudmFzL1Vp
bnQzMkFycmF5LmlkbCBcCiAgICAgaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsIFwKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTAwNTM4KQorKysgU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtNTAxNCw4ICs1
MDE0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9PRVNUZXh0dXJlRmxvYXQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVy
dGV4QXJyYXlPYmplY3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0
ZXhBcnJheU9iamVjdC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJLaXRMb3Nl
Q29udGV4dC5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250
ZXh0LmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0TG9zZUNvbnRleHQu
Y3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dExvc2VDb250ZXh0Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2Uu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0M0RDYWlyby5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAxMDA1MzgpCisrKyBT
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0zNjQ2LDcgKzM2NDYs
NyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0VCR0w9MSkgewogICAgICAgICBodG1sL2Nh
bnZhcy9XZWJHTFRleHR1cmUuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxv
Y2F0aW9uLmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
LmggXAotICAgICAgICBodG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5oIFwKKyAgICAgICAg
aHRtbC9jYW52YXMvV2ViR0xFeHRMb3NlQ29udGV4dC5oIFwKICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0V4
dGVuc2lvbnMzRC5oIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuaCBcCkBAIC0zNjc5LDcgKzM2NzksNyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0VC
R0w9MSkgewogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuY3BwIFwKICAgICAgICAg
aHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uY3BwIFwKICAgICAgICAgaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAgXAotICAgICAgICBodG1sL2NhbnZhcy9X
ZWJLaXRMb3NlQ29udGV4dC5jcHAgXAorICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEV4dExvc2VD
b250ZXh0LmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdl
LmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcCBc
CiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5nQnVmZmVyLmNwcCBcCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxMDA1MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTEzNzIsNyArMTM3Miw3IEBACiAgICAgICAgICAg
ICAnaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52
YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9X
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbCcsCi0gICAgICAgICAgICAnaHRtbC9jYW52YXMv
V2ViS2l0TG9zZUNvbnRleHQuaWRsJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEV4
dExvc2VDb250ZXh0LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0
LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC90cmFjay9UcmFja0V2ZW50LmlkbCcsCiAgICAgICAg
ICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwnLApAQCAtNTc0MCw4ICs1NzQw
LDggQEAKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5oJywK
ICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcCcs
CiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oJywK
LSAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5jcHAnLAotICAgICAg
ICAgICAgJ2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmgnLAorICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL1dlYkdMRXh0TG9zZUNvbnRleHQuY3BwJywKKyAgICAgICAgICAgICdodG1sL2Nh
bnZhcy9XZWJHTEV4dExvc2VDb250ZXh0LmgnLAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL0NT
U1ByZWxvYWRTY2FubmVyLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIvQ1NTUHJlbG9h
ZFNjYW5uZXIuaCcsCiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNp
dGUuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDEwMDUzOCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzE5Niw4ICsz
MTk2LDggQEAKIAkJOTNGMTlCMTUwODI0NUU1OTAwMUU5QUJDIC8qIENvY29hLmZyYW1ld29yayBp
biBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzI4Njk1
MDI4NDZEQ0QwMTg2MzVDQSAvKiBDb2NvYS5mcmFtZXdvcmsgKi87IH07CiAJCTkzRjE5QjE2MDgy
NDVFNTkwMDFFOUFCQyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGODIxNjI5OTAyOUY0RkI1MDEwMDAx
MzEgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovOyB9OwogCQk5M0YxOUIxNzA4MjQ1RTU5
MDAxRTlBQkMgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjFEMzFBMDU1OENDNUMwMDgyMUJDMCAvKiBsaWJpY3Vj
b3JlLmR5bGliICovOyB9OwotCQk5M0YxRDVCQTEyRDUzMkM0MDA4MzJCRUMgLyogV2ViS2l0TG9z
ZUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNGMUQ1QjcxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0LmNwcCAqLzsg
fTsKLQkJOTNGMUQ1QkIxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YxRDVCODEyRDUz
MkM0MDA4MzJCRUMgLyogV2ViS2l0TG9zZUNvbnRleHQuaCAqLzsgfTsKKwkJOTNGMUQ1QkExMkQ1
MzJDNDAwODMyQkVDIC8qIFdlYkdMRXh0TG9zZUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1QjcxMkQ1MzJDNDAwODMyQkVDIC8q
IFdlYkdMRXh0TG9zZUNvbnRleHQuY3BwICovOyB9OworCQk5M0YxRDVCQjEyRDUzMkM0MDA4MzJC
RUMgLyogV2ViR0xFeHRMb3NlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1QjgxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMRXh0TG9z
ZUNvbnRleHQuaCAqLzsgfTsKIAkJOTNGMUQ1QzAxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViS2l0
TG9zZUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNGMUQ1QkUxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViS2l0TG9zZUNvbnRleHQuY3Bw
ICovOyB9OwogCQk5M0YxRDVDMTEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJLaXRMb3NlQ29udGV4
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1
QkYxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViS2l0TG9zZUNvbnRleHQuaCAqLzsgfTsKIAkJOTNG
NkYxRUQxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjZGMUVBMTI3RjcwQjEwMDU1
Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5jcHAgKi87IH07CkBAIC0xMDM4Myw5ICsxMDM4Myw5
IEBACiAJCTkzRjE5QjE5MDgyNDVFNTkwMDFFOUFCQyAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk5M0YxOUIxQTA4MjQ1RTVBMDAxRTlB
QkMgLyogV2ViQ29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhw
bGljaXRGaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBh
dGggPSBXZWJDb3JlLmZyYW1ld29yazsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKIAkJOTNGMUQzMUEwNTU4Q0M1QzAwODIxQkMwIC8qIGxpYmljdWNvcmUuZHlsaWIgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29tcGlsZWQubWFj
aC1vLmR5bGliIjsgbmFtZSA9IGxpYmljdWNvcmUuZHlsaWI7IHBhdGggPSAvdXNyL2xpYi9saWJp
Y3Vjb3JlLmR5bGliOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwotCQk5M0YxRDVCNzEy
RDUzMkM0MDA4MzJCRUMgLyogV2ViS2l0TG9zZUNvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gV2ViS2l0TG9zZUNvbnRleHQuY3BwOyBwYXRoID0gY2FudmFz
L1dlYktpdExvc2VDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNG
MUQ1QjgxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYktpdExvc2VDb250ZXh0Lmg7IHBhdGggPSBjYW52YXMv
V2ViS2l0TG9zZUNvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNGMUQ1
QjkxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IG5hbWUgPSBXZWJLaXRMb3NlQ29udGV4dC5pZGw7IHBhdGggPSBjYW52YXMvV2ViS2l0TG9z
ZUNvbnRleHQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0YxRDVCNzEyRDUz
MkM0MDA4MzJCRUMgLyogV2ViR0xFeHRMb3NlQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJHTEV4dExvc2VDb250ZXh0LmNwcDsgcGF0aCA9IGNhbnZh
cy9XZWJHTEV4dExvc2VDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTNGMUQ1QjgxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMRXh0TG9zZUNvbnRleHQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViR0xFeHRMb3NlQ29udGV4dC5oOyBwYXRoID0g
Y2FudmFzL1dlYkdMRXh0TG9zZUNvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTNGMUQ1QjkxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMRXh0TG9zZUNvbnRleHQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYkdMRXh0TG9zZUNvbnRleHQuaWRsOyBwYXRoID0gY2Fu
dmFzL1dlYkdMRXh0TG9zZUNvbnRleHQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5M0YxRDVCRTEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJLaXRMb3NlQ29udGV4dC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdExvc2VDb250ZXh0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGMUQ1QkYxMkQ1MzM1NjAwODMyQkVD
IC8qIEpTV2ViS2l0TG9zZUNvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNXZWJLaXRMb3NlQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
M0Y2RjFFQTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViR0xDb250ZXh0RXZlbnQuY3BwOyBwYXRo
ID0gY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE0OTczLDkgKzE0OTczLDkgQEAKIAkJCQk3N0ExN0E3NDEyRjI4NjQyMDA0RTAyRjYg
LyogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAgKi8sCiAJCQkJNzdBMTdBNzUxMkYyODY0
MjAwNEUwMkY2IC8qIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCAqLywKIAkJCQk3N0ExN0E3
NjEyRjI4NjQyMDA0RTAyRjYgLyogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5pZGwgKi8sCi0J
CQkJOTNGMUQ1QjcxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0LmNwcCAqLywK
LQkJCQk5M0YxRDVCODEyRDUzMkM0MDA4MzJCRUMgLyogV2ViS2l0TG9zZUNvbnRleHQuaCAqLywK
LQkJCQk5M0YxRDVCOTEyRDUzMkM0MDA4MzJCRUMgLyogV2ViS2l0TG9zZUNvbnRleHQuaWRsICov
LAorCQkJCTkzRjFENUI3MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTEV4dExvc2VDb250ZXh0LmNw
cCAqLywKKwkJCQk5M0YxRDVCODEyRDUzMkM0MDA4MzJCRUMgLyogV2ViR0xFeHRMb3NlQ29udGV4
dC5oICovLAorCQkJCTkzRjFENUI5MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTEV4dExvc2VDb250
ZXh0LmlkbCAqLywKIAkJCSk7CiAJCQluYW1lID0gY2FudmFzOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKQEAgLTI0NTU2LDcgKzI0NTU2LDcgQEAKIAkJCQk0OTgzOTE1OTBGMUU3NzY5MDBD
MjM3ODIgLyogV2ViS2l0Q1NTTWF0cml4LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzlBREQyMzBD
QzQwMzI2MDAwOThDNEMgLyogV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg5ODc4NTY2MTIyQ0EwNjQwMDNBQUJEQSAvKiBXZWJLaXRGbGFncy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJOTNGMUQ1QkIxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0YxRDVCQjEyRDUzMkM0MDA4MzJCRUMgLyogV2ViR0xF
eHRMb3NlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzZGMDkwMEYxNDMyN0I2MTAwNjg1
ODQ5IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5NEJE
Nzk1MEY1NUM4RUUwMDc0NzgyOCAvKiBXZWJLaXRQb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzFDMEZGMjUwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNzQ0MSw3ICsyNzQ0MSw3IEBACiAJCQkJMzEyODhFNzQwRTMwMDVENjAw
MzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDk4MzkxNTgwRjFFNzc2OTAwQzIzNzgyIC8qIFdlYktpdENTU01hdHJpeC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzlBREQ4MDBDQzQwOTIyMDAwOThDNEMgLyogV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTNGMUQ1QkExMkQ1MzJDNDAwODMyQkVDIC8q
IFdlYktpdExvc2VDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkzRjFENUJBMTJENTMy
QzQwMDgzMkJFQyAvKiBXZWJHTEV4dExvc2VDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUM2RjA5MDBFMTQzMjdCNjEwMDY4NTg0OSAvKiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTMxQzBGRjI0MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFu
c2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDRjMzMkUwRjJCOUEyNTAwNEI2
Nzk1IC8qIFdlYkxheWVyLm1tIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0
b20uY3BwCShyZXZpc2lvbiAxMDA1MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYg
KzQ0LDcgQEAKICNpbmNsdWRlICJKU09FU1ZlcnRleEFycmF5T2JqZWN0LmgiCiAjaW5jbHVkZSAi
SlNVaW50OEFycmF5LmgiCiAjaW5jbHVkZSAiSlNXZWJHTEJ1ZmZlci5oIgorI2luY2x1ZGUgIkpT
V2ViR0xFeHRMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIkpTV2ViR0xGcmFtZWJ1ZmZlci5oIgog
I2luY2x1ZGUgIkpTV2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiSlNXZWJHTFJlbmRlcmJ1ZmZl
ci5oIgpAQCAtNTIsNyArNTMsNiBAQAogI2luY2x1ZGUgIkpTV2ViR0xVbmlmb3JtTG9jYXRpb24u
aCIKICNpbmNsdWRlICJKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKICNpbmNsdWRlICJK
U1dlYktpdENTU01hdHJpeC5oIgotI2luY2x1ZGUgIkpTV2ViS2l0TG9zZUNvbnRleHQuaCIKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIk9FU1N0YW5kYXJkRGVyaXZhdGl2
ZXMuaCIKICNpbmNsdWRlICJPRVNUZXh0dXJlRmxvYXQuaCIKQEAgLTYwLDEzICs2MCwxMyBAQAog
I2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xEZWJ1Z1JlbmRlcmVySW5m
by5oIgogI2luY2x1ZGUgIldlYkdMRGVidWdTaGFkZXJzLmgiCisjaW5jbHVkZSAiV2ViR0xFeHRM
b3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiV2Vi
R0xGcmFtZWJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMR2V0SW5mby5oIgogI2luY2x1ZGUgIldl
YkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1
ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKLSNpbmNsdWRlICJXZWJLaXRMb3NlQ29u
dGV4dC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRlIDxydW50aW1lL0pT
QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgpAQCAtMTgyLDcgKzE4Miw3IEBA
IHN0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0QKICAgICAgICAgcmV0dXJu
IGpzTnVsbCgpOwogICAgIHN3aXRjaCAoZXh0ZW5zaW9uLT5nZXROYW1lKCkpIHsKICAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpXZWJLaXRMb3NlQ29udGV4dE5hbWU6Ci0gICAgICAgIHJldHVybiB0
b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViS2l0TG9zZUNvbnRleHQqPihl
eHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0
aWNfY2FzdDxXZWJHTEV4dExvc2VDb250ZXh0Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJH
TEV4dGVuc2lvbjo6T0VTU3RhbmRhcmREZXJpdmF0aXZlc05hbWU6CiAgICAgICAgIHJldHVybiB0
b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTU3RhbmRhcmREZXJpdmF0aXZl
cyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1RleHR1cmVGbG9h
dE5hbWU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJl
bmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHJldmlz
aW9uIDEwMDUzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdM
UmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDYg
QEAKICNpbmNsdWRlICJWOEFycmF5QnVmZmVyVmlldy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5o
IgogI2luY2x1ZGUgIlY4QmluZGluZ01hY3Jvcy5oIgotI2luY2x1ZGUgIlY4V2ViS2l0TG9zZUNv
bnRleHQuaCIKICNpbmNsdWRlICJWOEZsb2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIlY4SFRNTENh
bnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJWOEhUTUxJbWFnZUVsZW1lbnQuaCIKQEAgLTU4LDYg
KzU3LDcgQEAKICNpbmNsdWRlICJWOFdlYkdMQnVmZmVyLmgiCiAjaW5jbHVkZSAiVjhXZWJHTERl
YnVnUmVuZGVyZXJJbmZvLmgiCiAjaW5jbHVkZSAiVjhXZWJHTERlYnVnU2hhZGVycy5oIgorI2lu
Y2x1ZGUgIlY4V2ViR0xFeHRMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4V2ViR0xGcmFtZWJ1
ZmZlci5oIgogI2luY2x1ZGUgIlY4V2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiVjhXZWJHTFJl
bmRlcmJ1ZmZlci5oIgpAQCAtMTY5LDcgKzE2OSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gdG9WOE9iamVjdCgKICAgICBjb25zdCBjaGFyKiByZWZlcmVuY2VOYW1lID0gMDsKICAg
ICBzd2l0Y2ggKGV4dGVuc2lvbi0+Z2V0TmFtZSgpKSB7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lv
bjo6V2ViS2l0TG9zZUNvbnRleHROYW1lOgotICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4
KHN0YXRpY19jYXN0PFdlYktpdExvc2VDb250ZXh0Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIGV4
dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xFeHRMb3NlQ29udGV4dCo+KGV4
dGVuc2lvbikpOwogICAgICAgICByZWZlcmVuY2VOYW1lID0gIndlYktpdExvc2VDb250ZXh0TmFt
ZSI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1N0YW5kYXJk
RGVyaXZhdGl2ZXNOYW1lOgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xF
eHRMb3NlQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xFeHRMb3NlQ29udGV4dC5jcHAJKHJldmlzaW9uIDEwMDE5NSkJKGZyb20gU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQuY3BwOjEwMDE5NSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0TG9zZUNvbnRleHQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
ZiBFTkFCTEUoV0VCR0wpCisKKyNpbmNsdWRlICJXZWJLaXRMb3NlQ29udGV4dC5oIgorCisjaW5j
bHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
V2ViS2l0TG9zZUNvbnRleHQ6OldlYktpdExvc2VDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4
dCogY29udGV4dCkKKyAgICA6IFdlYkdMRXh0ZW5zaW9uKGNvbnRleHQpCit7Cit9CisKK1dlYktp
dExvc2VDb250ZXh0Ojp+V2ViS2l0TG9zZUNvbnRleHQoKQoreworfQorCitXZWJHTEV4dGVuc2lv
bjo6RXh0ZW5zaW9uTmFtZSBXZWJLaXRMb3NlQ29udGV4dDo6Z2V0TmFtZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIFdlYktpdExvc2VDb250ZXh0TmFtZTsKK30KKworUGFzc093blB0cjxXZWJLaXRM
b3NlQ29udGV4dD4gV2ViS2l0TG9zZUNvbnRleHQ6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRl
eHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJLaXRMb3NlQ29udGV4
dChjb250ZXh0KSk7Cit9CisKK3ZvaWQgV2ViS2l0TG9zZUNvbnRleHQ6Omxvc2VDb250ZXh0KCkK
K3sKKyAgICBtX2NvbnRleHQtPmZvcmNlTG9zdENvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpTeW50aGV0aWNMb3N0Q29udGV4dCk7Cit9CisKK3ZvaWQgV2ViS2l0TG9zZUNvbnRleHQ6OnJl
c3RvcmVDb250ZXh0KCkKK3sKKyAgICBtX2NvbnRleHQtPmZvcmNlUmVzdG9yZUNvbnRleHQoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRMb3NlQ29udGV4dC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRMb3NlQ29u
dGV4dC5jcHAJKHJldmlzaW9uIDEwMDE5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMRXh0TG9zZUNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNywzNyArMjcsMzcg
QEAKIAogI2lmIEVOQUJMRShXRUJHTCkKIAotI2luY2x1ZGUgIldlYktpdExvc2VDb250ZXh0Lmgi
CisjaW5jbHVkZSAiV2ViR0xFeHRMb3NlQ29udGV4dC5oIgogCiAjaW5jbHVkZSAiV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV2ViS2l0TG9zZUNvbnRl
eHQ6OldlYktpdExvc2VDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKK1dl
YkdMRXh0TG9zZUNvbnRleHQ6OldlYkdMRXh0TG9zZUNvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250
ZXh0KiBjb250ZXh0KQogICAgIDogV2ViR0xFeHRlbnNpb24oY29udGV4dCkKIHsKIH0KIAotV2Vi
S2l0TG9zZUNvbnRleHQ6On5XZWJLaXRMb3NlQ29udGV4dCgpCitXZWJHTEV4dExvc2VDb250ZXh0
Ojp+V2ViR0xFeHRMb3NlQ29udGV4dCgpCiB7CiB9CiAKLVdlYkdMRXh0ZW5zaW9uOjpFeHRlbnNp
b25OYW1lIFdlYktpdExvc2VDb250ZXh0OjpnZXROYW1lKCkgY29uc3QKK1dlYkdMRXh0ZW5zaW9u
OjpFeHRlbnNpb25OYW1lIFdlYkdMRXh0TG9zZUNvbnRleHQ6OmdldE5hbWUoKSBjb25zdAogewog
ICAgIHJldHVybiBXZWJLaXRMb3NlQ29udGV4dE5hbWU7CiB9CiAKLVBhc3NPd25QdHI8V2ViS2l0
TG9zZUNvbnRleHQ+IFdlYktpdExvc2VDb250ZXh0OjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250
ZXh0KiBjb250ZXh0KQorUGFzc093blB0cjxXZWJHTEV4dExvc2VDb250ZXh0PiBXZWJHTEV4dExv
c2VDb250ZXh0OjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAg
IHJldHVybiBhZG9wdFB0cihuZXcgV2ViS2l0TG9zZUNvbnRleHQoY29udGV4dCkpOworICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgV2ViR0xFeHRMb3NlQ29udGV4dChjb250ZXh0KSk7CiB9CiAKLXZv
aWQgV2ViS2l0TG9zZUNvbnRleHQ6Omxvc2VDb250ZXh0KCkKK3ZvaWQgV2ViR0xFeHRMb3NlQ29u
dGV4dDo6bG9zZUNvbnRleHQoKQogewogICAgIG1fY29udGV4dC0+Zm9yY2VMb3N0Q29udGV4dChX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OlN5bnRoZXRpY0xvc3RDb250ZXh0KTsKIH0KIAotdm9pZCBX
ZWJLaXRMb3NlQ29udGV4dDo6cmVzdG9yZUNvbnRleHQoKQordm9pZCBXZWJHTEV4dExvc2VDb250
ZXh0OjpyZXN0b3JlQ29udGV4dCgpCiB7CiAgICAgbV9jb250ZXh0LT5mb3JjZVJlc3RvcmVDb250
ZXh0KCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dExvc2VD
b250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xF
eHRMb3NlQ29udGV4dC5oCShyZXZpc2lvbiAxMDAxOTUpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0Lmg6MTAwMTk1KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xFeHRMb3NlQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYktpdExvc2VDb250ZXh0X2gKKyNkZWZpbmUgV2Vi
S2l0TG9zZUNvbnRleHRfaAorCisjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKKyNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDsKKworY2xhc3MgV2ViS2l0TG9zZUNvbnRleHQgOiBwdWJsaWMgV2Vi
R0xFeHRlbnNpb24geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYktpdExvc2VD
b250ZXh0PiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CisKKyAgICB2aXJ0dWFsIH5X
ZWJLaXRMb3NlQ29udGV4dCgpOworICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkg
Y29uc3Q7CisKKyAgICB2b2lkIGxvc2VDb250ZXh0KCk7CisgICAgdm9pZCByZXN0b3JlQ29udGV4
dCgpOworCitwcml2YXRlOgorICAgIFdlYktpdExvc2VDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29u
dGV4dCopOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gV2ViS2l0
TG9zZUNvbnRleHRfaApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRM
b3NlQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMRXh0TG9zZUNvbnRleHQuaAkocmV2aXNpb24gMTAwMTk1KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xFeHRMb3NlQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4
ICsyMyw4IEBACiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgV2ViS2l0TG9zZUNvbnRleHRf
aAotI2RlZmluZSBXZWJLaXRMb3NlQ29udGV4dF9oCisjaWZuZGVmIFdlYkdMRXh0TG9zZUNvbnRl
eHRfaAorI2RlZmluZSBXZWJHTEV4dExvc2VDb250ZXh0X2gKIAogI2luY2x1ZGUgIldlYkdMRXh0
ZW5zaW9uLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KQEAgLTMzLDIwICszMywyMCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dDsKIAot
Y2xhc3MgV2ViS2l0TG9zZUNvbnRleHQgOiBwdWJsaWMgV2ViR0xFeHRlbnNpb24geworY2xhc3Mg
V2ViR0xFeHRMb3NlQ29udGV4dCA6IHB1YmxpYyBXZWJHTEV4dGVuc2lvbiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NPd25QdHI8V2ViS2l0TG9zZUNvbnRleHQ+IGNyZWF0ZShXZWJHTFJlbmRl
cmluZ0NvbnRleHQqKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxXZWJHTEV4dExvc2VDb250ZXh0
PiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CiAKLSAgICB2aXJ0dWFsIH5XZWJLaXRM
b3NlQ29udGV4dCgpOworICAgIHZpcnR1YWwgfldlYkdMRXh0TG9zZUNvbnRleHQoKTsKICAgICB2
aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0OwogCiAgICAgdm9pZCBsb3NlQ29u
dGV4dCgpOwogICAgIHZvaWQgcmVzdG9yZUNvbnRleHQoKTsKIAogcHJpdmF0ZToKLSAgICBXZWJL
aXRMb3NlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKKyAgICBXZWJHTEV4dExvc2VD
b250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQogCi0jZW5kaWYgLy8gV2ViS2l0TG9zZUNvbnRleHRfaAorI2VuZGlmIC8vIFdlYkdMRXh0
TG9zZUNvbnRleHRfaApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRM
b3NlQ29udGV4dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xFeHRMb3NlQ29udGV4dC5pZGwJKHJldmlzaW9uIDEwMDE5NSkJKGZyb20gU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQuaWRsOjEwMDE5NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0TG9zZUNvbnRleHQuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisgICAgaW50ZXJmYWNl
IFsKKyAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgICAgIEdlbmVyYXRlSXNSZWFjaGFi
bGU9SW1wbENvbnRleHQsCisgICAgICAgIE9taXRDb25zdHJ1Y3RvcgorICAgIF0gV2ViS2l0TG9z
ZUNvbnRleHQgeworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIGxvc2VDb250ZXh0
KCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgcmVzdG9yZUNvbnRleHQoKTsK
KyAgICB9OworfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRMb3Nl
Q29udGV4dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xFeHRMb3NlQ29udGV4dC5pZGwJKHJldmlzaW9uIDEwMDE5NSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMRXh0TG9zZUNvbnRleHQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0y
OCw3ICsyOCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wsCiAg
ICAgICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbENvbnRleHQsCiAgICAgICAgIE9taXRDb25z
dHJ1Y3RvcgotICAgIF0gV2ViS2l0TG9zZUNvbnRleHQgeworICAgIF0gV2ViR0xFeHRMb3NlQ29u
dGV4dCB7CiAgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgbG9zZUNvbnRleHQoKTsK
ICAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCByZXN0b3JlQ29udGV4dCgpOwogICAg
IH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRl
eHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5jcHAJKHJldmlzaW9uIDEwMDUzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU5
LDEzICs1OSwxMyBAQAogI2luY2x1ZGUgIldlYkdMQ29udGV4dEV2ZW50LmgiCiAjaW5jbHVkZSAi
V2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIgogI2luY2x1ZGUgIldlYkdMRGVidWdTaGFkZXJzLmgi
CisjaW5jbHVkZSAiV2ViR0xFeHRMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMRnJhbWVi
dWZmZXIuaCIKICNpbmNsdWRlICJXZWJHTFByb2dyYW0uaCIKICNpbmNsdWRlICJXZWJHTFJlbmRl
cmJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMU2hhZGVyLmgiCiAjaW5jbHVkZSAiV2ViR0xUZXh0
dXJlLmgiCiAjaW5jbHVkZSAiV2ViR0xVbmlmb3JtTG9jYXRpb24uaCIKLSNpbmNsdWRlICJXZWJL
aXRMb3NlQ29udGV4dC5oIgogCiAjaW5jbHVkZSA8d3RmL0J5dGVBcnJheS5oPgogI2luY2x1ZGUg
PHd0Zi9Pd25BcnJheVB0ci5oPgpAQCAtMjExMywxMCArMjExMywxMCBAQCBXZWJHTEV4dGVuc2lv
biogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIG1f
b2VzVmVydGV4QXJyYXlPYmplY3QuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVhbElnbm9yaW5n
Q2FzZShuYW1lLCAiV0VCS0lUX2xvc2VfY29udGV4dCIpKSB7Ci0gICAgICAgIGlmICghbV93ZWJr
aXRMb3NlQ29udGV4dCkKLSAgICAgICAgICAgIG1fd2Via2l0TG9zZUNvbnRleHQgPSBXZWJLaXRM
b3NlQ29udGV4dDo6Y3JlYXRlKHRoaXMpOwotICAgICAgICByZXR1cm4gbV93ZWJraXRMb3NlQ29u
dGV4dC5nZXQoKTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgIldFQkdMX0VYVF9s
b3NlX2NvbnRleHQiKSkgeworICAgICAgICBpZiAoIW1fd2ViZ2xFeHRMb3NlQ29udGV4dCkKKyAg
ICAgICAgICAgIG1fd2ViZ2xFeHRMb3NlQ29udGV4dCA9IFdlYkdMRXh0TG9zZUNvbnRleHQ6OmNy
ZWF0ZSh0aGlzKTsKKyAgICAgICAgcmV0dXJuIG1fd2ViZ2xFeHRMb3NlQ29udGV4dC5nZXQoKTsK
ICAgICB9CiAKICAgICBpZiAoYWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9ucygpKSB7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
aAkocmV2aXNpb24gMTAwNTM4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJpbmdDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcgKzYyLDcgQEAgY2xhc3Mg
V2ViR0xTaGFkZXI7CiBjbGFzcyBXZWJHTFRleHR1cmU7CiBjbGFzcyBXZWJHTFVuaWZvcm1Mb2Nh
dGlvbjsKIGNsYXNzIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM7Ci1jbGFzcyBXZWJLaXRMb3Nl
Q29udGV4dDsKK2NsYXNzIFdlYkdMRXh0TG9zZUNvbnRleHQ7CiAKIHR5cGVkZWYgaW50IEV4Y2Vw
dGlvbkNvZGU7CiAKQEAgLTQ4Miw3ICs0ODIsNyBAQCBwdWJsaWM6CiAgICAgT3duUHRyPE9FU1Rl
eHR1cmVGbG9hdD4gbV9vZXNUZXh0dXJlRmxvYXQ7CiAgICAgT3duUHRyPE9FU1N0YW5kYXJkRGVy
aXZhdGl2ZXM+IG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlczsKICAgICBPd25QdHI8T0VTVmVydGV4
QXJyYXlPYmplY3Q+IG1fb2VzVmVydGV4QXJyYXlPYmplY3Q7Ci0gICAgT3duUHRyPFdlYktpdExv
c2VDb250ZXh0PiBtX3dlYmtpdExvc2VDb250ZXh0OworICAgIE93blB0cjxXZWJHTEV4dExvc2VD
b250ZXh0PiBtX3dlYmdsRXh0TG9zZUNvbnRleHQ7CiAgICAgT3duUHRyPFdlYkdMRGVidWdSZW5k
ZXJlckluZm8+IG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbzsKICAgICBPd25QdHI8V2ViR0xEZWJ1
Z1NoYWRlcnM+IG1fd2ViZ2xEZWJ1Z1NoYWRlcnM7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5jcHAJKHJldmlzaW9uIDEwMDUzOCkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMSw2NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAi
QVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAq
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
Ci0jaWYgRU5BQkxFKFdFQkdMKQotCi0jaW5jbHVkZSAiV2ViS2l0TG9zZUNvbnRleHQuaCIKLQot
I2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLVdlYktpdExvc2VDb250ZXh0OjpXZWJLaXRMb3NlQ29udGV4dChXZWJHTFJlbmRlcmluZ0Nv
bnRleHQqIGNvbnRleHQpCi0gICAgOiBXZWJHTEV4dGVuc2lvbihjb250ZXh0KQotewotfQotCi1X
ZWJLaXRMb3NlQ29udGV4dDo6fldlYktpdExvc2VDb250ZXh0KCkKLXsKLX0KLQotV2ViR0xFeHRl
bnNpb246OkV4dGVuc2lvbk5hbWUgV2ViS2l0TG9zZUNvbnRleHQ6OmdldE5hbWUoKSBjb25zdAot
ewotICAgIHJldHVybiBXZWJLaXRMb3NlQ29udGV4dE5hbWU7Ci19Ci0KLVBhc3NPd25QdHI8V2Vi
S2l0TG9zZUNvbnRleHQ+IFdlYktpdExvc2VDb250ZXh0OjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdD
b250ZXh0KiBjb250ZXh0KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViS2l0TG9zZUNv
bnRleHQoY29udGV4dCkpOwotfQotCi12b2lkIFdlYktpdExvc2VDb250ZXh0Ojpsb3NlQ29udGV4
dCgpCi17Ci0gICAgbV9jb250ZXh0LT5mb3JjZUxvc3RDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29u
dGV4dDo6U3ludGhldGljTG9zdENvbnRleHQpOwotfQotCi12b2lkIFdlYktpdExvc2VDb250ZXh0
OjpyZXN0b3JlQ29udGV4dCgpCi17Ci0gICAgbV9jb250ZXh0LT5mb3JjZVJlc3RvcmVDb250ZXh0
KCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJH
TCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRl
eHQuaAkocmV2aXNpb24gMTAwNTM4KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
S2l0TG9zZUNvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1MiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
LSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2lmbmRlZiBXZWJLaXRMb3NlQ29udGV4dF9oCi0jZGVmaW5lIFdlYktpdExvc2VDb250ZXh0X2gK
LQotI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ7
Ci0KLWNsYXNzIFdlYktpdExvc2VDb250ZXh0IDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKLXB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxXZWJLaXRMb3NlQ29udGV4dD4gY3JlYXRlKFdl
YkdMUmVuZGVyaW5nQ29udGV4dCopOwotCi0gICAgdmlydHVhbCB+V2ViS2l0TG9zZUNvbnRleHQo
KTsKLSAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0OwotCi0gICAgdm9p
ZCBsb3NlQ29udGV4dCgpOwotICAgIHZvaWQgcmVzdG9yZUNvbnRleHQoKTsKLQotcHJpdmF0ZToK
LSAgICBXZWJLaXRMb3NlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFdlYktpdExvc2VDb250ZXh0X2gKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmlkbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5p
ZGwJKHJldmlzaW9uIDEwMDUzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktp
dExvc2VDb250ZXh0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSwzNSArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
LSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
bW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCi0gICAgICAgIENvbmRpdGlvbmFsPVdFQkdM
LAotICAgICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxDb250ZXh0LAotICAgICAgICBPbWl0
Q29uc3RydWN0b3IKLSAgICBdIFdlYktpdExvc2VDb250ZXh0IHsKLSAgICAgICAgW1N0cmljdFR5
cGVDaGVja2luZ10gdm9pZCBsb3NlQ29udGV4dCgpOwotICAgICAgICBbU3RyaWN0VHlwZUNoZWNr
aW5nXSB2b2lkIHJlc3RvcmVDb250ZXh0KCk7Ci0gICAgfTsKLX0KSW5kZXg6IFRvb2xzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDU0MikKKysr
IFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDExLTEx
LTE2ICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZW5hbWUg
V0VCS0lUX2xvc2VfY29udGV4dCB0byBXRUJHTF9FWFRfbG9zZV9jb250ZXh0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTg3MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy9kby13ZWJjb3Jl
LXJlbmFtZToKKwogMjAxMS0xMS0xNiAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gRW5hYmxlIHZpZGVvIGFuZCBjYW52YXMgMmQgY29t
cG9zaXRpbmcgdHJpZ2dlcnMgYnkgZGVmYXVsdCBmb3IgbGF5b3V0IHRlc3RzIGluIHRoZSBjb21w
b3NpdGluZyBkaXJlY3RvcnkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvZG8td2ViY29yZS1yZW5hbWUK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9kby13ZWJjb3JlLXJlbmFtZQkocmV2aXNpb24g
MTAwNTM4KQorKysgVG9vbHMvU2NyaXB0cy9kby13ZWJjb3JlLXJlbmFtZQkod29ya2luZyBjb3B5
KQpAQCAtOTcsNyArOTcsNyBAQCBzdWIgd2FudGVkCiBteSAkaXNET01UeXBlUmVuYW1lID0gMDsK
IG15ICVyZW5hbWVzID0gKAogICAgICMgUmVuYW1lcyBnbyBoZXJlIGluIHRoZSBmb3JtIG9mOgot
ICAgICJNZWRpYUNvbnRyb2xzIiA9PiAiTWVkaWFDb250cm9sUm9vdEVsZW1lbnQiLAorICAgICJX
ZWJLaXRMb3NlQ29udGV4dCIgPT4gIldlYkdMRXh0TG9zZUNvbnRleHQiLAogKTsKIAogbXkgJXJl
bmFtZXNDb250ZW1wbGF0ZWRGb3JUaGVGdXR1cmUgPSAoCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDA1
NDIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwx
NiBAQAorMjAxMS0xMS0xNiAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmVuYW1lIFdFQktJVF9sb3NlX2NvbnRleHQgdG8gV0VCR0xfRVhUX2xvc2VfY29udGV4
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE4NzAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qv
Y2FudmFzL3dlYmdsL1dlYkdMQ29udGV4dEV2ZW50Lmh0bWw6CisgICAgICAgICogZmFzdC9jYW52
YXMvd2ViZ2wvY29udGV4dC1kZXN0cm95ZWQtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nh
bnZhcy93ZWJnbC9jb250ZXh0LWxvc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY2Fu
dmFzL3dlYmdsL2NvbnRleHQtbG9zdC1yZXN0b3JlZC5odG1sOgorICAgICAgICAqIGZhc3QvY2Fu
dmFzL3dlYmdsL2NvbnRleHQtbG9zdC5odG1sOgorCiAyMDExLTExLTE2ICBNaWNoYWVsIE5vcmRt
YW4gIDxtaWNoYWVsbkBnb29nbGUuY29tPgogCiAgICAgICAgIEFwcGxpY2F0aW9uQ2FjaGUgbWFu
aWZlc3Qgc2hvdWxkIHdvcmsgd2l0aCBhbnkgTUlNRSB0eXBlLgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvd2ViZ2wvV2ViR0xDb250ZXh0RXZlbnQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9XZWJHTENvbnRleHRFdmVudC5odG1sCShyZXZp
c2lvbiAxMDA1MzgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9XZWJHTENvbnRl
eHRFdmVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNyw5ICsxNyw5IEBAIGZ1bmN0aW9uIGNy
ZWF0ZU5ld0NhbnZhcygpCiAgICAgY2FudmFzLmhlaWdodCA9IDE7CiAKICAgICBjb250ZXh0ID0g
V2ViR0xUZXN0VXRpbHMuY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7Ci0gICAgZXh0ZW5zaW9uID0g
Y29udGV4dC5nZXRFeHRlbnNpb24oIldFQktJVF9sb3NlX2NvbnRleHQiKTsKKyAgICBleHRlbnNp
b24gPSBjb250ZXh0LmdldEV4dGVuc2lvbigiV0VCR0xfRVhUX2xvc2VfY29udGV4dCIpOwogICAg
IGlmICghZXh0ZW5zaW9uKSB7Ci0gICAgICAgIGRlYnVnKCJDb3VsZCBub3QgZmluZCB0aGUgV0VC
S0lUX2xvc2VfY29udGV4dCBleHRlbnNpb24uIik7CisgICAgICAgIGRlYnVnKCJDb3VsZCBub3Qg
ZmluZCB0aGUgV0VCR0xfRVhUX2xvc2VfY29udGV4dCBleHRlbnNpb24uIik7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jb250
ZXh0LWRlc3Ryb3llZC1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL2NvbnRleHQtZGVzdHJveWVkLWNyYXNoLmh0bWwJKHJldmlzaW9uIDEwMDUz
OCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQtZGVzdHJveWVkLWNy
YXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIyLDcgKzIyLDcgQEAgd2luZG93Lm9ubG9hZCA9
IGZ1bmN0aW9uKCkKIHsKICAgICBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52
YXMiKTsKICAgICBjb250ZXh0ID0gY3JlYXRlM0RDb250ZXh0KGNhbnZhcyk7Ci0gICAgZXh0ZW5z
aW9uID0gY29udGV4dC5nZXRFeHRlbnNpb24oIldFQktJVF9sb3NlX2NvbnRleHQiKTsKKyAgICBl
eHRlbnNpb24gPSBjb250ZXh0LmdldEV4dGVuc2lvbigiV0VCR0xfRVhUX2xvc2VfY29udGV4dCIp
OwogICAgIAogICAgIGNhbnZhcyA9IG51bGw7CiAgICAgY29udGV4dCA9IG51bGw7CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWxvc3QtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQtbG9zdC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDEwMDUzOCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL2NvbnRleHQtbG9zdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE2OCw3
ICsxNjgsNyBAQCBQQVNTIGdsLmdldFVuaWZvcm0ocHJvZ3JhbSwgdW5pZm9ybUxvY2F0CiBQQVNT
IGdsLmdldFVuaWZvcm1Mb2NhdGlvbihwcm9ncmFtLCAndlBvc2l0aW9uJykgaXMgbnVsbAogUEFT
UyBnbC5nZXRWZXJ0ZXhBdHRyaWIoMCwgZ2wuVkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklO
RElORykgaXMgbnVsbAogUEFTUyBnbC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkgaXMgbnVsbAot
UEFTUyBnbC5nZXRFeHRlbnNpb24oJ1dFQktJVF9sb3NlX2NvbnRleHQnKSBpcyBudWxsCitQQVNT
IGdsLmdldEV4dGVuc2lvbignV0VCR0xfRVhUX2xvc2VfY29udGV4dCcpIGlzIG51bGwKIFBBU1Mg
Z2wuaXNCdWZmZXIoYnVmZmVyKSBpcyBmYWxzZQogUEFTUyBnbC5pc0VuYWJsZWQoZ2wuQkxFTkQp
IGlzIGZhbHNlCiBQQVNTIGdsLmlzRnJhbWVidWZmZXIoZnJhbWVidWZmZXIpIGlzIGZhbHNlCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWxvc3QtcmVzdG9yZWQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0
LWxvc3QtcmVzdG9yZWQuaHRtbAkocmV2aXNpb24gMTAwNTM4KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvd2ViZ2wvY29udGV4dC1sb3N0LXJlc3RvcmVkLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTgsNyArOCw3IEBAIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKIHZhciBjYW52YXM7CiB2
YXIgZ2w7CiB2YXIgc2hvdWxkR2VuZXJhdGVHTEVycm9yOwotdmFyIGV4dGVuc2lvbl9uYW1lID0g
IldFQktJVF9sb3NlX2NvbnRleHQiOwordmFyIGV4dGVuc2lvbl9uYW1lID0gIldFQkdMX0VYVF9s
b3NlX2NvbnRleHQiOwogdmFyIGV4dGVuc2lvbjsKIHZhciBidWZmZXJPYmplY3RzOwogdmFyIHBy
b2dyYW07CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWxvc3Qu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0
LWxvc3QuaHRtbAkocmV2aXNpb24gMTAwNTM4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvY29udGV4dC1sb3N0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsNyArOCw3IEBAIHZh
ciB3dHU7CiB2YXIgY2FudmFzOwogdmFyIGdsOwogdmFyIHNob3VsZEdlbmVyYXRlR0xFcnJvcjsK
LXZhciBleHRlbnNpb25fbmFtZSA9ICJXRUJLSVRfbG9zZV9jb250ZXh0IjsKK3ZhciBleHRlbnNp
b25fbmFtZSA9ICJXRUJHTF9FWFRfbG9zZV9jb250ZXh0IjsKIHZhciBleHRlbnNpb247CiAKIHZh
ciBidWZmZXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115507</attachid>
            <date>2011-11-16 18:28:09 -0800</date>
            <delta_ts>2011-12-06 19:52:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71870-20111116182808.patch</filename>
            <type>text/plain</type>
            <size>39246</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDU0MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDExLTExLTE2ICBLZW5uZXRo
IFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZW5hbWUgV0VCS0lUX2xvc2Vf
Y29udGV4dCB0byBXRUJHTF9FWFRfbG9zZV9jb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTg3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBsYXJnZWx5IGRvbmUgd2l0aCBkby13ZWJj
b3JlLXJlbmFtZSB3aXRoIGEgY291cGxlIG9mCisgICAgICAgIG5lY2Vzc2FyeSBtYW51YWwgZml4
dXBzLiBSYW4gV2ViR0wgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6
CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJnZXQu
cHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmlu
Z0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICog
YmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRvVjhPYmplY3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdM
RXh0TG9zZUNvbnRleHQuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJLaXRMb3NlQ29udGV4dC5jcHAuCisgICAgICAgIChXZWJDb3JlOjpXZWJHTEV4dExvc2VD
b250ZXh0OjpXZWJHTEV4dExvc2VDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRXh0
TG9zZUNvbnRleHQ6On5XZWJHTEV4dExvc2VDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkdMRXh0TG9zZUNvbnRleHQ6OmdldE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xFeHRM
b3NlQ29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRXh0TG9zZUNvbnRl
eHQ6Omxvc2VDb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMRXh0TG9zZUNvbnRleHQ6
OnJlc3RvcmVDb250ZXh0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTEV4dExvc2VDb250
ZXh0Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VD
b250ZXh0LmguCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xFeHRMb3NlQ29udGV4dC5pZGw6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0
LmlkbC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnZXRFeHRlbnNpb24pOgor
ICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAq
IGh0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBo
dG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5oOiBSZW1vdmVkLgorICAgICAgICAqIGh0bWwv
Y2FudmFzL1dlYktpdExvc2VDb250ZXh0LmlkbDogUmVtb3ZlZC4KKwogMjAxMS0xMS0xNiAgTWlj
aGFlbCBOb3JkbWFuICA8bWljaGFlbG5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBBcHBsaWNhdGlv
bkNhY2hlIG1hbmlmZXN0IHNob3VsZCB3b3JrIHdpdGggYW55IE1JTUUgdHlwZS4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMDA1MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjE1Myw3ICsyMTUzLDcgQEAgSUYgKEVOQUJM
RV9XRUJHTCkKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAK
ICAgICAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmNwcAogICAgICAgICBodG1sL2Nh
bnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKLSAgICAgICAgaHRtbC9jYW52YXMvV2ViS2l0
TG9zZUNvbnRleHQuY3BwCisgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRXh0TG9zZUNvbnRleHQu
Y3BwCiAKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuY3BwCiAg
ICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcApAQCAtMjE3OCw3
ICsyMTc4LDcgQEAgSUYgKEVOQUJMRV9XRUJHTCkKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xU
ZXh0dXJlLmlkbAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5pZGwK
ICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5pZGwKLSAgICAg
ICAgaHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQuaWRsCisgICAgICAgIGh0bWwvY2FudmFz
L1dlYkdMRXh0TG9zZUNvbnRleHQuaWRsCiAgICAgKQogRU5ESUYgKCkKIApJbmRleDogU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAxMDA1MzgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC01NDYsNyArNTQ2LDcgQEAg
RE9NX0NMQVNTRVMgPSBcCiAgICAgV2ViS2l0Q1NTTWF0cml4IFwKICAgICBXZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZSBcCiAgICAgV2ViS2l0RmxhZ3MgXAotICAgIFdlYktpdExvc2VDb250ZXh0IFwK
KyAgICBXZWJHTEV4dExvc2VDb250ZXh0IFwKICAgICBXZWJLaXRNdXRhdGlvbk9ic2VydmVyIFwK
ICAgICBXZWJLaXRQb2ludCBcCiAgICAgV2ViS2l0VHJhbnNpdGlvbkV2ZW50IFwKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5wcmkJKHJldmlzaW9uIDEwMDUzOCkKKysrIFNvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLnByaQkod29ya2luZyBjb3B5KQpAQCAtMjMyLDcgKzIzMiw3IEBA
IElETF9CSU5ESU5HUyArPSBcCiAgICAgaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlkbCBcCiAg
ICAgaHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uaWRsIFwKICAgICBodG1sL2NhbnZh
cy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbCBcCi0gICAgaHRtbC9jYW52YXMvV2ViS2l0
TG9zZUNvbnRleHQuaWRsIFwKKyAgICBodG1sL2NhbnZhcy9XZWJHTEV4dExvc2VDb250ZXh0Lmlk
bCBcCiAgICAgaHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwgXAogICAgIGh0bWwvY2FudmFzL1Vp
bnQzMkFycmF5LmlkbCBcCiAgICAgaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsIFwKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTAwNTM4KQorKysgU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtNTAxNCw4ICs1
MDE0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9PRVNUZXh0dXJlRmxvYXQuaCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVy
dGV4QXJyYXlPYmplY3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0
ZXhBcnJheU9iamVjdC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJLaXRMb3Nl
Q29udGV4dC5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250
ZXh0LmggXAorCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0TG9zZUNvbnRleHQu
Y3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dExvc2VDb250ZXh0Lmgg
XAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2Uu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0M0RDYWlyby5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAxMDA1MzgpCisrKyBT
b3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0zNjQ2LDcgKzM2NDYs
NyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0VCR0w9MSkgewogICAgICAgICBodG1sL2Nh
bnZhcy9XZWJHTFRleHR1cmUuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxv
Y2F0aW9uLmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VT
LmggXAotICAgICAgICBodG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5oIFwKKyAgICAgICAg
aHRtbC9jYW52YXMvV2ViR0xFeHRMb3NlQ29udGV4dC5oIFwKICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0V4
dGVuc2lvbnMzRC5oIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuaCBcCkBAIC0zNjc5LDcgKzM2NzksNyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0VC
R0w9MSkgewogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuY3BwIFwKICAgICAgICAg
aHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uY3BwIFwKICAgICAgICAgaHRtbC9jYW52
YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAgXAotICAgICAgICBodG1sL2NhbnZhcy9X
ZWJLaXRMb3NlQ29udGV4dC5jcHAgXAorICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEV4dExvc2VD
b250ZXh0LmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdl
LmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcCBc
CiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5nQnVmZmVyLmNwcCBcCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxMDA1MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTEzNzIsNyArMTM3Miw3IEBACiAgICAgICAgICAg
ICAnaHRtbC9jYW52YXMvV2ViR0xUZXh0dXJlLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52
YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9X
ZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbCcsCi0gICAgICAgICAgICAnaHRtbC9jYW52YXMv
V2ViS2l0TG9zZUNvbnRleHQuaWRsJywKKyAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEV4
dExvc2VDb250ZXh0LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0
LmlkbCcsCiAgICAgICAgICAgICAnaHRtbC90cmFjay9UcmFja0V2ZW50LmlkbCcsCiAgICAgICAg
ICAgICAnaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwnLApAQCAtNTc0MCw4ICs1NzQw
LDggQEAKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5oJywK
ICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcCcs
CiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oJywK
LSAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5jcHAnLAotICAgICAg
ICAgICAgJ2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmgnLAorICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL1dlYkdMRXh0TG9zZUNvbnRleHQuY3BwJywKKyAgICAgICAgICAgICdodG1sL2Nh
bnZhcy9XZWJHTEV4dExvc2VDb250ZXh0LmgnLAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL0NT
U1ByZWxvYWRTY2FubmVyLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIvQ1NTUHJlbG9h
ZFNjYW5uZXIuaCcsCiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlvblNp
dGUuY3BwJywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDEwMDUzOCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzE5Niw4ICsz
MTk2LDggQEAKIAkJOTNGMTlCMTUwODI0NUU1OTAwMUU5QUJDIC8qIENvY29hLmZyYW1ld29yayBp
biBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzI4Njk1
MDI4NDZEQ0QwMTg2MzVDQSAvKiBDb2NvYS5mcmFtZXdvcmsgKi87IH07CiAJCTkzRjE5QjE2MDgy
NDVFNTkwMDFFOUFCQyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGODIxNjI5OTAyOUY0RkI1MDEwMDAx
MzEgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovOyB9OwogCQk5M0YxOUIxNzA4MjQ1RTU5
MDAxRTlBQkMgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjFEMzFBMDU1OENDNUMwMDgyMUJDMCAvKiBsaWJpY3Vj
b3JlLmR5bGliICovOyB9OwotCQk5M0YxRDVCQTEyRDUzMkM0MDA4MzJCRUMgLyogV2ViS2l0TG9z
ZUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNGMUQ1QjcxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0LmNwcCAqLzsg
fTsKLQkJOTNGMUQ1QkIxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YxRDVCODEyRDUz
MkM0MDA4MzJCRUMgLyogV2ViS2l0TG9zZUNvbnRleHQuaCAqLzsgfTsKKwkJOTNGMUQ1QkExMkQ1
MzJDNDAwODMyQkVDIC8qIFdlYkdMRXh0TG9zZUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1QjcxMkQ1MzJDNDAwODMyQkVDIC8q
IFdlYkdMRXh0TG9zZUNvbnRleHQuY3BwICovOyB9OworCQk5M0YxRDVCQjEyRDUzMkM0MDA4MzJC
RUMgLyogV2ViR0xFeHRMb3NlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1QjgxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMRXh0TG9z
ZUNvbnRleHQuaCAqLzsgfTsKIAkJOTNGMUQ1QzAxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViS2l0
TG9zZUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNGMUQ1QkUxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViS2l0TG9zZUNvbnRleHQuY3Bw
ICovOyB9OwogCQk5M0YxRDVDMTEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJLaXRMb3NlQ29udGV4
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1
QkYxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViS2l0TG9zZUNvbnRleHQuaCAqLzsgfTsKIAkJOTNG
NkYxRUQxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjZGMUVBMTI3RjcwQjEwMDU1
Q0IwNiAvKiBXZWJHTENvbnRleHRFdmVudC5jcHAgKi87IH07CkBAIC0xMDM4Myw5ICsxMDM4Myw5
IEBACiAJCTkzRjE5QjE5MDgyNDVFNTkwMDFFOUFCQyAvKiBJbmZvLnBsaXN0ICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk5M0YxOUIxQTA4MjQ1RTVBMDAxRTlB
QkMgLyogV2ViQ29yZS5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhw
bGljaXRGaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBpbmNsdWRlSW5JbmRleCA9IDA7IHBh
dGggPSBXZWJDb3JlLmZyYW1ld29yazsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKIAkJOTNGMUQzMUEwNTU4Q0M1QzAwODIxQkMwIC8qIGxpYmljdWNvcmUuZHlsaWIgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSAiY29tcGlsZWQubWFj
aC1vLmR5bGliIjsgbmFtZSA9IGxpYmljdWNvcmUuZHlsaWI7IHBhdGggPSAvdXNyL2xpYi9saWJp
Y3Vjb3JlLmR5bGliOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OwotCQk5M0YxRDVCNzEy
RDUzMkM0MDA4MzJCRUMgLyogV2ViS2l0TG9zZUNvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gV2ViS2l0TG9zZUNvbnRleHQuY3BwOyBwYXRoID0gY2FudmFz
L1dlYktpdExvc2VDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNG
MUQ1QjgxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYktpdExvc2VDb250ZXh0Lmg7IHBhdGggPSBjYW52YXMv
V2ViS2l0TG9zZUNvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNGMUQ1
QjkxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IG5hbWUgPSBXZWJLaXRMb3NlQ29udGV4dC5pZGw7IHBhdGggPSBjYW52YXMvV2ViS2l0TG9z
ZUNvbnRleHQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0YxRDVCNzEyRDUz
MkM0MDA4MzJCRUMgLyogV2ViR0xFeHRMb3NlQ29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJHTEV4dExvc2VDb250ZXh0LmNwcDsgcGF0aCA9IGNhbnZh
cy9XZWJHTEV4dExvc2VDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
OTNGMUQ1QjgxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMRXh0TG9zZUNvbnRleHQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViR0xFeHRMb3NlQ29udGV4dC5oOyBwYXRoID0g
Y2FudmFzL1dlYkdMRXh0TG9zZUNvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTNGMUQ1QjkxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMRXh0TG9zZUNvbnRleHQuaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYkdMRXh0TG9zZUNvbnRleHQuaWRsOyBwYXRoID0gY2Fu
dmFzL1dlYkdMRXh0TG9zZUNvbnRleHQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5M0YxRDVCRTEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJLaXRMb3NlQ29udGV4dC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdExvc2VDb250ZXh0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGMUQ1QkYxMkQ1MzM1NjAwODMyQkVD
IC8qIEpTV2ViS2l0TG9zZUNvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNXZWJLaXRMb3NlQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
M0Y2RjFFQTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViR0xDb250ZXh0RXZlbnQuY3BwOyBwYXRo
ID0gY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE0OTczLDkgKzE0OTczLDkgQEAKIAkJCQk3N0ExN0E3NDEyRjI4NjQyMDA0RTAyRjYg
LyogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAgKi8sCiAJCQkJNzdBMTdBNzUxMkYyODY0
MjAwNEUwMkY2IC8qIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCAqLywKIAkJCQk3N0ExN0E3
NjEyRjI4NjQyMDA0RTAyRjYgLyogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5pZGwgKi8sCi0J
CQkJOTNGMUQ1QjcxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0LmNwcCAqLywK
LQkJCQk5M0YxRDVCODEyRDUzMkM0MDA4MzJCRUMgLyogV2ViS2l0TG9zZUNvbnRleHQuaCAqLywK
LQkJCQk5M0YxRDVCOTEyRDUzMkM0MDA4MzJCRUMgLyogV2ViS2l0TG9zZUNvbnRleHQuaWRsICov
LAorCQkJCTkzRjFENUI3MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTEV4dExvc2VDb250ZXh0LmNw
cCAqLywKKwkJCQk5M0YxRDVCODEyRDUzMkM0MDA4MzJCRUMgLyogV2ViR0xFeHRMb3NlQ29udGV4
dC5oICovLAorCQkJCTkzRjFENUI5MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTEV4dExvc2VDb250
ZXh0LmlkbCAqLywKIAkJCSk7CiAJCQluYW1lID0gY2FudmFzOwogCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKQEAgLTI0NTU2LDcgKzI0NTU2LDcgQEAKIAkJCQk0OTgzOTE1OTBGMUU3NzY5MDBD
MjM3ODIgLyogV2ViS2l0Q1NTTWF0cml4LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzlBREQyMzBD
QzQwMzI2MDAwOThDNEMgLyogV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg5ODc4NTY2MTIyQ0EwNjQwMDNBQUJEQSAvKiBXZWJLaXRGbGFncy5oIGluIEhlYWRl
cnMgKi8sCi0JCQkJOTNGMUQ1QkIxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0
LmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0YxRDVCQjEyRDUzMkM0MDA4MzJCRUMgLyogV2ViR0xF
eHRMb3NlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzZGMDkwMEYxNDMyN0I2MTAwNjg1
ODQ5IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5NEJE
Nzk1MEY1NUM4RUUwMDc0NzgyOCAvKiBXZWJLaXRQb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MzFDMEZGMjUwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNzQ0MSw3ICsyNzQ0MSw3IEBACiAJCQkJMzEyODhFNzQwRTMwMDVENjAw
MzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NDk4MzkxNTgwRjFFNzc2OTAwQzIzNzgyIC8qIFdlYktpdENTU01hdHJpeC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCQzlBREQ4MDBDQzQwOTIyMDAwOThDNEMgLyogV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTNGMUQ1QkExMkQ1MzJDNDAwODMyQkVDIC8q
IFdlYktpdExvc2VDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTkzRjFENUJBMTJENTMy
QzQwMDgzMkJFQyAvKiBXZWJHTEV4dExvc2VDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUM2RjA5MDBFMTQzMjdCNjEwMDY4NTg0OSAvKiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTMxQzBGRjI0MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFu
c2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDRjMzMkUwRjJCOUEyNTAwNEI2
Nzk1IC8qIFdlYkxheWVyLm1tIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0
b20uY3BwCShyZXZpc2lvbiAxMDA1MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYg
KzQ0LDcgQEAKICNpbmNsdWRlICJKU09FU1ZlcnRleEFycmF5T2JqZWN0LmgiCiAjaW5jbHVkZSAi
SlNVaW50OEFycmF5LmgiCiAjaW5jbHVkZSAiSlNXZWJHTEJ1ZmZlci5oIgorI2luY2x1ZGUgIkpT
V2ViR0xFeHRMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIkpTV2ViR0xGcmFtZWJ1ZmZlci5oIgog
I2luY2x1ZGUgIkpTV2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiSlNXZWJHTFJlbmRlcmJ1ZmZl
ci5oIgpAQCAtNTIsNyArNTMsNiBAQAogI2luY2x1ZGUgIkpTV2ViR0xVbmlmb3JtTG9jYXRpb24u
aCIKICNpbmNsdWRlICJKU1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKICNpbmNsdWRlICJK
U1dlYktpdENTU01hdHJpeC5oIgotI2luY2x1ZGUgIkpTV2ViS2l0TG9zZUNvbnRleHQuaCIKICNp
bmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIk9FU1N0YW5kYXJkRGVyaXZhdGl2
ZXMuaCIKICNpbmNsdWRlICJPRVNUZXh0dXJlRmxvYXQuaCIKQEAgLTYwLDEzICs2MCwxMyBAQAog
I2luY2x1ZGUgIldlYkdMQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xEZWJ1Z1JlbmRlcmVySW5m
by5oIgogI2luY2x1ZGUgIldlYkdMRGVidWdTaGFkZXJzLmgiCisjaW5jbHVkZSAiV2ViR0xFeHRM
b3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiV2Vi
R0xGcmFtZWJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMR2V0SW5mby5oIgogI2luY2x1ZGUgIldl
YkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1
ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKLSNpbmNsdWRlICJXZWJLaXRMb3NlQ29u
dGV4dC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRlIDxydW50aW1lL0pT
QXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgpAQCAtMTgyLDcgKzE4Miw3IEBA
IHN0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0QKICAgICAgICAgcmV0dXJu
IGpzTnVsbCgpOwogICAgIHN3aXRjaCAoZXh0ZW5zaW9uLT5nZXROYW1lKCkpIHsKICAgICBjYXNl
IFdlYkdMRXh0ZW5zaW9uOjpXZWJLaXRMb3NlQ29udGV4dE5hbWU6Ci0gICAgICAgIHJldHVybiB0
b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViS2l0TG9zZUNvbnRleHQqPihl
eHRlbnNpb24pKTsKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0
aWNfY2FzdDxXZWJHTEV4dExvc2VDb250ZXh0Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJH
TEV4dGVuc2lvbjo6T0VTU3RhbmRhcmREZXJpdmF0aXZlc05hbWU6CiAgICAgICAgIHJldHVybiB0
b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTU3RhbmRhcmREZXJpdmF0aXZl
cyo+KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1RleHR1cmVGbG9h
dE5hbWU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJl
bmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHJldmlz
aW9uIDEwMDUzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdM
UmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDYg
QEAKICNpbmNsdWRlICJWOEFycmF5QnVmZmVyVmlldy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5o
IgogI2luY2x1ZGUgIlY4QmluZGluZ01hY3Jvcy5oIgotI2luY2x1ZGUgIlY4V2ViS2l0TG9zZUNv
bnRleHQuaCIKICNpbmNsdWRlICJWOEZsb2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIlY4SFRNTENh
bnZhc0VsZW1lbnQuaCIKICNpbmNsdWRlICJWOEhUTUxJbWFnZUVsZW1lbnQuaCIKQEAgLTU4LDYg
KzU3LDcgQEAKICNpbmNsdWRlICJWOFdlYkdMQnVmZmVyLmgiCiAjaW5jbHVkZSAiVjhXZWJHTERl
YnVnUmVuZGVyZXJJbmZvLmgiCiAjaW5jbHVkZSAiVjhXZWJHTERlYnVnU2hhZGVycy5oIgorI2lu
Y2x1ZGUgIlY4V2ViR0xFeHRMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4V2ViR0xGcmFtZWJ1
ZmZlci5oIgogI2luY2x1ZGUgIlY4V2ViR0xQcm9ncmFtLmgiCiAjaW5jbHVkZSAiVjhXZWJHTFJl
bmRlcmJ1ZmZlci5oIgpAQCAtMTY5LDcgKzE2OSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gdG9WOE9iamVjdCgKICAgICBjb25zdCBjaGFyKiByZWZlcmVuY2VOYW1lID0gMDsKICAg
ICBzd2l0Y2ggKGV4dGVuc2lvbi0+Z2V0TmFtZSgpKSB7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lv
bjo6V2ViS2l0TG9zZUNvbnRleHROYW1lOgotICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4
KHN0YXRpY19jYXN0PFdlYktpdExvc2VDb250ZXh0Kj4oZXh0ZW5zaW9uKSk7CisgICAgICAgIGV4
dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViR0xFeHRMb3NlQ29udGV4dCo+KGV4
dGVuc2lvbikpOwogICAgICAgICByZWZlcmVuY2VOYW1lID0gIndlYktpdExvc2VDb250ZXh0TmFt
ZSI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1N0YW5kYXJk
RGVyaXZhdGl2ZXNOYW1lOgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xF
eHRMb3NlQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xFeHRMb3NlQ29udGV4dC5jcHAJKHJldmlzaW9uIDEwMDE5NSkJKGZyb20gU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQuY3BwOjEwMDE5NSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0TG9zZUNvbnRleHQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJ
UyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNp
ZiBFTkFCTEUoV0VCR0wpCisKKyNpbmNsdWRlICJXZWJLaXRMb3NlQ29udGV4dC5oIgorCisjaW5j
bHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
V2ViS2l0TG9zZUNvbnRleHQ6OldlYktpdExvc2VDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4
dCogY29udGV4dCkKKyAgICA6IFdlYkdMRXh0ZW5zaW9uKGNvbnRleHQpCit7Cit9CisKK1dlYktp
dExvc2VDb250ZXh0Ojp+V2ViS2l0TG9zZUNvbnRleHQoKQoreworfQorCitXZWJHTEV4dGVuc2lv
bjo6RXh0ZW5zaW9uTmFtZSBXZWJLaXRMb3NlQ29udGV4dDo6Z2V0TmFtZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIFdlYktpdExvc2VDb250ZXh0TmFtZTsKK30KKworUGFzc093blB0cjxXZWJLaXRM
b3NlQ29udGV4dD4gV2ViS2l0TG9zZUNvbnRleHQ6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRl
eHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJLaXRMb3NlQ29udGV4
dChjb250ZXh0KSk7Cit9CisKK3ZvaWQgV2ViS2l0TG9zZUNvbnRleHQ6Omxvc2VDb250ZXh0KCkK
K3sKKyAgICBtX2NvbnRleHQtPmZvcmNlTG9zdENvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0
OjpTeW50aGV0aWNMb3N0Q29udGV4dCk7Cit9CisKK3ZvaWQgV2ViS2l0TG9zZUNvbnRleHQ6OnJl
c3RvcmVDb250ZXh0KCkKK3sKKyAgICBtX2NvbnRleHQtPmZvcmNlUmVzdG9yZUNvbnRleHQoKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRMb3NlQ29udGV4dC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRMb3NlQ29u
dGV4dC5jcHAJKHJldmlzaW9uIDEwMDE5NSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMRXh0TG9zZUNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNywzNyArMjcsMzcg
QEAKIAogI2lmIEVOQUJMRShXRUJHTCkKIAotI2luY2x1ZGUgIldlYktpdExvc2VDb250ZXh0Lmgi
CisjaW5jbHVkZSAiV2ViR0xFeHRMb3NlQ29udGV4dC5oIgogCiAjaW5jbHVkZSAiV2ViR0xSZW5k
ZXJpbmdDb250ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotV2ViS2l0TG9zZUNvbnRl
eHQ6OldlYktpdExvc2VDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKK1dl
YkdMRXh0TG9zZUNvbnRleHQ6OldlYkdMRXh0TG9zZUNvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250
ZXh0KiBjb250ZXh0KQogICAgIDogV2ViR0xFeHRlbnNpb24oY29udGV4dCkKIHsKIH0KIAotV2Vi
S2l0TG9zZUNvbnRleHQ6On5XZWJLaXRMb3NlQ29udGV4dCgpCitXZWJHTEV4dExvc2VDb250ZXh0
Ojp+V2ViR0xFeHRMb3NlQ29udGV4dCgpCiB7CiB9CiAKLVdlYkdMRXh0ZW5zaW9uOjpFeHRlbnNp
b25OYW1lIFdlYktpdExvc2VDb250ZXh0OjpnZXROYW1lKCkgY29uc3QKK1dlYkdMRXh0ZW5zaW9u
OjpFeHRlbnNpb25OYW1lIFdlYkdMRXh0TG9zZUNvbnRleHQ6OmdldE5hbWUoKSBjb25zdAogewog
ICAgIHJldHVybiBXZWJLaXRMb3NlQ29udGV4dE5hbWU7CiB9CiAKLVBhc3NPd25QdHI8V2ViS2l0
TG9zZUNvbnRleHQ+IFdlYktpdExvc2VDb250ZXh0OjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250
ZXh0KiBjb250ZXh0KQorUGFzc093blB0cjxXZWJHTEV4dExvc2VDb250ZXh0PiBXZWJHTEV4dExv
c2VDb250ZXh0OjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQogewotICAg
IHJldHVybiBhZG9wdFB0cihuZXcgV2ViS2l0TG9zZUNvbnRleHQoY29udGV4dCkpOworICAgIHJl
dHVybiBhZG9wdFB0cihuZXcgV2ViR0xFeHRMb3NlQ29udGV4dChjb250ZXh0KSk7CiB9CiAKLXZv
aWQgV2ViS2l0TG9zZUNvbnRleHQ6Omxvc2VDb250ZXh0KCkKK3ZvaWQgV2ViR0xFeHRMb3NlQ29u
dGV4dDo6bG9zZUNvbnRleHQoKQogewogICAgIG1fY29udGV4dC0+Zm9yY2VMb3N0Q29udGV4dChX
ZWJHTFJlbmRlcmluZ0NvbnRleHQ6OlN5bnRoZXRpY0xvc3RDb250ZXh0KTsKIH0KIAotdm9pZCBX
ZWJLaXRMb3NlQ29udGV4dDo6cmVzdG9yZUNvbnRleHQoKQordm9pZCBXZWJHTEV4dExvc2VDb250
ZXh0OjpyZXN0b3JlQ29udGV4dCgpCiB7CiAgICAgbV9jb250ZXh0LT5mb3JjZVJlc3RvcmVDb250
ZXh0KCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEV4dExvc2VD
b250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xF
eHRMb3NlQ29udGV4dC5oCShyZXZpc2lvbiAxMDAxOTUpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0Lmg6MTAwMTk1KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xFeHRMb3NlQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQor
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYktpdExvc2VDb250ZXh0X2gKKyNkZWZpbmUgV2Vi
S2l0TG9zZUNvbnRleHRfaAorCisjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKKyNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYkdM
UmVuZGVyaW5nQ29udGV4dDsKKworY2xhc3MgV2ViS2l0TG9zZUNvbnRleHQgOiBwdWJsaWMgV2Vi
R0xFeHRlbnNpb24geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYktpdExvc2VD
b250ZXh0PiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CisKKyAgICB2aXJ0dWFsIH5X
ZWJLaXRMb3NlQ29udGV4dCgpOworICAgIHZpcnR1YWwgRXh0ZW5zaW9uTmFtZSBnZXROYW1lKCkg
Y29uc3Q7CisKKyAgICB2b2lkIGxvc2VDb250ZXh0KCk7CisgICAgdm9pZCByZXN0b3JlQ29udGV4
dCgpOworCitwcml2YXRlOgorICAgIFdlYktpdExvc2VDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29u
dGV4dCopOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gV2ViS2l0
TG9zZUNvbnRleHRfaApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRM
b3NlQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMRXh0TG9zZUNvbnRleHQuaAkocmV2aXNpb24gMTAwMTk1KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xFeHRMb3NlQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4
ICsyMyw4IEBACiAgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgV2ViS2l0TG9zZUNvbnRleHRf
aAotI2RlZmluZSBXZWJLaXRMb3NlQ29udGV4dF9oCisjaWZuZGVmIFdlYkdMRXh0TG9zZUNvbnRl
eHRfaAorI2RlZmluZSBXZWJHTEV4dExvc2VDb250ZXh0X2gKIAogI2luY2x1ZGUgIldlYkdMRXh0
ZW5zaW9uLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KQEAgLTMzLDIwICszMywyMCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFdlYkdMUmVuZGVyaW5nQ29udGV4dDsKIAot
Y2xhc3MgV2ViS2l0TG9zZUNvbnRleHQgOiBwdWJsaWMgV2ViR0xFeHRlbnNpb24geworY2xhc3Mg
V2ViR0xFeHRMb3NlQ29udGV4dCA6IHB1YmxpYyBXZWJHTEV4dGVuc2lvbiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NPd25QdHI8V2ViS2l0TG9zZUNvbnRleHQ+IGNyZWF0ZShXZWJHTFJlbmRl
cmluZ0NvbnRleHQqKTsKKyAgICBzdGF0aWMgUGFzc093blB0cjxXZWJHTEV4dExvc2VDb250ZXh0
PiBjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CiAKLSAgICB2aXJ0dWFsIH5XZWJLaXRM
b3NlQ29udGV4dCgpOworICAgIHZpcnR1YWwgfldlYkdMRXh0TG9zZUNvbnRleHQoKTsKICAgICB2
aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0OwogCiAgICAgdm9pZCBsb3NlQ29u
dGV4dCgpOwogICAgIHZvaWQgcmVzdG9yZUNvbnRleHQoKTsKIAogcHJpdmF0ZToKLSAgICBXZWJL
aXRMb3NlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKKyAgICBleHBsaWNpdCBXZWJH
TEV4dExvc2VDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gV2ViS2l0TG9zZUNvbnRleHRfaAorI2VuZGlmIC8v
IFdlYkdMRXh0TG9zZUNvbnRleHRfaApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViR0xFeHRMb3NlQ29udGV4dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xFeHRMb3NlQ29udGV4dC5pZGwJKHJldmlzaW9uIDEwMDE5NSkJKGZyb20g
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQuaWRsOjEwMDE5NSkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0TG9zZUNvbnRleHQuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCittb2R1bGUgaHRtbCB7CisgICAg
aW50ZXJmYWNlIFsKKyAgICAgICAgQ29uZGl0aW9uYWw9V0VCR0wsCisgICAgICAgIEdlbmVyYXRl
SXNSZWFjaGFibGU9SW1wbENvbnRleHQsCisgICAgICAgIE9taXRDb25zdHJ1Y3RvcgorICAgIF0g
V2ViS2l0TG9zZUNvbnRleHQgeworICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIGxv
c2VDb250ZXh0KCk7CisgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgcmVzdG9yZUNv
bnRleHQoKTsKKyAgICB9OworfQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xFeHRMb3NlQ29udGV4dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xFeHRMb3NlQ29udGV4dC5pZGwJKHJldmlzaW9uIDEwMDE5NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0TG9zZUNvbnRleHQuaWRsCSh3b3JraW5nIGNv
cHkpCkBAIC0yOCw3ICsyOCw3IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgQ29uZGl0aW9uYWw9
V0VCR0wsCiAgICAgICAgIEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbENvbnRleHQsCiAgICAgICAg
IE9taXRDb25zdHJ1Y3RvcgotICAgIF0gV2ViS2l0TG9zZUNvbnRleHQgeworICAgIF0gV2ViR0xF
eHRMb3NlQ29udGV4dCB7CiAgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQgbG9zZUNv
bnRleHQoKTsKICAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCByZXN0b3JlQ29udGV4
dCgpOwogICAgIH07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHJldmlzaW9uIDEwMDUzOCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTU5LDEzICs1OSwxMyBAQAogI2luY2x1ZGUgIldlYkdMQ29udGV4dEV2ZW50LmgiCiAj
aW5jbHVkZSAiV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5oIgogI2luY2x1ZGUgIldlYkdMRGVidWdT
aGFkZXJzLmgiCisjaW5jbHVkZSAiV2ViR0xFeHRMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIldl
YkdMRnJhbWVidWZmZXIuaCIKICNpbmNsdWRlICJXZWJHTFByb2dyYW0uaCIKICNpbmNsdWRlICJX
ZWJHTFJlbmRlcmJ1ZmZlci5oIgogI2luY2x1ZGUgIldlYkdMU2hhZGVyLmgiCiAjaW5jbHVkZSAi
V2ViR0xUZXh0dXJlLmgiCiAjaW5jbHVkZSAiV2ViR0xVbmlmb3JtTG9jYXRpb24uaCIKLSNpbmNs
dWRlICJXZWJLaXRMb3NlQ29udGV4dC5oIgogCiAjaW5jbHVkZSA8d3RmL0J5dGVBcnJheS5oPgog
I2luY2x1ZGUgPHd0Zi9Pd25BcnJheVB0ci5oPgpAQCAtMjExMywxMCArMjExMywxMiBAQCBXZWJH
TEV4dGVuc2lvbiogV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpnCiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuIG1fb2VzVmVydGV4QXJyYXlPYmplY3QuZ2V0KCk7CiAgICAgfQotICAgIGlmIChlcXVh
bElnbm9yaW5nQ2FzZShuYW1lLCAiV0VCS0lUX2xvc2VfY29udGV4dCIpKSB7Ci0gICAgICAgIGlm
ICghbV93ZWJraXRMb3NlQ29udGV4dCkKLSAgICAgICAgICAgIG1fd2Via2l0TG9zZUNvbnRleHQg
PSBXZWJLaXRMb3NlQ29udGV4dDo6Y3JlYXRlKHRoaXMpOwotICAgICAgICByZXR1cm4gbV93ZWJr
aXRMb3NlQ29udGV4dC5nZXQoKTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgIldF
QkdMX0VYVF9sb3NlX2NvbnRleHQiKQorICAgICAgICAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgYWZ0
ZXIgYSBjZXJ0YWluIGdyYWNlIHBlcmlvZC4KKyAgICAgICAgfHwgZXF1YWxJZ25vcmluZ0Nhc2Uo
bmFtZSwgIldFQktJVF9sb3NlX2NvbnRleHQiKSkgeworICAgICAgICBpZiAoIW1fd2ViZ2xFeHRM
b3NlQ29udGV4dCkKKyAgICAgICAgICAgIG1fd2ViZ2xFeHRMb3NlQ29udGV4dCA9IFdlYkdMRXh0
TG9zZUNvbnRleHQ6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgcmV0dXJuIG1fd2ViZ2xFeHRMb3Nl
Q29udGV4dC5nZXQoKTsKICAgICB9CiAKICAgICBpZiAoYWxsb3dQcml2aWxlZ2VkRXh0ZW5zaW9u
cygpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0Nv
bnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaAkocmV2aXNpb24gMTAwNTM4KQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDcg
KzYyLDcgQEAgY2xhc3MgV2ViR0xTaGFkZXI7CiBjbGFzcyBXZWJHTFRleHR1cmU7CiBjbGFzcyBX
ZWJHTFVuaWZvcm1Mb2NhdGlvbjsKIGNsYXNzIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVM7Ci1j
bGFzcyBXZWJLaXRMb3NlQ29udGV4dDsKK2NsYXNzIFdlYkdMRXh0TG9zZUNvbnRleHQ7CiAKIHR5
cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKQEAgLTQ4Miw3ICs0ODIsNyBAQCBwdWJsaWM6CiAg
ICAgT3duUHRyPE9FU1RleHR1cmVGbG9hdD4gbV9vZXNUZXh0dXJlRmxvYXQ7CiAgICAgT3duUHRy
PE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXM+IG1fb2VzU3RhbmRhcmREZXJpdmF0aXZlczsKICAgICBP
d25QdHI8T0VTVmVydGV4QXJyYXlPYmplY3Q+IG1fb2VzVmVydGV4QXJyYXlPYmplY3Q7Ci0gICAg
T3duUHRyPFdlYktpdExvc2VDb250ZXh0PiBtX3dlYmtpdExvc2VDb250ZXh0OworICAgIE93blB0
cjxXZWJHTEV4dExvc2VDb250ZXh0PiBtX3dlYmdsRXh0TG9zZUNvbnRleHQ7CiAgICAgT3duUHRy
PFdlYkdMRGVidWdSZW5kZXJlckluZm8+IG1fd2ViZ2xEZWJ1Z1JlbmRlcmVySW5mbzsKICAgICBP
d25QdHI8V2ViR0xEZWJ1Z1NoYWRlcnM+IG1fd2ViZ2xEZWJ1Z1NoYWRlcnM7CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5jcHAJKHJl
dmlzaW9uIDEwMDUzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VD
b250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2NyArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0g
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKFdFQkdMKQotCi0jaW5jbHVkZSAiV2ViS2l0TG9z
ZUNvbnRleHQuaCIKLQotI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLVdlYktpdExvc2VDb250ZXh0OjpXZWJLaXRMb3NlQ29udGV4dChX
ZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCi0gICAgOiBXZWJHTEV4dGVuc2lvbihjb250
ZXh0KQotewotfQotCi1XZWJLaXRMb3NlQ29udGV4dDo6fldlYktpdExvc2VDb250ZXh0KCkKLXsK
LX0KLQotV2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5hbWUgV2ViS2l0TG9zZUNvbnRleHQ6Omdl
dE5hbWUoKSBjb25zdAotewotICAgIHJldHVybiBXZWJLaXRMb3NlQ29udGV4dE5hbWU7Ci19Ci0K
LVBhc3NPd25QdHI8V2ViS2l0TG9zZUNvbnRleHQ+IFdlYktpdExvc2VDb250ZXh0OjpjcmVhdGUo
V2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQotewotICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgV2ViS2l0TG9zZUNvbnRleHQoY29udGV4dCkpOwotfQotCi12b2lkIFdlYktpdExvc2VDb250
ZXh0Ojpsb3NlQ29udGV4dCgpCi17Ci0gICAgbV9jb250ZXh0LT5mb3JjZUxvc3RDb250ZXh0KFdl
YkdMUmVuZGVyaW5nQ29udGV4dDo6U3ludGhldGljTG9zdENvbnRleHQpOwotfQotCi12b2lkIFdl
YktpdExvc2VDb250ZXh0OjpyZXN0b3JlQ29udGV4dCgpCi17Ci0gICAgbV9jb250ZXh0LT5mb3Jj
ZVJlc3RvcmVDb250ZXh0KCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlm
IC8vIEVOQUJMRShXRUJHTCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktp
dExvc2VDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
V2ViS2l0TG9zZUNvbnRleHQuaAkocmV2aXNpb24gMTAwNTM4KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1MiAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJLaXRMb3NlQ29udGV4dF9oCi0jZGVmaW5lIFdlYktp
dExvc2VDb250ZXh0X2gKLQotI2luY2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCi0jaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBXZWJHTFJl
bmRlcmluZ0NvbnRleHQ7Ci0KLWNsYXNzIFdlYktpdExvc2VDb250ZXh0IDogcHVibGljIFdlYkdM
RXh0ZW5zaW9uIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxXZWJLaXRMb3NlQ29u
dGV4dD4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwotCi0gICAgdmlydHVhbCB+V2Vi
S2l0TG9zZUNvbnRleHQoKTsKLSAgICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNv
bnN0OwotCi0gICAgdm9pZCBsb3NlQ29udGV4dCgpOwotICAgIHZvaWQgcmVzdG9yZUNvbnRleHQo
KTsKLQotcHJpdmF0ZToKLSAgICBXZWJLaXRMb3NlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRl
eHQqKTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFdlYktpdExv
c2VDb250ZXh0X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VD
b250ZXh0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJL
aXRMb3NlQ29udGV4dC5pZGwJKHJldmlzaW9uIDEwMDUzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSwzNSAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotbW9kdWxlIGh0bWwgewotICAgIGludGVyZmFjZSBbCi0gICAgICAgIENv
bmRpdGlvbmFsPVdFQkdMLAotICAgICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxDb250ZXh0
LAotICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIFdlYktpdExvc2VDb250ZXh0IHsKLSAg
ICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCBsb3NlQ29udGV4dCgpOwotICAgICAgICBb
U3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHJlc3RvcmVDb250ZXh0KCk7Ci0gICAgfTsKLX0KSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDEwMDU0MikKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDExLTExLTE2ICBLZW5uZXRoIFJ1c3NlbGwgIDxr
YnJAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZW5hbWUgV0VCS0lUX2xvc2VfY29udGV4dCB0byBX
RUJHTF9FWFRfbG9zZV9jb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MTg3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvV2ViR0xDb250ZXh0RXZlbnQuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWRlc3Ryb3llZC1jcmFzaC5odG1s
OgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQtbG9zdC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1sb3N0LXJlc3RvcmVkLmh0bWw6
CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1sb3N0Lmh0bWw6CisKIDIwMTEt
MTEtMTYgIE1pY2hhZWwgTm9yZG1hbiAgPG1pY2hhZWxuQGdvb2dsZS5jb20+CiAKICAgICAgICAg
QXBwbGljYXRpb25DYWNoZSBtYW5pZmVzdCBzaG91bGQgd29yayB3aXRoIGFueSBNSU1FIHR5cGUu
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9XZWJHTENvbnRleHRFdmVudC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL1dlYkdMQ29u
dGV4dEV2ZW50Lmh0bWwJKHJldmlzaW9uIDEwMDUzOCkKKysrIExheW91dFRlc3RzL2Zhc3QvY2Fu
dmFzL3dlYmdsL1dlYkdMQ29udGV4dEV2ZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE3LDkg
KzE3LDkgQEAgZnVuY3Rpb24gY3JlYXRlTmV3Q2FudmFzKCkKICAgICBjYW52YXMuaGVpZ2h0ID0g
MTsKIAogICAgIGNvbnRleHQgPSBXZWJHTFRlc3RVdGlscy5jcmVhdGUzRENvbnRleHQoY2FudmFz
KTsKLSAgICBleHRlbnNpb24gPSBjb250ZXh0LmdldEV4dGVuc2lvbigiV0VCS0lUX2xvc2VfY29u
dGV4dCIpOworICAgIGV4dGVuc2lvbiA9IGNvbnRleHQuZ2V0RXh0ZW5zaW9uKCJXRUJHTF9FWFRf
bG9zZV9jb250ZXh0Iik7CiAgICAgaWYgKCFleHRlbnNpb24pIHsKLSAgICAgICAgZGVidWcoIkNv
dWxkIG5vdCBmaW5kIHRoZSBXRUJLSVRfbG9zZV9jb250ZXh0IGV4dGVuc2lvbi4iKTsKKyAgICAg
ICAgZGVidWcoIkNvdWxkIG5vdCBmaW5kIHRoZSBXRUJHTF9FWFRfbG9zZV9jb250ZXh0IGV4dGVu
c2lvbi4iKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIH0KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvY2FudmFzL3dlYmdsL2NvbnRleHQtZGVzdHJveWVkLWNyYXNoLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1kZXN0cm95ZWQtY3Jhc2gu
aHRtbAkocmV2aXNpb24gMTAwNTM4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
Y29udGV4dC1kZXN0cm95ZWQtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIs
NyBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKQogewogICAgIGNhbnZhcyA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwogICAgIGNvbnRleHQgPSBjcmVhdGUzRENvbnRleHQo
Y2FudmFzKTsKLSAgICBleHRlbnNpb24gPSBjb250ZXh0LmdldEV4dGVuc2lvbigiV0VCS0lUX2xv
c2VfY29udGV4dCIpOworICAgIGV4dGVuc2lvbiA9IGNvbnRleHQuZ2V0RXh0ZW5zaW9uKCJXRUJH
TF9FWFRfbG9zZV9jb250ZXh0Iik7CiAgICAgCiAgICAgY2FudmFzID0gbnVsbDsKICAgICBjb250
ZXh0ID0gbnVsbDsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQt
bG9zdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvY29udGV4dC1sb3N0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTAwNTM4KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1sb3N0LWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMTY4LDcgKzE2OCw3IEBAIFBBU1MgZ2wuZ2V0VW5pZm9ybShwcm9ncmFt
LCB1bmlmb3JtTG9jYXQKIFBBU1MgZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICd2UG9z
aXRpb24nKSBpcyBudWxsCiBQQVNTIGdsLmdldFZlcnRleEF0dHJpYigwLCBnbC5WRVJURVhfQVRU
UklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HKSBpcyBudWxsCiBQQVNTIGdsLmdldFN1cHBvcnRlZEV4
dGVuc2lvbnMoKSBpcyBudWxsCi1QQVNTIGdsLmdldEV4dGVuc2lvbignV0VCS0lUX2xvc2VfY29u
dGV4dCcpIGlzIG51bGwKK1BBU1MgZ2wuZ2V0RXh0ZW5zaW9uKCdXRUJHTF9FWFRfbG9zZV9jb250
ZXh0JykgaXMgbnVsbAogUEFTUyBnbC5pc0J1ZmZlcihidWZmZXIpIGlzIGZhbHNlCiBQQVNTIGds
LmlzRW5hYmxlZChnbC5CTEVORCkgaXMgZmFsc2UKIFBBU1MgZ2wuaXNGcmFtZWJ1ZmZlcihmcmFt
ZWJ1ZmZlcikgaXMgZmFsc2UKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2Nv
bnRleHQtbG9zdC1yZXN0b3JlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL2NvbnRleHQtbG9zdC1yZXN0b3JlZC5odG1sCShyZXZpc2lvbiAxMDA1Mzgp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWxvc3QtcmVzdG9yZWQu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCw3ICs4LDcgQEAgdmFyIHd0dSA9IFdlYkdMVGVzdFV0
aWxzOwogdmFyIGNhbnZhczsKIHZhciBnbDsKIHZhciBzaG91bGRHZW5lcmF0ZUdMRXJyb3I7Ci12
YXIgZXh0ZW5zaW9uX25hbWUgPSAiV0VCS0lUX2xvc2VfY29udGV4dCI7Cit2YXIgZXh0ZW5zaW9u
X25hbWUgPSAiV0VCR0xfRVhUX2xvc2VfY29udGV4dCI7CiB2YXIgZXh0ZW5zaW9uOwogdmFyIGJ1
ZmZlck9iamVjdHM7CiB2YXIgcHJvZ3JhbTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFz
L3dlYmdsL2NvbnRleHQtbG9zdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL2NvbnRleHQtbG9zdC5odG1sCShyZXZpc2lvbiAxMDA1MzgpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWxvc3QuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtOCw3ICs4LDcgQEAgdmFyIHd0dTsKIHZhciBjYW52YXM7CiB2YXIgZ2w7CiB2YXIgc2hv
dWxkR2VuZXJhdGVHTEVycm9yOwotdmFyIGV4dGVuc2lvbl9uYW1lID0gIldFQktJVF9sb3NlX2Nv
bnRleHQiOwordmFyIGV4dGVuc2lvbl9uYW1lID0gIldFQkdMX0VYVF9sb3NlX2NvbnRleHQiOwog
dmFyIGV4dGVuc2lvbjsKIAogdmFyIGJ1ZmZlcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118163</attachid>
            <date>2011-12-06 19:52:40 -0800</date>
            <delta_ts>2011-12-07 15:35:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71870-20111206195239.patch</filename>
            <type>text/plain</type>
            <size>50457</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjIwOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDExLTEyLTA2ICBLZW5uZXRo
IFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZW5hbWUgV0VCS0lUX2xvc2Vf
Y29udGV4dCB0byBXRUJLSVRfV0VCR0xfbG9zZV9jb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTg3MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBsYXJnZWx5IGRvbmUgd2l0aCBkby13
ZWJjb3JlLXJlbmFtZSB3aXRoIGEgY291cGxlIG9mCisgICAgICAgIG5lY2Vzc2FyeSBtYW51YWwg
Zml4dXBzLiBSYW4gV2ViR0wgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJn
ZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvVjhPYmplY3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMRXh0ZW5zaW9uLmg6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250
ZXh0LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMTG9zZUNvbnRleHQ6OldlYkdMTG9zZUNv
bnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xMb3NlQ29udGV4dDo6fldlYkdMTG9zZUNv
bnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xMb3NlQ29udGV4dDo6Z2V0TmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTExvc2VDb250ZXh0OjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xMb3NlQ29udGV4dDo6bG9zZUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xMb3NlQ29udGV4dDo6cmVzdG9yZUNvbnRleHQpOgorICAgICAgICAqIGh0bWwvY2FudmFz
L1dlYkdMTG9zZUNvbnRleHQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViS2l0TG9zZUNvbnRleHQuaC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTExvc2VD
b250ZXh0LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViS2l0
TG9zZUNvbnRleHQuaWRsLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4
dGVuc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFN1
cHBvcnRlZEV4dGVuc2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0OjptYXliZVJlc3RvcmVDb250ZXh0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4
dC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5pZGw6
IFJlbW92ZWQuCisKIDIwMTEtMTItMDYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVGhlIGNvZGUgdG8gY3JlYXRlIGEgTm9kZUxpc3RzTm9kZURhdGEgaXMgZHVw
bGljYXRlZCBldmVyeXdoZXJlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTAy
MjA5KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTIxNTQsNiArMjE1NCw3IEBAIElGIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwvY2FudmFz
L1dlYkdMRGVidWdTaGFkZXJzLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVm
ZmVyLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwCisgICAgICAgIGh0
bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdM
T2JqZWN0LmNwcAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCiAgICAgICAg
IGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmNwcApAQCAtMjE2Niw3ICsyMTY3LDYgQEAg
SUYgKEVOQUJMRV9XRUJHTCkKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0
aXZlcy5jcHAKICAgICAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmNwcAogICAgICAg
ICBodG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKLSAgICAgICAgaHRtbC9jYW52
YXMvV2ViS2l0TG9zZUNvbnRleHQuY3BwCiAKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQU5H
TEVXZWJLaXRCcmlkZ2UuY3BwCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmNwcApAQCAtMjE4NSw2ICsyMTg1LDcgQEAgSUYgKEVOQUJMRV9XRUJHTCkKICAgICAg
ICAgaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwKICAgICAgICAgaHRtbC9j
YW52YXMvV2ViR0xEZWJ1Z1NoYWRlcnMuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRnJh
bWVidWZmZXIuaWRsCisgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuaWRsCiAg
ICAgICAgIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5pZGwKICAgICAgICAgaHRtbC9jYW52YXMv
V2ViR0xSZW5kZXJidWZmZXIuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5n
Q29udGV4dC5pZGwKQEAgLTIxOTIsNyArMjE5Myw2IEBAIElGIChFTkFCTEVfV0VCR0wpCiAgICAg
ICAgIGh0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvV2Vi
R0xVbmlmb3JtTG9jYXRpb24uaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMuaWRsCi0gICAgICAgIGh0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0Lmlk
bAogICAgICkKIEVORElGICgpCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQko
cmV2aXNpb24gMTAyMjA5KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQko
d29ya2luZyBjb3B5KQpAQCAtNTMxLDYgKzUzMSw3IEBAIERPTV9DTEFTU0VTID0gXAogICAgIFdl
YkdMQ29udGV4dEF0dHJpYnV0ZXMgXAogICAgIFdlYkdMQ29udGV4dEV2ZW50IFwKICAgICBXZWJH
TEZyYW1lYnVmZmVyIFwKKyAgICBXZWJHTExvc2VDb250ZXh0IFwKICAgICBXZWJHTFByb2dyYW0g
XAogICAgIFdlYkdMUmVuZGVyYnVmZmVyIFwKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQgXApA
QCAtNTQ4LDcgKzU0OSw2IEBAIERPTV9DTEFTU0VTID0gXAogICAgIFdlYktpdENTU01hdHJpeCBc
CiAgICAgV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUgXAogICAgIFdlYktpdEZsYWdzIFwKLSAgICBX
ZWJLaXRMb3NlQ29udGV4dCBcCiAgICAgV2ViS2l0TXV0YXRpb25PYnNlcnZlciBcCiAgICAgV2Vi
S2l0UG9pbnQgXAogICAgIFdlYktpdFRyYW5zaXRpb25FdmVudCBcCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9EZXJpdmVkU291cmNlcy5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVy
aXZlZFNvdXJjZXMucHJpCShyZXZpc2lvbiAxMDIyMDkpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTIyOCw2ICsyMjgsNyBAQCBJRExfQklO
RElOR1MgKz0gXAogICAgIGh0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsIFwK
ICAgICBodG1sL2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5pZGwgXAogICAgIGh0bWwvY2FudmFz
L1dlYkdMRnJhbWVidWZmZXIuaWRsIFwKKyAgICBodG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0
LmlkbCBcCiAgICAgaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmlkbCBcCiAgICAgaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJidWZmZXIuaWRsIFwKICAgICBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuaWRsIFwKQEAgLTIzNiw3ICsyMzcsNiBAQCBJRExfQklORElOR1MgKz0gXAogICAg
IGh0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5pZGwgXAogICAgIGh0bWwvY2FudmFzL1dlYkdMVW5p
Zm9ybUxvY2F0aW9uLmlkbCBcCiAgICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUy5pZGwgXAotICAgIGh0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmlkbCBcCiAgICAg
aHRtbC9jYW52YXMvVWludDhBcnJheS5pZGwgXAogICAgIGh0bWwvY2FudmFzL1VpbnQzMkFycmF5
LmlkbCBcCiAgICAgaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsIFwKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTAyMjA5KQorKysgU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtNDk5NCw2ICs0OTk0LDggQEAg
d2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTEZy
YW1lYnVmZmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMR2V0SW5mby5oIFwKKwlTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0LmNwcCBcCisJU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTE9iamVjdC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMT2JqZWN0LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUHJvZ3Jh
bS5jcHAgXApAQCAtNTAxOCw4ICs1MDIwLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3Vy
Y2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQuaCBcCiAJU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYktpdExvc2VDb250ZXh0LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAgXApJbmRleDogU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCShyZXZpc2lvbiAxMDIyMDkpCisrKyBTb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNjMwLDYgKzM2MzAsNyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVf
V0VCR0w9MSkgewogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5oIFwKICAgICAg
ICAgaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oIFwKICAgICAgICAgaHRtbC9jYW52YXMv
V2ViR0xHZXRJbmZvLmggXAorICAgICAgICBodG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0Lmgg
XAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaCBcCiAgICAgICAgIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyYnVmZmVyLmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFJlbmRl
cmluZ0NvbnRleHQuaCBcCkBAIC0zNjQwLDcgKzM2NDEsNiBAQCBjb250YWlucyhERUZJTkVTLCBF
TkFCTEVfV0VCR0w9MSkgewogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuaCBcCiAg
ICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxvY2F0aW9uLmggXAogICAgICAgICBodG1s
L2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmggXAotICAgICAgICBodG1sL2NhbnZh
cy9XZWJLaXRMb3NlQ29udGV4dC5oIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVX
ZWJLaXRCcmlkZ2UuaCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5o
IFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBcCkBAIC0z
NjY3LDYgKzM2NjcsNyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0VCR0w9MSkgewogICAg
ICAgICBodG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5jcHAgXAogICAgICAgICBodG1sL2NhbnZh
cy9XZWJHTEZyYW1lYnVmZmVyLmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMR2V0SW5m
by5jcHAgXAorICAgICAgICBodG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0LmNwcCBcCiAgICAg
ICAgIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9X
ZWJHTFJlbmRlcmJ1ZmZlci5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHQuY3BwIFwKQEAgLTM2NzcsNyArMzY3OCw2IEBAIGNvbnRhaW5zKERFRklORVMsIEVO
QUJMRV9XRUJHTD0xKSB7CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVGV4dHVyZS5jcHAgXAog
ICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5jcHAgXAogICAgICAgICBo
dG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcCBcCi0gICAgICAgIGh0bWwv
Y2FudmFzL1dlYktpdExvc2VDb250ZXh0LmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0FOR0xFV2ViS2l0QnJpZGdlLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dDNELmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5n
QnVmZmVyLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiAxMDIyMDkpCisrKyBT
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTEzNzcsNiArMTM3
Nyw3IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5p
ZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRGVidWdTaGFkZXJzLmlkbCcsCiAg
ICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5pZGwnLAorICAgICAgICAg
ICAgJ2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuaWRsJywKICAgICAgICAgICAgICdodG1s
L2NhbnZhcy9XZWJHTFByb2dyYW0uaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJH
TFJlbmRlcmJ1ZmZlci5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dC5pZGwnLApAQCAtMTM4NCw3ICsxMzg1LDYgQEAKICAgICAgICAgICAgICdodG1s
L2NhbnZhcy9XZWJHTFRleHR1cmUuaWRsJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJH
TFVuaWZvcm1Mb2NhdGlvbi5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMVmVy
dGV4QXJyYXlPYmplY3RPRVMuaWRsJywKLSAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJLaXRM
b3NlQ29udGV4dC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5p
ZGwnLAogICAgICAgICAgICAgJ2h0bWwvdHJhY2svVHJhY2tFdmVudC5pZGwnLAogICAgICAgICAg
ICAgJ2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuaWRsJywKQEAgLTU3NDIsNiArNTc0Miw4
IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oJywKICAgICAg
ICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwJywKICAgICAgICAgICAgICdodG1s
L2NhbnZhcy9XZWJHTEdldEluZm8uaCcsCisgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xM
b3NlQ29udGV4dC5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRl
eHQuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xPYmplY3QuY3BwJywKICAgICAg
ICAgICAgICdodG1sL2NhbnZhcy9XZWJHTE9iamVjdC5oJywKICAgICAgICAgICAgICdodG1sL2Nh
bnZhcy9XZWJHTFByb2dyYW0uY3BwJywKQEAgLTU3NTgsOCArNTc2MCw2IEBACiAgICAgICAgICAg
ICAnaHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uaCcsCiAgICAgICAgICAgICAnaHRt
bC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAnLAogICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCcsCi0gICAgICAgICAgICAnaHRt
bC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQuY3BwJywKLSAgICAgICAgICAgICdodG1sL2NhbnZh
cy9XZWJLaXRMb3NlQ29udGV4dC5oJywKICAgICAgICAgICAgICdodG1sL3BhcnNlci9DU1NQcmVs
b2FkU2Nhbm5lci5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL0NTU1ByZWxvYWRTY2Fu
bmVyLmgnLAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNw
cCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAxMDIyMDkpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTMxOTcsMTAgKzMxOTcs
MTAgQEAKIAkJOTNGMTlCMTUwODI0NUU1OTAwMUU5QUJDIC8qIENvY29hLmZyYW1ld29yayBpbiBG
cmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzI4Njk1MDI4
NDZEQ0QwMTg2MzVDQSAvKiBDb2NvYS5mcmFtZXdvcmsgKi87IH07CiAJCTkzRjE5QjE2MDgyNDVF
NTkwMDFFOUFCQyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGODIxNjI5OTAyOUY0RkI1MDEwMDAxMzEg
LyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovOyB9OwogCQk5M0YxOUIxNzA4MjQ1RTU5MDAx
RTlBQkMgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjFEMzFBMDU1OENDNUMwMDgyMUJDMCAvKiBsaWJpY3Vjb3Jl
LmR5bGliICovOyB9OwotCQk5M0YxRDVCQTEyRDUzMkM0MDA4MzJCRUMgLyogV2ViS2l0TG9zZUNv
bnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNGMUQ1QjcxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0LmNwcCAqLzsgfTsK
LQkJOTNGMUQ1QkIxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250ZXh0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YxRDVCODEyRDUzMkM0
MDA4MzJCRUMgLyogV2ViS2l0TG9zZUNvbnRleHQuaCAqLzsgfTsKLQkJOTNGMUQ1QzAxMkQ1MzM1
NjAwODMyQkVDIC8qIEpTV2ViS2l0TG9zZUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1QkUxMkQ1MzM1NjAwODMyQkVDIC8qIEpT
V2ViS2l0TG9zZUNvbnRleHQuY3BwICovOyB9OwotCQk5M0YxRDVDMTEyRDUzMzU2MDA4MzJCRUMg
LyogSlNXZWJLaXRMb3NlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTNGMUQ1QkYxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViS2l0TG9zZUNv
bnRleHQuaCAqLzsgfTsKKwkJOTNGMUQ1QkExMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNv
bnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNGMUQ1QjcxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuY3BwICovOyB9Owor
CQk5M0YxRDVCQjEyRDUzMkM0MDA4MzJCRUMgLyogV2ViR0xMb3NlQ29udGV4dC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1QjgxMkQ1MzJDNDAw
ODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuaCAqLzsgfTsKKwkJOTNGMUQ1QzAxMkQ1MzM1NjAw
ODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YxRDVCRTEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJH
TExvc2VDb250ZXh0LmNwcCAqLzsgfTsKKwkJOTNGMUQ1QzExMkQ1MzM1NjAwODMyQkVDIC8qIEpT
V2ViR0xMb3NlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNGMUQ1QkYxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29udGV4dC5o
ICovOyB9OwogCQk5M0Y2RjFFRDEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGNkYx
RUExMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmNwcCAqLzsgfTsKIAkJOTNG
NkYxRUUxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y2RjFFQjEyN0Y3MEIxMDA1NUNC
MDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCAqLzsgfTsKIAkJOTNGOTI1NDMwRjdFRjVCODAwN0Uz
N0M5IC8qIENoZWNrZWRSYWRpb0J1dHRvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjkyNTQxMEY3RUY1QjgwMDdFMzdDOSAvKiBDaGVja2VkUmFk
aW9CdXR0b25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTEwMzkyLDExICsxMDM5MiwxMSBAQAogCQk5M0YxOUIxOTA4MjQ1RTU5MDAxRTlBQkMg
LyogSW5mby5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7IHBhdGggPSBJbmZvLnBsaXN0
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsK
IAkJOTNGMTlCMUEwODI0NUU1QTAwMUU5QUJDIC8qIFdlYkNvcmUuZnJhbWV3b3JrICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29y
azsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gV2ViQ29yZS5mcmFtZXdvcms7IHNvdXJjZVRy
ZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTkzRjFEMzFBMDU1OENDNUMwMDgyMUJDMCAv
KiBsaWJpY3Vjb3JlLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IG5hbWUgPSBsaWJpY3Vjb3JlLmR5
bGliOyBwYXRoID0gL3Vzci9saWIvbGliaWN1Y29yZS5keWxpYjsgc291cmNlVHJlZSA9ICI8YWJz
b2x1dGU+IjsgfTsKLQkJOTNGMUQ1QjcxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VDb250
ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFdlYktpdExvc2VD
b250ZXh0LmNwcDsgcGF0aCA9IGNhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzRjFENUI4MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJLaXRM
b3NlQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJLaXRMb3Nl
Q29udGV4dC5oOyBwYXRoID0gY2FudmFzL1dlYktpdExvc2VDb250ZXh0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTkzRjFENUI5MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJLaXRMb3Nl
Q29udGV4dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViS2l0TG9zZUNvbnRleHQuaWRs
OyBwYXRoID0gY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJOTNGMUQ1QkUxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViS2l0TG9zZUNvbnRl
eHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRMb3Nl
Q29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzRjFENUJGMTJENTMz
NTYwMDgzMkJFQyAvKiBKU1dlYktpdExvc2VDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTV2ViS2l0TG9zZUNvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTNGMUQ1QjcxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViR0xMb3NlQ29udGV4dC5j
cHA7IHBhdGggPSBjYW52YXMvV2ViR0xMb3NlQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTkzRjFENUI4MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkdMTG9zZUNvbnRleHQuaDsg
cGF0aCA9IGNhbnZhcy9XZWJHTExvc2VDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTkzRjFENUI5MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0LmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTExvc2VDb250ZXh0LmlkbDsgcGF0aCA9IGNhbnZh
cy9XZWJHTExvc2VDb250ZXh0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNG
MUQ1QkUxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29udGV4dC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMTG9zZUNvbnRleHQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0YxRDVCRjEyRDUzMzU2MDA4MzJCRUMgLyogSlNX
ZWJHTExvc2VDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2Vi
R0xMb3NlQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y2RjFFQTEy
N0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gV2ViR0xDb250ZXh0RXZlbnQuY3BwOyBwYXRoID0gY2FudmFz
L1dlYkdMQ29udGV4dEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNG
NkYxRUIxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkdMQ29udGV4dEV2ZW50Lmg7IHBhdGggPSBjYW52YXMv
V2ViR0xDb250ZXh0RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGNkYx
RUMxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IG5hbWUgPSBXZWJHTENvbnRleHRFdmVudC5pZGw7IHBhdGggPSBjYW52YXMvV2ViR0xDb250
ZXh0RXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ5OTAsOSArMTQ5
OTAsOSBAQAogCQkJCTc3QTE3QTc0MTJGMjg2NDIwMDRFMDJGNiAvKiBXZWJHTFZlcnRleEFycmF5
T2JqZWN0T0VTLmNwcCAqLywKIAkJCQk3N0ExN0E3NTEyRjI4NjQyMDA0RTAyRjYgLyogV2ViR0xW
ZXJ0ZXhBcnJheU9iamVjdE9FUy5oICovLAogCQkJCTc3QTE3QTc2MTJGMjg2NDIwMDRFMDJGNiAv
KiBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbCAqLywKLQkJCQk5M0YxRDVCNzEyRDUzMkM0
MDA4MzJCRUMgLyogV2ViS2l0TG9zZUNvbnRleHQuY3BwICovLAotCQkJCTkzRjFENUI4MTJENTMy
QzQwMDgzMkJFQyAvKiBXZWJLaXRMb3NlQ29udGV4dC5oICovLAotCQkJCTkzRjFENUI5MTJENTMy
QzQwMDgzMkJFQyAvKiBXZWJLaXRMb3NlQ29udGV4dC5pZGwgKi8sCisJCQkJOTNGMUQ1QjcxMkQ1
MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuY3BwICovLAorCQkJCTkzRjFENUI4MTJE
NTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0LmggKi8sCisJCQkJOTNGMUQ1QjkxMkQ1
MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuaWRsICovLAogCQkJKTsKIAkJCW5hbWUg
PSBjYW52YXM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTc5MTEsNiArMTc5MTEs
OCBAQAogCQkJCTZFM0ZBRDM3MTQ3MzNGNDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29tcHJlc3NlZFRl
eHR1cmVzLmggKi8sCiAJCQkJNDlDN0I5ODQxMDQyRDJEMzAwMDlENDQ3IC8qIEpTV2ViR0xGcmFt
ZWJ1ZmZlci5jcHAgKi8sCiAJCQkJNDlDN0I5ODUxMDQyRDJEMzAwMDlENDQ3IC8qIEpTV2ViR0xG
cmFtZWJ1ZmZlci5oICovLAorCQkJCTkzRjFENUJFMTJENTMzNTYwMDgzMkJFQyAvKiBKU1dlYkdM
TG9zZUNvbnRleHQuY3BwICovLAorCQkJCTkzRjFENUJGMTJENTMzNTYwMDgzMkJFQyAvKiBKU1dl
YkdMTG9zZUNvbnRleHQuaCAqLywKIAkJCQk0OUM3Qjk4ODEwNDJEMkQzMDAwOUQ0NDcgLyogSlNX
ZWJHTFByb2dyYW0uY3BwICovLAogCQkJCTQ5QzdCOTg5MTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dl
YkdMUHJvZ3JhbS5oICovLAogCQkJCTQ5QzdCOThBMTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdM
UmVuZGVyYnVmZmVyLmNwcCAqLywKQEAgLTE3OTI5LDggKzE3OTMxLDYgQEAKIAkJCQkzMTk0NjE2
MTEzMDIwQjIwMDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb24uaCAqLywKIAkJCQkzMTk0NjFG
QzEzMDIyQkI4MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmNwcCAqLywKIAkJCQkz
MTk0NjFGRDEzMDIyQkI4MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0LmggKi8sCi0J
CQkJOTNGMUQ1QkUxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViS2l0TG9zZUNvbnRleHQuY3BwICov
LAotCQkJCTkzRjFENUJGMTJENTMzNTYwMDgzMkJFQyAvKiBKU1dlYktpdExvc2VDb250ZXh0Lmgg
Ki8sCiAJCQkpOwogCQkJbmFtZSA9IEhUTUw7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtMjM1NzMsNiArMjM1NzMsNyBAQAogCQkJCTQ5QzdCOTk0MTA0MkQyRDMwMDA5RDQ0NyAvKiBK
U1dlYkdMQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RUU4QTc3MzEwRjgwM0YzMDA1QTRB
MjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3
Qjk5ODEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTEZyYW1lYnVmZmVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQk5M0YxRDVDMTEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJHTExvc2VDb250ZXh0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0OUM3Qjk5QzEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTFBy
b2dyYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QzdCOTlFMTA0MkQyRDMwMDA5RDQ0NyAvKiBK
U1dlYkdMUmVuZGVyYnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUVFRDE0NzEwNTE5Njk0
MDAwOTlGQUIgLyogSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovLApAQCAt
MjM1ODksNyArMjM1OTAsNiBAQAogCQkJCTQ5ODM5MTQwMEYxRTc2NzUwMEMyMzc4MiAvKiBKU1dl
YktpdENTU01hdHJpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2MTFFNUIwRTFDNERFMDAwRjZB
NTc5IC8qIEpTV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg5
ODc4NUI1MTIyQ0EyQTcwMDNBQUJEQSAvKiBKU1dlYktpdEZsYWdzLmggaW4gSGVhZGVycyAqLywK
LQkJCQk5M0YxRDVDMTEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJLaXRMb3NlQ29udGV4dC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQzZGMDkwMkQxNDMyN0Q0RjAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0
YXRpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk0QkQ3OUUwRjU1Qzk0QzAwNzQ3
ODI4IC8qIEpTV2ViS2l0UG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQzBGRjQwMEU0Q0VG
QUMwMDdENkZFNSAvKiBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNDU2Nyw3ICsyNDU2Nyw3IEBACiAJCQkJNDk4MzkxNTkwRjFFNzc2OTAwQzIzNzgyIC8qIFdl
YktpdENTU01hdHJpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5QUREMjMwQ0M0MDMyNjAwMDk4
QzRDIC8qIFdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4OTg3
ODU2NjEyMkNBMDY0MDAzQUFCREEgLyogV2ViS2l0RmxhZ3MuaCBpbiBIZWFkZXJzICovLAotCQkJ
CTkzRjFENUJCMTJENTMyQzQwMDgzMkJFQyAvKiBXZWJLaXRMb3NlQ29udGV4dC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOTNGMUQ1QkIxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUM2RjA5MDBGMTQzMjdCNjEwMDY4NTg0OSAvKiBXZWJLaXRN
dXRhdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0OTRCRDc5NTBGNTVDOEVFMDA3
NDc4MjggLyogV2ViS2l0UG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQzBGRjI1MEU0Q0VC
NkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLApAQCAt
MjY2NTEsNiArMjY2NTEsNyBAQAogCQkJCTQ5QzdCOTkzMTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dl
YkdMQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFRThBNzcyMTBGODAzRjMwMDVBNEEy
NCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlD
N0I5OTcxMDQyRDJEMzAwMDlENDQ3IC8qIEpTV2ViR0xGcmFtZWJ1ZmZlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQk5M0YxRDVDMDEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJHTExvc2VDb250ZXh0
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOTlCMTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dl
YkdMUHJvZ3JhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUM3Qjk5RDEwNDJEMkQzMDAwOUQ0
NDcgLyogSlNXZWJHTFJlbmRlcmJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUVFRDE0
NjEwNTE5Njk0MDAwOTlGQUIgLyogSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwIGluIFNvdXJj
ZXMgKi8sCkBAIC0yNjY3Miw3ICsyNjY3Myw2IEBACiAJCQkJNDk4MzkxM0YwRjFFNzY3NTAwQzIz
NzgyIC8qIEpTV2ViS2l0Q1NTTWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMxNjExRTVB
MEUxQzRERTAwMEY2QTU3OSAvKiBKU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTg5ODc4NUI0MTIyQ0EyQTcwMDNBQUJEQSAvKiBKU1dlYktpdEZsYWdzLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTkzRjFENUMwMTJENTMzNTYwMDgzMkJFQyAvKiBKU1dlYktp
dExvc2VDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM2RjA5MDJDMTQzMjdENEYwMDY4
NTg0OSAvKiBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QzZGMDkxN0YxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTRCRDc5RDBGNTVDOTRDMDA3NDc4MjggLyogSlNX
ZWJLaXRQb2ludC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3NDU4LDcgKzI3NDU4LDcgQEAKIAkJ
CQkzMTI4OEU3NDBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk0OTgzOTE1ODBGMUU3NzY5MDBDMjM3ODIgLyogV2ViS2l0Q1NT
TWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOUFERDgwMENDNDA5MjIwMDA5OEM0QyAv
KiBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5M0YxRDVC
QTEyRDUzMkM0MDA4MzJCRUMgLyogV2ViS2l0TG9zZUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8s
CisJCQkJOTNGMUQ1QkExMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQzZGMDkwMEUxNDMyN0I2MTAwNjg1ODQ5IC8qIFdlYktpdE11dGF0
aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFDMEZGMjQwRTRDRUI2RTAwN0Q2
RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkNG
MzMyRTBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIubW0gaW4gU291cmNlcyAqLywKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9t
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVu
ZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHJldmlzaW9uIDEwMjIwOSkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIkpTVWludDhBcnJheS5oIgogI2lu
Y2x1ZGUgIkpTV2ViR0xCdWZmZXIuaCIKICNpbmNsdWRlICJKU1dlYkdMRnJhbWVidWZmZXIuaCIK
KyNpbmNsdWRlICJKU1dlYkdMTG9zZUNvbnRleHQuaCIKICNpbmNsdWRlICJKU1dlYkdMUHJvZ3Jh
bS5oIgogI2luY2x1ZGUgIkpTV2ViR0xSZW5kZXJidWZmZXIuaCIKICNpbmNsdWRlICJKU1dlYkdM
U2hhZGVyLmgiCkBAIC01MCw3ICs1MSw2IEBACiAjaW5jbHVkZSAiSlNXZWJHTFVuaWZvcm1Mb2Nh
dGlvbi5oIgogI2luY2x1ZGUgIkpTV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oIgogI2luY2x1
ZGUgIkpTV2ViS2l0Q1NTTWF0cml4LmgiCi0jaW5jbHVkZSAiSlNXZWJLaXRMb3NlQ29udGV4dC5o
IgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiT0VTU3RhbmRhcmREZXJp
dmF0aXZlcy5oIgogI2luY2x1ZGUgIk9FU1RleHR1cmVGbG9hdC5oIgpAQCAtNjIsMTAgKzYyLDEw
IEBACiAjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKICNpbmNsdWRlICJXZWJHTEZyYW1lYnVm
ZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xHZXRJbmZvLmgiCisjaW5jbHVkZSAiV2ViR0xMb3NlQ29u
dGV4dC5oIgogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVy
aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCIKLSNp
bmNsdWRlICJXZWJLaXRMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4K
ICNpbmNsdWRlIDxydW50aW1lL0pTQXJyYXkuaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5o
PgpAQCAtMTgyLDggKzE4Miw4IEBAIHN0YXRpYyBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVj
LCBKU0QKICAgICBpZiAoIWV4dGVuc2lvbikKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogICAg
IHN3aXRjaCAoZXh0ZW5zaW9uLT5nZXROYW1lKCkpIHsKLSAgICBjYXNlIFdlYkdMRXh0ZW5zaW9u
OjpXZWJLaXRMb3NlQ29udGV4dE5hbWU6Ci0gICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2Jh
bE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViS2l0TG9zZUNvbnRleHQqPihleHRlbnNpb24pKTsKKyAg
ICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJLaXRXZWJHTExvc2VDb250ZXh0TmFtZToKKyAgICAg
ICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0aWNfY2FzdDxXZWJHTExvc2VD
b250ZXh0Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4dGVuc2lvbjo6T0VTU3RhbmRh
cmREZXJpdmF0aXZlc05hbWU6CiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGdsb2JhbE9iamVj
dCwgc3RhdGljX2Nhc3Q8T0VTU3RhbmRhcmREZXJpdmF0aXZlcyo+KGV4dGVuc2lvbikpOwogICAg
IGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1RleHR1cmVGbG9hdE5hbWU6CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20u
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdl
YkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHJldmlzaW9uIDEwMjIwOSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3Rv
bS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDYgQEAKICNpbmNsdWRlICJWOEFycmF5
QnVmZmVyVmlldy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4QmluZGlu
Z01hY3Jvcy5oIgotI2luY2x1ZGUgIlY4V2ViS2l0TG9zZUNvbnRleHQuaCIKICNpbmNsdWRlICJW
OEZsb2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIlY4SFRNTENhbnZhc0VsZW1lbnQuaCIKICNpbmNs
dWRlICJWOEhUTUxJbWFnZUVsZW1lbnQuaCIKQEAgLTYwLDYgKzU5LDcgQEAKICNpbmNsdWRlICJW
OFdlYkdMRGVidWdSZW5kZXJlckluZm8uaCIKICNpbmNsdWRlICJWOFdlYkdMRGVidWdTaGFkZXJz
LmgiCiAjaW5jbHVkZSAiVjhXZWJHTEZyYW1lYnVmZmVyLmgiCisjaW5jbHVkZSAiVjhXZWJHTExv
c2VDb250ZXh0LmgiCiAjaW5jbHVkZSAiVjhXZWJHTFByb2dyYW0uaCIKICNpbmNsdWRlICJWOFdl
YkdMUmVuZGVyYnVmZmVyLmgiCiAjaW5jbHVkZSAiVjhXZWJHTFNoYWRlci5oIgpAQCAtMTY5LDkg
KzE2OSw5IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOE9iamVjdCgKICAgICB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZXh0ZW5zaW9uT2JqZWN0OwogICAgIGNvbnN0IGNoYXIqIHJl
ZmVyZW5jZU5hbWUgPSAwOwogICAgIHN3aXRjaCAoZXh0ZW5zaW9uLT5nZXROYW1lKCkpIHsKLSAg
ICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJLaXRMb3NlQ29udGV4dE5hbWU6Ci0gICAgICAgIGV4
dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViS2l0TG9zZUNvbnRleHQqPihleHRl
bnNpb24pKTsKLSAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJ3ZWJLaXRMb3NlQ29udGV4dE5hbWUi
OworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYktpdFdlYkdMTG9zZUNvbnRleHROYW1lOgor
ICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PFdlYkdMTG9zZUNvbnRl
eHQqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJ3ZWJLaXRXZWJHTExv
c2VDb250ZXh0TmFtZSI7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246
Ok9FU1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1lOgogICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0
b1Y4KHN0YXRpY19jYXN0PE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMqPihleHRlbnNpb24pKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0ZW5zaW9uLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24uaAkocmV2aXNp
b24gMTAyMjA5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xFeHRlbnNpb24u
aAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBjbGFzcyBXZWJHTEV4dGVuc2lvbiB7
CiBwdWJsaWM6CiAgICAgLy8gRXh0ZW5zaW9uIG5hbWVzIGFyZSBuZWVkZWQgdG8gcHJvcGVybHkg
d3JhcCBpbnN0YW5jZXMgaW4gSmF2YVNjcmlwdCBvYmplY3RzLgogICAgIGVudW0gRXh0ZW5zaW9u
TmFtZSB7Ci0gICAgICAgIFdlYktpdExvc2VDb250ZXh0TmFtZSwKKyAgICAgICAgV2ViS2l0V2Vi
R0xMb3NlQ29udGV4dE5hbWUsIC8vIFdFQktJVF8gcHJlZml4IHVudGlsIGV4dGVuc2lvbiBpcyBv
ZmZpY2lhbAogICAgICAgICBPRVNUZXh0dXJlRmxvYXROYW1lLAogICAgICAgICBPRVNTdGFuZGFy
ZERlcml2YXRpdmVzTmFtZSwKICAgICAgICAgT0VTVmVydGV4QXJyYXlPYmplY3ROYW1lLApJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5jcHAJ
KHJldmlzaW9uIDEwMDUzOCkJKGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViS2l0
TG9zZUNvbnRleHQuY3BwOjEwMDUzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YkdMTG9zZUNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCR0wpCisKKyNpbmNsdWRlICJX
ZWJLaXRMb3NlQ29udGV4dC5oIgorCisjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0Lmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2ViS2l0TG9zZUNvbnRleHQ6OldlYktpdExvc2VD
b250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKKyAgICA6IFdlYkdMRXh0ZW5z
aW9uKGNvbnRleHQpCit7Cit9CisKK1dlYktpdExvc2VDb250ZXh0Ojp+V2ViS2l0TG9zZUNvbnRl
eHQoKQoreworfQorCitXZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9uTmFtZSBXZWJLaXRMb3NlQ29u
dGV4dDo6Z2V0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdlYktpdExvc2VDb250ZXh0TmFt
ZTsKK30KKworUGFzc093blB0cjxXZWJLaXRMb3NlQ29udGV4dD4gV2ViS2l0TG9zZUNvbnRleHQ6
OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCit7CisgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBXZWJLaXRMb3NlQ29udGV4dChjb250ZXh0KSk7Cit9CisKK3ZvaWQgV2ViS2l0
TG9zZUNvbnRleHQ6Omxvc2VDb250ZXh0KCkKK3sKKyAgICBtX2NvbnRleHQtPmZvcmNlTG9zdENv
bnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpTeW50aGV0aWNMb3N0Q29udGV4dCk7Cit9CisK
K3ZvaWQgV2ViS2l0TG9zZUNvbnRleHQ6OnJlc3RvcmVDb250ZXh0KCkKK3sKKyAgICBtX2NvbnRl
eHQtPmZvcmNlUmVzdG9yZUNvbnRleHQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xMb3NlQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRt
bC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5jcHAJKHJldmlzaW9uIDEwMDUzOCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNywzNyArMjcsMzcgQEAKIAogI2lmIEVOQUJMRShXRUJHTCkKIAotI2luY2x1ZGUgIldl
YktpdExvc2VDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViR0xMb3NlQ29udGV4dC5oIgogCiAjaW5j
bHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
V2ViS2l0TG9zZUNvbnRleHQ6OldlYktpdExvc2VDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4
dCogY29udGV4dCkKK1dlYkdMTG9zZUNvbnRleHQ6OldlYkdMTG9zZUNvbnRleHQoV2ViR0xSZW5k
ZXJpbmdDb250ZXh0KiBjb250ZXh0KQogICAgIDogV2ViR0xFeHRlbnNpb24oY29udGV4dCkKIHsK
IH0KIAotV2ViS2l0TG9zZUNvbnRleHQ6On5XZWJLaXRMb3NlQ29udGV4dCgpCitXZWJHTExvc2VD
b250ZXh0Ojp+V2ViR0xMb3NlQ29udGV4dCgpCiB7CiB9CiAKLVdlYkdMRXh0ZW5zaW9uOjpFeHRl
bnNpb25OYW1lIFdlYktpdExvc2VDb250ZXh0OjpnZXROYW1lKCkgY29uc3QKK1dlYkdMRXh0ZW5z
aW9uOjpFeHRlbnNpb25OYW1lIFdlYkdMTG9zZUNvbnRleHQ6OmdldE5hbWUoKSBjb25zdAogewot
ICAgIHJldHVybiBXZWJLaXRMb3NlQ29udGV4dE5hbWU7CisgICAgcmV0dXJuIFdlYktpdFdlYkdM
TG9zZUNvbnRleHROYW1lOwogfQogCi1QYXNzT3duUHRyPFdlYktpdExvc2VDb250ZXh0PiBXZWJL
aXRMb3NlQ29udGV4dDo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKK1Bh
c3NPd25QdHI8V2ViR0xMb3NlQ29udGV4dD4gV2ViR0xMb3NlQ29udGV4dDo6Y3JlYXRlKFdlYkdM
UmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdl
YktpdExvc2VDb250ZXh0KGNvbnRleHQpKTsKKyAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdlYkdM
TG9zZUNvbnRleHQoY29udGV4dCkpOwogfQogCi12b2lkIFdlYktpdExvc2VDb250ZXh0Ojpsb3Nl
Q29udGV4dCgpCit2b2lkIFdlYkdMTG9zZUNvbnRleHQ6Omxvc2VDb250ZXh0KCkKIHsKICAgICBt
X2NvbnRleHQtPmZvcmNlTG9zdENvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpTeW50aGV0
aWNMb3N0Q29udGV4dCk7CiB9CiAKLXZvaWQgV2ViS2l0TG9zZUNvbnRleHQ6OnJlc3RvcmVDb250
ZXh0KCkKK3ZvaWQgV2ViR0xMb3NlQ29udGV4dDo6cmVzdG9yZUNvbnRleHQoKQogewogICAgIG1f
Y29udGV4dC0+Zm9yY2VSZXN0b3JlQ29udGV4dCgpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuaAkocmV2aXNpb24gMTAwNTM4KQkoZnJv
bSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5oOjEwMDUzOCkK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJLaXRMb3NlQ29udGV4
dF9oCisjZGVmaW5lIFdlYktpdExvc2VDb250ZXh0X2gKKworI2luY2x1ZGUgIldlYkdMRXh0ZW5z
aW9uLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ7CisKK2NsYXNzIFdlYktpdExvc2VDb250
ZXh0IDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc093
blB0cjxXZWJLaXRMb3NlQ29udGV4dD4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwor
CisgICAgdmlydHVhbCB+V2ViS2l0TG9zZUNvbnRleHQoKTsKKyAgICB2aXJ0dWFsIEV4dGVuc2lv
bk5hbWUgZ2V0TmFtZSgpIGNvbnN0OworCisgICAgdm9pZCBsb3NlQ29udGV4dCgpOworICAgIHZv
aWQgcmVzdG9yZUNvbnRleHQoKTsKKworcHJpdmF0ZToKKyAgICBXZWJLaXRMb3NlQ29udGV4dChX
ZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIFdlYktpdExvc2VDb250ZXh0X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMTG9zZUNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0LmgJKHJldmlzaW9uIDEwMDUzOCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuaAkod29ya2luZyBjb3B5KQpA
QCAtMjMsOCArMjMsOCBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFdlYktpdExvc2VD
b250ZXh0X2gKLSNkZWZpbmUgV2ViS2l0TG9zZUNvbnRleHRfaAorI2lmbmRlZiBXZWJHTExvc2VD
b250ZXh0X2gKKyNkZWZpbmUgV2ViR0xMb3NlQ29udGV4dF9oCiAKICNpbmNsdWRlICJXZWJHTEV4
dGVuc2lvbi5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CkBAIC0zMywyMCArMzMsMjAg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ7CiAK
LWNsYXNzIFdlYktpdExvc2VDb250ZXh0IDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKK2NsYXNz
IFdlYkdMTG9zZUNvbnRleHQgOiBwdWJsaWMgV2ViR0xFeHRlbnNpb24gewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzT3duUHRyPFdlYktpdExvc2VDb250ZXh0PiBjcmVhdGUoV2ViR0xSZW5kZXJp
bmdDb250ZXh0Kik7CisgICAgc3RhdGljIFBhc3NPd25QdHI8V2ViR0xMb3NlQ29udGV4dD4gY3Jl
YXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwogCi0gICAgdmlydHVhbCB+V2ViS2l0TG9zZUNv
bnRleHQoKTsKKyAgICB2aXJ0dWFsIH5XZWJHTExvc2VDb250ZXh0KCk7CiAgICAgdmlydHVhbCBF
eHRlbnNpb25OYW1lIGdldE5hbWUoKSBjb25zdDsKIAogICAgIHZvaWQgbG9zZUNvbnRleHQoKTsK
ICAgICB2b2lkIHJlc3RvcmVDb250ZXh0KCk7CiAKIHByaXZhdGU6Ci0gICAgV2ViS2l0TG9zZUNv
bnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CisgICAgV2ViR0xMb3NlQ29udGV4dChXZWJH
TFJlbmRlcmluZ0NvbnRleHQqKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2Vu
ZGlmIC8vIFdlYktpdExvc2VDb250ZXh0X2gKKyNlbmRpZiAvLyBXZWJHTExvc2VDb250ZXh0X2gK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQu
aWRsCShyZXZpc2lvbiAxMDA1MzgpCShmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dl
YktpdExvc2VDb250ZXh0LmlkbDoxMDA1MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTExvc2VDb250ZXh0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworbW9kdWxlIGh0bWwgeworICAgIGludGVyZmFjZSBbCisgICAgICAgIENvbmRpdGlvbmFs
PVdFQkdMLAorICAgICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxDb250ZXh0LAorICAgICAg
ICBPbWl0Q29uc3RydWN0b3IKKyAgICBdIFdlYktpdExvc2VDb250ZXh0IHsKKyAgICAgICAgW1N0
cmljdFR5cGVDaGVja2luZ10gdm9pZCBsb3NlQ29udGV4dCgpOworICAgICAgICBbU3RyaWN0VHlw
ZUNoZWNraW5nXSB2b2lkIHJlc3RvcmVDb250ZXh0KCk7CisgICAgfTsKK30KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuaWRsCShyZXZpc2lv
biAxMDA1MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQCBtb2R1bGUgaHRtbCB7CiAgICAg
ICAgIENvbmRpdGlvbmFsPVdFQkdMLAogICAgICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxD
b250ZXh0LAogICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIFdlYktpdExvc2VDb250ZXh0
IHsKKyAgICBdIFdlYkdMTG9zZUNvbnRleHQgewogICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5n
XSB2b2lkIGxvc2VDb250ZXh0KCk7CiAgICAgICAgIFtTdHJpY3RUeXBlQ2hlY2tpbmddIHZvaWQg
cmVzdG9yZUNvbnRleHQoKTsKICAgICB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCShyZXZpc2lvbiAxMDIyMDkp
CisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02MCwxMiArNjAsMTIgQEAKICNpbmNsdWRlICJXZWJHTERlYnVn
UmVuZGVyZXJJbmZvLmgiCiAjaW5jbHVkZSAiV2ViR0xEZWJ1Z1NoYWRlcnMuaCIKICNpbmNsdWRl
ICJXZWJHTEZyYW1lYnVmZmVyLmgiCisjaW5jbHVkZSAiV2ViR0xMb3NlQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIldlYkdMUmVuZGVyYnVmZmVyLmgiCiAj
aW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIKICNpbmNsdWRlICJXZWJHTFRleHR1cmUuaCIKICNpbmNs
dWRlICJXZWJHTFVuaWZvcm1Mb2NhdGlvbi5oIgotI2luY2x1ZGUgIldlYktpdExvc2VDb250ZXh0
LmgiCiAKICNpbmNsdWRlIDx3dGYvQnl0ZUFycmF5Lmg+CiAjaW5jbHVkZSA8d3RmL093bkFycmF5
UHRyLmg+CkBAIC0yMTI0LDEwICsyMTI0LDEyIEBAIFdlYkdMRXh0ZW5zaW9uKiBXZWJHTFJlbmRl
cmluZ0NvbnRleHQ6OmcKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9vZXNWZXJ0ZXhBcnJh
eU9iamVjdC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJX
RUJLSVRfbG9zZV9jb250ZXh0IikpIHsKLSAgICAgICAgaWYgKCFtX3dlYmtpdExvc2VDb250ZXh0
KQotICAgICAgICAgICAgbV93ZWJraXRMb3NlQ29udGV4dCA9IFdlYktpdExvc2VDb250ZXh0Ojpj
cmVhdGUodGhpcyk7Ci0gICAgICAgIHJldHVybiBtX3dlYmtpdExvc2VDb250ZXh0LmdldCgpOwor
ICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiV0VCS0lUX1dFQkdMX2xvc2VfY29udGV4
dCIpCisgICAgICAgIC8vIEZJWE1FOiByZW1vdmUgdGhpcyBhZnRlciBhIGNlcnRhaW4gZ3JhY2Ug
cGVyaW9kLgorICAgICAgICB8fCBlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiV0VCS0lUX2xvc2Vf
Y29udGV4dCIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbExvc2VDb250ZXh0KQorICAgICAgICAg
ICAgbV93ZWJnbExvc2VDb250ZXh0ID0gV2ViR0xMb3NlQ29udGV4dDo6Y3JlYXRlKHRoaXMpOwor
ICAgICAgICByZXR1cm4gbV93ZWJnbExvc2VDb250ZXh0LmdldCgpOwogICAgIH0KICAgICBpZiAo
ZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgIldFQktJVF9XRUJHTF9jb21wcmVzc2VkX3RleHR1cmVz
IikpIHsKICAgICAgICAgLy8gVXNlIFdFQktJVF8gcHJlZml4IHVudGlsIGV4dGVuc2lvbiBpcyBv
ZmZpY2lhbC4KQEAgLTI1NzgsNyArMjU4MCw3IEBAIFZlY3RvcjxTdHJpbmc+IFdlYkdMUmVuZGVy
aW5nQ29udGV4dDo6Z2UKICAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VTX3N0YW5kYXJkX2Rlcml2
YXRpdmVzIik7CiAgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5zaW9ucygpLT5zdXBwb3J0cygi
R0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKSkKICAgICAgICAgcmVzdWx0LmFwcGVuZCgiT0VT
X3ZlcnRleF9hcnJheV9vYmplY3QiKTsKLSAgICByZXN1bHQuYXBwZW5kKCJXRUJLSVRfbG9zZV9j
b250ZXh0Iik7CisgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dFQkdMX2xvc2VfY29udGV4dCIp
OwogICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJlczo6c3VwcG9ydGVkKHRoaXMpKQogICAg
ICAgICByZXN1bHQuYXBwZW5kKCJXRUJLSVRfV0VCR0xfY29tcHJlc3NlZF90ZXh0dXJlcyIpOwog
CkBAIC00OTkxLDggKzQ5OTMsOCBAQCB2b2lkIFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6bWF5YmVS
ZXN0b3JlCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Tk9fRVJST1I6CiAgICAgICAgIC8v
IFRoZSBHcmFwaGljc0NvbnRleHQzRCBpbXBsZW1lbnRhdGlvbiBtaWdodCBub3QgZnVsbHkKICAg
ICAgICAgLy8gc3VwcG9ydCBHTF9BUkJfcm9idXN0bmVzcyBzZW1hbnRpY3MgeWV0LiBBbHRlcm5h
dGl2ZWx5LCB0aGUKLSAgICAgICAgLy8gV2ViR0wgV0VCS0lUX2xvc2VfY29udGV4dCBleHRlbnNp
b24gbWlnaHQgaGF2ZSBiZWVuIHVzZWQgdG8KLSAgICAgICAgLy8gZm9yY2UgYSBsb3N0IGNvbnRl
eHQuCisgICAgICAgIC8vIFdFQkdMX2xvc2VfY29udGV4dCBleHRlbnNpb24gbWlnaHQgaGF2ZSBi
ZWVuIHVzZWQgdG8gZm9yY2UKKyAgICAgICAgLy8gYSBsb3N0IGNvbnRleHQuCiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpHVUlMVFlfQ09OVEVYVF9SRVNFVF9BUkI6CiAg
ICAgICAgIC8vIFRoZSByZW5kZXJpbmcgY29udGV4dCBpcyBub3QgcmVzdG9yZWQgaWYgdGhpcyBj
b250ZXh0IHdhcwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJp
bmdDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xSZW5kZXJpbmdDb250ZXh0LmgJKHJldmlzaW9uIDEwMjIwOSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC01
Niw2ICs1Niw3IEBAIGNsYXNzIFdlYkdMRGVidWdSZW5kZXJlckluZm87CiBjbGFzcyBXZWJHTERl
YnVnU2hhZGVyczsKIGNsYXNzIFdlYkdMRXh0ZW5zaW9uOwogY2xhc3MgV2ViR0xGcmFtZWJ1ZmZl
cjsKK2NsYXNzIFdlYkdMTG9zZUNvbnRleHQ7CiBjbGFzcyBXZWJHTE9iamVjdDsKIGNsYXNzIFdl
YkdMUHJvZ3JhbTsKIGNsYXNzIFdlYkdMUmVuZGVyYnVmZmVyOwpAQCAtNjMsNyArNjQsNiBAQCBj
bGFzcyBXZWJHTFNoYWRlcjsKIGNsYXNzIFdlYkdMVGV4dHVyZTsKIGNsYXNzIFdlYkdMVW5pZm9y
bUxvY2F0aW9uOwogY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUzsKLWNsYXNzIFdlYktp
dExvc2VDb250ZXh0OwogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCkBAIC00ODQsNyAr
NDg0LDcgQEAgcHVibGljOgogICAgIE93blB0cjxPRVNUZXh0dXJlRmxvYXQ+IG1fb2VzVGV4dHVy
ZUZsb2F0OwogICAgIE93blB0cjxPRVNTdGFuZGFyZERlcml2YXRpdmVzPiBtX29lc1N0YW5kYXJk
RGVyaXZhdGl2ZXM7CiAgICAgT3duUHRyPE9FU1ZlcnRleEFycmF5T2JqZWN0PiBtX29lc1ZlcnRl
eEFycmF5T2JqZWN0OwotICAgIE93blB0cjxXZWJLaXRMb3NlQ29udGV4dD4gbV93ZWJraXRMb3Nl
Q29udGV4dDsKKyAgICBPd25QdHI8V2ViR0xMb3NlQ29udGV4dD4gbV93ZWJnbExvc2VDb250ZXh0
OwogICAgIE93blB0cjxXZWJHTERlYnVnUmVuZGVyZXJJbmZvPiBtX3dlYmdsRGVidWdSZW5kZXJl
ckluZm87CiAgICAgT3duUHRyPFdlYkdMRGVidWdTaGFkZXJzPiBtX3dlYmdsRGVidWdTaGFkZXJz
OwogICAgIE93blB0cjxXZWJHTENvbXByZXNzZWRUZXh0dXJlcz4gbV93ZWJnbENvbXByZXNzZWRU
ZXh0dXJlczsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250
ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJLaXRM
b3NlQ29udGV4dC5jcHAJKHJldmlzaW9uIDEwMjIwOSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYktpdExvc2VDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw2NyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgot
ICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5BQkxFKFdFQkdMKQotCi0j
aW5jbHVkZSAiV2ViS2l0TG9zZUNvbnRleHQuaCIKLQotI2luY2x1ZGUgIldlYkdMUmVuZGVyaW5n
Q29udGV4dC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVdlYktpdExvc2VDb250ZXh0OjpX
ZWJLaXRMb3NlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQpCi0gICAgOiBX
ZWJHTEV4dGVuc2lvbihjb250ZXh0KQotewotfQotCi1XZWJLaXRMb3NlQ29udGV4dDo6fldlYktp
dExvc2VDb250ZXh0KCkKLXsKLX0KLQotV2ViR0xFeHRlbnNpb246OkV4dGVuc2lvbk5hbWUgV2Vi
S2l0TG9zZUNvbnRleHQ6OmdldE5hbWUoKSBjb25zdAotewotICAgIHJldHVybiBXZWJLaXRMb3Nl
Q29udGV4dE5hbWU7Ci19Ci0KLVBhc3NPd25QdHI8V2ViS2l0TG9zZUNvbnRleHQ+IFdlYktpdExv
c2VDb250ZXh0OjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQotewotICAg
IHJldHVybiBhZG9wdFB0cihuZXcgV2ViS2l0TG9zZUNvbnRleHQoY29udGV4dCkpOwotfQotCi12
b2lkIFdlYktpdExvc2VDb250ZXh0Ojpsb3NlQ29udGV4dCgpCi17Ci0gICAgbV9jb250ZXh0LT5m
b3JjZUxvc3RDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6U3ludGhldGljTG9zdENvbnRl
eHQpOwotfQotCi12b2lkIFdlYktpdExvc2VDb250ZXh0OjpyZXN0b3JlQ29udGV4dCgpCi17Ci0g
ICAgbV9jb250ZXh0LT5mb3JjZVJlc3RvcmVDb250ZXh0KCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQuaAkocmV2aXNpb24gMTAyMjA5KQor
KysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJLaXRMb3NlQ29udGV4
dF9oCi0jZGVmaW5lIFdlYktpdExvc2VDb250ZXh0X2gKLQotI2luY2x1ZGUgIldlYkdMRXh0ZW5z
aW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ7Ci0KLWNsYXNzIFdlYktpdExvc2VDb250
ZXh0IDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093
blB0cjxXZWJLaXRMb3NlQ29udGV4dD4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwot
Ci0gICAgdmlydHVhbCB+V2ViS2l0TG9zZUNvbnRleHQoKTsKLSAgICB2aXJ0dWFsIEV4dGVuc2lv
bk5hbWUgZ2V0TmFtZSgpIGNvbnN0OwotCi0gICAgdm9pZCBsb3NlQ29udGV4dCgpOwotICAgIHZv
aWQgcmVzdG9yZUNvbnRleHQoKTsKLQotcHJpdmF0ZToKLSAgICBXZWJLaXRMb3NlQ29udGV4dChX
ZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQot
I2VuZGlmIC8vIFdlYktpdExvc2VDb250ZXh0X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYktpdExvc2VDb250ZXh0LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5pZGwJKHJldmlzaW9uIDEwMjIwOSkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotbW9kdWxlIGh0bWwgewotICAgIGludGVy
ZmFjZSBbCi0gICAgICAgIENvbmRpdGlvbmFsPVdFQkdMLAotICAgICAgICBHZW5lcmF0ZUlzUmVh
Y2hhYmxlPUltcGxDb250ZXh0LAotICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBdIFdlYktp
dExvc2VDb250ZXh0IHsKLSAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCBsb3NlQ29u
dGV4dCgpOwotICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHJlc3RvcmVDb250ZXh0
KCk7Ci0gICAgfTsKLX0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjIwOSkKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDExLTEyLTA2ICBL
ZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZW5hbWUgV0VCS0lU
X2xvc2VfY29udGV4dCB0byBXRUJLSVRfV0VCR0xfbG9zZV9jb250ZXh0CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTg3MAorCisgICAgICAgIFN5bmNo
cm9uaXplZCBjb250ZXh0LWxvc3QtcmVzdG9yZWQuaHRtbCBhbmQgY29udGV4dC1sb3N0Lmh0bWwg
d2l0aAorICAgICAgICBLaHJvbm9zIHJlcG9zaXRvcnk7IHVwc3RyZWFtIHRlc3RzIG11c3QgY2hl
Y2sgZm9yIG11bHRpcGxlIHZlbmRvcgorICAgICAgICBwcmVmaXhlcy4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL1dl
YkdMQ29udGV4dEV2ZW50Lmh0bWw6CisgICAgICAgICogZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4
dC1kZXN0cm95ZWQtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy93ZWJnbC9jb250
ZXh0LWxvc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2NvbnRl
eHQtbG9zdC1yZXN0b3JlZC5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2NvbnRl
eHQtbG9zdC5odG1sOgorCiAyMDExLTEyLTA2ICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xl
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBTdXBwcmVzcyBmYWlsdXJlIG9mIGZhc3QvY2Fu
dmFzL3dlYmdsL2NhbnZhcy0yZC13ZWJnbC10ZXh0dXJlLmh0bWwKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL1dlYkdMQ29udGV4dEV2ZW50Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvV2ViR0xDb250ZXh0RXZlbnQuaHRtbAkocmV2
aXNpb24gMTAyMjA5KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvV2ViR0xDb250
ZXh0RXZlbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTcsOSArMTcsOSBAQCBmdW5jdGlvbiBj
cmVhdGVOZXdDYW52YXMoKQogICAgIGNhbnZhcy5oZWlnaHQgPSAxOwogCiAgICAgY29udGV4dCA9
IFdlYkdMVGVzdFV0aWxzLmNyZWF0ZTNEQ29udGV4dChjYW52YXMpOwotICAgIGV4dGVuc2lvbiA9
IGNvbnRleHQuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfbG9zZV9jb250ZXh0Iik7CisgICAgZXh0ZW5z
aW9uID0gY29udGV4dC5nZXRFeHRlbnNpb24oIldFQktJVF9XRUJHTF9sb3NlX2NvbnRleHQiKTsK
ICAgICBpZiAoIWV4dGVuc2lvbikgewotICAgICAgICBkZWJ1ZygiQ291bGQgbm90IGZpbmQgdGhl
IFdFQktJVF9sb3NlX2NvbnRleHQgZXh0ZW5zaW9uLiIpOworICAgICAgICBkZWJ1ZygiQ291bGQg
bm90IGZpbmQgdGhlIFdFQktJVF9XRUJHTF9sb3NlX2NvbnRleHQgZXh0ZW5zaW9uLiIpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvY29udGV4dC1kZXN0cm95ZWQtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWRlc3Ryb3llZC1jcmFzaC5odG1sCShyZXZpc2lv
biAxMDIyMDkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWRlc3Ry
b3llZC1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw3ICsyMiw3IEBAIHdpbmRvdy5v
bmxvYWQgPSBmdW5jdGlvbigpCiB7CiAgICAgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiY2FudmFzIik7CiAgICAgY29udGV4dCA9IGNyZWF0ZTNEQ29udGV4dChjYW52YXMpOwotICAg
IGV4dGVuc2lvbiA9IGNvbnRleHQuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfbG9zZV9jb250ZXh0Iik7
CisgICAgZXh0ZW5zaW9uID0gY29udGV4dC5nZXRFeHRlbnNpb24oIldFQktJVF9XRUJHTF9sb3Nl
X2NvbnRleHQiKTsKICAgICAKICAgICBjYW52YXMgPSBudWxsOwogICAgIGNvbnRleHQgPSBudWxs
OwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1sb3N0LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9jb250
ZXh0LWxvc3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMDIyMDkpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2NhbnZhcy93ZWJnbC9jb250ZXh0LWxvc3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0xNjgsNyArMTY4LDcgQEAgUEFTUyBnbC5nZXRVbmlmb3JtKHByb2dyYW0sIHVuaWZvcm1M
b2NhdAogUEFTUyBnbC5nZXRVbmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgJ3ZQb3NpdGlvbicpIGlz
IG51bGwKIFBBU1MgZ2wuZ2V0VmVydGV4QXR0cmliKDAsIGdsLlZFUlRFWF9BVFRSSUJfQVJSQVlf
QlVGRkVSX0JJTkRJTkcpIGlzIG51bGwKIFBBU1MgZ2wuZ2V0U3VwcG9ydGVkRXh0ZW5zaW9ucygp
IGlzIG51bGwKLVBBU1MgZ2wuZ2V0RXh0ZW5zaW9uKCdXRUJLSVRfbG9zZV9jb250ZXh0JykgaXMg
bnVsbAorUEFTUyBnbC5nZXRFeHRlbnNpb24oJ1dFQktJVF9XRUJHTF9sb3NlX2NvbnRleHQnKSBp
cyBudWxsCiBQQVNTIGdsLmlzQnVmZmVyKGJ1ZmZlcikgaXMgZmFsc2UKIFBBU1MgZ2wuaXNFbmFi
bGVkKGdsLkJMRU5EKSBpcyBmYWxzZQogUEFTUyBnbC5pc0ZyYW1lYnVmZmVyKGZyYW1lYnVmZmVy
KSBpcyBmYWxzZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1s
b3N0LXJlc3RvcmVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
d2ViZ2wvY29udGV4dC1sb3N0LXJlc3RvcmVkLmh0bWwJKHJldmlzaW9uIDEwMjIwOSkKKysrIExh
eW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQtbG9zdC1yZXN0b3JlZC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC04LDcgKzgsMTAgQEAgdmFyIHd0dSA9IFdlYkdMVGVzdFV0aWxzOwog
dmFyIGNhbnZhczsKIHZhciBnbDsKIHZhciBzaG91bGRHZW5lcmF0ZUdMRXJyb3I7Ci12YXIgZXh0
ZW5zaW9uX25hbWUgPSAiV0VCS0lUX2xvc2VfY29udGV4dCI7Cit2YXIgZXh0ZW5zaW9uTmFtZXMg
PSBbCisgICAgIldFQktJVF9XRUJHTF9sb3NlX2NvbnRleHQiLAorICAgICJNT1pfV0VCR0xfbG9z
ZV9jb250ZXh0IiwKK107CiB2YXIgZXh0ZW5zaW9uOwogdmFyIGJ1ZmZlck9iamVjdHM7CiB2YXIg
cHJvZ3JhbTsKQEAgLTQyLDkgKzQ1LDEzIEBAIGZ1bmN0aW9uIHNldHVwVGVzdCgpCiAgICAgY2Fu
dmFzLndpZHRoID0gMTsKICAgICBjYW52YXMuaGVpZ2h0ID0gMTsKICAgICBnbCA9IHd0dS5jcmVh
dGUzRENvbnRleHQoY2FudmFzKTsKLSAgICBleHRlbnNpb24gPSBnbC5nZXRFeHRlbnNpb24oZXh0
ZW5zaW9uX25hbWUpOworICAgIGZvciAodmFyIGlpID0gMDsgaWkgPCBleHRlbnNpb25OYW1lcy5s
ZW5ndGg7ICsraWkpIHsKKyAgICAgICAgZXh0ZW5zaW9uID0gZ2wuZ2V0RXh0ZW5zaW9uKGV4dGVu
c2lvbk5hbWVzW2lpXSk7CisgICAgICAgIGlmIChleHRlbnNpb24pCisgICAgICAgICAgICBicmVh
azsKKyAgICB9CiAgICAgaWYgKCFleHRlbnNpb24pIHsKLSAgICAgICAgZGVidWcoZXh0ZW5zaW9u
X25hbWUgKyAiIGV4dGVuc2lvbiBub3QgZm91bmQuIik7CisgICAgICAgIGRlYnVnKCJDb3VsZCBu
b3QgZmluZCBsb3NlX2NvbnRleHQgZXh0ZW5zaW9uIHVuZGVyIHRoZSBmb2xsb3dpbmcgbmFtZXM6
ICIgKyBleHRlbnNpb25OYW1lcy5qb2luKCIgIikpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogICAgIHJldHVybiB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvY29udGV4dC1sb3N0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvd2ViZ2wvY29udGV4dC1sb3N0Lmh0bWwJKHJldmlzaW9uIDEwMjIwOSkKKysrIExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQtbG9zdC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC04LDcgKzgsMTEgQEAgdmFyIHd0dTsKIHZhciBjYW52YXM7CiB2YXIgZ2w7CiB2YXIgc2hvdWxk
R2VuZXJhdGVHTEVycm9yOwotdmFyIGV4dGVuc2lvbl9uYW1lID0gIldFQktJVF9sb3NlX2NvbnRl
eHQiOwordmFyIGV4dGVuc2lvbk5hbWVzID0gWworICAgICJXRUJLSVRfV0VCR0xfbG9zZV9jb250
ZXh0IiwKKyAgICAiTU9aX1dFQkdMX2xvc2VfY29udGV4dCIsCitdOwordmFyIGV4dGVuc2lvbk5h
bWU7CiB2YXIgZXh0ZW5zaW9uOwogCiB2YXIgYnVmZmVyOwpAQCAtNDEsMTEgKzQ1LDE2IEBAIGZ1
bmN0aW9uIGluaXQoKQogICAgICAgICB3aW5kb3cuaW5pdE5vbktocm9ub3NGcmFtZXdvcmsodHJ1
ZSk7CiAgICAgfQogCi0gICAgZXh0ZW5zaW9uID0gZ2wuZ2V0RXh0ZW5zaW9uKGV4dGVuc2lvbl9u
YW1lKTsKKyAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgZXh0ZW5zaW9uTmFtZXMubGVuZ3RoOyAr
K2lpKSB7CisgICAgICAgIGV4dGVuc2lvbiA9IGdsLmdldEV4dGVuc2lvbihleHRlbnNpb25OYW1l
c1tpaV0pOworICAgICAgICBpZiAoZXh0ZW5zaW9uKSB7CisgICAgICAgICAgICBleHRlbnNpb25O
YW1lID0gZXh0ZW5zaW9uTmFtZXNbaWldOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0K
KyAgICB9CiAgICAgaWYgKCFleHRlbnNpb24pIHsKLSAgICAgICAgZGVidWcoZXh0ZW5zaW9uX25h
bWUgKyAiIGV4dGVuc2lvbiBub3QgZm91bmQuIik7Ci0gICAgICAgIGZpbmlzaCgpOwotICAgICAg
ICByZXR1cm47CisgICAgICAgIGRlYnVnKCJDb3VsZCBub3QgZmluZCBsb3NlX2NvbnRleHQgZXh0
ZW5zaW9uIHVuZGVyIHRoZSBmb2xsb3dpbmcgbmFtZXM6ICIgKyBleHRlbnNpb25OYW1lcy5qb2lu
KCIgIikpOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCiAgICAgY2FudmFzLmFkZEV2
ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dGxvc3QiLCB0ZXN0TG9zdENvbnRleHQpOwpAQCAtMjc3
LDcgKzI4Niw3IEBAIGZ1bmN0aW9uIHRlc3RMb3N0Q29udGV4dCgpCiAgICAgICAgICJnbC5nZXRV
bmlmb3JtTG9jYXRpb24ocHJvZ3JhbSwgJ3ZQb3NpdGlvbicpIiwKICAgICAgICAgImdsLmdldFZl
cnRleEF0dHJpYigwLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HKSIsCiAg
ICAgICAgICJnbC5nZXRTdXBwb3J0ZWRFeHRlbnNpb25zKCkiLAotICAgICAgICAiZ2wuZ2V0RXh0
ZW5zaW9uKCciICsgZXh0ZW5zaW9uX25hbWUgKyAiJykiLAorICAgICAgICAiZ2wuZ2V0RXh0ZW5z
aW9uKCciICsgZXh0ZW5zaW9uTmFtZSArICInKSIsCiAgICAgXTsKICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IG51bGxUZXN0cy5sZW5ndGg7ICsraSkgewogICAgICAgICBzaG91bGRCZU51bGwobnVs
bFRlc3RzW2ldKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118283</attachid>
            <date>2011-12-07 15:35:09 -0800</date>
            <delta_ts>2011-12-07 17:33:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71870-20111207153508.patch</filename>
            <type>text/plain</type>
            <size>51295</size>
            <attacher name="Kenneth Russell">kbr</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjI3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDExLTEyLTA3ICBLZW5uZXRo
IFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZW5hbWUgV0VCS0lUX2xvc2Vf
Y29udGV4dCB0byBXRUJLSVRfV0VCR0xfbG9zZV9jb250ZXh0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTg3MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSBsYXJnZWx5IGRvbmUgd2l0aCBkby13
ZWJjb3JlLXJlbmFtZSB3aXRoIGEgY291cGxlIG9mCisgICAgICAgIG5lY2Vzc2FyeSBtYW51YWwg
Zml4dXBzLiBSYW4gV2ViR0wgbGF5b3V0IHRlc3RzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50
eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5wcmk6CisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBUYXJn
ZXQucHJpOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4V2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvVjhPYmplY3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL1dl
YkdMRXh0ZW5zaW9uLmg6CisgICAgICAgICogaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250
ZXh0LmNwcC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkdMTG9zZUNvbnRleHQ6OldlYkdMTG9zZUNv
bnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xMb3NlQ29udGV4dDo6fldlYkdMTG9zZUNv
bnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xMb3NlQ29udGV4dDo6Z2V0TmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJHTExvc2VDb250ZXh0OjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViR0xMb3NlQ29udGV4dDo6bG9zZUNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViR0xMb3NlQ29udGV4dDo6cmVzdG9yZUNvbnRleHQpOgorICAgICAgICAqIGh0bWwvY2FudmFz
L1dlYkdMTG9zZUNvbnRleHQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViS2l0TG9zZUNvbnRleHQuaC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTExvc2VD
b250ZXh0LmlkbDogQ29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViS2l0
TG9zZUNvbnRleHQuaWRsLgorICAgICAgICAqIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldEV4
dGVuc2lvbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmdldFN1
cHBvcnRlZEV4dGVuc2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViR0xSZW5kZXJpbmdDb250
ZXh0OjptYXliZVJlc3RvcmVDb250ZXh0KToKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4
dC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBodG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5pZGw6
IFJlbW92ZWQuCisKIDIwMTEtMTItMDcgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJlbmRlck9iamVjdDo6c3R5bGUoKTogSW5saW5lIGVhcmx5LXJldHVybiBj
b25kaXRpb24uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTAyMjc3KQorKysg
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTIxNTQsNiAr
MjE1NCw3IEBAIElGIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRGVi
dWdTaGFkZXJzLmNwcAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcAog
ICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwCisgICAgICAgIGh0bWwvY2FudmFz
L1dlYkdMTG9zZUNvbnRleHQuY3BwCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmNw
cAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwCiAgICAgICAgIGh0bWwvY2Fu
dmFzL1dlYkdMUmVuZGVyYnVmZmVyLmNwcApAQCAtMjE2Niw3ICsyMTY3LDYgQEAgSUYgKEVOQUJM
RV9XRUJHTCkKICAgICAgICAgaHRtbC9jYW52YXMvT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5jcHAK
ICAgICAgICAgaHRtbC9jYW52YXMvT0VTVGV4dHVyZUZsb2F0LmNwcAogICAgICAgICBodG1sL2Nh
bnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5jcHAKLSAgICAgICAgaHRtbC9jYW52YXMvV2ViS2l0
TG9zZUNvbnRleHQuY3BwCiAKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRC
cmlkZ2UuY3BwCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNw
cApAQCAtMjE4NSw2ICsyMTg1LDcgQEAgSUYgKEVOQUJMRV9XRUJHTCkKICAgICAgICAgaHRtbC9j
YW52YXMvV2ViR0xEZWJ1Z1JlbmRlcmVySW5mby5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvV2Vi
R0xEZWJ1Z1NoYWRlcnMuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMRnJhbWVidWZmZXIu
aWRsCisgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuaWRsCiAgICAgICAgIGh0
bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xSZW5k
ZXJidWZmZXIuaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5p
ZGwKQEAgLTIxOTIsNyArMjE5Myw2IEBAIElGIChFTkFCTEVfV0VCR0wpCiAgICAgICAgIGh0bWwv
Y2FudmFzL1dlYkdMVGV4dHVyZS5pZGwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xVbmlmb3Jt
TG9jYXRpb24uaWRsCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RP
RVMuaWRsCi0gICAgICAgIGh0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmlkbAogICAgICkK
IEVORElGICgpCiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24g
MTAyMjc3KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBj
b3B5KQpAQCAtNTMxLDYgKzUzMSw3IEBAIERPTV9DTEFTU0VTID0gXAogICAgIFdlYkdMQ29udGV4
dEF0dHJpYnV0ZXMgXAogICAgIFdlYkdMQ29udGV4dEV2ZW50IFwKICAgICBXZWJHTEZyYW1lYnVm
ZmVyIFwKKyAgICBXZWJHTExvc2VDb250ZXh0IFwKICAgICBXZWJHTFByb2dyYW0gXAogICAgIFdl
YkdMUmVuZGVyYnVmZmVyIFwKICAgICBXZWJHTFJlbmRlcmluZ0NvbnRleHQgXApAQCAtNTQ4LDcg
KzU0OSw2IEBAIERPTV9DTEFTU0VTID0gXAogICAgIFdlYktpdENTU01hdHJpeCBcCiAgICAgV2Vi
S2l0Q1NTVHJhbnNmb3JtVmFsdWUgXAogICAgIFdlYktpdEZsYWdzIFwKLSAgICBXZWJLaXRMb3Nl
Q29udGV4dCBcCiAgICAgV2ViS2l0TXV0YXRpb25PYnNlcnZlciBcCiAgICAgV2ViS2l0UG9pbnQg
XAogICAgIFdlYktpdFRyYW5zaXRpb25FdmVudCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMucHJpCShyZXZpc2lvbiAxMDIyNzcpCisrKyBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5wcmkJKHdvcmtpbmcgY29weSkKQEAgLTIyOCw2ICsyMjgsNyBAQCBJRExfQklORElOR1MgKz0g
XAogICAgIGh0bWwvY2FudmFzL1dlYkdMRGVidWdSZW5kZXJlckluZm8uaWRsIFwKICAgICBodG1s
L2NhbnZhcy9XZWJHTERlYnVnU2hhZGVycy5pZGwgXAogICAgIGh0bWwvY2FudmFzL1dlYkdMRnJh
bWVidWZmZXIuaWRsIFwKKyAgICBodG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0LmlkbCBcCiAg
ICAgaHRtbC9jYW52YXMvV2ViR0xQcm9ncmFtLmlkbCBcCiAgICAgaHRtbC9jYW52YXMvV2ViR0xS
ZW5kZXJidWZmZXIuaWRsIFwKICAgICBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQu
aWRsIFwKQEAgLTIzNiw3ICsyMzcsNiBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGh0bWwvY2Fu
dmFzL1dlYkdMVGV4dHVyZS5pZGwgXAogICAgIGh0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxvY2F0
aW9uLmlkbCBcCiAgICAgaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5pZGwg
XAotICAgIGh0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmlkbCBcCiAgICAgaHRtbC9jYW52
YXMvVWludDhBcnJheS5pZGwgXAogICAgIGh0bWwvY2FudmFzL1VpbnQzMkFycmF5LmlkbCBcCiAg
ICAgaHRtbC9jYW52YXMvVWludDE2QXJyYXkuaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQkocmV2aXNpb24gMTAyMjc3KQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtNTQ2LDYgKzU0Niw4IEBAIHdlYmNvcmVfYnVp
bHRfc291cmNlcyArPSBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMQ29udGV4dEV2
ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJHTEZyYW1lYnVmZmVyLmNwcCBc
CiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMRnJhbWVidWZmZXIuaCBcCisJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMTG9zZUNvbnRleHQuY3BwIFwKKwlEZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTV2ViR0xMb3NlQ29udGV4dC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTV2ViR0xQcm9ncmFtLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYkdMUHJv
Z3JhbS5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViR0xSZW5kZXJidWZmZXIuY3Bw
IFwKQEAgLTU3OCw4ICs1ODAsNiBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNXZWJLaXRDU1NNYXRyaXguaCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggXAotCURlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvSlNXZWJLaXRMb3NlQ29udGV4dC5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNXZWJLaXRMb3NlQ29udGV4dC5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0
UG9pbnQuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTV2ViS2l0UG9pbnQuaCBcCiAJ
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgXApAQCAt
NDk5NCw2ICs0OTk0LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYkdMR2V0SW5mby5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
R2V0SW5mby5oIFwKKwlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0
LmNwcCBcCisJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTE9iamVjdC5jcHAgXAogCVNvdXJjZS9X
ZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMT2JqZWN0LmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwv
Y2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAgXApAQCAtNTAxOCw4ICs1MDIwLDYgQEAgd2ViY29yZV9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNUZXh0dXJlRmxvYXQu
aCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvT0VTVmVydGV4QXJyYXlPYmplY3QuY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9PRVNWZXJ0ZXhBcnJheU9iamVjdC5oIFwK
LQlTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5jcHAgXAotCVNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmggXAogCVNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5j
cHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCShyZXZpc2lvbiAxMDIyNzcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9UYXJnZXQucHJpCSh3b3JraW5nIGNvcHkpCkBAIC0zNjMyLDYgKzM2MzIsNyBAQCBjb250YWlu
cyhERUZJTkVTLCBFTkFCTEVfV0VCR0w9MSkgewogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEV4
dGVuc2lvbi5oIFwKICAgICAgICAgaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZlci5oIFwKICAg
ICAgICAgaHRtbC9jYW52YXMvV2ViR0xHZXRJbmZvLmggXAorICAgICAgICBodG1sL2NhbnZhcy9X
ZWJHTExvc2VDb250ZXh0LmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaCBc
CiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMUmVuZGVyYnVmZmVyLmggXAogICAgICAgICBodG1s
L2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuaCBcCkBAIC0zNjQyLDcgKzM2NDMsNiBAQCBj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfV0VCR0w9MSkgewogICAgICAgICBodG1sL2NhbnZhcy9X
ZWJHTFRleHR1cmUuaCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMVW5pZm9ybUxvY2F0aW9u
LmggXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmggXAot
ICAgICAgICBodG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5oIFwKICAgICAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBo
aWNzL0V4dGVuc2lvbnMzRC5oIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuaCBcCkBAIC0zNjY5LDYgKzM2NjksNyBAQCBjb250YWlucyhERUZJTkVTLCBFTkFC
TEVfV0VCR0w9MSkgewogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEV4dGVuc2lvbi5jcHAgXAog
ICAgICAgICBodG1sL2NhbnZhcy9XZWJHTEZyYW1lYnVmZmVyLmNwcCBcCiAgICAgICAgIGh0bWwv
Y2FudmFzL1dlYkdMR2V0SW5mby5jcHAgXAorICAgICAgICBodG1sL2NhbnZhcy9XZWJHTExvc2VD
b250ZXh0LmNwcCBcCiAgICAgICAgIGh0bWwvY2FudmFzL1dlYkdMUHJvZ3JhbS5jcHAgXAogICAg
ICAgICBodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5jcHAgXAogICAgICAgICBodG1sL2Nh
bnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwIFwKQEAgLTM2NzksNyArMzY4MCw2IEBAIGNv
bnRhaW5zKERFRklORVMsIEVOQUJMRV9XRUJHTD0xKSB7CiAgICAgICAgIGh0bWwvY2FudmFzL1dl
YkdMVGV4dHVyZS5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlv
bi5jcHAgXAogICAgICAgICBodG1sL2NhbnZhcy9XZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNw
cCBcCi0gICAgICAgIGh0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmNwcCBcCiAgICAgICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmNwcCBcCiAgICAgICAgIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2dwdS9EcmF3aW5nQnVmZmVyLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZp
c2lvbiAxMDIyNzcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29w
eSkKQEAgLTEzNzcsNiArMTM3Nyw3IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xE
ZWJ1Z1JlbmRlcmVySW5mby5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMRGVi
dWdTaGFkZXJzLmlkbCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xGcmFtZWJ1ZmZl
ci5pZGwnLAorICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuaWRsJywK
ICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uaWRsJywKICAgICAgICAgICAg
ICdodG1sL2NhbnZhcy9XZWJHTFJlbmRlcmJ1ZmZlci5pZGwnLAogICAgICAgICAgICAgJ2h0bWwv
Y2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5pZGwnLApAQCAtMTM4NCw3ICsxMzg1LDYgQEAK
ICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFRleHR1cmUuaWRsJywKICAgICAgICAgICAg
ICdodG1sL2NhbnZhcy9XZWJHTFVuaWZvcm1Mb2NhdGlvbi5pZGwnLAogICAgICAgICAgICAgJ2h0
bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaWRsJywKLSAgICAgICAgICAgICdo
dG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvdHJh
Y2svVGV4dFRyYWNrTGlzdC5pZGwnLAogICAgICAgICAgICAgJ2h0bWwvdHJhY2svVHJhY2tFdmVu
dC5pZGwnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuaWRsJywK
QEAgLTU3NDIsNiArNTc0Miw4IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xGcmFt
ZWJ1ZmZlci5oJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEdldEluZm8uY3BwJywK
ICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTEdldEluZm8uaCcsCisgICAgICAgICAgICAn
aHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvY2Fu
dmFzL1dlYkdMTG9zZUNvbnRleHQuaCcsCiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xP
YmplY3QuY3BwJywKICAgICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTE9iamVjdC5oJywKICAg
ICAgICAgICAgICdodG1sL2NhbnZhcy9XZWJHTFByb2dyYW0uY3BwJywKQEAgLTU3NTgsOCArNTc2
MCw2IEBACiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xVbmlmb3JtTG9jYXRpb24uaCcs
CiAgICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5jcHAn
LAogICAgICAgICAgICAgJ2h0bWwvY2FudmFzL1dlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMuaCcs
Ci0gICAgICAgICAgICAnaHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQuY3BwJywKLSAgICAg
ICAgICAgICdodG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5oJywKICAgICAgICAgICAgICdo
dG1sL3BhcnNlci9DU1NQcmVsb2FkU2Nhbm5lci5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvcGFy
c2VyL0NTU1ByZWxvYWRTY2FubmVyLmgnLAogICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL0hUTUxD
b25zdHJ1Y3Rpb25TaXRlLmNwcCcsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMDIyNzcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTMxOTcsMTAgKzMxOTcsMTAgQEAKIAkJOTNGMTlCMTUwODI0NUU1OTAwMUU5QUJDIC8qIENv
Y29hLmZyYW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1QzI4Njk1MDI4NDZEQ0QwMTg2MzVDQSAvKiBDb2NvYS5mcmFtZXdvcmsgKi87IH07
CiAJCTkzRjE5QjE2MDgyNDVFNTkwMDFFOUFCQyAvKiBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcmsg
aW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGODIxNjI5
OTAyOUY0RkI1MDEwMDAxMzEgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovOyB9OwogCQk5
M0YxOUIxNzA4MjQ1RTU5MDAxRTlBQkMgLyogbGliaWN1Y29yZS5keWxpYiBpbiBGcmFtZXdvcmtz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjFEMzFBMDU1OENDNUMwMDgy
MUJDMCAvKiBsaWJpY3Vjb3JlLmR5bGliICovOyB9OwotCQk5M0YxRDVCQTEyRDUzMkM0MDA4MzJC
RUMgLyogV2ViS2l0TG9zZUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1QjcxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExvc2VD
b250ZXh0LmNwcCAqLzsgfTsKLQkJOTNGMUQ1QkIxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYktpdExv
c2VDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5M0YxRDVCODEyRDUzMkM0MDA4MzJCRUMgLyogV2ViS2l0TG9zZUNvbnRleHQuaCAqLzsgfTsK
LQkJOTNGMUQ1QzAxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViS2l0TG9zZUNvbnRleHQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1QkUxMkQ1
MzM1NjAwODMyQkVDIC8qIEpTV2ViS2l0TG9zZUNvbnRleHQuY3BwICovOyB9OwotCQk5M0YxRDVD
MTEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJLaXRMb3NlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1QkYxMkQ1MzM1NjAwODMyQkVD
IC8qIEpTV2ViS2l0TG9zZUNvbnRleHQuaCAqLzsgfTsKKwkJOTNGMUQ1QkExMkQ1MzJDNDAwODMy
QkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1QjcxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNv
bnRleHQuY3BwICovOyB9OworCQk5M0YxRDVCQjEyRDUzMkM0MDA4MzJCRUMgLyogV2ViR0xMb3Nl
Q29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTNGMUQ1QjgxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuaCAqLzsgfTsKKwkJ
OTNGMUQ1QzAxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29udGV4dC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YxRDVCRTEyRDUzMzU2
MDA4MzJCRUMgLyogSlNXZWJHTExvc2VDb250ZXh0LmNwcCAqLzsgfTsKKwkJOTNGMUQ1QzExMkQ1
MzM1NjAwODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNGMUQ1QkYxMkQ1MzM1NjAwODMyQkVDIC8qIEpT
V2ViR0xMb3NlQ29udGV4dC5oICovOyB9OwogCQk5M0Y2RjFFRDEyN0Y3MEIxMDA1NUNCMDYgLyog
V2ViR0xDb250ZXh0RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNGNkYxRUExMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50
LmNwcCAqLzsgfTsKIAkJOTNGNkYxRUUxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Y2
RjFFQjEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuaCAqLzsgfTsKIAkJOTNG
OTI1NDMwRjdFRjVCODAwN0UzN0M5IC8qIENoZWNrZWRSYWRpb0J1dHRvbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjkyNTQxMEY3RUY1QjgwMDdF
MzdDOSAvKiBDaGVja2VkUmFkaW9CdXR0b25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEwMzkyLDExICsxMDM5MiwxMSBAQAogCQk5M0YxOUIx
OTA4MjQ1RTU5MDAxRTlBQkMgLyogSW5mby5wbGlzdCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5wbGlzdC54bWw7
IHBhdGggPSBJbmZvLnBsaXN0OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7
IHVzZXNUYWJzID0gMDsgfTsKIAkJOTNGMTlCMUEwODI0NUU1QTAwMUU5QUJDIC8qIFdlYkNvcmUu
ZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUg
PSB3cmFwcGVyLmZyYW1ld29yazsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gV2ViQ29yZS5m
cmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTkzRjFEMzFB
MDU1OENDNUMwMDgyMUJDMCAvKiBsaWJpY3Vjb3JlLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IG5h
bWUgPSBsaWJpY3Vjb3JlLmR5bGliOyBwYXRoID0gL3Vzci9saWIvbGliaWN1Y29yZS5keWxpYjsg
c291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKLQkJOTNGMUQ1QjcxMkQ1MzJDNDAwODMyQkVD
IC8qIFdlYktpdExvc2VDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
bmFtZSA9IFdlYktpdExvc2VDb250ZXh0LmNwcDsgcGF0aCA9IGNhbnZhcy9XZWJLaXRMb3NlQ29u
dGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzRjFENUI4MTJENTMyQzQw
MDgzMkJFQyAvKiBXZWJLaXRMb3NlQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBXZWJLaXRMb3NlQ29udGV4dC5oOyBwYXRoID0gY2FudmFzL1dlYktpdExvc2VDb250
ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkzRjFENUI5MTJENTMyQzQwMDgz
MkJFQyAvKiBXZWJLaXRMb3NlQ29udGV4dC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2Vi
S2l0TG9zZUNvbnRleHQuaWRsOyBwYXRoID0gY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNGMUQ1QkUxMkQ1MzM1NjAwODMyQkVDIC8q
IEpTV2ViS2l0TG9zZUNvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNXZWJLaXRMb3NlQ29udGV4dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTkzRjFENUJGMTJENTMzNTYwMDgzMkJFQyAvKiBKU1dlYktpdExvc2VDb250ZXh0LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0TG9zZUNvbnRleHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNGMUQ1QjcxMkQ1MzJDNDAwODMyQkVDIC8qIFdl
YkdMTG9zZUNvbnRleHQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
V2ViR0xMb3NlQ29udGV4dC5jcHA7IHBhdGggPSBjYW52YXMvV2ViR0xMb3NlQ29udGV4dC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRjFENUI4MTJENTMyQzQwMDgzMkJFQyAv
KiBXZWJHTExvc2VDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdl
YkdMTG9zZUNvbnRleHQuaDsgcGF0aCA9IGNhbnZhcy9XZWJHTExvc2VDb250ZXh0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzRjFENUI5MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJH
TExvc2VDb250ZXh0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTExvc2VDb250ZXh0
LmlkbDsgcGF0aCA9IGNhbnZhcy9XZWJHTExvc2VDb250ZXh0LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJOTNGMUQ1QkUxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViR0xMb3NlQ29u
dGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMTG9z
ZUNvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0YxRDVCRjEyRDUz
MzU2MDA4MzJCRUMgLyogSlNXZWJHTExvc2VDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTV2ViR0xMb3NlQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk5M0Y2RjFFQTEyN0Y3MEIxMDA1NUNCMDYgLyogV2ViR0xDb250ZXh0RXZlbnQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gV2ViR0xDb250ZXh0RXZlbnQu
Y3BwOyBwYXRoID0gY2FudmFzL1dlYkdMQ29udGV4dEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTNGNkYxRUIxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkdMQ29udGV4dEV2ZW50
Lmg7IHBhdGggPSBjYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTNGNkYxRUMxMjdGNzBCMTAwNTVDQjA2IC8qIFdlYkdMQ29udGV4dEV2ZW50
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJHTENvbnRleHRFdmVudC5pZGw7IHBhdGgg
PSBjYW52YXMvV2ViR0xDb250ZXh0RXZlbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTQ5OTAsOSArMTQ5OTAsOSBAQAogCQkJCTc3QTE3QTc0MTJGMjg2NDIwMDRFMDJGNiAv
KiBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmNwcCAqLywKIAkJCQk3N0ExN0E3NTEyRjI4NjQy
MDA0RTAyRjYgLyogV2ViR0xWZXJ0ZXhBcnJheU9iamVjdE9FUy5oICovLAogCQkJCTc3QTE3QTc2
MTJGMjg2NDIwMDRFMDJGNiAvKiBXZWJHTFZlcnRleEFycmF5T2JqZWN0T0VTLmlkbCAqLywKLQkJ
CQk5M0YxRDVCNzEyRDUzMkM0MDA4MzJCRUMgLyogV2ViS2l0TG9zZUNvbnRleHQuY3BwICovLAot
CQkJCTkzRjFENUI4MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJLaXRMb3NlQ29udGV4dC5oICovLAot
CQkJCTkzRjFENUI5MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJLaXRMb3NlQ29udGV4dC5pZGwgKi8s
CisJCQkJOTNGMUQ1QjcxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuY3BwICov
LAorCQkJCTkzRjFENUI4MTJENTMyQzQwMDgzMkJFQyAvKiBXZWJHTExvc2VDb250ZXh0LmggKi8s
CisJCQkJOTNGMUQ1QjkxMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdMTG9zZUNvbnRleHQuaWRsICov
LAogCQkJKTsKIAkJCW5hbWUgPSBjYW52YXM7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtMTc5MTEsNiArMTc5MTEsOCBAQAogCQkJCTZFM0ZBRDM3MTQ3MzNGNDAwMEU0MjMwNiAvKiBK
U1dlYkdMQ29tcHJlc3NlZFRleHR1cmVzLmggKi8sCiAJCQkJNDlDN0I5ODQxMDQyRDJEMzAwMDlE
NDQ3IC8qIEpTV2ViR0xGcmFtZWJ1ZmZlci5jcHAgKi8sCiAJCQkJNDlDN0I5ODUxMDQyRDJEMzAw
MDlENDQ3IC8qIEpTV2ViR0xGcmFtZWJ1ZmZlci5oICovLAorCQkJCTkzRjFENUJFMTJENTMzNTYw
MDgzMkJFQyAvKiBKU1dlYkdMTG9zZUNvbnRleHQuY3BwICovLAorCQkJCTkzRjFENUJGMTJENTMz
NTYwMDgzMkJFQyAvKiBKU1dlYkdMTG9zZUNvbnRleHQuaCAqLywKIAkJCQk0OUM3Qjk4ODEwNDJE
MkQzMDAwOUQ0NDcgLyogSlNXZWJHTFByb2dyYW0uY3BwICovLAogCQkJCTQ5QzdCOTg5MTA0MkQy
RDMwMDA5RDQ0NyAvKiBKU1dlYkdMUHJvZ3JhbS5oICovLAogCQkJCTQ5QzdCOThBMTA0MkQyRDMw
MDA5RDQ0NyAvKiBKU1dlYkdMUmVuZGVyYnVmZmVyLmNwcCAqLywKQEAgLTE3OTI5LDggKzE3OTMx
LDYgQEAKIAkJCQkzMTk0NjE2MTEzMDIwQjIwMDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb24u
aCAqLywKIAkJCQkzMTk0NjFGQzEzMDIyQkI4MDA0QkIzRjggLyogSlNXZWJLaXRBbmltYXRpb25M
aXN0LmNwcCAqLywKIAkJCQkzMTk0NjFGRDEzMDIyQkI4MDA0QkIzRjggLyogSlNXZWJLaXRBbmlt
YXRpb25MaXN0LmggKi8sCi0JCQkJOTNGMUQ1QkUxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViS2l0
TG9zZUNvbnRleHQuY3BwICovLAotCQkJCTkzRjFENUJGMTJENTMzNTYwMDgzMkJFQyAvKiBKU1dl
YktpdExvc2VDb250ZXh0LmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IEhUTUw7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtMjM1NzMsNiArMjM1NzMsNyBAQAogCQkJCTQ5QzdCOTk0MTA0
MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RUU4
QTc3MzEwRjgwM0YzMDA1QTRBMjQgLyogSlNXZWJHTENvbnRleHRBdHRyaWJ1dGVzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk0OUM3Qjk5ODEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTEZyYW1lYnVm
ZmVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk5M0YxRDVDMTEyRDUzMzU2MDA4MzJCRUMgLyogSlNX
ZWJHTExvc2VDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3Qjk5QzEwNDJEMkQzMDAw
OUQ0NDcgLyogSlNXZWJHTFByb2dyYW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QzdCOTlFMTA0
MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMUmVuZGVyYnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk0OUVFRDE0NzEwNTE5Njk0MDAwOTlGQUIgLyogSlNXZWJHTFJlbmRlcmluZ0NvbnRleHQuaCBp
biBIZWFkZXJzICovLApAQCAtMjM1ODksNyArMjM1OTAsNiBAQAogCQkJCTQ5ODM5MTQwMEYxRTc2
NzUwMEMyMzc4MiAvKiBKU1dlYktpdENTU01hdHJpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzE2
MTFFNUIwRTFDNERFMDAwRjZBNTc5IC8qIEpTV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg5ODc4NUI1MTIyQ0EyQTcwMDNBQUJEQSAvKiBKU1dlYktpdEZsYWdz
LmggaW4gSGVhZGVycyAqLywKLQkJCQk5M0YxRDVDMTEyRDUzMzU2MDA4MzJCRUMgLyogSlNXZWJL
aXRMb3NlQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzZGMDkwMkQxNDMyN0Q0RjAwNjg1
ODQ5IC8qIEpTV2ViS2l0TXV0YXRpb25PYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk0
QkQ3OUUwRjU1Qzk0QzAwNzQ3ODI4IC8qIEpTV2ViS2l0UG9pbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTMxQzBGRjQwMEU0Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktpdFRyYW5zaXRpb25FdmVudC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNDU2Nyw3ICsyNDU2Nyw3IEBACiAJCQkJNDk4MzkxNTkwRjFF
Nzc2OTAwQzIzNzgyIC8qIFdlYktpdENTU01hdHJpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5
QUREMjMwQ0M0MDMyNjAwMDk4QzRDIC8qIFdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4OTg3ODU2NjEyMkNBMDY0MDAzQUFCREEgLyogV2ViS2l0RmxhZ3MuaCBp
biBIZWFkZXJzICovLAotCQkJCTkzRjFENUJCMTJENTMyQzQwMDgzMkJFQyAvKiBXZWJLaXRMb3Nl
Q29udGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNGMUQ1QkIxMkQ1MzJDNDAwODMyQkVDIC8q
IFdlYkdMTG9zZUNvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUM2RjA5MDBGMTQzMjdCNjEw
MDY4NTg0OSAvKiBXZWJLaXRNdXRhdGlvbk9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
OTRCRDc5NTBGNTVDOEVFMDA3NDc4MjggLyogV2ViS2l0UG9pbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTMxQzBGRjI1MEU0Q0VCNkUwMDdENkZFNSAvKiBXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBp
biBIZWFkZXJzICovLApAQCAtMjY2NTEsNiArMjY2NTEsNyBAQAogCQkJCTQ5QzdCOTkzMTA0MkQy
RDMwMDA5RDQ0NyAvKiBKU1dlYkdMQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTZFRThB
NzcyMTBGODAzRjMwMDVBNEEyNCAvKiBKU1dlYkdMQ29udGV4dEF0dHJpYnV0ZXMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJNDlDN0I5OTcxMDQyRDJEMzAwMDlENDQ3IC8qIEpTV2ViR0xGcmFtZWJ1
ZmZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5M0YxRDVDMDEyRDUzMzU2MDA4MzJCRUMgLyog
SlNXZWJHTExvc2VDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOTlCMTA0MkQy
RDMwMDA5RDQ0NyAvKiBKU1dlYkdMUHJvZ3JhbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUM3
Qjk5RDEwNDJEMkQzMDAwOUQ0NDcgLyogSlNXZWJHTFJlbmRlcmJ1ZmZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk0OUVFRDE0NjEwNTE5Njk0MDAwOTlGQUIgLyogSlNXZWJHTFJlbmRlcmluZ0Nv
bnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNjY3Miw3ICsyNjY3Myw2IEBACiAJCQkJNDk4
MzkxM0YwRjFFNzY3NTAwQzIzNzgyIC8qIEpTV2ViS2l0Q1NTTWF0cml4LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTMxNjExRTVBMEUxQzRERTAwMEY2QTU3OSAvKiBKU1dlYktpdENTU1RyYW5zZm9y
bVZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5ODc4NUI0MTIyQ0EyQTcwMDNBQUJEQSAv
KiBKU1dlYktpdEZsYWdzLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTkzRjFENUMwMTJENTMzNTYw
MDgzMkJFQyAvKiBKU1dlYktpdExvc2VDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM2
RjA5MDJDMTQzMjdENEYwMDY4NTg0OSAvKiBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQzZGMDkxN0YxNDNBMkJCOTAwNjg1ODQ5IC8qIEpTV2ViS2l0TXV0
YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTRCRDc5RDBGNTVD
OTRDMDA3NDc4MjggLyogSlNXZWJLaXRQb2ludC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI3NDU4
LDcgKzI3NDU4LDcgQEAKIAkJCQkzMTI4OEU3NDBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NT
S2V5ZnJhbWVzUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTgzOTE1ODBGMUU3NzY5MDBD
MjM3ODIgLyogV2ViS2l0Q1NTTWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOUFERDgw
MENDNDA5MjIwMDA5OEM0QyAvKiBXZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5jcHAgaW4gU291cmNl
cyAqLywKLQkJCQk5M0YxRDVCQTEyRDUzMkM0MDA4MzJCRUMgLyogV2ViS2l0TG9zZUNvbnRleHQu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTNGMUQ1QkExMkQ1MzJDNDAwODMyQkVDIC8qIFdlYkdM
TG9zZUNvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzZGMDkwMEUxNDMyN0I2MTAwNjg1
ODQ5IC8qIFdlYktpdE11dGF0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFD
MEZGMjQwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRkNGMzMyRTBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIubW0gaW4g
U291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5k
ZXJpbmdDb250ZXh0Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHJldmlzaW9uIDEwMjI3
NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdDb250ZXh0
Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIkpT
VWludDhBcnJheS5oIgogI2luY2x1ZGUgIkpTV2ViR0xCdWZmZXIuaCIKICNpbmNsdWRlICJKU1dl
YkdMRnJhbWVidWZmZXIuaCIKKyNpbmNsdWRlICJKU1dlYkdMTG9zZUNvbnRleHQuaCIKICNpbmNs
dWRlICJKU1dlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIkpTV2ViR0xSZW5kZXJidWZmZXIuaCIK
ICNpbmNsdWRlICJKU1dlYkdMU2hhZGVyLmgiCkBAIC01MCw3ICs1MSw2IEBACiAjaW5jbHVkZSAi
SlNXZWJHTFVuaWZvcm1Mb2NhdGlvbi5oIgogI2luY2x1ZGUgIkpTV2ViR0xWZXJ0ZXhBcnJheU9i
amVjdE9FUy5oIgogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTTWF0cml4LmgiCi0jaW5jbHVkZSAiSlNX
ZWJLaXRMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVk
ZSAiT0VTU3RhbmRhcmREZXJpdmF0aXZlcy5oIgogI2luY2x1ZGUgIk9FU1RleHR1cmVGbG9hdC5o
IgpAQCAtNjIsMTAgKzYyLDEwIEBACiAjaW5jbHVkZSAiV2ViR0xFeHRlbnNpb24uaCIKICNpbmNs
dWRlICJXZWJHTEZyYW1lYnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xHZXRJbmZvLmgiCisjaW5j
bHVkZSAiV2ViR0xMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogI2lu
Y2x1ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMVmVydGV4QXJy
YXlPYmplY3RPRVMuaCIKLSNpbmNsdWRlICJXZWJLaXRMb3NlQ29udGV4dC5oIgogI2luY2x1ZGUg
PHJ1bnRpbWUvRXJyb3IuaD4KICNpbmNsdWRlIDxydW50aW1lL0pTQXJyYXkuaD4KICNpbmNsdWRl
IDx3dGYvRmFzdE1hbGxvYy5oPgpAQCAtMTgyLDggKzE4Miw4IEBAIHN0YXRpYyBKU1ZhbHVlIHRv
SlMoRXhlY1N0YXRlKiBleGVjLCBKU0QKICAgICBpZiAoIWV4dGVuc2lvbikKICAgICAgICAgcmV0
dXJuIGpzTnVsbCgpOwogICAgIHN3aXRjaCAoZXh0ZW5zaW9uLT5nZXROYW1lKCkpIHsKLSAgICBj
YXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJLaXRMb3NlQ29udGV4dE5hbWU6Ci0gICAgICAgIHJldHVy
biB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8V2ViS2l0TG9zZUNvbnRleHQq
PihleHRlbnNpb24pKTsKKyAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJLaXRXZWJHTExvc2VD
b250ZXh0TmFtZToKKyAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBzdGF0
aWNfY2FzdDxXZWJHTExvc2VDb250ZXh0Kj4oZXh0ZW5zaW9uKSk7CiAgICAgY2FzZSBXZWJHTEV4
dGVuc2lvbjo6T0VTU3RhbmRhcmREZXJpdmF0aXZlc05hbWU6CiAgICAgICAgIHJldHVybiB0b0pT
KGV4ZWMsIGdsb2JhbE9iamVjdCwgc3RhdGljX2Nhc3Q8T0VTU3RhbmRhcmREZXJpdmF0aXZlcyo+
KGV4dGVuc2lvbikpOwogICAgIGNhc2UgV2ViR0xFeHRlbnNpb246Ok9FU1RleHR1cmVGbG9hdE5h
bWU6CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhXZWJHTFJlbmRl
cmluZ0NvbnRleHRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHJldmlzaW9u
IDEwMjI3NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFdlYkdMUmVu
ZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDYgQEAK
ICNpbmNsdWRlICJWOEFycmF5QnVmZmVyVmlldy5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgog
I2luY2x1ZGUgIlY4QmluZGluZ01hY3Jvcy5oIgotI2luY2x1ZGUgIlY4V2ViS2l0TG9zZUNvbnRl
eHQuaCIKICNpbmNsdWRlICJWOEZsb2F0MzJBcnJheS5oIgogI2luY2x1ZGUgIlY4SFRNTENhbnZh
c0VsZW1lbnQuaCIKICNpbmNsdWRlICJWOEhUTUxJbWFnZUVsZW1lbnQuaCIKQEAgLTYwLDYgKzU5
LDcgQEAKICNpbmNsdWRlICJWOFdlYkdMRGVidWdSZW5kZXJlckluZm8uaCIKICNpbmNsdWRlICJW
OFdlYkdMRGVidWdTaGFkZXJzLmgiCiAjaW5jbHVkZSAiVjhXZWJHTEZyYW1lYnVmZmVyLmgiCisj
aW5jbHVkZSAiVjhXZWJHTExvc2VDb250ZXh0LmgiCiAjaW5jbHVkZSAiVjhXZWJHTFByb2dyYW0u
aCIKICNpbmNsdWRlICJWOFdlYkdMUmVuZGVyYnVmZmVyLmgiCiAjaW5jbHVkZSAiVjhXZWJHTFNo
YWRlci5oIgpAQCAtMTY5LDkgKzE2OSw5IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
dG9WOE9iamVjdCgKICAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZXh0ZW5zaW9uT2JqZWN0Owog
ICAgIGNvbnN0IGNoYXIqIHJlZmVyZW5jZU5hbWUgPSAwOwogICAgIHN3aXRjaCAoZXh0ZW5zaW9u
LT5nZXROYW1lKCkpIHsKLSAgICBjYXNlIFdlYkdMRXh0ZW5zaW9uOjpXZWJLaXRMb3NlQ29udGV4
dE5hbWU6Ci0gICAgICAgIGV4dGVuc2lvbk9iamVjdCA9IHRvVjgoc3RhdGljX2Nhc3Q8V2ViS2l0
TG9zZUNvbnRleHQqPihleHRlbnNpb24pKTsKLSAgICAgICAgcmVmZXJlbmNlTmFtZSA9ICJ3ZWJL
aXRMb3NlQ29udGV4dE5hbWUiOworICAgIGNhc2UgV2ViR0xFeHRlbnNpb246OldlYktpdFdlYkdM
TG9zZUNvbnRleHROYW1lOgorICAgICAgICBleHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19j
YXN0PFdlYkdMTG9zZUNvbnRleHQqPihleHRlbnNpb24pKTsKKyAgICAgICAgcmVmZXJlbmNlTmFt
ZSA9ICJ3ZWJLaXRXZWJHTExvc2VDb250ZXh0TmFtZSI7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgV2ViR0xFeHRlbnNpb246Ok9FU1N0YW5kYXJkRGVyaXZhdGl2ZXNOYW1lOgogICAgICAgICBl
eHRlbnNpb25PYmplY3QgPSB0b1Y4KHN0YXRpY19jYXN0PE9FU1N0YW5kYXJkRGVyaXZhdGl2ZXMq
PihleHRlbnNpb24pKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMRXh0
ZW5zaW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xF
eHRlbnNpb24uaAkocmV2aXNpb24gMTAyMjc3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvV2ViR0xFeHRlbnNpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQCBjbGFz
cyBXZWJHTEV4dGVuc2lvbiB7CiBwdWJsaWM6CiAgICAgLy8gRXh0ZW5zaW9uIG5hbWVzIGFyZSBu
ZWVkZWQgdG8gcHJvcGVybHkgd3JhcCBpbnN0YW5jZXMgaW4gSmF2YVNjcmlwdCBvYmplY3RzLgog
ICAgIGVudW0gRXh0ZW5zaW9uTmFtZSB7Ci0gICAgICAgIFdlYktpdExvc2VDb250ZXh0TmFtZSwK
KyAgICAgICAgV2ViS2l0V2ViR0xMb3NlQ29udGV4dE5hbWUsIC8vIFdFQktJVF8gcHJlZml4IHVu
dGlsIGV4dGVuc2lvbiBpcyBvZmZpY2lhbAogICAgICAgICBPRVNUZXh0dXJlRmxvYXROYW1lLAog
ICAgICAgICBPRVNTdGFuZGFyZERlcml2YXRpdmVzTmFtZSwKICAgICAgICAgT0VTVmVydGV4QXJy
YXlPYmplY3ROYW1lLApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xMb3Nl
Q29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2Vi
R0xMb3NlQ29udGV4dC5jcHAJKHJldmlzaW9uIDEwMDUzOCkJKGZyb20gU291cmNlL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQuY3BwOjEwMDUzOCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VC
R0wpCisKKyNpbmNsdWRlICJXZWJLaXRMb3NlQ29udGV4dC5oIgorCisjaW5jbHVkZSAiV2ViR0xS
ZW5kZXJpbmdDb250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2ViS2l0TG9zZUNv
bnRleHQ6OldlYktpdExvc2VDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkK
KyAgICA6IFdlYkdMRXh0ZW5zaW9uKGNvbnRleHQpCit7Cit9CisKK1dlYktpdExvc2VDb250ZXh0
Ojp+V2ViS2l0TG9zZUNvbnRleHQoKQoreworfQorCitXZWJHTEV4dGVuc2lvbjo6RXh0ZW5zaW9u
TmFtZSBXZWJLaXRMb3NlQ29udGV4dDo6Z2V0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFdl
YktpdExvc2VDb250ZXh0TmFtZTsKK30KKworUGFzc093blB0cjxXZWJLaXRMb3NlQ29udGV4dD4g
V2ViS2l0TG9zZUNvbnRleHQ6OmNyZWF0ZShXZWJHTFJlbmRlcmluZ0NvbnRleHQqIGNvbnRleHQp
Cit7CisgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJLaXRMb3NlQ29udGV4dChjb250ZXh0KSk7
Cit9CisKK3ZvaWQgV2ViS2l0TG9zZUNvbnRleHQ6Omxvc2VDb250ZXh0KCkKK3sKKyAgICBtX2Nv
bnRleHQtPmZvcmNlTG9zdENvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0OjpTeW50aGV0aWNM
b3N0Q29udGV4dCk7Cit9CisKK3ZvaWQgV2ViS2l0TG9zZUNvbnRleHQ6OnJlc3RvcmVDb250ZXh0
KCkKK3sKKyAgICBtX2NvbnRleHQtPmZvcmNlUmVzdG9yZUNvbnRleHQoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQkdMKQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5jcHAJKHJldmlzaW9u
IDEwMDUzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNywzNyArMjcsMzcgQEAKIAogI2lmIEVOQUJMRShXRUJH
TCkKIAotI2luY2x1ZGUgIldlYktpdExvc2VDb250ZXh0LmgiCisjaW5jbHVkZSAiV2ViR0xMb3Nl
Q29udGV4dC5oIgogCiAjaW5jbHVkZSAiV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotV2ViS2l0TG9zZUNvbnRleHQ6OldlYktpdExvc2VDb250ZXh0KFdl
YkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKK1dlYkdMTG9zZUNvbnRleHQ6OldlYkdMTG9z
ZUNvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0KiBjb250ZXh0KQogICAgIDogV2ViR0xFeHRl
bnNpb24oY29udGV4dCkKIHsKIH0KIAotV2ViS2l0TG9zZUNvbnRleHQ6On5XZWJLaXRMb3NlQ29u
dGV4dCgpCitXZWJHTExvc2VDb250ZXh0Ojp+V2ViR0xMb3NlQ29udGV4dCgpCiB7CiB9CiAKLVdl
YkdMRXh0ZW5zaW9uOjpFeHRlbnNpb25OYW1lIFdlYktpdExvc2VDb250ZXh0OjpnZXROYW1lKCkg
Y29uc3QKK1dlYkdMRXh0ZW5zaW9uOjpFeHRlbnNpb25OYW1lIFdlYkdMTG9zZUNvbnRleHQ6Omdl
dE5hbWUoKSBjb25zdAogewotICAgIHJldHVybiBXZWJLaXRMb3NlQ29udGV4dE5hbWU7CisgICAg
cmV0dXJuIFdlYktpdFdlYkdMTG9zZUNvbnRleHROYW1lOwogfQogCi1QYXNzT3duUHRyPFdlYktp
dExvc2VDb250ZXh0PiBXZWJLaXRMb3NlQ29udGV4dDo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29u
dGV4dCogY29udGV4dCkKK1Bhc3NPd25QdHI8V2ViR0xMb3NlQ29udGV4dD4gV2ViR0xMb3NlQ29u
dGV4dDo6Y3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCogY29udGV4dCkKIHsKLSAgICByZXR1
cm4gYWRvcHRQdHIobmV3IFdlYktpdExvc2VDb250ZXh0KGNvbnRleHQpKTsKKyAgICByZXR1cm4g
YWRvcHRQdHIobmV3IFdlYkdMTG9zZUNvbnRleHQoY29udGV4dCkpOwogfQogCi12b2lkIFdlYktp
dExvc2VDb250ZXh0Ojpsb3NlQ29udGV4dCgpCit2b2lkIFdlYkdMTG9zZUNvbnRleHQ6Omxvc2VD
b250ZXh0KCkKIHsKICAgICBtX2NvbnRleHQtPmZvcmNlTG9zdENvbnRleHQoV2ViR0xSZW5kZXJp
bmdDb250ZXh0OjpTeW50aGV0aWNMb3N0Q29udGV4dCk7CiB9CiAKLXZvaWQgV2ViS2l0TG9zZUNv
bnRleHQ6OnJlc3RvcmVDb250ZXh0KCkKK3ZvaWQgV2ViR0xMb3NlQ29udGV4dDo6cmVzdG9yZUNv
bnRleHQoKQogewogICAgIG1fY29udGV4dC0+Zm9yY2VSZXN0b3JlQ29udGV4dCgpOwogfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xMb3NlQ29udGV4dC5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuaAkocmV2
aXNpb24gMTAwNTM4KQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJLaXRMb3Nl
Q29udGV4dC5oOjEwMDUzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTG9z
ZUNvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisg
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBXZWJLaXRMb3NlQ29udGV4dF9oCisjZGVmaW5lIFdlYktpdExvc2VDb250ZXh0X2gKKworI2lu
Y2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ7CisKK2Ns
YXNzIFdlYktpdExvc2VDb250ZXh0IDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc093blB0cjxXZWJLaXRMb3NlQ29udGV4dD4gY3JlYXRlKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCopOworCisgICAgdmlydHVhbCB+V2ViS2l0TG9zZUNvbnRleHQoKTsKKyAg
ICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0OworCisgICAgdm9pZCBsb3Nl
Q29udGV4dCgpOworICAgIHZvaWQgcmVzdG9yZUNvbnRleHQoKTsKKworcHJpdmF0ZToKKyAgICBX
ZWJLaXRMb3NlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFdlYktpdExvc2VDb250ZXh0X2gKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0LmgJKHJldmlzaW9u
IDEwMDUzOCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQu
aAkod29ya2luZyBjb3B5KQpAQCAtMjMsOCArMjMsOCBAQAogICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0j
aWZuZGVmIFdlYktpdExvc2VDb250ZXh0X2gKLSNkZWZpbmUgV2ViS2l0TG9zZUNvbnRleHRfaAor
I2lmbmRlZiBXZWJHTExvc2VDb250ZXh0X2gKKyNkZWZpbmUgV2ViR0xMb3NlQ29udGV4dF9oCiAK
ICNpbmNsdWRlICJXZWJHTEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+
CkBAIC0zMywyMCArMzMsMjAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBXZWJHTFJl
bmRlcmluZ0NvbnRleHQ7CiAKLWNsYXNzIFdlYktpdExvc2VDb250ZXh0IDogcHVibGljIFdlYkdM
RXh0ZW5zaW9uIHsKK2NsYXNzIFdlYkdMTG9zZUNvbnRleHQgOiBwdWJsaWMgV2ViR0xFeHRlbnNp
b24gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYktpdExvc2VDb250ZXh0PiBj
cmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CisgICAgc3RhdGljIFBhc3NPd25QdHI8V2Vi
R0xMb3NlQ29udGV4dD4gY3JlYXRlKFdlYkdMUmVuZGVyaW5nQ29udGV4dCopOwogCi0gICAgdmly
dHVhbCB+V2ViS2l0TG9zZUNvbnRleHQoKTsKKyAgICB2aXJ0dWFsIH5XZWJHTExvc2VDb250ZXh0
KCk7CiAgICAgdmlydHVhbCBFeHRlbnNpb25OYW1lIGdldE5hbWUoKSBjb25zdDsKIAogICAgIHZv
aWQgbG9zZUNvbnRleHQoKTsKICAgICB2b2lkIHJlc3RvcmVDb250ZXh0KCk7CiAKIHByaXZhdGU6
Ci0gICAgV2ViS2l0TG9zZUNvbnRleHQoV2ViR0xSZW5kZXJpbmdDb250ZXh0Kik7CisgICAgV2Vi
R0xMb3NlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIFdlYktpdExvc2VDb250ZXh0X2gKKyNlbmRpZiAvLyBX
ZWJHTExvc2VDb250ZXh0X2gKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdM
TG9zZUNvbnRleHQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFz
L1dlYkdMTG9zZUNvbnRleHQuaWRsCShyZXZpc2lvbiAxMDA1MzgpCShmcm9tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmlkbDoxMDA1MzgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTExvc2VDb250ZXh0LmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworbW9kdWxlIGh0bWwgeworICAgIGludGVyZmFjZSBbCisg
ICAgICAgIENvbmRpdGlvbmFsPVdFQkdMLAorICAgICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUlt
cGxDb250ZXh0LAorICAgICAgICBPbWl0Q29uc3RydWN0b3IKKyAgICBdIFdlYktpdExvc2VDb250
ZXh0IHsKKyAgICAgICAgW1N0cmljdFR5cGVDaGVja2luZ10gdm9pZCBsb3NlQ29udGV4dCgpOwor
ICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIHJlc3RvcmVDb250ZXh0KCk7CisgICAg
fTsKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNvbnRleHQu
aWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMTG9zZUNv
bnRleHQuaWRsCShyZXZpc2lvbiAxMDA1MzgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZh
cy9XZWJHTExvc2VDb250ZXh0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNyBAQCBt
b2R1bGUgaHRtbCB7CiAgICAgICAgIENvbmRpdGlvbmFsPVdFQkdMLAogICAgICAgICBHZW5lcmF0
ZUlzUmVhY2hhYmxlPUltcGxDb250ZXh0LAogICAgICAgICBPbWl0Q29uc3RydWN0b3IKLSAgICBd
IFdlYktpdExvc2VDb250ZXh0IHsKKyAgICBdIFdlYkdMTG9zZUNvbnRleHQgewogICAgICAgICBb
U3RyaWN0VHlwZUNoZWNraW5nXSB2b2lkIGxvc2VDb250ZXh0KCk7CiAgICAgICAgIFtTdHJpY3RU
eXBlQ2hlY2tpbmddIHZvaWQgcmVzdG9yZUNvbnRleHQoKTsKICAgICB9OwpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3Bw
CShyZXZpc2lvbiAxMDIyNzcpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJl
bmRlcmluZ0NvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MCwxMiArNjAsMTIgQEAKICNp
bmNsdWRlICJXZWJHTERlYnVnUmVuZGVyZXJJbmZvLmgiCiAjaW5jbHVkZSAiV2ViR0xEZWJ1Z1No
YWRlcnMuaCIKICNpbmNsdWRlICJXZWJHTEZyYW1lYnVmZmVyLmgiCisjaW5jbHVkZSAiV2ViR0xM
b3NlQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYkdMUHJvZ3JhbS5oIgogI2luY2x1ZGUgIldlYkdM
UmVuZGVyYnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViR0xTaGFkZXIuaCIKICNpbmNsdWRlICJXZWJH
TFRleHR1cmUuaCIKICNpbmNsdWRlICJXZWJHTFVuaWZvcm1Mb2NhdGlvbi5oIgotI2luY2x1ZGUg
IldlYktpdExvc2VDb250ZXh0LmgiCiAKICNpbmNsdWRlIDx3dGYvQnl0ZUFycmF5Lmg+CiAjaW5j
bHVkZSA8d3RmL093bkFycmF5UHRyLmg+CkBAIC0yMTI0LDEwICsyMTI0LDEyIEBAIFdlYkdMRXh0
ZW5zaW9uKiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OmcKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gbV9vZXNWZXJ0ZXhBcnJheU9iamVjdC5nZXQoKTsKICAgICB9Ci0gICAgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKG5hbWUsICJXRUJLSVRfbG9zZV9jb250ZXh0IikpIHsKLSAgICAgICAgaWYgKCFt
X3dlYmtpdExvc2VDb250ZXh0KQotICAgICAgICAgICAgbV93ZWJraXRMb3NlQ29udGV4dCA9IFdl
YktpdExvc2VDb250ZXh0OjpjcmVhdGUodGhpcyk7Ci0gICAgICAgIHJldHVybiBtX3dlYmtpdExv
c2VDb250ZXh0LmdldCgpOworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiV0VCS0lU
X1dFQkdMX2xvc2VfY29udGV4dCIpCisgICAgICAgIC8vIEZJWE1FOiByZW1vdmUgdGhpcyBhZnRl
ciBhIGNlcnRhaW4gZ3JhY2UgcGVyaW9kLgorICAgICAgICB8fCBlcXVhbElnbm9yaW5nQ2FzZShu
YW1lLCAiV0VCS0lUX2xvc2VfY29udGV4dCIpKSB7CisgICAgICAgIGlmICghbV93ZWJnbExvc2VD
b250ZXh0KQorICAgICAgICAgICAgbV93ZWJnbExvc2VDb250ZXh0ID0gV2ViR0xMb3NlQ29udGV4
dDo6Y3JlYXRlKHRoaXMpOworICAgICAgICByZXR1cm4gbV93ZWJnbExvc2VDb250ZXh0LmdldCgp
OwogICAgIH0KICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobmFtZSwgIldFQktJVF9XRUJHTF9j
b21wcmVzc2VkX3RleHR1cmVzIikpIHsKICAgICAgICAgLy8gVXNlIFdFQktJVF8gcHJlZml4IHVu
dGlsIGV4dGVuc2lvbiBpcyBvZmZpY2lhbC4KQEAgLTI1NzgsNyArMjU4MCw3IEBAIFZlY3RvcjxT
dHJpbmc+IFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6Z2UKICAgICAgICAgcmVzdWx0LmFwcGVuZCgi
T0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIik7CiAgICAgaWYgKG1fY29udGV4dC0+Z2V0RXh0ZW5z
aW9ucygpLT5zdXBwb3J0cygiR0xfT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKSkKICAgICAgICAg
cmVzdWx0LmFwcGVuZCgiT0VTX3ZlcnRleF9hcnJheV9vYmplY3QiKTsKLSAgICByZXN1bHQuYXBw
ZW5kKCJXRUJLSVRfbG9zZV9jb250ZXh0Iik7CisgICAgcmVzdWx0LmFwcGVuZCgiV0VCS0lUX1dF
QkdMX2xvc2VfY29udGV4dCIpOwogICAgIGlmIChXZWJHTENvbXByZXNzZWRUZXh0dXJlczo6c3Vw
cG9ydGVkKHRoaXMpKQogICAgICAgICByZXN1bHQuYXBwZW5kKCJXRUJLSVRfV0VCR0xfY29tcHJl
c3NlZF90ZXh0dXJlcyIpOwogCkBAIC00OTkxLDggKzQ5OTMsOCBAQCB2b2lkIFdlYkdMUmVuZGVy
aW5nQ29udGV4dDo6bWF5YmVSZXN0b3JlCiAgICAgY2FzZSBHcmFwaGljc0NvbnRleHQzRDo6Tk9f
RVJST1I6CiAgICAgICAgIC8vIFRoZSBHcmFwaGljc0NvbnRleHQzRCBpbXBsZW1lbnRhdGlvbiBt
aWdodCBub3QgZnVsbHkKICAgICAgICAgLy8gc3VwcG9ydCBHTF9BUkJfcm9idXN0bmVzcyBzZW1h
bnRpY3MgeWV0LiBBbHRlcm5hdGl2ZWx5LCB0aGUKLSAgICAgICAgLy8gV2ViR0wgV0VCS0lUX2xv
c2VfY29udGV4dCBleHRlbnNpb24gbWlnaHQgaGF2ZSBiZWVuIHVzZWQgdG8KLSAgICAgICAgLy8g
Zm9yY2UgYSBsb3N0IGNvbnRleHQuCisgICAgICAgIC8vIFdFQkdMX2xvc2VfY29udGV4dCBleHRl
bnNpb24gbWlnaHQgaGF2ZSBiZWVuIHVzZWQgdG8gZm9yY2UKKyAgICAgICAgLy8gYSBsb3N0IGNv
bnRleHQuCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRXh0ZW5zaW9uczNEOjpHVUlMVFlfQ09O
VEVYVF9SRVNFVF9BUkI6CiAgICAgICAgIC8vIFRoZSByZW5kZXJpbmcgY29udGV4dCBpcyBub3Qg
cmVzdG9yZWQgaWYgdGhpcyBjb250ZXh0IHdhcwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmgJKHJldmlzaW9uIDEwMjI3NykK
KysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dC5oCSh3
b3JraW5nIGNvcHkpCkBAIC01Niw2ICs1Niw3IEBAIGNsYXNzIFdlYkdMRGVidWdSZW5kZXJlcklu
Zm87CiBjbGFzcyBXZWJHTERlYnVnU2hhZGVyczsKIGNsYXNzIFdlYkdMRXh0ZW5zaW9uOwogY2xh
c3MgV2ViR0xGcmFtZWJ1ZmZlcjsKK2NsYXNzIFdlYkdMTG9zZUNvbnRleHQ7CiBjbGFzcyBXZWJH
TE9iamVjdDsKIGNsYXNzIFdlYkdMUHJvZ3JhbTsKIGNsYXNzIFdlYkdMUmVuZGVyYnVmZmVyOwpA
QCAtNjMsNyArNjQsNiBAQCBjbGFzcyBXZWJHTFNoYWRlcjsKIGNsYXNzIFdlYkdMVGV4dHVyZTsK
IGNsYXNzIFdlYkdMVW5pZm9ybUxvY2F0aW9uOwogY2xhc3MgV2ViR0xWZXJ0ZXhBcnJheU9iamVj
dE9FUzsKLWNsYXNzIFdlYktpdExvc2VDb250ZXh0OwogCiB0eXBlZGVmIGludCBFeGNlcHRpb25D
b2RlOwogCkBAIC00ODQsNyArNDg0LDcgQEAgcHVibGljOgogICAgIE93blB0cjxPRVNUZXh0dXJl
RmxvYXQ+IG1fb2VzVGV4dHVyZUZsb2F0OwogICAgIE93blB0cjxPRVNTdGFuZGFyZERlcml2YXRp
dmVzPiBtX29lc1N0YW5kYXJkRGVyaXZhdGl2ZXM7CiAgICAgT3duUHRyPE9FU1ZlcnRleEFycmF5
T2JqZWN0PiBtX29lc1ZlcnRleEFycmF5T2JqZWN0OwotICAgIE93blB0cjxXZWJLaXRMb3NlQ29u
dGV4dD4gbV93ZWJraXRMb3NlQ29udGV4dDsKKyAgICBPd25QdHI8V2ViR0xMb3NlQ29udGV4dD4g
bV93ZWJnbExvc2VDb250ZXh0OwogICAgIE93blB0cjxXZWJHTERlYnVnUmVuZGVyZXJJbmZvPiBt
X3dlYmdsRGVidWdSZW5kZXJlckluZm87CiAgICAgT3duUHRyPFdlYkdMRGVidWdTaGFkZXJzPiBt
X3dlYmdsRGVidWdTaGFkZXJzOwogICAgIE93blB0cjxXZWJHTENvbXByZXNzZWRUZXh0dXJlcz4g
bV93ZWJnbENvbXByZXNzZWRUZXh0dXJlczsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2Fu
dmFzL1dlYktpdExvc2VDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9o
dG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5jcHAJKHJldmlzaW9uIDEwMjI3NykKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw2NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYg
RU5BQkxFKFdFQkdMKQotCi0jaW5jbHVkZSAiV2ViS2l0TG9zZUNvbnRleHQuaCIKLQotI2luY2x1
ZGUgIldlYkdMUmVuZGVyaW5nQ29udGV4dC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLVdl
YktpdExvc2VDb250ZXh0OjpXZWJLaXRMb3NlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHQq
IGNvbnRleHQpCi0gICAgOiBXZWJHTEV4dGVuc2lvbihjb250ZXh0KQotewotfQotCi1XZWJLaXRM
b3NlQ29udGV4dDo6fldlYktpdExvc2VDb250ZXh0KCkKLXsKLX0KLQotV2ViR0xFeHRlbnNpb246
OkV4dGVuc2lvbk5hbWUgV2ViS2l0TG9zZUNvbnRleHQ6OmdldE5hbWUoKSBjb25zdAotewotICAg
IHJldHVybiBXZWJLaXRMb3NlQ29udGV4dE5hbWU7Ci19Ci0KLVBhc3NPd25QdHI8V2ViS2l0TG9z
ZUNvbnRleHQ+IFdlYktpdExvc2VDb250ZXh0OjpjcmVhdGUoV2ViR0xSZW5kZXJpbmdDb250ZXh0
KiBjb250ZXh0KQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgV2ViS2l0TG9zZUNvbnRleHQo
Y29udGV4dCkpOwotfQotCi12b2lkIFdlYktpdExvc2VDb250ZXh0Ojpsb3NlQ29udGV4dCgpCi17
Ci0gICAgbV9jb250ZXh0LT5mb3JjZUxvc3RDb250ZXh0KFdlYkdMUmVuZGVyaW5nQ29udGV4dDo6
U3ludGhldGljTG9zdENvbnRleHQpOwotfQotCi12b2lkIFdlYktpdExvc2VDb250ZXh0OjpyZXN0
b3JlQ29udGV4dCgpCi17Ci0gICAgbV9jb250ZXh0LT5mb3JjZVJlc3RvcmVDb250ZXh0KCk7Ci19
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShXRUJHTCkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViS2l0TG9zZUNvbnRleHQuaAko
cmV2aXNpb24gMTAyMjc3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvV2ViS2l0TG9z
ZUNvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1MiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0g
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRl
ZiBXZWJLaXRMb3NlQ29udGV4dF9oCi0jZGVmaW5lIFdlYktpdExvc2VDb250ZXh0X2gKLQotI2lu
Y2x1ZGUgIldlYkdMRXh0ZW5zaW9uLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBXZWJHTFJlbmRlcmluZ0NvbnRleHQ7Ci0KLWNs
YXNzIFdlYktpdExvc2VDb250ZXh0IDogcHVibGljIFdlYkdMRXh0ZW5zaW9uIHsKLXB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc093blB0cjxXZWJLaXRMb3NlQ29udGV4dD4gY3JlYXRlKFdlYkdMUmVu
ZGVyaW5nQ29udGV4dCopOwotCi0gICAgdmlydHVhbCB+V2ViS2l0TG9zZUNvbnRleHQoKTsKLSAg
ICB2aXJ0dWFsIEV4dGVuc2lvbk5hbWUgZ2V0TmFtZSgpIGNvbnN0OwotCi0gICAgdm9pZCBsb3Nl
Q29udGV4dCgpOwotICAgIHZvaWQgcmVzdG9yZUNvbnRleHQoKTsKLQotcHJpdmF0ZToKLSAgICBX
ZWJLaXRMb3NlQ29udGV4dChXZWJHTFJlbmRlcmluZ0NvbnRleHQqKTsKLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIFdlYktpdExvc2VDb250ZXh0X2gKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VDb250ZXh0LmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJLaXRMb3NlQ29udGV4dC5pZGwJKHJl
dmlzaW9uIDEwMjI3NykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYktpdExvc2VD
b250ZXh0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMSwzNSArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRT
IENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0g
KiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotbW9kdWxl
IGh0bWwgewotICAgIGludGVyZmFjZSBbCi0gICAgICAgIENvbmRpdGlvbmFsPVdFQkdMLAotICAg
ICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxDb250ZXh0LAotICAgICAgICBPbWl0Q29uc3Ry
dWN0b3IKLSAgICBdIFdlYktpdExvc2VDb250ZXh0IHsKLSAgICAgICAgW1N0cmljdFR5cGVDaGVj
a2luZ10gdm9pZCBsb3NlQ29udGV4dCgpOwotICAgICAgICBbU3RyaWN0VHlwZUNoZWNraW5nXSB2
b2lkIHJlc3RvcmVDb250ZXh0KCk7Ci0gICAgfTsKLX0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMjI3
NykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIw
IEBACisyMDExLTEyLTA3ICBLZW5uZXRoIFJ1c3NlbGwgIDxrYnJAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBSZW5hbWUgV0VCS0lUX2xvc2VfY29udGV4dCB0byBXRUJLSVRfV0VCR0xfbG9zZV9jb250
ZXh0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTg3
MAorCisgICAgICAgIFN5bmNocm9uaXplZCBjb250ZXh0LWxvc3QtcmVzdG9yZWQuaHRtbCBhbmQg
Y29udGV4dC1sb3N0Lmh0bWwgd2l0aAorICAgICAgICBLaHJvbm9zIHJlcG9zaXRvcnk7IHVwc3Ry
ZWFtIHRlc3RzIG11c3QgY2hlY2sgZm9yIG11bHRpcGxlIHZlbmRvcgorICAgICAgICBwcmVmaXhl
cy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZh
c3QvY2FudmFzL3dlYmdsL1dlYkdMQ29udGV4dEV2ZW50Lmh0bWw6CisgICAgICAgICogZmFzdC9j
YW52YXMvd2ViZ2wvY29udGV4dC1kZXN0cm95ZWQtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBmYXN0
L2NhbnZhcy93ZWJnbC9jb250ZXh0LWxvc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3Qv
Y2FudmFzL3dlYmdsL2NvbnRleHQtbG9zdC1yZXN0b3JlZC5odG1sOgorICAgICAgICAqIGZhc3Qv
Y2FudmFzL3dlYmdsL2NvbnRleHQtbG9zdC5odG1sOgorCiAyMDExLTEyLTA3ICBBZGFtIEtsZWlu
ICA8YWRhbWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtNdXRhdGlvbk9ic2VydmVyc10gRW5h
YmxlIGluIENocm9taXVtIHRydW5rCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJn
bC9XZWJHTENvbnRleHRFdmVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Y2FudmFzL3dlYmdsL1dlYkdMQ29udGV4dEV2ZW50Lmh0bWwJKHJldmlzaW9uIDEwMjI3NykKKysr
IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL1dlYkdMQ29udGV4dEV2ZW50Lmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTE3LDkgKzE3LDkgQEAgZnVuY3Rpb24gY3JlYXRlTmV3Q2FudmFzKCkK
ICAgICBjYW52YXMuaGVpZ2h0ID0gMTsKIAogICAgIGNvbnRleHQgPSBXZWJHTFRlc3RVdGlscy5j
cmVhdGUzRENvbnRleHQoY2FudmFzKTsKLSAgICBleHRlbnNpb24gPSBjb250ZXh0LmdldEV4dGVu
c2lvbigiV0VCS0lUX2xvc2VfY29udGV4dCIpOworICAgIGV4dGVuc2lvbiA9IGNvbnRleHQuZ2V0
RXh0ZW5zaW9uKCJXRUJLSVRfV0VCR0xfbG9zZV9jb250ZXh0Iik7CiAgICAgaWYgKCFleHRlbnNp
b24pIHsKLSAgICAgICAgZGVidWcoIkNvdWxkIG5vdCBmaW5kIHRoZSBXRUJLSVRfbG9zZV9jb250
ZXh0IGV4dGVuc2lvbi4iKTsKKyAgICAgICAgZGVidWcoIkNvdWxkIG5vdCBmaW5kIHRoZSBXRUJL
SVRfV0VCR0xfbG9zZV9jb250ZXh0IGV4dGVuc2lvbi4iKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIH0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQtZGVzdHJv
eWVkLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvY29udGV4dC1kZXN0cm95ZWQtY3Jhc2guaHRtbAkocmV2aXNpb24gMTAyMjc3KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1kZXN0cm95ZWQtY3Jhc2guaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24o
KQogewogICAgIGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpOwogICAg
IGNvbnRleHQgPSBjcmVhdGUzRENvbnRleHQoY2FudmFzKTsKLSAgICBleHRlbnNpb24gPSBjb250
ZXh0LmdldEV4dGVuc2lvbigiV0VCS0lUX2xvc2VfY29udGV4dCIpOworICAgIGV4dGVuc2lvbiA9
IGNvbnRleHQuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfV0VCR0xfbG9zZV9jb250ZXh0Iik7CiAgICAg
CiAgICAgY2FudmFzID0gbnVsbDsKICAgICBjb250ZXh0ID0gbnVsbDsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQtbG9zdC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC1sb3N0LWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMTAyMjc3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wv
Y29udGV4dC1sb3N0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTY4LDcgKzE2OCw3
IEBAIFBBU1MgZ2wuZ2V0VW5pZm9ybShwcm9ncmFtLCB1bmlmb3JtTG9jYXQKIFBBU1MgZ2wuZ2V0
VW5pZm9ybUxvY2F0aW9uKHByb2dyYW0sICd2UG9zaXRpb24nKSBpcyBudWxsCiBQQVNTIGdsLmdl
dFZlcnRleEF0dHJpYigwLCBnbC5WRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HKSBp
cyBudWxsCiBQQVNTIGdsLmdldFN1cHBvcnRlZEV4dGVuc2lvbnMoKSBpcyBudWxsCi1QQVNTIGds
LmdldEV4dGVuc2lvbignV0VCS0lUX2xvc2VfY29udGV4dCcpIGlzIG51bGwKK1BBU1MgZ2wuZ2V0
RXh0ZW5zaW9uKCdXRUJLSVRfV0VCR0xfbG9zZV9jb250ZXh0JykgaXMgbnVsbAogUEFTUyBnbC5p
c0J1ZmZlcihidWZmZXIpIGlzIGZhbHNlCiBQQVNTIGdsLmlzRW5hYmxlZChnbC5CTEVORCkgaXMg
ZmFsc2UKIFBBU1MgZ2wuaXNGcmFtZWJ1ZmZlcihmcmFtZWJ1ZmZlcikgaXMgZmFsc2UKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQtbG9zdC1yZXN0b3JlZC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQtbG9z
dC1yZXN0b3JlZC5odG1sCShyZXZpc2lvbiAxMDIyNzcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nh
bnZhcy93ZWJnbC9jb250ZXh0LWxvc3QtcmVzdG9yZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
OCw3ICs4LDEwIEBAIHZhciB3dHUgPSBXZWJHTFRlc3RVdGlsczsKIHZhciBjYW52YXM7CiB2YXIg
Z2w7CiB2YXIgc2hvdWxkR2VuZXJhdGVHTEVycm9yOwotdmFyIGV4dGVuc2lvbl9uYW1lID0gIldF
QktJVF9sb3NlX2NvbnRleHQiOwordmFyIGV4dGVuc2lvbk5hbWVzID0gWworICAgICJXRUJLSVRf
V0VCR0xfbG9zZV9jb250ZXh0IiwKKyAgICAiTU9aX1dFQkdMX2xvc2VfY29udGV4dCIsCitdOwog
dmFyIGV4dGVuc2lvbjsKIHZhciBidWZmZXJPYmplY3RzOwogdmFyIHByb2dyYW07CkBAIC00Miw5
ICs0NSwxMyBAQCBmdW5jdGlvbiBzZXR1cFRlc3QoKQogICAgIGNhbnZhcy53aWR0aCA9IDE7CiAg
ICAgY2FudmFzLmhlaWdodCA9IDE7CiAgICAgZ2wgPSB3dHUuY3JlYXRlM0RDb250ZXh0KGNhbnZh
cyk7Ci0gICAgZXh0ZW5zaW9uID0gZ2wuZ2V0RXh0ZW5zaW9uKGV4dGVuc2lvbl9uYW1lKTsKKyAg
ICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgZXh0ZW5zaW9uTmFtZXMubGVuZ3RoOyArK2lpKSB7Cisg
ICAgICAgIGV4dGVuc2lvbiA9IGdsLmdldEV4dGVuc2lvbihleHRlbnNpb25OYW1lc1tpaV0pOwor
ICAgICAgICBpZiAoZXh0ZW5zaW9uKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQogICAgIGlm
ICghZXh0ZW5zaW9uKSB7Ci0gICAgICAgIGRlYnVnKGV4dGVuc2lvbl9uYW1lICsgIiBleHRlbnNp
b24gbm90IGZvdW5kLiIpOworICAgICAgICBkZWJ1ZygiQ291bGQgbm90IGZpbmQgbG9zZV9jb250
ZXh0IGV4dGVuc2lvbiB1bmRlciB0aGUgZm9sbG93aW5nIG5hbWVzOiAiICsgZXh0ZW5zaW9uTmFt
ZXMuam9pbigiICIpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICByZXR1cm4g
dHJ1ZTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQtbG9zdC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2NvbnRleHQt
bG9zdC5odG1sCShyZXZpc2lvbiAxMDIyNzcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9jb250ZXh0LWxvc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCw3ICs4LDExIEBAIHZh
ciB3dHU7CiB2YXIgY2FudmFzOwogdmFyIGdsOwogdmFyIHNob3VsZEdlbmVyYXRlR0xFcnJvcjsK
LXZhciBleHRlbnNpb25fbmFtZSA9ICJXRUJLSVRfbG9zZV9jb250ZXh0IjsKK3ZhciBleHRlbnNp
b25OYW1lcyA9IFsKKyAgICAiV0VCS0lUX1dFQkdMX2xvc2VfY29udGV4dCIsCisgICAgIk1PWl9X
RUJHTF9sb3NlX2NvbnRleHQiLAorXTsKK3ZhciBleHRlbnNpb25OYW1lOwogdmFyIGV4dGVuc2lv
bjsKIAogdmFyIGJ1ZmZlcjsKQEAgLTQxLDExICs0NSwxNiBAQCBmdW5jdGlvbiBpbml0KCkKICAg
ICAgICAgd2luZG93LmluaXROb25LaHJvbm9zRnJhbWV3b3JrKHRydWUpOwogICAgIH0KIAotICAg
IGV4dGVuc2lvbiA9IGdsLmdldEV4dGVuc2lvbihleHRlbnNpb25fbmFtZSk7CisgICAgZm9yICh2
YXIgaWkgPSAwOyBpaSA8IGV4dGVuc2lvbk5hbWVzLmxlbmd0aDsgKytpaSkgeworICAgICAgICBl
eHRlbnNpb24gPSBnbC5nZXRFeHRlbnNpb24oZXh0ZW5zaW9uTmFtZXNbaWldKTsKKyAgICAgICAg
aWYgKGV4dGVuc2lvbikgeworICAgICAgICAgICAgZXh0ZW5zaW9uTmFtZSA9IGV4dGVuc2lvbk5h
bWVzW2lpXTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQogICAgIGlmICgh
ZXh0ZW5zaW9uKSB7Ci0gICAgICAgIGRlYnVnKGV4dGVuc2lvbl9uYW1lICsgIiBleHRlbnNpb24g
bm90IGZvdW5kLiIpOwotICAgICAgICBmaW5pc2goKTsKLSAgICAgICAgcmV0dXJuOworICAgICAg
ICBkZWJ1ZygiQ291bGQgbm90IGZpbmQgbG9zZV9jb250ZXh0IGV4dGVuc2lvbiB1bmRlciB0aGUg
Zm9sbG93aW5nIG5hbWVzOiAiICsgZXh0ZW5zaW9uTmFtZXMuam9pbigiICIpKTsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIGNhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJn
bGNvbnRleHRsb3N0IiwgdGVzdExvc3RDb250ZXh0KTsKQEAgLTI3Nyw3ICsyODYsNyBAQCBmdW5j
dGlvbiB0ZXN0TG9zdENvbnRleHQoKQogICAgICAgICAiZ2wuZ2V0VW5pZm9ybUxvY2F0aW9uKHBy
b2dyYW0sICd2UG9zaXRpb24nKSIsCiAgICAgICAgICJnbC5nZXRWZXJ0ZXhBdHRyaWIoMCwgZ2wu
VkVSVEVYX0FUVFJJQl9BUlJBWV9CVUZGRVJfQklORElORykiLAogICAgICAgICAiZ2wuZ2V0U3Vw
cG9ydGVkRXh0ZW5zaW9ucygpIiwKLSAgICAgICAgImdsLmdldEV4dGVuc2lvbignIiArIGV4dGVu
c2lvbl9uYW1lICsgIicpIiwKKyAgICAgICAgImdsLmdldEV4dGVuc2lvbignIiArIGV4dGVuc2lv
bk5hbWUgKyAiJykiLAogICAgIF07CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudWxsVGVzdHMu
bGVuZ3RoOyArK2kpIHsKICAgICAgICAgc2hvdWxkQmVOdWxsKG51bGxUZXN0c1tpXSk7Cg==
</data>
<flag name="review"
          id="117975"
          type_id="1"
          status="+"
          setter="jamesr"
    />
          </attachment>
      

    </bug>

</bugzilla>