<?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>54560</bug_id>
          
          <creation_ts>2011-02-16 08:34:00 -0800</creation_ts>
          <short_desc>Drop the language tag part from the User Agent string</short_desc>
          <delta_ts>2011-02-22 21:29:48 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>54556</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Laszlo Gombos">laszlo.gombos</reporter>
          <assigned_to name="Laszlo Gombos">laszlo.gombos</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>mjs</cc>
    
    <cc>pkasting</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>352093</commentid>
    <comment_count>0</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2011-02-16 08:34:00 -0800</bug_when>
    <thetext>As discussed in webkit-dev (https://lists.webkit.org/pipermail/webkit-dev/2011-February/015952.html) all WebKit ports should drop the language tag part from the User Agent string. Patch will follow.

I think we should consider bumping up the WebKit version with this change (e.g. MINOR_VERSION in Version.xcconfig). Feedback on this is would be appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352114</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-16 09:00:47 -0800</bug_when>
    <thetext>I don&apos;t think that changing Version.xccconfig would be right. These versions only really reflect Apple&apos;s internal build procedures.

The minor version in Version.xccconfig changes pretty frequently anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352130</commentid>
    <comment_count>2</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2011-02-16 09:21:09 -0800</bug_when>
    <thetext>Is this an appropriate bug to also talk about removing the &quot;U;&quot; for encryption, and, on Windows, the initial &quot;Windows;&quot; that is redundant with the more-specific version identifier afterwards?

Removing those as well would match Firefox 4 ( http://hacks.mozilla.org/2010/09/final-user-agent-string-for-firefox-4/ ), and if we want to do them eventually, it might be better to do these all at once.  Certainly Chromium would be interested in seeing them removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352153</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-16 10:00:38 -0800</bug_when>
    <thetext>Changes other than dropping language are tracked by a meta bug 54556.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352160</commentid>
    <comment_count>4</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2011-02-16 10:10:07 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Changes other than dropping language are tracked by a meta bug 54556.

I see.  I filed bugs on these other two items and blocked them against that bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352181</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-16 10:41:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/8983585&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352928</commentid>
    <comment_count>6</comment_count>
      <attachid>82813</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2011-02-17 08:33:41 -0800</bug_when>
    <thetext>Created attachment 82813
first try</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352932</commentid>
    <comment_count>7</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2011-02-17 08:36:20 -0800</bug_when>
    <thetext>Chrome User Agent string seems to be constructed outside of WebKit tree (user_agent.cc).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352933</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-17 08:36:48 -0800</bug_when>
    <thetext>Attachment 82813 did not pass style-queue:

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

Source/WebKit2/UIProcess/win/WebPageProxyWin.cpp:108:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 19 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>352976</commentid>
    <comment_count>9</comment_count>
      <attachid>82813</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-17 09:38:21 -0800</bug_when>
    <thetext>Comment on attachment 82813
first try

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

What exactly does this change affect? Is it all of navigator.userAgent, navigator.appVersion, and HTTP User-Agent header field? Can you add tests for all of these?

&gt; Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp:-124
&gt; -    ua += &quot;; &quot;;
&gt; -    ua += defaultLanguage(); // Localization information

There is likely an #include to remove in this file.

&gt; Source/WebKit/efl/ewk/ewk_settings.cpp:326
&gt; -    WTF::String static_ua = makeString(&quot;Mozilla/5.0 (&quot;, _ewk_settings_webkit_platform_get(), &quot;; U; &quot;, _ewk_settings_webkit_os_version_get(), &quot;; &quot;, WebCore::defaultLanguage(), &quot;) AppleWebKit/&quot;, ua_version) + makeString(&quot; (KHTML, like Gecko) Version/5.0 Safari/&quot;, ua_version);
&gt; +    WTF::String static_ua = makeString(&quot;Mozilla/5.0 (&quot;, _ewk_settings_webkit_platform_get(), &quot;; U; &quot;, _ewk_settings_webkit_os_version_get(), &quot;) AppleWebKit/&quot;, ua_version) + makeString(&quot; (KHTML, like Gecko) Version/5.0 Safari/&quot;, ua_version);

Ditto.

&gt; Source/WebKit/mac/WebView/WebView.mm:-551
&gt; -    NSString *language = [NSUserDefaults _webkit_preferredLanguageCode];

Ditto.

&gt; Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm:-96
&gt;      String language = defaultLanguage();
&gt;  
&gt;      if (applicationNameForUserAgent.isEmpty())
&gt; -        return makeString(&quot;Mozilla/5.0 (Macintosh; U; &quot; PROCESSOR &quot; Mac OS X &quot;, osVersion, &quot;; &quot;, language, &quot;) AppleWebKit/&quot;, webKitVersion, &quot; (KHTML, like Gecko)&quot;);
&gt; -    return makeString(&quot;Mozilla/5.0 (Macintosh; U; &quot; PROCESSOR &quot; Mac OS X &quot;, osVersion, &quot;; &quot;, language, &quot;) AppleWebKit/&quot;, webKitVersion, &quot; (KHTML, like Gecko) &quot;, applicationNameForUserAgent);

This code won&apos;t even compile as is, due to unused variable warning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354198</commentid>
    <comment_count>10</comment_count>
      <attachid>83080</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2011-02-19 11:20:26 -0800</bug_when>
    <thetext>Created attachment 83080
LayoutTests added

Thanks for the review Alexey. Added tests + fixed the review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354239</commentid>
    <comment_count>11</comment_count>
      <attachid>83080</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-19 21:11:02 -0800</bug_when>
    <thetext>Comment on attachment 83080
LayoutTests added

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

Looks great. I have to say r- because this badly breaks Safari on Mac, but it&apos;s really almost like r+.

&gt; Source/WebKit/ChangeLog:12
&gt; +        * WebKit.xcodeproj/project.pbxproj: Remove WebNSUserDefaultsExtras.h
&gt; +        and WebNSUserDefaultsExtras.mm from the project.

This cannot be done (see below).

&gt; Source/WebKit/mac/ChangeLog:11
&gt; +        * Misc/WebNSUserDefaultsExtras.h: Removed as it was only used to
&gt; +        expose defaultLanguage() in the user agent string.
&gt; +
&gt; +        * Misc/WebNSUserDefaultsExtras.mm: Ditto.

These cannot be removed, because Safari uses +[NSUserDefaults _webkit_preferredLanguageCode].

I should have warned you about this pitfall.

&gt; LayoutTests/http/tests/navigation/useragent.php:9
&gt; +        layoutTestController.setPOSIXLocale(&quot;en_US.iso88591&quot;);

Why? I don&apos;t see how POSIX locale would affect the language - and I also don&apos;t see why forcing a language would be good for this test.

&gt; LayoutTests/http/tests/navigation/useragent.php:34
&gt; +                                   
&gt;  \ No newline at end of file

Please remove the extra spaces that confused Subversion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354822</commentid>
    <comment_count>12</comment_count>
      <attachid>83218</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2011-02-21 14:54:32 -0800</bug_when>
    <thetext>Created attachment 83218
address review comments

I should have caught the Safari break.

Setting POSIX locale was &quot;inspired by&quot; http://trac.webkit.org/browser/trunk/LayoutTests/fast/js/navigator-language.html. You&apos;re right that it is not needed, it was an attempt to make the test more predictable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354839</commentid>
    <comment_count>13</comment_count>
      <attachid>83218</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-21 15:18:33 -0800</bug_when>
    <thetext>Comment on attachment 83218
address review comments

Looks great. I assume that Qt API changes will be (or have been) vetted as appropriate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354910</commentid>
    <comment_count>14</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2011-02-21 16:59:19 -0800</bug_when>
    <thetext>Thanks for the review. There should not be an API change for QtWebKit - other than the fact that the API now returns a different UA string.

Is there any other coordination or testing we should do before landing ? Peter suggested that Chromium could get some real-world feedback quickly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354916</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-21 17:06:41 -0800</bug_when>
    <thetext>&gt; There should not be an API change for QtWebKit - other than the fact that the API now returns a different UA string.

What I meant was that %Language% was now ignored, which contradicts current header documentation.

I think that it&apos;s fine to just land this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355450</commentid>
    <comment_count>16</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2011-02-22 11:42:17 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; Is there any other coordination or testing we should do before landing ? Peter suggested that Chromium could get some real-world feedback quickly.

Once you land this I will land a change to make Chromium&apos;s UA string also drop this tag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355831</commentid>
    <comment_count>17</comment_count>
      <attachid>83218</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-22 21:29:41 -0800</bug_when>
    <thetext>Comment on attachment 83218
address review comments

Clearing flags on attachment: 83218

Committed r79396: &lt;http://trac.webkit.org/changeset/79396&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355832</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-22 21:29:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82813</attachid>
            <date>2011-02-17 08:33:41 -0800</date>
            <delta_ts>2011-02-19 11:20:26 -0800</delta_ts>
            <desc>first try</desc>
            <filename>54560.patch</filename>
            <type>text/plain</type>
            <size>18367</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggMzE0OWI4Yi4uZjViNzViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxMS0wMi0xNyAgTGFzemxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bub2tpYS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCB0aGUg
bGFuZ3VhZ2UgdGFnIHBhcnQgZnJvbSB0aGUgVXNlciBBZ2VudCBzdHJpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTYwCisKKyAgICAgICAgKiBT
dHJpbmdzTm90VG9CZUxvY2FsaXplZC50eHQ6IENoYW5nZSB0aGUgVXNlciBBZ2VudCBzdHJpbmcK
KyAgICAgICAgdGVtcGxhdGUuCisKIDIwMTEtMDItMDYgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFy
b2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RyaW5nc05vdFRvQmVMb2NhbGl6ZWQudHh0IGIvU291
cmNlL1dlYktpdC9TdHJpbmdzTm90VG9CZUxvY2FsaXplZC50eHQKaW5kZXggMjNlYTgxNi4uNzdi
ZDI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdHJpbmdzTm90VG9CZUxvY2FsaXplZC50
eHQKKysrIGIvU291cmNlL1dlYktpdC9TdHJpbmdzTm90VG9CZUxvY2FsaXplZC50eHQKQEAgLTEx
LDggKzExLDggQEAKICIgKlBPU1QqIgogIiAqdGFyZ2V0KiIKICIgPj4+IgotIiBNYWMgT1MgWCAl
QDsgJUApIEFwcGxlV2ViS2l0LyVAIChLSFRNTCwgbGlrZSBHZWNrbykgJUAiCi0iIE1hYyBPUyBY
ICVAOyAlQCkgQXBwbGVXZWJLaXQvJUAgKEtIVE1MLCBsaWtlIEdlY2tvKSIKKyIgTWFjIE9TIFgg
JUApIEFwcGxlV2ViS2l0LyVAIChLSFRNTCwgbGlrZSBHZWNrbykgJUAiCisiIE1hYyBPUyBYICVA
KSBBcHBsZVdlYktpdC8lQCAoS0hUTUwsIGxpa2UgR2Vja28pIgogIiBWZXJzaW9uLzMuMi4xIgog
IiBjbGFzcz1cIiVAXCIiCiAiIGlkPVwiJUBcIiIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCAwMThiYzM0
Li4yYzZlNzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDItMTcg
IExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgdGhlIGxhbmd1YWdlIHRh
ZyBwYXJ0IGZyb20gdGhlIFVzZXIgQWdlbnQgc3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDU2MAorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcG9zZVVz
ZXJBZ2VudCk6CisgICAgICAgICogZXdrL2V3a19zZXR0aW5ncy5jcHA6CisgICAgICAgIChld2tf
c2V0dGluZ3NfZGVmYXVsdF91c2VyX2FnZW50X2dldCk6CisKIDIwMTEtMDEtMjYgIE1PUklUQSBI
YWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3Vr
ZSBOaXdhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCmluZGV4IGFjYmFiMzAuLjkyN2I2OWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNs
aWVudEVmbC5jcHAKQEAgLTEyMCw4ICsxMjAsNiBAQCBzdGF0aWMgU3RyaW5nIGNvbXBvc2VVc2Vy
QWdlbnQoKQogICAgIHVhICs9IGFnZW50UGxhdGZvcm0oKTsgLy8gUGxhdGZvcm0KICAgICB1YSAr
PSAiOyBVOyAiOyAvLyBTZWN1cml0eQogICAgIHVhICs9IGFnZW50T1MoKTsgLy8gT1Mtb3ItQ1BV
Ci0gICAgdWEgKz0gIjsgIjsKLSAgICB1YSArPSBkZWZhdWx0TGFuZ3VhZ2UoKTsgLy8gTG9jYWxp
emF0aW9uIGluZm9ybWF0aW9uCiAgICAgdWEgKz0gIikgIjsKIAogICAgIC8vIFdlYktpdCBQcm9k
dWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3NldHRpbmdzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfc2V0dGluZ3MuY3BwCmluZGV4IDU0ZTY2NDUuLjZl
YTA1MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfc2V0dGluZ3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfc2V0dGluZ3MuY3BwCkBAIC0zMjMsNyAr
MzIzLDcgQEAgY29uc3QgY2hhciogZXdrX3NldHRpbmdzX3Byb3h5X3VyaV9nZXQoKQogY29uc3Qg
Y2hhciogZXdrX3NldHRpbmdzX2RlZmF1bHRfdXNlcl9hZ2VudF9nZXQoKQogewogICAgIFdURjo6
U3RyaW5nIHVhX3ZlcnNpb24gPSBtYWtlU3RyaW5nKFN0cmluZzo6bnVtYmVyKFdFQktJVF9VU0VS
X0FHRU5UX01BSk9SX1ZFUlNJT04pLCAnLicsIFN0cmluZzo6bnVtYmVyKFdFQktJVF9VU0VSX0FH
RU5UX01JTk9SX1ZFUlNJT04pLCAnKycpOwotICAgIFdURjo6U3RyaW5nIHN0YXRpY191YSA9IG1h
a2VTdHJpbmcoIk1vemlsbGEvNS4wICgiLCBfZXdrX3NldHRpbmdzX3dlYmtpdF9wbGF0Zm9ybV9n
ZXQoKSwgIjsgVTsgIiwgX2V3a19zZXR0aW5nc193ZWJraXRfb3NfdmVyc2lvbl9nZXQoKSwgIjsg
IiwgV2ViQ29yZTo6ZGVmYXVsdExhbmd1YWdlKCksICIpIEFwcGxlV2ViS2l0LyIsIHVhX3ZlcnNp
b24pICsgbWFrZVN0cmluZygiIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi81LjAgU2FmYXJp
LyIsIHVhX3ZlcnNpb24pOworICAgIFdURjo6U3RyaW5nIHN0YXRpY191YSA9IG1ha2VTdHJpbmco
Ik1vemlsbGEvNS4wICgiLCBfZXdrX3NldHRpbmdzX3dlYmtpdF9wbGF0Zm9ybV9nZXQoKSwgIjsg
VTsgIiwgX2V3a19zZXR0aW5nc193ZWJraXRfb3NfdmVyc2lvbl9nZXQoKSwgIikgQXBwbGVXZWJL
aXQvIiwgdWFfdmVyc2lvbikgKyBtYWtlU3RyaW5nKCIgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJz
aW9uLzUuMCBTYWZhcmkvIiwgdWFfdmVyc2lvbik7CiAKICAgICByZXR1cm4gZWluYV9zdHJpbmdz
aGFyZV9hZGQoc3RhdGljX3VhLnV0ZjgoKS5kYXRhKCkpOwogfSAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRl
eCAyYWU5ZTY4Li45ZGRhYjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTEtMDItMTcgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgdGhlIGxh
bmd1YWdlIHRhZyBwYXJ0IGZyb20gdGhlIFVzZXIgQWdlbnQgc3RyaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDU2MAorCisgICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcDoKKyAgICAgICAgKHdlYmtpdFVzZXJBZ2VudCk6CisK
IDIwMTEtMDItMTYgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9n
dGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtp
dC93ZWJraXR3ZWJzZXR0aW5ncy5jcHAKaW5kZXggZmY1Mjg5Yi4uOThlMGZiMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCkBAIC0yMjUsNyAr
MjI1LDcgQEAgU3RyaW5nIHdlYmtpdFVzZXJBZ2VudCgpCiAgICAgLy8gV2UgcmUtdXNlIHRoZSBX
ZWJLaXQgdmVyc2lvbiwgdGhvdWdoIGl0IGRvZXNuJ3Qgc2VlbSB0byBtYXR0ZXIgbXVjaCBpbiBw
cmFjdGljZQogCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBTdHJpbmcsIHVhVmVyc2lv
biwgKG1ha2VTdHJpbmcoU3RyaW5nOjpudW1iZXIoV0VCS0lUX1VTRVJfQUdFTlRfTUFKT1JfVkVS
U0lPTiksICcuJywgU3RyaW5nOjpudW1iZXIoV0VCS0lUX1VTRVJfQUdFTlRfTUlOT1JfVkVSU0lP
TiksICcrJykpKTsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc3RhdGlj
VUEsIChtYWtlU3RyaW5nKCJNb3ppbGxhLzUuMCAoIiwgd2Via2l0UGxhdGZvcm0oKSwgIjsgVTsg
Iiwgd2Via2l0T1NWZXJzaW9uKCksICI7ICIsIGRlZmF1bHRMYW5ndWFnZSgpLCAiKSBBcHBsZVdl
YktpdC8iLCB1YVZlcnNpb24pICsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmlu
Zywgc3RhdGljVUEsIChtYWtlU3RyaW5nKCJNb3ppbGxhLzUuMCAoIiwgd2Via2l0UGxhdGZvcm0o
KSwgIjsgVTsgIiwgd2Via2l0T1NWZXJzaW9uKCksICIpIEFwcGxlV2ViS2l0LyIsIHVhVmVyc2lv
bikgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1h
a2VTdHJpbmcoIiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNS4wIFNhZmFyaS8iLCB1YVZl
cnNpb24pKSk7CiAKICAgICByZXR1cm4gc3RhdGljVUE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYTNk
ODU1Ny4uYWFjMDgyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTAy
LTE3ICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHRoZSBsYW5ndWFn
ZSB0YWcgcGFydCBmcm9tIHRoZSBVc2VyIEFnZW50IHN0cmluZworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ1NjAKKworICAgICAgICAqIFdlYlZpZXcv
V2ViVmlldy5tbToKKyAgICAgICAgKCtbV2ViVmlldyBfc3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBw
bGljYXRpb25OYW1lOl0pOgorCiAyMDExLTAyLTE1ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckBh
cHBsZS5jb20+CiAKICAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTQ1MDU+IE1vdmUgLVtX
ZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcgaW5Qcm9ncmFtbWF0aWNTY3JvbGxdIHRvIFdlYkR5bmFt
aWNTY3JvbGxCYXJzVmlld0ludGVybmFsLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQppbmRleCA2NTVjMzQ4Li40NTg0N2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCkBAIC01NDgsMTAgKzU0OCw5IEBAIHN0YXRpYyBOU1N0cmluZyAqY3JlYXRlVXNlclZpc2li
bGVXZWJLaXRWZXJzaW9uU3RyaW5nKCkKICAgICAgICAgb3NWZXJzaW9uID0gY3JlYXRlTWFjT1NY
VmVyc2lvblN0cmluZygpOwogICAgIGlmICghd2ViS2l0VmVyc2lvbikKICAgICAgICAgd2ViS2l0
VmVyc2lvbiA9IGNyZWF0ZVVzZXJWaXNpYmxlV2ViS2l0VmVyc2lvblN0cmluZygpOwotICAgIE5T
U3RyaW5nICpsYW5ndWFnZSA9IFtOU1VzZXJEZWZhdWx0cyBfd2Via2l0X3ByZWZlcnJlZExhbmd1
YWdlQ29kZV07CiAgICAgaWYgKFthcHBsaWNhdGlvbk5hbWUgbGVuZ3RoXSkKLSAgICAgICAgcmV0
dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsg
VTsgIiBQUk9DRVNTT1IgIiBNYWMgT1MgWCAlQDsgJUApIEFwcGxlV2ViS2l0LyVAIChLSFRNTCwg
bGlrZSBHZWNrbykgJUAiLCBvc1ZlcnNpb24sIGxhbmd1YWdlLCB3ZWJLaXRWZXJzaW9uLCBhcHBs
aWNhdGlvbk5hbWVdOwotICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIk1v
emlsbGEvNS4wIChNYWNpbnRvc2g7IFU7ICIgUFJPQ0VTU09SICIgTWFjIE9TIFggJUA7ICVAKSBB
cHBsZVdlYktpdC8lQCAoS0hUTUwsIGxpa2UgR2Vja28pIiwgb3NWZXJzaW9uLCBsYW5ndWFnZSwg
d2ViS2l0VmVyc2lvbl07CisgICAgICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1h
dDpAIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7ICIgUFJPQ0VTU09SICIgTWFjIE9TIFggJUAp
IEFwcGxlV2ViS2l0LyVAIChLSFRNTCwgbGlrZSBHZWNrbykgJUAiLCBvc1ZlcnNpb24sIHdlYktp
dFZlcnNpb24sIGFwcGxpY2F0aW9uTmFtZV07CisgICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdX
aXRoRm9ybWF0OkAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgVTsgIiBQUk9DRVNTT1IgIiBNYWMg
T1MgWCAlQCkgQXBwbGVXZWJLaXQvJUAgKEtIVE1MLCBsaWtlIEdlY2tvKSIsIG9zVmVyc2lvbiwg
d2ViS2l0VmVyc2lvbl07CiB9CiAKICsgKHZvaWQpX3JlcG9ydEV4Y2VwdGlvbjooSlNWYWx1ZVJl
ZilleGNlcHRpb24gaW5Db250ZXh0OihKU0NvbnRleHRSZWYpY29udGV4dApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9xdC9BcGkv
cXdlYnBhZ2UuY3BwCmluZGV4IDA3NTc1NmQuLmJmZTdmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vi
cGFnZS5jcHAKQEAgLTM2NzYsNyArMzY3Niw3IEBAIFFXZWJQbHVnaW5GYWN0b3J5ICpRV2ViUGFn
ZTo6cGx1Z2luRmFjdG9yeSgpIGNvbnN0CiAKICAgICBUaGUgZGVmYXVsdCBpbXBsZW1lbnRhdGlv
biByZXR1cm5zIHRoZSBmb2xsb3dpbmcgdmFsdWU6CiAKLSAgICAiTW96aWxsYS81LjAgKCVQbGF0
Zm9ybSU7ICVTZWN1cml0eSU7ICVTdWJwbGF0Zm9ybSU7ICVMb2NhbGUlKSBBcHBsZVdlYktpdC8l
V2ViS2l0VmVyc2lvbiUgKEtIVE1MLCBsaWtlIEdlY2tvKSAlQXBwVmVyc2lvbiBTYWZhcmkvJVdl
YktpdFZlcnNpb24lIgorICAgICJNb3ppbGxhLzUuMCAoJVBsYXRmb3JtJTsgJVNlY3VyaXR5JTsg
JVN1YnBsYXRmb3JtJSkgQXBwbGVXZWJLaXQvJVdlYktpdFZlcnNpb24lIChLSFRNTCwgbGlrZSBH
ZWNrbykgJUFwcFZlcnNpb24gU2FmYXJpLyVXZWJLaXRWZXJzaW9uJSIKIAogICAgIE9uIG1vYmls
ZSBwbGF0Zm9ybXMgc3VjaCBhcyBTeW1iaWFuIFM2MCBhbmQgTWFlbW8sICJNb2JpbGUgU2FmYXJp
IiBpcyB1c2VkIGluc3RlYWQgb2YgIlNhZmFyaSIuCiAKQEAgLTM4OTAsOCArMzg5MCw2IEBAIFFT
dHJpbmcgUVdlYlBhZ2U6OnVzZXJBZ2VudEZvclVybChjb25zdCBRVXJsJikgY29uc3QKICAgICAg
ICAgZmlyc3RQYXJ0VGVtcCArPSBRU3RyaW5nOjpmcm9tTGF0aW4xKCJVbmtub3duIik7CiAjZW5k
aWYKIAotICAgICAgICAvLyBsYW5ndWFnZSBpcyB0aGUgc3BsaXQKLSAgICAgICAgZmlyc3RQYXJ0
VGVtcCArPSBRU3RyaW5nOjpmcm9tTGF0aW4xKCI7ICIpOwogICAgICAgICBmaXJzdFBhcnRUZW1w
LnNxdWVlemUoKTsKICAgICAgICAgZmlyc3RQYXJ0ID0gZmlyc3RQYXJ0VGVtcDsKIApAQCAtMzky
NCwxNCArMzkyMiw2IEBAIFFTdHJpbmcgUVdlYlBhZ2U6OnVzZXJBZ2VudEZvclVybChjb25zdCBR
VXJsJikgY29uc3QKICAgICAgICAgUV9BU1NFUlQoIXRoaXJkUGFydC5pc051bGwoKSk7CiAgICAg
fQogCi0gICAgLy8gTGFuZ3VhZ2UKLSAgICBRU3RyaW5nIGxhbmd1YWdlTmFtZTsKLSAgICBpZiAo
ZC0+Y2xpZW50ICYmIGQtPmNsaWVudC0+b3duZXJXaWRnZXQoKSkKLSAgICAgICAgbGFuZ3VhZ2VO
YW1lID0gZC0+Y2xpZW50LT5vd25lcldpZGdldCgpLT5sb2NhbGUoKS5uYW1lKCk7Ci0gICAgZWxz
ZQotICAgICAgICBsYW5ndWFnZU5hbWUgPSBRTG9jYWxlKCkubmFtZSgpOwotICAgIGxhbmd1YWdl
TmFtZS5yZXBsYWNlKFFMYXRpbjFDaGFyKCdfJyksIFFMYXRpbjFDaGFyKCctJykpOwotCiAgICAg
Ly8gQXBwbGljYXRpb24gbmFtZS92ZXJzaW9uCiAgICAgUVN0cmluZyBhcHBOYW1lID0gUUNvcmVB
cHBsaWNhdGlvbjo6YXBwbGljYXRpb25OYW1lKCk7CiAgICAgaWYgKCFhcHBOYW1lLmlzRW1wdHko
KSkgewpAQCAtMzk0Myw3ICszOTMzLDcgQEAgUVN0cmluZyBRV2ViUGFnZTo6dXNlckFnZW50Rm9y
VXJsKGNvbnN0IFFVcmwmKSBjb25zdAogICAgICAgICBhcHBOYW1lID0gUVN0cmluZzo6ZnJvbUxh
dGluMSgiUXQvIikgKyBRU3RyaW5nOjpmcm9tTGF0aW4xKHFWZXJzaW9uKCkpOwogICAgIH0KIAot
ICAgIHJldHVybiBmaXJzdFBhcnQgKyBsYW5ndWFnZU5hbWUgKyBzZWNvbmRQYXJ0ICsgYXBwTmFt
ZSArIHRoaXJkUGFydDsKKyAgICByZXR1cm4gZmlyc3RQYXJ0ICsgc2Vjb25kUGFydCArIGFwcE5h
bWUgKyB0aGlyZFBhcnQ7CiB9CiAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBlYWYxYTQ3Li5hMjJkOGU1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZwpAQCAtMSArMSwxMiBAQAorMjAxMS0wMi0xNyAgTGFzemxvIEdvbWJv
cyAgPGxhc3psby4xLmdvbWJvc0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCB0aGUgbGFuZ3VhZ2UgdGFnIHBhcnQgZnJvbSB0
aGUgVXNlciBBZ2VudCBzdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU0NTYwCisKKyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAg
ICAoUVdlYlBhZ2U6OnVzZXJBZ2VudEZvclVybCk6CisgICAgICAgICogdGVzdHMvcXdlYnBhZ2Uv
dHN0X3F3ZWJwYWdlLmNwcDoKKwogPT0gUm9sbGVkIG92ZXIgdG8gQ2hhbmdlTG9nLTIwMTEtMDIt
MTYgPT0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3
ZWJwYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdl
LmNwcAppbmRleCAyZGE4ZTExLi43NmI5NjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0
L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC90
ZXN0cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCkBAIC0yNSw3ICsyNSw2IEBACiAjaW5jbHVk
ZSA8UURpcj4KICNpbmNsdWRlIDxRR3JhcGhpY3NXaWRnZXQ+CiAjaW5jbHVkZSA8UUxpbmVFZGl0
PgotI2luY2x1ZGUgPFFMb2NhbGU+CiAjaW5jbHVkZSA8UU1haW5XaW5kb3c+CiAjaW5jbHVkZSA8
UU1lbnU+CiAjaW5jbHVkZSA8UVB1c2hCdXR0b24+CkBAIC0xMTgsNyArMTE3LDYgQEAgcHJpdmF0
ZSBzbG90czoKICAgICB2b2lkIGVycm9yUGFnZUV4dGVuc2lvbkluSUZyYW1lcygpOwogICAgIHZv
aWQgZXJyb3JQYWdlRXh0ZW5zaW9uSW5GcmFtZXNldCgpOwogICAgIHZvaWQgdXNlckFnZW50QXBw
bGljYXRpb25OYW1lKCk7Ci0gICAgdm9pZCB1c2VyQWdlbnRMb2NhbGVDaGFuZ2UoKTsKIAogICAg
IHZvaWQgdmlld01vZGVzKCk7CiAKQEAgLTIzOTIsMjAgKzIzOTAsNiBAQCB2b2lkIHRzdF9RV2Vi
UGFnZTo6dXNlckFnZW50QXBwbGljYXRpb25OYW1lKCkKICAgICBRQ29yZUFwcGxpY2F0aW9uOjpz
ZXRBcHBsaWNhdGlvbk5hbWUob2xkQXBwbGljYXRpb25OYW1lKTsKIH0KIAotdm9pZCB0c3RfUVdl
YlBhZ2U6OnVzZXJBZ2VudExvY2FsZUNoYW5nZSgpCi17Ci0gICAgRnJpZW5kbHlXZWJQYWdlIHBh
Z2U7Ci0gICAgbV92aWV3LT5zZXRQYWdlKCZwYWdlKTsKLQotICAgIGNvbnN0IFFTdHJpbmcgbWFy
a2VyU3RyaW5nID0gUVN0cmluZzo6ZnJvbUxhdGluMSgiIG5uLU5PKSIpOwotCi0gICAgaWYgKHBh
Z2UudXNlckFnZW50Rm9yVXJsKFFVcmwoKSkuY29udGFpbnMobWFya2VyU3RyaW5nKSkKLSAgICAg
ICAgUVNLSVAoIm1hcmtlciBzdHJpbmcgYWxyZWFkeSBwcmVzZW50IiwgU2tpcFNpbmdsZSk7Ci0K
LSAgICBtX3ZpZXctPnNldExvY2FsZShRTG9jYWxlKFFTdHJpbmc6OmZyb21MYXRpbjEoIm5uX05P
IikpKTsKLSAgICBRVkVSSUZZKHBhZ2UudXNlckFnZW50Rm9yVXJsKFFVcmwoKSkuY29udGFpbnMo
bWFya2VyU3RyaW5nKSk7Ci19Ci0KIHZvaWQgdHN0X1FXZWJQYWdlOjpjcmFzaFRlc3RzX0xhenlJ
bml0aWFsaXphdGlvbk9mTWFpbkZyYW1lKCkKIHsKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXgg
Yjg0N2MzYS4uODI1OWM2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEx
LTAyLTE3ICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHRoZSBsYW5n
dWFnZSB0YWcgcGFydCBmcm9tIHRoZSBVc2VyIEFnZW50IHN0cmluZworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ1NjAKKworICAgICAgICAqIFdlYlZp
ZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6c3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRp
b25OYW1lKToKKwogMjAxMS0wMi0xNSAgS2VubmV0aCBSdXNzZWxsICA8a2JyQGdvb2dsZS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZC4gUmVtb3ZlIHdoaXRlc3BhY2Utb25seSBjaGFuZ2UgZnJv
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCBkMGEzZWI3Li5jODIyNWUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJW
aWV3LmNwcApAQCAtMTI0NSw4ICsxMjQ1LDggQEAgYm9vbCBXZWJWaWV3OjpjYW5IYW5kbGVSZXF1
ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIFN0cmluZyBXZWJW
aWV3OjpzdGFuZGFyZFVzZXJBZ2VudFdpdGhBcHBsaWNhdGlvbk5hbWUoY29uc3QgU3RyaW5nJiBh
cHBsaWNhdGlvbk5hbWUpCiB7CiAgICAgaWYgKGFwcGxpY2F0aW9uTmFtZS5pc0VtcHR5KCkpCi0g
ICAgICAgIHJldHVybiBtYWtlU3RyaW5nKCJNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgIiwgb3NW
ZXJzaW9uKCksICI7ICIsIGRlZmF1bHRMYW5ndWFnZSgpLCAiKSBBcHBsZVdlYktpdC8iLCB3ZWJL
aXRWZXJzaW9uKCksICIgKEtIVE1MLCBsaWtlIEdlY2tvKSIpOwotICAgIHJldHVybiBtYWtlU3Ry
aW5nKCJNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgIiwgb3NWZXJzaW9uKCksICI7ICIsIGRlZmF1
bHRMYW5ndWFnZSgpLCAiKSBBcHBsZVdlYktpdC8iLCB3ZWJLaXRWZXJzaW9uKCksICIgKEtIVE1M
LCBsaWtlIEdlY2tvKSAiLCBhcHBsaWNhdGlvbk5hbWUpOworICAgICAgICByZXR1cm4gbWFrZVN0
cmluZygiTW96aWxsYS81LjAgKFdpbmRvd3M7IFU7ICIsIG9zVmVyc2lvbigpLCAiKSBBcHBsZVdl
YktpdC8iLCB3ZWJLaXRWZXJzaW9uKCksICIgKEtIVE1MLCBsaWtlIEdlY2tvKSIpOworICAgIHJl
dHVybiBtYWtlU3RyaW5nKCJNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgIiwgb3NWZXJzaW9uKCks
ICIpIEFwcGxlV2ViS2l0LyIsIHdlYktpdFZlcnNpb24oKSwgIiAoS0hUTUwsIGxpa2UgR2Vja28p
ICIsIGFwcGxpY2F0aW9uTmFtZSk7CiB9CiAKIFBhZ2UqIFdlYlZpZXc6OnBhZ2UoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5n
ZUxvZwppbmRleCBlZDQxN2RiLi43OGE0YWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDExLTAyLTE3ICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9w
IHRoZSBsYW5ndWFnZSB0YWcgcGFydCBmcm9tIHRoZSBVc2VyIEFnZW50IHN0cmluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ1NjAKKworICAgICAg
ICAqIFdlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlckNsaWVudFd4Ojp1c2VyQWdlbnQpOgorCiAyMDExLTAxLTI2ICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFJ5
b3N1a2UgTml3YS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFd4LmNwcCBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFd4LmNwcAppbmRleCBhMTBkZjdkLi4xODMyZTRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3gu
Y3BwCkBAIC01MzMsNyArNTMzLDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudFd4OjpzZXRUaXRs
ZShjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBLVVJMJikKIFN0cmluZyBGcmFtZUxvYWRlckNs
aWVudFd4Ojp1c2VyQWdlbnQoY29uc3QgS1VSTCYpCiB7CiAgICAgLy8gRklYTUU6IFVzZSB0aGUg
bmV3IEFQSXMgaW50cm9kdWNlZCBieSB0aGUgR1RLIHBvcnQgdG8gZmlsbCBpbiB0aGVzZSB2YWx1
ZXMuCi0gICAgcmV0dXJuIFN0cmluZygiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgVTsgSW50ZWwg
TWFjIE9TIFg7IGVuKSBBcHBsZVdlYktpdC80MTguOS4xIChLSFRNTCwgbGlrZSBHZWNrbykgU2Fm
YXJpLzQxOS4zIik7CisgICAgcmV0dXJuIFN0cmluZygiTW96aWxsYS81LjAgKE1hY2ludG9zaDsg
VTsgSW50ZWwgTWFjIE9TIFgpIEFwcGxlV2ViS2l0LzQxOC45LjEgKEtIVE1MLCBsaWtlIEdlY2tv
KSBTYWZhcmkvNDE5LjMiKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudFd4OjpkaXNwYXRj
aERpZFJlY2VpdmVJY29uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlYWYxYTQ3Li41Yjc5ZmY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xICsxLDE3IEBACisyMDExLTAyLTE3ICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEu
Z29tYm9zQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBEcm9wIHRoZSBsYW5ndWFnZSB0YWcgcGFydCBmcm9tIHRoZSBVc2VyIEFnZW50
IHN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTQ1NjAKKworICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViUGFnZVByb3h5R3RrLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFuZGFyZFVzZXJBZ2VudCk6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6c3RhbmRhcmRVc2VyQWdlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9X
ZWJQYWdlUHJveHlRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c3RhbmRh
cmRVc2VyQWdlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViUGFnZVByb3h5V2luLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFuZGFyZFVzZXJBZ2VudCk6CisK
ID09IFJvbGxlZCBvdmVyIHRvIENoYW5nZUxvZy0yMDExLTAyLTE2ID09CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBhZ2VQcm94eUd0ay5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBhZ2VQcm94eUd0ay5jcHAKaW5kZXggYTM2YmQwYy4u
NjcyZTY5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQYWdl
UHJveHlHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUGFnZVBy
b3h5R3RrLmNwcApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFN0cmluZyBX
ZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25O
YW1lRm9yVXNlckFnZW50KQogewogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBub3QgYmUgaGFy
ZCBjb2RlZC4KLSAgICByZXR1cm4gIk1vemlsbGEvNS4wIChYMTE7IFU7IExpbnV4IGk2ODY7IGVu
LXVzKSBBcHBsZVdlYktpdC81MzQuNyAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNS4wIFNh
ZmFyaS81MzQuNyI7CisgICAgcmV0dXJuICJNb3ppbGxhLzUuMCAoWDExOyBVOyBMaW51eCBpNjg2
KSBBcHBsZVdlYktpdC81MzQuNyAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNS4wIFNhZmFy
aS81MzQuNyI7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQppbmRleCBlNjQxZmUwLi4zOGExZGRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5t
bQpAQCAtOTIsOCArOTIsOCBAQCBTdHJpbmcgV2ViUGFnZVByb3h5OjpzdGFuZGFyZFVzZXJBZ2Vu
dChjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudAogICAgIFN0cmluZyBs
YW5ndWFnZSA9IGRlZmF1bHRMYW5ndWFnZSgpOwogCiAgICAgaWYgKGFwcGxpY2F0aW9uTmFtZUZv
clVzZXJBZ2VudC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBtYWtlU3RyaW5nKCJNb3ppbGxh
LzUuMCAoTWFjaW50b3NoOyBVOyAiIFBST0NFU1NPUiAiIE1hYyBPUyBYICIsIG9zVmVyc2lvbiwg
IjsgIiwgbGFuZ3VhZ2UsICIpIEFwcGxlV2ViS2l0LyIsIHdlYktpdFZlcnNpb24sICIgKEtIVE1M
LCBsaWtlIEdlY2tvKSIpOwotICAgIHJldHVybiBtYWtlU3RyaW5nKCJNb3ppbGxhLzUuMCAoTWFj
aW50b3NoOyBVOyAiIFBST0NFU1NPUiAiIE1hYyBPUyBYICIsIG9zVmVyc2lvbiwgIjsgIiwgbGFu
Z3VhZ2UsICIpIEFwcGxlV2ViS2l0LyIsIHdlYktpdFZlcnNpb24sICIgKEtIVE1MLCBsaWtlIEdl
Y2tvKSAiLCBhcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpOworICAgICAgICByZXR1cm4gbWFr
ZVN0cmluZygiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgVTsgIiBQUk9DRVNTT1IgIiBNYWMgT1Mg
WCAiLCBvc1ZlcnNpb24sICIpIEFwcGxlV2ViS2l0LyIsIHdlYktpdFZlcnNpb24sICIgKEtIVE1M
LCBsaWtlIEdlY2tvKSIpOworICAgIHJldHVybiBtYWtlU3RyaW5nKCJNb3ppbGxhLzUuMCAoTWFj
aW50b3NoOyBVOyAiIFBST0NFU1NPUiAiIE1hYyBPUyBYICIsIG9zVmVyc2lvbiwgIikgQXBwbGVX
ZWJLaXQvIiwgd2ViS2l0VmVyc2lvbiwgIiAoS0hUTUwsIGxpa2UgR2Vja28pICIsIGFwcGxpY2F0
aW9uTmFtZUZvclVzZXJBZ2VudCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRJc1NwZWFr
aW5nKGJvb2wmIGlzU3BlYWtpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvV2ViUGFnZVByb3h5UXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1dl
YlBhZ2VQcm94eVF0LmNwcAppbmRleCAxZmE5MGJiLi42ODQ0ODAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViUGFnZVByb3h5UXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJQYWdlUHJveHlRdC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiBTdHJpbmcgV2ViUGFnZVByb3h5OjpzdGFuZGFyZFVzZXJBZ2Vu
dChjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudCkKIHsKICAgICAvLyBG
SVhNRTogVGhpcyBzaG91bGQgbm90IGJlIGhhcmQgY29kZWQuCi0gICAgcmV0dXJuICJNb3ppbGxh
LzUuMCAoTWFjaW50b3NoOyBVOyBJbnRlbCBNYWMgT1MgWCAxMF82OyBlbi11cykgQXBwbGVXZWJL
aXQvNTMxLjQgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9uLzQuMC4zIFNhZmFyaS81MzEuNCI7
CisgICAgcmV0dXJuICJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBVOyBJbnRlbCBNYWMgT1MgWCAx
MF82KSBBcHBsZVdlYktpdC81MzEuNCAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNC4wLjMg
U2FmYXJpLzUzMS40IjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlBhZ2VQcm94eVdpbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlBhZ2VQcm94eVdpbi5jcHAKaW5kZXggZjcwMzYzYy4u
Y2ZmODdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJQYWdl
UHJveHlXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViUGFnZVBy
b3h5V2luLmNwcApAQCAtMTAzLDEyICsxMDMsOSBAQCBTdHJpbmcgV2ViUGFnZVByb3h5OjpzdGFu
ZGFyZFVzZXJBZ2VudChjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZUZvclVzZXJBZ2VudAog
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG9zVmVyc2lvbiwgKHdpbmRvd3NWZXJzaW9u
KCkpKTsKICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB3ZWJLaXRWZXJzaW9uLCAodXNl
clZpc2libGVXZWJLaXRWZXJzaW9uU3RyaW5nKCkpKTsKIAotICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCB1cGF0ZSB0aGUgdXNlciBhZ2VudCBpZiB0aGUgZGVmYXVsdCBsYW5ndWFnZSBjaGFuZ2VzLgot
ICAgU3RyaW5nIGxhbmd1YWdlID0gZGVmYXVsdExhbmd1YWdlKCk7Ci0KICAgIGlmIChhcHBsaWNh
dGlvbk5hbWVGb3JVc2VyQWdlbnQuaXNFbXB0eSgpKQotICAgICAgIHJldHVybiBtYWtlU3RyaW5n
KCJNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgIiwgb3NWZXJzaW9uLCAiOyAiLCBsYW5ndWFnZSwg
IikgQXBwbGVXZWJLaXQvIiwgd2ViS2l0VmVyc2lvbiwgIiAoS0hUTUwsIGxpa2UgR2Vja28pIik7
Ci0gICByZXR1cm4gbWFrZVN0cmluZygiTW96aWxsYS81LjAgKFdpbmRvd3M7IFU7ICIsIG9zVmVy
c2lvbiwgIjsgIiwgbGFuZ3VhZ2UsICIpIEFwcGxlV2ViS2l0LyIsIHdlYktpdFZlcnNpb24sICIg
KEtIVE1MLCBsaWtlIEdlY2tvKSAiLCBhcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpOworICAg
ICAgIHJldHVybiBtYWtlU3RyaW5nKCJNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgIiwgb3NWZXJz
aW9uLCAiKSBBcHBsZVdlYktpdC8iLCB3ZWJLaXRWZXJzaW9uLCAiIChLSFRNTCwgbGlrZSBHZWNr
bykiKTsKKyAgIHJldHVybiBtYWtlU3RyaW5nKCJNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgIiwg
b3NWZXJzaW9uLCAiKSBBcHBsZVdlYktpdC8iLCB3ZWJLaXRWZXJzaW9uLCAiIChLSFRNTCwgbGlr
ZSBHZWNrbykgIiwgYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0Cg==
</data>
<flag name="review"
          id="74513"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83080</attachid>
            <date>2011-02-19 11:20:26 -0800</date>
            <delta_ts>2011-02-21 14:54:32 -0800</delta_ts>
            <desc>LayoutTests added</desc>
            <filename>ua-2.patch</filename>
            <type>text/plain</type>
            <size>35126</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MTI1KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDItMTkgIExhc3psbyBH
b21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgdGhlIGxhbmd1YWdlIHRhZyBwYXJ0IGZy
b20gdGhlIFVzZXIgQWdlbnQgc3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01NDU2MAorCisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJQYWdl
UHJveHlHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNl
ckFnZW50KToKKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KToKKworICAg
ICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJQYWdlUHJveHlRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6c3RhbmRhcmRVc2VyQWdlbnQpOgorCisgICAgICAgICogVUlQcm9jZXNz
L3dpbi9XZWJQYWdlUHJveHlXaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnN0YW5kYXJkVXNlckFnZW50KTogRHJvcCB0aGUgbGFuZ3VhZ2UgdGFnCisgICAgICAgIHBhcnQg
YW5kIGZpeCBzdHlsZS4KKwogMjAxMS0wMi0xOSAgQ2hhcmxpZSBSZWlzICA8Y3JlaXNAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1paGFpIFBhcnBhcml0YS4KSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUGFnZVByb3h5R3RrLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBhZ2VQcm94eUd0ay5jcHAJKHJl
dmlzaW9uIDc5MTI1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQYWdlUHJv
eHlHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogU3RyaW5nIFdlYlBhZ2VQcm94eTo6c3RhbmRhcmRVc2VyQWdlbnQoY29uc3QgU3RyaW5n
JiBhcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgc2hv
dWxkIG5vdCBiZSBoYXJkIGNvZGVkLgotICAgIHJldHVybiAiTW96aWxsYS81LjAgKFgxMTsgVTsg
TGludXggaTY4NjsgZW4tdXMpIEFwcGxlV2ViS2l0LzUzNC43IChLSFRNTCwgbGlrZSBHZWNrbykg
VmVyc2lvbi81LjAgU2FmYXJpLzUzNC43IjsKKyAgICByZXR1cm4gIk1vemlsbGEvNS4wIChYMTE7
IFU7IExpbnV4IGk2ODYpIEFwcGxlV2ViS2l0LzUzNC43IChLSFRNTCwgbGlrZSBHZWNrbykgVmVy
c2lvbi81LjAgU2FmYXJpLzUzNC43IjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQko
cmV2aXNpb24gNzkxMjUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQ
cm94eU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAogI2ltcG9ydCAiV2Vi
UGFnZVByb3h5LmgiCiAKICNpbXBvcnQgIlBhZ2VDbGllbnQuaCIKLSNpbXBvcnQgPFdlYkNvcmUv
TGFuZ3VhZ2UuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CiAKIEBp
bnRlcmZhY2UgTlNBcHBsaWNhdGlvbiAoRGV0YWlscykKQEAgLTg4LDEyICs4Nyw5IEBAIFN0cmlu
ZyBXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KGMKICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgb3NWZXJzaW9uLCAobWFjT1NYVmVyc2lvblN0cmluZygpKSk7CiAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHdlYktpdFZlcnNpb24sICh1c2VyVmlzaWJsZVdlYktp
dFZlcnNpb25TdHJpbmcoKSkpOwogCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCB1cGF0ZSB0aGUg
dXNlciBhZ2VudCBpZiB0aGUgZGVmYXVsdCBsYW5ndWFnZSBjaGFuZ2VzLgotICAgIFN0cmluZyBs
YW5ndWFnZSA9IGRlZmF1bHRMYW5ndWFnZSgpOwotCiAgICAgaWYgKGFwcGxpY2F0aW9uTmFtZUZv
clVzZXJBZ2VudC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBtYWtlU3RyaW5nKCJNb3ppbGxh
LzUuMCAoTWFjaW50b3NoOyBVOyAiIFBST0NFU1NPUiAiIE1hYyBPUyBYICIsIG9zVmVyc2lvbiwg
IjsgIiwgbGFuZ3VhZ2UsICIpIEFwcGxlV2ViS2l0LyIsIHdlYktpdFZlcnNpb24sICIgKEtIVE1M
LCBsaWtlIEdlY2tvKSIpOwotICAgIHJldHVybiBtYWtlU3RyaW5nKCJNb3ppbGxhLzUuMCAoTWFj
aW50b3NoOyBVOyAiIFBST0NFU1NPUiAiIE1hYyBPUyBYICIsIG9zVmVyc2lvbiwgIjsgIiwgbGFu
Z3VhZ2UsICIpIEFwcGxlV2ViS2l0LyIsIHdlYktpdFZlcnNpb24sICIgKEtIVE1MLCBsaWtlIEdl
Y2tvKSAiLCBhcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpOworICAgICAgICByZXR1cm4gbWFr
ZVN0cmluZygiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgVTsgIiBQUk9DRVNTT1IgIiBNYWMgT1Mg
WCAiLCBvc1ZlcnNpb24sICIpIEFwcGxlV2ViS2l0LyIsIHdlYktpdFZlcnNpb24sICIgKEtIVE1M
LCBsaWtlIEdlY2tvKSIpOworICAgIHJldHVybiBtYWtlU3RyaW5nKCJNb3ppbGxhLzUuMCAoTWFj
aW50b3NoOyBVOyAiIFBST0NFU1NPUiAiIE1hYyBPUyBYICIsIG9zVmVyc2lvbiwgIikgQXBwbGVX
ZWJLaXQvIiwgd2ViS2l0VmVyc2lvbiwgIiAoS0hUTUwsIGxpa2UgR2Vja28pICIsIGFwcGxpY2F0
aW9uTmFtZUZvclVzZXJBZ2VudCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRJc1NwZWFr
aW5nKGJvb2wmIGlzU3BlYWtpbmcpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
V2ViUGFnZVByb3h5UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9XZWJQYWdlUHJveHlRdC5jcHAJKHJldmlzaW9uIDc5MTI1KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1dlYlBhZ2VQcm94eVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEs
NyArMzEsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFN0cmluZyBXZWJQYWdlUHJveHk6OnN0YW5k
YXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KQog
ewogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBub3QgYmUgaGFyZCBjb2RlZC4KLSAgICByZXR1
cm4gIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7IEludGVsIE1hYyBPUyBYIDEwXzY7IGVuLXVz
KSBBcHBsZVdlYktpdC81MzEuNCAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNC4wLjMgU2Fm
YXJpLzUzMS40IjsKKyAgICByZXR1cm4gIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7IEludGVs
IE1hYyBPUyBYIDEwXzYpIEFwcGxlV2ViS2l0LzUzMS40IChLSFRNTCwgbGlrZSBHZWNrbykgVmVy
c2lvbi80LjAuMyBTYWZhcmkvNTMxLjQiOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViUGFnZVByb3h5V2luLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlBhZ2VQcm94eVdpbi5j
cHAJKHJldmlzaW9uIDc5MTI1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJQ
YWdlUHJveHlXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5LmgiCiAKICNpbmNsdWRlIDx0Y2hhci5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkNvcmVJbnN0YW5jZUhhbmRsZS5o
PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdDb25jYXRlbmF0ZS5oPgpAQCAtMTAwLDE1ICs5OSwxMiBAQCBleGl0OgogCiBTdHJpbmcgV2Vi
UGFnZVByb3h5OjpzdGFuZGFyZFVzZXJBZ2VudChjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFt
ZUZvclVzZXJBZ2VudCkKIHsKLSAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBvc1ZlcnNp
b24sICh3aW5kb3dzVmVyc2lvbigpKSk7Ci0gICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
d2ViS2l0VmVyc2lvbiwgKHVzZXJWaXNpYmxlV2ViS2l0VmVyc2lvblN0cmluZygpKSk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG9zVmVyc2lvbiwgKHdpbmRvd3NWZXJzaW9uKCkp
KTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgd2ViS2l0VmVyc2lvbiwgKHVzZXJW
aXNpYmxlV2ViS2l0VmVyc2lvblN0cmluZygpKSk7CiAKLSAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
dXBhdGUgdGhlIHVzZXIgYWdlbnQgaWYgdGhlIGRlZmF1bHQgbGFuZ3VhZ2UgY2hhbmdlcy4KLSAg
IFN0cmluZyBsYW5ndWFnZSA9IGRlZmF1bHRMYW5ndWFnZSgpOwotCi0gICBpZiAoYXBwbGljYXRp
b25OYW1lRm9yVXNlckFnZW50LmlzRW1wdHkoKSkKLSAgICAgICByZXR1cm4gbWFrZVN0cmluZygi
TW96aWxsYS81LjAgKFdpbmRvd3M7IFU7ICIsIG9zVmVyc2lvbiwgIjsgIiwgbGFuZ3VhZ2UsICIp
IEFwcGxlV2ViS2l0LyIsIHdlYktpdFZlcnNpb24sICIgKEtIVE1MLCBsaWtlIEdlY2tvKSIpOwot
ICAgcmV0dXJuIG1ha2VTdHJpbmcoIk1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyAiLCBvc1ZlcnNp
b24sICI7ICIsIGxhbmd1YWdlLCAiKSBBcHBsZVdlYktpdC8iLCB3ZWJLaXRWZXJzaW9uLCAiIChL
SFRNTCwgbGlrZSBHZWNrbykgIiwgYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KTsKKyAgICBp
ZiAoYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IG1ha2VTdHJpbmcoIk1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyAiLCBvc1ZlcnNpb24sICIpIEFw
cGxlV2ViS2l0LyIsIHdlYktpdFZlcnNpb24sICIgKEtIVE1MLCBsaWtlIEdlY2tvKSIpOworICAg
IHJldHVybiBtYWtlU3RyaW5nKCJNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgIiwgb3NWZXJzaW9u
LCAiKSBBcHBsZVdlYktpdC8iLCB3ZWJLaXRWZXJzaW9uLCAiIChLSFRNTCwgbGlrZSBHZWNrbykg
IiwgYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gNzkxMjUpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDExLTAyLTE5ICBMYXN6bG8g
R29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHRoZSBsYW5ndWFnZSB0YWcgcGFydCBm
cm9tIHRoZSBVc2VyIEFnZW50IHN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTQ1NjAKKworICAgICAgICAqIFN0cmluZ3NOb3RUb0JlTG9jYWxp
emVkLnR4dDogQ2hhbmdlIHRoZSBVc2VyIEFnZW50IHN0cmluZworICAgICAgICB0ZW1wbGF0ZS4K
KworICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBSZW1vdmUgV2Vi
TlNVc2VyRGVmYXVsdHNFeHRyYXMuaAorICAgICAgICBhbmQgV2ViTlNVc2VyRGVmYXVsdHNFeHRy
YXMubW0gZnJvbSB0aGUgcHJvamVjdC4KKwogMjAxMS0wMi0xOCAgUGF0cmljayBHYW5zdGVyZXIg
IDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRl
ciByNzg2MzQgYW5kIHI3ODc4Ni4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU3RyaW5nc05vdFRvQmVM
b2NhbGl6ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU3RyaW5nc05vdFRvQmVM
b2NhbGl6ZWQudHh0CShyZXZpc2lvbiA3OTEyNSkKKysrIFNvdXJjZS9XZWJLaXQvU3RyaW5nc05v
dFRvQmVMb2NhbGl6ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMSw4ICsxMSw4IEBACiAiICpQ
T1NUKiIKICIgKnRhcmdldCoiCiAiID4+PiIKLSIgTWFjIE9TIFggJUA7ICVAKSBBcHBsZVdlYktp
dC8lQCAoS0hUTUwsIGxpa2UgR2Vja28pICVAIgotIiBNYWMgT1MgWCAlQDsgJUApIEFwcGxlV2Vi
S2l0LyVAIChLSFRNTCwgbGlrZSBHZWNrbykiCisiIE1hYyBPUyBYICVAKSBBcHBsZVdlYktpdC8l
QCAoS0hUTUwsIGxpa2UgR2Vja28pICVAIgorIiBNYWMgT1MgWCAlQCkgQXBwbGVXZWJLaXQvJUAg
KEtIVE1MLCBsaWtlIEdlY2tvKSIKICIgVmVyc2lvbi8zLjIuMSIKICIgY2xhc3M9XCIlQFwiIgog
IiBpZD1cIiVAXCIiCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDc5MTI1KQorKysgU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTI4LDggKzEyOCw2
IEBACiAJCTY1OEE0MDk2MEExNDg1M0IwMDVFNjk4NyAvKiBXZWJEYXRhU291cmNlSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1OEE0MDk1
MEExNDg1M0IwMDVFNjk4NyAvKiBXZWJEYXRhU291cmNlSW50ZXJuYWwuaCAqLzsgfTsKIAkJNjVF
MEY4ODQwODUwMDkxNzAwN0U1Q0I5IC8qIFdlYk5TVVJMUmVxdWVzdEV4dHJhcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVFMEY4ODIwODUwMDkxNzAw
N0U1Q0I5IC8qIFdlYk5TVVJMUmVxdWVzdEV4dHJhcy5oICovOyB9OwogCQk2NUUwRjg4NTA4NTAw
OTE3MDA3RTVDQjkgLyogV2ViTlNVUkxSZXF1ZXN0RXh0cmFzLm0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUUwRjg4MzA4NTAwOTE3MDA3RTVDQjkgLyog
V2ViTlNVUkxSZXF1ZXN0RXh0cmFzLm0gKi87IH07Ci0JCTY1RTBGOUU2MDg1MDBGMjMwMDdFNUNC
OSAvKiBXZWJOU1VzZXJEZWZhdWx0c0V4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNjVFMEY5RTQwODUwMEYyMzAwN0U1Q0I5IC8qIFdlYk5TVXNl
ckRlZmF1bHRzRXh0cmFzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJNjVFMEY5RTcwODUwMEYyMzAwN0U1Q0I5IC8qIFdlYk5TVXNlckRlZmF1bHRz
RXh0cmFzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NjVFMEY5RTUwODUwMEYyMzAwN0U1Q0I5IC8qIFdlYk5TVXNlckRlZmF1bHRzRXh0cmFzLm1tICov
OyB9OwogCQk2NUVFREU1NzA4NEZGQzlFMDAwMkRCMjUgLyogV2ViTlNGaWxlTWFuYWdlckV4dHJh
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVFRURF
NTUwODRGRkM5RTAwMDJEQjI1IC8qIFdlYk5TRmlsZU1hbmFnZXJFeHRyYXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2NUVFREU1ODA4NEZGQzlF
MDAwMkRCMjUgLyogV2ViTlNGaWxlTWFuYWdlckV4dHJhcy5tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVFRURFNTYwODRGRkM5RTAwMDJEQjI1IC8qIFdl
Yk5TRmlsZU1hbmFnZXJFeHRyYXMubSAqLzsgfTsKIAkJNjVGRkI3RkMwQUQwQjdEMzAwNDhDRDA1
IC8qIFdlYkRvY3VtZW50TG9hZGVyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2NUZGQjdGQTBBRDBCN0QzMDA0OENEMDUgLyogV2ViRG9jdW1lbnRM
b2FkZXJNYWMuaCAqLzsgfTsKQEAgLTU1NCw4ICs1NTIsNiBAQAogCQk2NURBMjYwODA1MkNDMTg3
MDBBOTdCMzEgLyogV2ViSGlzdG9yeS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkhpc3RvcnkubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk2NUUwRjg4MjA4NTAw
OTE3MDA3RTVDQjkgLyogV2ViTlNVUkxSZXF1ZXN0RXh0cmFzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk5TVVJMUmVxdWVzdEV4dHJhcy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsK
IAkJNjVFMEY4ODMwODUwMDkxNzAwN0U1Q0I5IC8qIFdlYk5TVVJMUmVxdWVzdEV4dHJhcy5tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0
aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLm9iamM7IHBhdGggPSBXZWJO
U1VSTFJlcXVlc3RFeHRyYXMubTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB1c2VzVGFicyA9IDA7IH07Ci0JCTY1RTBGOUU0MDg1MDBGMjMwMDdFNUNCOSAvKiBXZWJOU1Vz
ZXJEZWZhdWx0c0V4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJOU1VzZXJEZWZhdWx0c0V4dHJhcy5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJNjVFMEY5RTUwODUwMEYy
MzAwN0U1Q0I5IC8qIFdlYk5TVXNlckRlZmF1bHRzRXh0cmFzLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViTlNVc2VyRGVmYXVs
dHNFeHRyYXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1Rh
YnMgPSAwOyB9OwogCQk2NUUxMTUwMzA3RUZGRUJGMDA5QjhCRjcgLyogV2ViUGx1Z2luQ29udGFp
bmVyQ2hlY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViUGx1Z2luQ29udGFpbmVyQ2hlY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTY1RTExNTA0MDdFRkZFQkYwMDlCOEJG
NyAvKiBXZWJQbHVnaW5Db250YWluZXJDaGVjay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlBsdWdpbkNvbnRhaW5lckNoZWNr
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKIAkJNjVFRURFNTUwODRGRkM5RTAwMDJEQjI1IC8qIFdlYk5TRmlsZU1hbmFnZXJFeHRyYXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
TlNGaWxlTWFuYWdlckV4dHJhcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTk5Myw4ICs5ODksNiBAQAogCQkJCUJFNkRDMzlBMDRD
NjJDNEUwMDREMEVGNiAvKiBXZWJOU1VSTEV4dHJhcy5tbSAqLywKIAkJCQk2NUUwRjg4MjA4NTAw
OTE3MDA3RTVDQjkgLyogV2ViTlNVUkxSZXF1ZXN0RXh0cmFzLmggKi8sCiAJCQkJNjVFMEY4ODMw
ODUwMDkxNzAwN0U1Q0I5IC8qIFdlYk5TVVJMUmVxdWVzdEV4dHJhcy5tICovLAotCQkJCTY1RTBG
OUU0MDg1MDBGMjMwMDdFNUNCOSAvKiBXZWJOU1VzZXJEZWZhdWx0c0V4dHJhcy5oICovLAotCQkJ
CTY1RTBGOUU1MDg1MDBGMjMwMDdFNUNCOSAvKiBXZWJOU1VzZXJEZWZhdWx0c0V4dHJhcy5tbSAq
LywKIAkJCQlGNTA4OTQ2OTAyQjcxRDU5MDE4QTlDRDQgLyogV2ViTlNWaWV3RXh0cmFzLmggKi8s
CiAJCQkJRjUwODk0NkEwMkI3MUQ1OTAxOEE5Q0Q0IC8qIFdlYk5TVmlld0V4dHJhcy5tICovLAog
CQkJCTkzNDVEREFFMDM2NUZCMjcwMDg2MzVDRSAvKiBXZWJOU1dpbmRvd0V4dHJhcy5oICovLApA
QCAtMTU1Miw3ICsxNTQ2LDYgQEAKIAkJCQk5Mzk4MTA4NzA4MjRCRjAxMDA4REYwMzggLyogV2Vi
TlNQcmludE9wZXJhdGlvbkV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5ODEwN0UwODI0
QkYwMTAwOERGMDM4IC8qIFdlYk5TVVJMRXh0cmFzLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUUw
Rjg4NDA4NTAwOTE3MDA3RTVDQjkgLyogV2ViTlNVUkxSZXF1ZXN0RXh0cmFzLmggaW4gSGVhZGVy
cyAqLywKLQkJCQk2NUUwRjlFNjA4NTAwRjIzMDA3RTVDQjkgLyogV2ViTlNVc2VyRGVmYXVsdHNF
eHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzOTgxMDI0MDgyNEJGMDEwMDhERjAzOCAvKiBX
ZWJOU1ZpZXdFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzOTgxMDI1MDgyNEJGMDEwMDhE
RjAzOCAvKiBXZWJOU1dpbmRvd0V4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM5ODEwMkEw
ODI0QkYwMTAwOERGMDM4IC8qIFdlYlBhbmVsQXV0aGVudGljYXRpb25IYW5kbGVyLmggaW4gSGVh
ZGVycyAqLywKQEAgLTE5NDQsNyArMTkzNyw2IEBACiAJCQkJOTM5ODExMTkwODI0QkYwMTAwOERG
MDM4IC8qIFdlYk5TUHJpbnRPcGVyYXRpb25FeHRyYXMubSBpbiBTb3VyY2VzICovLAogCQkJCTkz
OTgxMTEyMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJOU1VSTEV4dHJhcy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTY1RTBGODg1MDg1MDA5MTcwMDdFNUNCOSAvKiBXZWJOU1VSTFJlcXVlc3RFeHRyYXMu
bSBpbiBTb3VyY2VzICovLAotCQkJCTY1RTBGOUU3MDg1MDBGMjMwMDdFNUNCOSAvKiBXZWJOU1Vz
ZXJEZWZhdWx0c0V4dHJhcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzOTgxMEM5MDgyNEJGMDEw
MDhERjAzOCAvKiBXZWJOU1ZpZXdFeHRyYXMubSBpbiBTb3VyY2VzICovLAogCQkJCTkzOTgxMENB
MDgyNEJGMDEwMDhERjAzOCAvKiBXZWJOU1dpbmRvd0V4dHJhcy5tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTM5ODEwRDAwODI0QkYwMTAwOERGMDM4IC8qIFdlYlBhbmVsQXV0aGVudGljYXRpb25IYW5k
bGVyLm0gaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MTI1
KQorKysgU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTEtMDItMTkgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IERyb3AgdGhlIGxhbmd1YWdlIHRhZyBwYXJ0IGZyb20gdGhlIFVzZXIgQWdlbnQgc3RyaW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDU2MAorCisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Y29tcG9zZVVzZXJBZ2VudCk6CisgICAgICAgICogZXdrL2V3a19zZXR0aW5n
cy5jcHA6CisgICAgICAgIChld2tfc2V0dGluZ3NfZGVmYXVsdF91c2VyX2FnZW50X2dldCk6CisK
IDIwMTEtMDItMTkgIEx1a2FzeiBTbGFjaGNpYWsgIDxsLnNsYWNoY2lha0BzYW1zdW5nLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAJ
KHJldmlzaW9uIDc5MTI1KQorKysgU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRFZmwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw2IEBACiAj
aW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAi
SFRNTEZvcm1FbGVtZW50LmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJNSU1F
VHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCkBAIC0xMjAsOCArMTE5LDYgQEAgc3RhdGljIFN0cmluZyBjb21wb3NlVXNlckFnZW50
KCkKICAgICB1YSArPSBhZ2VudFBsYXRmb3JtKCk7IC8vIFBsYXRmb3JtCiAgICAgdWEgKz0gIjsg
VTsgIjsgLy8gU2VjdXJpdHkKICAgICB1YSArPSBhZ2VudE9TKCk7IC8vIE9TLW9yLUNQVQotICAg
IHVhICs9ICI7ICI7Ci0gICAgdWEgKz0gZGVmYXVsdExhbmd1YWdlKCk7IC8vIExvY2FsaXphdGlv
biBpbmZvcm1hdGlvbgogICAgIHVhICs9ICIpICI7CiAKICAgICAvLyBXZWJLaXQgUHJvZHVjdApJ
bmRleDogU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19zZXR0aW5ncy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19zZXR0aW5ncy5jcHAJKHJldmlzaW9uIDc5MTI1
KQorKysgU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19zZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDcgKzI5LDYgQEAKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIkludFNp
emUuaCIKICNpbmNsdWRlICJLVVJMLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRl
ICJld2tfcHJpdmF0ZS5oIgogCiAjaW5jbHVkZSA8RWluYS5oPgpAQCAtMzMwLDcgKzMyOSw3IEBA
IGNvbnN0IGNoYXIqIGV3a19zZXR0aW5nc19wcm94eV91cmlfZ2V0KCkKIGNvbnN0IGNoYXIqIGV3
a19zZXR0aW5nc19kZWZhdWx0X3VzZXJfYWdlbnRfZ2V0KCkKIHsKICAgICBXVEY6OlN0cmluZyB1
YV92ZXJzaW9uID0gbWFrZVN0cmluZyhTdHJpbmc6Om51bWJlcihXRUJLSVRfVVNFUl9BR0VOVF9N
QUpPUl9WRVJTSU9OKSwgJy4nLCBTdHJpbmc6Om51bWJlcihXRUJLSVRfVVNFUl9BR0VOVF9NSU5P
Ul9WRVJTSU9OKSwgJysnKTsKLSAgICBXVEY6OlN0cmluZyBzdGF0aWNfdWEgPSBtYWtlU3RyaW5n
KCJNb3ppbGxhLzUuMCAoIiwgX2V3a19zZXR0aW5nc193ZWJraXRfcGxhdGZvcm1fZ2V0KCksICI7
IFU7ICIsIF9ld2tfc2V0dGluZ3Nfd2Via2l0X29zX3ZlcnNpb25fZ2V0KCksICI7ICIsIFdlYkNv
cmU6OmRlZmF1bHRMYW5ndWFnZSgpLCAiKSBBcHBsZVdlYktpdC8iLCB1YV92ZXJzaW9uKSArIG1h
a2VTdHJpbmcoIiAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNS4wIFNhZmFyaS8iLCB1YV92
ZXJzaW9uKTsKKyAgICBXVEY6OlN0cmluZyBzdGF0aWNfdWEgPSBtYWtlU3RyaW5nKCJNb3ppbGxh
LzUuMCAoIiwgX2V3a19zZXR0aW5nc193ZWJraXRfcGxhdGZvcm1fZ2V0KCksICI7IFU7ICIsIF9l
d2tfc2V0dGluZ3Nfd2Via2l0X29zX3ZlcnNpb25fZ2V0KCksICIpIEFwcGxlV2ViS2l0LyIsIHVh
X3ZlcnNpb24pICsgbWFrZVN0cmluZygiIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi81LjAg
U2FmYXJpLyIsIHVhX3ZlcnNpb24pOwogCiAgICAgcmV0dXJuIGVpbmFfc3RyaW5nc2hhcmVfYWRk
KHN0YXRpY191YS51dGY4KCkuZGF0YSgpKTsKIH0gCkluZGV4OiBTb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCShyZXZp
c2lvbiA3OTEyNSkKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDEzIEBACisyMDExLTAyLTE5ICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEu
Z29tYm9zQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBEcm9wIHRoZSBsYW5ndWFnZSB0YWcgcGFydCBmcm9tIHRoZSBVc2VyIEFnZW50
IHN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTQ1NjAKKworICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJzZXR0aW5ncy5jcHA6CisgICAgICAg
ICh3ZWJraXRVc2VyQWdlbnQpOgorCiAyMDExLTAyLTE5ICBDaGFybGllIFJlaXMgIDxjcmVpc0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWloYWkgUGFycGFyaXRhLgpJbmRl
eDogU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnNldHRpbmdzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCShy
ZXZpc2lvbiA3OTEyNSkKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJzZXR0
aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2luY2x1ZGUgIkVk
aXRpbmdCZWhhdmlvci5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKLSNpbmNsdWRlICJMYW5n
dWFnZS5oIgogI2luY2x1ZGUgIlBsdWdpbkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAid2Via2l0ZW51
bXR5cGVzLmgiCiAjaW5jbHVkZSAid2Via2l0Z2xvYmFsc3ByaXZhdGUuaCIKQEAgLTIyNSw3ICsy
MjQsNyBAQCBTdHJpbmcgd2Via2l0VXNlckFnZW50KCkKICAgICAvLyBXZSByZS11c2UgdGhlIFdl
YktpdCB2ZXJzaW9uLCB0aG91Z2ggaXQgZG9lc24ndCBzZWVtIHRvIG1hdHRlciBtdWNoIGluIHBy
YWN0aWNlCiAKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgdWFWZXJzaW9u
LCAobWFrZVN0cmluZyhTdHJpbmc6Om51bWJlcihXRUJLSVRfVVNFUl9BR0VOVF9NQUpPUl9WRVJT
SU9OKSwgJy4nLCBTdHJpbmc6Om51bWJlcihXRUJLSVRfVVNFUl9BR0VOVF9NSU5PUl9WRVJTSU9O
KSwgJysnKSkpOwotICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5nLCBzdGF0aWNV
QSwgKG1ha2VTdHJpbmcoIk1vemlsbGEvNS4wICgiLCB3ZWJraXRQbGF0Zm9ybSgpLCAiOyBVOyAi
LCB3ZWJraXRPU1ZlcnNpb24oKSwgIjsgIiwgZGVmYXVsdExhbmd1YWdlKCksICIpIEFwcGxlV2Vi
S2l0LyIsIHVhVmVyc2lvbikgKworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgU3RyaW5n
LCBzdGF0aWNVQSwgKG1ha2VTdHJpbmcoIk1vemlsbGEvNS4wICgiLCB3ZWJraXRQbGF0Zm9ybSgp
LCAiOyBVOyAiLCB3ZWJraXRPU1ZlcnNpb24oKSwgIikgQXBwbGVXZWJLaXQvIiwgdWFWZXJzaW9u
KSArCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFr
ZVN0cmluZygiIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi81LjAgU2FmYXJpLyIsIHVhVmVy
c2lvbikpKTsKIAogICAgIHJldHVybiBzdGF0aWNVQTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDc5MTI1KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDItMTkgIExhc3psbyBHb21ib3MgIDxsYXN6bG8u
MS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIERyb3AgdGhlIGxhbmd1YWdlIHRhZyBwYXJ0IGZyb20gdGhlIFVzZXIgQWdl
bnQgc3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01NDU2MAorCisgICAgICAgICogTWlzYy9XZWJOU1VzZXJEZWZhdWx0c0V4dHJhcy5oOiBSZW1v
dmVkIGFzIGl0IHdhcyBvbmx5IHVzZWQgdG8KKyAgICAgICAgZXhwb3NlIGRlZmF1bHRMYW5ndWFn
ZSgpIGluIHRoZSB1c2VyIGFnZW50IHN0cmluZy4KKworICAgICAgICAqIE1pc2MvV2ViTlNVc2Vy
RGVmYXVsdHNFeHRyYXMubW06IERpdHRvLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
Vmlld0ZhY3RvcnkubW06IFJlbW92ZSBXZWJOU1VzZXJEZWZhdWx0c0V4dHJhcy5oCisgICAgICAg
IGltcG9ydC4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKCtbV2Vi
VmlldyBfc3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25OYW1lOl0pOiBEcm9wIHRoZQor
ICAgICAgICBsYW5ndWFnZSB0YWcgcGFydC4KKwogMjAxMS0wMi0xOSAgQnJpYW4gUnluZXIgIDxi
cnluZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9NaXNjL1dlYk5TVXNlckRlZmF1bHRzRXh0cmFzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU1VzZXJEZWZhdWx0c0V4dHJh
cy5oCShyZXZpc2lvbiA3OTEyNSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL01pc2MvV2ViTlNVc2Vy
RGVmYXVsdHNFeHRyYXMuaAkod29ya2luZyBjb3B5KQpAQCAtMSwzMyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAq
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBs
ZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uIAotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
Ci0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgotCi1AaW50ZXJmYWNlIE5T
VXNlckRlZmF1bHRzIChXZWJOU1VzZXJEZWZhdWx0c0V4dHJhcykKLSsgKE5TU3RyaW5nICopX3dl
YmtpdF9wcmVmZXJyZWRMYW5ndWFnZUNvZGU7Ci1AZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0L21h
Yy9NaXNjL1dlYk5TVXNlckRlZmF1bHRzRXh0cmFzLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvbWFjL01pc2MvV2ViTlNVc2VyRGVmYXVsdHNFeHRyYXMubW0JKHJldmlzaW9uIDc5MTI1
KQorKysgU291cmNlL1dlYktpdC9tYWMvTWlzYy9XZWJOU1VzZXJEZWZhdWx0c0V4dHJhcy5tbQko
d29ya2luZyBjb3B5KQpAQCAtMSw0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA1
LCAyMDEwIEFwcGxlLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4gCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4gCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgIldlYk5T
VXNlckRlZmF1bHRzRXh0cmFzLmgiCi0KLSNpbXBvcnQgPFdlYkNvcmUvTGFuZ3VhZ2UuaD4KLSNp
bXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
LQotQGltcGxlbWVudGF0aW9uIE5TVXNlckRlZmF1bHRzIChXZWJOU1VzZXJEZWZhdWx0c0V4dHJh
cykKLQotKyAoTlNTdHJpbmcgKilfd2Via2l0X3ByZWZlcnJlZExhbmd1YWdlQ29kZQotewotICAg
IHJldHVybiBkZWZhdWx0TGFuZ3VhZ2UoKTsKLX0KLQotQGVuZApJbmRleDogU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVmlld0ZhY3RvcnkubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVmlld0ZhY3RvcnkubW0JKHJldmlzaW9u
IDc5MTI1KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViVmlld0ZhY3Rv
cnkubW0JKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYgQEAKICNpbXBvcnQgPFdlYktpdC9X
ZWJGcmFtZUludGVybmFsLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViVmlld0ludGVybmFsLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV2ViSFRNTFZpZXdJbnRlcm5hbC5oPgotI2ltcG9ydCA8V2ViS2l0L1dl
Yk5TVXNlckRlZmF1bHRzRXh0cmFzLmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViTlNPYmplY3RFeHRy
YXMuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJOU1ZpZXdFeHRyYXMuaD4KICNpbXBvcnQgPFdlYktp
dFN5c3RlbUludGVyZmFjZS5oPgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQkocmV2aXNpb24gNzkxMjUpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTg1LDcgKzg1LDYgQEAKICNpbXBvcnQgIldlYk5TUHJpbnRP
cGVyYXRpb25FeHRyYXMuaCIKICNpbXBvcnQgIldlYk5TVVJMRXh0cmFzLmgiCiAjaW1wb3J0ICJX
ZWJOU1VSTFJlcXVlc3RFeHRyYXMuaCIKLSNpbXBvcnQgIldlYk5TVXNlckRlZmF1bHRzRXh0cmFz
LmgiCiAjaW1wb3J0ICJXZWJOU1ZpZXdFeHRyYXMuaCIKICNpbXBvcnQgIldlYk5vZGVIaWdobGln
aHQuaCIKICNpbXBvcnQgIldlYlBERlZpZXcuaCIKQEAgLTU0OCwxMCArNTQ3LDkgQEAgKyAoTlNT
dHJpbmcgKilfc3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbAogICAgICAgICBvc1ZlcnNpb24gPSBj
cmVhdGVNYWNPU1hWZXJzaW9uU3RyaW5nKCk7CiAgICAgaWYgKCF3ZWJLaXRWZXJzaW9uKQogICAg
ICAgICB3ZWJLaXRWZXJzaW9uID0gY3JlYXRlVXNlclZpc2libGVXZWJLaXRWZXJzaW9uU3RyaW5n
KCk7Ci0gICAgTlNTdHJpbmcgKmxhbmd1YWdlID0gW05TVXNlckRlZmF1bHRzIF93ZWJraXRfcHJl
ZmVycmVkTGFuZ3VhZ2VDb2RlXTsKICAgICBpZiAoW2FwcGxpY2F0aW9uTmFtZSBsZW5ndGhdKQot
ICAgICAgICByZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJNb3ppbGxhLzUuMCAo
TWFjaW50b3NoOyBVOyAiIFBST0NFU1NPUiAiIE1hYyBPUyBYICVAOyAlQCkgQXBwbGVXZWJLaXQv
JUAgKEtIVE1MLCBsaWtlIEdlY2tvKSAlQCIsIG9zVmVyc2lvbiwgbGFuZ3VhZ2UsIHdlYktpdFZl
cnNpb24sIGFwcGxpY2F0aW9uTmFtZV07Ci0gICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRo
Rm9ybWF0OkAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgVTsgIiBQUk9DRVNTT1IgIiBNYWMgT1Mg
WCAlQDsgJUApIEFwcGxlV2ViS2l0LyVAIChLSFRNTCwgbGlrZSBHZWNrbykiLCBvc1ZlcnNpb24s
IGxhbmd1YWdlLCB3ZWJLaXRWZXJzaW9uXTsKKyAgICAgICAgcmV0dXJuIFtOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OkAiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgVTsgIiBQUk9DRVNTT1IgIiBN
YWMgT1MgWCAlQCkgQXBwbGVXZWJLaXQvJUAgKEtIVE1MLCBsaWtlIEdlY2tvKSAlQCIsIG9zVmVy
c2lvbiwgd2ViS2l0VmVyc2lvbiwgYXBwbGljYXRpb25OYW1lXTsKKyAgICByZXR1cm4gW05TU3Ry
aW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBVOyAiIFBST0NF
U1NPUiAiIE1hYyBPUyBYICVAKSBBcHBsZVdlYktpdC8lQCAoS0hUTUwsIGxpa2UgR2Vja28pIiwg
b3NWZXJzaW9uLCB3ZWJLaXRWZXJzaW9uXTsKIH0KIAogKyAodm9pZClfcmVwb3J0RXhjZXB0aW9u
OihKU1ZhbHVlUmVmKWV4Y2VwdGlvbiBpbkNvbnRleHQ6KEpTQ29udGV4dFJlZiljb250ZXh0Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gNzkxMjUpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDExLTAyLTE5ICBMYXN6
bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHRoZSBsYW5ndWFnZSB0YWcgcGFy
dCBmcm9tIHRoZSBVc2VyIEFnZW50IHN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ1NjAKKworICAgICAgICAqIEFwaS9xd2VicGFnZS5jcHA6
CisgICAgICAgIChRV2ViUGFnZTo6dXNlckFnZW50Rm9yVXJsKToKKworICAgICAgICAqIHRlc3Rz
L3F3ZWJwYWdlL3RzdF9xd2VicGFnZS5jcHA6IFJlbW92ZSB0aGUgdXNlckFnZW50TG9jYWxlQ2hh
bmdlCisgICAgICAgIHRlc3QuCisKIDIwMTEtMDItMTkgIENoYXJsaWUgUmVpcyAgPGNyZWlzQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBNaWhhaSBQYXJwYXJpdGEuCkluZGV4
OiBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCShyZXZpc2lvbiA3OTEyNSkKKysrIFNvdXJjZS9X
ZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI0LDcgKzEyNCw2
IEBACiAjaW5jbHVkZSA8UUZpbGVEaWFsb2c+CiAjaW5jbHVkZSA8UUh0dHBSZXF1ZXN0SGVhZGVy
PgogI2luY2x1ZGUgPFFJbnB1dERpYWxvZz4KLSNpbmNsdWRlIDxRTG9jYWxlPgogI2luY2x1ZGUg
PFFNZXNzYWdlQm94PgogI2luY2x1ZGUgPFFOZXR3b3JrUHJveHk+CiAjaW5jbHVkZSA8UVVuZG9T
dGFjaz4KQEAgLTM2ODQsNyArMzY4Myw3IEBAIFFXZWJQbHVnaW5GYWN0b3J5ICpRV2ViUGFnZTo6
cGx1Z2luRmFjdG8KIAogICAgIFRoZSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIHJldHVybnMgdGhl
IGZvbGxvd2luZyB2YWx1ZToKIAotICAgICJNb3ppbGxhLzUuMCAoJVBsYXRmb3JtJTsgJVNlY3Vy
aXR5JTsgJVN1YnBsYXRmb3JtJTsgJUxvY2FsZSUpIEFwcGxlV2ViS2l0LyVXZWJLaXRWZXJzaW9u
JSAoS0hUTUwsIGxpa2UgR2Vja28pICVBcHBWZXJzaW9uIFNhZmFyaS8lV2ViS2l0VmVyc2lvbiUi
CisgICAgIk1vemlsbGEvNS4wICglUGxhdGZvcm0lOyAlU2VjdXJpdHklOyAlU3VicGxhdGZvcm0l
KSBBcHBsZVdlYktpdC8lV2ViS2l0VmVyc2lvbiUgKEtIVE1MLCBsaWtlIEdlY2tvKSAlQXBwVmVy
c2lvbiBTYWZhcmkvJVdlYktpdFZlcnNpb24lIgogCiAgICAgT24gbW9iaWxlIHBsYXRmb3JtcyBz
dWNoIGFzIFN5bWJpYW4gUzYwIGFuZCBNYWVtbywgIk1vYmlsZSBTYWZhcmkiIGlzIHVzZWQgaW5z
dGVhZCBvZiAiU2FmYXJpIi4KIApAQCAtMzY5Miw4ICszNjkxLDYgQEAgUVdlYlBsdWdpbkZhY3Rv
cnkgKlFXZWJQYWdlOjpwbHVnaW5GYWN0bwogICAgIFxsaXN0CiAgICAgXG8gJVBsYXRmb3JtJSBh
bmQgJVN1YnBsYXRmb3JtJSBhcmUgZXhwYW5kZWQgdG8gdGhlIHdpbmRvd2luZyBzeXN0ZW0gYW5k
IHRoZSBvcGVyYXRpb24gc3lzdGVtLgogICAgIFxvICVTZWN1cml0eSUgZXhwYW5kcyB0byBVIGlm
IFNTTCBpcyBlbmFibGVkLCBvdGhlcndpc2UgTi4gU1NMIGlzIGVuYWJsZWQgaWYgUVNzbFNvY2tl
dDo6c3VwcG9ydHNTc2woKSByZXR1cm5zIHRydWUuCi0gICAgXG8gJUxvY2FsZSUgaXMgcmVwbGFj
ZWQgd2l0aCBRTG9jYWxlOjpuYW1lKCkuIFRoZSBsb2NhbGUgaXMgZGV0ZXJtaW5lZCBmcm9tIHRo
ZSB2aWV3IG9mIHRoZSBRV2ViUGFnZS4gSWYgbm8gdmlldyBpcyBzZXQgb24gdGhlIFFXZWJQYWdl
LAotICAgIHRoZW4gYSBkZWZhdWx0IGNvbnN0cnVjdGVkIFFMb2NhbGUgaXMgdXNlZCBpbnN0ZWFk
LgogICAgIFxvICVXZWJLaXRWZXJzaW9uJSBpcyB0aGUgdmVyc2lvbiBvZiBXZWJLaXQgdGhlIGFw
cGxpY2F0aW9uIHdhcyBjb21waWxlZCBhZ2FpbnN0LgogICAgIFxvICVBcHBWZXJzaW9uJSBleHBh
bmRzIHRvIFFDb3JlQXBwbGljYXRpb246OmFwcGxpY2F0aW9uTmFtZSgpL1FDb3JlQXBwbGljYXRp
b246OmFwcGxpY2F0aW9uVmVyc2lvbigpIGlmIHRoZXkncmUgc2V0OyBvdGhlcndpc2UgZGVmYXVs
dGluZyB0byBRdCBhbmQgdGhlIGN1cnJlbnQgUXQgdmVyc2lvbi4KICAgICBcZW5kbGlzdApAQCAt
Mzg5OCw4ICszODk1LDYgQEAgUVN0cmluZyBRV2ViUGFnZTo6dXNlckFnZW50Rm9yVXJsKGNvbnN0
IAogICAgICAgICBmaXJzdFBhcnRUZW1wICs9IFFTdHJpbmc6OmZyb21MYXRpbjEoIlVua25vd24i
KTsKICNlbmRpZgogCi0gICAgICAgIC8vIGxhbmd1YWdlIGlzIHRoZSBzcGxpdAotICAgICAgICBm
aXJzdFBhcnRUZW1wICs9IFFTdHJpbmc6OmZyb21MYXRpbjEoIjsgIik7CiAgICAgICAgIGZpcnN0
UGFydFRlbXAuc3F1ZWV6ZSgpOwogICAgICAgICBmaXJzdFBhcnQgPSBmaXJzdFBhcnRUZW1wOwog
CkBAIC0zOTMyLDE0ICszOTI3LDYgQEAgUVN0cmluZyBRV2ViUGFnZTo6dXNlckFnZW50Rm9yVXJs
KGNvbnN0IAogICAgICAgICBRX0FTU0VSVCghdGhpcmRQYXJ0LmlzTnVsbCgpKTsKICAgICB9CiAK
LSAgICAvLyBMYW5ndWFnZQotICAgIFFTdHJpbmcgbGFuZ3VhZ2VOYW1lOwotICAgIGlmIChkLT5j
bGllbnQgJiYgZC0+Y2xpZW50LT5vd25lcldpZGdldCgpKQotICAgICAgICBsYW5ndWFnZU5hbWUg
PSBkLT5jbGllbnQtPm93bmVyV2lkZ2V0KCktPmxvY2FsZSgpLm5hbWUoKTsKLSAgICBlbHNlCi0g
ICAgICAgIGxhbmd1YWdlTmFtZSA9IFFMb2NhbGUoKS5uYW1lKCk7Ci0gICAgbGFuZ3VhZ2VOYW1l
LnJlcGxhY2UoUUxhdGluMUNoYXIoJ18nKSwgUUxhdGluMUNoYXIoJy0nKSk7Ci0KICAgICAvLyBB
cHBsaWNhdGlvbiBuYW1lL3ZlcnNpb24KICAgICBRU3RyaW5nIGFwcE5hbWUgPSBRQ29yZUFwcGxp
Y2F0aW9uOjphcHBsaWNhdGlvbk5hbWUoKTsKICAgICBpZiAoIWFwcE5hbWUuaXNFbXB0eSgpKSB7
CkBAIC0zOTUxLDcgKzM5MzgsNyBAQCBRU3RyaW5nIFFXZWJQYWdlOjp1c2VyQWdlbnRGb3JVcmwo
Y29uc3QgCiAgICAgICAgIGFwcE5hbWUgPSBRU3RyaW5nOjpmcm9tTGF0aW4xKCJRdC8iKSArIFFT
dHJpbmc6OmZyb21MYXRpbjEocVZlcnNpb24oKSk7CiAgICAgfQogCi0gICAgcmV0dXJuIGZpcnN0
UGFydCArIGxhbmd1YWdlTmFtZSArIHNlY29uZFBhcnQgKyBhcHBOYW1lICsgdGhpcmRQYXJ0Owor
ICAgIHJldHVybiBmaXJzdFBhcnQgKyBzZWNvbmRQYXJ0ICsgYXBwTmFtZSArIHRoaXJkUGFydDsK
IH0KIAogCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3RzdF9xd2VicGFn
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2VicGFnZS90c3Rf
cXdlYnBhZ2UuY3BwCShyZXZpc2lvbiA3OTEyNSkKKysrIFNvdXJjZS9XZWJLaXQvcXQvdGVzdHMv
cXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUsNyArMjUsNiBA
QAogI2luY2x1ZGUgPFFEaXI+CiAjaW5jbHVkZSA8UUdyYXBoaWNzV2lkZ2V0PgogI2luY2x1ZGUg
PFFMaW5lRWRpdD4KLSNpbmNsdWRlIDxRTG9jYWxlPgogI2luY2x1ZGUgPFFNYWluV2luZG93Pgog
I2luY2x1ZGUgPFFNZW51PgogI2luY2x1ZGUgPFFQdXNoQnV0dG9uPgpAQCAtMTE5LDcgKzExOCw2
IEBAIHByaXZhdGUgc2xvdHM6CiAgICAgdm9pZCBlcnJvclBhZ2VFeHRlbnNpb25JbklGcmFtZXMo
KTsKICAgICB2b2lkIGVycm9yUGFnZUV4dGVuc2lvbkluRnJhbWVzZXQoKTsKICAgICB2b2lkIHVz
ZXJBZ2VudEFwcGxpY2F0aW9uTmFtZSgpOwotICAgIHZvaWQgdXNlckFnZW50TG9jYWxlQ2hhbmdl
KCk7CiAKICAgICB2b2lkIHZpZXdNb2RlcygpOwogCkBAIC0yNDA2LDIwICsyNDA0LDYgQEAgdm9p
ZCB0c3RfUVdlYlBhZ2U6OnVzZXJBZ2VudEFwcGxpY2F0aW9uTgogICAgIFFDb3JlQXBwbGljYXRp
b246OnNldEFwcGxpY2F0aW9uTmFtZShvbGRBcHBsaWNhdGlvbk5hbWUpOwogfQogCi12b2lkIHRz
dF9RV2ViUGFnZTo6dXNlckFnZW50TG9jYWxlQ2hhbmdlKCkKLXsKLSAgICBGcmllbmRseVdlYlBh
Z2UgcGFnZTsKLSAgICBtX3ZpZXctPnNldFBhZ2UoJnBhZ2UpOwotCi0gICAgY29uc3QgUVN0cmlu
ZyBtYXJrZXJTdHJpbmcgPSBRU3RyaW5nOjpmcm9tTGF0aW4xKCIgbm4tTk8pIik7Ci0KLSAgICBp
ZiAocGFnZS51c2VyQWdlbnRGb3JVcmwoUVVybCgpKS5jb250YWlucyhtYXJrZXJTdHJpbmcpKQot
ICAgICAgICBRU0tJUCgibWFya2VyIHN0cmluZyBhbHJlYWR5IHByZXNlbnQiLCBTa2lwU2luZ2xl
KTsKLQotICAgIG1fdmlldy0+c2V0TG9jYWxlKFFMb2NhbGUoUVN0cmluZzo6ZnJvbUxhdGluMSgi
bm5fTk8iKSkpOwotICAgIFFWRVJJRlkocGFnZS51c2VyQWdlbnRGb3JVcmwoUVVybCgpKS5jb250
YWlucyhtYXJrZXJTdHJpbmcpKTsKLX0KLQogdm9pZCB0c3RfUVdlYlBhZ2U6OmNyYXNoVGVzdHNf
TGF6eUluaXRpYWxpemF0aW9uT2ZNYWluRnJhbWUoKQogewogICAgIHsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cJKHJldmlzaW9uIDc5MTI1KQorKysgU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDItMTkgIExhc3psbyBHb21ib3Mg
IDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIERyb3AgdGhlIGxhbmd1YWdlIHRhZyBwYXJ0IGZyb20gdGhl
IFVzZXIgQWdlbnQgc3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01NDU2MAorCisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJW
aWV3OjpzdGFuZGFyZFVzZXJBZ2VudFdpdGhBcHBsaWNhdGlvbk5hbWUpOgorCiAyMDExLTAyLTE5
ICBDaGFybGllIFJlaXMgIDxjcmVpc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTWloYWkgUGFycGFyaXRhLgpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAJKHJldmlzaW9uIDc5
MTI1KQorKysgU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTk4LDcgKzk4LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0pTRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgot
I2luY2x1ZGUgPFdlYkNvcmUvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvZ2dpbmcu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BhZ2UuaD4KQEAgLTEyNDUsOCArMTI0NCw4IEBAIGJvb2wgV2ViVmlldzo6Y2FuSGFuZGxl
UmVxdWVzdChjb25zdCBXZWIKIFN0cmluZyBXZWJWaWV3OjpzdGFuZGFyZFVzZXJBZ2VudFdpdGhB
cHBsaWNhdGlvbk5hbWUoY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvbk5hbWUpCiB7CiAgICAgaWYg
KGFwcGxpY2F0aW9uTmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBtYWtlU3RyaW5nKCJN
b3ppbGxhLzUuMCAoV2luZG93czsgVTsgIiwgb3NWZXJzaW9uKCksICI7ICIsIGRlZmF1bHRMYW5n
dWFnZSgpLCAiKSBBcHBsZVdlYktpdC8iLCB3ZWJLaXRWZXJzaW9uKCksICIgKEtIVE1MLCBsaWtl
IEdlY2tvKSIpOwotICAgIHJldHVybiBtYWtlU3RyaW5nKCJNb3ppbGxhLzUuMCAoV2luZG93czsg
VTsgIiwgb3NWZXJzaW9uKCksICI7ICIsIGRlZmF1bHRMYW5ndWFnZSgpLCAiKSBBcHBsZVdlYktp
dC8iLCB3ZWJLaXRWZXJzaW9uKCksICIgKEtIVE1MLCBsaWtlIEdlY2tvKSAiLCBhcHBsaWNhdGlv
bk5hbWUpOworICAgICAgICByZXR1cm4gbWFrZVN0cmluZygiTW96aWxsYS81LjAgKFdpbmRvd3M7
IFU7ICIsIG9zVmVyc2lvbigpLCAiKSBBcHBsZVdlYktpdC8iLCB3ZWJLaXRWZXJzaW9uKCksICIg
KEtIVE1MLCBsaWtlIEdlY2tvKSIpOworICAgIHJldHVybiBtYWtlU3RyaW5nKCJNb3ppbGxhLzUu
MCAoV2luZG93czsgVTsgIiwgb3NWZXJzaW9uKCksICIpIEFwcGxlV2ViS2l0LyIsIHdlYktpdFZl
cnNpb24oKSwgIiAoS0hUTUwsIGxpa2UgR2Vja28pICIsIGFwcGxpY2F0aW9uTmFtZSk7CiB9CiAK
IFBhZ2UqIFdlYlZpZXc6OnBhZ2UoKQpJbmRleDogU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MTI1
KQorKysgU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxMyBAQAorMjAxMS0wMi0xOSAgTGFzemxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bub2tp
YS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
RHJvcCB0aGUgbGFuZ3VhZ2UgdGFnIHBhcnQgZnJvbSB0aGUgVXNlciBBZ2VudCBzdHJpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTYwCisKKyAg
ICAgICAgKiBXZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRXeDo6dXNlckFnZW50KToKKwogMjAxMS0wMi0xOSAg
Q2hhcmxpZSBSZWlzICA8Y3JlaXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IE1paGFpIFBhcnBhcml0YS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudFd4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3d4L1dl
YktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAJKHJldmlzaW9uIDc5MTI1KQorKysg
U291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V3guY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC01MzMsNyArNTMzLDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudFd4
OjpzZXRUaXRsZShjb25zdAogU3RyaW5nIEZyYW1lTG9hZGVyQ2xpZW50V3g6OnVzZXJBZ2VudChj
b25zdCBLVVJMJikKIHsKICAgICAvLyBGSVhNRTogVXNlIHRoZSBuZXcgQVBJcyBpbnRyb2R1Y2Vk
IGJ5IHRoZSBHVEsgcG9ydCB0byBmaWxsIGluIHRoZXNlIHZhbHVlcy4KLSAgICByZXR1cm4gU3Ry
aW5nKCJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBVOyBJbnRlbCBNYWMgT1MgWDsgZW4pIEFwcGxl
V2ViS2l0LzQxOC45LjEgKEtIVE1MLCBsaWtlIEdlY2tvKSBTYWZhcmkvNDE5LjMiKTsKKyAgICBy
ZXR1cm4gU3RyaW5nKCJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBVOyBJbnRlbCBNYWMgT1MgWCkg
QXBwbGVXZWJLaXQvNDE4LjkuMSAoS0hUTUwsIGxpa2UgR2Vja28pIFNhZmFyaS80MTkuMyIpOwog
fQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50V3g6OmRpc3BhdGNoRGlkUmVjZWl2ZUljb24oKQpJ
bmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0No
YW5nZUxvZwkocmV2aXNpb24gNzkxMjUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wMi0xOSAgTGFzemxvIEdvbWJvcyAgPGxh
c3psby4xLmdvbWJvc0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRHJvcCB0aGUgbGFuZ3VhZ2UgdGFnIHBhcnQgZnJvbSB0aGUgVXNl
ciBBZ2VudCBzdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTU0NTYwCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vdXNlcmFnZW50
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Vz
ZXJhZ2VudC5waHA6IEFkZGVkLgorCiAyMDExLTAyLTE5ICBBbGVqYW5kcm8gRy4gQ2FzdHJvICA8
YWxleEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeGVkIHR5cG8gaW4gdGhl
IEdUSysgc2tpcHBlZCBmaWxlLgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3VzZXJhZ2VudC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3VzZXJhZ2VudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vdXNlcmFnZW50LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3IEBACitUZXN0cyBmb3IgdXNlciBhZ2VudCBzdHJp
bmcgdGVtcGxhdGUKKworVXNlckFnZW50IHNob3VsZCBtYXRjaCB0aGUgTW96aWxsYS81LjAgKCVQ
bGF0Zm9ybSU7IFU7ICVTdWJwbGF0Zm9ybSUpIEFwcGxlV2ViS2l0LyVXZWJLaXRWZXJzaW9uJSAo
S0hUTUwsIGxpa2UgR2Vja28pIHRlbXBsYXRlOiB0cnVlCitVc2VyQWdlbnQgc2hvdWxkIGJlIHRo
ZSBzYW1lIGFzIHRoZSBhcHBWZXJzaW9uIHdpdGggYXBwQ29kZU5hbWUgcHJlZml4OiB0cnVlCitI
VFRQIFVzZXItQWdlbnQgaGVhZGVyIHNob3VsZCBiZSB0aGUgc2FtZSBhcyB1c2VyQWdlbnQ6IHRy
dWUKK0xhbmd1YWdlIHRhZyBzaG91bGQgbm90IGJlIHByZXNlbnQgaW4gdGhlIHVzZXJBZ2VudDog
dHJ1ZQorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vdXNlcmFnZW50
LnBocAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vdXNl
cmFnZW50LnBocAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi91c2VyYWdlbnQucGhwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMzIEBACis8aHRtbD4K
Kzxib2R5PgorCis8cD5UZXN0cyBmb3IgdXNlciBhZ2VudCBzdHJpbmcgdGVtcGxhdGU8L3A+CisK
KzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldFBPU0lYTG9jYWxlKCJlbl9VUy5pc284ODU5MSIpOworICAgIH0KKworICAg
IHZhciB1c2VyQWdlbnQgPSBuYXZpZ2F0b3IudXNlckFnZW50OworCisgICAgLy8gVmFsaWRhdGUg
dGhlIHVzZXIgYWdlbnQgc3RyaW5nIHVzaW5nIHRoZSBmb2xsb3dpbmcgdGVtcGxhdGU6CisgICAg
dmFyIHVzZXJBZ2VudFRlbXBsYXRlID0gIk1vemlsbGEvNS4wICglUGxhdGZvcm0lOyBVOyAlU3Vi
cGxhdGZvcm0lKSBBcHBsZVdlYktpdC8lV2ViS2l0VmVyc2lvbiUgKEtIVE1MLCBsaWtlIEdlY2tv
KSIKKyAgICB2YXIgdXNlckFnZW50VGVtcGxhdGVSZWdFeHAgPSAvXk1vemlsbGFcLzVcLjAgXCgu
KzsgVTsgW147XStcKSBBcHBsZVdlYktpdFwvWzAtOVwuXSsoXCspPyBcKEtIVE1MLCBsaWtlIEdl
Y2tvXCkuKiQvOworICAgIGRvY3VtZW50LndyaXRlKCJVc2VyQWdlbnQgc2hvdWxkIG1hdGNoIHRo
ZSAiICsgdXNlckFnZW50VGVtcGxhdGUgKyAiIHRlbXBsYXRlOiAiICsgISF1c2VyQWdlbnQubWF0
Y2godXNlckFnZW50VGVtcGxhdGVSZWdFeHApICsgIjxicj4iKTsKKworICAgIC8vIFZhbGlkYXRl
IG5hdmlnYXRvci5hcHBWZXJzaW9uIGFuZCBuYXZpZ2F0b3IuYXBwQ29kZU5hbWUKKyAgICBkb2N1
bWVudC53cml0ZSgiVXNlckFnZW50IHNob3VsZCBiZSB0aGUgc2FtZSBhcyB0aGUgYXBwVmVyc2lv
biB3aXRoIGFwcENvZGVOYW1lIHByZWZpeDogIiArICh1c2VyQWdlbnQgPT0gbmF2aWdhdG9yLmFw
cENvZGVOYW1lICsgIi8iICsgbmF2aWdhdG9yLmFwcFZlcnNpb24pICsgIjxicj4iKTsKKworICAg
IC8vIFZhbGlkYXRlIEhUVFAgVXNlci1BZ2VudCBoZWFkZXIKKyAgICB2YXIgdXNlckFnZW50SGVh
ZGVyID0gJzw/cGhwIGVjaG8gJF9TRVJWRVJbJ0hUVFBfVVNFUl9BR0VOVCddOyA/Pic7CisgICAg
ZG9jdW1lbnQud3JpdGUoIkhUVFAgVXNlci1BZ2VudCBoZWFkZXIgc2hvdWxkIGJlIHRoZSBzYW1l
IGFzIHVzZXJBZ2VudDogIiArICh1c2VyQWdlbnRIZWFkZXIgPT0gdXNlckFnZW50KSArICI8YnI+
Iik7CisKKyAgICAvLyBNYWtlIHN1cmUgbGFuZ3VhZ2UgdGFnIGlzIG5vdCBwcmVzZW50CisgICAg
dmFyIGxhbmd1YWdlVGFnUmVnRXhwID0gbmV3IFJlZ0V4cCgiWyA7XChdIiArIG5hdmlnYXRvci5s
YW5ndWFnZSArICJbIDtcKV0iKTsKKyAgICBkb2N1bWVudC53cml0ZSgiTGFuZ3VhZ2UgdGFnIHNo
b3VsZCBub3QgYmUgcHJlc2VudCBpbiB0aGUgdXNlckFnZW50OiAiICsgIXVzZXJBZ2VudC5tYXRj
aChsYW5ndWFnZVRhZ1JlZ0V4cCkgKyAiPGJyPiIpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQo=
</data>
<flag name="review"
          id="74828"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83218</attachid>
            <date>2011-02-21 14:54:32 -0800</date>
            <delta_ts>2011-02-22 21:29:41 -0800</delta_ts>
            <desc>address review comments</desc>
            <filename>ua-3.patch</filename>
            <type>text/plain</type>
            <size>24625</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MTI1KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDItMTkgIExhc3psbyBH
b21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgdGhlIGxhbmd1YWdlIHRhZyBwYXJ0IGZy
b20gdGhlIFVzZXIgQWdlbnQgc3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01NDU2MAorCisgICAgICAgICogVUlQcm9jZXNzL2d0ay9XZWJQYWdl
UHJveHlHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNl
ckFnZW50KToKKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KToKKworICAg
ICAgICAqIFVJUHJvY2Vzcy9xdC9XZWJQYWdlUHJveHlRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6c3RhbmRhcmRVc2VyQWdlbnQpOgorCisgICAgICAgICogVUlQcm9jZXNz
L3dpbi9XZWJQYWdlUHJveHlXaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnN0YW5kYXJkVXNlckFnZW50KTogRHJvcCB0aGUgbGFuZ3VhZ2UgdGFnCisgICAgICAgIHBhcnQg
YW5kIGZpeCBzdHlsZS4KKwogMjAxMS0wMi0xOSAgQ2hhcmxpZSBSZWlzICA8Y3JlaXNAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1paGFpIFBhcnBhcml0YS4KSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUGFnZVByb3h5R3RrLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZ3RrL1dlYlBhZ2VQcm94eUd0ay5jcHAJKHJl
dmlzaW9uIDc5MTI1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2d0ay9XZWJQYWdlUHJv
eHlHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogU3RyaW5nIFdlYlBhZ2VQcm94eTo6c3RhbmRhcmRVc2VyQWdlbnQoY29uc3QgU3RyaW5n
JiBhcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgc2hv
dWxkIG5vdCBiZSBoYXJkIGNvZGVkLgotICAgIHJldHVybiAiTW96aWxsYS81LjAgKFgxMTsgVTsg
TGludXggaTY4NjsgZW4tdXMpIEFwcGxlV2ViS2l0LzUzNC43IChLSFRNTCwgbGlrZSBHZWNrbykg
VmVyc2lvbi81LjAgU2FmYXJpLzUzNC43IjsKKyAgICByZXR1cm4gIk1vemlsbGEvNS4wIChYMTE7
IFU7IExpbnV4IGk2ODYpIEFwcGxlV2ViS2l0LzUzNC43IChLSFRNTCwgbGlrZSBHZWNrbykgVmVy
c2lvbi81LjAgU2FmYXJpLzUzNC43IjsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQko
cmV2aXNpb24gNzkxMjUpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQ
cm94eU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAogI2ltcG9ydCAiV2Vi
UGFnZVByb3h5LmgiCiAKICNpbXBvcnQgIlBhZ2VDbGllbnQuaCIKLSNpbXBvcnQgPFdlYkNvcmUv
TGFuZ3VhZ2UuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CiAKIEBp
bnRlcmZhY2UgTlNBcHBsaWNhdGlvbiAoRGV0YWlscykKQEAgLTg4LDEyICs4Nyw5IEBAIFN0cmlu
ZyBXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KGMKICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKFN0cmluZywgb3NWZXJzaW9uLCAobWFjT1NYVmVyc2lvblN0cmluZygpKSk7CiAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHdlYktpdFZlcnNpb24sICh1c2VyVmlzaWJsZVdlYktp
dFZlcnNpb25TdHJpbmcoKSkpOwogCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCB1cGF0ZSB0aGUg
dXNlciBhZ2VudCBpZiB0aGUgZGVmYXVsdCBsYW5ndWFnZSBjaGFuZ2VzLgotICAgIFN0cmluZyBs
YW5ndWFnZSA9IGRlZmF1bHRMYW5ndWFnZSgpOwotCiAgICAgaWYgKGFwcGxpY2F0aW9uTmFtZUZv
clVzZXJBZ2VudC5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBtYWtlU3RyaW5nKCJNb3ppbGxh
LzUuMCAoTWFjaW50b3NoOyBVOyAiIFBST0NFU1NPUiAiIE1hYyBPUyBYICIsIG9zVmVyc2lvbiwg
IjsgIiwgbGFuZ3VhZ2UsICIpIEFwcGxlV2ViS2l0LyIsIHdlYktpdFZlcnNpb24sICIgKEtIVE1M
LCBsaWtlIEdlY2tvKSIpOwotICAgIHJldHVybiBtYWtlU3RyaW5nKCJNb3ppbGxhLzUuMCAoTWFj
aW50b3NoOyBVOyAiIFBST0NFU1NPUiAiIE1hYyBPUyBYICIsIG9zVmVyc2lvbiwgIjsgIiwgbGFu
Z3VhZ2UsICIpIEFwcGxlV2ViS2l0LyIsIHdlYktpdFZlcnNpb24sICIgKEtIVE1MLCBsaWtlIEdl
Y2tvKSAiLCBhcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQpOworICAgICAgICByZXR1cm4gbWFr
ZVN0cmluZygiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgVTsgIiBQUk9DRVNTT1IgIiBNYWMgT1Mg
WCAiLCBvc1ZlcnNpb24sICIpIEFwcGxlV2ViS2l0LyIsIHdlYktpdFZlcnNpb24sICIgKEtIVE1M
LCBsaWtlIEdlY2tvKSIpOworICAgIHJldHVybiBtYWtlU3RyaW5nKCJNb3ppbGxhLzUuMCAoTWFj
aW50b3NoOyBVOyAiIFBST0NFU1NPUiAiIE1hYyBPUyBYICIsIG9zVmVyc2lvbiwgIikgQXBwbGVX
ZWJLaXQvIiwgd2ViS2l0VmVyc2lvbiwgIiAoS0hUTUwsIGxpa2UgR2Vja28pICIsIGFwcGxpY2F0
aW9uTmFtZUZvclVzZXJBZ2VudCk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpnZXRJc1NwZWFr
aW5nKGJvb2wmIGlzU3BlYWtpbmcpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
V2ViUGFnZVByb3h5UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9XZWJQYWdlUHJveHlRdC5jcHAJKHJldmlzaW9uIDc5MTI1KQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1dlYlBhZ2VQcm94eVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEs
NyArMzEsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIFN0cmluZyBXZWJQYWdlUHJveHk6OnN0YW5k
YXJkVXNlckFnZW50KGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KQog
ewogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBub3QgYmUgaGFyZCBjb2RlZC4KLSAgICByZXR1
cm4gIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7IEludGVsIE1hYyBPUyBYIDEwXzY7IGVuLXVz
KSBBcHBsZVdlYktpdC81MzEuNCAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vNC4wLjMgU2Fm
YXJpLzUzMS40IjsKKyAgICByZXR1cm4gIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7IEludGVs
IE1hYyBPUyBYIDEwXzYpIEFwcGxlV2ViS2l0LzUzMS40IChLSFRNTCwgbGlrZSBHZWNrbykgVmVy
c2lvbi80LjAuMyBTYWZhcmkvNTMxLjQiOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViUGFnZVByb3h5V2luLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd2luL1dlYlBhZ2VQcm94eVdpbi5j
cHAJKHJldmlzaW9uIDc5MTI1KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJQ
YWdlUHJveHlXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw2IEBACiAjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5LmgiCiAKICNpbmNsdWRlIDx0Y2hhci5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvTGFuZ3VhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkNvcmVJbnN0YW5jZUhhbmRsZS5o
PgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdDb25jYXRlbmF0ZS5oPgpAQCAtMTAwLDE1ICs5OSwxMiBAQCBleGl0OgogCiBTdHJpbmcgV2Vi
UGFnZVByb3h5OjpzdGFuZGFyZFVzZXJBZ2VudChjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFt
ZUZvclVzZXJBZ2VudCkKIHsKLSAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBvc1ZlcnNp
b24sICh3aW5kb3dzVmVyc2lvbigpKSk7Ci0gICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywg
d2ViS2l0VmVyc2lvbiwgKHVzZXJWaXNpYmxlV2ViS2l0VmVyc2lvblN0cmluZygpKSk7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIG9zVmVyc2lvbiwgKHdpbmRvd3NWZXJzaW9uKCkp
KTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgd2ViS2l0VmVyc2lvbiwgKHVzZXJW
aXNpYmxlV2ViS2l0VmVyc2lvblN0cmluZygpKSk7CiAKLSAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
dXBhdGUgdGhlIHVzZXIgYWdlbnQgaWYgdGhlIGRlZmF1bHQgbGFuZ3VhZ2UgY2hhbmdlcy4KLSAg
IFN0cmluZyBsYW5ndWFnZSA9IGRlZmF1bHRMYW5ndWFnZSgpOwotCi0gICBpZiAoYXBwbGljYXRp
b25OYW1lRm9yVXNlckFnZW50LmlzRW1wdHkoKSkKLSAgICAgICByZXR1cm4gbWFrZVN0cmluZygi
TW96aWxsYS81LjAgKFdpbmRvd3M7IFU7ICIsIG9zVmVyc2lvbiwgIjsgIiwgbGFuZ3VhZ2UsICIp
IEFwcGxlV2ViS2l0LyIsIHdlYktpdFZlcnNpb24sICIgKEtIVE1MLCBsaWtlIEdlY2tvKSIpOwot
ICAgcmV0dXJuIG1ha2VTdHJpbmcoIk1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyAiLCBvc1ZlcnNp
b24sICI7ICIsIGxhbmd1YWdlLCAiKSBBcHBsZVdlYktpdC8iLCB3ZWJLaXRWZXJzaW9uLCAiIChL
SFRNTCwgbGlrZSBHZWNrbykgIiwgYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KTsKKyAgICBp
ZiAoYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
IG1ha2VTdHJpbmcoIk1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyAiLCBvc1ZlcnNpb24sICIpIEFw
cGxlV2ViS2l0LyIsIHdlYktpdFZlcnNpb24sICIgKEtIVE1MLCBsaWtlIEdlY2tvKSIpOworICAg
IHJldHVybiBtYWtlU3RyaW5nKCJNb3ppbGxhLzUuMCAoV2luZG93czsgVTsgIiwgb3NWZXJzaW9u
LCAiKSBBcHBsZVdlYktpdC8iLCB3ZWJLaXRWZXJzaW9uLCAiIChLSFRNTCwgbGlrZSBHZWNrbykg
IiwgYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gNzkxMjUpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDExLTAyLTE5ICBMYXN6bG8g
R29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHRoZSBsYW5ndWFnZSB0YWcgcGFydCBm
cm9tIHRoZSBVc2VyIEFnZW50IHN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTQ1NjAKKworICAgICAgICAqIFN0cmluZ3NOb3RUb0JlTG9jYWxp
emVkLnR4dDogQ2hhbmdlIHRoZSBVc2VyIEFnZW50IHN0cmluZworICAgICAgICB0ZW1wbGF0ZS4K
KwogMjAxMS0wMi0xOCAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeCBhZnRlciByNzg2MzQgYW5kIHI3ODc4Ni4KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvU3RyaW5nc05vdFRvQmVMb2NhbGl6ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvU3RyaW5nc05vdFRvQmVMb2NhbGl6ZWQudHh0CShyZXZpc2lvbiA3
OTEyNSkKKysrIFNvdXJjZS9XZWJLaXQvU3RyaW5nc05vdFRvQmVMb2NhbGl6ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMSw4ICsxMSw4IEBACiAiICpQT1NUKiIKICIgKnRhcmdldCoiCiAiID4+
PiIKLSIgTWFjIE9TIFggJUA7ICVAKSBBcHBsZVdlYktpdC8lQCAoS0hUTUwsIGxpa2UgR2Vja28p
ICVAIgotIiBNYWMgT1MgWCAlQDsgJUApIEFwcGxlV2ViS2l0LyVAIChLSFRNTCwgbGlrZSBHZWNr
bykiCisiIE1hYyBPUyBYICVAKSBBcHBsZVdlYktpdC8lQCAoS0hUTUwsIGxpa2UgR2Vja28pICVA
IgorIiBNYWMgT1MgWCAlQCkgQXBwbGVXZWJLaXQvJUAgKEtIVE1MLCBsaWtlIEdlY2tvKSIKICIg
VmVyc2lvbi8zLjIuMSIKICIgY2xhc3M9XCIlQFwiIgogIiBpZD1cIiVAXCIiCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCShyZXZpc2lvbiA3OTEyNSkKKysrIFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDExLTAyLTE5ICBMYXN6bG8gR29t
Ym9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHRoZSBsYW5ndWFnZSB0YWcgcGFydCBmcm9t
IHRoZSBVc2VyIEFnZW50IHN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTQ1NjAKKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXBvc2VVc2VyQWdlbnQpOgor
ICAgICAgICAqIGV3ay9ld2tfc2V0dGluZ3MuY3BwOgorICAgICAgICAoZXdrX3NldHRpbmdzX2Rl
ZmF1bHRfdXNlcl9hZ2VudF9nZXQpOgorCiAyMDExLTAyLTE5ICBMdWthc3ogU2xhY2hjaWFrICA8
bC5zbGFjaGNpYWtAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXgu
CkluZGV4OiBTb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEVmbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCShyZXZpc2lvbiA3OTEyNSkKKysrIFNvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDMsNyArNDMsNiBAQAogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUg
IkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgotI2luY2x1ZGUgIkxh
bmd1YWdlLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMTIwLDggKzExOSw2IEBAIHN0YXRp
YyBTdHJpbmcgY29tcG9zZVVzZXJBZ2VudCgpCiAgICAgdWEgKz0gYWdlbnRQbGF0Zm9ybSgpOyAv
LyBQbGF0Zm9ybQogICAgIHVhICs9ICI7IFU7ICI7IC8vIFNlY3VyaXR5CiAgICAgdWEgKz0gYWdl
bnRPUygpOyAvLyBPUy1vci1DUFUKLSAgICB1YSArPSAiOyAiOwotICAgIHVhICs9IGRlZmF1bHRM
YW5ndWFnZSgpOyAvLyBMb2NhbGl6YXRpb24gaW5mb3JtYXRpb24KICAgICB1YSArPSAiKSAiOwog
CiAgICAgLy8gV2ViS2l0IFByb2R1Y3QKSW5kZXg6IFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
c2V0dGluZ3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfc2V0
dGluZ3MuY3BwCShyZXZpc2lvbiA3OTEyNSkKKysrIFNvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
c2V0dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAi
SW1hZ2UuaCIKICNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgotI2luY2x1
ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVkZSAiZXdrX3ByaXZhdGUuaCIKIAogI2luY2x1ZGUgPEVp
bmEuaD4KQEAgLTMzMCw3ICszMjksNyBAQCBjb25zdCBjaGFyKiBld2tfc2V0dGluZ3NfcHJveHlf
dXJpX2dldCgpCiBjb25zdCBjaGFyKiBld2tfc2V0dGluZ3NfZGVmYXVsdF91c2VyX2FnZW50X2dl
dCgpCiB7CiAgICAgV1RGOjpTdHJpbmcgdWFfdmVyc2lvbiA9IG1ha2VTdHJpbmcoU3RyaW5nOjpu
dW1iZXIoV0VCS0lUX1VTRVJfQUdFTlRfTUFKT1JfVkVSU0lPTiksICcuJywgU3RyaW5nOjpudW1i
ZXIoV0VCS0lUX1VTRVJfQUdFTlRfTUlOT1JfVkVSU0lPTiksICcrJyk7Ci0gICAgV1RGOjpTdHJp
bmcgc3RhdGljX3VhID0gbWFrZVN0cmluZygiTW96aWxsYS81LjAgKCIsIF9ld2tfc2V0dGluZ3Nf
d2Via2l0X3BsYXRmb3JtX2dldCgpLCAiOyBVOyAiLCBfZXdrX3NldHRpbmdzX3dlYmtpdF9vc192
ZXJzaW9uX2dldCgpLCAiOyAiLCBXZWJDb3JlOjpkZWZhdWx0TGFuZ3VhZ2UoKSwgIikgQXBwbGVX
ZWJLaXQvIiwgdWFfdmVyc2lvbikgKyBtYWtlU3RyaW5nKCIgKEtIVE1MLCBsaWtlIEdlY2tvKSBW
ZXJzaW9uLzUuMCBTYWZhcmkvIiwgdWFfdmVyc2lvbik7CisgICAgV1RGOjpTdHJpbmcgc3RhdGlj
X3VhID0gbWFrZVN0cmluZygiTW96aWxsYS81LjAgKCIsIF9ld2tfc2V0dGluZ3Nfd2Via2l0X3Bs
YXRmb3JtX2dldCgpLCAiOyBVOyAiLCBfZXdrX3NldHRpbmdzX3dlYmtpdF9vc192ZXJzaW9uX2dl
dCgpLCAiKSBBcHBsZVdlYktpdC8iLCB1YV92ZXJzaW9uKSArIG1ha2VTdHJpbmcoIiAoS0hUTUws
IGxpa2UgR2Vja28pIFZlcnNpb24vNS4wIFNhZmFyaS8iLCB1YV92ZXJzaW9uKTsKIAogICAgIHJl
dHVybiBlaW5hX3N0cmluZ3NoYXJlX2FkZChzdGF0aWNfdWEudXRmOCgpLmRhdGEoKSk7CiB9IApJ
bmRleDogU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZwkocmV2aXNpb24gNzkxMjUpCisrKyBTb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wMi0xOSAg
TGFzemxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCB0aGUgbGFuZ3VhZ2UgdGFn
IHBhcnQgZnJvbSB0aGUgVXNlciBBZ2VudCBzdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTYwCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0
d2Vic2V0dGluZ3MuY3BwOgorICAgICAgICAod2Via2l0VXNlckFnZW50KToKKwogMjAxMS0wMi0x
OSAgQ2hhcmxpZSBSZWlzICA8Y3JlaXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IE1paGFpIFBhcnBhcml0YS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJzZXR0aW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnNldHRpbmdzLmNwcAkocmV2aXNpb24gNzkxMjUpCisrKyBTb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vic2V0dGluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3
ICsyOCw2IEBACiAKICNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3IuaCIKICNpbmNsdWRlICJGaWxl
U3lzdGVtLmgiCi0jaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJQbHVnaW5EYXRhYmFz
ZS5oIgogI2luY2x1ZGUgIndlYmtpdGVudW10eXBlcy5oIgogI2luY2x1ZGUgIndlYmtpdGdsb2Jh
bHNwcml2YXRlLmgiCkBAIC0yMjUsNyArMjI0LDcgQEAgU3RyaW5nIHdlYmtpdFVzZXJBZ2VudCgp
CiAgICAgLy8gV2UgcmUtdXNlIHRoZSBXZWJLaXQgdmVyc2lvbiwgdGhvdWdoIGl0IGRvZXNuJ3Qg
c2VlbSB0byBtYXR0ZXIgbXVjaCBpbiBwcmFjdGljZQogCiAgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChjb25zdCBTdHJpbmcsIHVhVmVyc2lvbiwgKG1ha2VTdHJpbmcoU3RyaW5nOjpudW1iZXIoV0VC
S0lUX1VTRVJfQUdFTlRfTUFKT1JfVkVSU0lPTiksICcuJywgU3RyaW5nOjpudW1iZXIoV0VCS0lU
X1VTRVJfQUdFTlRfTUlOT1JfVkVSU0lPTiksICcrJykpKTsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKGNvbnN0IFN0cmluZywgc3RhdGljVUEsIChtYWtlU3RyaW5nKCJNb3ppbGxhLzUuMCAoIiwg
d2Via2l0UGxhdGZvcm0oKSwgIjsgVTsgIiwgd2Via2l0T1NWZXJzaW9uKCksICI7ICIsIGRlZmF1
bHRMYW5ndWFnZSgpLCAiKSBBcHBsZVdlYktpdC8iLCB1YVZlcnNpb24pICsKKyAgICBERUZJTkVf
U1RBVElDX0xPQ0FMKGNvbnN0IFN0cmluZywgc3RhdGljVUEsIChtYWtlU3RyaW5nKCJNb3ppbGxh
LzUuMCAoIiwgd2Via2l0UGxhdGZvcm0oKSwgIjsgVTsgIiwgd2Via2l0T1NWZXJzaW9uKCksICIp
IEFwcGxlV2ViS2l0LyIsIHVhVmVyc2lvbikgKwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1ha2VTdHJpbmcoIiAoS0hUTUwsIGxpa2UgR2Vja28pIFZl
cnNpb24vNS4wIFNhZmFyaS8iLCB1YVZlcnNpb24pKSk7CiAKICAgICByZXR1cm4gc3RhdGljVUE7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3OTEyNSkKKysrIFNvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDExLTAyLTE5
ICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIHRoZSBsYW5ndWFnZSB0
YWcgcGFydCBmcm9tIHRoZSBVc2VyIEFnZW50IHN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ1NjAKKworICAgICAgICAqIFdlYlZpZXcvV2Vi
Vmlldy5tbToKKyAgICAgICAgKCtbV2ViVmlldyBfc3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGlj
YXRpb25OYW1lOl0pOiBEcm9wIHRoZQorICAgICAgICBsYW5ndWFnZSB0YWcgcGFydC4KKwogMjAx
MS0wMi0xOSAgQnJpYW4gUnluZXIgIDxicnluZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEFkYW0gQmFydGguCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCShyZXZpc2lvbiA3OTEyNSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQkod29ya2luZyBjb3B5KQpAQCAtODUsNyArODUsNiBAQAogI2ltcG9ydCAiV2ViTlNQcmlu
dE9wZXJhdGlvbkV4dHJhcy5oIgogI2ltcG9ydCAiV2ViTlNVUkxFeHRyYXMuaCIKICNpbXBvcnQg
IldlYk5TVVJMUmVxdWVzdEV4dHJhcy5oIgotI2ltcG9ydCAiV2ViTlNVc2VyRGVmYXVsdHNFeHRy
YXMuaCIKICNpbXBvcnQgIldlYk5TVmlld0V4dHJhcy5oIgogI2ltcG9ydCAiV2ViTm9kZUhpZ2hs
aWdodC5oIgogI2ltcG9ydCAiV2ViUERGVmlldy5oIgpAQCAtNTQ4LDEwICs1NDcsOSBAQCArIChO
U1N0cmluZyAqKV9zdGFuZGFyZFVzZXJBZ2VudFdpdGhBcHBsCiAgICAgICAgIG9zVmVyc2lvbiA9
IGNyZWF0ZU1hY09TWFZlcnNpb25TdHJpbmcoKTsKICAgICBpZiAoIXdlYktpdFZlcnNpb24pCiAg
ICAgICAgIHdlYktpdFZlcnNpb24gPSBjcmVhdGVVc2VyVmlzaWJsZVdlYktpdFZlcnNpb25TdHJp
bmcoKTsKLSAgICBOU1N0cmluZyAqbGFuZ3VhZ2UgPSBbTlNVc2VyRGVmYXVsdHMgX3dlYmtpdF9w
cmVmZXJyZWRMYW5ndWFnZUNvZGVdOwogICAgIGlmIChbYXBwbGljYXRpb25OYW1lIGxlbmd0aF0p
Ci0gICAgICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIk1vemlsbGEvNS4w
IChNYWNpbnRvc2g7IFU7ICIgUFJPQ0VTU09SICIgTWFjIE9TIFggJUA7ICVAKSBBcHBsZVdlYktp
dC8lQCAoS0hUTUwsIGxpa2UgR2Vja28pICVAIiwgb3NWZXJzaW9uLCBsYW5ndWFnZSwgd2ViS2l0
VmVyc2lvbiwgYXBwbGljYXRpb25OYW1lXTsKLSAgICByZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dp
dGhGb3JtYXQ6QCJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBVOyAiIFBST0NFU1NPUiAiIE1hYyBP
UyBYICVAOyAlQCkgQXBwbGVXZWJLaXQvJUAgKEtIVE1MLCBsaWtlIEdlY2tvKSIsIG9zVmVyc2lv
biwgbGFuZ3VhZ2UsIHdlYktpdFZlcnNpb25dOworICAgICAgICByZXR1cm4gW05TU3RyaW5nIHN0
cmluZ1dpdGhGb3JtYXQ6QCJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBVOyAiIFBST0NFU1NPUiAi
IE1hYyBPUyBYICVAKSBBcHBsZVdlYktpdC8lQCAoS0hUTUwsIGxpa2UgR2Vja28pICVAIiwgb3NW
ZXJzaW9uLCB3ZWJLaXRWZXJzaW9uLCBhcHBsaWNhdGlvbk5hbWVdOworICAgIHJldHVybiBbTlNT
dHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7ICIgUFJP
Q0VTU09SICIgTWFjIE9TIFggJUApIEFwcGxlV2ViS2l0LyVAIChLSFRNTCwgbGlrZSBHZWNrbyki
LCBvc1ZlcnNpb24sIHdlYktpdFZlcnNpb25dOwogfQogCiArICh2b2lkKV9yZXBvcnRFeGNlcHRp
b246KEpTVmFsdWVSZWYpZXhjZXB0aW9uIGluQ29udGV4dDooSlNDb250ZXh0UmVmKWNvbnRleHQK
SW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA3OTEyNSkKKysrIFNvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDItMTkgIExh
c3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERyb3AgdGhlIGxhbmd1YWdlIHRhZyBw
YXJ0IGZyb20gdGhlIFVzZXIgQWdlbnQgc3RyaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDU2MAorCisgICAgICAgICogQXBpL3F3ZWJwYWdlLmNw
cDoKKyAgICAgICAgKFFXZWJQYWdlOjp1c2VyQWdlbnRGb3JVcmwpOgorCisgICAgICAgICogdGVz
dHMvcXdlYnBhZ2UvdHN0X3F3ZWJwYWdlLmNwcDogUmVtb3ZlIHRoZSB1c2VyQWdlbnRMb2NhbGVD
aGFuZ2UKKyAgICAgICAgdGVzdC4KKwogMjAxMS0wMi0xOSAgQ2hhcmxpZSBSZWlzICA8Y3JlaXNA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1paGFpIFBhcnBhcml0YS4KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAJKHJldmlzaW9uIDc5MTI1KQorKysgU291cmNl
L1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjQsNyArMTI0
LDYgQEAKICNpbmNsdWRlIDxRRmlsZURpYWxvZz4KICNpbmNsdWRlIDxRSHR0cFJlcXVlc3RIZWFk
ZXI+CiAjaW5jbHVkZSA8UUlucHV0RGlhbG9nPgotI2luY2x1ZGUgPFFMb2NhbGU+CiAjaW5jbHVk
ZSA8UU1lc3NhZ2VCb3g+CiAjaW5jbHVkZSA8UU5ldHdvcmtQcm94eT4KICNpbmNsdWRlIDxRVW5k
b1N0YWNrPgpAQCAtMzY4NCw3ICszNjgzLDcgQEAgUVdlYlBsdWdpbkZhY3RvcnkgKlFXZWJQYWdl
OjpwbHVnaW5GYWN0bwogCiAgICAgVGhlIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gcmV0dXJucyB0
aGUgZm9sbG93aW5nIHZhbHVlOgogCi0gICAgIk1vemlsbGEvNS4wICglUGxhdGZvcm0lOyAlU2Vj
dXJpdHklOyAlU3VicGxhdGZvcm0lOyAlTG9jYWxlJSkgQXBwbGVXZWJLaXQvJVdlYktpdFZlcnNp
b24lIChLSFRNTCwgbGlrZSBHZWNrbykgJUFwcFZlcnNpb24gU2FmYXJpLyVXZWJLaXRWZXJzaW9u
JSIKKyAgICAiTW96aWxsYS81LjAgKCVQbGF0Zm9ybSU7ICVTZWN1cml0eSU7ICVTdWJwbGF0Zm9y
bSUpIEFwcGxlV2ViS2l0LyVXZWJLaXRWZXJzaW9uJSAoS0hUTUwsIGxpa2UgR2Vja28pICVBcHBW
ZXJzaW9uIFNhZmFyaS8lV2ViS2l0VmVyc2lvbiUiCiAKICAgICBPbiBtb2JpbGUgcGxhdGZvcm1z
IHN1Y2ggYXMgU3ltYmlhbiBTNjAgYW5kIE1hZW1vLCAiTW9iaWxlIFNhZmFyaSIgaXMgdXNlZCBp
bnN0ZWFkIG9mICJTYWZhcmkiLgogCkBAIC0zNjkyLDggKzM2OTEsNiBAQCBRV2ViUGx1Z2luRmFj
dG9yeSAqUVdlYlBhZ2U6OnBsdWdpbkZhY3RvCiAgICAgXGxpc3QKICAgICBcbyAlUGxhdGZvcm0l
IGFuZCAlU3VicGxhdGZvcm0lIGFyZSBleHBhbmRlZCB0byB0aGUgd2luZG93aW5nIHN5c3RlbSBh
bmQgdGhlIG9wZXJhdGlvbiBzeXN0ZW0uCiAgICAgXG8gJVNlY3VyaXR5JSBleHBhbmRzIHRvIFUg
aWYgU1NMIGlzIGVuYWJsZWQsIG90aGVyd2lzZSBOLiBTU0wgaXMgZW5hYmxlZCBpZiBRU3NsU29j
a2V0OjpzdXBwb3J0c1NzbCgpIHJldHVybnMgdHJ1ZS4KLSAgICBcbyAlTG9jYWxlJSBpcyByZXBs
YWNlZCB3aXRoIFFMb2NhbGU6Om5hbWUoKS4gVGhlIGxvY2FsZSBpcyBkZXRlcm1pbmVkIGZyb20g
dGhlIHZpZXcgb2YgdGhlIFFXZWJQYWdlLiBJZiBubyB2aWV3IGlzIHNldCBvbiB0aGUgUVdlYlBh
Z2UsCi0gICAgdGhlbiBhIGRlZmF1bHQgY29uc3RydWN0ZWQgUUxvY2FsZSBpcyB1c2VkIGluc3Rl
YWQuCiAgICAgXG8gJVdlYktpdFZlcnNpb24lIGlzIHRoZSB2ZXJzaW9uIG9mIFdlYktpdCB0aGUg
YXBwbGljYXRpb24gd2FzIGNvbXBpbGVkIGFnYWluc3QuCiAgICAgXG8gJUFwcFZlcnNpb24lIGV4
cGFuZHMgdG8gUUNvcmVBcHBsaWNhdGlvbjo6YXBwbGljYXRpb25OYW1lKCkvUUNvcmVBcHBsaWNh
dGlvbjo6YXBwbGljYXRpb25WZXJzaW9uKCkgaWYgdGhleSdyZSBzZXQ7IG90aGVyd2lzZSBkZWZh
dWx0aW5nIHRvIFF0IGFuZCB0aGUgY3VycmVudCBRdCB2ZXJzaW9uLgogICAgIFxlbmRsaXN0CkBA
IC0zODk4LDggKzM4OTUsNiBAQCBRU3RyaW5nIFFXZWJQYWdlOjp1c2VyQWdlbnRGb3JVcmwoY29u
c3QgCiAgICAgICAgIGZpcnN0UGFydFRlbXAgKz0gUVN0cmluZzo6ZnJvbUxhdGluMSgiVW5rbm93
biIpOwogI2VuZGlmCiAKLSAgICAgICAgLy8gbGFuZ3VhZ2UgaXMgdGhlIHNwbGl0Ci0gICAgICAg
IGZpcnN0UGFydFRlbXAgKz0gUVN0cmluZzo6ZnJvbUxhdGluMSgiOyAiKTsKICAgICAgICAgZmly
c3RQYXJ0VGVtcC5zcXVlZXplKCk7CiAgICAgICAgIGZpcnN0UGFydCA9IGZpcnN0UGFydFRlbXA7
CiAKQEAgLTM5MzIsMTQgKzM5MjcsNiBAQCBRU3RyaW5nIFFXZWJQYWdlOjp1c2VyQWdlbnRGb3JV
cmwoY29uc3QgCiAgICAgICAgIFFfQVNTRVJUKCF0aGlyZFBhcnQuaXNOdWxsKCkpOwogICAgIH0K
IAotICAgIC8vIExhbmd1YWdlCi0gICAgUVN0cmluZyBsYW5ndWFnZU5hbWU7Ci0gICAgaWYgKGQt
PmNsaWVudCAmJiBkLT5jbGllbnQtPm93bmVyV2lkZ2V0KCkpCi0gICAgICAgIGxhbmd1YWdlTmFt
ZSA9IGQtPmNsaWVudC0+b3duZXJXaWRnZXQoKS0+bG9jYWxlKCkubmFtZSgpOwotICAgIGVsc2UK
LSAgICAgICAgbGFuZ3VhZ2VOYW1lID0gUUxvY2FsZSgpLm5hbWUoKTsKLSAgICBsYW5ndWFnZU5h
bWUucmVwbGFjZShRTGF0aW4xQ2hhcignXycpLCBRTGF0aW4xQ2hhcignLScpKTsKLQogICAgIC8v
IEFwcGxpY2F0aW9uIG5hbWUvdmVyc2lvbgogICAgIFFTdHJpbmcgYXBwTmFtZSA9IFFDb3JlQXBw
bGljYXRpb246OmFwcGxpY2F0aW9uTmFtZSgpOwogICAgIGlmICghYXBwTmFtZS5pc0VtcHR5KCkp
IHsKQEAgLTM5NTEsNyArMzkzOCw3IEBAIFFTdHJpbmcgUVdlYlBhZ2U6OnVzZXJBZ2VudEZvclVy
bChjb25zdCAKICAgICAgICAgYXBwTmFtZSA9IFFTdHJpbmc6OmZyb21MYXRpbjEoIlF0LyIpICsg
UVN0cmluZzo6ZnJvbUxhdGluMShxVmVyc2lvbigpKTsKICAgICB9CiAKLSAgICByZXR1cm4gZmly
c3RQYXJ0ICsgbGFuZ3VhZ2VOYW1lICsgc2Vjb25kUGFydCArIGFwcE5hbWUgKyB0aGlyZFBhcnQ7
CisgICAgcmV0dXJuIGZpcnN0UGFydCArIHNlY29uZFBhcnQgKyBhcHBOYW1lICsgdGhpcmRQYXJ0
OwogfQogCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnBhZ2UvdHN0X3F3ZWJw
YWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJwYWdlL3Rz
dF9xd2VicGFnZS5jcHAJKHJldmlzaW9uIDc5MTI1KQorKysgU291cmNlL1dlYktpdC9xdC90ZXN0
cy9xd2VicGFnZS90c3RfcXdlYnBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSw2
IEBACiAjaW5jbHVkZSA8UURpcj4KICNpbmNsdWRlIDxRR3JhcGhpY3NXaWRnZXQ+CiAjaW5jbHVk
ZSA8UUxpbmVFZGl0PgotI2luY2x1ZGUgPFFMb2NhbGU+CiAjaW5jbHVkZSA8UU1haW5XaW5kb3c+
CiAjaW5jbHVkZSA8UU1lbnU+CiAjaW5jbHVkZSA8UVB1c2hCdXR0b24+CkBAIC0xMTksNyArMTE4
LDYgQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIGVycm9yUGFnZUV4dGVuc2lvbkluSUZyYW1l
cygpOwogICAgIHZvaWQgZXJyb3JQYWdlRXh0ZW5zaW9uSW5GcmFtZXNldCgpOwogICAgIHZvaWQg
dXNlckFnZW50QXBwbGljYXRpb25OYW1lKCk7Ci0gICAgdm9pZCB1c2VyQWdlbnRMb2NhbGVDaGFu
Z2UoKTsKIAogICAgIHZvaWQgdmlld01vZGVzKCk7CiAKQEAgLTI0MDYsMjAgKzI0MDQsNiBAQCB2
b2lkIHRzdF9RV2ViUGFnZTo6dXNlckFnZW50QXBwbGljYXRpb25OCiAgICAgUUNvcmVBcHBsaWNh
dGlvbjo6c2V0QXBwbGljYXRpb25OYW1lKG9sZEFwcGxpY2F0aW9uTmFtZSk7CiB9CiAKLXZvaWQg
dHN0X1FXZWJQYWdlOjp1c2VyQWdlbnRMb2NhbGVDaGFuZ2UoKQotewotICAgIEZyaWVuZGx5V2Vi
UGFnZSBwYWdlOwotICAgIG1fdmlldy0+c2V0UGFnZSgmcGFnZSk7Ci0KLSAgICBjb25zdCBRU3Ry
aW5nIG1hcmtlclN0cmluZyA9IFFTdHJpbmc6OmZyb21MYXRpbjEoIiBubi1OTykiKTsKLQotICAg
IGlmIChwYWdlLnVzZXJBZ2VudEZvclVybChRVXJsKCkpLmNvbnRhaW5zKG1hcmtlclN0cmluZykp
Ci0gICAgICAgIFFTS0lQKCJtYXJrZXIgc3RyaW5nIGFscmVhZHkgcHJlc2VudCIsIFNraXBTaW5n
bGUpOwotCi0gICAgbV92aWV3LT5zZXRMb2NhbGUoUUxvY2FsZShRU3RyaW5nOjpmcm9tTGF0aW4x
KCJubl9OTyIpKSk7Ci0gICAgUVZFUklGWShwYWdlLnVzZXJBZ2VudEZvclVybChRVXJsKCkpLmNv
bnRhaW5zKG1hcmtlclN0cmluZykpOwotfQotCiB2b2lkIHRzdF9RV2ViUGFnZTo6Y3Jhc2hUZXN0
c19MYXp5SW5pdGlhbGl6YXRpb25PZk1haW5GcmFtZSgpCiB7CiAgICAgewpJbmRleDogU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2luL0No
YW5nZUxvZwkocmV2aXNpb24gNzkxMjUpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0wMi0xOSAgTGFzemxvIEdvbWJv
cyAgPGxhc3psby4xLmdvbWJvc0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRHJvcCB0aGUgbGFuZ3VhZ2UgdGFnIHBhcnQgZnJvbSB0
aGUgVXNlciBBZ2VudCBzdHJpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTU0NTYwCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdl
YlZpZXc6OnN0YW5kYXJkVXNlckFnZW50V2l0aEFwcGxpY2F0aW9uTmFtZSk6CisKIDIwMTEtMDIt
MTkgIENoYXJsaWUgUmVpcyAgPGNyZWlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBNaWhhaSBQYXJwYXJpdGEuCkluZGV4OiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkocmV2aXNpb24g
NzkxMjUpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtOTgsNyArOTgsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSlNFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTG9nZ2lu
Zy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZS5oPgpAQCAtMTI0NSw4ICsxMjQ0LDggQEAgYm9vbCBXZWJWaWV3OjpjYW5IYW5k
bGVSZXF1ZXN0KGNvbnN0IFdlYgogU3RyaW5nIFdlYlZpZXc6OnN0YW5kYXJkVXNlckFnZW50V2l0
aEFwcGxpY2F0aW9uTmFtZShjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZSkKIHsKICAgICBp
ZiAoYXBwbGljYXRpb25OYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmco
Ik1vemlsbGEvNS4wIChXaW5kb3dzOyBVOyAiLCBvc1ZlcnNpb24oKSwgIjsgIiwgZGVmYXVsdExh
bmd1YWdlKCksICIpIEFwcGxlV2ViS2l0LyIsIHdlYktpdFZlcnNpb24oKSwgIiAoS0hUTUwsIGxp
a2UgR2Vja28pIik7Ci0gICAgcmV0dXJuIG1ha2VTdHJpbmcoIk1vemlsbGEvNS4wIChXaW5kb3dz
OyBVOyAiLCBvc1ZlcnNpb24oKSwgIjsgIiwgZGVmYXVsdExhbmd1YWdlKCksICIpIEFwcGxlV2Vi
S2l0LyIsIHdlYktpdFZlcnNpb24oKSwgIiAoS0hUTUwsIGxpa2UgR2Vja28pICIsIGFwcGxpY2F0
aW9uTmFtZSk7CisgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKCJNb3ppbGxhLzUuMCAoV2luZG93
czsgVTsgIiwgb3NWZXJzaW9uKCksICIpIEFwcGxlV2ViS2l0LyIsIHdlYktpdFZlcnNpb24oKSwg
IiAoS0hUTUwsIGxpa2UgR2Vja28pIik7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcoIk1vemlsbGEv
NS4wIChXaW5kb3dzOyBVOyAiLCBvc1ZlcnNpb24oKSwgIikgQXBwbGVXZWJLaXQvIiwgd2ViS2l0
VmVyc2lvbigpLCAiIChLSFRNTCwgbGlrZSBHZWNrbykgIiwgYXBwbGljYXRpb25OYW1lKTsKIH0K
IAogUGFnZSogV2ViVmlldzo6cGFnZSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwkocmV2aXNpb24gNzkx
MjUpCisrKyBTb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEzIEBACisyMDExLTAyLTE5ICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5v
a2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBEcm9wIHRoZSBsYW5ndWFnZSB0YWcgcGFydCBmcm9tIHRoZSBVc2VyIEFnZW50IHN0cmluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ1NjAKKwor
ICAgICAgICAqIFdlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudFd4Ojp1c2VyQWdlbnQpOgorCiAyMDExLTAyLTE5
ICBDaGFybGllIFJlaXMgIDxjcmVpc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgTWloYWkgUGFycGFyaXRhLgpJbmRleDogU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50V3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd3gv
V2ViS2l0U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFd4LmNwcAkocmV2aXNpb24gNzkxMjUpCisr
KyBTb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXeC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUzMyw3ICs1MzMsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
V3g6OnNldFRpdGxlKGNvbnN0CiBTdHJpbmcgRnJhbWVMb2FkZXJDbGllbnRXeDo6dXNlckFnZW50
KGNvbnN0IEtVUkwmKQogewogICAgIC8vIEZJWE1FOiBVc2UgdGhlIG5ldyBBUElzIGludHJvZHVj
ZWQgYnkgdGhlIEdUSyBwb3J0IHRvIGZpbGwgaW4gdGhlc2UgdmFsdWVzLgotICAgIHJldHVybiBT
dHJpbmcoIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7IEludGVsIE1hYyBPUyBYOyBlbikgQXBw
bGVXZWJLaXQvNDE4LjkuMSAoS0hUTUwsIGxpa2UgR2Vja28pIFNhZmFyaS80MTkuMyIpOworICAg
IHJldHVybiBTdHJpbmcoIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IFU7IEludGVsIE1hYyBPUyBY
KSBBcHBsZVdlYktpdC80MTguOS4xIChLSFRNTCwgbGlrZSBHZWNrbykgU2FmYXJpLzQxOS4zIik7
CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRXeDo6ZGlzcGF0Y2hEaWRSZWNlaXZlSWNvbigp
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA3OTEyNSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDExLTAyLTE5ICBMYXN6bG8gR29tYm9zICA8
bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBEcm9wIHRoZSBsYW5ndWFnZSB0YWcgcGFydCBmcm9tIHRoZSBV
c2VyIEFnZW50IHN0cmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTQ1NjAKKworICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi91c2VyYWdl
bnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24v
dXNlcmFnZW50LnBocDogQWRkZWQuCisKIDIwMTEtMDItMTkgIEFsZWphbmRybyBHLiBDYXN0cm8g
IDxhbGV4QGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4ZWQgdHlwbyBpbiB0
aGUgR1RLKyBza2lwcGVkIGZpbGUuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmln
YXRpb24vdXNlcmFnZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25hdmlnYXRpb24vdXNlcmFnZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi91c2VyYWdlbnQtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcgQEAKK1Rlc3RzIGZvciB1c2VyIGFnZW50IHN0
cmluZyB0ZW1wbGF0ZQorCitVc2VyQWdlbnQgc2hvdWxkIG1hdGNoIHRoZSBNb3ppbGxhLzUuMCAo
JVBsYXRmb3JtJTsgVTsgJVN1YnBsYXRmb3JtJSkgQXBwbGVXZWJLaXQvJVdlYktpdFZlcnNpb24l
IChLSFRNTCwgbGlrZSBHZWNrbykgdGVtcGxhdGU6IHRydWUKK1VzZXJBZ2VudCBzaG91bGQgYmUg
dGhlIHNhbWUgYXMgdGhlIGFwcFZlcnNpb24gd2l0aCBhcHBDb2RlTmFtZSBwcmVmaXg6IHRydWUK
K0hUVFAgVXNlci1BZ2VudCBoZWFkZXIgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHVzZXJBZ2VudDog
dHJ1ZQorTGFuZ3VhZ2UgdGFnIHNob3VsZCBub3QgYmUgcHJlc2VudCBpbiB0aGUgdXNlckFnZW50
OiB0cnVlCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi91c2VyYWdl
bnQucGhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi91
c2VyYWdlbnQucGhwCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3VzZXJhZ2VudC5waHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzEgQEAKKzxodG1s
PgorPGJvZHk+CisKKzxwPlRlc3RzIGZvciB1c2VyIGFnZW50IHN0cmluZyB0ZW1wbGF0ZTwvcD4K
KworPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICB9CisKKyAgICB2YXIg
dXNlckFnZW50ID0gbmF2aWdhdG9yLnVzZXJBZ2VudDsKKworICAgIC8vIFZhbGlkYXRlIHRoZSB1
c2VyIGFnZW50IHN0cmluZyB1c2luZyB0aGUgZm9sbG93aW5nIHRlbXBsYXRlOgorICAgIHZhciB1
c2VyQWdlbnRUZW1wbGF0ZSA9ICJNb3ppbGxhLzUuMCAoJVBsYXRmb3JtJTsgVTsgJVN1YnBsYXRm
b3JtJSkgQXBwbGVXZWJLaXQvJVdlYktpdFZlcnNpb24lIChLSFRNTCwgbGlrZSBHZWNrbykiCisg
ICAgdmFyIHVzZXJBZ2VudFRlbXBsYXRlUmVnRXhwID0gL15Nb3ppbGxhXC81XC4wIFwoLis7IFU7
IFteO10rXCkgQXBwbGVXZWJLaXRcL1swLTlcLl0rKFwrKT8gXChLSFRNTCwgbGlrZSBHZWNrb1wp
LiokLzsKKyAgICBkb2N1bWVudC53cml0ZSgiVXNlckFnZW50IHNob3VsZCBtYXRjaCB0aGUgIiAr
IHVzZXJBZ2VudFRlbXBsYXRlICsgIiB0ZW1wbGF0ZTogIiArICEhdXNlckFnZW50Lm1hdGNoKHVz
ZXJBZ2VudFRlbXBsYXRlUmVnRXhwKSArICI8YnI+Iik7CisKKyAgICAvLyBWYWxpZGF0ZSBuYXZp
Z2F0b3IuYXBwVmVyc2lvbiBhbmQgbmF2aWdhdG9yLmFwcENvZGVOYW1lCisgICAgZG9jdW1lbnQu
d3JpdGUoIlVzZXJBZ2VudCBzaG91bGQgYmUgdGhlIHNhbWUgYXMgdGhlIGFwcFZlcnNpb24gd2l0
aCBhcHBDb2RlTmFtZSBwcmVmaXg6ICIgKyAodXNlckFnZW50ID09IG5hdmlnYXRvci5hcHBDb2Rl
TmFtZSArICIvIiArIG5hdmlnYXRvci5hcHBWZXJzaW9uKSArICI8YnI+Iik7CisKKyAgICAvLyBW
YWxpZGF0ZSBIVFRQIFVzZXItQWdlbnQgaGVhZGVyCisgICAgdmFyIHVzZXJBZ2VudEhlYWRlciA9
ICc8P3BocCBlY2hvICRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXTsgPz4nOworICAgIGRvY3Vt
ZW50LndyaXRlKCJIVFRQIFVzZXItQWdlbnQgaGVhZGVyIHNob3VsZCBiZSB0aGUgc2FtZSBhcyB1
c2VyQWdlbnQ6ICIgKyAodXNlckFnZW50SGVhZGVyID09IHVzZXJBZ2VudCkgKyAiPGJyPiIpOwor
CisgICAgLy8gTWFrZSBzdXJlIGxhbmd1YWdlIHRhZyBpcyBub3QgcHJlc2VudAorICAgIHZhciBs
YW5ndWFnZVRhZ1JlZ0V4cCA9IG5ldyBSZWdFeHAoIlsgO1woXSIgKyBuYXZpZ2F0b3IubGFuZ3Vh
Z2UgKyAiWyA7XCldIik7CisgICAgZG9jdW1lbnQud3JpdGUoIkxhbmd1YWdlIHRhZyBzaG91bGQg
bm90IGJlIHByZXNlbnQgaW4gdGhlIHVzZXJBZ2VudDogIiArICF1c2VyQWdlbnQubWF0Y2gobGFu
Z3VhZ2VUYWdSZWdFeHApICsgIjxicj4iKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>