<?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>71599</bug_id>
          
          <creation_ts>2011-11-04 17:16:09 -0700</creation_ts>
          <short_desc>JavaScript URLs execute in sandboxed iframes</short_desc>
          <delta_ts>2011-11-05 00:01:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
    
    <cc>japhet</cc>
    
    <cc>sam</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>496573</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-04 17:16:09 -0700</bug_when>
    <thetext>JavaScript URLs execute in sandboxed iframes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496575</commentid>
    <comment_count>1</comment_count>
      <attachid>113737</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-04 17:18:14 -0700</bug_when>
    <thetext>Created attachment 113737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496577</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-04 17:21:19 -0700</bug_when>
    <thetext>This patch fixes an intentional regression from earlier today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496579</commentid>
    <comment_count>3</comment_count>
      <attachid>113737</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-11-04 17:25:58 -0700</bug_when>
    <thetext>Comment on attachment 113737
Patch

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

&gt; Source/WebCore/dom/ScriptExecutionContext.h:190
&gt; +    SandboxFlags m_sandboxFlags;
&gt;      RefPtr&lt;SecurityOrigin&gt; m_securityOrigin;
&gt;      RefPtr&lt;ContentSecurityPolicy&gt; m_contentSecurityPolicy;

You might want to add a fixme about your intended eventual design here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496585</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-04 17:30:46 -0700</bug_when>
    <thetext>&gt; You might want to add a fixme about your intended eventual design here.

For those following along by email, I suggested to Eric that we should factor a SecurityContext base class out of ScriptExecutionContext.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496586</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-04 17:33:02 -0700</bug_when>
    <thetext>Hum...  Looks like I broke some things.  One moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496595</commentid>
    <comment_count>6</comment_count>
      <attachid>113741</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-04 17:51:43 -0700</bug_when>
    <thetext>Created attachment 113741
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496603</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-04 18:32:12 -0700</bug_when>
    <thetext>Committed r99347: &lt;http://trac.webkit.org/changeset/99347&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496634</commentid>
    <comment_count>8</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-11-04 22:46:50 -0700</bug_when>
    <thetext>This appears to have caused an assert to be hit in fast/encoding/hebrew/8859-8-e.html.  The stack is:

ASSERTION FAILED: m_frame-&gt;document()-&gt;securityOrigin()-&gt;isUnique()
/b/build/slave/webkit-mac-latest-dbg/build/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../bindings/ScriptControllerBase.cpp(44) : bool WebCore::ScriptController::canExecuteScripts(WebCore::ReasonForCallingCanExecuteScripts)
1   0x2832d671 WebCore::ScriptController::canExecuteScripts(WebCore::ReasonForCallingCanExecuteScripts)
2   0x283ba06c WebCore::V8Proxy::retrieve(WebCore::Frame*)
3   0x283bcb6b WebCore::V8Proxy::mainWorldContext(WebCore::Frame*)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496635</commentid>
    <comment_count>9</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-11-04 22:47:43 -0700</bug_when>
    <thetext>Oh, the same assert for fast/css/getComputedStyle/computed-style-border-image.html .

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#showExpectations=true&amp;tests=fast%2Fcss%2FgetComputedStyle%2Fcomputed-style-border-image.html%2Cfast%2Fencoding%2Fhebrew%2F8859-8-e.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496637</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-04 22:55:06 -0700</bug_when>
    <thetext>Thanks.  That&apos;s very strange.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496638</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-04 22:56:05 -0700</bug_when>
    <thetext>I&apos;ll try to reproduce locally with the Chromium port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496641</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-04 23:34:59 -0700</bug_when>
    <thetext>Those stack traces are really odd:

ASSERTION FAILED: m_frame-&gt;document()-&gt;securityOrigin()-&gt;isUnique()
/b/build/slave/webkit-mac-latest-dbg/build/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../bindings/ScriptControllerBase.cpp(44) : bool WebCore::ScriptController::canExecuteScripts(WebCore::ReasonForCallingCanExecuteScripts)
1   0x17600671 WebCore::ScriptController::canExecuteScripts(WebCore::ReasonForCallingCanExecuteScripts)
2   0x1768d06c WebCore::V8Proxy::retrieve(WebCore::Frame*)
3   0x1768fb6b WebCore::V8Proxy::mainWorldContext(WebCore::Frame*)
4   0x15649097 WebKit::WebFrameImpl::mainWorldScriptContext() const
5   0x1558498f WebKit::WebTestingSupport::resetInternalsObject(WebKit::WebFrame*)
6   0x155524cf TestShell::resetTestController()
7   0x1550e5b1 runTest(TestShell&amp;, TestParams&amp;, std::string const&amp;, bool)
8   0x1550de8f main
9   0x154edaf6 start
[43320:2307:463329065975150:ERROR:process_util_posix.cc(134)] Received signal 11
	0   DumpRenderTree                      0x154aa0cf base::debug::StackTrace::StackTrace() + 63
	1   DumpRenderTree                      0x154aa06b base::debug::StackTrace::StackTrace() + 43
	2   DumpRenderTree                      0x15b17ee7 base::(anonymous namespace)::StackDumpSignalHandler(int, __siginfo*, __darwin_ucontext*) + 295
	3   libSystem.B.dylib                   0x963b305b _sigtramp + 43
	4   ???                                 0xffffffff 0x0 + 4294967295
	5   DumpRenderTree                      0x1768d06c WebCore::V8Proxy::retrieve(WebCore::Frame*) + 92
	6   DumpRenderTree                      0x1768fb6b WebCore::V8Proxy::mainWorldContext(WebCore::Frame*) + 43
	7   DumpRenderTree                      0x15649097 WebKit::WebFrameImpl::mainWorldScriptContext() const + 87
	8   DumpRenderTree                      0x1558498f WebKit::WebTestingSupport::resetInternalsObject(WebKit::WebFrame*) + 63
	9   DumpRenderTree                      0x155524cf TestShell::resetTestController() + 559
	10  DumpRenderTree                      0x1550e5b1 runTest(TestShell&amp;, TestParams&amp;, std::string const&amp;, bool) + 1377
	11  DumpRenderTree                      0x1550de8f main + 3439
	12  DumpRenderTree                      0x154edaf6 start + 54
ax: bbadbeef, bx: ebdff9c3, cx: ebdff9c3, dx: ebdff9c3
di: 18f45006, si: 18f44fa8, bp: bfffe768, sp: bfffe710, ss: 23, flags: 10286
ip: 17600676, cs: 1b, ds: 23, es: 23, fs: 0, gs: f
None

The odd thing is that they&apos;re below:

5   0x1558498f WebKit::WebTestingSupport::resetInternalsObject(WebKit::WebFrame*)
6   0x155524cf TestShell::resetTestController()

which is testing-only machinery, and it doesn&apos;t make sense that those tests would even execute that line of code because it only execute in view-source mode, which these tests aren&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496642</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-04 23:37:03 -0700</bug_when>
    <thetext>In both cases, the tests are the first test alphabetically in their folder, which probably means they&apos;re at the start of a test block.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496643</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-04 23:41:34 -0700</bug_when>
    <thetext>The preceding tests are (at least on Linux) are

fast/encoding/dumpAsText/utf-16-no-bom.xml
fast/css/dumpAsText/xml-stylesheet-pi-not-in-prolog.xml

which is interesting because they both have &quot;dumpAsText&quot; in their path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496644</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-04 23:43:18 -0700</bug_when>
    <thetext>I can&apos;t reproduce by running the individual tests (or their folder), but I can reproduce using this command line:

./Tools/Scripts/new-run-webkit-tests --chromium fast/encoding/dumpAsText fast/encoding/hebrew --child-processes=1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496645</commentid>
    <comment_count>16</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-04 23:45:15 -0700</bug_when>
    <thetext>From chromium/TestShell.cpp:

    if (testUrl.find(&quot;/dumpAsText/&quot;) != string::npos
        || testUrl.find(&quot;\\dumpAsText\\&quot;) != string::npos) {
        m_layoutTestController-&gt;setShouldDumpAsText(true);
        m_layoutTestController-&gt;setShouldGeneratePixelResults(false);
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496646</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-04 23:55:58 -0700</bug_when>
    <thetext>I have a fix locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496648</commentid>
    <comment_count>18</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-05 00:01:39 -0700</bug_when>
    <thetext>Should be fixenated after http://trac.webkit.org/changeset/99351</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113737</attachid>
            <date>2011-11-04 17:18:14 -0700</date>
            <delta_ts>2011-11-04 17:51:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71599-20111104171812.patch</filename>
            <type>text/plain</type>
            <size>18194</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5MzM0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMTEtMDQgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBKYXZhU2NyaXB0IFVSTHMgZXhlY3V0
ZSBpbiBzYW5kYm94ZWQgaWZyYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzE1OTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBpbnRlbnRpb25hbCByZWdyZXNzaW9u
IEkgaW50cm9kdWNlZCBlYXJsaWVyIHRvZGF5CisgICAgICAgIGJ5IG1vdmluZyB0aGUgc2FuZGJv
eCBiaXRzIGZyb20gU2VjdXJpdHlPcmlnaW4gdG8gRG9jdW1lbnQuIEluIHRoZQorICAgICAgICBw
cm9jZXNzLCBJIHJlbmFtZWQgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUVtcHR5IHRvCisgICAgICAg
IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVVbmlxdWUgdG8gYmV0dGVyIGFsaWduIHdpdGggSFRNTDUg
dGVybWlub2xvZ3kuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBiaW5k
aW5ncy9TY3JpcHRDb250cm9sbGVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRD
b250cm9sbGVyOjpjYW5FeGVjdXRlU2NyaXB0cyk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRJc1ZpZXdTb3VyY2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmluaXRTZWN1cml0eUNvbnRleHQpOgorICAgICAgICAqIGRv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgorICAgICAgICAqIGRvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpzYW5kYm94RmxhZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6ZW5mb3JjZVNhbmRib3hGbGFncyk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Ojppc1NhbmRib3hlZCk6CisgICAgICAgICogaHRtbC9IVE1MQXBw
bGV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQXBwbGV0RWxlbWVudDo6Y2Fu
RW1iZWRKYXZhKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnRXcml0ZXI6OmJlZ2luKToKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNEb2N1bWVudFNhbmRib3hlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKToKKyAg
ICAgICAgKiBsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb2xp
Y3lDaGVja2VyOjpjaGVja05ld1dpbmRvd1BvbGljeSk6CisgICAgICAgICogbG9hZGVyL1N1YmZy
YW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0
UGx1Z2luKToKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpTZWN1cml0eU9yaWdpbik6CisgICAgICAgIChXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luOjpjcmVhdGVVbmlxdWUpOgorICAgICAgICAqIHBhZ2UvU2VjdXJpdHlPcmlnaW4uaDoKKwog
MjAxMS0xMS0wNCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbTWFjXSBSZXNvdXJjZVJlcXVlc3QncyBuc1VSTFJlcXVlc3QoKSBkb2VzIG5vdCBkaWZm
ZXJlbnRpYXRlIG51bGwgYW5kIGVtcHR5IFVSTHMgd2l0aCBDRk5ldHdvcmsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCShyZXZpc2lvbiA5OTMxMCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC0zOTAsNyArMzkwLDcgQEAgX19aTjdXZWJDb3JlMTRT
ZWN1cml0eU9yaWdpbjI5YWRkT3JpZ2luQQogX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjMy
cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlFUktTMF9SS04zV1RGNlN0cmluZ0VTNl9i
CiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luNDBzZXREb21haW5SZWxheGF0aW9uRm9yYmlk
ZGVuRm9yVVJMU2NoZW1lRWJSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlP
cmlnaW42Y3JlYXRlRVJLTjNXVEY2U3RyaW5nRVM0X2kKLV9fWk43V2ViQ29yZTE0U2VjdXJpdHlP
cmlnaW42Y3JlYXRlRVJLTlNfNEtVUkxFaQorX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjZj
cmVhdGVFUktOU180S1VSTEUKIF9fWk43V2ViQ29yZTE0U3RvcmFnZVRyYWNrZXI3b3JpZ2luc0VS
TjNXVEY2VmVjdG9ySU5TMV82UmVmUHRySU5TXzE0U2VjdXJpdHlPcmlnaW5FRUVMbTBFRUUKIF9f
Wk43V2ViQ29yZTE0U3RvcmFnZVRyYWNrZXI3dHJhY2tlckV2CiBfX1pON1dlYkNvcmUxNFN0b3Jh
Z2VUcmFja2VyOXNldENsaWVudEVQTlNfMjBTdG9yYWdlVHJhY2tlckNsaWVudEUKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFzZS5jcHAJKHJl
dmlzaW9uIDk5MzMwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvU2NyaXB0Q29udHJvbGxl
ckJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogYm9vbCBTY3JpcHRDb250cm9sbGVyOjpjYW5FeGVjdXRlU2NyaXB0cyhSZWFzb25G
b3JDYWxsaW5nQ2FuRXhlY3V0ZVNjcmlwdHMgcmVhc29uKQogewotICAgIGlmIChtX2ZyYW1lLT5k
b2N1bWVudCgpICYmIG1fZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmlzU2Fu
ZGJveGVkKFNhbmRib3hTY3JpcHRzKSkKKyAgICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKSAmJiBt
X2ZyYW1lLT5kb2N1bWVudCgpLT5pc1NhbmRib3hlZChTYW5kYm94U2NyaXB0cykpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpICYmIG1fZnJhbWUt
PmRvY3VtZW50KCktPmlzVmlld1NvdXJjZSgpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAJKHJldmlzaW9uIDk5MzEwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTcyNCw3ICsxNzI0LDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0SXNW
aWV3U291cmNlKGJvb2wgaXNWaQogICAgIGlmICghbV9pc1ZpZXdTb3VyY2UpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnNldFNlY3VyaXR5T3JpZ2luKFNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKCksIFNhbmRib3hPcmlnaW4pKTsKKyAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpzZXRTZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
VW5pcXVlKCkpOwogfQogCiB2b2lkIERvY3VtZW50OjpjcmVhdGVTdHlsZVNlbGVjdG9yKCkKQEAg
LTQzOTQsNyArNDM5NCw3IEBAIHZvaWQgRG9jdW1lbnQ6OmluaXRTZWN1cml0eUNvbnRleHQoKQog
ICAgICAgICAvLyBObyBzb3VyY2UgZm9yIGEgc2VjdXJpdHkgY29udGV4dC4KICAgICAgICAgLy8g
VGhpcyBjYW4gb2NjdXIgdmlhIGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50
KCkuCiAgICAgICAgIG1fY29va2llVVJMID0gS1VSTChQYXJzZWRVUkxTdHJpbmcsICIiKTsKLSAg
ICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6c2V0U2VjdXJpdHlPcmlnaW4oU2VjdXJpdHlP
cmlnaW46OmNyZWF0ZUVtcHR5KCkpOworICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpz
ZXRTZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlVW5pcXVlKCkpOwogICAgICAg
ICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzZXRDb250ZW50U2VjdXJpdHlQb2xpY3koQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpjcmVhdGUodGhpcykpOwogICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtNDQwMiw3ICs0NDAyLDggQEAgdm9pZCBEb2N1bWVudDo6aW5pdFNlY3VyaXR5Q29udGV4dCgp
CiAgICAgLy8gSW4gdGhlIGNvbW1vbiBjYXNlLCBjcmVhdGUgdGhlIHNlY3VyaXR5IGNvbnRleHQg
ZnJvbSB0aGUgY3VycmVudGx5CiAgICAgLy8gbG9hZGluZyBVUkwgd2l0aCBhIGZyZXNoIGNvbnRl
bnQgc2VjdXJpdHkgcG9saWN5LgogICAgIG1fY29va2llVVJMID0gbV91cmw7Ci0gICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDo6c2V0U2VjdXJpdHlPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0
ZShtX3VybCwgbV9mcmFtZS0+bG9hZGVyKCktPnNhbmRib3hGbGFncygpKSk7CisgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDo6ZW5mb3JjZVNhbmRib3hGbGFncyhtX2ZyYW1lLT5sb2FkZXIoKS0+
c2FuZGJveEZsYWdzKCkpOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnNldFNlY3VyaXR5
T3JpZ2luKGlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4pID8gU2VjdXJpdHlPcmlnaW46OmNyZWF0
ZVVuaXF1ZSgpIDogU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3VybCkpOwogICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OnNldENvbnRlbnRTZWN1cml0eVBvbGljeShDb250ZW50U2VjdXJpdHlQ
b2xpY3k6OmNyZWF0ZSh0aGlzKSk7CiAKICAgICBpZiAoU2VjdXJpdHlPcmlnaW46OmFsbG93U3Vi
c3RpdHV0ZURhdGFBY2Nlc3NUb0xvY2FsKCkpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAJKHJldmlzaW9uIDk5MzEwKQorKysgU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04NCw3ICs4NCw4IEBAIHB1YmxpYzoKIH07CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKQotICAgIDogbV9pdGVyYXRpbmdBY3RpdmVET01PYmplY3Rz
KGZhbHNlKQorICAgIDogbV9zYW5kYm94RmxhZ3MoU2FuZGJveE5vbmUpCisgICAgLCBtX2l0ZXJh
dGluZ0FjdGl2ZURPTU9iamVjdHMoZmFsc2UpCiAgICAgLCBtX2luRGVzdHJ1Y3RvcihmYWxzZSkK
ICAgICAsIG1faW5EaXNwYXRjaEVycm9yRXZlbnQoZmFsc2UpCiAjaWYgRU5BQkxFKFNRTF9EQVRB
QkFTRSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aAkocmV2aXNpb24gOTkzMTApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJB
Y3RpdmVET01PYmplY3QuaCIKICNpbmNsdWRlICJDb25zb2xlVHlwZXMuaCIKKyNpbmNsdWRlICJG
cmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTk0LDggKzk1LDEyIEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZUV2YWwoKSA9IDA7CiAKICAgICBTZWN1cml0eU9y
aWdpbiogc2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX3NlY3VyaXR5T3JpZ2luLmdl
dCgpOyB9CisgICAgU2FuZGJveEZsYWdzIHNhbmRib3hGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1f
c2FuZGJveEZsYWdzOyB9CiAgICAgQ29udGVudFNlY3VyaXR5UG9saWN5KiBjb250ZW50U2VjdXJp
dHlQb2xpY3koKSB7IHJldHVybiBtX2NvbnRlbnRTZWN1cml0eVBvbGljeS5nZXQoKTsgfQogCisg
ICAgdm9pZCBlbmZvcmNlU2FuZGJveEZsYWdzKFNhbmRib3hGbGFncyBtYXNrKSB7IG1fc2FuZGJv
eEZsYWdzIHw9IG1hc2s7IH0KKyAgICBib29sIGlzU2FuZGJveGVkKFNhbmRib3hGbGFncyBtYXNr
KSBjb25zdCB7IHJldHVybiBtX3NhbmRib3hGbGFncyAmIG1hc2s7IH0KKwogICAgIGJvb2wgc2Fu
aXRpemVTY3JpcHRFcnJvcihTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50JiBsaW5lTnVtYmVyLCBT
dHJpbmcmIHNvdXJjZVVSTCk7CiAgICAgdm9pZCByZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwg
UGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+KTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2Fn
ZShNZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBQ
YXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4pID0gMDsKQEAgLTE4MCw2ICsxODUsNyBAQCBwcml2
YXRlOgogCiAgICAgdm9pZCBjbG9zZU1lc3NhZ2VQb3J0cygpOwogCisgICAgU2FuZGJveEZsYWdz
IG1fc2FuZGJveEZsYWdzOwogICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9zZWN1cml0eU9y
aWdpbjsKICAgICBSZWZQdHI8Q29udGVudFNlY3VyaXR5UG9saWN5PiBtX2NvbnRlbnRTZWN1cml0
eVBvbGljeTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5j
cHAJKHJldmlzaW9uIDk5MzEwKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxl
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NCw3ICsxNjQsNyBAQCBSZW5kZXJXaWRnZXQq
IEhUTUxBcHBsZXRFbGVtZW50OjpyZW5kZXJXCiAKIGJvb2wgSFRNTEFwcGxldEVsZW1lbnQ6OmNh
bkVtYmVkSmF2YSgpIGNvbnN0CiB7Ci0gICAgaWYgKGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCktPmlzU2FuZGJveGVkKFNhbmRib3hQbHVnaW5zKSkKKyAgICBpZiAoZG9jdW1lbnQoKS0+aXNT
YW5kYm94ZWQoU2FuZGJveFBsdWdpbnMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBT
ZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudCgpLT5zZXR0aW5ncygpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCShyZXZpc2lvbiA5OTMzMCkKKysrIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTExOSw3ICsxMTksNyBAQCB2b2lkIERvY3VtZW50V3JpdGVyOjpiZWdpbihjb25zdCBLVVJMJiB1
CiAgICAgCiAgICAgLy8gSWYgdGhlIG5ldyBkb2N1bWVudCBpcyBmb3IgYSBQbHVnaW4gYnV0IHdl
J3JlIHN1cHBvc2VkIHRvIGJlIHNhbmRib3hlZCBmcm9tIFBsdWdpbnMsCiAgICAgLy8gdGhlbiBy
ZXBsYWNlIHRoZSBkb2N1bWVudCB3aXRoIG9uZSB3aG9zZSBwYXJzZXIgd2lsbCBpZ25vcmUgdGhl
IGluY29taW5nIGRhdGEgKGJ1ZyAzOTMyMykKLSAgICBpZiAoZG9jdW1lbnQtPmlzUGx1Z2luRG9j
dW1lbnQoKSAmJiBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+aXNTYW5kYm94ZWQoU2FuZGJv
eFBsdWdpbnMpKQorICAgIGlmIChkb2N1bWVudC0+aXNQbHVnaW5Eb2N1bWVudCgpICYmIGRvY3Vt
ZW50LT5pc1NhbmRib3hlZChTYW5kYm94UGx1Z2lucykpCiAgICAgICAgIGRvY3VtZW50ID0gU2lu
a0RvY3VtZW50OjpjcmVhdGUobV9mcmFtZSwgdXJsKTsKIAogICAgIC8vIEZJWE1FOiBEbyB3ZSBu
ZWVkIHRvIGNvbnN1bHQgdGhlIGNvbnRlbnQgc2VjdXJpdHkgcG9saWN5IGhlcmUgYWJvdXQgYmxv
Y2tlZCBwbHVnLWlucz8KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAko
cmV2aXNpb24gOTkzMzApCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsNyArMTYzLDcgQEAgYm9vbCBpc0JhY2tGb3J3YXJkTG9h
ZFR5cGUoRnJhbWVMb2FkVHlwZQogLy8KIHN0YXRpYyBib29sIGlzRG9jdW1lbnRTYW5kYm94ZWQo
RnJhbWUqIGZyYW1lLCBTYW5kYm94RmxhZ3MgbWFzaykKIHsKLSAgICByZXR1cm4gZnJhbWUtPmRv
Y3VtZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmlzU2FuZGJv
eGVkKG1hc2spOworICAgIHJldHVybiBmcmFtZS0+ZG9jdW1lbnQoKSAmJiBmcmFtZS0+ZG9jdW1l
bnQoKS0+aXNTYW5kYm94ZWQobWFzayk7CiB9CiAKIEZyYW1lTG9hZGVyOjpGcmFtZUxvYWRlcihG
cmFtZSogZnJhbWUsIEZyYW1lTG9hZGVyQ2xpZW50KiBjbGllbnQpCkBAIC0yNTQ2LDcgKzI1NDYs
NyBAQCB2b2lkIEZyYW1lTG9hZGVyOjphZGRIVFRQT3JpZ2luSWZOZWVkZWQoCiAgICAgaWYgKG9y
aWdpbi5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8gSWYgd2UgZG9uJ3Qga25vdyB3aGF0IG9yaWdp
biBoZWFkZXIgdG8gYXR0YWNoLCB3ZSBhdHRhY2ggdGhlIHZhbHVlCiAgICAgICAgIC8vIGZvciBh
biBlbXB0eSBvcmlnaW4uCi0gICAgICAgIHJlcXVlc3Quc2V0SFRUUE9yaWdpbihTZWN1cml0eU9y
aWdpbjo6Y3JlYXRlRW1wdHkoKS0+dG9TdHJpbmcoKSk7CisgICAgICAgIHJlcXVlc3Quc2V0SFRU
UE9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlVW5pcXVlKCktPnRvU3RyaW5nKCkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5
Q2hlY2tlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNo
ZWNrZXIuY3BwCShyZXZpc2lvbiA5OTMxMCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xp
Y3lDaGVja2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTMsNyArOTMsNyBAQCB2b2lkIFBvbGlj
eUNoZWNrZXI6OmNoZWNrTmF2aWdhdGlvblBvbGljCiB2b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNr
TmV3V2luZG93UG9saWN5KGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgTmV3V2luZG93
UG9saWN5RGVjaXNpb25GdW5jdGlvbiBmdW5jdGlvbiwKICAgICBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiBmb3JtU3RhdGUsIGNvbnN0IFN0cmlu
ZyYgZnJhbWVOYW1lLCB2b2lkKiBhcmd1bWVudCkKIHsKLSAgICBpZiAobV9mcmFtZS0+ZG9jdW1l
bnQoKSAmJiBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5pc1NhbmRib3hl
ZChTYW5kYm94UG9wdXBzKSkKKyAgICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKSAmJiBtX2ZyYW1l
LT5kb2N1bWVudCgpLT5pc1NhbmRib3hlZChTYW5kYm94UG9wdXBzKSkKICAgICAgICAgcmV0dXJu
IGNvbnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KFBvbGljeUlnbm9yZSk7CiAKICAgICBtX2Nh
bGxiYWNrLnNldChyZXF1ZXN0LCBmb3JtU3RhdGUsIGZyYW1lTmFtZSwgYWN0aW9uLCBmdW5jdGlv
biwgYXJndW1lbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIu
Y3BwCShyZXZpc2lvbiA5OTMxMCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxv
YWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMiw3ICsxMTIsNyBAQCBib29sIFN1YmZyYW1l
TG9hZGVyOjpyZXF1ZXN0UGx1Z2luKEhUTUxQCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpKSB7Ci0gICAgICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVu
dCgpLT5zZWN1cml0eU9yaWdpbigpLT5pc1NhbmRib3hlZChTYW5kYm94UGx1Z2lucykpCisgICAg
ICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpLT5pc1NhbmRib3hlZChTYW5kYm94UGx1Z2lucykp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmICghbV9mcmFtZS0+ZG9jdW1l
bnQoKS0+Y29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93T2JqZWN0RnJvbVNvdXJjZSh1cmwp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9T
ZWN1cml0eU9yaWdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbi5jcHAJKHJldmlzaW9uIDk5MzEwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9T
ZWN1cml0eU9yaWdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2LDEyICs2NiwxMSBAQCBzdGF0
aWMgYm9vbCBzY2hlbWVSZXF1aXJlc0F1dGhvcml0eShjb25zCiAgICAgcmV0dXJuIHNjaGVtZXMu
Y29udGFpbnMoc2NoZW1lKTsKIH0KIAotU2VjdXJpdHlPcmlnaW46OlNlY3VyaXR5T3JpZ2luKGNv
bnN0IEtVUkwmIHVybCwgU2FuZGJveEZsYWdzIHNhbmRib3hGbGFncykKLSAgICA6IG1fc2FuZGJv
eEZsYWdzKHNhbmRib3hGbGFncykKLSAgICAsIG1fcHJvdG9jb2wodXJsLnByb3RvY29sKCkuaXNO
dWxsKCkgPyAiIiA6IHVybC5wcm90b2NvbCgpLmxvd2VyKCkpCitTZWN1cml0eU9yaWdpbjo6U2Vj
dXJpdHlPcmlnaW4oY29uc3QgS1VSTCYgdXJsKQorICAgIDogbV9wcm90b2NvbCh1cmwucHJvdG9j
b2woKS5pc051bGwoKSA/ICIiIDogdXJsLnByb3RvY29sKCkubG93ZXIoKSkKICAgICAsIG1faG9z
dCh1cmwuaG9zdCgpLmlzTnVsbCgpID8gIiIgOiB1cmwuaG9zdCgpLmxvd2VyKCkpCiAgICAgLCBt
X3BvcnQodXJsLnBvcnQoKSkKLSAgICAsIG1faXNVbmlxdWUoaXNTYW5kYm94ZWQoU2FuZGJveE9y
aWdpbikgfHwgU2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0VVJMU2NoZW1lQXNOb0FjY2Vzcyht
X3Byb3RvY29sKSkKKyAgICAsIG1faXNVbmlxdWUoU2NoZW1lUmVnaXN0cnk6OnNob3VsZFRyZWF0
VVJMU2NoZW1lQXNOb0FjY2VzcyhtX3Byb3RvY29sKSkKICAgICAsIG1fdW5pdmVyc2FsQWNjZXNz
KGZhbHNlKQogICAgICwgbV9kb21haW5XYXNTZXRJbkRPTShmYWxzZSkKICAgICAsIG1fZW5mb3Jj
ZUZpbGVQYXRoU2VwYXJhdGlvbihmYWxzZSkKQEAgLTEzMSw4ICsxMzAsNyBAQCBTZWN1cml0eU9y
aWdpbjo6U2VjdXJpdHlPcmlnaW4oY29uc3QgS1VSCiB9CiAKIFNlY3VyaXR5T3JpZ2luOjpTZWN1
cml0eU9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiogb3RoZXIpCi0gICAgOiBtX3NhbmRib3hG
bGFncyhvdGhlci0+bV9zYW5kYm94RmxhZ3MpCi0gICAgLCBtX3Byb3RvY29sKG90aGVyLT5tX3By
b3RvY29sLmlzb2xhdGVkQ29weSgpKQorICAgIDogbV9wcm90b2NvbChvdGhlci0+bV9wcm90b2Nv
bC5pc29sYXRlZENvcHkoKSkKICAgICAsIG1faG9zdChvdGhlci0+bV9ob3N0Lmlzb2xhdGVkQ29w
eSgpKQogICAgICwgbV9lbmNvZGVkSG9zdChvdGhlci0+bV9lbmNvZGVkSG9zdC5pc29sYXRlZENv
cHkoKSkKICAgICAsIG1fZG9tYWluKG90aGVyLT5tX2RvbWFpbi5pc29sYXRlZENvcHkoKSkKQEAg
LTE1MiwxNiArMTUwLDE4IEBAIGJvb2wgU2VjdXJpdHlPcmlnaW46OmlzRW1wdHkoKSBjb25zdAog
ICAgIHJldHVybiBtX3Byb3RvY29sLmlzRW1wdHkoKTsKIH0KIAotUGFzc1JlZlB0cjxTZWN1cml0
eU9yaWdpbj4gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShjb25zdCBLVVJMJiB1cmwsIFNhbmRib3hG
bGFncyBzYW5kYm94RmxhZ3MpCitQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBTZWN1cml0eU9y
aWdpbjo6Y3JlYXRlKGNvbnN0IEtVUkwmIHVybCkKIHsKICAgICBpZiAoIXVybC5pc1ZhbGlkKCkp
Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VjdXJpdHlPcmlnaW4oS1VSTCgpLCBzYW5k
Ym94RmxhZ3MpKTsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlY3VyaXR5T3JpZ2luKHVybCwg
c2FuZGJveEZsYWdzKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VjdXJpdHlPcmln
aW4oYmxhbmtVUkwoKSkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VjdXJpdHlPcmlnaW4o
dXJsKSk7CiB9CiAKLVBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IFNlY3VyaXR5T3JpZ2luOjpj
cmVhdGVFbXB0eSgpCitQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlVW5pcXVlKCkKIHsKLSAgICByZXR1cm4gY3JlYXRlKEtVUkwoKSk7CisgICAgUmVmUHRy
PFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBjcmVhdGUoS1VSTCgpKTsKKyAgICBBU1NFUlQob3Jp
Z2luLT5pc1VuaXF1ZSgpKTsKKyAgICByZXR1cm4gb3JpZ2luLnJlbGVhc2UoKTsKIH0KIAogUGFz
c1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gU2VjdXJpdHlPcmlnaW46Omlzb2xhdGVkQ29weSgpCkBA
IC00NzgsNyArNDc4LDcgQEAgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gU2VjdXJpdHlPcmln
aQogUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShjb25z
dCBTdHJpbmcmIHByb3RvY29sLCBjb25zdCBTdHJpbmcmIGhvc3QsIGludCBwb3J0KQogewogICAg
IGlmIChwb3J0IDwgMCB8fCBwb3J0ID4gTWF4QWxsb3dlZFBvcnQpCi0gICAgICAgIGNyZWF0ZShL
VVJMKCkpOworICAgICAgICBjcmVhdGVVbmlxdWUoKTsKICAgICBTdHJpbmcgZGVjb2RlZEhvc3Qg
PSBkZWNvZGVVUkxFc2NhcGVTZXF1ZW5jZXMoaG9zdCk7CiAgICAgcmV0dXJuIGNyZWF0ZShLVVJM
KEtVUkwoKSwgcHJvdG9jb2wgKyAiOi8vIiArIGhvc3QgKyAiOiIgKyBTdHJpbmc6Om51bWJlcihw
b3J0KSkpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAkocmV2aXNp
b24gOTkzMTApCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQwLDExICs0MCwxMiBAQCBjbGFzcyBLVVJMOwogCiBjbGFzcyBTZWN1cml0
eU9yaWdpbiA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTZWN1cml0eU9yaWdpbj4gewog
cHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGUoY29u
c3QgS1VSTCYpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGVV
bmlxdWUoKTsKKwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGVG
cm9tRGF0YWJhc2VJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYpOwogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGVGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYpOwogICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBw
cm90b2NvbCwgY29uc3QgU3RyaW5nJiBob3N0LCBpbnQgcG9ydCk7Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZShjb25zdCBLVVJMJiwgU2FuZGJveEZsYWdzID0g
U2FuZGJveE5vbmUpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVh
dGVFbXB0eSgpOwogCiAgICAgLy8gQ3JlYXRlIGEgZGVlcCBjb3B5IG9mIHRoaXMgU2VjdXJpdHlP
cmlnaW4uIFRoaXMgbWV0aG9kIGlzIHVzZWZ1bAogICAgIC8vIHdoZW4gbWFyc2hhbGxpbmcgYSBT
ZWN1cml0eU9yaWdpbiB0byBhbm90aGVyIHRocmVhZC4KQEAgLTExNCw5ICsxMTUsNiBAQCBwdWJs
aWM6CiAgICAgLy8gV0FSTklORzogVGhpcyBpcyBhbiBleHRyZW1lbHkgcG93ZXJmdWwgYWJpbGl0
eS4gVXNlIHdpdGggY2F1dGlvbiEKICAgICB2b2lkIGdyYW50VW5pdmVyc2FsQWNjZXNzKCk7CiAK
LSAgICBib29sIGlzU2FuZGJveGVkKFNhbmRib3hGbGFncyBtYXNrKSBjb25zdCB7IHJldHVybiBt
X3NhbmRib3hGbGFncyAmIG1hc2s7IH0KLSAgICBTYW5kYm94RmxhZ3Mgc2FuZGJveEZsYWdzKCkg
Y29uc3QgeyByZXR1cm4gbV9zYW5kYm94RmxhZ3M7IH0KLQogICAgIGJvb2wgY2FuQWNjZXNzRGF0
YWJhc2UoKSBjb25zdCB7IHJldHVybiAhaXNVbmlxdWUoKTsgfQogICAgIGJvb2wgY2FuQWNjZXNz
TG9jYWxTdG9yYWdlKCkgY29uc3QgeyByZXR1cm4gIWlzVW5pcXVlKCk7IH0KICAgICBib29sIGNh
bkFjY2Vzc0Nvb2tpZXMoKSBjb25zdCB7IHJldHVybiAhaXNVbmlxdWUoKTsgfQpAQCAtMTk4LDcg
KzE5Niw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZXNldE9yaWdpbkFjY2Vzc1doaXRl
bGlzdHMoKTsKIAogcHJpdmF0ZToKLSAgICBTZWN1cml0eU9yaWdpbihjb25zdCBLVVJMJiwgU2Fu
ZGJveEZsYWdzKTsKKyAgICBleHBsaWNpdCBTZWN1cml0eU9yaWdpbihjb25zdCBLVVJMJik7CiAg
ICAgZXhwbGljaXQgU2VjdXJpdHlPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4qKTsKIAogICAg
IC8vIEZJWE1FOiBSZW5hbWUgdGhpcyBmdW5jdGlvbiB0byBzb21ldGhpbmcgbW9yZSBzZW1hbnRp
Yy4KQEAgLTIwNyw3ICsyMDUsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNBY2Nlc3NXaGl0ZUxp
c3RlZChjb25zdCBTZWN1cml0eU9yaWdpbiopIGNvbnN0OwogICAgIGJvb2wgaXNBY2Nlc3NUb1VS
TFdoaXRlTGlzdGVkKGNvbnN0IEtVUkwmKSBjb25zdDsKIAotICAgIFNhbmRib3hGbGFncyBtX3Nh
bmRib3hGbGFnczsKICAgICBTdHJpbmcgbV9wcm90b2NvbDsKICAgICBTdHJpbmcgbV9ob3N0Owog
ICAgIG11dGFibGUgU3RyaW5nIG1fZW5jb2RlZEhvc3Q7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA5OTMz
NCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1
IEBACisyMDExLTExLTA0ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgSmF2YVNjcmlwdCBVUkxzIGV4ZWN1dGUgaW4gc2FuZGJveGVkIGlmcmFtZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNTk5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHJlc3VsdHMgdG8g
c2hvdyBwcm9ncmVzc2lvbi4KKworICAgICAgICAqIGZhc3QvZnJhbWVzL3NhbmRib3hlZC1pZnJh
bWUtc2NyaXB0aW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9zYW5kYm94
ZWQtaWZyYW1lLXNjcmlwdGluZy5odG1sOgorCiAyMDExLTExLTA0ICBGYWR5IFNhbXVlbCAgPGZz
YW11ZWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENTUyBBc3BlY3QgUmF0aW8gUHJvcGVydHkg
UGFyc2luZyBTdGFnZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlm
cmFtZS1zY3JpcHRpbmctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZnJhbWVzL3NhbmRib3hlZC1pZnJhbWUtc2NyaXB0aW5nLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gOTkzMzApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLXNj
cmlwdGluZy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsNyArNCw3IEBAIFZlcmlm
eSB0aGF0IHNhbmRib3hlZCBmcmFtZXMgd2l0aCBzYW5kYm8KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KIAogCi1GQUlMIGRpc2FsbG93ZWRFeGVjdXRlZCBzaG91bGQgYmUgMC4gV2FzIDEuCitQ
QVNTIGRpc2FsbG93ZWRFeGVjdXRlZCBpcyAwCiBQQVNTIGFsbG93ZWRFeGVjdXRlZCBpcyAzCiBQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZnJhbWVzL3NhbmRib3hlZC1pZnJhbWUtc2NyaXB0aW5nLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1zY3JpcHRpbmcuaHRtbAkocmV2
aXNpb24gOTkzMzApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1l
LXNjcmlwdGluZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMCArMjYsNiBAQCB3aW5kb3cu
b25sb2FkID0gZnVuY3Rpb24oKQogICAgIDxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2FtZS1vcmln
aW4gYWxsb3ctc2NyaXB0cyIKICAgICAgICAgICAgIHNyYz0iZGF0YTp0ZXh0L2h0bWwsPHNjcmlw
dD4gYWxlcnQoJ1BBU1M6IEV4ZWN1dGVkIHNjcmlwdCBpbiBkYXRhIFVSTCcpOyA8L3NjcmlwdD4i
PgogICAgIDwvaWZyYW1lPgotICAgIDwhLS0gVGhpcyBjYXNlIGV4ZWN1dGUgc2NyaXB0IGV2ZW4g
dGhvdWdoIGl0IHNob3VsZG4ndC4gVGhlIHByb2JsZW0gaXMgdGhhdAotICAgICAgICAgdGhlIGlm
cmFtZSBzdGFydHMgb3V0IGFzIGFib3V0OmJsYW5rLCB3aGljaCBpbmhlcml0cyB0aGUgcGFyZW50
IGRvY3VtZW50cwotICAgICAgICAgU2VjdXJpdHlPcmlnaW4sIGFsb25nIHdpdGggaXRzIGZyb3pl
biBzYW5kYm94IGJpdHMuIFRvIGZpeCB0aGlzIGNhc2UsCi0gICAgICAgICB3ZSdsbCBuZWVkIHRv
IG1vdmUgdGhlIHNhbmRib3ggYml0cyBmcm9tIFNlY3VyaXR5T3JpZ2luIHRvIERvY3VtZW50LiAt
LSE+CiAgICAgPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1zYW1lLW9yaWdpbiIKICAgICAgICAgICAg
IHNyYz0iamF2YXNjcmlwdDogKyt3aW5kb3cudG9wLmRpc2FsbG93ZWRFeGVjdXRlZDsiPgogICAg
IDwvaWZyYW1lPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113741</attachid>
            <date>2011-11-04 17:51:43 -0700</date>
            <delta_ts>2011-11-04 17:51:43 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>bug-71599-20111104175141.patch</filename>
            <type>text/plain</type>
            <size>18471</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5MzM0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMTEtMDQgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBKYXZhU2NyaXB0IFVSTHMgZXhlY3V0
ZSBpbiBzYW5kYm94ZWQgaWZyYW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzE1OTkKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4K
KworICAgICAgICBUaGlzIHBhdGNoIGZpeGVzIHRoZSBpbnRlbnRpb25hbCByZWdyZXNzaW9uIEkg
aW50cm9kdWNlZCBlYXJsaWVyIHRvZGF5CisgICAgICAgIGJ5IG1vdmluZyB0aGUgc2FuZGJveCBi
aXRzIGZyb20gU2VjdXJpdHlPcmlnaW4gdG8gRG9jdW1lbnQuIEluIHRoZQorICAgICAgICBwcm9j
ZXNzLCBJIHJlbmFtZWQgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUVtcHR5IHRvCisgICAgICAgIFNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGVVbmlxdWUgdG8gYmV0dGVyIGFsaWduIHdpdGggSFRNTDUgdGVy
bWlub2xvZ3kuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBiaW5kaW5n
cy9TY3JpcHRDb250cm9sbGVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250
cm9sbGVyOjpjYW5FeGVjdXRlU2NyaXB0cyk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRJc1ZpZXdTb3VyY2UpOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmluaXRTZWN1cml0eUNvbnRleHQpOgorICAgICAgICAqIGRvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgorICAgICAgICAqIGRvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpzYW5kYm94RmxhZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dDo6ZW5mb3JjZVNhbmRib3hGbGFncyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0Ojppc1NhbmRib3hlZCk6CisgICAgICAgICogaHRtbC9IVE1MQXBwbGV0
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQXBwbGV0RWxlbWVudDo6Y2FuRW1i
ZWRKYXZhKToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnRXcml0ZXI6OmJlZ2luKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVM
b2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNEb2N1bWVudFNhbmRib3hlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKToKKyAgICAg
ICAgKiBsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lD
aGVja2VyOjpjaGVja05ld1dpbmRvd1BvbGljeSk6CisgICAgICAgICogbG9hZGVyL1N1YmZyYW1l
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0UGx1
Z2luKToKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luOjpTZWN1cml0eU9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
OjpjcmVhdGVVbmlxdWUpOgorICAgICAgICAqIHBhZ2UvU2VjdXJpdHlPcmlnaW4uaDoKKwogMjAx
MS0xMS0wNCAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTWFjXSBSZXNvdXJjZVJlcXVlc3QncyBuc1VSTFJlcXVlc3QoKSBkb2VzIG5vdCBkaWZmZXJl
bnRpYXRlIG51bGwgYW5kIGVtcHR5IFVSTHMgd2l0aCBDRk5ldHdvcmsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCShyZXZpc2lvbiA5OTMxMCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCSh3b3JraW5nIGNvcHkpCkBAIC0zOTAsNyArMzkwLDcgQEAgX19aTjdXZWJDb3JlMTRTZWN1
cml0eU9yaWdpbjI5YWRkT3JpZ2luQQogX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjMycmVt
b3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlFUktTMF9SS04zV1RGNlN0cmluZ0VTNl9iCiBf
X1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luNDBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVu
Rm9yVVJMU2NoZW1lRWJSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmln
aW42Y3JlYXRlRVJLTjNXVEY2U3RyaW5nRVM0X2kKLV9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmln
aW42Y3JlYXRlRVJLTlNfNEtVUkxFaQorX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjZjcmVh
dGVFUktOU180S1VSTEUKIF9fWk43V2ViQ29yZTE0U3RvcmFnZVRyYWNrZXI3b3JpZ2luc0VSTjNX
VEY2VmVjdG9ySU5TMV82UmVmUHRySU5TXzE0U2VjdXJpdHlPcmlnaW5FRUVMbTBFRUUKIF9fWk43
V2ViQ29yZTE0U3RvcmFnZVRyYWNrZXI3dHJhY2tlckV2CiBfX1pON1dlYkNvcmUxNFN0b3JhZ2VU
cmFja2VyOXNldENsaWVudEVQTlNfMjBTdG9yYWdlVHJhY2tlckNsaWVudEUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFzZS5jcHAJKHJldmlz
aW9uIDk5MzMwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvU2NyaXB0Q29udHJvbGxlckJh
c2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw3ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogYm9vbCBTY3JpcHRDb250cm9sbGVyOjpjYW5FeGVjdXRlU2NyaXB0cyhSZWFzb25Gb3JD
YWxsaW5nQ2FuRXhlY3V0ZVNjcmlwdHMgcmVhc29uKQogewotICAgIGlmIChtX2ZyYW1lLT5kb2N1
bWVudCgpICYmIG1fZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmlzU2FuZGJv
eGVkKFNhbmRib3hTY3JpcHRzKSkKKyAgICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKSAmJiBtX2Zy
YW1lLT5kb2N1bWVudCgpLT5pc1NhbmRib3hlZChTYW5kYm94U2NyaXB0cykpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpICYmIG1fZnJhbWUtPmRv
Y3VtZW50KCktPmlzVmlld1NvdXJjZSgpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJ
KHJldmlzaW9uIDk5MzEwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTcyNCw3ICsxNzI0LDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0SXNWaWV3
U291cmNlKGJvb2wgaXNWaQogICAgIGlmICghbV9pc1ZpZXdTb3VyY2UpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnNldFNlY3VyaXR5T3JpZ2luKFNlY3Vy
aXR5T3JpZ2luOjpjcmVhdGUodXJsKCksIFNhbmRib3hPcmlnaW4pKTsKKyAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpzZXRTZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlVW5p
cXVlKCkpOwogfQogCiB2b2lkIERvY3VtZW50OjpjcmVhdGVTdHlsZVNlbGVjdG9yKCkKQEAgLTQz
OTQsNyArNDM5NCw3IEBAIHZvaWQgRG9jdW1lbnQ6OmluaXRTZWN1cml0eUNvbnRleHQoKQogICAg
ICAgICAvLyBObyBzb3VyY2UgZm9yIGEgc2VjdXJpdHkgY29udGV4dC4KICAgICAgICAgLy8gVGhp
cyBjYW4gb2NjdXIgdmlhIGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCku
CiAgICAgICAgIG1fY29va2llVVJMID0gS1VSTChQYXJzZWRVUkxTdHJpbmcsICIiKTsKLSAgICAg
ICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6c2V0U2VjdXJpdHlPcmlnaW4oU2VjdXJpdHlPcmln
aW46OmNyZWF0ZUVtcHR5KCkpOworICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzZXRT
ZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlVW5pcXVlKCkpOwogICAgICAgICBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjpzZXRDb250ZW50U2VjdXJpdHlQb2xpY3koQ29udGVudFNl
Y3VyaXR5UG9saWN5OjpjcmVhdGUodGhpcykpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt
NDQwMiw3ICs0NDAyLDggQEAgdm9pZCBEb2N1bWVudDo6aW5pdFNlY3VyaXR5Q29udGV4dCgpCiAg
ICAgLy8gSW4gdGhlIGNvbW1vbiBjYXNlLCBjcmVhdGUgdGhlIHNlY3VyaXR5IGNvbnRleHQgZnJv
bSB0aGUgY3VycmVudGx5CiAgICAgLy8gbG9hZGluZyBVUkwgd2l0aCBhIGZyZXNoIGNvbnRlbnQg
c2VjdXJpdHkgcG9saWN5LgogICAgIG1fY29va2llVVJMID0gbV91cmw7Ci0gICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6c2V0U2VjdXJpdHlPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSht
X3VybCwgbV9mcmFtZS0+bG9hZGVyKCktPnNhbmRib3hGbGFncygpKSk7CisgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6ZW5mb3JjZVNhbmRib3hGbGFncyhtX2ZyYW1lLT5sb2FkZXIoKS0+c2Fu
ZGJveEZsYWdzKCkpOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnNldFNlY3VyaXR5T3Jp
Z2luKGlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4pID8gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZVVu
aXF1ZSgpIDogU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3VybCkpOwogICAgIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OnNldENvbnRlbnRTZWN1cml0eVBvbGljeShDb250ZW50U2VjdXJpdHlQb2xp
Y3k6OmNyZWF0ZSh0aGlzKSk7CiAKICAgICBpZiAoU2VjdXJpdHlPcmlnaW46OmFsbG93U3Vic3Rp
dHV0ZURhdGFBY2Nlc3NUb0xvY2FsKCkpIHsKQEAgLTQ0MzQsNyArNDQzNSw3IEBAIHZvaWQgRG9j
dW1lbnQ6OmluaXRTZWN1cml0eUNvbnRleHQoKQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYg
KCFzZWN1cml0eU9yaWdpbigpLT5pc0VtcHR5KCkpCisgICAgaWYgKGlzU2FuZGJveGVkKFNhbmRi
b3hPcmlnaW4pIHx8ICFzZWN1cml0eU9yaWdpbigpLT5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIC8vIElmIHdlIGRvIG5vdCBvYnRhaW4gYSBtZWFuaW5nZnVsIG9yaWdpbiBmcm9t
IHRoZSBVUkwsIHRoZW4gd2UgdHJ5IHRvCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCShyZXZpc2lvbiA5OTMxMCkKKysrIFNvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQs
NyArODQsOCBAQCBwdWJsaWM6CiB9OwogCiBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkKLSAgICA6IG1faXRlcmF0aW5nQWN0aXZlRE9NT2JqZWN0cyhmYWxz
ZSkKKyAgICA6IG1fc2FuZGJveEZsYWdzKFNhbmRib3hOb25lKQorICAgICwgbV9pdGVyYXRpbmdB
Y3RpdmVET01PYmplY3RzKGZhbHNlKQogICAgICwgbV9pbkRlc3RydWN0b3IoZmFsc2UpCiAgICAg
LCBtX2luRGlzcGF0Y2hFcnJvckV2ZW50KGZhbHNlKQogI2lmIEVOQUJMRShTUUxfREFUQUJBU0Up
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgJKHJl
dmlzaW9uIDk5MzEwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQWN0aXZl
RE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ29uc29sZVR5cGVzLmgiCisjaW5jbHVkZSAiRnJhbWVM
b2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC05NCw4ICs5NSwxMiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGRpc2FibGVFdmFsKCkgPSAwOwogCiAgICAgU2VjdXJpdHlPcmlnaW4q
IHNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9zZWN1cml0eU9yaWdpbi5nZXQoKTsg
fQorICAgIFNhbmRib3hGbGFncyBzYW5kYm94RmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX3NhbmRi
b3hGbGFnczsgfQogICAgIENvbnRlbnRTZWN1cml0eVBvbGljeSogY29udGVudFNlY3VyaXR5UG9s
aWN5KCkgeyByZXR1cm4gbV9jb250ZW50U2VjdXJpdHlQb2xpY3kuZ2V0KCk7IH0KIAorICAgIHZv
aWQgZW5mb3JjZVNhbmRib3hGbGFncyhTYW5kYm94RmxhZ3MgbWFzaykgeyBtX3NhbmRib3hGbGFn
cyB8PSBtYXNrOyB9CisgICAgYm9vbCBpc1NhbmRib3hlZChTYW5kYm94RmxhZ3MgbWFzaykgY29u
c3QgeyByZXR1cm4gbV9zYW5kYm94RmxhZ3MgJiBtYXNrOyB9CisKICAgICBib29sIHNhbml0aXpl
U2NyaXB0RXJyb3IoU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCYgbGluZU51bWJlciwgU3RyaW5n
JiBzb3VyY2VVUkwpOwogICAgIHZvaWQgcmVwb3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJy
b3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFBhc3NS
ZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPik7CiAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVz
c2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgUGFzc1Jl
ZlB0cjxTY3JpcHRDYWxsU3RhY2s+KSA9IDA7CkBAIC0xODAsNiArMTg1LDcgQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgY2xvc2VNZXNzYWdlUG9ydHMoKTsKIAorICAgIFNhbmRib3hGbGFncyBtX3Nh
bmRib3hGbGFnczsKICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fc2VjdXJpdHlPcmlnaW47
CiAgICAgUmVmUHRyPENvbnRlbnRTZWN1cml0eVBvbGljeT4gbV9jb250ZW50U2VjdXJpdHlQb2xp
Y3k7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCShy
ZXZpc2lvbiA5OTMxMCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjQsNyArMTY0LDcgQEAgUmVuZGVyV2lkZ2V0KiBIVE1M
QXBwbGV0RWxlbWVudDo6cmVuZGVyVwogCiBib29sIEhUTUxBcHBsZXRFbGVtZW50OjpjYW5FbWJl
ZEphdmEoKSBjb25zdAogewotICAgIGlmIChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5p
c1NhbmRib3hlZChTYW5kYm94UGx1Z2lucykpCisgICAgaWYgKGRvY3VtZW50KCktPmlzU2FuZGJv
eGVkKFNhbmRib3hQbHVnaW5zKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgU2V0dGlu
Z3MqIHNldHRpbmdzID0gZG9jdW1lbnQoKS0+c2V0dGluZ3MoKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudFdyaXRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50V3JpdGVyLmNwcAkocmV2aXNpb24gOTkzMzApCisrKyBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRXcml0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTks
NyArMTE5LDcgQEAgdm9pZCBEb2N1bWVudFdyaXRlcjo6YmVnaW4oY29uc3QgS1VSTCYgdQogICAg
IAogICAgIC8vIElmIHRoZSBuZXcgZG9jdW1lbnQgaXMgZm9yIGEgUGx1Z2luIGJ1dCB3ZSdyZSBz
dXBwb3NlZCB0byBiZSBzYW5kYm94ZWQgZnJvbSBQbHVnaW5zLAogICAgIC8vIHRoZW4gcmVwbGFj
ZSB0aGUgZG9jdW1lbnQgd2l0aCBvbmUgd2hvc2UgcGFyc2VyIHdpbGwgaWdub3JlIHRoZSBpbmNv
bWluZyBkYXRhIChidWcgMzkzMjMpCi0gICAgaWYgKGRvY3VtZW50LT5pc1BsdWdpbkRvY3VtZW50
KCkgJiYgZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCktPmlzU2FuZGJveGVkKFNhbmRib3hQbHVn
aW5zKSkKKyAgICBpZiAoZG9jdW1lbnQtPmlzUGx1Z2luRG9jdW1lbnQoKSAmJiBkb2N1bWVudC0+
aXNTYW5kYm94ZWQoU2FuZGJveFBsdWdpbnMpKQogICAgICAgICBkb2N1bWVudCA9IFNpbmtEb2N1
bWVudDo6Y3JlYXRlKG1fZnJhbWUsIHVybCk7CiAKICAgICAvLyBGSVhNRTogRG8gd2UgbmVlZCB0
byBjb25zdWx0IHRoZSBjb250ZW50IHNlY3VyaXR5IHBvbGljeSBoZXJlIGFib3V0IGJsb2NrZWQg
cGx1Zy1pbnM/CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlz
aW9uIDk5MzMwKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTYzLDcgKzE2Myw3IEBAIGJvb2wgaXNCYWNrRm9yd2FyZExvYWRUeXBl
KEZyYW1lTG9hZFR5cGUKIC8vCiBzdGF0aWMgYm9vbCBpc0RvY3VtZW50U2FuZGJveGVkKEZyYW1l
KiBmcmFtZSwgU2FuZGJveEZsYWdzIG1hc2spCiB7Ci0gICAgcmV0dXJuIGZyYW1lLT5kb2N1bWVu
dCgpICYmIGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5pc1NhbmRib3hlZCht
YXNrKTsKKyAgICByZXR1cm4gZnJhbWUtPmRvY3VtZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50KCkt
PmlzU2FuZGJveGVkKG1hc2spOwogfQogCiBGcmFtZUxvYWRlcjo6RnJhbWVMb2FkZXIoRnJhbWUq
IGZyYW1lLCBGcmFtZUxvYWRlckNsaWVudCogY2xpZW50KQpAQCAtMjU0Niw3ICsyNTQ2LDcgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6YWRkSFRUUE9yaWdpbklmTmVlZGVkKAogICAgIGlmIChvcmlnaW4u
aXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIElmIHdlIGRvbid0IGtub3cgd2hhdCBvcmlnaW4gaGVh
ZGVyIHRvIGF0dGFjaCwgd2UgYXR0YWNoIHRoZSB2YWx1ZQogICAgICAgICAvLyBmb3IgYW4gZW1w
dHkgb3JpZ2luLgotICAgICAgICByZXF1ZXN0LnNldEhUVFBPcmlnaW4oU2VjdXJpdHlPcmlnaW46
OmNyZWF0ZUVtcHR5KCktPnRvU3RyaW5nKCkpOworICAgICAgICByZXF1ZXN0LnNldEhUVFBPcmln
aW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZVVuaXF1ZSgpLT50b1N0cmluZygpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNr
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2Vy
LmNwcAkocmV2aXNpb24gOTkzMTApCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hl
Y2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBQb2xpY3lDaGVj
a2VyOjpjaGVja05hdmlnYXRpb25Qb2xpYwogdm9pZCBQb2xpY3lDaGVja2VyOjpjaGVja05ld1dp
bmRvd1BvbGljeShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIE5ld1dpbmRvd1BvbGlj
eURlY2lzaW9uRnVuY3Rpb24gZnVuY3Rpb24sCiAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZy
YW1lTmFtZSwgdm9pZCogYXJndW1lbnQpCiB7Ci0gICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCkg
JiYgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+aXNTYW5kYm94ZWQoU2Fu
ZGJveFBvcHVwcykpCisgICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCkgJiYgbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+aXNTYW5kYm94ZWQoU2FuZGJveFBvcHVwcykpCiAgICAgICAgIHJldHVybiBjb250
aW51ZUFmdGVyTmF2aWdhdGlvblBvbGljeShQb2xpY3lJZ25vcmUpOwogCiAgICAgbV9jYWxsYmFj
ay5zZXQocmVxdWVzdCwgZm9ybVN0YXRlLCBmcmFtZU5hbWUsIGFjdGlvbiwgZnVuY3Rpb24sIGFy
Z3VtZW50KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAko
cmV2aXNpb24gOTkzMTApCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsNyArMTEyLDcgQEAgYm9vbCBTdWJmcmFtZUxvYWRl
cjo6cmVxdWVzdFBsdWdpbihIVE1MUAogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAo
bV9mcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKS0+aXNTYW5kYm94ZWQoU2FuZGJveFBsdWdpbnMpKQorICAgICAgICBp
ZiAobV9mcmFtZS0+ZG9jdW1lbnQoKS0+aXNTYW5kYm94ZWQoU2FuZGJveFBsdWdpbnMpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAoIW1fZnJhbWUtPmRvY3VtZW50KCkt
PmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5hbGxvd09iamVjdEZyb21Tb3VyY2UodXJsKSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJp
dHlPcmlnaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlP
cmlnaW4uY3BwCShyZXZpc2lvbiA5OTMxMCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJp
dHlPcmlnaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NiwxMiArNjYsMTEgQEAgc3RhdGljIGJv
b2wgc2NoZW1lUmVxdWlyZXNBdXRob3JpdHkoY29ucwogICAgIHJldHVybiBzY2hlbWVzLmNvbnRh
aW5zKHNjaGVtZSk7CiB9CiAKLVNlY3VyaXR5T3JpZ2luOjpTZWN1cml0eU9yaWdpbihjb25zdCBL
VVJMJiB1cmwsIFNhbmRib3hGbGFncyBzYW5kYm94RmxhZ3MpCi0gICAgOiBtX3NhbmRib3hGbGFn
cyhzYW5kYm94RmxhZ3MpCi0gICAgLCBtX3Byb3RvY29sKHVybC5wcm90b2NvbCgpLmlzTnVsbCgp
ID8gIiIgOiB1cmwucHJvdG9jb2woKS5sb3dlcigpKQorU2VjdXJpdHlPcmlnaW46OlNlY3VyaXR5
T3JpZ2luKGNvbnN0IEtVUkwmIHVybCkKKyAgICA6IG1fcHJvdG9jb2wodXJsLnByb3RvY29sKCku
aXNOdWxsKCkgPyAiIiA6IHVybC5wcm90b2NvbCgpLmxvd2VyKCkpCiAgICAgLCBtX2hvc3QodXJs
Lmhvc3QoKS5pc051bGwoKSA/ICIiIDogdXJsLmhvc3QoKS5sb3dlcigpKQogICAgICwgbV9wb3J0
KHVybC5wb3J0KCkpCi0gICAgLCBtX2lzVW5pcXVlKGlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4p
IHx8IFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNjaGVtZUFzTm9BY2Nlc3MobV9wcm90
b2NvbCkpCisgICAgLCBtX2lzVW5pcXVlKFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRUcmVhdFVSTFNj
aGVtZUFzTm9BY2Nlc3MobV9wcm90b2NvbCkpCiAgICAgLCBtX3VuaXZlcnNhbEFjY2VzcyhmYWxz
ZSkKICAgICAsIG1fZG9tYWluV2FzU2V0SW5ET00oZmFsc2UpCiAgICAgLCBtX2VuZm9yY2VGaWxl
UGF0aFNlcGFyYXRpb24oZmFsc2UpCkBAIC0xMzEsOCArMTMwLDcgQEAgU2VjdXJpdHlPcmlnaW46
OlNlY3VyaXR5T3JpZ2luKGNvbnN0IEtVUgogfQogCiBTZWN1cml0eU9yaWdpbjo6U2VjdXJpdHlP
cmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4qIG90aGVyKQotICAgIDogbV9zYW5kYm94RmxhZ3Mo
b3RoZXItPm1fc2FuZGJveEZsYWdzKQotICAgICwgbV9wcm90b2NvbChvdGhlci0+bV9wcm90b2Nv
bC5pc29sYXRlZENvcHkoKSkKKyAgICA6IG1fcHJvdG9jb2wob3RoZXItPm1fcHJvdG9jb2wuaXNv
bGF0ZWRDb3B5KCkpCiAgICAgLCBtX2hvc3Qob3RoZXItPm1faG9zdC5pc29sYXRlZENvcHkoKSkK
ICAgICAsIG1fZW5jb2RlZEhvc3Qob3RoZXItPm1fZW5jb2RlZEhvc3QuaXNvbGF0ZWRDb3B5KCkp
CiAgICAgLCBtX2RvbWFpbihvdGhlci0+bV9kb21haW4uaXNvbGF0ZWRDb3B5KCkpCkBAIC0xNTIs
MTYgKzE1MCwxOCBAQCBib29sIFNlY3VyaXR5T3JpZ2luOjppc0VtcHR5KCkgY29uc3QKICAgICBy
ZXR1cm4gbV9wcm90b2NvbC5pc0VtcHR5KCk7CiB9CiAKLVBhc3NSZWZQdHI8U2VjdXJpdHlPcmln
aW4+IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoY29uc3QgS1VSTCYgdXJsLCBTYW5kYm94RmxhZ3Mg
c2FuZGJveEZsYWdzKQorUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gU2VjdXJpdHlPcmlnaW46
OmNyZWF0ZShjb25zdCBLVVJMJiB1cmwpCiB7CiAgICAgaWYgKCF1cmwuaXNWYWxpZCgpKQotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlY3VyaXR5T3JpZ2luKEtVUkwoKSwgc2FuZGJveEZs
YWdzKSk7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWN1cml0eU9yaWdpbih1cmwsIHNhbmRi
b3hGbGFncykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlY3VyaXR5T3JpZ2luKGJs
YW5rVVJMKCkpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlY3VyaXR5T3JpZ2luKHVybCkp
OwogfQogCi1QYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
RW1wdHkoKQorUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gU2VjdXJpdHlPcmlnaW46OmNyZWF0
ZVVuaXF1ZSgpCiB7Ci0gICAgcmV0dXJuIGNyZWF0ZShLVVJMKCkpOworICAgIFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4gb3JpZ2luID0gY3JlYXRlKEtVUkwoKSk7CisgICAgQVNTRVJUKG9yaWdpbi0+
aXNVbmlxdWUoKSk7CisgICAgcmV0dXJuIG9yaWdpbi5yZWxlYXNlKCk7CiB9CiAKIFBhc3NSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+IFNlY3VyaXR5T3JpZ2luOjppc29sYXRlZENvcHkoKQpAQCAtNDc4
LDcgKzQ3OCw3IEBAIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IFNlY3VyaXR5T3JpZ2kKIFBh
c3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoY29uc3QgU3Ry
aW5nJiBwcm90b2NvbCwgY29uc3QgU3RyaW5nJiBob3N0LCBpbnQgcG9ydCkKIHsKICAgICBpZiAo
cG9ydCA8IDAgfHwgcG9ydCA+IE1heEFsbG93ZWRQb3J0KQotICAgICAgICBjcmVhdGUoS1VSTCgp
KTsKKyAgICAgICAgY3JlYXRlVW5pcXVlKCk7CiAgICAgU3RyaW5nIGRlY29kZWRIb3N0ID0gZGVj
b2RlVVJMRXNjYXBlU2VxdWVuY2VzKGhvc3QpOwogICAgIHJldHVybiBjcmVhdGUoS1VSTChLVVJM
KCksIHByb3RvY29sICsgIjovLyIgKyBob3N0ICsgIjoiICsgU3RyaW5nOjpudW1iZXIocG9ydCkp
KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgJKHJldmlzaW9uIDk5
MzEwKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MCwxMSArNDAsMTIgQEAgY2xhc3MgS1VSTDsKIAogY2xhc3MgU2VjdXJpdHlPcmln
aW4gOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8U2VjdXJpdHlPcmlnaW4+IHsKIHB1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlKGNvbnN0IEtV
UkwmKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlVW5pcXVl
KCk7CisKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlRnJvbURh
dGFiYXNlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmKTsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxT
ZWN1cml0eU9yaWdpbj4gY3JlYXRlRnJvbVN0cmluZyhjb25zdCBTdHJpbmcmKTsKICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlKGNvbnN0IFN0cmluZyYgcHJvdG9j
b2wsIGNvbnN0IFN0cmluZyYgaG9zdCwgaW50IHBvcnQpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNlY3VyaXR5T3JpZ2luPiBjcmVhdGUoY29uc3QgS1VSTCYsIFNhbmRib3hGbGFncyA9IFNhbmRi
b3hOb25lKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlRW1w
dHkoKTsKIAogICAgIC8vIENyZWF0ZSBhIGRlZXAgY29weSBvZiB0aGlzIFNlY3VyaXR5T3JpZ2lu
LiBUaGlzIG1ldGhvZCBpcyB1c2VmdWwKICAgICAvLyB3aGVuIG1hcnNoYWxsaW5nIGEgU2VjdXJp
dHlPcmlnaW4gdG8gYW5vdGhlciB0aHJlYWQuCkBAIC0xMTQsOSArMTE1LDYgQEAgcHVibGljOgog
ICAgIC8vIFdBUk5JTkc6IFRoaXMgaXMgYW4gZXh0cmVtZWx5IHBvd2VyZnVsIGFiaWxpdHkuIFVz
ZSB3aXRoIGNhdXRpb24hCiAgICAgdm9pZCBncmFudFVuaXZlcnNhbEFjY2VzcygpOwogCi0gICAg
Ym9vbCBpc1NhbmRib3hlZChTYW5kYm94RmxhZ3MgbWFzaykgY29uc3QgeyByZXR1cm4gbV9zYW5k
Ym94RmxhZ3MgJiBtYXNrOyB9Ci0gICAgU2FuZGJveEZsYWdzIHNhbmRib3hGbGFncygpIGNvbnN0
IHsgcmV0dXJuIG1fc2FuZGJveEZsYWdzOyB9Ci0KICAgICBib29sIGNhbkFjY2Vzc0RhdGFiYXNl
KCkgY29uc3QgeyByZXR1cm4gIWlzVW5pcXVlKCk7IH0KICAgICBib29sIGNhbkFjY2Vzc0xvY2Fs
U3RvcmFnZSgpIGNvbnN0IHsgcmV0dXJuICFpc1VuaXF1ZSgpOyB9CiAgICAgYm9vbCBjYW5BY2Nl
c3NDb29raWVzKCkgY29uc3QgeyByZXR1cm4gIWlzVW5pcXVlKCk7IH0KQEAgLTE5OCw3ICsxOTYs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgcmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3Rz
KCk7CiAKIHByaXZhdGU6Ci0gICAgU2VjdXJpdHlPcmlnaW4oY29uc3QgS1VSTCYsIFNhbmRib3hG
bGFncyk7CisgICAgZXhwbGljaXQgU2VjdXJpdHlPcmlnaW4oY29uc3QgS1VSTCYpOwogICAgIGV4
cGxpY2l0IFNlY3VyaXR5T3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKik7CiAKICAgICAvLyBG
SVhNRTogUmVuYW1lIHRoaXMgZnVuY3Rpb24gdG8gc29tZXRoaW5nIG1vcmUgc2VtYW50aWMuCkBA
IC0yMDcsNyArMjA1LDYgQEAgcHJpdmF0ZToKICAgICBib29sIGlzQWNjZXNzV2hpdGVMaXN0ZWQo
Y29uc3QgU2VjdXJpdHlPcmlnaW4qKSBjb25zdDsKICAgICBib29sIGlzQWNjZXNzVG9VUkxXaGl0
ZUxpc3RlZChjb25zdCBLVVJMJikgY29uc3Q7CiAKLSAgICBTYW5kYm94RmxhZ3MgbV9zYW5kYm94
RmxhZ3M7CiAgICAgU3RyaW5nIG1fcHJvdG9jb2w7CiAgICAgU3RyaW5nIG1faG9zdDsKICAgICBt
dXRhYmxlIFN0cmluZyBtX2VuY29kZWRIb3N0OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gOTkzMzQpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAor
MjAxMS0xMS0wNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEph
dmFTY3JpcHQgVVJMcyBleGVjdXRlIGluIHNhbmRib3hlZCBpZnJhbWVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTU5OQorCisgICAgICAgIFJldmll
d2VkIGJ5IEVyaWMgU2VpZGVsLgorCisgICAgICAgIFVwZGF0ZSByZXN1bHRzIHRvIHNob3cgcHJv
Z3Jlc3Npb24uCisKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLXNjcmlw
dGluZy1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFt
ZS1zY3JpcHRpbmcuaHRtbDoKKwogMjAxMS0xMS0wNCAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBDU1MgQXNwZWN0IFJhdGlvIFByb3BlcnR5IFBhcnNpbmcg
U3RhZ2UKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3NhbmRib3hlZC1pZnJhbWUtc2Ny
aXB0aW5nLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1l
cy9zYW5kYm94ZWQtaWZyYW1lLXNjcmlwdGluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDk5MzMw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1zY3JpcHRpbmct
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00LDcgKzQsNyBAQCBWZXJpZnkgdGhhdCBz
YW5kYm94ZWQgZnJhbWVzIHdpdGggc2FuZGJvCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAK
IAotRkFJTCBkaXNhbGxvd2VkRXhlY3V0ZWQgc2hvdWxkIGJlIDAuIFdhcyAxLgorUEFTUyBkaXNh
bGxvd2VkRXhlY3V0ZWQgaXMgMAogUEFTUyBhbGxvd2VkRXhlY3V0ZWQgaXMgMwogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9z
YW5kYm94ZWQtaWZyYW1lLXNjcmlwdGluZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZnJhbWVzL3NhbmRib3hlZC1pZnJhbWUtc2NyaXB0aW5nLmh0bWwJKHJldmlzaW9uIDk5
MzMwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1zY3JpcHRp
bmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTAgKzI2LDYgQEAgd2luZG93Lm9ubG9hZCA9
IGZ1bmN0aW9uKCkKICAgICA8aWZyYW1lIHNhbmRib3g9ImFsbG93LXNhbWUtb3JpZ2luIGFsbG93
LXNjcmlwdHMiCiAgICAgICAgICAgICBzcmM9ImRhdGE6dGV4dC9odG1sLDxzY3JpcHQ+IGFsZXJ0
KCdQQVNTOiBFeGVjdXRlZCBzY3JpcHQgaW4gZGF0YSBVUkwnKTsgPC9zY3JpcHQ+Ij4KICAgICA8
L2lmcmFtZT4KLSAgICA8IS0tIFRoaXMgY2FzZSBleGVjdXRlIHNjcmlwdCBldmVuIHRob3VnaCBp
dCBzaG91bGRuJ3QuIFRoZSBwcm9ibGVtIGlzIHRoYXQKLSAgICAgICAgIHRoZSBpZnJhbWUgc3Rh
cnRzIG91dCBhcyBhYm91dDpibGFuaywgd2hpY2ggaW5oZXJpdHMgdGhlIHBhcmVudCBkb2N1bWVu
dHMKLSAgICAgICAgIFNlY3VyaXR5T3JpZ2luLCBhbG9uZyB3aXRoIGl0cyBmcm96ZW4gc2FuZGJv
eCBiaXRzLiBUbyBmaXggdGhpcyBjYXNlLAotICAgICAgICAgd2UnbGwgbmVlZCB0byBtb3ZlIHRo
ZSBzYW5kYm94IGJpdHMgZnJvbSBTZWN1cml0eU9yaWdpbiB0byBEb2N1bWVudC4gLS0hPgogICAg
IDxpZnJhbWUgc2FuZGJveD0iYWxsb3ctc2FtZS1vcmlnaW4iCiAgICAgICAgICAgICBzcmM9Imph
dmFzY3JpcHQ6ICsrd2luZG93LnRvcC5kaXNhbGxvd2VkRXhlY3V0ZWQ7Ij4KICAgICA8L2lmcmFt
ZT4K
</data>

          </attachment>
      

    </bug>

</bugzilla>