<?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>111882</bug_id>
          
          <creation_ts>2013-03-08 12:07:12 -0800</creation_ts>
          <short_desc>[Chromium] Switch ContextMenu implementation to CROSS_PLATFORM_CONTEXT_MENU</short_desc>
          <delta_ts>2013-04-08 16:45:48 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>111876</dependson>
          <blocked>111874</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jesus Sanchez-Palencia">jesus</reporter>
          <assigned_to name="Jesus Sanchez-Palencia">jesus</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>dglazkov</cc>
    
    <cc>jamesr</cc>
    
    <cc>pfeldman</cc>
    
    <cc>schenney</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>851406</commentid>
    <comment_count>0</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2013-03-08 12:07:12 -0800</bug_when>
    <thetext>Chromium could easily switch to Cross platform context menu implementation and reduce Context Menu related code significantly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854584</commentid>
    <comment_count>1</comment_count>
      <attachid>192985</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2013-03-13 13:41:13 -0700</bug_when>
    <thetext>Created attachment 192985
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855457</commentid>
    <comment_count>2</comment_count>
      <attachid>193177</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2013-03-14 13:39:36 -0700</bug_when>
    <thetext>Created attachment 193177
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856072</commentid>
    <comment_count>3</comment_count>
      <attachid>193177</attachid>
    <who name="Caio Marcelo de Oliveira Filho">cmarcelo</who>
    <bug_when>2013-03-15 10:19:05 -0700</bug_when>
    <thetext>Comment on attachment 193177
Patch

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

What about making a ContextMenu(Item)?Common.cpp that have empty implementations for the ports that do not make use of the platform hooks for context menu?

This would prevent us for having stub-only file for both EFL and Chromium here. I also think those should not be marked as NotImplemented, since it is simply a hook that will not be used.

&gt; Source/WebKit/chromium/src/ContextMenuClientImpl.cpp:189
&gt; -        return 0;
&gt; +        return defaultMenu;

This looks like a change from previous behavior of this function, is it intended?

&gt; Source/WebKit/chromium/src/ContextMenuClientImpl.cpp:374
&gt; -    return 0;
&gt; +    return defaultMenu;

Same as above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856089</commentid>
    <comment_count>4</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2013-03-15 10:34:29 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 193177 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=193177&amp;action=review
&gt; 
&gt; What about making a ContextMenu(Item)?Common.cpp that have empty implementations for the ports that do not make use of the platform hooks for context menu?
&gt; 
&gt; This would prevent us for having stub-only file for both EFL and Chromium here. I also think those should not be marked as NotImplemented, since it is simply a hook that will not be used.

Yes sure, but there are a lot of places in WebCore where we could use stub (common) .cpp files but we just don&apos;t, so that is why I haven&apos;t added one. I will do that.


&gt; 
&gt; &gt; Source/WebKit/chromium/src/ContextMenuClientImpl.cpp:189
&gt; &gt; -        return 0;
&gt; &gt; +        return defaultMenu;
&gt; 
&gt; This looks like a change from previous behavior of this function, is it intended?
&gt; 
&gt; &gt; Source/WebKit/chromium/src/ContextMenuClientImpl.cpp:374
&gt; &gt; -    return 0;
&gt; &gt; +    return defaultMenu;
&gt; 
&gt; Same as above.

At a first glance I thought that this wouldn&apos;t change anything since Chromium will use customizeMenu() to display the ContextMenu anyway, but now I believe that ContextMenuController should know about this null ptr just in case. I will have a look and fix that if needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860628</commentid>
    <comment_count>5</comment_count>
      <attachid>193177</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-21 13:32:52 -0700</bug_when>
    <thetext>Comment on attachment 193177
Patch

This looks great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860629</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-21 13:33:45 -0700</bug_when>
    <thetext>&gt; I will have a look and fix that if needed.

Ok.  Sounds like we should wait for that before landing this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861414</commentid>
    <comment_count>7</comment_count>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2013-03-22 06:59:28 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; I will have a look and fix that if needed.
&gt; 
&gt; Ok.  Sounds like we should wait for that before landing this patch.

I had a better look at ContextMenuController and I believe the patch is correct the way it is. This doesn&apos;t change any behavior. The nullptr was used there to set m_contextMenu-&gt;setPlatformDescription, which in Chromium was an empty implementation. ContextMenuController always rely on having a valid m_contextMenu, and the valid checks are actually related to its items vector size.

Returning the same defaultMenu here is only a way to say that there was no need to customize the menu.


(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 193177 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=193177&amp;action=review
&gt; &gt; 
&gt; &gt; What about making a ContextMenu(Item)?Common.cpp that have empty implementations for the ports that do not make use of the platform hooks for context menu?
&gt; &gt; 
&gt; &gt; This would prevent us for having stub-only file for both EFL and Chromium here. I also think those should not be marked as NotImplemented, since it is simply a hook that will not be used.
&gt; 
&gt; Yes sure, but there are a lot of places in WebCore where we could use stub (common) .cpp files but we just don&apos;t, so that is why I haven&apos;t added one. I will do that.

I will leave this for another patch, after I&apos;m done with the other ports.


Thanks for having a looking at this patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>868710</commentid>
    <comment_count>8</comment_count>
      <attachid>196351</attachid>
    <who name="Jesus Sanchez-Palencia">jesus</who>
    <bug_when>2013-04-03 07:45:39 -0700</bug_when>
    <thetext>Created attachment 196351
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192985</attachid>
            <date>2013-03-13 13:41:13 -0700</date>
            <delta_ts>2013-03-14 13:39:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111882-20130313173505.patch</filename>
            <type>text/plain</type>
            <size>16570</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NzAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTZlNDkwOWQwNTJkZWJj
ODgzOWVjNzdmOGZlODI1MGQ2YzM0MDhiMS4uNDU4ZjZlNzA5N2MyODBhZTc2ZWYzYzQ2YWJiM2Ez
ODQxYzdiMDRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMyIEBACiAyMDEzLTAzLTEzICBKZXN1
cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KIAorICAg
ICAgICBbQ2hyb21pdW1dIFN3aXRjaCBDb250ZXh0TWVudSBpbXBsZW1lbnRhdGlvbiB0byBDUk9T
U19QTEFURk9STV9DT05URVhUX01FTlUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExMTg4MgorCisgICAgICAgIE5vdyBDaHJvbWl1bSB1c2VzIHRoZSBD
Uk9TU19QTEFURk9STV9DT05URVhUX01FTlVTCisgICAgICAgIFVTRSBmbGFnLiBUaGlzIGZsYWcg
cHJvdmlkZXMgYSBmdWxsIGNyb3NzLXBsYXRmb3JtCisgICAgICAgIHJlcHJlc2VudGF0aW9uIG9m
IGEgQ29udGV4dE1lbnUgYW5kIGEgQ29udGV4dE1lbnVJdGVtLgorICAgICAgICBUaGUgZW1iZWRk
ZXIgY2FuIHRoZW4gZGVjaWRlIGhvdyB0byBzaG93IHRoaXMgYW5kIG5laXRoZXIKKyAgICAgICAg
V2ViQ29yZSBub3IgV2ViQ29yZS9wbGF0Zm9ybSBuZWVkIHRvIGtub3cgYW55IHBsYXRmb3JtCisg
ICAgICAgIHNwZWNpZmljIGNvZGUgYWJvdXQgdGhlIG1lbnVzLCBldmVuIHRob3VnaCB0aGV5IGNv
dWxkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBuZWVkZWQsIG5vIGJlaGF2aW9yIGNoYW5nZXMu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudS5oOgorICAgICAgICAoQ29udGV4dE1l
bnUpOgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oOgorICAgICAgICAqIHBs
YXRmb3JtL1BsYXRmb3JtTWVudURlc2NyaXB0aW9uLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Db250ZXh0TWVudUNocm9taXVtLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRleHRNZW51OjpDb250ZXh0TWVudSk6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0TWVudTo6Z2V0Q29udGV4dE1lbnVJdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZXh0TWVudTo6Y3JlYXRlUGxhdGZvcm1Db250ZXh0TWVudUZyb21JdGVtcyk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudTo6cGxhdGZvcm1Db250ZXh0TWVudSk6CisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vQ29udGV4dE1lbnVJdGVtQ2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpwbGF0Zm9ybUNvbnRleHRNZW51SXRlbSk6CisKKzIw
MTMtMDMtMTMgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9z
c2Eub3JnPgorCiAgICAgICAgIFtFRkxdIFVzZSBDUk9TU19QTEFURk9STV9DT05URVhUX01FTlUK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTg3Nwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGNjYjJkNTRhMWNhOWE1YzAzZmQzNDQ0OTBj
NjNmMjEwOTM3OTM5OGMuLmQ0YWRhNzk4YjlkMzk4MzczODc3YmIyOGY3NjE0M2NkYmQ4MmE0ZmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTMtMDMtMTMg
IEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgor
CisgICAgICAgIFtDaHJvbWl1bV0gU3dpdGNoIENvbnRleHRNZW51IGltcGxlbWVudGF0aW9uIHRv
IENST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExODgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRqdXN0IENvbnRleHRNZW51Q2xpZW50SW1wbCB0byB1c2Ug
dGhlIENST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVMgVVNFIGZsYWcKKyAgICAgICAgYnkgaW1w
bGVtZW50aW5nIGN1c3RvbWl6ZU1lbnUoKSBpbnN0ZWFkIG9mIGdldEN1c3RvbU1lbnVGcm9tRGVm
YXVsdEl0ZW1zKCkKKyAgICAgICAgYW5kIGJ5IGNhbGxpbmcgY29yZU1lbnUtPml0ZW1zKCkgaW5z
dGVhZCBvZiBjb3JlTWVudS0+cGxhdGZvcm1EZXNjcmlwdGlvbigpLgorCisgICAgICAgICogZmVh
dHVyZXMuZ3lwaTogYWRkZWQgJ1dURl9VU0VfQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUz0x
JworICAgICAgICAqIHNyYy9Db250ZXh0TWVudUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpDb250ZXh0TWVudUNsaWVudEltcGw6OmN1c3RvbWl6ZU1lbnUpOgorICAgICAgICAoV2Vi
S2l0Ojpwb3B1bGF0ZVN1Yk1lbnVJdGVtcyk6CisgICAgICAgIChXZWJLaXQ6OkNvbnRleHRNZW51
Q2xpZW50SW1wbDo6cG9wdWxhdGVDdXN0b21NZW51SXRlbXMpOgorICAgICAgICAqIHNyYy9Db250
ZXh0TWVudUNsaWVudEltcGwuaDoKKyAgICAgICAgKENvbnRleHRNZW51Q2xpZW50SW1wbCk6CisK
IDIwMTMtMDMtMTIgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQuICBSb2xsZWQgQ2hyb21pdW0gREVQUyB0byByMTg3Njg4LiAg
UmVxdWVzdGVkIGJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0
TWVudS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuaAppbmRleCA1Mzdj
MDA0NGM1N2M5YjI4ZTllZWE4NDM2NWUzODI0ZDFhYjQxMjcyLi5lOTNlNTkwNGQ0MDI5OTRjYzhk
YWJmMDIzNDI5MTY5Nzk0OTE3NjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Db250ZXh0TWVudS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51
LmgKQEAgLTk3LDggKzk3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBSZXRhaW5Q
dHI8TlNNdXRhYmxlQXJyYXk+IG1fcGxhdGZvcm1EZXNjcmlwdGlvbjsKICNlbGlmIFBMQVRGT1JN
KFFUKQogICAgICAgICBRTGlzdDxDb250ZXh0TWVudUl0ZW0+IG1faXRlbXM7Ci0jZWxpZiBQTEFU
Rk9STShDSFJPTUlVTSkKLSAgICAgICAgVmVjdG9yPENvbnRleHRNZW51SXRlbT4gbV9pdGVtczsK
ICNlbHNlCiAgICAgICAgIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIG1fcGxhdGZvcm1EZXNjcmlw
dGlvbjsKICNpZiBPUyhXSU5DRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0NvbnRleHRNZW51SXRlbS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJ
dGVtLmgKaW5kZXggOTU3MmNjY2ZlYTM0ODU3YzM5YzFmMDNhZjMwZTQ3Y2Y5OGM1ZGMzNS4uYmUz
Y2ZkMzQxZDlkN2RjZjdlYTRiYjRjMWEwYWMyN2NiOWY0YTVlZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKQEAgLTIxNSwyMCArMjE1LDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBib29sIGNoZWNrZWQ7CiAgICAgICAgIGJvb2wgZW5hYmxlZDsK
ICAgICB9OwotI2VsaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgc3RydWN0IFBsYXRmb3JtTWVu
dUl0ZW1EZXNjcmlwdGlvbiB7Ci0gICAgICAgIFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbigp
Ci0gICAgICAgICAgICA6IHR5cGUoQWN0aW9uVHlwZSkKLSAgICAgICAgICAgICwgYWN0aW9uKENv
bnRleHRNZW51SXRlbVRhZ05vQWN0aW9uKQotICAgICAgICAgICAgLCBjaGVja2VkKGZhbHNlKQot
ICAgICAgICAgICAgLCBlbmFibGVkKHRydWUpIHsgfQotICAgICAgICBDb250ZXh0TWVudUl0ZW1U
eXBlIHR5cGU7Ci0gICAgICAgIENvbnRleHRNZW51QWN0aW9uIGFjdGlvbjsKLSAgICAgICAgU3Ry
aW5nIHRpdGxlOwotICAgICAgICBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiBzdWJNZW51SXRlbXM7
Ci0gICAgICAgIGJvb2wgY2hlY2tlZDsKLSAgICAgICAgYm9vbCBlbmFibGVkOwotICAgIH07CiAj
ZWxzZQogICAgIHR5cGVkZWYgdm9pZCogUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbnVEZXNj
cmlwdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW51RGVzY3JpcHRp
b24uaAppbmRleCA3NzI2MTRlMzJiYzczYmVmNjE4Y2EwNTUwZmM4NWIxNGUwMjFhYjhiLi5iYWUz
MzlhZDFhNzRlN2NhOGQ4ZWE0Njg0YjU0MzBiOGQ5NzM3ZGYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVudURlc2NyaXB0aW9uLmgKQEAgLTM0LDggKzM0LDYg
QEAgT0JKQ19DTEFTUyBOU011dGFibGVBcnJheTsKIHR5cGVkZWYgc3RydWN0IF9HdGtNZW51IEd0
a01lbnU7CiAjZWxpZiBQTEFURk9STShXWCkKIGNsYXNzIHd4TWVudTsKLSNlbGlmIFBMQVRGT1JN
KENIUk9NSVVNKQotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNlbmRpZgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CkBAIC01MCw5ICs0OCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB0eXBl
ZGVmIEd0a01lbnUqIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uOwogI2VsaWYgUExBVEZPUk0oV1gp
CiAgICAgdHlwZWRlZiB3eE1lbnUqIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uOwotI2VsaWYgUExB
VEZPUk0oQ0hST01JVU0pCi0gICAgY2xhc3MgQ29udGV4dE1lbnVJdGVtOwotICAgIHR5cGVkZWYg
Y29uc3QgVmVjdG9yPENvbnRleHRNZW51SXRlbT4qIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uOwog
I2Vsc2UKICAgICB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Db250ZXh0TWVu
dUNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NvbnRleHRN
ZW51Q2hyb21pdW0uY3BwCmluZGV4IGE5MjhjYWQ0NTUxYjA1NjBkMDA2ODQyMThlNGMxN2ZhNzNi
MWRjMmIuLjc2MjI5MWY0MWQxYjNkMTcxZDJiZDUxNThjZTliMzJlNzlhMzQ1ZTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NvbnRleHRNZW51Q2hyb21pdW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NvbnRleHRNZW51Q2hy
b21pdW0uY3BwCkBAIC0zMSw3NyArMzEsMzAgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJDb250ZXh0TWVudS5oIgogCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLS8vIFRoaXMgaXMg
YSBzdHViIGltcGxlbWVudGF0aW9uIG9mIFdlYktpdCdzIENvbnRleHRNZW51IGNsYXNzIHRoYXQg
ZG9lcwotLy8gbm90aGluZy4KKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUg
IlBsYXRmb3JtTWVudURlc2NyaXB0aW9uLmgiCiAKLUNvbnRleHRNZW51OjpDb250ZXh0TWVudSgp
Ci17Ci19Ci0KLUNvbnRleHRNZW51OjpDb250ZXh0TWVudShjb25zdCBQbGF0Zm9ybU1lbnVEZXNj
cmlwdGlvbiBtZW51KQotewotfQotCi1Db250ZXh0TWVudTo6fkNvbnRleHRNZW51KCkKLXsKLX0K
LQotdW5zaWduZWQgQ29udGV4dE1lbnU6Oml0ZW1Db3VudCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1faXRlbXMuc2l6ZSgpOwotfQorbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIENvbnRleHRN
ZW51OjppbnNlcnRJdGVtKHVuc2lnbmVkIHBvc2l0aW9uLCBDb250ZXh0TWVudUl0ZW0mIGl0ZW0p
CitDb250ZXh0TWVudTo6Q29udGV4dE1lbnUoUGxhdGZvcm1Db250ZXh0TWVudSBtZW51KQogewot
ICAgIG1faXRlbXMuaW5zZXJ0KHBvc2l0aW9uLCBpdGVtKTsKKyAgICBnZXRDb250ZXh0TWVudUl0
ZW1zKG1lbnUsIG1faXRlbXMpOwogfQogCi12b2lkIENvbnRleHRNZW51OjphcHBlbmRJdGVtKENv
bnRleHRNZW51SXRlbSYgaXRlbSkKK3ZvaWQgQ29udGV4dE1lbnU6OmdldENvbnRleHRNZW51SXRl
bXMoUGxhdGZvcm1Db250ZXh0TWVudSwgVmVjdG9yPENvbnRleHRNZW51SXRlbT4mKQogewotICAg
IG1faXRlbXMuYXBwZW5kKGl0ZW0pOworICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLUNvbnRl
eHRNZW51SXRlbSogQ29udGV4dE1lbnU6Oml0ZW1XaXRoQWN0aW9uKHVuc2lnbmVkIGFjdGlvbikK
K1BsYXRmb3JtQ29udGV4dE1lbnUgQ29udGV4dE1lbnU6OmNyZWF0ZVBsYXRmb3JtQ29udGV4dE1l
bnVGcm9tSXRlbXMoY29uc3QgVmVjdG9yPENvbnRleHRNZW51SXRlbT4mKQogewotICAgIFZlY3Rv
cjxWZWN0b3I8Q29udGV4dE1lbnVJdGVtPio+IG1lbnVJdGVtU3RhY2s7Ci0gICAgbWVudUl0ZW1T
dGFjay5hcHBlbmQoJm1faXRlbXMpOwotICAgIHdoaWxlICghbWVudUl0ZW1TdGFjay5pc0VtcHR5
KCkpIHsKLSAgICAgICAgVmVjdG9yPENvbnRleHRNZW51SXRlbT4mIGl0ZW1zID0gKihtZW51SXRl
bVN0YWNrLmxhc3QoKSk7Ci0gICAgICAgIG1lbnVJdGVtU3RhY2sucmVtb3ZlTGFzdCgpOwotICAg
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGl0ZW1zLnNpemUoKTsgKytpKSB7Ci0gICAgICAg
ICAgICBpZiAoaXRlbXNbaV0uYWN0aW9uKCkgPT0gc3RhdGljX2Nhc3Q8Q29udGV4dE1lbnVBY3Rp
b24+KGFjdGlvbikpCi0gICAgICAgICAgICAgICAgcmV0dXJuICZpdGVtc1tpXTsKLSAgICAgICAg
ICAgIGlmIChpdGVtc1tpXS50eXBlKCkgPT0gU3VibWVudVR5cGUpCi0gICAgICAgICAgICAgICAg
bWVudUl0ZW1TdGFjay5hcHBlbmQoY29uc3RfY2FzdDxWZWN0b3I8Q29udGV4dE1lbnVJdGVtPio+
KGl0ZW1zW2ldLnBsYXRmb3JtU3ViTWVudSgpKSk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKICAgICByZXR1cm4gMDsKIH0KIAotQ29udGV4dE1lbnVJdGVtKiBDb250
ZXh0TWVudTo6aXRlbUF0SW5kZXgodW5zaWduZWQgaW5kZXgsIGNvbnN0IFBsYXRmb3JtTWVudURl
c2NyaXB0aW9uIHBsYXRmb3JtRGVzY3JpcHRpb24pCitQbGF0Zm9ybUNvbnRleHRNZW51IENvbnRl
eHRNZW51OjpwbGF0Zm9ybUNvbnRleHRNZW51KCkgY29uc3QKIHsKLSAgICByZXR1cm4gJm1faXRl
bXNbaW5kZXhdOworICAgIHJldHVybiBjcmVhdGVQbGF0Zm9ybUNvbnRleHRNZW51RnJvbUl0ZW1z
KG1faXRlbXMpOwogfQogCi12b2lkIENvbnRleHRNZW51OjpzZXRQbGF0Zm9ybURlc2NyaXB0aW9u
KFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIG1lbnUpCi17CiB9Ci0KLVBsYXRmb3JtTWVudURlc2Ny
aXB0aW9uIENvbnRleHRNZW51OjpwbGF0Zm9ybURlc2NyaXB0aW9uKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gJm1faXRlbXM7Ci19Ci0KLVBsYXRmb3JtTWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51
OjpyZWxlYXNlUGxhdGZvcm1EZXNjcmlwdGlvbigpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLVZl
Y3RvcjxDb250ZXh0TWVudUl0ZW0+IGNvbnRleHRNZW51SXRlbVZlY3Rvcihjb25zdCBQbGF0Zm9y
bU1lbnVEZXNjcmlwdGlvbiBtZW51RGVzY3JpcHRpb24pCi17Ci0gICAgcmV0dXJuICptZW51RGVz
Y3JpcHRpb247Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NvbnRleHRNZW51SXRlbUNocm9taXVtLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NvbnRleHRNZW51SXRlbUNocm9taXVt
LmNwcAppbmRleCAwZWU3ZWU5YTdhMzJmYzQ4MDQ5ZWJjMjNkYWViNzU5MjY3M2I1NTMzLi4zYmM5
ZTU1ZjU3NTA2ZDFkNmQ3MTk2OWU5NTRhODc5NmVkNjhlNTg0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Db250ZXh0TWVudUl0ZW1DaHJvbWl1bS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ29udGV4dE1lbnVJdGVtQ2hyb21p
dW0uY3BwCkBAIC0zMSwxMDIgKzMxLDE2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiQ29udGV4dE1lbnVJdGVtLmgiCiAKLSNpbmNsdWRlICJDb250ZXh0TWVudS5oIgorI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gVGhpcyBp
cyBhIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgV2ViS2l0J3MgQ29udGV4dE1lbnUgY2xhc3MgdGhh
dCBkb2VzCiAvLyBub3RoaW5nLgotCi1Db250ZXh0TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShQ
bGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24gaXRlbSkKLXsKLX0KLQotQ29udGV4dE1lbnVJdGVt
OjpDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnUqIHN1Yk1lbnUpCi17Ci19Ci0KLUNvbnRleHRN
ZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKENvbnRleHRNZW51SXRlbVR5cGUgdHlwZSwgQ29udGV4
dE1lbnVBY3Rpb24gYWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBDb250ZXh0TWVudSogc3Vi
TWVudSkKLXsKLSAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24udHlwZSA9IHR5cGU7Ci0gICAgbV9w
bGF0Zm9ybURlc2NyaXB0aW9uLmFjdGlvbiA9IGFjdGlvbjsKLSAgICBtX3BsYXRmb3JtRGVzY3Jp
cHRpb24udGl0bGUgPSB0aXRsZTsKLSAgICBpZiAoc3ViTWVudSkKLSAgICAgICAgc2V0U3ViTWVu
dShzdWJNZW51KTsKLX0KLQotQ29udGV4dE1lbnVJdGVtOjp+Q29udGV4dE1lbnVJdGVtKCkKLXsK
LX0KLQotUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uIENvbnRleHRNZW51SXRlbTo6cmVsZWFz
ZVBsYXRmb3JtRGVzY3JpcHRpb24oKQotewotICAgIHJldHVybiBtX3BsYXRmb3JtRGVzY3JpcHRp
b247Ci19Ci0KLUNvbnRleHRNZW51SXRlbVR5cGUgQ29udGV4dE1lbnVJdGVtOjp0eXBlKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnR5cGU7Ci19Ci0KLUNvbnRl
eHRNZW51QWN0aW9uIENvbnRleHRNZW51SXRlbTo6YWN0aW9uKCkgY29uc3QKLXsgCi0gICAgcmV0
dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5hY3Rpb247Ci19Ci0KLVN0cmluZyBDb250ZXh0TWVu
dUl0ZW06OnRpdGxlKCkgY29uc3QgCi17Ci0gICAgcmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlv
bi50aXRsZTsKLX0KLQotYm9vbCBDb250ZXh0TWVudUl0ZW06OmNoZWNrZWQoKSBjb25zdAotewot
ICAgIHJldHVybiBtX3BsYXRmb3JtRGVzY3JpcHRpb24uY2hlY2tlZDsKLX0KLQotYm9vbCBDb250
ZXh0TWVudUl0ZW06OmVuYWJsZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX3BsYXRmb3JtRGVz
Y3JpcHRpb24uZW5hYmxlZDsKLX0KLQotUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gQ29udGV4dE1l
bnVJdGVtOjpwbGF0Zm9ybVN1Yk1lbnUoKSBjb25zdAotewotICAgIHJldHVybiAmbV9wbGF0Zm9y
bURlc2NyaXB0aW9uLnN1Yk1lbnVJdGVtczsKLX0KLQotdm9pZCBDb250ZXh0TWVudUl0ZW06OnNl
dFR5cGUoQ29udGV4dE1lbnVJdGVtVHlwZSB0eXBlKQotewotICAgIG1fcGxhdGZvcm1EZXNjcmlw
dGlvbi50eXBlID0gdHlwZTsKLX0KLQotdm9pZCBDb250ZXh0TWVudUl0ZW06OnNldEFjdGlvbihD
b250ZXh0TWVudUFjdGlvbiBhY3Rpb24pCi17Ci0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLmFj
dGlvbiA9IGFjdGlvbjsKLX0KLQotdm9pZCBDb250ZXh0TWVudUl0ZW06OnNldFRpdGxlKGNvbnN0
IFN0cmluZyYgdGl0bGUpCi17Ci0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnRpdGxlID0gdGl0
bGU7Ci19Ci0KLXZvaWQgQ29udGV4dE1lbnVJdGVtOjpzZXRTdWJNZW51KENvbnRleHRNZW51KiBt
ZW51KQotewotICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5zdWJNZW51SXRlbXMgPSAqbWVudS0+
cGxhdGZvcm1EZXNjcmlwdGlvbigpOwotfQotCi12b2lkIENvbnRleHRNZW51SXRlbTo6c2V0U3Vi
TWVudShWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiYgaXRlbXMpCi17Ci0gICAgbV9wbGF0Zm9ybURl
c2NyaXB0aW9uLnN1Yk1lbnVJdGVtcyA9IGl0ZW1zOwotfQotCi12b2lkIENvbnRleHRNZW51SXRl
bTo6c2V0Q2hlY2tlZChib29sIGNoZWNrZWQpCi17Ci0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9u
LmNoZWNrZWQgPSBjaGVja2VkOwotfQotCi12b2lkIENvbnRleHRNZW51SXRlbTo6c2V0RW5hYmxl
ZChib29sIGVuYWJsZWQpCit2b2lkKiBDb250ZXh0TWVudUl0ZW06OnBsYXRmb3JtQ29udGV4dE1l
bnVJdGVtKCkgY29uc3QKIHsKLSAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24uZW5hYmxlZCA9IGVu
YWJsZWQ7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0
dXJlcy5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCmluZGV4IGQz
NzdmNjk4Mjc0NTFjMjZhZTc0ZWNhY2EyYTA1YTFkMGViYjE1MTcuLjJhYzU5MmNjMjI1NGJmMDJl
ZjYwYTJjNWMwMjUxZWI4NGYxMGI5OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vZmVhdHVyZXMuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5
cGkKQEAgLTE0OSw2ICsxNDksNyBAQAogICAgICAgJ1dURl9VU0VfU0tJQV9URVhUPTwoZW5hYmxl
X3NraWFfdGV4dCknLAogICAgICAgJ1dURl9VU0VfV0VCUD0xJywKICAgICAgICdXVEZfVVNFX1dF
QktJVF9JTUFHRV9ERUNPREVSUz0xJywKKyAgICAgICdXVEZfVVNFX0NST1NTX1BMQVRGT1JNX0NP
TlRFWFRfTUVOVVM9MScsCiAgICAgXSwKICAgICAjIFdlIGhhdmUgdG8gbmVzdCB2YXJpYWJsZXMg
aW5zaWRlIHZhcmlhYmxlcyBzbyB0aGF0IHRoZXkgY2FuIGJlIG92ZXJyaWRkZW4KICAgICAjIHRo
cm91Z2ggR1lQX0RFRklORVMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Db250ZXh0TWVudUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
Q29udGV4dE1lbnVDbGllbnRJbXBsLmNwcAppbmRleCBlNzc3NjRhZmU1ZDE5ZjY3ZjYyMTZlZWQz
OGRhZjgwODM1ZWE5YjhjLi44NDFlOWVhZTljNGI0OTJmZWU2MjYyYTAyMmUxMzk2YTNiZjYwNjFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0TWVudUNsaWVu
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRNZW51Q2xp
ZW50SW1wbC5jcHAKQEAgLTE3OCw4ICsxNzgsNyBAQCBzdGF0aWMgU3RyaW5nIHNlbGVjdE1pc3Nw
ZWxsaW5nQXN5bmMoRnJhbWUqIHNlbGVjdGVkRnJhbWUsIERvY3VtZW50TWFya2VyJiBtYXJrZQog
ICAgIHJldHVybiBtYXJrZXJSYW5nZS0+dGV4dCgpOwogfQogCi1QbGF0Zm9ybU1lbnVEZXNjcmlw
dGlvbiBDb250ZXh0TWVudUNsaWVudEltcGw6OmdldEN1c3RvbU1lbnVGcm9tRGVmYXVsdEl0ZW1z
KAotICAgIENvbnRleHRNZW51KiBkZWZhdWx0TWVudSkKK1Bhc3NPd25QdHI8V2ViQ29yZTo6Q29u
dGV4dE1lbnU+IENvbnRleHRNZW51Q2xpZW50SW1wbDo6Y3VzdG9taXplTWVudShQYXNzT3duUHRy
PFdlYkNvcmU6OkNvbnRleHRNZW51PiBkZWZhdWx0TWVudSkKIHsKICAgICAvLyBEaXNwbGF5aW5n
IHRoZSBjb250ZXh0IG1lbnUgaW4gdGhpcyBmdW5jdGlvbiBpcyBhIGJpZyBoYWNrIGFzIHdlIGRv
bid0CiAgICAgLy8gaGF2ZSBjb250ZXh0LCBpLmUuIHdoZXRoZXIgdGhpcyBpcyBiZWluZyBpbnZv
a2VkIHZpYSBhIHNjcmlwdCBvciBpbgpAQCAtMTg3LDcgKzE4Niw3IEBAIFBsYXRmb3JtTWVudURl
c2NyaXB0aW9uIENvbnRleHRNZW51Q2xpZW50SW1wbDo6Z2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0
SXRlbXMoCiAgICAgLy8gS2V5Ym9hcmQgZXZlbnRzIEtleVZLX0FQUFMsIFNoaWZ0K0YxMCkuIENo
ZWNrIGlmIHRoaXMgaXMgYmVpbmcgaW52b2tlZAogICAgIC8vIGluIHJlc3BvbnNlIHRvIHRoZSBh
Ym92ZSBpbnB1dCBldmVudHMgYmVmb3JlIHBvcHBpbmcgdXAgdGhlIGNvbnRleHQgbWVudS4KICAg
ICBpZiAoIW1fd2ViVmlldy0+Y29udGV4dE1lbnVBbGxvd2VkKCkpCi0gICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gZGVmYXVsdE1lbnU7CiAKICAgICBIaXRUZXN0UmVzdWx0IHIgPSBt
X3dlYlZpZXctPnBhZ2UoKS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCktPmhpdFRlc3RSZXN1bHQo
KTsKICAgICBGcmFtZSogc2VsZWN0ZWRGcmFtZSA9IHIuaW5uZXJOb2RlRnJhbWUoKTsKQEAgLTMy
Niw3ICszMjUsNyBAQCBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBDb250ZXh0TWVudUNsaWVudElt
cGw6OmdldEN1c3RvbU1lbnVGcm9tRGVmYXVsdEl0ZW1zKAogICAgICAgICAgICAgICAgIG1fd2Vi
Vmlldy0+Zm9jdXNlZFdlYkNvcmVGcmFtZSgpLT5lZGl0b3IoKS0+aXNDb250aW51b3VzU3BlbGxD
aGVja2luZ0VuYWJsZWQoKTsKICAgICAgICAgICAgIC8vIFNwZWxsY2hlY2tpbmcgbWlnaHQgYmUg
ZW5hYmxlZCBmb3IgdGhlIGZpZWxkLCBidXQgY291bGQgYmUgZGlzYWJsZWQgb24gdGhlIG5vZGUu
CiAgICAgICAgICAgICBpZiAobV93ZWJWaWV3LT5mb2N1c2VkV2ViQ29yZUZyYW1lKCktPmVkaXRv
cigpLT5pc1NwZWxsQ2hlY2tpbmdFbmFibGVkSW5Gb2N1c2VkTm9kZSgpKSB7Ci0gICAgICAgICAg
ICAgICAgZGF0YS5taXNzcGVsbGVkV29yZCA9IHNlbGVjdE1pc3NwZWxsZWRXb3JkKGRlZmF1bHRN
ZW51LCBzZWxlY3RlZEZyYW1lKTsKKyAgICAgICAgICAgICAgICBkYXRhLm1pc3NwZWxsZWRXb3Jk
ID0gc2VsZWN0TWlzc3BlbGxlZFdvcmQoZGVmYXVsdE1lbnUuZ2V0KCksIHNlbGVjdGVkRnJhbWUp
OwogICAgICAgICAgICAgICAgIGlmIChtX3dlYlZpZXctPnNwZWxsQ2hlY2tDbGllbnQoKSkgewog
ICAgICAgICAgICAgICAgICAgICBpbnQgbWlzc3BlbGxlZE9mZnNldCwgbWlzc3BlbGxlZExlbmd0
aDsKICAgICAgICAgICAgICAgICAgICAgbV93ZWJWaWV3LT5zcGVsbENoZWNrQ2xpZW50KCktPnNw
ZWxsQ2hlY2soCkBAIC0zNjQsNyArMzYzLDcgQEAgUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gQ29u
dGV4dE1lbnVDbGllbnRJbXBsOjpnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcygKICAgICBk
YXRhLnJlZmVycmVyUG9saWN5ID0gc3RhdGljX2Nhc3Q8V2ViUmVmZXJyZXJQb2xpY3k+KHNlbGVj
dGVkRnJhbWUtPmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCkpOwogCiAgICAgLy8gRmlsdGVy
IG91dCBjdXN0b20gbWVudSBlbGVtZW50cyBhbmQgYWRkIHRoZW0gaW50byB0aGUgZGF0YS4KLSAg
ICBwb3B1bGF0ZUN1c3RvbU1lbnVJdGVtcyhkZWZhdWx0TWVudSwgJmRhdGEpOworICAgIHBvcHVs
YXRlQ3VzdG9tTWVudUl0ZW1zKGRlZmF1bHRNZW51LmdldCgpLCAmZGF0YSk7CiAKICAgICBkYXRh
Lm5vZGUgPSByLmlubmVyTm9uU2hhcmVkTm9kZSgpOwogCkBAIC0zNzIsMTQgKzM3MSwxNCBAQCBQ
bGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBDb250ZXh0TWVudUNsaWVudEltcGw6OmdldEN1c3RvbU1l
bnVGcm9tRGVmYXVsdEl0ZW1zKAogICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgpKQogICAgICAg
ICBtX3dlYlZpZXctPmNsaWVudCgpLT5zaG93Q29udGV4dE1lbnUoc2VsZWN0ZWRfd2ViX2ZyYW1l
LCBkYXRhKTsKIAotICAgIHJldHVybiAwOworICAgIHJldHVybiBkZWZhdWx0TWVudTsKIH0KIAot
c3RhdGljIHZvaWQgcG9wdWxhdGVTdWJNZW51SXRlbXMoUGxhdGZvcm1NZW51RGVzY3JpcHRpb24g
aW5wdXRNZW51LCBXZWJWZWN0b3I8V2ViTWVudUl0ZW1JbmZvPiYgc3ViTWVudUl0ZW1zKQorc3Rh
dGljIHZvaWQgcG9wdWxhdGVTdWJNZW51SXRlbXMoY29uc3QgVmVjdG9yPENvbnRleHRNZW51SXRl
bT4mIGlucHV0TWVudSwgV2ViVmVjdG9yPFdlYk1lbnVJdGVtSW5mbz4mIHN1Yk1lbnVJdGVtcykK
IHsKICAgICBWZWN0b3I8V2ViTWVudUl0ZW1JbmZvPiBzdWJJdGVtczsKLSAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGlucHV0TWVudS0+c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgY29uc3QgQ29u
dGV4dE1lbnVJdGVtKiBpbnB1dEl0ZW0gPSAmaW5wdXRNZW51LT5hdChpKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGlucHV0TWVudS5zaXplKCk7ICsraSkgeworICAgICAgICBjb25zdCBD
b250ZXh0TWVudUl0ZW0qIGlucHV0SXRlbSA9ICZpbnB1dE1lbnUuYXQoaSk7CiAgICAgICAgIGlm
IChpbnB1dEl0ZW0tPmFjdGlvbigpIDwgQ29udGV4dE1lbnVJdGVtQmFzZUN1c3RvbVRhZyB8fCBp
bnB1dEl0ZW0tPmFjdGlvbigpID4gQ29udGV4dE1lbnVJdGVtTGFzdEN1c3RvbVRhZykKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogCkBAIC00MDAsNyArMzk5LDcgQEAgc3RhdGljIHZvaWQgcG9wdWxh
dGVTdWJNZW51SXRlbXMoUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gaW5wdXRNZW51LCBXZWJWZWN0
b3I8V2UKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFN1Ym1lbnVUeXBlOgogICAg
ICAgICAgICAgb3V0cHV0SXRlbS50eXBlID0gV2ViTWVudUl0ZW1JbmZvOjpTdWJNZW51OwotICAg
ICAgICAgICAgcG9wdWxhdGVTdWJNZW51SXRlbXMoaW5wdXRJdGVtLT5wbGF0Zm9ybVN1Yk1lbnUo
KSwgb3V0cHV0SXRlbS5zdWJNZW51SXRlbXMpOworICAgICAgICAgICAgcG9wdWxhdGVTdWJNZW51
SXRlbXMoaW5wdXRJdGVtLT5zdWJNZW51SXRlbXMoKSwgb3V0cHV0SXRlbS5zdWJNZW51SXRlbXMp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgc3ViSXRlbXMuYXBwZW5k
KG91dHB1dEl0ZW0pOwpAQCAtNDE0LDcgKzQxMyw3IEBAIHN0YXRpYyB2b2lkIHBvcHVsYXRlU3Vi
TWVudUl0ZW1zKFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIGlucHV0TWVudSwgV2ViVmVjdG9yPFdl
CiAKIHZvaWQgQ29udGV4dE1lbnVDbGllbnRJbXBsOjpwb3B1bGF0ZUN1c3RvbU1lbnVJdGVtcyhX
ZWJDb3JlOjpDb250ZXh0TWVudSogZGVmYXVsdE1lbnUsIFdlYkNvbnRleHRNZW51RGF0YSogZGF0
YSkKIHsKLSAgICBwb3B1bGF0ZVN1Yk1lbnVJdGVtcyhkZWZhdWx0TWVudS0+cGxhdGZvcm1EZXNj
cmlwdGlvbigpLCBkYXRhLT5jdXN0b21JdGVtcyk7CisgICAgcG9wdWxhdGVTdWJNZW51SXRlbXMo
ZGVmYXVsdE1lbnUtPml0ZW1zKCksIGRhdGEtPmN1c3RvbUl0ZW1zKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250
ZXh0TWVudUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRN
ZW51Q2xpZW50SW1wbC5oCmluZGV4IDk3ZWE5NjdhZmFkMmY4ZWJhZjNhOWZhMzVjMzgyMDZmMTdk
ZDBkNTUuLjRlNDFjNmEwYWJmM2ZkZWJlZGE5M2M0ZDMyMzY4Nzc5NTNiZTFiNDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRNZW51Q2xpZW50SW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRNZW51Q2xpZW50SW1wbC5oCkBA
IC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIENvbnRleHRNZW51Q2xpZW50SW1wbF9oCiAKICNpbmNs
dWRlICJDb250ZXh0TWVudUNsaWVudC5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC00Niw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgY29udGV4dE1lbnVEZXN0cm95ZWQoKSB7fQogICAgIHZpcnR1YWwgdm9pZCBjb250
ZXh0TWVudUl0ZW1TZWxlY3RlZChXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW0qLCBjb25zdCBXZWJD
b3JlOjpDb250ZXh0TWVudSopIHt9CiAgICAgdmlydHVhbCB2b2lkIGRvd25sb2FkVVJMKGNvbnN0
IFdlYkNvcmU6OktVUkwmKSB7fQotICAgIHZpcnR1YWwgV2ViQ29yZTo6UGxhdGZvcm1NZW51RGVz
Y3JpcHRpb24gZ2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMoV2ViQ29yZTo6Q29udGV4dE1l
bnUqKTsKKyAgICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29yZTo6Q29udGV4dE1lbnU+IGN1c3Rv
bWl6ZU1lbnUoUGFzc093blB0cjxXZWJDb3JlOjpDb250ZXh0TWVudT4pOwogICAgIHZpcnR1YWwg
Ym9vbCBpc1NwZWFraW5nKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgbG9v
a1VwSW5EaWN0aW9uYXJ5KFdlYkNvcmU6OkZyYW1lKikge30KICAgICB2aXJ0dWFsIHZvaWQgc2Vh
cmNoV2l0aEdvb2dsZShjb25zdCBXZWJDb3JlOjpGcmFtZSopIHt9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193177</attachid>
            <date>2013-03-14 13:39:36 -0700</date>
            <delta_ts>2013-04-03 07:45:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111882-20130314173327.patch</filename>
            <type>text/plain</type>
            <size>16374</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1ODQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWUwODY4OTM0NzliNjQ5
OGVkZjQ2MDkzNGVhNTViMTNkZjZkZGUxOC4uNWYzODNjN2NhMmE4YmIyZTQyZmRlNDliYWE2MTA3
YmVhYTcwMzhmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAzLTEzICBKZXN1
cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBbQ2hyb21pdW1dIFN3aXRjaCBDb250ZXh0TWVudSBpbXBsZW1lbnRhdGlvbiB0byBDUk9T
U19QTEFURk9STV9DT05URVhUX01FTlUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExMTg4MgorCisgICAgICAgIE5vdyBDaHJvbWl1bSB1c2VzIHRoZSBD
Uk9TU19QTEFURk9STV9DT05URVhUX01FTlVTCisgICAgICAgIFVTRSBmbGFnLiBUaGlzIGZsYWcg
cHJvdmlkZXMgYSBmdWxsIGNyb3NzLXBsYXRmb3JtCisgICAgICAgIHJlcHJlc2VudGF0aW9uIG9m
IGEgQ29udGV4dE1lbnUgYW5kIGEgQ29udGV4dE1lbnVJdGVtLgorICAgICAgICBUaGUgZW1iZWRk
ZXIgY2FuIHRoZW4gZGVjaWRlIGhvdyB0byBzaG93IHRoaXMgYW5kIG5laXRoZXIKKyAgICAgICAg
V2ViQ29yZSBub3IgV2ViQ29yZS9wbGF0Zm9ybSBuZWVkIHRvIGtub3cgYW55IHBsYXRmb3JtCisg
ICAgICAgIHNwZWNpZmljIGNvZGUgYWJvdXQgdGhlIG1lbnVzLCBldmVuIHRob3VnaCB0aGV5IGNv
dWxkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBuZWVkZWQsIG5vIGJlaGF2aW9yIGNoYW5nZXMu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudS5oOgorICAgICAgICAoQ29udGV4dE1l
bnUpOgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oOgorICAgICAgICAqIHBs
YXRmb3JtL1BsYXRmb3JtTWVudURlc2NyaXB0aW9uLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Db250ZXh0TWVudUNocm9taXVtLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRleHRNZW51OjpDb250ZXh0TWVudSk6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0TWVudTo6Z2V0Q29udGV4dE1lbnVJdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZXh0TWVudTo6Y3JlYXRlUGxhdGZvcm1Db250ZXh0TWVudUZyb21JdGVtcyk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudTo6cGxhdGZvcm1Db250ZXh0TWVudSk6CisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vQ29udGV4dE1lbnVJdGVtQ2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpwbGF0Zm9ybUNvbnRleHRNZW51SXRlbSk6CisKIDIw
MTMtMDMtMTQgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9z
c2Eub3JnPgogCiAgICAgICAgIFtFRkxdIFVzZSBDUk9TU19QTEFURk9STV9DT05URVhUX01FTlUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNWJiNjQ1YmNhZjZhYTk5ZjRjNjc5MWMwMGEx
ZTJmMzZmMjQzYjM1ZC4uYWE5Njk3NWNiMzQ4ODE4Mzk2M2YxOWU0M2Y4ZWY3ZjYwNmY1ZGU4OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMy0wMy0xMyAg
SmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lhQG9wZW5ib3NzYS5vcmc+CisK
KyAgICAgICAgW0Nocm9taXVtXSBTd2l0Y2ggQ29udGV4dE1lbnUgaW1wbGVtZW50YXRpb24gdG8g
Q1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE4ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGp1c3QgQ29udGV4dE1lbnVDbGllbnRJbXBsIHRvIHVzZSB0
aGUgQ1JPU1NfUExBVEZPUk1fQ09OVEVYVF9NRU5VUyBVU0UgZmxhZworICAgICAgICBieSBpbXBs
ZW1lbnRpbmcgY3VzdG9taXplTWVudSgpIGluc3RlYWQgb2YgZ2V0Q3VzdG9tTWVudUZyb21EZWZh
dWx0SXRlbXMoKQorICAgICAgICBhbmQgYnkgY2FsbGluZyBjb3JlTWVudS0+aXRlbXMoKSBpbnN0
ZWFkIG9mIGNvcmVNZW51LT5wbGF0Zm9ybURlc2NyaXB0aW9uKCkuCisKKyAgICAgICAgKiBmZWF0
dXJlcy5neXBpOiBhZGRlZCAnV1RGX1VTRV9DUk9TU19QTEFURk9STV9DT05URVhUX01FTlVTPTEn
CisgICAgICAgICogc3JjL0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkNvbnRleHRNZW51Q2xpZW50SW1wbDo6Y3VzdG9taXplTWVudSk6CisgICAgICAgIChXZWJL
aXQ6OnBvcHVsYXRlU3ViTWVudUl0ZW1zKToKKyAgICAgICAgKFdlYktpdDo6Q29udGV4dE1lbnVD
bGllbnRJbXBsOjpwb3B1bGF0ZUN1c3RvbU1lbnVJdGVtcyk6CisgICAgICAgICogc3JjL0NvbnRl
eHRNZW51Q2xpZW50SW1wbC5oOgorICAgICAgICAoQ29udGV4dE1lbnVDbGllbnRJbXBsKToKKwog
MjAxMy0wMy0xNCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAK
ICAgICAgICAgVW5yZXZpZXdlZC4gIFJvbGxlZCBDaHJvbWl1bSBERVBTIHRvIHIxODgwMDQuICBS
ZXF1ZXN0ZWQgYnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRN
ZW51LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5oCmluZGV4IDUzN2Mw
MDQ0YzU3YzliMjhlOWVlYTg0MzY1ZTM4MjRkMWFiNDEyNzIuLmU5M2U1OTA0ZDQwMjk5NGNjOGRh
YmYwMjM0MjkxNjk3OTQ5MTc2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0NvbnRleHRNZW51LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnUu
aApAQCAtOTcsOCArOTcsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFJldGFpblB0
cjxOU011dGFibGVBcnJheT4gbV9wbGF0Zm9ybURlc2NyaXB0aW9uOwogI2VsaWYgUExBVEZPUk0o
UVQpCiAgICAgICAgIFFMaXN0PENvbnRleHRNZW51SXRlbT4gbV9pdGVtczsKLSNlbGlmIFBMQVRG
T1JNKENIUk9NSVVNKQotICAgICAgICBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiBtX2l0ZW1zOwog
I2Vsc2UKICAgICAgICAgUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gbV9wbGF0Zm9ybURlc2NyaXB0
aW9uOwogI2lmIE9TKFdJTkNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Q29udGV4dE1lbnVJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0
ZW0uaAppbmRleCA5NTcyY2NjZmVhMzQ4NTdjMzljMWYwM2FmMzBlNDdjZjk4YzVkYzM1Li5iZTNj
ZmQzNDFkOWQ3ZGNmN2VhNGJiNGMxYTBhYzI3Y2I5ZjRhNWVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaApAQCAtMjE1LDIwICsyMTUsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIGJvb2wgY2hlY2tlZDsKICAgICAgICAgYm9vbCBlbmFibGVkOwog
ICAgIH07Ci0jZWxpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBzdHJ1Y3QgUGxhdGZvcm1NZW51
SXRlbURlc2NyaXB0aW9uIHsKLSAgICAgICAgUGxhdGZvcm1NZW51SXRlbURlc2NyaXB0aW9uKCkK
LSAgICAgICAgICAgIDogdHlwZShBY3Rpb25UeXBlKQotICAgICAgICAgICAgLCBhY3Rpb24oQ29u
dGV4dE1lbnVJdGVtVGFnTm9BY3Rpb24pCi0gICAgICAgICAgICAsIGNoZWNrZWQoZmFsc2UpCi0g
ICAgICAgICAgICAsIGVuYWJsZWQodHJ1ZSkgeyB9Ci0gICAgICAgIENvbnRleHRNZW51SXRlbVR5
cGUgdHlwZTsKLSAgICAgICAgQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uOwotICAgICAgICBTdHJp
bmcgdGl0bGU7Ci0gICAgICAgIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+IHN1Yk1lbnVJdGVtczsK
LSAgICAgICAgYm9vbCBjaGVja2VkOwotICAgICAgICBib29sIGVuYWJsZWQ7Ci0gICAgfTsKICNl
bHNlCiAgICAgdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb247CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVudURlc2Ny
aXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbnVEZXNjcmlwdGlv
bi5oCmluZGV4IDc3MjYxNGUzMmJjNzNiZWY2MThjYTA1NTBmYzg1YjE0ZTAyMWFiOGIuLmJhZTMz
OWFkMWE3NGU3Y2E4ZDhlYTQ2ODRiNTQzMGI4ZDk3MzdkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVudURlc2NyaXB0aW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW51RGVzY3JpcHRpb24uaApAQCAtMzQsOCArMzQsNiBA
QCBPQkpDX0NMQVNTIE5TTXV0YWJsZUFycmF5OwogdHlwZWRlZiBzdHJ1Y3QgX0d0a01lbnUgR3Rr
TWVudTsKICNlbGlmIFBMQVRGT1JNKFdYKQogY2xhc3Mgd3hNZW51OwotI2VsaWYgUExBVEZPUk0o
Q0hST01JVU0pCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKQEAgLTUwLDkgKzQ4LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHR5cGVk
ZWYgR3RrTWVudSogUGxhdGZvcm1NZW51RGVzY3JpcHRpb247CiAjZWxpZiBQTEFURk9STShXWCkK
ICAgICB0eXBlZGVmIHd4TWVudSogUGxhdGZvcm1NZW51RGVzY3JpcHRpb247Ci0jZWxpZiBQTEFU
Rk9STShDSFJPTUlVTSkKLSAgICBjbGFzcyBDb250ZXh0TWVudUl0ZW07Ci0gICAgdHlwZWRlZiBj
b25zdCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiogUGxhdGZvcm1NZW51RGVzY3JpcHRpb247CiAj
ZWxzZQogICAgIHR5cGVkZWYgdm9pZCogUGxhdGZvcm1NZW51RGVzY3JpcHRpb247CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NvbnRleHRNZW51
Q2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ29udGV4dE1l
bnVDaHJvbWl1bS5jcHAKaW5kZXggYTkyOGNhZDQ1NTFiMDU2MGQwMDY4NDIxOGU0YzE3ZmE3M2Ix
ZGMyYi4uNzYyMjkxZjQxZDFiM2QxNzFkMmJkNTE1OGNlOWIzMmU3OWEzNDVlMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ29udGV4dE1lbnVDaHJvbWl1bS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ29udGV4dE1lbnVDaHJv
bWl1bS5jcHAKQEAgLTMxLDc3ICszMSwzMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkNvbnRleHRNZW51LmgiCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8gVGhpcyBpcyBh
IHN0dWIgaW1wbGVtZW50YXRpb24gb2YgV2ViS2l0J3MgQ29udGV4dE1lbnUgY2xhc3MgdGhhdCBk
b2VzCi0vLyBub3RoaW5nLgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1NZW51RGVzY3JpcHRpb24uaCIKIAotQ29udGV4dE1lbnU6OkNvbnRleHRNZW51KCkK
LXsKLX0KLQotQ29udGV4dE1lbnU6OkNvbnRleHRNZW51KGNvbnN0IFBsYXRmb3JtTWVudURlc2Ny
aXB0aW9uIG1lbnUpCi17Ci19Ci0KLUNvbnRleHRNZW51Ojp+Q29udGV4dE1lbnUoKQotewotfQot
Ci11bnNpZ25lZCBDb250ZXh0TWVudTo6aXRlbUNvdW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4g
bV9pdGVtcy5zaXplKCk7Ci19CituYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQgQ29udGV4dE1l
bnU6Omluc2VydEl0ZW0odW5zaWduZWQgcG9zaXRpb24sIENvbnRleHRNZW51SXRlbSYgaXRlbSkK
K0NvbnRleHRNZW51OjpDb250ZXh0TWVudShQbGF0Zm9ybUNvbnRleHRNZW51IG1lbnUpCiB7Ci0g
ICAgbV9pdGVtcy5pbnNlcnQocG9zaXRpb24sIGl0ZW0pOworICAgIGdldENvbnRleHRNZW51SXRl
bXMobWVudSwgbV9pdGVtcyk7CiB9CiAKLXZvaWQgQ29udGV4dE1lbnU6OmFwcGVuZEl0ZW0oQ29u
dGV4dE1lbnVJdGVtJiBpdGVtKQordm9pZCBDb250ZXh0TWVudTo6Z2V0Q29udGV4dE1lbnVJdGVt
cyhQbGF0Zm9ybUNvbnRleHRNZW51LCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiYpCiB7Ci0gICAg
bV9pdGVtcy5hcHBlbmQoaXRlbSk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotQ29udGV4
dE1lbnVJdGVtKiBDb250ZXh0TWVudTo6aXRlbVdpdGhBY3Rpb24odW5zaWduZWQgYWN0aW9uKQor
UGxhdGZvcm1Db250ZXh0TWVudSBDb250ZXh0TWVudTo6Y3JlYXRlUGxhdGZvcm1Db250ZXh0TWVu
dUZyb21JdGVtcyhjb25zdCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiYpCiB7Ci0gICAgVmVjdG9y
PFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+Kj4gbWVudUl0ZW1TdGFjazsKLSAgICBtZW51SXRlbVN0
YWNrLmFwcGVuZCgmbV9pdGVtcyk7Ci0gICAgd2hpbGUgKCFtZW51SXRlbVN0YWNrLmlzRW1wdHko
KSkgewotICAgICAgICBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiYgaXRlbXMgPSAqKG1lbnVJdGVt
U3RhY2subGFzdCgpKTsKLSAgICAgICAgbWVudUl0ZW1TdGFjay5yZW1vdmVMYXN0KCk7Ci0gICAg
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaXRlbXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAg
ICAgIGlmIChpdGVtc1tpXS5hY3Rpb24oKSA9PSBzdGF0aWNfY2FzdDxDb250ZXh0TWVudUFjdGlv
bj4oYWN0aW9uKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gJml0ZW1zW2ldOwotICAgICAgICAg
ICAgaWYgKGl0ZW1zW2ldLnR5cGUoKSA9PSBTdWJtZW51VHlwZSkKLSAgICAgICAgICAgICAgICBt
ZW51SXRlbVN0YWNrLmFwcGVuZChjb25zdF9jYXN0PFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+Kj4o
aXRlbXNbaV0ucGxhdGZvcm1TdWJNZW51KCkpKTsKLSAgICAgICAgfQotICAgIH0KKyAgICBub3RJ
bXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAwOwogfQogCi1Db250ZXh0TWVudUl0ZW0qIENvbnRl
eHRNZW51OjppdGVtQXRJbmRleCh1bnNpZ25lZCBpbmRleCwgY29uc3QgUGxhdGZvcm1NZW51RGVz
Y3JpcHRpb24gcGxhdGZvcm1EZXNjcmlwdGlvbikKK1BsYXRmb3JtQ29udGV4dE1lbnUgQ29udGV4
dE1lbnU6OnBsYXRmb3JtQ29udGV4dE1lbnUoKSBjb25zdAogewotICAgIHJldHVybiAmbV9pdGVt
c1tpbmRleF07CisgICAgcmV0dXJuIGNyZWF0ZVBsYXRmb3JtQ29udGV4dE1lbnVGcm9tSXRlbXMo
bV9pdGVtcyk7CiB9CiAKLXZvaWQgQ29udGV4dE1lbnU6OnNldFBsYXRmb3JtRGVzY3JpcHRpb24o
UGxhdGZvcm1NZW51RGVzY3JpcHRpb24gbWVudSkKLXsKIH0KLQotUGxhdGZvcm1NZW51RGVzY3Jp
cHRpb24gQ29udGV4dE1lbnU6OnBsYXRmb3JtRGVzY3JpcHRpb24oKSBjb25zdAotewotICAgIHJl
dHVybiAmbV9pdGVtczsKLX0KLQotUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gQ29udGV4dE1lbnU6
OnJlbGVhc2VQbGF0Zm9ybURlc2NyaXB0aW9uKCkKLXsKLSAgICByZXR1cm4gMDsKLX0KLQotVmVj
dG9yPENvbnRleHRNZW51SXRlbT4gY29udGV4dE1lbnVJdGVtVmVjdG9yKGNvbnN0IFBsYXRmb3Jt
TWVudURlc2NyaXB0aW9uIG1lbnVEZXNjcmlwdGlvbikKLXsKLSAgICByZXR1cm4gKm1lbnVEZXNj
cmlwdGlvbjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ29udGV4dE1lbnVJdGVtQ2hyb21pdW0uY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ29udGV4dE1lbnVJdGVtQ2hyb21pdW0u
Y3BwCmluZGV4IDBlZTdlZTlhN2EzMmZjNDgwNDllYmMyM2RhZWI3NTkyNjczYjU1MzMuLjNiYzll
NTVmNTc1MDZkMWQ2ZDcxOTY5ZTk1NGE4Nzk2ZWQ2OGU1ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NvbnRleHRNZW51SXRlbUNocm9taXVtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Db250ZXh0TWVudUl0ZW1DaHJvbWl1
bS5jcHAKQEAgLTMxLDEwMiArMzEsMTYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJDb250ZXh0TWVudUl0ZW0uaCIKIAotI2luY2x1ZGUgIkNvbnRleHRNZW51LmgiCisjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBUaGlzIGlz
IGEgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBXZWJLaXQncyBDb250ZXh0TWVudSBjbGFzcyB0aGF0
IGRvZXMKIC8vIG5vdGhpbmcuCi0KLUNvbnRleHRNZW51SXRlbTo6Q29udGV4dE1lbnVJdGVtKFBs
YXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbiBpdGVtKQotewotfQotCi1Db250ZXh0TWVudUl0ZW06
OkNvbnRleHRNZW51SXRlbShDb250ZXh0TWVudSogc3ViTWVudSkKLXsKLX0KLQotQ29udGV4dE1l
bnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnVJdGVtVHlwZSB0eXBlLCBDb250ZXh0
TWVudUFjdGlvbiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUsIENvbnRleHRNZW51KiBzdWJN
ZW51KQotewotICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50eXBlID0gdHlwZTsKLSAgICBtX3Bs
YXRmb3JtRGVzY3JpcHRpb24uYWN0aW9uID0gYWN0aW9uOwotICAgIG1fcGxhdGZvcm1EZXNjcmlw
dGlvbi50aXRsZSA9IHRpdGxlOwotICAgIGlmIChzdWJNZW51KQotICAgICAgICBzZXRTdWJNZW51
KHN1Yk1lbnUpOwotfQotCi1Db250ZXh0TWVudUl0ZW06On5Db250ZXh0TWVudUl0ZW0oKQotewot
fQotCi1QbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24gQ29udGV4dE1lbnVJdGVtOjpyZWxlYXNl
UGxhdGZvcm1EZXNjcmlwdGlvbigpCi17Ci0gICAgcmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlv
bjsKLX0KLQotQ29udGV4dE1lbnVJdGVtVHlwZSBDb250ZXh0TWVudUl0ZW06OnR5cGUoKSBjb25z
dAotewotICAgIHJldHVybiBtX3BsYXRmb3JtRGVzY3JpcHRpb24udHlwZTsKLX0KLQotQ29udGV4
dE1lbnVBY3Rpb24gQ29udGV4dE1lbnVJdGVtOjphY3Rpb24oKSBjb25zdAoteyAKLSAgICByZXR1
cm4gbV9wbGF0Zm9ybURlc2NyaXB0aW9uLmFjdGlvbjsKLX0KLQotU3RyaW5nIENvbnRleHRNZW51
SXRlbTo6dGl0bGUoKSBjb25zdCAKLXsKLSAgICByZXR1cm4gbV9wbGF0Zm9ybURlc2NyaXB0aW9u
LnRpdGxlOwotfQotCi1ib29sIENvbnRleHRNZW51SXRlbTo6Y2hlY2tlZCgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5jaGVja2VkOwotfQotCi1ib29sIENvbnRl
eHRNZW51SXRlbTo6ZW5hYmxlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGxhdGZvcm1EZXNj
cmlwdGlvbi5lbmFibGVkOwotfQotCi1QbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBDb250ZXh0TWVu
dUl0ZW06OnBsYXRmb3JtU3ViTWVudSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICZtX3BsYXRmb3Jt
RGVzY3JpcHRpb24uc3ViTWVudUl0ZW1zOwotfQotCi12b2lkIENvbnRleHRNZW51SXRlbTo6c2V0
VHlwZShDb250ZXh0TWVudUl0ZW1UeXBlIHR5cGUpCi17Ci0gICAgbV9wbGF0Zm9ybURlc2NyaXB0
aW9uLnR5cGUgPSB0eXBlOwotfQotCi12b2lkIENvbnRleHRNZW51SXRlbTo6c2V0QWN0aW9uKENv
bnRleHRNZW51QWN0aW9uIGFjdGlvbikKLXsKLSAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24uYWN0
aW9uID0gYWN0aW9uOwotfQotCi12b2lkIENvbnRleHRNZW51SXRlbTo6c2V0VGl0bGUoY29uc3Qg
U3RyaW5nJiB0aXRsZSkKLXsKLSAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24udGl0bGUgPSB0aXRs
ZTsKLX0KLQotdm9pZCBDb250ZXh0TWVudUl0ZW06OnNldFN1Yk1lbnUoQ29udGV4dE1lbnUqIG1l
bnUpCi17Ci0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1Yk1lbnVJdGVtcyA9ICptZW51LT5w
bGF0Zm9ybURlc2NyaXB0aW9uKCk7Ci19Ci0KLXZvaWQgQ29udGV4dE1lbnVJdGVtOjpzZXRTdWJN
ZW51KFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBpdGVtcykKLXsKLSAgICBtX3BsYXRmb3JtRGVz
Y3JpcHRpb24uc3ViTWVudUl0ZW1zID0gaXRlbXM7Ci19Ci0KLXZvaWQgQ29udGV4dE1lbnVJdGVt
OjpzZXRDaGVja2VkKGJvb2wgY2hlY2tlZCkKLXsKLSAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24u
Y2hlY2tlZCA9IGNoZWNrZWQ7Ci19Ci0KLXZvaWQgQ29udGV4dE1lbnVJdGVtOjpzZXRFbmFibGVk
KGJvb2wgZW5hYmxlZCkKK3ZvaWQqIENvbnRleHRNZW51SXRlbTo6cGxhdGZvcm1Db250ZXh0TWVu
dUl0ZW0oKSBjb25zdAogewotICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5lbmFibGVkID0gZW5h
YmxlZDsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1
cmVzLmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKaW5kZXggOWEy
YWNjMjk4YjBlNGY3ODBjYmM2YmM2MWNhMzNhZjUxZTQ4MGRmMy4uOWFiOTQwNDVmODE4MWM0MjNi
ZDZmODJkNTlmNjliYWRkNzA5NmY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9mZWF0dXJlcy5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lw
aQpAQCAtMTQ5LDYgKzE0OSw3IEBACiAgICAgICAnV1RGX1VTRV9TS0lBX1RFWFQ9PChlbmFibGVf
c2tpYV90ZXh0KScsCiAgICAgICAnV1RGX1VTRV9XRUJQPTEnLAogICAgICAgJ1dURl9VU0VfV0VC
S0lUX0lNQUdFX0RFQ09ERVJTPTEnLAorICAgICAgJ1dURl9VU0VfQ1JPU1NfUExBVEZPUk1fQ09O
VEVYVF9NRU5VUz0xJywKICAgICBdLAogICAgICMgV2UgaGF2ZSB0byBuZXN0IHZhcmlhYmxlcyBp
bnNpZGUgdmFyaWFibGVzIHNvIHRoYXQgdGhleSBjYW4gYmUgb3ZlcnJpZGRlbgogICAgICMgdGhy
b3VnaCBHWVBfREVGSU5FUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9D
b250ZXh0TWVudUNsaWVudEltcGwuY3BwCmluZGV4IGU3Nzc2NGFmZTVkMTlmNjdmNjIxNmVlZDM4
ZGFmODA4MzVlYTliOGMuLjg0MWU5ZWFlOWM0YjQ5MmZlZTYyNjJhMDIyZTEzOTZhM2JmNjA2MWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRNZW51Q2xpZW50
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dE1lbnVDbGll
bnRJbXBsLmNwcApAQCAtMTc4LDggKzE3OCw3IEBAIHN0YXRpYyBTdHJpbmcgc2VsZWN0TWlzc3Bl
bGxpbmdBc3luYyhGcmFtZSogc2VsZWN0ZWRGcmFtZSwgRG9jdW1lbnRNYXJrZXImIG1hcmtlCiAg
ICAgcmV0dXJuIG1hcmtlclJhbmdlLT50ZXh0KCk7CiB9CiAKLVBsYXRmb3JtTWVudURlc2NyaXB0
aW9uIENvbnRleHRNZW51Q2xpZW50SW1wbDo6Z2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMo
Ci0gICAgQ29udGV4dE1lbnUqIGRlZmF1bHRNZW51KQorUGFzc093blB0cjxXZWJDb3JlOjpDb250
ZXh0TWVudT4gQ29udGV4dE1lbnVDbGllbnRJbXBsOjpjdXN0b21pemVNZW51KFBhc3NPd25QdHI8
V2ViQ29yZTo6Q29udGV4dE1lbnU+IGRlZmF1bHRNZW51KQogewogICAgIC8vIERpc3BsYXlpbmcg
dGhlIGNvbnRleHQgbWVudSBpbiB0aGlzIGZ1bmN0aW9uIGlzIGEgYmlnIGhhY2sgYXMgd2UgZG9u
J3QKICAgICAvLyBoYXZlIGNvbnRleHQsIGkuZS4gd2hldGhlciB0aGlzIGlzIGJlaW5nIGludm9r
ZWQgdmlhIGEgc2NyaXB0IG9yIGluCkBAIC0xODcsNyArMTg2LDcgQEAgUGxhdGZvcm1NZW51RGVz
Y3JpcHRpb24gQ29udGV4dE1lbnVDbGllbnRJbXBsOjpnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJ
dGVtcygKICAgICAvLyBLZXlib2FyZCBldmVudHMgS2V5VktfQVBQUywgU2hpZnQrRjEwKS4gQ2hl
Y2sgaWYgdGhpcyBpcyBiZWluZyBpbnZva2VkCiAgICAgLy8gaW4gcmVzcG9uc2UgdG8gdGhlIGFi
b3ZlIGlucHV0IGV2ZW50cyBiZWZvcmUgcG9wcGluZyB1cCB0aGUgY29udGV4dCBtZW51LgogICAg
IGlmICghbV93ZWJWaWV3LT5jb250ZXh0TWVudUFsbG93ZWQoKSkKLSAgICAgICAgcmV0dXJuIDA7
CisgICAgICAgIHJldHVybiBkZWZhdWx0TWVudTsKIAogICAgIEhpdFRlc3RSZXN1bHQgciA9IG1f
d2ViVmlldy0+cGFnZSgpLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS0+aGl0VGVzdFJlc3VsdCgp
OwogICAgIEZyYW1lKiBzZWxlY3RlZEZyYW1lID0gci5pbm5lck5vZGVGcmFtZSgpOwpAQCAtMzI2
LDcgKzMyNSw3IEBAIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51Q2xpZW50SW1w
bDo6Z2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMoCiAgICAgICAgICAgICAgICAgbV93ZWJW
aWV3LT5mb2N1c2VkV2ViQ29yZUZyYW1lKCktPmVkaXRvcigpLT5pc0NvbnRpbnVvdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCgpOwogICAgICAgICAgICAgLy8gU3BlbGxjaGVja2luZyBtaWdodCBiZSBl
bmFibGVkIGZvciB0aGUgZmllbGQsIGJ1dCBjb3VsZCBiZSBkaXNhYmxlZCBvbiB0aGUgbm9kZS4K
ICAgICAgICAgICAgIGlmIChtX3dlYlZpZXctPmZvY3VzZWRXZWJDb3JlRnJhbWUoKS0+ZWRpdG9y
KCktPmlzU3BlbGxDaGVja2luZ0VuYWJsZWRJbkZvY3VzZWROb2RlKCkpIHsKLSAgICAgICAgICAg
ICAgICBkYXRhLm1pc3NwZWxsZWRXb3JkID0gc2VsZWN0TWlzc3BlbGxlZFdvcmQoZGVmYXVsdE1l
bnUsIHNlbGVjdGVkRnJhbWUpOworICAgICAgICAgICAgICAgIGRhdGEubWlzc3BlbGxlZFdvcmQg
PSBzZWxlY3RNaXNzcGVsbGVkV29yZChkZWZhdWx0TWVudS5nZXQoKSwgc2VsZWN0ZWRGcmFtZSk7
CiAgICAgICAgICAgICAgICAgaWYgKG1fd2ViVmlldy0+c3BlbGxDaGVja0NsaWVudCgpKSB7CiAg
ICAgICAgICAgICAgICAgICAgIGludCBtaXNzcGVsbGVkT2Zmc2V0LCBtaXNzcGVsbGVkTGVuZ3Ro
OwogICAgICAgICAgICAgICAgICAgICBtX3dlYlZpZXctPnNwZWxsQ2hlY2tDbGllbnQoKS0+c3Bl
bGxDaGVjaygKQEAgLTM2NCw3ICszNjMsNyBAQCBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBDb250
ZXh0TWVudUNsaWVudEltcGw6OmdldEN1c3RvbU1lbnVGcm9tRGVmYXVsdEl0ZW1zKAogICAgIGRh
dGEucmVmZXJyZXJQb2xpY3kgPSBzdGF0aWNfY2FzdDxXZWJSZWZlcnJlclBvbGljeT4oc2VsZWN0
ZWRGcmFtZS0+ZG9jdW1lbnQoKS0+cmVmZXJyZXJQb2xpY3koKSk7CiAKICAgICAvLyBGaWx0ZXIg
b3V0IGN1c3RvbSBtZW51IGVsZW1lbnRzIGFuZCBhZGQgdGhlbSBpbnRvIHRoZSBkYXRhLgotICAg
IHBvcHVsYXRlQ3VzdG9tTWVudUl0ZW1zKGRlZmF1bHRNZW51LCAmZGF0YSk7CisgICAgcG9wdWxh
dGVDdXN0b21NZW51SXRlbXMoZGVmYXVsdE1lbnUuZ2V0KCksICZkYXRhKTsKIAogICAgIGRhdGEu
bm9kZSA9IHIuaW5uZXJOb25TaGFyZWROb2RlKCk7CiAKQEAgLTM3MiwxNCArMzcxLDE0IEBAIFBs
YXRmb3JtTWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51Q2xpZW50SW1wbDo6Z2V0Q3VzdG9tTWVu
dUZyb21EZWZhdWx0SXRlbXMoCiAgICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCiAgICAgICAg
IG1fd2ViVmlldy0+Y2xpZW50KCktPnNob3dDb250ZXh0TWVudShzZWxlY3RlZF93ZWJfZnJhbWUs
IGRhdGEpOwogCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGRlZmF1bHRNZW51OwogfQogCi1z
dGF0aWMgdm9pZCBwb3B1bGF0ZVN1Yk1lbnVJdGVtcyhQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBp
bnB1dE1lbnUsIFdlYlZlY3RvcjxXZWJNZW51SXRlbUluZm8+JiBzdWJNZW51SXRlbXMpCitzdGF0
aWMgdm9pZCBwb3B1bGF0ZVN1Yk1lbnVJdGVtcyhjb25zdCBWZWN0b3I8Q29udGV4dE1lbnVJdGVt
PiYgaW5wdXRNZW51LCBXZWJWZWN0b3I8V2ViTWVudUl0ZW1JbmZvPiYgc3ViTWVudUl0ZW1zKQog
ewogICAgIFZlY3RvcjxXZWJNZW51SXRlbUluZm8+IHN1Ykl0ZW1zOwotICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgaW5wdXRNZW51LT5zaXplKCk7ICsraSkgewotICAgICAgICBjb25zdCBDb250
ZXh0TWVudUl0ZW0qIGlucHV0SXRlbSA9ICZpbnB1dE1lbnUtPmF0KGkpOworICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgaW5wdXRNZW51LnNpemUoKTsgKytpKSB7CisgICAgICAgIGNvbnN0IENv
bnRleHRNZW51SXRlbSogaW5wdXRJdGVtID0gJmlucHV0TWVudS5hdChpKTsKICAgICAgICAgaWYg
KGlucHV0SXRlbS0+YWN0aW9uKCkgPCBDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9tVGFnIHx8IGlu
cHV0SXRlbS0+YWN0aW9uKCkgPiBDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFnKQogICAgICAg
ICAgICAgY29udGludWU7CiAKQEAgLTQwMCw3ICszOTksNyBAQCBzdGF0aWMgdm9pZCBwb3B1bGF0
ZVN1Yk1lbnVJdGVtcyhQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBpbnB1dE1lbnUsIFdlYlZlY3Rv
cjxXZQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3VibWVudVR5cGU6CiAgICAg
ICAgICAgICBvdXRwdXRJdGVtLnR5cGUgPSBXZWJNZW51SXRlbUluZm86OlN1Yk1lbnU7Ci0gICAg
ICAgICAgICBwb3B1bGF0ZVN1Yk1lbnVJdGVtcyhpbnB1dEl0ZW0tPnBsYXRmb3JtU3ViTWVudSgp
LCBvdXRwdXRJdGVtLnN1Yk1lbnVJdGVtcyk7CisgICAgICAgICAgICBwb3B1bGF0ZVN1Yk1lbnVJ
dGVtcyhpbnB1dEl0ZW0tPnN1Yk1lbnVJdGVtcygpLCBvdXRwdXRJdGVtLnN1Yk1lbnVJdGVtcyk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBzdWJJdGVtcy5hcHBlbmQo
b3V0cHV0SXRlbSk7CkBAIC00MTQsNyArNDEzLDcgQEAgc3RhdGljIHZvaWQgcG9wdWxhdGVTdWJN
ZW51SXRlbXMoUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gaW5wdXRNZW51LCBXZWJWZWN0b3I8V2UK
IAogdm9pZCBDb250ZXh0TWVudUNsaWVudEltcGw6OnBvcHVsYXRlQ3VzdG9tTWVudUl0ZW1zKFdl
YkNvcmU6OkNvbnRleHRNZW51KiBkZWZhdWx0TWVudSwgV2ViQ29udGV4dE1lbnVEYXRhKiBkYXRh
KQogewotICAgIHBvcHVsYXRlU3ViTWVudUl0ZW1zKGRlZmF1bHRNZW51LT5wbGF0Zm9ybURlc2Ny
aXB0aW9uKCksIGRhdGEtPmN1c3RvbUl0ZW1zKTsKKyAgICBwb3B1bGF0ZVN1Yk1lbnVJdGVtcyhk
ZWZhdWx0TWVudS0+aXRlbXMoKSwgZGF0YS0+Y3VzdG9tSXRlbXMpOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRl
eHRNZW51Q2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dE1l
bnVDbGllbnRJbXBsLmgKaW5kZXggOTdlYTk2N2FmYWQyZjhlYmFmM2E5ZmEzNWMzODIwNmYxN2Rk
MGQ1NS4uNDY5N2M5ODQ1NmQ3YjRjOGI4ZWIwYWY5MjViYTEyOWYxYmRiZjI2ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmgKQEAg
LTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0TWVudURlc3Ry
b3llZCgpIHt9CiAgICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51SXRlbVNlbGVjdGVkKFdlYkNv
cmU6OkNvbnRleHRNZW51SXRlbSosIGNvbnN0IFdlYkNvcmU6OkNvbnRleHRNZW51Kikge30KICAg
ICB2aXJ0dWFsIHZvaWQgZG93bmxvYWRVUkwoY29uc3QgV2ViQ29yZTo6S1VSTCYpIHt9Ci0gICAg
dmlydHVhbCBXZWJDb3JlOjpQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBnZXRDdXN0b21NZW51RnJv
bURlZmF1bHRJdGVtcyhXZWJDb3JlOjpDb250ZXh0TWVudSopOworICAgIHZpcnR1YWwgUGFzc093
blB0cjxXZWJDb3JlOjpDb250ZXh0TWVudT4gY3VzdG9taXplTWVudShQYXNzT3duUHRyPFdlYkNv
cmU6OkNvbnRleHRNZW51Pik7CiAgICAgdmlydHVhbCBib29sIGlzU3BlYWtpbmcoKSB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBsb29rVXBJbkRpY3Rpb25hcnkoV2ViQ29yZTo6
RnJhbWUqKSB7fQogICAgIHZpcnR1YWwgdm9pZCBzZWFyY2hXaXRoR29vZ2xlKGNvbnN0IFdlYkNv
cmU6OkZyYW1lKikge30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196351</attachid>
            <date>2013-04-03 07:45:39 -0700</date>
            <delta_ts>2013-04-06 17:32:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111882-20130403114315.patch</filename>
            <type>text/plain</type>
            <size>16440</size>
            <attacher name="Jesus Sanchez-Palencia">jesus</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3NTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDJhMTlkNDc2NzNkNjg0
YzJhZGU2YmMzOTE3ZWQzZDJjMzMyM2Q3ZS4uNTBiMmNhZDcyZjFmYzU5ZTAwOGExZTM5MDk2ZWMx
OWJlZjRhNjVmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAzLTEzICBKZXN1
cyBTYW5jaGV6LVBhbGVuY2lhICA8amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAg
ICAgICBbQ2hyb21pdW1dIFN3aXRjaCBDb250ZXh0TWVudSBpbXBsZW1lbnRhdGlvbiB0byBDUk9T
U19QTEFURk9STV9DT05URVhUX01FTlUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTExMTg4MgorCisgICAgICAgIE5vdyBDaHJvbWl1bSB1c2VzIHRoZSBD
Uk9TU19QTEFURk9STV9DT05URVhUX01FTlVTCisgICAgICAgIFVTRSBmbGFnLiBUaGlzIGZsYWcg
cHJvdmlkZXMgYSBmdWxsIGNyb3NzLXBsYXRmb3JtCisgICAgICAgIHJlcHJlc2VudGF0aW9uIG9m
IGEgQ29udGV4dE1lbnUgYW5kIGEgQ29udGV4dE1lbnVJdGVtLgorICAgICAgICBUaGUgZW1iZWRk
ZXIgY2FuIHRoZW4gZGVjaWRlIGhvdyB0byBzaG93IHRoaXMgYW5kIG5laXRoZXIKKyAgICAgICAg
V2ViQ29yZSBub3IgV2ViQ29yZS9wbGF0Zm9ybSBuZWVkIHRvIGtub3cgYW55IHBsYXRmb3JtCisg
ICAgICAgIHNwZWNpZmljIGNvZGUgYWJvdXQgdGhlIG1lbnVzLCBldmVuIHRob3VnaCB0aGV5IGNv
dWxkLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBuZWVkZWQsIG5vIGJlaGF2aW9yIGNoYW5nZXMu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudS5oOgorICAgICAgICAoQ29udGV4dE1l
bnUpOgorICAgICAgICAqIHBsYXRmb3JtL0NvbnRleHRNZW51SXRlbS5oOgorICAgICAgICAqIHBs
YXRmb3JtL1BsYXRmb3JtTWVudURlc2NyaXB0aW9uLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9Db250ZXh0TWVudUNocm9taXVtLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRleHRNZW51OjpDb250ZXh0TWVudSk6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0TWVudTo6Z2V0Q29udGV4dE1lbnVJdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZXh0TWVudTo6Y3JlYXRlUGxhdGZvcm1Db250ZXh0TWVudUZyb21JdGVtcyk6CisgICAgICAg
IChXZWJDb3JlOjpDb250ZXh0TWVudTo6cGxhdGZvcm1Db250ZXh0TWVudSk6CisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vQ29udGV4dE1lbnVJdGVtQ2hyb21pdW0uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtOjpwbGF0Zm9ybUNvbnRleHRNZW51SXRlbSk6CisKIDIw
MTMtMDMtMjggIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9z
c2Eub3JnPgogCiAgICAgICAgIFtRdF0gU3dpdGNoIENvbnRleHRNZW51IGltcGxlbWVudGF0aW9u
IHRvIENST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpp
bmRleCBiZGRmNzU1YTNmZjExMGJhZmZkMmFkNWFkMmNmMjc3ZDYzMWRhYmM2Li41ZTBkYmU0Yjdk
Yjc0Nzk0NTE3YWY5MzQzOTM5ZDgwZTVmYWI1YWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTAzLTEzICBKZXN1cyBTYW5jaGV6LVBhbGVuY2lhICA8
amVzdXMucGFsZW5jaWFAb3BlbmJvc3NhLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIFN3aXRj
aCBDb250ZXh0TWVudSBpbXBsZW1lbnRhdGlvbiB0byBDUk9TU19QTEFURk9STV9DT05URVhUX01F
TlUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTg4
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkanVz
dCBDb250ZXh0TWVudUNsaWVudEltcGwgdG8gdXNlIHRoZSBDUk9TU19QTEFURk9STV9DT05URVhU
X01FTlVTIFVTRSBmbGFnCisgICAgICAgIGJ5IGltcGxlbWVudGluZyBjdXN0b21pemVNZW51KCkg
aW5zdGVhZCBvZiBnZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcygpCisgICAgICAgIGFuZCBi
eSBjYWxsaW5nIGNvcmVNZW51LT5pdGVtcygpIGluc3RlYWQgb2YgY29yZU1lbnUtPnBsYXRmb3Jt
RGVzY3JpcHRpb24oKS4KKworICAgICAgICAqIGZlYXR1cmVzLmd5cGk6IGFkZGVkICdXVEZfVVNF
X0NST1NTX1BMQVRGT1JNX0NPTlRFWFRfTUVOVVM9MScKKyAgICAgICAgKiBzcmMvQ29udGV4dE1l
bnVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q29udGV4dE1lbnVDbGllbnRJbXBs
OjpjdXN0b21pemVNZW51KToKKyAgICAgICAgKFdlYktpdDo6cG9wdWxhdGVTdWJNZW51SXRlbXMp
OgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0TWVudUNsaWVudEltcGw6OnBvcHVsYXRlQ3VzdG9t
TWVudUl0ZW1zKToKKyAgICAgICAgKiBzcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmg6CisgICAg
ICAgIChDb250ZXh0TWVudUNsaWVudEltcGwpOgorCiAyMDEzLTA0LTAzICBNaWtoYWlsIE5hZ2Fu
b3YgIDxtbmFnYW5vdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBJbXBsZW1l
bnQgdGFyZ2V0LWRlbnNpdHlEcGkgdmlld3BvcnQgcHJvcGVydHkgZW11bGF0aW9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vQ29udGV4dE1lbnUuaAppbmRleCBlZTc5OWRjZGQ3OWRjNTA5MmIxZDA4MGM3
ZTk4ODNmYjc5MjY4N2I5Li5lZjJkYmJiZGYyZmEwOGVmNzc2NjhhNTljOTg2OGIxM2U5ODI4MGI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmgKQEAgLTk1LDggKzk1LDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogI2lmIFBMQVRGT1JNKE1BQykKICAgICAgICAgLy8gS2VlcCB0
aGlzIGluIHN5bmMgd2l0aCB0aGUgUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gdHlwZWRlZgogICAg
ICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IG1fcGxhdGZvcm1EZXNjcmlwdGlvbjsKLSNl
bGlmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgICAgICBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiBt
X2l0ZW1zOwogI2Vsc2UKICAgICAgICAgUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gbV9wbGF0Zm9y
bURlc2NyaXB0aW9uOwogI2lmIE9TKFdJTkNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250
ZXh0TWVudUl0ZW0uaAppbmRleCA0ODc4NjYzYjU2ZGM5NTc3ZmM3NWExNDFlZjc2MTgxNjRhMTIz
MDQ2Li4yZTNjYWVhZWQwN2EzMWZiOGI4NzUwOWViOTNjOTY1NWFhNWRjYjRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaApAQCAtMTk5LDIwICsxOTksNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgY2hlY2tlZDsKICAgICAgICAgYm9vbCBl
bmFibGVkOwogICAgIH07Ci0jZWxpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBzdHJ1Y3QgUGxh
dGZvcm1NZW51SXRlbURlc2NyaXB0aW9uIHsKLSAgICAgICAgUGxhdGZvcm1NZW51SXRlbURlc2Ny
aXB0aW9uKCkKLSAgICAgICAgICAgIDogdHlwZShBY3Rpb25UeXBlKQotICAgICAgICAgICAgLCBh
Y3Rpb24oQ29udGV4dE1lbnVJdGVtVGFnTm9BY3Rpb24pCi0gICAgICAgICAgICAsIGNoZWNrZWQo
ZmFsc2UpCi0gICAgICAgICAgICAsIGVuYWJsZWQodHJ1ZSkgeyB9Ci0gICAgICAgIENvbnRleHRN
ZW51SXRlbVR5cGUgdHlwZTsKLSAgICAgICAgQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uOwotICAg
ICAgICBTdHJpbmcgdGl0bGU7Ci0gICAgICAgIFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+IHN1Yk1l
bnVJdGVtczsKLSAgICAgICAgYm9vbCBjaGVja2VkOwotICAgICAgICBib29sIGVuYWJsZWQ7Ci0g
ICAgfTsKICNlbHNlCiAgICAgdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRp
b247CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
TWVudURlc2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbnVE
ZXNjcmlwdGlvbi5oCmluZGV4IDc3MjYxNGUzMmJjNzNiZWY2MThjYTA1NTBmYzg1YjE0ZTAyMWFi
OGIuLmJhZTMzOWFkMWE3NGU3Y2E4ZDhlYTQ2ODRiNTQzMGI4ZDk3MzdkZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVudURlc2NyaXB0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW51RGVzY3JpcHRpb24uaApAQCAtMzQs
OCArMzQsNiBAQCBPQkpDX0NMQVNTIE5TTXV0YWJsZUFycmF5OwogdHlwZWRlZiBzdHJ1Y3QgX0d0
a01lbnUgR3RrTWVudTsKICNlbGlmIFBMQVRGT1JNKFdYKQogY2xhc3Mgd3hNZW51OwotI2VsaWYg
UExBVEZPUk0oQ0hST01JVU0pCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2VuZGlmCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUwLDkgKzQ4LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIHR5cGVkZWYgR3RrTWVudSogUGxhdGZvcm1NZW51RGVzY3JpcHRpb247CiAjZWxpZiBQTEFU
Rk9STShXWCkKICAgICB0eXBlZGVmIHd4TWVudSogUGxhdGZvcm1NZW51RGVzY3JpcHRpb247Ci0j
ZWxpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBjbGFzcyBDb250ZXh0TWVudUl0ZW07Ci0gICAg
dHlwZWRlZiBjb25zdCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiogUGxhdGZvcm1NZW51RGVzY3Jp
cHRpb247CiAjZWxzZQogICAgIHR5cGVkZWYgdm9pZCogUGxhdGZvcm1NZW51RGVzY3JpcHRpb247
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nv
bnRleHRNZW51Q2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
Q29udGV4dE1lbnVDaHJvbWl1bS5jcHAKaW5kZXggYTkyOGNhZDQ1NTFiMDU2MGQwMDY4NDIxOGU0
YzE3ZmE3M2IxZGMyYi4uNzYyMjkxZjQxZDFiM2QxNzFkMmJkNTE1OGNlOWIzMmU3OWEzNDVlMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ29udGV4dE1lbnVD
aHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ29udGV4
dE1lbnVDaHJvbWl1bS5jcHAKQEAgLTMxLDc3ICszMSwzMCBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkNvbnRleHRNZW51LmgiCiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8g
VGhpcyBpcyBhIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgV2ViS2l0J3MgQ29udGV4dE1lbnUgY2xh
c3MgdGhhdCBkb2VzCi0vLyBub3RoaW5nLgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1NZW51RGVzY3JpcHRpb24uaCIKIAotQ29udGV4dE1lbnU6OkNvbnRl
eHRNZW51KCkKLXsKLX0KLQotQ29udGV4dE1lbnU6OkNvbnRleHRNZW51KGNvbnN0IFBsYXRmb3Jt
TWVudURlc2NyaXB0aW9uIG1lbnUpCi17Ci19Ci0KLUNvbnRleHRNZW51Ojp+Q29udGV4dE1lbnUo
KQotewotfQotCi11bnNpZ25lZCBDb250ZXh0TWVudTo6aXRlbUNvdW50KCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gbV9pdGVtcy5zaXplKCk7Ci19CituYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXZvaWQg
Q29udGV4dE1lbnU6Omluc2VydEl0ZW0odW5zaWduZWQgcG9zaXRpb24sIENvbnRleHRNZW51SXRl
bSYgaXRlbSkKK0NvbnRleHRNZW51OjpDb250ZXh0TWVudShQbGF0Zm9ybUNvbnRleHRNZW51IG1l
bnUpCiB7Ci0gICAgbV9pdGVtcy5pbnNlcnQocG9zaXRpb24sIGl0ZW0pOworICAgIGdldENvbnRl
eHRNZW51SXRlbXMobWVudSwgbV9pdGVtcyk7CiB9CiAKLXZvaWQgQ29udGV4dE1lbnU6OmFwcGVu
ZEl0ZW0oQ29udGV4dE1lbnVJdGVtJiBpdGVtKQordm9pZCBDb250ZXh0TWVudTo6Z2V0Q29udGV4
dE1lbnVJdGVtcyhQbGF0Zm9ybUNvbnRleHRNZW51LCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiYp
CiB7Ci0gICAgbV9pdGVtcy5hcHBlbmQoaXRlbSk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
IAotQ29udGV4dE1lbnVJdGVtKiBDb250ZXh0TWVudTo6aXRlbVdpdGhBY3Rpb24odW5zaWduZWQg
YWN0aW9uKQorUGxhdGZvcm1Db250ZXh0TWVudSBDb250ZXh0TWVudTo6Y3JlYXRlUGxhdGZvcm1D
b250ZXh0TWVudUZyb21JdGVtcyhjb25zdCBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiYpCiB7Ci0g
ICAgVmVjdG9yPFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+Kj4gbWVudUl0ZW1TdGFjazsKLSAgICBt
ZW51SXRlbVN0YWNrLmFwcGVuZCgmbV9pdGVtcyk7Ci0gICAgd2hpbGUgKCFtZW51SXRlbVN0YWNr
LmlzRW1wdHkoKSkgewotICAgICAgICBWZWN0b3I8Q29udGV4dE1lbnVJdGVtPiYgaXRlbXMgPSAq
KG1lbnVJdGVtU3RhY2subGFzdCgpKTsKLSAgICAgICAgbWVudUl0ZW1TdGFjay5yZW1vdmVMYXN0
KCk7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaXRlbXMuc2l6ZSgpOyArK2kpIHsK
LSAgICAgICAgICAgIGlmIChpdGVtc1tpXS5hY3Rpb24oKSA9PSBzdGF0aWNfY2FzdDxDb250ZXh0
TWVudUFjdGlvbj4oYWN0aW9uKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gJml0ZW1zW2ldOwot
ICAgICAgICAgICAgaWYgKGl0ZW1zW2ldLnR5cGUoKSA9PSBTdWJtZW51VHlwZSkKLSAgICAgICAg
ICAgICAgICBtZW51SXRlbVN0YWNrLmFwcGVuZChjb25zdF9jYXN0PFZlY3RvcjxDb250ZXh0TWVu
dUl0ZW0+Kj4oaXRlbXNbaV0ucGxhdGZvcm1TdWJNZW51KCkpKTsKLSAgICAgICAgfQotICAgIH0K
KyAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiAwOwogfQogCi1Db250ZXh0TWVudUl0
ZW0qIENvbnRleHRNZW51OjppdGVtQXRJbmRleCh1bnNpZ25lZCBpbmRleCwgY29uc3QgUGxhdGZv
cm1NZW51RGVzY3JpcHRpb24gcGxhdGZvcm1EZXNjcmlwdGlvbikKK1BsYXRmb3JtQ29udGV4dE1l
bnUgQ29udGV4dE1lbnU6OnBsYXRmb3JtQ29udGV4dE1lbnUoKSBjb25zdAogewotICAgIHJldHVy
biAmbV9pdGVtc1tpbmRleF07CisgICAgcmV0dXJuIGNyZWF0ZVBsYXRmb3JtQ29udGV4dE1lbnVG
cm9tSXRlbXMobV9pdGVtcyk7CiB9CiAKLXZvaWQgQ29udGV4dE1lbnU6OnNldFBsYXRmb3JtRGVz
Y3JpcHRpb24oUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gbWVudSkKLXsKIH0KLQotUGxhdGZvcm1N
ZW51RGVzY3JpcHRpb24gQ29udGV4dE1lbnU6OnBsYXRmb3JtRGVzY3JpcHRpb24oKSBjb25zdAot
ewotICAgIHJldHVybiAmbV9pdGVtczsKLX0KLQotUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gQ29u
dGV4dE1lbnU6OnJlbGVhc2VQbGF0Zm9ybURlc2NyaXB0aW9uKCkKLXsKLSAgICByZXR1cm4gMDsK
LX0KLQotVmVjdG9yPENvbnRleHRNZW51SXRlbT4gY29udGV4dE1lbnVJdGVtVmVjdG9yKGNvbnN0
IFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIG1lbnVEZXNjcmlwdGlvbikKLXsKLSAgICByZXR1cm4g
Km1lbnVEZXNjcmlwdGlvbjsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ29udGV4dE1lbnVJdGVtQ2hyb21p
dW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ29udGV4dE1lbnVJdGVt
Q2hyb21pdW0uY3BwCmluZGV4IDBlZTdlZTlhN2EzMmZjNDgwNDllYmMyM2RhZWI3NTkyNjczYjU1
MzMuLjNiYzllNTVmNTc1MDZkMWQ2ZDcxOTY5ZTk1NGE4Nzk2ZWQ2OGU1ODQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NvbnRleHRNZW51SXRlbUNocm9taXVt
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9Db250ZXh0TWVudUl0
ZW1DaHJvbWl1bS5jcHAKQEAgLTMxLDEwMiArMzEsMTYgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJDb250ZXh0TWVudUl0ZW0uaCIKIAotI2luY2x1ZGUgIkNvbnRleHRNZW51Lmgi
CisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAv
LyBUaGlzIGlzIGEgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBXZWJLaXQncyBDb250ZXh0TWVudSBj
bGFzcyB0aGF0IGRvZXMKIC8vIG5vdGhpbmcuCi0KLUNvbnRleHRNZW51SXRlbTo6Q29udGV4dE1l
bnVJdGVtKFBsYXRmb3JtTWVudUl0ZW1EZXNjcmlwdGlvbiBpdGVtKQotewotfQotCi1Db250ZXh0
TWVudUl0ZW06OkNvbnRleHRNZW51SXRlbShDb250ZXh0TWVudSogc3ViTWVudSkKLXsKLX0KLQot
Q29udGV4dE1lbnVJdGVtOjpDb250ZXh0TWVudUl0ZW0oQ29udGV4dE1lbnVJdGVtVHlwZSB0eXBl
LCBDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUsIENvbnRleHRN
ZW51KiBzdWJNZW51KQotewotICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi50eXBlID0gdHlwZTsK
LSAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24uYWN0aW9uID0gYWN0aW9uOwotICAgIG1fcGxhdGZv
cm1EZXNjcmlwdGlvbi50aXRsZSA9IHRpdGxlOwotICAgIGlmIChzdWJNZW51KQotICAgICAgICBz
ZXRTdWJNZW51KHN1Yk1lbnUpOwotfQotCi1Db250ZXh0TWVudUl0ZW06On5Db250ZXh0TWVudUl0
ZW0oKQotewotfQotCi1QbGF0Zm9ybU1lbnVJdGVtRGVzY3JpcHRpb24gQ29udGV4dE1lbnVJdGVt
OjpyZWxlYXNlUGxhdGZvcm1EZXNjcmlwdGlvbigpCi17Ci0gICAgcmV0dXJuIG1fcGxhdGZvcm1E
ZXNjcmlwdGlvbjsKLX0KLQotQ29udGV4dE1lbnVJdGVtVHlwZSBDb250ZXh0TWVudUl0ZW06OnR5
cGUoKSBjb25zdAotewotICAgIHJldHVybiBtX3BsYXRmb3JtRGVzY3JpcHRpb24udHlwZTsKLX0K
LQotQ29udGV4dE1lbnVBY3Rpb24gQ29udGV4dE1lbnVJdGVtOjphY3Rpb24oKSBjb25zdAoteyAK
LSAgICByZXR1cm4gbV9wbGF0Zm9ybURlc2NyaXB0aW9uLmFjdGlvbjsKLX0KLQotU3RyaW5nIENv
bnRleHRNZW51SXRlbTo6dGl0bGUoKSBjb25zdCAKLXsKLSAgICByZXR1cm4gbV9wbGF0Zm9ybURl
c2NyaXB0aW9uLnRpdGxlOwotfQotCi1ib29sIENvbnRleHRNZW51SXRlbTo6Y2hlY2tlZCgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5jaGVja2VkOwotfQotCi1i
b29sIENvbnRleHRNZW51SXRlbTo6ZW5hYmxlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcGxh
dGZvcm1EZXNjcmlwdGlvbi5lbmFibGVkOwotfQotCi1QbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBD
b250ZXh0TWVudUl0ZW06OnBsYXRmb3JtU3ViTWVudSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICZt
X3BsYXRmb3JtRGVzY3JpcHRpb24uc3ViTWVudUl0ZW1zOwotfQotCi12b2lkIENvbnRleHRNZW51
SXRlbTo6c2V0VHlwZShDb250ZXh0TWVudUl0ZW1UeXBlIHR5cGUpCi17Ci0gICAgbV9wbGF0Zm9y
bURlc2NyaXB0aW9uLnR5cGUgPSB0eXBlOwotfQotCi12b2lkIENvbnRleHRNZW51SXRlbTo6c2V0
QWN0aW9uKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbikKLXsKLSAgICBtX3BsYXRmb3JtRGVzY3Jp
cHRpb24uYWN0aW9uID0gYWN0aW9uOwotfQotCi12b2lkIENvbnRleHRNZW51SXRlbTo6c2V0VGl0
bGUoY29uc3QgU3RyaW5nJiB0aXRsZSkKLXsKLSAgICBtX3BsYXRmb3JtRGVzY3JpcHRpb24udGl0
bGUgPSB0aXRsZTsKLX0KLQotdm9pZCBDb250ZXh0TWVudUl0ZW06OnNldFN1Yk1lbnUoQ29udGV4
dE1lbnUqIG1lbnUpCi17Ci0gICAgbV9wbGF0Zm9ybURlc2NyaXB0aW9uLnN1Yk1lbnVJdGVtcyA9
ICptZW51LT5wbGF0Zm9ybURlc2NyaXB0aW9uKCk7Ci19Ci0KLXZvaWQgQ29udGV4dE1lbnVJdGVt
OjpzZXRTdWJNZW51KFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBpdGVtcykKLXsKLSAgICBtX3Bs
YXRmb3JtRGVzY3JpcHRpb24uc3ViTWVudUl0ZW1zID0gaXRlbXM7Ci19Ci0KLXZvaWQgQ29udGV4
dE1lbnVJdGVtOjpzZXRDaGVja2VkKGJvb2wgY2hlY2tlZCkKLXsKLSAgICBtX3BsYXRmb3JtRGVz
Y3JpcHRpb24uY2hlY2tlZCA9IGNoZWNrZWQ7Ci19Ci0KLXZvaWQgQ29udGV4dE1lbnVJdGVtOjpz
ZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3ZvaWQqIENvbnRleHRNZW51SXRlbTo6cGxhdGZvcm1D
b250ZXh0TWVudUl0ZW0oKSBjb25zdAogewotICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbi5lbmFi
bGVkID0gZW5hYmxlZDsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL2ZlYXR1cmVzLmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkK
aW5kZXggYzU3MjI3YTI5ZTBmYzQwNjBiODhhMjg4ZTA2NzdkN2U4YzFhMDY5OC4uMmQ3OWVhZDQy
ODdiYTZjYjc0NWY4MjgxNTk3ZjI3N2M3Y2EwYWE5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9mZWF0dXJlcy5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVh
dHVyZXMuZ3lwaQpAQCAtMTUwLDYgKzE1MCw3IEBACiAgICAgICAnV1RGX1VTRV9TS0lBX1RFWFQ9
PChlbmFibGVfc2tpYV90ZXh0KScsCiAgICAgICAnV1RGX1VTRV9XRUJQPTEnLAogICAgICAgJ1dU
Rl9VU0VfV0VCS0lUX0lNQUdFX0RFQ09ERVJTPTEnLAorICAgICAgJ1dURl9VU0VfQ1JPU1NfUExB
VEZPUk1fQ09OVEVYVF9NRU5VUz0xJywKICAgICBdLAogICAgICMgV2UgaGF2ZSB0byBuZXN0IHZh
cmlhYmxlcyBpbnNpZGUgdmFyaWFibGVzIHNvIHRoYXQgdGhleSBjYW4gYmUgb3ZlcnJpZGRlbgog
ICAgICMgdGhyb3VnaCBHWVBfREVGSU5FUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9Db250ZXh0TWVudUNsaWVudEltcGwuY3BwCmluZGV4IDJmZmQ2ZTRjODhmYjA4NjA3
NGQ2MWQ5OWM4YmVkMTk5MzNhMTU0ZmUuLmRiNzRkZTVhZmZjMjcwYmIxZWQ4MTBjNDFlY2MxNTc0
ZjRlMTBlOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRN
ZW51Q2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4
dE1lbnVDbGllbnRJbXBsLmNwcApAQCAtMTc4LDggKzE3OCw3IEBAIHN0YXRpYyBTdHJpbmcgc2Vs
ZWN0TWlzc3BlbGxpbmdBc3luYyhGcmFtZSogc2VsZWN0ZWRGcmFtZSwgRG9jdW1lbnRNYXJrZXIm
IG1hcmtlCiAgICAgcmV0dXJuIG1hcmtlclJhbmdlLT50ZXh0KCk7CiB9CiAKLVBsYXRmb3JtTWVu
dURlc2NyaXB0aW9uIENvbnRleHRNZW51Q2xpZW50SW1wbDo6Z2V0Q3VzdG9tTWVudUZyb21EZWZh
dWx0SXRlbXMoCi0gICAgQ29udGV4dE1lbnUqIGRlZmF1bHRNZW51KQorUGFzc093blB0cjxXZWJD
b3JlOjpDb250ZXh0TWVudT4gQ29udGV4dE1lbnVDbGllbnRJbXBsOjpjdXN0b21pemVNZW51KFBh
c3NPd25QdHI8V2ViQ29yZTo6Q29udGV4dE1lbnU+IGRlZmF1bHRNZW51KQogewogICAgIC8vIERp
c3BsYXlpbmcgdGhlIGNvbnRleHQgbWVudSBpbiB0aGlzIGZ1bmN0aW9uIGlzIGEgYmlnIGhhY2sg
YXMgd2UgZG9uJ3QKICAgICAvLyBoYXZlIGNvbnRleHQsIGkuZS4gd2hldGhlciB0aGlzIGlzIGJl
aW5nIGludm9rZWQgdmlhIGEgc2NyaXB0IG9yIGluCkBAIC0xODcsNyArMTg2LDcgQEAgUGxhdGZv
cm1NZW51RGVzY3JpcHRpb24gQ29udGV4dE1lbnVDbGllbnRJbXBsOjpnZXRDdXN0b21NZW51RnJv
bURlZmF1bHRJdGVtcygKICAgICAvLyBLZXlib2FyZCBldmVudHMgS2V5VktfQVBQUywgU2hpZnQr
RjEwKS4gQ2hlY2sgaWYgdGhpcyBpcyBiZWluZyBpbnZva2VkCiAgICAgLy8gaW4gcmVzcG9uc2Ug
dG8gdGhlIGFib3ZlIGlucHV0IGV2ZW50cyBiZWZvcmUgcG9wcGluZyB1cCB0aGUgY29udGV4dCBt
ZW51LgogICAgIGlmICghbV93ZWJWaWV3LT5jb250ZXh0TWVudUFsbG93ZWQoKSkKLSAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgIHJldHVybiBkZWZhdWx0TWVudTsKIAogICAgIEhpdFRlc3RSZXN1
bHQgciA9IG1fd2ViVmlldy0+cGFnZSgpLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS0+aGl0VGVz
dFJlc3VsdCgpOwogICAgIEZyYW1lKiBzZWxlY3RlZEZyYW1lID0gci5pbm5lck5vZGVGcmFtZSgp
OwpAQCAtMzI2LDcgKzMyNSw3IEBAIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51
Q2xpZW50SW1wbDo6Z2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMoCiAgICAgICAgICAgICAg
ICAgbV93ZWJWaWV3LT5mb2N1c2VkV2ViQ29yZUZyYW1lKCktPmVkaXRvcigpLT5pc0NvbnRpbnVv
dXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOwogICAgICAgICAgICAgLy8gU3BlbGxjaGVja2luZyBt
aWdodCBiZSBlbmFibGVkIGZvciB0aGUgZmllbGQsIGJ1dCBjb3VsZCBiZSBkaXNhYmxlZCBvbiB0
aGUgbm9kZS4KICAgICAgICAgICAgIGlmIChtX3dlYlZpZXctPmZvY3VzZWRXZWJDb3JlRnJhbWUo
KS0+ZWRpdG9yKCktPmlzU3BlbGxDaGVja2luZ0VuYWJsZWRJbkZvY3VzZWROb2RlKCkpIHsKLSAg
ICAgICAgICAgICAgICBkYXRhLm1pc3NwZWxsZWRXb3JkID0gc2VsZWN0TWlzc3BlbGxlZFdvcmQo
ZGVmYXVsdE1lbnUsIHNlbGVjdGVkRnJhbWUpOworICAgICAgICAgICAgICAgIGRhdGEubWlzc3Bl
bGxlZFdvcmQgPSBzZWxlY3RNaXNzcGVsbGVkV29yZChkZWZhdWx0TWVudS5nZXQoKSwgc2VsZWN0
ZWRGcmFtZSk7CiAgICAgICAgICAgICAgICAgaWYgKG1fd2ViVmlldy0+c3BlbGxDaGVja0NsaWVu
dCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIGludCBtaXNzcGVsbGVkT2Zmc2V0LCBtaXNzcGVs
bGVkTGVuZ3RoOwogICAgICAgICAgICAgICAgICAgICBtX3dlYlZpZXctPnNwZWxsQ2hlY2tDbGll
bnQoKS0+c3BlbGxDaGVjaygKQEAgLTM2NCw3ICszNjMsNyBAQCBQbGF0Zm9ybU1lbnVEZXNjcmlw
dGlvbiBDb250ZXh0TWVudUNsaWVudEltcGw6OmdldEN1c3RvbU1lbnVGcm9tRGVmYXVsdEl0ZW1z
KAogICAgIGRhdGEucmVmZXJyZXJQb2xpY3kgPSBzdGF0aWNfY2FzdDxXZWJSZWZlcnJlclBvbGlj
eT4oc2VsZWN0ZWRGcmFtZS0+ZG9jdW1lbnQoKS0+cmVmZXJyZXJQb2xpY3koKSk7CiAKICAgICAv
LyBGaWx0ZXIgb3V0IGN1c3RvbSBtZW51IGVsZW1lbnRzIGFuZCBhZGQgdGhlbSBpbnRvIHRoZSBk
YXRhLgotICAgIHBvcHVsYXRlQ3VzdG9tTWVudUl0ZW1zKGRlZmF1bHRNZW51LCAmZGF0YSk7Cisg
ICAgcG9wdWxhdGVDdXN0b21NZW51SXRlbXMoZGVmYXVsdE1lbnUuZ2V0KCksICZkYXRhKTsKIAog
ICAgIGRhdGEubm9kZSA9IHIuaW5uZXJOb25TaGFyZWROb2RlKCk7CiAKQEAgLTM3MiwxNCArMzcx
LDE0IEBAIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51Q2xpZW50SW1wbDo6Z2V0
Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMoCiAgICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkp
CiAgICAgICAgIG1fd2ViVmlldy0+Y2xpZW50KCktPnNob3dDb250ZXh0TWVudShzZWxlY3RlZF93
ZWJfZnJhbWUsIGRhdGEpOwogCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIGRlZmF1bHRNZW51
OwogfQogCi1zdGF0aWMgdm9pZCBwb3B1bGF0ZVN1Yk1lbnVJdGVtcyhQbGF0Zm9ybU1lbnVEZXNj
cmlwdGlvbiBpbnB1dE1lbnUsIFdlYlZlY3RvcjxXZWJNZW51SXRlbUluZm8+JiBzdWJNZW51SXRl
bXMpCitzdGF0aWMgdm9pZCBwb3B1bGF0ZVN1Yk1lbnVJdGVtcyhjb25zdCBWZWN0b3I8Q29udGV4
dE1lbnVJdGVtPiYgaW5wdXRNZW51LCBXZWJWZWN0b3I8V2ViTWVudUl0ZW1JbmZvPiYgc3ViTWVu
dUl0ZW1zKQogewogICAgIFZlY3RvcjxXZWJNZW51SXRlbUluZm8+IHN1Ykl0ZW1zOwotICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgaW5wdXRNZW51LT5zaXplKCk7ICsraSkgewotICAgICAgICBj
b25zdCBDb250ZXh0TWVudUl0ZW0qIGlucHV0SXRlbSA9ICZpbnB1dE1lbnUtPmF0KGkpOworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaW5wdXRNZW51LnNpemUoKTsgKytpKSB7CisgICAgICAg
IGNvbnN0IENvbnRleHRNZW51SXRlbSogaW5wdXRJdGVtID0gJmlucHV0TWVudS5hdChpKTsKICAg
ICAgICAgaWYgKGlucHV0SXRlbS0+YWN0aW9uKCkgPCBDb250ZXh0TWVudUl0ZW1CYXNlQ3VzdG9t
VGFnIHx8IGlucHV0SXRlbS0+YWN0aW9uKCkgPiBDb250ZXh0TWVudUl0ZW1MYXN0Q3VzdG9tVGFn
KQogICAgICAgICAgICAgY29udGludWU7CiAKQEAgLTQwMCw3ICszOTksNyBAQCBzdGF0aWMgdm9p
ZCBwb3B1bGF0ZVN1Yk1lbnVJdGVtcyhQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBpbnB1dE1lbnUs
IFdlYlZlY3RvcjxXZQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgU3VibWVudVR5
cGU6CiAgICAgICAgICAgICBvdXRwdXRJdGVtLnR5cGUgPSBXZWJNZW51SXRlbUluZm86OlN1Yk1l
bnU7Ci0gICAgICAgICAgICBwb3B1bGF0ZVN1Yk1lbnVJdGVtcyhpbnB1dEl0ZW0tPnBsYXRmb3Jt
U3ViTWVudSgpLCBvdXRwdXRJdGVtLnN1Yk1lbnVJdGVtcyk7CisgICAgICAgICAgICBwb3B1bGF0
ZVN1Yk1lbnVJdGVtcyhpbnB1dEl0ZW0tPnN1Yk1lbnVJdGVtcygpLCBvdXRwdXRJdGVtLnN1Yk1l
bnVJdGVtcyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBzdWJJdGVt
cy5hcHBlbmQob3V0cHV0SXRlbSk7CkBAIC00MTQsNyArNDEzLDcgQEAgc3RhdGljIHZvaWQgcG9w
dWxhdGVTdWJNZW51SXRlbXMoUGxhdGZvcm1NZW51RGVzY3JpcHRpb24gaW5wdXRNZW51LCBXZWJW
ZWN0b3I8V2UKIAogdm9pZCBDb250ZXh0TWVudUNsaWVudEltcGw6OnBvcHVsYXRlQ3VzdG9tTWVu
dUl0ZW1zKFdlYkNvcmU6OkNvbnRleHRNZW51KiBkZWZhdWx0TWVudSwgV2ViQ29udGV4dE1lbnVE
YXRhKiBkYXRhKQogewotICAgIHBvcHVsYXRlU3ViTWVudUl0ZW1zKGRlZmF1bHRNZW51LT5wbGF0
Zm9ybURlc2NyaXB0aW9uKCksIGRhdGEtPmN1c3RvbUl0ZW1zKTsKKyAgICBwb3B1bGF0ZVN1Yk1l
bnVJdGVtcyhkZWZhdWx0TWVudS0+aXRlbXMoKSwgZGF0YS0+Y3VzdG9tSXRlbXMpOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL0NvbnRleHRNZW51Q2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
Q29udGV4dE1lbnVDbGllbnRJbXBsLmgKaW5kZXggOTdlYTk2N2FmYWQyZjhlYmFmM2E5ZmEzNWMz
ODIwNmYxN2RkMGQ1NS4uNDY5N2M5ODQ1NmQ3YjRjOGI4ZWIwYWY5MjViYTEyOWYxYmRiZjI2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dE1lbnVDbGllbnRJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dE1lbnVDbGllbnRJ
bXBsLmgKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0
TWVudURlc3Ryb3llZCgpIHt9CiAgICAgdmlydHVhbCB2b2lkIGNvbnRleHRNZW51SXRlbVNlbGVj
dGVkKFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbSosIGNvbnN0IFdlYkNvcmU6OkNvbnRleHRNZW51
Kikge30KICAgICB2aXJ0dWFsIHZvaWQgZG93bmxvYWRVUkwoY29uc3QgV2ViQ29yZTo6S1VSTCYp
IHt9Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBnZXRDdXN0
b21NZW51RnJvbURlZmF1bHRJdGVtcyhXZWJDb3JlOjpDb250ZXh0TWVudSopOworICAgIHZpcnR1
YWwgUGFzc093blB0cjxXZWJDb3JlOjpDb250ZXh0TWVudT4gY3VzdG9taXplTWVudShQYXNzT3du
UHRyPFdlYkNvcmU6OkNvbnRleHRNZW51Pik7CiAgICAgdmlydHVhbCBib29sIGlzU3BlYWtpbmco
KSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBsb29rVXBJbkRpY3Rpb25hcnko
V2ViQ29yZTo6RnJhbWUqKSB7fQogICAgIHZpcnR1YWwgdm9pZCBzZWFyY2hXaXRoR29vZ2xlKGNv
bnN0IFdlYkNvcmU6OkZyYW1lKikge30K
</data>
<flag name="review"
          id="218404"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>