<?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>141578</bug_id>
          
          <creation_ts>2015-02-13 14:44:22 -0800</creation_ts>
          <short_desc>Make WebCore::IOSurface have single ownership instead of refcounting</short_desc>
          <delta_ts>2015-02-13 16:16: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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1069037</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-02-13 14:44:22 -0800</bug_when>
    <thetext>Make WebCore::IOSurface have single ownership instead of refcounting</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069039</commentid>
    <comment_count>1</comment_count>
      <attachid>246551</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-02-13 14:44:45 -0800</bug_when>
    <thetext>Created attachment 246551
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069044</commentid>
    <comment_count>2</comment_count>
      <attachid>246551</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-02-13 15:17:08 -0800</bug_when>
    <thetext>Comment on attachment 246551
Patch

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

Looks like most of the member variables of IOSurface can be const.

&gt; Source/WebCore/platform/graphics/cg/IOSurfacePool.cpp:138
&gt; +        return WTF::move(surface);

No need to use WTF::move here.

&gt; Source/WebCore/platform/graphics/cg/IOSurfacePool.cpp:155
&gt; +        return WTF::move(surface);

No need to use WTF::move here.

&gt; Source/WebCore/platform/graphics/cg/IOSurfacePool.cpp:174
&gt; +    willAddSurface(surface.get(), surfaceIsInUse);

Maybe this should take a reference.

&gt; Source/WebCore/platform/graphics/cg/IOSurfacePool.cpp:210
&gt; +    std::unique_ptr&lt;IOSurface&gt; surface = m_inUseSurfaces.takeLast();

This should be auto.

&gt; Source/WebCore/platform/graphics/cg/IOSurfacePool.cpp:224
&gt; +    std::unique_ptr&lt;IOSurface&gt; surface = surfaceQueueIter-&gt;value.takeLast();

auto.

&gt; Source/WebCore/platform/graphics/cocoa/IOSurface.mm:70
&gt; +    std::unique_ptr&lt;IOSurface&gt; surface = IOSurface::create(IntSize(width, height), ColorSpaceDeviceRGB);

auto.

&gt; Source/WebCore/platform/graphics/cocoa/IOSurface.mm:75
&gt; +    return WTF::move(surface);

No need to use WTF::move here.

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:3229
&gt; +    std::unique_ptr&lt;IOSurface&gt; surface = IOSurface::createFromImage(croppedSnapshotImage.get());

auto!

&gt; Source/WebKit2/UIProcess/mac/ViewSnapshotStore.mm:137
&gt; +PassRefPtr&lt;ViewSnapshot&gt; ViewSnapshot::create(std::unique_ptr&lt;IOSurface&gt; surface)

This should return a Ref.

&gt; Source/WebKit2/UIProcess/mac/ViewSnapshotStore.mm:161
&gt; +#if USE_IOSURFACE_VIEW_SNAPSHOTS
&gt; +    m_imageSizeInBytes = m_surface-&gt;totalBytes();
&gt; +    m_size = m_surface-&gt;size();
&gt; +#endif

These can be member initializers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069048</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-02-13 16:08:41 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/180088</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069049</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-02-13 16:16:13 -0800</bug_when>
    <thetext>And a build fix: http://trac.webkit.org/changeset/180089</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>246551</attachid>
            <date>2015-02-13 14:44:45 -0800</date>
            <delta_ts>2015-02-13 15:17:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141578-20150213144443.patch</filename>
            <type>text/plain</type>
            <size>21734</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwMDY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWJlNDQyYmQ0NzJiNzYz
MWE0NzliYzRhYzViODU3Y2RmNGJjMmFhOC4uMWE0ZDI5ZDNmZjA5NWY5YzdjODMwMTNhYmRiZDlj
ODJhOGNmOWQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE1LTAyLTEzICBUaW1v
dGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFdl
YkNvcmU6OklPU3VyZmFjZSBoYXZlIHNpbmdsZSBvd25lcnNoaXAgaW5zdGVhZCBvZiByZWZjb3Vu
dGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQx
NTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4g
dGhlIGludGVyZXN0cyBvZiBtYWtpbmcgaXQgaGFyZGVyIHRvIG1pc3VzZSBhbmQgdG8gbWFrZSBp
dCBtb3JlIGxpa2UKKyAgICAgICAgSW1hZ2VCdWZmZXIsIG91ciBJT1N1cmZhY2Ugd3JhcHBlciBz
aG91bGQgaGF2ZSBzaW5nbGUgb3duZXJzaGlwLgorCisgICAgICAgIFRoaXMgd2lsbCBhbHNvIGFs
bG93IGZ1dHVyZSBjaGFuZ2VzIHdoaWNoIGRlcGVuZCBvbiB0ZW1wb3JhcmlseQorICAgICAgICBj
b25zdW1pbmcgYW4gSU9TdXJmYWNlIHRvIG1vcmUgZWFzaWx5IGVuZm9yY2UgY29ycmVjdCB1c2Fn
ZS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2NnL0lPU3VyZmFjZVBvb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlUG9v
bDo6dGFrZVN1cmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlUG9vbDo6YWRkU3Vy
ZmFjZSk6CisgICAgICAgIChXZWJDb3JlOjpJT1N1cmZhY2VQb29sOjppbnNlcnRTdXJmYWNlSW50
b1Bvb2wpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlUG9vbDo6dHJ5RXZpY3RJblVzZVN1
cmZhY2UpOgorICAgICAgICAoV2ViQ29yZTo6SU9TdXJmYWNlUG9vbDo6dHJ5RXZpY3RPbGRlc3RD
YWNoZWRTdXJmYWNlKToKKyAgICAgICAgKFdlYkNvcmU6OklPU3VyZmFjZVBvb2w6OmNvbGxlY3RJ
blVzZVN1cmZhY2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQ
b29sLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvSU9TdXJmYWNlLm1tOgorICAgICAgICAo
SU9TdXJmYWNlOjpjcmVhdGUpOgorICAgICAgICAoSU9TdXJmYWNlOjpjcmVhdGVGcm9tU2VuZFJp
Z2h0KToKKyAgICAgICAgKElPU3VyZmFjZTo6Y3JlYXRlRnJvbVN1cmZhY2UpOgorICAgICAgICAo
SU9TdXJmYWNlOjpjcmVhdGVGcm9tSW1hZ2UpOgorICAgICAgICBNYWtlIElPU3VyZmFjZTo6Y3Jl
YXRlKClzIHJldHVybiBhIHVuaXF1ZV9wdHIsIGFuZCBhZGp1c3QgZXZlcnl3aGVyZS4KKwogMjAx
NS0wMi0xMyAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbTVNF
XVtNYWNdIENyYXNoIGF0IFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQ
YXJzZVN0cmVhbURhdGFBc0Fzc2V0ICsgMjM1NwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGE0NzEwNjg5NDE2ZDVk
M2RmNjM2NmFhMWM1OWM1YzI2NTE2OTI2NzEuLmI0MGUyYjhkMTYwZWM3NWM5OTA5NDI3Mjc2Zjk0
MTA1ZTM4YjNjZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxNS0wMi0xMyAgVGlt
b3RoeSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBX
ZWJDb3JlOjpJT1N1cmZhY2UgaGF2ZSBzaW5nbGUgb3duZXJzaGlwIGluc3RlYWQgb2YgcmVmY291
bnRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
MTU3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oOgorICAgICAgICAqIFNoYXJlZC9t
YWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxh
eWVyQmFja2luZ1N0b3JlOjpCdWZmZXI6OmRpc2NhcmQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IF90YWtlVmlld1NuYXBzaG90XSk6
CisgICAgICAgICogVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbToKKyAgICAgICAg
KFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpiZWdpblN3aXBlR2VzdHVyZSk6CisgICAg
ICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6cmVtb3ZlU3dpcGVTbmFwc2hvdCk6
CisgICAgICAgICogVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUubW06CisgICAgICAgIChXZWJLaXQ6OlZp
ZXdTbmFwc2hvdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6Vmlld1NuYXBzaG90OjpWaWV3
U25hcHNob3QpOgorICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3Q6Omhhc0ltYWdlKToKKyAg
ICAgICAgQWRqdXN0IHRvIHRoZSBzaW5nbGUtb3duZXJzaGlwIG1vZGVsLgorCiAyMDE1LTAyLTEy
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIGRldGVy
bWluZVByaW1hcnlTbmFwc2hvdHRlZFBsdWdJbigpIHNob3VsZCBvbmx5IHRyYXZlcnNlIHZpc2li
bGUgRnJhbWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDc4NDRiNDdiOTJkNDMwZjlmMTUzZmY5
M2U2NjQ5ODE1OGJjODJiYTMuLmQ3MWZjMWU2MWFiMWVkYmQ1MDY5MjllZDBlMjgyZGYzYTZlNjcx
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zMjMxLDcgKzMyMzEsNyBAQCBfX1pON1dlYkNv
cmU1Q29sb3JDMUVSS04zV1RGNlN0cmluZ0UKICNlbmRpZgogCiAjaWYgVVNFKElPU1VSRkFDRSkK
LV9fWk43V2ViQ29yZTEzSU9TdXJmYWNlUG9vbDEwYWRkU3VyZmFjZUVQTlNfOUlPU3VyZmFjZUUK
K19fWk43V2ViQ29yZTEzSU9TdXJmYWNlUG9vbDEwYWRkU3VyZmFjZUVOU3QzX18xMTB1bmlxdWVf
cHRySU5TXzlJT1N1cmZhY2VFTlMxXzE0ZGVmYXVsdF9kZWxldGVJUzNfRUVFRQogX19aTjdXZWJD
b3JlMTNJT1N1cmZhY2VQb29sMTBzaGFyZWRQb29sRXYKIF9fWk43V2ViQ29yZTEzSU9TdXJmYWNl
UG9vbDExc2V0UG9vbFNpemVFbQogX19aTjdXZWJDb3JlOUlPU3VyZmFjZTExY3JlYXRlSW1hZ2VF
dgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJm
YWNlUG9vbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZh
Y2VQb29sLmNwcAppbmRleCAyZWE4ZGNmYzIxNTQ2Njg1ZjQ1NWFmZmQ2MWFhNTU3YTBlZjZlZjQ4
Li4zODY1OTIyY2VkOWQ0OGE3ZmU3MzkxODkzNzVhOTk0ZGU5MmIxNGRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmNwcApA
QCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgSU9TdXJmYWNlUG9vbDo6ZGlkVXNlU3VyZmFjZU9mU2l6
ZShJbnRTaXplIHNpemUpCiAgICAgbV9zaXplc0luUHJ1bmVPcmRlci5hcHBlbmQoc2l6ZSk7CiB9
CiAKLVBhc3NSZWZQdHI8SU9TdXJmYWNlPiBJT1N1cmZhY2VQb29sOjp0YWtlU3VyZmFjZShJbnRT
aXplIHNpemUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSkKK3N0ZDo6dW5pcXVlX3B0cjxJT1N1cmZh
Y2U+IElPU3VyZmFjZVBvb2w6OnRha2VTdXJmYWNlKEludFNpemUgc2l6ZSwgQ29sb3JTcGFjZSBj
b2xvclNwYWNlKQogewogICAgIENhY2hlZFN1cmZhY2VNYXA6Oml0ZXJhdG9yIG1hcEl0ZXIgPSBt
X2NhY2hlZFN1cmZhY2VzLmZpbmQoc2l6ZSk7CiAKQEAgLTExOSw4ICsxMTksOCBAQCBQYXNzUmVm
UHRyPElPU3VyZmFjZT4gSU9TdXJmYWNlUG9vbDo6dGFrZVN1cmZhY2UoSW50U2l6ZSBzaXplLCBD
b2xvclNwYWNlIGNvbG9yUwogICAgIGZvciAoYXV0byBzdXJmYWNlSXRlciA9IG1hcEl0ZXItPnZh
bHVlLmJlZ2luKCk7IHN1cmZhY2VJdGVyICE9IG1hcEl0ZXItPnZhbHVlLmVuZCgpOyArK3N1cmZh
Y2VJdGVyKSB7CiAgICAgICAgIGlmICghc3VyZmFjZU1hdGNoZXNQYXJhbWV0ZXJzKCpzdXJmYWNl
SXRlci0+Z2V0KCksIHNpemUsIGNvbG9yU3BhY2UpKQogICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgIAotICAgICAgICBSZWZQdHI8SU9TdXJmYWNlPiBzdXJmYWNlID0gc3VyZmFjZUl0ZXIt
PmdldCgpOworCisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IHN1cmZhY2UgPSBX
VEY6Om1vdmUoKnN1cmZhY2VJdGVyKTsKICAgICAgICAgbWFwSXRlci0+dmFsdWUucmVtb3ZlKHN1
cmZhY2VJdGVyKTsKIAogICAgICAgICBkaWRVc2VTdXJmYWNlT2ZTaXplKHNpemUpOwpAQCAtMTM1
LDcgKzEzNSw3IEBAIFBhc3NSZWZQdHI8SU9TdXJmYWNlPiBJT1N1cmZhY2VQb29sOjp0YWtlU3Vy
ZmFjZShJbnRTaXplIHNpemUsIENvbG9yU3BhY2UgY29sb3JTCiAgICAgICAgIHN1cmZhY2UtPnNl
dElzVm9sYXRpbGUoZmFsc2UpOwogCiAgICAgICAgIERVTVBfUE9PTF9TVEFUSVNUSUNTKCk7Ci0g
ICAgICAgIHJldHVybiBzdXJmYWNlLnJlbGVhc2UoKTsKKyAgICAgICAgcmV0dXJuIFdURjo6bW92
ZShzdXJmYWNlKTsKICAgICB9CiAKICAgICAvLyBTb21lIG9mIHRoZSBpbi11c2Ugc3VyZmFjZXMg
bWF5IG5vIGxvbmdlciBhY3R1YWxseSBiZSBpbi11c2UsIGJ1dCB3ZSBoYXZlbid0IG1vdmVkIHRo
ZW0gb3ZlciB5ZXQuCkBAIC0xNDUsMjEgKzE0NSwyMSBAQCBQYXNzUmVmUHRyPElPU3VyZmFjZT4g
SU9TdXJmYWNlUG9vbDo6dGFrZVN1cmZhY2UoSW50U2l6ZSBzaXplLCBDb2xvclNwYWNlIGNvbG9y
UwogICAgICAgICBpZiAoc3VyZmFjZUl0ZXItPmdldCgpLT5pc0luVXNlKCkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgCi0gICAgICAgIFJlZlB0cjxJT1N1cmZhY2U+IHN1cmZhY2Ug
PSBzdXJmYWNlSXRlci0+Z2V0KCk7CisgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+
IHN1cmZhY2UgPSBXVEY6Om1vdmUoKnN1cmZhY2VJdGVyKTsKICAgICAgICAgbV9pblVzZVN1cmZh
Y2VzLnJlbW92ZShzdXJmYWNlSXRlcik7CiAgICAgICAgIGRpZFJlbW92ZVN1cmZhY2Uoc3VyZmFj
ZS5nZXQoKSwgdHJ1ZSk7CiAKICAgICAgICAgc3VyZmFjZS0+c2V0SXNWb2xhdGlsZShmYWxzZSk7
CiAKICAgICAgICAgRFVNUF9QT09MX1NUQVRJU1RJQ1MoKTsKLSAgICAgICAgcmV0dXJuIHN1cmZh
Y2UucmVsZWFzZSgpOworICAgICAgICByZXR1cm4gV1RGOjptb3ZlKHN1cmZhY2UpOwogICAgIH0K
IAogICAgIERVTVBfUE9PTF9TVEFUSVNUSUNTKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
LXZvaWQgSU9TdXJmYWNlUG9vbDo6YWRkU3VyZmFjZShJT1N1cmZhY2UqIHN1cmZhY2UpCit2b2lk
IElPU3VyZmFjZVBvb2w6OmFkZFN1cmZhY2Uoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gc3Vy
ZmFjZSkKIHsKICAgICBpZiAoc3VyZmFjZS0+dG90YWxCeXRlcygpID4gbV9tYXhpbXVtQnl0ZXND
YWNoZWQpCiAgICAgICAgIHJldHVybjsKQEAgLTE3MSwyNiArMTcxLDI3IEBAIHZvaWQgSU9TdXJm
YWNlUG9vbDo6YWRkU3VyZmFjZShJT1N1cmZhY2UqIHN1cmZhY2UpCiAKICAgICBib29sIHN1cmZh
Y2VJc0luVXNlID0gc3VyZmFjZS0+aXNJblVzZSgpOwogCi0gICAgd2lsbEFkZFN1cmZhY2Uoc3Vy
ZmFjZSwgc3VyZmFjZUlzSW5Vc2UpOworICAgIHdpbGxBZGRTdXJmYWNlKHN1cmZhY2UuZ2V0KCks
IHN1cmZhY2VJc0luVXNlKTsKIAogICAgIGlmIChzdXJmYWNlSXNJblVzZSkgewotICAgICAgICBt
X2luVXNlU3VyZmFjZXMucHJlcGVuZChzdXJmYWNlKTsKKyAgICAgICAgbV9pblVzZVN1cmZhY2Vz
LnByZXBlbmQoV1RGOjptb3ZlKHN1cmZhY2UpKTsKICAgICAgICAgc2NoZWR1bGVDb2xsZWN0aW9u
VGltZXIoKTsKICAgICAgICAgRFVNUF9QT09MX1NUQVRJU1RJQ1MoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGluc2VydFN1cmZhY2VJbnRvUG9vbChzdXJmYWNlKTsKKyAgICBpbnNl
cnRTdXJmYWNlSW50b1Bvb2woV1RGOjptb3ZlKHN1cmZhY2UpKTsKICAgICBEVU1QX1BPT0xfU1RB
VElTVElDUygpOwogfQogCi12b2lkIElPU3VyZmFjZVBvb2w6Omluc2VydFN1cmZhY2VJbnRvUG9v
bChJT1N1cmZhY2UqIHN1cmZhY2UpCit2b2lkIElPU3VyZmFjZVBvb2w6Omluc2VydFN1cmZhY2VJ
bnRvUG9vbChzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBzdXJmYWNlKQogewotICAgIGF1dG8g
aW5zZXJ0ZWRUdXBsZSA9IG1fY2FjaGVkU3VyZmFjZXMuYWRkKHN1cmZhY2UtPnNpemUoKSwgQ2Fj
aGVkU3VyZmFjZVF1ZXVlKCkpOwotICAgIGluc2VydGVkVHVwbGUuaXRlcmF0b3ItPnZhbHVlLnBy
ZXBlbmQoc3VyZmFjZSk7CisgICAgSW50U2l6ZSBzdXJmYWNlU2l6ZSA9IHN1cmZhY2UtPnNpemUo
KTsKKyAgICBhdXRvIGluc2VydGVkVHVwbGUgPSBtX2NhY2hlZFN1cmZhY2VzLmFkZChzdXJmYWNl
U2l6ZSwgQ2FjaGVkU3VyZmFjZVF1ZXVlKCkpOworICAgIGluc2VydGVkVHVwbGUuaXRlcmF0b3It
PnZhbHVlLnByZXBlbmQoV1RGOjptb3ZlKHN1cmZhY2UpKTsKICAgICBpZiAoIWluc2VydGVkVHVw
bGUuaXNOZXdFbnRyeSkKLSAgICAgICAgbV9zaXplc0luUHJ1bmVPcmRlci5yZW1vdmUobV9zaXpl
c0luUHJ1bmVPcmRlci5yZXZlcnNlRmluZChzdXJmYWNlLT5zaXplKCkpKTsKLSAgICBtX3NpemVz
SW5QcnVuZU9yZGVyLmFwcGVuZChzdXJmYWNlLT5zaXplKCkpOworICAgICAgICBtX3NpemVzSW5Q
cnVuZU9yZGVyLnJlbW92ZShtX3NpemVzSW5QcnVuZU9yZGVyLnJldmVyc2VGaW5kKHN1cmZhY2VT
aXplKSk7CisgICAgbV9zaXplc0luUHJ1bmVPcmRlci5hcHBlbmQoc3VyZmFjZVNpemUpOwogCiAg
ICAgc2NoZWR1bGVDb2xsZWN0aW9uVGltZXIoKTsKIH0KQEAgLTIwNiw3ICsyMDcsNyBAQCB2b2lk
IElPU3VyZmFjZVBvb2w6OnRyeUV2aWN0SW5Vc2VTdXJmYWNlKCkKICAgICBpZiAobV9pblVzZVN1
cmZhY2VzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUmVmUHRyPElPU3VyZmFj
ZT4gc3VyZmFjZSA9IG1faW5Vc2VTdXJmYWNlcy50YWtlTGFzdCgpOworICAgIHN0ZDo6dW5pcXVl
X3B0cjxJT1N1cmZhY2U+IHN1cmZhY2UgPSBtX2luVXNlU3VyZmFjZXMudGFrZUxhc3QoKTsKICAg
ICBkaWRSZW1vdmVTdXJmYWNlKHN1cmZhY2UuZ2V0KCksIHRydWUpOwogfQogCkBAIC0yMjAsNyAr
MjIxLDcgQEAgdm9pZCBJT1N1cmZhY2VQb29sOjp0cnlFdmljdE9sZGVzdENhY2hlZFN1cmZhY2Uo
KQogCiAgICAgQ2FjaGVkU3VyZmFjZU1hcDo6aXRlcmF0b3Igc3VyZmFjZVF1ZXVlSXRlciA9IG1f
Y2FjaGVkU3VyZmFjZXMuZmluZChtX3NpemVzSW5QcnVuZU9yZGVyLmZpcnN0KCkpOwogICAgIEFT
U0VSVCghc3VyZmFjZVF1ZXVlSXRlci0+dmFsdWUuaXNFbXB0eSgpKTsKLSAgICBSZWZQdHI8SU9T
dXJmYWNlPiBzdXJmYWNlID0gc3VyZmFjZVF1ZXVlSXRlci0+dmFsdWUudGFrZUxhc3QoKTsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBzdXJmYWNlID0gc3VyZmFjZVF1ZXVlSXRlci0+
dmFsdWUudGFrZUxhc3QoKTsKICAgICBkaWRSZW1vdmVTdXJmYWNlKHN1cmZhY2UuZ2V0KCksIGZh
bHNlKTsKIAogICAgIGlmIChzdXJmYWNlUXVldWVJdGVyLT52YWx1ZS5pc0VtcHR5KCkpIHsKQEAg
LTI2MCwxNSArMjYxLDE1IEBAIHZvaWQgSU9TdXJmYWNlUG9vbDo6Y29sbGVjdEluVXNlU3VyZmFj
ZXMoKQogICAgIGZvciAoQ2FjaGVkU3VyZmFjZVF1ZXVlOjppdGVyYXRvciBzdXJmYWNlSXRlciA9
IG1faW5Vc2VTdXJmYWNlcy5iZWdpbigpOyBzdXJmYWNlSXRlciAhPSBtX2luVXNlU3VyZmFjZXMu
ZW5kKCk7ICsrc3VyZmFjZUl0ZXIpIHsKICAgICAgICAgSU9TdXJmYWNlKiBzdXJmYWNlID0gc3Vy
ZmFjZUl0ZXItPmdldCgpOwogICAgICAgICBpZiAoc3VyZmFjZS0+aXNJblVzZSgpKSB7Ci0gICAg
ICAgICAgICBuZXdJblVzZVN1cmZhY2VzLmFwcGVuZCgqc3VyZmFjZUl0ZXIpOworICAgICAgICAg
ICAgbmV3SW5Vc2VTdXJmYWNlcy5hcHBlbmQoV1RGOjptb3ZlKCpzdXJmYWNlSXRlcikpOwogICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBtX2luVXNlQnl0ZXNDYWNo
ZWQgLT0gc3VyZmFjZS0+dG90YWxCeXRlcygpOwotICAgICAgICBpbnNlcnRTdXJmYWNlSW50b1Bv
b2woc3VyZmFjZSk7CisgICAgICAgIGluc2VydFN1cmZhY2VJbnRvUG9vbChXVEY6Om1vdmUoKnN1
cmZhY2VJdGVyKSk7CiAgICAgfQogCi0gICAgbV9pblVzZVN1cmZhY2VzID0gbmV3SW5Vc2VTdXJm
YWNlczsKKyAgICBtX2luVXNlU3VyZmFjZXMgPSBXVEY6Om1vdmUobmV3SW5Vc2VTdXJmYWNlcyk7
CiB9CiAKIGJvb2wgSU9TdXJmYWNlUG9vbDo6bWFya09sZGVyU3VyZmFjZXNQdXJnZWFibGUoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNl
UG9vbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSU9TdXJmYWNlUG9v
bC5oCmluZGV4IDk4ZWE5ZTk5NWJhOTc4YTJkNDdmOTFhMzJmMTU2ZWJlYWFhZjQxMjUuLmE5YWUy
NDBjNGZkNGEzMTBjNDY1ZjMzZTMwNDU1YTlmOTkyYTBkNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0lPU3VyZmFjZVBvb2wuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JT1N1cmZhY2VQb29sLmgKQEAgLTQ5LDggKzQ5
LDggQEAgY2xhc3MgSU9TdXJmYWNlUG9vbCB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIElPU3VyZmFjZVBvb2wmIHNoYXJlZFBvb2woKTsKIAotICAgIFBhc3NSZWZQdHI8SU9T
dXJmYWNlPiB0YWtlU3VyZmFjZShJbnRTaXplIHNpemUsIENvbG9yU3BhY2UgY29sb3JTcGFjZSk7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRTdXJmYWNlKElPU3VyZmFjZSopOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IHRha2VTdXJmYWNlKEludFNpemUsIENvbG9yU3BhY2Up
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkU3VyZmFjZShzdGQ6OnVuaXF1ZV9wdHI8SU9T
dXJmYWNlPik7CiAKICAgICB2b2lkIGRpc2NhcmRBbGxTdXJmYWNlcygpOwogCkBAIC03Miw3ICs3
Miw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgaGFzTWFya2VkUHVyZ2VhYmxlOwogICAgIH07
CiAKLSAgICB0eXBlZGVmIERlcXVlPFJlZlB0cjxJT1N1cmZhY2U+PiBDYWNoZWRTdXJmYWNlUXVl
dWU7CisgICAgdHlwZWRlZiBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPj4gQ2FjaGVk
U3VyZmFjZVF1ZXVlOwogICAgIHR5cGVkZWYgSGFzaE1hcDxJbnRTaXplLCBDYWNoZWRTdXJmYWNl
UXVldWU+IENhY2hlZFN1cmZhY2VNYXA7CiAgICAgdHlwZWRlZiBIYXNoTWFwPElPU3VyZmFjZSos
IENhY2hlZFN1cmZhY2VEZXRhaWxzPiBDYWNoZWRTdXJmYWNlRGV0YWlsc01hcDsKIApAQCAtODAs
NyArODAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVtb3ZlU3VyZmFjZShJT1N1cmZhY2Uq
LCBib29sIGluVXNlKTsKICAgICB2b2lkIGRpZFVzZVN1cmZhY2VPZlNpemUoSW50U2l6ZSk7CiAK
LSAgICB2b2lkIGluc2VydFN1cmZhY2VJbnRvUG9vbChJT1N1cmZhY2UqKTsKKyAgICB2b2lkIGlu
c2VydFN1cmZhY2VJbnRvUG9vbChzdGQ6OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPik7CiAKICAgICB2
b2lkIGV2aWN0KHNpemVfdCBhZGRpdGlvbmFsU2l6ZSk7CiAgICAgdm9pZCB0cnlFdmljdEluVXNl
U3VyZmFjZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvSU9TdXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9JT1N1cmZhY2UuaAppbmRleCBmNWZiMjVkNTc0NTgyZjljODA0Y2Y0YmI3MjkxMmY3NTA0ZmVj
N2M0Li4wZDEzMmZlNmQ2MzRiZjMyZTI2MzI1OWFjOTgzZTJmODBiMTU2ZmYwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9JT1N1cmZhY2UuaApAQCAt
MzEsMTggKzMxLDE3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAi
SW50U2l6ZS5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBNYWNoU2VuZFJpZ2h0
OwogCi1jbGFzcyBJT1N1cmZhY2UgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxJT1N1cmZhY2U+
IHsKK2NsYXNzIElPU3VyZmFjZSBmaW5hbCB7CiBwdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFBhc3NSZWZQdHI8SU9TdXJmYWNlPiBjcmVhdGUoSW50U2l6ZSwgQ29sb3JTcGFjZSk7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFBhc3NSZWZQdHI8SU9TdXJmYWNlPiBjcmVhdGVG
cm9tU2VuZFJpZ2h0KGNvbnN0IE1hY2hTZW5kUmlnaHQmLCBDb2xvclNwYWNlKTsKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxJT1N1cmZhY2U+IGNyZWF0ZUZyb21TdXJmYWNlKElPU3VyZmFjZVJlZiwg
Q29sb3JTcGFjZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFBhc3NSZWZQdHI8SU9TdXJm
YWNlPiBjcmVhdGVGcm9tSW1hZ2UoQ0dJbWFnZVJlZik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGNyZWF0ZShJbnRTaXplLCBDb2xvclNwYWNl
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4g
Y3JlYXRlRnJvbVNlbmRSaWdodChjb25zdCBNYWNoU2VuZFJpZ2h0JiwgQ29sb3JTcGFjZSk7Cisg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGNyZWF0ZUZyb21TdXJmYWNlKElP
U3VyZmFjZVJlZiwgQ29sb3JTcGFjZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxJT1N1cmZhY2U+IGNyZWF0ZUZyb21JbWFnZShDR0ltYWdlUmVmKTsKIAogICAg
IHN0YXRpYyBJbnRTaXplIG1heGltdW1TaXplKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0lPU3VyZmFjZS5tbQppbmRleCAxMWFiMjBkYTk2YjZm
ODdjMDhlMTJhMWU4NjMzZWRhODAxYzFkYjM2Li4zNzA3YzM4OGIxYTFmNjIxMWFkZjc5MGE4OTQx
ODI0Yjk0ZGI0NTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9JT1N1cmZhY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvSU9TdXJmYWNlLm1tCkBAIC00MSwyNSArNDEsMjUgQEAgQ0dJbWFnZVJlZiBDR0lP
U3VyZmFjZUNvbnRleHRDcmVhdGVJbWFnZShDR0NvbnRleHRSZWYpOwogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAotUGFzc1JlZlB0cjxJT1N1cmZhY2U+IElPU3VyZmFjZTo6Y3JlYXRlKElu
dFNpemUgc2l6ZSwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQorc3RkOjp1bmlxdWVfcHRyPElPU3Vy
ZmFjZT4gSU9TdXJmYWNlOjpjcmVhdGUoSW50U2l6ZSBzaXplLCBDb2xvclNwYWNlIGNvbG9yU3Bh
Y2UpCiB7Ci0gICAgaWYgKFJlZlB0cjxJT1N1cmZhY2U+IGNhY2hlZFN1cmZhY2UgPSBJT1N1cmZh
Y2VQb29sOjpzaGFyZWRQb29sKCkudGFrZVN1cmZhY2Uoc2l6ZSwgY29sb3JTcGFjZSkpCi0gICAg
ICAgIHJldHVybiBjYWNoZWRTdXJmYWNlLnJlbGVhc2UoKTsKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IElPU3VyZmFjZShzaXplLCBjb2xvclNwYWNlKSk7CisgICAgaWYgKHN0ZDo6dW5pcXVlX3B0
cjxJT1N1cmZhY2U+IGNhY2hlZFN1cmZhY2UgPSBJT1N1cmZhY2VQb29sOjpzaGFyZWRQb29sKCku
dGFrZVN1cmZhY2Uoc2l6ZSwgY29sb3JTcGFjZSkpCisgICAgICAgIHJldHVybiBXVEY6Om1vdmUo
Y2FjaGVkU3VyZmFjZSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+KG5l
dyBJT1N1cmZhY2Uoc2l6ZSwgY29sb3JTcGFjZSkpOwogfQogCi1QYXNzUmVmUHRyPElPU3VyZmFj
ZT4gSU9TdXJmYWNlOjpjcmVhdGVGcm9tU2VuZFJpZ2h0KGNvbnN0IE1hY2hTZW5kUmlnaHQmIHNl
bmRSaWdodCwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQorc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFj
ZT4gSU9TdXJmYWNlOjpjcmVhdGVGcm9tU2VuZFJpZ2h0KGNvbnN0IE1hY2hTZW5kUmlnaHQmIHNl
bmRSaWdodCwgQ29sb3JTcGFjZSBjb2xvclNwYWNlKQogewogICAgIFJldGFpblB0cjxJT1N1cmZh
Y2VSZWY+IHN1cmZhY2UgPSBhZG9wdENGKElPU3VyZmFjZUxvb2t1cEZyb21NYWNoUG9ydChzZW5k
UmlnaHQuc2VuZFJpZ2h0KCkpKTsKICAgICByZXR1cm4gSU9TdXJmYWNlOjpjcmVhdGVGcm9tU3Vy
ZmFjZShzdXJmYWNlLmdldCgpLCBjb2xvclNwYWNlKTsKIH0KIAotUGFzc1JlZlB0cjxJT1N1cmZh
Y2U+IElPU3VyZmFjZTo6Y3JlYXRlRnJvbVN1cmZhY2UoSU9TdXJmYWNlUmVmIHN1cmZhY2UsIENv
bG9yU3BhY2UgY29sb3JTcGFjZSkKK3N0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IElPU3VyZmFj
ZTo6Y3JlYXRlRnJvbVN1cmZhY2UoSU9TdXJmYWNlUmVmIHN1cmZhY2UsIENvbG9yU3BhY2UgY29s
b3JTcGFjZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IElPU3VyZmFjZShzdXJmYWNlLCBj
b2xvclNwYWNlKSk7CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+KG5ldyBJ
T1N1cmZhY2Uoc3VyZmFjZSwgY29sb3JTcGFjZSkpOwogfQogCi1QYXNzUmVmUHRyPElPU3VyZmFj
ZT4gSU9TdXJmYWNlOjpjcmVhdGVGcm9tSW1hZ2UoQ0dJbWFnZVJlZiBpbWFnZSkKK3N0ZDo6dW5p
cXVlX3B0cjxJT1N1cmZhY2U+IElPU3VyZmFjZTo6Y3JlYXRlRnJvbUltYWdlKENHSW1hZ2VSZWYg
aW1hZ2UpCiB7CiAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC02
NywxMiArNjcsMTIgQEAgUGFzc1JlZlB0cjxJT1N1cmZhY2U+IElPU3VyZmFjZTo6Y3JlYXRlRnJv
bUltYWdlKENHSW1hZ2VSZWYgaW1hZ2UpCiAgICAgc2l6ZV90IHdpZHRoID0gQ0dJbWFnZUdldFdp
ZHRoKGltYWdlKTsKICAgICBzaXplX3QgaGVpZ2h0ID0gQ0dJbWFnZUdldEhlaWdodChpbWFnZSk7
CiAKLSAgICBSZWZQdHI8SU9TdXJmYWNlPiBzdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGUoSW50
U2l6ZSh3aWR0aCwgaGVpZ2h0KSwgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAgc3RkOjp1bmlx
dWVfcHRyPElPU3VyZmFjZT4gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKEludFNpemUod2lk
dGgsIGhlaWdodCksIENvbG9yU3BhY2VEZXZpY2VSR0IpOwogICAgIGF1dG8gc3VyZmFjZUNvbnRl
eHQgPSBzdXJmYWNlLT5lbnN1cmVQbGF0Zm9ybUNvbnRleHQoKTsKICAgICBDR0NvbnRleHREcmF3
SW1hZ2Uoc3VyZmFjZUNvbnRleHQsIENHUmVjdE1ha2UoMCwgMCwgd2lkdGgsIGhlaWdodCksIGlt
YWdlKTsKICAgICBDR0NvbnRleHRGbHVzaChzdXJmYWNlQ29udGV4dCk7CiAKLSAgICByZXR1cm4g
c3VyZmFjZS5yZWxlYXNlKCk7CisgICAgcmV0dXJuIFdURjo6bW92ZShzdXJmYWNlKTsKIH0KIAog
SU9TdXJmYWNlOjpJT1N1cmZhY2UoSW50U2l6ZSBzaXplLCBDb2xvclNwYWNlIGNvbG9yU3BhY2Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2lu
Z1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0
b3JlLmgKaW5kZXggZDAyNWMxNjg5M2M5MTkzYzVmMTQzZmQ2ZDBiNWUwOWY1NTEyYjI1Ni4uYmFl
MDkwYjFhOTE1MjUyZWM5Y2RhNDZiZTJmZjhkMjBmMWJjMDIyOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUuaApAQCAtMTEwLDcg
KzExMCw3IEBAIHByaXZhdGU6CiAgICAgc3RydWN0IEJ1ZmZlciB7CiAgICAgICAgIFJlZlB0cjxT
aGFyZWFibGVCaXRtYXA+IGJpdG1hcDsKICNpZiBVU0UoSU9TVVJGQUNFKQotICAgICAgICBSZWZQ
dHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBzdXJmYWNlOworICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViQ29yZTo6SU9TdXJmYWNlPiBzdXJmYWNlOwogICAgICAgICBib29sIGlzVm9sYXRpbGUgPSBm
YWxzZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Jl
bW90ZUxheWVyQmFja2luZ1N0b3JlLm1tIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1v
dGVMYXllckJhY2tpbmdTdG9yZS5tbQppbmRleCBhZjZlYzU5ZDMwY2E4OWZiNDNhYTk1YmU2ZWIx
NzRiNzg3YjFiMDlhLi44YTAyZWNlOTE4MTQ2NGM2ODgxMDIyMjM2ZjM2NzY4YjBjZTg4Mzg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyQmFja2luZ1N0
b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJCYWNraW5n
U3RvcmUubW0KQEAgLTQ0NCw4ICs0NDQsNyBAQCB2b2lkIFJlbW90ZUxheWVyQmFja2luZ1N0b3Jl
OjpCdWZmZXI6OmRpc2NhcmQoKQogewogI2lmIFVTRShJT1NVUkZBQ0UpCiAgICAgaWYgKHN1cmZh
Y2UpCi0gICAgICAgIElPU3VyZmFjZVBvb2w6OnNoYXJlZFBvb2woKS5hZGRTdXJmYWNlKHN1cmZh
Y2UuZ2V0KCkpOwotICAgIHN1cmZhY2UgPSBudWxscHRyOworICAgICAgICBJT1N1cmZhY2VQb29s
OjpzaGFyZWRQb29sKCkuYWRkU3VyZmFjZShXVEY6Om1vdmUoc3VyZmFjZSkpOwogICAgIGlzVm9s
YXRpbGUgPSBmYWxzZTsKICNlbmRpZgogICAgIGJpdG1hcCA9IG51bGxwdHI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggYjY3ZDllMmMzZWI0ZjQ2YTYy
OTZhOGE0ZjA1ODA0OTNkN2I2OGNlMy4uNWJhOTEzZDg4MDUyMWFiYWQzM2FlYzk1Yzg5N2YzNmE1
YjgzOGZlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpA
QCAtMzIyNiwxMiArMzIyNiwxMiBAQCBzdGF0aWMgdm9pZCoga2V5VmFsdWVPYnNlcnZpbmdDb250
ZXh0ID0gJmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dDsKIAogICAgIGF1dG8gY3JvcHBlZFNuYXBz
aG90SW1hZ2UgPSBhZG9wdENGKENHSW1hZ2VDcmVhdGVXaXRoSW1hZ2VJblJlY3Qod2luZG93U25h
cHNob3RJbWFnZS5nZXQoKSwgTlNSZWN0VG9DR1JlY3QoW3dpbmRvdyBjb252ZXJ0UmVjdFRvQmFj
a2luZzpjcm9wcGVkSW1hZ2VSZWN0XSkpKTsKIAotICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFj
ZTo6Y3JlYXRlRnJvbUltYWdlKGNyb3BwZWRTbmFwc2hvdEltYWdlLmdldCgpKTsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8SU9TdXJmYWNlPiBzdXJmYWNlID0gSU9TdXJmYWNlOjpjcmVhdGVGcm9tSW1h
Z2UoY3JvcHBlZFNuYXBzaG90SW1hZ2UuZ2V0KCkpOwogICAgIGlmICghc3VyZmFjZSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgc3VyZmFjZS0+c2V0SXNWb2xhdGlsZSh0cnVlKTsKIAot
ICAgIHJldHVybiBWaWV3U25hcHNob3Q6OmNyZWF0ZShzdXJmYWNlLmdldCgpLCBzdXJmYWNlLT5z
aXplKCksIHN1cmZhY2UtPnRvdGFsQnl0ZXMoKSk7CisgICAgcmV0dXJuIFZpZXdTbmFwc2hvdDo6
Y3JlYXRlKFdURjo6bW92ZShzdXJmYWNlKSk7CiB9CiAKIC0gKHZvaWQpX3doZWVsRXZlbnRXYXNO
b3RIYW5kbGVkQnlXZWJDb3JlOihOU0V2ZW50ICopZXZlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oCmluZGV4IGVjMThmMGY4
ZjdlMmM3MzMzYTZlNDBiMGRjZWJjNzA4NDgyYmY1MjQuLjY0NjE5YTgyODY1NzU5MDJhOTBlYjVk
ZWUwNzkzMDg4YjJjYzYzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvVmlld0dlc3R1cmVDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaApAQCAtMTYwLDcgKzE2MCw3IEBAIHByaXZhdGU6
CiAgICAgUnVuTG9vcDo6VGltZXI8Vmlld0dlc3R1cmVDb250cm9sbGVyPiBtX3N3aXBlV2F0Y2hk
b2dUaW1lcjsKIAogI2lmIFVTRShJT1NVUkZBQ0UpCi0gICAgUmVmUHRyPFdlYkNvcmU6OklPU3Vy
ZmFjZT4gbV9jdXJyZW50U3dpcGVTbmFwc2hvdFN1cmZhY2U7CisgICAgUmVmUHRyPFZpZXdTbmFw
c2hvdD4gbV9jdXJyZW50U3dpcGVTbmFwc2hvdDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNv
bnRyb2xsZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJl
Q29udHJvbGxlck1hYy5tbQppbmRleCAyYzMwMmIyZjg1MTAyM2NkYzA1OWE3Zjg2MDFkZmIyYjg3
YTllM2VmLi45ZWQ3ZjgzM2RhOWIzOWI3Y2QyZTQ5NjZjNGY4ZmY0ZmIwMGNkODA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJv
bGxlck1hYy5tbQpAQCAtNTU0LDcgKzU1NCw3IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVy
OjpiZWdpblN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtCiAg
ICAgICAgIGlmIChjb3JlQ29sb3IuaXNWYWxpZCgpKQogICAgICAgICAgICAgYmFja2dyb3VuZENv
bG9yID0gY2FjaGVkQ0dDb2xvcihjb3JlQ29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOwogI2lm
IFVTRV9JT1NVUkZBQ0VfVklFV19TTkFQU0hPVFMKLSAgICAgICAgbV9jdXJyZW50U3dpcGVTbmFw
c2hvdFN1cmZhY2UgPSBzbmFwc2hvdC0+c3VyZmFjZSgpOworICAgICAgICBtX2N1cnJlbnRTd2lw
ZVNuYXBzaG90ID0gc25hcHNob3Q7CiAjZW5kaWYKICAgICB9CiAKQEAgLTc3Miw5ICs3NzIsOSBA
QCB2b2lkIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6cmVtb3ZlU3dpcGVTbmFwc2hvdCgpCiAgICAg
ICAgIHJldHVybjsKIAogI2lmIFVTRV9JT1NVUkZBQ0VfVklFV19TTkFQU0hPVFMKLSAgICBpZiAo
bV9jdXJyZW50U3dpcGVTbmFwc2hvdFN1cmZhY2UpCi0gICAgICAgIG1fY3VycmVudFN3aXBlU25h
cHNob3RTdXJmYWNlLT5zZXRJc1ZvbGF0aWxlKHRydWUpOwotICAgIG1fY3VycmVudFN3aXBlU25h
cHNob3RTdXJmYWNlID0gbnVsbHB0cjsKKyAgICBpZiAobV9jdXJyZW50U3dpcGVTbmFwc2hvdCkK
KyAgICAgICAgbV9jdXJyZW50U3dpcGVTbmFwc2hvdC0+c3VyZmFjZSgpLT5zZXRJc1ZvbGF0aWxl
KHRydWUpOworICAgIG1fY3VycmVudFN3aXBlU25hcHNob3QgPSBudWxscHRyOwogI2VuZGlmCiAK
ICAgICBmb3IgKGNvbnN0IGF1dG8mIGxheWVyIDogbV9jdXJyZW50U3dpcGVMaXZlTGF5ZXJzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9y
ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5oCmlu
ZGV4IDNkYzkxZjI5M2Q1YWQzMTFhZjVkMTVhYzkwNGEzMTBjMTkwYTFkZTguLjMwNWFkYjNhNzRj
MDY4YjliOThkZmQzODc3MjBjOGUwNjM2ODJhMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLmgKQEAgLTYyLDcgKzYyLDcgQEAgY2xhc3Mg
V2ViUGFnZVByb3h5OwogY2xhc3MgVmlld1NuYXBzaG90IDogcHVibGljIFJlZkNvdW50ZWQ8Vmll
d1NuYXBzaG90PiB7CiBwdWJsaWM6CiAjaWYgVVNFX0lPU1VSRkFDRV9WSUVXX1NOQVBTSE9UUwot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFZpZXdTbmFwc2hvdD4gY3JlYXRlKFdlYkNvcmU6OklPU3Vy
ZmFjZSosIFdlYkNvcmU6OkludFNpemUsIHNpemVfdCBpbWFnZVNpemVJbkJ5dGVzKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxWaWV3U25hcHNob3Q+IGNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6SU9TdXJmYWNlPik7CiAjZWxpZiBVU0VfUkVOREVSX1NFUlZFUl9WSUVXX1NOQVBTSE9U
UwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFZpZXdTbmFwc2hvdD4gY3JlYXRlKHVpbnQzMl90IHNs
b3RJRCwgV2ViQ29yZTo6SW50U2l6ZSwgc2l6ZV90IGltYWdlU2l6ZUluQnl0ZXMpOwogI2VuZGlm
CkBAIC05MCwxMyArOTAsMTMgQEAgcHVibGljOgogCiBwcml2YXRlOgogI2lmIFVTRV9JT1NVUkZB
Q0VfVklFV19TTkFQU0hPVFMKLSAgICBleHBsaWNpdCBWaWV3U25hcHNob3QoV2ViQ29yZTo6SU9T
dXJmYWNlKiwgV2ViQ29yZTo6SW50U2l6ZSwgc2l6ZV90IGltYWdlU2l6ZUluQnl0ZXMpOworICAg
IGV4cGxpY2l0IFZpZXdTbmFwc2hvdChzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNl
Pik7CiAjZWxpZiBVU0VfUkVOREVSX1NFUlZFUl9WSUVXX1NOQVBTSE9UUwogICAgIGV4cGxpY2l0
IFZpZXdTbmFwc2hvdCh1aW50MzJfdCBzbG90SUQsIFdlYkNvcmU6OkludFNpemUsIHNpemVfdCBp
bWFnZVNpemVJbkJ5dGVzKTsKICNlbmRpZgogCiAjaWYgVVNFX0lPU1VSRkFDRV9WSUVXX1NOQVBT
SE9UUwotICAgIFJlZlB0cjxXZWJDb3JlOjpJT1N1cmZhY2U+IG1fc3VyZmFjZTsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SU9TdXJmYWNlPiBtX3N1cmZhY2U7CiAjZWxpZiBVU0VfUkVO
REVSX1NFUlZFUl9WSUVXX1NOQVBTSE9UUwogICAgIHVpbnQzMl90IG1fc2xvdElEOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0
b3JlLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5t
bQppbmRleCAzNWQxZjM1NDhiMWU5YzZlNzE2Y2U1ODlhM2JjMzk5M2UxZDYzMDkxLi4zOGQ1YjU4
YzNhZjA5MjM0MjMzYjhiM2YxNzBkNDg0MjM3NmVhZjQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUubW0KQEAgLTEzNCw5ICsxMzQsOSBA
QCB2b2lkIFZpZXdTbmFwc2hvdFN0b3JlOjpkaXNjYXJkU25hcHNob3RJbWFnZXMoKQogCiAKICNp
ZiBVU0VfSU9TVVJGQUNFX1ZJRVdfU05BUFNIT1RTCi1QYXNzUmVmUHRyPFZpZXdTbmFwc2hvdD4g
Vmlld1NuYXBzaG90OjpjcmVhdGUoSU9TdXJmYWNlKiBzdXJmYWNlLCBJbnRTaXplIHNpemUsIHNp
emVfdCBpbWFnZVNpemVJbkJ5dGVzKQorUGFzc1JlZlB0cjxWaWV3U25hcHNob3Q+IFZpZXdTbmFw
c2hvdDo6Y3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxJT1N1cmZhY2U+IHN1cmZhY2UpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBWaWV3U25hcHNob3Qoc3VyZmFjZSwgc2l6ZSwgaW1hZ2VTaXpl
SW5CeXRlcykpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgVmlld1NuYXBzaG90KFdURjo6bW92
ZShzdXJmYWNlKSkpOwogfQogI2VsaWYgVVNFX1JFTkRFUl9TRVJWRVJfVklFV19TTkFQU0hPVFMK
IFBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiBWaWV3U25hcHNob3Q6OmNyZWF0ZSh1aW50MzJfdCBz
bG90SUQsIEludFNpemUgc2l6ZSwgc2l6ZV90IGltYWdlU2l6ZUluQnl0ZXMpCkBAIC0xNDYsMTUg
KzE0NiwxOSBAQCBQYXNzUmVmUHRyPFZpZXdTbmFwc2hvdD4gVmlld1NuYXBzaG90OjpjcmVhdGUo
dWludDMyX3Qgc2xvdElELCBJbnRTaXplIHNpemUsIHNpegogI2VuZGlmCiAKICNpZiBVU0VfSU9T
VVJGQUNFX1ZJRVdfU05BUFNIT1RTCi1WaWV3U25hcHNob3Q6OlZpZXdTbmFwc2hvdChJT1N1cmZh
Y2UqIHN1cmZhY2UsIEludFNpemUgc2l6ZSwgc2l6ZV90IGltYWdlU2l6ZUluQnl0ZXMpCi0gICAg
OiBtX3N1cmZhY2Uoc3VyZmFjZSkKK1ZpZXdTbmFwc2hvdDo6Vmlld1NuYXBzaG90KHN0ZDo6dW5p
cXVlX3B0cjxJT1N1cmZhY2U+IHN1cmZhY2UpCisgICAgOiBtX3N1cmZhY2UoV1RGOjptb3ZlKHN1
cmZhY2UpKQogI2VsaWYgVVNFX1JFTkRFUl9TRVJWRVJfVklFV19TTkFQU0hPVFMKIFZpZXdTbmFw
c2hvdDo6Vmlld1NuYXBzaG90KHVpbnQzMl90IHNsb3RJRCwgSW50U2l6ZSBzaXplLCBzaXplX3Qg
aW1hZ2VTaXplSW5CeXRlcykKICAgICA6IG1fc2xvdElEKHNsb3RJRCkKLSNlbmRpZgogICAgICwg
bV9pbWFnZVNpemVJbkJ5dGVzKGltYWdlU2l6ZUluQnl0ZXMpCiAgICAgLCBtX3NpemUoc2l6ZSkK
KyNlbmRpZgogeworI2lmIFVTRV9JT1NVUkZBQ0VfVklFV19TTkFQU0hPVFMKKyAgICBtX2ltYWdl
U2l6ZUluQnl0ZXMgPSBtX3N1cmZhY2UtPnRvdGFsQnl0ZXMoKTsKKyAgICBtX3NpemUgPSBtX3N1
cmZhY2UtPnNpemUoKTsKKyNlbmRpZgogICAgIGlmIChoYXNJbWFnZSgpKQogICAgICAgICBWaWV3
U25hcHNob3RTdG9yZTo6c2luZ2xldG9uKCkuZGlkQWRkSW1hZ2VUb1NuYXBzaG90KCp0aGlzKTsK
IH0KQEAgLTE2Nyw3ICsxNzEsNyBAQCBWaWV3U25hcHNob3Q6On5WaWV3U25hcHNob3QoKQogYm9v
bCBWaWV3U25hcHNob3Q6Omhhc0ltYWdlKCkgY29uc3QKIHsKICNpZiBVU0VfSU9TVVJGQUNFX1ZJ
RVdfU05BUFNIT1RTCi0gICAgcmV0dXJuIG1fc3VyZmFjZTsKKyAgICByZXR1cm4gISFtX3N1cmZh
Y2U7CiAjZWxpZiBVU0VfUkVOREVSX1NFUlZFUl9WSUVXX1NOQVBTSE9UUwogICAgIHJldHVybiBt
X3Nsb3RJRDsKICNlbmRpZgo=
</data>
<flag name="review"
          id="271492"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>