<?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>99801</bug_id>
          
          <creation_ts>2012-10-18 20:46:15 -0700</creation_ts>
          <short_desc>Web Inspector: [JSC] implement WorkerScriptDebugServer</short_desc>
          <delta_ts>2012-11-02 03:25:10 -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>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>100347</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Peter Wang">PeterHWang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>mark.lam</cc>
    
    <cc>oliver</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>745937</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-10-18 20:46:15 -0700</bug_when>
    <thetext>There is a bug#93519 about it already. However, the subject of bug#93519 is a little confused, so I open a new bug to make it clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746138</commentid>
    <comment_count>1</comment_count>
      <attachid>169578</attachid>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-10-19 02:02:51 -0700</bug_when>
    <thetext>Created attachment 169578
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746171</commentid>
    <comment_count>2</comment_count>
      <attachid>169578</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-10-19 02:46:40 -0700</bug_when>
    <thetext>Comment on attachment 169578
Patch

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

Inspector part of the change looks good to me except a few minor things. I am pretty sure we should be able to treat page and worker debuggers similarly in Source/JavaScriptCore/debugger but I&apos;m not an expert in JSC so you need someone working on JSC to review that part.

&gt; Source/JavaScriptCore/parser/Parser.h:998
&gt; +    if (debugger &amp;&amp; !debugger-&gt;isWorkerDebugger() &amp;&amp; !ParsedNode::scopeIsFunction)

I still don&apos;t understand why we should treat parse events differently in case of workers. We need someone familiar with JSC code to look at this part.

&gt; Source/WebCore/bindings/js/ScriptDebugServer.cpp:370
&gt; +        dispatchDidParseSource(*listeners, sourceProvider, isWorkerDebugger() ? false : isContentScript(exec));

Please make isContentScript a virtual method on ScriptDebugServer and provide appropriate implementations for Page/WorkerScriptDebug instead of introducing isWorkerDebugger.

&gt; Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp:58
&gt; +    // If JavaScript stack is not empty postpone recompilation.

It seems that we can safely assume the JS stack is empty if recompileAllJSFunctions is invoked by Timer but this is a different issue.

&gt; Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp:73
&gt; +    recompileAllJSFunctions(0);

recompileAllJSFunctionsSoon</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746180</commentid>
    <comment_count>3</comment_count>
      <attachid>169586</attachid>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-10-19 03:14:33 -0700</bug_when>
    <thetext>Created attachment 169586
 The test case why we need to skip &quot;sourceParsed&quot; in &quot;Parser.h&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746182</commentid>
    <comment_count>4</comment_count>
      <attachid>169587</attachid>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-10-19 03:15:35 -0700</bug_when>
    <thetext>Created attachment 169587
 Snapshot of of the worker inspector problem caused by &quot;sourceParsed&quot; in &quot;Parser.h&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746196</commentid>
    <comment_count>5</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-10-19 03:44:15 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 169578 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169578&amp;action=review
&gt; 
&gt; Inspector part of the change looks good to me except a few minor things. I am pretty sure we should be able to treat page and worker debuggers similarly in Source/JavaScriptCore/debugger but I&apos;m not an expert in JSC so you need someone working on JSC to review that part.
&gt; 
&gt; &gt; Source/JavaScriptCore/parser/Parser.h:998
&gt; &gt; +    if (debugger &amp;&amp; !debugger-&gt;isWorkerDebugger() &amp;&amp; !ParsedNode::scopeIsFunction)
&gt; 
&gt; I still don&apos;t understand why we should treat parse events differently in case of workers. We need someone familiar with JSC code to look at this part.
&gt; 
Because when Inspector is attached, the JS code is demanded to be recompiled, and JSC send the code to Inspector (&quot;debugger!=null&quot; means Inspector is attached) by these statements of &quot;Parser.h&quot;. If we inspecting a normal web page, JS code just recompiled once, and then the &quot;compiled&quot;(not exactly) code is executed, the related statements of &quot;Parser.h&quot; is never be invoked, so  Inspector has only one copy of code. 
But for worker js with timer, there is a problem.

&gt; &gt; Source/WebCore/bindings/js/ScriptDebugServer.cpp:370
&gt; &gt; +        dispatchDidParseSource(*listeners, sourceProvider, isWorkerDebugger() ? false : isContentScript(exec));
&gt; 
&gt; Please make isContentScript a virtual method on ScriptDebugServer and provide appropriate implementations for Page/WorkerScriptDebug instead of introducing isWorkerDebugger.
&gt; 
ok 
&gt; &gt; Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp:58
&gt; &gt; +    // If JavaScript stack is not empty postpone recompilation.
&gt; 
&gt; It seems that we can safely assume the JS stack is empty if recompileAllJSFunctions is invoked by Timer but this is a different issue.
&gt; 
Yes, it&apos;s another issue of JSC. So far, we can just use these code as &quot;PageScriptDebugeServer&quot;. Actually, the statement 
&quot;if (JSDOMWindow::commonJSGlobalData()-&gt;dynamicGlobalObject)&quot; has problem when there are two pages in one process, and being Inspected in same time.

&gt; &gt; Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp:73
&gt; &gt; +    recompileAllJSFunctions(0);
&gt; 
&gt; recompileAllJSFunctionsSoon
sorry, thx.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749283</commentid>
    <comment_count>6</comment_count>
      <attachid>170302</attachid>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-10-23 20:48:19 -0700</bug_when>
    <thetext>Created attachment 170302
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749291</commentid>
    <comment_count>7</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-10-23 21:01:23 -0700</bug_when>
    <thetext>In the new patch, what I did according to these comments:


(In reply to comment #5)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 169578 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169578&amp;action=review
&gt; &gt; 
&gt; &gt; Inspector part of the change looks good to me except a few minor things. I am pretty sure we should be able to treat page and worker debuggers similarly in Source/JavaScriptCore/debugger but I&apos;m not an expert in JSC so you need someone working on JSC to review that part.
&gt; &gt; 
&gt; &gt; &gt; Source/JavaScriptCore/parser/Parser.h:998
&gt; &gt; &gt; +    if (debugger &amp;&amp; !debugger-&gt;isWorkerDebugger() &amp;&amp; !ParsedNode::scopeIsFunction)
&gt; &gt; 
&gt; &gt; I still don&apos;t understand why we should treat parse events differently in case of workers. We need someone familiar with JSC code to look at this part.
&gt; &gt; 
&gt; Because when Inspector is attached, the JS code is demanded to be recompiled, and JSC send the code to Inspector (&quot;debugger!=null&quot; means Inspector is attached) by these statements of &quot;Parser.h&quot;. If we inspecting a normal web page, JS code just recompiled once, and then the &quot;compiled&quot;(not exactly) code is executed, the related statements of &quot;Parser.h&quot; is never be invoked, so  Inspector has only one copy of code. 
&gt; But for worker js with timer, there is a problem.

Based no newest code, good news is now the worker JS code doesn&apos;t recompiled every executed, bad news is I cannot find which patch do me the favour.
I&apos;m investigating, at least it doesn&apos;t bother us so far.
 
&gt; &gt; &gt; Source/WebCore/bindings/js/ScriptDebugServer.cpp:370
&gt; &gt; &gt; +        dispatchDidParseSource(*listeners, sourceProvider, isWorkerDebugger() ? false : isContentScript(exec));
&gt; &gt; 
&gt; &gt; Please make isContentScript a virtual method on ScriptDebugServer and provide appropriate implementations for Page/WorkerScriptDebug instead of introducing isWorkerDebugger.
&gt; &gt; 
&gt; ok 
I did it as your comment.
&gt; &gt; &gt; Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp:58
&gt; &gt; &gt; +    // If JavaScript stack is not empty postpone recompilation.
&gt; &gt; 
&gt; &gt; It seems that we can safely assume the JS stack is empty if recompileAllJSFunctions is invoked by Timer but this is a different issue.
&gt; &gt; 
&gt; Yes, it&apos;s another issue of JSC. So far, we can just use these code as &quot;PageScriptDebugeServer&quot;. Actually, the statement 
&gt; &quot;if (JSDOMWindow::commonJSGlobalData()-&gt;dynamicGlobalObject)&quot; has problem when there are two pages in one process, and being Inspected in same time.
&gt; 
&gt; &gt; &gt; Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp:73
&gt; &gt; &gt; +    recompileAllJSFunctions(0);
&gt; &gt; 
&gt; &gt; recompileAllJSFunctionsSoon
&gt; sorry, thx.
I checked code again, I really need &quot;recompileAllJSFunctions(0)&quot;, it&apos;s a protect wrapper. We&apos;re not always sure the situation of JSC engine when it&apos;s invoked here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756038</commentid>
    <comment_count>8</comment_count>
      <attachid>171804</attachid>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-11-01 03:23:19 -0700</bug_when>
    <thetext>Created attachment 171804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756039</commentid>
    <comment_count>9</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-11-01 03:24:29 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=171804) [details]
&gt; Patch

rebase and import a modification to support &quot;Pause on start&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756959</commentid>
    <comment_count>10</comment_count>
      <attachid>171804</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-02 00:59:27 -0700</bug_when>
    <thetext>Comment on attachment 171804
Patch

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

Consider adding a test for the worker debugging functionality. Now that we have support for pure protocol tests (kudos to vivekg) it shouldn&apos;t be hard to test worker debugging functionality. See for example the test I recently added for workers: LayoutTests/inspector-protocol/debugger-pause-dedicated-worker.html

&gt; Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp:61
&gt; +    recompileAllJSFunctions(0);

recompileAllJSFunctions should only be called when the first listener is being added. It seems that we need to fix this in PageSriptDebugServer as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756975</commentid>
    <comment_count>11</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-11-02 01:38:56 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 171804 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=171804&amp;action=review
&gt; 
&gt; Consider adding a test for the worker debugging functionality. Now that we have support for pure protocol tests (kudos to vivekg) it shouldn&apos;t be hard to test worker debugging functionality. See for example the test I recently added for workers: LayoutTests/inspector-protocol/debugger-pause-dedicated-worker.html
ok, I&apos;ll do it ASAP.

&gt; &gt; Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp:61
&gt; &gt; +    recompileAllJSFunctions(0);
&gt; 
&gt; recompileAllJSFunctions should only be called when the first listener is being added. It seems that we need to fix this in PageSriptDebugServer as well.

Yes, I also find it&apos;s a vulnerable part. The problem becomes more obvious when there is a timer in worker: seems inspector cannot distinguish if the JS code is updated or just be executed again by timer. JSC is OK so far just because it doesn’t recompile the js code for timer of worker.  I&apos;m investigating it now.

Thank you for your time, sir.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757046</commentid>
    <comment_count>12</comment_count>
      <attachid>171804</attachid>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2012-11-02 03:18:07 -0700</bug_when>
    <thetext>Comment on attachment 171804
Patch

commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757054</commentid>
    <comment_count>13</comment_count>
      <attachid>171804</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-02 03:25:06 -0700</bug_when>
    <thetext>Comment on attachment 171804
Patch

Clearing flags on attachment: 171804

Committed r133281: &lt;http://trac.webkit.org/changeset/133281&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757055</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-02 03:25:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169578</attachid>
            <date>2012-10-19 02:02:51 -0700</date>
            <delta_ts>2012-10-23 20:48:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99801-20121019170133.patch</filename>
            <type>text/plain</type>
            <size>14024</size>
            <attacher name="Peter Wang">PeterHWang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODczCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NjFlMzU4NjdkZTRhZDM5YzA4NzI2NWM3ODA3YjhmNTZkZmYxZTZmLi42OTFiZmY4NzYwY2EzZTU4
OTUwNTU1YzE3MzdhNDc1MGVjNjBkZWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxMi0xMC0xOSAgUGV0ZXIgV2FuZyAgPHBldGVyLndhbmdAdG9yY2htb2Jp
bGUuY29tLmNuPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGltcGxlbWVudCBXb3JrZXJTY3Jp
cHREZWJ1Z1NlcnZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTM1MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGb3IgdGhlIGNhc2UgdGhhdCB0aGUgSlMgb2YgYSB3b3JrZXIgaXMgZXhlY3V0ZWQgcGVy
aW9kaWNhbGx5LCB3ZSBzaG91bGRuJ3QgaW5mb3JtIHRoZQorICAgICAgICBzb3VyY2UgY29kZSB0
byBmcm9udGVuZC4KKworICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyLmg6CisgICAgICAgICog
cGFyc2VyL1BhcnNlci5oOgorICAgICAgICAoSlNDOjo6OnBhcnNlKToKKwogMjAxMi0xMC0xOCAg
RmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEJhc2VsaW5lIGFycmF5
IHByb2ZpbGluZyBzaG91bGQgYmUgbGVzcyBhY2N1cmF0ZSwgYW5kIERGRyBPU1IgZXhpdCBzaG91
bGQgdXBkYXRlIGFycmF5IHByb2ZpbGVzIG9uIENoZWNrQXJyYXkgYW5kIENoZWNrU3RydWN0dXJl
IGZhaWx1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MTM4MzYwMzc0ZWQwNTkzZGMxOTkzMDBhYjRkMjhmNTEz
YTAyODhhLi5lYjc1MjFjMmVkZDRkMTllNDg5YTk4ODM3YTRiODBlNzg3ZTc3ZTdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTItMTAtMTkgIFBldGVyIFdhbmcgIDxwZXRlci53YW5n
QHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBpbXBsZW1lbnQg
V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTkzNTE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVG8gaW1wbGVtZW50IHRoZSBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci4g
U2luY2UgdGhlIEpTQyB3aWxsIHJ1biBhIGV2ZW50IGxvb3Agd2hlbiBpcyBwYXVzZWQsCisgICAg
ICAgIHNvIGl0IGRvbid0IG5lZWQgdGhlIGZ1bmN0aW9uICJpbnRlcnJ1cHRBbmRSdW5UYXNrIi4K
KworICAgICAgICBObyBuZXcgdGVzdCBjYXNlIGZvciB0aGlzIHBhdGNoLgorCisgICAgICAgICog
YmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6cnVuRXZlbnRMb29wV2hpbGVQYXVzZWQpOgorICAgICAg
ICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVy
Lmg6CisgICAgICAgIChQYWdlU2NyaXB0RGVidWdTZXJ2ZXIpOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1NjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdERlYnVn
U2VydmVyOjpzb3VyY2VQYXJzZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2
ZXI6OnBhdXNlSWZOZWVkZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2Vy
dmVyLmg6CisgICAgICAgIChTY3JpcHREZWJ1Z1NlcnZlcik6CisgICAgICAgICogYmluZGluZ3Mv
anMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJT
Y3JpcHRDb250cm9sbGVyOjphdHRhY2hEZWJ1Z2dlcik6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI6OmRldGFjaERlYnVnZ2VyKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAg
IChXb3JrZXJTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHREZWJ1
Z1NlcnZlcjo6V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21waWxlQWxsSlNG
dW5jdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmFk
ZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdERlYnVnU2VydmVyOjpy
ZW1vdmVMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHREZWJ1Z1NlcnZl
cjo6cnVuRXZlbnRMb29wV2hpbGVQYXVzZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtl
clNjcmlwdERlYnVnU2VydmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHREZWJ1
Z1NlcnZlcjo6aXNXb3JrZXJEZWJ1Z2dlcik6CisgICAgICAgIChXb3JrZXJTY3JpcHREZWJ1Z1Nl
cnZlcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6Z2V0TGlz
dGVuZXJzRm9yR2xvYmFsT2JqZWN0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3Jp
cHRCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkluamVjdGVkU2NyaXB0QmFzZTo6bWFrZUNh
bGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmg6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpjYW5JbnNw
ZWN0V29ya2Vycyk6CisKIDIwMTItMTAtMTkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBbVjhdIFNpbXBsaWZ5IEdDUHJvbG9ndWVWaXNpdG9yCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oCmluZGV4IDNjNGE0ZWQ3NjIxOWNjMjFmNGE5
NjYzNGM0YjI2MTcxOWRlOGVjNGEuLjEzNzdiMTIyNzkyNzc4ZTljZGViMjkyMDk1MTM4ZWJiZGU2
ZmUzMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dl
ci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oCkBAIC00
MCw2ICs0MCw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGF0dGFjaChKU0dsb2Jh
bE9iamVjdCopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKEpTR2xvYmFsT2JqZWN0Kik7
CiAKKyAgICAgICAgdmlydHVhbCBib29sIGlzV29ya2VyRGVidWdnZXIoKSB7IHJldHVybiBmYWxz
ZTsgfQorCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VQYXJzZWQoRXhlY1N0YXRlKiwgU291
cmNlUHJvdmlkZXIqLCBpbnQgZXJyb3JMaW5lTnVtYmVyLCBjb25zdCBXVEY6OlN0cmluZyYgZXJy
b3JNZXNzYWdlKSA9IDA7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGV4Y2VwdGlvbihjb25zdCBE
ZWJ1Z2dlckNhbGxGcmFtZSYsIGludHB0cl90LCBpbnQsIGludCwgYm9vbCkgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKaW5kZXggNGMwMDVmYTVlZjg5YzBkZTUxYzRiYjBm
Mzg2ZDdjODI2ZjhlYTZhNy4uMThjMTlmZGVhYjllZTU3MzE2NTM2NmQyMDc4M2JmZTI2OTUzNWNh
MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oCkBAIC05OTUsNyArOTk1LDcg
QEAgUGFzc1JlZlB0cjxQYXJzZWROb2RlPiBQYXJzZXI8TGV4ZXJUeXBlPjo6cGFyc2UoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmoKICAgICAgICAgICAgICpleGNlcHRpb24gPSBhZGRF
cnJvckluZm8obGV4aWNhbEdsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBjcmVhdGVTeW50YXhF
cnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBlcnJNc2cpLCBlcnJMaW5lLCAqbV9zb3VyY2UpOwog
ICAgIH0KIAotICAgIGlmIChkZWJ1Z2dlciAmJiAhUGFyc2VkTm9kZTo6c2NvcGVJc0Z1bmN0aW9u
KQorICAgIGlmIChkZWJ1Z2dlciAmJiAhZGVidWdnZXItPmlzV29ya2VyRGVidWdnZXIoKSAmJiAh
UGFyc2VkTm9kZTo6c2NvcGVJc0Z1bmN0aW9uKQogICAgICAgICBkZWJ1Z2dlci0+c291cmNlUGFy
c2VkKGRlYnVnZ2VyRXhlY1N0YXRlLCBtX3NvdXJjZS0+cHJvdmlkZXIoKSwgZXJyTGluZSwgZXJy
TXNnKTsKIAogICAgIG1fYXJlbmEtPnJlc2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcAppbmRleCBlZDc0M2NjOWU5ZWM1
MWMwZDUzMTYxMDk0ZjMzZDljOTJhZGIxMGQ2Li42ZjBiYzJjZDJkMTg4ZGEwZDUxNzRlMmRjNWUz
ZjAzODA5ZDFlYTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdl
U2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Bh
Z2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKIAogI2luY2x1ZGUgIlBh
Z2VTY3JpcHREZWJ1Z1NlcnZlci5oIgogCisjaW5jbHVkZSAiRXZlbnRMb29wLmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRv
d0N1c3RvbS5oIgpAQCAtMTYzLDYgKzE2NCwxMyBAQCB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZl
cjo6ZGlkUmVtb3ZlTGFzdExpc3RlbmVyKFBhZ2UqIHBhZ2UpCiAgICAgcGFnZS0+c2V0RGVidWdn
ZXIoMCk7CiB9CiAKK3ZvaWQgUGFnZVNjcmlwdERlYnVnU2VydmVyOjpydW5FdmVudExvb3BXaGls
ZVBhdXNlZCgpCit7CisgICAgRXZlbnRMb29wIGxvb3A7CisgICAgd2hpbGUgKCFtX2RvbmVQcm9j
ZXNzaW5nRGVidWdnZXJFdmVudHMgJiYgIWxvb3AuZW5kZWQoKSkKKyAgICAgICAgbG9vcC5jeWNs
ZSgpOworfQorCiB2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6c2V0SmF2YVNjcmlwdFBhdXNl
ZChjb25zdCBQYWdlR3JvdXAmIHBhZ2VHcm91cCwgYm9vbCBwYXVzZWQpCiB7CiAgICAgc2V0TWFp
blRocmVhZENhbGxiYWNrc1BhdXNlZChwYXVzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaAppbmRleCA3MmE4OTBkN2FkNTUxMjZh
MzJkYWQ0MDUzMDY0NDIzMzExOTdkODlhLi44MjMyY2Q5YWQwYjAxMzY2OTMwNzIxMDk3NjcwZmVk
NGI4MzJhODhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2Ny
aXB0RGVidWdTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2Ny
aXB0RGVidWdTZXJ2ZXIuaApAQCAtNjMsNiArNjMsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBkaWRQYXVzZShKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZENvbnRpbnVlKEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKIAorICAgIHZpcnR1YWwgdm9pZCBydW5F
dmVudExvb3BXaGlsZVBhdXNlZCgpOworCiAgICAgdm9pZCBkaWRSZW1vdmVMYXN0TGlzdGVuZXIo
UGFnZSopOwogCiAgICAgdm9pZCBzZXRKYXZhU2NyaXB0UGF1c2VkKGNvbnN0IFBhZ2VHcm91cCYs
IGJvb2wgcGF1c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdERlYnVnU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERl
YnVnU2VydmVyLmNwcAppbmRleCBkNmE1YWI4NGJkYjVjODAxOTBiMThkYTE2MjA1NzU5Y2Y2ZGZl
ODRiLi40OTU0ZmFmYzY1YjlkNmI2NWMyYmMxN2IzZWQ0MTEyODE4NDQyYjE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCkBAIC0zNCw3
ICszNCw2IEBACiAjaW5jbHVkZSAiU2NyaXB0RGVidWdTZXJ2ZXIuaCIKIAogI2luY2x1ZGUgIkNv
bnRlbnRTZWFyY2hVdGlscy5oIgotI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkZy
YW1lLmgiCiAjaW5jbHVkZSAiSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSmF2
YVNjcmlwdENhbGxGcmFtZS5oIgpAQCAtMzY4LDcgKzM2Nyw3IEBAIHZvaWQgU2NyaXB0RGVidWdT
ZXJ2ZXI6OnNvdXJjZVBhcnNlZChFeGVjU3RhdGUqIGV4ZWMsIFNvdXJjZVByb3ZpZGVyKiBzb3Vy
Y2VQcm92CiAgICAgaWYgKGlzRXJyb3IpCiAgICAgICAgIGRpc3BhdGNoRmFpbGVkVG9QYXJzZVNv
dXJjZSgqbGlzdGVuZXJzLCBzb3VyY2VQcm92aWRlciwgZXJyb3JMaW5lLCBlcnJvck1lc3NhZ2Up
OwogICAgIGVsc2UKLSAgICAgICAgZGlzcGF0Y2hEaWRQYXJzZVNvdXJjZSgqbGlzdGVuZXJzLCBz
b3VyY2VQcm92aWRlciwgaXNDb250ZW50U2NyaXB0KGV4ZWMpKTsKKyAgICAgICAgZGlzcGF0Y2hE
aWRQYXJzZVNvdXJjZSgqbGlzdGVuZXJzLCBzb3VyY2VQcm92aWRlciwgaXNXb3JrZXJEZWJ1Z2dl
cigpID8gZmFsc2UgOiBpc0NvbnRlbnRTY3JpcHQoZXhlYykpOwogCiAgICAgbV9jYWxsaW5nTGlz
dGVuZXJzID0gZmFsc2U7CiB9CkBAIC00NDIsMTAgKzQ0MSw4IEBAIHZvaWQgU2NyaXB0RGVidWdT
ZXJ2ZXI6OnBhdXNlSWZOZWVkZWQoSlNHbG9iYWxPYmplY3QqIGR5bmFtaWNHbG9iYWxPYmplY3Qp
CiAKICAgICBUaW1lckJhc2U6OmZpcmVUaW1lcnNJbk5lc3RlZEV2ZW50TG9vcCgpOwogCi0gICAg
RXZlbnRMb29wIGxvb3A7CiAgICAgbV9kb25lUHJvY2Vzc2luZ0RlYnVnZ2VyRXZlbnRzID0gZmFs
c2U7Ci0gICAgd2hpbGUgKCFtX2RvbmVQcm9jZXNzaW5nRGVidWdnZXJFdmVudHMgJiYgIWxvb3Au
ZW5kZWQoKSkKLSAgICAgICAgbG9vcC5jeWNsZSgpOworICAgIHJ1bkV2ZW50TG9vcFdoaWxlUGF1
c2VkKCk7CiAKICAgICBkaWRDb250aW51ZShkeW5hbWljR2xvYmFsT2JqZWN0KTsKICAgICBkaXNw
YXRjaEZ1bmN0aW9uVG9MaXN0ZW5lcnMoJlNjcmlwdERlYnVnU2VydmVyOjpkaXNwYXRjaERpZENv
bnRpbnVlLCBkeW5hbWljR2xvYmFsT2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5oCmluZGV4IGYyNDUyOTY0YTkwNTVlNDE0NzRmZjA0ZDIx
YzA5Njk5YjUwZDQyMDYuLmM3M2U0ZWY5NDNhNWI2ZGUzYTFlOWJiMWY5N2M0MDY3ODg2MTRhOTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaApA
QCAtMTEzLDYgKzExMyw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGF1c2Uo
SlNDOjpKU0dsb2JhbE9iamVjdCopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29udGludWUo
SlNDOjpKU0dsb2JhbE9iamVjdCopID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBydW5FdmVudExv
b3BXaGlsZVBhdXNlZCgpID0gMDsKKwogICAgIGJvb2wgaGFzQnJlYWtwb2ludChpbnRwdHJfdCBz
b3VyY2VJRCwgY29uc3QgVGV4dFBvc2l0aW9uJikgY29uc3Q7CiAKICAgICB2b2lkIGRpc3BhdGNo
RnVuY3Rpb25Ub0xpc3RlbmVycyhKYXZhU2NyaXB0RXhlY3V0aW9uQ2FsbGJhY2ssIEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29y
a2VyU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggNTVjMzQ3NjdiM2QzYWIzODQyNGJiYTFhZGE5
OTZkYmJmZDU1M2QyOS4uZTM5NzA2NTZhYzkyYTVmN2FhNGRkNzYzYjI1YjE5Y2I4NDM3MmYxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29u
dHJvbGxlci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnRE
YXRhLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlck9iamVj
dFByb3h5LmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaCIKICNpbmNsdWRl
ICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlIDxoZWFwL1N0cm9uZ0lubGluZXMuaD4KICNpbmNs
dWRlIDxpbnRlcnByZXRlci9JbnRlcnByZXRlci5oPgpAQCAtMTk3LDYgKzE5OCwxNiBAQCB2b2lk
IFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JN
ZXNzYWdlKQogICAgIG1fd29ya2VyQ29udGV4dFdyYXBwZXItPnNldEV2YWxFbmFibGVkKGZhbHNl
LCBlcnJvck1lc3NhZ2UpOwogfQogCit2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmF0dGFj
aERlYnVnZ2VyKEpTQzo6RGVidWdnZXIqIGRlYnVnZ2VyKQoreworICAgIGRlYnVnZ2VyLT5hdHRh
Y2gobV93b3JrZXJDb250ZXh0V3JhcHBlci0+Z2xvYmFsRXhlYygpLT5keW5hbWljR2xvYmFsT2Jq
ZWN0KCkpOworfQorCit2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmRldGFjaERlYnVnZ2Vy
KEpTQzo6RGVidWdnZXIqIGRlYnVnZ2VyKQoreworICAgIGRlYnVnZ2VyLT5kZXRhY2gobV93b3Jr
ZXJDb250ZXh0V3JhcHBlci0+Z2xvYmFsRXhlYygpLT5keW5hbWljR2xvYmFsT2JqZWN0KCkpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV09SS0VSUykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xs
ZXIuaAppbmRleCBhMzEzZmIwZmUxYzUwNDUzNTI1MGNiNDNlYzcyMTM2YzY2ZTAwMzQxLi42NTE0
MzYzMTFjZDM2MjMyNjMxMTAwNTZlZmZhYWFhODZjNDYwYjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCkBAIC0yOSw3ICsy
OSw3IEBACiAjZGVmaW5lIFdvcmtlclNjcmlwdENvbnRyb2xsZXJfaAogCiAjaWYgRU5BQkxFKFdP
UktFUlMpCi0KKyNpbmNsdWRlIDxkZWJ1Z2dlci9EZWJ1Z2dlci5oPgogI2luY2x1ZGUgPGhlYXAv
U3Ryb25nLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFk
aW5nLmg+CkBAIC03OSw2ICs3OSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBK
U0M6OkpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSgpIHsgcmV0dXJuIG1fZ2xvYmFsRGF0YS5nZXQo
KTsgfQogCisgICAgICAgIHZvaWQgYXR0YWNoRGVidWdnZXIoSlNDOjpEZWJ1Z2dlciopOworICAg
ICAgICB2b2lkIGRldGFjaERlYnVnZ2VyKEpTQzo6RGVidWdnZXIqKTsKKwogICAgIHByaXZhdGU6
CiAgICAgICAgIHZvaWQgaW5pdFNjcmlwdElmTmVlZGVkKCkKICAgICAgICAgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3Bw
CmluZGV4IDY3YmI0ZGE2ZDU1NTUyODVmMDAwYTNkMzZjMmFkYjk0ODZlODY1N2QuLjhmMDYyYzdl
Y2UyMWY5MzkxNTU0MmNhN2ExMzhlYzlmZWRlMTQxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTMxLDI1
ICszMSw2NSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRf
REVCVUdHRVIpICYmIEVOQUJMRShXT1JLRVJTKQotCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0RGVi
dWdTZXJ2ZXIuaCIKKworI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKKyNpbmNsdWRlICJXb3Jr
ZXJEZWJ1Z2dlckFnZW50LmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUg
IldvcmtlclRocmVhZC5oIgorCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjb25zdCBjaGFyKiBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6ZGVi
dWdnZXJUYXNrTW9kZSA9ICJkZWJ1Z2dlciI7CiAKLVdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpX
b3JrZXJTY3JpcHREZWJ1Z1NlcnZlcihXb3JrZXJDb250ZXh0KikKK1dvcmtlclNjcmlwdERlYnVn
U2VydmVyOjpXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcihXb3JrZXJDb250ZXh0KiBjb250ZXh0KQog
ICAgIDogU2NyaXB0RGVidWdTZXJ2ZXIoKQorICAgICwgbV93b3JrZXJDb250ZXh0KGNvbnRleHQp
Cit7Cit9CisKK3ZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJlY29tcGlsZUFsbEpTRnVu
Y3Rpb25zKFRpbWVyPFNjcmlwdERlYnVnU2VydmVyPiopCiB7CisgICAgSlNDOjpKU0dsb2JhbERh
dGEqIGdsb2JhbERhdGEgPSBtX3dvcmtlckNvbnRleHQtPnNjcmlwdCgpLT5nbG9iYWxEYXRhKCk7
CisKKyAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKGdsb2JhbERhdGEpOworICAgIC8vIElmIEph
dmFTY3JpcHQgc3RhY2sgaXMgbm90IGVtcHR5IHBvc3Rwb25lIHJlY29tcGlsYXRpb24uCisgICAg
aWYgKGdsb2JhbERhdGEtPmR5bmFtaWNHbG9iYWxPYmplY3QpCisgICAgICAgIHJlY29tcGlsZUFs
bEpTRnVuY3Rpb25zU29vbigpOworICAgIGVsc2UKKyAgICAgICAgSlNDOjpEZWJ1Z2dlcjo6cmVj
b21waWxlQWxsSlNGdW5jdGlvbnMoZ2xvYmFsRGF0YSk7Cit9CisKK3ZvaWQgV29ya2VyU2NyaXB0
RGVidWdTZXJ2ZXI6OmFkZExpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqIGxpc3RlbmVyKQor
eworICAgIGlmICghbGlzdGVuZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2xpc3Rl
bmVycy5pc0VtcHR5KCkpCisgICAgICAgIG1fd29ya2VyQ29udGV4dC0+c2NyaXB0KCktPmF0dGFj
aERlYnVnZ2VyKHRoaXMpOworICAgIG1fbGlzdGVuZXJzLmFkZChsaXN0ZW5lcik7CisgICAgcmVj
b21waWxlQWxsSlNGdW5jdGlvbnMoMCk7CiB9CiAKLXZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2
ZXI6OmFkZExpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqKQordm9pZCBXb3JrZXJTY3JpcHRE
ZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIp
CiB7CisgICAgaWYgKCFsaXN0ZW5lcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9saXN0ZW5l
cnMucmVtb3ZlKGxpc3RlbmVyKTsKKyAgICBpZiAobV9saXN0ZW5lcnMuaXNFbXB0eSgpKQorICAg
ICAgICBtX3dvcmtlckNvbnRleHQtPnNjcmlwdCgpLT5kZXRhY2hEZWJ1Z2dlcih0aGlzKTsKIH0K
IAotdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVi
dWdMaXN0ZW5lciopCit2b2lkIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpydW5FdmVudExvb3BX
aGlsZVBhdXNlZCgpCiB7CisgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQ7CisgICAg
ZG8geworICAgICAgICByZXN1bHQgPSBtX3dvcmtlckNvbnRleHQtPnRocmVhZCgpLT5ydW5Mb29w
KCkucnVuSW5Nb2RlKG1fd29ya2VyQ29udGV4dCwgV29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdn
ZXJUYXNrTW9kZSk7CisgICAgLy8gS2VlcCB3YWl0aW5nIHVudGlsIGV4ZWN1dGlvbiBpcyByZXN1
bWVkLgorICAgIH0gd2hpbGUgKHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkICYmICFt
X2RvbmVQcm9jZXNzaW5nRGVidWdnZXJFdmVudHMpOwogfQogCiB2b2lkIFdvcmtlclNjcmlwdERl
YnVnU2VydmVyOjppbnRlcnJ1cHRBbmRSdW5UYXNrKFBhc3NPd25QdHI8U2NyaXB0RGVidWdTZXJ2
ZXI6OlRhc2s+KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2Vy
U2NyaXB0RGVidWdTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNj
cmlwdERlYnVnU2VydmVyLmgKaW5kZXggZDJkNzcxMGM3ODJjZTJkMmY1ZWY4NjEwOWYxYWZiYzY0
NjA5NjNhOS4uYzY0YjIwOTZiMTAyZWQ2ZTBkMzZiZDNmMjQ3YzJmNjQxOTJhZjVmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZl
ci5oCkBAIC00NSw2ICs0NSw4IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBXb3JrZXJTY3JpcHRE
ZWJ1Z1NlcnZlcihXb3JrZXJDb250ZXh0Kik7CiAgICAgfldvcmtlclNjcmlwdERlYnVnU2VydmVy
KCkgeyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNXb3JrZXJEZWJ1Z2dlcigpIHsgcmV0dXJuIHRy
dWU7IH0KKwogICAgIHZvaWQgYWRkTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciopOwogICAg
IHZvaWQgcmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciopOwogCkBAIC01MywxMCAr
NTUsMTUgQEAgcHVibGljOgogICAgIHZvaWQgaW50ZXJydXB0QW5kUnVuVGFzayhQYXNzT3duUHRy
PFNjcmlwdERlYnVnU2VydmVyOjpUYXNrPik7CiAKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lk
IHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKFRpbWVyPFNjcmlwdERlYnVnU2VydmVyPiopIHsgfQot
ICAgIHZpcnR1YWwgTGlzdGVuZXJTZXQqIGdldExpc3RlbmVyc0Zvckdsb2JhbE9iamVjdChKU0M6
OkpTR2xvYmFsT2JqZWN0KikgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgdm9pZCByZWNvbXBp
bGVBbGxKU0Z1bmN0aW9ucyhUaW1lcjxTY3JpcHREZWJ1Z1NlcnZlcj4qKTsKKyAgICB2aXJ0dWFs
IExpc3RlbmVyU2V0KiBnZXRMaXN0ZW5lcnNGb3JHbG9iYWxPYmplY3QoSlNDOjpKU0dsb2JhbE9i
amVjdCopIHsgcmV0dXJuICZtX2xpc3RlbmVyczsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRQYXVz
ZShKU0M6OkpTR2xvYmFsT2JqZWN0KikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbnRpbnVl
KEpTQzo6SlNHbG9iYWxPYmplY3QqKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBydW5FdmVudExv
b3BXaGlsZVBhdXNlZCgpOworCisgICAgV29ya2VyQ29udGV4dCogbV93b3JrZXJDb250ZXh0Owor
ICAgIExpc3RlbmVyU2V0IG1fbGlzdGVuZXJzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>169586</attachid>
            <date>2012-10-19 03:14:33 -0700</date>
            <delta_ts>2012-10-19 03:14:33 -0700</delta_ts>
            <desc> The test case why we need to skip &quot;sourceParsed&quot; in &quot;Parser.h&quot;</desc>
            <filename>case.tar.gz</filename>
            <type>application/x-gzip</type>
            <size>568</size>
            <attacher name="Peter Wang">PeterHWang</attacher>
            
              <data encoding="base64">H4sIAHQ0ZFAAA+2U32vbMBDH86y/QvWTzTpbTpwWFtsP6wobrGzQwtjTcOxLqzWWjH7UhJD/fbKd
tmkIlD1kY+w+YOuH76SzTvdtpboHZUCbOLwz9XJ0BJjjLEm6Nj6fst22Ix7HySges0nMJmycjEcs
nibxZETZMYLZx2pTKEpHRqry7m1R1VwctHvt+z9KevLhy8XN96+XtMt+TtJtM5fVKickbfILaYWh
wtZzUPodTaU1jTWUV5mnQNul8fI0GiZdp+l8rTFSUCnKJS/vM687YfOtv2h+4OXX3ZAO4zQajHN6
yE02u16y2XdyPopG+fB2wepS8cbk5MFltJ0RsrCiNNyt+SICsiZ84ZtVA3LhD5PBSZZ5VlSw4AIq
LyCUrt0TRc+GbXDQpM0EtNu4fC8Mowpq+aPtxzr8qb1g5qw2nWUoRQ1aF7dAM/oUmg8PIEzQL0Zp
JUtbu3F4C+ZyCV33/epT5T8edRByIUB9vLn6nPWOYVWYYtb7boadYKlhG9zvrOZdS6VWp3QlraJz
JVsNyi0AmgppqLZNI7uswXz7szoMQ2/YcfPipJ+TRtaUtKEB5WqmMOC7o9iQNHrMkusOtyyNhkv3
t2vhf2Tvuh5lj1f0n8XJ+ZP+T8Znnf5PGEP9/xN0UskztiuWhtfQi/4glRl/E89II7W5GtTL566Q
NZgbZ+d03/d2HLzTKWN9nZOd2RmWNoIgCIIgCIIgCIIgCIIgCIIgCIIgCIIck19+jc1aACgAAA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>169587</attachid>
            <date>2012-10-19 03:15:35 -0700</date>
            <delta_ts>2012-10-19 03:15:35 -0700</delta_ts>
            <desc> Snapshot of of the worker inspector problem caused by &quot;sourceParsed&quot; in &quot;Parser.h&quot;</desc>
            <filename>Screenshot from 2012-09-27 19:00:06.png</filename>
            <type>image/png</type>
            <size>35586</size>
            <attacher name="Peter Wang">PeterHWang</attacher>
            
              <data encoding="base64">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
bdrVM2U0AAAAAElFTkSuQmCC
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170302</attachid>
            <date>2012-10-23 20:48:19 -0700</date>
            <delta_ts>2012-11-01 03:23:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99801-20121024114650.patch</filename>
            <type>text/plain</type>
            <size>11577</size>
            <attacher name="Peter Wang">PeterHWang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdhNGIxYmYwMThmM2Yy
OTRhMDQwNDc1MzFhNTk2N2I3MjA0YjY5OS4uNGEwZTliNTNiY2ZjZGM4ZWM3N2MyYWM5N2NmNzlh
NDljM2EyNGI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTEwLTIzICBQZXRl
ciBXYW5nICA8cGV0ZXIud2FuZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogW0pTQ10gaW1wbGVtZW50IFdvcmtlclNjcmlwdERlYnVnU2VydmVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTgwMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGltcGxlbWVudCBXb3Jr
ZXIgSW5zcGVjdG9yIGZvciBKU0MuCisgICAgICAgIFRoZSB2aXJ0dWFsIGZ1bmN0aW9uICJydW5F
dmVudExvb3BXaGlsZVBhdXNlZCIgaXMgZGVmaW5lZCwgc2luY2UgdGhlcmUgYXJlIGRpZmZlcmVu
dCB3YXlzIHRvIGJsb2NrIAorICAgICAgICB0aGUgSlMgcnVubmluZyBpbiB3b3JrZXItY29udGV4
dCBhbmQgbm9ybWFsIHBhZ2UtY29udGV4dC4KKyAgICAgICAgVGhlIGZ1bmN0aW9uICJpc0NvbnRl
bnRTY3JpcHQiIG5vdyBpcyB2aXJ0dWFsIGJlY2F1c2UgdGhlIG9yaWdpbmFsIGludm9rZWQgZnVu
Y3Rpb25zIGFyZSB1c2VsZXNzIAorICAgICAgICBhbmQgY2F1c2UgcHJvYmxlbSBpbiB3b3JrZXIt
Y29udGV4dC4KKworICAgICAgICBObyBuZXcgdGVzdCBjYXNlLgorCisgICAgICAgICogYmluZGlu
Z3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VT
Y3JpcHREZWJ1Z1NlcnZlcjo6cnVuRXZlbnRMb29wV2hpbGVQYXVzZWQpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmg6Cisg
ICAgICAgIChQYWdlU2NyaXB0RGVidWdTZXJ2ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Nj
cmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdERlYnVnU2VydmVy
Ojppc0NvbnRlbnRTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2ZXI6
OnBhdXNlSWZOZWVkZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVy
Lmg6CisgICAgICAgIChKU0MpOgorICAgICAgICAoU2NyaXB0RGVidWdTZXJ2ZXIpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6YXR0YWNoRGVidWdnZXIpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpkZXRh
Y2hEZWJ1Z2dlcik6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxl
ci5oOgorICAgICAgICAoV29ya2VyU2NyaXB0Q29udHJvbGxlcik6CisgICAgICAgICogYmluZGlu
Z3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyU2NyaXB0RGVidWdTZXJ2ZXI6OldvcmtlclNjcmlwdERlYnVnU2VydmVyKToKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmFk
ZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdERlYnVnU2VydmVyOjpy
ZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRE
ZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2Ny
aXB0RGVidWdTZXJ2ZXI6OnJ1bkV2ZW50TG9vcFdoaWxlUGF1c2VkKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oOgorICAgICAgICAoV29ya2VyU2NyaXB0
RGVidWdTZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6
OmdldExpc3RlbmVyc0Zvckdsb2JhbE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJT
Y3JpcHREZWJ1Z1NlcnZlcjo6aXNDb250ZW50U2NyaXB0KToKKwogMjAxMi0xMC0yMyAgQW5kcmFz
IEJlY3NpICA8YW5kcmFzLmJlY3NpQGRpZ2lhLmNvbT4KIAogICAgICAgICBSZW1vdmUgZGV2aWNl
UGl4ZWxSYXRpbyBmcm9tIFZpZXdwb3J0QXR0cmlidXRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5kZXggZWQ3NDNjYzll
OWVjNTFjMGQ1MzE2MTA5NGYzM2Q5YzkyYWRiMTBkNi4uNmYwYmMyY2QyZDE4OGRhMGQ1MTc0ZTJk
YzVlM2YwMzgwOWQxZWEzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
UGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAKICNpbmNsdWRl
ICJQYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaCIKIAorI2luY2x1ZGUgIkV2ZW50TG9vcC5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSlNET01X
aW5kb3dDdXN0b20uaCIKQEAgLTE2Myw2ICsxNjQsMTMgQEAgdm9pZCBQYWdlU2NyaXB0RGVidWdT
ZXJ2ZXI6OmRpZFJlbW92ZUxhc3RMaXN0ZW5lcihQYWdlKiBwYWdlKQogICAgIHBhZ2UtPnNldERl
YnVnZ2VyKDApOwogfQogCit2b2lkIFBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6cnVuRXZlbnRMb29w
V2hpbGVQYXVzZWQoKQoreworICAgIEV2ZW50TG9vcCBsb29wOworICAgIHdoaWxlICghbV9kb25l
UHJvY2Vzc2luZ0RlYnVnZ2VyRXZlbnRzICYmICFsb29wLmVuZGVkKCkpCisgICAgICAgIGxvb3Au
Y3ljbGUoKTsKK30KKwogdm9pZCBQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OnNldEphdmFTY3JpcHRQ
YXVzZWQoY29uc3QgUGFnZUdyb3VwJiBwYWdlR3JvdXAsIGJvb2wgcGF1c2VkKQogewogICAgIHNl
dE1haW5UaHJlYWRDYWxsYmFja3NQYXVzZWQocGF1c2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmgKaW5kZXggNzJhODkwZDdhZDU1
MTI2YTMyZGFkNDA1MzA2NDQyMzMxMTk3ZDg5YS4uODIzMmNkOWFkMGIwMTM2NjkzMDcyMTA5NzY3
MGZlZDRiODMyYTg4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFn
ZVNjcmlwdERlYnVnU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFn
ZVNjcmlwdERlYnVnU2VydmVyLmgKQEAgLTYzLDYgKzYzLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIHZvaWQgZGlkUGF1c2UoSlNDOjpKU0dsb2JhbE9iamVjdCopOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRDb250aW51ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CiAKKyAgICB2aXJ0dWFsIHZvaWQg
cnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKTsKKwogICAgIHZvaWQgZGlkUmVtb3ZlTGFzdExpc3Rl
bmVyKFBhZ2UqKTsKIAogICAgIHZvaWQgc2V0SmF2YVNjcmlwdFBhdXNlZChjb25zdCBQYWdlR3Jv
dXAmLCBib29sIHBhdXNlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHREZWJ1Z1NlcnZlci5jcHAKaW5kZXggZDZhNWFiODRiZGI1YzgwMTkwYjE4ZGExNjIwNTc1OWNm
NmRmZTg0Yi4uOGI3NzFlYTMwOGVkNDgxMDEwNDg4ZjFjMjhjMGRlMmJjYzliZTQ3OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmNwcApAQCAt
MzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIlNjcmlwdERlYnVnU2VydmVyLmgiCiAKICNpbmNsdWRl
ICJDb250ZW50U2VhcmNoVXRpbHMuaCIKLSNpbmNsdWRlICJFdmVudExvb3AuaCIKICNpbmNsdWRl
ICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTSmF2YVNjcmlwdENhbGxGcmFtZS5oIgogI2luY2x1ZGUg
IkphdmFTY3JpcHRDYWxsRnJhbWUuaCIKQEAgLTMzNCw3ICszMzMsNyBAQCB2b2lkIFNjcmlwdERl
YnVnU2VydmVyOjpkaXNwYXRjaEZhaWxlZFRvUGFyc2VTb3VyY2UoY29uc3QgTGlzdGVuZXJTZXQm
IGxpc3RlbmVycwogICAgICAgICBjb3B5W2ldLT5mYWlsZWRUb1BhcnNlU291cmNlKHVybCwgZGF0
YSwgZmlyc3RMaW5lLCBlcnJvckxpbmUsIGVycm9yTWVzc2FnZSk7CiB9CiAKLXN0YXRpYyBib29s
IGlzQ29udGVudFNjcmlwdChFeGVjU3RhdGUqIGV4ZWMpCitib29sIFNjcmlwdERlYnVnU2VydmVy
Ojppc0NvbnRlbnRTY3JpcHQoRXhlY1N0YXRlKiBleGVjKQogewogICAgIHJldHVybiBjdXJyZW50
V29ybGQoZXhlYykgIT0gbWFpblRocmVhZE5vcm1hbFdvcmxkKCk7CiB9CkBAIC00NDIsMTAgKzQ0
MSw4IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnBhdXNlSWZOZWVkZWQoSlNHbG9iYWxPYmpl
Y3QqIGR5bmFtaWNHbG9iYWxPYmplY3QpCiAKICAgICBUaW1lckJhc2U6OmZpcmVUaW1lcnNJbk5l
c3RlZEV2ZW50TG9vcCgpOwogCi0gICAgRXZlbnRMb29wIGxvb3A7CiAgICAgbV9kb25lUHJvY2Vz
c2luZ0RlYnVnZ2VyRXZlbnRzID0gZmFsc2U7Ci0gICAgd2hpbGUgKCFtX2RvbmVQcm9jZXNzaW5n
RGVidWdnZXJFdmVudHMgJiYgIWxvb3AuZW5kZWQoKSkKLSAgICAgICAgbG9vcC5jeWNsZSgpOwor
ICAgIHJ1bkV2ZW50TG9vcFdoaWxlUGF1c2VkKCk7CiAKICAgICBkaWRDb250aW51ZShkeW5hbWlj
R2xvYmFsT2JqZWN0KTsKICAgICBkaXNwYXRjaEZ1bmN0aW9uVG9MaXN0ZW5lcnMoJlNjcmlwdERl
YnVnU2VydmVyOjpkaXNwYXRjaERpZENvbnRpbnVlLCBkeW5hbWljR2xvYmFsT2JqZWN0KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5oCmluZGV4IGYy
NDUyOTY0YTkwNTVlNDE0NzRmZjA0ZDIxYzA5Njk5YjUwZDQyMDYuLjk5ZjY0NGU0MTY0ZDEwNWMz
MmNkNDk3M2YwMjcwZTU5MDhiMzcwZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvU2NyaXB0RGVidWdTZXJ2ZXIuaApAQCAtNDYsNiArNDYsNyBAQAogbmFtZXNwYWNlIEpTQyB7
CiBjbGFzcyBEZWJ1Z2dlckNhbGxGcmFtZTsKIGNsYXNzIEpTR2xvYmFsT2JqZWN0OworY2xhc3Mg
RXhlY1N0YXRlOwogfQogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMTMsNiArMTE0LDEwIEBA
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGF1c2UoSlNDOjpKU0dsb2JhbE9iamVj
dCopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29udGludWUoSlNDOjpKU0dsb2JhbE9iamVj
dCopID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBydW5FdmVudExvb3BXaGlsZVBhdXNlZCgpID0g
MDsKKworICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRlbnRTY3JpcHQoSlNDOjpFeGVjU3RhdGUqKTsK
KwogICAgIGJvb2wgaGFzQnJlYWtwb2ludChpbnRwdHJfdCBzb3VyY2VJRCwgY29uc3QgVGV4dFBv
c2l0aW9uJikgY29uc3Q7CiAKICAgICB2b2lkIGRpc3BhdGNoRnVuY3Rpb25Ub0xpc3RlbmVycyhK
YXZhU2NyaXB0RXhlY3V0aW9uQ2FsbGJhY2ssIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5j
cHAKaW5kZXggZTAwOWMwYjkwZjIzM2NlNDMwNmY1NjQzYzc0NWU1ODA3MWUwOTdhZS4uYmM5YmU4
ODNiNTAwOWZlNzZhZGI2M2U4ODI1YjVmNjU0OTE4MDRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTM4LDYg
KzM4LDcgQEAKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnREYXRhLmgiCiAjaW5jbHVkZSAiV29y
a2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlck9iamVjdFByb3h5LmgiCisjaW5jbHVkZSAi
V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNp
bmNsdWRlIDxoZWFwL1N0cm9uZ0lubGluZXMuaD4KICNpbmNsdWRlIDxpbnRlcnByZXRlci9JbnRl
cnByZXRlci5oPgpAQCAtMTk3LDYgKzE5OCwxNiBAQCB2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xs
ZXI6OmRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQogICAgIG1fd29ya2Vy
Q29udGV4dFdyYXBwZXItPnNldEV2YWxFbmFibGVkKGZhbHNlLCBlcnJvck1lc3NhZ2UpOwogfQog
Cit2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmF0dGFjaERlYnVnZ2VyKEpTQzo6RGVidWdn
ZXIqIGRlYnVnZ2VyKQoreworICAgIGRlYnVnZ2VyLT5hdHRhY2gobV93b3JrZXJDb250ZXh0V3Jh
cHBlci0+Z2xvYmFsRXhlYygpLT5keW5hbWljR2xvYmFsT2JqZWN0KCkpOworfQorCit2b2lkIFdv
cmtlclNjcmlwdENvbnRyb2xsZXI6OmRldGFjaERlYnVnZ2VyKEpTQzo6RGVidWdnZXIqIGRlYnVn
Z2VyKQoreworICAgIGRlYnVnZ2VyLT5kZXRhY2gobV93b3JrZXJDb250ZXh0V3JhcHBlci0+Z2xv
YmFsRXhlYygpLT5keW5hbWljR2xvYmFsT2JqZWN0KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV09SS0VSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAppbmRleCBhMzEzZmIwZmUx
YzUwNDUzNTI1MGNiNDNlYzcyMTM2YzY2ZTAwMzQxLi42NTE0MzYzMTFjZDM2MjMyNjMxMTAwNTZl
ZmZhYWFhODZjNDYwYjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
b3JrZXJTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V29ya2VyU2NyaXB0Q29udHJvbGxlci5oCkBAIC0yOSw3ICsyOSw3IEBACiAjZGVmaW5lIFdvcmtl
clNjcmlwdENvbnRyb2xsZXJfaAogCiAjaWYgRU5BQkxFKFdPUktFUlMpCi0KKyNpbmNsdWRlIDxk
ZWJ1Z2dlci9EZWJ1Z2dlci5oPgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+CiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CkBAIC03OSw2ICs3OSw5
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBKU0M6OkpTR2xvYmFsRGF0YSogZ2xv
YmFsRGF0YSgpIHsgcmV0dXJuIG1fZ2xvYmFsRGF0YS5nZXQoKTsgfQogCisgICAgICAgIHZvaWQg
YXR0YWNoRGVidWdnZXIoSlNDOjpEZWJ1Z2dlciopOworICAgICAgICB2b2lkIGRldGFjaERlYnVn
Z2VyKEpTQzo6RGVidWdnZXIqKTsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgaW5pdFNj
cmlwdElmTmVlZGVkKCkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCmluZGV4IDY3YmI0ZGE2ZDU1NTUy
ODVmMDAwYTNkMzZjMmFkYjk0ODZlODY1N2QuLmM4NWIzYjU2MDYyN2MzODA4NWIwODlhMWU1NjAw
YjVhYjhiNTIzNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtl
clNjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
b3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTMxLDI1ICszMSw2NSBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJMRShX
T1JLRVJTKQotCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaCIKKworI2luY2x1
ZGUgIldvcmtlckNvbnRleHQuaCIKKyNpbmNsdWRlICJXb3JrZXJEZWJ1Z2dlckFnZW50LmgiCisj
aW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgorCiAj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25z
dCBjaGFyKiBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6ZGVidWdnZXJUYXNrTW9kZSA9ICJkZWJ1
Z2dlciI7CiAKLVdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpXb3JrZXJTY3JpcHREZWJ1Z1NlcnZl
cihXb3JrZXJDb250ZXh0KikKK1dvcmtlclNjcmlwdERlYnVnU2VydmVyOjpXb3JrZXJTY3JpcHRE
ZWJ1Z1NlcnZlcihXb3JrZXJDb250ZXh0KiBjb250ZXh0KQogICAgIDogU2NyaXB0RGVidWdTZXJ2
ZXIoKQorICAgICwgbV93b3JrZXJDb250ZXh0KGNvbnRleHQpCit7Cit9CisKK3ZvaWQgV29ya2Vy
U2NyaXB0RGVidWdTZXJ2ZXI6OmFkZExpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqIGxpc3Rl
bmVyKQogeworICAgIGlmICghbGlzdGVuZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICht
X2xpc3RlbmVycy5pc0VtcHR5KCkpCisgICAgICAgIG1fd29ya2VyQ29udGV4dC0+c2NyaXB0KCkt
PmF0dGFjaERlYnVnZ2VyKHRoaXMpOworICAgIG1fbGlzdGVuZXJzLmFkZChsaXN0ZW5lcik7Cisg
ICAgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMoMCk7Cit9CisKK3ZvaWQgV29ya2VyU2NyaXB0RGVi
dWdTZXJ2ZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKFRpbWVyPFNjcmlwdERlYnVnU2VydmVy
PiopCit7CisgICAgSlNDOjpKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEgPSBtX3dvcmtlckNvbnRl
eHQtPnNjcmlwdCgpLT5nbG9iYWxEYXRhKCk7CisKKyAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2Nr
KGdsb2JhbERhdGEpOworICAgIC8vIElmIEphdmFTY3JpcHQgc3RhY2sgaXMgbm90IGVtcHR5IHBv
c3Rwb25lIHJlY29tcGlsYXRpb24uCisgICAgaWYgKGdsb2JhbERhdGEtPmR5bmFtaWNHbG9iYWxP
YmplY3QpCisgICAgICAgIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zU29vbigpOworICAgIGVsc2UK
KyAgICAgICAgSlNDOjpEZWJ1Z2dlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoZ2xvYmFsRGF0
YSk7CiB9CiAKLXZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmFkZExpc3RlbmVyKFNjcmlw
dERlYnVnTGlzdGVuZXIqKQordm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlz
dGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIpCiB7CisgICAgaWYgKCFsaXN0ZW5l
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9saXN0ZW5lcnMucmVtb3ZlKGxpc3RlbmVyKTsK
KyAgICBpZiAobV9saXN0ZW5lcnMuaXNFbXB0eSgpKQorICAgICAgICBtX3dvcmtlckNvbnRleHQt
PnNjcmlwdCgpLT5kZXRhY2hEZWJ1Z2dlcih0aGlzKTsKIH0KIAotdm9pZCBXb3JrZXJTY3JpcHRE
ZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciopCit2b2lkIFdv
cmtlclNjcmlwdERlYnVnU2VydmVyOjpydW5FdmVudExvb3BXaGlsZVBhdXNlZCgpCiB7CisgICAg
TWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQ7CisgICAgZG8geworICAgICAgICByZXN1bHQg
PSBtX3dvcmtlckNvbnRleHQtPnRocmVhZCgpLT5ydW5Mb29wKCkucnVuSW5Nb2RlKG1fd29ya2Vy
Q29udGV4dCwgV29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9kZSk7CisgICAgLy8g
S2VlcCB3YWl0aW5nIHVudGlsIGV4ZWN1dGlvbiBpcyByZXN1bWVkLgorICAgIH0gd2hpbGUgKHJl
c3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkICYmICFtX2RvbmVQcm9jZXNzaW5nRGVidWdn
ZXJFdmVudHMpOwogfQogCiB2b2lkIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjppbnRlcnJ1cHRB
bmRSdW5UYXNrKFBhc3NPd25QdHI8U2NyaXB0RGVidWdTZXJ2ZXI6OlRhc2s+KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmgKaW5k
ZXggZDJkNzcxMGM3ODJjZTJkMmY1ZWY4NjEwOWYxYWZiYzY0NjA5NjNhOS4uMTZhMDViNDQ5ZjVh
MzEyZDcyNDhmODU4ZWY5OTJhYmIzOWM1NzdkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oCkBAIC01MiwxMSArNTIsMTkg
QEAgcHVibGljOgogCiAgICAgdm9pZCBpbnRlcnJ1cHRBbmRSdW5UYXNrKFBhc3NPd25QdHI8U2Ny
aXB0RGVidWdTZXJ2ZXI6OlRhc2s+KTsKIAorICAgIHZvaWQgcmVjb21waWxlQWxsSlNGdW5jdGlv
bnMoVGltZXI8U2NyaXB0RGVidWdTZXJ2ZXI+Kik7CisKIHByaXZhdGU6Ci0gICAgdmlydHVhbCB2
b2lkIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKFRpbWVyPFNjcmlwdERlYnVnU2VydmVyPiopIHsg
fQotICAgIHZpcnR1YWwgTGlzdGVuZXJTZXQqIGdldExpc3RlbmVyc0Zvckdsb2JhbE9iamVjdChK
U0M6OkpTR2xvYmFsT2JqZWN0KikgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgTGlzdGVuZXJT
ZXQqIGdldExpc3RlbmVyc0Zvckdsb2JhbE9iamVjdChKU0M6OkpTR2xvYmFsT2JqZWN0KikgeyBy
ZXR1cm4gJm1fbGlzdGVuZXJzOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFBhdXNlKEpTQzo6SlNH
bG9iYWxPYmplY3QqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29udGludWUoSlNDOjpKU0ds
b2JhbE9iamVjdCopIHsgfQorCisgICAgdmlydHVhbCBib29sIGlzQ29udGVudFNjcmlwdChKU0M6
OkV4ZWNTdGF0ZSopIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgcnVuRXZl
bnRMb29wV2hpbGVQYXVzZWQoKTsKKworICAgIFdvcmtlckNvbnRleHQqIG1fd29ya2VyQ29udGV4
dDsKKyAgICBMaXN0ZW5lclNldCBtX2xpc3RlbmVyczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171804</attachid>
            <date>2012-11-01 03:23:19 -0700</date>
            <delta_ts>2012-11-02 03:25:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99801-20121101182135.patch</filename>
            <type>text/plain</type>
            <size>11811</size>
            <attacher name="Peter Wang">PeterHWang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc5Nzg3MzJhZGVlNWMz
NmFjZmVjZjFkYjgxYmU3MDVkOThmNzE2Yi4uMDRlMTQwMTIyMzQ0MjI0NDFhYzkwODQyMmZlNzBi
NzEyNDE1YzdkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTEwLTMwICBQZXRl
ciBXYW5nICA8cGV0ZXIud2FuZ0B0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogW0pTQ10gaW1wbGVtZW50IFdvcmtlclNjcmlwdERlYnVnU2VydmVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTgwMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGltcGxlbWVudCBXb3Jr
ZXIgSW5zcGVjdG9yIGZvciBKU0MuCisgICAgICAgIFRoZSB2aXJ0dWFsIGZ1bmN0aW9uICJydW5F
dmVudExvb3BXaGlsZVBhdXNlZCIgaXMgZGVmaW5lZCwgc2luY2UgdGhlcmUgYXJlIGRpZmZlcmVu
dCB3YXlzIHRvIGJsb2NrCisgICAgICAgIHRoZSBKUyBydW5uaW5nIGluIHdvcmtlci1jb250ZXh0
IGFuZCBub3JtYWwgcGFnZS1jb250ZXh0LgorICAgICAgICBUaGUgZnVuY3Rpb24gImlzQ29udGVu
dFNjcmlwdCIgbm93IGlzIHZpcnR1YWwgYmVjYXVzZSB0aGUgb3JpZ2luYWwgaW52b2tlZCBmdW5j
dGlvbnMgYXJlIHVzZWxlc3MKKyAgICAgICAgYW5kIGNhdXNlIHByb2JsZW0gaW4gd29ya2VyLWNv
bnRleHQuCisgICAgICAgIEluIGZ1bmN0aW9uICJXZWJDb3JlOjpXb3JrZXJTY3JpcHRDb250cm9s
bGVyOjphdHRhY2hEZWJ1Z2dlciIsIHdlIGludm9rZSAiaW5pdFNjcmlwdElmTmVlZGVkIiB0bwor
ICAgICAgICBlbnN1cmUgdGhlIEpTR2xvYmxhbE9iamVjdCBleGlzdCBpbiB0aGUgY2FzZSBvZiBh
dHRhY2hpbmcgRGVidWdnZXIgYmVmb3JlIGV4ZWN1dGluZyB0aGUgd29ya2VyCisgICAgICAgIEpT
IGNvZGUgKFBhdXNlIG9uIHN0YXJ0KS4KKworICAgICAgICBObyBuZXcgdGVzdCBjYXNlLgorCisg
ICAgICAgICogYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2VTY3JpcHREZWJ1Z1NlcnZlcjo6cnVuRXZlbnRMb29wV2hpbGVQYXVzZWQp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogYmluZGluZ3MvanMvUGFnZVNjcmlwdERl
YnVnU2VydmVyLmg6CisgICAgICAgIChQYWdlU2NyaXB0RGVidWdTZXJ2ZXIpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdERlYnVnU2VydmVyOjppc0NvbnRlbnRTY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
aXB0RGVidWdTZXJ2ZXI6OnBhdXNlSWZOZWVkZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1Nj
cmlwdERlYnVnU2VydmVyLmg6CisgICAgICAgIChKU0MpOgorICAgICAgICAoU2NyaXB0RGVidWdT
ZXJ2ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6YXR0YWNoRGVidWdn
ZXIpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHRD
b250cm9sbGVyOjpkZXRhY2hEZWJ1Z2dlcik6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2Vy
U2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAoV29ya2VyU2NyaXB0Q29udHJvbGxlcik6Cisg
ICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OldvcmtlclNjcmlwdERlYnVnU2Vy
dmVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0
RGVidWdTZXJ2ZXI6OmFkZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlw
dERlYnVnU2VydmVyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJ1bkV2ZW50TG9vcFdoaWxlUGF1c2VkKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oOgorICAgICAg
ICAoV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2Ny
aXB0RGVidWdTZXJ2ZXI6OmdldExpc3RlbmVyc0Zvckdsb2JhbE9iamVjdCk6CisgICAgICAgIChX
ZWJDb3JlOjpXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6aXNDb250ZW50U2NyaXB0KToKKwogMjAx
Mi0xMC0yOSAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgW1JlZmF0b3JpbmddIFJlbW92ZSBFbGVtZW50U2hhZG93OjppbnNlcnRpb25Qb2ludEZvcgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2Vy
dmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZl
ci5jcHAKaW5kZXggZWQ3NDNjYzllOWVjNTFjMGQ1MzE2MTA5NGYzM2Q5YzkyYWRiMTBkNi4uNmYw
YmMyY2QyZDE4OGRhMGQ1MTc0ZTJkYzVlM2YwMzgwOWQxZWEzNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCkBAIC0zNCw2
ICszNCw3IEBACiAKICNpbmNsdWRlICJQYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaCIKIAorI2luY2x1
ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3
LmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKQEAgLTE2Myw2ICsxNjQsMTMgQEAg
dm9pZCBQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OmRpZFJlbW92ZUxhc3RMaXN0ZW5lcihQYWdlKiBw
YWdlKQogICAgIHBhZ2UtPnNldERlYnVnZ2VyKDApOwogfQogCit2b2lkIFBhZ2VTY3JpcHREZWJ1
Z1NlcnZlcjo6cnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKQoreworICAgIEV2ZW50TG9vcCBsb29w
OworICAgIHdoaWxlICghbV9kb25lUHJvY2Vzc2luZ0RlYnVnZ2VyRXZlbnRzICYmICFsb29wLmVu
ZGVkKCkpCisgICAgICAgIGxvb3AuY3ljbGUoKTsKK30KKwogdm9pZCBQYWdlU2NyaXB0RGVidWdT
ZXJ2ZXI6OnNldEphdmFTY3JpcHRQYXVzZWQoY29uc3QgUGFnZUdyb3VwJiBwYWdlR3JvdXAsIGJv
b2wgcGF1c2VkKQogewogICAgIHNldE1haW5UaHJlYWRDYWxsYmFja3NQYXVzZWQocGF1c2VkKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1Nl
cnZlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVy
LmgKaW5kZXggNzJhODkwZDdhZDU1MTI2YTMyZGFkNDA1MzA2NDQyMzMxMTk3ZDg5YS4uODIzMmNk
OWFkMGIwMTM2NjkzMDcyMTA5NzY3MGZlZDRiODMyYTg4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmgKQEAgLTYzLDYgKzYzLDgg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGF1c2UoSlNDOjpKU0dsb2JhbE9iamVj
dCopOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb250aW51ZShKU0M6OkpTR2xvYmFsT2JqZWN0Kik7
CiAKKyAgICB2aXJ0dWFsIHZvaWQgcnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKTsKKwogICAgIHZv
aWQgZGlkUmVtb3ZlTGFzdExpc3RlbmVyKFBhZ2UqKTsKIAogICAgIHZvaWQgc2V0SmF2YVNjcmlw
dFBhdXNlZChjb25zdCBQYWdlR3JvdXAmLCBib29sIHBhdXNlZCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5kZXggZDZhNWFiODRiZGI1
YzgwMTkwYjE4ZGExNjIwNTc1OWNmNmRmZTg0Yi4uOGI3NzFlYTMwOGVkNDgxMDEwNDg4ZjFjMjhj
MGRlMmJjYzliZTQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dERlYnVnU2VydmVyLmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIlNjcmlwdERlYnVn
U2VydmVyLmgiCiAKICNpbmNsdWRlICJDb250ZW50U2VhcmNoVXRpbHMuaCIKLSNpbmNsdWRlICJF
dmVudExvb3AuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTSmF2YVNjcmlwdENh
bGxGcmFtZS5oIgogI2luY2x1ZGUgIkphdmFTY3JpcHRDYWxsRnJhbWUuaCIKQEAgLTMzNCw3ICsz
MzMsNyBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpkaXNwYXRjaEZhaWxlZFRvUGFyc2VTb3Vy
Y2UoY29uc3QgTGlzdGVuZXJTZXQmIGxpc3RlbmVycwogICAgICAgICBjb3B5W2ldLT5mYWlsZWRU
b1BhcnNlU291cmNlKHVybCwgZGF0YSwgZmlyc3RMaW5lLCBlcnJvckxpbmUsIGVycm9yTWVzc2Fn
ZSk7CiB9CiAKLXN0YXRpYyBib29sIGlzQ29udGVudFNjcmlwdChFeGVjU3RhdGUqIGV4ZWMpCiti
b29sIFNjcmlwdERlYnVnU2VydmVyOjppc0NvbnRlbnRTY3JpcHQoRXhlY1N0YXRlKiBleGVjKQog
ewogICAgIHJldHVybiBjdXJyZW50V29ybGQoZXhlYykgIT0gbWFpblRocmVhZE5vcm1hbFdvcmxk
KCk7CiB9CkBAIC00NDIsMTAgKzQ0MSw4IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnBhdXNl
SWZOZWVkZWQoSlNHbG9iYWxPYmplY3QqIGR5bmFtaWNHbG9iYWxPYmplY3QpCiAKICAgICBUaW1l
ckJhc2U6OmZpcmVUaW1lcnNJbk5lc3RlZEV2ZW50TG9vcCgpOwogCi0gICAgRXZlbnRMb29wIGxv
b3A7CiAgICAgbV9kb25lUHJvY2Vzc2luZ0RlYnVnZ2VyRXZlbnRzID0gZmFsc2U7Ci0gICAgd2hp
bGUgKCFtX2RvbmVQcm9jZXNzaW5nRGVidWdnZXJFdmVudHMgJiYgIWxvb3AuZW5kZWQoKSkKLSAg
ICAgICAgbG9vcC5jeWNsZSgpOworICAgIHJ1bkV2ZW50TG9vcFdoaWxlUGF1c2VkKCk7CiAKICAg
ICBkaWRDb250aW51ZShkeW5hbWljR2xvYmFsT2JqZWN0KTsKICAgICBkaXNwYXRjaEZ1bmN0aW9u
VG9MaXN0ZW5lcnMoJlNjcmlwdERlYnVnU2VydmVyOjpkaXNwYXRjaERpZENvbnRpbnVlLCBkeW5h
bWljR2xvYmFsT2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdERlYnVnU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRE
ZWJ1Z1NlcnZlci5oCmluZGV4IGYyNDUyOTY0YTkwNTVlNDE0NzRmZjA0ZDIxYzA5Njk5YjUwZDQy
MDYuLjk5ZjY0NGU0MTY0ZDEwNWMzMmNkNDk3M2YwMjcwZTU5MDhiMzcwZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaApAQCAtNDYsNiArNDYs
NyBAQAogbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBEZWJ1Z2dlckNhbGxGcmFtZTsKIGNsYXNzIEpT
R2xvYmFsT2JqZWN0OworY2xhc3MgRXhlY1N0YXRlOwogfQogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC0xMTMsNiArMTE0LDEwIEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGF1
c2UoSlNDOjpKU0dsb2JhbE9iamVjdCopID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29udGlu
dWUoSlNDOjpKU0dsb2JhbE9iamVjdCopID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBydW5FdmVu
dExvb3BXaGlsZVBhdXNlZCgpID0gMDsKKworICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRlbnRTY3Jp
cHQoSlNDOjpFeGVjU3RhdGUqKTsKKwogICAgIGJvb2wgaGFzQnJlYWtwb2ludChpbnRwdHJfdCBz
b3VyY2VJRCwgY29uc3QgVGV4dFBvc2l0aW9uJikgY29uc3Q7CiAKICAgICB2b2lkIGRpc3BhdGNo
RnVuY3Rpb25Ub0xpc3RlbmVycyhKYXZhU2NyaXB0RXhlY3V0aW9uQ2FsbGJhY2ssIEpTQzo6SlNH
bG9iYWxPYmplY3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29y
a2VyU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggZTAwOWMwYjkwZjIzM2NlNDMwNmY1NjQzYzc0
NWU1ODA3MWUwOTdhZS4uYzM0ZTI1OGFhODY3OTM2ZGE0ZWY1ZDY5NmUyYmM5M2ViYTc4YmI4MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29u
dHJvbGxlci5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJXZWJDb3JlSlNDbGllbnRE
YXRhLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlck9iamVj
dFByb3h5LmgiCisjaW5jbHVkZSAiV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaCIKICNpbmNsdWRl
ICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlIDxoZWFwL1N0cm9uZ0lubGluZXMuaD4KICNpbmNs
dWRlIDxpbnRlcnByZXRlci9JbnRlcnByZXRlci5oPgpAQCAtMTk3LDYgKzE5OCwxNyBAQCB2b2lk
IFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmRpc2FibGVFdmFsKGNvbnN0IFN0cmluZyYgZXJyb3JN
ZXNzYWdlKQogICAgIG1fd29ya2VyQ29udGV4dFdyYXBwZXItPnNldEV2YWxFbmFibGVkKGZhbHNl
LCBlcnJvck1lc3NhZ2UpOwogfQogCit2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmF0dGFj
aERlYnVnZ2VyKEpTQzo6RGVidWdnZXIqIGRlYnVnZ2VyKQoreworICAgIGluaXRTY3JpcHRJZk5l
ZWRlZCgpOworICAgIGRlYnVnZ2VyLT5hdHRhY2gobV93b3JrZXJDb250ZXh0V3JhcHBlci0+Z2xv
YmFsT2JqZWN0KCkpOworfQorCit2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmRldGFjaERl
YnVnZ2VyKEpTQzo6RGVidWdnZXIqIGRlYnVnZ2VyKQoreworICAgIGRlYnVnZ2VyLT5kZXRhY2go
bV93b3JrZXJDb250ZXh0V3JhcHBlci0+Z2xvYmFsT2JqZWN0KCkpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV09SS0VSUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAppbmRleCBhMzEz
ZmIwZmUxYzUwNDUzNTI1MGNiNDNlYzcyMTM2YzY2ZTAwMzQxLi42NTE0MzYzMTFjZDM2MjMyNjMx
MTAwNTZlZmZhYWFhODZjNDYwYjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oCkBAIC0yOSw3ICsyOSw3IEBACiAjZGVmaW5l
IFdvcmtlclNjcmlwdENvbnRyb2xsZXJfaAogCiAjaWYgRU5BQkxFKFdPUktFUlMpCi0KKyNpbmNs
dWRlIDxkZWJ1Z2dlci9EZWJ1Z2dlci5oPgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+CiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CkBAIC03OSw2
ICs3OSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBKU0M6OkpTR2xvYmFsRGF0
YSogZ2xvYmFsRGF0YSgpIHsgcmV0dXJuIG1fZ2xvYmFsRGF0YS5nZXQoKTsgfQogCisgICAgICAg
IHZvaWQgYXR0YWNoRGVidWdnZXIoSlNDOjpEZWJ1Z2dlciopOworICAgICAgICB2b2lkIGRldGFj
aERlYnVnZ2VyKEpTQzo6RGVidWdnZXIqKTsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQg
aW5pdFNjcmlwdElmTmVlZGVkKCkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCmluZGV4IDY3YmI0ZGE2
ZDU1NTUyODVmMDAwYTNkMzZjMmFkYjk0ODZlODY1N2QuLmM4NWIzYjU2MDYyN2MzODA4NWIwODlh
MWU1NjAwYjVhYjhiNTIzNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTMxLDI1ICszMSw2NSBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVO
QUJMRShXT1JLRVJTKQotCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaCIKKwor
I2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKKyNpbmNsdWRlICJXb3JrZXJEZWJ1Z2dlckFnZW50
LmgiCisjaW5jbHVkZSAiV29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgIldvcmtlclRocmVhZC5o
IgorCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjb25zdCBjaGFyKiBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6ZGVidWdnZXJUYXNrTW9kZSA9
ICJkZWJ1Z2dlciI7CiAKLVdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpXb3JrZXJTY3JpcHREZWJ1
Z1NlcnZlcihXb3JrZXJDb250ZXh0KikKK1dvcmtlclNjcmlwdERlYnVnU2VydmVyOjpXb3JrZXJT
Y3JpcHREZWJ1Z1NlcnZlcihXb3JrZXJDb250ZXh0KiBjb250ZXh0KQogICAgIDogU2NyaXB0RGVi
dWdTZXJ2ZXIoKQorICAgICwgbV93b3JrZXJDb250ZXh0KGNvbnRleHQpCit7Cit9CisKK3ZvaWQg
V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmFkZExpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIq
IGxpc3RlbmVyKQogeworICAgIGlmICghbGlzdGVuZXIpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChtX2xpc3RlbmVycy5pc0VtcHR5KCkpCisgICAgICAgIG1fd29ya2VyQ29udGV4dC0+c2Ny
aXB0KCktPmF0dGFjaERlYnVnZ2VyKHRoaXMpOworICAgIG1fbGlzdGVuZXJzLmFkZChsaXN0ZW5l
cik7CisgICAgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMoMCk7Cit9CisKK3ZvaWQgV29ya2VyU2Ny
aXB0RGVidWdTZXJ2ZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKFRpbWVyPFNjcmlwdERlYnVn
U2VydmVyPiopCit7CisgICAgSlNDOjpKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEgPSBtX3dvcmtl
ckNvbnRleHQtPnNjcmlwdCgpLT5nbG9iYWxEYXRhKCk7CisKKyAgICBKU0M6OkpTTG9ja0hvbGRl
ciBsb2NrKGdsb2JhbERhdGEpOworICAgIC8vIElmIEphdmFTY3JpcHQgc3RhY2sgaXMgbm90IGVt
cHR5IHBvc3Rwb25lIHJlY29tcGlsYXRpb24uCisgICAgaWYgKGdsb2JhbERhdGEtPmR5bmFtaWNH
bG9iYWxPYmplY3QpCisgICAgICAgIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zU29vbigpOworICAg
IGVsc2UKKyAgICAgICAgSlNDOjpEZWJ1Z2dlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoZ2xv
YmFsRGF0YSk7CiB9CiAKLXZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmFkZExpc3RlbmVy
KFNjcmlwdERlYnVnTGlzdGVuZXIqKQordm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cmVt
b3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIpCiB7CisgICAgaWYgKCFs
aXN0ZW5lcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9saXN0ZW5lcnMucmVtb3ZlKGxpc3Rl
bmVyKTsKKyAgICBpZiAobV9saXN0ZW5lcnMuaXNFbXB0eSgpKQorICAgICAgICBtX3dvcmtlckNv
bnRleHQtPnNjcmlwdCgpLT5kZXRhY2hEZWJ1Z2dlcih0aGlzKTsKIH0KIAotdm9pZCBXb3JrZXJT
Y3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciopCit2
b2lkIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpydW5FdmVudExvb3BXaGlsZVBhdXNlZCgpCiB7
CisgICAgTWVzc2FnZVF1ZXVlV2FpdFJlc3VsdCByZXN1bHQ7CisgICAgZG8geworICAgICAgICBy
ZXN1bHQgPSBtX3dvcmtlckNvbnRleHQtPnRocmVhZCgpLT5ydW5Mb29wKCkucnVuSW5Nb2RlKG1f
d29ya2VyQ29udGV4dCwgV29ya2VyRGVidWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9kZSk7Cisg
ICAgLy8gS2VlcCB3YWl0aW5nIHVudGlsIGV4ZWN1dGlvbiBpcyByZXN1bWVkLgorICAgIH0gd2hp
bGUgKHJlc3VsdCAhPSBNZXNzYWdlUXVldWVUZXJtaW5hdGVkICYmICFtX2RvbmVQcm9jZXNzaW5n
RGVidWdnZXJFdmVudHMpOwogfQogCiB2b2lkIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjppbnRl
cnJ1cHRBbmRSdW5UYXNrKFBhc3NPd25QdHI8U2NyaXB0RGVidWdTZXJ2ZXI6OlRhc2s+KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVy
LmgKaW5kZXggZDJkNzcxMGM3ODJjZTJkMmY1ZWY4NjEwOWYxYWZiYzY0NjA5NjNhOS4uMTZhMDVi
NDQ5ZjVhMzEyZDcyNDhmODU4ZWY5OTJhYmIzOWM1NzdkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oCkBAIC01MiwxMSAr
NTIsMTkgQEAgcHVibGljOgogCiAgICAgdm9pZCBpbnRlcnJ1cHRBbmRSdW5UYXNrKFBhc3NPd25Q
dHI8U2NyaXB0RGVidWdTZXJ2ZXI6OlRhc2s+KTsKIAorICAgIHZvaWQgcmVjb21waWxlQWxsSlNG
dW5jdGlvbnMoVGltZXI8U2NyaXB0RGVidWdTZXJ2ZXI+Kik7CisKIHByaXZhdGU6Ci0gICAgdmly
dHVhbCB2b2lkIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKFRpbWVyPFNjcmlwdERlYnVnU2VydmVy
PiopIHsgfQotICAgIHZpcnR1YWwgTGlzdGVuZXJTZXQqIGdldExpc3RlbmVyc0Zvckdsb2JhbE9i
amVjdChKU0M6OkpTR2xvYmFsT2JqZWN0KikgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgTGlz
dGVuZXJTZXQqIGdldExpc3RlbmVyc0Zvckdsb2JhbE9iamVjdChKU0M6OkpTR2xvYmFsT2JqZWN0
KikgeyByZXR1cm4gJm1fbGlzdGVuZXJzOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFBhdXNlKEpT
Qzo6SlNHbG9iYWxPYmplY3QqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29udGludWUoSlND
OjpKU0dsb2JhbE9iamVjdCopIHsgfQorCisgICAgdmlydHVhbCBib29sIGlzQ29udGVudFNjcmlw
dChKU0M6OkV4ZWNTdGF0ZSopIHsgcmV0dXJuIGZhbHNlOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQg
cnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKTsKKworICAgIFdvcmtlckNvbnRleHQqIG1fd29ya2Vy
Q29udGV4dDsKKyAgICBMaXN0ZW5lclNldCBtX2xpc3RlbmVyczsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>