<?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>23254</bug_id>
          
          <creation_ts>2009-01-12 08:44:49 -0800</creation_ts>
          <short_desc>Upstream page/chromium/</short_desc>
          <delta_ts>2009-01-12 11:25:55 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Darin Fisher (:fishd, Google)">fishd</reporter>
          <assigned_to name="Darin Fisher (:fishd, Google)">fishd</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>105332</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-01-12 08:44:49 -0800</bug_when>
    <thetext>Upstream page/chromium/

From here:
http://src.chromium.org/viewvc/chrome/trunk/deps/third_party/WebKit/WebCore/page/chromium/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105334</commentid>
    <comment_count>1</comment_count>
      <attachid>26634</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-01-12 08:57:00 -0800</bug_when>
    <thetext>Created attachment 26634
v1 patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105342</commentid>
    <comment_count>2</comment_count>
      <attachid>26634</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-01-12 11:14:17 -0800</bug_when>
    <thetext>Comment on attachment 26634
v1 patch

Shouldn&apos;t ChromeClientChromium just be part of ChromeClient?  It seems we should either move that one function to ChromeClient, or at least add a FIXME to do so (or a comment explaining why ChromeClientChromium should be separate).

Also ChromeClientChromium.h uses #ifndef ChromeClientWin

+    // FIXME: To match the macos behaviour we should return DragOperationNone

MacOS or mac os, but macos reads strange to me. :)

+bool DragController::isCopyKeyDown() {

{ on new line

Otherwise looks good.  Sad that chrome doesn&apos;t support drag images. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105345</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-01-12 11:23:53 -0800</bug_when>
    <thetext>I added a comment to ChromeClientChromium.  That interface exists to hold things that are Chromium-specific.  Right now, that only includes the popupOpened method, which is used to support the Chromium PopupMenu implementation.  I don&apos;t think it makes sense to put that on ChromeClient since it isn&apos;t useful to other ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105346</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-01-12 11:25:55 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/39829</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26634</attachid>
            <date>2009-01-12 08:57:00 -0800</date>
            <delta_ts>2009-01-12 11:14:17 -0800</delta_ts>
            <desc>v1 patch</desc>
            <filename>page_1.diff</filename>
            <type>text/plain</type>
            <size>23664</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDM5ODI3
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDEgQEAKKzIwMDktMDEt
MTIgIERhcmluIEZpc2hlciAgPGRhcmluQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIFNlaWRlbC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMyNTQKKyAgICAgICAgVXBzdHJlYW0gcGFnZS9jaHJvbWl1bS8KKworICAg
ICAgICAqIHBhZ2UvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9taXVtLmNwcDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpkZXRhY2hXcmFwcGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmF0dGFjaFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpB
WE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uVG9FbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZUZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkKToKKyAgICAg
ICAgKiBwYWdlL2Nocm9taXVtL0FjY2Vzc2liaWxpdHlPYmplY3RDaHJvbWl1bS5jcHA6CisgICAg
ICAgICogcGFnZS9jaHJvbWl1bS9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlci5oOgorICAgICAg
ICAqIHBhZ2UvY2hyb21pdW0vQ2hyb21lQ2xpZW50Q2hyb21pdW0uaDogQWRkZWQuCisgICAgICAg
ICogcGFnZS9jaHJvbWl1bS9EcmFnQ29udHJvbGxlckNocm9taXVtLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6ZHJhZ09wZXJhdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6aXNDb3B5S2V5RG93bik6CisgICAgICAgIChXZWJDb3Jl
OjpEcmFnQ29udHJvbGxlcjo6bWF4RHJhZ0ltYWdlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpE
cmFnQ29udHJvbGxlcjo6Y2xlYW51cEFmdGVyU3lzdGVtRHJhZyk6CisgICAgICAgICogcGFnZS9j
aHJvbWl1bS9FdmVudEhhbmRsZXJDaHJvbWl1bS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpwYXNzTW91c2VQcmVzc0V2ZW50VG9TdWJmcmFtZSk6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NNb3VzZU1vdmVFdmVudFRvU3ViZnJhbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpwYXNzTW91c2VSZWxlYXNlRXZlbnRUb1N1
YmZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRU
b1dpZGdldCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NXaWRnZXRNb3Vz
ZURvd25FdmVudFRvV2lkZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6cGFz
c01vdXNlRG93bkV2ZW50VG9XaWRnZXQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVy
Ojp0YWJzVG9BbGxDb250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmV2
ZW50QWN0aXZhdGVkVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0
ZURyYWdnaW5nQ2xpcGJvYXJkKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6Zm9j
dXNEb2N1bWVudFZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjphY2Nlc3NL
ZXlNb2RpZmllcnMpOgorICAgICAgICAqIHBhZ2UvY2hyb21pdW0vRnJhbWVDaHJvbWl1bS5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29tcHV0ZVBhZ2VSZWN0c0ZvckZyYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lOjpkcmFnSW1hZ2VGb3JTZWxlY3Rpb24pOgorICAgICAgICAq
IHBhZ2UvY2hyb21pdW0vRnJhbWVDaHJvbWl1bS5oOiBBZGRlZC4KKwogMjAwOS0wMS0xMiAgQWRh
bSBUcmVhdCAgPGFkYW0udHJlYXRAdG9yY2htb2JpbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEdlb3JnZSBTdGFpa29zLgpJbmRleDogcGFnZS9jaHJvbWl1bS9BWE9iamVjdENhY2hlQ2hy
b21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIHBhZ2UvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9t
aXVtLmNwcAkocmV2aXNpb24gMCkKKysrIHBhZ2UvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9t
aXVtLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDggR29vZ2xlIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisK
KyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kwordm9pZCBBWE9iamVjdENhY2hlOjpkZXRhY2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iaikKK3sKKyAgICAvLyBJbiBDaHJvbWl1bSwgQWNjZXNzaWJpbGl0eU9iamVjdHMgYXJlIHdy
YXBwZWQgbGF6aWx5LgorICAgIGlmIChBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciogd3JhcHBl
ciA9IG9iai0+d3JhcHBlcigpKQorICAgICAgICB3cmFwcGVyLT5kZXRhY2goKTsKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmplY3QqKQorewor
ICAgIC8vIEluIENocm9taXVtLCBBY2Nlc3NpYmlsaXR5T2JqZWN0cyBhcmUgd3JhcHBlZCBsYXpp
bHkuCit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihSZW5kZXJPYmpl
Y3QqLCBjb25zdCBTdHJpbmcmKQoreworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3Rp
ZmljYXRpb25Ub0VsZW1lbnQoUmVuZGVyT2JqZWN0KiwgY29uc3QgU3RyaW5nJikKK3sKK30KKwor
dm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZCgpCit7Cit9
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IHBhZ2UvY2hyb21pdW0vQWNjZXNzaWJp
bGl0eU9iamVjdENocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwYWdlL2Nocm9taXVtL0FjY2Vz
c2liaWxpdHlPYmplY3RDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDM5ODI3KQorKysgcGFnZS9jaHJv
bWl1bS9BY2Nlc3NpYmlsaXR5T2JqZWN0Q2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggR29vZ2xlIEluYy4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjMsNyArMjQsNiBAQAogICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CiAgKi8KIAotCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU9i
amVjdC5oIgogCkluZGV4OiBwYWdlL2Nocm9taXVtL0FjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gcGFnZS9jaHJvbWl1bS9BY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
ci5oCShyZXZpc2lvbiAzOTgyNykKKysrIHBhZ2UvY2hyb21pdW0vQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDA4IEdvb2dsZSBJbmMuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTIwLDcgKzIxLDcgQEAKICAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCiAgKi8KIAogI2lmbmRlZiBBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlcl9oCkBAIC0yOSw3ICszMCw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICBjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0OwotCiAgICAgY2xhc3MgQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlcj4gewogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB+QWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXIoKSB7fQpAQCAtNDcsNCArNDcsNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmIC8vIEFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyX2gKKyNlbmRpZgpJbmRleDogcGFnZS9jaHJvbWl1bS9DaHJvbWVDbGllbnRDaHJvbWl1
bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIHBhZ2UvY2hyb21pdW0vQ2hyb21lQ2xpZW50Q2hyb21pdW0uaAko
cmV2aXNpb24gMCkKKysrIHBhZ2UvY2hyb21pdW0vQ2hyb21lQ2xpZW50Q2hyb21pdW0uaAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAwOCwgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKiAKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
CisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBj
b250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRl
cml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyAqIAorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENocm9tZUNsaWVudFdpbl9oCisj
ZGVmaW5lIENocm9tZUNsaWVudFdpbl9oCisKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKKyNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xhc3Mg
RnJhbWVsZXNzU2Nyb2xsVmlldzsKKyAgICBjbGFzcyBJbnRSZWN0OworCisgICAgY2xhc3MgQ2hy
b21lQ2xpZW50Q2hyb21pdW0gOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKKyAgICBwdWJsaWM6Cisg
ICAgICAgIC8vIE5vdGlmaWVzIHRoZSBjbGllbnQgb2YgYSBuZXcgcG9wdXAgd2lkZ2V0LiAgVGhl
IGNsaWVudCBzaG91bGQgcGxhY2UKKyAgICAgICAgLy8gYW5kIHNpemUgdGhlIHdpZGdldCB3aXRo
IHRoZSBnaXZlbiBib3VuZHMsIHJlbGF0aXZlIHRvIHRoZSBzY3JlZW4uCisgICAgICAgIHZpcnR1
YWwgdm9pZCBwb3B1cE9wZW5lZChGcmFtZWxlc3NTY3JvbGxWaWV3KiBwb3B1cFZpZXcsIGNvbnN0
IEludFJlY3QmIGJvdW5kcywgYm9vbCBmb2N1c09uU2hvdykgPSAwOworICAgIH07CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmCkluZGV4OiBwYWdlL2Nocm9taXVtL0RyYWdDb250
cm9sbGVyQ2hyb21pdW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBhZ2UvY2hyb21pdW0vRHJhZ0NvbnRy
b2xsZXJDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDApCisrKyBwYWdlL2Nocm9taXVtL0RyYWdDb250
cm9sbGVyQ2hyb21pdW0uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDc2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggR29vZ2xlIEluYy4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkRyYWdDb250cm9sbGVyLmgiCisKKyNpbmNsdWRlICJEcmFnRGF0YS5oIgor
I2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CisKKyNpZiBQTEFURk9STShXSU5fT1MpCisjaW5jbHVkZSA8d2luZG93cy5oPgorI2VuZGlmCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3QgaW50IERyYWdDb250cm9sbGVyOjpMaW5rRHJh
Z0JvcmRlckluc2V0ID0gMjsKK2NvbnN0IGludCBEcmFnQ29udHJvbGxlcjo6TWF4T3JpZ2luYWxJ
bWFnZUFyZWEgPSAxNTAwICogMTUwMDsKK2NvbnN0IGludCBEcmFnQ29udHJvbGxlcjo6RHJhZ0lj
b25SaWdodEluc2V0ID0gNzsKK2NvbnN0IGludCBEcmFnQ29udHJvbGxlcjo6RHJhZ0ljb25Cb3R0
b21JbnNldCA9IDM7CisKK2NvbnN0IGZsb2F0IERyYWdDb250cm9sbGVyOjpEcmFnSW1hZ2VBbHBo
YSA9IDAuNzVmOworCitEcmFnT3BlcmF0aW9uIERyYWdDb250cm9sbGVyOjpkcmFnT3BlcmF0aW9u
KERyYWdEYXRhKiBkcmFnRGF0YSkKK3sKKyAgICAvLyBGSVhNRTogVG8gbWF0Y2ggdGhlIG1hY29z
IGJlaGF2aW91ciB3ZSBzaG91bGQgcmV0dXJuIERyYWdPcGVyYXRpb25Ob25lCisgICAgLy8gaWYg
d2UgYXJlIGEgbW9kYWwgd2luZG93LCB3ZSBhcmUgdGhlIGRyYWcgc291cmNlLCBvciB0aGUgd2lu
ZG93IGlzIGFuCisgICAgLy8gYXR0YWNoZWQgc2hlZXQgSWYgdGhpcyBjYW4gYmUgZGV0ZXJtaW5l
ZCBmcm9tIHdpdGhpbiBXZWJDb3JlCisgICAgLy8gb3BlcmF0aW9uRm9yRHJhZyBjYW4gYmUgcHVs
bGVkIGludG8gV2ViQ29yZSBpdHNlbGYKKyAgICBBU1NFUlQoZHJhZ0RhdGEpOworICAgIHJldHVy
biBkcmFnRGF0YS0+Y29udGFpbnNVUkwoKSAmJiAhbV9kaWRJbml0aWF0ZURyYWcgPyBEcmFnT3Bl
cmF0aW9uQ29weSA6IERyYWdPcGVyYXRpb25Ob25lOworfQorCitib29sIERyYWdDb250cm9sbGVy
Ojppc0NvcHlLZXlEb3duKCkgeworICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBub3QgYmUgT1Mg
c3BlY2lmaWMuICBEZWxlZ2F0ZSB0byB0aGUgZW1iZWRkZXIgaW5zdGVhZC4KKyNpZiBQTEFURk9S
TShXSU5fT1MpCisgICAgcmV0dXJuIDo6R2V0QXN5bmNLZXlTdGF0ZShWS19DT05UUk9MKTsKKyNl
bHNlCisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisgICAgCitjb25zdCBJbnRTaXplJiBE
cmFnQ29udHJvbGxlcjo6bWF4RHJhZ0ltYWdlU2l6ZSgpCit7CisgICAgc3RhdGljIGNvbnN0IElu
dFNpemUgbWF4RHJhZ0ltYWdlU2l6ZSgyMDAsIDIwMCk7CisgICAgcmV0dXJuIG1heERyYWdJbWFn
ZVNpemU7Cit9CisKK3ZvaWQgRHJhZ0NvbnRyb2xsZXI6OmNsZWFudXBBZnRlclN5c3RlbURyYWco
KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBwYWdlL2Nocm9taXVtL0V2
ZW50SGFuZGxlckNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwYWdlL2Nocm9taXVtL0V2ZW50
SGFuZGxlckNocm9taXVtLmNwcAkocmV2aXNpb24gMCkKKysrIHBhZ2UvY2hyb21pdW0vRXZlbnRI
YW5kbGVyQ2hyb21pdW0uY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggR29vZ2xlIEluYy4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgorCisjaW5jbHVkZSAiQ2hy
b21pdW1EYXRhT2JqZWN0LmgiCisjaW5jbHVkZSAiQ2xpcGJvYXJkQ2hyb21pdW0uaCIKKyNpbmNs
dWRlICJDdXJzb3IuaCIKKyNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiRm9jdXND
b250cm9sbGVyLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJIaXRUZXN0UmVxdWVzdC5oIgorI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIK
KyNpbmNsdWRlICJNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmgiCisjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1LZXli
b2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAi
UmVuZGVyV2lkZ2V0LmgiCisjaW5jbHVkZSAiU2VsZWN0aW9uQ29udHJvbGxlci5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKyNpZiBQTEFURk9STShEQVJXSU4pCitjb25zdCBkb3VibGUgRXZl
bnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5ID0gMC4xNTsKKyNlbHNlCitjb25zdCBkb3VibGUgRXZl
bnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5ID0gMC4wOworI2VuZGlmCisKK2Jvb2wgRXZlbnRIYW5k
bGVyOjpwYXNzTW91c2VQcmVzc0V2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RS
ZXN1bHRzJiBtZXYsIEZyYW1lKiBzdWJmcmFtZSkKK3sKKyAgICAvLyBJZiB3ZSdyZSBjbGlja2lu
ZyBpbnRvIGEgZnJhbWUgdGhhdCBpcyBzZWxlY3RlZCwgdGhlIGZyYW1lIHdpbGwgYXBwZWFyCisg
ICAgLy8gZ3JleWVkIG91dCBldmVuIHRob3VnaCB3ZSdyZSBjbGlja2luZyBvbiB0aGUgc2VsZWN0
aW9uLiAgVGhpcyBsb29rcworICAgIC8vIHJlYWxseSBzdHJhbmdlIChoYXZpbmcgdGhlIHdob2xl
IGZyYW1lIGJlIGdyZXllZCBvdXQpLCBzbyB3ZSBkZXNlbGVjdCB0aGUKKyAgICAvLyBzZWxlY3Rp
b24uCisgICAgSW50UG9pbnQgcCA9IG1fZnJhbWUtPnZpZXcoKS0+d2luZG93VG9Db250ZW50cyht
ZXYuZXZlbnQoKS5wb3MoKSk7CisgICAgaWYgKG1fZnJhbWUtPnNlbGVjdGlvbigpLT5jb250YWlu
cyhwKSkgeworICAgICAgICBWaXNpYmxlUG9zaXRpb24gdmlzaWJsZVBvcygKKyAgICAgICAgICAg
IG1ldi50YXJnZXROb2RlKCktPnJlbmRlcmVyKCktPnBvc2l0aW9uRm9yUG9pbnQobWV2LmxvY2Fs
UG9pbnQoKSkpOworICAgICAgICBTZWxlY3Rpb24gbmV3U2VsZWN0aW9uKHZpc2libGVQb3MpOwor
ICAgICAgICBpZiAobV9mcmFtZS0+c2hvdWxkQ2hhbmdlU2VsZWN0aW9uKG5ld1NlbGVjdGlvbikp
CisgICAgICAgICAgICBtX2ZyYW1lLT5zZWxlY3Rpb24oKS0+c2V0U2VsZWN0aW9uKG5ld1NlbGVj
dGlvbik7CisgICAgfQorCisgICAgc3ViZnJhbWUtPmV2ZW50SGFuZGxlcigpLT5oYW5kbGVNb3Vz
ZVByZXNzRXZlbnQobWV2LmV2ZW50KCkpOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIEV2
ZW50SGFuZGxlcjo6cGFzc01vdXNlTW92ZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhp
dFRlc3RSZXN1bHRzJiBtZXYsIEZyYW1lKiBzdWJmcmFtZSwgSGl0VGVzdFJlc3VsdCogaG92ZXJl
ZE5vZGUpCit7CisgICAgaWYgKG1fbW91c2VEb3duTWF5U3RhcnREcmFnICYmICFtX21vdXNlRG93
bldhc0luU3ViZnJhbWUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBzdWJmcmFtZS0+ZXZl
bnRIYW5kbGVyKCktPmhhbmRsZU1vdXNlTW92ZUV2ZW50KG1ldi5ldmVudCgpLCBob3ZlcmVkTm9k
ZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VS
ZWxlYXNlRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIG1ldiwg
RnJhbWUqIHN1YmZyYW1lKQoreworICAgIHN1YmZyYW1lLT5ldmVudEhhbmRsZXIoKS0+aGFuZGxl
TW91c2VSZWxlYXNlRXZlbnQobWV2LmV2ZW50KCkpOworICAgIHJldHVybiB0cnVlOworfQorCiti
b29sIEV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dpZGdldChQbGF0Zm9ybVdoZWVsRXZl
bnQmIHdoZWVsRXZlbnQsIFdpZGdldCogd2lkZ2V0KQoreworICAgIC8vIFdlIGNhbiBzb21ldGlt
ZXMgZ2V0IGEgbnVsbCB3aWRnZXQhICBFdmVudEhhbmRsZXJNYWMgaGFuZGxlcyBhIG51bGwKKyAg
ICAvLyB3aWRnZXQgYnkgcmV0dXJuaW5nIGZhbHNlLCBzbyB3ZSBkbyB0aGUgc2FtZS4KKyAgICBp
ZiAoIXdpZGdldCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gSWYgbm90IGEgRnJh
bWVWaWV3LCB0aGVuIHByb2JhYmx5IGEgcGx1Z2luIHdpZGdldC4gIFRob3NlIHdpbGwgcmVjZWl2
ZQorICAgIC8vIHRoZSBldmVudCB2aWEgYW4gRXZlbnRUYXJnZXROb2RlIGRpc3BhdGNoIHdoZW4g
dGhpcyByZXR1cm5zIGZhbHNlLgorICAgIGlmICghd2lkZ2V0LT5pc0ZyYW1lVmlldygpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RnJhbWVWaWV3Kj4o
d2lkZ2V0KS0+ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmhhbmRsZVdoZWVsRXZlbnQod2hlZWxF
dmVudCk7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRU
b1dpZGdldChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBldmVudCkKK3sKKyAg
ICAvLyBGaWd1cmUgb3V0IHdoaWNoIHZpZXcgdG8gc2VuZCB0aGUgZXZlbnQgdG8uCisgICAgaWYg
KCFldmVudC50YXJnZXROb2RlKCkgfHwgIWV2ZW50LnRhcmdldE5vZGUoKS0+cmVuZGVyZXIoKSB8
fCAhZXZlbnQudGFyZ2V0Tm9kZSgpLT5yZW5kZXJlcigpLT5pc1dpZGdldCgpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gcGFzc01vdXNlRG93bkV2ZW50VG9XaWRnZXQoc3Rh
dGljX2Nhc3Q8UmVuZGVyV2lkZ2V0Kj4oZXZlbnQudGFyZ2V0Tm9kZSgpLT5yZW5kZXJlcigpKS0+
d2lkZ2V0KCkpOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlRG93bkV2ZW50VG9X
aWRnZXQoV2lkZ2V0KiB3aWRnZXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxDb250cm9scyhLZXli
b2FyZEV2ZW50KikgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBFdmVudEhh
bmRsZXI6OmV2ZW50QWN0aXZhdGVkVmlldyhjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50
KSBjb25zdAoreworICAgIC8vIEZJWE1FOiBFdmVudEhhbmRsZXJXaW4uY3BwIGRvZXMgdGhlIGZv
bGxvd2luZzoKKyAgICAvLyByZXR1cm4gZXZlbnQuYWN0aXZhdGVkV2ViVmlldygpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKworUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IEV2ZW50SGFuZGxlcjo6Y3Jl
YXRlRHJhZ2dpbmdDbGlwYm9hcmQoKSBjb25zdAoreworICAgIFJlZlB0cjxDaHJvbWl1bURhdGFP
YmplY3Q+IGRhdGFPYmplY3QgPSBDaHJvbWl1bURhdGFPYmplY3Q6OmNyZWF0ZSgpOworICAgIHJl
dHVybiBDbGlwYm9hcmRDaHJvbWl1bTo6Y3JlYXRlKHRydWUsIGRhdGFPYmplY3QuZ2V0KCksIENs
aXBib2FyZFdyaXRhYmxlKTsKK30KKwordm9pZCBFdmVudEhhbmRsZXI6OmZvY3VzRG9jdW1lbnRW
aWV3KCkKK3sKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOworICAgIGlmICghcGFn
ZSkKKyAgICAgICAgcmV0dXJuOworICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5zZXRGb2N1
c2VkRnJhbWUobV9mcmFtZSk7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91
c2VEb3duRXZlbnRUb1dpZGdldChSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldCkKK3sKKyAgICBy
ZXR1cm4gcGFzc01vdXNlRG93bkV2ZW50VG9XaWRnZXQocmVuZGVyV2lkZ2V0LT53aWRnZXQoKSk7
Cit9CisKK3Vuc2lnbmVkIEV2ZW50SGFuZGxlcjo6YWNjZXNzS2V5TW9kaWZpZXJzKCkKK3sKKyAg
ICByZXR1cm4gUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpBbHRLZXk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IHBhZ2UvY2hyb21pdW0vRnJhbWVDaHJvbWl1bS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gcGFnZS9jaHJvbWl1bS9GcmFtZUNocm9taXVtLmNwcAkocmV2aXNpb24gMCkKKysr
IHBhZ2UvY2hyb21pdW0vRnJhbWVDaHJvbWl1bS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
OTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IEdvb2dsZSBJbmMuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGcmFtZUNocm9taXVtLmgiCisK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUg
IkZyYW1lUHJpdmF0ZS5oIgorI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKKyNpbmNsdWRlICJTZXR0
aW5ncy5oIgorCit1c2luZyBzdGQ6Om1pbjsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lk
IGNvbXB1dGVQYWdlUmVjdHNGb3JGcmFtZShGcmFtZSogZnJhbWUsIGNvbnN0IEludFJlY3QmIHBy
aW50UmVjdCwgZmxvYXQgaGVhZGVySGVpZ2h0LCBmbG9hdCBmb290ZXJIZWlnaHQsIGZsb2F0IHVz
ZXJTY2FsZUZhY3RvciwgVmVjdG9yPEludFJlY3Q+JiBwYWdlcywgaW50JiBvdXRQYWdlSGVpZ2h0
KQoreworICAgIEFTU0VSVChmcmFtZSk7CisKKyAgICBwYWdlcy5jbGVhcigpOworICAgIG91dFBh
Z2VIZWlnaHQgPSAwOworCisgICAgaWYgKCFmcmFtZS0+ZG9jdW1lbnQoKSB8fCAhZnJhbWUtPnZp
ZXcoKSB8fCAhZnJhbWUtPmRvY3VtZW50KCktPnJlbmRlcmVyKCkpCisgICAgICAgIHJldHVybjsK
KyAKKyAgICBSZW5kZXJWaWV3KiByb290ID0gc3RhdGljX2Nhc3Q8UmVuZGVyVmlldyo+KGZyYW1l
LT5kb2N1bWVudCgpLT5yZW5kZXJlcigpKTsKKworICAgIGlmICghcm9vdCkgeworICAgICAgICBM
T0dfRVJST1IoImRvY3VtZW50IHRvIGJlIHByaW50ZWQgaGFzIG5vIHJlbmRlcmVyIik7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAodXNlclNjYWxlRmFjdG9yIDw9IDApIHsKKyAg
ICAgICAgTE9HX0VSUk9SKCJ1c2VyU2NhbGVGYWN0b3IgaGFzIGJhZCB2YWx1ZSAlLjJmIiwgdXNl
clNjYWxlRmFjdG9yKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKKyAgICBmbG9hdCBy
YXRpbyA9IHN0YXRpY19jYXN0PGZsb2F0PihwcmludFJlY3QuaGVpZ2h0KCkpIC8gc3RhdGljX2Nh
c3Q8ZmxvYXQ+KHByaW50UmVjdC53aWR0aCgpKTsKKyAKKyAgICBmbG9hdCBwYWdlV2lkdGggID0g
c3RhdGljX2Nhc3Q8ZmxvYXQ+KHJvb3QtPmRvY1dpZHRoKCkpOworICAgIGZsb2F0IHBhZ2VIZWln
aHQgPSBwYWdlV2lkdGggKiByYXRpbzsKKyAgICBvdXRQYWdlSGVpZ2h0ID0gc3RhdGljX2Nhc3Q8
aW50PihwYWdlSGVpZ2h0KTsgICAvLyB0aGlzIGlzIHRoZSBoZWlnaHQgb2YgdGhlIHBhZ2UgYWRq
dXN0ZWQgYnkgbWFyZ2lucworICAgIHBhZ2VIZWlnaHQgLT0gKGhlYWRlckhlaWdodCArIGZvb3Rl
ckhlaWdodCk7CisKKyAgICBpZiAocGFnZUhlaWdodCA8PSAwKSB7CisgICAgICAgIExPR19FUlJP
UigicGFnZUhlaWdodCBoYXMgYmFkIHZhbHVlICUuMmYiLCBwYWdlSGVpZ2h0KTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGZsb2F0IGN1cnJQYWdlSGVpZ2h0ID0gcGFnZUhlaWdodCAv
IHVzZXJTY2FsZUZhY3RvcjsKKyAgICBmbG9hdCBkb2NIZWlnaHQgICAgICA9IHJvb3QtPmxheWVy
KCktPmhlaWdodCgpOworICAgIGZsb2F0IGN1cnJQYWdlV2lkdGggID0gcGFnZVdpZHRoIC8gdXNl
clNjYWxlRmFjdG9yOworCisgICAgCisgICAgLy8gYWx3YXlzIHJldHVybiBhdCBsZWFzdCBvbmUg
cGFnZSwgc2luY2UgZW1wdHkgZmlsZXMgc2hvdWxkIHByaW50IGEgYmxhbmsgcGFnZQorICAgIGZs
b2F0IHByaW50ZWRQYWdlc0hlaWdodCA9IDAuMGY7CisgICAgZG8geworICAgICAgICBmbG9hdCBw
cm9wb3NlZEJvdHRvbSA9IG1pbihkb2NIZWlnaHQsIHByaW50ZWRQYWdlc0hlaWdodCArIHBhZ2VI
ZWlnaHQpOworICAgICAgICBmcmFtZS0+YWRqdXN0UGFnZUhlaWdodCgmcHJvcG9zZWRCb3R0b20s
IHByaW50ZWRQYWdlc0hlaWdodCwgcHJvcG9zZWRCb3R0b20sIHByaW50ZWRQYWdlc0hlaWdodCk7
CisgICAgICAgIGN1cnJQYWdlSGVpZ2h0ID0gbWF4KDEuMGYsIHByb3Bvc2VkQm90dG9tIC0gcHJp
bnRlZFBhZ2VzSGVpZ2h0KTsKKyAgICAgICAKKyAgICAgICAgcGFnZXMuYXBwZW5kKEludFJlY3Qo
MCwgcHJpbnRlZFBhZ2VzSGVpZ2h0LCBjdXJyUGFnZVdpZHRoLCBjdXJyUGFnZUhlaWdodCkpOwor
ICAgICAgICBwcmludGVkUGFnZXNIZWlnaHQgKz0gY3VyclBhZ2VIZWlnaHQ7CisgICAgfSB3aGls
ZSAocHJpbnRlZFBhZ2VzSGVpZ2h0IDwgZG9jSGVpZ2h0KTsKK30KKworRHJhZ0ltYWdlUmVmIEZy
YW1lOjpkcmFnSW1hZ2VGb3JTZWxlY3Rpb24oKQoreyAgICAKKyAgICBpZiAoc2VsZWN0aW9uKCkt
PmlzUmFuZ2UoKSkKKyAgICAgICAgcmV0dXJuIDA7ICAvLyBGSVhNRTogaW1wbGVtZW50IG1lIQor
CisgICAgcmV0dXJuIDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IHBhZ2Uv
Y2hyb21pdW0vRnJhbWVDaHJvbWl1bS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBhZ2UvY2hyb21pdW0vRnJh
bWVDaHJvbWl1bS5oCShyZXZpc2lvbiAwKQorKysgcGFnZS9jaHJvbWl1bS9GcmFtZUNocm9taXVt
LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDYsIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCBHb29nbGUgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEZyYW1lQ2hyb21pdW1faAorI2Rl
ZmluZSBGcmFtZUNocm9taXVtX2gKKworI2luY2x1ZGUgIkZyYW1lLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworICAgIC8vIHByaW50UmVjdCBpcyBvbmx5IHVzZWQgZm9yIHRoZSB3aWR0aC9o
ZWlnaHQgcmF0aW8uIFRoZWlyIGFic29sdXRlIHZhbHVlcyBhcmVuJ3QgdXNlZC4KKyAgICB2b2lk
IGNvbXB1dGVQYWdlUmVjdHNGb3JGcmFtZShGcmFtZSosIGNvbnN0IEludFJlY3QmIHByaW50UmVj
dCwgZmxvYXQgaGVhZGVySGVpZ2h0LCBmbG9hdCBmb290ZXJIZWlnaHQsIGZsb2F0IHVzZXJTY2Fs
ZUZhY3RvciwgVmVjdG9yPEludFJlY3Q+JiBwYWdlcywgaW50JiBwYWdlSGVpZ2h0KTsKKworfQor
CisjZW5kaWYK
</data>
<flag name="review"
          id="12672"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>