<?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>127788</bug_id>
          
          <creation_ts>2014-01-28 12:46:43 -0800</creation_ts>
          <short_desc>WebKit2 View Gestures (Swipe): Encode snapshots as JPEG on some platforms</short_desc>
          <delta_ts>2014-05-13 14:36:28 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>973040</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-28 12:46:43 -0800</bug_when>
    <thetext>See http://trac.webkit.org/changeset/162950</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>973041</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-01-28 12:47:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/15928241&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008790</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-05-12 16:48:53 -0700</bug_when>
    <thetext>*** Bug 132844 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008825</commentid>
    <comment_count>3</comment_count>
      <attachid>231351</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-05-12 18:10:38 -0700</bug_when>
    <thetext>Created attachment 231351
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008827</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-12 18:12:32 -0700</bug_when>
    <thetext>Attachment 231351 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/mac/ViewSnapshotStore.mm:233:  Missing space before {  [whitespace/braces] [5]
Total errors found: 1 in 8 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>1008859</commentid>
    <comment_count>5</comment_count>
      <attachid>231361</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-05-12 22:12:29 -0700</bug_when>
    <thetext>Created attachment 231361
fix the iOS build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008860</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-12 22:13:35 -0700</bug_when>
    <thetext>Attachment 231361 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/mac/ViewSnapshotStore.mm:233:  Missing space before {  [whitespace/braces] [5]
Total errors found: 1 in 8 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>1009009</commentid>
    <comment_count>7</comment_count>
      <attachid>231361</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-05-13 11:03:18 -0700</bug_when>
    <thetext>Comment on attachment 231361
fix the iOS build

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

&gt; Source/WebKit2/UIProcess/mac/ViewSnapshotStore.mm:247
&gt; +void ViewSnapshotStore::reduceSnapshotMemoryCost(String uuid)

const String&amp; uuid.

&gt; Source/WebKit2/UIProcess/mac/ViewSnapshotStore.mm:271
&gt; +void ViewSnapshotStore::didCompressSnapshot(String uuid, RetainPtr&lt;CGImageRef&gt; newImage, size_t newImageSize)

const String&amp; uuid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009020</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-05-13 11:15:46 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/168689</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009075</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-05-13 14:28:16 -0700</bug_when>
    <thetext>Build fix in http://trac.webkit.org/changeset/168739</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009079</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-05-13 14:36:28 -0700</bug_when>
    <thetext>And http://trac.webkit.org/changeset/168740 for the sim.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231351</attachid>
            <date>2014-05-12 18:10:38 -0700</date>
            <delta_ts>2014-05-12 22:12:29 -0700</delta_ts>
            <desc>patch</desc>
            <filename>snapshot-jpeg.diff</filename>
            <type>text/plain</type>
            <size>19371</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwYmQ1ODFmLi42NWNiNDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQg
QEAKKzIwMTQtMDUtMTIgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgV2ViS2l0MiBWaWV3IEdlc3R1cmVzIChTd2lwZSk6IEVuY29kZSBzbmFwc2hvdHMg
YXMgSlBFRyBvbiBzb21lIHBsYXRmb3JtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI3Nzg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNTkyODI0
MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGxv
dyBKUEVHIHNuYXBzaG90cy4gQ29tcHJlc3Npb24gaXMgZG9uZSBhc3luY2hyb25vdXNseS4KKyAg
ICAgICAgRW5hYmxlIEpQRUcgc25hcHNob3RzIChmb3Igbm93KSBvbiBhbGwgUExBVEZPUk0oTUFD
KS4KKyAgICAgICAgV2UnbGwgc3dpdGNoIGJhY2sgdG8gSU9TdXJmYWNlIHNuYXBzaG90cyBvbiAx
MC45KyBhZnRlciA8cmRhcjovL3Byb2JsZW0vMTY3MzQwMzE+IGlzIHJlc29sdmVkLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgX3Rha2VWaWV3U25hcHNo
b3RdKToKKyAgICAgICAgU3RvcmUgdGhlIGltYWdlIHNpemUgb24gdGhlIFZpZXdTbmFwc2hvdC4K
KyAgICAgICAgTW92ZSBJT1N1cmZhY2UtcmVsYXRlZCBjb2RlIHRvIFZpZXdTbmFwc2hvdFN0b3Jl
LgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW06
CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6YmVnaW5Td2lwZUdlc3R1
cmUpOgorICAgICAgICBBZG9wdCBhc0xheWVyQ29udGVudHMoKS4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0
dXJlQ29udHJvbGxlcjo6cmV0cmlldmVTbmFwc2hvdEZvckl0ZW0pOgorICAgICAgICAoV2ViS2l0
OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmJlZ2luU3dpcGVHZXN0dXJlKToKKyAgICAgICAgKFdl
YktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpyZW1vdmVTd2lwZVNuYXBzaG90KToKKyAgICAg
ICAgQWRvcHQgYXNMYXllckNvbnRlbnRzKCkuCisgICAgICAgIFB1dCB0aGUgc25hcHNob3Qgb24g
dGhlIHJpZ2h0IGxheWVyICh0aGUgcGFyZW50IG9mIHRoZSBzbmFwc2hvdCBpbWFnZSBsYXllcik7
CisgICAgICAgIGlmIGl0J3Mgb24gdGhlIHNuYXBzaG90IGltYWdlIGxheWVyIGl0c2VsZiwgaWYg
dGhlcmUgaXMgbm8gaW1hZ2UsIHRoZSBzaGFkb3cKKyAgICAgICAgaXMgZGlzcGxheWVkIG9uIHRv
cCBvZiB0aGUgd2hpdGUgcGxhY2Vob2xkZXIuCisgICAgICAgIE9ubHkgcmVzZXQgc25hcHNob3Qg
cHVyZ2VhYmlsaXR5IGlmIHdlJ3JlIHVzaW5nIElPU3VyZmFjZSBzbmFwc2hvdHMuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLmg6CisgICAgICAgIEFkZCBhIGJ1
bmNoIG9mIG1hY3JvcyB0byBhbGxvdyB1cyB0byBzd2l0Y2ggdGhlIHNuYXBzaG90IGJhY2tpbmcg
c3RvcmUgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdTbmFw
c2hvdFN0b3JlLm1tOgorICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3RTdG9yZTo6Vmlld1Nu
YXBzaG90U3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3RTdG9yZTo6flZpZXdT
bmFwc2hvdFN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6Vmlld1NuYXBzaG90U3RvcmU6OnJlY29y
ZFNuYXBzaG90KToKKyAgICAgICAgSWYgdGFrZVZpZXdTbmFwc2hvdCgpIGZhaWxzLCBkb24ndCBy
ZW1vdmUgdGhlIGV4aXN0aW5nIHNuYXBzaG90LgorCisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZUlP
U3VyZmFjZUZyb21JbWFnZSk6CisgICAgICAgIChXZWJLaXQ6OmNvbXByZXNzSW1hZ2VBc0pQRUcp
OgorICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3RTdG9yZTo6cmVkdWNlU25hcHNob3RNZW1v
cnlDb3N0KToKKyAgICAgICAgKFdlYktpdDo6Vmlld1NuYXBzaG90U3RvcmU6OmRpZENvbXByZXNz
U25hcHNob3QpOgorICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3Q6OmNsZWFySW1hZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3Q6OmFzTGF5ZXJDb250ZW50cyk6CisgICAgICAg
IEFzeW5jaHJvbm91c2x5IGNvbXByZXNzIHNuYXBzaG90cyAtIGlmIHdlJ3JlIHVzaW5nIEpQRUcg
c25hcHNob3RzIC0gZm9yIGEKKyAgICAgICAgdmVyeSBsYXJnZSBtZW1vcnkgd2luICh+MjAtMzB4
KS4KKwogMjAxNC0wNS0xMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgog
CiAgICAgICAgIFBhc3MgbG9jYWwgc3RvcmFnZSBkaXJlY3RvcnkgdG8gU3RvcmFnZU1hbmFnZXI6
OmNyZWF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
dy5tbQppbmRleCA1MGRmZTFmLi5iNTY0NDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNTI3LDYgKzUyNyw3IEBAIHN0YXRpYyBD
R0Zsb2F0IGNvbnRlbnRab29tU2NhbGUoV0tXZWJWaWV3KiB3ZWJWaWV3KQogICAgIENBVHJhbnNm
b3JtM0QgdHJhbnNmb3JtID0gQ0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShkZXZpY2VTY2FsZSwgZGV2
aWNlU2NhbGUsIDEpOwogICAgIENBUmVuZGVyU2VydmVyQ2FwdHVyZUxheWVyV2l0aFRyYW5zZm9y
bShNQUNIX1BPUlRfTlVMTCwgc2VsZi5sYXllci5jb250ZXh0LmNvbnRleHRJZCwgKHVpbnQ2NF90
KXNlbGYubGF5ZXIsIHNuYXBzaG90LnNsb3RJRCwgMCwgMCwgJnRyYW5zZm9ybSk7CiAKKyAgICBz
bmFwc2hvdC5zaXplID0gZXhwYW5kZWRJbnRTaXplKHNuYXBzaG90U2l6ZSk7CiAgICAgc25hcHNo
b3QuaW1hZ2VTaXplSW5CeXRlcyA9IHNuYXBzaG90U2l6ZS53aWR0aCAqIHNuYXBzaG90U2l6ZS5o
ZWlnaHQgKiA0OwogCiAgICAgcmV0dXJuIHNuYXBzaG90OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDc3ZmI3ODQuLmE1ODExMmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTMwMjYsMTkgKzMwMjYsNiBA
QCBzdGF0aWMgdm9pZCBjcmVhdGVTYW5kYm94RXh0ZW5zaW9uc0ZvckZpbGVVcGxvYWQoTlNQYXN0
ZWJvYXJkICpwYXN0ZWJvYXJkLCBTYW5kYgogICAgIHJldHVybiBfZGF0YS0+X3Jvb3RMYXllci5n
ZXQoKTsKIH0KIAotc3RhdGljIFJlZlB0cjxJT1N1cmZhY2U+IGNyZWF0ZUlPU3VyZmFjZUZyb21J
bWFnZShDR0ltYWdlUmVmIGltYWdlKQotewotICAgIHNpemVfdCB3aWR0aCA9IENHSW1hZ2VHZXRX
aWR0aChpbWFnZSk7Ci0gICAgc2l6ZV90IGhlaWdodCA9IENHSW1hZ2VHZXRIZWlnaHQoaW1hZ2Up
OwotCi0gICAgUmVmUHRyPElPU3VyZmFjZT4gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlKElu
dFNpemUod2lkdGgsIGhlaWdodCksIENvbG9yU3BhY2VEZXZpY2VSR0IpOwotICAgIFJldGFpblB0
cjxDR0NvbnRleHRSZWY+IHN1cmZhY2VDb250ZXh0ID0gc3VyZmFjZS0+ZW5zdXJlUGxhdGZvcm1D
b250ZXh0KCk7Ci0gICAgQ0dDb250ZXh0RHJhd0ltYWdlKHN1cmZhY2VDb250ZXh0LmdldCgpLCBD
R1JlY3RNYWtlKDAsIDAsIHdpZHRoLCBoZWlnaHQpLCBpbWFnZSk7Ci0gICAgQ0dDb250ZXh0Rmx1
c2goc3VyZmFjZUNvbnRleHQuZ2V0KCkpOwotCi0gICAgcmV0dXJuIHN1cmZhY2U7Ci19Ci0KIC0g
KFZpZXdTbmFwc2hvdClfdGFrZVZpZXdTbmFwc2hvdAogewogICAgIE5TV2luZG93ICp3aW5kb3cg
PSBzZWxmLndpbmRvdzsKQEAgLTMwNzcsOCArMzA2NCwxMiBAQCBzdGF0aWMgUmVmUHRyPElPU3Vy
ZmFjZT4gY3JlYXRlSU9TdXJmYWNlRnJvbUltYWdlKENHSW1hZ2VSZWYgaW1hZ2UpCiAKICAgICBh
dXRvIGNyb3BwZWRTbmFwc2hvdEltYWdlID0gYWRvcHRDRihDR0ltYWdlQ3JlYXRlV2l0aEltYWdl
SW5SZWN0KHdpbmRvd1NuYXBzaG90SW1hZ2UuZ2V0KCksIE5TUmVjdFRvQ0dSZWN0KFt3aW5kb3cg
Y29udmVydFJlY3RUb0JhY2tpbmc6Y3JvcHBlZEltYWdlUmVjdF0pKSk7CiAKLSAgICBzbmFwc2hv
dC5zdXJmYWNlID0gY3JlYXRlSU9TdXJmYWNlRnJvbUltYWdlKGNyb3BwZWRTbmFwc2hvdEltYWdl
LmdldCgpKTsKLSAgICBzbmFwc2hvdC5pbWFnZVNpemVJbkJ5dGVzID0gc25hcHNob3Quc3VyZmFj
ZS0+dG90YWxCeXRlcygpOworICAgIHNuYXBzaG90LmltYWdlID0gY3JvcHBlZFNuYXBzaG90SW1h
Z2UuZ2V0KCk7CisKKyAgICBJbnRTaXplIGltYWdlU2l6ZShDR0ltYWdlR2V0V2lkdGgoY3JvcHBl
ZFNuYXBzaG90SW1hZ2UuZ2V0KCkpLCBDR0ltYWdlR2V0SGVpZ2h0KGNyb3BwZWRTbmFwc2hvdElt
YWdlLmdldCgpKSk7CisgICAgc25hcHNob3Quc2l6ZSA9IGltYWdlU2l6ZTsKKyAgICBzbmFwc2hv
dC5pbWFnZVNpemVJbkJ5dGVzID0gaW1hZ2VTaXplLndpZHRoKCkgKiBpbWFnZVNpemUuaGVpZ2h0
KCkgKiA0OworCiAgICAgcmV0dXJuIHNuYXBzaG90OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCmluZGV4
IGY1ODk4OWEuLjZkYzk2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCkBAIC0xNTgsNyArMTU4LDcgQEAg
dm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmJlZ2luU3dpcGVHZXN0dXJlKF9VSU5hdmlnYXRp
b25JbnRlcmFjdGl2ZVRyYW5zaXRpb24KIAogICAgIFZpZXdTbmFwc2hvdCBzbmFwc2hvdDsKICAg
ICBpZiAoVmlld1NuYXBzaG90U3RvcmU6OnNoYXJlZCgpLmdldFNuYXBzaG90KHRhcmdldEl0ZW0s
IHNuYXBzaG90KSAmJiBzbmFwc2hvdC5oYXNJbWFnZSgpKQotICAgICAgICBbbV9zbmFwc2hvdFZp
ZXcgbGF5ZXJdLmNvbnRlbnRzID0gW0NBQ29udGV4dCBvYmplY3RGb3JTbG90OnNuYXBzaG90LnNs
b3RJRF07CisgICAgICAgIFttX3NuYXBzaG90VmlldyBsYXllcl0uY29udGVudHMgPSBzbmFwc2hv
dC5hc0xheWVyQ29udGVudHMoKTsKIAogICAgIFttX3NuYXBzaG90VmlldyBzZXRCYWNrZ3JvdW5k
Q29sb3I6W1VJQ29sb3Igd2hpdGVDb2xvcl1dOwogICAgIFttX3NuYXBzaG90VmlldyBsYXllcl0u
Y29udGVudHNHcmF2aXR5ID0ga0NBR3Jhdml0eVRvcExlZnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaAppbmRleCBjZDllZGY0
Li5kY2IwNTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdH
ZXN0dXJlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmll
d0dlc3R1cmVDb250cm9sbGVyLmgKQEAgLTUwLDYgKzUwLDcgQEAgY2xhc3MgSU9TdXJmYWNlOwog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorc3RydWN0IFZpZXdTbmFwc2hvdDsKIGNsYXNzIFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW07CiBjbGFzcyBXZWJQYWdlUHJveHk7CiAKQEAgLTEzMSw3ICsxMzIs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgZW5kU3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0qIHRhcmdldEl0ZW0sIGJvb2wgY2FuY2VsbGVkKTsKICAgICBib29sIGRlbHRhSXNTdWZm
aWNpZW50VG9CZWdpblN3aXBlKE5TRXZlbnQgKik7CiAgICAgYm9vbCBzY3JvbGxFdmVudENhbkJl
Y29tZVN3aXBlKE5TRXZlbnQgKiwgU3dpcGVEaXJlY3Rpb24mKTsKLSAgICBXZWJDb3JlOjpJT1N1
cmZhY2UqIHJldHJpZXZlU25hcHNob3RGb3JJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qLCBX
ZWJDb3JlOjpGbG9hdFNpemUgc3dpcGVMYXllclNpemUsIGZsb2F0IHRvcENvbnRlbnRJbnNldCk7
CisgICAgYm9vbCByZXRyaWV2ZVNuYXBzaG90Rm9ySXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVt
KiB0YXJnZXRJdGVtLCBXZWJDb3JlOjpGbG9hdFNpemUgc3dpcGVMYXllclNpemUsIGZsb2F0IHRv
cENvbnRlbnRJbnNldCwgVmlld1NuYXBzaG90Jik7CiAKICAgICBDQUxheWVyICpkZXRlcm1pbmVT
bmFwc2hvdExheWVyUGFyZW50KCkgY29uc3Q7CiAgICAgQ0FMYXllciAqZGV0ZXJtaW5lTGF5ZXJB
ZGphY2VudFRvU25hcHNob3RGb3JQYXJlbnQoU3dpcGVEaXJlY3Rpb24sIENBTGF5ZXIgKnNuYXBz
aG90TGF5ZXJQYXJlbnQpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbQppbmRleCBkN2ZhYzgyLi45YTZi
ODQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJl
Q29udHJvbGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdH
ZXN0dXJlQ29udHJvbGxlck1hYy5tbQpAQCAtNDUxLDI4ICs0NTEsMjEgQEAgQ0FMYXllciAqVmll
d0dlc3R1cmVDb250cm9sbGVyOjpkZXRlcm1pbmVMYXllckFkamFjZW50VG9TbmFwc2hvdEZvclBh
cmVudChTd2lwZUQKICAgICByZXR1cm4gbGF5ZXJBZGphY2VudFRvU25hcHNob3Q7CiB9CiAKLUlP
U3VyZmFjZSogVmlld0dlc3R1cmVDb250cm9sbGVyOjpyZXRyaWV2ZVNuYXBzaG90Rm9ySXRlbShX
ZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtLCBGbG9hdFNpemUgc3dpcGVMYXllclNp
emUsIGZsb2F0IHRvcENvbnRlbnRJbnNldCkKK2Jvb2wgVmlld0dlc3R1cmVDb250cm9sbGVyOjpy
ZXRyaWV2ZVNuYXBzaG90Rm9ySXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVt
LCBGbG9hdFNpemUgc3dpcGVMYXllclNpemUsIGZsb2F0IHRvcENvbnRlbnRJbnNldCwgVmlld1Nu
YXBzaG90JiBzbmFwc2hvdCkKIHsKLSAgICBWaWV3U25hcHNob3Qgc25hcHNob3Q7CiAgICAgaWYg
KCFWaWV3U25hcHNob3RTdG9yZTo6c2hhcmVkKCkuZ2V0U25hcHNob3QodGFyZ2V0SXRlbSwgc25h
cHNob3QpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGlmICghc25hcHNob3Quc3Vy
ZmFjZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gbV93ZWJQYWdlUHJveHkuZGV2aWNlU2NhbGVG
YWN0b3IoKTsKICAgICBpZiAoc25hcHNob3QuZGV2aWNlU2NhbGVGYWN0b3IgIT0gZGV2aWNlU2Nh
bGVGYWN0b3IpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBGbG9hdFNpemUgdW5vYnNjdXJlZFN3aXBlTGF5ZXJTaXplSW5EZXZpY2VDb29yZGlu
YXRlcyA9IHN3aXBlTGF5ZXJTaXplIC0gRmxvYXRTaXplKDAsIHRvcENvbnRlbnRJbnNldCk7CiAg
ICAgdW5vYnNjdXJlZFN3aXBlTGF5ZXJTaXplSW5EZXZpY2VDb29yZGluYXRlcy5zY2FsZShkZXZp
Y2VTY2FsZUZhY3Rvcik7Ci0gICAgaWYgKHNuYXBzaG90LnN1cmZhY2UtPnNpemUoKSAhPSB1bm9i
c2N1cmVkU3dpcGVMYXllclNpemVJbkRldmljZUNvb3JkaW5hdGVzKQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLQotICAgIGlmIChzbmFwc2hvdC5zdXJmYWNlLT5zZXRJc1ZvbGF0aWxlKGZhbHNl
KSAhPSBJT1N1cmZhY2U6OlN1cmZhY2VTdGF0ZTo6VmFsaWQpCi0gICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIGlmIChzbmFwc2hvdC5zaXplICE9IHVub2JzY3VyZWRTd2lwZUxheWVyU2l6ZUlu
RGV2aWNlQ29vcmRpbmF0ZXMpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBz
bmFwc2hvdC5zdXJmYWNlLmdldCgpOworICAgIHJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgYm9v
bCBsYXllckdlb21ldHJ5RmxpcHBlZFRvUm9vdChDQUxheWVyICpsYXllcikKQEAgLTUzNSwxMCAr
NTI4LDEyIEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpiZWdpblN3aXBlR2VzdHVyZShX
ZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtCiAgICAgQ0FMYXllciAqc25hcHNob3RM
YXllclBhcmVudCA9IGRldGVybWluZVNuYXBzaG90TGF5ZXJQYXJlbnQoKTsKICAgICBib29sIGdl
b21ldHJ5SXNGbGlwcGVkVG9Sb290ID0gbGF5ZXJHZW9tZXRyeUZsaXBwZWRUb1Jvb3Qoc25hcHNo
b3RMYXllclBhcmVudCk7CiAKLSAgICBJT1N1cmZhY2UqIHNuYXBzaG90ID0gcmV0cmlldmVTbmFw
c2hvdEZvckl0ZW0odGFyZ2V0SXRlbSwgc3dpcGVBcmVhLnNpemUoKSwgdG9wQ29udGVudEluc2V0
KTsKLSAgICBpZiAoc25hcHNob3QpIHsKLSAgICAgICAgbV9jdXJyZW50U3dpcGVTbmFwc2hvdFN1
cmZhY2UgPSBzbmFwc2hvdDsKLSAgICAgICAgW21fc3dpcGVTbmFwc2hvdExheWVyIHNldENvbnRl
bnRzOihpZClzbmFwc2hvdC0+c3VyZmFjZSgpXTsKKyAgICBWaWV3U25hcHNob3Qgc25hcHNob3Q7
CisgICAgaWYgKHJldHJpZXZlU25hcHNob3RGb3JJdGVtKHRhcmdldEl0ZW0sIHN3aXBlQXJlYS5z
aXplKCksIHRvcENvbnRlbnRJbnNldCwgc25hcHNob3QpKSB7CisgICAgICAgIFttX3N3aXBlU25h
cHNob3RMYXllciBzZXRDb250ZW50czpzbmFwc2hvdC5hc0xheWVyQ29udGVudHMoKV07CisjaWYg
VVNFX0lPU1VSRkFDRV9WSUVXX1NOQVBTSE9UUworICAgICAgICBtX2N1cnJlbnRTd2lwZVNuYXBz
aG90U3VyZmFjZSA9IHNuYXBzaG90LnN1cmZhY2U7CisjZW5kaWYKICAgICB9CiAKICAgICBbbV9z
d2lwZUxheWVyIHNldEJhY2tncm91bmRDb2xvcjpDR0NvbG9yR2V0Q29uc3RhbnRDb2xvcihrQ0dD
b2xvcldoaXRlKV07CkBAIC01NzEsMTEgKzU2NiwxMSBAQCB2b2lkIFZpZXdHZXN0dXJlQ29udHJv
bGxlcjo6YmVnaW5Td2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRl
bQogICAgICAgICAgICAgW3Jvb3RDb250ZW50TGF5ZXIgc2V0U2hhZG93UmFkaXVzOnN3aXBlT3Zl
cmxheVNoYWRvd1JhZGl1c107CiAgICAgICAgICAgICBbcm9vdENvbnRlbnRMYXllciBzZXRTaGFk
b3dQYXRoOnNoYWRvd1BhdGguZ2V0KCldOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
UmV0YWluUHRyPENHUGF0aFJlZj4gc2hhZG93UGF0aCA9IGFkb3B0Q0YoQ0dQYXRoQ3JlYXRlV2l0
aFJlY3QoW21fc3dpcGVTbmFwc2hvdExheWVyIGJvdW5kc10sIDApKTsKLSAgICAgICAgICAgIFtt
X3N3aXBlU25hcHNob3RMYXllciBzZXRTaGFkb3dDb2xvcjpDR0NvbG9yR2V0Q29uc3RhbnRDb2xv
cihrQ0dDb2xvckJsYWNrKV07Ci0gICAgICAgICAgICBbbV9zd2lwZVNuYXBzaG90TGF5ZXIgc2V0
U2hhZG93T3BhY2l0eTpzd2lwZU92ZXJsYXlTaGFkb3dPcGFjaXR5XTsKLSAgICAgICAgICAgIFtt
X3N3aXBlU25hcHNob3RMYXllciBzZXRTaGFkb3dSYWRpdXM6c3dpcGVPdmVybGF5U2hhZG93UmFk
aXVzXTsKLSAgICAgICAgICAgIFttX3N3aXBlU25hcHNob3RMYXllciBzZXRTaGFkb3dQYXRoOnNo
YWRvd1BhdGguZ2V0KCldOworICAgICAgICAgICAgUmV0YWluUHRyPENHUGF0aFJlZj4gc2hhZG93
UGF0aCA9IGFkb3B0Q0YoQ0dQYXRoQ3JlYXRlV2l0aFJlY3QoW21fc3dpcGVMYXllciBib3VuZHNd
LCAwKSk7CisgICAgICAgICAgICBbbV9zd2lwZUxheWVyIHNldFNoYWRvd0NvbG9yOkNHQ29sb3JH
ZXRDb25zdGFudENvbG9yKGtDR0NvbG9yQmxhY2spXTsKKyAgICAgICAgICAgIFttX3N3aXBlTGF5
ZXIgc2V0U2hhZG93T3BhY2l0eTpzd2lwZU92ZXJsYXlTaGFkb3dPcGFjaXR5XTsKKyAgICAgICAg
ICAgIFttX3N3aXBlTGF5ZXIgc2V0U2hhZG93UmFkaXVzOnN3aXBlT3ZlcmxheVNoYWRvd1JhZGl1
c107CisgICAgICAgICAgICBbbV9zd2lwZUxheWVyIHNldFNoYWRvd1BhdGg6c2hhZG93UGF0aC5n
ZXQoKV07CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTY3MSw5ICs2NjYsMTEgQEAgdm9pZCBWaWV3
R2VzdHVyZUNvbnRyb2xsZXI6OnJlbW92ZVN3aXBlU25hcHNob3QoKQogICAgIGlmIChtX2FjdGl2
ZUdlc3R1cmVUeXBlICE9IFZpZXdHZXN0dXJlVHlwZTo6U3dpcGUpCiAgICAgICAgIHJldHVybjsK
IAorI2lmIFVTRV9JT1NVUkZBQ0VfVklFV19TTkFQU0hPVFMKICAgICBpZiAobV9jdXJyZW50U3dp
cGVTbmFwc2hvdFN1cmZhY2UpCiAgICAgICAgIG1fY3VycmVudFN3aXBlU25hcHNob3RTdXJmYWNl
LT5zZXRJc1ZvbGF0aWxlKHRydWUpOwogICAgIG1fY3VycmVudFN3aXBlU25hcHNob3RTdXJmYWNl
ID0gbnVsbHB0cjsKKyNlbmRpZgogCiAgICAgZm9yIChjb25zdCBhdXRvJiBsYXllciA6IG1fY3Vy
cmVudFN3aXBlTGl2ZUxheWVycykKICAgICAgICAgW2xheWVyIHNldFRyYW5zZm9ybTpDQVRyYW5z
Zm9ybTNESWRlbnRpdHldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9WaWV3U25hcHNob3RTdG9yZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3
U25hcHNob3RTdG9yZS5oCmluZGV4IDc4NGQ0MmUuLjllNTM4MjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLmgKQEAgLTM1LDI2ICszNSw0
MCBAQAogCiBPQkpDX0NMQVNTIENBQ29udGV4dDsKIAorLy8gRklYTUU6IEVuYWJsZSBJT1N1cmZh
Y2Ugc25hcHNob3RzIGZvciAxMC45KyB3aGVuIDxyZGFyOi8vcHJvYmxlbS8xNjczNDAzMT4gaXMg
cmVzb2x2ZWQuCisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBVU0VfSlBFR19WSUVXX1NOQVBT
SE9UUyB0cnVlCisjZGVmaW5lIFVTRV9JT1NVUkZBQ0VfVklFV19TTkFQU0hPVFMgZmFsc2UKKyNk
ZWZpbmUgVVNFX1JFTkRFUl9TRVJWRVJfVklFV19TTkFQU0hPVFMgZmFsc2UKKyNlbHNlCisjZGVm
aW5lIFVTRV9KUEVHX1ZJRVdfU05BUFNIT1RTIGZhbHNlCisjZGVmaW5lIFVTRV9JT1NVUkZBQ0Vf
VklFV19TTkFQU0hPVFMgZmFsc2UKKyNkZWZpbmUgVVNFX1JFTkRFUl9TRVJWRVJfVklFV19TTkFQ
U0hPVFMgdHJ1ZQorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtOwogY2xhc3MgV2ViUGFnZVByb3h5OwogCiBzdHJ1Y3QgVmlld1NuYXBz
aG90IHsKLSNpZiBQTEFURk9STShNQUMpCisjaWYgVVNFX0pQRUdfVklFV19TTkFQU0hPVFMgfHwg
VVNFX0lPU1VSRkFDRV9WSUVXX1NOQVBTSE9UUwogICAgIFJlZlB0cjxXZWJDb3JlOjpJT1N1cmZh
Y2U+IHN1cmZhY2U7CisgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGltYWdlOwogI2VuZGlmCi0j
aWYgUExBVEZPUk0oSU9TKQorI2lmIFVTRV9SRU5ERVJfU0VSVkVSX1ZJRVdfU05BUFNIT1RTCiAg
ICAgdWludDMyX3Qgc2xvdElEID0gMDsKICNlbmRpZgogCiAgICAgc3RkOjpjaHJvbm86OnN0ZWFk
eV9jbG9jazo6dGltZV9wb2ludCBjcmVhdGlvblRpbWU7CiAgICAgdWludDY0X3QgcmVuZGVyVHJl
ZVNpemU7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3I7CisgICAgV2ViQ29yZTo6SW50U2l6
ZSBzaXplOwogICAgIHNpemVfdCBpbWFnZVNpemVJbkJ5dGVzID0gMDsKIAogICAgIHZvaWQgY2xl
YXJJbWFnZSgpOwogICAgIGJvb2wgaGFzSW1hZ2UoKSBjb25zdDsKKyAgICBpZCBhc0xheWVyQ29u
dGVudHMoKTsKIH07CiAKIGNsYXNzIFZpZXdTbmFwc2hvdFN0b3JlIHsKQEAgLTgwLDYgKzk0LDEy
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBwcnVuZVNuYXBzaG90cyhXZWJQYWdlUHJv
eHkmKTsKICAgICB2b2lkIHJlbW92ZVNuYXBzaG90SW1hZ2UoVmlld1NuYXBzaG90Jik7CisgICAg
dm9pZCByZWR1Y2VTbmFwc2hvdE1lbW9yeUNvc3QoU3RyaW5nIHV1aWQpOworCisjaWYgVVNFX0pQ
RUdfVklFV19TTkFQU0hPVFMKKyAgICB2b2lkIGRpZENvbXByZXNzU25hcHNob3QoU3RyaW5nIHV1
aWQsIFJldGFpblB0cjxDR0ltYWdlUmVmPiBuZXdJbWFnZSwgc2l6ZV90IG5ld0ltYWdlU2l6ZSk7
CisgICAgZGlzcGF0Y2hfcXVldWVfdCBtX2NvbXByZXNzaW9uUXVldWU7CisjZW5kaWYKIAogICAg
IEhhc2hNYXA8U3RyaW5nLCBWaWV3U25hcHNob3Q+IG1fc25hcHNob3RNYXA7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUubW0gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1tCmluZGV4IDI3
MWE3MDcuLjY3NmVlZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
Vmlld1NuYXBzaG90U3RvcmUubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9W
aWV3U25hcHNob3RTdG9yZS5tbQpAQCAtMzgsMTAgKzM4LDEwIEBACiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFVTRV9JT1NVUkZBQ0VfVklFV19T
TkFQU0hPVFMKIHN0YXRpYyBjb25zdCBzaXplX3QgbWF4aW11bVNuYXBzaG90Q2FjaGVTaXplID0g
NDAwICogKDEwMjQgKiAxMDI0KTsKLSNlbGlmIFBMQVRGT1JNKElPUykKLS8vIEJlY2F1c2Ugc25h
cHNob3RzIGFyZSBub3QgcHVyZ2VhYmxlLCB3ZSBzaG91bGQga2VlcCBmZXdlciBhcm91bmQuCisj
ZWxpZiBVU0VfSlBFR19WSUVXX1NOQVBTSE9UUyB8fCBVU0VfUkVOREVSX1NFUlZFUl9WSUVXX1NO
QVBTSE9UUworLy8gQmVjYXVzZSBub24tSU9TdXJmYWNlIHNuYXBzaG90cyBhcmUgbm90IHB1cmdl
YWJsZSwgd2Ugc2hvdWxkIGtlZXAgZmV3ZXIgYXJvdW5kLgogc3RhdGljIGNvbnN0IHNpemVfdCBt
YXhpbXVtU25hcHNob3RDYWNoZVNpemUgPSA1MCAqICgxMDI0ICogMTAyNCk7CiAjZW5kaWYKIApA
QCAtNTEsMTAgKzUxLDE2IEBAIFZpZXdTbmFwc2hvdFN0b3JlOjpWaWV3U25hcHNob3RTdG9yZSgp
CiAgICAgOiBtX2VuYWJsZWQodHJ1ZSkKICAgICAsIG1fc25hcHNob3RDYWNoZVNpemUoMCkKIHsK
KyNpZiBVU0VfSlBFR19WSUVXX1NOQVBTSE9UUworICAgIG1fY29tcHJlc3Npb25RdWV1ZSA9IGRp
c3BhdGNoX3F1ZXVlX2NyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5WaWV3U25hcHNob3RTdG9yZS5D
b21wcmVzc2lvblF1ZXVlIiwgbnVsbHB0cik7CisjZW5kaWYKIH0KIAogVmlld1NuYXBzaG90U3Rv
cmU6On5WaWV3U25hcHNob3RTdG9yZSgpCiB7CisjaWYgVVNFX0pQRUdfVklFV19TTkFQU0hPVFMK
KyAgICBkaXNwYXRjaF9yZWxlYXNlKG1fY29tcHJlc3Npb25RdWV1ZSk7CisjZW5kaWYKICAgICBk
aXNjYXJkU25hcHNob3RzKCk7CiB9CiAKQEAgLTE1OCw2ICsxNjQsMTAgQEAgdm9pZCBWaWV3U25h
cHNob3RTdG9yZTo6cmVjb3JkU25hcHNob3QoV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHkpCiAK
ICAgICBwcnVuZVNuYXBzaG90cyh3ZWJQYWdlUHJveHkpOwogCisgICAgVmlld1NuYXBzaG90IHNu
YXBzaG90ID0gd2ViUGFnZVByb3h5LnRha2VWaWV3U25hcHNob3QoKTsKKyAgICBpZiAoIXNuYXBz
aG90LmltYWdlKQorICAgICAgICByZXR1cm47CisKICAgICBTdHJpbmcgb2xkU25hcHNob3RVVUlE
ID0gaXRlbS0+c25hcHNob3RVVUlEKCk7CiAgICAgaWYgKCFvbGRTbmFwc2hvdFVVSUQuaXNFbXB0
eSgpKSB7CiAgICAgICAgIGNvbnN0IGF1dG8mIG9sZFNuYXBzaG90SXRlciA9IG1fc25hcHNob3RN
YXAuZmluZChvbGRTbmFwc2hvdFVVSUQpOwpAQCAtMTY3LDE1ICsxNzcsMTYgQEAgdm9pZCBWaWV3
U25hcHNob3RTdG9yZTo6cmVjb3JkU25hcHNob3QoV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHkp
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpdGVtLT5zZXRTbmFwc2hvdFVVSUQoY3JlYXRlQ2Fu
b25pY2FsVVVJRFN0cmluZygpKTsKLQotICAgIFZpZXdTbmFwc2hvdCBzbmFwc2hvdCA9IHdlYlBh
Z2VQcm94eS50YWtlVmlld1NuYXBzaG90KCk7CiAgICAgc25hcHNob3QuY3JlYXRpb25UaW1lID0g
c3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7CiAgICAgc25hcHNob3QucmVuZGVyVHJl
ZVNpemUgPSB3ZWJQYWdlUHJveHkucmVuZGVyVHJlZVNpemUoKTsKICAgICBzbmFwc2hvdC5kZXZp
Y2VTY2FsZUZhY3RvciA9IHdlYlBhZ2VQcm94eS5kZXZpY2VTY2FsZUZhY3RvcigpOwogCisgICAg
aXRlbS0+c2V0U25hcHNob3RVVUlEKGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSk7CisKICAg
ICBtX3NuYXBzaG90TWFwLmFkZChpdGVtLT5zbmFwc2hvdFVVSUQoKSwgc25hcHNob3QpOwogICAg
IG1fc25hcHNob3RDYWNoZVNpemUgKz0gc25hcHNob3QuaW1hZ2VTaXplSW5CeXRlczsKKworICAg
IHJlZHVjZVNuYXBzaG90TWVtb3J5Q29zdChpdGVtLT5zbmFwc2hvdFVVSUQoKSk7CiB9CiAKIGJv
b2wgVmlld1NuYXBzaG90U3RvcmU6OmdldFNuYXBzaG90KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0q
IGl0ZW0sIFZpZXdTbmFwc2hvdCYgc25hcHNob3QpCkBAIC0xOTYsNiArMjA3LDg1IEBAIHZvaWQg
Vmlld1NuYXBzaG90U3RvcmU6OmRpc2NhcmRTbmFwc2hvdHMoKQogICAgICAgICByZW1vdmVTbmFw
c2hvdEltYWdlKHNuYXBzaG90KTsKIH0KIAorI2lmIFVTRV9JT1NVUkZBQ0VfVklFV19TTkFQU0hP
VFMKK3N0YXRpYyBSZWZQdHI8SU9TdXJmYWNlPiBjcmVhdGVJT1N1cmZhY2VGcm9tSW1hZ2UoQ0dJ
bWFnZVJlZiBpbWFnZSkKK3sKKyAgICBzaXplX3Qgd2lkdGggPSBDR0ltYWdlR2V0V2lkdGgoaW1h
Z2UpOworICAgIHNpemVfdCBoZWlnaHQgPSBDR0ltYWdlR2V0SGVpZ2h0KGltYWdlKTsKKworICAg
IFJlZlB0cjxJT1N1cmZhY2U+IHN1cmZhY2UgPSBJT1N1cmZhY2U6OmNyZWF0ZShJbnRTaXplKHdp
ZHRoLCBoZWlnaHQpLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICBSZXRhaW5QdHI8Q0dDb250
ZXh0UmVmPiBzdXJmYWNlQ29udGV4dCA9IHN1cmZhY2UtPmVuc3VyZVBsYXRmb3JtQ29udGV4dCgp
OworICAgIENHQ29udGV4dERyYXdJbWFnZShzdXJmYWNlQ29udGV4dC5nZXQoKSwgQ0dSZWN0TWFr
ZSgwLCAwLCB3aWR0aCwgaGVpZ2h0KSwgaW1hZ2UpOworICAgIENHQ29udGV4dEZsdXNoKHN1cmZh
Y2VDb250ZXh0LmdldCgpKTsKKworICAgIHN1cmZhY2UtPnNldElzVm9sYXRpbGUodHJ1ZSk7CisK
KyAgICByZXR1cm4gc3VyZmFjZTsKK30KKyNlbmRpZgorCisjaWYgVVNFX0pQRUdfVklFV19TTkFQ
U0hPVFMKK3N0YXRpYyBzdGQ6OnBhaXI8UmV0YWluUHRyPENHSW1hZ2VSZWY+LCBzaXplX3Q+IGNv
bXByZXNzSW1hZ2VBc0pQRUcoQ0dJbWFnZVJlZiBpbWFnZSkKK3sKKyAgICBSZXRhaW5QdHI8TlNE
YXRhPiBjb21wcmVzc2VkRGF0YSA9IGFkb3B0TlMoW1tOU011dGFibGVEYXRhIGFsbG9jXSBpbml0
XSk7CisgICAgUmV0YWluUHRyPENHSW1hZ2VEZXN0aW5hdGlvblJlZj4gZGVzdGluYXRpb24gPSBh
ZG9wdENGKENHSW1hZ2VEZXN0aW5hdGlvbkNyZWF0ZVdpdGhEYXRhKChDRk11dGFibGVEYXRhUmVm
KWNvbXByZXNzZWREYXRhLmdldCgpLCBrVVRUeXBlSlBFRywgMSwgMCkpOworCisgICAgUmV0YWlu
UHRyPE5TRGljdGlvbmFyeT4gb3B0aW9ucyA9IEB7CisgICAgICAgIChOU1N0cmluZyopa0NHSW1h
Z2VEZXN0aW5hdGlvbkxvc3N5Q29tcHJlc3Npb25RdWFsaXR5OiBAMC45CisgICAgfTsKKworICAg
IENHSW1hZ2VEZXN0aW5hdGlvbkFkZEltYWdlKGRlc3RpbmF0aW9uLmdldCgpLCBpbWFnZSwgKENG
RGljdGlvbmFyeVJlZilvcHRpb25zLmdldCgpKTsKKyAgICBDR0ltYWdlRGVzdGluYXRpb25GaW5h
bGl6ZShkZXN0aW5hdGlvbi5nZXQoKSk7CisKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZVNvdXJjZVJl
Zj4gaW1hZ2VTb3VyY2VSZWYgPSBhZG9wdENGKENHSW1hZ2VTb3VyY2VDcmVhdGVXaXRoRGF0YSgo
Q0ZEYXRhUmVmKWNvbXByZXNzZWREYXRhLmdldCgpLCAwKSk7CisgICAgUmV0YWluUHRyPENHSW1h
Z2VSZWY+IGNvbXByZXNzZWRTbmFwc2hvdCA9IGFkb3B0Q0YoQ0dJbWFnZVNvdXJjZUNyZWF0ZUlt
YWdlQXRJbmRleChpbWFnZVNvdXJjZVJlZi5nZXQoKSwgMCwgMCkpOworICAgIAorICAgIHJldHVy
biBzdGQ6Om1ha2VfcGFpcihjb21wcmVzc2VkU25hcHNob3QsIFtjb21wcmVzc2VkRGF0YSBsZW5n
dGhdKTsKK30KKyNlbmRpZgorCit2b2lkIFZpZXdTbmFwc2hvdFN0b3JlOjpyZWR1Y2VTbmFwc2hv
dE1lbW9yeUNvc3QoU3RyaW5nIHV1aWQpCit7CisgICAgY29uc3QgYXV0byYgc25hcHNob3RJdGVy
YXRvciA9IG1fc25hcHNob3RNYXAuZmluZCh1dWlkKTsKKyAgICBpZiAoc25hcHNob3RJdGVyYXRv
ciA9PSBtX3NuYXBzaG90TWFwLmVuZCgpKQorICAgICAgICByZXR1cm47CisgICAgVmlld1NuYXBz
aG90JiBzbmFwc2hvdCA9IHNuYXBzaG90SXRlcmF0b3ItPnZhbHVlOworCisgICAgaWYgKCFzbmFw
c2hvdC5pbWFnZSkKKyAgICAgICAgcmV0dXJuOworCisjaWYgVVNFX0lPU1VSRkFDRV9WSUVXX1NO
QVBTSE9UUworICAgIHNuYXBzaG90LnN1cmZhY2UgPSBjcmVhdGVJT1N1cmZhY2VGcm9tSW1hZ2Uo
c25hcHNob3QuaW1hZ2UuZ2V0KCkpOworICAgIHNuYXBzaG90LmltYWdlID0gbnVsbHB0cjsKKyNl
bGlmIFVTRV9KUEVHX1ZJRVdfU05BUFNIT1RTCisgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IG9y
aWdpbmFsSW1hZ2UgPSBzbmFwc2hvdC5pbWFnZS5nZXQoKTsKKyAgICBkaXNwYXRjaF9hc3luYyht
X2NvbXByZXNzaW9uUXVldWUsIFt1dWlkLCBvcmlnaW5hbEltYWdlXSB7CisgICAgICAgIGF1dG8g
aW1hZ2VBbmRCeXRlcyA9IGNvbXByZXNzSW1hZ2VBc0pQRUcob3JpZ2luYWxJbWFnZS5nZXQoKSk7
CisgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFt1dWlk
LCBpbWFnZUFuZEJ5dGVzXSB7CisgICAgICAgICAgICBWaWV3U25hcHNob3RTdG9yZTo6c2hhcmVk
KCkuZGlkQ29tcHJlc3NTbmFwc2hvdCh1dWlkLCBpbWFnZUFuZEJ5dGVzLmZpcnN0LCBpbWFnZUFu
ZEJ5dGVzLnNlY29uZCk7CisgICAgICAgIH0pOworICAgIH0pOworI2VuZGlmCit9CisKKyNpZiBV
U0VfSlBFR19WSUVXX1NOQVBTSE9UUwordm9pZCBWaWV3U25hcHNob3RTdG9yZTo6ZGlkQ29tcHJl
c3NTbmFwc2hvdChTdHJpbmcgdXVpZCwgUmV0YWluUHRyPENHSW1hZ2VSZWY+IG5ld0ltYWdlLCBz
aXplX3QgbmV3SW1hZ2VTaXplKQoreworICAgIGNvbnN0IGF1dG8mIHNuYXBzaG90SXRlcmF0b3Ig
PSBtX3NuYXBzaG90TWFwLmZpbmQodXVpZCk7CisgICAgaWYgKHNuYXBzaG90SXRlcmF0b3IgPT0g
bV9zbmFwc2hvdE1hcC5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworICAgIFZpZXdTbmFwc2hvdCYg
c25hcHNob3QgPSBzbmFwc2hvdEl0ZXJhdG9yLT52YWx1ZTsKKworICAgIHNpemVfdCBvcmlnaW5h
bEltYWdlU2l6ZSA9IHNuYXBzaG90LmltYWdlU2l6ZUluQnl0ZXM7CisgICAgaWYgKCFuZXdJbWFn
ZSB8fCBuZXdJbWFnZVNpemUgPiBvcmlnaW5hbEltYWdlU2l6ZSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIHNuYXBzaG90LmltYWdlID0gbmV3SW1hZ2U7CisgICAgc25hcHNob3QuaW1hZ2VTaXplSW5C
eXRlcyA9IG5ld0ltYWdlU2l6ZTsKKyAgICBtX3NuYXBzaG90Q2FjaGVTaXplICs9IG5ld0ltYWdl
U2l6ZTsKKyAgICBtX3NuYXBzaG90Q2FjaGVTaXplIC09IG9yaWdpbmFsSW1hZ2VTaXplOworfQor
I2VuZGlmCisKIGJvb2wgVmlld1NuYXBzaG90OjpoYXNJbWFnZSgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIGltYWdlU2l6ZUluQnl0ZXM7CkBAIC0yMDMsOSArMjkzLDEzIEBAIGJvb2wgVmlld1NuYXBz
aG90OjpoYXNJbWFnZSgpIGNvbnN0CiAKIHZvaWQgVmlld1NuYXBzaG90OjpjbGVhckltYWdlKCkK
IHsKLSNpZiBQTEFURk9STShNQUMpCisjaWYgVVNFX0lPU1VSRkFDRV9WSUVXX1NOQVBTSE9UUwog
ICAgIHN1cmZhY2UgPSBudWxscHRyOwotI2VsaWYgUExBVEZPUk0oSU9TKQorI2VuZGlmCisjaWYg
VVNFX0lPU1VSRkFDRV9WSUVXX1NOQVBTSE9UUyB8fCBVU0VfSlBFR19WSUVXX1NOQVBTSE9UUwor
ICAgIGltYWdlID0gbnVsbHB0cjsKKyNlbmRpZgorI2lmIFVTRV9SRU5ERVJfU0VSVkVSX1ZJRVdf
U05BUFNIT1RTCiAgICAgaWYgKHNsb3RJRCkKICAgICAgICAgW1ZpZXdTbmFwc2hvdFN0b3JlOjpz
bmFwc2hvdHRpbmdDb250ZXh0KCkgZGVsZXRlU2xvdDpzbG90SURdOwogICAgIHNsb3RJRCA9IDA7
CkBAIC0yMTMsNCArMzA3LDIyIEBAIHZvaWQgVmlld1NuYXBzaG90OjpjbGVhckltYWdlKCkKICAg
ICBpbWFnZVNpemVJbkJ5dGVzID0gMDsKIH0KIAoraWQgVmlld1NuYXBzaG90Ojphc0xheWVyQ29u
dGVudHMoKQoreworI2lmIFVTRV9JT1NVUkZBQ0VfVklFV19TTkFQU0hPVFMKKyAgICBpZiAoc3Vy
ZmFjZSkgeworICAgICAgICBpZiAoc3VyZmFjZS0+c2V0SXNWb2xhdGlsZShmYWxzZSkgIT0gSU9T
dXJmYWNlOjpTdXJmYWNlU3RhdGU6OlZhbGlkKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICAgICAgcmV0dXJuIChpZClzdXJmYWNlLT5zdXJmYWNlKCk7CisgICAgfQorI2VuZGlm
CisjaWYgVVNFX0lPU1VSRkFDRV9WSUVXX1NOQVBTSE9UUyB8fCBVU0VfSlBFR19WSUVXX1NOQVBT
SE9UUworICAgIHJldHVybiAoaWQpaW1hZ2UuZ2V0KCk7CisjZW5kaWYKKyNpZiBVU0VfUkVOREVS
X1NFUlZFUl9WSUVXX1NOQVBTSE9UUworICAgIHJldHVybiBbQ0FDb250ZXh0IG9iamVjdEZvclNs
b3Q6c2xvdElEXTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231361</attachid>
            <date>2014-05-12 22:12:29 -0700</date>
            <delta_ts>2014-05-13 11:03:17 -0700</delta_ts>
            <desc>fix the iOS build</desc>
            <filename>snapshot-jpeg.diff</filename>
            <type>text/plain</type>
            <size>19397</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBjZWMwOTNhLi5lNTg1YTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQg
QEAKKzIwMTQtMDUtMTIgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgV2ViS2l0MiBWaWV3IEdlc3R1cmVzIChTd2lwZSk6IEVuY29kZSBzbmFwc2hvdHMg
YXMgSlBFRyBvbiBzb21lIHBsYXRmb3JtcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI3Nzg4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNTkyODI0
MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGxv
dyBKUEVHIHNuYXBzaG90cy4gQ29tcHJlc3Npb24gaXMgZG9uZSBhc3luY2hyb25vdXNseS4KKyAg
ICAgICAgRW5hYmxlIEpQRUcgc25hcHNob3RzIChmb3Igbm93KSBvbiBhbGwgUExBVEZPUk0oTUFD
KS4KKyAgICAgICAgV2UnbGwgc3dpdGNoIGJhY2sgdG8gSU9TdXJmYWNlIHNuYXBzaG90cyBvbiAx
MC45KyBhZnRlciA8cmRhcjovL3Byb2JsZW0vMTY3MzQwMzE+IGlzIHJlc29sdmVkLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgX3Rha2VWaWV3U25hcHNo
b3RdKToKKyAgICAgICAgU3RvcmUgdGhlIGltYWdlIHNpemUgb24gdGhlIFZpZXdTbmFwc2hvdC4K
KyAgICAgICAgTW92ZSBJT1N1cmZhY2UtcmVsYXRlZCBjb2RlIHRvIFZpZXdTbmFwc2hvdFN0b3Jl
LgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW06
CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlcjo6YmVnaW5Td2lwZUdlc3R1
cmUpOgorICAgICAgICBBZG9wdCBhc0xheWVyQ29udGVudHMoKS4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0
dXJlQ29udHJvbGxlcjo6cmV0cmlldmVTbmFwc2hvdEZvckl0ZW0pOgorICAgICAgICAoV2ViS2l0
OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmJlZ2luU3dpcGVHZXN0dXJlKToKKyAgICAgICAgKFdl
YktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpyZW1vdmVTd2lwZVNuYXBzaG90KToKKyAgICAg
ICAgQWRvcHQgYXNMYXllckNvbnRlbnRzKCkuCisgICAgICAgIFB1dCB0aGUgc25hcHNob3Qgb24g
dGhlIHJpZ2h0IGxheWVyICh0aGUgcGFyZW50IG9mIHRoZSBzbmFwc2hvdCBpbWFnZSBsYXllcik7
CisgICAgICAgIGlmIGl0J3Mgb24gdGhlIHNuYXBzaG90IGltYWdlIGxheWVyIGl0c2VsZiwgaWYg
dGhlcmUgaXMgbm8gaW1hZ2UsIHRoZSBzaGFkb3cKKyAgICAgICAgaXMgZGlzcGxheWVkIG9uIHRv
cCBvZiB0aGUgd2hpdGUgcGxhY2Vob2xkZXIuCisgICAgICAgIE9ubHkgcmVzZXQgc25hcHNob3Qg
cHVyZ2VhYmlsaXR5IGlmIHdlJ3JlIHVzaW5nIElPU3VyZmFjZSBzbmFwc2hvdHMuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLmg6CisgICAgICAgIEFkZCBhIGJ1
bmNoIG9mIG1hY3JvcyB0byBhbGxvdyB1cyB0byBzd2l0Y2ggdGhlIHNuYXBzaG90IGJhY2tpbmcg
c3RvcmUgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdTbmFw
c2hvdFN0b3JlLm1tOgorICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3RTdG9yZTo6Vmlld1Nu
YXBzaG90U3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3RTdG9yZTo6flZpZXdT
bmFwc2hvdFN0b3JlKToKKyAgICAgICAgKFdlYktpdDo6Vmlld1NuYXBzaG90U3RvcmU6OnJlY29y
ZFNuYXBzaG90KToKKyAgICAgICAgSWYgdGFrZVZpZXdTbmFwc2hvdCgpIGZhaWxzLCBkb24ndCBy
ZW1vdmUgdGhlIGV4aXN0aW5nIHNuYXBzaG90LgorCisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZUlP
U3VyZmFjZUZyb21JbWFnZSk6CisgICAgICAgIChXZWJLaXQ6OmNvbXByZXNzSW1hZ2VBc0pQRUcp
OgorICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3RTdG9yZTo6cmVkdWNlU25hcHNob3RNZW1v
cnlDb3N0KToKKyAgICAgICAgKFdlYktpdDo6Vmlld1NuYXBzaG90U3RvcmU6OmRpZENvbXByZXNz
U25hcHNob3QpOgorICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3Q6OmNsZWFySW1hZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3Q6OmFzTGF5ZXJDb250ZW50cyk6CisgICAgICAg
IEFzeW5jaHJvbm91c2x5IGNvbXByZXNzIHNuYXBzaG90cyAtIGlmIHdlJ3JlIHVzaW5nIEpQRUcg
c25hcHNob3RzIC0gZm9yIGEKKyAgICAgICAgdmVyeSBsYXJnZSBtZW1vcnkgd2luICh+MjAtMzB4
KS4KKwogMjAxNC0wNS0xMiAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIEVGTCBidWlsZCBmaXggc2luY2UgcjE2ODYyNS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXgg
YmI0OWI4Yi4uMzg5ZTk0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KQEAgLTUxMSw2ICs1MTEsNyBAQCBzdGF0aWMgQ0dGbG9hdCBjb250
ZW50Wm9vbVNjYWxlKFdLV2ViVmlldyogd2ViVmlldykKICAgICBDQVRyYW5zZm9ybTNEIHRyYW5z
Zm9ybSA9IENBVHJhbnNmb3JtM0RNYWtlU2NhbGUoZGV2aWNlU2NhbGUsIGRldmljZVNjYWxlLCAx
KTsKICAgICBDQVJlbmRlclNlcnZlckNhcHR1cmVMYXllcldpdGhUcmFuc2Zvcm0oTUFDSF9QT1JU
X05VTEwsIHNlbGYubGF5ZXIuY29udGV4dC5jb250ZXh0SWQsICh1aW50NjRfdClzZWxmLmxheWVy
LCBzbmFwc2hvdC5zbG90SUQsIDAsIDAsICZ0cmFuc2Zvcm0pOwogCisgICAgc25hcHNob3Quc2l6
ZSA9IFdlYkNvcmU6OmV4cGFuZGVkSW50U2l6ZShXZWJDb3JlOjpGbG9hdFNpemUoc25hcHNob3RT
aXplKSk7CiAgICAgc25hcHNob3QuaW1hZ2VTaXplSW5CeXRlcyA9IHNuYXBzaG90U2l6ZS53aWR0
aCAqIHNuYXBzaG90U2l6ZS5oZWlnaHQgKiA0OwogCiAgICAgcmV0dXJuIHNuYXBzaG90OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGI0MTZmMzcuLjFi
ZDM3OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAg
LTMwNDAsMTkgKzMwNDAsNiBAQCBzdGF0aWMgdm9pZCBjcmVhdGVTYW5kYm94RXh0ZW5zaW9uc0Zv
ckZpbGVVcGxvYWQoTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkLCBTYW5kYgogICAgIHJldHVybiBf
ZGF0YS0+X3Jvb3RMYXllci5nZXQoKTsKIH0KIAotc3RhdGljIFJlZlB0cjxJT1N1cmZhY2U+IGNy
ZWF0ZUlPU3VyZmFjZUZyb21JbWFnZShDR0ltYWdlUmVmIGltYWdlKQotewotICAgIHNpemVfdCB3
aWR0aCA9IENHSW1hZ2VHZXRXaWR0aChpbWFnZSk7Ci0gICAgc2l6ZV90IGhlaWdodCA9IENHSW1h
Z2VHZXRIZWlnaHQoaW1hZ2UpOwotCi0gICAgUmVmUHRyPElPU3VyZmFjZT4gc3VyZmFjZSA9IElP
U3VyZmFjZTo6Y3JlYXRlKEludFNpemUod2lkdGgsIGhlaWdodCksIENvbG9yU3BhY2VEZXZpY2VS
R0IpOwotICAgIFJldGFpblB0cjxDR0NvbnRleHRSZWY+IHN1cmZhY2VDb250ZXh0ID0gc3VyZmFj
ZS0+ZW5zdXJlUGxhdGZvcm1Db250ZXh0KCk7Ci0gICAgQ0dDb250ZXh0RHJhd0ltYWdlKHN1cmZh
Y2VDb250ZXh0LmdldCgpLCBDR1JlY3RNYWtlKDAsIDAsIHdpZHRoLCBoZWlnaHQpLCBpbWFnZSk7
Ci0gICAgQ0dDb250ZXh0Rmx1c2goc3VyZmFjZUNvbnRleHQuZ2V0KCkpOwotCi0gICAgcmV0dXJu
IHN1cmZhY2U7Ci19Ci0KIC0gKFZpZXdTbmFwc2hvdClfdGFrZVZpZXdTbmFwc2hvdAogewogICAg
IE5TV2luZG93ICp3aW5kb3cgPSBzZWxmLndpbmRvdzsKQEAgLTMwOTEsOCArMzA3OCwxMiBAQCBz
dGF0aWMgUmVmUHRyPElPU3VyZmFjZT4gY3JlYXRlSU9TdXJmYWNlRnJvbUltYWdlKENHSW1hZ2VS
ZWYgaW1hZ2UpCiAKICAgICBhdXRvIGNyb3BwZWRTbmFwc2hvdEltYWdlID0gYWRvcHRDRihDR0lt
YWdlQ3JlYXRlV2l0aEltYWdlSW5SZWN0KHdpbmRvd1NuYXBzaG90SW1hZ2UuZ2V0KCksIE5TUmVj
dFRvQ0dSZWN0KFt3aW5kb3cgY29udmVydFJlY3RUb0JhY2tpbmc6Y3JvcHBlZEltYWdlUmVjdF0p
KSk7CiAKLSAgICBzbmFwc2hvdC5zdXJmYWNlID0gY3JlYXRlSU9TdXJmYWNlRnJvbUltYWdlKGNy
b3BwZWRTbmFwc2hvdEltYWdlLmdldCgpKTsKLSAgICBzbmFwc2hvdC5pbWFnZVNpemVJbkJ5dGVz
ID0gc25hcHNob3Quc3VyZmFjZS0+dG90YWxCeXRlcygpOworICAgIHNuYXBzaG90LmltYWdlID0g
Y3JvcHBlZFNuYXBzaG90SW1hZ2UuZ2V0KCk7CisKKyAgICBJbnRTaXplIGltYWdlU2l6ZShDR0lt
YWdlR2V0V2lkdGgoY3JvcHBlZFNuYXBzaG90SW1hZ2UuZ2V0KCkpLCBDR0ltYWdlR2V0SGVpZ2h0
KGNyb3BwZWRTbmFwc2hvdEltYWdlLmdldCgpKSk7CisgICAgc25hcHNob3Quc2l6ZSA9IGltYWdl
U2l6ZTsKKyAgICBzbmFwc2hvdC5pbWFnZVNpemVJbkJ5dGVzID0gaW1hZ2VTaXplLndpZHRoKCkg
KiBpbWFnZVNpemUuaGVpZ2h0KCkgKiA0OworCiAgICAgcmV0dXJuIHNuYXBzaG90OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJv
bGxlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250
cm9sbGVySU9TLm1tCmluZGV4IGY1ODk4OWEuLjZkYzk2NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCkBA
IC0xNTgsNyArMTU4LDcgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmJlZ2luU3dpcGVH
ZXN0dXJlKF9VSU5hdmlnYXRpb25JbnRlcmFjdGl2ZVRyYW5zaXRpb24KIAogICAgIFZpZXdTbmFw
c2hvdCBzbmFwc2hvdDsKICAgICBpZiAoVmlld1NuYXBzaG90U3RvcmU6OnNoYXJlZCgpLmdldFNu
YXBzaG90KHRhcmdldEl0ZW0sIHNuYXBzaG90KSAmJiBzbmFwc2hvdC5oYXNJbWFnZSgpKQotICAg
ICAgICBbbV9zbmFwc2hvdFZpZXcgbGF5ZXJdLmNvbnRlbnRzID0gW0NBQ29udGV4dCBvYmplY3RG
b3JTbG90OnNuYXBzaG90LnNsb3RJRF07CisgICAgICAgIFttX3NuYXBzaG90VmlldyBsYXllcl0u
Y29udGVudHMgPSBzbmFwc2hvdC5hc0xheWVyQ29udGVudHMoKTsKIAogICAgIFttX3NuYXBzaG90
VmlldyBzZXRCYWNrZ3JvdW5kQ29sb3I6W1VJQ29sb3Igd2hpdGVDb2xvcl1dOwogICAgIFttX3Nu
YXBzaG90VmlldyBsYXllcl0uY29udGVudHNHcmF2aXR5ID0ga0NBR3Jhdml0eVRvcExlZnQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJv
bGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xs
ZXIuaAppbmRleCBjZDllZGY0Li5kY2IwNTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyLmgKQEAgLTUwLDYgKzUwLDcgQEAg
Y2xhc3MgSU9TdXJmYWNlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorc3RydWN0IFZpZXdTbmFw
c2hvdDsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CiBjbGFzcyBXZWJQYWdlUHJveHk7
CiAKQEAgLTEzMSw3ICsxMzIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZW5kU3dpcGVHZXN0dXJl
KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIHRhcmdldEl0ZW0sIGJvb2wgY2FuY2VsbGVkKTsKICAg
ICBib29sIGRlbHRhSXNTdWZmaWNpZW50VG9CZWdpblN3aXBlKE5TRXZlbnQgKik7CiAgICAgYm9v
bCBzY3JvbGxFdmVudENhbkJlY29tZVN3aXBlKE5TRXZlbnQgKiwgU3dpcGVEaXJlY3Rpb24mKTsK
LSAgICBXZWJDb3JlOjpJT1N1cmZhY2UqIHJldHJpZXZlU25hcHNob3RGb3JJdGVtKFdlYkJhY2tG
b3J3YXJkTGlzdEl0ZW0qLCBXZWJDb3JlOjpGbG9hdFNpemUgc3dpcGVMYXllclNpemUsIGZsb2F0
IHRvcENvbnRlbnRJbnNldCk7CisgICAgYm9vbCByZXRyaWV2ZVNuYXBzaG90Rm9ySXRlbShXZWJC
YWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtLCBXZWJDb3JlOjpGbG9hdFNpemUgc3dpcGVM
YXllclNpemUsIGZsb2F0IHRvcENvbnRlbnRJbnNldCwgVmlld1NuYXBzaG90Jik7CiAKICAgICBD
QUxheWVyICpkZXRlcm1pbmVTbmFwc2hvdExheWVyUGFyZW50KCkgY29uc3Q7CiAgICAgQ0FMYXll
ciAqZGV0ZXJtaW5lTGF5ZXJBZGphY2VudFRvU25hcHNob3RGb3JQYXJlbnQoU3dpcGVEaXJlY3Rp
b24sIENBTGF5ZXIgKnNuYXBzaG90TGF5ZXJQYXJlbnQpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbQpp
bmRleCBkN2ZhYzgyLi45YTZiODQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbQpAQCAtNDUxLDI4ICs0NTEs
MjEgQEAgQ0FMYXllciAqVmlld0dlc3R1cmVDb250cm9sbGVyOjpkZXRlcm1pbmVMYXllckFkamFj
ZW50VG9TbmFwc2hvdEZvclBhcmVudChTd2lwZUQKICAgICByZXR1cm4gbGF5ZXJBZGphY2VudFRv
U25hcHNob3Q7CiB9CiAKLUlPU3VyZmFjZSogVmlld0dlc3R1cmVDb250cm9sbGVyOjpyZXRyaWV2
ZVNuYXBzaG90Rm9ySXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtLCBGbG9h
dFNpemUgc3dpcGVMYXllclNpemUsIGZsb2F0IHRvcENvbnRlbnRJbnNldCkKK2Jvb2wgVmlld0dl
c3R1cmVDb250cm9sbGVyOjpyZXRyaWV2ZVNuYXBzaG90Rm9ySXRlbShXZWJCYWNrRm9yd2FyZExp
c3RJdGVtKiB0YXJnZXRJdGVtLCBGbG9hdFNpemUgc3dpcGVMYXllclNpemUsIGZsb2F0IHRvcENv
bnRlbnRJbnNldCwgVmlld1NuYXBzaG90JiBzbmFwc2hvdCkKIHsKLSAgICBWaWV3U25hcHNob3Qg
c25hcHNob3Q7CiAgICAgaWYgKCFWaWV3U25hcHNob3RTdG9yZTo6c2hhcmVkKCkuZ2V0U25hcHNo
b3QodGFyZ2V0SXRlbSwgc25hcHNob3QpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAg
IGlmICghc25hcHNob3Quc3VyZmFjZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gbV93ZWJQYWdl
UHJveHkuZGV2aWNlU2NhbGVGYWN0b3IoKTsKICAgICBpZiAoc25hcHNob3QuZGV2aWNlU2NhbGVG
YWN0b3IgIT0gZGV2aWNlU2NhbGVGYWN0b3IpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBGbG9hdFNpemUgdW5vYnNjdXJlZFN3aXBlTGF5ZXJT
aXplSW5EZXZpY2VDb29yZGluYXRlcyA9IHN3aXBlTGF5ZXJTaXplIC0gRmxvYXRTaXplKDAsIHRv
cENvbnRlbnRJbnNldCk7CiAgICAgdW5vYnNjdXJlZFN3aXBlTGF5ZXJTaXplSW5EZXZpY2VDb29y
ZGluYXRlcy5zY2FsZShkZXZpY2VTY2FsZUZhY3Rvcik7Ci0gICAgaWYgKHNuYXBzaG90LnN1cmZh
Y2UtPnNpemUoKSAhPSB1bm9ic2N1cmVkU3dpcGVMYXllclNpemVJbkRldmljZUNvb3JkaW5hdGVz
KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIGlmIChzbmFwc2hvdC5zdXJmYWNlLT5z
ZXRJc1ZvbGF0aWxlKGZhbHNlKSAhPSBJT1N1cmZhY2U6OlN1cmZhY2VTdGF0ZTo6VmFsaWQpCi0g
ICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmIChzbmFwc2hvdC5zaXplICE9IHVub2JzY3Vy
ZWRTd2lwZUxheWVyU2l6ZUluRGV2aWNlQ29vcmRpbmF0ZXMpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIHJldHVybiBzbmFwc2hvdC5zdXJmYWNlLmdldCgpOworICAgIHJldHVybiB0cnVl
OwogfQogCiBzdGF0aWMgYm9vbCBsYXllckdlb21ldHJ5RmxpcHBlZFRvUm9vdChDQUxheWVyICps
YXllcikKQEAgLTUzNSwxMCArNTI4LDEyIEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpi
ZWdpblN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtCiAgICAg
Q0FMYXllciAqc25hcHNob3RMYXllclBhcmVudCA9IGRldGVybWluZVNuYXBzaG90TGF5ZXJQYXJl
bnQoKTsKICAgICBib29sIGdlb21ldHJ5SXNGbGlwcGVkVG9Sb290ID0gbGF5ZXJHZW9tZXRyeUZs
aXBwZWRUb1Jvb3Qoc25hcHNob3RMYXllclBhcmVudCk7CiAKLSAgICBJT1N1cmZhY2UqIHNuYXBz
aG90ID0gcmV0cmlldmVTbmFwc2hvdEZvckl0ZW0odGFyZ2V0SXRlbSwgc3dpcGVBcmVhLnNpemUo
KSwgdG9wQ29udGVudEluc2V0KTsKLSAgICBpZiAoc25hcHNob3QpIHsKLSAgICAgICAgbV9jdXJy
ZW50U3dpcGVTbmFwc2hvdFN1cmZhY2UgPSBzbmFwc2hvdDsKLSAgICAgICAgW21fc3dpcGVTbmFw
c2hvdExheWVyIHNldENvbnRlbnRzOihpZClzbmFwc2hvdC0+c3VyZmFjZSgpXTsKKyAgICBWaWV3
U25hcHNob3Qgc25hcHNob3Q7CisgICAgaWYgKHJldHJpZXZlU25hcHNob3RGb3JJdGVtKHRhcmdl
dEl0ZW0sIHN3aXBlQXJlYS5zaXplKCksIHRvcENvbnRlbnRJbnNldCwgc25hcHNob3QpKSB7Cisg
ICAgICAgIFttX3N3aXBlU25hcHNob3RMYXllciBzZXRDb250ZW50czpzbmFwc2hvdC5hc0xheWVy
Q29udGVudHMoKV07CisjaWYgVVNFX0lPU1VSRkFDRV9WSUVXX1NOQVBTSE9UUworICAgICAgICBt
X2N1cnJlbnRTd2lwZVNuYXBzaG90U3VyZmFjZSA9IHNuYXBzaG90LnN1cmZhY2U7CisjZW5kaWYK
ICAgICB9CiAKICAgICBbbV9zd2lwZUxheWVyIHNldEJhY2tncm91bmRDb2xvcjpDR0NvbG9yR2V0
Q29uc3RhbnRDb2xvcihrQ0dDb2xvcldoaXRlKV07CkBAIC01NzEsMTEgKzU2NiwxMSBAQCB2b2lk
IFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6YmVnaW5Td2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRM
aXN0SXRlbSogdGFyZ2V0SXRlbQogICAgICAgICAgICAgW3Jvb3RDb250ZW50TGF5ZXIgc2V0U2hh
ZG93UmFkaXVzOnN3aXBlT3ZlcmxheVNoYWRvd1JhZGl1c107CiAgICAgICAgICAgICBbcm9vdENv
bnRlbnRMYXllciBzZXRTaGFkb3dQYXRoOnNoYWRvd1BhdGguZ2V0KCldOwogICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgUmV0YWluUHRyPENHUGF0aFJlZj4gc2hhZG93UGF0aCA9IGFkb3B0
Q0YoQ0dQYXRoQ3JlYXRlV2l0aFJlY3QoW21fc3dpcGVTbmFwc2hvdExheWVyIGJvdW5kc10sIDAp
KTsKLSAgICAgICAgICAgIFttX3N3aXBlU25hcHNob3RMYXllciBzZXRTaGFkb3dDb2xvcjpDR0Nv
bG9yR2V0Q29uc3RhbnRDb2xvcihrQ0dDb2xvckJsYWNrKV07Ci0gICAgICAgICAgICBbbV9zd2lw
ZVNuYXBzaG90TGF5ZXIgc2V0U2hhZG93T3BhY2l0eTpzd2lwZU92ZXJsYXlTaGFkb3dPcGFjaXR5
XTsKLSAgICAgICAgICAgIFttX3N3aXBlU25hcHNob3RMYXllciBzZXRTaGFkb3dSYWRpdXM6c3dp
cGVPdmVybGF5U2hhZG93UmFkaXVzXTsKLSAgICAgICAgICAgIFttX3N3aXBlU25hcHNob3RMYXll
ciBzZXRTaGFkb3dQYXRoOnNoYWRvd1BhdGguZ2V0KCldOworICAgICAgICAgICAgUmV0YWluUHRy
PENHUGF0aFJlZj4gc2hhZG93UGF0aCA9IGFkb3B0Q0YoQ0dQYXRoQ3JlYXRlV2l0aFJlY3QoW21f
c3dpcGVMYXllciBib3VuZHNdLCAwKSk7CisgICAgICAgICAgICBbbV9zd2lwZUxheWVyIHNldFNo
YWRvd0NvbG9yOkNHQ29sb3JHZXRDb25zdGFudENvbG9yKGtDR0NvbG9yQmxhY2spXTsKKyAgICAg
ICAgICAgIFttX3N3aXBlTGF5ZXIgc2V0U2hhZG93T3BhY2l0eTpzd2lwZU92ZXJsYXlTaGFkb3dP
cGFjaXR5XTsKKyAgICAgICAgICAgIFttX3N3aXBlTGF5ZXIgc2V0U2hhZG93UmFkaXVzOnN3aXBl
T3ZlcmxheVNoYWRvd1JhZGl1c107CisgICAgICAgICAgICBbbV9zd2lwZUxheWVyIHNldFNoYWRv
d1BhdGg6c2hhZG93UGF0aC5nZXQoKV07CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTY3MSw5ICs2
NjYsMTEgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OnJlbW92ZVN3aXBlU25hcHNob3Qo
KQogICAgIGlmIChtX2FjdGl2ZUdlc3R1cmVUeXBlICE9IFZpZXdHZXN0dXJlVHlwZTo6U3dpcGUp
CiAgICAgICAgIHJldHVybjsKIAorI2lmIFVTRV9JT1NVUkZBQ0VfVklFV19TTkFQU0hPVFMKICAg
ICBpZiAobV9jdXJyZW50U3dpcGVTbmFwc2hvdFN1cmZhY2UpCiAgICAgICAgIG1fY3VycmVudFN3
aXBlU25hcHNob3RTdXJmYWNlLT5zZXRJc1ZvbGF0aWxlKHRydWUpOwogICAgIG1fY3VycmVudFN3
aXBlU25hcHNob3RTdXJmYWNlID0gbnVsbHB0cjsKKyNlbmRpZgogCiAgICAgZm9yIChjb25zdCBh
dXRvJiBsYXllciA6IG1fY3VycmVudFN3aXBlTGl2ZUxheWVycykKICAgICAgICAgW2xheWVyIHNl
dFRyYW5zZm9ybTpDQVRyYW5zZm9ybTNESWRlbnRpdHldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5oCmluZGV4IDc4NGQ0MmUuLjllNTM4MjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3Jl
LmgKQEAgLTM1LDI2ICszNSw0MCBAQAogCiBPQkpDX0NMQVNTIENBQ29udGV4dDsKIAorLy8gRklY
TUU6IEVuYWJsZSBJT1N1cmZhY2Ugc25hcHNob3RzIGZvciAxMC45KyB3aGVuIDxyZGFyOi8vcHJv
YmxlbS8xNjczNDAzMT4gaXMgcmVzb2x2ZWQuCisjaWYgUExBVEZPUk0oTUFDKQorI2RlZmluZSBV
U0VfSlBFR19WSUVXX1NOQVBTSE9UUyB0cnVlCisjZGVmaW5lIFVTRV9JT1NVUkZBQ0VfVklFV19T
TkFQU0hPVFMgZmFsc2UKKyNkZWZpbmUgVVNFX1JFTkRFUl9TRVJWRVJfVklFV19TTkFQU0hPVFMg
ZmFsc2UKKyNlbHNlCisjZGVmaW5lIFVTRV9KUEVHX1ZJRVdfU05BUFNIT1RTIGZhbHNlCisjZGVm
aW5lIFVTRV9JT1NVUkZBQ0VfVklFV19TTkFQU0hPVFMgZmFsc2UKKyNkZWZpbmUgVVNFX1JFTkRF
Ul9TRVJWRVJfVklFV19TTkFQU0hPVFMgdHJ1ZQorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3RJdGVtOwogY2xhc3MgV2ViUGFnZVByb3h5Owog
CiBzdHJ1Y3QgVmlld1NuYXBzaG90IHsKLSNpZiBQTEFURk9STShNQUMpCisjaWYgVVNFX0pQRUdf
VklFV19TTkFQU0hPVFMgfHwgVVNFX0lPU1VSRkFDRV9WSUVXX1NOQVBTSE9UUwogICAgIFJlZlB0
cjxXZWJDb3JlOjpJT1N1cmZhY2U+IHN1cmZhY2U7CisgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+
IGltYWdlOwogI2VuZGlmCi0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFVTRV9SRU5ERVJfU0VSVkVS
X1ZJRVdfU05BUFNIT1RTCiAgICAgdWludDMyX3Qgc2xvdElEID0gMDsKICNlbmRpZgogCiAgICAg
c3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCBjcmVhdGlvblRpbWU7CiAgICAg
dWludDY0X3QgcmVuZGVyVHJlZVNpemU7CiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3I7Cisg
ICAgV2ViQ29yZTo6SW50U2l6ZSBzaXplOwogICAgIHNpemVfdCBpbWFnZVNpemVJbkJ5dGVzID0g
MDsKIAogICAgIHZvaWQgY2xlYXJJbWFnZSgpOwogICAgIGJvb2wgaGFzSW1hZ2UoKSBjb25zdDsK
KyAgICBpZCBhc0xheWVyQ29udGVudHMoKTsKIH07CiAKIGNsYXNzIFZpZXdTbmFwc2hvdFN0b3Jl
IHsKQEAgLTgwLDYgKzk0LDEyIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBwcnVuZVNu
YXBzaG90cyhXZWJQYWdlUHJveHkmKTsKICAgICB2b2lkIHJlbW92ZVNuYXBzaG90SW1hZ2UoVmll
d1NuYXBzaG90Jik7CisgICAgdm9pZCByZWR1Y2VTbmFwc2hvdE1lbW9yeUNvc3QoU3RyaW5nIHV1
aWQpOworCisjaWYgVVNFX0pQRUdfVklFV19TTkFQU0hPVFMKKyAgICB2b2lkIGRpZENvbXByZXNz
U25hcHNob3QoU3RyaW5nIHV1aWQsIFJldGFpblB0cjxDR0ltYWdlUmVmPiBuZXdJbWFnZSwgc2l6
ZV90IG5ld0ltYWdlU2l6ZSk7CisgICAgZGlzcGF0Y2hfcXVldWVfdCBtX2NvbXByZXNzaW9uUXVl
dWU7CisjZW5kaWYKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBWaWV3U25hcHNob3Q+IG1fc25hcHNo
b3RNYXA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld1Nu
YXBzaG90U3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hv
dFN0b3JlLm1tCmluZGV4IDI3MWE3MDcuLjQ4YjM0YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5tbQpAQCAtMzgsMTAgKzM4LDEwIEBA
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFVT
RV9JT1NVUkZBQ0VfVklFV19TTkFQU0hPVFMKIHN0YXRpYyBjb25zdCBzaXplX3QgbWF4aW11bVNu
YXBzaG90Q2FjaGVTaXplID0gNDAwICogKDEwMjQgKiAxMDI0KTsKLSNlbGlmIFBMQVRGT1JNKElP
UykKLS8vIEJlY2F1c2Ugc25hcHNob3RzIGFyZSBub3QgcHVyZ2VhYmxlLCB3ZSBzaG91bGQga2Vl
cCBmZXdlciBhcm91bmQuCisjZWxpZiBVU0VfSlBFR19WSUVXX1NOQVBTSE9UUyB8fCBVU0VfUkVO
REVSX1NFUlZFUl9WSUVXX1NOQVBTSE9UUworLy8gQmVjYXVzZSBub24tSU9TdXJmYWNlIHNuYXBz
aG90cyBhcmUgbm90IHB1cmdlYWJsZSwgd2Ugc2hvdWxkIGtlZXAgZmV3ZXIgYXJvdW5kLgogc3Rh
dGljIGNvbnN0IHNpemVfdCBtYXhpbXVtU25hcHNob3RDYWNoZVNpemUgPSA1MCAqICgxMDI0ICog
MTAyNCk7CiAjZW5kaWYKIApAQCAtNTEsMTAgKzUxLDE2IEBAIFZpZXdTbmFwc2hvdFN0b3JlOjpW
aWV3U25hcHNob3RTdG9yZSgpCiAgICAgOiBtX2VuYWJsZWQodHJ1ZSkKICAgICAsIG1fc25hcHNo
b3RDYWNoZVNpemUoMCkKIHsKKyNpZiBVU0VfSlBFR19WSUVXX1NOQVBTSE9UUworICAgIG1fY29t
cHJlc3Npb25RdWV1ZSA9IGRpc3BhdGNoX3F1ZXVlX2NyZWF0ZSgiY29tLmFwcGxlLldlYktpdC5W
aWV3U25hcHNob3RTdG9yZS5Db21wcmVzc2lvblF1ZXVlIiwgbnVsbHB0cik7CisjZW5kaWYKIH0K
IAogVmlld1NuYXBzaG90U3RvcmU6On5WaWV3U25hcHNob3RTdG9yZSgpCiB7CisjaWYgVVNFX0pQ
RUdfVklFV19TTkFQU0hPVFMKKyAgICBkaXNwYXRjaF9yZWxlYXNlKG1fY29tcHJlc3Npb25RdWV1
ZSk7CisjZW5kaWYKICAgICBkaXNjYXJkU25hcHNob3RzKCk7CiB9CiAKQEAgLTE1OCw2ICsxNjQs
MTAgQEAgdm9pZCBWaWV3U25hcHNob3RTdG9yZTo6cmVjb3JkU25hcHNob3QoV2ViUGFnZVByb3h5
JiB3ZWJQYWdlUHJveHkpCiAKICAgICBwcnVuZVNuYXBzaG90cyh3ZWJQYWdlUHJveHkpOwogCisg
ICAgVmlld1NuYXBzaG90IHNuYXBzaG90ID0gd2ViUGFnZVByb3h5LnRha2VWaWV3U25hcHNob3Qo
KTsKKyAgICBpZiAoIXNuYXBzaG90Lmhhc0ltYWdlKCkpCisgICAgICAgIHJldHVybjsKKwogICAg
IFN0cmluZyBvbGRTbmFwc2hvdFVVSUQgPSBpdGVtLT5zbmFwc2hvdFVVSUQoKTsKICAgICBpZiAo
IW9sZFNuYXBzaG90VVVJRC5pc0VtcHR5KCkpIHsKICAgICAgICAgY29uc3QgYXV0byYgb2xkU25h
cHNob3RJdGVyID0gbV9zbmFwc2hvdE1hcC5maW5kKG9sZFNuYXBzaG90VVVJRCk7CkBAIC0xNjcs
MTUgKzE3NywxNiBAQCB2b2lkIFZpZXdTbmFwc2hvdFN0b3JlOjpyZWNvcmRTbmFwc2hvdChXZWJQ
YWdlUHJveHkmIHdlYlBhZ2VQcm94eSkKICAgICAgICAgfQogICAgIH0KIAotICAgIGl0ZW0tPnNl
dFNuYXBzaG90VVVJRChjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpOwotCi0gICAgVmlld1Nu
YXBzaG90IHNuYXBzaG90ID0gd2ViUGFnZVByb3h5LnRha2VWaWV3U25hcHNob3QoKTsKICAgICBz
bmFwc2hvdC5jcmVhdGlvblRpbWUgPSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsK
ICAgICBzbmFwc2hvdC5yZW5kZXJUcmVlU2l6ZSA9IHdlYlBhZ2VQcm94eS5yZW5kZXJUcmVlU2l6
ZSgpOwogICAgIHNuYXBzaG90LmRldmljZVNjYWxlRmFjdG9yID0gd2ViUGFnZVByb3h5LmRldmlj
ZVNjYWxlRmFjdG9yKCk7CiAKKyAgICBpdGVtLT5zZXRTbmFwc2hvdFVVSUQoY3JlYXRlQ2Fub25p
Y2FsVVVJRFN0cmluZygpKTsKKwogICAgIG1fc25hcHNob3RNYXAuYWRkKGl0ZW0tPnNuYXBzaG90
VVVJRCgpLCBzbmFwc2hvdCk7CiAgICAgbV9zbmFwc2hvdENhY2hlU2l6ZSArPSBzbmFwc2hvdC5p
bWFnZVNpemVJbkJ5dGVzOworCisgICAgcmVkdWNlU25hcHNob3RNZW1vcnlDb3N0KGl0ZW0tPnNu
YXBzaG90VVVJRCgpKTsKIH0KIAogYm9vbCBWaWV3U25hcHNob3RTdG9yZTo6Z2V0U25hcHNob3Qo
V2ViQmFja0ZvcndhcmRMaXN0SXRlbSogaXRlbSwgVmlld1NuYXBzaG90JiBzbmFwc2hvdCkKQEAg
LTE5Niw2ICsyMDcsODQgQEAgdm9pZCBWaWV3U25hcHNob3RTdG9yZTo6ZGlzY2FyZFNuYXBzaG90
cygpCiAgICAgICAgIHJlbW92ZVNuYXBzaG90SW1hZ2Uoc25hcHNob3QpOwogfQogCisjaWYgVVNF
X0lPU1VSRkFDRV9WSUVXX1NOQVBTSE9UUworc3RhdGljIFJlZlB0cjxJT1N1cmZhY2U+IGNyZWF0
ZUlPU3VyZmFjZUZyb21JbWFnZShDR0ltYWdlUmVmIGltYWdlKQoreworICAgIHNpemVfdCB3aWR0
aCA9IENHSW1hZ2VHZXRXaWR0aChpbWFnZSk7CisgICAgc2l6ZV90IGhlaWdodCA9IENHSW1hZ2VH
ZXRIZWlnaHQoaW1hZ2UpOworCisgICAgUmVmUHRyPElPU3VyZmFjZT4gc3VyZmFjZSA9IElPU3Vy
ZmFjZTo6Y3JlYXRlKEludFNpemUod2lkdGgsIGhlaWdodCksIENvbG9yU3BhY2VEZXZpY2VSR0Ip
OworICAgIFJldGFpblB0cjxDR0NvbnRleHRSZWY+IHN1cmZhY2VDb250ZXh0ID0gc3VyZmFjZS0+
ZW5zdXJlUGxhdGZvcm1Db250ZXh0KCk7CisgICAgQ0dDb250ZXh0RHJhd0ltYWdlKHN1cmZhY2VD
b250ZXh0LmdldCgpLCBDR1JlY3RNYWtlKDAsIDAsIHdpZHRoLCBoZWlnaHQpLCBpbWFnZSk7Cisg
ICAgQ0dDb250ZXh0Rmx1c2goc3VyZmFjZUNvbnRleHQuZ2V0KCkpOworCisgICAgc3VyZmFjZS0+
c2V0SXNWb2xhdGlsZSh0cnVlKTsKKworICAgIHJldHVybiBzdXJmYWNlOworfQorI2VuZGlmCisK
KyNpZiBVU0VfSlBFR19WSUVXX1NOQVBTSE9UUworc3RhdGljIHN0ZDo6cGFpcjxSZXRhaW5QdHI8
Q0dJbWFnZVJlZj4sIHNpemVfdD4gY29tcHJlc3NJbWFnZUFzSlBFRyhDR0ltYWdlUmVmIGltYWdl
KQoreworICAgIFJldGFpblB0cjxOU0RhdGE+IGNvbXByZXNzZWREYXRhID0gYWRvcHROUyhbW05T
TXV0YWJsZURhdGEgYWxsb2NdIGluaXRdKTsKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZURlc3RpbmF0
aW9uUmVmPiBkZXN0aW5hdGlvbiA9IGFkb3B0Q0YoQ0dJbWFnZURlc3RpbmF0aW9uQ3JlYXRlV2l0
aERhdGEoKENGTXV0YWJsZURhdGFSZWYpY29tcHJlc3NlZERhdGEuZ2V0KCksIGtVVFR5cGVKUEVH
LCAxLCAwKSk7CisKKyAgICBSZXRhaW5QdHI8TlNEaWN0aW9uYXJ5PiBvcHRpb25zID0gQHsKKyAg
ICAgICAgKE5TU3RyaW5nKilrQ0dJbWFnZURlc3RpbmF0aW9uTG9zc3lDb21wcmVzc2lvblF1YWxp
dHk6IEAwLjkKKyAgICB9OworCisgICAgQ0dJbWFnZURlc3RpbmF0aW9uQWRkSW1hZ2UoZGVzdGlu
YXRpb24uZ2V0KCksIGltYWdlLCAoQ0ZEaWN0aW9uYXJ5UmVmKW9wdGlvbnMuZ2V0KCkpOworICAg
IENHSW1hZ2VEZXN0aW5hdGlvbkZpbmFsaXplKGRlc3RpbmF0aW9uLmdldCgpKTsKKworICAgIFJl
dGFpblB0cjxDR0ltYWdlU291cmNlUmVmPiBpbWFnZVNvdXJjZVJlZiA9IGFkb3B0Q0YoQ0dJbWFn
ZVNvdXJjZUNyZWF0ZVdpdGhEYXRhKChDRkRhdGFSZWYpY29tcHJlc3NlZERhdGEuZ2V0KCksIDAp
KTsKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY29tcHJlc3NlZFNuYXBzaG90ID0gYWRvcHRD
RihDR0ltYWdlU291cmNlQ3JlYXRlSW1hZ2VBdEluZGV4KGltYWdlU291cmNlUmVmLmdldCgpLCAw
LCAwKSk7CisgICAgCisgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKGNvbXByZXNzZWRTbmFwc2hv
dCwgW2NvbXByZXNzZWREYXRhIGxlbmd0aF0pOworfQorI2VuZGlmCisKK3ZvaWQgVmlld1NuYXBz
aG90U3RvcmU6OnJlZHVjZVNuYXBzaG90TWVtb3J5Q29zdChTdHJpbmcgdXVpZCkKK3sKKyAgICBj
b25zdCBhdXRvJiBzbmFwc2hvdEl0ZXJhdG9yID0gbV9zbmFwc2hvdE1hcC5maW5kKHV1aWQpOwor
ICAgIGlmIChzbmFwc2hvdEl0ZXJhdG9yID09IG1fc25hcHNob3RNYXAuZW5kKCkpCisgICAgICAg
IHJldHVybjsKKyAgICBWaWV3U25hcHNob3QmIHNuYXBzaG90ID0gc25hcHNob3RJdGVyYXRvci0+
dmFsdWU7CisgICAgaWYgKCFzbmFwc2hvdC5oYXNJbWFnZSgpKQorICAgICAgICByZXR1cm47CisK
KyNpZiBVU0VfSU9TVVJGQUNFX1ZJRVdfU05BUFNIT1RTCisgICAgc25hcHNob3Quc3VyZmFjZSA9
IGNyZWF0ZUlPU3VyZmFjZUZyb21JbWFnZShzbmFwc2hvdC5pbWFnZS5nZXQoKSk7CisgICAgc25h
cHNob3QuaW1hZ2UgPSBudWxscHRyOworI2VsaWYgVVNFX0pQRUdfVklFV19TTkFQU0hPVFMKKyAg
ICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gb3JpZ2luYWxJbWFnZSA9IHNuYXBzaG90LmltYWdlLmdl
dCgpOworICAgIGRpc3BhdGNoX2FzeW5jKG1fY29tcHJlc3Npb25RdWV1ZSwgW3V1aWQsIG9yaWdp
bmFsSW1hZ2VdIHsKKyAgICAgICAgYXV0byBpbWFnZUFuZEJ5dGVzID0gY29tcHJlc3NJbWFnZUFz
SlBFRyhvcmlnaW5hbEltYWdlLmdldCgpKTsKKyAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0
Y2hfZ2V0X21haW5fcXVldWUoKSwgW3V1aWQsIGltYWdlQW5kQnl0ZXNdIHsKKyAgICAgICAgICAg
IFZpZXdTbmFwc2hvdFN0b3JlOjpzaGFyZWQoKS5kaWRDb21wcmVzc1NuYXBzaG90KHV1aWQsIGlt
YWdlQW5kQnl0ZXMuZmlyc3QsIGltYWdlQW5kQnl0ZXMuc2Vjb25kKTsKKyAgICAgICAgfSk7Cisg
ICAgfSk7CisjZW5kaWYKK30KKworI2lmIFVTRV9KUEVHX1ZJRVdfU05BUFNIT1RTCit2b2lkIFZp
ZXdTbmFwc2hvdFN0b3JlOjpkaWRDb21wcmVzc1NuYXBzaG90KFN0cmluZyB1dWlkLCBSZXRhaW5Q
dHI8Q0dJbWFnZVJlZj4gbmV3SW1hZ2UsIHNpemVfdCBuZXdJbWFnZVNpemUpCit7CisgICAgY29u
c3QgYXV0byYgc25hcHNob3RJdGVyYXRvciA9IG1fc25hcHNob3RNYXAuZmluZCh1dWlkKTsKKyAg
ICBpZiAoc25hcHNob3RJdGVyYXRvciA9PSBtX3NuYXBzaG90TWFwLmVuZCgpKQorICAgICAgICBy
ZXR1cm47CisgICAgVmlld1NuYXBzaG90JiBzbmFwc2hvdCA9IHNuYXBzaG90SXRlcmF0b3ItPnZh
bHVlOworCisgICAgc2l6ZV90IG9yaWdpbmFsSW1hZ2VTaXplID0gc25hcHNob3QuaW1hZ2VTaXpl
SW5CeXRlczsKKyAgICBpZiAoIW5ld0ltYWdlIHx8IG5ld0ltYWdlU2l6ZSA+IG9yaWdpbmFsSW1h
Z2VTaXplKQorICAgICAgICByZXR1cm47CisgICAgc25hcHNob3QuaW1hZ2UgPSBuZXdJbWFnZTsK
KyAgICBzbmFwc2hvdC5pbWFnZVNpemVJbkJ5dGVzID0gbmV3SW1hZ2VTaXplOworICAgIG1fc25h
cHNob3RDYWNoZVNpemUgKz0gbmV3SW1hZ2VTaXplOworICAgIG1fc25hcHNob3RDYWNoZVNpemUg
LT0gb3JpZ2luYWxJbWFnZVNpemU7Cit9CisjZW5kaWYKKwogYm9vbCBWaWV3U25hcHNob3Q6Omhh
c0ltYWdlKCkgY29uc3QKIHsKICAgICByZXR1cm4gaW1hZ2VTaXplSW5CeXRlczsKQEAgLTIwMyw5
ICsyOTIsMTMgQEAgYm9vbCBWaWV3U25hcHNob3Q6Omhhc0ltYWdlKCkgY29uc3QKIAogdm9pZCBW
aWV3U25hcHNob3Q6OmNsZWFySW1hZ2UoKQogewotI2lmIFBMQVRGT1JNKE1BQykKKyNpZiBVU0Vf
SU9TVVJGQUNFX1ZJRVdfU05BUFNIT1RTCiAgICAgc3VyZmFjZSA9IG51bGxwdHI7Ci0jZWxpZiBQ
TEFURk9STShJT1MpCisjZW5kaWYKKyNpZiBVU0VfSU9TVVJGQUNFX1ZJRVdfU05BUFNIT1RTIHx8
IFVTRV9KUEVHX1ZJRVdfU05BUFNIT1RTCisgICAgaW1hZ2UgPSBudWxscHRyOworI2VuZGlmCisj
aWYgVVNFX1JFTkRFUl9TRVJWRVJfVklFV19TTkFQU0hPVFMKICAgICBpZiAoc2xvdElEKQogICAg
ICAgICBbVmlld1NuYXBzaG90U3RvcmU6OnNuYXBzaG90dGluZ0NvbnRleHQoKSBkZWxldGVTbG90
OnNsb3RJRF07CiAgICAgc2xvdElEID0gMDsKQEAgLTIxMyw0ICszMDYsMjIgQEAgdm9pZCBWaWV3
U25hcHNob3Q6OmNsZWFySW1hZ2UoKQogICAgIGltYWdlU2l6ZUluQnl0ZXMgPSAwOwogfQogCitp
ZCBWaWV3U25hcHNob3Q6OmFzTGF5ZXJDb250ZW50cygpCit7CisjaWYgVVNFX0lPU1VSRkFDRV9W
SUVXX1NOQVBTSE9UUworICAgIGlmIChzdXJmYWNlKSB7CisgICAgICAgIGlmIChzdXJmYWNlLT5z
ZXRJc1ZvbGF0aWxlKGZhbHNlKSAhPSBJT1N1cmZhY2U6OlN1cmZhY2VTdGF0ZTo6VmFsaWQpCisg
ICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgICAgICByZXR1cm4gKGlkKXN1cmZhY2Ut
PnN1cmZhY2UoKTsKKyAgICB9CisjZW5kaWYKKyNpZiBVU0VfSU9TVVJGQUNFX1ZJRVdfU05BUFNI
T1RTIHx8IFVTRV9KUEVHX1ZJRVdfU05BUFNIT1RTCisgICAgcmV0dXJuIChpZClpbWFnZS5nZXQo
KTsKKyNlbmRpZgorI2lmIFVTRV9SRU5ERVJfU0VSVkVSX1ZJRVdfU05BUFNIT1RTCisgICAgcmV0
dXJuIFtDQUNvbnRleHQgb2JqZWN0Rm9yU2xvdDpzbG90SURdOworI2VuZGlmCit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAo=
</data>
<flag name="review"
          id="255802"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>