<?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>205200</bug_id>
          
          <creation_ts>2019-12-12 22:05:21 -0800</creation_ts>
          <short_desc>Implement encoding/decoding for DisplayList::DrawNativeImage</short_desc>
          <delta_ts>2019-12-13 13:27:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>justin_fan</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1598258</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-12-12 22:05:21 -0800</bug_when>
    <thetext>This is exercised by multiple failing layout tests in fast/canvas, when rendering canvas in the GPU process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598260</commentid>
    <comment_count>1</comment_count>
      <attachid>385579</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-12-12 22:23:02 -0800</bug_when>
    <thetext>Created attachment 385579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598265</commentid>
    <comment_count>2</comment_count>
      <attachid>385580</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-12-12 22:36:17 -0800</bug_when>
    <thetext>Created attachment 385580
Fix GTK/WPE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598392</commentid>
    <comment_count>3</comment_count>
      <attachid>385580</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-12-13 10:15:36 -0800</bug_when>
    <thetext>Comment on attachment 385580
Fix GTK/WPE

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

&gt; Source/WebKit/ChangeLog:10
&gt; +        Add helper functions to encode and decode NativeImagePtr (RetainPtr&lt;CGImageRef&gt; on Cocoa platforms). This
&gt; +        mirrors the implementation of encoding and decoding for WebCore::Image, which create and draws into
&gt; +        ShareableBitmap, and send a handle to the data over IPC.

I think we should try to remove drawNativeImage. Here you&apos;re forced to call into CG in the web process, and we&apos;re trying to avoid that in general.

&gt; Source/WebCore/platform/graphics/displaylists/DisplayListItems.h:1384
&gt; +    Optional&lt;FloatRect&gt; destination;

destinationRect

&gt; Source/WebKit/Shared/WebCoreArgumentCoders.cpp:1050
&gt; +    if (graphicsContext)
&gt; +        graphicsContext-&gt;drawNativeImage(image, { }, FloatRect({ }, imageSize), FloatRect({ }, imageSize));

If we fail to make a graphicsContext shouldn&apos;t the encoding fail?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598434</commentid>
    <comment_count>4</comment_count>
      <attachid>385580</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-12-13 12:01:47 -0800</bug_when>
    <thetext>Comment on attachment 385580
Fix GTK/WPE

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

Thanks for the review!

&gt;&gt; Source/WebKit/ChangeLog:10
&gt;&gt; +        ShareableBitmap, and send a handle to the data over IPC.
&gt; 
&gt; I think we should try to remove drawNativeImage. Here you&apos;re forced to call into CG in the web process, and we&apos;re trying to avoid that in general.

Added a sentence to the ChangeLog describing this, and also filed webkit.org/b/205213.

&gt;&gt; Source/WebCore/platform/graphics/displaylists/DisplayListItems.h:1384
&gt;&gt; +    Optional&lt;FloatRect&gt; destination;
&gt; 
&gt; destinationRect

👍🏻. Also, renamed `m_destination` to `m_destinationRect`.

&gt;&gt; Source/WebKit/Shared/WebCoreArgumentCoders.cpp:1050
&gt;&gt; +        graphicsContext-&gt;drawNativeImage(image, { }, FloatRect({ }, imageSize), FloatRect({ }, imageSize));
&gt; 
&gt; If we fail to make a graphicsContext shouldn&apos;t the encoding fail?

Good call — I changed both this function and the existing encodeImage() function to encode `!!graphicsContext`, and then made decoding fail if we failed to make a graphicsContext.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598445</commentid>
    <comment_count>5</comment_count>
      <attachid>385630</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-12-13 12:24:49 -0800</bug_when>
    <thetext>Created attachment 385630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598465</commentid>
    <comment_count>6</comment_count>
      <attachid>385630</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-13 13:22:31 -0800</bug_when>
    <thetext>Comment on attachment 385630
Patch

Clearing flags on attachment: 385630

Committed r253495: &lt;https://trac.webkit.org/changeset/253495&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1598466</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-13 13:27:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/57923065&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385579</attachid>
            <date>2019-12-12 22:23:02 -0800</date>
            <delta_ts>2019-12-12 22:36:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205200-20191212222301.patch</filename>
            <type>text/plain</type>
            <size>11303</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2M3Mzg2NjFjYTQ3YTFh
N2YzYzhmN2Q4MzM0MzNjMTRmNTEyNmRhMC4uYTM1ZDIxNzRmMzk3ZDdkZDg3YTFmZGJkZWY4MjFh
NzQ5NGFkMjRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE5LTEyLTEyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBl
bmNvZGluZy9kZWNvZGluZyBmb3IgRGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MjAwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50cyBiYXNp
YyBlbmNvZGluZyBhbmQgZGVjb2RpbmcgZm9yIHRoZSBEcmF3TmF0aXZlSW1hZ2UgZHJhd2luZyBp
dGVtLCBzdWNoIHRoYXQgaXQgY2FuIGJlIHNlbnQgYW5kCisgICAgICAgIHJlcGxheWVkIGluIHRo
ZSBHUFUgcHJvY2Vzcy4gU2VlIFdlYktpdCBDaGFuZ2VMb2dzIGZvciBtb3JlIGRldGFpbHMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5oOgorCisgICAgICAgIEFk
ZCBhIE5hdGl2ZUltYWdlSGFuZGxlIHdyYXBwZXIgYXJvdW5kIGEgTmF0aXZlSW1hZ2VQdHIgdG8g
bWFrZSBpdCBzaW1wbGVyIHRvIGRlY29kZSBhbmQgZW5jb2RlIE5hdGl2ZUltYWdlUHRycworICAg
ICAgICB1c2luZyA8PCBhbmQgPj4gb3BlcmF0b3JzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmg6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZTo6ZGVjb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW06OmRlY29kZSk6CisKIDIwMTktMTItMTIgIEph
Y2sgTGVlICA8c2hpaGNoaWVoX2xlZUBhcHBsZS5jb20+CiAKICAgICAgICAgUHJvdGVjdCBsaWZl
dGltZSBvZiBmcmFtZSBhbmQgZnJhbWVWaWV3IG9iamVjdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzU3MzE2Yjhm
YjM2YmU1ZTQ5YzI0NWY2NmNjNzliNjM0ZmMwMmFiMy4uYjQzNmVkZTQ4YThiMzUyYzkwZGQwMzcx
MWU4NWY2ZDE0NzAwODA0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOS0xMi0xMiAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1l
bnQgZW5jb2RpbmcvZGVjb2RpbmcgZm9yIERpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTIwMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBoZWxwZXIg
ZnVuY3Rpb25zIHRvIGVuY29kZSBhbmQgZGVjb2RlIE5hdGl2ZUltYWdlUHRyIChSZXRhaW5QdHI8
Q0dJbWFnZVJlZj4gb24gQ29jb2EgcGxhdGZvcm1zKS4gVGhpcworICAgICAgICBtaXJyb3JzIHRo
ZSBpbXBsZW1lbnRhdGlvbiBvZiBlbmNvZGluZyBhbmQgZGVjb2RpbmcgZm9yIFdlYkNvcmU6Oklt
YWdlLCB3aGljaCBjcmVhdGUgYW5kIGRyYXdzIGludG8KKyAgICAgICAgU2hhcmVhYmxlQml0bWFw
LCBhbmQgc2VuZCBhIGhhbmRsZSB0byB0aGUgZGF0YSBvdmVyIElQQy4KKworICAgICAgICAqIFNo
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjplbmNvZGVOYXRp
dmVJbWFnZSk6CisgICAgICAgIChJUEM6OmRlY29kZU5hdGl2ZUltYWdlKToKKyAgICAgICAgKElQ
Qzo6ZW5jb2RlT3B0aW9uYWxOYXRpdmVJbWFnZSk6CisgICAgICAgIChJUEM6OmRlY29kZU9wdGlv
bmFsTmF0aXZlSW1hZ2UpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPE5hdGl2ZUltYWdl
SGFuZGxlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxOYXRpdmVJbWFn
ZUhhbmRsZT46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oOgorCiAyMDE5LTEyLTEyICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbaU9TXSBBZGQgc2FuZGJveCB0ZWxlbWV0cnkgdG8gbWFjaCBsb29rdXAgcnVs
ZXMgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL05hdGl2ZUltYWdlLmgKaW5kZXggOGUzYWUyMTY2MGM1NGQzNTcwYWMyZGIxM2E2
YjViNWNiM2NiN2VmNC4uZjVkZmU0NzU3OTk0YzY5YWUzNDIwYTM1NGRmNjhjNWE2NmE2MDE1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5oCkBA
IC02MSwxMSArNjEsMTYgQEAgdHlwZWRlZiBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBOYXRpdmVJ
bWFnZVB0cjsKIHR5cGVkZWYgUmVmUHRyPFNoYXJlZEJpdG1hcD4gTmF0aXZlSW1hZ2VQdHI7CiAj
ZW5kaWYKIAotSW50U2l6ZSBuYXRpdmVJbWFnZVNpemUoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsK
K1dFQkNPUkVfRVhQT1JUIEludFNpemUgbmF0aXZlSW1hZ2VTaXplKGNvbnN0IE5hdGl2ZUltYWdl
UHRyJik7CiBib29sIG5hdGl2ZUltYWdlSGFzQWxwaGEoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsK
IENvbG9yIG5hdGl2ZUltYWdlU2luZ2xlUGl4ZWxTb2xpZENvbG9yKGNvbnN0IE5hdGl2ZUltYWdl
UHRyJik7CiAKIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3Qg
SW50U2l6ZSYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJik7CiB2b2lkIGNsZWFyTmF0aXZl
SW1hZ2VTdWJpbWFnZXMoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKKworY2xhc3MgTmF0aXZlSW1h
Z2VIYW5kbGUgeworcHVibGljOgorICAgIE5hdGl2ZUltYWdlUHRyIGltYWdlOworfTsKICAgICAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAppbmRleCBjOTBlZWEzNTZmZDM2
YmM0YzNlNzA2OWIyZTc0NzgwMjQzZjhjZTc5Li4xMTAzNDM5ZjZmZjUzZjhmZGY2MmYwODNjYzFm
ZjY1NmE0YjVhMjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCkBAIC02
NzcsNiArNjc3LDggQEAgRHJhd05hdGl2ZUltYWdlOjpEcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0
aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGkKICNlbmRpZgogfQogCitEcmF3
TmF0aXZlSW1hZ2U6On5EcmF3TmF0aXZlSW1hZ2UoKSA9IGRlZmF1bHQ7CisKIHZvaWQgRHJhd05h
dGl2ZUltYWdlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7CiAjaWYg
VVNFKENHKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXggNmQ0M2U4NGRiYzZi
MzM1ZmFmZTkwM2ZhMjA2NGFkNWQ2NGQ2OWNmYi4uZTRhN2IzZTIyZTgxZmYxYjhmNGYwNzczYmQy
OWNhZmI1Mzc2MjYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCkBAIC0xMzI5
LDI0ICsxMzI5LDc1IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRHJh
d05hdGl2ZUltYWdlKGltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25z
KSk7CiAgICAgfQogCisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+RHJhd05hdGl2ZUltYWdl
KCk7CisKICAgICBGbG9hdFJlY3Qgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zcmNSZWN0OyB9
CiAgICAgRmxvYXRSZWN0IGRlc3RpbmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlv
bjsgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYp
IGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxSZWY8
RHJhd05hdGl2ZUltYWdlPj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKLSAgICBEcmF3
TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIHNlbGZT
aXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJik7CisgICAgV0VCQ09SRV9FWFBPUlQgRHJhd05h
dGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpOwogCiAgICAgdm9pZCBhcHBseShHcmFwaGljc0Nv
bnRleHQmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gbG9jYWxC
b3VuZHMoY29uc3QgR3JhcGhpY3NDb250ZXh0JikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9k
ZXN0aW5hdGlvbjsgfQogCiAjaWYgVVNFKENHKQotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBt
X2ltYWdlOworICAgIE5hdGl2ZUltYWdlUHRyIG1faW1hZ2U7CiAjZW5kaWYKICAgICBGbG9hdFNp
emUgbV9pbWFnZVNpemU7CiAgICAgRmxvYXRSZWN0IG1fZGVzdGluYXRpb247CiAgICAgRmxvYXRS
ZWN0IG1fc3JjUmVjdDsKICAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBtX29wdGlvbnM7CiB9Owor
Cit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBEcmF3TmF0aXZlSW1hZ2U6OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworI2lmIFVTRShDRykKKyAgICBOYXRpdmVJbWFnZUhh
bmRsZSBoYW5kbGUgeyBtX2ltYWdlIH07CisgICAgZW5jb2RlciA8PCBoYW5kbGU7CisjZW5kaWYK
KyAgICBlbmNvZGVyIDw8IG1faW1hZ2VTaXplOworICAgIGVuY29kZXIgPDwgbV9kZXN0aW5hdGlv
bjsKKyAgICBlbmNvZGVyIDw8IG1fc3JjUmVjdDsKKyAgICBlbmNvZGVyIDw8IG1fb3B0aW9uczsK
K30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFJlZjxEcmF3TmF0aXZlSW1h
Z2U+PiBEcmF3TmF0aXZlSW1hZ2U6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworI2lmIFVT
RShDRykKKyAgICBPcHRpb25hbDxOYXRpdmVJbWFnZUhhbmRsZT4gaGFuZGxlOworICAgIGRlY29k
ZXIgPj4gaGFuZGxlOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworI2VuZGlmCisKKyAgICBPcHRpb25hbDxGbG9hdFNpemU+IGltYWdlU2l6ZTsKKyAgICBk
ZWNvZGVyID4+IGltYWdlU2l6ZTsKKyAgICBpZiAoIWltYWdlU2l6ZSkKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gZGVzdGluYXRpb247Cisg
ICAgZGVjb2RlciA+PiBkZXN0aW5hdGlvbjsKKyAgICBpZiAoIWRlc3RpbmF0aW9uKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBzcmNSZWN0
OworICAgIGRlY29kZXIgPj4gc3JjUmVjdDsKKyAgICBpZiAoIXNyY1JlY3QpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxJbWFnZVBhaW50aW5nT3B0aW9ucz4g
b3B0aW9uczsKKyAgICBkZWNvZGVyID4+IG9wdGlvbnM7CisgICAgaWYgKCFvcHRpb25zKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgcmV0dXJuIERyYXdOYXRpdmVJbWFnZTo6
Y3JlYXRlKGhhbmRsZS0+aW1hZ2UsICppbWFnZVNpemUsICpkZXN0aW5hdGlvbiwgKnNyY1JlY3Qs
ICpvcHRpb25zKTsKK30KICNlbmRpZgogCiBjbGFzcyBEcmF3UGF0dGVybiA6IHB1YmxpYyBEcmF3
aW5nSXRlbSB7CkBAIC0yNjc5LDcgKzI3MzAsNyBAQCB2b2lkIEl0ZW06OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogICAgICAgICBicmVhazsKICNpZiBVU0UoQ0cpIHx8IFVTRShDQUlS
TykgfHwgVVNFKERJUkVDVDJEKQogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZToK
LSAgICAgICAgV1RGTG9nQWx3YXlzKCJEaXNwbGF5TGlzdDo6SXRlbTo6ZW5jb2RlIGNhbm5vdCB5
ZXQgZW5jb2RlIERyYXdOYXRpdmVJbWFnZSIpOworICAgICAgICBlbmNvZGVyIDw8IGRvd25jYXN0
PERyYXdOYXRpdmVJbWFnZT4oKnRoaXMpOwogICAgICAgICBicmVhazsKICNlbmRpZgogICAgIGNh
c2UgSXRlbVR5cGU6OkRyYXdQYXR0ZXJuOgpAQCAtMjg1OSw3ICsyOTEwLDggQEAgT3B0aW9uYWw8
UmVmPEl0ZW0+PiBJdGVtOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICAgICAgYnJlYWs7
CiAjaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8pIHx8IFVTRShESVJFQ1QyRCkKICAgICBjYXNlIEl0
ZW1UeXBlOjpEcmF3TmF0aXZlSW1hZ2U6Ci0gICAgICAgIFdURkxvZ0Fsd2F5cygiRGlzcGxheUxp
c3Q6Okl0ZW06OmRlY29kZSBjYW5ub3QgeWV0IGRlY29kZSBEcmF3TmF0aXZlSW1hZ2UiKTsKKyAg
ICAgICAgaWYgKGF1dG8gaXRlbSA9IERyYXdOYXRpdmVJbWFnZTo6ZGVjb2RlKGRlY29kZXIpKQor
ICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19yZWZlcmVuY2VfY2FzdDxJdGVtPihXVEZNb3ZlKCpp
dGVtKSk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1Bh
dHRlcm46CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cAppbmRleCAxYTk3ZmZhZDJmODQ4ZDQ1MmU3MGYzM2Y1MzFiMDE1N2ExNmRmN2ExLi5mNmRlMjI5
NzhmZDc0MTdiOWU0MWU0NGUxMjgxNjllYjA4ZjY4Njg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTU3LDYgKzU3LDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0xlbmd0aC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTGVuZ3RoQm94Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlbGVjdGlvbk9wdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvTmF0aXZlSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb21pc2VkQXR0
YWNobWVudEluZm8uaD4KQEAgLTEwNDAsNiArMTA0MSw3NCBAQCBib29sIEFyZ3VtZW50Q29kZXI8
SW1hZ2VIYW5kbGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSW1hZ2VIYW5kbGUmIGltYWdl
SGFuZAogICAgIHJldHVybiB0cnVlOwogfQogCitzdGF0aWMgdm9pZCBlbmNvZGVOYXRpdmVJbWFn
ZShFbmNvZGVyJiBlbmNvZGVyLCBOYXRpdmVJbWFnZVB0ciBpbWFnZSkKK3sKKyAgICBhdXRvIGlt
YWdlU2l6ZSA9IG5hdGl2ZUltYWdlU2l6ZShpbWFnZSk7CisgICAgYXV0byBiaXRtYXAgPSBTaGFy
ZWFibGVCaXRtYXA6OmNyZWF0ZVNoYXJlYWJsZShpbWFnZVNpemUsIHsgfSk7CisgICAgYXV0byBn
cmFwaGljc0NvbnRleHQgPSBiaXRtYXAtPmNyZWF0ZUdyYXBoaWNzQ29udGV4dCgpOworICAgIGlm
IChncmFwaGljc0NvbnRleHQpCisgICAgICAgIGdyYXBoaWNzQ29udGV4dC0+ZHJhd05hdGl2ZUlt
YWdlKGltYWdlLCB7IH0sIEZsb2F0UmVjdCh7IH0sIGltYWdlU2l6ZSksIEZsb2F0UmVjdCh7IH0s
IGltYWdlU2l6ZSkpOworCisgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlOworICAg
IGJpdG1hcC0+Y3JlYXRlSGFuZGxlKGhhbmRsZSk7CisKKyAgICBlbmNvZGVyIDw8IGhhbmRsZTsK
K30KKworc3RhdGljIGJvb2wgZGVjb2RlTmF0aXZlSW1hZ2UoRGVjb2RlciYgZGVjb2RlciwgTmF0
aXZlSW1hZ2VQdHImIG5hdGl2ZUltYWdlKQoreworICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxl
IGhhbmRsZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhbmRsZSkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGF1dG8gYml0bWFwID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoaGFu
ZGxlKTsKKyAgICBpZiAoIWJpdG1hcCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0
byBpbWFnZSA9IGJpdG1hcC0+Y3JlYXRlSW1hZ2UoKTsKKyAgICBpZiAoIWltYWdlKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBuYXRpdmVJbWFnZSA9IGltYWdlLT5uYXRpdmVJbWFnZSgp
OworICAgIGlmICghbmF0aXZlSW1hZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJl
dHVybiB0cnVlOworfQorCitzdGF0aWMgdm9pZCBlbmNvZGVPcHRpb25hbE5hdGl2ZUltYWdlKEVu
Y29kZXImIGVuY29kZXIsIE5hdGl2ZUltYWdlUHRyIGltYWdlKQoreworICAgIGJvb2wgaGFzSW1h
Z2UgPSAhIWltYWdlOworICAgIGVuY29kZXIgPDwgaGFzSW1hZ2U7CisKKyAgICBpZiAoaGFzSW1h
Z2UpCisgICAgICAgIGVuY29kZU5hdGl2ZUltYWdlKGVuY29kZXIsIGltYWdlKTsKK30KKworc3Rh
dGljIGJvb2wgZGVjb2RlT3B0aW9uYWxOYXRpdmVJbWFnZShEZWNvZGVyJiBkZWNvZGVyLCBOYXRp
dmVJbWFnZVB0ciYgaW1hZ2UpCit7CisgICAgaW1hZ2UgPSBudWxscHRyOworCisgICAgYm9vbCBo
YXNJbWFnZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc0ltYWdlKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgaWYgKCFoYXNJbWFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisK
KyAgICByZXR1cm4gZGVjb2RlTmF0aXZlSW1hZ2UoZGVjb2RlciwgaW1hZ2UpOworfQorCit2b2lk
IEFyZ3VtZW50Q29kZXI8TmF0aXZlSW1hZ2VIYW5kbGU+OjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
ciwgY29uc3QgTmF0aXZlSW1hZ2VIYW5kbGUmIGltYWdlSGFuZGxlKQoreworICAgIGVuY29kZU9w
dGlvbmFsTmF0aXZlSW1hZ2UoZW5jb2RlciwgaW1hZ2VIYW5kbGUuaW1hZ2UuZ2V0KCkpOworfQor
Citib29sIEFyZ3VtZW50Q29kZXI8TmF0aXZlSW1hZ2VIYW5kbGU+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgTmF0aXZlSW1hZ2VIYW5kbGUmIGltYWdlSGFuZGxlKQoreworICAgIHJldHVybiBk
ZWNvZGVPcHRpb25hbE5hdGl2ZUltYWdlKGRlY29kZXIsIGltYWdlSGFuZGxlLmltYWdlKTsKK30K
KwogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQogdm9pZCBBcmd1bWVudENvZGVyPEN1cnNvcj46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBDdXJzb3ImIGN1cnNvcikKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggNWFkZmNmYjZj
MjMzZjRkOTk0OGE2OGEyOTI3M2RiYzc2MmU0YjkzYy4uMWRlMzA0MmMwNzkxNjVhMWQyNWE2ZjRi
NThkNjYwOWE2NTY2MDJmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKQEAgLTg5LDYgKzg5LDcgQEAgY2xhc3MgS2V5ZnJhbWVWYWx1ZUxpc3Q7CiBj
bGFzcyBMYXlvdXRTaXplOwogY2xhc3MgTGF5b3V0UG9pbnQ7CiBjbGFzcyBMaW5lYXJUaW1pbmdG
dW5jdGlvbjsKK2NsYXNzIE5hdGl2ZUltYWdlSGFuZGxlOwogY2xhc3MgTm90aWZpY2F0aW9uOwog
Y2xhc3MgUGFzdGVib2FyZEN1c3RvbURhdGE7CiBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7CkBAIC0z
ODMsNiArMzg0LDExIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
SW1hZ2VIYW5kbGU+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6
OkltYWdlSGFuZGxlJik7CiB9OwogCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6Ok5hdGl2ZUltYWdlSGFuZGxlPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29k
ZXImLCBjb25zdCBXZWJDb3JlOjpOYXRpdmVJbWFnZUhhbmRsZSYpOworICAgIHN0YXRpYyBib29s
IGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6TmF0aXZlSW1hZ2VIYW5kbGUmKTsKK307CisKIHRl
bXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0PiB7
CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385580</attachid>
            <date>2019-12-12 22:36:17 -0800</date>
            <delta_ts>2019-12-13 10:15:36 -0800</delta_ts>
            <desc>Fix GTK/WPE</desc>
            <filename>bug-205200-20191212223616.patch</filename>
            <type>text/plain</type>
            <size>11403</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2M3Mzg2NjFjYTQ3YTFh
N2YzYzhmN2Q4MzM0MzNjMTRmNTEyNmRhMC4uYTM1ZDIxNzRmMzk3ZDdkZDg3YTFmZGJkZWY4MjFh
NzQ5NGFkMjRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE5LTEyLTEyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBl
bmNvZGluZy9kZWNvZGluZyBmb3IgRGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MjAwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50cyBiYXNp
YyBlbmNvZGluZyBhbmQgZGVjb2RpbmcgZm9yIHRoZSBEcmF3TmF0aXZlSW1hZ2UgZHJhd2luZyBp
dGVtLCBzdWNoIHRoYXQgaXQgY2FuIGJlIHNlbnQgYW5kCisgICAgICAgIHJlcGxheWVkIGluIHRo
ZSBHUFUgcHJvY2Vzcy4gU2VlIFdlYktpdCBDaGFuZ2VMb2dzIGZvciBtb3JlIGRldGFpbHMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5oOgorCisgICAgICAgIEFk
ZCBhIE5hdGl2ZUltYWdlSGFuZGxlIHdyYXBwZXIgYXJvdW5kIGEgTmF0aXZlSW1hZ2VQdHIgdG8g
bWFrZSBpdCBzaW1wbGVyIHRvIGRlY29kZSBhbmQgZW5jb2RlIE5hdGl2ZUltYWdlUHRycworICAg
ICAgICB1c2luZyA8PCBhbmQgPj4gb3BlcmF0b3JzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmg6CisgICAgICAgIChX
ZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05hdGl2ZUltYWdlOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZTo6ZGVjb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW06OmRlY29kZSk6CisKIDIwMTktMTItMTIgIEph
Y2sgTGVlICA8c2hpaGNoaWVoX2xlZUBhcHBsZS5jb20+CiAKICAgICAgICAgUHJvdGVjdCBsaWZl
dGltZSBvZiBmcmFtZSBhbmQgZnJhbWVWaWV3IG9iamVjdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzU3MzE2Yjhm
YjM2YmU1ZTQ5YzI0NWY2NmNjNzliNjM0ZmMwMmFiMy4uYjQzNmVkZTQ4YThiMzUyYzkwZGQwMzcx
MWU4NWY2ZDE0NzAwODA0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxOS0xMi0xMiAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBsZW1l
bnQgZW5jb2RpbmcvZGVjb2RpbmcgZm9yIERpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1hZ2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTIwMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBoZWxwZXIg
ZnVuY3Rpb25zIHRvIGVuY29kZSBhbmQgZGVjb2RlIE5hdGl2ZUltYWdlUHRyIChSZXRhaW5QdHI8
Q0dJbWFnZVJlZj4gb24gQ29jb2EgcGxhdGZvcm1zKS4gVGhpcworICAgICAgICBtaXJyb3JzIHRo
ZSBpbXBsZW1lbnRhdGlvbiBvZiBlbmNvZGluZyBhbmQgZGVjb2RpbmcgZm9yIFdlYkNvcmU6Oklt
YWdlLCB3aGljaCBjcmVhdGUgYW5kIGRyYXdzIGludG8KKyAgICAgICAgU2hhcmVhYmxlQml0bWFw
LCBhbmQgc2VuZCBhIGhhbmRsZSB0byB0aGUgZGF0YSBvdmVyIElQQy4KKworICAgICAgICAqIFNo
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjplbmNvZGVOYXRp
dmVJbWFnZSk6CisgICAgICAgIChJUEM6OmRlY29kZU5hdGl2ZUltYWdlKToKKyAgICAgICAgKElQ
Qzo6ZW5jb2RlT3B0aW9uYWxOYXRpdmVJbWFnZSk6CisgICAgICAgIChJUEM6OmRlY29kZU9wdGlv
bmFsTmF0aXZlSW1hZ2UpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPE5hdGl2ZUltYWdl
SGFuZGxlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxOYXRpdmVJbWFn
ZUhhbmRsZT46OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oOgorCiAyMDE5LTEyLTEyICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbaU9TXSBBZGQgc2FuZGJveCB0ZWxlbWV0cnkgdG8gbWFjaCBsb29rdXAgcnVs
ZXMgaW4gdGhlIFdlYkNvbnRlbnQgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL05hdGl2ZUltYWdlLmgKaW5kZXggOGUzYWUyMTY2MGM1NGQzNTcwYWMyZGIxM2E2
YjViNWNiM2NiN2VmNC4uZjVkZmU0NzU3OTk0YzY5YWUzNDIwYTM1NGRmNjhjNWE2NmE2MDE1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5oCkBA
IC02MSwxMSArNjEsMTYgQEAgdHlwZWRlZiBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBOYXRpdmVJ
bWFnZVB0cjsKIHR5cGVkZWYgUmVmUHRyPFNoYXJlZEJpdG1hcD4gTmF0aXZlSW1hZ2VQdHI7CiAj
ZW5kaWYKIAotSW50U2l6ZSBuYXRpdmVJbWFnZVNpemUoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsK
K1dFQkNPUkVfRVhQT1JUIEludFNpemUgbmF0aXZlSW1hZ2VTaXplKGNvbnN0IE5hdGl2ZUltYWdl
UHRyJik7CiBib29sIG5hdGl2ZUltYWdlSGFzQWxwaGEoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsK
IENvbG9yIG5hdGl2ZUltYWdlU2luZ2xlUGl4ZWxTb2xpZENvbG9yKGNvbnN0IE5hdGl2ZUltYWdl
UHRyJik7CiAKIHZvaWQgZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3Qg
SW50U2l6ZSYsIGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJik7CiB2b2lkIGNsZWFyTmF0aXZl
SW1hZ2VTdWJpbWFnZXMoY29uc3QgTmF0aXZlSW1hZ2VQdHImKTsKKworY2xhc3MgTmF0aXZlSW1h
Z2VIYW5kbGUgeworcHVibGljOgorICAgIE5hdGl2ZUltYWdlUHRyIGltYWdlOworfTsKICAgICAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXls
aXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAppbmRleCBjOTBlZWEzNTZmZDM2
YmM0YzNlNzA2OWIyZTc0NzgwMjQzZjhjZTc5Li4xMTAzNDM5ZjZmZjUzZjhmZGY2MmYwODNjYzFm
ZjY1NmE0YjVhMjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCkBAIC02
NzcsNiArNjc3LDggQEAgRHJhd05hdGl2ZUltYWdlOjpEcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0
aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGkKICNlbmRpZgogfQogCitEcmF3
TmF0aXZlSW1hZ2U6On5EcmF3TmF0aXZlSW1hZ2UoKSA9IGRlZmF1bHQ7CisKIHZvaWQgRHJhd05h
dGl2ZUltYWdlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiB7CiAjaWYg
VVNFKENHKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlz
cGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKaW5kZXggNmQ0M2U4NGRiYzZi
MzM1ZmFmZTkwM2ZhMjA2NGFkNWQ2NGQ2OWNmYi4uMDEwMjQ0YmRmYmQ3NmVjZmVjMDEyOGNkYjZj
Y2Y1OTk0Y2MzODBiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5oCkBAIC0xMzI5
LDI0ICsxMzI5LDgwIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRHJh
d05hdGl2ZUltYWdlKGltYWdlLCBpbWFnZVNpemUsIGRlc3RSZWN0LCBzcmNSZWN0LCBvcHRpb25z
KSk7CiAgICAgfQogCisgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+RHJhd05hdGl2ZUltYWdl
KCk7CisKICAgICBGbG9hdFJlY3Qgc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9zcmNSZWN0OyB9
CiAgICAgRmxvYXRSZWN0IGRlc3RpbmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlv
bjsgfQogCisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYp
IGNvbnN0OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBPcHRpb25hbDxSZWY8
RHJhd05hdGl2ZUltYWdlPj4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKLSAgICBEcmF3
TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImLCBjb25zdCBGbG9hdFNpemUmIHNlbGZT
aXplLCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3Qs
IGNvbnN0IEltYWdlUGFpbnRpbmdPcHRpb25zJik7CisgICAgV0VCQ09SRV9FWFBPUlQgRHJhd05h
dGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6
ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBj
b25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpOwogCiAgICAgdm9pZCBhcHBseShHcmFwaGljc0Nv
bnRleHQmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gbG9jYWxC
b3VuZHMoY29uc3QgR3JhcGhpY3NDb250ZXh0JikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9k
ZXN0aW5hdGlvbjsgfQogCiAjaWYgVVNFKENHKQotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBt
X2ltYWdlOworICAgIE5hdGl2ZUltYWdlUHRyIG1faW1hZ2U7CiAjZW5kaWYKICAgICBGbG9hdFNp
emUgbV9pbWFnZVNpemU7CiAgICAgRmxvYXRSZWN0IG1fZGVzdGluYXRpb247CiAgICAgRmxvYXRS
ZWN0IG1fc3JjUmVjdDsKICAgICBJbWFnZVBhaW50aW5nT3B0aW9ucyBtX29wdGlvbnM7CiB9Owor
Cit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBEcmF3TmF0aXZlSW1hZ2U6OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworI2lmIFVTRShDRykKKyAgICBOYXRpdmVJbWFnZUhh
bmRsZSBoYW5kbGUgeyBtX2ltYWdlIH07CisgICAgZW5jb2RlciA8PCBoYW5kbGU7CisjZW5kaWYK
KyAgICBlbmNvZGVyIDw8IG1faW1hZ2VTaXplOworICAgIGVuY29kZXIgPDwgbV9kZXN0aW5hdGlv
bjsKKyAgICBlbmNvZGVyIDw8IG1fc3JjUmVjdDsKKyAgICBlbmNvZGVyIDw8IG1fb3B0aW9uczsK
K30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK09wdGlvbmFsPFJlZjxEcmF3TmF0aXZlSW1h
Z2U+PiBEcmF3TmF0aXZlSW1hZ2U6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworI2lmIFVT
RShDRykKKyAgICBPcHRpb25hbDxOYXRpdmVJbWFnZUhhbmRsZT4gaGFuZGxlOworICAgIGRlY29k
ZXIgPj4gaGFuZGxlOworICAgIGlmICghaGFuZGxlKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OworI2VuZGlmCisKKyAgICBPcHRpb25hbDxGbG9hdFNpemU+IGltYWdlU2l6ZTsKKyAgICBk
ZWNvZGVyID4+IGltYWdlU2l6ZTsKKyAgICBpZiAoIWltYWdlU2l6ZSkKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKworICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gZGVzdGluYXRpb247Cisg
ICAgZGVjb2RlciA+PiBkZXN0aW5hdGlvbjsKKyAgICBpZiAoIWRlc3RpbmF0aW9uKQorICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OworCisgICAgT3B0aW9uYWw8RmxvYXRSZWN0PiBzcmNSZWN0
OworICAgIGRlY29kZXIgPj4gc3JjUmVjdDsKKyAgICBpZiAoIXNyY1JlY3QpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxJbWFnZVBhaW50aW5nT3B0aW9ucz4g
b3B0aW9uczsKKyAgICBkZWNvZGVyID4+IG9wdGlvbnM7CisgICAgaWYgKCFvcHRpb25zKQorICAg
ICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworCisjaWYgVVNFKENHKQorICAgIE5hdGl2ZUltYWdl
UHRyIGltYWdlID0gaGFuZGxlLT5pbWFnZTsKKyNlbHNlCisgICAgTmF0aXZlSW1hZ2VQdHIgaW1h
Z2UgPSBudWxscHRyOworI2VuZGlmCisgICAgcmV0dXJuIERyYXdOYXRpdmVJbWFnZTo6Y3JlYXRl
KGltYWdlLCAqaW1hZ2VTaXplLCAqZGVzdGluYXRpb24sICpzcmNSZWN0LCAqb3B0aW9ucyk7Cit9
CiAjZW5kaWYKIAogY2xhc3MgRHJhd1BhdHRlcm4gOiBwdWJsaWMgRHJhd2luZ0l0ZW0gewpAQCAt
MjY3OSw3ICsyNzM1LDcgQEAgdm9pZCBJdGVtOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKICAgICAgICAgYnJlYWs7CiAjaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8pIHx8IFVTRShESVJF
Q1QyRCkKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3TmF0aXZlSW1hZ2U6Ci0gICAgICAgIFdURkxv
Z0Fsd2F5cygiRGlzcGxheUxpc3Q6Okl0ZW06OmVuY29kZSBjYW5ub3QgeWV0IGVuY29kZSBEcmF3
TmF0aXZlSW1hZ2UiKTsKKyAgICAgICAgZW5jb2RlciA8PCBkb3duY2FzdDxEcmF3TmF0aXZlSW1h
Z2U+KCp0aGlzKTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKICAgICBjYXNlIEl0ZW1UeXBlOjpE
cmF3UGF0dGVybjoKQEAgLTI4NTksNyArMjkxNSw4IEBAIE9wdGlvbmFsPFJlZjxJdGVtPj4gSXRl
bTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgICAgIGJyZWFrOwogI2lmIFVTRShDRykg
fHwgVVNFKENBSVJPKSB8fCBVU0UoRElSRUNUMkQpCiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd05h
dGl2ZUltYWdlOgotICAgICAgICBXVEZMb2dBbHdheXMoIkRpc3BsYXlMaXN0OjpJdGVtOjpkZWNv
ZGUgY2Fubm90IHlldCBkZWNvZGUgRHJhd05hdGl2ZUltYWdlIik7CisgICAgICAgIGlmIChhdXRv
IGl0ZW0gPSBEcmF3TmF0aXZlSW1hZ2U6OmRlY29kZShkZWNvZGVyKSkKKyAgICAgICAgICAgIHJl
dHVybiBzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8SXRlbT4oV1RGTW92ZSgqaXRlbSkpOwogICAgICAg
ICBicmVhazsKICNlbmRpZgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXR0ZXJuOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggMWE5N2Zm
YWQyZjg0OGQ0NTJlNzBmMzNmNTMxYjAxNTdhMTZkZjdhMS4uZjZkZTIyOTc4ZmQ3NDE3YjllNDFl
NDRlMTI4MTY5ZWIwOGY2ODY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnMuY3BwCkBAIC01Nyw2ICs1Nyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9M
ZW5ndGguaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xlbmd0aEJveC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTWVkaWFTZWxlY3Rpb25PcHRpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05hdGl2ZUltYWdl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
bHVnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9taXNlZEF0dGFjaG1lbnRJbmZvLmg+
CkBAIC0xMDQwLDYgKzEwNDEsNzQgQEAgYm9vbCBBcmd1bWVudENvZGVyPEltYWdlSGFuZGxlPjo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEltYWdlSGFuZGxlJiBpbWFnZUhhbmQKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAorc3RhdGljIHZvaWQgZW5jb2RlTmF0aXZlSW1hZ2UoRW5jb2RlciYgZW5j
b2RlciwgTmF0aXZlSW1hZ2VQdHIgaW1hZ2UpCit7CisgICAgYXV0byBpbWFnZVNpemUgPSBuYXRp
dmVJbWFnZVNpemUoaW1hZ2UpOworICAgIGF1dG8gYml0bWFwID0gU2hhcmVhYmxlQml0bWFwOjpj
cmVhdGVTaGFyZWFibGUoaW1hZ2VTaXplLCB7IH0pOworICAgIGF1dG8gZ3JhcGhpY3NDb250ZXh0
ID0gYml0bWFwLT5jcmVhdGVHcmFwaGljc0NvbnRleHQoKTsKKyAgICBpZiAoZ3JhcGhpY3NDb250
ZXh0KQorICAgICAgICBncmFwaGljc0NvbnRleHQtPmRyYXdOYXRpdmVJbWFnZShpbWFnZSwgeyB9
LCBGbG9hdFJlY3QoeyB9LCBpbWFnZVNpemUpLCBGbG9hdFJlY3QoeyB9LCBpbWFnZVNpemUpKTsK
KworICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKKyAgICBiaXRtYXAtPmNyZWF0
ZUhhbmRsZShoYW5kbGUpOworCisgICAgZW5jb2RlciA8PCBoYW5kbGU7Cit9CisKK3N0YXRpYyBi
b29sIGRlY29kZU5hdGl2ZUltYWdlKERlY29kZXImIGRlY29kZXIsIE5hdGl2ZUltYWdlUHRyJiBu
YXRpdmVJbWFnZSkKK3sKKyAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBoYW5kbGU7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShoYW5kbGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBhdXRvIGJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGhhbmRsZSk7CisgICAgaWYg
KCFiaXRtYXApCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gaW1hZ2UgPSBiaXRt
YXAtPmNyZWF0ZUltYWdlKCk7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgbmF0aXZlSW1hZ2UgPSBpbWFnZS0+bmF0aXZlSW1hZ2UoKTsKKyAgICBpZiAoIW5h
dGl2ZUltYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30K
Kworc3RhdGljIHZvaWQgZW5jb2RlT3B0aW9uYWxOYXRpdmVJbWFnZShFbmNvZGVyJiBlbmNvZGVy
LCBOYXRpdmVJbWFnZVB0ciBpbWFnZSkKK3sKKyAgICBib29sIGhhc0ltYWdlID0gISFpbWFnZTsK
KyAgICBlbmNvZGVyIDw8IGhhc0ltYWdlOworCisgICAgaWYgKGhhc0ltYWdlKQorICAgICAgICBl
bmNvZGVOYXRpdmVJbWFnZShlbmNvZGVyLCBpbWFnZSk7Cit9CisKK3N0YXRpYyBib29sIGRlY29k
ZU9wdGlvbmFsTmF0aXZlSW1hZ2UoRGVjb2RlciYgZGVjb2RlciwgTmF0aXZlSW1hZ2VQdHImIGlt
YWdlKQoreworICAgIGltYWdlID0gbnVsbHB0cjsKKworICAgIGJvb2wgaGFzSW1hZ2U7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShoYXNJbWFnZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGlmICghaGFzSW1hZ2UpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJuIGRl
Y29kZU5hdGl2ZUltYWdlKGRlY29kZXIsIGltYWdlKTsKK30KKwordm9pZCBBcmd1bWVudENvZGVy
PE5hdGl2ZUltYWdlSGFuZGxlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IE5hdGl2
ZUltYWdlSGFuZGxlJiBpbWFnZUhhbmRsZSkKK3sKKyAgICBlbmNvZGVPcHRpb25hbE5hdGl2ZUlt
YWdlKGVuY29kZXIsIGltYWdlSGFuZGxlLmltYWdlLmdldCgpKTsKK30KKworYm9vbCBBcmd1bWVu
dENvZGVyPE5hdGl2ZUltYWdlSGFuZGxlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE5hdGl2
ZUltYWdlSGFuZGxlJiBpbWFnZUhhbmRsZSkKK3sKKyAgICByZXR1cm4gZGVjb2RlT3B0aW9uYWxO
YXRpdmVJbWFnZShkZWNvZGVyLCBpbWFnZUhhbmRsZS5pbWFnZSk7Cit9CisKICNpZiAhUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKIHZvaWQgQXJndW1lbnRDb2RlcjxDdXJzb3I+OjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlciwgY29uc3QgQ3Vyc29yJiBjdXJzb3IpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDVhZGZjZmI2YzIzM2Y0ZDk5NDhhNjhh
MjkyNzNkYmM3NjJlNGI5M2MuLjFkZTMwNDJjMDc5MTY1YTFkMjVhNmY0YjU4ZDY2MDlhNjU2NjAy
ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBA
IC04OSw2ICs4OSw3IEBAIGNsYXNzIEtleWZyYW1lVmFsdWVMaXN0OwogY2xhc3MgTGF5b3V0U2l6
ZTsKIGNsYXNzIExheW91dFBvaW50OwogY2xhc3MgTGluZWFyVGltaW5nRnVuY3Rpb247CitjbGFz
cyBOYXRpdmVJbWFnZUhhbmRsZTsKIGNsYXNzIE5vdGlmaWNhdGlvbjsKIGNsYXNzIFBhc3RlYm9h
cmRDdXN0b21EYXRhOwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwpAQCAtMzgzLDYgKzM4NCwxMSBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkltYWdlSGFuZGxlPiB7
CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpJbWFnZUhhbmRsZSYp
OwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpOYXRpdmVJ
bWFnZUhhbmRsZT4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6TmF0aXZlSW1hZ2VIYW5kbGUmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2Rl
ciYsIFdlYkNvcmU6Ok5hdGl2ZUltYWdlSGFuZGxlJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdD4gewogICAgIHN0YXRpYyB2
b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CiAg
ICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
KTsK
</data>
<flag name="review"
          id="401380"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>385630</attachid>
            <date>2019-12-13 12:24:49 -0800</date>
            <delta_ts>2019-12-13 13:22:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205200-20191213122448.patch</filename>
            <type>text/plain</type>
            <size>14370</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2M3Mzg2NjFjYTQ3YTFh
N2YzYzhmN2Q4MzM0MzNjMTRmNTEyNmRhMC4uMjcxZjc2YWFiMmE5YmMzZWU2MmJkNzE4ZjdlZmQ1
N2QyMjRhNDJjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE5LTEyLTEyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBl
bmNvZGluZy9kZWNvZGluZyBmb3IgRGlzcGxheUxpc3Q6OkRyYXdOYXRpdmVJbWFnZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1MjAwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEltcGxlbWVudHMgYmFzaWMg
ZW5jb2RpbmcgYW5kIGRlY29kaW5nIGZvciB0aGUgRHJhd05hdGl2ZUltYWdlIGRyYXdpbmcgaXRl
bSwgc3VjaCB0aGF0IGl0IGNhbiBiZSBzZW50IGFuZAorICAgICAgICByZXBsYXllZCBpbiB0aGUg
R1BVIHByb2Nlc3MuIFNlZSBXZWJLaXQgQ2hhbmdlTG9ncyBmb3IgbW9yZSBkZXRhaWxzLiBFdmVu
dHVhbGx5LCB3ZSBzaG91bGQgYXZvaWQgY2FsbGluZyBpbnRvCisgICAgICAgIGRyYXdOYXRpdmVJ
bWFnZSBpbiB0aGUgd2ViIHByb2Nlc3MgYWx0b2dldGhlciwgYnV0IGZvciBub3csIGJvdGggRHJh
d05hdGl2ZUltYWdlIGFuZCBEcmF3SW1hZ2UgZHJhd2luZyBpdGVtcworICAgICAgICByZWx5IG9u
IGRyYXdpbmcgbmF0aXZlIGltYWdlcyBpbnRvIEltYWdlQnVmZmVycy4gU2VlOiA8aHR0cHM6Ly93
ZWJraXQub3JnL2IvMjA1MjEzPi4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL05hdGl2
ZUltYWdlLmg6CisKKyAgICAgICAgQWRkIGEgTmF0aXZlSW1hZ2VIYW5kbGUgd3JhcHBlciBhcm91
bmQgYSBOYXRpdmVJbWFnZVB0ciB0byBtYWtlIGl0IHNpbXBsZXIgdG8gZGVjb2RlIGFuZCBlbmNv
ZGUgTmF0aXZlSW1hZ2VQdHJzCisgICAgICAgIHVzaW5nIDw8IGFuZCA+PiBvcGVyYXRvcnMuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVt
cy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3TmF0aXZlSW1h
Z2U6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd05h
dGl2ZUltYWdlOjpkZWNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW06
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbTo6ZGVj
b2RlKToKKwogMjAxOS0xMi0xMiAgSmFjayBMZWUgIDxzaGloY2hpZWhfbGVlQGFwcGxlLmNvbT4K
IAogICAgICAgICBQcm90ZWN0IGxpZmV0aW1lIG9mIGZyYW1lIGFuZCBmcmFtZVZpZXcgb2JqZWN0
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA3NTczMTZiOGZiMzZiZTVlNDljMjQ1ZjY2Y2M3OWI2MzRmYzAyYWIzLi44
NzEyNjZiMDNjOWQyMzQ0N2Y5NTVkMWRiMmVjYTdhNDdmMzkwOTZlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMwIEBACisyMDE5LTEyLTEyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgorCisgICAgICAgIEltcGxlbWVudCBlbmNvZGluZy9kZWNvZGluZyBmb3IgRGlzcGxheUxp
c3Q6OkRyYXdOYXRpdmVJbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA1MjAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgor
CisgICAgICAgIEFkZCBoZWxwZXIgZnVuY3Rpb25zIHRvIGVuY29kZSBhbmQgZGVjb2RlIE5hdGl2
ZUltYWdlUHRyIChSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gb24gQ29jb2EgcGxhdGZvcm1zKS4gVGhp
cworICAgICAgICBtaXJyb3JzIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBlbmNvZGluZyBhbmQgZGVj
b2RpbmcgZm9yIFdlYkNvcmU6OkltYWdlLCB3aGljaCBjcmVhdGUgYW5kIGRyYXdzIGludG8KKyAg
ICAgICAgU2hhcmVhYmxlQml0bWFwLCBhbmQgc2VuZCBhIGhhbmRsZSB0byB0aGUgZGF0YSBvdmVy
IElQQy4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAg
ICAgICAoSVBDOjplbmNvZGVJbWFnZSk6CisgICAgICAgIChJUEM6OmRlY29kZUltYWdlKToKKyAg
ICAgICAgKElQQzo6ZW5jb2RlTmF0aXZlSW1hZ2UpOgorICAgICAgICAoSVBDOjpkZWNvZGVOYXRp
dmVJbWFnZSk6CisKKyAgICAgICAgQWRkaXRpb25hbGx5IG1ha2UgSW1hZ2UgYW5kIE5hdGl2ZUlt
YWdlUHRyIGVuY29kaW5nIGFuZCBkZWNvZGluZyBoZWxwZXJzIGZhaWwgcXVpY2tseSBpbiB0aGUg
Y2FzZSB3aGVyZSB0aGUKKyAgICAgICAgU2hhcmVhYmxlQml0bWFwIGZhaWxlZCB0byBjcmVhdGUg
YSBncmFwaGljcyBjb250ZXh0IGJ5IGhhdmluZyB0aGUgZW5jb2RlciBpbmRpY2F0ZSB3aGV0aGVy
IGEgZ3JhcGhpY3MgY29udGV4dAorICAgICAgICB3YXMgY3JlYXRlZCwgYW5kIGhhdmluZyB0aGUg
ZGVjb2RlciBmYWlsIGlmIHRoZSBncmFwaGljcyBjb250ZXh0IGNvdWxkIG5vdCBiZSBjcmVhdGVk
LgorCisgICAgICAgIChJUEM6OmVuY29kZU9wdGlvbmFsTmF0aXZlSW1hZ2UpOgorICAgICAgICAo
SVBDOjpkZWNvZGVPcHRpb25hbE5hdGl2ZUltYWdlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxOYXRpdmVJbWFnZUhhbmRsZT46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50
Q29kZXI8TmF0aXZlSW1hZ2VIYW5kbGU+OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaDoKKwogMjAxOS0xMi0xMiAgUGVyIEFybmUgVm9sbGFuICA8cHZv
bGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRkIHNhbmRib3ggdGVsZW1ldHJ5IHRv
IG1hY2ggbG9va3VwIHJ1bGVzIGluIHRoZSBXZWJDb250ZW50IHByb2Nlc3MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5oCmluZGV4IDhlM2FlMjE2NjBj
NTRkMzU3MGFjMmRiMTNhNmI1YjVjYjNjYjdlZjQuLmY1ZGZlNDc1Nzk5NGM2OWFlMzQyMGEzNTRk
ZjY4YzVhNjZhNjAxNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL05hdGl2ZUltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TmF0aXZlSW1hZ2UuaApAQCAtNjEsMTEgKzYxLDE2IEBAIHR5cGVkZWYgUmVmUHRyPGNhaXJvX3N1
cmZhY2VfdD4gTmF0aXZlSW1hZ2VQdHI7CiB0eXBlZGVmIFJlZlB0cjxTaGFyZWRCaXRtYXA+IE5h
dGl2ZUltYWdlUHRyOwogI2VuZGlmCiAKLUludFNpemUgbmF0aXZlSW1hZ2VTaXplKGNvbnN0IE5h
dGl2ZUltYWdlUHRyJik7CitXRUJDT1JFX0VYUE9SVCBJbnRTaXplIG5hdGl2ZUltYWdlU2l6ZShj
b25zdCBOYXRpdmVJbWFnZVB0ciYpOwogYm9vbCBuYXRpdmVJbWFnZUhhc0FscGhhKGNvbnN0IE5h
dGl2ZUltYWdlUHRyJik7CiBDb2xvciBuYXRpdmVJbWFnZVNpbmdsZVBpeGVsU29saWRDb2xvcihj
b25zdCBOYXRpdmVJbWFnZVB0ciYpOwogCiB2b2lkIGRyYXdOYXRpdmVJbWFnZShjb25zdCBOYXRp
dmVJbWFnZVB0ciYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZs
b2F0UmVjdCYsIGNvbnN0IEludFNpemUmLCBjb25zdCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpOwog
dm9pZCBjbGVhck5hdGl2ZUltYWdlU3ViaW1hZ2VzKGNvbnN0IE5hdGl2ZUltYWdlUHRyJik7CisK
K2NsYXNzIE5hdGl2ZUltYWdlSGFuZGxlIHsKK3B1YmxpYzoKKyAgICBOYXRpdmVJbWFnZVB0ciBp
bWFnZTsKK307CiAgICAgCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5jcHAKaW5k
ZXggYzkwZWVhMzU2ZmQzNmJjNGMzZTcwNjliMmU3NDc4MDI0M2Y4Y2U3OS4uMDRhYjhjZWE5YjBl
OTllZWIyOTg0MjQwNmNjMjIyNjc5NzA5MTBmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmNwcApAQCAtNjY4LDcgKzY2OCw3IEBAIERyYXdOYXRpdmVJbWFnZTo6RHJhd05hdGl2
ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3QgRmxvYXRTaXplJiBpCiAg
ICAgLCBtX2ltYWdlKGltYWdlKQogI2VuZGlmCiAgICAgLCBtX2ltYWdlU2l6ZShpbWFnZVNpemUp
Ci0gICAgLCBtX2Rlc3RpbmF0aW9uKGRlc3RSZWN0KQorICAgICwgbV9kZXN0aW5hdGlvblJlY3Qo
ZGVzdFJlY3QpCiAgICAgLCBtX3NyY1JlY3Qoc3JjUmVjdCkKICAgICAsIG1fb3B0aW9ucyhvcHRp
b25zKQogewpAQCAtNjc3LDEwICs2NzcsMTIgQEAgRHJhd05hdGl2ZUltYWdlOjpEcmF3TmF0aXZl
SW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBGbG9hdFNpemUmIGkKICNl
bmRpZgogfQogCitEcmF3TmF0aXZlSW1hZ2U6On5EcmF3TmF0aXZlSW1hZ2UoKSA9IGRlZmF1bHQ7
CisKIHZvaWQgRHJhd05hdGl2ZUltYWdlOjphcHBseShHcmFwaGljc0NvbnRleHQmIGNvbnRleHQp
IGNvbnN0CiB7CiAjaWYgVVNFKENHKQotICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKG1faW1h
Z2UsIG1faW1hZ2VTaXplLCBtX2Rlc3RpbmF0aW9uLCBtX3NyY1JlY3QsIG1fb3B0aW9ucyk7Cisg
ICAgY29udGV4dC5kcmF3TmF0aXZlSW1hZ2UobV9pbWFnZSwgbV9pbWFnZVNpemUsIG1fZGVzdGlu
YXRpb25SZWN0LCBtX3NyY1JlY3QsIG1fb3B0aW9ucyk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJB
TShjb250ZXh0KTsKICNlbmRpZgpAQCAtNjkxLDcgKzY5Myw3IEBAIHN0YXRpYyBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBEcmF3TmF0aXZlSW1hZ2UmIGl0ZW0p
CiAgICAgdHMgPDwgc3RhdGljX2Nhc3Q8Y29uc3QgRHJhd2luZ0l0ZW0mPihpdGVtKTsKICAgICAv
LyBGSVhNRTogZHVtcCBtb3JlIHN0dWZmLgogICAgIHRzLmR1bXBQcm9wZXJ0eSgic291cmNlLXJl
Y3QiLCBpdGVtLnNvdXJjZSgpKTsKLSAgICB0cy5kdW1wUHJvcGVydHkoImRlc3QtcmVjdCIsIGl0
ZW0uZGVzdGluYXRpb24oKSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJkZXN0LXJlY3QiLCBpdGVt
LmRlc3RpbmF0aW9uUmVjdCgpKTsKICAgICByZXR1cm4gdHM7CiB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdEl0ZW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RJdGVtcy5oCmluZGV4IDZkNDNlODRkYmM2YjMzNWZhZmU5MDNmYTIwNjRh
ZDVkNjRkNjljZmIuLjNiZTRlOWJlNjNlMDExOWI0MDI3ZGI2YWIxNTE5Y2M5NDU0MjI0MDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdEl0ZW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaApAQCAtMTMyOSwyNCArMTMyOSw4MCBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERyYXdOYXRpdmVJbWFnZShpbWFn
ZSwgaW1hZ2VTaXplLCBkZXN0UmVjdCwgc3JjUmVjdCwgb3B0aW9ucykpOwogICAgIH0KIAorICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfkRyYXdOYXRpdmVJbWFnZSgpOworCiAgICAgRmxvYXRS
ZWN0IHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3JjUmVjdDsgfQotICAgIEZsb2F0UmVjdCBk
ZXN0aW5hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb247IH0KKyAgICBGbG9hdFJl
Y3QgZGVzdGluYXRpb25SZWN0KCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvblJlY3Q7IH0K
KworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25z
dDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UmVmPERyYXdO
YXRpdmVJbWFnZT4+IGRlY29kZShEZWNvZGVyJik7CiAKIHByaXZhdGU6Ci0gICAgRHJhd05hdGl2
ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiwgY29uc3QgRmxvYXRTaXplJiBzZWxmU2l6ZSwg
Y29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25z
dCBJbWFnZVBhaW50aW5nT3B0aW9ucyYpOworICAgIFdFQkNPUkVfRVhQT1JUIERyYXdOYXRpdmVJ
bWFnZShjb25zdCBOYXRpdmVJbWFnZVB0ciYsIGNvbnN0IEZsb2F0U2l6ZSYgc2VsZlNpemUsIGNv
bnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3Qg
SW1hZ2VQYWludGluZ09wdGlvbnMmKTsKIAogICAgIHZvaWQgYXBwbHkoR3JhcGhpY3NDb250ZXh0
JikgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBPcHRpb25hbDxGbG9hdFJlY3Q+IGxvY2FsQm91bmRz
KGNvbnN0IEdyYXBoaWNzQ29udGV4dCYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fZGVzdGlu
YXRpb247IH0KKyAgICBPcHRpb25hbDxGbG9hdFJlY3Q+IGxvY2FsQm91bmRzKGNvbnN0IEdyYXBo
aWNzQ29udGV4dCYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fZGVzdGluYXRpb25SZWN0OyB9
CiAKICNpZiBVU0UoQ0cpCi0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IG1faW1hZ2U7CisgICAg
TmF0aXZlSW1hZ2VQdHIgbV9pbWFnZTsKICNlbmRpZgogICAgIEZsb2F0U2l6ZSBtX2ltYWdlU2l6
ZTsKLSAgICBGbG9hdFJlY3QgbV9kZXN0aW5hdGlvbjsKKyAgICBGbG9hdFJlY3QgbV9kZXN0aW5h
dGlvblJlY3Q7CiAgICAgRmxvYXRSZWN0IG1fc3JjUmVjdDsKICAgICBJbWFnZVBhaW50aW5nT3B0
aW9ucyBtX29wdGlvbnM7CiB9OworCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBEcmF3
TmF0aXZlSW1hZ2U6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworI2lmIFVTRShD
RykKKyAgICBOYXRpdmVJbWFnZUhhbmRsZSBoYW5kbGUgeyBtX2ltYWdlIH07CisgICAgZW5jb2Rl
ciA8PCBoYW5kbGU7CisjZW5kaWYKKyAgICBlbmNvZGVyIDw8IG1faW1hZ2VTaXplOworICAgIGVu
Y29kZXIgPDwgbV9kZXN0aW5hdGlvblJlY3Q7CisgICAgZW5jb2RlciA8PCBtX3NyY1JlY3Q7Cisg
ICAgZW5jb2RlciA8PCBtX29wdGlvbnM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitP
cHRpb25hbDxSZWY8RHJhd05hdGl2ZUltYWdlPj4gRHJhd05hdGl2ZUltYWdlOjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKK3sKKyNpZiBVU0UoQ0cpCisgICAgT3B0aW9uYWw8TmF0aXZlSW1hZ2VI
YW5kbGU+IGhhbmRsZTsKKyAgICBkZWNvZGVyID4+IGhhbmRsZTsKKyAgICBpZiAoIWhhbmRsZSkK
KyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyNlbmRpZgorCisgICAgT3B0aW9uYWw8Rmxv
YXRTaXplPiBpbWFnZVNpemU7CisgICAgZGVjb2RlciA+PiBpbWFnZVNpemU7CisgICAgaWYgKCFp
bWFnZVNpemUpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25hbDxG
bG9hdFJlY3Q+IGRlc3RpbmF0aW9uUmVjdDsKKyAgICBkZWNvZGVyID4+IGRlc3RpbmF0aW9uUmVj
dDsKKyAgICBpZiAoIWRlc3RpbmF0aW9uUmVjdCkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKworICAgIE9wdGlvbmFsPEZsb2F0UmVjdD4gc3JjUmVjdDsKKyAgICBkZWNvZGVyID4+IHNy
Y1JlY3Q7CisgICAgaWYgKCFzcmNSZWN0KQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
CisgICAgT3B0aW9uYWw8SW1hZ2VQYWludGluZ09wdGlvbnM+IG9wdGlvbnM7CisgICAgZGVjb2Rl
ciA+PiBvcHRpb25zOworICAgIGlmICghb3B0aW9ucykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKKworI2lmIFVTRShDRykKKyAgICBOYXRpdmVJbWFnZVB0ciBpbWFnZSA9IGhhbmRsZS0+
aW1hZ2U7CisjZWxzZQorICAgIE5hdGl2ZUltYWdlUHRyIGltYWdlID0gbnVsbHB0cjsKKyNlbmRp
ZgorICAgIHJldHVybiBEcmF3TmF0aXZlSW1hZ2U6OmNyZWF0ZShpbWFnZSwgKmltYWdlU2l6ZSwg
KmRlc3RpbmF0aW9uUmVjdCwgKnNyY1JlY3QsICpvcHRpb25zKTsKK30KICNlbmRpZgogCiBjbGFz
cyBEcmF3UGF0dGVybiA6IHB1YmxpYyBEcmF3aW5nSXRlbSB7CkBAIC0yNjc5LDcgKzI3MzUsNyBA
QCB2b2lkIEl0ZW06OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgICAgICBicmVh
azsKICNpZiBVU0UoQ0cpIHx8IFVTRShDQUlSTykgfHwgVVNFKERJUkVDVDJEKQogICAgIGNhc2Ug
SXRlbVR5cGU6OkRyYXdOYXRpdmVJbWFnZToKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJEaXNwbGF5
TGlzdDo6SXRlbTo6ZW5jb2RlIGNhbm5vdCB5ZXQgZW5jb2RlIERyYXdOYXRpdmVJbWFnZSIpOwor
ICAgICAgICBlbmNvZGVyIDw8IGRvd25jYXN0PERyYXdOYXRpdmVJbWFnZT4oKnRoaXMpOwogICAg
ICAgICBicmVhazsKICNlbmRpZgogICAgIGNhc2UgSXRlbVR5cGU6OkRyYXdQYXR0ZXJuOgpAQCAt
Mjg1OSw3ICsyOTE1LDggQEAgT3B0aW9uYWw8UmVmPEl0ZW0+PiBJdGVtOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlcikKICAgICAgICAgYnJlYWs7CiAjaWYgVVNFKENHKSB8fCBVU0UoQ0FJUk8pIHx8
IFVTRShESVJFQ1QyRCkKICAgICBjYXNlIEl0ZW1UeXBlOjpEcmF3TmF0aXZlSW1hZ2U6Ci0gICAg
ICAgIFdURkxvZ0Fsd2F5cygiRGlzcGxheUxpc3Q6Okl0ZW06OmRlY29kZSBjYW5ub3QgeWV0IGRl
Y29kZSBEcmF3TmF0aXZlSW1hZ2UiKTsKKyAgICAgICAgaWYgKGF1dG8gaXRlbSA9IERyYXdOYXRp
dmVJbWFnZTo6ZGVjb2RlKGRlY29kZXIpKQorICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19yZWZl
cmVuY2VfY2FzdDxJdGVtPihXVEZNb3ZlKCppdGVtKSk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlm
CiAgICAgY2FzZSBJdGVtVHlwZTo6RHJhd1BhdHRlcm46CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAxYTk3ZmZhZDJmODQ4ZDQ1MmU3MGYz
M2Y1MzFiMDE1N2ExNmRmN2ExLi4wNTRlMmI5NDM0NDc5ZWZjZGRjMjYzNmIwNDBlMTRhYzk5Y2Ji
YTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAKQEAgLTU3LDYgKzU3LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0xlbmd0aC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTGVuZ3RoQm94Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlbGVjdGlv
bk9wdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTmF0aXZlSW1hZ2UuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Bhc3RlYm9hcmQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Byb21pc2VkQXR0YWNobWVudEluZm8uaD4KQEAgLTk4MSw4ICs5ODIs
MTEgQEAgc3RhdGljIHZvaWQgZW5jb2RlSW1hZ2UoRW5jb2RlciYgZW5jb2RlciwgSW1hZ2UmIGlt
YWdlKQogewogICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IFNoYXJlYWJsZUJp
dG1hcDo6Y3JlYXRlU2hhcmVhYmxlKEludFNpemUoaW1hZ2Uuc2l6ZSgpKSwgeyB9KTsKICAgICBh
dXRvIGdyYXBoaWNzQ29udGV4dCA9IGJpdG1hcC0+Y3JlYXRlR3JhcGhpY3NDb250ZXh0KCk7Ci0g
ICAgaWYgKGdyYXBoaWNzQ29udGV4dCkKLSAgICAgICAgZ3JhcGhpY3NDb250ZXh0LT5kcmF3SW1h
Z2UoaW1hZ2UsIEludFBvaW50KCkpOworICAgIGVuY29kZXIgPDwgISFncmFwaGljc0NvbnRleHQ7
CisgICAgaWYgKCFncmFwaGljc0NvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIGdyYXBo
aWNzQ29udGV4dC0+ZHJhd0ltYWdlKGltYWdlLCBJbnRQb2ludCgpKTsKIAogICAgIFNoYXJlYWJs
ZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKICAgICBiaXRtYXAtPmNyZWF0ZUhhbmRsZShoYW5kbGUp
OwpAQCAtOTkyLDYgKzk5NiwxMSBAQCBzdGF0aWMgdm9pZCBlbmNvZGVJbWFnZShFbmNvZGVyJiBl
bmNvZGVyLCBJbWFnZSYgaW1hZ2UpCiAKIHN0YXRpYyBib29sIGRlY29kZUltYWdlKERlY29kZXIm
IGRlY29kZXIsIFJlZlB0cjxJbWFnZT4mIGltYWdlKQogeworICAgIE9wdGlvbmFsPGJvb2w+IGRp
ZENyZWF0ZUdyYXBoaWNzQ29udGV4dDsKKyAgICBkZWNvZGVyID4+IGRpZENyZWF0ZUdyYXBoaWNz
Q29udGV4dDsKKyAgICBpZiAoIWRpZENyZWF0ZUdyYXBoaWNzQ29udGV4dC5oYXNWYWx1ZSgpIHx8
ICFkaWRDcmVhdGVHcmFwaGljc0NvbnRleHQudmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCiAgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgaGFuZGxlOwogICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUoaGFuZGxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTA0MCw2ICsxMDQ5
LDgyIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxJbWFnZUhhbmRsZT46OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyLCBJbWFnZUhhbmRsZSYgaW1hZ2VIYW5kCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3N0
YXRpYyB2b2lkIGVuY29kZU5hdGl2ZUltYWdlKEVuY29kZXImIGVuY29kZXIsIE5hdGl2ZUltYWdl
UHRyIGltYWdlKQoreworICAgIGF1dG8gaW1hZ2VTaXplID0gbmF0aXZlSW1hZ2VTaXplKGltYWdl
KTsKKyAgICBhdXRvIGJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlU2hhcmVhYmxlKGlt
YWdlU2l6ZSwgeyB9KTsKKyAgICBhdXRvIGdyYXBoaWNzQ29udGV4dCA9IGJpdG1hcC0+Y3JlYXRl
R3JhcGhpY3NDb250ZXh0KCk7CisgICAgZW5jb2RlciA8PCAhIWdyYXBoaWNzQ29udGV4dDsKKyAg
ICBpZiAoIWdyYXBoaWNzQ29udGV4dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZ3JhcGhpY3ND
b250ZXh0LT5kcmF3TmF0aXZlSW1hZ2UoaW1hZ2UsIHsgfSwgRmxvYXRSZWN0KHsgfSwgaW1hZ2VT
aXplKSwgRmxvYXRSZWN0KHsgfSwgaW1hZ2VTaXplKSk7CisKKyAgICBTaGFyZWFibGVCaXRtYXA6
OkhhbmRsZSBoYW5kbGU7CisgICAgYml0bWFwLT5jcmVhdGVIYW5kbGUoaGFuZGxlKTsKKworICAg
IGVuY29kZXIgPDwgaGFuZGxlOworfQorCitzdGF0aWMgYm9vbCBkZWNvZGVOYXRpdmVJbWFnZShE
ZWNvZGVyJiBkZWNvZGVyLCBOYXRpdmVJbWFnZVB0ciYgbmF0aXZlSW1hZ2UpCit7CisgICAgT3B0
aW9uYWw8Ym9vbD4gZGlkQ3JlYXRlR3JhcGhpY3NDb250ZXh0OworICAgIGRlY29kZXIgPj4gZGlk
Q3JlYXRlR3JhcGhpY3NDb250ZXh0OworICAgIGlmICghZGlkQ3JlYXRlR3JhcGhpY3NDb250ZXh0
Lmhhc1ZhbHVlKCkgfHwgIWRpZENyZWF0ZUdyYXBoaWNzQ29udGV4dC52YWx1ZSgpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBoYW5kbGU7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYW5kbGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBhdXRvIGJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGhhbmRsZSk7CisgICAg
aWYgKCFiaXRtYXApCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8gaW1hZ2UgPSBi
aXRtYXAtPmNyZWF0ZUltYWdlKCk7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgbmF0aXZlSW1hZ2UgPSBpbWFnZS0+bmF0aXZlSW1hZ2UoKTsKKyAgICBpZiAo
IW5hdGl2ZUltYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworc3RhdGljIHZvaWQgZW5jb2RlT3B0aW9uYWxOYXRpdmVJbWFnZShFbmNvZGVyJiBlbmNv
ZGVyLCBOYXRpdmVJbWFnZVB0ciBpbWFnZSkKK3sKKyAgICBib29sIGhhc0ltYWdlID0gISFpbWFn
ZTsKKyAgICBlbmNvZGVyIDw8IGhhc0ltYWdlOworCisgICAgaWYgKGhhc0ltYWdlKQorICAgICAg
ICBlbmNvZGVOYXRpdmVJbWFnZShlbmNvZGVyLCBpbWFnZSk7Cit9CisKK3N0YXRpYyBib29sIGRl
Y29kZU9wdGlvbmFsTmF0aXZlSW1hZ2UoRGVjb2RlciYgZGVjb2RlciwgTmF0aXZlSW1hZ2VQdHIm
IGltYWdlKQoreworICAgIGltYWdlID0gbnVsbHB0cjsKKworICAgIGJvb2wgaGFzSW1hZ2U7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNJbWFnZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGlmICghaGFzSW1hZ2UpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgcmV0dXJu
IGRlY29kZU5hdGl2ZUltYWdlKGRlY29kZXIsIGltYWdlKTsKK30KKwordm9pZCBBcmd1bWVudENv
ZGVyPE5hdGl2ZUltYWdlSGFuZGxlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IE5h
dGl2ZUltYWdlSGFuZGxlJiBpbWFnZUhhbmRsZSkKK3sKKyAgICBlbmNvZGVPcHRpb25hbE5hdGl2
ZUltYWdlKGVuY29kZXIsIGltYWdlSGFuZGxlLmltYWdlLmdldCgpKTsKK30KKworYm9vbCBBcmd1
bWVudENvZGVyPE5hdGl2ZUltYWdlSGFuZGxlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE5h
dGl2ZUltYWdlSGFuZGxlJiBpbWFnZUhhbmRsZSkKK3sKKyAgICByZXR1cm4gZGVjb2RlT3B0aW9u
YWxOYXRpdmVJbWFnZShkZWNvZGVyLCBpbWFnZUhhbmRsZS5pbWFnZSk7Cit9CisKICNpZiAhUExB
VEZPUk0oSU9TX0ZBTUlMWSkKIHZvaWQgQXJndW1lbnRDb2RlcjxDdXJzb3I+OjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgQ3Vyc29yJiBjdXJzb3IpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDVhZGZjZmI2YzIzM2Y0ZDk5NDhh
NjhhMjkyNzNkYmM3NjJlNGI5M2MuLjFkZTMwNDJjMDc5MTY1YTFkMjVhNmY0YjU4ZDY2MDlhNjU2
NjAyZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
CkBAIC04OSw2ICs4OSw3IEBAIGNsYXNzIEtleWZyYW1lVmFsdWVMaXN0OwogY2xhc3MgTGF5b3V0
U2l6ZTsKIGNsYXNzIExheW91dFBvaW50OwogY2xhc3MgTGluZWFyVGltaW5nRnVuY3Rpb247Citj
bGFzcyBOYXRpdmVJbWFnZUhhbmRsZTsKIGNsYXNzIE5vdGlmaWNhdGlvbjsKIGNsYXNzIFBhc3Rl
Ym9hcmRDdXN0b21EYXRhOwogY2xhc3MgUHJvdGVjdGlvblNwYWNlOwpAQCAtMzgzLDYgKzM4NCwx
MSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkltYWdlSGFuZGxl
PiB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpJbWFnZUhhbmRs
ZSYpOwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpOYXRp
dmVJbWFnZUhhbmRsZT4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3Qg
V2ViQ29yZTo6TmF0aXZlSW1hZ2VIYW5kbGUmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVj
b2RlciYsIFdlYkNvcmU6Ok5hdGl2ZUltYWdlSGFuZGxlJik7Cit9OworCiB0ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdD4gewogICAgIHN0YXRp
YyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7
CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>