<?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>126056</bug_id>
          
          <creation_ts>2013-12-19 23:43:56 -0800</creation_ts>
          <short_desc>Get rid of USE(IOSURFACE_CANVAS_BACKING_STORE)</short_desc>
          <delta_ts>2024-09-05 05:27:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Canvas</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>InRadar</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="Anne van Kesteren">annevk</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>krit</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>961761</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-19 23:43:56 -0800</bug_when>
    <thetext>PLATFORM(MAC) should use ENABLE(ACCELERATED_2D_CANVAS) to indicate that it will use an accelerated backing store for Canvas2D, just like all the other platforms.

It should *not* have its own separate and oddly named/placed USE().

I have a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961762</commentid>
    <comment_count>1</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-19 23:45:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/15705228&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961773</commentid>
    <comment_count>2</comment_count>
      <attachid>219736</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-20 00:33:10 -0800</bug_when>
    <thetext>Created attachment 219736
patch

I would like a review specifically from Simon for this one since he was just working in this area today and it&apos;s slightly wacky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961779</commentid>
    <comment_count>3</comment_count>
      <attachid>219736</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-20 00:56:36 -0800</bug_when>
    <thetext>Comment on attachment 219736
patch

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

&gt; Source/WebCore/html/HTMLCanvasElement.cpp:375
&gt; +    auto compositingStrategy = canvasCompositingStrategy(*renderer());

This probably needs a USE(ACCELERATED_COMPOSITING) check and a renderer null check of some sort.

Also I wonder if canvasCompositingStrategy should be checking renderBox()-&gt;hasAcceleratedCompositing() in the !PLATFORM(MAC) case, because I&apos;m not sure the non-Mac ports can have accelerated canvas if the renderer doesn&apos;t have a compositing layer (which Mac can do).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961895</commentid>
    <comment_count>4</comment_count>
      <attachid>219736</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-12-20 09:22:17 -0800</bug_when>
    <thetext>Comment on attachment 219736
patch

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

What about the WebKits prefs?

Please don&apos;t land this yet. I need to think about some parts when more awake.

&gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:1374
&gt; +#if ENABLE(ACCELERATED_2D_CANVAS) &amp;&amp; !PLATFORM(MAC) // mac doesn&apos;t need this because.... ?

Yeah, tricky. Would have to look at ImageBufferCG(Data) to see what&apos;s going on here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961932</commentid>
    <comment_count>5</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2013-12-20 11:25:58 -0800</bug_when>
    <thetext>This has repercussions for https://bugs.webkit.org/show_bug.cgi?id=125477 (in-flight) as well</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961993</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-20 12:17:46 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 219736 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=219736&amp;action=review
&gt; 
&gt; What about the WebKits prefs?

What do the WebKit prefs have to do with what&apos;s compiled in? Anyway, they already have the right name.

&gt; Please don&apos;t land this yet. I need to think about some parts when more awake.

Yup.

&gt; &gt; Source/WebCore/html/canvas/CanvasRenderingContext2D.cpp:1374
&gt; &gt; +#if ENABLE(ACCELERATED_2D_CANVAS) &amp;&amp; !PLATFORM(MAC) // mac doesn&apos;t need this because.... ?
&gt; 
&gt; Yeah, tricky. Would have to look at ImageBufferCG(Data) to see what&apos;s going on here.

Yeah. We&apos;ll think about this more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961994</commentid>
    <comment_count>7</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-20 12:18:11 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; This has repercussions for https://bugs.webkit.org/show_bug.cgi?id=125477 (in-flight) as well

Besides merging repercussions, I don&apos;t think so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961999</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-20 12:25:01 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 219736 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=219736&amp;action=review
&gt; 
&gt; What about the WebKits prefs?

Simon points out canvasUsesAcceleratedDrawing and accelerated2dCanvasEnabled both exist in WebKit1. Since there&apos;s no reason historically that anyone would have used accelerated2dCanvasEnabled but canvasUsesAcceleratedDrawing is more likely, we should get rid of accelerated2dCanvasEnabled.

This is somewhat tangential since we choose the right preference in HTMLCanvasElement::shouldAccelerate, in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997930</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2014-04-05 13:57:08 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 219736 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=219736&amp;action=review
&gt; &gt; 
&gt; &gt; What about the WebKits prefs?
&gt; 
&gt; Simon points out canvasUsesAcceleratedDrawing and accelerated2dCanvasEnabled both exist in WebKit1. Since there&apos;s no reason historically that anyone would have used accelerated2dCanvasEnabled but canvasUsesAcceleratedDrawing is more likely, we should get rid of accelerated2dCanvasEnabled.
&gt; 
&gt; This is somewhat tangential since we choose the right preference in HTMLCanvasElement::shouldAccelerate, in this patch.

Any update on this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997942</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-04-05 15:01:11 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Any update on this patch?

No, IIRC it got confusing and I had other things to do :) You&apos;re welcome to pick it up but there is a high likelihood of breaking something even with care taken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2057498</commentid>
    <comment_count>11</comment_count>
    <who name="Anne van Kesteren">annevk</who>
    <bug_when>2024-09-04 00:46:18 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/33108</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2057873</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-09-05 05:27:09 -0700</bug_when>
    <thetext>Committed 283201@main (b45e213003d3): &lt;https://commits.webkit.org/283201@main&gt;

Reviewed commits have been landed. Closing PR #33108 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219736</attachid>
            <date>2013-12-20 00:33:10 -0800</date>
            <delta_ts>2013-12-20 09:22:17 -0800</delta_ts>
            <desc>patch</desc>
            <filename>canvasdefine.diff</filename>
            <type>text/plain</type>
            <size>24481</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGJiZjU5YzkuLjI5ZjU1MDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTEyLTIwICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEdldCByaWQgb2YgVVNFKElPU1VS
RkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNjA1NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTU3MDUy
Mjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgRW5hYmxlIEFD
Q0VMRVJBVEVEXzJEX0NBTlZBUy4KKwogMjAxMy0xMi0xOSAgSm9zZXBoIFBlY29yYXJvICA8cGVj
b3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEFkZCBJbnNwZWN0b3JG
cm9udGVuZEhvc3QuZGVidWdnYWJsZVR5cGUgdG8gbGV0IHRoZSBmcm9udGVuZCBrbm93IGl0J3Mg
YmFja2VuZCBpcyBKYXZhU2NyaXB0IG9yIFdlYgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCmluZGV4
IDY3NjlhYzIuLjM0YWZmMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25m
aWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTMyLDcgKzMy
LDcgQEAKIC8vIFNldCBhbnkgRU5BQkxFX0ZFQVRVUkVfTkFNRSBtYWNybyB0byBhbiBlbXB0eSBz
dHJpbmcgdG8gZGlzYWJsZSB0aGF0IGZlYXR1cmUuCiAKIEVOQUJMRV8zRF9SRU5ERVJJTkcgPSBF
TkFCTEVfM0RfUkVOREVSSU5HOwotRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyA9IDsKK0VO
QUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMgPSBFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFT
OwogRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORyA9ICQoRU5BQkxFX0FDQ0VM
RVJBVEVEX09WRVJGTE9XX1NDUk9MTElOR18kKFBMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9BQ0NF
TEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkdfaXBob25lb3MgPSBFTkFCTEVfQUNDRUxFUkFURURf
T1ZFUkZMT1dfU0NST0xMSU5HOwogRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElO
R19pcGhvbmVzaW11bGF0b3IgPSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJ
TkdfaXBob25lb3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU0ZmNhMzkuLjI2MzQzNDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw2MSBAQAorMjAxMy0xMi0yMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9u
QGFwcGxlLmNvbT4KKworICAgICAgICBHZXQgcmlkIG9mIFVTRShJT1NVUkZBQ0VfQ0FOVkFTX0JB
Q0tJTkdfU1RPUkUpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjYwNTYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE1NzA1MjI4PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBjbGFyaXR5J3Mgc2Fr
ZSwgZ2V0IHJpZCBvZiBJT1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJTkdfU1RPUkUgYW5kIHVzZQorICAg
ICAgICBBQ0NFTEVSQVRFRF8yRF9DQU5WQVMgb24gTWFjIHRvIG1lYW4gdGhlIHNhbWUgdGhpbmcu
CisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAg
ICAgICAgRW5hYmxlIEFDQ0VMRVJBVEVEXzJEX0NBTlZBUy4KKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgUmVtb3ZlIHR3byBmaWxlcyBmcm9t
IHRoZSBYY29kZSBwcm9qZWN0IHdoaWNoIGFyZW4ndCBjdXJyZW50bHkgdXNlZCBieSBhbnl0aGlu
ZyBvbiBNYWMuCisKKyAgICAgICAgKiBodG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpjcmVhdGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIEdl
dCByaWQgb2YgSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFLgorCisgICAgICAgIChXZWJD
b3JlOjpIVE1MQ2FudmFzRWxlbWVudDo6cGFpbnRzSW50b0NhbnZhc0J1ZmZlcik6CisgICAgICAg
IERlZmVyIHRvIFJlbmRlckxheWVyQmFja2luZzo6Y2FudmFzQ29tcG9zaXRpbmdTdHJhdGVneSwg
YXMgaXQgaXMgdGhlCisgICAgICAgIG9ubHkgcGxhY2UgdGhhdCBzaG91bGQgZGVmaW5lIHRoaXMg
YmVoYXZpb3IuCisKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDYW52YXNFbGVtZW50OjpzaG91bGRB
Y2NlbGVyYXRlKToKKyAgICAgICAgU2hpZnQgYXJvdW5kIHRoaXMgZnVuY3Rpb24gdG8gZ2V0IHJp
ZCBvZiBJT1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJTkdfU1RPUkUuCisgICAgICAgIAorICAgICAgICAq
IGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6OmlzQWNjZWxlcmF0ZWQpOgorICAgICAgICAo
V2ViQ29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3SW1hZ2UpOgorICAgICAgICBH
ZXQgcmlkIG9mIElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRS4KKworICAgICAgICAoV2Vi
Q29yZTo6Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkaWREcmF3KToKKyAgICAgICAgT25seSB1
c2UgdGhlIGNvbnRlbnRDaGFuZ2VkKCkgYXBwcm9hY2ggaWYgd2UncmUgZGlyZWN0bHkgY29tcG9z
aXRpbmcKKyAgICAgICAgdGhlIGNhbnZhcyBiYWNraW5nIHN0b3JlIGluIGEgbGF5ZXIgKGkuZS4g
IVBMQVRGT1JNKE1BQykpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VC
dWZmZXJDRy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmNvcHlOYXRpdmVJbWFnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6cHV0Qnl0ZUFycmF5KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbWFnZUJ1ZmZlckRhdGE6OkltYWdlQnVmZmVyRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpJ
bWFnZUJ1ZmZlckRhdGE6OmdldERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXJE
YXRhOjpwdXREYXRhKToKKyAgICAgICAgVXNlIEFDQ0VMRVJBVEVEXzJEX0NBTlZBUyBpbnN0ZWFk
IG9mIElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRS4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNHLmg6CisgICAgICAgIEFjdHVhbGx5IGdldCBy
aWQgb2YgSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFLgorCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYW52YXNDb21w
b3NpdGluZ1N0cmF0ZWd5KToKKyAgICAgICAgU3dhcCBhcm91bmQgdGhlIGxvZ2ljIHRvIG1ha2Ug
dGhlIFBMQVRGT1JNKE1BQykgY2FzZSBmaXJzdCwgZXhwbGljaXRseSBleHBsYWluCisgICAgICAg
IGJvdGggYnJhbmNoZXMsIGFuZCBpbnRyb2R1Y2UgdGhlIGtub3dsZWRnZSB0aGF0IFBMQVRGT1JN
KE1BQykgZG9lc24ndCB1c2UgZGlyZWN0CisgICAgICAgIGNvbXBvc2l0aW5nIG9mIGNhbnZhcyBi
YWNraW5nIHN0b3JlIHRvIHRoaXMgZnVuY3Rpb24gKHByZXZpb3VzbHkgaXQgYXJyaXZlZAorICAg
ICAgICB2aWEgdGhlIEVOQUJMRS9VU0UgZmxhZ3MpLgorCiAyMDEzLTEyLTE5ICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENsYXJpZnkgdGhlIGJlaGF2
aW9yIG9mIGNvbXBvc2l0ZWQgY2FudmFzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYkNvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggNjc2OWFjMi4uMzRhZmYy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmlu
ZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKQEAgLTMyLDcgKzMyLDcgQEAKIC8vIFNldCBhbnkgRU5BQkxFX0ZFQVRV
UkVfTkFNRSBtYWNybyB0byBhbiBlbXB0eSBzdHJpbmcgdG8gZGlzYWJsZSB0aGF0IGZlYXR1cmUu
CiAKIEVOQUJMRV8zRF9SRU5ERVJJTkcgPSBFTkFCTEVfM0RfUkVOREVSSU5HOwotRU5BQkxFX0FD
Q0VMRVJBVEVEXzJEX0NBTlZBUyA9IDsKK0VOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMgPSBF
TkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTOwogRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9X
X1NDUk9MTElORyA9ICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElOR18kKFBM
QVRGT1JNX05BTUUpKTsKIEVOQUJMRV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkdfaXBo
b25lb3MgPSBFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HOwogRU5BQkxFX0FD
Q0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElOR19pcGhvbmVzaW11bGF0b3IgPSAkKEVOQUJMRV9B
Q0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkdfaXBob25lb3MpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRjYzU0MTguLmZj
ZjUxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTE0NTgsOCArMTQ1OCw2IEBACiAJCTQ5ODc3MERCMTI0MkM1MzUwMDIyMjZC
QSAvKiBEcmF3aW5nQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5ODc3MEMyMTI0MkM1MzUwMDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyLmNw
cCAqLzsgfTsKIAkJNDk4NzcwREMxMjQyQzUzNTAwMjIyNkJBIC8qIERyYXdpbmdCdWZmZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5ODc3MEMzMTI0
MkM1MzUwMDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyLmggKi87IH07CiAJCTQ5ODc3MEU5MTI0MkM1
MzUwMDIyMjZCQSAvKiBTaGFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQ5ODc3MEQwMTI0MkM1MzUwMDIyMjZCQSAvKiBTaGFkZXIuaCAqLzsgfTsK
LQkJNDk4NzcwRjAxMjQyQzUzNTAwMjIyNkJBIC8qIFRleHR1cmUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwRDcxMjQyQzUzNTAwMjIyNkJB
IC8qIFRleHR1cmUuY3BwICovOyB9OwotCQk0OTg3NzBGMTEyNDJDNTM1MDAyMjI2QkEgLyogVGV4
dHVyZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4
NzcwRDgxMjQyQzUzNTAwMjIyNkJBIC8qIFRleHR1cmUuaCAqLzsgfTsKIAkJNDk4NzcwRjIxMjQy
QzUzNTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwRDkxMjQyQzUzNTAwMjIyNkJBIC8qIFRpbGluZ0Rh
dGEuY3BwICovOyB9OwogCQk0OTg3NzBGMzEyNDJDNTM1MDAyMjI2QkEgLyogVGlsaW5nRGF0YS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk4NzcwREEx
MjQyQzUzNTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuaCAqLzsgfTsKIAkJNDk4NzcxNTMxMjQzRjlG
QTAwMjIyNkJBIC8qIERyYXdpbmdCdWZmZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTg3NzE1MjEyNDNGOUZBMDAyMjI2QkEgLyogRHJhd2lu
Z0J1ZmZlck1hYy5tbSAqLzsgfTsKQEAgLTgxOTUsOCArODE5Myw2IEBACiAJCTQ5ODc3MEMyMTI0
MkM1MzUwMDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IERyYXdpbmdCdWZmZXIuY3BwOyBwYXRoID0gZ3B1L0RyYXdpbmdCdWZm
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTg3NzBDMzEyNDJDNTM1MDAy
MjI2QkEgLyogRHJhd2luZ0J1ZmZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBEcmF3aW5nQnVmZmVyLmg7IHBhdGggPSBncHUvRHJhd2luZ0J1ZmZlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0OTg3NzBEMDEyNDJDNTM1MDAyMjI2QkEgLyogU2hhZGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFNoYWRlci5oOyBwYXRoID0gZ3B1L1No
YWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0OTg3NzBENzEyNDJDNTM1MDAy
MjI2QkEgLyogVGV4dHVyZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBUZXh0dXJlLmNwcDsgcGF0aCA9IGdwdS9UZXh0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJNDk4NzcwRDgxMjQyQzUzNTAwMjIyNkJBIC8qIFRleHR1cmUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVGV4dHVyZS5oOyBwYXRoID0gZ3B1L1RleHR1cmUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk4NzcwRDkxMjQyQzUzNTAwMjIyNkJB
IC8qIFRpbGluZ0RhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
VGlsaW5nRGF0YS5jcHA7IHBhdGggPSBncHUvVGlsaW5nRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQ5ODc3MERBMTI0MkM1MzUwMDIyMjZCQSAvKiBUaWxpbmdEYXRhLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRpbGluZ0RhdGEuaDsgcGF0aCA9IGdw
dS9UaWxpbmdEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5ODc3MTUyMTI0
M0Y5RkEwMDIyMjZCQSAvKiBEcmF3aW5nQnVmZmVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBuYW1lID0gRHJhd2luZ0J1ZmZlck1hYy5tbTsgcGF0aCA9IGdwdS9tYWMv
RHJhd2luZ0J1ZmZlck1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MTQ0
LDggKzE1MTQwLDYgQEAKIAkJCQk0OTg3NzBDMjEyNDJDNTM1MDAyMjI2QkEgLyogRHJhd2luZ0J1
ZmZlci5jcHAgKi8sCiAJCQkJNDk4NzcwQzMxMjQyQzUzNTAwMjIyNkJBIC8qIERyYXdpbmdCdWZm
ZXIuaCAqLywKIAkJCQk0OTg3NzBEMDEyNDJDNTM1MDAyMjI2QkEgLyogU2hhZGVyLmggKi8sCi0J
CQkJNDk4NzcwRDcxMjQyQzUzNTAwMjIyNkJBIC8qIFRleHR1cmUuY3BwICovLAotCQkJCTQ5ODc3
MEQ4MTI0MkM1MzUwMDIyMjZCQSAvKiBUZXh0dXJlLmggKi8sCiAJCQkJNDk4NzcwRDkxMjQyQzUz
NTAwMjIyNkJBIC8qIFRpbGluZ0RhdGEuY3BwICovLAogCQkJCTQ5ODc3MERBMTI0MkM1MzUwMDIy
MjZCQSAvKiBUaWxpbmdEYXRhLmggKi8sCiAJCQkpOwpAQCAtMjUxMTQsNyArMjUxMDgsNiBAQAog
CQkJCTk3NTlFOTQ2MTRFRjFDRjgwMDI2QTJERCAvKiBUZXh0VHJhY2tDdWVMaXN0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwNzY5NzA4NzE0NjNBRDg3MDBGNTAyQ0YgLyogVGV4dFRyYWNrTGlzdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjFBRDRFNzQxM0ExMkE0NjAwODQ2QjI3IC8qIFRleHRUcmFj
a0xvYWRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDk4NzcwRjExMjQyQzUzNTAwMjIyNkJBIC8q
IFRleHR1cmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3QkM4NEE1MTIzNzBEQzgwMDBDNjE2MSAv
KiBUZXh0Vmlld1NvdXJjZVBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFNjU4RkYwRUE5
MjQ4QTAwN0U0NTMzIC8qIFRoZW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0U2NTlFNjBFQTky
RkIyMDA3RTQ1MzMgLyogVGhlbWVNYWMuaCBpbiBIZWFkZXJzICovLApAQCAtMjgyNzEsNyArMjgy
NjQsNiBAQAogCQkJCTA3Njk3MDg2MTQ2M0FEODcwMEY1MDJDRiAvKiBUZXh0VHJhY2tMaXN0LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUIxQUQ0RTczMTNBMTJBNDYwMDg0NkIyNyAvKiBUZXh0VHJh
Y2tMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0QxRTczNDcxNjdCQzc4RTAwOUE4ODVE
IC8qIFRleHRUcmFja1JlcHJlc2VudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTQ5ODc3
MEYwMTI0MkM1MzUwMDIyMjZCQSAvKiBUZXh0dXJlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3
QkM4NEE0MTIzNzBEQzgwMDBDNjE2MSAvKiBUZXh0Vmlld1NvdXJjZVBhcnNlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQ0U2NUQzMjBFQUQxMjExMDA3RTQ1MzMgLyogVGhlbWUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkNFNjU5RTkwRUE5MkZGQTAwN0U0NTMzIC8qIFRoZW1lTWFjLm1tIGlu
IFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDYW52YXNF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCmlu
ZGV4IDJkZDg0NWEuLjliM2E3M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENhbnZhc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENhbnZhc0Vs
ZW1lbnQuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5o
IgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJIVE1MQ2FudmFzLmgiCisjaW5j
bHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5o
IgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSA8bWF0aC5oPgpAQCAtMjA5LDcgKzIx
MCw3IEBAIENhbnZhc1JlbmRlcmluZ0NvbnRleHQqIEhUTUxDYW52YXNFbGVtZW50OjpnZXRDb250
ZXh0KGNvbnN0IFN0cmluZyYgdHlwZSwgQ2FudmFzCiAgICAgICAgICAgICAgICAgdXNlc0Rhc2hi
YXJkQ29tcGF0aWJpbGl0eU1vZGUgPSBzZXR0aW5ncy0+dXNlc0Rhc2hib2FyZEJhY2t3YXJkQ29t
cGF0aWJpbGl0eU1vZGUoKTsKICNlbmRpZgogICAgICAgICAgICAgbV9jb250ZXh0ID0gQ2FudmFz
UmVuZGVyaW5nQ29udGV4dDJEOjpjcmVhdGUodGhpcywgZG9jdW1lbnQoKS5pblF1aXJrc01vZGUo
KSwgdXNlc0Rhc2hiYXJkQ29tcGF0aWJpbGl0eU1vZGUpOwotI2lmIFVTRShJT1NVUkZBQ0VfQ0FO
VkFTX0JBQ0tJTkdfU1RPUkUpIHx8IChFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAmJiBV
U0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpKQorI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9D
QU5WQVMpICYmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgICAgIC8vIE5l
ZWQgdG8gbWFrZSBzdXJlIGEgUmVuZGVyTGF5ZXIgYW5kIGNvbXBvc2l0aW5nIGxheWVyIGdldCBj
cmVhdGVkIGZvciB0aGUgQ2FudmFzCiAgICAgICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKFN5
bnRoZXRpY1N0eWxlQ2hhbmdlKTsKICNlbmRpZgpAQCAtMzcxLDIzICszNzIsMTAgQEAgZmxvYXQg
SFRNTENhbnZhc0VsZW1lbnQ6OnRhcmdldERldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKIAogYm9v
bCBIVE1MQ2FudmFzRWxlbWVudDo6cGFpbnRzSW50b0NhbnZhc0J1ZmZlcigpIGNvbnN0CiB7Ci0g
ICAgQVNTRVJUKG1fY29udGV4dCk7Ci0jaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19T
VE9SRSkKLSAgICBpZiAobV9jb250ZXh0LT5pczJkKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwot
I2VuZGlmCi0KLSNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCi0gICAgaWYgKCFtX2Nv
bnRleHQtPmlzQWNjZWxlcmF0ZWQoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAo
cmVuZGVyQm94KCkgJiYgcmVuZGVyQm94KCktPmhhc0FjY2VsZXJhdGVkQ29tcG9zaXRpbmcoKSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi0gICAgcmV0dXJuIHRydWU7CisgICAgYXV0
byBjb21wb3NpdGluZ1N0cmF0ZWd5ID0gY2FudmFzQ29tcG9zaXRpbmdTdHJhdGVneSgqcmVuZGVy
ZXIoKSk7CisgICAgcmV0dXJuIGNvbXBvc2l0aW5nU3RyYXRlZ3kgPT0gQ2FudmFzUGFpbnRlZFRv
TGF5ZXIgfHwgY29tcG9zaXRpbmdTdHJhdGVneSA9PSBVbmFjY2VsZXJhdGVkQ2FudmFzOwogfQog
Ci0KIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgTGF5b3V0UmVjdCYgciwgYm9vbCB1c2VMb3dRdWFsaXR5U2NhbGUpCiB7CiAgICAg
Ly8gQ2xlYXIgdGhlIGRpcnR5IHJlY3QKQEAgLTU0NSwxMCArNTMzLDEzIEBAIFNlY3VyaXR5T3Jp
Z2luKiBIVE1MQ2FudmFzRWxlbWVudDo6c2VjdXJpdHlPcmlnaW4oKSBjb25zdAogCiBib29sIEhU
TUxDYW52YXNFbGVtZW50OjpzaG91bGRBY2NlbGVyYXRlKGNvbnN0IEludFNpemUmIHNpemUpIGNv
bnN0CiB7Ci0jaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkKKyNpZiAhRU5B
QkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKyAgICBVTlVTRURfUEFSQU0oc2l6ZSk7CisgICAg
cmV0dXJuIGZhbHNlOworI2VsaWYgUExBVEZPUk0oTUFDKQogICAgIFVOVVNFRF9QQVJBTShzaXpl
KTsKICAgICByZXR1cm4gZG9jdW1lbnQoKS5zZXR0aW5ncygpICYmIGRvY3VtZW50KCkuc2V0dGlu
Z3MoKS0+Y2FudmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZygpOwotI2VsaWYgRU5BQkxFKEFDQ0VM
RVJBVEVEXzJEX0NBTlZBUykKKyNlbHNlCiAgICAgaWYgKG1fY29udGV4dCAmJiAhbV9jb250ZXh0
LT5pczJkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNTYxLDkgKzU1Miw2IEBAIGJv
b2wgSFRNTENhbnZhc0VsZW1lbnQ6OnNob3VsZEFjY2VsZXJhdGUoY29uc3QgSW50U2l6ZSYgc2l6
ZSkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7Ci0jZWxz
ZQotICAgIFVOVVNFRF9QQVJBTShzaXplKTsKLSAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIH0K
IApAQCAtNjA2LDcgKzU5NCw3IEBAIHZvaWQgSFRNTENhbnZhc0VsZW1lbnQ6OmNyZWF0ZUltYWdl
QnVmZmVyKCkgY29uc3QKICAgICBzaXplX3QgbnVtQnl0ZXMgPSA0ICogbV9pbWFnZUJ1ZmZlci0+
aW50ZXJuYWxTaXplKCkud2lkdGgoKSAqIG1faW1hZ2VCdWZmZXItPmludGVybmFsU2l6ZSgpLmhl
aWdodCgpOwogICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dm0oKS0+aGVhcC5yZXBvcnRF
eHRyYU1lbW9yeUNvc3QobnVtQnl0ZXMpOwogCi0jaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFD
S0lOR19TVE9SRSkgfHwgKEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICYmIFVTRShBQ0NF
TEVSQVRFRF9DT01QT1NJVElORykpCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykg
JiYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogICAgIGlmIChtX2NvbnRleHQgJiYgbV9j
b250ZXh0LT5pczJkKCkpCiAgICAgICAgIC8vIFJlY2FsY3VsYXRlIGNvbXBvc2l0aW5nIHJlcXVp
cmVtZW50cyBpZiBhY2NlbGVyYXRpb24gc3RhdGUgY2hhbmdlZC4KICAgICAgICAgY29uc3RfY2Fz
dDxIVE1MQ2FudmFzRWxlbWVudCo+KHRoaXMpLT5zZXROZWVkc1N0eWxlUmVjYWxjKFN5bnRoZXRp
Y1N0eWxlQ2hhbmdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0Nh
bnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQuY3BwCmluZGV4IDdhOGQ3MjkuLmFkMGZiMTYgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1lbnQu
aCIKICNpbmNsdWRlICJJbWFnZURhdGEuaCIKICNpbmNsdWRlICJSZW5kZXJFbGVtZW50LmgiCisj
aW5jbHVkZSAiUmVuZGVyTGF5ZXJCYWNraW5nLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4u
aCIKICNpbmNsdWRlICJTdHJva2VTdHlsZUFwcGxpZXIuaCIKICNpbmNsdWRlICJTdHlsZVByb3Bl
cnRpZXMuaCIKQEAgLTE0MSw3ICsxNDIsNyBAQCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ6On5D
YW52YXNSZW5kZXJpbmdDb250ZXh0MkQoKQogCiBib29sIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RDo6aXNBY2NlbGVyYXRlZCgpIGNvbnN0CiB7Ci0jaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFD
S0lOR19TVE9SRSkgfHwgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKyNpZiBFTkFCTEUo
QUNDRUxFUkFURURfMkRfQ0FOVkFTKQogICAgIGlmICghY2FudmFzKCktPmhhc0NyZWF0ZWRJbWFn
ZUJ1ZmZlcigpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0ID0gZHJhd2luZ0NvbnRleHQoKTsKQEAgLTEzNzAsNyArMTM3MSw3IEBAIHZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEOjpkcmF3SW1hZ2UoSFRNTENhbnZhc0VsZW1lbnQqIHNvdXJj
ZUNhbnZhcywgY29uc3QKIAogICAgIGNoZWNrT3JpZ2luKHNvdXJjZUNhbnZhcyk7CiAKLSNpZiBF
TkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQorI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9D
QU5WQVMpICYmICFQTEFURk9STShNQUMpIC8vIG1hYyBkb2Vzbid0IG5lZWQgdGhpcyBiZWNhdXNl
Li4uLiA/CiAgICAgLy8gSWYgd2UncmUgZHJhd2luZyBmcm9tIG9uZSBhY2NlbGVyYXRlZCBjYW52
YXMgMmQgdG8gYW5vdGhlciwgYXZvaWQgY2FsbGluZyBzb3VyY2VDYW52YXMtPm1ha2VSZW5kZXJp
bmdSZXN1bHRzQXZhaWxhYmxlKCkKICAgICAvLyBhcyB0aGF0IHdpbGwgZG8gYSByZWFkYmFjayB0
byBzb2Z0d2FyZS4KICAgICBDYW52YXNSZW5kZXJpbmdDb250ZXh0KiBzb3VyY2VDb250ZXh0ID0g
c291cmNlQ2FudmFzLT5yZW5kZXJpbmdDb250ZXh0KCk7CkBAIC0xNzQzLDcgKzE3NDQsNyBAQCB2
b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDo6ZGlkRHJhdyhjb25zdCBGbG9hdFJlY3QmIHIs
IHVuc2lnbmVkIG9wdGlvbnMpCiAgICAgLy8gSWYgd2UgYXJlIGRyYXdpbmcgdG8gaGFyZHdhcmUg
YW5kIHdlIGhhdmUgYSBjb21wb3NpdGVkIGxheWVyLCBqdXN0IGNhbGwgY29udGVudENoYW5nZWQo
KS4KICAgICBpZiAoaXNBY2NlbGVyYXRlZCgpKSB7CiAgICAgICAgIFJlbmRlckJveCogcmVuZGVy
Qm94ID0gY2FudmFzKCktPnJlbmRlckJveCgpOwotICAgICAgICBpZiAocmVuZGVyQm94ICYmIHJl
bmRlckJveC0+aGFzQWNjZWxlcmF0ZWRDb21wb3NpdGluZygpKSB7CisgICAgICAgIGlmIChyZW5k
ZXJCb3ggJiYgY2FudmFzQ29tcG9zaXRpbmdTdHJhdGVneSgqcmVuZGVyQm94KSA9PSBDYW52YXNB
c0xheWVyQ29udGVudHMgJiYgcmVuZGVyQm94LT5oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nKCkp
IHsKICAgICAgICAgICAgIHJlbmRlckJveC0+Y29udGVudENoYW5nZWQoQ2FudmFzUGl4ZWxzQ2hh
bmdlZCk7CiAgICAgICAgICAgICBjYW52YXMoKS0+Y2xlYXJDb3BpZWRJbWFnZSgpOwogICAgICAg
ICAgICAgY2FudmFzKCktPm5vdGlmeU9ic2VydmVyc0NhbnZhc0NoYW5nZWQocik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckNHLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3Bw
CmluZGV4IGIxM2QxMjEuLjljZjBkNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyQ0cuY3BwCkBAIC00NiwxMyArNDYsMTMgQEAK
ICNpbmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAjZW5kaWYKIAotI2lmIFVTRShJ
T1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJTkdfU1RPUkUpCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJE
X0NBTlZBUykKICNpbmNsdWRlIDxJT1N1cmZhY2UvSU9TdXJmYWNlLmg+CiAjZW5kaWYKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi0jaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9S
RSkKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogc3RhdGljIGNvbnN0IGludCBt
YXhJT1N1cmZhY2VEaW1lbnNpb24gPSA0MDk2OwogCiBzdGF0aWMgUmV0YWluUHRyPElPU3VyZmFj
ZVJlZj4gY3JlYXRlSU9TdXJmYWNlKGNvbnN0IEludFNpemUmIHNpemUpCkBAIC0xMzQsNyArMTM0
LDcgQEAgSW1hZ2VCdWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIGZsb2F0
IHJlc29sdXRpb25TY2FsZSwgQ29sb3JTcGFjZQogICAgIGlmIChudW1CeXRlcy5oYXNPdmVyZmxv
d2VkKCkpCiAgICAgICAgIHJldHVybjsKIAotI2lmIFVTRShJT1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJ
TkdfU1RPUkUpCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICBpZiAod2lk
dGgudW5zYWZlR2V0KCkgPiBtYXhJT1N1cmZhY2VEaW1lbnNpb24gfHwgaGVpZ2h0LnVuc2FmZUdl
dCgpID4gbWF4SU9TdXJmYWNlRGltZW5zaW9uKQogICAgICAgICBhY2NlbGVyYXRlUmVuZGVyaW5n
ID0gZmFsc2U7CiAjZWxzZQpAQCAtMTU1LDcgKzE1NSw3IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1
ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBmbG9hdCByZXNvbHV0aW9uU2NhbGUsIENvbG9yU3Bh
Y2UKIAogICAgIFJldGFpblB0cjxDR0NvbnRleHRSZWY+IGNnQ29udGV4dDsKICAgICBpZiAoYWNj
ZWxlcmF0ZVJlbmRlcmluZykgewotI2lmIFVTRShJT1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJTkdfU1RP
UkUpCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICAgICAgbV9kYXRhLm1f
c3VyZmFjZSA9IGNyZWF0ZUlPU3VyZmFjZShtX2RhdGEubV9iYWNraW5nU3RvcmVTaXplKTsKICAg
ICAgICAgRmxvYXRTaXplIHVzZXJCb3VuZHMgPSBzY2FsZVNpemVUb1VzZXJTcGFjZShGbG9hdFNp
emUod2lkdGgudW5zYWZlR2V0KCksIGhlaWdodC51bnNhZmVHZXQoKSksIG1fZGF0YS5tX2JhY2tp
bmdTdG9yZVNpemUsIG1fc2l6ZSk7CiAgICAgICAgIGNnQ29udGV4dCA9IGFkb3B0Q0Yod2tJT1N1
cmZhY2VDb250ZXh0Q3JlYXRlKG1fZGF0YS5tX3N1cmZhY2UuZ2V0KCksIHVzZXJCb3VuZHMud2lk
dGgoKSwgdXNlckJvdW5kcy5oZWlnaHQoKSwgbV9kYXRhLm1fY29sb3JTcGFjZSkpOwpAQCAtMjU3
LDcgKzI1Nyw3IEBAIFJldGFpblB0cjxDR0ltYWdlUmVmPiBJbWFnZUJ1ZmZlcjo6Y29weU5hdGl2
ZUltYWdlKEJhY2tpbmdTdG9yZUNvcHkgY29weUJlaGF2aW9yCiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogICAgIH0KLSNpZiBVU0UoSU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JF
KQorI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCiAgICAgZWxzZQogICAgICAgICBp
bWFnZSA9IHdrSU9TdXJmYWNlQ29udGV4dENyZWF0ZUltYWdlKGNvbnRleHQoKS0+cGxhdGZvcm1D
b250ZXh0KCkpOwogI2VuZGlmCkBAIC0zMzgsNyArMzM4LDcgQEAgdm9pZCBJbWFnZUJ1ZmZlcjo6
cHV0Qnl0ZUFycmF5KE11bHRpcGx5IG11bHRpcGxpZWQsIFVpbnQ4Q2xhbXBlZEFycmF5KiBzb3Vy
Y2UsIGMKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotI2lmIFVTRShJT1NVUkZBQ0VfQ0FOVkFT
X0JBQ0tJTkdfU1RPUkUpCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICAv
LyBNYWtlIGEgY29weSBvZiB0aGUgc291cmNlIHRvIGVuc3VyZSB0aGUgYml0cyBkb24ndCBjaGFu
Z2UgYmVmb3JlIGJlaW5nIGRyYXduCiAgICAgSW50U2l6ZSBzb3VyY2VDb3B5U2l6ZShzb3VyY2VS
ZWN0LndpZHRoKCksIHNvdXJjZVJlY3QuaGVpZ2h0KCkpOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxJ
bWFnZUJ1ZmZlcj4gc291cmNlQ29weSA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc291cmNlQ29weVNp
emUsIDEsIENvbG9yU3BhY2VEZXZpY2VSR0IsIFVuYWNjZWxlcmF0ZWQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cu
Y3BwCmluZGV4IGRlNGMzODcuLmI0MzY1NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNHLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZlckRhdGFDRy5jcHAKQEAgLTMzLDcg
KzMzLDcgQEAKICNpbmNsdWRlIDxBY2NlbGVyYXRlL0FjY2VsZXJhdGUuaD4KICNlbmRpZgogCi0j
aWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkKKyNpZiBFTkFCTEUoQUNDRUxF
UkFURURfMkRfQ0FOVkFTKQogI2luY2x1ZGUgPElPU3VyZmFjZS9JT1N1cmZhY2UuaD4KICNpbmNs
dWRlIDxkaXNwYXRjaC9kaXNwYXRjaC5oPgogI2VuZGlmCkBAIC01MSwxNiArNTEsMTQgQEAgc3Ry
dWN0IFNjYW5saW5lRGF0YSB7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEltYWdlQnVmZmVyRGF0
YTo6SW1hZ2VCdWZmZXJEYXRhKGNvbnN0IEludFNpemUmKQotOiBtX2RhdGEoMCkKLSNpZiBVU0Uo
SU9TVVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKQotLCBtX3N1cmZhY2UoMCkKKyAgICA6IG1f
ZGF0YSgwKQorI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCisgICAgLCBtX3N1cmZh
Y2UoMCkKICNlbmRpZgogewogfQogCi0jaWYgVVNFKEFDQ0VMRVJBVEUpCi0KLSNpZiBVU0UoSU9T
VVJGQUNFX0NBTlZBU19CQUNLSU5HX1NUT1JFKQorI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9D
QU5WQVMpICYmIFVTRShBQ0NFTEVSQVRFKQogc3RhdGljIHZvaWQgY29udmVydFNjYW5saW5lKHZv
aWQqIGRhdGEsIHNpemVfdCB0aWxlTnVtYmVyLCBib29sIHByZW11bHRpcGx5KQogewogICAgIFNj
YW5saW5lRGF0YSogc2NhbmxpbmVEYXRhID0gc3RhdGljX2Nhc3Q8U2NhbmxpbmVEYXRhKj4oZGF0
YSk7CkBAIC05OSw4ICs5Nyw3IEBAIHN0YXRpYyB2b2lkIHByZW11bHRpdHBseVNjYW5saW5lKHZv
aWQqIGRhdGEsIHNpemVfdCB0aWxlTnVtYmVyKQogewogICAgIGNvbnZlcnRTY2FubGluZShkYXRh
LCB0aWxlTnVtYmVyLCB0cnVlKTsKIH0KLSNlbmRpZiAvLyBVU0UoSU9TVVJGQUNFX0NBTlZBU19C
QUNLSU5HX1NUT1JFKQotI2VuZGlmIC8vIFVTRShBQ0NFTEVSQVRFKQorI2VuZGlmIC8vIEVOQUJM
RShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICYmIFVTRShBQ0NFTEVSQVRFKQogCiBQYXNzUmVmUHRy
PFVpbnQ4Q2xhbXBlZEFycmF5PiBJbWFnZUJ1ZmZlckRhdGE6OmdldERhdGEoY29uc3QgSW50UmVj
dCYgcmVjdCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgYm9vbCBhY2NlbGVyYXRlUmVuZGVyaW5nLCBi
b29sIHVubXVsdGlwbGllZCwgZmxvYXQgcmVzb2x1dGlvblNjYWxlKSBjb25zdAogewpAQCAtMjI4
LDcgKzIyNSw3IEBAIFBhc3NSZWZQdHI8VWludDhDbGFtcGVkQXJyYXk+IEltYWdlQnVmZmVyRGF0
YTo6Z2V0RGF0YShjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zCiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICAgICB9IGVsc2UgewotI2lmIFVTRShJT1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJTkdfU1RP
UkUpCisjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICAgICAgSU9TdXJmYWNl
UmVmIHN1cmZhY2UgPSBtX3N1cmZhY2UuZ2V0KCk7CiAgICAgICAgIElPU3VyZmFjZUxvY2soc3Vy
ZmFjZSwga0lPU3VyZmFjZUxvY2tSZWFkT25seSwgMCk7CiAgICAgICAgIHNyY0J5dGVzUGVyUm93
ID0gSU9TdXJmYWNlR2V0Qnl0ZXNQZXJSb3coc3VyZmFjZSk7CkBAIC0zMzEsNyArMzI4LDcgQEAg
UGFzc1JlZlB0cjxVaW50OENsYW1wZWRBcnJheT4gSW1hZ2VCdWZmZXJEYXRhOjpnZXREYXRhKGNv
bnN0IEludFJlY3QmIHJlY3QsIGNvbnMKICAgICAgICAgSU9TdXJmYWNlVW5sb2NrKHN1cmZhY2Us
IGtJT1N1cmZhY2VMb2NrUmVhZE9ubHksIDApOwogI2Vsc2UKICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0jZW5kaWYgLy8gVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkK
KyNlbmRpZiAvLyBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogICAgIH0KICAgICAKICAg
ICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKQEAgLTQ0NSw3ICs0NDIsNyBAQCB2b2lkIEltYWdl
QnVmZmVyRGF0YTo6cHV0RGF0YShVaW50OENsYW1wZWRBcnJheSomIHNvdXJjZSwgY29uc3QgSW50
U2l6ZSYgc291cmNlUwogICAgICAgICAgICAgc3JjUm93cyArPSBzcmNCeXRlc1BlclJvdzsKICAg
ICAgICAgfQogICAgIH0gZWxzZSB7Ci0jaWYgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19T
VE9SRSkKKyNpZiBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQogICAgICAgICBJT1N1cmZh
Y2VSZWYgc3VyZmFjZSA9IG1fc3VyZmFjZS5nZXQoKTsKICAgICAgICAgSU9TdXJmYWNlTG9jayhz
dXJmYWNlLCAwLCAwKTsKICAgICAgICAgZGVzdEJ5dGVzUGVyUm93ID0gSU9TdXJmYWNlR2V0Qnl0
ZXNQZXJSb3coc3VyZmFjZSk7CkBAIC01MzEsNyArNTI4LDcgQEAgdm9pZCBJbWFnZUJ1ZmZlckRh
dGE6OnB1dERhdGEoVWludDhDbGFtcGVkQXJyYXkqJiBzb3VyY2UsIGNvbnN0IEludFNpemUmIHNv
dXJjZVMKICAgICAgICAgSU9TdXJmYWNlVW5sb2NrKHN1cmZhY2UsIDAsIDApOwogI2Vsc2UKICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0jZW5kaWYgLy8gVVNFKElPU1VSRkFDRV9DQU5W
QVNfQkFDS0lOR19TVE9SRSkKKyNlbmRpZiAvLyBFTkFCTEUoQUNDRUxFUkFURURfMkRfQ0FOVkFT
KQogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvSW1hZ2VCdWZmZXJEYXRhQ0cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NnL0ltYWdlQnVmZmVyRGF0YUNHLmgKaW5kZXggYTQxOTA2Yi4uNjc5YzMxMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvSW1hZ2VCdWZmZXJEYXRh
Q0cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9JbWFnZUJ1ZmZl
ckRhdGFDRy5oCkBAIC0zMCwxMCArMzAsNiBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKLSNpZiBQTEFURk9STShNQUMpICYmIFVTRShDQSkK
LSNkZWZpbmUgV1RGX1VTRV9JT1NVUkZBQ0VfQ0FOVkFTX0JBQ0tJTkdfU1RPUkUgMQotI2VuZGlm
Ci0KIHR5cGVkZWYgc3RydWN0IF9fSU9TdXJmYWNlICpJT1N1cmZhY2VSZWY7CiB0eXBlZGVmIHN0
cnVjdCBDR0NvbG9yU3BhY2UgKkNHQ29sb3JTcGFjZVJlZjsKIHR5cGVkZWYgc3RydWN0IENHRGF0
YVByb3ZpZGVyICpDR0RhdGFQcm92aWRlclJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggZWJjMDFkMS4uOGRjZjFkMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTkz
LDEwICs5MywxMCBAQCBDYW52YXNDb21wb3NpdGluZ1N0cmF0ZWd5IGNhbnZhc0NvbXBvc2l0aW5n
U3RyYXRlZ3koY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlcgogICAgIGlmIChjb250ZXh0LT5p
czNkKCkpCiAgICAgICAgIHJldHVybiBDYW52YXNBc0xheWVyQ29udGVudHM7CiAKLSNpZiBFTkFC
TEUoQUNDRUxFUkFURURfMkRfQ0FOVkFTKQotICAgIHJldHVybiBDYW52YXNBc0xheWVyQ29udGVu
dHM7Ci0jZWxzZQorI2lmIEVOQUJMRShBQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICYmIFBMQVRGT1JN
KE1BQykKICAgICByZXR1cm4gQ2FudmFzUGFpbnRlZFRvTGF5ZXI7IC8vIE9uIE1hYyBhbmQgaU9T
IHdlIHBhaW50IGFjY2VsZXJhdGVkIGNhbnZhc2VzIGludG8gdGhlaXIgbGF5ZXJzLgorI2Vsc2UK
KyAgICByZXR1cm4gQ2FudmFzQXNMYXllckNvbnRlbnRzOyAvLyBPdGhlciBwbGF0Zm9ybXMgZGly
ZWN0bHkgY29tcG9zaXRlIHRoZSBjYW52YXMgdGV4dHVyZS4KICNlbmRpZgogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKaW5kZXggMDRmN2NjNi4uNjgyOGQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDEzLTEyLTIwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29t
PgorCisgICAgICAgIEdldCByaWQgb2YgVVNFKElPU1VSRkFDRV9DQU5WQVNfQkFDS0lOR19TVE9S
RSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjA1
NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTU3MDUyMjg+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVm
aW5lcy54Y2NvbmZpZzoKKyAgICAgICAgRW5hYmxlIEFDQ0VMRVJBVEVEXzJEX0NBTlZBUy4KKwog
MjAxMy0xMi0xOSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVt
b3ZlIFdlYkZpbHRlckV2YWx1YXRvciB3cmFwcGVycyBmcm9tIFdlYktpdFN5c3RlbUludGVyZmFj
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZwppbmRleCA2NzY5YWMyLi4zNGFmZjJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZworKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZwpAQCAtMzIsNyArMzIsNyBAQAogLy8gU2V0IGFueSBFTkFCTEVfRkVBVFVSRV9OQU1FIG1hY3Jv
IHRvIGFuIGVtcHR5IHN0cmluZyB0byBkaXNhYmxlIHRoYXQgZmVhdHVyZS4KIAogRU5BQkxFXzNE
X1JFTkRFUklORyA9IEVOQUJMRV8zRF9SRU5ERVJJTkc7Ci1FTkFCTEVfQUNDRUxFUkFURURfMkRf
Q0FOVkFTID0gOworRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyA9IEVOQUJMRV9BQ0NFTEVS
QVRFRF8yRF9DQU5WQVM7CiBFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HID0g
JChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HXyQoUExBVEZPUk1fTkFNRSkp
OwogRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElOR19pcGhvbmVvcyA9IEVOQUJM
RV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkc7CiBFTkFCTEVfQUNDRUxFUkFURURfT1ZF
UkZMT1dfU0NST0xMSU5HX2lwaG9uZXNpbXVsYXRvciA9ICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09W
RVJGTE9XX1NDUk9MTElOR19pcGhvbmVvcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjY0ODkwYy4uZmEzNzBi
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTEyLTIwICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEdldCByaWQgb2YgVVNFKElPU1VS
RkFDRV9DQU5WQVNfQkFDS0lOR19TVE9SRSkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNjA1NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTU3MDUy
Mjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKKyAgICAgICAgRW5hYmxlIEFD
Q0VMRVJBVEVEXzJEX0NBTlZBUy4KKwogMjAxMy0xMi0xOSAgQmVuamFtaW4gUG91bGFpbiAgPGJw
b3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBbV0syXVtpT1NdIEVuYWJsZSBtdWx0aXByb2Nl
c3MgYnkgZGVmYXVsdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9G
ZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwppbmRleCA2NzY5YWMyLi4zNGFmZjJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
ZwpAQCAtMzIsNyArMzIsNyBAQAogLy8gU2V0IGFueSBFTkFCTEVfRkVBVFVSRV9OQU1FIG1hY3Jv
IHRvIGFuIGVtcHR5IHN0cmluZyB0byBkaXNhYmxlIHRoYXQgZmVhdHVyZS4KIAogRU5BQkxFXzNE
X1JFTkRFUklORyA9IEVOQUJMRV8zRF9SRU5ERVJJTkc7Ci1FTkFCTEVfQUNDRUxFUkFURURfMkRf
Q0FOVkFTID0gOworRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyA9IEVOQUJMRV9BQ0NFTEVS
QVRFRF8yRF9DQU5WQVM7CiBFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HID0g
JChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HXyQoUExBVEZPUk1fTkFNRSkp
OwogRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElOR19pcGhvbmVvcyA9IEVOQUJM
RV9BQ0NFTEVSQVRFRF9PVkVSRkxPV19TQ1JPTExJTkc7CiBFTkFCTEVfQUNDRUxFUkFURURfT1ZF
UkZMT1dfU0NST0xMSU5HX2lwaG9uZXNpbXVsYXRvciA9ICQoRU5BQkxFX0FDQ0VMRVJBVEVEX09W
RVJGTE9XX1NDUk9MTElOR19pcGhvbmVvcyk7Cg==
</data>
<flag name="review"
          id="243398"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>