<?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>55627</bug_id>
          
          <creation_ts>2011-03-02 16:16:13 -0800</creation_ts>
          <short_desc>Manually revert ChromiumDataObject changes.</short_desc>
          <delta_ts>2011-03-02 17:00:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Daniel Cheng">dcheng</reporter>
          <assigned_to name="Daniel Cheng">dcheng</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>361154</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-03-02 16:16:13 -0800</bug_when>
    <thetext>Manually revert ChromiumDataObject changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361155</commentid>
    <comment_count>1</comment_count>
      <attachid>84481</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-03-02 16:16:46 -0800</bug_when>
    <thetext>Created attachment 84481
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361157</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-02 16:19:50 -0800</bug_when>
    <thetext>Attachment 84481 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/platform/chromium/ChromiumDataObject.cpp:200:  One line control clauses should not use braces.  [whitespace/braces] [4]
Source/WebCore/platform/chromium/ChromiumDataObject.h:46:  Should only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Total errors found: 2 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361167</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-02 16:33:36 -0800</bug_when>
    <thetext>Attachment 84481 did not build on chromium:
Build output: http://queues.webkit.org/results/8086037</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361178</commentid>
    <comment_count>4</comment_count>
      <attachid>84487</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-03-02 16:49:50 -0800</bug_when>
    <thetext>Created attachment 84487
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361184</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-02 16:53:49 -0800</bug_when>
    <thetext>Attachment 84487 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/platform/chromium/ChromiumDataObject.cpp:200:  One line control clauses should not use braces.  [whitespace/braces] [4]
Source/WebCore/platform/chromium/ChromiumDataObject.h:46:  Should only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Total errors found: 2 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361192</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-03-02 17:00:54 -0800</bug_when>
    <thetext>Committed r80185: &lt;http://trac.webkit.org/changeset/80185&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84481</attachid>
            <date>2011-03-02 16:16:46 -0800</date>
            <delta_ts>2011-03-02 16:49:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55627-20110302161645.patch</filename>
            <type>text/plain</type>
            <size>28151</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODAxNzcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlNjBhMWQ5ZGM4YjIwZDdk
MTgyZjI2YWJjY2RmYTI4NzU3MzE3OTU5Li5hMjcyZmU0NzQ4NjE3ZDViZDIyZGYxNmY3ZDRlZjJj
NTI3NjQyOWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDcgQEAKIDIwMTEtMDMtMDIgIERhbmll
bCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTWFudWFsbHkgcmV2ZXJ0IENocm9taXVtRGF0YU9iamVj
dCBjaGFuZ2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTU2MjcKKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2Ugbm8gZnVuY3Rpb25hbGl0eSBz
aG91bGQgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGVkaXRp
bmcvY2hyb21pdW0vRWRpdG9yQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
OjpuZXdHZW5lcmFsQ2xpcGJvYXJkKToKKyAgICAgICAgKiBwYWdlL2Nocm9taXVtL0V2ZW50SGFu
ZGxlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Y3JlYXRl
RHJhZ2dpbmdDbGlwYm9hcmQpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVt
RGF0YU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OmNs
ZWFyRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OmNsZWFyQWxs
KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6Y2xlYXJBbGxFeGNlcHRG
aWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6Omhhc0RhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0Ojp0eXBlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OmdldERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21pdW1EYXRhT2JqZWN0OjpzZXREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVt
RGF0YU9iamVjdDo6Q2hyb21pdW1EYXRhT2JqZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0
YU9iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6
Y29weSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OnVybFRpdGxlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6c2V0VXJsVGl0bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0OjpodG1sQmFzZVVybCk6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OnNldEh0bWxCYXNlVXJsKToKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6Y29udGFpbnNGaWxlbmFtZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0OjpmaWxlbmFtZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0OjpzZXRGaWxlbmFtZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21pdW1EYXRhT2JqZWN0OjpmaWxlRXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9taXVtRGF0YU9iamVjdDo6c2V0RmlsZUV4dGVuc2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWl1bURhdGFPYmplY3Q6OmZpbGVDb250ZW50RmlsZW5hbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0OjpzZXRGaWxlQ29udGVudEZpbGVuYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6ZmlsZUNvbnRlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0OjpzZXRGaWxlQ29udGVudCk6CisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmg6CisKKzIwMTEtMDMtMDIgIERhbmllbCBD
aGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKICAgICAgICAgUmV2ZXJ0IGZyYW1lLXNwZWNp
ZmljIFdlYkNsaXBib2FyZCBjaGFuZ2VzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01NTYxNwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggY2EwYmM1ZWVmNjNi
Zjg5NDRjMTQzYzAxZjUxNjEzMTY0MDFlMTJmNi4uYTcyZWZlYTA1NmUzYzI0YTFlOGVmMTg5ZmIx
MDdhNzdmNTNkOTg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjQ5NSw4ICsyNDk1LDYgQEAKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9jZi9TaGFyZWRCdWZmZXJDRi5jcHAnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5jcHAnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5oJywKLSAgICAgICAgICAgICdw
bGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3RMZWdhY3kuY3BwJywKLSAgICAgICAg
ICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3RMZWdhY3kuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bUxpbnV4LmNwcCcsCkBAIC0y
NTM5LDggKzI1MzcsNiBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVu
dUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51
Q2hyb21pdW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51UHJp
dmF0ZS5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9SZWFkYWJsZURhdGFPYmpl
Y3QuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9SZWFkYWJsZURhdGFPYmpl
Y3QuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU1NMS2V5R2VuZXJhdG9yQ2hy
b21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVt
ZUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFy
VGhlbWVDaHJvbWl1bS5oJywKQEAgLTI1NjEsOCArMjU1Nyw2IEBACiAgICAgICAgICAgICAncGxh
dGZvcm0vY2hyb21pdW0vV2lkZ2V0Q2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9jaHJvbWl1bS9XaW5kb3dzVmVyc2lvbi5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2No
cm9taXVtL1dpbmRvd3NWZXJzaW9uLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVt
L1dyaXRhYmxlRGF0YU9iamVjdC5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVt
L1dyaXRhYmxlRGF0YU9iamVjdC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9DYWlyb1BhdGguaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
Rm9udENhaXJvLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3Jh
ZGllbnRDYWlyby5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jaHJv
bWl1bS9FZGl0b3JDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nocm9taXVt
L0VkaXRvckNocm9taXVtLmNwcAppbmRleCBjYTdmNDFhOGY3NjYzZmE5ZjMzNjIyNGIyYzg5MmZk
NmIzNjEzODJiLi4yYmZiNWFmMDA2MjQyYWU0NGI1ODgxOTFmMjRjODExYWJkMzdjNjZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nocm9taXVtL0VkaXRvckNocm9taXVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nocm9taXVtL0VkaXRvckNocm9taXVtLmNw
cApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBhc3NSZWZQdHI8Q2xp
cGJvYXJkPiBFZGl0b3I6Om5ld0dlbmVyYWxDbGlwYm9hcmQoQ2xpcGJvYXJkQWNjZXNzUG9saWN5
IHBvbGljeSwgRnJhbWUqIGZyYW1lKQogewotICAgIHJldHVybiBDbGlwYm9hcmRDaHJvbWl1bTo6
Y3JlYXRlKENsaXBib2FyZDo6Q29weUFuZFBhc3RlLCBwb2xpY3ksIGZyYW1lKTsKKyAgICByZXR1
cm4gQ2xpcGJvYXJkQ2hyb21pdW06OmNyZWF0ZShDbGlwYm9hcmQ6OkNvcHlBbmRQYXN0ZSwgQ2hy
b21pdW1EYXRhT2JqZWN0OjpjcmVhdGUoQ2xpcGJvYXJkOjpDb3B5QW5kUGFzdGUpLCBwb2xpY3ks
IGZyYW1lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9jaHJvbWl1bS9FdmVudEhhbmRsZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2Nocm9taXVtL0V2ZW50SGFuZGxlckNocm9taXVtLmNwcAppbmRleCAwMzU3
NGZhZmFlYzYxYTBhMDlkMzZlNjBmODRjNWQ0NzM3MjYxN2UzLi4wOWI0ZGZhYzE3MzIyYWM5Yjc1
ZDExMTJkYWZkMGMyZGRjZjcwZGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2No
cm9taXVtL0V2ZW50SGFuZGxlckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2Nocm9taXVtL0V2ZW50SGFuZGxlckNocm9taXVtLmNwcApAQCAtMTI4LDggKzEyOCw4IEBAIGJv
b2wgRXZlbnRIYW5kbGVyOjpldmVudEFjdGl2YXRlZFZpZXcoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiBldmVudCkgY29uc3QKIAogUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IEV2ZW50SGFuZGxlcjo6
Y3JlYXRlRHJhZ2dpbmdDbGlwYm9hcmQoKSBjb25zdAogewotICAgIFJlZlB0cjxDaHJvbWl1bURh
dGFPYmplY3RMZWdhY3k+IGRhdGFPYmplY3QgPSBDaHJvbWl1bURhdGFPYmplY3RMZWdhY3k6OmNy
ZWF0ZShDbGlwYm9hcmQ6OkRyYWdBbmREcm9wKTsKLSAgICByZXR1cm4gQ2xpcGJvYXJkQ2hyb21p
dW06OmNyZWF0ZShDbGlwYm9hcmQ6OkRyYWdBbmREcm9wLCBDaHJvbWl1bURhdGFPYmplY3Q6OmNy
ZWF0ZShkYXRhT2JqZWN0KSwgQ2xpcGJvYXJkV3JpdGFibGUsIG1fZnJhbWUpOworICAgIFJlZlB0
cjxDaHJvbWl1bURhdGFPYmplY3Q+IGRhdGFPYmplY3QgPSBDaHJvbWl1bURhdGFPYmplY3Q6OmNy
ZWF0ZShDbGlwYm9hcmQ6OkRyYWdBbmREcm9wKTsKKyAgICByZXR1cm4gQ2xpcGJvYXJkQ2hyb21p
dW06OmNyZWF0ZShDbGlwYm9hcmQ6OkRyYWdBbmREcm9wLCBkYXRhT2JqZWN0LmdldCgpLCBDbGlw
Ym9hcmRXcml0YWJsZSwgbV9mcmFtZSk7CiB9CiAKIHZvaWQgRXZlbnRIYW5kbGVyOjpmb2N1c0Rv
Y3VtZW50VmlldygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9DaHJvbWl1bURhdGFPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcAppbmRleCA3OGI3OTRiZmI3ZWFlZWMxZjM3Y2Y1NDlm
NGU2ZDU5ZDlkMDc4NDBiLi45NmFlMjk0MGRkMmE1MjFmMDc3MWE4NjdjMWI5YjcwMWQyMmYxYzNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURh
dGFPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9t
aXVtRGF0YU9iamVjdC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAy
MDEwLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAy
MDA4LCAyMDA5LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMxLDE4OSArMzEsMjIxIEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiQ2hyb21pdW1EYXRhT2JqZWN0LmgiCiAKLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKKyNpbmNsdWRlICJDaHJvbWl1bUJyaWRnZS5oIgorI2luY2x1ZGUgIkNsaXBib2Fy
ZE1pbWVUeXBlcy5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKIAotQ2hyb21pdW1EYXRhT2Jq
ZWN0OjpDaHJvbWl1bURhdGFPYmplY3QoUGFzc1JlZlB0cjxDaHJvbWl1bURhdGFPYmplY3RMZWdh
Y3k+IGRhdGEpCi0gICAgOiBSZWZDb3VudGVkPENocm9taXVtRGF0YU9iamVjdD4oKQotICAgICwg
bV9sZWdhY3lEYXRhKGRhdGEpCi17Ci19CituYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNocm9taXVt
RGF0YU9iamVjdDo6Q2hyb21pdW1EYXRhT2JqZWN0KFBhc3NSZWZQdHI8UmVhZGFibGVEYXRhT2Jq
ZWN0PiBkYXRhKQotICAgIDogUmVmQ291bnRlZDxDaHJvbWl1bURhdGFPYmplY3Q+KCkKLSAgICAs
IG1fcmVhZGFibGVEYXRhKGRhdGEpCi17Ci19CisvLyBQZXIgUkZDIDI0ODMsIHRoZSBsaW5lIHNl
cGFyYXRvciBmb3IgInRleHQvLi4uIiBNSU1FIHR5cGVzIGlzIENSLUxGLgorc3RhdGljIGNoYXIg
Y29uc3QqIGNvbnN0IHRleHRNSU1FVHlwZUxpbmVTZXBhcmF0b3IgPSAiXHJcbiI7CiAKLUNocm9t
aXVtRGF0YU9iamVjdDo6Q2hyb21pdW1EYXRhT2JqZWN0KFBhc3NSZWZQdHI8V3JpdGFibGVEYXRh
T2JqZWN0PiBkYXRhKQotICAgIDogUmVmQ291bnRlZDxDaHJvbWl1bURhdGFPYmplY3Q+KCkKLSAg
ICAsIG1fd3JpdGFibGVEYXRhKGRhdGEpCit2b2lkIENocm9taXVtRGF0YU9iamVjdDo6Y2xlYXJE
YXRhKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKLX0KKyAgICBpZiAodHlwZSA9PSBtaW1lVHlwZVRl
eHRQbGFpbikgeworICAgICAgICBtX3BsYWluVGV4dCA9ICIiOworICAgICAgICByZXR1cm47Cisg
ICAgfQogCi1QYXNzUmVmUHRyPENocm9taXVtRGF0YU9iamVjdD4gQ2hyb21pdW1EYXRhT2JqZWN0
OjpjcmVhdGUoUGFzc1JlZlB0cjxDaHJvbWl1bURhdGFPYmplY3RMZWdhY3k+IGRhdGEpCi17Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDaHJvbWl1bURhdGFPYmplY3QoZGF0YSkpOwotfQorICAg
IGlmICh0eXBlID09IG1pbWVUeXBlVVJMIHx8IHR5cGUgPT0gbWltZVR5cGVUZXh0VVJJTGlzdCkg
eworICAgICAgICBtX3VyaUxpc3QgPSAiIjsKKyAgICAgICAgbV91cmwgPSBLVVJMKCk7CisgICAg
ICAgIG1fdXJsVGl0bGUgPSAiIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAotUGFzc1JlZlB0
cjxDaHJvbWl1bURhdGFPYmplY3Q+IENocm9taXVtRGF0YU9iamVjdDo6Y3JlYXRlUmVhZGFibGUo
Q2xpcGJvYXJkOjpDbGlwYm9hcmRUeXBlIGNsaXBib2FyZFR5cGUpCi17Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBDaHJvbWl1bURhdGFPYmplY3QoUmVhZGFibGVEYXRhT2JqZWN0OjpjcmVhdGUo
Y2xpcGJvYXJkVHlwZSkpKTsKLX0KKyAgICBpZiAodHlwZSA9PSBtaW1lVHlwZVRleHRIVE1MKSB7
CisgICAgICAgIG1fdGV4dEh0bWwgPSAiIjsKKyAgICAgICAgbV9odG1sQmFzZVVybCA9IEtVUkwo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAotUGFzc1JlZlB0cjxDaHJvbWl1bURhdGFPYmpl
Y3Q+IENocm9taXVtRGF0YU9iamVjdDo6Y3JlYXRlV3JpdGFibGUoQ2xpcGJvYXJkOjpDbGlwYm9h
cmRUeXBlIGNsaXBib2FyZFR5cGUpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDaHJvbWl1
bURhdGFPYmplY3QoV3JpdGFibGVEYXRhT2JqZWN0OjpjcmVhdGUoY2xpcGJvYXJkVHlwZSkpKTsK
LX0KLQotdm9pZCBDaHJvbWl1bURhdGFPYmplY3Q6OmNsZWFyRGF0YShjb25zdCBTdHJpbmcmIHR5
cGUpCi17Ci0gICAgaWYgKG1fbGVnYWN5RGF0YSkKLSAgICAgICAgbV9sZWdhY3lEYXRhLT5jbGVh
ckRhdGEodHlwZSk7Ci0gICAgZWxzZQotICAgICAgICBtX3dyaXRhYmxlRGF0YS0+Y2xlYXJEYXRh
KHR5cGUpOworICAgIGlmICh0eXBlID09IG1pbWVUeXBlRG93bmxvYWRVUkwpIHsKKyAgICAgICAg
bV9kb3dubG9hZE1ldGFkYXRhID0gIiI7CisgICAgICAgIHJldHVybjsKKyAgICB9CiB9CiAKIHZv
aWQgQ2hyb21pdW1EYXRhT2JqZWN0OjpjbGVhckFsbCgpCiB7Ci0gICAgaWYgKG1fbGVnYWN5RGF0
YSkKLSAgICAgICAgbV9sZWdhY3lEYXRhLT5jbGVhckFsbCgpOwotICAgIGVsc2UKLSAgICAgICAg
bV93cml0YWJsZURhdGEtPmNsZWFyQWxsKCk7CisgICAgY2xlYXJBbGxFeGNlcHRGaWxlcygpOwor
ICAgIG1fZmlsZW5hbWVzLmNsZWFyKCk7CiB9CiAKIHZvaWQgQ2hyb21pdW1EYXRhT2JqZWN0Ojpj
bGVhckFsbEV4Y2VwdEZpbGVzKCkKIHsKLSAgICBpZiAobV9sZWdhY3lEYXRhKQotICAgICAgICBt
X2xlZ2FjeURhdGEtPmNsZWFyQWxsRXhjZXB0RmlsZXMoKTsKLSAgICBlbHNlCi0gICAgICAgIG1f
d3JpdGFibGVEYXRhLT5jbGVhckFsbEV4Y2VwdEZpbGVzKCk7CisgICAgbV91cmxUaXRsZSA9ICIi
OworICAgIG1fdXJsID0gS1VSTCgpOworICAgIG1fdXJpTGlzdCA9ICIiOworICAgIG1fZG93bmxv
YWRNZXRhZGF0YSA9ICIiOworICAgIG1fZmlsZUV4dGVuc2lvbiA9ICIiOworICAgIG1fcGxhaW5U
ZXh0ID0gIiI7CisgICAgbV90ZXh0SHRtbCA9ICIiOworICAgIG1faHRtbEJhc2VVcmwgPSBLVVJM
KCk7CisgICAgbV9maWxlQ29udGVudEZpbGVuYW1lID0gIiI7CisgICAgaWYgKG1fZmlsZUNvbnRl
bnQpCisgICAgICAgIG1fZmlsZUNvbnRlbnQtPmNsZWFyKCk7CiB9CiAKIGJvb2wgQ2hyb21pdW1E
YXRhT2JqZWN0OjpoYXNEYXRhKCkgY29uc3QKIHsKLSAgICBpZiAobV9sZWdhY3lEYXRhKQotICAg
ICAgICByZXR1cm4gbV9sZWdhY3lEYXRhLT5oYXNEYXRhKCk7Ci0gICAgcmV0dXJuIG1fcmVhZGFi
bGVEYXRhLT5oYXNEYXRhKCk7CisgICAgcmV0dXJuICFtX3VybC5pc0VtcHR5KCkKKyAgICAgICAg
fHwgIW1fdXJpTGlzdC5pc0VtcHR5KCkKKyAgICAgICAgfHwgIW1fZG93bmxvYWRNZXRhZGF0YS5p
c0VtcHR5KCkKKyAgICAgICAgfHwgIW1fZmlsZUV4dGVuc2lvbi5pc0VtcHR5KCkKKyAgICAgICAg
fHwgIW1fZmlsZW5hbWVzLmlzRW1wdHkoKQorICAgICAgICB8fCAhbV9wbGFpblRleHQuaXNFbXB0
eSgpCisgICAgICAgIHx8ICFtX3RleHRIdG1sLmlzRW1wdHkoKQorICAgICAgICB8fCBtX2ZpbGVD
b250ZW50OwogfQogCiBIYXNoU2V0PFN0cmluZz4gQ2hyb21pdW1EYXRhT2JqZWN0Ojp0eXBlcygp
IGNvbnN0CiB7Ci0gICAgaWYgKG1fbGVnYWN5RGF0YSkKLSAgICAgICAgcmV0dXJuIG1fbGVnYWN5
RGF0YS0+dHlwZXMoKTsKLSAgICByZXR1cm4gbV9yZWFkYWJsZURhdGEtPnR5cGVzKCk7Ci19Cisg
ICAgLy8gVGhpcyBpcyBjdXJyZW50bHkgYnJva2VuIGZvciBwYXN0ZWJvYXJkIGV2ZW50cywgYW5k
IGFsd2F5cyBoYXMgYmVlbi4KKyAgICBIYXNoU2V0PFN0cmluZz4gcmVzdWx0czsKIAotU3RyaW5n
IENocm9taXVtRGF0YU9iamVjdDo6Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wmIHN1
Y2Nlc3MpCi17Ci0gICAgaWYgKG1fbGVnYWN5RGF0YSkKLSAgICAgICAgcmV0dXJuIG1fbGVnYWN5
RGF0YS0+Z2V0RGF0YSh0eXBlLCBzdWNjZXNzKTsKLSAgICByZXR1cm4gbV9yZWFkYWJsZURhdGEt
PmdldERhdGEodHlwZSwgc3VjY2Vzcyk7Ci19CisgICAgaWYgKCFtX3BsYWluVGV4dC5pc0VtcHR5
KCkpIHsKKyAgICAgICAgcmVzdWx0cy5hZGQobWltZVR5cGVUZXh0KTsKKyAgICAgICAgcmVzdWx0
cy5hZGQobWltZVR5cGVUZXh0UGxhaW4pOworICAgIH0KIAotYm9vbCBDaHJvbWl1bURhdGFPYmpl
Y3Q6OnNldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEpCi17Ci0g
ICAgaWYgKG1fbGVnYWN5RGF0YSkKLSAgICAgICAgcmV0dXJuIG1fbGVnYWN5RGF0YS0+c2V0RGF0
YSh0eXBlLCBkYXRhKTsKLSAgICByZXR1cm4gbV93cml0YWJsZURhdGEtPnNldERhdGEodHlwZSwg
ZGF0YSk7Ci19CisgICAgaWYgKG1fdXJsLmlzVmFsaWQoKSkKKyAgICAgICAgcmVzdWx0cy5hZGQo
bWltZVR5cGVVUkwpOwogCi1TdHJpbmcgQ2hyb21pdW1EYXRhT2JqZWN0Ojp1cmxUaXRsZSgpIGNv
bnN0Ci17Ci0gICAgaWYgKG1fbGVnYWN5RGF0YSkKLSAgICAgICAgcmV0dXJuIG1fbGVnYWN5RGF0
YS0+dXJsVGl0bGUoKTsKLSAgICByZXR1cm4gbV9yZWFkYWJsZURhdGEtPnVybFRpdGxlKCk7Ci19
CisgICAgaWYgKCFtX3VyaUxpc3QuaXNFbXB0eSgpKQorICAgICAgICByZXN1bHRzLmFkZChtaW1l
VHlwZVRleHRVUklMaXN0KTsKIAotdm9pZCBDaHJvbWl1bURhdGFPYmplY3Q6OnNldFVybFRpdGxl
KGNvbnN0IFN0cmluZyYgdXJsVGl0bGUpCi17Ci0gICAgaWYgKG1fbGVnYWN5RGF0YSkKLSAgICAg
ICAgbV9sZWdhY3lEYXRhLT5zZXRVcmxUaXRsZSh1cmxUaXRsZSk7Ci0gICAgZWxzZQotICAgICAg
ICBtX3dyaXRhYmxlRGF0YS0+c2V0VXJsVGl0bGUodXJsVGl0bGUpOwotfQorICAgIGlmICghbV90
ZXh0SHRtbC5pc0VtcHR5KCkpCisgICAgICAgIHJlc3VsdHMuYWRkKG1pbWVUeXBlVGV4dEhUTUwp
OwogCi1LVVJMIENocm9taXVtRGF0YU9iamVjdDo6aHRtbEJhc2VVcmwoKSBjb25zdAotewotICAg
IGlmIChtX2xlZ2FjeURhdGEpCi0gICAgICAgIHJldHVybiBtX2xlZ2FjeURhdGEtPmh0bWxCYXNl
VXJsKCk7Ci0gICAgcmV0dXJuIG1fcmVhZGFibGVEYXRhLT5odG1sQmFzZVVybCgpOwotfQotCi12
b2lkIENocm9taXVtRGF0YU9iamVjdDo6c2V0SHRtbEJhc2VVcmwoY29uc3QgS1VSTCYgdXJsKQot
ewotICAgIGlmIChtX2xlZ2FjeURhdGEpCi0gICAgICAgIG1fbGVnYWN5RGF0YS0+c2V0SHRtbEJh
c2VVcmwodXJsKTsKLSAgICBlbHNlCi0gICAgICAgIG1fd3JpdGFibGVEYXRhLT5zZXRIdG1sQmFz
ZVVybCh1cmwpOwotfQotCi1ib29sIENocm9taXVtRGF0YU9iamVjdDo6Y29udGFpbnNGaWxlbmFt
ZXMoKSBjb25zdAotewotICAgIGlmIChtX2xlZ2FjeURhdGEpCi0gICAgICAgIHJldHVybiBtX2xl
Z2FjeURhdGEtPmNvbnRhaW5zRmlsZW5hbWVzKCk7Ci0gICAgcmV0dXJuIG1fcmVhZGFibGVEYXRh
LT5jb250YWluc0ZpbGVuYW1lcygpOwotfQotCi1WZWN0b3I8U3RyaW5nPiBDaHJvbWl1bURhdGFP
YmplY3Q6OmZpbGVuYW1lcygpIGNvbnN0Ci17Ci0gICAgaWYgKG1fbGVnYWN5RGF0YSkKLSAgICAg
ICAgcmV0dXJuIG1fbGVnYWN5RGF0YS0+ZmlsZW5hbWVzKCk7Ci0gICAgcmV0dXJuIG1fcmVhZGFi
bGVEYXRhLT5maWxlbmFtZXMoKTsKLX0KLQotdm9pZCBDaHJvbWl1bURhdGFPYmplY3Q6OnNldEZp
bGVuYW1lcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzKQotewotICAgIGlmIChtX2xl
Z2FjeURhdGEpCi0gICAgICAgIG1fbGVnYWN5RGF0YS0+c2V0RmlsZW5hbWVzKGZpbGVuYW1lcyk7
Ci0gICAgZWxzZQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotU3RyaW5nIENo
cm9taXVtRGF0YU9iamVjdDo6ZmlsZUV4dGVuc2lvbigpIGNvbnN0Ci17Ci0gICAgaWYgKG1fbGVn
YWN5RGF0YSkKLSAgICAgICAgcmV0dXJuIG1fbGVnYWN5RGF0YS0+ZmlsZUV4dGVuc2lvbigpOwot
ICAgIHJldHVybiBtX3dyaXRhYmxlRGF0YS0+ZmlsZUV4dGVuc2lvbigpOwotfQotCi12b2lkIENo
cm9taXVtRGF0YU9iamVjdDo6c2V0RmlsZUV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGZpbGVFeHRl
bnNpb24pCi17Ci0gICAgaWYgKG1fbGVnYWN5RGF0YSkKLSAgICAgICAgbV9sZWdhY3lEYXRhLT5z
ZXRGaWxlRXh0ZW5zaW9uKGZpbGVFeHRlbnNpb24pOwotICAgIGVsc2UKLSAgICAgICAgbV93cml0
YWJsZURhdGEtPnNldEZpbGVFeHRlbnNpb24oZmlsZUV4dGVuc2lvbik7Ci19CisgICAgaWYgKCFt
X2ZpbGVuYW1lcy5pc0VtcHR5KCkpCisgICAgICAgIHJlc3VsdHMuYWRkKCJGaWxlcyIpOwogCi1T
dHJpbmcgQ2hyb21pdW1EYXRhT2JqZWN0OjpmaWxlQ29udGVudEZpbGVuYW1lKCkgY29uc3QKLXsK
LSAgICBpZiAobV9sZWdhY3lEYXRhKQotICAgICAgICByZXR1cm4gbV9sZWdhY3lEYXRhLT5maWxl
Q29udGVudEZpbGVuYW1lKCk7Ci0gICAgcmV0dXJuIG1fd3JpdGFibGVEYXRhLT5maWxlQ29udGVu
dEZpbGVuYW1lKCk7CisgICAgcmV0dXJuIHJlc3VsdHM7CiB9CiAKLXZvaWQgQ2hyb21pdW1EYXRh
T2JqZWN0OjpzZXRGaWxlQ29udGVudEZpbGVuYW1lKGNvbnN0IFN0cmluZyYgZmlsZUNvbnRlbnRG
aWxlbmFtZSkKLXsKLSAgICBpZiAobV9sZWdhY3lEYXRhKQotICAgICAgICAgIG1fbGVnYWN5RGF0
YS0+c2V0RmlsZUNvbnRlbnRGaWxlbmFtZShmaWxlQ29udGVudEZpbGVuYW1lKTsKLSAgICBlbHNl
Ci0gICAgICAgICAgbV93cml0YWJsZURhdGEtPnNldEZpbGVDb250ZW50RmlsZW5hbWUoZmlsZUNv
bnRlbnRGaWxlbmFtZSk7Ci19Ci0KLVBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBDaHJvbWl1bURh
dGFPYmplY3Q6OmZpbGVDb250ZW50KCkgY29uc3QKK1N0cmluZyBDaHJvbWl1bURhdGFPYmplY3Q6
OmdldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBib29sJiBzdWNjZXNzKQogewotICAgIGlmICht
X2xlZ2FjeURhdGEpCi0gICAgICAgIHJldHVybiBtX2xlZ2FjeURhdGEtPmZpbGVDb250ZW50KCk7
Ci0gICAgcmV0dXJuIG1fd3JpdGFibGVEYXRhLT5maWxlQ29udGVudCgpOworICAgIGlmICh0eXBl
ID09IG1pbWVUeXBlVGV4dFBsYWluKSB7CisgICAgICAgIGlmIChtX2NsaXBib2FyZFR5cGUgPT0g
Q2xpcGJvYXJkOjpDb3B5QW5kUGFzdGUpIHsKKyAgICAgICAgICAgIFBhc3RlYm9hcmRQcml2YXRl
OjpDbGlwYm9hcmRCdWZmZXIgYnVmZmVyID0KKyAgICAgICAgICAgICAgICBQYXN0ZWJvYXJkOjpn
ZW5lcmFsUGFzdGVib2FyZCgpLT5pc1NlbGVjdGlvbk1vZGUoKSA/CisgICAgICAgICAgICAgICAg
UGFzdGVib2FyZFByaXZhdGU6OlNlbGVjdGlvbkJ1ZmZlciA6CisgICAgICAgICAgICAgICAgUGFz
dGVib2FyZFByaXZhdGU6OlN0YW5kYXJkQnVmZmVyOworICAgICAgICAgICAgU3RyaW5nIHRleHQg
PSBDaHJvbWl1bUJyaWRnZTo6Y2xpcGJvYXJkUmVhZFBsYWluVGV4dChidWZmZXIpOworICAgICAg
ICAgICAgc3VjY2VzcyA9ICF0ZXh0LmlzRW1wdHkoKTsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0
OworICAgICAgICB9CisgICAgICAgIHN1Y2Nlc3MgPSAhbV9wbGFpblRleHQuaXNFbXB0eSgpOwor
ICAgICAgICByZXR1cm4gbV9wbGFpblRleHQ7CisgICAgfQorCisgICAgaWYgKHR5cGUgPT0gbWlt
ZVR5cGVVUkwpIHsKKyAgICAgICAgc3VjY2VzcyA9ICFtX3VybC5pc0VtcHR5KCk7CisgICAgICAg
IHJldHVybiBtX3VybC5zdHJpbmcoKTsKKyAgICB9CisKKyAgICBpZiAodHlwZSA9PSBtaW1lVHlw
ZVRleHRVUklMaXN0KSB7CisgICAgICAgIHN1Y2Nlc3MgPSAhbV91cmlMaXN0LmlzRW1wdHkoKTsK
KyAgICAgICAgcmV0dXJuIG1fdXJpTGlzdDsKKyAgICB9CisKKyAgICBpZiAodHlwZSA9PSBtaW1l
VHlwZVRleHRIVE1MKSB7CisgICAgICAgIGlmIChtX2NsaXBib2FyZFR5cGUgPT0gQ2xpcGJvYXJk
OjpDb3B5QW5kUGFzdGUpIHsKKyAgICAgICAgICAgIFBhc3RlYm9hcmRQcml2YXRlOjpDbGlwYm9h
cmRCdWZmZXIgYnVmZmVyID0KKyAgICAgICAgICAgICAgICBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFz
dGVib2FyZCgpLT5pc1NlbGVjdGlvbk1vZGUoKSA/CisgICAgICAgICAgICAgICAgUGFzdGVib2Fy
ZFByaXZhdGU6OlNlbGVjdGlvbkJ1ZmZlciA6CisgICAgICAgICAgICAgICAgUGFzdGVib2FyZFBy
aXZhdGU6OlN0YW5kYXJkQnVmZmVyOworICAgICAgICAgICAgU3RyaW5nIGh0bWxUZXh0OworICAg
ICAgICAgICAgS1VSTCBzb3VyY2VVUkw7CisgICAgICAgICAgICBDaHJvbWl1bUJyaWRnZTo6Y2xp
cGJvYXJkUmVhZEhUTUwoYnVmZmVyLCAmaHRtbFRleHQsICZzb3VyY2VVUkwpOworICAgICAgICAg
ICAgc3VjY2VzcyA9ICFodG1sVGV4dC5pc0VtcHR5KCk7CisgICAgICAgICAgICByZXR1cm4gaHRt
bFRleHQ7CisgICAgICAgIH0KKyAgICAgICAgc3VjY2VzcyA9ICFtX3RleHRIdG1sLmlzRW1wdHko
KTsKKyAgICAgICAgcmV0dXJuIG1fdGV4dEh0bWw7CisgICAgfQorCisgICAgaWYgKHR5cGUgPT0g
bWltZVR5cGVEb3dubG9hZFVSTCkgeworICAgICAgICBzdWNjZXNzID0gIW1fZG93bmxvYWRNZXRh
ZGF0YS5pc0VtcHR5KCk7CisgICAgICAgIHJldHVybiBtX2Rvd25sb2FkTWV0YWRhdGE7CisgICAg
fQorCisgICAgc3VjY2VzcyA9IGZhbHNlOworICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotdm9p
ZCBDaHJvbWl1bURhdGFPYmplY3Q6OnNldEZpbGVDb250ZW50KFBhc3NSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBmaWxlQ29udGVudCkKK2Jvb2wgQ2hyb21pdW1EYXRhT2JqZWN0OjpzZXREYXRhKGNvbnN0
IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBkYXRhKQogewotICAgIGlmIChtX2xlZ2FjeURh
dGEpCi0gICAgICAgIG1fbGVnYWN5RGF0YS0+c2V0RmlsZUNvbnRlbnQoZmlsZUNvbnRlbnQpOwot
ICAgIGVsc2UKLSAgICAgICAgbV93cml0YWJsZURhdGEtPnNldEZpbGVDb250ZW50KGZpbGVDb250
ZW50KTsKLX0KLQotfQorICAgIGlmICh0eXBlID09IG1pbWVUeXBlVGV4dFBsYWluKSB7CisgICAg
ICAgIG1fcGxhaW5UZXh0ID0gZGF0YTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisg
ICAgaWYgKHR5cGUgPT0gbWltZVR5cGVVUkwgfHwgdHlwZSA9PSBtaW1lVHlwZVRleHRVUklMaXN0
KSB7CisgICAgICAgIG1fdXJsID0gS1VSTCgpOworICAgICAgICBWZWN0b3I8U3RyaW5nPiB1cmlM
aXN0OworICAgICAgICAvLyBMaW5lIHNlcGFyYXRvciBpcyBcclxuIHBlciBSRkMgMjQ4MyAtIGhv
d2V2ZXIsIGZvciBjb21wYXRpYmlsaXR5CisgICAgICAgIC8vIHJlYXNvbnMgd2UgYWxzbyBhbGxv
dyBqdXN0IFxuIGhlcmUuCisgICAgICAgIGRhdGEuc3BsaXQoJ1xuJywgdXJpTGlzdCk7CisgICAg
ICAgIC8vIFByb2Nlc3MgdGhlIGlucHV0IGFuZCBjb3B5IHRoZSBmaXJzdCB2YWxpZCBVUkwgaW50
byB0aGUgdXJsIG1lbWJlci4KKyAgICAgICAgLy8gSW4gY2FzZSBubyBVUkxzIGNhbiBiZSBmb3Vu
ZCwgc3Vic2VxdWVudCBjYWxscyB0byBnZXREYXRhKCJVUkwiKQorICAgICAgICAvLyB3aWxsIGdl
dCBhbiBlbXB0eSBzdHJpbmcuIFRoaXMgaXMgaW4gbGluZSB3aXRoIHRoZSBIVE1MNSBzcGVjIChz
ZWUKKyAgICAgICAgLy8gIlRoZSBEcmFnRXZlbnQgYW5kIERhdGFUcmFuc2ZlciBpbnRlcmZhY2Vz
IikuCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdXJpTGlzdC5zaXplKCk7ICsraSkg
eworICAgICAgICAgICAgU3RyaW5nJiBsaW5lID0gdXJpTGlzdFtpXTsKKyAgICAgICAgICAgIGxp
bmUgPSBsaW5lLnN0cmlwV2hpdGVTcGFjZSgpOworICAgICAgICAgICAgaWYgKGxpbmUuaXNFbXB0
eSgpKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBpZiAobGluZVswXSA9PSAnIycpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgICAgICBLVVJMIHVybCA9IEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBsaW5lKTsKKyAgICAgICAg
ICAgIGlmICh1cmwuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICAgICAgbV91cmwgPSB1cmw7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAg
bV91cmlMaXN0ID0gZGF0YTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYg
KHR5cGUgPT0gbWltZVR5cGVUZXh0SFRNTCkgeworICAgICAgICBtX3RleHRIdG1sID0gZGF0YTsK
KyAgICAgICAgbV9odG1sQmFzZVVybCA9IEtVUkwoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorCisgICAgaWYgKHR5cGUgPT0gbWltZVR5cGVEb3dubG9hZFVSTCkgeworICAgICAgICBt
X2Rvd25sb2FkTWV0YWRhdGEgPSBkYXRhOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0Nocm9taXVtRGF0YU9iamVjdDo6Q2hyb21pdW1EYXRh
T2JqZWN0KENsaXBib2FyZDo6Q2xpcGJvYXJkVHlwZSBjbGlwYm9hcmRUeXBlKQorICAgIDogbV9j
bGlwYm9hcmRUeXBlKGNsaXBib2FyZFR5cGUpCit7Cit9CisKK0Nocm9taXVtRGF0YU9iamVjdDo6
Q2hyb21pdW1EYXRhT2JqZWN0KGNvbnN0IENocm9taXVtRGF0YU9iamVjdCYgb3RoZXIpCisgICAg
OiBSZWZDb3VudGVkPENocm9taXVtRGF0YU9iamVjdD4oKQorICAgICwgbV9jbGlwYm9hcmRUeXBl
KG90aGVyLm1fY2xpcGJvYXJkVHlwZSkKKyAgICAsIG1fdXJsVGl0bGUob3RoZXIubV91cmxUaXRs
ZSkKKyAgICAsIG1fZG93bmxvYWRNZXRhZGF0YShvdGhlci5tX2Rvd25sb2FkTWV0YWRhdGEpCisg
ICAgLCBtX2ZpbGVFeHRlbnNpb24ob3RoZXIubV9maWxlRXh0ZW5zaW9uKQorICAgICwgbV9maWxl
bmFtZXMob3RoZXIubV9maWxlbmFtZXMpCisgICAgLCBtX3BsYWluVGV4dChvdGhlci5tX3BsYWlu
VGV4dCkKKyAgICAsIG1fdGV4dEh0bWwob3RoZXIubV90ZXh0SHRtbCkKKyAgICAsIG1faHRtbEJh
c2VVcmwob3RoZXIubV9odG1sQmFzZVVybCkKKyAgICAsIG1fZmlsZUNvbnRlbnRGaWxlbmFtZShv
dGhlci5tX2ZpbGVDb250ZW50RmlsZW5hbWUpCisgICAgLCBtX3VybChvdGhlci5tX3VybCkKKyAg
ICAsIG1fdXJpTGlzdChvdGhlci5tX3VyaUxpc3QpCit7CisgICAgaWYgKG90aGVyLm1fZmlsZUNv
bnRlbnQuZ2V0KCkpCisgICAgICAgIG1fZmlsZUNvbnRlbnQgPSBvdGhlci5tX2ZpbGVDb250ZW50
LT5jb3B5KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaAppbmRleCA0
YWFjNWM5YWQ2ZTk2MWNiMzY1NTllOGZkMWE0NmRhYTA3MmFiZmZmLi41YzBlMTQ1NzM4ZGZkYWZk
M2I3Y2E5YjUwMzU2N2Y4MWY3NTJhMmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKGMpIDIwMTAsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzEsMTggKzMx
LDMxIEBACiAjaWZuZGVmIENocm9taXVtRGF0YU9iamVjdF9oCiAjZGVmaW5lIENocm9taXVtRGF0
YU9iamVjdF9oCiAKLSNpbmNsdWRlICJDaHJvbWl1bURhdGFPYmplY3RMZWdhY3kuaCIKLSNpbmNs
dWRlICJSZWFkYWJsZURhdGFPYmplY3QuaCIKLSNpbmNsdWRlICJXcml0YWJsZURhdGFPYmplY3Qu
aCIKKyNpbmNsdWRlICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKyNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKKy8vIEEgZGF0YSBvYmplY3QgZm9yIGhvbGRpbmcgZGF0YSB0aGF0IHdvdWxkIGJl
IGluIGEgY2xpcGJvYXJkIG9yIG1vdmVkCisvLyBkdXJpbmcgYSBkcmFnLW4tZHJvcCBvcGVyYXRp
b24uICBUaGlzIGlzIHRoZSBkYXRhIHRoYXQgV2ViQ29yZSBpcyBhd2FyZQorLy8gb2YgYW5kIGlz
IG5vdCBzcGVjaWZpYyB0byBhIHBsYXRmb3JtLgogY2xhc3MgQ2hyb21pdW1EYXRhT2JqZWN0IDog
cHVibGljIFJlZkNvdW50ZWQ8Q2hyb21pdW1EYXRhT2JqZWN0PiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8Q2hyb21pdW1EYXRhT2JqZWN0PiBjcmVhdGUoUGFzc1JlZlB0cjxDaHJv
bWl1bURhdGFPYmplY3RMZWdhY3k+IGRhdGEpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENocm9t
aXVtRGF0YU9iamVjdD4gY3JlYXRlUmVhZGFibGUoQ2xpcGJvYXJkOjpDbGlwYm9hcmRUeXBlKTsK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDaHJvbWl1bURhdGFPYmplY3Q+IGNyZWF0ZVdyaXRhYmxl
KENsaXBib2FyZDo6Q2xpcGJvYXJkVHlwZSk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2hyb21p
dW1EYXRhT2JqZWN0PiBjcmVhdGUoQ2xpcGJvYXJkOjpDbGlwYm9hcmRUeXBlIGNsaXBib2FyZFR5
cGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENocm9taXVtRGF0YU9iamVj
dChjbGlwYm9hcmRUeXBlKSk7CisgICAgfQorCisgICAgUGFzc1JlZlB0cjxDaHJvbWl1bURhdGFP
YmplY3Q+IGNvcHkoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBD
aHJvbWl1bURhdGFPYmplY3QoKnRoaXMpKTsKKyAgICB9CiAKICAgICB2b2lkIGNsZWFyRGF0YShj
b25zdCBTdHJpbmcmIHR5cGUpOwogICAgIHZvaWQgY2xlYXJBbGwoKTsKQEAgLTU1LDM0ICs2OCw1
MyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3Qg
U3RyaW5nJiBkYXRhKTsKIAogICAgIC8vIFNwZWNpYWwgaGFuZGxlcnMgZm9yIFVSTC9IVE1MIG1l
dGFkYXRhLgotICAgIFN0cmluZyB1cmxUaXRsZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0VXJsVGl0
bGUoY29uc3QgU3RyaW5nJiB1cmxUaXRsZSk7Ci0gICAgS1VSTCBodG1sQmFzZVVybCgpIGNvbnN0
OwotICAgIHZvaWQgc2V0SHRtbEJhc2VVcmwoY29uc3QgS1VSTCYgdXJsKTsKKyAgICBTdHJpbmcg
dXJsVGl0bGUoKSBjb25zdCB7IHJldHVybiBtX3VybFRpdGxlOyB9CisgICAgdm9pZCBzZXRVcmxU
aXRsZShjb25zdCBTdHJpbmcmIHVybFRpdGxlKSB7IG1fdXJsVGl0bGUgPSB1cmxUaXRsZTsgfQor
ICAgIEtVUkwgaHRtbEJhc2VVcmwoKSBjb25zdCB7IHJldHVybiBtX2h0bWxCYXNlVXJsOyB9Cisg
ICAgdm9pZCBzZXRIdG1sQmFzZVVybChjb25zdCBLVVJMJiB1cmwpIHsgbV9odG1sQmFzZVVybCA9
IHVybDsgfQogCiAgICAgLy8gVXNlZCB0byBoYW5kbGUgZmlsZXMgYmVpbmcgZHJhZ2dlZCBpbi4K
LSAgICBib29sIGNvbnRhaW5zRmlsZW5hbWVzKCkgY29uc3Q7Ci0gICAgVmVjdG9yPFN0cmluZz4g
ZmlsZW5hbWVzKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRGaWxlbmFtZXMoY29uc3QgVmVjdG9yPFN0
cmluZz4mIGZpbGVuYW1lcyk7CisgICAgYm9vbCBjb250YWluc0ZpbGVuYW1lcygpIGNvbnN0IHsg
cmV0dXJuICFtX2ZpbGVuYW1lcy5pc0VtcHR5KCk7IH0KKyAgICBWZWN0b3I8U3RyaW5nPiBmaWxl
bmFtZXMoKSBjb25zdCB7IHJldHVybiBtX2ZpbGVuYW1lczsgfQorICAgIHZvaWQgc2V0RmlsZW5h
bWVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpIHsgbV9maWxlbmFtZXMgPSBmaWxl
bmFtZXM7IH0KIAogICAgIC8vIFVzZWQgdG8gaGFuZGxlIGZpbGVzIChpbWFnZXMpIGJlaW5nIGRy
YWdnZWQgb3V0LgotICAgIFN0cmluZyBmaWxlRXh0ZW5zaW9uKCkgY29uc3Q7Ci0gICAgdm9pZCBz
ZXRGaWxlRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZmlsZUV4dGVuc2lvbik7Ci0gICAgU3RyaW5n
IGZpbGVDb250ZW50RmlsZW5hbWUoKSBjb25zdDsKLSAgICB2b2lkIHNldEZpbGVDb250ZW50Rmls
ZW5hbWUoY29uc3QgU3RyaW5nJiBmaWxlQ29udGVudEZpbGVuYW1lKTsKLSAgICBQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gZmlsZUNvbnRlbnQoKSBjb25zdDsKLSAgICB2b2lkIHNldEZpbGVDb250
ZW50KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBmaWxlQ29udGVudCk7CisgICAgU3RyaW5nIGZp
bGVFeHRlbnNpb24oKSBjb25zdCB7IHJldHVybiBtX2ZpbGVFeHRlbnNpb247IH0KKyAgICB2b2lk
IHNldEZpbGVFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBmaWxlRXh0ZW5zaW9uKSB7IG1fZmlsZUV4
dGVuc2lvbiA9IGZpbGVFeHRlbnNpb247IH0KKyAgICBTdHJpbmcgZmlsZUNvbnRlbnRGaWxlbmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZUNvbnRlbnRGaWxlbmFtZTsgfQorICAgIHZvaWQgc2V0
RmlsZUNvbnRlbnRGaWxlbmFtZShjb25zdCBTdHJpbmcmIGZpbGVDb250ZW50RmlsZW5hbWUpIHsg
bV9maWxlQ29udGVudEZpbGVuYW1lID0gZmlsZUNvbnRlbnRGaWxlbmFtZTsgfQorICAgIFBhc3NS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBmaWxlQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZUNv
bnRlbnQ7IH0KKyAgICB2b2lkIHNldEZpbGVDb250ZW50KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBmaWxlQ29udGVudCkgeyBtX2ZpbGVDb250ZW50ID0gZmlsZUNvbnRlbnQ7IH0KIAogcHJpdmF0
ZToKLSAgICBDaHJvbWl1bURhdGFPYmplY3QoUGFzc1JlZlB0cjxDaHJvbWl1bURhdGFPYmplY3RM
ZWdhY3k+KTsKLSAgICBDaHJvbWl1bURhdGFPYmplY3QoUGFzc1JlZlB0cjxSZWFkYWJsZURhdGFP
YmplY3Q+KTsKLSAgICBDaHJvbWl1bURhdGFPYmplY3QoUGFzc1JlZlB0cjxXcml0YWJsZURhdGFP
YmplY3Q+KTsKKyAgICBDaHJvbWl1bURhdGFPYmplY3QoQ2xpcGJvYXJkOjpDbGlwYm9hcmRUeXBl
KTsKKyAgICBDaHJvbWl1bURhdGFPYmplY3QoY29uc3QgQ2hyb21pdW1EYXRhT2JqZWN0Jik7CisK
KyAgICBDbGlwYm9hcmQ6OkNsaXBib2FyZFR5cGUgbV9jbGlwYm9hcmRUeXBlOworCisgICAgU3Ry
aW5nIG1fdXJsVGl0bGU7CisKKyAgICBTdHJpbmcgbV9kb3dubG9hZE1ldGFkYXRhOworCisgICAg
U3RyaW5nIG1fZmlsZUV4dGVuc2lvbjsKKyAgICBWZWN0b3I8U3RyaW5nPiBtX2ZpbGVuYW1lczsK
IAotICAgIFJlZlB0cjxDaHJvbWl1bURhdGFPYmplY3RMZWdhY3k+IG1fbGVnYWN5RGF0YTsKLSAg
ICBSZWZQdHI8UmVhZGFibGVEYXRhT2JqZWN0PiBtX3JlYWRhYmxlRGF0YTsKLSAgICBSZWZQdHI8
V3JpdGFibGVEYXRhT2JqZWN0PiBtX3dyaXRhYmxlRGF0YTsKKyAgICBTdHJpbmcgbV9wbGFpblRl
eHQ7CisKKyAgICBTdHJpbmcgbV90ZXh0SHRtbDsKKyAgICBLVVJMIG1faHRtbEJhc2VVcmw7CisK
KyAgICBTdHJpbmcgbV9maWxlQ29udGVudEZpbGVuYW1lOworICAgIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IG1fZmlsZUNvbnRlbnQ7CisKKyAgICAvLyBUaGVzZSB0d28gYXJlIGxpbmtlZC4gU2V0dGlu
ZyBtX3VybCB3aWxsIHNldCBtX3VyaUxpc3QgdG8gdGhlIHNhbWUKKyAgICAvLyBzdHJpbmcgdmFs
dWU7IHNldHRpbmcgbV91cmlMaXN0IHdpbGwgY2F1c2UgaXRzIGNvbnRlbnRzIHRvIGJlIHBhcnNl
ZAorICAgIC8vIGFjY29yZGluZyB0byBSRkMgMjQ4MyBhbmQgdGhlIGZpcnN0IFVSTCBmb3VuZCB3
aWxsIGJlIHNldCBpbiBtX3VybC4KKyAgICBLVVJMIG1fdXJsOworICAgIFN0cmluZyBtX3VyaUxp
c3Q7CiB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5j
cHAKaW5kZXggNDZiNDMzOTEyNDgxYjJkMzRiNzk2ZjM3YzIyMjFiOGNmZjcxZmU3OC4uZmIzZTA1
YjI5ZGZmZmM4OWE3MjA1ZjM1Y2E3Y2JjMDNmOTRiZDZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcApAQCAtODUs
MTYgKzg1LDYgQEAgUGFzc1JlZlB0cjxDbGlwYm9hcmRDaHJvbWl1bT4gQ2xpcGJvYXJkQ2hyb21p
dW06OmNyZWF0ZShDbGlwYm9hcmRUeXBlIGNsaXBib2FyZFQKICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IENsaXBib2FyZENocm9taXVtKGNsaXBib2FyZFR5cGUsIGRhdGFPYmplY3QsIHBvbGljeSwg
ZnJhbWUpKTsKIH0KIAotUGFzc1JlZlB0cjxDbGlwYm9hcmRDaHJvbWl1bT4gQ2xpcGJvYXJkQ2hy
b21pdW06OmNyZWF0ZShDbGlwYm9hcmRUeXBlIGNsaXBib2FyZFR5cGUsCi0gICAgQ2xpcGJvYXJk
QWNjZXNzUG9saWN5IHBvbGljeSwgRnJhbWUqIGZyYW1lKQotewotICAgIFJlZlB0cjxDaHJvbWl1
bURhdGFPYmplY3Q+IGRhdGFPYmplY3QgPQotICAgICAgICBwb2xpY3kgPT0gQ2xpcGJvYXJkV3Jp
dGFibGUgPwotICAgICAgICBDaHJvbWl1bURhdGFPYmplY3Q6OmNyZWF0ZVdyaXRhYmxlKGNsaXBi
b2FyZFR5cGUpIDoKLSAgICAgICAgQ2hyb21pdW1EYXRhT2JqZWN0OjpjcmVhdGVSZWFkYWJsZShj
bGlwYm9hcmRUeXBlKTsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IENsaXBib2FyZENocm9taXVt
KGNsaXBib2FyZFR5cGUsIGRhdGFPYmplY3QsIHBvbGljeSwgZnJhbWUpKTsKLX0KLQogdm9pZCBD
bGlwYm9hcmRDaHJvbWl1bTo6Y2xlYXJEYXRhKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKICAgICBp
ZiAocG9saWN5KCkgIT0gQ2xpcGJvYXJkV3JpdGFibGUgfHwgIW1fZGF0YU9iamVjdCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVt
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5o
CmluZGV4IGQ1YWRhMTRkNDZiMGE2MzFiOGM0Yjg5NjM3NmIxMjNmYTEwZGQ5ZDcuLmQzMGExYzRh
MTNhNWEyYTViNTExMTNmNGM3N2I0MGYyZTNlZDEyZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uaApAQCAtNDksOSArNDks
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPENsaXBi
b2FyZENocm9taXVtPiBjcmVhdGUoCiAgICAgICAgICAgICBDbGlwYm9hcmRUeXBlLCBQYXNzUmVm
UHRyPENocm9taXVtRGF0YU9iamVjdD4sIENsaXBib2FyZEFjY2Vzc1BvbGljeSwgRnJhbWUqKTsK
IAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDbGlwYm9hcmRDaHJvbWl1bT4gY3JlYXRlKAot
ICAgICAgICAgICAgQ2xpcGJvYXJkVHlwZSwgQ2xpcGJvYXJkQWNjZXNzUG9saWN5LCBGcmFtZSop
OwotCiAgICAgICAgIC8vIFJldHVybnMgdGhlIGZpbGUgbmFtZSAobm90IGluY2x1ZGluZyB0aGUg
ZXh0ZW5zaW9uKS4gVGhpcyByZW1vdmVzIGFueQogICAgICAgICAvLyBpbnZhbGlkIGZpbGUgc3lz
dGVtIGNoYXJhY3RlcnMgYXMgd2VsbCBhcyBtYWtpbmcgc3VyZSB0aGUKICAgICAgICAgLy8gcGF0
aCArIGV4dGVuc2lvbiBpcyBub3QgYmlnZ2VyIHRoYW4gYWxsb3dlZCBieSB0aGUgZmlsZSBzeXN0
ZW0uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDNjZjM5YmJkMDZjN2FkNTBkNmU1ODAx
YTgzMmJmNzcyNjdiZjA3M2UuLmY4NWRiMzUyMjVhYWYxMzI5ZGM4ZWM0NGYyMzgxNmNhYTFmNGQz
YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTEtMDMt
MDIgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFudWFsbHkgcmV2ZXJ0IENocm9taXVt
RGF0YU9iamVjdCBjaGFuZ2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTU2MjcKKworICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAg
ICogc3JjL1dlYkRyYWdEYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRHJhZ0RhdGE6Omlu
aXRpYWxpemUpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0VudGVyKToKKyAgICAgICAgKiBzcmMvV2Vi
Vmlld0ltcGwuaDoKKworMjAxMS0wMy0wMiAgRGFuaWVsIENoZW5nICA8ZGNoZW5nQGNocm9taXVt
Lm9yZz4KKwogICAgICAgICBSZXZlcnQgZnJhbWUtc3BlY2lmaWMgV2ViQ2xpcGJvYXJkIGNoYW5n
ZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1NjE3
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAppbmRleCA0MjQzOTk4ZWMy
MTI5NDA0Y2Q1YWQ4MWRmOTQ2NjVjMzZkNzllODI1Li4wODFmZGRiZDg5YzdmZmJkODhmMjE2YTE1
MWJmZDAxOTAyYzdjNDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5o
CkBAIC0yMzIsOSArMjMyLDYgQEAgcHVibGljOgogICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYs
IGludCBpZGVudGl0eSwKICAgICAgICAgY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LCBjb25z
dCBXZWJQb2ludCYgc2NyZWVuUG9pbnQsCiAgICAgICAgIFdlYkRyYWdPcGVyYXRpb25zTWFzayBv
cGVyYXRpb25zQWxsb3dlZCkgPSAwOwotICAgIHZpcnR1YWwgV2ViRHJhZ09wZXJhdGlvbiBkcmFn
VGFyZ2V0RHJhZ0VudGVyTmV3KAotICAgICAgICBpbnQgaWRlbnRpdHksIGNvbnN0IFdlYlBvaW50
JiBjbGllbnRQb2ludCwgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAotICAgICAgICBXZWJE
cmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQpID0gMDsKICAgICB2aXJ0dWFsIFdl
YkRyYWdPcGVyYXRpb24gZHJhZ1RhcmdldERyYWdPdmVyKAogICAgICAgICBjb25zdCBXZWJQb2lu
dCYgY2xpZW50UG9pbnQsIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwKICAgICAgICAgV2Vi
RHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlvbnNBbGxvd2VkKSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEcmFnRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJEcmFnRGF0YS5jcHAKaW5kZXggOTE2N2M2OTkxNzMzYmIzMzUzZWY2
MDAxZWI5ZDEyMjg0ZDliMzNmNC4uMGMxZGM0ZjFhYzhiZmRiYjRhNzQ5ZmFlNmRiMjg5MzkxN2Rl
YWU4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRHJhZ0RhdGEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRyYWdEYXRhLmNwcApAQCAt
NTAsNyArNTAsNyBAQCBjbGFzcyBXZWJEcmFnRGF0YVByaXZhdGUgOiBwdWJsaWMgQ2hyb21pdW1E
YXRhT2JqZWN0IHsKIAogdm9pZCBXZWJEcmFnRGF0YTo6aW5pdGlhbGl6ZSgpCiB7Ci0gICAgYXNz
aWduKHN0YXRpY19jYXN0PFdlYkRyYWdEYXRhUHJpdmF0ZSo+KENocm9taXVtRGF0YU9iamVjdDo6
Y3JlYXRlKENocm9taXVtRGF0YU9iamVjdExlZ2FjeTo6Y3JlYXRlKENsaXBib2FyZDo6RHJhZ0Fu
ZERyb3ApKS5yZWxlYXNlUmVmKCkpKTsKKyAgICBhc3NpZ24oc3RhdGljX2Nhc3Q8V2ViRHJhZ0Rh
dGFQcml2YXRlKj4oQ2hyb21pdW1EYXRhT2JqZWN0OjpjcmVhdGUoQ2xpcGJvYXJkOjpEcmFnQW5k
RHJvcCkucmVsZWFzZVJlZigpKSk7CiB9CiAKIHZvaWQgV2ViRHJhZ0RhdGE6OnJlc2V0KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA0MTFmMDQ3NzM1
NWM0NjhiMmEzMDQzNzg5M2UyNjg0ZjA3ZWZjNjY5Li45NTliMWVmM2VmZjhiMTE4ZTEwMWFhMDBi
OWFjNmY0MGM1MTU1OGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCkBAIC0xNzcxLDIxICsxNzcxLDYgQEAgV2ViRHJhZ09wZXJhdGlvbiBXZWJWaWV3SW1w
bDo6ZHJhZ1RhcmdldERyYWdFbnRlcigKICAgICByZXR1cm4gZHJhZ1RhcmdldERyYWdFbnRlck9y
T3ZlcihjbGllbnRQb2ludCwgc2NyZWVuUG9pbnQsIERyYWdFbnRlcik7CiB9CiAKLVdlYkRyYWdP
cGVyYXRpb24gV2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnRW50ZXJOZXcoCi0gICAgaW50IGlk
ZW50aXR5LAotICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwKLSAgICBjb25zdCBXZWJQ
b2ludCYgc2NyZWVuUG9pbnQsCi0gICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlvbnNB
bGxvd2VkKQotewotICAgIEFTU0VSVCghbV9jdXJyZW50RHJhZ0RhdGEuZ2V0KCkpOwotCi0gICAg
bV9jdXJyZW50RHJhZ0RhdGEgPSBDaHJvbWl1bURhdGFPYmplY3Q6OmNyZWF0ZVJlYWRhYmxlKENs
aXBib2FyZDo6RHJhZ0FuZERyb3ApOwotICAgIG1fZHJhZ0lkZW50aXR5ID0gaWRlbnRpdHk7Ci0g
ICAgbV9vcGVyYXRpb25zQWxsb3dlZCA9IG9wZXJhdGlvbnNBbGxvd2VkOwotCi0gICAgcmV0dXJu
IGRyYWdUYXJnZXREcmFnRW50ZXJPck92ZXIoY2xpZW50UG9pbnQsIHNjcmVlblBvaW50LCBEcmFn
RW50ZXIpOwotfQotCiBXZWJEcmFnT3BlcmF0aW9uIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJh
Z092ZXIoCiAgICAgY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LAogICAgIGNvbnN0IFdlYlBv
aW50JiBzY3JlZW5Qb2ludCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5o
CmluZGV4IDc2NDBjZWJhNDhlYzI5YTk3ZjE4Y2NlMGJiNzJkZWU0ZTc3NTQyOWIuLjZkYzllOTM1
OGYwZDk3ODRhMWE1OTNhZDczN2UzOWM0YWQzZGRmYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMTU4LDExICsxNTgsNiBAQCBwdWJsaWM6CiAgICAgICAg
IGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwKICAgICAgICAgY29uc3QgV2ViUG9pbnQmIHNj
cmVlblBvaW50LAogICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93
ZWQpOwotICAgIHZpcnR1YWwgV2ViRHJhZ09wZXJhdGlvbiBkcmFnVGFyZ2V0RHJhZ0VudGVyTmV3
KAotICAgICAgICBpbnQgaWRlbnRpdHksCi0gICAgICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQ
b2ludCwKLSAgICAgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAotICAgICAgICBXZWJE
cmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQpOwogICAgIHZpcnR1YWwgV2ViRHJh
Z09wZXJhdGlvbiBkcmFnVGFyZ2V0RHJhZ092ZXIoCiAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBj
bGllbnRQb2ludCwKICAgICAgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84487</attachid>
            <date>2011-03-02 16:49:50 -0800</date>
            <delta_ts>2011-03-02 16:57:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-55627-20110302164949.patch</filename>
            <type>text/plain</type>
            <size>28151</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODAxNzcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlNjBhMWQ5ZGM4YjIwZDdk
MTgyZjI2YWJjY2RmYTI4NzU3MzE3OTU5Li5hMjcyZmU0NzQ4NjE3ZDViZDIyZGYxNmY3ZDRlZjJj
NTI3NjQyOWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDcgQEAKIDIwMTEtMDMtMDIgIERhbmll
bCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTWFudWFsbHkgcmV2ZXJ0IENocm9taXVtRGF0YU9iamVj
dCBjaGFuZ2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTU2MjcKKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2Ugbm8gZnVuY3Rpb25hbGl0eSBz
aG91bGQgY2hhbmdlLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGVkaXRp
bmcvY2hyb21pdW0vRWRpdG9yQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9y
OjpuZXdHZW5lcmFsQ2xpcGJvYXJkKToKKyAgICAgICAgKiBwYWdlL2Nocm9taXVtL0V2ZW50SGFu
ZGxlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Y3JlYXRl
RHJhZ2dpbmdDbGlwYm9hcmQpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVt
RGF0YU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OmNs
ZWFyRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OmNsZWFyQWxs
KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6Y2xlYXJBbGxFeGNlcHRG
aWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6Omhhc0RhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0Ojp0eXBlcyk6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OmdldERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
Q2hyb21pdW1EYXRhT2JqZWN0OjpzZXREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVt
RGF0YU9iamVjdDo6Q2hyb21pdW1EYXRhT2JqZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0
YU9iamVjdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6
Y29weSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OnVybFRpdGxlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6c2V0VXJsVGl0bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0OjpodG1sQmFzZVVybCk6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OnNldEh0bWxCYXNlVXJsKToKKyAgICAgICAg
KFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6Y29udGFpbnNGaWxlbmFtZXMpOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0OjpmaWxlbmFtZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0OjpzZXRGaWxlbmFtZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21pdW1EYXRhT2JqZWN0OjpmaWxlRXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9taXVtRGF0YU9iamVjdDo6c2V0RmlsZUV4dGVuc2lvbik6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWl1bURhdGFPYmplY3Q6OmZpbGVDb250ZW50RmlsZW5hbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0OjpzZXRGaWxlQ29udGVudEZpbGVuYW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6ZmlsZUNvbnRlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0OjpzZXRGaWxlQ29udGVudCk6CisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmg6CisKKzIwMTEtMDMtMDIgIERhbmllbCBD
aGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CisKICAgICAgICAgUmV2ZXJ0IGZyYW1lLXNwZWNp
ZmljIFdlYkNsaXBib2FyZCBjaGFuZ2VzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01NTYxNwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggY2EwYmM1ZWVmNjNi
Zjg5NDRjMTQzYzAxZjUxNjEzMTY0MDFlMTJmNi4uYTcyZWZlYTA1NmUzYzI0YTFlOGVmMTg5ZmIx
MDdhNzdmNTNkOTg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjQ5NSw4ICsyNDk1LDYgQEAKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9jZi9TaGFyZWRCdWZmZXJDRi5jcHAnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5jcHAnLAogICAgICAgICAgICAg
J3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5oJywKLSAgICAgICAgICAgICdw
bGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3RMZWdhY3kuY3BwJywKLSAgICAgICAg
ICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3RMZWdhY3kuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwJywKICAgICAg
ICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5oJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bUxpbnV4LmNwcCcsCkBAIC0y
NTM5LDggKzI1MzcsNiBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL1BvcHVwTWVu
dUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51
Q2hyb21pdW0uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vUG9wdXBNZW51UHJp
dmF0ZS5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9SZWFkYWJsZURhdGFPYmpl
Y3QuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9SZWFkYWJsZURhdGFPYmpl
Y3QuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU1NMS2V5R2VuZXJhdG9yQ2hy
b21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9TY3JvbGxiYXJUaGVt
ZUNocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vU2Nyb2xsYmFy
VGhlbWVDaHJvbWl1bS5oJywKQEAgLTI1NjEsOCArMjU1Nyw2IEBACiAgICAgICAgICAgICAncGxh
dGZvcm0vY2hyb21pdW0vV2lkZ2V0Q2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9y
bS9jaHJvbWl1bS9XaW5kb3dzVmVyc2lvbi5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2No
cm9taXVtL1dpbmRvd3NWZXJzaW9uLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVt
L1dyaXRhYmxlRGF0YU9iamVjdC5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVt
L1dyaXRhYmxlRGF0YU9iamVjdC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9DYWlyb1BhdGguaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
Rm9udENhaXJvLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3Jh
ZGllbnRDYWlyby5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jaHJv
bWl1bS9FZGl0b3JDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nocm9taXVt
L0VkaXRvckNocm9taXVtLmNwcAppbmRleCBjYTdmNDFhOGY3NjYzZmE5ZjMzNjIyNGIyYzg5MmZk
NmIzNjEzODJiLi4yYmZiNWFmMDA2MjQyYWU0NGI1ODgxOTFmMjRjODExYWJkMzdjNjZlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nocm9taXVtL0VkaXRvckNocm9taXVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nocm9taXVtL0VkaXRvckNocm9taXVtLmNw
cApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBhc3NSZWZQdHI8Q2xp
cGJvYXJkPiBFZGl0b3I6Om5ld0dlbmVyYWxDbGlwYm9hcmQoQ2xpcGJvYXJkQWNjZXNzUG9saWN5
IHBvbGljeSwgRnJhbWUqIGZyYW1lKQogewotICAgIHJldHVybiBDbGlwYm9hcmRDaHJvbWl1bTo6
Y3JlYXRlKENsaXBib2FyZDo6Q29weUFuZFBhc3RlLCBwb2xpY3ksIGZyYW1lKTsKKyAgICByZXR1
cm4gQ2xpcGJvYXJkQ2hyb21pdW06OmNyZWF0ZShDbGlwYm9hcmQ6OkNvcHlBbmRQYXN0ZSwgQ2hy
b21pdW1EYXRhT2JqZWN0OjpjcmVhdGUoQ2xpcGJvYXJkOjpDb3B5QW5kUGFzdGUpLCBwb2xpY3ks
IGZyYW1lKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9jaHJvbWl1bS9FdmVudEhhbmRsZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2Nocm9taXVtL0V2ZW50SGFuZGxlckNocm9taXVtLmNwcAppbmRleCAwMzU3
NGZhZmFlYzYxYTBhMDlkMzZlNjBmODRjNWQ0NzM3MjYxN2UzLi4wOWI0ZGZhYzE3MzIyYWM5Yjc1
ZDExMTJkYWZkMGMyZGRjZjcwZGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2No
cm9taXVtL0V2ZW50SGFuZGxlckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2Nocm9taXVtL0V2ZW50SGFuZGxlckNocm9taXVtLmNwcApAQCAtMTI4LDggKzEyOCw4IEBAIGJv
b2wgRXZlbnRIYW5kbGVyOjpldmVudEFjdGl2YXRlZFZpZXcoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiBldmVudCkgY29uc3QKIAogUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IEV2ZW50SGFuZGxlcjo6
Y3JlYXRlRHJhZ2dpbmdDbGlwYm9hcmQoKSBjb25zdAogewotICAgIFJlZlB0cjxDaHJvbWl1bURh
dGFPYmplY3RMZWdhY3k+IGRhdGFPYmplY3QgPSBDaHJvbWl1bURhdGFPYmplY3RMZWdhY3k6OmNy
ZWF0ZShDbGlwYm9hcmQ6OkRyYWdBbmREcm9wKTsKLSAgICByZXR1cm4gQ2xpcGJvYXJkQ2hyb21p
dW06OmNyZWF0ZShDbGlwYm9hcmQ6OkRyYWdBbmREcm9wLCBDaHJvbWl1bURhdGFPYmplY3Q6OmNy
ZWF0ZShkYXRhT2JqZWN0KSwgQ2xpcGJvYXJkV3JpdGFibGUsIG1fZnJhbWUpOworICAgIFJlZlB0
cjxDaHJvbWl1bURhdGFPYmplY3Q+IGRhdGFPYmplY3QgPSBDaHJvbWl1bURhdGFPYmplY3Q6OmNy
ZWF0ZShDbGlwYm9hcmQ6OkRyYWdBbmREcm9wKTsKKyAgICByZXR1cm4gQ2xpcGJvYXJkQ2hyb21p
dW06OmNyZWF0ZShDbGlwYm9hcmQ6OkRyYWdBbmREcm9wLCBkYXRhT2JqZWN0LmdldCgpLCBDbGlw
Ym9hcmRXcml0YWJsZSwgbV9mcmFtZSk7CiB9CiAKIHZvaWQgRXZlbnRIYW5kbGVyOjpmb2N1c0Rv
Y3VtZW50VmlldygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9DaHJvbWl1bURhdGFPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcAppbmRleCA3OGI3OTRiZmI3ZWFlZWMxZjM3Y2Y1NDlm
NGU2ZDU5ZDlkMDc4NDBiLi45ZGEzNDJkM2UxYjJiYWM4MTBjNjRhMWE2OWY1N2FmN2UzYzk5ODdm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURh
dGFPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9t
aXVtRGF0YU9iamVjdC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAy
MDEwLCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAy
MDA4LCAyMDA5LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTMxLDE4OSArMzEsMjIxIEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiQ2hyb21pdW1EYXRhT2JqZWN0LmgiCiAKLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKKyNpbmNsdWRlICJDbGlwYm9hcmRNaW1lVHlwZXMuaCIKKyNpbmNsdWRlICJQYXN0
ZWJvYXJkLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1CcmlkZ2UuaCIKIAotQ2hyb21pdW1EYXRhT2Jq
ZWN0OjpDaHJvbWl1bURhdGFPYmplY3QoUGFzc1JlZlB0cjxDaHJvbWl1bURhdGFPYmplY3RMZWdh
Y3k+IGRhdGEpCi0gICAgOiBSZWZDb3VudGVkPENocm9taXVtRGF0YU9iamVjdD4oKQotICAgICwg
bV9sZWdhY3lEYXRhKGRhdGEpCi17Ci19CituYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUNocm9taXVt
RGF0YU9iamVjdDo6Q2hyb21pdW1EYXRhT2JqZWN0KFBhc3NSZWZQdHI8UmVhZGFibGVEYXRhT2Jq
ZWN0PiBkYXRhKQotICAgIDogUmVmQ291bnRlZDxDaHJvbWl1bURhdGFPYmplY3Q+KCkKLSAgICAs
IG1fcmVhZGFibGVEYXRhKGRhdGEpCi17Ci19CisvLyBQZXIgUkZDIDI0ODMsIHRoZSBsaW5lIHNl
cGFyYXRvciBmb3IgInRleHQvLi4uIiBNSU1FIHR5cGVzIGlzIENSLUxGLgorc3RhdGljIGNoYXIg
Y29uc3QqIGNvbnN0IHRleHRNSU1FVHlwZUxpbmVTZXBhcmF0b3IgPSAiXHJcbiI7CiAKLUNocm9t
aXVtRGF0YU9iamVjdDo6Q2hyb21pdW1EYXRhT2JqZWN0KFBhc3NSZWZQdHI8V3JpdGFibGVEYXRh
T2JqZWN0PiBkYXRhKQotICAgIDogUmVmQ291bnRlZDxDaHJvbWl1bURhdGFPYmplY3Q+KCkKLSAg
ICAsIG1fd3JpdGFibGVEYXRhKGRhdGEpCit2b2lkIENocm9taXVtRGF0YU9iamVjdDo6Y2xlYXJE
YXRhKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKLX0KKyAgICBpZiAodHlwZSA9PSBtaW1lVHlwZVRl
eHRQbGFpbikgeworICAgICAgICBtX3BsYWluVGV4dCA9ICIiOworICAgICAgICByZXR1cm47Cisg
ICAgfQogCi1QYXNzUmVmUHRyPENocm9taXVtRGF0YU9iamVjdD4gQ2hyb21pdW1EYXRhT2JqZWN0
OjpjcmVhdGUoUGFzc1JlZlB0cjxDaHJvbWl1bURhdGFPYmplY3RMZWdhY3k+IGRhdGEpCi17Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDaHJvbWl1bURhdGFPYmplY3QoZGF0YSkpOwotfQorICAg
IGlmICh0eXBlID09IG1pbWVUeXBlVVJMIHx8IHR5cGUgPT0gbWltZVR5cGVUZXh0VVJJTGlzdCkg
eworICAgICAgICBtX3VyaUxpc3QgPSAiIjsKKyAgICAgICAgbV91cmwgPSBLVVJMKCk7CisgICAg
ICAgIG1fdXJsVGl0bGUgPSAiIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAotUGFzc1JlZlB0
cjxDaHJvbWl1bURhdGFPYmplY3Q+IENocm9taXVtRGF0YU9iamVjdDo6Y3JlYXRlUmVhZGFibGUo
Q2xpcGJvYXJkOjpDbGlwYm9hcmRUeXBlIGNsaXBib2FyZFR5cGUpCi17Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBDaHJvbWl1bURhdGFPYmplY3QoUmVhZGFibGVEYXRhT2JqZWN0OjpjcmVhdGUo
Y2xpcGJvYXJkVHlwZSkpKTsKLX0KKyAgICBpZiAodHlwZSA9PSBtaW1lVHlwZVRleHRIVE1MKSB7
CisgICAgICAgIG1fdGV4dEh0bWwgPSAiIjsKKyAgICAgICAgbV9odG1sQmFzZVVybCA9IEtVUkwo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIAotUGFzc1JlZlB0cjxDaHJvbWl1bURhdGFPYmpl
Y3Q+IENocm9taXVtRGF0YU9iamVjdDo6Y3JlYXRlV3JpdGFibGUoQ2xpcGJvYXJkOjpDbGlwYm9h
cmRUeXBlIGNsaXBib2FyZFR5cGUpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDaHJvbWl1
bURhdGFPYmplY3QoV3JpdGFibGVEYXRhT2JqZWN0OjpjcmVhdGUoY2xpcGJvYXJkVHlwZSkpKTsK
LX0KLQotdm9pZCBDaHJvbWl1bURhdGFPYmplY3Q6OmNsZWFyRGF0YShjb25zdCBTdHJpbmcmIHR5
cGUpCi17Ci0gICAgaWYgKG1fbGVnYWN5RGF0YSkKLSAgICAgICAgbV9sZWdhY3lEYXRhLT5jbGVh
ckRhdGEodHlwZSk7Ci0gICAgZWxzZQotICAgICAgICBtX3dyaXRhYmxlRGF0YS0+Y2xlYXJEYXRh
KHR5cGUpOworICAgIGlmICh0eXBlID09IG1pbWVUeXBlRG93bmxvYWRVUkwpIHsKKyAgICAgICAg
bV9kb3dubG9hZE1ldGFkYXRhID0gIiI7CisgICAgICAgIHJldHVybjsKKyAgICB9CiB9CiAKIHZv
aWQgQ2hyb21pdW1EYXRhT2JqZWN0OjpjbGVhckFsbCgpCiB7Ci0gICAgaWYgKG1fbGVnYWN5RGF0
YSkKLSAgICAgICAgbV9sZWdhY3lEYXRhLT5jbGVhckFsbCgpOwotICAgIGVsc2UKLSAgICAgICAg
bV93cml0YWJsZURhdGEtPmNsZWFyQWxsKCk7CisgICAgY2xlYXJBbGxFeGNlcHRGaWxlcygpOwor
ICAgIG1fZmlsZW5hbWVzLmNsZWFyKCk7CiB9CiAKIHZvaWQgQ2hyb21pdW1EYXRhT2JqZWN0Ojpj
bGVhckFsbEV4Y2VwdEZpbGVzKCkKIHsKLSAgICBpZiAobV9sZWdhY3lEYXRhKQotICAgICAgICBt
X2xlZ2FjeURhdGEtPmNsZWFyQWxsRXhjZXB0RmlsZXMoKTsKLSAgICBlbHNlCi0gICAgICAgIG1f
d3JpdGFibGVEYXRhLT5jbGVhckFsbEV4Y2VwdEZpbGVzKCk7CisgICAgbV91cmxUaXRsZSA9ICIi
OworICAgIG1fdXJsID0gS1VSTCgpOworICAgIG1fdXJpTGlzdCA9ICIiOworICAgIG1fZG93bmxv
YWRNZXRhZGF0YSA9ICIiOworICAgIG1fZmlsZUV4dGVuc2lvbiA9ICIiOworICAgIG1fcGxhaW5U
ZXh0ID0gIiI7CisgICAgbV90ZXh0SHRtbCA9ICIiOworICAgIG1faHRtbEJhc2VVcmwgPSBLVVJM
KCk7CisgICAgbV9maWxlQ29udGVudEZpbGVuYW1lID0gIiI7CisgICAgaWYgKG1fZmlsZUNvbnRl
bnQpCisgICAgICAgIG1fZmlsZUNvbnRlbnQtPmNsZWFyKCk7CiB9CiAKIGJvb2wgQ2hyb21pdW1E
YXRhT2JqZWN0OjpoYXNEYXRhKCkgY29uc3QKIHsKLSAgICBpZiAobV9sZWdhY3lEYXRhKQotICAg
ICAgICByZXR1cm4gbV9sZWdhY3lEYXRhLT5oYXNEYXRhKCk7Ci0gICAgcmV0dXJuIG1fcmVhZGFi
bGVEYXRhLT5oYXNEYXRhKCk7CisgICAgcmV0dXJuICFtX3VybC5pc0VtcHR5KCkKKyAgICAgICAg
fHwgIW1fdXJpTGlzdC5pc0VtcHR5KCkKKyAgICAgICAgfHwgIW1fZG93bmxvYWRNZXRhZGF0YS5p
c0VtcHR5KCkKKyAgICAgICAgfHwgIW1fZmlsZUV4dGVuc2lvbi5pc0VtcHR5KCkKKyAgICAgICAg
fHwgIW1fZmlsZW5hbWVzLmlzRW1wdHkoKQorICAgICAgICB8fCAhbV9wbGFpblRleHQuaXNFbXB0
eSgpCisgICAgICAgIHx8ICFtX3RleHRIdG1sLmlzRW1wdHkoKQorICAgICAgICB8fCBtX2ZpbGVD
b250ZW50OwogfQogCiBIYXNoU2V0PFN0cmluZz4gQ2hyb21pdW1EYXRhT2JqZWN0Ojp0eXBlcygp
IGNvbnN0CiB7Ci0gICAgaWYgKG1fbGVnYWN5RGF0YSkKLSAgICAgICAgcmV0dXJuIG1fbGVnYWN5
RGF0YS0+dHlwZXMoKTsKLSAgICByZXR1cm4gbV9yZWFkYWJsZURhdGEtPnR5cGVzKCk7Ci19Cisg
ICAgLy8gVGhpcyBpcyBjdXJyZW50bHkgYnJva2VuIGZvciBwYXN0ZWJvYXJkIGV2ZW50cywgYW5k
IGFsd2F5cyBoYXMgYmVlbi4KKyAgICBIYXNoU2V0PFN0cmluZz4gcmVzdWx0czsKIAotU3RyaW5n
IENocm9taXVtRGF0YU9iamVjdDo6Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wmIHN1
Y2Nlc3MpCi17Ci0gICAgaWYgKG1fbGVnYWN5RGF0YSkKLSAgICAgICAgcmV0dXJuIG1fbGVnYWN5
RGF0YS0+Z2V0RGF0YSh0eXBlLCBzdWNjZXNzKTsKLSAgICByZXR1cm4gbV9yZWFkYWJsZURhdGEt
PmdldERhdGEodHlwZSwgc3VjY2Vzcyk7Ci19CisgICAgaWYgKCFtX3BsYWluVGV4dC5pc0VtcHR5
KCkpIHsKKyAgICAgICAgcmVzdWx0cy5hZGQobWltZVR5cGVUZXh0KTsKKyAgICAgICAgcmVzdWx0
cy5hZGQobWltZVR5cGVUZXh0UGxhaW4pOworICAgIH0KIAotYm9vbCBDaHJvbWl1bURhdGFPYmpl
Y3Q6OnNldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEpCi17Ci0g
ICAgaWYgKG1fbGVnYWN5RGF0YSkKLSAgICAgICAgcmV0dXJuIG1fbGVnYWN5RGF0YS0+c2V0RGF0
YSh0eXBlLCBkYXRhKTsKLSAgICByZXR1cm4gbV93cml0YWJsZURhdGEtPnNldERhdGEodHlwZSwg
ZGF0YSk7Ci19CisgICAgaWYgKG1fdXJsLmlzVmFsaWQoKSkKKyAgICAgICAgcmVzdWx0cy5hZGQo
bWltZVR5cGVVUkwpOwogCi1TdHJpbmcgQ2hyb21pdW1EYXRhT2JqZWN0Ojp1cmxUaXRsZSgpIGNv
bnN0Ci17Ci0gICAgaWYgKG1fbGVnYWN5RGF0YSkKLSAgICAgICAgcmV0dXJuIG1fbGVnYWN5RGF0
YS0+dXJsVGl0bGUoKTsKLSAgICByZXR1cm4gbV9yZWFkYWJsZURhdGEtPnVybFRpdGxlKCk7Ci19
CisgICAgaWYgKCFtX3VyaUxpc3QuaXNFbXB0eSgpKQorICAgICAgICByZXN1bHRzLmFkZChtaW1l
VHlwZVRleHRVUklMaXN0KTsKIAotdm9pZCBDaHJvbWl1bURhdGFPYmplY3Q6OnNldFVybFRpdGxl
KGNvbnN0IFN0cmluZyYgdXJsVGl0bGUpCi17Ci0gICAgaWYgKG1fbGVnYWN5RGF0YSkKLSAgICAg
ICAgbV9sZWdhY3lEYXRhLT5zZXRVcmxUaXRsZSh1cmxUaXRsZSk7Ci0gICAgZWxzZQotICAgICAg
ICBtX3dyaXRhYmxlRGF0YS0+c2V0VXJsVGl0bGUodXJsVGl0bGUpOwotfQorICAgIGlmICghbV90
ZXh0SHRtbC5pc0VtcHR5KCkpCisgICAgICAgIHJlc3VsdHMuYWRkKG1pbWVUeXBlVGV4dEhUTUwp
OwogCi1LVVJMIENocm9taXVtRGF0YU9iamVjdDo6aHRtbEJhc2VVcmwoKSBjb25zdAotewotICAg
IGlmIChtX2xlZ2FjeURhdGEpCi0gICAgICAgIHJldHVybiBtX2xlZ2FjeURhdGEtPmh0bWxCYXNl
VXJsKCk7Ci0gICAgcmV0dXJuIG1fcmVhZGFibGVEYXRhLT5odG1sQmFzZVVybCgpOwotfQotCi12
b2lkIENocm9taXVtRGF0YU9iamVjdDo6c2V0SHRtbEJhc2VVcmwoY29uc3QgS1VSTCYgdXJsKQot
ewotICAgIGlmIChtX2xlZ2FjeURhdGEpCi0gICAgICAgIG1fbGVnYWN5RGF0YS0+c2V0SHRtbEJh
c2VVcmwodXJsKTsKLSAgICBlbHNlCi0gICAgICAgIG1fd3JpdGFibGVEYXRhLT5zZXRIdG1sQmFz
ZVVybCh1cmwpOwotfQotCi1ib29sIENocm9taXVtRGF0YU9iamVjdDo6Y29udGFpbnNGaWxlbmFt
ZXMoKSBjb25zdAotewotICAgIGlmIChtX2xlZ2FjeURhdGEpCi0gICAgICAgIHJldHVybiBtX2xl
Z2FjeURhdGEtPmNvbnRhaW5zRmlsZW5hbWVzKCk7Ci0gICAgcmV0dXJuIG1fcmVhZGFibGVEYXRh
LT5jb250YWluc0ZpbGVuYW1lcygpOwotfQotCi1WZWN0b3I8U3RyaW5nPiBDaHJvbWl1bURhdGFP
YmplY3Q6OmZpbGVuYW1lcygpIGNvbnN0Ci17Ci0gICAgaWYgKG1fbGVnYWN5RGF0YSkKLSAgICAg
ICAgcmV0dXJuIG1fbGVnYWN5RGF0YS0+ZmlsZW5hbWVzKCk7Ci0gICAgcmV0dXJuIG1fcmVhZGFi
bGVEYXRhLT5maWxlbmFtZXMoKTsKLX0KLQotdm9pZCBDaHJvbWl1bURhdGFPYmplY3Q6OnNldEZp
bGVuYW1lcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzKQotewotICAgIGlmIChtX2xl
Z2FjeURhdGEpCi0gICAgICAgIG1fbGVnYWN5RGF0YS0+c2V0RmlsZW5hbWVzKGZpbGVuYW1lcyk7
Ci0gICAgZWxzZQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotU3RyaW5nIENo
cm9taXVtRGF0YU9iamVjdDo6ZmlsZUV4dGVuc2lvbigpIGNvbnN0Ci17Ci0gICAgaWYgKG1fbGVn
YWN5RGF0YSkKLSAgICAgICAgcmV0dXJuIG1fbGVnYWN5RGF0YS0+ZmlsZUV4dGVuc2lvbigpOwot
ICAgIHJldHVybiBtX3dyaXRhYmxlRGF0YS0+ZmlsZUV4dGVuc2lvbigpOwotfQotCi12b2lkIENo
cm9taXVtRGF0YU9iamVjdDo6c2V0RmlsZUV4dGVuc2lvbihjb25zdCBTdHJpbmcmIGZpbGVFeHRl
bnNpb24pCi17Ci0gICAgaWYgKG1fbGVnYWN5RGF0YSkKLSAgICAgICAgbV9sZWdhY3lEYXRhLT5z
ZXRGaWxlRXh0ZW5zaW9uKGZpbGVFeHRlbnNpb24pOwotICAgIGVsc2UKLSAgICAgICAgbV93cml0
YWJsZURhdGEtPnNldEZpbGVFeHRlbnNpb24oZmlsZUV4dGVuc2lvbik7Ci19CisgICAgaWYgKCFt
X2ZpbGVuYW1lcy5pc0VtcHR5KCkpCisgICAgICAgIHJlc3VsdHMuYWRkKCJGaWxlcyIpOwogCi1T
dHJpbmcgQ2hyb21pdW1EYXRhT2JqZWN0OjpmaWxlQ29udGVudEZpbGVuYW1lKCkgY29uc3QKLXsK
LSAgICBpZiAobV9sZWdhY3lEYXRhKQotICAgICAgICByZXR1cm4gbV9sZWdhY3lEYXRhLT5maWxl
Q29udGVudEZpbGVuYW1lKCk7Ci0gICAgcmV0dXJuIG1fd3JpdGFibGVEYXRhLT5maWxlQ29udGVu
dEZpbGVuYW1lKCk7CisgICAgcmV0dXJuIHJlc3VsdHM7CiB9CiAKLXZvaWQgQ2hyb21pdW1EYXRh
T2JqZWN0OjpzZXRGaWxlQ29udGVudEZpbGVuYW1lKGNvbnN0IFN0cmluZyYgZmlsZUNvbnRlbnRG
aWxlbmFtZSkKLXsKLSAgICBpZiAobV9sZWdhY3lEYXRhKQotICAgICAgICAgIG1fbGVnYWN5RGF0
YS0+c2V0RmlsZUNvbnRlbnRGaWxlbmFtZShmaWxlQ29udGVudEZpbGVuYW1lKTsKLSAgICBlbHNl
Ci0gICAgICAgICAgbV93cml0YWJsZURhdGEtPnNldEZpbGVDb250ZW50RmlsZW5hbWUoZmlsZUNv
bnRlbnRGaWxlbmFtZSk7Ci19Ci0KLVBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBDaHJvbWl1bURh
dGFPYmplY3Q6OmZpbGVDb250ZW50KCkgY29uc3QKK1N0cmluZyBDaHJvbWl1bURhdGFPYmplY3Q6
OmdldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBib29sJiBzdWNjZXNzKQogewotICAgIGlmICht
X2xlZ2FjeURhdGEpCi0gICAgICAgIHJldHVybiBtX2xlZ2FjeURhdGEtPmZpbGVDb250ZW50KCk7
Ci0gICAgcmV0dXJuIG1fd3JpdGFibGVEYXRhLT5maWxlQ29udGVudCgpOworICAgIGlmICh0eXBl
ID09IG1pbWVUeXBlVGV4dFBsYWluKSB7CisgICAgICAgIGlmIChtX2NsaXBib2FyZFR5cGUgPT0g
Q2xpcGJvYXJkOjpDb3B5QW5kUGFzdGUpIHsKKyAgICAgICAgICAgIFBhc3RlYm9hcmRQcml2YXRl
OjpDbGlwYm9hcmRCdWZmZXIgYnVmZmVyID0KKyAgICAgICAgICAgICAgICBQYXN0ZWJvYXJkOjpn
ZW5lcmFsUGFzdGVib2FyZCgpLT5pc1NlbGVjdGlvbk1vZGUoKSA/CisgICAgICAgICAgICAgICAg
UGFzdGVib2FyZFByaXZhdGU6OlNlbGVjdGlvbkJ1ZmZlciA6CisgICAgICAgICAgICAgICAgUGFz
dGVib2FyZFByaXZhdGU6OlN0YW5kYXJkQnVmZmVyOworICAgICAgICAgICAgU3RyaW5nIHRleHQg
PSBQbGF0Zm9ybUJyaWRnZTo6Y2xpcGJvYXJkUmVhZFBsYWluVGV4dChidWZmZXIpOworICAgICAg
ICAgICAgc3VjY2VzcyA9ICF0ZXh0LmlzRW1wdHkoKTsKKyAgICAgICAgICAgIHJldHVybiB0ZXh0
OworICAgICAgICB9CisgICAgICAgIHN1Y2Nlc3MgPSAhbV9wbGFpblRleHQuaXNFbXB0eSgpOwor
ICAgICAgICByZXR1cm4gbV9wbGFpblRleHQ7CisgICAgfQorCisgICAgaWYgKHR5cGUgPT0gbWlt
ZVR5cGVVUkwpIHsKKyAgICAgICAgc3VjY2VzcyA9ICFtX3VybC5pc0VtcHR5KCk7CisgICAgICAg
IHJldHVybiBtX3VybC5zdHJpbmcoKTsKKyAgICB9CisKKyAgICBpZiAodHlwZSA9PSBtaW1lVHlw
ZVRleHRVUklMaXN0KSB7CisgICAgICAgIHN1Y2Nlc3MgPSAhbV91cmlMaXN0LmlzRW1wdHkoKTsK
KyAgICAgICAgcmV0dXJuIG1fdXJpTGlzdDsKKyAgICB9CisKKyAgICBpZiAodHlwZSA9PSBtaW1l
VHlwZVRleHRIVE1MKSB7CisgICAgICAgIGlmIChtX2NsaXBib2FyZFR5cGUgPT0gQ2xpcGJvYXJk
OjpDb3B5QW5kUGFzdGUpIHsKKyAgICAgICAgICAgIFBhc3RlYm9hcmRQcml2YXRlOjpDbGlwYm9h
cmRCdWZmZXIgYnVmZmVyID0KKyAgICAgICAgICAgICAgICBQYXN0ZWJvYXJkOjpnZW5lcmFsUGFz
dGVib2FyZCgpLT5pc1NlbGVjdGlvbk1vZGUoKSA/CisgICAgICAgICAgICAgICAgUGFzdGVib2Fy
ZFByaXZhdGU6OlNlbGVjdGlvbkJ1ZmZlciA6CisgICAgICAgICAgICAgICAgUGFzdGVib2FyZFBy
aXZhdGU6OlN0YW5kYXJkQnVmZmVyOworICAgICAgICAgICAgU3RyaW5nIGh0bWxUZXh0OworICAg
ICAgICAgICAgS1VSTCBzb3VyY2VVUkw7CisgICAgICAgICAgICBQbGF0Zm9ybUJyaWRnZTo6Y2xp
cGJvYXJkUmVhZEhUTUwoYnVmZmVyLCAmaHRtbFRleHQsICZzb3VyY2VVUkwpOworICAgICAgICAg
ICAgc3VjY2VzcyA9ICFodG1sVGV4dC5pc0VtcHR5KCk7CisgICAgICAgICAgICByZXR1cm4gaHRt
bFRleHQ7CisgICAgICAgIH0KKyAgICAgICAgc3VjY2VzcyA9ICFtX3RleHRIdG1sLmlzRW1wdHko
KTsKKyAgICAgICAgcmV0dXJuIG1fdGV4dEh0bWw7CisgICAgfQorCisgICAgaWYgKHR5cGUgPT0g
bWltZVR5cGVEb3dubG9hZFVSTCkgeworICAgICAgICBzdWNjZXNzID0gIW1fZG93bmxvYWRNZXRh
ZGF0YS5pc0VtcHR5KCk7CisgICAgICAgIHJldHVybiBtX2Rvd25sb2FkTWV0YWRhdGE7CisgICAg
fQorCisgICAgc3VjY2VzcyA9IGZhbHNlOworICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotdm9p
ZCBDaHJvbWl1bURhdGFPYmplY3Q6OnNldEZpbGVDb250ZW50KFBhc3NSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBmaWxlQ29udGVudCkKK2Jvb2wgQ2hyb21pdW1EYXRhT2JqZWN0OjpzZXREYXRhKGNvbnN0
IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBkYXRhKQogewotICAgIGlmIChtX2xlZ2FjeURh
dGEpCi0gICAgICAgIG1fbGVnYWN5RGF0YS0+c2V0RmlsZUNvbnRlbnQoZmlsZUNvbnRlbnQpOwot
ICAgIGVsc2UKLSAgICAgICAgbV93cml0YWJsZURhdGEtPnNldEZpbGVDb250ZW50KGZpbGVDb250
ZW50KTsKLX0KLQotfQorICAgIGlmICh0eXBlID09IG1pbWVUeXBlVGV4dFBsYWluKSB7CisgICAg
ICAgIG1fcGxhaW5UZXh0ID0gZGF0YTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisg
ICAgaWYgKHR5cGUgPT0gbWltZVR5cGVVUkwgfHwgdHlwZSA9PSBtaW1lVHlwZVRleHRVUklMaXN0
KSB7CisgICAgICAgIG1fdXJsID0gS1VSTCgpOworICAgICAgICBWZWN0b3I8U3RyaW5nPiB1cmlM
aXN0OworICAgICAgICAvLyBMaW5lIHNlcGFyYXRvciBpcyBcclxuIHBlciBSRkMgMjQ4MyAtIGhv
d2V2ZXIsIGZvciBjb21wYXRpYmlsaXR5CisgICAgICAgIC8vIHJlYXNvbnMgd2UgYWxzbyBhbGxv
dyBqdXN0IFxuIGhlcmUuCisgICAgICAgIGRhdGEuc3BsaXQoJ1xuJywgdXJpTGlzdCk7CisgICAg
ICAgIC8vIFByb2Nlc3MgdGhlIGlucHV0IGFuZCBjb3B5IHRoZSBmaXJzdCB2YWxpZCBVUkwgaW50
byB0aGUgdXJsIG1lbWJlci4KKyAgICAgICAgLy8gSW4gY2FzZSBubyBVUkxzIGNhbiBiZSBmb3Vu
ZCwgc3Vic2VxdWVudCBjYWxscyB0byBnZXREYXRhKCJVUkwiKQorICAgICAgICAvLyB3aWxsIGdl
dCBhbiBlbXB0eSBzdHJpbmcuIFRoaXMgaXMgaW4gbGluZSB3aXRoIHRoZSBIVE1MNSBzcGVjIChz
ZWUKKyAgICAgICAgLy8gIlRoZSBEcmFnRXZlbnQgYW5kIERhdGFUcmFuc2ZlciBpbnRlcmZhY2Vz
IikuCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdXJpTGlzdC5zaXplKCk7ICsraSkg
eworICAgICAgICAgICAgU3RyaW5nJiBsaW5lID0gdXJpTGlzdFtpXTsKKyAgICAgICAgICAgIGxp
bmUgPSBsaW5lLnN0cmlwV2hpdGVTcGFjZSgpOworICAgICAgICAgICAgaWYgKGxpbmUuaXNFbXB0
eSgpKSB7CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICBpZiAobGluZVswXSA9PSAnIycpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgICAgICBLVVJMIHVybCA9IEtVUkwoUGFyc2VkVVJMU3RyaW5nLCBsaW5lKTsKKyAgICAgICAg
ICAgIGlmICh1cmwuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICAgICAgbV91cmwgPSB1cmw7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAg
bV91cmlMaXN0ID0gZGF0YTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYg
KHR5cGUgPT0gbWltZVR5cGVUZXh0SFRNTCkgeworICAgICAgICBtX3RleHRIdG1sID0gZGF0YTsK
KyAgICAgICAgbV9odG1sQmFzZVVybCA9IEtVUkwoKTsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorCisgICAgaWYgKHR5cGUgPT0gbWltZVR5cGVEb3dubG9hZFVSTCkgeworICAgICAgICBt
X2Rvd25sb2FkTWV0YWRhdGEgPSBkYXRhOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0Nocm9taXVtRGF0YU9iamVjdDo6Q2hyb21pdW1EYXRh
T2JqZWN0KENsaXBib2FyZDo6Q2xpcGJvYXJkVHlwZSBjbGlwYm9hcmRUeXBlKQorICAgIDogbV9j
bGlwYm9hcmRUeXBlKGNsaXBib2FyZFR5cGUpCit7Cit9CisKK0Nocm9taXVtRGF0YU9iamVjdDo6
Q2hyb21pdW1EYXRhT2JqZWN0KGNvbnN0IENocm9taXVtRGF0YU9iamVjdCYgb3RoZXIpCisgICAg
OiBSZWZDb3VudGVkPENocm9taXVtRGF0YU9iamVjdD4oKQorICAgICwgbV9jbGlwYm9hcmRUeXBl
KG90aGVyLm1fY2xpcGJvYXJkVHlwZSkKKyAgICAsIG1fdXJsVGl0bGUob3RoZXIubV91cmxUaXRs
ZSkKKyAgICAsIG1fZG93bmxvYWRNZXRhZGF0YShvdGhlci5tX2Rvd25sb2FkTWV0YWRhdGEpCisg
ICAgLCBtX2ZpbGVFeHRlbnNpb24ob3RoZXIubV9maWxlRXh0ZW5zaW9uKQorICAgICwgbV9maWxl
bmFtZXMob3RoZXIubV9maWxlbmFtZXMpCisgICAgLCBtX3BsYWluVGV4dChvdGhlci5tX3BsYWlu
VGV4dCkKKyAgICAsIG1fdGV4dEh0bWwob3RoZXIubV90ZXh0SHRtbCkKKyAgICAsIG1faHRtbEJh
c2VVcmwob3RoZXIubV9odG1sQmFzZVVybCkKKyAgICAsIG1fZmlsZUNvbnRlbnRGaWxlbmFtZShv
dGhlci5tX2ZpbGVDb250ZW50RmlsZW5hbWUpCisgICAgLCBtX3VybChvdGhlci5tX3VybCkKKyAg
ICAsIG1fdXJpTGlzdChvdGhlci5tX3VyaUxpc3QpCit7CisgICAgaWYgKG90aGVyLm1fZmlsZUNv
bnRlbnQuZ2V0KCkpCisgICAgICAgIG1fZmlsZUNvbnRlbnQgPSBvdGhlci5tX2ZpbGVDb250ZW50
LT5jb3B5KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaAppbmRleCA0
YWFjNWM5YWQ2ZTk2MWNiMzY1NTllOGZkMWE0NmRhYTA3MmFiZmZmLi41YzBlMTQ1NzM4ZGZkYWZk
M2I3Y2E5YjUwMzU2N2Y4MWY3NTJhMmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKGMpIDIwMTAsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMDksIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiAKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMzEsMTggKzMx
LDMxIEBACiAjaWZuZGVmIENocm9taXVtRGF0YU9iamVjdF9oCiAjZGVmaW5lIENocm9taXVtRGF0
YU9iamVjdF9oCiAKLSNpbmNsdWRlICJDaHJvbWl1bURhdGFPYmplY3RMZWdhY3kuaCIKLSNpbmNs
dWRlICJSZWFkYWJsZURhdGFPYmplY3QuaCIKLSNpbmNsdWRlICJXcml0YWJsZURhdGFPYmplY3Qu
aCIKKyNpbmNsdWRlICJDbGlwYm9hcmQuaCIKKyNpbmNsdWRlICJLVVJMLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKyNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKKy8vIEEgZGF0YSBvYmplY3QgZm9yIGhvbGRpbmcgZGF0YSB0aGF0IHdvdWxkIGJl
IGluIGEgY2xpcGJvYXJkIG9yIG1vdmVkCisvLyBkdXJpbmcgYSBkcmFnLW4tZHJvcCBvcGVyYXRp
b24uICBUaGlzIGlzIHRoZSBkYXRhIHRoYXQgV2ViQ29yZSBpcyBhd2FyZQorLy8gb2YgYW5kIGlz
IG5vdCBzcGVjaWZpYyB0byBhIHBsYXRmb3JtLgogY2xhc3MgQ2hyb21pdW1EYXRhT2JqZWN0IDog
cHVibGljIFJlZkNvdW50ZWQ8Q2hyb21pdW1EYXRhT2JqZWN0PiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8Q2hyb21pdW1EYXRhT2JqZWN0PiBjcmVhdGUoUGFzc1JlZlB0cjxDaHJv
bWl1bURhdGFPYmplY3RMZWdhY3k+IGRhdGEpOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENocm9t
aXVtRGF0YU9iamVjdD4gY3JlYXRlUmVhZGFibGUoQ2xpcGJvYXJkOjpDbGlwYm9hcmRUeXBlKTsK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDaHJvbWl1bURhdGFPYmplY3Q+IGNyZWF0ZVdyaXRhYmxl
KENsaXBib2FyZDo6Q2xpcGJvYXJkVHlwZSk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q2hyb21p
dW1EYXRhT2JqZWN0PiBjcmVhdGUoQ2xpcGJvYXJkOjpDbGlwYm9hcmRUeXBlIGNsaXBib2FyZFR5
cGUpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENocm9taXVtRGF0YU9iamVj
dChjbGlwYm9hcmRUeXBlKSk7CisgICAgfQorCisgICAgUGFzc1JlZlB0cjxDaHJvbWl1bURhdGFP
YmplY3Q+IGNvcHkoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBD
aHJvbWl1bURhdGFPYmplY3QoKnRoaXMpKTsKKyAgICB9CiAKICAgICB2b2lkIGNsZWFyRGF0YShj
b25zdCBTdHJpbmcmIHR5cGUpOwogICAgIHZvaWQgY2xlYXJBbGwoKTsKQEAgLTU1LDM0ICs2OCw1
MyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3Qg
U3RyaW5nJiBkYXRhKTsKIAogICAgIC8vIFNwZWNpYWwgaGFuZGxlcnMgZm9yIFVSTC9IVE1MIG1l
dGFkYXRhLgotICAgIFN0cmluZyB1cmxUaXRsZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0VXJsVGl0
bGUoY29uc3QgU3RyaW5nJiB1cmxUaXRsZSk7Ci0gICAgS1VSTCBodG1sQmFzZVVybCgpIGNvbnN0
OwotICAgIHZvaWQgc2V0SHRtbEJhc2VVcmwoY29uc3QgS1VSTCYgdXJsKTsKKyAgICBTdHJpbmcg
dXJsVGl0bGUoKSBjb25zdCB7IHJldHVybiBtX3VybFRpdGxlOyB9CisgICAgdm9pZCBzZXRVcmxU
aXRsZShjb25zdCBTdHJpbmcmIHVybFRpdGxlKSB7IG1fdXJsVGl0bGUgPSB1cmxUaXRsZTsgfQor
ICAgIEtVUkwgaHRtbEJhc2VVcmwoKSBjb25zdCB7IHJldHVybiBtX2h0bWxCYXNlVXJsOyB9Cisg
ICAgdm9pZCBzZXRIdG1sQmFzZVVybChjb25zdCBLVVJMJiB1cmwpIHsgbV9odG1sQmFzZVVybCA9
IHVybDsgfQogCiAgICAgLy8gVXNlZCB0byBoYW5kbGUgZmlsZXMgYmVpbmcgZHJhZ2dlZCBpbi4K
LSAgICBib29sIGNvbnRhaW5zRmlsZW5hbWVzKCkgY29uc3Q7Ci0gICAgVmVjdG9yPFN0cmluZz4g
ZmlsZW5hbWVzKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRGaWxlbmFtZXMoY29uc3QgVmVjdG9yPFN0
cmluZz4mIGZpbGVuYW1lcyk7CisgICAgYm9vbCBjb250YWluc0ZpbGVuYW1lcygpIGNvbnN0IHsg
cmV0dXJuICFtX2ZpbGVuYW1lcy5pc0VtcHR5KCk7IH0KKyAgICBWZWN0b3I8U3RyaW5nPiBmaWxl
bmFtZXMoKSBjb25zdCB7IHJldHVybiBtX2ZpbGVuYW1lczsgfQorICAgIHZvaWQgc2V0RmlsZW5h
bWVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpIHsgbV9maWxlbmFtZXMgPSBmaWxl
bmFtZXM7IH0KIAogICAgIC8vIFVzZWQgdG8gaGFuZGxlIGZpbGVzIChpbWFnZXMpIGJlaW5nIGRy
YWdnZWQgb3V0LgotICAgIFN0cmluZyBmaWxlRXh0ZW5zaW9uKCkgY29uc3Q7Ci0gICAgdm9pZCBz
ZXRGaWxlRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZmlsZUV4dGVuc2lvbik7Ci0gICAgU3RyaW5n
IGZpbGVDb250ZW50RmlsZW5hbWUoKSBjb25zdDsKLSAgICB2b2lkIHNldEZpbGVDb250ZW50Rmls
ZW5hbWUoY29uc3QgU3RyaW5nJiBmaWxlQ29udGVudEZpbGVuYW1lKTsKLSAgICBQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gZmlsZUNvbnRlbnQoKSBjb25zdDsKLSAgICB2b2lkIHNldEZpbGVDb250
ZW50KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBmaWxlQ29udGVudCk7CisgICAgU3RyaW5nIGZp
bGVFeHRlbnNpb24oKSBjb25zdCB7IHJldHVybiBtX2ZpbGVFeHRlbnNpb247IH0KKyAgICB2b2lk
IHNldEZpbGVFeHRlbnNpb24oY29uc3QgU3RyaW5nJiBmaWxlRXh0ZW5zaW9uKSB7IG1fZmlsZUV4
dGVuc2lvbiA9IGZpbGVFeHRlbnNpb247IH0KKyAgICBTdHJpbmcgZmlsZUNvbnRlbnRGaWxlbmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZUNvbnRlbnRGaWxlbmFtZTsgfQorICAgIHZvaWQgc2V0
RmlsZUNvbnRlbnRGaWxlbmFtZShjb25zdCBTdHJpbmcmIGZpbGVDb250ZW50RmlsZW5hbWUpIHsg
bV9maWxlQ29udGVudEZpbGVuYW1lID0gZmlsZUNvbnRlbnRGaWxlbmFtZTsgfQorICAgIFBhc3NS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBmaWxlQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZUNv
bnRlbnQ7IH0KKyAgICB2b2lkIHNldEZpbGVDb250ZW50KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBmaWxlQ29udGVudCkgeyBtX2ZpbGVDb250ZW50ID0gZmlsZUNvbnRlbnQ7IH0KIAogcHJpdmF0
ZToKLSAgICBDaHJvbWl1bURhdGFPYmplY3QoUGFzc1JlZlB0cjxDaHJvbWl1bURhdGFPYmplY3RM
ZWdhY3k+KTsKLSAgICBDaHJvbWl1bURhdGFPYmplY3QoUGFzc1JlZlB0cjxSZWFkYWJsZURhdGFP
YmplY3Q+KTsKLSAgICBDaHJvbWl1bURhdGFPYmplY3QoUGFzc1JlZlB0cjxXcml0YWJsZURhdGFP
YmplY3Q+KTsKKyAgICBDaHJvbWl1bURhdGFPYmplY3QoQ2xpcGJvYXJkOjpDbGlwYm9hcmRUeXBl
KTsKKyAgICBDaHJvbWl1bURhdGFPYmplY3QoY29uc3QgQ2hyb21pdW1EYXRhT2JqZWN0Jik7CisK
KyAgICBDbGlwYm9hcmQ6OkNsaXBib2FyZFR5cGUgbV9jbGlwYm9hcmRUeXBlOworCisgICAgU3Ry
aW5nIG1fdXJsVGl0bGU7CisKKyAgICBTdHJpbmcgbV9kb3dubG9hZE1ldGFkYXRhOworCisgICAg
U3RyaW5nIG1fZmlsZUV4dGVuc2lvbjsKKyAgICBWZWN0b3I8U3RyaW5nPiBtX2ZpbGVuYW1lczsK
IAotICAgIFJlZlB0cjxDaHJvbWl1bURhdGFPYmplY3RMZWdhY3k+IG1fbGVnYWN5RGF0YTsKLSAg
ICBSZWZQdHI8UmVhZGFibGVEYXRhT2JqZWN0PiBtX3JlYWRhYmxlRGF0YTsKLSAgICBSZWZQdHI8
V3JpdGFibGVEYXRhT2JqZWN0PiBtX3dyaXRhYmxlRGF0YTsKKyAgICBTdHJpbmcgbV9wbGFpblRl
eHQ7CisKKyAgICBTdHJpbmcgbV90ZXh0SHRtbDsKKyAgICBLVVJMIG1faHRtbEJhc2VVcmw7CisK
KyAgICBTdHJpbmcgbV9maWxlQ29udGVudEZpbGVuYW1lOworICAgIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IG1fZmlsZUNvbnRlbnQ7CisKKyAgICAvLyBUaGVzZSB0d28gYXJlIGxpbmtlZC4gU2V0dGlu
ZyBtX3VybCB3aWxsIHNldCBtX3VyaUxpc3QgdG8gdGhlIHNhbWUKKyAgICAvLyBzdHJpbmcgdmFs
dWU7IHNldHRpbmcgbV91cmlMaXN0IHdpbGwgY2F1c2UgaXRzIGNvbnRlbnRzIHRvIGJlIHBhcnNl
ZAorICAgIC8vIGFjY29yZGluZyB0byBSRkMgMjQ4MyBhbmQgdGhlIGZpcnN0IFVSTCBmb3VuZCB3
aWxsIGJlIHNldCBpbiBtX3VybC4KKyAgICBLVVJMIG1fdXJsOworICAgIFN0cmluZyBtX3VyaUxp
c3Q7CiB9OwogCi19Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgorCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5j
cHAKaW5kZXggNDZiNDMzOTEyNDgxYjJkMzRiNzk2ZjM3YzIyMjFiOGNmZjcxZmU3OC4uZmIzZTA1
YjI5ZGZmZmM4OWE3MjA1ZjM1Y2E3Y2JjMDNmOTRiZDZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcApAQCAtODUs
MTYgKzg1LDYgQEAgUGFzc1JlZlB0cjxDbGlwYm9hcmRDaHJvbWl1bT4gQ2xpcGJvYXJkQ2hyb21p
dW06OmNyZWF0ZShDbGlwYm9hcmRUeXBlIGNsaXBib2FyZFQKICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IENsaXBib2FyZENocm9taXVtKGNsaXBib2FyZFR5cGUsIGRhdGFPYmplY3QsIHBvbGljeSwg
ZnJhbWUpKTsKIH0KIAotUGFzc1JlZlB0cjxDbGlwYm9hcmRDaHJvbWl1bT4gQ2xpcGJvYXJkQ2hy
b21pdW06OmNyZWF0ZShDbGlwYm9hcmRUeXBlIGNsaXBib2FyZFR5cGUsCi0gICAgQ2xpcGJvYXJk
QWNjZXNzUG9saWN5IHBvbGljeSwgRnJhbWUqIGZyYW1lKQotewotICAgIFJlZlB0cjxDaHJvbWl1
bURhdGFPYmplY3Q+IGRhdGFPYmplY3QgPQotICAgICAgICBwb2xpY3kgPT0gQ2xpcGJvYXJkV3Jp
dGFibGUgPwotICAgICAgICBDaHJvbWl1bURhdGFPYmplY3Q6OmNyZWF0ZVdyaXRhYmxlKGNsaXBi
b2FyZFR5cGUpIDoKLSAgICAgICAgQ2hyb21pdW1EYXRhT2JqZWN0OjpjcmVhdGVSZWFkYWJsZShj
bGlwYm9hcmRUeXBlKTsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IENsaXBib2FyZENocm9taXVt
KGNsaXBib2FyZFR5cGUsIGRhdGFPYmplY3QsIHBvbGljeSwgZnJhbWUpKTsKLX0KLQogdm9pZCBD
bGlwYm9hcmRDaHJvbWl1bTo6Y2xlYXJEYXRhKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKICAgICBp
ZiAocG9saWN5KCkgIT0gQ2xpcGJvYXJkV3JpdGFibGUgfHwgIW1fZGF0YU9iamVjdCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVt
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DbGlwYm9hcmRDaHJvbWl1bS5o
CmluZGV4IGQ1YWRhMTRkNDZiMGE2MzFiOGM0Yjg5NjM3NmIxMjNmYTEwZGQ5ZDcuLmQzMGExYzRh
MTNhNWEyYTViNTExMTNmNGM3N2I0MGYyZTNlZDEyZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJkQ2hyb21pdW0uaApAQCAtNDksOSArNDks
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPENsaXBi
b2FyZENocm9taXVtPiBjcmVhdGUoCiAgICAgICAgICAgICBDbGlwYm9hcmRUeXBlLCBQYXNzUmVm
UHRyPENocm9taXVtRGF0YU9iamVjdD4sIENsaXBib2FyZEFjY2Vzc1BvbGljeSwgRnJhbWUqKTsK
IAotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDbGlwYm9hcmRDaHJvbWl1bT4gY3JlYXRlKAot
ICAgICAgICAgICAgQ2xpcGJvYXJkVHlwZSwgQ2xpcGJvYXJkQWNjZXNzUG9saWN5LCBGcmFtZSop
OwotCiAgICAgICAgIC8vIFJldHVybnMgdGhlIGZpbGUgbmFtZSAobm90IGluY2x1ZGluZyB0aGUg
ZXh0ZW5zaW9uKS4gVGhpcyByZW1vdmVzIGFueQogICAgICAgICAvLyBpbnZhbGlkIGZpbGUgc3lz
dGVtIGNoYXJhY3RlcnMgYXMgd2VsbCBhcyBtYWtpbmcgc3VyZSB0aGUKICAgICAgICAgLy8gcGF0
aCArIGV4dGVuc2lvbiBpcyBub3QgYmlnZ2VyIHRoYW4gYWxsb3dlZCBieSB0aGUgZmlsZSBzeXN0
ZW0uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDNjZjM5YmJkMDZjN2FkNTBkNmU1ODAx
YTgzMmJmNzcyNjdiZjA3M2UuLmY4NWRiMzUyMjVhYWYxMzI5ZGM4ZWM0NGYyMzgxNmNhYTFmNGQz
YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTEtMDMt
MDIgIERhbmllbCBDaGVuZyAgPGRjaGVuZ0BjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFudWFsbHkgcmV2ZXJ0IENocm9taXVt
RGF0YU9iamVjdCBjaGFuZ2VzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NTU2MjcKKworICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAg
ICogc3JjL1dlYkRyYWdEYXRhLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRHJhZ0RhdGE6Omlu
aXRpYWxpemUpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0VudGVyKToKKyAgICAgICAgKiBzcmMvV2Vi
Vmlld0ltcGwuaDoKKworMjAxMS0wMy0wMiAgRGFuaWVsIENoZW5nICA8ZGNoZW5nQGNocm9taXVt
Lm9yZz4KKwogICAgICAgICBSZXZlcnQgZnJhbWUtc3BlY2lmaWMgV2ViQ2xpcGJvYXJkIGNoYW5n
ZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1NjE3
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAppbmRleCA0MjQzOTk4ZWMy
MTI5NDA0Y2Q1YWQ4MWRmOTQ2NjVjMzZkNzllODI1Li4wODFmZGRiZDg5YzdmZmJkODhmMjE2YTE1
MWJmZDAxOTAyYzdjNDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5o
CkBAIC0yMzIsOSArMjMyLDYgQEAgcHVibGljOgogICAgICAgICBjb25zdCBXZWJEcmFnRGF0YSYs
IGludCBpZGVudGl0eSwKICAgICAgICAgY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LCBjb25z
dCBXZWJQb2ludCYgc2NyZWVuUG9pbnQsCiAgICAgICAgIFdlYkRyYWdPcGVyYXRpb25zTWFzayBv
cGVyYXRpb25zQWxsb3dlZCkgPSAwOwotICAgIHZpcnR1YWwgV2ViRHJhZ09wZXJhdGlvbiBkcmFn
VGFyZ2V0RHJhZ0VudGVyTmV3KAotICAgICAgICBpbnQgaWRlbnRpdHksIGNvbnN0IFdlYlBvaW50
JiBjbGllbnRQb2ludCwgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAotICAgICAgICBXZWJE
cmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQpID0gMDsKICAgICB2aXJ0dWFsIFdl
YkRyYWdPcGVyYXRpb24gZHJhZ1RhcmdldERyYWdPdmVyKAogICAgICAgICBjb25zdCBXZWJQb2lu
dCYgY2xpZW50UG9pbnQsIGNvbnN0IFdlYlBvaW50JiBzY3JlZW5Qb2ludCwKICAgICAgICAgV2Vi
RHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlvbnNBbGxvd2VkKSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEcmFnRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJEcmFnRGF0YS5jcHAKaW5kZXggOTE2N2M2OTkxNzMzYmIzMzUzZWY2
MDAxZWI5ZDEyMjg0ZDliMzNmNC4uMGMxZGM0ZjFhYzhiZmRiYjRhNzQ5ZmFlNmRiMjg5MzkxN2Rl
YWU4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRHJhZ0RhdGEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRyYWdEYXRhLmNwcApAQCAt
NTAsNyArNTAsNyBAQCBjbGFzcyBXZWJEcmFnRGF0YVByaXZhdGUgOiBwdWJsaWMgQ2hyb21pdW1E
YXRhT2JqZWN0IHsKIAogdm9pZCBXZWJEcmFnRGF0YTo6aW5pdGlhbGl6ZSgpCiB7Ci0gICAgYXNz
aWduKHN0YXRpY19jYXN0PFdlYkRyYWdEYXRhUHJpdmF0ZSo+KENocm9taXVtRGF0YU9iamVjdDo6
Y3JlYXRlKENocm9taXVtRGF0YU9iamVjdExlZ2FjeTo6Y3JlYXRlKENsaXBib2FyZDo6RHJhZ0Fu
ZERyb3ApKS5yZWxlYXNlUmVmKCkpKTsKKyAgICBhc3NpZ24oc3RhdGljX2Nhc3Q8V2ViRHJhZ0Rh
dGFQcml2YXRlKj4oQ2hyb21pdW1EYXRhT2JqZWN0OjpjcmVhdGUoQ2xpcGJvYXJkOjpEcmFnQW5k
RHJvcCkucmVsZWFzZVJlZigpKSk7CiB9CiAKIHZvaWQgV2ViRHJhZ0RhdGE6OnJlc2V0KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA0MTFmMDQ3NzM1
NWM0NjhiMmEzMDQzNzg5M2UyNjg0ZjA3ZWZjNjY5Li45NTliMWVmM2VmZjhiMTE4ZTEwMWFhMDBi
OWFjNmY0MGM1MTU1OGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCkBAIC0xNzcxLDIxICsxNzcxLDYgQEAgV2ViRHJhZ09wZXJhdGlvbiBXZWJWaWV3SW1w
bDo6ZHJhZ1RhcmdldERyYWdFbnRlcigKICAgICByZXR1cm4gZHJhZ1RhcmdldERyYWdFbnRlck9y
T3ZlcihjbGllbnRQb2ludCwgc2NyZWVuUG9pbnQsIERyYWdFbnRlcik7CiB9CiAKLVdlYkRyYWdP
cGVyYXRpb24gV2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnRW50ZXJOZXcoCi0gICAgaW50IGlk
ZW50aXR5LAotICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwKLSAgICBjb25zdCBXZWJQ
b2ludCYgc2NyZWVuUG9pbnQsCi0gICAgV2ViRHJhZ09wZXJhdGlvbnNNYXNrIG9wZXJhdGlvbnNB
bGxvd2VkKQotewotICAgIEFTU0VSVCghbV9jdXJyZW50RHJhZ0RhdGEuZ2V0KCkpOwotCi0gICAg
bV9jdXJyZW50RHJhZ0RhdGEgPSBDaHJvbWl1bURhdGFPYmplY3Q6OmNyZWF0ZVJlYWRhYmxlKENs
aXBib2FyZDo6RHJhZ0FuZERyb3ApOwotICAgIG1fZHJhZ0lkZW50aXR5ID0gaWRlbnRpdHk7Ci0g
ICAgbV9vcGVyYXRpb25zQWxsb3dlZCA9IG9wZXJhdGlvbnNBbGxvd2VkOwotCi0gICAgcmV0dXJu
IGRyYWdUYXJnZXREcmFnRW50ZXJPck92ZXIoY2xpZW50UG9pbnQsIHNjcmVlblBvaW50LCBEcmFn
RW50ZXIpOwotfQotCiBXZWJEcmFnT3BlcmF0aW9uIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJh
Z092ZXIoCiAgICAgY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvaW50LAogICAgIGNvbnN0IFdlYlBv
aW50JiBzY3JlZW5Qb2ludCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5o
CmluZGV4IDc2NDBjZWJhNDhlYzI5YTk3ZjE4Y2NlMGJiNzJkZWU0ZTc3NTQyOWIuLjZkYzllOTM1
OGYwZDk3ODRhMWE1OTNhZDczN2UzOWM0YWQzZGRmYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMTU4LDExICsxNTgsNiBAQCBwdWJsaWM6CiAgICAgICAg
IGNvbnN0IFdlYlBvaW50JiBjbGllbnRQb2ludCwKICAgICAgICAgY29uc3QgV2ViUG9pbnQmIHNj
cmVlblBvaW50LAogICAgICAgICBXZWJEcmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93
ZWQpOwotICAgIHZpcnR1YWwgV2ViRHJhZ09wZXJhdGlvbiBkcmFnVGFyZ2V0RHJhZ0VudGVyTmV3
KAotICAgICAgICBpbnQgaWRlbnRpdHksCi0gICAgICAgIGNvbnN0IFdlYlBvaW50JiBjbGllbnRQ
b2ludCwKLSAgICAgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAotICAgICAgICBXZWJE
cmFnT3BlcmF0aW9uc01hc2sgb3BlcmF0aW9uc0FsbG93ZWQpOwogICAgIHZpcnR1YWwgV2ViRHJh
Z09wZXJhdGlvbiBkcmFnVGFyZ2V0RHJhZ092ZXIoCiAgICAgICAgIGNvbnN0IFdlYlBvaW50JiBj
bGllbnRQb2ludCwKICAgICAgICAgY29uc3QgV2ViUG9pbnQmIHNjcmVlblBvaW50LAo=
</data>
<flag name="review"
          id="76468"
          type_id="1"
          status="+"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>