<?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>70962</bug_id>
          
          <creation_ts>2011-10-26 13:23:19 -0700</creation_ts>
          <short_desc>[chromium] Fix incorrect visibility/scissor rect for threaded compositing</short_desc>
          <delta_ts>2011-11-04 09:41:43 -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>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrienne Walker">enne</reporter>
          <assigned_to name="Adrienne Walker">enne</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>shawnsingh</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>491140</commentid>
    <comment_count>0</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-10-26 13:23:19 -0700</bug_when>
    <thetext>When threaded compositing is enabled, it looks like the visibility rect is wrong on the compositor thread.  When the scroll on the compositor thread is non-zero, it looks like the root layer is being clipped, leading to &quot;compositor cleared blue&quot; or previous frames smearing in situations where clearing doesn&apos;t occur.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492870</commentid>
    <comment_count>1</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2011-10-28 18:49:41 -0700</bug_when>
    <thetext>FYI, I don&apos;t know if it helps, but perhaps my &quot;HACKYScrollFix&quot; can eventually lead to a correct clean solution?   That fix is not intended to be landed, but I needed it to get my scissoring to work properly just for now.

The HACKYScrollFix can be found in the following attachment:
  https://bug-67341-attachments.webkit.org/attachment.cgi?id=112958

which is from this bug:
  https://bugs.webkit.org/show_bug.cgi?id=67341</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495705</commentid>
    <comment_count>2</comment_count>
      <attachid>113539</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-11-03 12:13:46 -0700</bug_when>
    <thetext>Created attachment 113539
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495718</commentid>
    <comment_count>3</comment_count>
      <attachid>113539</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-03 12:28:41 -0700</bug_when>
    <thetext>Comment on attachment 113539
Patch

Attachment 113539 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10286082</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495813</commentid>
    <comment_count>4</comment_count>
      <attachid>113564</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-11-03 15:13:39 -0700</bug_when>
    <thetext>Created attachment 113564
Fix tests to build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496065</commentid>
    <comment_count>5</comment_count>
      <attachid>113564</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-03 23:39:36 -0700</bug_when>
    <thetext>Comment on attachment 113564
Fix tests to build

Awesome! R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496237</commentid>
    <comment_count>6</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-11-04 09:41:43 -0700</bug_when>
    <thetext>Committed r99286: &lt;http://trac.webkit.org/changeset/99286&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113539</attachid>
            <date>2011-11-03 12:13:46 -0700</date>
            <delta_ts>2011-11-03 15:13:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70962-20111103121345.patch</filename>
            <type>text/plain</type>
            <size>20989</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkyMjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMTI4MjBkMzgyYTY4NGVk
NjA2ZDQ3MWM3MTE1ODJiNTVlNmM3NjFjLi5jNmZlNTMyYmY1NjhmYzM5Mzg1Mjk0Njc2YjcxMzc5
YjVmZmM1N2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTEtMTEtMDMgIEFkcmll
bm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIEZpeCBp
bmNvcnJlY3QgdmlzaWJpbGl0eS9zY2lzc29yIHJlY3QgZm9yIHRocmVhZGVkIGNvbXBvc2l0aW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDk2Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIG9yZGVy
IHRvIHByb3Blcmx5IHNjcm9sbCBpbmRlcGVuZGVudCBvZiBsYXlvdXQgb24gdGhlIGNvbXBvc2l0
b3IKKyAgICAgICAgdGhyZWFkLCB3ZSBoYXZlIHRvIGFwcGx5IHRoZSBzY3JvbGwgdG8gdGhlIHJp
Z2h0IGxheWVyLiBQcmV2aW91c2x5LAorICAgICAgICB0aGUgTm9uQ29tcG9zaXRlZENvbnRlbnRI
b3N0IHdhcyB0aGUgcm9vdCBvZiB0aGUgZ3JhcGhpY3MgbGF5ZXIgdHJlZQorICAgICAgICB3aXRo
IGFsbCBvdGhlciBsYXllcnMgdW5kZXJuZWF0aCBpdC4gSG93ZXZlciwgYXBwbHlpbmcgYSBzY3Jv
bGwgdG8KKyAgICAgICAgdGhhdCBsYXllciB3b3VsZCBhbHNvIHNjcm9sbCB0aGUgY2xpcCBsYXll
ciBmb3IgdGhlIG1haW4gZnJhbWUKKyAgICAgICAgdW5kZXJuZWF0aCBpdCwgY2F1c2luZyB2aXNp
YmlsaXR5IGlzc3Vlcy4KKworICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIHRoZSBOb25Db21wb3Np
dGVkSG9zdCB0byBiZSBhIGNoaWxkIG9mIHRoZQorICAgICAgICBSZW5kZXJMYXllckNvbXBvc2l0
b3IncyBzY3JvbGwgbGF5ZXIuIFRoaXMgd2FzIGV4cG9zZWQgb24KKyAgICAgICAgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLCBiZWNhdXNlIHRoZXJlJ3Mgbm8gb3RoZXIgd2F5IHRvIGdldCB0byB0aGlz
CisgICAgICAgIGxheWVyIGluIGEgd2F5IHRoYXQgZG9lc24ndCBtYWtlIGFzc3VtcHRpb25zIGFi
b3V0IHRoZSBzdHJ1Y3R1cmUgb2YKKyAgICAgICAgdGhlIGxheWVycyBvbiBhIGZyYW1lLgorCisg
ICAgICAgIFRoaXMgYWxzbyByZW1vdmVzIHRoZSBoYWNrcyBpbiBjYWxjdWxhdGVWaXNpYmxlTGF5
ZXJSZWN0IGFuZAorICAgICAgICB0aWxpbmdUcmFuc2Zvcm0gZm9yIHNjcm9sbCBwb3NpdGlvbi4K
KworICAgICAgICBQYXJ0aWFsbHkgdGVzdGVkIGJ5IGV4aXN0aW5nIGNvbXBvc2l0b3IgdGVzdHMu
IE1hbnVhbGx5IHRlc3RlZAorICAgICAgICB0aHJlYWRlZCBjb21wb3NpdGluZyBzY3JvbGxpbmcu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3NpdGVkQ29u
dGVudEhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0
OjpzZXRTY3JvbGxMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpOb25Db21wb3NpdGVkQ29udGVu
dEhvc3Q6OnNldFZpZXdwb3J0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vbkNvbXBvc2l0ZWRDb250
ZW50SG9zdDo6c2Nyb2xsTGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
Q0xheWVyVHJlZUhvc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhv
c3Q6OkNDTGF5ZXJUcmVlSG9zdCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6
OmFwcGx5U2Nyb2xsRGVsdGFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9z
dDo6c2V0Um9vdExheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3RDb21tb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVl
SG9zdENvbW1vbjo6Y2FsY3VsYXRlVmlzaWJsZUxheWVyUmVjdCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmaW5kU2Nyb2xsTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRy
ZWVIb3N0SW1wbDo6c2V0Um9vdExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVl
SG9zdEltcGw6OnNjcm9sbFJvb3RMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJl
ZUhvc3RJbXBsOjpwcm9jZXNzU2Nyb2xsRGVsdGFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDQ1RpbGVkTGF5ZXJJbXBsOjp0aWxpbmdUcmFuc2Zvcm0pOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpzY3JvbGxMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oOgorCiAyMDExLTExLTAzICBNYXJrIEhhaG5lbmJlcmcgIDxt
aGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgRGUtdmlydHVhbGl6ZSBKU09iamVjdDo6
Y2xhc3NOYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDAxYzYzODllODU4NDUxNDZk
NWZmYjlkY2Q5NTEyZjgyMDY5MjI5ZTAuLmM4MjQyODA2MWZjZWNjMWJjYzMwZGQ2OWQ2OWM1YWY0
NTI4OWFlZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MTEtMTEtMDMgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBb
Y2hyb21pdW1dIEZpeCBpbmNvcnJlY3QgdmlzaWJpbGl0eS9zY2lzc29yIHJlY3QgZm9yIHRocmVh
ZGVkIGNvbXBvc2l0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MDk2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViTGF5ZXJUcmVlVmlld0ltcGw6OldlYkxheWVyVHJlZVZpZXdJbXBsKToKKyAgICAgICAgKiBz
cmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0Um9v
dEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SXNBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKToKKwogMjAxMS0xMS0wMyAgRmFkeSBTYW11ZWwgIDxm
c2FtdWVsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFJlZmFjdG9yIFdlYkZy
YW1lSW1wbDo6Y3JlYXRlRnJhbWVWaWV3KCkgdG8gdXNlIEZyYW1lOmNyZWF0ZVZpZXcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBv
c2l0ZWRDb250ZW50SG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuY3BwCmluZGV4IGZjY2I1ZjZmZGNjMzQz
ZmU1M2NiZWM3Y2RiZWY5ZDczMzQ0N2M3YWUuLmJhMjY2NzMxNjFmMjMyMDRmODY2ZjM5Mjc5MjA3
M2YyN2ZmZDc3ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNw
cApAQCAtNDksMzQgKzQ5LDUxIEBAIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6fk5vbkNvbXBv
c2l0ZWRDb250ZW50SG9zdCgpCiB7CiB9CiAKLXZvaWQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0
OjpzZXRSb290TGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIpCit2b2lkIE5vbkNvbXBvc2l0ZWRD
b250ZW50SG9zdDo6c2V0U2Nyb2xsTGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIpCiB7Ci0gICAg
bV9ncmFwaGljc0xheWVyLT5yZW1vdmVBbGxDaGlsZHJlbigpOwogICAgIG1fZ3JhcGhpY3NMYXll
ci0+c2V0TmVlZHNEaXNwbGF5KCk7Ci0gICAgaWYgKGxheWVyKQotICAgICAgICBtX2dyYXBoaWNz
TGF5ZXItPmFkZENoaWxkKGxheWVyKTsKLSAgICBlbHNlCisKKyAgICBpZiAoIWxheWVyKSB7Cisg
ICAgICAgIG1fZ3JhcGhpY3NMYXllci0+cmVtb3ZlRnJvbVBhcmVudCgpOwogICAgICAgICBtX2dy
YXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKS0+c2V0TGF5ZXJUcmVlSG9zdCgwKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChsYXllci0+cGxhdGZvcm1MYXllcigpID09IHNj
cm9sbExheWVyKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGxheWVyLT5hZGRDaGlsZEF0SW5k
ZXgobV9ncmFwaGljc0xheWVyLmdldCgpLCAwKTsKKyAgICBBU1NFUlQoc2Nyb2xsTGF5ZXIoKSk7
CiB9CiAKIHZvaWQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpzZXRWaWV3cG9ydChjb25zdCBJ
bnRTaXplJiB2aWV3cG9ydFNpemUsIGNvbnN0IEludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3Qg
SW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uKQogeworICAgIGlmICghc2Nyb2xsTGF5ZXIoKSkKKyAg
ICAgICAgcmV0dXJuOworCiAgICAgYm9vbCB2aXNpYmxlUmVjdENoYW5nZWQgPSBtX3ZpZXdwb3J0
U2l6ZSAhPSB2aWV3cG9ydFNpemU7CiAKICAgICBtX3ZpZXdwb3J0U2l6ZSA9IHZpZXdwb3J0U2l6
ZTsKLSAgICBtX2dyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKS0+c2V0U2Nyb2xsUG9zaXRp
b24oc2Nyb2xsUG9zaXRpb24pOworICAgIHNjcm9sbExheWVyKCktPnNldFNjcm9sbFBvc2l0aW9u
KHNjcm9sbFBvc2l0aW9uKTsKICAgICBJbnRTaXplIG1heFNjcm9sbCA9IGNvbnRlbnRzU2l6ZSAt
IHZpZXdwb3J0U2l6ZTsKICAgICAvLyBUaGUgdmlld3BvcnQgbWF5IGJlIGxhcmdlciB0aGFuIHRo
ZSBjb250ZW50cyBpbiBzb21lIGNhc2VzLCBzdWNoIGFzCiAgICAgLy8gaGF2aW5nIGEgdmVydGlj
YWwgc2Nyb2xsYmFyIGJ1dCBubyBob3Jpem9udGFsIG92ZXJmbG93LgogICAgIG1heFNjcm9sbC5j
bGFtcE5lZ2F0aXZlVG9aZXJvKCk7CiAKLSAgICBtX2dyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5
ZXIoKS0+c2V0TWF4U2Nyb2xsUG9zaXRpb24obWF4U2Nyb2xsKTsKKyAgICBzY3JvbGxMYXllcigp
LT5zZXRNYXhTY3JvbGxQb3NpdGlvbihtYXhTY3JvbGwpOwogICAgIG1fZ3JhcGhpY3NMYXllci0+
c2V0U2l6ZShjb250ZW50c1NpemUpOwogCiAgICAgaWYgKHZpc2libGVSZWN0Q2hhbmdlZCkKICAg
ICAgICAgbV9ncmFwaGljc0xheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKIH0KIAorTGF5ZXJDaHJv
bWl1bSogTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpzY3JvbGxMYXllcigpCit7CisgICAgaWYg
KCFtX2dyYXBoaWNzTGF5ZXItPnBhcmVudCgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1
cm4gbV9ncmFwaGljc0xheWVyLT5wYXJlbnQoKS0+cGxhdGZvcm1MYXllcigpOworfQorCiB2b2lk
IE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6cHJvdGVjdFZpc2libGVUaWxlVGV4dHVyZXMoKQog
ewogICAgIG1fZ3JhcGhpY3NMYXllci0+cGxhdGZvcm1MYXllcigpLT5wcm90ZWN0VmlzaWJsZVRp
bGVUZXh0dXJlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaAppbmRl
eCA4OWE4ZmNlY2ExNWQwYjE5OGFkOTczYTU5MDU0Zjc3ZDZmNjM4MzI5Li5iNmI1ZTJkN2VkNWVi
MjA5NGNmYzc3YjYxOGE4M2ViZTMyZGZlOTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3NpdGVk
Q29udGVudEhvc3QuaApAQCAtMzksNiArMzksNyBAQCBjbGFzcyBHcmFwaGljc0xheWVyOwogY2xh
c3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBJbnRSZWN0OworY2xh
c3MgTGF5ZXJDaHJvbWl1bTsKIGNsYXNzIExheWVyUGFpbnRlckNocm9taXVtOwogCiBjbGFzcyBO
b25Db21wb3NpdGVkQ29udGVudEhvc3QgOiBwdWJsaWMgR3JhcGhpY3NMYXllckNsaWVudCB7CkBA
IC01MSwxMCArNTIsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+Tm9uQ29tcG9zaXRlZENvbnRl
bnRIb3N0KCk7CiAKICAgICB2b2lkIGludmFsaWRhdGVSZWN0KGNvbnN0IEludFJlY3QmKTsKLSAg
ICB2b2lkIHNldFJvb3RMYXllcihHcmFwaGljc0xheWVyKik7CisgICAgdm9pZCBzZXRTY3JvbGxM
YXllcihHcmFwaGljc0xheWVyKik7CiAgICAgdm9pZCBzZXRWaWV3cG9ydChjb25zdCBJbnRTaXpl
JiB2aWV3cG9ydFNpemUsIGNvbnN0IEludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgSW50UG9p
bnQmIHNjcm9sbFBvc2l0aW9uKTsKICAgICB2b2lkIHByb3RlY3RWaXNpYmxlVGlsZVRleHR1cmVz
KCk7Ci0gICAgR3JhcGhpY3NMYXllciogdG9wTGV2ZWxSb290TGF5ZXIoKSBjb25zdCB7IHJldHVy
biBtX2dyYXBoaWNzTGF5ZXIuZ2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBOb25D
b21wb3NpdGVkQ29udGVudEhvc3QoUGFzc093blB0cjxMYXllclBhaW50ZXJDaHJvbWl1bT4gY29u
dGVudFBhaW50KTsKQEAgLTY2LDYgKzY2LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wg
c2hvd0RlYnVnQm9yZGVycygpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENv
dW50ZXIoKSBjb25zdDsKIAorICAgIExheWVyQ2hyb21pdW0qIHNjcm9sbExheWVyKCk7CisKICAg
ICBPd25QdHI8R3JhcGhpY3NMYXllcj4gbV9ncmFwaGljc0xheWVyOwogICAgIE93blB0cjxMYXll
clBhaW50ZXJDaHJvbWl1bT4gbV9jb250ZW50UGFpbnQ7CiAgICAgSW50U2l6ZSBtX3ZpZXdwb3J0
U2l6ZTsKQEAgLTc0LDQgKzc2LDMgQEAgcHJpdmF0ZToKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdF9oCi0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3QuY3BwCmluZGV4IDA0NjFiZGY5YjdjMThlMjRhN2U4OWZjODk3NGEzZWI2YjU5
ZjEyNWEuLmI5MDE2MTczOTQwZGJjODY0YTk5YjY5OWJiOWNmYzhhOTI3MDkxOWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcApAQCAtNDAsMjAgKzQwLDE5IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxDQ0xheWVyVHJlZUhvc3Q+IENDTGF5ZXJUcmVlSG9z
dDo6Y3JlYXRlKENDTGF5ZXJUcmVlSG9zdENsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPExheWVy
Q2hyb21pdW0+IHJvb3RMYXllciwgY29uc3QgQ0NTZXR0aW5ncyYgc2V0dGluZ3MpCitQYXNzUmVm
UHRyPENDTGF5ZXJUcmVlSG9zdD4gQ0NMYXllclRyZWVIb3N0OjpjcmVhdGUoQ0NMYXllclRyZWVI
b3N0Q2xpZW50KiBjbGllbnQsIGNvbnN0IENDU2V0dGluZ3MmIHNldHRpbmdzKQogewotICAgIFJl
ZlB0cjxDQ0xheWVyVHJlZUhvc3Q+IGxheWVyVHJlZUhvc3QgPSBhZG9wdFJlZihuZXcgQ0NMYXll
clRyZWVIb3N0KGNsaWVudCwgcm9vdExheWVyLCBzZXR0aW5ncykpOworICAgIFJlZlB0cjxDQ0xh
eWVyVHJlZUhvc3Q+IGxheWVyVHJlZUhvc3QgPSBhZG9wdFJlZihuZXcgQ0NMYXllclRyZWVIb3N0
KGNsaWVudCwgc2V0dGluZ3MpKTsKICAgICBpZiAoIWxheWVyVHJlZUhvc3QtPmluaXRpYWxpemUo
KSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIGxheWVyVHJlZUhvc3Q7CiB9CiAKLUND
TGF5ZXJUcmVlSG9zdDo6Q0NMYXllclRyZWVIb3N0KENDTGF5ZXJUcmVlSG9zdENsaWVudCogY2xp
ZW50LCBQYXNzUmVmUHRyPExheWVyQ2hyb21pdW0+IHJvb3RMYXllciwgY29uc3QgQ0NTZXR0aW5n
cyYgc2V0dGluZ3MpCitDQ0xheWVyVHJlZUhvc3Q6OkNDTGF5ZXJUcmVlSG9zdChDQ0xheWVyVHJl
ZUhvc3RDbGllbnQqIGNsaWVudCwgY29uc3QgQ0NTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgOiBt
X2NvbXBvc2l0b3JJZGVudGlmaWVyKC0xKQogICAgICwgbV9hbmltYXRpbmcoZmFsc2UpCiAgICAg
LCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX2ZyYW1lTnVtYmVyKDApCi0gICAgLCBtX3Jvb3RM
YXllcihyb290TGF5ZXIpCiAgICAgLCBtX3NldHRpbmdzKHNldHRpbmdzKQogICAgICwgbV92aXNp
YmxlKHRydWUpCiAgICAgLCBtX2hhdmVXaGVlbEV2ZW50SGFuZGxlcnMoZmFsc2UpCkBAIC00NDAs
MTYgKzQzOSwxMyBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6Y2xlYXJQZW5kaW5nVXBkYXRlKCkK
IAogdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OmFwcGx5U2Nyb2xsRGVsdGFzKGNvbnN0IENDU2Nyb2xs
VXBkYXRlU2V0JiBpbmZvKQogewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaW5mby5zaXpl
KCk7ICsraSkgewotICAgICAgICBpbnQgbGF5ZXJJZCA9IGluZm9baV0ubGF5ZXJJZDsKLSAgICAg
ICAgSW50U2l6ZSBzY3JvbGxEZWx0YSA9IGluZm9baV0uc2Nyb2xsRGVsdGE7CisgICAgLy8gRklY
TUU6IHB1c2hpbmcgc2Nyb2xsIG9mZnNldHMgdG8gbm9uLXJvb3QgbGF5ZXJzIG5vdCBpbXBsZW1l
bnRlZAorICAgIGlmICghaW5mby5zaXplKCkpCisgICAgICAgIHJldHVybjsKIAotICAgICAgICAv
LyBGSVhNRTogcHVzaGluZyBzY3JvbGwgb2Zmc2V0cyB0byBub24tcm9vdCBsYXllcnMgbm90IGlt
cGxlbWVudGVkCi0gICAgICAgIGlmIChyb290TGF5ZXIoKS0+aWQoKSA9PSBsYXllcklkKQotICAg
ICAgICAgICAgbV9jbGllbnQtPmFwcGx5U2Nyb2xsRGVsdGEoc2Nyb2xsRGVsdGEpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9CisgICAgQVNT
RVJUKGluZm8uc2l6ZSgpID09IDEpOworICAgIEludFNpemUgc2Nyb2xsRGVsdGEgPSBpbmZvWzBd
LnNjcm9sbERlbHRhOworICAgIG1fY2xpZW50LT5hcHBseVNjcm9sbERlbHRhKHNjcm9sbERlbHRh
KTsKIH0KIAogdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnN0YXJ0UmF0ZUxpbWl0ZXIoR3JhcGhpY3ND
b250ZXh0M0QqIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDJlMmQ4
ZmM2OWFmMDkyNmZhYjJlNWZkMDEwNGY1NjE0Mzc2YmI1NGQuLjc1MDczMGRjZWJhNzM2NDgzZWNj
ZDI4MDg4NDEwODcwNzMyYjE4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCkBAIC0y
Nyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJHcmFwaGljc1R5cGVzM0QuaCIKICNpbmNsdWRlICJJ
bnRSZWN0LmgiCisjaW5jbHVkZSAiTGF5ZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgIlJhdGVMaW1p
dGVyLmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlICJjYy9D
Q0xheWVyVHJlZUhvc3RDb21tb24uaCIKQEAgLTQ2LDcgKzQ3LDYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgQ0NMYXllclRyZWVIb3N0SW1wbDsKIGNsYXNzIENDVGV4dHVyZVVwZGF0ZXI7
CiBjbGFzcyBHcmFwaGljc0NvbnRleHQzRDsKLWNsYXNzIExheWVyQ2hyb21pdW07CiBjbGFzcyBM
YXllclBhaW50ZXJDaHJvbWl1bTsKIGNsYXNzIFRleHR1cmVBbGxvY2F0b3I7CiBjbGFzcyBUZXh0
dXJlTWFuYWdlcjsKQEAgLTEwMSw3ICsxMDEsNyBAQCBzdHJ1Y3QgTGF5ZXJSZW5kZXJlckNhcGFi
aWxpdGllcyB7CiAKIGNsYXNzIENDTGF5ZXJUcmVlSG9zdCA6IHB1YmxpYyBSZWZDb3VudGVkPEND
TGF5ZXJUcmVlSG9zdD4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENDTGF5ZXJU
cmVlSG9zdD4gY3JlYXRlKENDTGF5ZXJUcmVlSG9zdENsaWVudCosIFBhc3NSZWZQdHI8TGF5ZXJD
aHJvbWl1bT4gcm9vdExheWVyLCBjb25zdCBDQ1NldHRpbmdzJik7CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8Q0NMYXllclRyZWVIb3N0PiBjcmVhdGUoQ0NMYXllclRyZWVIb3N0Q2xpZW50KiwgY29u
c3QgQ0NTZXR0aW5ncyYpOwogICAgIHZpcnR1YWwgfkNDTGF5ZXJUcmVlSG9zdCgpOwogCiAgICAg
Ly8gQ0NMYXllclRyZWVIb3N0IGludGVyZmFjZSB0byBDQ1Byb3h5LgpAQCAtMTUxLDYgKzE1MSw3
IEBAIHB1YmxpYzoKIAogICAgIExheWVyQ2hyb21pdW0qIHJvb3RMYXllcigpIHsgcmV0dXJuIG1f
cm9vdExheWVyLmdldCgpOyB9CiAgICAgY29uc3QgTGF5ZXJDaHJvbWl1bSogcm9vdExheWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9yb290TGF5ZXIuZ2V0KCk7IH0KKyAgICB2b2lkIHNldFJvb3RMYXll
cihQYXNzUmVmUHRyPExheWVyQ2hyb21pdW0+IHJvb3RMYXllcikgeyBtX3Jvb3RMYXllciA9IHJv
b3RMYXllcjsgfQogCiAgICAgY29uc3QgQ0NTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCB7IHJl
dHVybiBtX3NldHRpbmdzOyB9CiAKQEAgLTE3Miw3ICsxNzMsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzdG9wUmF0ZUxpbWl0ZXIoR3JhcGhpY3NDb250ZXh0M0QqKTsKIAogcHJvdGVjdGVkOgotICAg
IENDTGF5ZXJUcmVlSG9zdChDQ0xheWVyVHJlZUhvc3RDbGllbnQqLCBQYXNzUmVmUHRyPExheWVy
Q2hyb21pdW0+IHJvb3RMYXllciwgY29uc3QgQ0NTZXR0aW5ncyYpOworICAgIENDTGF5ZXJUcmVl
SG9zdChDQ0xheWVyVHJlZUhvc3RDbGllbnQqLCBjb25zdCBDQ1NldHRpbmdzJik7CiAgICAgYm9v
bCBpbml0aWFsaXplKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dENvbW1vbi5oCmluZGV4IGU0ZDQ5NjM3NDE4Yjc5YjMwZWMwYzMwZDFmYjBmM2JkYTIxNjM1NWEu
LjI2N2YwM2Y2MGNjNDI3YTUzNWQwYmY1YTgwMDg0ZmQ0YmQzMjgzMzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dENvbW1vbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5oCkBAIC03Nyw4ICs3Nyw2IEBAIEludFJlY3QgQ0NM
YXllclRyZWVIb3N0Q29tbW9uOjpjYWxjdWxhdGVWaXNpYmxlTGF5ZXJSZWN0KExheWVyVHlwZSog
bGF5ZXIpCiAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZSgtY29udGVudEJvdW5kcy53aWR0aCgpIC8g
Mi4wLCAtY29udGVudEJvdW5kcy5oZWlnaHQoKSAvIDIuMCk7CiAKICAgICBJbnRSZWN0IHZpc2li
bGVMYXllclJlY3QgPSBDQ0xheWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0ZVZpc2libGVSZWN0
KHRhcmdldFN1cmZhY2VSZWN0LCBsYXllckJvdW5kUmVjdCwgdHJhbnNmb3JtKTsKLSAgICB2aXNp
YmxlTGF5ZXJSZWN0Lm1vdmUodG9TaXplKGxheWVyLT5zY3JvbGxQb3NpdGlvbigpKSk7Ci0KICAg
ICByZXR1cm4gdmlzaWJsZUxheWVyUmVjdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3RJbXBsLmNwcAppbmRleCA1MWQ5MmY1MDJiZGE5MDFlY2JhMTY1MGUxYTEzMGU3OTg0MDgw
M2JiLi5mZTA5MzI2ZTRiMjk5MDU2ZjJkNzViM2ViMWU2YWUzMjM4Y2M0NmU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3RJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcApAQCAtMTIzLDkgKzEyMywyOSBAQCB2b2lk
IENDTGF5ZXJUcmVlSG9zdEltcGw6OnJlYWRiYWNrKHZvaWQqIHBpeGVscywgY29uc3QgSW50UmVj
dCYgcmVjdCkKICAgICBtX2xheWVyUmVuZGVyZXItPmdldEZyYW1lYnVmZmVyUGl4ZWxzKHBpeGVs
cywgcmVjdCk7CiB9CiAKK3N0YXRpYyBDQ0xheWVySW1wbCogZmluZFNjcm9sbExheWVyKENDTGF5
ZXJJbXBsKiBsYXllcikKK3sKKyAgICBpZiAoIWxheWVyKQorICAgICAgICByZXR1cm4gMDsKKwor
ICAgIGlmICghbGF5ZXItPm1heFNjcm9sbFBvc2l0aW9uKCkuaXNaZXJvKCkpCisgICAgICAgIHJl
dHVybiBsYXllcjsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGF5ZXItPmNoaWxkcmVu
KCkuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgQ0NMYXllckltcGwqIGZvdW5kID0gZmluZFNjcm9s
bExheWVyKGxheWVyLT5jaGlsZHJlbigpW2ldLmdldCgpKTsKKyAgICAgICAgaWYgKGZvdW5kKQor
ICAgICAgICAgICAgcmV0dXJuIGZvdW5kOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCiB2
b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFJvb3RMYXllcihQYXNzUmVmUHRyPENDTGF5ZXJJ
bXBsPiBsYXllcikKIHsKICAgICBtX3Jvb3RMYXllckltcGwgPSBsYXllcjsKKworICAgIC8vIEZJ
WE1FOiBDdXJyZW50bHksIHRoaXMgb25seSBmaW5kcyB0aGUgZmlyc3Qgc2Nyb2xsYWJsZSBsYXll
ci4KKyAgICBtX3Njcm9sbExheWVySW1wbCA9IGZpbmRTY3JvbGxMYXllcihtX3Jvb3RMYXllcklt
cGwuZ2V0KCkpOwogfQogCiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFZpc2libGUoYm9v
bCB2aXNpYmxlKQpAQCAtMTc0LDEwICsxOTQsMTAgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBs
OjpzZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHoK
IHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6c2Nyb2xsUm9vdExheWVyKGNvbnN0IEludFNpemUm
IHNjcm9sbERlbHRhKQogewogICAgIFRSQUNFX0VWRU5UKCJDQ0xheWVyVHJlZUhvc3RJbXBsOjpz
Y3JvbGxSb290TGF5ZXIiLCB0aGlzLCAwKTsKLSAgICBpZiAoIW1fcm9vdExheWVySW1wbCB8fCAh
bV9yb290TGF5ZXJJbXBsLT5zY3JvbGxhYmxlKCkpCisgICAgaWYgKCFtX3Njcm9sbExheWVySW1w
bCB8fCAhbV9zY3JvbGxMYXllckltcGwtPnNjcm9sbGFibGUoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgbV9yb290TGF5ZXJJbXBsLT5zY3JvbGxCeShzY3JvbGxEZWx0YSk7CisgICAgbV9zY3Jv
bGxMYXllckltcGwtPnNjcm9sbEJ5KHNjcm9sbERlbHRhKTsKICAgICBtX2NsaWVudC0+c2V0TmVl
ZHNDb21taXRPbkltcGxUaHJlYWQoKTsKICAgICBtX2NsaWVudC0+c2V0TmVlZHNSZWRyYXdPbklt
cGxUaHJlYWQoKTsKIH0KQEAgLTE5MSwxNCArMjExLDE1IEBAIFBhc3NPd25QdHI8Q0NTY3JvbGxV
cGRhdGVTZXQ+IENDTGF5ZXJUcmVlSG9zdEltcGw6OnByb2Nlc3NTY3JvbGxEZWx0YXMoKQogewog
ICAgIE93blB0cjxDQ1Njcm9sbFVwZGF0ZVNldD4gc2Nyb2xsSW5mbyA9IGFkb3B0UHRyKG5ldyBD
Q1Njcm9sbFVwZGF0ZVNldCgpKTsKICAgICAvLyBGSVhNRTogdHJhY2sgc2Nyb2xscyBmcm9tIGxh
eWVycyBvdGhlciB0aGFuIHRoZSByb290Ci0gICAgaWYgKHJvb3RMYXllcigpICYmICFyb290TGF5
ZXIoKS0+c2Nyb2xsRGVsdGEoKS5pc1plcm8oKSkgeworICAgIGlmIChtX3Njcm9sbExheWVySW1w
bCAmJiAhbV9zY3JvbGxMYXllckltcGwtPnNjcm9sbERlbHRhKCkuaXNaZXJvKCkpIHsKICAgICAg
ICAgQ0NMYXllclRyZWVIb3N0Q29tbW9uOjpTY3JvbGxVcGRhdGVJbmZvIGluZm87Ci0gICAgICAg
IGluZm8ubGF5ZXJJZCA9IHJvb3RMYXllcigpLT5pZCgpOwotICAgICAgICBpbmZvLnNjcm9sbERl
bHRhID0gcm9vdExheWVyKCktPnNjcm9sbERlbHRhKCk7CisgICAgICAgIGluZm8ubGF5ZXJJZCA9
IG1fc2Nyb2xsTGF5ZXJJbXBsLT5pZCgpOworICAgICAgICBpbmZvLnNjcm9sbERlbHRhID0gbV9z
Y3JvbGxMYXllckltcGwtPnNjcm9sbERlbHRhKCk7CiAgICAgICAgIHNjcm9sbEluZm8tPmFwcGVu
ZChpbmZvKTsKIAotICAgICAgICByb290TGF5ZXIoKS0+c2V0U2Nyb2xsUG9zaXRpb24ocm9vdExh
eWVyKCktPnNjcm9sbFBvc2l0aW9uKCkgKyByb290TGF5ZXIoKS0+c2Nyb2xsRGVsdGEoKSk7Ci0g
ICAgICAgIHJvb3RMYXllcigpLT5zZXRTY3JvbGxEZWx0YShJbnRTaXplKCkpOworICAgICAgICBt
X3Njcm9sbExheWVySW1wbC0+c2V0U2Nyb2xsUG9zaXRpb24obV9zY3JvbGxMYXllckltcGwtPnNj
cm9sbFBvc2l0aW9uKCkgKyBtX3Njcm9sbExheWVySW1wbC0+c2Nyb2xsRGVsdGEoKSk7CisgICAg
ICAgIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zZXRQb3NpdGlvbihtX3Njcm9sbExheWVySW1wbC0+cG9z
aXRpb24oKSAtIG1fc2Nyb2xsTGF5ZXJJbXBsLT5zY3JvbGxEZWx0YSgpKTsKKyAgICAgICAgbV9z
Y3JvbGxMYXllckltcGwtPnNldFNjcm9sbERlbHRhKEludFNpemUoKSk7CiAgICAgfQogICAgIHJl
dHVybiBzY3JvbGxJbmZvLnJlbGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dEltcGwuaAppbmRleCA1YTY4ZjBmZTMwODRjZThkMWY1ZTJhNzBjNzAxYWZhN2M3NTAxNDgyLi5i
NTNlMjAwMTkxOGM2NTY2NGMyY2NhNjA1NWVhN2U1ZGUwYjRiNjIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJ
bXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllclRyZWVIb3N0SW1wbC5oCkBAIC0xMTAsNiArMTEwLDcgQEAgcHJvdGVjdGVkOgogcHJp
dmF0ZToKICAgICBPd25QdHI8TGF5ZXJSZW5kZXJlckNocm9taXVtPiBtX2xheWVyUmVuZGVyZXI7
CiAgICAgUmVmUHRyPENDTGF5ZXJJbXBsPiBtX3Jvb3RMYXllckltcGw7CisgICAgUmVmUHRyPEND
TGF5ZXJJbXBsPiBtX3Njcm9sbExheWVySW1wbDsKICAgICBDQ1NldHRpbmdzIG1fc2V0dGluZ3M7
CiAgICAgSW50U2l6ZSBtX3ZpZXdwb3J0U2l6ZTsKICAgICBib29sIG1fdmlzaWJsZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGls
ZWRMYXllckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAKaW5kZXggMTE1NWE0Y2FkNTM3YzZhNjZlNjM2ZjA0
MDIwYmZhOTZjZjkyYmQ3ZC4uOGJiMzAyZDY1YWUyYjJlMGYxMzAwNzkxYTRjOGM0M2Q1ZjA5Nzg0
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NUaWxlZExheWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHAKQEAgLTEwNCw5ICsxMDQsNiBA
QCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCBDQ1RpbGVkTGF5ZXJJbXBsOjp0aWxpbmdUcmFuc2Zvcm0o
KSBjb25zdAogCiAgICAgLy8gVGlsZXIgZHJhd3Mgd2l0aCBhIGRpZmZlcmVudCBvcmlnaW4gZnJv
bSBvdGhlciBsYXllcnMuCiAgICAgdHJhbnNmb3JtLnRyYW5zbGF0ZSgtY29udGVudEJvdW5kcygp
LndpZHRoKCkgLyAyLjAsIC1jb250ZW50Qm91bmRzKCkuaGVpZ2h0KCkgLyAyLjApOwotCi0gICAg
dHJhbnNmb3JtLnRyYW5zbGF0ZSgtc2Nyb2xsUG9zaXRpb24oKS54KCksIC1zY3JvbGxQb3NpdGlv
bigpLnkoKSk7Ci0KICAgICByZXR1cm4gdHJhbnNmb3JtOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDZhYjUwY2Jk
YjJkMjQ2NDBlMWQxZTA0ODE3ODJiNjdmNzQzODc3YWEuLmNhNzBiNmJlZDQ0YTUyMTFkOTYxOTYx
NWZjZDcwMTk1NjBkOGJjZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0xMTgwLDYgKzExODAsMTEgQEAgR3JhcGhpY3NM
YXllciogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpyb290R3JhcGhpY3NMYXllcigpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fcm9vdENvbnRlbnRMYXllci5nZXQoKTsKIH0KIAorR3JhcGhpY3NMYXllciog
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzY3JvbGxMYXllcigpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fc2Nyb2xsTGF5ZXIuZ2V0KCk7Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpk
aWRNb3ZlT25zY3JlZW4oKQogewogICAgIGlmICghaW5Db21wb3NpdGluZ01vZGUoKSB8fCBtX3Jv
b3RMYXllckF0dGFjaG1lbnQgIT0gUm9vdExheWVyVW5hdHRhY2hlZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCBhY2M1YzM4MTYy
NjFjMGUxZDc2NjVkZGU2M2U1ZTYyNjRjMzg4MjUwLi5hOGFkMzk2ZGNlNWRmMjlmYmE5MmNiZDM5
Yzk3MzRhNjEyYTc4ZTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5oCkBAIC0xMzUsNiArMTM1LDcgQEAgcHVibGljOgogCiAgICAgUmVu
ZGVyTGF5ZXIqIHJvb3RSZW5kZXJMYXllcigpIGNvbnN0OwogICAgIEdyYXBoaWNzTGF5ZXIqIHJv
b3RHcmFwaGljc0xheWVyKCkgY29uc3Q7CisgICAgR3JhcGhpY3NMYXllciogc2Nyb2xsTGF5ZXIo
KSBjb25zdDsKIAogICAgIGVudW0gUm9vdExheWVyQXR0YWNobWVudCB7CiAgICAgICAgIFJvb3RM
YXllclVuYXR0YWNoZWQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJMYXllclRyZWVWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJM
YXllclRyZWVWaWV3SW1wbC5jcHAKaW5kZXggODlkYmJhNjE2NjY0YWE3YmFkZTI2OTA3OTg3OGZh
YTNmNmIxZGIxYS4uMmU2OWVjMzQ3Y2RkMGU1MDVhZTU1ZjJjNTBhY2FhYTk2ZDRkYTFiZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBs
LmNwcApAQCAtNDksOSArNDksMTAgQEAgUGFzc1JlZlB0cjxXZWJMYXllclRyZWVWaWV3SW1wbD4g
V2ViTGF5ZXJUcmVlVmlld0ltcGw6OmNyZWF0ZShXZWJMYXllclRyZWVWaWV3Q2wKIH0KIAogV2Vi
TGF5ZXJUcmVlVmlld0ltcGw6OldlYkxheWVyVHJlZVZpZXdJbXBsKFdlYkxheWVyVHJlZVZpZXdD
bGllbnQqIGNsaWVudCwgY29uc3QgV2ViTGF5ZXImIHJvb3QsIGNvbnN0IFdlYkxheWVyVHJlZVZp
ZXc6OlNldHRpbmdzJiBzZXR0aW5ncykgCi0gICAgOiBDQ0xheWVyVHJlZUhvc3QodGhpcywgcm9v
dCwgc2V0dGluZ3MpCisgICAgOiBDQ0xheWVyVHJlZUhvc3QodGhpcywgc2V0dGluZ3MpCiAgICAg
LCBtX2NsaWVudChjbGllbnQpCiB7CisgICAgc2V0Um9vdExheWVyKHJvb3QpOwogfQogCiBXZWJM
YXllclRyZWVWaWV3SW1wbDo6fldlYkxheWVyVHJlZVZpZXdJbXBsKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA0OGZiM2UwYTk4ZjNhYjJhYzE1NDE1
YjA1NzVlZmFhMzA0MDBhMDgzLi5kZWUxNWM5YjI5YTc5NjEyMWEyMThjZDAzNDVjODE5NjczYTcx
YjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC05
MSw2ICs5MSw3IEBACiAjaW5jbHVkZSAiUG9wdXBDb250YWluZXIuaCIKICNpbmNsdWRlICJQb3B1
cE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKKyNpbmNsdWRlICJS
ZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVk
ZSAiUmVzb3VyY2VIYW5kbGUuaCIKICNpbmNsdWRlICJTY3JvbGxBbmltYXRvci5oIgpAQCAtMjUx
MCw4ICsyNTExLDE4IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldFJvb3RHcmFwaGljc0xheWVyKEdy
YXBoaWNzTGF5ZXIqIGxheWVyKQogICAgIG1fcm9vdEdyYXBoaWNzTGF5ZXIgPSBsYXllcjsKIAog
ICAgIHNldElzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZShsYXllcik7Ci0gICAgaWYgKG1f
bm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0KQotICAgICAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50
SG9zdC0+c2V0Um9vdExheWVyKGxheWVyKTsKKyAgICBpZiAobV9ub25Db21wb3NpdGVkQ29udGVu
dEhvc3QpIHsKKyAgICAgICAgR3JhcGhpY3NMYXllciogc2Nyb2xsTGF5ZXIgPSAwOworICAgICAg
ICBpZiAobGF5ZXIpIHsKKyAgICAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHBhZ2UoKS0+
bWFpbkZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgICAgICAgICBSZW5kZXJWaWV3KiByZW5kZXJW
aWV3ID0gZG9jdW1lbnQtPnJlbmRlclZpZXcoKTsKKyAgICAgICAgICAgIFJlbmRlckxheWVyQ29t
cG9zaXRvciogY29tcG9zaXRvciA9IHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKTsKKyAgICAgICAg
ICAgIHNjcm9sbExheWVyID0gY29tcG9zaXRvci0+c2Nyb2xsTGF5ZXIoKTsKKyAgICAgICAgfQor
ICAgICAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC0+c2V0U2Nyb2xsTGF5ZXIoc2Nyb2xs
TGF5ZXIpOworICAgIH0KKyAgICBpZiAobV9sYXllclRyZWVIb3N0KQorICAgICAgICBtX2xheWVy
VHJlZUhvc3QtPnNldFJvb3RMYXllcihsYXllciA/IGxheWVyLT5wbGF0Zm9ybUxheWVyKCkgOiAw
KTsKIAogICAgIEludFJlY3QgZGFtYWdlZFJlY3QoMCwgMCwgbV9zaXplLndpZHRoLCBtX3NpemUu
aGVpZ2h0KTsKICAgICBpZiAoIW1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKQpAQCAt
MjYyNSw3ICsyNjM2LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0SXNBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQWN0aXZlKGJvb2wgYWN0aXZlKQogICAgICAgICBjY1NldHRpbmdzLnNob3dQbGF0Zm9y
bUxheWVyVHJlZSA9IHNldHRpbmdzKCktPnNob3dQbGF0Zm9ybUxheWVyVHJlZSgpOwogCiAgICAg
ICAgIG1fbm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0ID0gTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0
OjpjcmVhdGUoV2ViVmlld0ltcGxDb250ZW50UGFpbnRlcjo6Y3JlYXRlKHRoaXMpKTsKLSAgICAg
ICAgbV9sYXllclRyZWVIb3N0ID0gQ0NMYXllclRyZWVIb3N0OjpjcmVhdGUodGhpcywgbV9ub25D
b21wb3NpdGVkQ29udGVudEhvc3QtPnRvcExldmVsUm9vdExheWVyKCktPnBsYXRmb3JtTGF5ZXIo
KSwgY2NTZXR0aW5ncyk7CisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdCA9IENDTGF5ZXJUcmVlSG9z
dDo6Y3JlYXRlKHRoaXMsIGNjU2V0dGluZ3MpOwogICAgICAgICBpZiAobV9sYXllclRyZWVIb3N0
KSB7CiAgICAgICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldEhhdmVXaGVlbEV2ZW50SGFuZGxl
cnMobV9oYXZlV2hlZWxFdmVudEhhbmRsZXJzKTsKICAgICAgICAgICAgIHVwZGF0ZUxheWVyVHJl
ZVZpZXdwb3J0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113564</attachid>
            <date>2011-11-03 15:13:39 -0700</date>
            <delta_ts>2011-11-03 23:39:36 -0700</delta_ts>
            <desc>Fix tests to build</desc>
            <filename>bug-70962-20111103151338.patch</filename>
            <type>text/plain</type>
            <size>21874</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkyMjMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwMTI4MjBkMzgyYTY4NGVk
NjA2ZDQ3MWM3MTE1ODJiNTVlNmM3NjFjLi5jNmZlNTMyYmY1NjhmYzM5Mzg1Mjk0Njc2YjcxMzc5
YjVmZmM1N2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTEtMTEtMDMgIEFkcmll
bm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIEZpeCBp
bmNvcnJlY3QgdmlzaWJpbGl0eS9zY2lzc29yIHJlY3QgZm9yIHRocmVhZGVkIGNvbXBvc2l0aW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDk2Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIG9yZGVy
IHRvIHByb3Blcmx5IHNjcm9sbCBpbmRlcGVuZGVudCBvZiBsYXlvdXQgb24gdGhlIGNvbXBvc2l0
b3IKKyAgICAgICAgdGhyZWFkLCB3ZSBoYXZlIHRvIGFwcGx5IHRoZSBzY3JvbGwgdG8gdGhlIHJp
Z2h0IGxheWVyLiBQcmV2aW91c2x5LAorICAgICAgICB0aGUgTm9uQ29tcG9zaXRlZENvbnRlbnRI
b3N0IHdhcyB0aGUgcm9vdCBvZiB0aGUgZ3JhcGhpY3MgbGF5ZXIgdHJlZQorICAgICAgICB3aXRo
IGFsbCBvdGhlciBsYXllcnMgdW5kZXJuZWF0aCBpdC4gSG93ZXZlciwgYXBwbHlpbmcgYSBzY3Jv
bGwgdG8KKyAgICAgICAgdGhhdCBsYXllciB3b3VsZCBhbHNvIHNjcm9sbCB0aGUgY2xpcCBsYXll
ciBmb3IgdGhlIG1haW4gZnJhbWUKKyAgICAgICAgdW5kZXJuZWF0aCBpdCwgY2F1c2luZyB2aXNp
YmlsaXR5IGlzc3Vlcy4KKworICAgICAgICBUaGlzIHBhdGNoIG1vdmVzIHRoZSBOb25Db21wb3Np
dGVkSG9zdCB0byBiZSBhIGNoaWxkIG9mIHRoZQorICAgICAgICBSZW5kZXJMYXllckNvbXBvc2l0
b3IncyBzY3JvbGwgbGF5ZXIuIFRoaXMgd2FzIGV4cG9zZWQgb24KKyAgICAgICAgUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLCBiZWNhdXNlIHRoZXJlJ3Mgbm8gb3RoZXIgd2F5IHRvIGdldCB0byB0aGlz
CisgICAgICAgIGxheWVyIGluIGEgd2F5IHRoYXQgZG9lc24ndCBtYWtlIGFzc3VtcHRpb25zIGFi
b3V0IHRoZSBzdHJ1Y3R1cmUgb2YKKyAgICAgICAgdGhlIGxheWVycyBvbiBhIGZyYW1lLgorCisg
ICAgICAgIFRoaXMgYWxzbyByZW1vdmVzIHRoZSBoYWNrcyBpbiBjYWxjdWxhdGVWaXNpYmxlTGF5
ZXJSZWN0IGFuZAorICAgICAgICB0aWxpbmdUcmFuc2Zvcm0gZm9yIHNjcm9sbCBwb3NpdGlvbi4K
KworICAgICAgICBQYXJ0aWFsbHkgdGVzdGVkIGJ5IGV4aXN0aW5nIGNvbXBvc2l0b3IgdGVzdHMu
IE1hbnVhbGx5IHRlc3RlZAorICAgICAgICB0aHJlYWRlZCBjb21wb3NpdGluZyBzY3JvbGxpbmcu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3NpdGVkQ29u
dGVudEhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0
OjpzZXRTY3JvbGxMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpOb25Db21wb3NpdGVkQ29udGVu
dEhvc3Q6OnNldFZpZXdwb3J0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vbkNvbXBvc2l0ZWRDb250
ZW50SG9zdDo6c2Nyb2xsTGF5ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
Q0xheWVyVHJlZUhvc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhv
c3Q6OkNDTGF5ZXJUcmVlSG9zdCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6
OmFwcGx5U2Nyb2xsRGVsdGFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9z
dDo6c2V0Um9vdExheWVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3RDb21tb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVl
SG9zdENvbW1vbjo6Y2FsY3VsYXRlVmlzaWJsZUxheWVyUmVjdCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpmaW5kU2Nyb2xsTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRy
ZWVIb3N0SW1wbDo6c2V0Um9vdExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVl
SG9zdEltcGw6OnNjcm9sbFJvb3RMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJl
ZUhvc3RJbXBsOjpwcm9jZXNzU2Nyb2xsRGVsdGFzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1wbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDQ1RpbGVkTGF5ZXJJbXBsOjp0aWxpbmdUcmFuc2Zvcm0pOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpzY3JvbGxMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oOgorCiAyMDExLTExLTAzICBNYXJrIEhhaG5lbmJlcmcgIDxt
aGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgRGUtdmlydHVhbGl6ZSBKU09iamVjdDo6
Y2xhc3NOYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDAxYzYzODllODU4NDUxNDZk
NWZmYjlkY2Q5NTEyZjgyMDY5MjI5ZTAuLjk2NTIzZDQ0MmFmNzdjM2RkZTBmOTg3Y2Y2YTI1ODVl
MzljMjNkNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MTEtMTEtMDMgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBb
Y2hyb21pdW1dIEZpeCBpbmNvcnJlY3QgdmlzaWJpbGl0eS9zY2lzc29yIHJlY3QgZm9yIHRocmVh
ZGVkIGNvbXBvc2l0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03MDk2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViTGF5ZXJUcmVlVmlld0ltcGw6OldlYkxheWVyVHJlZVZpZXdJbXBsKToKKyAgICAgICAgKiBz
cmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0Um9v
dEdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SXNBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKToKKyAgICAgICAgKiB0ZXN0cy9DQ0xheWVyVHJlZUhv
c3RUZXN0LmNwcDoKKyAgICAgICAgKFdURjo6TW9ja0xheWVyVHJlZUhvc3Q6Ok1vY2tMYXllclRy
ZWVIb3N0KToKKwogMjAxMS0xMS0wMyAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBbQ2hyb21pdW1dIFJlZmFjdG9yIFdlYkZyYW1lSW1wbDo6Y3JlYXRlRnJh
bWVWaWV3KCkgdG8gdXNlIEZyYW1lOmNyZWF0ZVZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3Np
dGVkQ29udGVudEhvc3QuY3BwCmluZGV4IGZjY2I1ZjZmZGNjMzQzZmU1M2NiZWM3Y2RiZWY5ZDcz
MzQ0N2M3YWUuLmJhMjY2NzMxNjFmMjMyMDRmODY2ZjM5Mjc5MjA3M2YyN2ZmZDc3ZTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL05vbkNvbXBv
c2l0ZWRDb250ZW50SG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0LmNwcApAQCAtNDksMzQgKzQ5LDUx
IEBAIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6fk5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdCgp
CiB7CiB9CiAKLXZvaWQgTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpzZXRSb290TGF5ZXIoR3Jh
cGhpY3NMYXllciogbGF5ZXIpCit2b2lkIE5vbkNvbXBvc2l0ZWRDb250ZW50SG9zdDo6c2V0U2Ny
b2xsTGF5ZXIoR3JhcGhpY3NMYXllciogbGF5ZXIpCiB7Ci0gICAgbV9ncmFwaGljc0xheWVyLT5y
ZW1vdmVBbGxDaGlsZHJlbigpOwogICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0TmVlZHNEaXNwbGF5
KCk7Ci0gICAgaWYgKGxheWVyKQotICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPmFkZENoaWxkKGxh
eWVyKTsKLSAgICBlbHNlCisKKyAgICBpZiAoIWxheWVyKSB7CisgICAgICAgIG1fZ3JhcGhpY3NM
YXllci0+cmVtb3ZlRnJvbVBhcmVudCgpOwogICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnBsYXRm
b3JtTGF5ZXIoKS0+c2V0TGF5ZXJUcmVlSG9zdCgwKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGlmIChsYXllci0+cGxhdGZvcm1MYXllcigpID09IHNjcm9sbExheWVyKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGxheWVyLT5hZGRDaGlsZEF0SW5kZXgobV9ncmFwaGljc0xheWVy
LmdldCgpLCAwKTsKKyAgICBBU1NFUlQoc2Nyb2xsTGF5ZXIoKSk7CiB9CiAKIHZvaWQgTm9uQ29t
cG9zaXRlZENvbnRlbnRIb3N0OjpzZXRWaWV3cG9ydChjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNp
emUsIGNvbnN0IEludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBv
c2l0aW9uKQogeworICAgIGlmICghc2Nyb2xsTGF5ZXIoKSkKKyAgICAgICAgcmV0dXJuOworCiAg
ICAgYm9vbCB2aXNpYmxlUmVjdENoYW5nZWQgPSBtX3ZpZXdwb3J0U2l6ZSAhPSB2aWV3cG9ydFNp
emU7CiAKICAgICBtX3ZpZXdwb3J0U2l6ZSA9IHZpZXdwb3J0U2l6ZTsKLSAgICBtX2dyYXBoaWNz
TGF5ZXItPnBsYXRmb3JtTGF5ZXIoKS0+c2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsUG9zaXRpb24p
OworICAgIHNjcm9sbExheWVyKCktPnNldFNjcm9sbFBvc2l0aW9uKHNjcm9sbFBvc2l0aW9uKTsK
ICAgICBJbnRTaXplIG1heFNjcm9sbCA9IGNvbnRlbnRzU2l6ZSAtIHZpZXdwb3J0U2l6ZTsKICAg
ICAvLyBUaGUgdmlld3BvcnQgbWF5IGJlIGxhcmdlciB0aGFuIHRoZSBjb250ZW50cyBpbiBzb21l
IGNhc2VzLCBzdWNoIGFzCiAgICAgLy8gaGF2aW5nIGEgdmVydGljYWwgc2Nyb2xsYmFyIGJ1dCBu
byBob3Jpem9udGFsIG92ZXJmbG93LgogICAgIG1heFNjcm9sbC5jbGFtcE5lZ2F0aXZlVG9aZXJv
KCk7CiAKLSAgICBtX2dyYXBoaWNzTGF5ZXItPnBsYXRmb3JtTGF5ZXIoKS0+c2V0TWF4U2Nyb2xs
UG9zaXRpb24obWF4U2Nyb2xsKTsKKyAgICBzY3JvbGxMYXllcigpLT5zZXRNYXhTY3JvbGxQb3Np
dGlvbihtYXhTY3JvbGwpOwogICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0U2l6ZShjb250ZW50c1Np
emUpOwogCiAgICAgaWYgKHZpc2libGVSZWN0Q2hhbmdlZCkKICAgICAgICAgbV9ncmFwaGljc0xh
eWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKIH0KIAorTGF5ZXJDaHJvbWl1bSogTm9uQ29tcG9zaXRl
ZENvbnRlbnRIb3N0OjpzY3JvbGxMYXllcigpCit7CisgICAgaWYgKCFtX2dyYXBoaWNzTGF5ZXIt
PnBhcmVudCgpKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9ncmFwaGljc0xheWVy
LT5wYXJlbnQoKS0+cGxhdGZvcm1MYXllcigpOworfQorCiB2b2lkIE5vbkNvbXBvc2l0ZWRDb250
ZW50SG9zdDo6cHJvdGVjdFZpc2libGVUaWxlVGV4dHVyZXMoKQogewogICAgIG1fZ3JhcGhpY3NM
YXllci0+cGxhdGZvcm1MYXllcigpLT5wcm90ZWN0VmlzaWJsZVRpbGVUZXh0dXJlcygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTm9uQ29t
cG9zaXRlZENvbnRlbnRIb3N0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaAppbmRleCA4OWE4ZmNlY2ExNWQwYjE5
OGFkOTczYTU5MDU0Zjc3ZDZmNjM4MzI5Li5iNmI1ZTJkN2VkNWViMjA5NGNmYzc3YjYxOGE4M2Vi
ZTMyZGZlOTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Ob25Db21wb3NpdGVkQ29udGVudEhvc3QuaApAQCAt
MzksNiArMzksNyBAQCBjbGFzcyBHcmFwaGljc0xheWVyOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0
OwogY2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBJbnRSZWN0OworY2xhc3MgTGF5ZXJDaHJvbWl1bTsK
IGNsYXNzIExheWVyUGFpbnRlckNocm9taXVtOwogCiBjbGFzcyBOb25Db21wb3NpdGVkQ29udGVu
dEhvc3QgOiBwdWJsaWMgR3JhcGhpY3NMYXllckNsaWVudCB7CkBAIC01MSwxMCArNTIsOSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB+Tm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0KCk7CiAKICAgICB2
b2lkIGludmFsaWRhdGVSZWN0KGNvbnN0IEludFJlY3QmKTsKLSAgICB2b2lkIHNldFJvb3RMYXll
cihHcmFwaGljc0xheWVyKik7CisgICAgdm9pZCBzZXRTY3JvbGxMYXllcihHcmFwaGljc0xheWVy
Kik7CiAgICAgdm9pZCBzZXRWaWV3cG9ydChjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGNv
bnN0IEludFNpemUmIGNvbnRlbnRzU2l6ZSwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9u
KTsKICAgICB2b2lkIHByb3RlY3RWaXNpYmxlVGlsZVRleHR1cmVzKCk7Ci0gICAgR3JhcGhpY3NM
YXllciogdG9wTGV2ZWxSb290TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2dyYXBoaWNzTGF5ZXIu
Z2V0KCk7IH0KIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBOb25Db21wb3NpdGVkQ29udGVudEhv
c3QoUGFzc093blB0cjxMYXllclBhaW50ZXJDaHJvbWl1bT4gY29udGVudFBhaW50KTsKQEAgLTY2
LDYgKzY2LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc2hvd0RlYnVnQm9yZGVycygp
IGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBzaG93UmVwYWludENvdW50ZXIoKSBjb25zdDsKIAor
ICAgIExheWVyQ2hyb21pdW0qIHNjcm9sbExheWVyKCk7CisKICAgICBPd25QdHI8R3JhcGhpY3NM
YXllcj4gbV9ncmFwaGljc0xheWVyOwogICAgIE93blB0cjxMYXllclBhaW50ZXJDaHJvbWl1bT4g
bV9jb250ZW50UGFpbnQ7CiAgICAgSW50U2l6ZSBtX3ZpZXdwb3J0U2l6ZTsKQEAgLTc0LDQgKzc2
LDMgQEAgcHJpdmF0ZToKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIE5vbkNv
bXBvc2l0ZWRDb250ZW50SG9zdF9oCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCmlu
ZGV4IDA0NjFiZGY5YjdjMThlMjRhN2U4OWZjODk3NGEzZWI2YjU5ZjEyNWEuLmI5MDE2MTczOTQw
ZGJjODY0YTk5YjY5OWJiOWNmYzhhOTI3MDkxOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0LmNwcApAQCAtNDAsMjAgKzQwLDE5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGFz
c1JlZlB0cjxDQ0xheWVyVHJlZUhvc3Q+IENDTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKENDTGF5ZXJU
cmVlSG9zdENsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPExheWVyQ2hyb21pdW0+IHJvb3RMYXll
ciwgY29uc3QgQ0NTZXR0aW5ncyYgc2V0dGluZ3MpCitQYXNzUmVmUHRyPENDTGF5ZXJUcmVlSG9z
dD4gQ0NMYXllclRyZWVIb3N0OjpjcmVhdGUoQ0NMYXllclRyZWVIb3N0Q2xpZW50KiBjbGllbnQs
IGNvbnN0IENDU2V0dGluZ3MmIHNldHRpbmdzKQogewotICAgIFJlZlB0cjxDQ0xheWVyVHJlZUhv
c3Q+IGxheWVyVHJlZUhvc3QgPSBhZG9wdFJlZihuZXcgQ0NMYXllclRyZWVIb3N0KGNsaWVudCwg
cm9vdExheWVyLCBzZXR0aW5ncykpOworICAgIFJlZlB0cjxDQ0xheWVyVHJlZUhvc3Q+IGxheWVy
VHJlZUhvc3QgPSBhZG9wdFJlZihuZXcgQ0NMYXllclRyZWVIb3N0KGNsaWVudCwgc2V0dGluZ3Mp
KTsKICAgICBpZiAoIWxheWVyVHJlZUhvc3QtPmluaXRpYWxpemUoKSkKICAgICAgICAgcmV0dXJu
IDA7CiAgICAgcmV0dXJuIGxheWVyVHJlZUhvc3Q7CiB9CiAKLUNDTGF5ZXJUcmVlSG9zdDo6Q0NM
YXllclRyZWVIb3N0KENDTGF5ZXJUcmVlSG9zdENsaWVudCogY2xpZW50LCBQYXNzUmVmUHRyPExh
eWVyQ2hyb21pdW0+IHJvb3RMYXllciwgY29uc3QgQ0NTZXR0aW5ncyYgc2V0dGluZ3MpCitDQ0xh
eWVyVHJlZUhvc3Q6OkNDTGF5ZXJUcmVlSG9zdChDQ0xheWVyVHJlZUhvc3RDbGllbnQqIGNsaWVu
dCwgY29uc3QgQ0NTZXR0aW5ncyYgc2V0dGluZ3MpCiAgICAgOiBtX2NvbXBvc2l0b3JJZGVudGlm
aWVyKC0xKQogICAgICwgbV9hbmltYXRpbmcoZmFsc2UpCiAgICAgLCBtX2NsaWVudChjbGllbnQp
CiAgICAgLCBtX2ZyYW1lTnVtYmVyKDApCi0gICAgLCBtX3Jvb3RMYXllcihyb290TGF5ZXIpCiAg
ICAgLCBtX3NldHRpbmdzKHNldHRpbmdzKQogICAgICwgbV92aXNpYmxlKHRydWUpCiAgICAgLCBt
X2hhdmVXaGVlbEV2ZW50SGFuZGxlcnMoZmFsc2UpCkBAIC00NDAsMTYgKzQzOSwxMyBAQCB2b2lk
IENDTGF5ZXJUcmVlSG9zdDo6Y2xlYXJQZW5kaW5nVXBkYXRlKCkKIAogdm9pZCBDQ0xheWVyVHJl
ZUhvc3Q6OmFwcGx5U2Nyb2xsRGVsdGFzKGNvbnN0IENDU2Nyb2xsVXBkYXRlU2V0JiBpbmZvKQog
ewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaW5mby5zaXplKCk7ICsraSkgewotICAgICAg
ICBpbnQgbGF5ZXJJZCA9IGluZm9baV0ubGF5ZXJJZDsKLSAgICAgICAgSW50U2l6ZSBzY3JvbGxE
ZWx0YSA9IGluZm9baV0uc2Nyb2xsRGVsdGE7CisgICAgLy8gRklYTUU6IHB1c2hpbmcgc2Nyb2xs
IG9mZnNldHMgdG8gbm9uLXJvb3QgbGF5ZXJzIG5vdCBpbXBsZW1lbnRlZAorICAgIGlmICghaW5m
by5zaXplKCkpCisgICAgICAgIHJldHVybjsKIAotICAgICAgICAvLyBGSVhNRTogcHVzaGluZyBz
Y3JvbGwgb2Zmc2V0cyB0byBub24tcm9vdCBsYXllcnMgbm90IGltcGxlbWVudGVkCi0gICAgICAg
IGlmIChyb290TGF5ZXIoKS0+aWQoKSA9PSBsYXllcklkKQotICAgICAgICAgICAgbV9jbGllbnQt
PmFwcGx5U2Nyb2xsRGVsdGEoc2Nyb2xsRGVsdGEpOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICB9CisgICAgQVNTRVJUKGluZm8uc2l6ZSgpID09
IDEpOworICAgIEludFNpemUgc2Nyb2xsRGVsdGEgPSBpbmZvWzBdLnNjcm9sbERlbHRhOworICAg
IG1fY2xpZW50LT5hcHBseVNjcm9sbERlbHRhKHNjcm9sbERlbHRhKTsKIH0KIAogdm9pZCBDQ0xh
eWVyVHJlZUhvc3Q6OnN0YXJ0UmF0ZUxpbWl0ZXIoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCmluZGV4IDJlMmQ4ZmM2OWFmMDkyNmZhYjJlNWZk
MDEwNGY1NjE0Mzc2YmI1NGQuLjc1MDczMGRjZWJhNzM2NDgzZWNjZDI4MDg4NDEwODcwNzMyYjE4
Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNp
bmNsdWRlICJHcmFwaGljc1R5cGVzM0QuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVk
ZSAiTGF5ZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgIlJhdGVMaW1pdGVyLmgiCiAjaW5jbHVkZSAi
VHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3RDb21t
b24uaCIKQEAgLTQ2LDcgKzQ3LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ0NMYXll
clRyZWVIb3N0SW1wbDsKIGNsYXNzIENDVGV4dHVyZVVwZGF0ZXI7CiBjbGFzcyBHcmFwaGljc0Nv
bnRleHQzRDsKLWNsYXNzIExheWVyQ2hyb21pdW07CiBjbGFzcyBMYXllclBhaW50ZXJDaHJvbWl1
bTsKIGNsYXNzIFRleHR1cmVBbGxvY2F0b3I7CiBjbGFzcyBUZXh0dXJlTWFuYWdlcjsKQEAgLTEw
MSw3ICsxMDEsNyBAQCBzdHJ1Y3QgTGF5ZXJSZW5kZXJlckNhcGFiaWxpdGllcyB7CiAKIGNsYXNz
IENDTGF5ZXJUcmVlSG9zdCA6IHB1YmxpYyBSZWZDb3VudGVkPENDTGF5ZXJUcmVlSG9zdD4gewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENDTGF5ZXJUcmVlSG9zdD4gY3JlYXRlKEND
TGF5ZXJUcmVlSG9zdENsaWVudCosIFBhc3NSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gcm9vdExheWVy
LCBjb25zdCBDQ1NldHRpbmdzJik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q0NMYXllclRyZWVI
b3N0PiBjcmVhdGUoQ0NMYXllclRyZWVIb3N0Q2xpZW50KiwgY29uc3QgQ0NTZXR0aW5ncyYpOwog
ICAgIHZpcnR1YWwgfkNDTGF5ZXJUcmVlSG9zdCgpOwogCiAgICAgLy8gQ0NMYXllclRyZWVIb3N0
IGludGVyZmFjZSB0byBDQ1Byb3h5LgpAQCAtMTUxLDYgKzE1MSw3IEBAIHB1YmxpYzoKIAogICAg
IExheWVyQ2hyb21pdW0qIHJvb3RMYXllcigpIHsgcmV0dXJuIG1fcm9vdExheWVyLmdldCgpOyB9
CiAgICAgY29uc3QgTGF5ZXJDaHJvbWl1bSogcm9vdExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9y
b290TGF5ZXIuZ2V0KCk7IH0KKyAgICB2b2lkIHNldFJvb3RMYXllcihQYXNzUmVmUHRyPExheWVy
Q2hyb21pdW0+IHJvb3RMYXllcikgeyBtX3Jvb3RMYXllciA9IHJvb3RMYXllcjsgfQogCiAgICAg
Y29uc3QgQ0NTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCB7IHJldHVybiBtX3NldHRpbmdzOyB9
CiAKQEAgLTE3Miw3ICsxNzMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzdG9wUmF0ZUxpbWl0ZXIo
R3JhcGhpY3NDb250ZXh0M0QqKTsKIAogcHJvdGVjdGVkOgotICAgIENDTGF5ZXJUcmVlSG9zdChD
Q0xheWVyVHJlZUhvc3RDbGllbnQqLCBQYXNzUmVmUHRyPExheWVyQ2hyb21pdW0+IHJvb3RMYXll
ciwgY29uc3QgQ0NTZXR0aW5ncyYpOworICAgIENDTGF5ZXJUcmVlSG9zdChDQ0xheWVyVHJlZUhv
c3RDbGllbnQqLCBjb25zdCBDQ1NldHRpbmdzJik7CiAgICAgYm9vbCBpbml0aWFsaXplKCk7CiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RDb21tb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5oCmluZGV4IGU0
ZDQ5NjM3NDE4Yjc5YjMwZWMwYzMwZDFmYjBmM2JkYTIxNjM1NWEuLjI2N2YwM2Y2MGNjNDI3YTUz
NWQwYmY1YTgwMDg0ZmQ0YmQzMjgzMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdENvbW1vbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9z
dENvbW1vbi5oCkBAIC03Nyw4ICs3Nyw2IEBAIEludFJlY3QgQ0NMYXllclRyZWVIb3N0Q29tbW9u
OjpjYWxjdWxhdGVWaXNpYmxlTGF5ZXJSZWN0KExheWVyVHlwZSogbGF5ZXIpCiAgICAgdHJhbnNm
b3JtLnRyYW5zbGF0ZSgtY29udGVudEJvdW5kcy53aWR0aCgpIC8gMi4wLCAtY29udGVudEJvdW5k
cy5oZWlnaHQoKSAvIDIuMCk7CiAKICAgICBJbnRSZWN0IHZpc2libGVMYXllclJlY3QgPSBDQ0xh
eWVyVHJlZUhvc3RDb21tb246OmNhbGN1bGF0ZVZpc2libGVSZWN0KHRhcmdldFN1cmZhY2VSZWN0
LCBsYXllckJvdW5kUmVjdCwgdHJhbnNmb3JtKTsKLSAgICB2aXNpYmxlTGF5ZXJSZWN0Lm1vdmUo
dG9TaXplKGxheWVyLT5zY3JvbGxQb3NpdGlvbigpKSk7Ci0KICAgICByZXR1cm4gdmlzaWJsZUxh
eWVyUmVjdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAppbmRl
eCA1MWQ5MmY1MDJiZGE5MDFlY2JhMTY1MGUxYTEzMGU3OTg0MDgwM2JiLi5mZTA5MzI2ZTRiMjk5
MDU2ZjJkNzViM2ViMWU2YWUzMjM4Y2M0NmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3RJbXBsLmNwcApAQCAtMTIzLDkgKzEyMywyOSBAQCB2b2lkIENDTGF5ZXJUcmVlSG9zdElt
cGw6OnJlYWRiYWNrKHZvaWQqIHBpeGVscywgY29uc3QgSW50UmVjdCYgcmVjdCkKICAgICBtX2xh
eWVyUmVuZGVyZXItPmdldEZyYW1lYnVmZmVyUGl4ZWxzKHBpeGVscywgcmVjdCk7CiB9CiAKK3N0
YXRpYyBDQ0xheWVySW1wbCogZmluZFNjcm9sbExheWVyKENDTGF5ZXJJbXBsKiBsYXllcikKK3sK
KyAgICBpZiAoIWxheWVyKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGlmICghbGF5ZXItPm1h
eFNjcm9sbFBvc2l0aW9uKCkuaXNaZXJvKCkpCisgICAgICAgIHJldHVybiBsYXllcjsKKworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGF5ZXItPmNoaWxkcmVuKCkuc2l6ZSgpOyArK2kpIHsK
KyAgICAgICAgQ0NMYXllckltcGwqIGZvdW5kID0gZmluZFNjcm9sbExheWVyKGxheWVyLT5jaGls
ZHJlbigpW2ldLmdldCgpKTsKKyAgICAgICAgaWYgKGZvdW5kKQorICAgICAgICAgICAgcmV0dXJu
IGZvdW5kOworICAgIH0KKworICAgIHJldHVybiAwOworfQorCiB2b2lkIENDTGF5ZXJUcmVlSG9z
dEltcGw6OnNldFJvb3RMYXllcihQYXNzUmVmUHRyPENDTGF5ZXJJbXBsPiBsYXllcikKIHsKICAg
ICBtX3Jvb3RMYXllckltcGwgPSBsYXllcjsKKworICAgIC8vIEZJWE1FOiBDdXJyZW50bHksIHRo
aXMgb25seSBmaW5kcyB0aGUgZmlyc3Qgc2Nyb2xsYWJsZSBsYXllci4KKyAgICBtX3Njcm9sbExh
eWVySW1wbCA9IGZpbmRTY3JvbGxMYXllcihtX3Jvb3RMYXllckltcGwuZ2V0KCkpOwogfQogCiB2
b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OnNldFZpc2libGUoYm9vbCB2aXNpYmxlKQpAQCAtMTc0
LDEwICsxOTQsMTAgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3RJbXBsOjpzZXRab29tQW5pbWF0b3JU
cmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmIHoKIHZvaWQgQ0NMYXllclRyZWVI
b3N0SW1wbDo6c2Nyb2xsUm9vdExheWVyKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhKQogewog
ICAgIFRSQUNFX0VWRU5UKCJDQ0xheWVyVHJlZUhvc3RJbXBsOjpzY3JvbGxSb290TGF5ZXIiLCB0
aGlzLCAwKTsKLSAgICBpZiAoIW1fcm9vdExheWVySW1wbCB8fCAhbV9yb290TGF5ZXJJbXBsLT5z
Y3JvbGxhYmxlKCkpCisgICAgaWYgKCFtX3Njcm9sbExheWVySW1wbCB8fCAhbV9zY3JvbGxMYXll
ckltcGwtPnNjcm9sbGFibGUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9yb290TGF5ZXJJ
bXBsLT5zY3JvbGxCeShzY3JvbGxEZWx0YSk7CisgICAgbV9zY3JvbGxMYXllckltcGwtPnNjcm9s
bEJ5KHNjcm9sbERlbHRhKTsKICAgICBtX2NsaWVudC0+c2V0TmVlZHNDb21taXRPbkltcGxUaHJl
YWQoKTsKICAgICBtX2NsaWVudC0+c2V0TmVlZHNSZWRyYXdPbkltcGxUaHJlYWQoKTsKIH0KQEAg
LTE5MSwxNCArMjExLDE1IEBAIFBhc3NPd25QdHI8Q0NTY3JvbGxVcGRhdGVTZXQ+IENDTGF5ZXJU
cmVlSG9zdEltcGw6OnByb2Nlc3NTY3JvbGxEZWx0YXMoKQogewogICAgIE93blB0cjxDQ1Njcm9s
bFVwZGF0ZVNldD4gc2Nyb2xsSW5mbyA9IGFkb3B0UHRyKG5ldyBDQ1Njcm9sbFVwZGF0ZVNldCgp
KTsKICAgICAvLyBGSVhNRTogdHJhY2sgc2Nyb2xscyBmcm9tIGxheWVycyBvdGhlciB0aGFuIHRo
ZSByb290Ci0gICAgaWYgKHJvb3RMYXllcigpICYmICFyb290TGF5ZXIoKS0+c2Nyb2xsRGVsdGEo
KS5pc1plcm8oKSkgeworICAgIGlmIChtX3Njcm9sbExheWVySW1wbCAmJiAhbV9zY3JvbGxMYXll
ckltcGwtPnNjcm9sbERlbHRhKCkuaXNaZXJvKCkpIHsKICAgICAgICAgQ0NMYXllclRyZWVIb3N0
Q29tbW9uOjpTY3JvbGxVcGRhdGVJbmZvIGluZm87Ci0gICAgICAgIGluZm8ubGF5ZXJJZCA9IHJv
b3RMYXllcigpLT5pZCgpOwotICAgICAgICBpbmZvLnNjcm9sbERlbHRhID0gcm9vdExheWVyKCkt
PnNjcm9sbERlbHRhKCk7CisgICAgICAgIGluZm8ubGF5ZXJJZCA9IG1fc2Nyb2xsTGF5ZXJJbXBs
LT5pZCgpOworICAgICAgICBpbmZvLnNjcm9sbERlbHRhID0gbV9zY3JvbGxMYXllckltcGwtPnNj
cm9sbERlbHRhKCk7CiAgICAgICAgIHNjcm9sbEluZm8tPmFwcGVuZChpbmZvKTsKIAotICAgICAg
ICByb290TGF5ZXIoKS0+c2V0U2Nyb2xsUG9zaXRpb24ocm9vdExheWVyKCktPnNjcm9sbFBvc2l0
aW9uKCkgKyByb290TGF5ZXIoKS0+c2Nyb2xsRGVsdGEoKSk7Ci0gICAgICAgIHJvb3RMYXllcigp
LT5zZXRTY3JvbGxEZWx0YShJbnRTaXplKCkpOworICAgICAgICBtX3Njcm9sbExheWVySW1wbC0+
c2V0U2Nyb2xsUG9zaXRpb24obV9zY3JvbGxMYXllckltcGwtPnNjcm9sbFBvc2l0aW9uKCkgKyBt
X3Njcm9sbExheWVySW1wbC0+c2Nyb2xsRGVsdGEoKSk7CisgICAgICAgIG1fc2Nyb2xsTGF5ZXJJ
bXBsLT5zZXRQb3NpdGlvbihtX3Njcm9sbExheWVySW1wbC0+cG9zaXRpb24oKSAtIG1fc2Nyb2xs
TGF5ZXJJbXBsLT5zY3JvbGxEZWx0YSgpKTsKKyAgICAgICAgbV9zY3JvbGxMYXllckltcGwtPnNl
dFNjcm9sbERlbHRhKEludFNpemUoKSk7CiAgICAgfQogICAgIHJldHVybiBzY3JvbGxJbmZvLnJl
bGVhc2UoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaAppbmRleCA1YTY4
ZjBmZTMwODRjZThkMWY1ZTJhNzBjNzAxYWZhN2M3NTAxNDgyLi5iNTNlMjAwMTkxOGM2NTY2NGMy
Y2NhNjA1NWVhN2U1ZGUwYjRiNjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1w
bC5oCkBAIC0xMTAsNiArMTEwLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBPd25QdHI8
TGF5ZXJSZW5kZXJlckNocm9taXVtPiBtX2xheWVyUmVuZGVyZXI7CiAgICAgUmVmUHRyPENDTGF5
ZXJJbXBsPiBtX3Jvb3RMYXllckltcGw7CisgICAgUmVmUHRyPENDTGF5ZXJJbXBsPiBtX3Njcm9s
bExheWVySW1wbDsKICAgICBDQ1NldHRpbmdzIG1fc2V0dGluZ3M7CiAgICAgSW50U2l6ZSBtX3Zp
ZXdwb3J0U2l6ZTsKICAgICBib29sIG1fdmlzaWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGlsZWRMYXllckltcGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVy
SW1wbC5jcHAKaW5kZXggMTE1NWE0Y2FkNTM3YzZhNjZlNjM2ZjA0MDIwYmZhOTZjZjkyYmQ3ZC4u
OGJiMzAyZDY1YWUyYjJlMGYxMzAwNzkxYTRjOGM0M2Q1ZjA5Nzg0OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaWxlZExheWVySW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUaWxlZExheWVySW1wbC5jcHAKQEAgLTEwNCw5ICsxMDQsNiBAQCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCBDQ1RpbGVkTGF5ZXJJbXBsOjp0aWxpbmdUcmFuc2Zvcm0oKSBjb25zdAogCiAgICAgLy8g
VGlsZXIgZHJhd3Mgd2l0aCBhIGRpZmZlcmVudCBvcmlnaW4gZnJvbSBvdGhlciBsYXllcnMuCiAg
ICAgdHJhbnNmb3JtLnRyYW5zbGF0ZSgtY29udGVudEJvdW5kcygpLndpZHRoKCkgLyAyLjAsIC1j
b250ZW50Qm91bmRzKCkuaGVpZ2h0KCkgLyAyLjApOwotCi0gICAgdHJhbnNmb3JtLnRyYW5zbGF0
ZSgtc2Nyb2xsUG9zaXRpb24oKS54KCksIC1zY3JvbGxQb3NpdGlvbigpLnkoKSk7Ci0KICAgICBy
ZXR1cm4gdHJhbnNmb3JtOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDZhYjUwY2JkYjJkMjQ2NDBlMWQxZTA0ODE3
ODJiNjdmNzQzODc3YWEuLmNhNzBiNmJlZDQ0YTUyMTFkOTYxOTYxNWZjZDcwMTk1NjBkOGJjZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCkBAIC0xMTgwLDYgKzExODAsMTEgQEAgR3JhcGhpY3NMYXllciogUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpyb290R3JhcGhpY3NMYXllcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fcm9vdENv
bnRlbnRMYXllci5nZXQoKTsKIH0KIAorR3JhcGhpY3NMYXllciogUmVuZGVyTGF5ZXJDb21wb3Np
dG9yOjpzY3JvbGxMYXllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2Nyb2xsTGF5ZXIuZ2V0
KCk7Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkaWRNb3ZlT25zY3JlZW4oKQog
ewogICAgIGlmICghaW5Db21wb3NpdGluZ01vZGUoKSB8fCBtX3Jvb3RMYXllckF0dGFjaG1lbnQg
IT0gUm9vdExheWVyVW5hdHRhY2hlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuaAppbmRleCBhY2M1YzM4MTYyNjFjMGUxZDc2NjVkZGU2M2U1
ZTYyNjRjMzg4MjUwLi5hOGFkMzk2ZGNlNWRmMjlmYmE5MmNiZDM5Yzk3MzRhNjEyYTc4ZTlmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5o
CkBAIC0xMzUsNiArMTM1LDcgQEAgcHVibGljOgogCiAgICAgUmVuZGVyTGF5ZXIqIHJvb3RSZW5k
ZXJMYXllcigpIGNvbnN0OwogICAgIEdyYXBoaWNzTGF5ZXIqIHJvb3RHcmFwaGljc0xheWVyKCkg
Y29uc3Q7CisgICAgR3JhcGhpY3NMYXllciogc2Nyb2xsTGF5ZXIoKSBjb25zdDsKIAogICAgIGVu
dW0gUm9vdExheWVyQXR0YWNobWVudCB7CiAgICAgICAgIFJvb3RMYXllclVuYXR0YWNoZWQsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5j
cHAKaW5kZXggODlkYmJhNjE2NjY0YWE3YmFkZTI2OTA3OTg3OGZhYTNmNmIxZGIxYS4uMmU2OWVj
MzQ3Y2RkMGU1MDVhZTU1ZjJjNTBhY2FhYTk2ZDRkYTFiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcApAQCAtNDksOSArNDks
MTAgQEAgUGFzc1JlZlB0cjxXZWJMYXllclRyZWVWaWV3SW1wbD4gV2ViTGF5ZXJUcmVlVmlld0lt
cGw6OmNyZWF0ZShXZWJMYXllclRyZWVWaWV3Q2wKIH0KIAogV2ViTGF5ZXJUcmVlVmlld0ltcGw6
OldlYkxheWVyVHJlZVZpZXdJbXBsKFdlYkxheWVyVHJlZVZpZXdDbGllbnQqIGNsaWVudCwgY29u
c3QgV2ViTGF5ZXImIHJvb3QsIGNvbnN0IFdlYkxheWVyVHJlZVZpZXc6OlNldHRpbmdzJiBzZXR0
aW5ncykgCi0gICAgOiBDQ0xheWVyVHJlZUhvc3QodGhpcywgcm9vdCwgc2V0dGluZ3MpCisgICAg
OiBDQ0xheWVyVHJlZUhvc3QodGhpcywgc2V0dGluZ3MpCiAgICAgLCBtX2NsaWVudChjbGllbnQp
CiB7CisgICAgc2V0Um9vdExheWVyKHJvb3QpOwogfQogCiBXZWJMYXllclRyZWVWaWV3SW1wbDo6
fldlYkxheWVyVHJlZVZpZXdJbXBsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcAppbmRleCA0OGZiM2UwYTk4ZjNhYjJhYzE1NDE1YjA1NzVlZmFhMzA0MDBhMDgz
Li5kZWUxNWM5YjI5YTc5NjEyMWEyMThjZDAzNDVjODE5NjczYTcxYjZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC05MSw2ICs5MSw3IEBACiAjaW5j
bHVkZSAiUG9wdXBDb250YWluZXIuaCIKICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKICNp
bmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKKyNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0
b3IuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUu
aCIKICNpbmNsdWRlICJTY3JvbGxBbmltYXRvci5oIgpAQCAtMjUxMCw4ICsyNTExLDE4IEBAIHZv
aWQgV2ViVmlld0ltcGw6OnNldFJvb3RHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXIqIGxheWVy
KQogICAgIG1fcm9vdEdyYXBoaWNzTGF5ZXIgPSBsYXllcjsKIAogICAgIHNldElzQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0FjdGl2ZShsYXllcik7Ci0gICAgaWYgKG1fbm9uQ29tcG9zaXRlZENvbnRl
bnRIb3N0KQotICAgICAgICBtX25vbkNvbXBvc2l0ZWRDb250ZW50SG9zdC0+c2V0Um9vdExheWVy
KGxheWVyKTsKKyAgICBpZiAobV9ub25Db21wb3NpdGVkQ29udGVudEhvc3QpIHsKKyAgICAgICAg
R3JhcGhpY3NMYXllciogc2Nyb2xsTGF5ZXIgPSAwOworICAgICAgICBpZiAobGF5ZXIpIHsKKyAg
ICAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHBhZ2UoKS0+bWFpbkZyYW1lKCktPmRvY3Vt
ZW50KCk7CisgICAgICAgICAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gZG9jdW1lbnQtPnJl
bmRlclZpZXcoKTsKKyAgICAgICAgICAgIFJlbmRlckxheWVyQ29tcG9zaXRvciogY29tcG9zaXRv
ciA9IHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKTsKKyAgICAgICAgICAgIHNjcm9sbExheWVyID0g
Y29tcG9zaXRvci0+c2Nyb2xsTGF5ZXIoKTsKKyAgICAgICAgfQorICAgICAgICBtX25vbkNvbXBv
c2l0ZWRDb250ZW50SG9zdC0+c2V0U2Nyb2xsTGF5ZXIoc2Nyb2xsTGF5ZXIpOworICAgIH0KKyAg
ICBpZiAobV9sYXllclRyZWVIb3N0KQorICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFJvb3RM
YXllcihsYXllciA/IGxheWVyLT5wbGF0Zm9ybUxheWVyKCkgOiAwKTsKIAogICAgIEludFJlY3Qg
ZGFtYWdlZFJlY3QoMCwgMCwgbV9zaXplLndpZHRoLCBtX3NpemUuaGVpZ2h0KTsKICAgICBpZiAo
IW1faXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKQpAQCAtMjYyNSw3ICsyNjM2LDcgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6c2V0SXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKGJvb2wg
YWN0aXZlKQogICAgICAgICBjY1NldHRpbmdzLnNob3dQbGF0Zm9ybUxheWVyVHJlZSA9IHNldHRp
bmdzKCktPnNob3dQbGF0Zm9ybUxheWVyVHJlZSgpOwogCiAgICAgICAgIG1fbm9uQ29tcG9zaXRl
ZENvbnRlbnRIb3N0ID0gTm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0OjpjcmVhdGUoV2ViVmlld0lt
cGxDb250ZW50UGFpbnRlcjo6Y3JlYXRlKHRoaXMpKTsKLSAgICAgICAgbV9sYXllclRyZWVIb3N0
ID0gQ0NMYXllclRyZWVIb3N0OjpjcmVhdGUodGhpcywgbV9ub25Db21wb3NpdGVkQ29udGVudEhv
c3QtPnRvcExldmVsUm9vdExheWVyKCktPnBsYXRmb3JtTGF5ZXIoKSwgY2NTZXR0aW5ncyk7Cisg
ICAgICAgIG1fbGF5ZXJUcmVlSG9zdCA9IENDTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKHRoaXMsIGNj
U2V0dGluZ3MpOwogICAgICAgICBpZiAobV9sYXllclRyZWVIb3N0KSB7CiAgICAgICAgICAgICBt
X2xheWVyVHJlZUhvc3QtPnNldEhhdmVXaGVlbEV2ZW50SGFuZGxlcnMobV9oYXZlV2hlZWxFdmVu
dEhhbmRsZXJzKTsKICAgICAgICAgICAgIHVwZGF0ZUxheWVyVHJlZVZpZXdwb3J0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3Qu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNw
cAppbmRleCBmM2YwNDgyZjZiNGRhZmZiMGZmOWI4NWY2YTZmYWNmZDQ2MzdiNzJhLi41OWNiYWIx
MTBiNmQzZGZmNjQ5OWYzNDIzNWE3ZWExMjY5N2NkZTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKQEAgLTExMSw5ICsx
MTEsMTAgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIE1vY2tMYXllclRyZWVIb3N0KFRlc3RI
b29rcyogdGVzdEhvb2tzLCBDQ0xheWVyVHJlZUhvc3RDbGllbnQqIGNsaWVudCwgUGFzc1JlZlB0
cjxMYXllckNocm9taXVtPiByb290TGF5ZXIsIGNvbnN0IENDU2V0dGluZ3MmIHNldHRpbmdzKQot
ICAgICAgICA6IENDTGF5ZXJUcmVlSG9zdChjbGllbnQsIHJvb3RMYXllciwgc2V0dGluZ3MpCisg
ICAgICAgIDogQ0NMYXllclRyZWVIb3N0KGNsaWVudCwgc2V0dGluZ3MpCiAgICAgICAgICwgbV90
ZXN0SG9va3ModGVzdEhvb2tzKQogICAgIHsKKyAgICAgICAgc2V0Um9vdExheWVyKHJvb3RMYXll
cik7CiAgICAgICAgIGJvb2wgc3VjY2VzcyA9IGluaXRpYWxpemUoKTsKICAgICAgICAgQVNTRVJU
KHN1Y2Nlc3MpOwogICAgICAgICBVTlVTRURfUEFSQU0oc3VjY2Vzcyk7Cg==
</data>
<flag name="review"
          id="111975"
          type_id="1"
          status="+"
          setter="jamesr"
    />
          </attachment>
      

    </bug>

</bugzilla>