<?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>93519</bug_id>
          
          <creation_ts>2012-08-08 14:11:44 -0700</creation_ts>
          <short_desc>Web Inspector: implement WorkerScriptDebugServer</short_desc>
          <delta_ts>2016-11-17 14:37:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>164136</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>95334</dependson>
    
    <dependson>95341</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Hanna">hanma</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>afscian</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>charles.wei</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>kpiascik</cc>
    
    <cc>loislo</cc>
    
    <cc>PeterHWang</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>yong.li.webkit</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>690712</commentid>
    <comment_count>0</comment_count>
    <who name="Hanna">hanma</who>
    <bug_when>2012-08-08 14:11:44 -0700</bug_when>
    <thetext>WorkerScriptDebugServer is declared but not implemented in jsc, without it the worker inspector frontend is faulty</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690714</commentid>
    <comment_count>1</comment_count>
    <who name="Hanna">hanma</who>
    <bug_when>2012-08-08 14:12:39 -0700</bug_when>
    <thetext>*** Bug 92652 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707408</commentid>
    <comment_count>2</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-08-29 06:41:43 -0700</bug_when>
    <thetext>The bug 95334 and 95341 are the existing defects that cause the worker inspector for JSC unable to work, so I put them in the independent bug record to make it easier to be reviewed. 
The patch for implementation of &quot;WorkerScriptDebugServer&quot; will be uploaded soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708527</commentid>
    <comment_count>3</comment_count>
      <attachid>161450</attachid>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-08-30 05:40:35 -0700</bug_when>
    <thetext>Created attachment 161450
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726708</commentid>
    <comment_count>4</comment_count>
      <attachid>161450</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-24 08:44:26 -0700</bug_when>
    <thetext>Comment on attachment 161450
Patch

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

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

How does inspector get notified about parsed scripts in case of worker if is is skipped here?

&gt; Source/WebCore/bindings/js/ScriptDebugServer.cpp:447
&gt; +void ScriptDebugServer::blockToWaitInstruction(bool&amp; stop)

I&apos;d call it runEventLoopWhilePaused

&gt; Source/WebCore/bindings/js/ScriptDebugServer.h:117
&gt; +    virtual void blockToWaitInstruction(bool&amp; stop);

m_doneProcessingDebuggerEvents is a protected field, no need to pass a reference to it as an argument.

&gt; Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp:71
&gt; +    m_workerContext-&gt;script()-&gt;attachDebugger(this);

This should happen only when first listener is added. We should probably simplify the API as I am not aware of any cases when we may have more than one listener.

&gt; Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp:81
&gt; +    m_workerContext-&gt;script()-&gt;detachDebugger(this);

This should only occur when there are no listeners.

&gt; Source/WebCore/bindings/js/WorkerScriptDebugServer.h:48
&gt; +    bool isWorkerDebugger() { return true; }

This method should be marked virtual.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729417</commentid>
    <comment_count>5</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-09-27 04:29:45 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 161450 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=161450&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/parser/Parser.h:1039
&gt; &gt; +    if (debugger &amp;&amp; !debugger-&gt;isWorkerDebugger() &amp;&amp; !ParsedNode::scopeIsFunction)
&gt; 
&gt; How does inspector get notified about parsed scripts in case of worker if is is skipped here?
The &quot;JSC::WorkerScriptDebugServer::addListener&quot; invokes &quot;recompileAllJSFunctions&quot; which will make &quot;JSC::Debugger::sourceParsed&quot; to be called.
Actually, if we don&apos;t skip here, worker inspector will have a problem in some case(refer to the attachement).
&gt; &gt; Source/WebCore/bindings/js/ScriptDebugServer.cpp:447
&gt; &gt; +void ScriptDebugServer::blockToWaitInstruction(bool&amp; stop)
&gt; 
&gt; I&apos;d call it runEventLoopWhilePaused
ok.
&gt; &gt; Source/WebCore/bindings/js/ScriptDebugServer.h:117
&gt; &gt; +    virtual void blockToWaitInstruction(bool&amp; stop);
&gt; 
&gt; m_doneProcessingDebuggerEvents is a protected field, no need to pass a reference to it as an argument.
ok, thx. 
&gt; &gt; Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp:71
&gt; &gt; +    m_workerContext-&gt;script()-&gt;attachDebugger(this);
&gt; 
&gt; This should happen only when first listener is added. We should probably simplify the API as I am not aware of any cases when we may have more than one listener.
yes, but JSC really needs interface &quot;addListener&quot; to inform of recompilation. 
&gt; &gt; Source/WebCore/bindings/js/WorkerScriptDebugServer.cpp:81
&gt; &gt; +    m_workerContext-&gt;script()-&gt;detachDebugger(this);
&gt; 
&gt; This should only occur when there are no listeners.
ok 
&gt; &gt; Source/WebCore/bindings/js/WorkerScriptDebugServer.h:48
&gt; &gt; +    bool isWorkerDebugger() { return true; }
&gt; 
&gt; This method should be marked virtual.
ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729419</commentid>
    <comment_count>6</comment_count>
      <attachid>165974</attachid>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-09-27 04:32:01 -0700</bug_when>
    <thetext>Created attachment 165974
The test case why we need to skip &quot;sourceParsed&quot; in &quot;Parser.h&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729420</commentid>
    <comment_count>7</comment_count>
      <attachid>165975</attachid>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-09-27 04:34:13 -0700</bug_when>
    <thetext>Created attachment 165975
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>729432</commentid>
    <comment_count>8</comment_count>
      <attachid>165978</attachid>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-09-27 05:00:23 -0700</bug_when>
    <thetext>Created attachment 165978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745999</commentid>
    <comment_count>9</comment_count>
    <who name="Peter Wang">PeterHWang</who>
    <bug_when>2012-10-18 22:51:36 -0700</bug_when>
    <thetext>However, the subject of this bug is confused, so I open a new bug#99801 to make it clear that what I&apos;m going to do.
So this bug should be closed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976872</commentid>
    <comment_count>10</comment_count>
      <attachid>165978</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-05 10:58:52 -0800</bug_when>
    <thetext>Comment on attachment 165978
Patch

Clearing review flag on patches from before 2014. If this patch is still relevant, please reset the r? flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252456</commentid>
    <comment_count>11</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-11-17 14:37:13 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 164136 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161450</attachid>
            <date>2012-08-30 05:40:35 -0700</date>
            <delta_ts>2012-09-27 05:00:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93519-20120830204008.patch</filename>
            <type>text/plain</type>
            <size>13097</size>
            <attacher name="Peter Wang">PeterHWang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2ODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
Mzc1ODZjM2NkNTdkZjM2MjU3NDdjOTEwNzlmOWQ3NzVmYjY0YTUwLi4yNzY1MjBiMzY0OGQzYzQ5
ZTAyNmE3NDMwZmJjODdjM2JlMTZjNzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxMi0wOC0zMCAgUGV0ZXIgV2FuZyAgPHBldGVyLndhbmdAdG9yY2htb2Jp
bGUuY29tLmNuPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGltcGxlbWVudCBXb3JrZXJTY3Jp
cHREZWJ1Z1NlcnZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTM1MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGb3IgdGhlIGNhc2UgdGhhdCB0aGUgSlMgb2YgYSB3b3JrZXIgaXMgZXhlY3V0ZWQgcGVy
aW9kaWNhbGx5LCB3ZSBzaG91bGRuJ3QgaW5mb3JtIHRoZSAKKyAgICAgICAgc291cmNlIGNvZGUg
dG8gZnJvbnRlbmQuIAorCisgICAgICAgICogZGVidWdnZXIvRGVidWdnZXIuaDoKKyAgICAgICAg
KiBwYXJzZXIvUGFyc2VyLmg6CisgICAgICAgIChKU0M6Ojo6cGFyc2UpOgorCiAyMDEyLTA4LTI3
ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMTI2ODM2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDk2MTlkMjUwYTdm
ZDBkZDFkODAwNzg2NDMxYzk3YjNlYzU3ODZlYzEuLmYwYWEwZjM1ZjQ2MDMwOGM5MjkzM2FmNmEw
YjJkMGU1Nzg4ZTRmMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAxMi0wOC0zMCAg
UGV0ZXIgV2FuZyAgPHBldGVyLndhbmdAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IGltcGxlbWVudCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM1MTkKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUbyBpbXBsZW1lbnQgdGhlIFdv
cmtlclNjcmlwdERlYnVnU2VydmVyLiBTaW5jZSB0aGUgSlNDIHdpbGwgcnVuIGEgZXZlbnQgbG9v
cCB3aGVuIGlzIHBhdXNlZCwKKyAgICAgICAgc28gaXQgZG9uJ3QgbmVlZCB0aGUgZnVuY3Rpb24g
ImludGVycnVwdEFuZFJ1blRhc2siLgorCisgICAgICAgIE5vIG5ldyB0ZXN0IGNhc2UgZm9yIHRo
aXMgcGF0Y2guCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZlcjo6c291cmNlUGFyc2VkKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdERlYnVnU2VydmVyOjpibG9ja1RvV2FpdEluc3RydWN0aW9u
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdTZXJ2
ZXI6OnBhdXNlSWZOZWVkZWQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdERlYnVnU2Vy
dmVyLmg6CisgICAgICAgIChTY3JpcHREZWJ1Z1NlcnZlcik6CisgICAgICAgICogYmluZGluZ3Mv
anMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJT
Y3JpcHRDb250cm9sbGVyOjphdHRhY2hEZWJ1Z2dlcik6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdENvbnRyb2xsZXI6OmRldGFjaERlYnVnZ2VyKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAg
IChXb3JrZXJTY3JpcHRDb250cm9sbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHREZWJ1
Z1NlcnZlcjo6V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cmVjb21waWxlQWxsSlNG
dW5jdGlvbnMpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmFk
ZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdERlYnVnU2VydmVyOjpy
ZW1vdmVMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTY3JpcHREZWJ1Z1NlcnZl
cjo6YmxvY2tUb1dhaXRJbnN0cnVjdGlvbik6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2Vy
U2NyaXB0RGVidWdTZXJ2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdERlYnVn
U2VydmVyOjppc1dvcmtlckRlYnVnZ2VyKToKKyAgICAgICAgKFdvcmtlclNjcmlwdERlYnVnU2Vy
dmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNjcmlwdERlYnVnU2VydmVyOjpnZXRMaXN0
ZW5lcnNGb3JHbG9iYWxPYmplY3QpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZENsaWVudExvY2FsLmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsOjpjYW5JbnNwZWN0V29ya2Vycyk6CisKIDIwMTItMDgtMjggIFNpbW9uIEhhdXNt
YW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gTmV3IHRlc3Qg
aW50cm9kdWNlZCBpbiByMTI2NjExIGZhaWxzOiBmYXN0L2Nzcy9pbWFnZS1zZXQtc2V0dGluZy5o
dG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdnZXIu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5oCmluZGV4IGJjNzQz
Njc3ZTIyNzQzNzZmOWRkMGQ4NWFhNWQ2ZDg3NTFiNTAxMDkuLjQ1MjkxZDVhZTk3YmVjNTY1MDE4
MjQwZmM1NzJkNmU2ZWI4NzI2ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZWJ1Z2dlci9EZWJ1Z2dlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dlci9E
ZWJ1Z2dlci5oCkBAIC00MSw2ICs0MSw4IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lk
IGF0dGFjaChKU0dsb2JhbE9iamVjdCopOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKEpT
R2xvYmFsT2JqZWN0Kik7CiAKKyAgICAgICAgdmlydHVhbCBib29sIGlzV29ya2VyRGVidWdnZXIo
KSB7IHJldHVybiBmYWxzZTsgfQorCiAgICAgICAgIHZpcnR1YWwgdm9pZCBzb3VyY2VQYXJzZWQo
RXhlY1N0YXRlKiwgU291cmNlUHJvdmlkZXIqLCBpbnQgZXJyb3JMaW5lTnVtYmVyLCBjb25zdCBV
U3RyaW5nJiBlcnJvck1lc3NhZ2UpID0gMDsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZXhjZXB0
aW9uKGNvbnN0IERlYnVnZ2VyQ2FsbEZyYW1lJiwgaW50cHRyX3QsIGludCwgaW50LCBib29sKSA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1BhcnNlci5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAppbmRleCA3OWE5NWI2OTYzYjQx
MjkwYmNhM2I0ZmE5Yzg1ODBmY2I2MjM1NTc2Li43OTg3YjEyZDE2YzYwZDNlM2JlZWFhZTZlYjMx
MDk4YWM2NzdlOTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1Bh
cnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvUGFyc2VyLmgKQEAgLTEw
MzYsNyArMTAzNiw3IEBAIFBhc3NSZWZQdHI8UGFyc2VkTm9kZT4gUGFyc2VyPExleGVyVHlwZT46
OnBhcnNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqCiAgICAgICAgICAgICAqZXhj
ZXB0aW9uID0gYWRkRXJyb3JJbmZvKGxleGljYWxHbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKSwg
Y3JlYXRlU3ludGF4RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgZXJyTXNnKSwgZXJyTGluZSwg
Km1fc291cmNlKTsKICAgICB9CiAKLSAgICBpZiAoZGVidWdnZXIgJiYgIVBhcnNlZE5vZGU6OnNj
b3BlSXNGdW5jdGlvbikKKyAgICBpZiAoZGVidWdnZXIgJiYgIWRlYnVnZ2VyLT5pc1dvcmtlckRl
YnVnZ2VyKCkgJiYgIVBhcnNlZE5vZGU6OnNjb3BlSXNGdW5jdGlvbikKICAgICAgICAgZGVidWdn
ZXItPnNvdXJjZVBhcnNlZChkZWJ1Z2dlckV4ZWNTdGF0ZSwgbV9zb3VyY2UtPnByb3ZpZGVyKCks
IGVyckxpbmUsIGVyck1zZyk7CiAKICAgICBtX2FyZW5hLT5yZXNldCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCmluZGV4IGJiY2Q1NDI5
OTY1NzBmYTEzNzk5YTRlNWE4Mjk1MDMwZGU1MGEwYTEuLmRlMzM4NTAyNzRjY2E0Y2Q4N2QwM2Rl
M2JlNjQwYjRkNjBhOGQ1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAgLTM5OCw3ICszOTgsNyBAQCB2b2lkIFNjcmlwdERlYnVn
U2VydmVyOjpzb3VyY2VQYXJzZWQoRXhlY1N0YXRlKiBleGVjLCBTb3VyY2VQcm92aWRlciogc291
cmNlUHJvdgogICAgIGlmIChpc0Vycm9yKQogICAgICAgICBkaXNwYXRjaEZhaWxlZFRvUGFyc2VT
b3VyY2UoKmxpc3RlbmVycywgc291cmNlUHJvdmlkZXIsIGVycm9yTGluZSwgdXN0cmluZ1RvU3Ry
aW5nKGVycm9yTWVzc2FnZSkpOwogICAgIGVsc2UKLSAgICAgICAgZGlzcGF0Y2hEaWRQYXJzZVNv
dXJjZSgqbGlzdGVuZXJzLCBzb3VyY2VQcm92aWRlciwgaXNDb250ZW50U2NyaXB0KGV4ZWMpKTsK
KyAgICAgICAgZGlzcGF0Y2hEaWRQYXJzZVNvdXJjZSgqbGlzdGVuZXJzLCBzb3VyY2VQcm92aWRl
ciwgaXNXb3JrZXJEZWJ1Z2dlcigpID8gZmFsc2UgOiBpc0NvbnRlbnRTY3JpcHQoZXhlYykpOwog
CiAgICAgbV9jYWxsaW5nTGlzdGVuZXJzID0gZmFsc2U7CiB9CkBAIC00NDQsNiArNDQ0LDEzIEBA
IHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnVwZGF0ZUNhbGxGcmFtZUFuZFBhdXNlSWZOZWVkZWQo
Y29uc3QgRGVidWdnZXJDYWxsRnJhbWUmCiAgICAgcGF1c2VJZk5lZWRlZChkZWJ1Z2dlckNhbGxG
cmFtZS5keW5hbWljR2xvYmFsT2JqZWN0KCkpOwogfQogCit2b2lkIFNjcmlwdERlYnVnU2VydmVy
OjpibG9ja1RvV2FpdEluc3RydWN0aW9uKGJvb2wmIHN0b3ApCit7CisgICAgRXZlbnRMb29wIGxv
b3A7CisgICAgd2hpbGUgKCFzdG9wICYmICFsb29wLmVuZGVkKCkpCisgICAgICAgIGxvb3AuY3lj
bGUoKTsKK30KKwogdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6cGF1c2VJZk5lZWRlZChKU0dsb2Jh
bE9iamVjdCogZHluYW1pY0dsb2JhbE9iamVjdCkKIHsKICAgICBpZiAobV9wYXVzZWQpCkBAIC00
NjcsMTAgKzQ3NCw4IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6OnBhdXNlSWZOZWVkZWQoSlNH
bG9iYWxPYmplY3QqIGR5bmFtaWNHbG9iYWxPYmplY3QpCiAKICAgICBUaW1lckJhc2U6OmZpcmVU
aW1lcnNJbk5lc3RlZEV2ZW50TG9vcCgpOwogCi0gICAgRXZlbnRMb29wIGxvb3A7CiAgICAgbV9k
b25lUHJvY2Vzc2luZ0RlYnVnZ2VyRXZlbnRzID0gZmFsc2U7Ci0gICAgd2hpbGUgKCFtX2RvbmVQ
cm9jZXNzaW5nRGVidWdnZXJFdmVudHMgJiYgIWxvb3AuZW5kZWQoKSkKLSAgICAgICAgbG9vcC5j
eWNsZSgpOworICAgIGJsb2NrVG9XYWl0SW5zdHJ1Y3Rpb24obV9kb25lUHJvY2Vzc2luZ0RlYnVn
Z2VyRXZlbnRzKTsKIAogICAgIGRpZENvbnRpbnVlKGR5bmFtaWNHbG9iYWxPYmplY3QpOwogICAg
IGRpc3BhdGNoRnVuY3Rpb25Ub0xpc3RlbmVycygmU2NyaXB0RGVidWdTZXJ2ZXI6OmRpc3BhdGNo
RGlkQ29udGludWUsIGR5bmFtaWNHbG9iYWxPYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmgKaW5kZXggOTM1OTE0YzZiNDE4ZGMzZmEzNjMz
Nzg3NDI2MjU3NWE1YWFkODVkMy4uOGY1YmVmNmQ0MzVkYThjYjY5ZTlkYWYwZWJhMTgwNjA2M2Y4
MmQyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdT
ZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZl
ci5oCkBAIC0xMTQsNiArMTE0LDggQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBkaWRQ
YXVzZShKU0M6OkpTR2xvYmFsT2JqZWN0KikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb250
aW51ZShKU0M6OkpTR2xvYmFsT2JqZWN0KikgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIGJsb2Nr
VG9XYWl0SW5zdHJ1Y3Rpb24oYm9vbCYgc3RvcCk7CisKICAgICBib29sIGhhc0JyZWFrcG9pbnQo
aW50cHRyX3Qgc291cmNlSUQsIGNvbnN0IFRleHRQb3NpdGlvbiYpIGNvbnN0OwogCiAgICAgdm9p
ZCBkaXNwYXRjaEZ1bmN0aW9uVG9MaXN0ZW5lcnMoSmF2YVNjcmlwdEV4ZWN1dGlvbkNhbGxiYWNr
LCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDliZmRlOGYyYWIyZTFkZTNk
NTNiMWNiZTIyYjMzY2RmNTVjNzY2NDUuLjY4NjVmMDczOTU1NGY2NzFjMjIzYmUwNWJlMTZkM2Nj
MjM4NmYyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNj
cmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtl
clNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiV2ViQ29y
ZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJX
b3JrZXJPYmplY3RQcm94eS5oIgorI2luY2x1ZGUgIldvcmtlclNjcmlwdERlYnVnU2VydmVyLmgi
CiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVz
Lmg+CiAjaW5jbHVkZSA8aW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuaD4KQEAgLTE5Niw2ICsxOTcs
MTYgQEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpkaXNhYmxlRXZhbCgpCiAgICAgbV93
b3JrZXJDb250ZXh0V3JhcHBlci0+c2V0RXZhbEVuYWJsZWQoZmFsc2UpOwogfQogCit2b2lkIFdv
cmtlclNjcmlwdENvbnRyb2xsZXI6OmF0dGFjaERlYnVnZ2VyKEpTQzo6RGVidWdnZXIqIGRlYnVn
Z2VyKQoreworICAgIGRlYnVnZ2VyLT5hdHRhY2gobV93b3JrZXJDb250ZXh0V3JhcHBlci0+Z2xv
YmFsRXhlYygpLT5keW5hbWljR2xvYmFsT2JqZWN0KCkpOworfQorCit2b2lkIFdvcmtlclNjcmlw
dENvbnRyb2xsZXI6OmRldGFjaERlYnVnZ2VyKEpTQzo6RGVidWdnZXIqIGRlYnVnZ2VyKQorewor
ICAgIGRlYnVnZ2VyLT5kZXRhY2gobV93b3JrZXJDb250ZXh0V3JhcHBlci0+Z2xvYmFsRXhlYygp
LT5keW5hbWljR2xvYmFsT2JqZWN0KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoV09SS0VSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuaAppbmRleCAzYjJhY2Q0YjY0ZDcwMzk5ZmMz
Nzg4YWZkOGI3Yzg2MWRmZjE2MmVjLi4wYTYzYTY1MWYzZjNiZTRhODFhOTAzMDA1YmQ2OGQxMzg0
YmViZTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3Jp
cHRDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5oCkBAIC0yOSw3ICsyOSw3IEBACiAjZGVmaW5lIFdvcmtlclNjcmlwdENv
bnRyb2xsZXJfaAogCiAjaWYgRU5BQkxFKFdPUktFUlMpCi0KKyNpbmNsdWRlIDxkZWJ1Z2dlci9E
ZWJ1Z2dlci5oPgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+CiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CkBAIC03OSw2ICs3OSw5IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBKU0M6OkpTR2xvYmFsRGF0YSogZ2xvYmFsRGF0YSgp
IHsgcmV0dXJuIG1fZ2xvYmFsRGF0YS5nZXQoKTsgfQogCisgICAgICAgIHZvaWQgYXR0YWNoRGVi
dWdnZXIoSlNDOjpEZWJ1Z2dlciopOworICAgICAgICB2b2lkIGRldGFjaERlYnVnZ2VyKEpTQzo6
RGVidWdnZXIqKTsKKwogICAgIHByaXZhdGU6CiAgICAgICAgIHZvaWQgaW5pdFNjcmlwdElmTmVl
ZGVkKCkKICAgICAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCmluZGV4IDY3YmI0ZGE2ZDU1NTUyODVmMDAwYTNk
MzZjMmFkYjk0ODZlODY1N2QuLjExNDVkYWQ5M2Y2Y2ExNTQyZWQxODkxYmI1ZjFmNDU2OTVmOTlm
YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdERl
YnVnU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3Jp
cHREZWJ1Z1NlcnZlci5jcHAKQEAgLTMxLDI1ICszMSw2MyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpICYmIEVOQUJMRShXT1JLRVJTKQot
CiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaCIKKworI2luY2x1ZGUgIldvcmtl
ckNvbnRleHQuaCIKKyNpbmNsdWRlICJXb3JrZXJEZWJ1Z2dlckFnZW50LmgiCisjaW5jbHVkZSAi
V29ya2VyUnVuTG9vcC5oIgorI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgorCiAjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBjaGFyKiBX
b3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6ZGVidWdnZXJUYXNrTW9kZSA9ICJkZWJ1Z2dlciI7CiAK
LVdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcihXb3JrZXJD
b250ZXh0KikKK1dvcmtlclNjcmlwdERlYnVnU2VydmVyOjpXb3JrZXJTY3JpcHREZWJ1Z1NlcnZl
cihXb3JrZXJDb250ZXh0KiBjb250ZXh0KQogICAgIDogU2NyaXB0RGVidWdTZXJ2ZXIoKQorICAg
ICwgbV93b3JrZXJDb250ZXh0KGNvbnRleHQpCit7Cit9CisKK3ZvaWQgV29ya2VyU2NyaXB0RGVi
dWdTZXJ2ZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKFRpbWVyPFNjcmlwdERlYnVnU2VydmVy
PiopCiB7CisgICAgSlNDOjpKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEgPSBtX3dvcmtlckNvbnRl
eHQtPnNjcmlwdCgpLT5nbG9iYWxEYXRhKCk7CisKKyAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2Nr
KGdsb2JhbERhdGEpOworICAgIC8vIElmIEphdmFTY3JpcHQgc3RhY2sgaXMgbm90IGVtcHR5IHBv
c3Rwb25lIHJlY29tcGlsYXRpb24uCisgICAgaWYgKGdsb2JhbERhdGEtPmR5bmFtaWNHbG9iYWxP
YmplY3QpCisgICAgICAgIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zU29vbigpOworICAgIGVsc2UK
KyAgICAgICAgSlNDOjpEZWJ1Z2dlcjo6cmVjb21waWxlQWxsSlNGdW5jdGlvbnMoZ2xvYmFsRGF0
YSk7Cit9CisKK3ZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmFkZExpc3RlbmVyKFNjcmlw
dERlYnVnTGlzdGVuZXIqIGxpc3RlbmVyKQoreworICAgIGlmICghbGlzdGVuZXIpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fbGlzdGVuZXJzLmFkZChsaXN0ZW5lcik7CisgICAgbV93b3JrZXJD
b250ZXh0LT5zY3JpcHQoKS0+YXR0YWNoRGVidWdnZXIodGhpcyk7CisgICAgcmVjb21waWxlQWxs
SlNGdW5jdGlvbnMoMCk7CiB9CiAKLXZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmFkZExp
c3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqKQordm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZl
cjo6cmVtb3ZlTGlzdGVuZXIoU2NyaXB0RGVidWdMaXN0ZW5lciogbGlzdGVuZXIpCiB7CisgICAg
aWYgKCFsaXN0ZW5lcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9saXN0ZW5lcnMucmVtb3Zl
KGxpc3RlbmVyKTsKKyAgICBtX3dvcmtlckNvbnRleHQtPnNjcmlwdCgpLT5kZXRhY2hEZWJ1Z2dl
cih0aGlzKTsKIH0KIAotdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlzdGVu
ZXIoU2NyaXB0RGVidWdMaXN0ZW5lciopCit2b2lkIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjpi
bG9ja1RvV2FpdEluc3RydWN0aW9uKGJvb2wmIHN0b3ApCiB7CisgICAgTWVzc2FnZVF1ZXVlV2Fp
dFJlc3VsdCByZXN1bHQ7CisgICAgZG8geworICAgICAgICByZXN1bHQgPSBtX3dvcmtlckNvbnRl
eHQtPnRocmVhZCgpLT5ydW5Mb29wKCkucnVuSW5Nb2RlKG1fd29ya2VyQ29udGV4dCwgV29ya2Vy
RGVidWdnZXJBZ2VudDo6ZGVidWdnZXJUYXNrTW9kZSk7CisgICAgLy8gS2VlcCB3YWl0aW5nIHVu
dGlsIGV4ZWN1dGlvbiBpcyByZXN1bWVkLgorICAgIH0gd2hpbGUgKHJlc3VsdCAhPSBNZXNzYWdl
UXVldWVUZXJtaW5hdGVkICYmICFzdG9wKTsKIH0KIAogdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1Nl
cnZlcjo6aW50ZXJydXB0QW5kUnVuVGFzayhQYXNzT3duUHRyPFNjcmlwdERlYnVnU2VydmVyOjpU
YXNrPikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlw
dERlYnVnU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRE
ZWJ1Z1NlcnZlci5oCmluZGV4IGQyZDc3MTBjNzgyY2UyZDJmNWVmODYxMDlmMWFmYmM2NDYwOTYz
YTkuLjczMjFlZWQyMmZiN2QyZjcxNWQ4MTA4MTQ1MTc1ZDhiNzhjNWUwMjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaApA
QCAtNDUsNiArNDUsOCBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgV29ya2VyU2NyaXB0RGVidWdT
ZXJ2ZXIoV29ya2VyQ29udGV4dCopOwogICAgIH5Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcigpIHsg
fQogCisgICAgYm9vbCBpc1dvcmtlckRlYnVnZ2VyKCkgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAg
dm9pZCBhZGRMaXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3RlbmVyKik7CiAgICAgdm9pZCByZW1vdmVM
aXN0ZW5lcihTY3JpcHREZWJ1Z0xpc3RlbmVyKik7CiAKQEAgLTUzLDEwICs1NSwxNSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBpbnRlcnJ1cHRBbmRSdW5UYXNrKFBhc3NPd25QdHI8U2NyaXB0RGVidWdT
ZXJ2ZXI6OlRhc2s+KTsKIAogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgcmVjb21waWxlQWxs
SlNGdW5jdGlvbnMoVGltZXI8U2NyaXB0RGVidWdTZXJ2ZXI+KikgeyB9Ci0gICAgdmlydHVhbCBM
aXN0ZW5lclNldCogZ2V0TGlzdGVuZXJzRm9yR2xvYmFsT2JqZWN0KEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCB2b2lkIHJlY29tcGlsZUFsbEpTRnVuY3Rp
b25zKFRpbWVyPFNjcmlwdERlYnVnU2VydmVyPiopOworICAgIHZpcnR1YWwgTGlzdGVuZXJTZXQq
IGdldExpc3RlbmVyc0Zvckdsb2JhbE9iamVjdChKU0M6OkpTR2xvYmFsT2JqZWN0KikgeyByZXR1
cm4gJm1fbGlzdGVuZXJzOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFBhdXNlKEpTQzo6SlNHbG9i
YWxPYmplY3QqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29udGludWUoSlNDOjpKU0dsb2Jh
bE9iamVjdCopIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGJsb2NrVG9XYWl0SW5zdHJ1Y3Rpb24o
Ym9vbCYgc3RvcCk7CisKKyAgICBXb3JrZXJDb250ZXh0KiBtX3dvcmtlckNvbnRleHQ7CisgICAg
TGlzdGVuZXJTZXQgbV9saXN0ZW5lcnM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRMb2NhbC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWwuaAppbmRleCA0MDI3Mzk3YWNkNjQ1Y2I4MjNhMjVkZmUxNjMwNGU1NGI3Yzg4ZDEz
Li5iZGZmY2FiMGM0MTE5MjhiMjliYjk2MWI0OTE4NDMyZDkzZGU3NDVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
LmgKQEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBjYW5TYXZlKCkg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2F2ZShjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmLCBib29sKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kKGNvbnN0IFN0
cmluZyYsIGNvbnN0IFN0cmluZyYpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBjYW5JbnNwZWN0V29y
a2VycygpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGNhbkluc3BlY3RXb3Jr
ZXJzKCkgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGF0dGFjaFdpbmRvdygp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoV2luZG93KCkgPSAwOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>165974</attachid>
            <date>2012-09-27 04:32:01 -0700</date>
            <delta_ts>2012-09-27 04:32:01 -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>165975</attachid>
            <date>2012-09-27 04:34:13 -0700</date>
            <delta_ts>2012-09-27 04:34:13 -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="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165978</attachid>
            <date>2012-09-27 05:00:23 -0700</date>
            <delta_ts>2014-02-05 10:58:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93519-20120927195939.patch</filename>
            <type>text/plain</type>
            <size>14052</size>
            <attacher name="Peter Wang">PeterHWang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NzQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAz
ZDk3MzlkOWVmY2U3MTA0MDYzNmUyNzVhODY4NmRmZDg3MGYzOWRmLi5lYjZkNGNlNWFmZTAwYjZm
ZDcwZDVlYzI5M2U2ZGRmMWM5ODFlMzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxMi0wOS0yNyAgUGV0ZXIgV2FuZyAgPHBldGVyLndhbmdAdG9yY2htb2Jp
bGUuY29tLmNuPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGltcGxlbWVudCBXb3JrZXJTY3Jp
cHREZWJ1Z1NlcnZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTM1MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBGb3IgdGhlIGNhc2UgdGhhdCB0aGUgSlMgb2YgYSB3b3JrZXIgaXMgZXhlY3V0ZWQgcGVy
aW9kaWNhbGx5LCB3ZSBzaG91bGRuJ3QgaW5mb3JtIHRoZQorICAgICAgICBzb3VyY2UgY29kZSB0
byBmcm9udGVuZC4KKworICAgICAgICAqIGRlYnVnZ2VyL0RlYnVnZ2VyLmg6CisgICAgICAgICog
cGFyc2VyL1BhcnNlci5oOgorICAgICAgICAoSlNDOjo6OnBhcnNlKToKKwogMjAxMi0wOS0yNyAg
UGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBbQ01ha2Vd
IEZpeCBidWlsZCB3aXRoIHN0YXRpYyBKYXZhU2NyaXB0Q29yZSBsaWJyYXJ5CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggMGE2MDZhODVlNmE1M2Y3NDVmNzE0MmViNjQ3ZjgyMGQ2MmJmZTY0ZS4uY2M0OWUwNDU5MzBm
ZGM4YTc4ZWE5OWQ0YWNlNmRhYTBiOTAwZjFiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBA
CisyMDEyLTA5LTI3ICBQZXRlciBXYW5nICA8cGV0ZXIud2FuZ0B0b3JjaG1vYmlsZS5jb20uY24+
CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogaW1wbGVtZW50IFdvcmtlclNjcmlwdERlYnVnU2Vy
dmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzUx
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGlt
cGxlbWVudCB0aGUgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuIFNpbmNlIHRoZSBKU0Mgd2lsbCBy
dW4gYSBldmVudCBsb29wIHdoZW4gaXMgcGF1c2VkLAorICAgICAgICBzbyBpdCBkb24ndCBuZWVk
IHRoZSBmdW5jdGlvbiAiaW50ZXJydXB0QW5kUnVuVGFzayIuCisKKyAgICAgICAgTm8gbmV3IHRl
c3QgY2FzZSBmb3IgdGhpcyBwYXRjaC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL1BhZ2VTY3Jp
cHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlU2NyaXB0RGVidWdTZXJ2
ZXI6OnJ1bkV2ZW50TG9vcFdoaWxlUGF1c2VkKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1NlcnZlci5oOgorICAgICAgICAoUGFnZVNj
cmlwdERlYnVnU2VydmVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZlcjo6c291cmNlUGFyc2Vk
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdERlYnVnU2VydmVyOjpwYXVzZUlmTmVlZGVkKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5oOgorICAgICAgICAoU2Ny
aXB0RGVidWdTZXJ2ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0Q29udHJvbGxlcjo6YXR0
YWNoRGVidWdnZXIpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJTY3JpcHRDb250cm9sbGVyOjpkZXRhY2hEZWJ1Z2dlcik6CisgICAgICAgICogYmluZGluZ3Mv
anMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAoV29ya2VyU2NyaXB0Q29udHJv
bGxlcik6CisgICAgICAgICogYmluZGluZ3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OldvcmtlclNjcmlw
dERlYnVnU2VydmVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKToKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlclNjcmlwdERlYnVnU2VydmVyOjphZGRMaXN0ZW5lcik6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6cmVtb3ZlTGlzdGVuZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJ1bkV2ZW50TG9vcFdoaWxl
UGF1c2VkKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5o
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmlzV29ya2VyRGVi
dWdnZXIpOgorICAgICAgICAoV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmdldExpc3RlbmVyc0Zvckdsb2JhbE9iamVj
dCk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbmplY3RlZFNjcmlwdEJhc2U6Om1ha2VDYWxsKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6Y2FuSW5zcGVjdFdvcmtlcnMpOgorCiAyMDEy
LTA5LTI3ICBZb3NoaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
W0Zvcm1zXSBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSBjbGFzcyBzaG91
bGQgaW5oZXJpdCBEYXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVyIHJhdGhlciB0
aGFuIGNvbnRhaW5pbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1Z2dl
ci9EZWJ1Z2dlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmgK
aW5kZXggM2M0YTRlZDc2MjE5Y2MyMWY0YTk2NjM0YzRiMjYxNzE5ZGU4ZWM0YS4uMTM3N2IxMjI3
OTI3NzhlOWNkZWIyOTIwOTUxMzhlYmJkZTZmZTMyMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RlYnVnZ2VyL0RlYnVnZ2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyLmgKQEAgLTQwLDYgKzQwLDggQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgIHZvaWQgYXR0YWNoKEpTR2xvYmFsT2JqZWN0Kik7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBkZXRhY2goSlNHbG9iYWxPYmplY3QqKTsKIAorICAgICAgICB2aXJ0dWFsIGJvb2wgaXNXb3Jr
ZXJEZWJ1Z2dlcigpIHsgcmV0dXJuIGZhbHNlOyB9CisKICAgICAgICAgdmlydHVhbCB2b2lkIHNv
dXJjZVBhcnNlZChFeGVjU3RhdGUqLCBTb3VyY2VQcm92aWRlciosIGludCBlcnJvckxpbmVOdW1i
ZXIsIGNvbnN0IFdURjo6U3RyaW5nJiBlcnJvck1lc3NhZ2UpID0gMDsKIAogICAgICAgICB2aXJ0
dWFsIHZvaWQgZXhjZXB0aW9uKGNvbnN0IERlYnVnZ2VyQ2FsbEZyYW1lJiwgaW50cHRyX3QsIGlu
dCwgaW50LCBib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFy
c2VyL1BhcnNlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9QYXJzZXIuaAppbmRl
eCBlNjU3ZTEyY2RkYmNlYWNiOTA2ZGJjNTk5ZmIzNDhhNzUyYjVhZGNjLi5hYzdiZTFhNGMyZTMy
ZjA4MDU2NmY5ZTUyYmM1NzllYjMxYWMzZjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGFyc2VyL1BhcnNlci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIv
UGFyc2VyLmgKQEAgLTEwMTYsNyArMTAxNiw3IEBAIFBhc3NSZWZQdHI8UGFyc2VkTm9kZT4gUGFy
c2VyPExleGVyVHlwZT46OnBhcnNlKEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqCiAg
ICAgICAgICAgICAqZXhjZXB0aW9uID0gYWRkRXJyb3JJbmZvKGxleGljYWxHbG9iYWxPYmplY3Qt
Pmdsb2JhbEV4ZWMoKSwgY3JlYXRlU3ludGF4RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgZXJy
TXNnKSwgZXJyTGluZSwgKm1fc291cmNlKTsKICAgICB9CiAKLSAgICBpZiAoZGVidWdnZXIgJiYg
IVBhcnNlZE5vZGU6OnNjb3BlSXNGdW5jdGlvbikKKyAgICBpZiAoZGVidWdnZXIgJiYgIWRlYnVn
Z2VyLT5pc1dvcmtlckRlYnVnZ2VyKCkgJiYgIVBhcnNlZE5vZGU6OnNjb3BlSXNGdW5jdGlvbikK
ICAgICAgICAgZGVidWdnZXItPnNvdXJjZVBhcnNlZChkZWJ1Z2dlckV4ZWNTdGF0ZSwgbV9zb3Vy
Y2UtPnByb3ZpZGVyKCksIGVyckxpbmUsIGVyck1zZyk7CiAKICAgICBtX2FyZW5hLT5yZXNldCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVn
U2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1Z1Nl
cnZlci5jcHAKaW5kZXggZmYwYWVlZmI1MGE2MDhjOTIxMDMzZDk4NzkzM2NkYzY1ZmNmZDJjOS4u
OTg2Y2ZkZjRhY2Y5MTExOWU2ZWYxOGQ3ZGEwZGMxOTQ5OGZlYTVhNCAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9QYWdlU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCkBAIC0z
NCw2ICszNCw3IEBACiAKICNpbmNsdWRlICJQYWdlU2NyaXB0RGVidWdTZXJ2ZXIuaCIKIAorI2lu
Y2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCiAjaW5jbHVkZSAiSlNET01XaW5kb3dDdXN0b20uaCIKQEAgLTE2Myw2ICsxNjQsMTMg
QEAgdm9pZCBQYWdlU2NyaXB0RGVidWdTZXJ2ZXI6OmRpZFJlbW92ZUxhc3RMaXN0ZW5lcihQYWdl
KiBwYWdlKQogICAgIHBhZ2UtPnNldERlYnVnZ2VyKDApOwogfQogCit2b2lkIFBhZ2VTY3JpcHRE
ZWJ1Z1NlcnZlcjo6cnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKQoreworICAgIEV2ZW50TG9vcCBs
b29wOworICAgIHdoaWxlICghbV9kb25lUHJvY2Vzc2luZ0RlYnVnZ2VyRXZlbnRzICYmICFsb29w
LmVuZGVkKCkpCisgICAgICAgIGxvb3AuY3ljbGUoKTsKK30KKwogdm9pZCBQYWdlU2NyaXB0RGVi
dWdTZXJ2ZXI6OnNldEphdmFTY3JpcHRQYXVzZWQoY29uc3QgUGFnZUdyb3VwJiBwYWdlR3JvdXAs
IGJvb2wgcGF1c2VkKQogewogICAgIHNldE1haW5UaHJlYWRDYWxsYmFja3NQYXVzZWQocGF1c2Vk
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1BhZ2VTY3JpcHREZWJ1
Z1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2Vy
dmVyLmgKaW5kZXggNzJhODkwZDdhZDU1MTI2YTMyZGFkNDA1MzA2NDQyMzMxMTk3ZDg5YS4uODIz
MmNkOWFkMGIwMTM2NjkzMDcyMTA5NzY3MGZlZDRiODMyYTg4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvUGFnZVNjcmlwdERlYnVnU2VydmVyLmgKQEAgLTYzLDYgKzYz
LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkUGF1c2UoSlNDOjpKU0dsb2JhbE9i
amVjdCopOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb250aW51ZShKU0M6OkpTR2xvYmFsT2JqZWN0
Kik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKTsKKwogICAg
IHZvaWQgZGlkUmVtb3ZlTGFzdExpc3RlbmVyKFBhZ2UqKTsKIAogICAgIHZvaWQgc2V0SmF2YVNj
cmlwdFBhdXNlZChjb25zdCBQYWdlR3JvdXAmLCBib29sIHBhdXNlZCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5kZXggYWE2MGEyZGQ4
YTM1OGJmYzVkZTExZDNiMGM0NzBlMmViOTE0ZGJhMS4uZjg5MDliN2FmODE5MDRkOGNmMDlkNzE4
ZmIzOGFjZjk2ODc1Yzc1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
U2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdERlYnVnU2VydmVyLmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIlNjcmlwdERl
YnVnU2VydmVyLmgiCiAKICNpbmNsdWRlICJDb250ZW50U2VhcmNoVXRpbHMuaCIKLSNpbmNsdWRl
ICJFdmVudExvb3AuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkpTSmF2YVNjcmlw
dENhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkphdmFTY3JpcHRDYWxsRnJhbWUuaCIKQEAgLTM5OCw3
ICszOTcsNyBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpzb3VyY2VQYXJzZWQoRXhlY1N0YXRl
KiBleGVjLCBTb3VyY2VQcm92aWRlciogc291cmNlUHJvdgogICAgIGlmIChpc0Vycm9yKQogICAg
ICAgICBkaXNwYXRjaEZhaWxlZFRvUGFyc2VTb3VyY2UoKmxpc3RlbmVycywgc291cmNlUHJvdmlk
ZXIsIGVycm9yTGluZSwgZXJyb3JNZXNzYWdlKTsKICAgICBlbHNlCi0gICAgICAgIGRpc3BhdGNo
RGlkUGFyc2VTb3VyY2UoKmxpc3RlbmVycywgc291cmNlUHJvdmlkZXIsIGlzQ29udGVudFNjcmlw
dChleGVjKSk7CisgICAgICAgIGRpc3BhdGNoRGlkUGFyc2VTb3VyY2UoKmxpc3RlbmVycywgc291
cmNlUHJvdmlkZXIsIGlzV29ya2VyRGVidWdnZXIoKSA/IGZhbHNlIDogaXNDb250ZW50U2NyaXB0
KGV4ZWMpKTsKIAogICAgIG1fY2FsbGluZ0xpc3RlbmVycyA9IGZhbHNlOwogfQpAQCAtNDY3LDEw
ICs0NjYsOCBAQCB2b2lkIFNjcmlwdERlYnVnU2VydmVyOjpwYXVzZUlmTmVlZGVkKEpTR2xvYmFs
T2JqZWN0KiBkeW5hbWljR2xvYmFsT2JqZWN0KQogCiAgICAgVGltZXJCYXNlOjpmaXJlVGltZXJz
SW5OZXN0ZWRFdmVudExvb3AoKTsKIAotICAgIEV2ZW50TG9vcCBsb29wOwogICAgIG1fZG9uZVBy
b2Nlc3NpbmdEZWJ1Z2dlckV2ZW50cyA9IGZhbHNlOwotICAgIHdoaWxlICghbV9kb25lUHJvY2Vz
c2luZ0RlYnVnZ2VyRXZlbnRzICYmICFsb29wLmVuZGVkKCkpCi0gICAgICAgIGxvb3AuY3ljbGUo
KTsKKyAgICBydW5FdmVudExvb3BXaGlsZVBhdXNlZCgpOwogCiAgICAgZGlkQ29udGludWUoZHlu
YW1pY0dsb2JhbE9iamVjdCk7CiAgICAgZGlzcGF0Y2hGdW5jdGlvblRvTGlzdGVuZXJzKCZTY3Jp
cHREZWJ1Z1NlcnZlcjo6ZGlzcGF0Y2hEaWRDb250aW51ZSwgZHluYW1pY0dsb2JhbE9iamVjdCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZl
ci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0RGVidWdTZXJ2ZXIuaAppbmRl
eCAwODk0MTA2YWExOTA0MDgwMWVkZTMyMDQwMTc5YTZhMmYzMGQ1ODI3Li5iMjJjYjViMGQwNDU0
NWNkMzI0NzkzNWNmMzc0Y2Y4YzUxMjE5YTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9TY3JpcHREZWJ1Z1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdERlYnVnU2VydmVyLmgKQEAgLTExMyw2ICsxMTMsOCBAQCBwcm90ZWN0ZWQ6
CiAgICAgdmlydHVhbCB2b2lkIGRpZFBhdXNlKEpTQzo6SlNHbG9iYWxPYmplY3QqKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGRpZENvbnRpbnVlKEpTQzo6SlNHbG9iYWxPYmplY3QqKSA9IDA7CiAK
KyAgICB2aXJ0dWFsIHZvaWQgcnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKSA9IDA7CisKICAgICBi
b29sIGhhc0JyZWFrcG9pbnQoaW50cHRyX3Qgc291cmNlSUQsIGNvbnN0IFRleHRQb3NpdGlvbiYp
IGNvbnN0OwogCiAgICAgdm9pZCBkaXNwYXRjaEZ1bmN0aW9uVG9MaXN0ZW5lcnMoSmF2YVNjcmlw
dEV4ZWN1dGlvbkNhbGxiYWNrLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4
IDU1YzM0NzY3YjNkM2FiMzg0MjRiYmExYWRhOTk2ZGJiZmQ1NTNkMjkuLmUzOTcwNjU2YWM5MmE1
ZjdhYTRkZDc2M2IyNWIxOWNiODQzNzJmMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC0zOCw2ICszOCw3IEBA
CiAjaW5jbHVkZSAiV2ViQ29yZUpTQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRl
eHQuaCIKICNpbmNsdWRlICJXb3JrZXJPYmplY3RQcm94eS5oIgorI2luY2x1ZGUgIldvcmtlclNj
cmlwdERlYnVnU2VydmVyLmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSA8
aGVhcC9TdHJvbmdJbmxpbmVzLmg+CiAjaW5jbHVkZSA8aW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIu
aD4KQEAgLTE5Nyw2ICsxOTgsMTYgQEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpkaXNh
YmxlRXZhbChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKICAgICBtX3dvcmtlckNvbnRleHRX
cmFwcGVyLT5zZXRFdmFsRW5hYmxlZChmYWxzZSwgZXJyb3JNZXNzYWdlKTsKIH0KIAordm9pZCBX
b3JrZXJTY3JpcHRDb250cm9sbGVyOjphdHRhY2hEZWJ1Z2dlcihKU0M6OkRlYnVnZ2VyKiBkZWJ1
Z2dlcikKK3sKKyAgICBkZWJ1Z2dlci0+YXR0YWNoKG1fd29ya2VyQ29udGV4dFdyYXBwZXItPmds
b2JhbEV4ZWMoKS0+ZHluYW1pY0dsb2JhbE9iamVjdCgpKTsKK30KKwordm9pZCBXb3JrZXJTY3Jp
cHRDb250cm9sbGVyOjpkZXRhY2hEZWJ1Z2dlcihKU0M6OkRlYnVnZ2VyKiBkZWJ1Z2dlcikKK3sK
KyAgICBkZWJ1Z2dlci0+ZGV0YWNoKG1fd29ya2VyQ29udGV4dFdyYXBwZXItPmdsb2JhbEV4ZWMo
KS0+ZHluYW1pY0dsb2JhbE9iamVjdCgpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKFdPUktFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmgKaW5kZXggYTMxM2ZiMGZlMWM1MDQ1MzUy
NTBjYjQzZWM3MjEzNmM2NmUwMDM0MS4uNjUxNDM2MzExY2QzNjIzMjYzMTEwMDU2ZWZmYWFhYTg2
YzQ2MGI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNj
cmlwdENvbnRyb2xsZXIuaApAQCAtMjksNyArMjksNyBAQAogI2RlZmluZSBXb3JrZXJTY3JpcHRD
b250cm9sbGVyX2gKIAogI2lmIEVOQUJMRShXT1JLRVJTKQotCisjaW5jbHVkZSA8ZGVidWdnZXIv
RGVidWdnZXIuaD4KICNpbmNsdWRlIDxoZWFwL1N0cm9uZy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgpAQCAtNzksNiArNzksOSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgSlNDOjpKU0dsb2JhbERhdGEqIGdsb2JhbERhdGEo
KSB7IHJldHVybiBtX2dsb2JhbERhdGEuZ2V0KCk7IH0KIAorICAgICAgICB2b2lkIGF0dGFjaERl
YnVnZ2VyKEpTQzo6RGVidWdnZXIqKTsKKyAgICAgICAgdm9pZCBkZXRhY2hEZWJ1Z2dlcihKU0M6
OkRlYnVnZ2VyKik7CisKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGluaXRTY3JpcHRJZk5l
ZWRlZCgpCiAgICAgICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmNwcAppbmRleCA2N2JiNGRhNmQ1NTU1Mjg1ZjAwMGEz
ZDM2YzJhZGI5NDg2ZTg2NTdkLi44ZjA2MmM3ZWNlMjFmOTM5MTU1NDJjYTdhMTM4ZWM5ZmVkZTE0
MTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRE
ZWJ1Z1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwCkBAIC0zMSwyNSArMzEsNjUgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKSAmJiBFTkFCTEUoV09SS0VSUykK
LQogI2luY2x1ZGUgIldvcmtlclNjcmlwdERlYnVnU2VydmVyLmgiCisKKyNpbmNsdWRlICJXb3Jr
ZXJDb250ZXh0LmgiCisjaW5jbHVkZSAiV29ya2VyRGVidWdnZXJBZ2VudC5oIgorI2luY2x1ZGUg
IldvcmtlclJ1bkxvb3AuaCIKKyNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKKwogI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgY2hhciog
V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OmRlYnVnZ2VyVGFza01vZGUgPSAiZGVidWdnZXIiOwog
Ci1Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6V29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIoV29ya2Vy
Q29udGV4dCopCitXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6V29ya2VyU2NyaXB0RGVidWdTZXJ2
ZXIoV29ya2VyQ29udGV4dCogY29udGV4dCkKICAgICA6IFNjcmlwdERlYnVnU2VydmVyKCkKKyAg
ICAsIG1fd29ya2VyQ29udGV4dChjb250ZXh0KQoreworfQorCit2b2lkIFdvcmtlclNjcmlwdERl
YnVnU2VydmVyOjpyZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyhUaW1lcjxTY3JpcHREZWJ1Z1NlcnZl
cj4qKQogeworICAgIEpTQzo6SlNHbG9iYWxEYXRhKiBnbG9iYWxEYXRhID0gbV93b3JrZXJDb250
ZXh0LT5zY3JpcHQoKS0+Z2xvYmFsRGF0YSgpOworCisgICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9j
ayhnbG9iYWxEYXRhKTsKKyAgICAvLyBJZiBKYXZhU2NyaXB0IHN0YWNrIGlzIG5vdCBlbXB0eSBw
b3N0cG9uZSByZWNvbXBpbGF0aW9uLgorICAgIGlmIChnbG9iYWxEYXRhLT5keW5hbWljR2xvYmFs
T2JqZWN0KQorICAgICAgICByZWNvbXBpbGVBbGxKU0Z1bmN0aW9uc1Nvb24oKTsKKyAgICBlbHNl
CisgICAgICAgIEpTQzo6RGVidWdnZXI6OnJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKGdsb2JhbERh
dGEpOworfQorCit2b2lkIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjphZGRMaXN0ZW5lcihTY3Jp
cHREZWJ1Z0xpc3RlbmVyKiBsaXN0ZW5lcikKK3sKKyAgICBpZiAoIWxpc3RlbmVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAobV9saXN0ZW5lcnMuaXNFbXB0eSgpKQorICAgICAgICBtX3dv
cmtlckNvbnRleHQtPnNjcmlwdCgpLT5hdHRhY2hEZWJ1Z2dlcih0aGlzKTsKKyAgICBtX2xpc3Rl
bmVycy5hZGQobGlzdGVuZXIpOworICAgIHJlY29tcGlsZUFsbEpTRnVuY3Rpb25zKDApOwogfQog
Ci12b2lkIFdvcmtlclNjcmlwdERlYnVnU2VydmVyOjphZGRMaXN0ZW5lcihTY3JpcHREZWJ1Z0xp
c3RlbmVyKikKK3ZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXI6OnJlbW92ZUxpc3RlbmVyKFNj
cmlwdERlYnVnTGlzdGVuZXIqIGxpc3RlbmVyKQogeworICAgIGlmICghbGlzdGVuZXIpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fbGlzdGVuZXJzLnJlbW92ZShsaXN0ZW5lcik7CisgICAgaWYg
KG1fbGlzdGVuZXJzLmlzRW1wdHkoKSkKKyAgICAgICAgbV93b3JrZXJDb250ZXh0LT5zY3JpcHQo
KS0+ZGV0YWNoRGVidWdnZXIodGhpcyk7CiB9CiAKLXZvaWQgV29ya2VyU2NyaXB0RGVidWdTZXJ2
ZXI6OnJlbW92ZUxpc3RlbmVyKFNjcmlwdERlYnVnTGlzdGVuZXIqKQordm9pZCBXb3JrZXJTY3Jp
cHREZWJ1Z1NlcnZlcjo6cnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKQogeworICAgIE1lc3NhZ2VR
dWV1ZVdhaXRSZXN1bHQgcmVzdWx0OworICAgIGRvIHsKKyAgICAgICAgcmVzdWx0ID0gbV93b3Jr
ZXJDb250ZXh0LT50aHJlYWQoKS0+cnVuTG9vcCgpLnJ1bkluTW9kZShtX3dvcmtlckNvbnRleHQs
IFdvcmtlckRlYnVnZ2VyQWdlbnQ6OmRlYnVnZ2VyVGFza01vZGUpOworICAgIC8vIEtlZXAgd2Fp
dGluZyB1bnRpbCBleGVjdXRpb24gaXMgcmVzdW1lZC4KKyAgICB9IHdoaWxlIChyZXN1bHQgIT0g
TWVzc2FnZVF1ZXVlVGVybWluYXRlZCAmJiAhbV9kb25lUHJvY2Vzc2luZ0RlYnVnZ2VyRXZlbnRz
KTsKIH0KIAogdm9pZCBXb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcjo6aW50ZXJydXB0QW5kUnVuVGFz
ayhQYXNzT3duUHRyPFNjcmlwdERlYnVnU2VydmVyOjpUYXNrPikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlci5oCmluZGV4IGQyZDc3
MTBjNzgyY2UyZDJmNWVmODYxMDlmMWFmYmM2NDYwOTYzYTkuLmM2NGIyMDk2YjEwMmVkNmUwZDM2
YmQzZjI0N2MyZjY0MTkyYWY1ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dvcmtlclNjcmlwdERlYnVnU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIuaApAQCAtNDUsNiArNDUsOCBAQCBwdWJsaWM6
CiAgICAgZXhwbGljaXQgV29ya2VyU2NyaXB0RGVidWdTZXJ2ZXIoV29ya2VyQ29udGV4dCopOwog
ICAgIH5Xb3JrZXJTY3JpcHREZWJ1Z1NlcnZlcigpIHsgfQogCisgICAgdmlydHVhbCBib29sIGlz
V29ya2VyRGVidWdnZXIoKSB7IHJldHVybiB0cnVlOyB9CisKICAgICB2b2lkIGFkZExpc3RlbmVy
KFNjcmlwdERlYnVnTGlzdGVuZXIqKTsKICAgICB2b2lkIHJlbW92ZUxpc3RlbmVyKFNjcmlwdERl
YnVnTGlzdGVuZXIqKTsKIApAQCAtNTMsMTAgKzU1LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIGlu
dGVycnVwdEFuZFJ1blRhc2soUGFzc093blB0cjxTY3JpcHREZWJ1Z1NlcnZlcjo6VGFzaz4pOwog
CiBwcml2YXRlOgotICAgIHZpcnR1YWwgdm9pZCByZWNvbXBpbGVBbGxKU0Z1bmN0aW9ucyhUaW1l
cjxTY3JpcHREZWJ1Z1NlcnZlcj4qKSB7IH0KLSAgICB2aXJ0dWFsIExpc3RlbmVyU2V0KiBnZXRM
aXN0ZW5lcnNGb3JHbG9iYWxPYmplY3QoSlNDOjpKU0dsb2JhbE9iamVjdCopIHsgcmV0dXJuIDA7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVjb21waWxlQWxsSlNGdW5jdGlvbnMoVGltZXI8U2NyaXB0
RGVidWdTZXJ2ZXI+Kik7CisgICAgdmlydHVhbCBMaXN0ZW5lclNldCogZ2V0TGlzdGVuZXJzRm9y
R2xvYmFsT2JqZWN0KEpTQzo6SlNHbG9iYWxPYmplY3QqKSB7IHJldHVybiAmbV9saXN0ZW5lcnM7
IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUGF1c2UoSlNDOjpKU0dsb2JhbE9iamVjdCopIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBkaWRDb250aW51ZShKU0M6OkpTR2xvYmFsT2JqZWN0KikgeyB9CisK
KyAgICB2aXJ0dWFsIHZvaWQgcnVuRXZlbnRMb29wV2hpbGVQYXVzZWQoKTsKKworICAgIFdvcmtl
ckNvbnRleHQqIG1fd29ya2VyQ29udGV4dDsKKyAgICBMaXN0ZW5lclNldCBtX2xpc3RlbmVyczsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>