<?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>43150</bug_id>
          
          <creation_ts>2010-07-28 14:51:29 -0700</creation_ts>
          <short_desc>Investigate using the thread pool instead of a dedicated thread for WorkQueue on Windows</short_desc>
          <delta_ts>2010-09-01 00:03:03 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>42826</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>andersca</cc>
    
    <cc>eric</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>257371</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-07-28 14:51:29 -0700</bug_when>
    <thetext>We should investigate using the Windows thread pool [1] instead of a dedicated thread for WorkQueue on Windows. This would be more similar to how WorkQueue works on Mac, and would hopefully improve performance overall. We&apos;d probably implement this by using ::RegisterWaitForSingleObject.

1. http://msdn.microsoft.com/en-us/library/ms686756(v=VS.85).aspx</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257373</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-07-28 14:52:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/8247280&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>260657</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-08-05 09:35:05 -0700</bug_when>
    <thetext>We probably wouldn&apos;t want to do this until we had switched to using an I/O completion port in WorkQueue (bug 43148).

But I&apos;m not so sure this will work well for us, at least not with ::RegisterWaitForSingleObject. That function will cause a new worker thread to be spawned every time the I/O completion port is signaled, even if another thread is already processing a message from the completion port. This is OK for correctness, as the worker thread will then immediately block on ::GetQueuedCompletionStatus until the other thread(s) finish their work. But it could mean that lots of threads end up sitting around blocked on ::GetQueuedCompletionStatus if it takes longer for a message to be processed than it takes for the completion port to get signaled again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>270539</commentid>
    <comment_count>3</comment_count>
      <attachid>65721</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-08-27 09:25:50 -0700</bug_when>
    <thetext>Created attachment 65721
Use the Windows thread pool instead of a dedicated thread for WorkQueue on Windows</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>271220</commentid>
    <comment_count>4</comment_count>
      <attachid>65721</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-08-29 14:45:07 -0700</bug_when>
    <thetext>Comment on attachment 65721
Use the Windows thread pool instead of a dedicated thread for WorkQueue on Windows

r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272215</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-08-31 10:59:13 -0700</bug_when>
    <thetext>Committed r66506: &lt;http://trac.webkit.org/changeset/66506&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>272662</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-01 00:03:03 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/66506 might have broken Leopard Intel Debug (Tests)
The following changes are on the blame list:
http://trac.webkit.org/changeset/66505
http://trac.webkit.org/changeset/66506
http://trac.webkit.org/changeset/66507
http://trac.webkit.org/changeset/66508
http://trac.webkit.org/changeset/66509</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>65721</attachid>
            <date>2010-08-27 09:25:50 -0700</date>
            <delta_ts>2010-08-29 14:45:07 -0700</delta_ts>
            <desc>Use the Windows thread pool instead of a dedicated thread for WorkQueue on Windows</desc>
            <filename>bug-43150-20100827122621.patch</filename>
            <type>text/plain</type>
            <size>14310</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
YzRlMzE1YTA1MTkyM2VmYWQ1YjhiOTZhMTM0ODQ3ZTE5MWEwNzk1Ni4uN2ZmNzI3MWU1OTE0OGM3
OTJlZGIxZGY1ODU0ZTJiMmNmMmMxZjE3NSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OCBAQAorMjAxMC0wOC0yNyAgQWRh
bSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIHRoZSBXaW5kb3dzIHRo
cmVhZCBwb29sIGluc3RlYWQgb2YgYSBkZWRpY2F0ZWQgdGhyZWFkIGZvcgorICAgICAgICBXb3Jr
UXVldWUgb24gV2luZG93cworCisgICAgICAgIFdvcmtRdWV1ZSBub3cgdXNlcyA6OlJlZ2lzdGVy
V2FpdEZvclNpbmdsZU9iamVjdCB0byBmaW5kIG91dCB3aGVuIHdvcmsKKyAgICAgICAgaXRlbXMg
bmVlZCB0byBiZSBleGVjdXRlZC4gVGhpcyBjYXVzZXMgV2luZG93cyB0byB3YWl0IG9uIHRoZSBv
YmplY3RzCisgICAgICAgIG9uIGEgdGhyZWFkIHBvb2wgd2FpdCB0aHJlYWQsIGFuZCB0aGVuIHRv
IHNwYXduIGEgdGhyZWFkIHBvb2wgd29ya2VyCisgICAgICAgIHRocmVhZCB3aGVuIGFuIG9iamVj
dCBpcyBzaWduYWxlZC4gVGhpcyBpcyBtb3JlIGVmZmljaWVudCB0aGFuIHVzaW5nCisgICAgICAg
IG91ciBvd24gZGVkaWNhdGVkIHRocmVhZCB0byBwZXJmb3JtIHRoZSB3YWl0IGFuZCB0aGUgd29y
ayBiZWNhdXNlCisgICAgICAgIG11bHRpcGxlIFdvcmtRdWV1ZXMgKGFuZCBldmVuIG90aGVyIHBh
cnRzIG9mIFdlYktpdCBvciBvdGhlciBtb2R1bGVzKQorICAgICAgICBjYW4gYWxsIHNoYXJlIHRo
ZSBzYW1lIHdhaXQgdGhyZWFkIGFuZCB3b3JrZXIgdGhyZWFkIHBvb2wuCisKKyAgICAgICAgRWFj
aCB0aW1lIFdvcmtRdWV1ZTo6bV9wZXJmb3JtV29ya0V2ZW50IG9yIGFueSBoYW5kbGUgaW4KKyAg
ICAgICAgV29ya1F1ZXVlOjptX2hhbmRsZXMgaXMgc2lnbmFsZWQsIGEgd29ya2VyIHRocmVhZCB3
aWxsIGJlIHNwYXduZWQuCisgICAgICAgIFRvIG1haW50YWluIFdvcmtRdWV1ZSdzIHNlcmlhbCBu
YXR1cmUsIG9ubHkgb25lIHdvcmtlciB0aHJlYWQgaXMKKyAgICAgICAgYWxsb3dlZCB0byBwZXJm
b3JtIHdvcmsgaXRlbXMgYXQgYSB0aW1lLiAoVGhlIHdvcmtlciB0aHJlYWQgdGhhdCBpcworICAg
ICAgICBhY3R1YWxseSBwZXJmb3JtaW5nIHdvcmsgaXRlbXMgaXMgY2FsbGVkIHRoZSBxdWV1ZSdz
ICJ3b3JrIHRocmVhZCIuKQorICAgICAgICBUbyBhY2NvbXBsaXNoIHRoaXMsIHdvcmtlciB0aHJl
YWRzIG11c3QgcmVnaXN0ZXIgYXMgdGhlIHF1ZXVlJ3Mgd29yaworICAgICAgICB0aHJlYWQgYmVm
b3JlIHBlcmZvcm1pbmcgd29yayBpdGVtcy4KKyAgICAgICAgV29ya1F1ZXVlOjptX2lzV29ya1Ro
cmVhZFJlZ2lzdGVyZWQgaXMgdXNlZCBhcyBhbiBhdG9taWMgZ3VhcmQgdG8gbWFrZQorICAgICAg
ICBzdXJlIHRoYXQgb25seSBvbmUgd29ya2VyIHRocmVhZCBpcyByZWdpc3RlcmVkIGF0IGEgdGlt
ZS4KKyAgICAgICAgCisgICAgICAgIEZpeGVzIDxodHRwOi8vd2Via2l0Lm9yZy9iLzQzMTUwPiA8
cmRhcjovL3Byb2JsZW0vODI0NzI4MD4uCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9Xb3JrUXVldWUuaDoKKyAgICAgICAgICAtIEFk
ZGVkIHRoZSBXb3JrSXRlbVdpbiBjbGFzcywgd2hpY2ggaXMgdXNlZCB0byB3cmFwIFdvcmtJdGVt
cyBmb3IKKyAgICAgICAgICAgIFdvcmtRdWV1ZSdzIFdpbmRvd3MgaW1wbGVtZW50YXRpb24KKyAg
ICAgICAgICAtIENoYW5nZWQgbV93b3JrSXRlbVF1ZXVlIGFuZCBtX2hhbmRsZXMgdG8gaG9sZAor
ICAgICAgICAgICAgUmVmUHRyPFdvcmtJdGVtV2luPnMKKyAgICAgICAgICAtIFJlcGxhY2VkICJ3
b3JrIHF1ZXVlIHRocmVhZCItcmVsYXRlZCBtZW1iZXJzIHdpdGggbmV3IG1lbWJlcnMgdGhhdAor
ICAgICAgICAgICAgaGFuZGxlIG91ciB0aHJlYWQgcG9vbCBjb2RlCisKKyAgICAgICAgKiBQbGF0
Zm9ybS93aW4vV29ya1F1ZXVlV2luLmNwcDoKKyAgICAgICAgKFdvcmtRdWV1ZTo6V29ya0l0ZW1X
aW46OldvcmtJdGVtV2luKToKKyAgICAgICAgKFdvcmtRdWV1ZTo6V29ya0l0ZW1XaW46OmNyZWF0
ZSk6CisgICAgICAgIEFkZGVkIHNpbXBsZSBjb25zdHJ1Y3Rvci9jcmVhdG9yLgorCisgICAgICAg
IChXb3JrUXVldWU6OmhhbmRsZUNhbGxiYWNrKTogQWRkZWQuIFRoaXMgZnVuY3Rpb24gaXMgY2Fs
bGVkIHdoZW5ldmVyIGEKKyAgICAgICAgaGFuZGxlIGluIFdvcmtRdWV1ZTo6bV9oYW5kbGVzIGlz
IHNpZ25hbGVkLiBXZSBhZGQgdGhlIFdvcmtJdGVtV2luCisgICAgICAgIHRoYXQgY29ycmVzcG9u
ZHMgdG8gdGhlIGhhbmRsZSAocGFzc2VkIHZpYSB0aGUgY29udGV4dCBwYXJhbWV0ZXIpIHRvCisg
ICAgICAgIHRoZSB3b3JrIGl0ZW0gcXVldWUsIHRoZW4gdHJ5IHRvIHJlZ2lzdGVyIGFzIHRoZSB3
b3JrIHRocmVhZCBhbmQKKyAgICAgICAgcGVyZm9ybSBhbnkgcXVldWVkIHdvcmsuIElmIGFub3Ro
ZXIgdGhyZWFkIGlzIGFscmVhZHkgcmVnaXN0ZXJlZCBhcworICAgICAgICB0aGUgd29yayB0aHJl
YWQsIHdlIGp1c3QgZXhpdCBhbmQgbGV0IHRoYXQgdGhyZWFkIGhhbmRsZSB0aGUgd29yayB3ZQor
ICAgICAgICBxdWV1ZWQuCisgICAgICAgIChXb3JrUXVldWU6OnJlZ2lzdGVySGFuZGxlKTogQ2hh
bmdlZCB0byB3cmFwIHRoZSBXb3JrSXRlbSBpbiBhCisgICAgICAgIFdvcmtJdGVtV2luLCBhbmQg
dG8gdXNlIDo6UmVnaXN0ZXJXYWl0Rm9yU2luZ2xlT2JqZWN0IHRvIHdhaXQgb24gdGhlCisgICAg
ICAgIGhhbmRsZS4KKyAgICAgICAgKFdvcmtRdWV1ZTo6ZXZlbnRDYWxsYmFjayk6IEFkZGVkLiBU
aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuZXZlcgorICAgICAgICBtX3BlcmZvcm1Xb3JrRXZl
bnQgaXMgc2lnbmFsZWQuIFdlIHRyeSB0byByZWdpc3RlciBhcyB0aGUgd29yayB0aHJlYWQKKyAg
ICAgICAgYW5kIHBlcmZvbSBhbnkgcXVldWVkIHdvcmsuIElmIGFub3RoZXIgdGhyZWFkIGlzIGFs
cmVhZHkgcmVnaXN0ZXJlZCBhcworICAgICAgICB0aGUgd29yayB0aHJlYWQsIHdlIGp1c3QgZXhp
dCBhbmQgbGV0IHRoYXQgdGhyZWFkIGhhbmRsZSB0aGUgd29yay4KKyAgICAgICAgKFdvcmtRdWV1
ZTo6cGVyZm9ybVdvcmtPblJlZ2lzdGVyZWRXb3JrVGhyZWFkKTogQWRkZWQuIFBlcmZvcm1zIGFu
eQorICAgICAgICBxdWV1ZWQgd29yayBpbiBhIGxvb3AgdW50aWwgZWl0aGVyIHRoZSBxdWV1ZSBi
ZWNvbWVzIGludmFsaWQgb3Igbm8KKyAgICAgICAgd29yayBpcyBsZWZ0IHRvIHBlcmZvcm0uIFVu
cmVnaXN0ZXJzIGFzIHRoZSB3b3JrIHRocmVhZCBiZWZvcmUgZXhpdGluZworICAgICAgICBzbyB0
aGF0IG90aGVyIHRocmVhZHMgY2FuIHBlcmZvcm0gd29yayBpbiB0aGUgZnV0dXJlLgorICAgICAg
ICAoV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUpOiBBZGRlZCBpbml0aWFsaXphdGlvbiBv
ZgorICAgICAgICBtX2lzV29ya1RocmVhZFJlZ2lzdGVyZWQuIFJlcGxhY2VkIGNvZGUgdG8gc3Bh
d24gdGhlIG9sZCB3b3JrIHF1ZXVlCisgICAgICAgIHRocmVhZCB3aXRoIGEgY2FsbCB0byA6OlJl
Z2lzdGVyV2FpdEZvclNpbmdsZU9iamVjdCBzbyB0aGF0IGEgd29ya2VyCisgICAgICAgIHRocmVh
ZCBmcm9tIHRoZSB0aHJlYWQgcG9vbCB3aWxsIGJlIHNwYXduZWQgd2hlbiBtX3BlcmZvcm1Xb3Jr
RXZlbnQgaXMKKyAgICAgICAgc2lnbmFsZWQuCisgICAgICAgIChXb3JrUXVldWU6OnRyeVJlZ2lz
dGVyQXNXb3JrVGhyZWFkKTogQWRkZWQuIEF0dGVtcHRzIGFuIGF0b21pYworICAgICAgICBjb21w
YXJlLWFuZC1zd2FwIHRvIGNoYW5nZSBtX2lzV29ya1RocmVhZFJlZ2lzdGVyZWQgZnJvbSAwIHRv
IDEuIElmCisgICAgICAgIHN1Y2Vzc2Z1bCwgd2UgcmV0dXJuIHRydWUgdG8gaW5kaWNhdGUgdGhh
dCB0aGlzIHRocmVhZCBpcyBub3cKKyAgICAgICAgcmVnaXN0ZXJlZCBhcyB0aGUgd29yayB0aHJl
YWQuCisgICAgICAgIChXb3JrUXVldWU6OnVucmVnaXN0ZXJBc1dvcmtUaHJlYWQpOiBBZGRlZC4g
VXNlcyBhbiBhdG9taWMKKyAgICAgICAgY29tcGFyZS1hbmQtc3dhcCB0byBjaGFuZ2UgbV9pc1dv
cmtUaHJlYWRSZWdpc3RlcmVkIGJhY2sgZnJvbSAxIHRvIDAuCisgICAgICAgIChXb3JrUXVldWU6
OnNjaGVkdWxlV29yayk6IENoYW5nZWQgdG8gd3JhcCB0aGUgV29ya0l0ZW0gaW4gYQorICAgICAg
ICBXb3JrSXRlbVdpbi4gQWxzbyBhZGRlZCBhbiBvcHRpbWl6YXRpb24gdG8gYXZvaWQgc2lnbmFs
aW5nCisgICAgICAgIG1fcGVyZm9ybVdvcmtFdmVudCB3aGVuIGEgd29yayB0aHJlYWQgaXMgYWxy
ZWFkeSBwZXJmb3JtaW5nIHdvcmssIGFzCisgICAgICAgIGl0IHdpbGwgcGljayB1cCB0aGUgaXRl
bSB3ZSBqdXN0IHF1ZXVlZCB3aXRob3V0IHVzIGhhdmluZyB0byBkbworICAgICAgICBhbnl0aGlu
Zy4KKwogMjAxMC0wOC0yNSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgQ2xlYW4gdXAgQ29ubmVjdGlvbjo6b3BlbiBvbiBXaW5kb3dzCmRpZmYgLS1naXQgYS9XZWJL
aXQyL1BsYXRmb3JtL1dvcmtRdWV1ZS5oIGIvV2ViS2l0Mi9QbGF0Zm9ybS9Xb3JrUXVldWUuaApp
bmRleCAzOTdjZDEyN2VkNzEyN2FlMTBiZjYwZmU1YzFmMjI1OTU5ZjVlNTQ2Li40OTk0MzRiN2Nm
YjkwMmE0NmM3OGFkNzEzMjQyNDIzNmJmOTEyNDViIDEwMDY0NAotLS0gYS9XZWJLaXQyL1BsYXRm
b3JtL1dvcmtRdWV1ZS5oCisrKyBiL1dlYktpdDIvUGxhdGZvcm0vV29ya1F1ZXVlLmgKQEAgLTM1
LDYgKzM1LDcgQEAKICNpbmNsdWRlICJXb3JrSXRlbS5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKQEAgLTkyLDE5ICs5MywzNiBAQCBwcml2YXRlOgogICAgIGRpc3BhdGNoX3F1ZXVlX3QgbV9k
aXNwYXRjaFF1ZXVlOwogI2VuZGlmCiAjZWxpZiBQTEFURk9STShXSU4pCi0gICAgc3RhdGljIHZv
aWQqIHdvcmtRdWV1ZVRocmVhZEJvZHkodm9pZCopOwotICAgIHZvaWQgd29ya1F1ZXVlVGhyZWFk
Qm9keSgpOwotICAgIHZvaWQgcGVyZm9ybVdvcmsoKTsKKyAgICBjbGFzcyBXb3JrSXRlbVdpbiA6
IHB1YmxpYyBSZWZDb3VudGVkPFdvcmtJdGVtV2luPiB7CisgICAgcHVibGljOgorICAgICAgICBz
dGF0aWMgUGFzc1JlZlB0cjxXb3JrSXRlbVdpbj4gY3JlYXRlKFBhc3NPd25QdHI8V29ya0l0ZW0+
LCBXb3JrUXVldWUqKTsKIAotICAgIFRocmVhZElkZW50aWZpZXIgbV93b3JrUXVldWVUaHJlYWQ7
CisgICAgICAgIFdvcmtJdGVtKiBpdGVtKCkgY29uc3QgeyByZXR1cm4gbV9pdGVtLmdldCgpOyB9
CisgICAgICAgIFdvcmtRdWV1ZSogcXVldWUoKSBjb25zdCB7IHJldHVybiBtX3F1ZXVlOyB9CisK
KyAgICBwcml2YXRlOgorICAgICAgICBXb3JrSXRlbVdpbihQYXNzT3duUHRyPFdvcmtJdGVtPiwg
V29ya1F1ZXVlKik7CisKKyAgICAgICAgT3duUHRyPFdvcmtJdGVtPiBtX2l0ZW07CisgICAgICAg
IFdvcmtRdWV1ZSogbV9xdWV1ZTsKKyAgICB9OworCisgICAgc3RhdGljIHZvaWQgQ0FMTEJBQ0sg
aGFuZGxlQ2FsbGJhY2sodm9pZCogY29udGV4dCwgQk9PTEVBTiB0aW1lck9yV2FpdEZpcmVkKTsK
KyAgICBzdGF0aWMgdm9pZCBDQUxMQkFDSyBldmVudENhbGxiYWNrKHZvaWQqIGNvbnRleHQsIEJP
T0xFQU4gdGltZXJPcldhaXRGaXJlZCk7CisKKyAgICBib29sIHRyeVJlZ2lzdGVyQXNXb3JrVGhy
ZWFkKCk7CisgICAgdm9pZCB1bnJlZ2lzdGVyQXNXb3JrVGhyZWFkKCk7CisgICAgdm9pZCBwZXJm
b3JtV29ya09uUmVnaXN0ZXJlZFdvcmtUaHJlYWQoKTsKIAogICAgIEhBTkRMRSBtX3BlcmZvcm1X
b3JrRXZlbnQ7CiAKKyAgICB2b2xhdGlsZSBMT05HIG1faXNXb3JrVGhyZWFkUmVnaXN0ZXJlZDsK
KwogICAgIE11dGV4IG1fd29ya0l0ZW1RdWV1ZUxvY2s7Ci0gICAgVmVjdG9yPFdvcmtJdGVtKj4g
bV93b3JrSXRlbVF1ZXVlOworICAgIFZlY3RvcjxSZWZQdHI8V29ya0l0ZW1XaW4+ID4gbV93b3Jr
SXRlbVF1ZXVlOwogCiAgICAgTXV0ZXggbV9oYW5kbGVzTG9jazsKLSAgICBIYXNoTWFwPEhBTkRM
RSwgV29ya0l0ZW0qPiBtX2hhbmRsZXM7CisgICAgSGFzaE1hcDxIQU5ETEUsIFJlZlB0cjxXb3Jr
SXRlbVdpbj4gPiBtX2hhbmRsZXM7CiAjZWxpZiBQTEFURk9STShRVCkKICAgICBjbGFzcyBXb3Jr
SXRlbVF0OwogICAgIEhhc2hNYXA8UU9iamVjdCosIFdvcmtJdGVtUXQqPiBtX3NpZ25hbExpc3Rl
bmVyczsKZGlmZiAtLWdpdCBhL1dlYktpdDIvUGxhdGZvcm0vd2luL1dvcmtRdWV1ZVdpbi5jcHAg
Yi9XZWJLaXQyL1BsYXRmb3JtL3dpbi9Xb3JrUXVldWVXaW4uY3BwCmluZGV4IDkyZDczNGE1MDUx
YzFkN2JkNGQ0NzZkODc4NDYxM2YzOGVmOGQyZmUuLjI4NGQ3YmFlMTA3MGVkYWI1MDExYzRiODgz
M2Q3MjVjZGE3YmIxOGIgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvUGxhdGZvcm0vd2luL1dvcmtRdWV1
ZVdpbi5jcHAKKysrIGIvV2ViS2l0Mi9QbGF0Zm9ybS93aW4vV29ya1F1ZXVlV2luLmNwcApAQCAt
MjUsODUgKzI1LDEzMyBAQAogCiAjaW5jbHVkZSAiV29ya1F1ZXVlLmgiCiAKLSNpbmNsdWRlIDxw
cm9jZXNzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogCitpbmxpbmUgV29ya1F1ZXVl
OjpXb3JrSXRlbVdpbjo6V29ya0l0ZW1XaW4oUGFzc093blB0cjxXb3JrSXRlbT4gaXRlbSwgV29y
a1F1ZXVlKiBxdWV1ZSkKKyAgICA6IG1faXRlbShpdGVtKQorICAgICwgbV9xdWV1ZShxdWV1ZSkK
K3sKK30KKworUGFzc1JlZlB0cjxXb3JrUXVldWU6OldvcmtJdGVtV2luPiBXb3JrUXVldWU6Oldv
cmtJdGVtV2luOjpjcmVhdGUoUGFzc093blB0cjxXb3JrSXRlbT4gaXRlbSwgV29ya1F1ZXVlKiBx
dWV1ZSkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdvcmtJdGVtV2luKGl0ZW0sIHF1ZXVl
KSk7Cit9CisKK3ZvaWQgV29ya1F1ZXVlOjpoYW5kbGVDYWxsYmFjayh2b2lkKiBjb250ZXh0LCBC
T09MRUFOIHRpbWVyT3JXYWl0RmlyZWQpCit7CisgICAgQVNTRVJUX0FSRyhjb250ZXh0LCBjb250
ZXh0KTsKKyAgICBBU1NFUlRfQVJHKHRpbWVyT3JXYWl0RmlyZWQsICF0aW1lck9yV2FpdEZpcmVk
KTsKKworICAgIFdvcmtJdGVtV2luKiBpdGVtID0gc3RhdGljX2Nhc3Q8V29ya0l0ZW1XaW4qPihj
b250ZXh0KTsKKyAgICBXb3JrUXVldWUqIHF1ZXVlID0gaXRlbS0+cXVldWUoKTsKKworICAgIHsK
KyAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhxdWV1ZS0+bV93b3JrSXRlbVF1ZXVlTG9jayk7Cisg
ICAgICAgIHF1ZXVlLT5tX3dvcmtJdGVtUXVldWUuYXBwZW5kKGl0ZW0pOworCisgICAgICAgIC8v
IElmIG5vIG90aGVyIHRocmVhZCBpcyBwZXJmb3JtaW5nIHdvcmssIHdlIGNhbiBkbyBpdCBvbiB0
aGlzIHRocmVhZC4KKyAgICAgICAgaWYgKCFxdWV1ZS0+dHJ5UmVnaXN0ZXJBc1dvcmtUaHJlYWQo
KSkgeworICAgICAgICAgICAgLy8gU29tZSBvdGhlciB0aHJlYWQgaXMgcGVyZm9ybWluZyB3b3Jr
LiBTaW5jZSB3ZSBob2xkIHRoZSBxdWV1ZSBsb2NrLCB3ZSBjYW4gYmUgc3VyZQorICAgICAgICAg
ICAgLy8gdGhhdCB0aGUgd29yayB0aHJlYWQgaXMgbm90IGV4aXRpbmcgZHVlIHRvIGFuIGVtcHR5
IHF1ZXVlIGFuZCB3aWxsIHByb2Nlc3MgdGhlIHdvcmsKKyAgICAgICAgICAgIC8vIGl0ZW0gd2Ug
anVzdCBhZGRlZCB0byBpdC4gSWYgd2Ugd2VyZW4ndCBob2xkaW5nIHRoZSBsb2NrIHdlJ2QgaGF2
ZSB0byBzaWduYWwKKyAgICAgICAgICAgIC8vIG1fcGVyZm9ybVdvcmtFdmVudCB0byBtYWtlIHN1
cmUgdGhlIHdvcmsgaXRlbSBnb3QgcGlja2VkIHVwLgorICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgfQorCisgICAgcXVldWUtPnBlcmZvcm1Xb3JrT25SZWdpc3RlcmVkV29ya1Ro
cmVhZCgpOworfQorCiB2b2lkIFdvcmtRdWV1ZTo6cmVnaXN0ZXJIYW5kbGUoSEFORExFIGhhbmRs
ZSwgUGFzc093blB0cjxXb3JrSXRlbT4gaXRlbSkKIHsKKyAgICBSZWZQdHI8V29ya0l0ZW1XaW4+
IGl0ZW1XaW4gPSBXb3JrSXRlbVdpbjo6Y3JlYXRlKGl0ZW0sIHRoaXMpOworCiAgICAgLy8gQWRk
IHRoZSBpdGVtLgogICAgIHsKICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1faGFuZGxlc0xv
Y2spOwotICAgICAgICBtX2hhbmRsZXMuc2V0KGhhbmRsZSwgaXRlbS5sZWFrUHRyKCkpOworICAg
ICAgICBtX2hhbmRsZXMuc2V0KGhhbmRsZSwgaXRlbVdpbik7CiAgICAgfQogCi0gICAgLy8gU2V0
IHRoZSB3b3JrIGV2ZW50LgotICAgIDo6U2V0RXZlbnQobV9wZXJmb3JtV29ya0V2ZW50KTsKKyAg
ICAvLyBGSVhNRTogV2UgbmVlZCB0byBob2xkIG9udG8gd2FpdEhhbmRsZSBzbyB0aGF0IHdlIGNh
biB1bnJlZ2lzdGVyIHRoZSB3YWl0IGxhdGVyLgorICAgIEhBTkRMRSB3YWl0SGFuZGxlOworICAg
IGlmICghOjpSZWdpc3RlcldhaXRGb3JTaW5nbGVPYmplY3QoJndhaXRIYW5kbGUsIGhhbmRsZSwg
aGFuZGxlQ2FsbGJhY2ssIGl0ZW1XaW4uZ2V0KCksIElORklOSVRFLCBXVF9FWEVDVVRFREVGQVVM
VCkpIHsKKyAgICAgICAgRFdPUkQgZXJyb3IgPSA6OkdldExhc3RFcnJvcigpOworICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CiB9CiAKLXZvaWQqIFdvcmtRdWV1ZTo6d29ya1F1
ZXVlVGhyZWFkQm9keSh2b2lkICpjb250ZXh0KQordm9pZCBXb3JrUXVldWU6OmV2ZW50Q2FsbGJh
Y2sodm9pZCogY29udGV4dCwgQk9PTEVBTiB0aW1lck9yV2FpdEZpcmVkKQogewotICAgIHN0YXRp
Y19jYXN0PFdvcmtRdWV1ZSo+KGNvbnRleHQpLT53b3JrUXVldWVUaHJlYWRCb2R5KCk7Ci0gICAg
cmV0dXJuIDA7CisgICAgQVNTRVJUX0FSRyhjb250ZXh0LCBjb250ZXh0KTsKKyAgICBBU1NFUlRf
QVJHKHRpbWVyT3JXYWl0RmlyZWQsICF0aW1lck9yV2FpdEZpcmVkKTsKKworICAgIFdvcmtRdWV1
ZSogcXVldWUgPSBzdGF0aWNfY2FzdDxXb3JrUXVldWUqPihjb250ZXh0KTsKKworICAgIGlmICgh
cXVldWUtPnRyeVJlZ2lzdGVyQXNXb3JrVGhyZWFkKCkpCisgICAgICAgIHJldHVybjsKKworICAg
IHF1ZXVlLT5wZXJmb3JtV29ya09uUmVnaXN0ZXJlZFdvcmtUaHJlYWQoKTsKIH0KIAotdm9pZCBX
b3JrUXVldWU6OndvcmtRdWV1ZVRocmVhZEJvZHkoKQordm9pZCBXb3JrUXVldWU6OnBlcmZvcm1X
b3JrT25SZWdpc3RlcmVkV29ya1RocmVhZCgpCiB7Ci0gICAgd2hpbGUgKHRydWUpIHsKLSAgICAg
ICAgVmVjdG9yPEhBTkRMRT4gaGFuZGxlczsKLSAgICAgICAgewotICAgICAgICAgICAgLy8gQ29w
eSB0aGUgaGFuZGxlcyB0byBvdXIgaGFuZGxlcyB2ZWN0b3IuCi0gICAgICAgICAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9oYW5kbGVzTG9jayk7Ci0gICAgICAgICAgICBjb3B5S2V5c1RvVmVjdG9y
KG1faGFuZGxlcywgaGFuZGxlcyk7Ci0gICAgICAgIH0KKyAgICBBU1NFUlQobV9pc1dvcmtUaHJl
YWRSZWdpc3RlcmVkKTsKIAotICAgICAgICAvLyBBZGQgdGhlICJwZXJmb3JtIHdvcmsiIGV2ZW50
IGhhbmRsZS4KLSAgICAgICAgaGFuZGxlcy5hcHBlbmQobV9wZXJmb3JtV29ya0V2ZW50KTsKKyAg
ICBib29sIGlzVmFsaWQgPSB0cnVlOwogCi0gICAgICAgIEFTU0VSVChoYW5kbGVzLnNpemUoKSA8
PSBNQVhJTVVNX1dBSVRfT0JKRUNUUyk7CisgICAgbV93b3JrSXRlbVF1ZXVlTG9jay5sb2NrKCk7
CiAKLSAgICAgICAgLy8gTm93IHdlIHdhaXQuCi0gICAgICAgIERXT1JEIHJlc3VsdCA9IDo6V2Fp
dEZvck11bHRpcGxlT2JqZWN0cyhoYW5kbGVzLnNpemUoKSwgaGFuZGxlcy5kYXRhKCksIEZBTFNF
LCBJTkZJTklURSk7Ci0gICAgICAgIGlmIChyZXN1bHQgPT0gV0FJVF9GQUlMRUQpIHsKLSAgICAg
ICAgICAgIERXT1JEIGVycm9yID0gOjpHZXRMYXN0RXJyb3IoKTsKLSAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICB9Ci0KLSAgICAgICAgLy8gVGhlIHdhaXQgc2hvdWxk
IG5ldmVyIHRpbWUgb3V0IHNpbmNlIHdlIHBhc3NlZCBJTkZJTklURSBmb3IgdGhlIHRpbWVvdXQg
aW50ZXJ2YWwuCi0gICAgICAgIEFTU0VSVChyZXN1bHQgIT0gV0FJVF9USU1FT1VUKTsKLSAgICAg
ICAgLy8gV2UgZG9uJ3Qga25vdyBob3cgKG9yIG5lZWQpIHRvIGhhbmRsZSBhYmFuZG9uZWQgbXV0
ZXhlcyB5ZXQuCi0gICAgICAgIEFTU0VSVChyZXN1bHQgPCBXQUlUX0FCQU5ET05FRF8wIHx8IHJl
c3VsdCA+PSBXQUlUX0FCQU5ET05FRF8wICsgaGFuZGxlcy5zaXplKCkpOwotCi0gICAgICAgIGlm
IChyZXN1bHQgPT0gaGFuZGxlcy5zaXplKCkgLSAxKQotICAgICAgICAgICAgcGVyZm9ybVdvcmso
KTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogSWYgd2UgZXZlciBkZWNp
ZGUgdG8gc3VwcG9ydCB1bnJlZ2lzdGVyaW5nIGhhbmRsZXMgd2Ugd291bGQgbmVlZCB0byBjb3B5
IHRoZSBoYXNoIG1hcC4KLSAgICAgICAgICAgIFdvcmtJdGVtKiB3b3JrSXRlbTsKLSAgICAgICAg
ICAgIEhBTkRMRSBoYW5kbGUgPSBoYW5kbGVzW3Jlc3VsdF07Ci0KLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9oYW5kbGVzTG9jayk7Ci0gICAgICAg
ICAgICAgICAgd29ya0l0ZW0gPSBtX2hhbmRsZXMuZ2V0KGhhbmRsZSk7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIC8vIEV4ZWN1dGUgdGhlIHdvcmsgaXRlbS4KLSAgICAgICAgICAgIHdv
cmtJdGVtLT5leGVjdXRlKCk7Ci0gICAgICAgIH0KKyAgICB3aGlsZSAoaXNWYWxpZCAmJiAhbV93
b3JrSXRlbVF1ZXVlLmlzRW1wdHkoKSkgeworICAgICAgICBWZWN0b3I8UmVmUHRyPFdvcmtJdGVt
V2luPiA+IHdvcmtJdGVtUXVldWU7CisgICAgICAgIG1fd29ya0l0ZW1RdWV1ZS5zd2FwKHdvcmtJ
dGVtUXVldWUpOwogCi0gICAgICAgIC8vIENoZWNrIGlmIHRoaXMgcXVldWUgaXMgaW52YWxpZC4K
LSAgICAgICAgeworICAgICAgICAvLyBBbGxvdyBtb3JlIHdvcmsgdG8gYmUgc2NoZWR1bGVkIHdo
aWxlIHdlJ3JlIG5vdCB1c2luZyB0aGUgcXVldWUgZGlyZWN0bHkuCisgICAgICAgIG1fd29ya0l0
ZW1RdWV1ZUxvY2sudW5sb2NrKCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgd29y
a0l0ZW1RdWV1ZS5zaXplKCk7ICsraSkgewogICAgICAgICAgICAgTXV0ZXhMb2NrZXIgbG9ja2Vy
KG1faXNWYWxpZE11dGV4KTsKLSAgICAgICAgICAgIGlmICghbV9pc1ZhbGlkKQorICAgICAgICAg
ICAgaXNWYWxpZCA9IG1faXNWYWxpZDsKKyAgICAgICAgICAgIGlmICghaXNWYWxpZCkKICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHdvcmtJdGVtUXVldWVbaV0tPml0ZW0oKS0+
ZXhlY3V0ZSgpOwogICAgICAgICB9CisgICAgICAgIG1fd29ya0l0ZW1RdWV1ZUxvY2subG9jaygp
OwogICAgIH0KKworICAgIC8vIE9uZSBpbnZhcmlhbnQgd2UgbWFpbnRhaW4gaXMgdGhhdCBhbnkg
d29yayBzY2hlZHVsZWQgd2hpbGUgYSB3b3JrIHRocmVhZCBpcyByZWdpc3RlcmVkIHdpbGwKKyAg
ICAvLyBiZSBoYW5kbGVkIGJ5IHRoYXQgd29yayB0aHJlYWQuIFVucmVnaXN0ZXIgYXMgdGhlIHdv
cmsgdGhyZWFkIHdoaWxlIHRoZSBxdWV1ZSBsb2NrIGlzIHN0aWxsCisgICAgLy8gaGVsZCBzbyB0
aGF0IG5vIHdvcmsgY2FuIGJlIHNjaGVkdWxlZCB3aGlsZSB3ZSdyZSBzdGlsbCByZWdpc3RlcmVk
LgorICAgIHVucmVnaXN0ZXJBc1dvcmtUaHJlYWQoKTsKKworICAgIG1fd29ya0l0ZW1RdWV1ZUxv
Y2sudW5sb2NrKCk7CiB9CiAKIHZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxpemUoY29u
c3QgY2hhciogbmFtZSkKIHsKKyAgICBtX2lzV29ya1RocmVhZFJlZ2lzdGVyZWQgPSAwOworCiAg
ICAgLy8gQ3JlYXRlIG91ciBldmVudC4KLSAgICBtX3BlcmZvcm1Xb3JrRXZlbnQgPSA6OkNyZWF0
ZUV2ZW50KDAsIGZhbHNlLCBmYWxzZSwgMCk7CisgICAgbV9wZXJmb3JtV29ya0V2ZW50ID0gOjpD
cmVhdGVFdmVudFcoMCwgRkFMU0UsIEZBTFNFLCAwKTsKIAotICAgIG1fd29ya1F1ZXVlVGhyZWFk
ID0gY3JlYXRlVGhyZWFkKCZXb3JrUXVldWU6OndvcmtRdWV1ZVRocmVhZEJvZHksIHRoaXMsIG5h
bWUpOworICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGhvbGQgb250byB3YWl0SGFuZGxlIHNvIHRo
YXQgd2UgY2FuIHVucmVnaXN0ZXIgdGhlIHdhaXQgbGF0ZXIuCisgICAgSEFORExFIHdhaXRIYW5k
bGU7CisgICAgaWYgKCE6OlJlZ2lzdGVyV2FpdEZvclNpbmdsZU9iamVjdCgmd2FpdEhhbmRsZSwg
bV9wZXJmb3JtV29ya0V2ZW50LCBldmVudENhbGxiYWNrLCB0aGlzLCBJTkZJTklURSwgV1RfRVhF
Q1VURURFRkFVTFQpKSB7CisgICAgICAgIERXT1JEIGVycm9yID0gOjpHZXRMYXN0RXJyb3IoKTsK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQorCitib29sIFdvcmtRdWV1
ZTo6dHJ5UmVnaXN0ZXJBc1dvcmtUaHJlYWQoKQoreworICAgIExPTkcgcmVzdWx0ID0gOjpJbnRl
cmxvY2tlZENvbXBhcmVFeGNoYW5nZSgmbV9pc1dvcmtUaHJlYWRSZWdpc3RlcmVkLCAxLCAwKTsK
KyAgICBBU1NFUlQoIXJlc3VsdCB8fCByZXN1bHQgPT0gMSk7CisgICAgcmV0dXJuICFyZXN1bHQ7
Cit9CisKK3ZvaWQgV29ya1F1ZXVlOjp1bnJlZ2lzdGVyQXNXb3JrVGhyZWFkKCkKK3sKKyAgICBM
T05HIHJlc3VsdCA9IDo6SW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UoJm1faXNXb3JrVGhyZWFk
UmVnaXN0ZXJlZCwgMCwgMSk7CisgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdCA9PSAx
KTsKIH0KIAogdm9pZCBXb3JrUXVldWU6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCkBAIC0xMTYsMjUg
KzE2NCwxNSBAQCB2b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1JbnZhbGlkYXRlKCkKIHZvaWQgV29y
a1F1ZXVlOjpzY2hlZHVsZVdvcmsoUGFzc093blB0cjxXb3JrSXRlbT4gaXRlbSkKIHsKICAgICBN
dXRleExvY2tlciBsb2NrZXIobV93b3JrSXRlbVF1ZXVlTG9jayk7Ci0gICAgbV93b3JrSXRlbVF1
ZXVlLmFwcGVuZChpdGVtLmxlYWtQdHIoKSk7Ci0KLSAgICAvLyBTZXQgdGhlIHdvcmsgZXZlbnQu
Ci0gICAgOjpTZXRFdmVudChtX3BlcmZvcm1Xb3JrRXZlbnQpOwotfQotCi12b2lkIFdvcmtRdWV1
ZTo6cGVyZm9ybVdvcmsoKQotewotICAgIFZlY3RvcjxXb3JrSXRlbSo+IHdvcmtJdGVtUXVldWU7
Ci0gICAgewotICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV93b3JrSXRlbVF1ZXVlTG9jayk7
Ci0gICAgICAgIG1fd29ya0l0ZW1RdWV1ZS5zd2FwKHdvcmtJdGVtUXVldWUpOwotICAgIH0KIAot
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgd29ya0l0ZW1RdWV1ZS5zaXplKCk7ICsraSkgewot
ICAgICAgICBPd25QdHI8V29ya0l0ZW0+IGl0ZW0od29ya0l0ZW1RdWV1ZVtpXSk7CisgICAgbV93
b3JrSXRlbVF1ZXVlLmFwcGVuZChXb3JrSXRlbVdpbjo6Y3JlYXRlKGl0ZW0sIHRoaXMpKTsKIAot
ICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9pc1ZhbGlkTXV0ZXgpOwotICAgICAgICBpZiAo
bV9pc1ZhbGlkKQotICAgICAgICAgICAgaXRlbS0+ZXhlY3V0ZSgpOwotICAgIH0KKyAgICAvLyBT
aWduYWwgb3VyIGV2ZW50IHNvIHRoYXQgd29yayB0aHJlYWQgd2lsbCBwZXJmb3JtIHRoZSB3b3Jr
IHdlIGp1c3QgYWRkZWQuIEFzIGFuIG9wdGltaXphdGlvbiwKKyAgICAvLyB3ZSBhdm9pZCBzaWdu
YWxpbmcgdGhlIGV2ZW50IGlmIGEgd29yayB0aHJlYWQgaXMgYWxyZWFkeSByZWdpc3RlcmVkLiBU
aGlzIHByZXZlbnRzIG11bHRpcGxlCisgICAgLy8gd29yayB0aHJlYWRzIGZyb20gYmVpbmcgc3Bh
d25lZCBpbiBtb3N0IGNhc2VzLiAoTm90ZSB0aGF0IHdoZW4gYSB3b3JrIHRocmVhZCBoYXMgYmVl
biBzcGF3bmVkCisgICAgLy8gYnV0IGhhc24ndCByZWdpc3RlcmVkIGl0c2VsZiB5ZXQsIG1faXNX
b3JrVGhyZWFkUmVnaXN0ZXJlZCB3aWxsIGJlIGZhbHNlIGFuZCB3ZSdsbCBlbmQgdXAKKyAgICAv
LyBzcGF3bmluZyBhIHNlY29uZCB3b3JrIHRocmVhZCBoZXJlLiBCdXQgd29yayB0aHJlYWQgcmVn
aXN0cmF0aW9uIHByb2Nlc3Mgd2lsbCBlbnN1cmUgdGhhdAorICAgIC8vIG9ubHkgb25lIHRocmVh
ZCBhY3R1YWxseSBlbmRzIHVwIHBlcmZvcm1pbmcgd29yay4pCisgICAgaWYgKCFtX2lzV29ya1Ro
cmVhZFJlZ2lzdGVyZWQpCisgICAgICAgIDo6U2V0RXZlbnQobV9wZXJmb3JtV29ya0V2ZW50KTsK
IH0K
</data>
<flag name="review"
          id="54572"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>