<?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>136352</bug_id>
          
          <creation_ts>2014-08-28 15:08:52 -0700</creation_ts>
          <short_desc>Web Inspector: the profiler should not accrue time to nodes while the debugger is paused</short_desc>
          <delta_ts>2014-09-12 17:37:52 -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</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>136380</dependson>
    
    <dependson>136381</dependson>
          <blocked>136292</blocked>
    
    <blocked>136796</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Burg">burg</reporter>
          <assigned_to name="Brian Burg">burg</assigned_to>
          <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1032080</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-08-28 15:08:52 -0700</bug_when>
    <thetext>It&apos;s confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032081</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-08-28 15:09:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/18167563&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032206</commentid>
    <comment_count>2</comment_count>
      <attachid>237361</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-08-29 11:20:03 -0700</bug_when>
    <thetext>Created attachment 237361
WIP: add hooks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032572</commentid>
    <comment_count>3</comment_count>
      <attachid>237477</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-09-02 00:15:09 -0700</bug_when>
    <thetext>Created attachment 237477
Proposed fix

Patch depends on 136381 and 136380. It fixes profile data, but a similar fix needs to happen for TimelineRecords, which independently record their own start/stop times.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032701</commentid>
    <comment_count>4</comment_count>
      <attachid>237477</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-09-02 11:08:40 -0700</bug_when>
    <thetext>Comment on attachment 237477
Proposed fix

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

&gt; Source/JavaScriptCore/profiler/LegacyProfiler.cpp:141
&gt; +    callFunctionForProfilesWithGroup(std::bind(&amp;ProfileGenerator::willExecute, std::placeholders::_1, callerCallFrame, callIdentifier), m_currentProfiles, callerCallFrame-&gt;lexicalGlobalObject()-&gt;profileGroup());

std::bind + std::placeholders === magic

&gt; Source/JavaScriptCore/profiler/ProfileGenerator.cpp:131
&gt; +    last.setTotalTime(m_debuggerPaused ? 0.0 : currentTime() - last.startTime());

Couldn&apos;t we subtract out the time between pause and resume?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1032706</commentid>
    <comment_count>5</comment_count>
      <attachid>237477</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-09-02 11:16:30 -0700</bug_when>
    <thetext>Comment on attachment 237477
Proposed fix

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

&gt;&gt; Source/JavaScriptCore/profiler/LegacyProfiler.cpp:141
&gt;&gt; +    callFunctionForProfilesWithGroup(std::bind(&amp;ProfileGenerator::willExecute, std::placeholders::_1, callerCallFrame, callIdentifier), m_currentProfiles, callerCallFrame-&gt;lexicalGlobalObject()-&gt;profileGroup());
&gt; 
&gt; std::bind + std::placeholders === magic

Yeah, it&apos;s almost like JavaScript. It can get you in trouble if you copy big things by accident. In this case (AFAIK), it will copy the arguments (a bunch of pointers and scalars) into a stuct on the stack.

&gt;&gt; Source/JavaScriptCore/profiler/ProfileGenerator.cpp:131
&gt;&gt; +    last.setTotalTime(m_debuggerPaused ? 0.0 : currentTime() - last.startTime());
&gt; 
&gt; Couldn&apos;t we subtract out the time between pause and resume?

Yeah, it could do something like that, or reset the start time of all active nodes when didContinue is received.
I would have to examine the order of operations more closely, but when I wrote this patch I never hit a
breakpoint inside didPause- the debugger was already paused by the time the profiler got the willExecute.
Maybe I need to set the breakpoint so it will pause with a bigger call stack.

I have no quick way of testing a smarter approach because the timeline records still have wrong times
and those seem to be used as the timeline row&apos;s &quot;overall&quot; time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1033233</commentid>
    <comment_count>6</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2014-09-04 10:21:49 -0700</bug_when>
    <thetext>Committed r173264: &lt;http://trac.webkit.org/changeset/173264&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237361</attachid>
            <date>2014-08-29 11:20:03 -0700</date>
            <delta_ts>2014-09-02 00:15:06 -0700</delta_ts>
            <desc>WIP: add hooks</desc>
            <filename>bug-136352-20140829111930.patch</filename>
            <type>text/plain</type>
            <size>11849</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczMDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
ODJhZmMzMjVjNmQ4NDQzNDRkNmI1MzllY2IxOWFjMGM5ZTIzYTVlLi5iNTdjN2NhZDhjMDIzNDc2
ZGJiY2Q3NjUzOWVhMzQ1ZTY0ZGRiMWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAxNC0wOC0yOSAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rv
bi5lZHU+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogdGhlIHByb2ZpbGVyIHNob3VsZCBub3Qg
YWNjcnVlIHRpbWUgdG8gbm9kZXMgd2hpbGUgdGhlIGRlYnVnZ2VyIGlzIHBhdXNlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MzUyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpTY3JpcHREZWJ1Z1NlcnZl
cjo6aGFuZGxlUGF1c2UpOgorICAgICAgICAqIHByb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcDoK
KyAgICAgICAgKEpTQzo6Y2FsbEZ1bmN0aW9uRm9yUHJvZmlsZXNXaXRoR3JvdXApOgorICAgICAg
ICAoSlNDOjpMZWdhY3lQcm9maWxlcjo6d2lsbEV4ZWN1dGUpOgorICAgICAgICAoSlNDOjpMZWdh
Y3lQcm9maWxlcjo6ZGlkRXhlY3V0ZSk6CisgICAgICAgIChKU0M6OkxlZ2FjeVByb2ZpbGVyOjpl
eGNlcHRpb25VbndpbmQpOgorICAgICAgICAoSlNDOjpMZWdhY3lQcm9maWxlcjo6ZGlkUGF1c2Up
OgorICAgICAgICAoSlNDOjpMZWdhY3lQcm9maWxlcjo6ZGlkQ29udGludWUpOgorICAgICAgICAo
SlNDOjpkaXNwYXRjaEZ1bmN0aW9uVG9Qcm9maWxlcyk6IERlbGV0ZWQuCisgICAgICAgICogcHJv
ZmlsZXIvTGVnYWN5UHJvZmlsZXIuaDoKKyAgICAgICAgKiBwcm9maWxlci9Qcm9maWxlR2VuZXJh
dG9yLmNwcDoKKyAgICAgICAgKEpTQzo6UHJvZmlsZUdlbmVyYXRvcjo6ZGlkUGF1c2UpOgorICAg
ICAgICAoSlNDOjpQcm9maWxlR2VuZXJhdG9yOjpkaWRDb250aW51ZSk6CisgICAgICAgICogcHJv
ZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oOgorCiAyMDE0LTA4LTI3ICBGaWxpcCBQaXpsbyAgPGZw
aXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgREZHIHNob3VsZCBjb21wdXRlIGltbWVkaWF0ZSBk
b21pbmF0b3JzIHVzaW5nIHRoZSBPKG4gbG9nIG4pIGZvcm0gb2YgTGVuZ2F1ZXIgYW5kIFRhcmph
bidzICJBIEZhc3QgQWxnb3JpdGhtIGZvciBGaW5kaW5nIERvbWluYXRvcnMgaW4gYSBGbG93Z3Jh
cGgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERl
YnVnU2VydmVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0RGVi
dWdTZXJ2ZXIuY3BwCmluZGV4IGQyNzk4OTMzZjkzYjRkMzU1NjIzZTQwODlkMTVjMmMxMWNjZDVh
NzYuLmY4ZDQ4MzMyNTRkN2ZlN2U5ZmE1M2Q3Y2Q1M2NiNDMwZTdiNGNiNWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0RGVidWdTZXJ2ZXIuY3Bw
CkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmgiCiAj
aW5jbHVkZSAiSlNMb2NrLmgiCiAjaW5jbHVkZSAiSmF2YVNjcmlwdENhbGxGcmFtZS5oIgorI2lu
Y2x1ZGUgIkxlZ2FjeVByb2ZpbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNs
dWRlICJTb3VyY2VQcm92aWRlci5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpA
QCAtMzE1LDEyICszMTYsMTQgQEAgdm9pZCBTY3JpcHREZWJ1Z1NlcnZlcjo6aGFuZGxlRXhjZXB0
aW9uSW5CcmVha3BvaW50Q29uZGl0aW9uKEpTQzo6RXhlY1N0YXRlKiBleGUKIHZvaWQgU2NyaXB0
RGVidWdTZXJ2ZXI6OmhhbmRsZVBhdXNlKERlYnVnZ2VyOjpSZWFzb25Gb3JQYXVzZSwgSlNHbG9i
YWxPYmplY3QqIHZtRW50cnlHbG9iYWxPYmplY3QpCiB7CiAgICAgZGlzcGF0Y2hGdW5jdGlvblRv
TGlzdGVuZXJzKCZTY3JpcHREZWJ1Z1NlcnZlcjo6ZGlzcGF0Y2hEaWRQYXVzZSwgdm1FbnRyeUds
b2JhbE9iamVjdCk7CisgICAgTGVnYWN5UHJvZmlsZXI6OnByb2ZpbGVyKCktPmRpZFBhdXNlKGN1
cnJlbnREZWJ1Z2dlckNhbGxGcmFtZSgpKTsKICAgICBkaWRQYXVzZSh2bUVudHJ5R2xvYmFsT2Jq
ZWN0KTsKIAogICAgIG1fZG9uZVByb2Nlc3NpbmdEZWJ1Z2dlckV2ZW50cyA9IGZhbHNlOwogICAg
IHJ1bkV2ZW50TG9vcFdoaWxlUGF1c2VkKCk7CiAKICAgICBkaWRDb250aW51ZSh2bUVudHJ5R2xv
YmFsT2JqZWN0KTsKKyAgICBMZWdhY3lQcm9maWxlcjo6cHJvZmlsZXIoKS0+ZGlkQ29udGludWUo
Y3VycmVudERlYnVnZ2VyQ2FsbEZyYW1lKCkpOwogICAgIGRpc3BhdGNoRnVuY3Rpb25Ub0xpc3Rl
bmVycygmU2NyaXB0RGVidWdTZXJ2ZXI6OmRpc3BhdGNoRGlkQ29udGludWUsIHZtRW50cnlHbG9i
YWxPYmplY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmls
ZXIvTGVnYWN5UHJvZmlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xl
Z2FjeVByb2ZpbGVyLmNwcAppbmRleCAzM2ZmNDU0Yjc1MTcxNTA1ODcxYWE1MjU1NzZiNmMzZTZm
YzExNWM4Li43NWZkMWZkY2FkOGNkYWIyZjM1NThmY2ZiNmMzZjkyNjlmODkzNDA4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvTGVnYWN5UHJvZmlsZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9MZWdhY3lQcm9maWxlci5jcHAKQEAg
LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJDb2RlQmxv
Y2suaCIKICNpbmNsdWRlICJDb21tb25JZGVudGlmaWVycy5oIgorI2luY2x1ZGUgIkRlYnVnZ2Vy
Q2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiSW50ZXJuYWxGdW5jdGlvbi5oIgogI2luY2x1ZGUgIkpT
RnVuY3Rpb24uaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgpAQCAtMTE0LDE5ICsxMTUs
MjAgQEAgdm9pZCBMZWdhY3lQcm9maWxlcjo6c3RvcFByb2ZpbGluZyhKU0dsb2JhbE9iamVjdCog
b3JpZ2luKQogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGRpc3BhdGNoRnVuY3Rpb25U
b1Byb2ZpbGVzKEV4ZWNTdGF0ZSogY2FsbGVyT3JIYW5kbGVyQ2FsbEZyYW1lLCBjb25zdCBWZWN0
b3I8UmVmUHRyPFByb2ZpbGVHZW5lcmF0b3I+PiYgcHJvZmlsZXMsIFByb2ZpbGVHZW5lcmF0b3I6
OlByb2ZpbGVGdW5jdGlvbiBmdW5jdGlvbiwgY29uc3QgQ2FsbElkZW50aWZpZXImIGNhbGxJZGVu
dGlmaWVyLCB1bnNpZ25lZCBjdXJyZW50UHJvZmlsZVRhcmdldEdyb3VwKQorc3RhdGljIGlubGlu
ZSB2b2lkIGNhbGxGdW5jdGlvbkZvclByb2ZpbGVzV2l0aEdyb3VwKHN0ZDo6ZnVuY3Rpb248dm9p
ZChQcm9maWxlR2VuZXJhdG9yKik+IGNhbGxiYWNrLCBjb25zdCBWZWN0b3I8UmVmUHRyPFByb2Zp
bGVHZW5lcmF0b3I+PiYgcHJvZmlsZXMsIHVuc2lnbmVkIHRhcmdldFByb2ZpbGVHcm91cCkKIHsK
LSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHByb2ZpbGVzLnNpemUoKTsgKytpKSB7Ci0gICAg
ICAgIGlmIChwcm9maWxlc1tpXS0+cHJvZmlsZUdyb3VwKCkgPT0gY3VycmVudFByb2ZpbGVUYXJn
ZXRHcm91cCB8fCAhcHJvZmlsZXNbaV0tPm9yaWdpbigpKQotICAgICAgICAgICAgKHByb2ZpbGVz
W2ldLmdldCgpLT4qZnVuY3Rpb24pKGNhbGxlck9ySGFuZGxlckNhbGxGcmFtZSwgY2FsbElkZW50
aWZpZXIpOwotICAgIH0KKyAgICBmb3IgKGNvbnN0IFJlZlB0cjxQcm9maWxlR2VuZXJhdG9yPiYg
cHJvZmlsZSA6IHByb2ZpbGVzKQorICAgICAgICBpZiAocHJvZmlsZS0+cHJvZmlsZUdyb3VwKCkg
PT0gdGFyZ2V0UHJvZmlsZUdyb3VwIHx8ICFwcm9maWxlLT5vcmlnaW4oKSkKKyAgICAgICAgICAg
IGNhbGxiYWNrKHByb2ZpbGUuZ2V0KCkpOwogfQogCiB2b2lkIExlZ2FjeVByb2ZpbGVyOjp3aWxs
RXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgSlNWYWx1ZSBmdW5jdGlvbikKIHsK
ICAgICBBU1NFUlQoIW1fY3VycmVudFByb2ZpbGVzLmlzRW1wdHkoKSk7CiAKLSAgICBkaXNwYXRj
aEZ1bmN0aW9uVG9Qcm9maWxlcyhjYWxsZXJDYWxsRnJhbWUsIG1fY3VycmVudFByb2ZpbGVzLCAm
UHJvZmlsZUdlbmVyYXRvcjo6d2lsbEV4ZWN1dGUsIGNyZWF0ZUNhbGxJZGVudGlmaWVyKGNhbGxl
ckNhbGxGcmFtZSwgZnVuY3Rpb24sIFN0cmluZ0ltcGw6OmVtcHR5KCksIDAsIDApLCBjYWxsZXJD
YWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cHJvZmlsZUdyb3VwKCkpOworICAgIENh
bGxJZGVudGlmaWVyIGNhbGxJZGVudGlmaWVyID0gY3JlYXRlQ2FsbElkZW50aWZpZXIoY2FsbGVy
Q2FsbEZyYW1lLCBmdW5jdGlvbiwgU3RyaW5nSW1wbDo6ZW1wdHkoKSwgMCwgMCk7CisKKyAgICBj
YWxsRnVuY3Rpb25Gb3JQcm9maWxlc1dpdGhHcm91cChzdGQ6OmJpbmQoJlByb2ZpbGVHZW5lcmF0
b3I6OndpbGxFeGVjdXRlLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEsIGNhbGxlckNhbGxGcmFtZSwg
Y2FsbElkZW50aWZpZXIpLCBtX2N1cnJlbnRQcm9maWxlcywgY2FsbGVyQ2FsbEZyYW1lLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91cCgpKTsKIH0KIAogdm9pZCBMZWdhY3lQcm9m
aWxlcjo6d2lsbEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMLCB1bnNpZ25lZCBzdGFydGluZ0xpbmVOdW1iZXIsIHVuc2lnbmVkIHN0YXJ0
aW5nQ29sdW1uTnVtYmVyKQpAQCAtMTM1LDI4ICsxMzcsNTQgQEAgdm9pZCBMZWdhY3lQcm9maWxl
cjo6d2lsbEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJDYWxsRnJhbWUsIGNvbnN0IFN0cmluZyYg
c291cmMKIAogICAgIENhbGxJZGVudGlmaWVyIGNhbGxJZGVudGlmaWVyID0gY3JlYXRlQ2FsbElk
ZW50aWZpZXIoY2FsbGVyQ2FsbEZyYW1lLCBKU1ZhbHVlKCksIHNvdXJjZVVSTCwgc3RhcnRpbmdM
aW5lTnVtYmVyLCBzdGFydGluZ0NvbHVtbk51bWJlcik7CiAKLSAgICBkaXNwYXRjaEZ1bmN0aW9u
VG9Qcm9maWxlcyhjYWxsZXJDYWxsRnJhbWUsIG1fY3VycmVudFByb2ZpbGVzLCAmUHJvZmlsZUdl
bmVyYXRvcjo6d2lsbEV4ZWN1dGUsIGNhbGxJZGVudGlmaWVyLCBjYWxsZXJDYWxsRnJhbWUtPmxl
eGljYWxHbG9iYWxPYmplY3QoKS0+cHJvZmlsZUdyb3VwKCkpOworICAgIGNhbGxGdW5jdGlvbkZv
clByb2ZpbGVzV2l0aEdyb3VwKHN0ZDo6YmluZCgmUHJvZmlsZUdlbmVyYXRvcjo6d2lsbEV4ZWN1
dGUsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSwgY2FsbGVyQ2FsbEZyYW1lLCBjYWxsSWRlbnRpZmll
ciksIG1fY3VycmVudFByb2ZpbGVzLCBjYWxsZXJDYWxsRnJhbWUtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKS0+cHJvZmlsZUdyb3VwKCkpOwogfQogCiB2b2lkIExlZ2FjeVByb2ZpbGVyOjpkaWRFeGVj
dXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBKU1ZhbHVlIGZ1bmN0aW9uKQogewogICAg
IEFTU0VSVCghbV9jdXJyZW50UHJvZmlsZXMuaXNFbXB0eSgpKTsKIAotICAgIGRpc3BhdGNoRnVu
Y3Rpb25Ub1Byb2ZpbGVzKGNhbGxlckNhbGxGcmFtZSwgbV9jdXJyZW50UHJvZmlsZXMsICZQcm9m
aWxlR2VuZXJhdG9yOjpkaWRFeGVjdXRlLCBjcmVhdGVDYWxsSWRlbnRpZmllcihjYWxsZXJDYWxs
RnJhbWUsIGZ1bmN0aW9uLCBTdHJpbmdJbXBsOjplbXB0eSgpLCAwLCAwKSwgY2FsbGVyQ2FsbEZy
YW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91cCgpKTsKKyAgICBDYWxsSWRl
bnRpZmllciBjYWxsSWRlbnRpZmllciA9IGNyZWF0ZUNhbGxJZGVudGlmaWVyKGNhbGxlckNhbGxG
cmFtZSwgZnVuY3Rpb24sIFN0cmluZ0ltcGw6OmVtcHR5KCksIDAsIDApOworCisgICAgY2FsbEZ1
bmN0aW9uRm9yUHJvZmlsZXNXaXRoR3JvdXAoc3RkOjpiaW5kKCZQcm9maWxlR2VuZXJhdG9yOjpk
aWRFeGVjdXRlLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEsIGNhbGxlckNhbGxGcmFtZSwgY2FsbElk
ZW50aWZpZXIpLCBtX2N1cnJlbnRQcm9maWxlcywgY2FsbGVyQ2FsbEZyYW1lLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCktPnByb2ZpbGVHcm91cCgpKTsKIH0KIAogdm9pZCBMZWdhY3lQcm9maWxlcjo6
ZGlkRXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxGcmFtZSwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwsIHVuc2lnbmVkIHN0YXJ0aW5nTGluZU51bWJlciwgdW5zaWduZWQgc3RhcnRpbmdDb2x1
bW5OdW1iZXIpCiB7CiAgICAgQVNTRVJUKCFtX2N1cnJlbnRQcm9maWxlcy5pc0VtcHR5KCkpOwog
Ci0gICAgZGlzcGF0Y2hGdW5jdGlvblRvUHJvZmlsZXMoY2FsbGVyQ2FsbEZyYW1lLCBtX2N1cnJl
bnRQcm9maWxlcywgJlByb2ZpbGVHZW5lcmF0b3I6OmRpZEV4ZWN1dGUsIGNyZWF0ZUNhbGxJZGVu
dGlmaWVyKGNhbGxlckNhbGxGcmFtZSwgSlNWYWx1ZSgpLCBzb3VyY2VVUkwsIHN0YXJ0aW5nTGlu
ZU51bWJlciwgc3RhcnRpbmdDb2x1bW5OdW1iZXIpLCBjYWxsZXJDYWxsRnJhbWUtPmxleGljYWxH
bG9iYWxPYmplY3QoKS0+cHJvZmlsZUdyb3VwKCkpOworICAgIENhbGxJZGVudGlmaWVyIGNhbGxJ
ZGVudGlmaWVyID0gY3JlYXRlQ2FsbElkZW50aWZpZXIoY2FsbGVyQ2FsbEZyYW1lLCBKU1ZhbHVl
KCksIHNvdXJjZVVSTCwgc3RhcnRpbmdMaW5lTnVtYmVyLCBzdGFydGluZ0NvbHVtbk51bWJlcik7
CisKKyAgICBjYWxsRnVuY3Rpb25Gb3JQcm9maWxlc1dpdGhHcm91cChzdGQ6OmJpbmQoJlByb2Zp
bGVHZW5lcmF0b3I6OmRpZEV4ZWN1dGUsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSwgY2FsbGVyQ2Fs
bEZyYW1lLCBjYWxsSWRlbnRpZmllciksIG1fY3VycmVudFByb2ZpbGVzLCBjYWxsZXJDYWxsRnJh
bWUtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+cHJvZmlsZUdyb3VwKCkpOwogfQogCiB2b2lkIExl
Z2FjeVByb2ZpbGVyOjpleGNlcHRpb25VbndpbmQoRXhlY1N0YXRlKiBoYW5kbGVyQ2FsbEZyYW1l
KQogewogICAgIEFTU0VSVCghbV9jdXJyZW50UHJvZmlsZXMuaXNFbXB0eSgpKTsKIAotICAgIGRp
c3BhdGNoRnVuY3Rpb25Ub1Byb2ZpbGVzKGhhbmRsZXJDYWxsRnJhbWUsIG1fY3VycmVudFByb2Zp
bGVzLCAmUHJvZmlsZUdlbmVyYXRvcjo6ZXhjZXB0aW9uVW53aW5kLCBjcmVhdGVDYWxsSWRlbnRp
ZmllcihoYW5kbGVyQ2FsbEZyYW1lLCBKU1ZhbHVlKCksIFN0cmluZ0ltcGw6OmVtcHR5KCksIDAs
IDApLCBoYW5kbGVyQ2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91
cCgpKTsKKyAgICBDYWxsSWRlbnRpZmllciBjYWxsSWRlbnRpZmllciA9IGNyZWF0ZUNhbGxJZGVu
dGlmaWVyKGhhbmRsZXJDYWxsRnJhbWUsIEpTVmFsdWUoKSwgU3RyaW5nSW1wbDo6ZW1wdHkoKSwg
MCwgMCk7CisKKyAgICBjYWxsRnVuY3Rpb25Gb3JQcm9maWxlc1dpdGhHcm91cChzdGQ6OmJpbmQo
JlByb2ZpbGVHZW5lcmF0b3I6OmV4Y2VwdGlvblVud2luZCwgc3RkOjpwbGFjZWhvbGRlcnM6Ol8x
LCBoYW5kbGVyQ2FsbEZyYW1lLCBjYWxsSWRlbnRpZmllciksIG1fY3VycmVudFByb2ZpbGVzLCBo
YW5kbGVyQ2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91cCgpKTsK
K30KKwordm9pZCBMZWdhY3lQcm9maWxlcjo6ZGlkUGF1c2UoUGFzc1JlZlB0cjxEZWJ1Z2dlckNh
bGxGcmFtZT4gcHJwQ2FsbEZyYW1lKQoreworICAgIC8vQVNTRVJUKCFtX2N1cnJlbnRQcm9maWxl
cy5pc0VtcHR5KCkpOworCisgICAgUmVmUHRyPERlYnVnZ2VyQ2FsbEZyYW1lPiBjYWxsRnJhbWUg
PSBwcnBDYWxsRnJhbWU7CisgICAgQ2FsbElkZW50aWZpZXIgY2FsbElkZW50aWZpZXIgPSBjcmVh
dGVDYWxsSWRlbnRpZmllcihjYWxsRnJhbWUtPmV4ZWMoKSwgSlNWYWx1ZSgpLCBTdHJpbmdJbXBs
OjplbXB0eSgpLCAwLCAwKTsKKworICAgIGNhbGxGdW5jdGlvbkZvclByb2ZpbGVzV2l0aEdyb3Vw
KHN0ZDo6YmluZCgmUHJvZmlsZUdlbmVyYXRvcjo6ZGlkUGF1c2UsIHN0ZDo6cGxhY2Vob2xkZXJz
OjpfMSwgY2FsbEZyYW1lLCBjYWxsSWRlbnRpZmllciksIG1fY3VycmVudFByb2ZpbGVzLCBjYWxs
RnJhbWUtPnZtRW50cnlHbG9iYWxPYmplY3QoKS0+cHJvZmlsZUdyb3VwKCkpOworfQorCit2b2lk
IExlZ2FjeVByb2ZpbGVyOjpkaWRDb250aW51ZShQYXNzUmVmUHRyPERlYnVnZ2VyQ2FsbEZyYW1l
PiBwcnBDYWxsRnJhbWUpCit7CisgICAgLy9BU1NFUlQoIW1fY3VycmVudFByb2ZpbGVzLmlzRW1w
dHkoKSk7CisKKyAgICBSZWZQdHI8RGVidWdnZXJDYWxsRnJhbWU+IGNhbGxGcmFtZSA9IHBycENh
bGxGcmFtZTsKKyAgICBDYWxsSWRlbnRpZmllciBjYWxsSWRlbnRpZmllciA9IGNyZWF0ZUNhbGxJ
ZGVudGlmaWVyKGNhbGxGcmFtZS0+ZXhlYygpLCBKU1ZhbHVlKCksIFN0cmluZ0ltcGw6OmVtcHR5
KCksIDAsIDApOworCisgICAgY2FsbEZ1bmN0aW9uRm9yUHJvZmlsZXNXaXRoR3JvdXAoc3RkOjpi
aW5kKCZQcm9maWxlR2VuZXJhdG9yOjpkaWRDb250aW51ZSwgc3RkOjpwbGFjZWhvbGRlcnM6Ol8x
LCBjYWxsRnJhbWUsIGNhbGxJZGVudGlmaWVyKSwgbV9jdXJyZW50UHJvZmlsZXMsIGNhbGxGcmFt
ZS0+dm1FbnRyeUdsb2JhbE9iamVjdCgpLT5wcm9maWxlR3JvdXAoKSk7CiB9CiAKIENhbGxJZGVu
dGlmaWVyIExlZ2FjeVByb2ZpbGVyOjpjcmVhdGVDYWxsSWRlbnRpZmllcihFeGVjU3RhdGUqIGV4
ZWMsIEpTVmFsdWUgZnVuY3Rpb25WYWx1ZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0U291cmNlVVJM
LCB1bnNpZ25lZCBkZWZhdWx0TGluZU51bWJlciwgdW5zaWduZWQgZGVmYXVsdENvbHVtbk51bWJl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9MZWdhY3lQcm9m
aWxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmgK
aW5kZXggY2M1ZjYzYjBiYjkzZmFkZWRmYzYyY2RmYTE2OGQzZDc0YmU2NWQwZS4uN2U3OWNiY2Mw
OTZjMGUzZWFkNzg1MjU3NTFjOTUzMWY3NTg4MzBlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmgKQEAgLTM2LDYgKzM2LDcgQEAKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKK2NsYXNzIERlYnVnZ2VyQ2FsbEZyYW1lOwogY2xhc3MgRXhlY1N0YXRl
OwogY2xhc3MgVk07CiBjbGFzcyBKU0dsb2JhbE9iamVjdDsKQEAgLTYxLDYgKzYyLDkgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBleGNlcHRpb25VbndpbmQoRXhlY1N0YXRlKiBoYW5kbGVyQ2FsbEZy
YW1lKTsKIAorICAgIHZvaWQgZGlkUGF1c2UoUGFzc1JlZlB0cjxEZWJ1Z2dlckNhbGxGcmFtZT4p
OworICAgIHZvaWQgZGlkQ29udGludWUoUGFzc1JlZlB0cjxEZWJ1Z2dlckNhbGxGcmFtZT4pOwor
CiAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxQcm9maWxlR2VuZXJhdG9yPj4mIGN1cnJlbnRQcm9m
aWxlcygpIHsgcmV0dXJuIG1fY3VycmVudFByb2ZpbGVzOyB9OwogCiBwcml2YXRlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwCmlu
ZGV4IGQzN2IzNTY2Y2NhY2M4ZmUyYzhlNWFkMWIzNzM5ODYxZTQxNjllYWEuLmU1Yjc4ZmViODM5
NmE5NjQ1MzE3NzEyMDA1MmM5MGI4MTkzZWM4YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAKQEAgLTE1NSw2ICsxNTUsMTYg
QEAgdm9pZCBQcm9maWxlR2VuZXJhdG9yOjpleGNlcHRpb25VbndpbmQoRXhlY1N0YXRlKiBoYW5k
bGVyQ2FsbEZyYW1lLCBjb25zdCBDYWxsSWQKICAgICB9CiB9CiAKK3ZvaWQgUHJvZmlsZUdlbmVy
YXRvcjo6ZGlkUGF1c2UoUGFzc1JlZlB0cjxEZWJ1Z2dlckNhbGxGcmFtZT4sIGNvbnN0IENhbGxJ
ZGVudGlmaWVyJikKK3sKKyAgICBBU1NFUlQobV9jdXJyZW50Tm9kZSk7Cit9CisKK3ZvaWQgUHJv
ZmlsZUdlbmVyYXRvcjo6ZGlkQ29udGludWUoUGFzc1JlZlB0cjxEZWJ1Z2dlckNhbGxGcmFtZT4s
IGNvbnN0IENhbGxJZGVudGlmaWVyJikKK3sKKyAgICBBU1NFUlQobV9jdXJyZW50Tm9kZSk7Cit9
CisKIHZvaWQgUHJvZmlsZUdlbmVyYXRvcjo6c3RvcFByb2ZpbGluZygpCiB7CiAgICAgbV9wcm9m
aWxlLT5mb3JFYWNoKCZQcm9maWxlTm9kZTo6c3RvcFByb2ZpbGluZyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuaAppbmRleCAwM2RlMDY5
OWNjNmExOTBlZTZkODc1YzliNzA0NTkwMWJkMmJmYTVlLi5hODE0MDk0YzQ4MWU3NzAyY2RkYjM2
ODEzYmJmOWVjOWY0NWMwNmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJv
ZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9m
aWxlci9Qcm9maWxlR2VuZXJhdG9yLmgKQEAgLTMzLDExICszMywxMiBAQAogCiBuYW1lc3BhY2Ug
SlNDIHsKIAorICAgIGNsYXNzIERlYnVnZ2VyQ2FsbEZyYW1lOwogICAgIGNsYXNzIEV4ZWNTdGF0
ZTsKICAgICBjbGFzcyBKU0dsb2JhbE9iamVjdDsKICAgICBjbGFzcyBQcm9maWxlOwogICAgIGNs
YXNzIFByb2ZpbGVOb2RlOwotICAgIHN0cnVjdCBDYWxsSWRlbnRpZmllcjsgICAgCisgICAgc3Ry
dWN0IENhbGxJZGVudGlmaWVyOwogCiAgICAgY2xhc3MgUHJvZmlsZUdlbmVyYXRvciA6IHB1Ymxp
YyBSZWZDb3VudGVkPFByb2ZpbGVHZW5lcmF0b3I+ICB7CiAgICAgcHVibGljOgpAQCAtNTUsMTEg
KzU2LDEyIEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHZvaWQgZXhjZXB0aW9uVW53aW5k
KEV4ZWNTdGF0ZSogaGFuZGxlckNhbGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXImKTsKIAor
ICAgICAgICB2b2lkIGRpZFBhdXNlKFBhc3NSZWZQdHI8RGVidWdnZXJDYWxsRnJhbWU+LCBjb25z
dCBDYWxsSWRlbnRpZmllciYpOworICAgICAgICB2b2lkIGRpZENvbnRpbnVlKFBhc3NSZWZQdHI8
RGVidWdnZXJDYWxsRnJhbWU+LCBjb25zdCBDYWxsSWRlbnRpZmllciYpOworCiAgICAgICAgIC8v
IFN0b3BwaW5nIFByb2ZpbGluZwogICAgICAgICB2b2lkIHN0b3BQcm9maWxpbmcoKTsKIAotICAg
ICAgICB0eXBlZGVmIHZvaWQgKFByb2ZpbGVHZW5lcmF0b3I6OipQcm9maWxlRnVuY3Rpb24pKEV4
ZWNTdGF0ZSogY2FsbGVyT3JIYW5kbGVyQ2FsbEZyYW1lLCBjb25zdCBDYWxsSWRlbnRpZmllciYg
Y2FsbElkZW50aWZpZXIpOwotCiAgICAgcHJpdmF0ZToKICAgICAgICAgUHJvZmlsZUdlbmVyYXRv
cihFeGVjU3RhdGUqLCBjb25zdCBXVEY6OlN0cmluZyYgdGl0bGUsIHVuc2lnbmVkIHVpZCk7CiAg
ICAgICAgIHZvaWQgYWRkUGFyZW50Rm9yQ29uc29sZVN0YXJ0KEV4ZWNTdGF0ZSopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>237477</attachid>
            <date>2014-09-02 00:15:09 -0700</date>
            <delta_ts>2014-09-02 11:16:30 -0700</delta_ts>
            <desc>Proposed fix</desc>
            <filename>bug-136352-20140902001455.patch</filename>
            <type>text/plain</type>
            <size>12981</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczMTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
ZTIyNGY3YTgwYzhmY2U3OTg2ZjkwNGI0MWZkZDBhNjlhNTY4Y2M3Li4yMDAxNDYyODJiMzIyZThi
ZWMyNzYyMTdjZDExZDcyYWFhYjdjNGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxNC0wOS0wMiAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rv
bi5lZHU+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogdGhlIHByb2ZpbGVyIHNob3VsZCBub3Qg
YWNjcnVlIHRpbWUgdG8gbm9kZXMgd2hpbGUgdGhlIGRlYnVnZ2VyIGlzIHBhdXNlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2MzUyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSG9vayB1cCBwYXVzZS9j
b250aW51ZSBldmVudHMgdG8gdGhlIExlZ2FjeVByb2ZpbGVyIGFuZCBhbnkgYWN0aXZlCisgICAg
ICAgIFByb2ZpbGVyR2VuZXJhdG9ycy4gSWYgdGhlIGRlYnVnZ2VyIGlzIHBhdXNlZCwgYWxsIGlu
dGVydmVuaW5nIGNhbGwKKyAgICAgICAgZW50cmllcyB3aWxsIGJlIGNyZWF0ZWQgd2l0aCB0b3Rh
bFRpbWUgYXMgMC4wLgorCisgICAgICAgICogaW5zcGVjdG9yL1NjcmlwdERlYnVnU2VydmVyLmNw
cDoKKyAgICAgICAgKEluc3BlY3Rvcjo6U2NyaXB0RGVidWdTZXJ2ZXI6OmhhbmRsZVBhdXNlKToK
KyAgICAgICAgKiBwcm9maWxlci9MZWdhY3lQcm9maWxlci5jcHA6IE1vdmUgZnJvbSB0eXBlZGVm
J2QgY2FsbGJhY2tzIHRvIHVzaW5nCisgICAgICAgIHN0ZDo6ZnVuY3Rpb24uIFRoaXMgYWxsb3dz
IGNhbGxiYWNrcyB0byB0YWtlIGRpZmZlcmVudCBhcmd1bWVudCB0eXBlcy4KKworICAgICAgICAo
SlNDOjpjYWxsRnVuY3Rpb25Gb3JQcm9maWxlc1dpdGhHcm91cCk6CisgICAgICAgIChKU0M6Okxl
Z2FjeVByb2ZpbGVyOjp3aWxsRXhlY3V0ZSk6CisgICAgICAgIChKU0M6OkxlZ2FjeVByb2ZpbGVy
OjpkaWRFeGVjdXRlKToKKyAgICAgICAgKEpTQzo6TGVnYWN5UHJvZmlsZXI6OmV4Y2VwdGlvblVu
d2luZCk6CisgICAgICAgIChKU0M6OkxlZ2FjeVByb2ZpbGVyOjpkaWRQYXVzZSk6CisgICAgICAg
IChKU0M6OkxlZ2FjeVByb2ZpbGVyOjpkaWRDb250aW51ZSk6CisgICAgICAgIChKU0M6OmRpc3Bh
dGNoRnVuY3Rpb25Ub1Byb2ZpbGVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBwcm9maWxlci9MZWdh
Y3lQcm9maWxlci5oOgorICAgICAgICAqIHByb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwOgor
ICAgICAgICAoSlNDOjpQcm9maWxlR2VuZXJhdG9yOjpQcm9maWxlR2VuZXJhdG9yKToKKyAgICAg
ICAgKEpTQzo6UHJvZmlsZUdlbmVyYXRvcjo6ZW5kQ2FsbEVudHJ5KToKKyAgICAgICAgKEpTQzo6
UHJvZmlsZUdlbmVyYXRvcjo6ZGlkRXhlY3V0ZSk6IERlbGV0ZWQuCisgICAgICAgICogcHJvZmls
ZXIvUHJvZmlsZUdlbmVyYXRvci5oOgorICAgICAgICAoSlNDOjpQcm9maWxlR2VuZXJhdG9yOjpk
aWRQYXVzZSk6CisgICAgICAgIChKU0M6OlByb2ZpbGVHZW5lcmF0b3I6OmRpZENvbnRpbnVlKToK
KwogMjAxNC0wOS0wMSAgQnJpYW4gSi4gQnVyZyAgPGJ1cmdAY3Mud2FzaGluZ3Rvbi5lZHU+CiAK
ICAgICAgICAgTGVnYWN5UHJvZmlsZXI6IFByb2ZpbGVOb2RlcyBzaG91bGQgYmUgdXNlZCBtb3Jl
IGxpa2Ugc3RydWN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9TY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L1NjcmlwdERlYnVnU2VydmVyLmNwcAppbmRleCBkMTE4MjMxZGU2Zjk3MTgwNjhlZDNiNTMyNGI1
NzJjNWYyN2IwYmI3Li42NTZlOWRhY2NkNDQ2MzMzNmE3Yzc4MmI4YmExOWViYTkzZmQ2NmRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVnU2Vy
dmVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdERlYnVn
U2VydmVyLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkpTSmF2YVNjcmlwdENhbGxG
cmFtZS5oIgogI2luY2x1ZGUgIkpTTG9jay5oIgogI2luY2x1ZGUgIkphdmFTY3JpcHRDYWxsRnJh
bWUuaCIKKyNpbmNsdWRlICJMZWdhY3lQcm9maWxlci5oIgogI2luY2x1ZGUgIlNjcmlwdFZhbHVl
LmgiCiAjaW5jbHVkZSAiU291cmNlUHJvdmlkZXIuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KQEAgLTMxNiwxMiArMzE3LDE0IEBAIHZvaWQgU2NyaXB0RGVidWdTZXJ2ZXI6Omhh
bmRsZUV4Y2VwdGlvbkluQnJlYWtwb2ludENvbmRpdGlvbihKU0M6OkV4ZWNTdGF0ZSogZXhlCiB2
b2lkIFNjcmlwdERlYnVnU2VydmVyOjpoYW5kbGVQYXVzZShEZWJ1Z2dlcjo6UmVhc29uRm9yUGF1
c2UsIEpTR2xvYmFsT2JqZWN0KiB2bUVudHJ5R2xvYmFsT2JqZWN0KQogewogICAgIGRpc3BhdGNo
RnVuY3Rpb25Ub0xpc3RlbmVycygmU2NyaXB0RGVidWdTZXJ2ZXI6OmRpc3BhdGNoRGlkUGF1c2Us
IHZtRW50cnlHbG9iYWxPYmplY3QpOworICAgIExlZ2FjeVByb2ZpbGVyOjpwcm9maWxlcigpLT5k
aWRQYXVzZShjdXJyZW50RGVidWdnZXJDYWxsRnJhbWUoKSk7CiAgICAgZGlkUGF1c2Uodm1FbnRy
eUdsb2JhbE9iamVjdCk7CiAKICAgICBtX2RvbmVQcm9jZXNzaW5nRGVidWdnZXJFdmVudHMgPSBm
YWxzZTsKICAgICBydW5FdmVudExvb3BXaGlsZVBhdXNlZCgpOwogCiAgICAgZGlkQ29udGludWUo
dm1FbnRyeUdsb2JhbE9iamVjdCk7CisgICAgTGVnYWN5UHJvZmlsZXI6OnByb2ZpbGVyKCktPmRp
ZENvbnRpbnVlKGN1cnJlbnREZWJ1Z2dlckNhbGxGcmFtZSgpKTsKICAgICBkaXNwYXRjaEZ1bmN0
aW9uVG9MaXN0ZW5lcnMoJlNjcmlwdERlYnVnU2VydmVyOjpkaXNwYXRjaERpZENvbnRpbnVlLCB2
bUVudHJ5R2xvYmFsT2JqZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
cm9maWxlci9MZWdhY3lQcm9maWxlci5jcHAKaW5kZXggMzNmZjQ1NGI3NTE3MTUwNTg3MWFhNTI1
NTc2YjZjM2U2ZmMxMTVjOC4uYzAwYzkyNTRlNTg4ZDQzOGQ2ZmJlMTBmMjZhNmI4NzYxZmZjODBi
NiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2Zp
bGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvTGVnYWN5UHJvZmls
ZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVk
ZSAiQ29kZUJsb2NrLmgiCiAjaW5jbHVkZSAiQ29tbW9uSWRlbnRpZmllcnMuaCIKKyNpbmNsdWRl
ICJEZWJ1Z2dlckNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkludGVybmFsRnVuY3Rpb24uaCIKICNp
bmNsdWRlICJKU0Z1bmN0aW9uLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKQEAgLTEx
NCwxMSArMTE1LDExIEBAIHZvaWQgTGVnYWN5UHJvZmlsZXI6OnN0b3BQcm9maWxpbmcoSlNHbG9i
YWxPYmplY3QqIG9yaWdpbikKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgdm9pZCBkaXNwYXRj
aEZ1bmN0aW9uVG9Qcm9maWxlcyhFeGVjU3RhdGUqIGNhbGxlck9ySGFuZGxlckNhbGxGcmFtZSwg
Y29uc3QgVmVjdG9yPFJlZlB0cjxQcm9maWxlR2VuZXJhdG9yPj4mIHByb2ZpbGVzLCBQcm9maWxl
R2VuZXJhdG9yOjpQcm9maWxlRnVuY3Rpb24gZnVuY3Rpb24sIGNvbnN0IENhbGxJZGVudGlmaWVy
JiBjYWxsSWRlbnRpZmllciwgdW5zaWduZWQgY3VycmVudFByb2ZpbGVUYXJnZXRHcm91cCkKK3N0
YXRpYyBpbmxpbmUgdm9pZCBjYWxsRnVuY3Rpb25Gb3JQcm9maWxlc1dpdGhHcm91cChzdGQ6OmZ1
bmN0aW9uPHZvaWQoUHJvZmlsZUdlbmVyYXRvciopPiBjYWxsYmFjaywgY29uc3QgVmVjdG9yPFJl
ZlB0cjxQcm9maWxlR2VuZXJhdG9yPj4mIHByb2ZpbGVzLCB1bnNpZ25lZCB0YXJnZXRQcm9maWxl
R3JvdXApCiB7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBwcm9maWxlcy5zaXplKCk7ICsr
aSkgewotICAgICAgICBpZiAocHJvZmlsZXNbaV0tPnByb2ZpbGVHcm91cCgpID09IGN1cnJlbnRQ
cm9maWxlVGFyZ2V0R3JvdXAgfHwgIXByb2ZpbGVzW2ldLT5vcmlnaW4oKSkKLSAgICAgICAgICAg
IChwcm9maWxlc1tpXS5nZXQoKS0+KmZ1bmN0aW9uKShjYWxsZXJPckhhbmRsZXJDYWxsRnJhbWUs
IGNhbGxJZGVudGlmaWVyKTsKKyAgICBmb3IgKGNvbnN0IFJlZlB0cjxQcm9maWxlR2VuZXJhdG9y
PiYgcHJvZmlsZSA6IHByb2ZpbGVzKSB7CisgICAgICAgIGlmIChwcm9maWxlLT5wcm9maWxlR3Jv
dXAoKSA9PSB0YXJnZXRQcm9maWxlR3JvdXAgfHwgIXByb2ZpbGUtPm9yaWdpbigpKQorICAgICAg
ICAgICAgY2FsbGJhY2socHJvZmlsZS5nZXQoKSk7CiAgICAgfQogfQogCkBAIC0xMjYsNyArMTI3
LDkgQEAgdm9pZCBMZWdhY3lQcm9maWxlcjo6d2lsbEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxsZXJD
YWxsRnJhbWUsIEpTVmFsdWUgZnVuY3Rpb24pCiB7CiAgICAgQVNTRVJUKCFtX2N1cnJlbnRQcm9m
aWxlcy5pc0VtcHR5KCkpOwogCi0gICAgZGlzcGF0Y2hGdW5jdGlvblRvUHJvZmlsZXMoY2FsbGVy
Q2FsbEZyYW1lLCBtX2N1cnJlbnRQcm9maWxlcywgJlByb2ZpbGVHZW5lcmF0b3I6OndpbGxFeGVj
dXRlLCBjcmVhdGVDYWxsSWRlbnRpZmllcihjYWxsZXJDYWxsRnJhbWUsIGZ1bmN0aW9uLCBTdHJp
bmdJbXBsOjplbXB0eSgpLCAwLCAwKSwgY2FsbGVyQ2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCktPnByb2ZpbGVHcm91cCgpKTsKKyAgICBDYWxsSWRlbnRpZmllciBjYWxsSWRlbnRpZmll
ciA9IGNyZWF0ZUNhbGxJZGVudGlmaWVyKGNhbGxlckNhbGxGcmFtZSwgZnVuY3Rpb24sIFN0cmlu
Z0ltcGw6OmVtcHR5KCksIDAsIDApOworCisgICAgY2FsbEZ1bmN0aW9uRm9yUHJvZmlsZXNXaXRo
R3JvdXAoc3RkOjpiaW5kKCZQcm9maWxlR2VuZXJhdG9yOjp3aWxsRXhlY3V0ZSwgc3RkOjpwbGFj
ZWhvbGRlcnM6Ol8xLCBjYWxsZXJDYWxsRnJhbWUsIGNhbGxJZGVudGlmaWVyKSwgbV9jdXJyZW50
UHJvZmlsZXMsIGNhbGxlckNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5wcm9maWxl
R3JvdXAoKSk7CiB9CiAKIHZvaWQgTGVnYWN5UHJvZmlsZXI6OndpbGxFeGVjdXRlKEV4ZWNTdGF0
ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgdW5zaWduZWQgc3Rh
cnRpbmdMaW5lTnVtYmVyLCB1bnNpZ25lZCBzdGFydGluZ0NvbHVtbk51bWJlcikKQEAgLTEzNSwy
OCArMTM4LDU2IEBAIHZvaWQgTGVnYWN5UHJvZmlsZXI6OndpbGxFeGVjdXRlKEV4ZWNTdGF0ZSog
Y2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBTdHJpbmcmIHNvdXJjCiAKICAgICBDYWxsSWRlbnRpZmll
ciBjYWxsSWRlbnRpZmllciA9IGNyZWF0ZUNhbGxJZGVudGlmaWVyKGNhbGxlckNhbGxGcmFtZSwg
SlNWYWx1ZSgpLCBzb3VyY2VVUkwsIHN0YXJ0aW5nTGluZU51bWJlciwgc3RhcnRpbmdDb2x1bW5O
dW1iZXIpOwogCi0gICAgZGlzcGF0Y2hGdW5jdGlvblRvUHJvZmlsZXMoY2FsbGVyQ2FsbEZyYW1l
LCBtX2N1cnJlbnRQcm9maWxlcywgJlByb2ZpbGVHZW5lcmF0b3I6OndpbGxFeGVjdXRlLCBjYWxs
SWRlbnRpZmllciwgY2FsbGVyQ2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb2Zp
bGVHcm91cCgpKTsKKyAgICBjYWxsRnVuY3Rpb25Gb3JQcm9maWxlc1dpdGhHcm91cChzdGQ6OmJp
bmQoJlByb2ZpbGVHZW5lcmF0b3I6OndpbGxFeGVjdXRlLCBzdGQ6OnBsYWNlaG9sZGVyczo6XzEs
IGNhbGxlckNhbGxGcmFtZSwgY2FsbElkZW50aWZpZXIpLCBtX2N1cnJlbnRQcm9maWxlcywgY2Fs
bGVyQ2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91cCgpKTsKIH0K
IAogdm9pZCBMZWdhY3lQcm9maWxlcjo6ZGlkRXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxlckNhbGxG
cmFtZSwgSlNWYWx1ZSBmdW5jdGlvbikKIHsKICAgICBBU1NFUlQoIW1fY3VycmVudFByb2ZpbGVz
LmlzRW1wdHkoKSk7CiAKLSAgICBkaXNwYXRjaEZ1bmN0aW9uVG9Qcm9maWxlcyhjYWxsZXJDYWxs
RnJhbWUsIG1fY3VycmVudFByb2ZpbGVzLCAmUHJvZmlsZUdlbmVyYXRvcjo6ZGlkRXhlY3V0ZSwg
Y3JlYXRlQ2FsbElkZW50aWZpZXIoY2FsbGVyQ2FsbEZyYW1lLCBmdW5jdGlvbiwgU3RyaW5nSW1w
bDo6ZW1wdHkoKSwgMCwgMCksIGNhbGxlckNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
LT5wcm9maWxlR3JvdXAoKSk7CisgICAgQ2FsbElkZW50aWZpZXIgY2FsbElkZW50aWZpZXIgPSBj
cmVhdGVDYWxsSWRlbnRpZmllcihjYWxsZXJDYWxsRnJhbWUsIGZ1bmN0aW9uLCBTdHJpbmdJbXBs
OjplbXB0eSgpLCAwLCAwKTsKKworICAgIGNhbGxGdW5jdGlvbkZvclByb2ZpbGVzV2l0aEdyb3Vw
KHN0ZDo6YmluZCgmUHJvZmlsZUdlbmVyYXRvcjo6ZGlkRXhlY3V0ZSwgc3RkOjpwbGFjZWhvbGRl
cnM6Ol8xLCBjYWxsZXJDYWxsRnJhbWUsIGNhbGxJZGVudGlmaWVyKSwgbV9jdXJyZW50UHJvZmls
ZXMsIGNhbGxlckNhbGxGcmFtZS0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5wcm9maWxlR3JvdXAo
KSk7CiB9CiAKIHZvaWQgTGVnYWN5UHJvZmlsZXI6OmRpZEV4ZWN1dGUoRXhlY1N0YXRlKiBjYWxs
ZXJDYWxsRnJhbWUsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCB1bnNpZ25lZCBzdGFydGluZ0xp
bmVOdW1iZXIsIHVuc2lnbmVkIHN0YXJ0aW5nQ29sdW1uTnVtYmVyKQogewogICAgIEFTU0VSVCgh
bV9jdXJyZW50UHJvZmlsZXMuaXNFbXB0eSgpKTsKIAotICAgIGRpc3BhdGNoRnVuY3Rpb25Ub1By
b2ZpbGVzKGNhbGxlckNhbGxGcmFtZSwgbV9jdXJyZW50UHJvZmlsZXMsICZQcm9maWxlR2VuZXJh
dG9yOjpkaWRFeGVjdXRlLCBjcmVhdGVDYWxsSWRlbnRpZmllcihjYWxsZXJDYWxsRnJhbWUsIEpT
VmFsdWUoKSwgc291cmNlVVJMLCBzdGFydGluZ0xpbmVOdW1iZXIsIHN0YXJ0aW5nQ29sdW1uTnVt
YmVyKSwgY2FsbGVyQ2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91
cCgpKTsKKyAgICBDYWxsSWRlbnRpZmllciBjYWxsSWRlbnRpZmllciA9IGNyZWF0ZUNhbGxJZGVu
dGlmaWVyKGNhbGxlckNhbGxGcmFtZSwgSlNWYWx1ZSgpLCBzb3VyY2VVUkwsIHN0YXJ0aW5nTGlu
ZU51bWJlciwgc3RhcnRpbmdDb2x1bW5OdW1iZXIpOworCisgICAgY2FsbEZ1bmN0aW9uRm9yUHJv
ZmlsZXNXaXRoR3JvdXAoc3RkOjpiaW5kKCZQcm9maWxlR2VuZXJhdG9yOjpkaWRFeGVjdXRlLCBz
dGQ6OnBsYWNlaG9sZGVyczo6XzEsIGNhbGxlckNhbGxGcmFtZSwgY2FsbElkZW50aWZpZXIpLCBt
X2N1cnJlbnRQcm9maWxlcywgY2FsbGVyQ2FsbEZyYW1lLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkt
PnByb2ZpbGVHcm91cCgpKTsKIH0KIAogdm9pZCBMZWdhY3lQcm9maWxlcjo6ZXhjZXB0aW9uVW53
aW5kKEV4ZWNTdGF0ZSogaGFuZGxlckNhbGxGcmFtZSkKIHsKICAgICBBU1NFUlQoIW1fY3VycmVu
dFByb2ZpbGVzLmlzRW1wdHkoKSk7CiAKLSAgICBkaXNwYXRjaEZ1bmN0aW9uVG9Qcm9maWxlcyho
YW5kbGVyQ2FsbEZyYW1lLCBtX2N1cnJlbnRQcm9maWxlcywgJlByb2ZpbGVHZW5lcmF0b3I6OmV4
Y2VwdGlvblVud2luZCwgY3JlYXRlQ2FsbElkZW50aWZpZXIoaGFuZGxlckNhbGxGcmFtZSwgSlNW
YWx1ZSgpLCBTdHJpbmdJbXBsOjplbXB0eSgpLCAwLCAwKSwgaGFuZGxlckNhbGxGcmFtZS0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpLT5wcm9maWxlR3JvdXAoKSk7CisgICAgQ2FsbElkZW50aWZpZXIg
Y2FsbElkZW50aWZpZXIgPSBjcmVhdGVDYWxsSWRlbnRpZmllcihoYW5kbGVyQ2FsbEZyYW1lLCBK
U1ZhbHVlKCksIFN0cmluZ0ltcGw6OmVtcHR5KCksIDAsIDApOworCisgICAgY2FsbEZ1bmN0aW9u
Rm9yUHJvZmlsZXNXaXRoR3JvdXAoc3RkOjpiaW5kKCZQcm9maWxlR2VuZXJhdG9yOjpleGNlcHRp
b25VbndpbmQsIHN0ZDo6cGxhY2Vob2xkZXJzOjpfMSwgaGFuZGxlckNhbGxGcmFtZSwgY2FsbElk
ZW50aWZpZXIpLCBtX2N1cnJlbnRQcm9maWxlcywgaGFuZGxlckNhbGxGcmFtZS0+bGV4aWNhbEds
b2JhbE9iamVjdCgpLT5wcm9maWxlR3JvdXAoKSk7Cit9CisKK3ZvaWQgTGVnYWN5UHJvZmlsZXI6
OmRpZFBhdXNlKFBhc3NSZWZQdHI8RGVidWdnZXJDYWxsRnJhbWU+IHBycENhbGxGcmFtZSkKK3sK
KyAgICBpZiAobV9jdXJyZW50UHJvZmlsZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBSZWZQdHI8RGVidWdnZXJDYWxsRnJhbWU+IGNhbGxGcmFtZSA9IHBycENhbGxGcmFtZTsK
KyAgICBDYWxsSWRlbnRpZmllciBjYWxsSWRlbnRpZmllciA9IGNyZWF0ZUNhbGxJZGVudGlmaWVy
KGNhbGxGcmFtZS0+ZXhlYygpLCBKU1ZhbHVlKCksIFN0cmluZ0ltcGw6OmVtcHR5KCksIDAsIDAp
OworCisgICAgY2FsbEZ1bmN0aW9uRm9yUHJvZmlsZXNXaXRoR3JvdXAoc3RkOjpiaW5kKCZQcm9m
aWxlR2VuZXJhdG9yOjpkaWRQYXVzZSwgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBjYWxsRnJhbWUs
IGNhbGxJZGVudGlmaWVyKSwgbV9jdXJyZW50UHJvZmlsZXMsIGNhbGxGcmFtZS0+dm1FbnRyeUds
b2JhbE9iamVjdCgpLT5wcm9maWxlR3JvdXAoKSk7Cit9CisKK3ZvaWQgTGVnYWN5UHJvZmlsZXI6
OmRpZENvbnRpbnVlKFBhc3NSZWZQdHI8RGVidWdnZXJDYWxsRnJhbWU+IHBycENhbGxGcmFtZSkK
K3sKKyAgICBpZiAobV9jdXJyZW50UHJvZmlsZXMuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBSZWZQdHI8RGVidWdnZXJDYWxsRnJhbWU+IGNhbGxGcmFtZSA9IHBycENhbGxGcmFt
ZTsKKyAgICBDYWxsSWRlbnRpZmllciBjYWxsSWRlbnRpZmllciA9IGNyZWF0ZUNhbGxJZGVudGlm
aWVyKGNhbGxGcmFtZS0+ZXhlYygpLCBKU1ZhbHVlKCksIFN0cmluZ0ltcGw6OmVtcHR5KCksIDAs
IDApOworCisgICAgY2FsbEZ1bmN0aW9uRm9yUHJvZmlsZXNXaXRoR3JvdXAoc3RkOjpiaW5kKCZQ
cm9maWxlR2VuZXJhdG9yOjpkaWRDb250aW51ZSwgc3RkOjpwbGFjZWhvbGRlcnM6Ol8xLCBjYWxs
RnJhbWUsIGNhbGxJZGVudGlmaWVyKSwgbV9jdXJyZW50UHJvZmlsZXMsIGNhbGxGcmFtZS0+dm1F
bnRyeUdsb2JhbE9iamVjdCgpLT5wcm9maWxlR3JvdXAoKSk7CiB9CiAKIENhbGxJZGVudGlmaWVy
IExlZ2FjeVByb2ZpbGVyOjpjcmVhdGVDYWxsSWRlbnRpZmllcihFeGVjU3RhdGUqIGV4ZWMsIEpT
VmFsdWUgZnVuY3Rpb25WYWx1ZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0U291cmNlVVJMLCB1bnNp
Z25lZCBkZWZhdWx0TGluZU51bWJlciwgdW5zaWduZWQgZGVmYXVsdENvbHVtbk51bWJlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9MZWdhY3lQcm9maWxlci5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmgKaW5kZXgg
Y2M1ZjYzYjBiYjkzZmFkZWRmYzYyY2RmYTE2OGQzZDc0YmU2NWQwZS4uN2U3OWNiY2MwOTZjMGUz
ZWFkNzg1MjU3NTFjOTUzMWY3NTg4MzBlOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Byb2ZpbGVyL0xlZ2FjeVByb2ZpbGVyLmgKQEAgLTM2LDYgKzM2LDcgQEAKIAogbmFtZXNwYWNl
IEpTQyB7CiAKK2NsYXNzIERlYnVnZ2VyQ2FsbEZyYW1lOwogY2xhc3MgRXhlY1N0YXRlOwogY2xh
c3MgVk07CiBjbGFzcyBKU0dsb2JhbE9iamVjdDsKQEAgLTYxLDYgKzYyLDkgQEAgcHVibGljOgog
CiAgICAgdm9pZCBleGNlcHRpb25VbndpbmQoRXhlY1N0YXRlKiBoYW5kbGVyQ2FsbEZyYW1lKTsK
IAorICAgIHZvaWQgZGlkUGF1c2UoUGFzc1JlZlB0cjxEZWJ1Z2dlckNhbGxGcmFtZT4pOworICAg
IHZvaWQgZGlkQ29udGludWUoUGFzc1JlZlB0cjxEZWJ1Z2dlckNhbGxGcmFtZT4pOworCiAgICAg
Y29uc3QgVmVjdG9yPFJlZlB0cjxQcm9maWxlR2VuZXJhdG9yPj4mIGN1cnJlbnRQcm9maWxlcygp
IHsgcmV0dXJuIG1fY3VycmVudFByb2ZpbGVzOyB9OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuY3BwCmluZGV4IDMw
ZDY2Y2E3ODQ3OTc2NTE3YjQzNDFmNTU2OTU5NmIwNWI2OWQzOTUuLmNmZjY2YWE1NjdiN2U3NWQx
MjY5YTJlZDlhZWIwOWRiNmFlMmEzOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lu
Y2x1ZGUgIkNhbGxGcmFtZS5oIgogI2luY2x1ZGUgIkNvZGVCbG9jay5oIgorI2luY2x1ZGUgIkRl
YnVnZ2VyLmgiCiAjaW5jbHVkZSAiSlNHbG9iYWxPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmlu
Z1JlZi5oIgogI2luY2x1ZGUgIkpTRnVuY3Rpb24uaCIKQEAgLTQ4LDcgKzQ5LDExIEBAIFByb2Zp
bGVHZW5lcmF0b3I6OlByb2ZpbGVHZW5lcmF0b3IoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTdHJp
bmcmIHRpdGxlLCB1bnNpZ25lCiAgICAgOiBtX29yaWdpbihleGVjID8gZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpIDogbnVsbHB0cikKICAgICAsIG1fcHJvZmlsZUdyb3VwKGV4ZWMgPyBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnByb2ZpbGVHcm91cCgpIDogMCkKICAgICAsIG1fZm91
bmRDb25zb2xlU3RhcnRQYXJlbnQoZmFsc2UpCisgICAgLCBtX2RlYnVnZ2VyUGF1c2VkKGZhbHNl
KQogeworICAgIGlmIChEZWJ1Z2dlciogZGVidWdnZXIgPSBleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCktPmRlYnVnZ2VyKCkpCisgICAgICAgIG1fZGVidWdnZXJQYXVzZWQgPSBkZWJ1Z2dlci0+
aXNQYXVzZWQoKTsKKwogICAgIG1fcHJvZmlsZSA9IFByb2ZpbGU6OmNyZWF0ZSh0aXRsZSwgdWlk
KTsKICAgICBtX2N1cnJlbnROb2RlID0gbV9yb290Tm9kZSA9IG1fcHJvZmlsZS0+cm9vdE5vZGUo
KTsKICAgICBpZiAoZXhlYykKQEAgLTEyMyw3ICsxMjgsNyBAQCB2b2lkIFByb2ZpbGVHZW5lcmF0
b3I6OmVuZENhbGxFbnRyeShQcm9maWxlTm9kZSogbm9kZSkKICAgICBQcm9maWxlTm9kZTo6Q2Fs
bCYgbGFzdCA9IG5vZGUtPmxhc3RDYWxsKCk7CiAgICAgQVNTRVJUKGlzbmFuKGxhc3QudG90YWxU
aW1lKCkpKTsKIAotICAgIGxhc3Quc2V0VG90YWxUaW1lKGN1cnJlbnRUaW1lKCkgLSBsYXN0LnN0
YXJ0VGltZSgpKTsKKyAgICBsYXN0LnNldFRvdGFsVGltZShtX2RlYnVnZ2VyUGF1c2VkID8gMC4w
IDogY3VycmVudFRpbWUoKSAtIGxhc3Quc3RhcnRUaW1lKCkpOwogfQogCiB2b2lkIFByb2ZpbGVH
ZW5lcmF0b3I6OndpbGxFeGVjdXRlKEV4ZWNTdGF0ZSogY2FsbGVyQ2FsbEZyYW1lLCBjb25zdCBD
YWxsSWRlbnRpZmllciYgY2FsbElkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZUdlbmVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3Byb2ZpbGVyL1Byb2ZpbGVHZW5lcmF0b3IuaAppbmRleCA3MGRjZGVhZmNhNmY0YjZkNDFj
MGUyODZmMTQ5ZDc2NWZjZTE4NDkzLi4zYjZiOTVhMDhhNzY5YWY4MmViNTM4ZGU4NTdiNjFlOTky
ZDE2ZmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmls
ZUdlbmVyYXRvci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxl
R2VuZXJhdG9yLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKKyAgICBj
bGFzcyBEZWJ1Z2dlckNhbGxGcmFtZTsKICAgICBjbGFzcyBFeGVjU3RhdGU7CiAgICAgY2xhc3Mg
SlNHbG9iYWxPYmplY3Q7CiAgICAgY2xhc3MgUHJvZmlsZTsKQEAgLTUzLDYgKzU0LDkgQEAgbmFt
ZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQgZGlkRXhlY3V0ZShFeGVjU3RhdGUqIGNhbGxlckNh
bGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXImKTsKICAgICAgICAgdm9pZCBleGNlcHRpb25V
bndpbmQoRXhlY1N0YXRlKiBoYW5kbGVyQ2FsbEZyYW1lLCBjb25zdCBDYWxsSWRlbnRpZmllciYp
OwogCisgICAgICAgIHZvaWQgZGlkUGF1c2UoUGFzc1JlZlB0cjxEZWJ1Z2dlckNhbGxGcmFtZT4s
IGNvbnN0IENhbGxJZGVudGlmaWVyJikgeyBtX2RlYnVnZ2VyUGF1c2VkID0gdHJ1ZTsgfQorICAg
ICAgICB2b2lkIGRpZENvbnRpbnVlKFBhc3NSZWZQdHI8RGVidWdnZXJDYWxsRnJhbWU+LCBjb25z
dCBDYWxsSWRlbnRpZmllciYpIHsgbV9kZWJ1Z2dlclBhdXNlZCA9IGZhbHNlOyB9CisKICAgICAg
ICAgdm9pZCBzdG9wUHJvZmlsaW5nKCk7CiAKICAgICAgICAgdHlwZWRlZiB2b2lkIChQcm9maWxl
R2VuZXJhdG9yOjoqUHJvZmlsZUZ1bmN0aW9uKShFeGVjU3RhdGUqIGNhbGxlck9ySGFuZGxlckNh
bGxGcmFtZSwgY29uc3QgQ2FsbElkZW50aWZpZXImIGNhbGxJZGVudGlmaWVyKTsKQEAgLTczLDYg
Kzc3LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFJlZlB0cjxQcm9maWxlTm9kZT4gbV9y
b290Tm9kZTsKICAgICAgICAgUmVmUHRyPFByb2ZpbGVOb2RlPiBtX2N1cnJlbnROb2RlOwogICAg
ICAgICBib29sIG1fZm91bmRDb25zb2xlU3RhcnRQYXJlbnQ7CisgICAgICAgIGJvb2wgbV9kZWJ1
Z2dlclBhdXNlZDsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MK
</data>
<flag name="review"
          id="262209"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>