<?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>51047</bug_id>
          
          <creation_ts>2010-12-14 11:24:23 -0800</creation_ts>
          <short_desc>Handle complex text input for plug-ins</short_desc>
          <delta_ts>2010-12-14 11:43:05 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>322061</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-12-14 11:24:23 -0800</bug_when>
    <thetext>Handle complex text input for plug-ins</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322068</commentid>
    <comment_count>1</comment_count>
      <attachid>76550</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-12-14 11:31:22 -0800</bug_when>
    <thetext>Created attachment 76550
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>322080</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2010-12-14 11:43:05 -0800</bug_when>
    <thetext>Committed r74046: &lt;http://trac.webkit.org/changeset/74046&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76550</attachid>
            <date>2010-12-14 11:31:22 -0800</date>
            <delta_ts>2010-12-14 11:38:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51047-20101214113120.patch</filename>
            <type>text/plain</type>
            <size>30585</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdDIvQ2hhbmdlTG9nIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
Njc3OWVjMTcwMTU3Nzk3NWRjZjk1NTE0YjA1YjViYTk1MDkzMzAzZS4uNjhhYTZlZjA4MzM5NzNm
ODUzYjc4ZTU5ZmI2MGU3Mzc1YTM2MjViMSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MiBAQAorMjAxMC0xMi0xNCAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhhbmRsZSBjb21wbGV4IHRleHQgaW5wdXQgZm9y
IHBsdWctaW5zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01MTA0NworCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Db250cm9sbGVyUHJveHk6OnNlbmRDb21wbGV4
VGV4dElucHV0KToKKyAgICAgICAgUGFzcyBhbG9uZyB0aGUgdGV4dCBpbnB1dCB0byB0aGUgcGx1
Zy1pbi4KKworICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICBBZGQgU2VuZENvbXBsZXhUZXh0SW5wdXQgbWVzc2FnZS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5o
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1RleHRJbnB1dFdpbmRvd0Nv
bnRyb2xsZXIubW06IEFkZGVkLgorICAgICAgICBBZGQgdGV4dCBpbnB1dCB3aW5kb3cgY29udHJv
bGxlciwgbW9zdGx5IGNvcGllZCBmcm9tIFdlYktpdDEuCisgICAgICAgIAorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IGtleURvd246XSk6
CisgICAgICAgIElmIG5lZWRlZCwgcGFzcyBhbG9uZyB0aGUgZXZlbnQgdG8gdGhlIHRleHQgaW5w
dXQgd2luZG93IGNvbnRyb2xsZXIuCisKKyAgICAgICAgKC1bV0tWaWV3IGlucHV0Q29udGV4dF0p
OgorICAgICAgICBSZXR1cm4gdGhlIGlucHV0IGNvbnRleHQgb2YgdGhlIHRleHQgaW5wdXQgd2lu
ZG93IGNvbnRyb2xsZXIuCisKKyAgICAgICAgKC1bV0tWaWV3IF9zZXRDb21wbGV4VGV4dElucHV0
RW5hYmxlZDpwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcjpdKToKKyAgICAgICAgTm90
aWZ5IHRoZSBpbnB1dCB3aW5kb3cgY29udHJvbGxlciB0aGF0IHRoZSBpbnB1dCBzb3VyY2UgY2hh
bmdlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4pOgorICAg
ICAgICBTZW5kIHRoZSBjb21wbGV4IHRleHQgaW5wdXQgdG8gdGhlIHdlYiBwcm9jZXNzLgorCisg
ICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICBBZGQg
bmV3IGZpbGVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9O
ZXRzY2FwZVBsdWdpbk1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6Y29udmVydFN0cmluZ1RvS2V5
Q29kZXMpOgorICAgICAgICBDb252ZXJ0IGEgc3RyaW5nIHRvIGEgdmVjdG9yIG9mIGtleSBjb2Rl
cyBpbiB0aGUgY3VycmVudCBlbmNvZGluZy4KKworICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBs
dWdpbjo6c2VuZENvbXBsZXhUZXh0SW5wdXQpOgorICAgICAgICBJbiB0aGUgQ29jb2EgZXZlbnQg
bW9kZWwsIGNyZWF0ZSBhbmQgZGlzcGF0Y2ggYW4gTlBDb2NvYUV2ZW50VGV4dElucHV0IGV2ZW50
LgorICAgICAgICBJbiB0aGUgQ2FyYm9uIGV2ZW50IG1vZGVsLCBjb252ZXJ0IHRoZSBzdHJpbmcg
dG8gaW5kaXZpZHVhbCBrZXkgY29kZXMgYW5kIHNlbmQgdGhlbQorICAgICAgICBhcyBrZXkgZG93
biBldmVudHMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm94eTo6c2VuZENvbXBsZXhUZXh0SW5wdXQpOgor
ICAgICAgICBTZW5kIHRoZSB0ZXh0IHRvIHRoZSBwbHVnLWluIGNvbnRyb2xsZXIgcHJveHkuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlBsdWdpblZpZXc6OnNlbmRDb21wbGV4VGV4dElucHV0KToKKyAgICAgICAgSWYgdGhl
IHBsdWctaW4gaGFzIGEgbWF0Y2hpbmcgdGV4dCBpbnB1dCBpZGVudGlmaWVyLCBjYWxsIFBsdWdp
bjo6c2VuZENvbXBsZXhUZXh0SW5wdXQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgQWRkIFNlbmRDb21wbGV4VGV4dElucHV0VG9Q
bHVnaW4gbWVzc2FnZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFn
ZU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2VuZENvbXBsZXhUZXh0SW5wdXRU
b1BsdWdpbik6CisgICAgICAgIEl0ZXJhdGUgb3ZlciBhbGwga25vd24gcGx1Zy1pbiB2aWV3cyBh
bmQgdHJ5IHRvIGZpbmQgb25lIHRvIHNlbmQgdGhlIHRleHQgaW5wdXQgdG8uCisKIDIwMTAtMTIt
MTMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVn
aW5Db250cm9sbGVyUHJveHkuY3BwIGIvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRy
b2xsZXJQcm94eS5jcHAKaW5kZXggMzUyZTFhZGExODdlNWNjOGJkOTU0NDcyNDk1OTk5OGFiNWRk
NDVkNi4uYWY3NzM5MTNhNjU2YmZjMjc5MGYyZTNiMjY5NzIxZGNmYjZhODA1YSAxMDA2NDQKLS0t
IGEvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKKysrIGIv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAKQEAgLTQxNiw2
ICs0MTYsMTIgQEAgdm9pZCBQbHVnaW5Db250cm9sbGVyUHJveHk6OndpbmRvd1Zpc2liaWxpdHlD
aGFuZ2VkKGJvb2wgaXNWaXNpYmxlKQogewogICAgIG1fcGx1Z2luLT53aW5kb3dWaXNpYmlsaXR5
Q2hhbmdlZChpc1Zpc2libGUpOwogfQorCit2b2lkIFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6c2Vu
ZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCit7CisgICAgbV9wbHVn
aW4tPnNlbmRDb21wbGV4VGV4dElucHV0KHRleHRJbnB1dCk7Cit9CisKICNlbmRpZgogCiB2b2lk
IFBsdWdpbkNvbnRyb2xsZXJQcm94eTo6cHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKGJvb2wg
aXNQcml2YXRlQnJvd3NpbmdFbmFibGVkKQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9QbHVnaW5Qcm9j
ZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oIGIvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdp
bkNvbnRyb2xsZXJQcm94eS5oCmluZGV4IDYyZjU5YzYwM2U1OWVhZWExZjg5YmY2NmZlZjJjMTM3
N2Q1Y2NmMzYuLjFhYjJjYTZiNjAxZmQ4MTRkZWZjNjVlMzY4MDkzNTZhMDljYmFkMDAgMTAwNjQ0
Ci0tLSBhL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkuaAorKysg
Yi9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5LmgKQEAgLTEyNCw3
ICsxMjQsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgd2luZG93Rm9jdXNDaGFuZ2VkKGJvb2wpOwog
ICAgIHZvaWQgd2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsKICAgICB2b2lkIHdpbmRvd1Zpc2liaWxp
dHlDaGFuZ2VkKGJvb2wpOworICAgIHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3Ry
aW5nJiB0ZXh0SW5wdXQpOwogI2VuZGlmCisKICAgICB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRl
Q2hhbmdlZChib29sKTsKIAogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CmRpZmYgLS1n
aXQgYS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2Vz
LmluIGIvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5tZXNzYWdl
cy5pbgppbmRleCBiMzcyN2FhMjFmMjE5YWM5ZjJhOWI1NTAzOThmMjk2NDk4NTIzZjNmLi42MGZk
M2RmM2ZkY2UwNTcyZjU3YTNiZDU0YWIzN2NkYjQ3NjMzOGQ2IDEwMDY0NAotLS0gYS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvUGx1Z2luQ29udHJvbGxlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Db250cm9sbGVyUHJveHkubWVzc2FnZXMuaW4KQEAg
LTg2LDYgKzg2LDkgQEAgbWVzc2FnZXMgLT4gUGx1Z2luQ29udHJvbGxlclByb3h5IHsKICAgICAj
IEdldCBhIHJlZmVyZW5jZSB0byB0aGUgcGx1Zy1pbidzIHNjcmlwdGFibGUgTlBPYmplY3QuCiAg
ICAgR2V0UGx1Z2luU2NyaXB0YWJsZU5QT2JqZWN0KCkgLT4gKHVpbnQ2NF90IHBsdWdpblNjcmlw
dGFibGVOUE9iamVjdElEKQogCisgICAgIyBTZW5kIHRoZSBjb21wbGV4IHRleHQgaW5wdXQgdG8g
dGhlIHBsdWctaW4uCisgICAgU2VuZENvbXBsZXhUZXh0SW5wdXQoV1RGOjpTdHJpbmcgdGV4dElu
cHV0KQorCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICMgU2VudCB3aGVuIHRoZSBjb250YWluaW5n
IE5TV2luZG93J3MgZm9jdXMgY2hhbmdlcwogICAgIFdpbmRvd0ZvY3VzQ2hhbmdlZChib29sIGhh
c0ZvY3VzKQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1RleHRJbnB1
dFdpbmRvd0NvbnRyb2xsZXIuaCBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tUZXh0SW5w
dXRXaW5kb3dDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjJhZDNiMGEzMTEyYjVhOGQzOWUxNzdi
MGRmMjFhMjg3Njk4OGM5MwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmgKQEAgLTAsMCArMSw0NCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IFdLVGV4dElucHV0V2luZG93Q29udHJvbGxlcl9oCisjZGVmaW5lIFdLVGV4dElucHV0V2luZG93
Q29udHJvbGxlcl9oCisKK0BjbGFzcyBXS1RleHRJbnB1dFBhbmVsOworCitAaW50ZXJmYWNlIFdL
VGV4dElucHV0V2luZG93Q29udHJvbGxlciA6IE5TT2JqZWN0IHsKKyAgICBXS1RleHRJbnB1dFBh
bmVsICpfcGFuZWw7Cit9CisKKysgKFdLVGV4dElucHV0V2luZG93Q29udHJvbGxlciAqKXNoYXJl
ZFRleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXI7CisKKy0gKE5TVGV4dElucHV0Q29udGV4dCAqKWlu
cHV0Q29udGV4dDsKKy0gKEJPT0wpaW50ZXJwcmV0S2V5RXZlbnQ6KE5TRXZlbnQgKilldmVudCBz
dHJpbmc6KE5TU3RyaW5nICoqKXN0cmluZzsKKworLSAodm9pZClrZXlib2FyZElucHV0U291cmNl
Q2hhbmdlZDsKKworQGVuZAorCisjZW5kaWYgLy8gV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVy
X2gKZGlmZiAtLWdpdCBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tUZXh0SW5wdXRXaW5k
b3dDb250cm9sbGVyLm1tIGIvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1RleHRJbnB1dFdp
bmRvd0NvbnRyb2xsZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjdkYWUzMTAyM2UwYWI5NzU2NzkzMzgyZDU2
ZDczNjk3M2JjZWMzYgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLm1tCkBAIC0wLDAgKzEsMTU2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgIldLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5oIgorCisjaW5j
bHVkZSA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisKK0BpbnRlcmZhY2UgV0tUZXh0SW5wdXRQ
YW5lbCA6IE5TUGFuZWwgeworICAgIE5TVGV4dFZpZXcgKl9pbnB1dFRleHRWaWV3OworfQorCist
IChOU1RleHRJbnB1dENvbnRleHQgKilfaW5wdXRDb250ZXh0OworLSAoQk9PTClfaW50ZXJwcmV0
S2V5RXZlbnQ6KE5TRXZlbnQgKilldmVudCBzdHJpbmc6KE5TU3RyaW5nICoqKXN0cmluZzsKKwor
QGVuZAorCisjZGVmaW5lIGlucHV0V2luZG93SGVpZ2h0IDIwCisKK0BpbXBsZW1lbnRhdGlvbiBX
S1RleHRJbnB1dFBhbmVsCisKKy0gKHZvaWQpZGVhbGxvYworeworICAgIFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZl07CisgICAgCisgICAg
W19pbnB1dFRleHRWaWV3IHJlbGVhc2VdOworICAgIAorICAgIFtzdXBlciBkZWFsbG9jXTsKK30K
KworLSAoaWQpaW5pdAoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhDb250ZW50UmVjdDpO
U1plcm9SZWN0IHN0eWxlTWFzazpXS0dldElucHV0UGFuZWxXaW5kb3dTdHlsZSgpIGJhY2tpbmc6
TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpZRVNdOworICAgIGlmICghc2VsZikKKyAgICAg
ICAgcmV0dXJuIG5pbDsKKyAgICAKKyAgICAvLyBTZXQgdGhlIGZyYW1lIHNpemUuCisgICAgTlNS
ZWN0IHZpc2libGVGcmFtZSA9IFtbTlNTY3JlZW4gbWFpblNjcmVlbl0gdmlzaWJsZUZyYW1lXTsK
KyAgICBOU1JlY3QgZnJhbWUgPSBOU01ha2VSZWN0KHZpc2libGVGcmFtZS5vcmlnaW4ueCwgdmlz
aWJsZUZyYW1lLm9yaWdpbi55LCB2aXNpYmxlRnJhbWUuc2l6ZS53aWR0aCwgaW5wdXRXaW5kb3dI
ZWlnaHQpOworICAgICAKKyAgICBbc2VsZiBzZXRGcmFtZTpmcmFtZSBkaXNwbGF5Ok5PXTsKKyAg
ICAgICAgCisgICAgX2lucHV0VGV4dFZpZXcgPSBbW05TVGV4dFZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6W3NlbGYuY29udGVudFZpZXcgZnJhbWVdXTsgICAgICAgIAorICAgIF9pbnB1dFRleHRW
aWV3LmF1dG9yZXNpemluZ01hc2sgPSBOU1ZpZXdXaWR0aFNpemFibGUgfCBOU1ZpZXdIZWlnaHRT
aXphYmxlIHwgTlNWaWV3TWF4WE1hcmdpbiB8IE5TVmlld01pblhNYXJnaW4gfCBOU1ZpZXdNYXhZ
TWFyZ2luIHwgTlNWaWV3TWluWU1hcmdpbjsKKyAgICAgICAgCisgICAgTlNTY3JvbGxWaWV3KiBz
Y3JvbGxWaWV3ID0gW1tOU1Njcm9sbFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6W3NlbGYuY29u
dGVudFZpZXcgZnJhbWVdXTsKKyAgICBzY3JvbGxWaWV3LmRvY3VtZW50VmlldyA9IF9pbnB1dFRl
eHRWaWV3OworICAgIHNlbGYuY29udGVudFZpZXcgPSBzY3JvbGxWaWV3OworICAgIFtzY3JvbGxW
aWV3IHJlbGVhc2VdOworICAgICAgICAKKyAgICBbc2VsZiBzZXRGbG9hdGluZ1BhbmVsOllFU107
CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClfa2V5Ym9hcmRJbnB1dFNvdXJjZUNo
YW5nZWQKK3sKKyAgICBbX2lucHV0VGV4dFZpZXcgc2V0U3RyaW5nOkAiIl07CisgICAgW3NlbGYg
b3JkZXJPdXQ6bmlsXTsKK30KKworLSAoQk9PTClfaW50ZXJwcmV0S2V5RXZlbnQ6KE5TRXZlbnQg
KilldmVudCBzdHJpbmc6KE5TU3RyaW5nICoqKXN0cmluZworeworICAgIEJPT0wgaGFkTWFya2Vk
VGV4dCA9IFtfaW5wdXRUZXh0VmlldyBoYXNNYXJrZWRUZXh0XTsKKyAKKyAgICAqc3RyaW5nID0g
bmlsOworICAgIAorICAgIGlmICghW1tfaW5wdXRUZXh0VmlldyBpbnB1dENvbnRleHRdIGhhbmRs
ZUV2ZW50OmV2ZW50XSkKKyAgICAgICAgcmV0dXJuIE5POworICAgIAorICAgIGlmIChbX2lucHV0
VGV4dFZpZXcgaGFzTWFya2VkVGV4dF0pIHsKKyAgICAgICAgLy8gRG9uJ3Qgc2hvdyB0aGUgaW5w
dXQgbWV0aG9kIHdpbmRvdyBmb3IgZGVhZCBrZXlzCisgICAgICAgIGlmIChbW2V2ZW50IGNoYXJh
Y3RlcnNdIGxlbmd0aF0gPiAwKQorICAgICAgICAgICAgW3NlbGYgb3JkZXJGcm9udDpuaWxdOwor
CisgICAgICAgIHJldHVybiBZRVM7CisgICAgfQorICAgIAorICAgIGlmIChoYWRNYXJrZWRUZXh0
KSB7CisgICAgICAgIFtzZWxmIG9yZGVyT3V0Om5pbF07CisKKyAgICAgICAgTlNTdHJpbmcgKnRl
eHQgPSBbW19pbnB1dFRleHRWaWV3IHRleHRTdG9yYWdlXSBzdHJpbmddOworICAgICAgICBpZiAo
W3RleHQgbGVuZ3RoXSA+IDApCisgICAgICAgICAgICAqc3RyaW5nID0gW1t0ZXh0IGNvcHldIGF1
dG9yZWxlYXNlXTsKKyAgICB9CisgICAgICAgICAgICAKKyAgICBbX2lucHV0VGV4dFZpZXcgc2V0
U3RyaW5nOkAiIl07CisgICAgcmV0dXJuIGhhZE1hcmtlZFRleHQ7Cit9CisKKy0gKE5TVGV4dElu
cHV0Q29udGV4dCAqKV9pbnB1dENvbnRleHQKK3sKKyAgICByZXR1cm4gW19pbnB1dFRleHRWaWV3
IGlucHV0Q29udGV4dF07Cit9CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLVGV4dElucHV0
V2luZG93Q29udHJvbGxlcgorCisrIChXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIgKilzaGFy
ZWRUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyCit7CisgICAgc3RhdGljIFdLVGV4dElucHV0V2lu
ZG93Q29udHJvbGxlciAqdGV4dElucHV0V2luZG93Q29udHJvbGxlcjsKKyAgICBpZiAoIXRleHRJ
bnB1dFdpbmRvd0NvbnRyb2xsZXIpCisgICAgICAgIHRleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIg
PSBbW1dLVGV4dElucHV0V2luZG93Q29udHJvbGxlciBhbGxvY10gaW5pdF07CisgICAgCisgICAg
cmV0dXJuIHRleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXI7Cit9CisKKy0gKGlkKWluaXQKK3sKKyAg
ICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5p
bDsKKyAgICAKKyAgICBfcGFuZWwgPSBbW1dLVGV4dElucHV0UGFuZWwgYWxsb2NdIGluaXRdOwor
ICAgIAorICAgIHJldHVybiBzZWxmOworfQorCistIChOU1RleHRJbnB1dENvbnRleHQgKilpbnB1
dENvbnRleHQKK3sKKyAgICByZXR1cm4gW19wYW5lbCBfaW5wdXRDb250ZXh0XTsKK30KKworLSAo
Qk9PTClpbnRlcnByZXRLZXlFdmVudDooTlNFdmVudCAqKWV2ZW50IHN0cmluZzooTlNTdHJpbmcg
Kiopc3RyaW5nCit7CisgICAgcmV0dXJuIFtfcGFuZWwgX2ludGVycHJldEtleUV2ZW50OmV2ZW50
IHN0cmluZzpzdHJpbmddOworfQorCistICh2b2lkKWtleWJvYXJkSW5wdXRTb3VyY2VDaGFuZ2Vk
Cit7CisgICAgW19wYW5lbCBfa2V5Ym9hcmRJbnB1dFNvdXJjZUNoYW5nZWRdOworfQorCitAZW5k
CmRpZmYgLS1naXQgYS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDg4YmUwNmJkZWNhZTc1YTcwYTgy
NWY4NzIwNDMwYzkyYzNmYzkyN2EuLjM2MTgxNTIwNjgyNDI3MDk3NjI2MmJmMDdkMDIzMjc1NGY4
YWM1NDcgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisr
KyBiL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0zOCw2ICszOCw3IEBA
CiAjaW1wb3J0ICJQREZWaWV3Q29udHJvbGxlci5oIgogI2ltcG9ydCAiUGFnZUNsaWVudEltcGwu
aCIKICNpbXBvcnQgIlJ1bkxvb3AuaCIKKyNpbXBvcnQgIldLVGV4dElucHV0V2luZG93Q29udHJv
bGxlci5oIgogI2ltcG9ydCAiV2ViQ29udGV4dC5oIgogI2ltcG9ydCAiV2ViRXZlbnRGYWN0b3J5
LmgiCiAjaW1wb3J0ICJXZWJQYWdlLmgiCkBAIC01MjMsNiArNTI0LDE2IEBAIC0gKHZvaWQpa2V5
VXA6KE5TRXZlbnQgKil0aGVFdmVudAogCiAtICh2b2lkKWtleURvd246KE5TRXZlbnQgKil0aGVF
dmVudAogeworICAgIGlmIChfZGF0YS0+X3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVy
KSB7CisgICAgICAgIC8vIFRyeSBmZWVkaW5nIHRoZSBrZXlib2FyZCBldmVudCBkaXJlY3RseSB0
byB0aGUgcGx1Zy1pbi4KKyAgICAgICAgTlNTdHJpbmcgKnN0cmluZyA9IG5pbDsKKyAgICAgICAg
aWYgKFtbV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyIHNoYXJlZFRleHRJbnB1dFdpbmRvd0Nv
bnRyb2xsZXJdIGludGVycHJldEtleUV2ZW50OnRoZUV2ZW50IHN0cmluZzomc3RyaW5nXSkgewor
ICAgICAgICAgICAgaWYgKHN0cmluZykKKyAgICAgICAgICAgICAgICBfZGF0YS0+X3BhZ2UtPnNl
bmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4oX2RhdGEtPl9wbHVnaW5Db21wbGV4VGV4dElucHV0
SWRlbnRpZmllciwgc3RyaW5nKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
IH0KKwogICAgIF9kYXRhLT5fdW5kZXJsaW5lcy5jbGVhcigpOwogICAgIF9kYXRhLT5fc2VsZWN0
aW9uU3RhcnQgPSAwOwogICAgIF9kYXRhLT5fc2VsZWN0aW9uRW5kID0gMDsKQEAgLTUzOSw2ICs1
NTAsMTMgQEAgLSAodm9pZClrZXlEb3duOihOU0V2ZW50ICopdGhlRXZlbnQKICAgICBfZGF0YS0+
X3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCh0aGVFdmVu
dCwgc2VsZikpOwogfQogCistIChOU1RleHRJbnB1dENvbnRleHQgKilpbnB1dENvbnRleHQgewor
ICAgIGlmIChfZGF0YS0+X3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKQorICAgICAg
ICByZXR1cm4gW1tXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIgc2hhcmVkVGV4dElucHV0V2lu
ZG93Q29udHJvbGxlcl0gaW5wdXRDb250ZXh0XTsKKworICAgIHJldHVybiBbc3VwZXIgaW5wdXRD
b250ZXh0XTsKK30KKwogLSAoTlNSYW5nZSlzZWxlY3RlZFJhbmdlCiB7CiAgICAgaWYgKF9kYXRh
LT5faXNTZWxlY3Rpb25Ob25lIHx8ICFfZGF0YS0+X2lzU2VsZWN0aW9uRWRpdGFibGUpCkBAIC0x
MTczLDYgKzExOTEsNyBAQCAtICh2b2lkKV9zZXRDb21wbGV4VGV4dElucHV0RW5hYmxlZDooQk9P
TCljb21wbGV4VGV4dElucHV0RW5hYmxlZCBwbHVnaW5Db21wbGV4VAogCiAgICAgaWYgKGlucHV0
U291cmNlQ2hhbmdlZCkgewogICAgICAgICAvLyBJbmZvcm0gdGhlIG91dCBvZiBsaW5lIHdpbmRv
dyB0aGF0IHRoZSBpbnB1dCBzb3VyY2UgY2hhbmdlZC4KKyAgICAgICAgW1tXS1RleHRJbnB1dFdp
bmRvd0NvbnRyb2xsZXIgc2hhcmVkVGV4dElucHV0V2luZG93Q29udHJvbGxlcl0ga2V5Ym9hcmRJ
bnB1dFNvdXJjZUNoYW5nZWRdOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKaW5kZXggMjNkYThhN2VkNzdiMWEyMTMxMDRkMGQwMDRkOWIwYWQzYjAxNzJlZC4uYTNmMmZl
YTJiNzQ5YWVkMDQ5YmMxYzYwMjQ2MmY1YzNmZGFlNjJlMSAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC0xMzE5LDEyICsxMzE5LDIyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpiYWNr
Rm9yd2FyZEZvcndhcmRMaXN0Q291bnQoaW50MzJfdCYgY291bnQpCiAgICAgY291bnQgPSBtX2Jh
Y2tGb3J3YXJkTGlzdC0+Zm9yd2FyZExpc3RDb3VudCgpOwogfQogCi0vLyBTZWxlY3Rpb24gY2hh
bmdlIHN1cHBvcnQKICNpZiBQTEFURk9STShNQUMpCisvLyBTZWxlY3Rpb24gY2hhbmdlIHN1cHBv
cnQKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTZWxlY3Rpb25DaGFuZ2UoYm9vbCBpc05vbmUsIGJv
b2wgaXNDb250ZW50RWRpdGFibGUsIGJvb2wgaXNQYXNzd29yZEZpZWxkLCBib29sIGhhc0NvbXBv
c2l0aW9uLCB1aW50NjRfdCBsb2NhdGlvbiwgdWludDY0X3QgbGVuZ3RoKQogewogICAgIG1fcGFn
ZUNsaWVudC0+c2VsZWN0aW9uQ2hhbmdlZChpc05vbmUsIGlzQ29udGVudEVkaXRhYmxlLCBpc1Bh
c3N3b3JkRmllbGQsIGhhc0NvbXBvc2l0aW9uLCBsb2NhdGlvbiwgbGVuZ3RoKTsKIH0KKworLy8g
Q29tcGxleCB0ZXh0IGlucHV0IHN1cHBvcnQgZm9yIHBsdWctaW5zLgordm9pZCBXZWJQYWdlUHJv
eHk6OnNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4odWludDY0X3QgcGx1Z2luQ29tcGxleFRl
eHRJbnB1dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdGV4dElucHV0KQoreworICAgIGlmICgh
aXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgcHJvY2VzcygpLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpTZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKHBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRJZGVudGlmaWVyLCB0ZXh0SW5wdXQpLCBtX3BhZ2VJRCk7Cit9CisgICAgCiAj
ZWxzZSAgICAKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRTZWxlY3Rpb25DaGFuZ2UoYm9vbCBpc05v
bmUsIGJvb2wgaXNDb250ZW50RWRpdGFibGUsIGJvb2wgaXNQYXNzd29yZEZpZWxkLCBib29sIGhh
c0NvbXBvc2l0aW9uKQogewpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmggYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyMjNlNTRiODA3
NzBiZDhiMTM5NjI4ZWJlNWRhYTk2YTU2MjJlZWQ2Li5kOGYwY2IyNzYwMTZmMDI5MjA4Y2M4ZjBm
MGI2NTg0YjQzOTk0NzFmIDEwMDY0NAotLS0gYS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAorKysgYi9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTc4LDYgKzE3
OCw5IEBAIHB1YmxpYzoKICAgICB1aW50NjRfdCBjaGFyYWN0ZXJJbmRleEZvclBvaW50KGNvbnN0
IFdlYkNvcmU6OkludFBvaW50KTsKICAgICBXZWJDb3JlOjpJbnRSZWN0IGZpcnN0UmVjdEZvckNo
YXJhY3RlclJhbmdlKHVpbnQ2NF90LCB1aW50NjRfdCk7CiAgICAgdm9pZCBkaWRTZWxlY3Rpb25D
aGFuZ2UoYm9vbCwgYm9vbCwgYm9vbCwgYm9vbCwgdWludDY0X3QsIHVpbnQ2NF90KTsKKworICAg
IHZvaWQgc2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCBwbHVnaW5Db21wbGV4
VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOworCiAjZWxzZQog
ICAgIHZvaWQgZGlkU2VsZWN0aW9uQ2hhbmdlKGJvb2wsIGJvb2wsIGJvb2wsIGJvb2wpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDk5OTkw
YjExMGY4OTdjYTVkOTA4YmQ3ZmZjYTczMTIwMmZhN2Q1MzYuLjE2ZmViMGZlNzk5MGE5ZjhkYWY0
ZGY4YjY3YmQyMTM0MWFiODEzZDEgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViS2l0Mi54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xMDgsNiArMTA4LDggQEAKIAkJMUEzRTczNjExMUNDMjY1OTAwN0JENTM5
IC8qIFdlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMUEzRTczNUYxMUNDMjY1OTAwN0JENTM5IC8qIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5oICovOyB9OwogCQkxQTNFNzM2MjExQ0MyNjU5MDA3QkQ1MzkgLyogV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBM0U3MzYwMTFDQzI2NTkwMDdCRDUzOSAvKiBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwICovOyB9OwogCQkxQTQzM0YwRDExM0M1M0REMDBGQUNERTkgLyogV2ViRXJyb3JzLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTQzM0YwQzEx
M0M1M0REMDBGQUNERTkgLyogV2ViRXJyb3JzLmggKi87IH07CisJCTFBNEE5QUE4MTJCN0U3OTYw
MDhGRTk4NCAvKiBXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNEE5QUE2MTJCN0U3OTYwMDhGRTk4NCAv
KiBXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIuaCAqLzsgfTsKKwkJMUE0QTlBQTkxMkI3RTc5
NjAwOEZFOTg0IC8qIFdLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNEE5QUE3MTJCN0U3OTYwMDhGRTk4
NCAvKiBXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW0gKi87IH07CiAJCTFBNTBEQjY2MTEw
QTNENTcwMDBEM0ZFNSAvKiBXZWJQcm9jZXNzLmFwcCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE1MERCMUUxMTBBM0JEQzAwMEQzRkU1IC8qIFdlYlBy
b2Nlc3MuYXBwICovOyB9OwogCQkxQTU5NEFCQTExMkExRkI2MDA5REU3QzcgLyogV2ViVUlDbGll
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE1
OTRBQjgxMTJBMUZCNjAwOURFN0M3IC8qIFdlYlVJQ2xpZW50LmNwcCAqLzsgfTsKIAkJMUE1OTRB
QkIxMTJBMUZCNjAwOURFN0M3IC8qIFdlYlVJQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTU5NEFCOTExMkExRkI2MDA5REU3QzcgLyogV2Vi
VUlDbGllbnQuaCAqLzsgfTsKQEAgLTczOCw2ICs3NDAsOCBAQAogCQkxQTNFNzM1RjExQ0MyNjU5
MDA3QkQ1MzkgLyogV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQTNFNzM2MDExQ0MyNjU5MDA3QkQ1MzkgLyogV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNDMzRjBDMTEz
QzUzREQwMEZBQ0RFOSAvKiBXZWJFcnJvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViRXJyb3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBNEE5QUE2
MTJCN0U3OTYwMDhGRTk4NCAvKiBXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBNEE5QUE3MTJCN0U3OTYwMDhGRTk4NCAv
KiBXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNEY5NzZBMTAwRTdCNjYwMDYzN0ExOCAvKiBCYXNlLnhj
Y29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2UueGNjb25maWc7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNEY5NzZCMTAwRTdCNjYwMDYzN0ExOCAvKiBE
ZWJ1Z1JlbGVhc2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gRGVi
dWdSZWxlYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTRGOTc2
QzEwMEU3QjY2MDA2MzdBMTggLyogRmVhdHVyZURlZmluZXMueGNjb25maWcgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnhjY29uZmlnOyBwYXRoID0gRmVhdHVyZURlZmluZXMueGNjb25maWc7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMDE5LDYgKzIwMjMsOCBAQAogCQkJCTFBQUYwNjEzMTJCMDEx
MzEwMDhFNDlFMiAvKiBQREZWaWV3Q29udHJvbGxlci5tbSAqLywKIAkJCQlCQzExMUI0QjExMkY2
MTkyMDAzMzdCQUIgLyogUGFnZUNsaWVudEltcGwuaCAqLywKIAkJCQlCQzExMUI0QzExMkY2MTky
MDAzMzdCQUIgLyogUGFnZUNsaWVudEltcGwubW0gKi8sCisJCQkJMUE0QTlBQTYxMkI3RTc5NjAw
OEZFOTg0IC8qIFdLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5oICovLAorCQkJCTFBNEE5QUE3
MTJCN0U3OTYwMDhGRTk4NCAvKiBXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIubW0gKi8sCiAJ
CQkJQkM4Njk5QjIxMTZBQURBQTAwMkE5MjVCIC8qIFdLVmlldy5oICovLAogCQkJCUJDODY5OUIz
MTE2QUFEQUEwMDJBOTI1QiAvKiBXS1ZpZXcubW0gKi8sCiAJCQkJQkM4Njk5QjQxMTZBQURBQTAw
MkE5MjVCIC8qIFdLVmlld0ludGVybmFsLmggKi8sCkBAIC0yNjkxLDYgKzI2OTcsNyBAQAogCQkJ
CUY2MkE3NjYyMTJCMUFCRUQwMDA1RjFCNiAvKiBXS0RhdGFiYXNlTWFuYWdlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRjYyQTc2QjcxMkIxQjI1RjAwMDVGMUI2IC8qIFdlYkRhdGFiYXNlTWFuYWdl
ck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGNjJBNzZCOTEyQjFCMjVGMDAwNUYxQjYg
LyogV2ViRGF0YWJhc2VNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MUE0QTlBQTgxMkI3RTc5NjAwOEZFOTg0IC8qIFdLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC0zMTA2LDYgKzMxMTMsNyBAQAogCQkJCUY2MkE3NkI2MTJCMUIy
NUYwMDA1RjFCNiAvKiBXZWJEYXRhYmFzZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJRjYyQTc2QjgxMkIxQjI1RjAwMDVGMUI2IC8qIFdlYkRhdGFiYXNlTWFu
YWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDODU3RTg3
MTJCNzFFQkIwMEVERUIyRSAvKiBXZWJQYWdlUHJveHlNYWMubW0gaW4gU291cmNlcyAqLywKKwkJ
CQkxQTRBOUFBOTEyQjdFNzk2MDA4RkU5ODQgLyogV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVy
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
TmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaAppbmRleCAyOWU3MWQxNWRjMzU1ZTBlOTJmNjM1MWY0
MmFmOTg1YWJmMzRlNjQxLi5jODNkYzE1N2VjOTM1NWM2NjJjNTdkZjUxYzYyZGYzMjUxNmRkZGI0
IDEwMDY0NAotLS0gYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2Fw
ZVBsdWdpbi5oCisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNj
YXBlUGx1Z2luLmgKQEAgLTE2Myw2ICsxNjMsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCB3aW5kb3dWaXNpYmlsaXR5Q2hhbmdlZChib29sKTsKIAogICAgIHZpcnR1YWwgdWludDY0X3Qg
cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZv
aWQgc2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOwogI2VuZGlm
CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkKGJvb2wpOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNj
YXBlUGx1Z2luTWFjLm1tIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFj
L05ldHNjYXBlUGx1Z2luTWFjLm1tCmluZGV4IDBjZDRlNWJlMGM4YjlhNjEwYmU4MDJlZTIzZGYy
MTJhZWFlOTVmNGIuLmFkZDc2YzM3NjFmODhkODZhNzc1ZjI1NGFkZmNhNjRiNWQzNjVjNjggMTAw
NjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2Fw
ZVBsdWdpbk1hYy5tbQorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9t
YWMvTmV0c2NhcGVQbHVnaW5NYWMubW0KQEAgLTI4LDYgKzI4LDggQEAKICNpbmNsdWRlICJQbHVn
aW5Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0dyYXBoaWNzQ29udGV4dC5oPgorI2luY2x1ZGUgPENhcmJvbi9DYXJib24uaD4KKyNpbmNsdWRl
IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
QEAgLTcxNyw2ICs3MTksNzkgQEAgdWludDY0X3QgTmV0c2NhcGVQbHVnaW46OnBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAorCisjaWZu
ZGVmIE5QX05PX0NBUkJPTgorc3RhdGljIGJvb2wgY29udmVydFN0cmluZ1RvS2V5Q29kZXMoY29u
c3QgU3RyaW5nJiBzdHJpbmcsIFNjcmlwdENvZGUgc2NyaXB0Q29kZSwgVmVjdG9yPFVJbnQ4PiYg
a2V5Q29kZXMpCit7CisgICAgLy8gQ3JlYXRlIHRoZSBtYXBwaW5nLgorICAgIFVuaWNvZGVNYXBw
aW5nIG1hcHBpbmc7CisKKyAgICBpZiAoR2V0VGV4dEVuY29kaW5nRnJvbVNjcmlwdEluZm8oc2Ny
aXB0Q29kZSwga1RleHRMYW5ndWFnZURvbnRDYXJlLCBrVGV4dFJlZ2lvbkRvbnRDYXJlLCAmbWFw
cGluZy5vdGhlckVuY29kaW5nKSAhPSBub0VycikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgbWFwcGluZy51bmljb2RlRW5jb2RpbmcgPSBDcmVhdGVUZXh0RW5jb2Rpbmcoa1RleHRFbmNv
ZGluZ1VuaWNvZGVEZWZhdWx0LCBrVGV4dEVuY29kaW5nRGVmYXVsdFZhcmlhbnQsIGtUZXh0RW5j
b2RpbmdEZWZhdWx0Rm9ybWF0KTsKKyAgICBtYXBwaW5nLm1hcHBpbmdWZXJzaW9uID0ga1VuaWNv
ZGVVc2VMYXRlc3RNYXBwaW5nOworICAgIAorICAgIC8vIENyZWF0ZSB0aGUgY29udmVydGVyCisg
ICAgVW5pY29kZVRvVGV4dEluZm8gdGV4dEluZm87CisgICAgCisgICAgaWYgKENyZWF0ZVVuaWNv
ZGVUb1RleHRJbmZvKCZtYXBwaW5nLCAmdGV4dEluZm8pICE9IG5vRXJyKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgCisgICAgQnl0ZUNvdW50IGlucHV0TGVuZ3RoID0gc3RyaW5nLmxlbmd0
aCgpICogc2l6ZW9mKFVuaUNoYXIpOworICAgIEJ5dGVDb3VudCBpbnB1dFJlYWQ7CisgICAgQnl0
ZUNvdW50IG91dHB1dExlbmd0aDsKKyAgICBCeXRlQ291bnQgbWF4T3V0cHV0TGVuZ3RoID0gc3Ry
aW5nLmxlbmd0aCgpICogc2l6ZW9mKFVuaUNoYXIpOworCisgICAgVmVjdG9yPFVJbnQ4PiBvdXRw
dXREYXRhKG1heE91dHB1dExlbmd0aCk7CisgICAgT1NTdGF0dXMgc3RhdHVzID0gQ29udmVydEZy
b21Vbmljb2RlVG9UZXh0KHRleHRJbmZvLCBpbnB1dExlbmd0aCwgc3RyaW5nLmNoYXJhY3RlcnMo
KSwga05pbE9wdGlvbnMsIDAsIDAsIDAsIDAsIG1heE91dHB1dExlbmd0aCwgJmlucHV0UmVhZCwg
Jm91dHB1dExlbmd0aCwgb3V0cHV0RGF0YS5kYXRhKCkpOworICAgIAorICAgIERpc3Bvc2VVbmlj
b2RlVG9UZXh0SW5mbygmdGV4dEluZm8pOworICAgIAorICAgIGlmIChzdGF0dXMgIT0gbm9FcnIp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG91dHB1dERhdGEuc3dhcChrZXlDb2Rlcyk7
CisgICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYKKwordm9pZCBOZXRzY2FwZVBsdWdpbjo6c2Vu
ZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCit7CisgICAgc3dpdGNo
IChtX2V2ZW50TW9kZWwpIHsKKyAgICBjYXNlIE5QRXZlbnRNb2RlbENvY29hOiB7CisgICAgICAg
IE5QQ29jb2FFdmVudCBldmVudCA9IGluaXRpYWxpemVFdmVudChOUENvY29hRXZlbnRUZXh0SW5w
dXQpOworICAgICAgICBldmVudC5kYXRhLnRleHQudGV4dCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TlBO
U1N0cmluZyo+KHN0YXRpY19jYXN0PE5TU3RyaW5nKj4odGV4dElucHV0KSk7CisgICAgICAgIE5Q
UF9IYW5kbGVFdmVudCgmZXZlbnQpOworICAgICAgICBicmVhazsKKyAgICB9CisjaWZuZGVmIE5Q
X05PX0NBUkJPTgorICAgIGNhc2UgTlBFdmVudE1vZGVsQ2FyYm9uOiB7CisgICAgICAgIFNjcmlw
dENvZGUgc2NyaXB0Q29kZSA9IFdLR2V0U2NyaXB0Q29kZUZyb21DdXJyZW50S2V5Ym9hcmRJbnB1
dFNvdXJjZSgpOworICAgICAgICBWZWN0b3I8VUludDg+IGtleUNvZGVzOworCisgICAgICAgIGlm
ICghY29udmVydFN0cmluZ1RvS2V5Q29kZXModGV4dElucHV0LCBzY3JpcHRDb2RlLCBrZXlDb2Rl
cykpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gU2V0IHRoZSBzY3JpcHQgY29k
ZSBhcyB0aGUga2V5Ym9hcmQgc2NyaXB0LiBOb3JtYWxseSBDYXJib24gZG9lcyB0aGlzIHdoZW5l
dmVyIHRoZSBpbnB1dCBzb3VyY2UgY2hhbmdlcy4KKyAgICAgICAgLy8gSG93ZXZlciwgdGhpcyBp
cyBvbmx5IGRvbmUgZm9yIHRoZSBwcm9jZXNzIHRoYXQgaGFzIHRoZSBrZXlib2FyZCBmb2N1cy4g
V2UgY2hlYXQgYW5kIGRvIGl0IGhlcmUgaW5zdGVhZC4KKyAgICAgICAgU2V0U2NyaXB0TWFuYWdl
clZhcmlhYmxlKHNtS2V5U2NyaXB0LCBzY3JpcHRDb2RlKTsKKyAgICAgICAgCisgICAgICAgIEV2
ZW50UmVjb3JkIGV2ZW50ID0gaW5pdGlhbGl6ZUV2ZW50UmVjb3JkKGtleURvd24pOworICAgICAg
ICBldmVudC5tb2RpZmllcnMgPSAwOworCisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
a2V5Q29kZXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgICAgIGV2ZW50Lm1lc3NhZ2UgPSBrZXlD
b2Rlc1tpXTsKKyAgICAgICAgICAgIE5QUF9IYW5kbGVFdmVudCgmZXZlbnQpOworICAgICAgICB9
CisgICAgICAgIGJyZWFrOworICAgIH0KKyNlbmRpZgorICAgIGRlZmF1bHQ6CisgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KK30KKwogUGxhdGZvcm1MYXllciogTmV0c2NhcGVQ
bHVnaW46OnBsdWdpbkxheWVyKCkKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UGxhdGZvcm1M
YXllcio+KG1fcGx1Z2luTGF5ZXIuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luLmggYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4u
aAppbmRleCA1N2IwZDkxMDUwOGFiMDA3Y2NjYzhjNDQ3MjVhNTIzYzM0ZTM0ZDczLi42ZjIwMTU5
YzRjNDMxZTNmZGUxYTczZDM3YmEyYWYyZjZiNTBiMTIxIDEwMDY0NAotLS0gYS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW4uaApAQCAtMTUzLDYgKzE1Myw5IEBAIHB1YmxpYzoKIAogICAgIC8vIEdldCB0aGUg
cGVyIGNvbXBsZXggdGV4dCBpbnB1dCBpZGVudGlmaWVyLgogICAgIHZpcnR1YWwgdWludDY0X3Qg
cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIoKSBjb25zdCA9IDA7CisKKyAgICAvLyBT
ZW5kIHRoZSBjb21wbGV4IHRleHQgaW5wdXQgdG8gdGhlIHBsdWctaW4uCisgICAgdmlydHVhbCB2
b2lkIHNlbmRDb21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElucHV0KSA9IDA7CiAj
ZW5kaWYKIAogICAgIC8vIENhbGxlZCB3aGVuIHRoZSBwcml2YXRlIGJyb3dzaW5nIHN0YXRlIGZv
ciB0aGlzIHBsdWctaW4gY2hhbmdlcy4KZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb3h5LmNwcCBiL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb3h5LmNwcAppbmRleCAzMWRiNDY0MmQzMGM2YjA1MmEzMDFjZmNmOTEzOTE2YzIyZmUwOWFh
Li4zY2FlZGY4M2M3YjFhN2Q2ZGMxMjA4MGViZjdkOTYwYTFlZjZjZmNmIDEwMDY0NAotLS0gYS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAKKysrIGIvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwCkBAIC0zMjMsNiArMzIzLDExIEBAIHVp
bnQ2NF90IFBsdWdpblByb3h5OjpwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpIGNv
bnN0CiAgICAgcmV0dXJuIG1fcGx1Z2luSW5zdGFuY2VJRDsKIH0KIAordm9pZCBQbHVnaW5Qcm94
eTo6c2VuZENvbXBsZXhUZXh0SW5wdXQoY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCit7CisgICAg
bV9jb25uZWN0aW9uLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlBsdWdpbkNvbnRyb2xs
ZXJQcm94eTo6U2VuZENvbXBsZXhUZXh0SW5wdXQodGV4dElucHV0KSwgbV9wbHVnaW5JbnN0YW5j
ZUlEKTsKK30KKwogI2VuZGlmCiAKIHZvaWQgUGx1Z2luUHJveHk6OnByaXZhdGVCcm93c2luZ1N0
YXRlQ2hhbmdlZChib29sIGlzUHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKZGlmZiAtLWdpdCBhL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmggYi9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCmluZGV4IGEyYjY1ZDBkZGJhZGM5MTQ0Nzk5YWQ0NmRl
NDEzYTM5OTgyZWM3MDEuLjA0MzIzMzE0NTA1YmEyYjk3ZTQyYmJhM2FlZjQ5Nzc0ODZmNDM2NTMg
MTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmgKKysr
IGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaApAQCAtOTYsNiArOTYs
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdl
ZChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMpOwog
ICAgIHZpcnR1YWwgdm9pZCB3aW5kb3dWaXNpYmlsaXR5Q2hhbmdlZChib29sKTsKICAgICB2aXJ0
dWFsIHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3Q7Cisg
ICAgdmlydHVhbCB2b2lkIHNlbmRDb21wbGV4VGV4dElucHV0KGNvbnN0IFN0cmluZyYgdGV4dElu
cHV0KTsKICNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHByaXZhdGVCcm93c2luZ1N0YXRlQ2hh
bmdlZChib29sKTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blZpZXcuY3BwIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5k
ZXggYzEyYjQxNGU0MzRiMDgzY2I4YTkzNmRjNjMzNTYwNjU4OTdjN2E2MC4uOWQzOWZhMzU1YzJh
MTMyYmJhMTEzMzI5NTZiNmZiMjc3NzRjMWFlNiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAKQEAgLTM2Miw2ICszNjIsMTggQEAgdm9pZCBQbHVnaW5WaWV3Ojp3
aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2Ny
ZWVuQ28KICAgICBtX3BsdWdpbi0+d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQod2luZG93RnJh
bWVJblNjcmVlbkNvb3JkaW5hdGVzLCB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsKIH0K
IAorYm9vbCBQbHVnaW5WaWV3OjpzZW5kQ29tcGxleFRleHRJbnB1dCh1aW50NjRfdCBwbHVnaW5D
b21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpCit7Cisg
ICAgaWYgKCFtX3BsdWdpbikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKG1fcGx1
Z2luLT5wbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpICE9IHBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX3BsdWdp
bi0+c2VuZENvbXBsZXhUZXh0SW5wdXQodGV4dElucHV0KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KwogI2VuZGlmCiAKIHZvaWQgUGx1Z2luVmlldzo6aW5pdGlhbGl6ZVBsdWdpbigpCmRpZmYgLS1n
aXQgYS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmggYi9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggODkyOWRiYzNiMGY3OTE5OGVhYzFk
NGM5NjAwN2NkMzJlMDZiOTI2My4uOTI4MTM4NWVjZTVmNTE1OGVjMzA4ZTY0NzEwNTFkNzQzZDM4
ZWJkMiAxMDA2NDQKLS0tIGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5o
CisrKyBiL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtNjIsNiAr
NjIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRXaW5kb3dJc1Zpc2libGUoYm9vbCk7CiAgICAg
dm9pZCBzZXRXaW5kb3dJc0ZvY3VzZWQoYm9vbCk7CiAgICAgdm9pZCB3aW5kb3dBbmRWaWV3RnJh
bWVzQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiB3aW5kb3dGcmFtZUluU2NyZWVuQ29v
cmRpbmF0ZXMsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHZpZXdGcmFtZUluV2luZG93Q29vcmRp
bmF0ZXMpOworICAgIGJvb2wgc2VuZENvbXBsZXhUZXh0SW5wdXQodWludDY0X3QgcGx1Z2luQ29t
cGxleFRleHRJbnB1dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdGV4dElucHV0KTsKICNlbmRp
ZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oIGIvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGI4ZjM2
NGQwYjhmODY4OWM3MDFlYTMyNjlhZWU1MmRhMDdmYjI4NmYuLmVlZjgyN2ZkMzJhOTA5MTE2YzAw
YTY1MWMxZjc0MjBhZWI5N2Y3ZWYgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAorKysgYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
QEAgLTIzOSw3ICsyMzksMTAgQEAgcHVibGljOgogICAgIH07CiAKICAgICBTYW5kYm94RXh0ZW5z
aW9uVHJhY2tlciYgc2FuZGJveEV4dGVuc2lvblRyYWNrZXIoKSB7IHJldHVybiBtX3NhbmRib3hF
eHRlbnNpb25UcmFja2VyOyB9CisgICAgCiAjaWYgUExBVEZPUk0oTUFDKQorICAgIHZvaWQgc2Vu
ZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbih1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiB0ZXh0SW5wdXQpOworCiAgICAgdm9pZCBnZXRNYXJr
ZWRSYW5nZSh1aW50NjRfdCYgbG9jYXRpb24sIHVpbnQ2NF90JiBsZW5ndGgpOwogICAgIHZvaWQg
Y2hhcmFjdGVySW5kZXhGb3JQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCBwb2ludCwgdWlu
dDY0X3QmIHJlc3VsdCk7CiAgICAgdm9pZCBmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSh1aW50
NjRfdCBsb2NhdGlvbiwgdWludDY0X3QgbGVuZ3RoLCBXZWJDb3JlOjpJbnRSZWN0JiByZXN1bHRS
ZWN0KTsKZGlmZiAtLWdpdCBhL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4gYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CmluZGV4IDZkNjNmNzFjZDk3MDY3NWU4ZDcwYWRkNjI3YzkwMmU4NzhkYWJkNjIuLjAxYzI3OWFk
YzQ0YjhkZTExMWMzNjk3YzIwMjZjNzhiYzk0Nzk3ZmUgMTAwNjQ0Ci0tLSBhL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtOTQsNiArOTQsOSBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlIHsKICAgICBTZXRXaW5kb3dSZXNpemVyU2l6ZShXZWJDb3JlOjpJbnRTaXpl
IGludGVyc2VjdHNWaWV3KQogCiAjaWYgUExBVEZPUk0oTUFDKQorICAgICMgQ29tcGxleCB0ZXh0
IGlucHV0IHN1cHBvcnQgZm9yIHBsdWctaW5zLgorICAgIFNlbmRDb21wbGV4VGV4dElucHV0VG9Q
bHVnaW4odWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIFN0cmluZyB0
ZXh0SW5wdXQpCisKICAgICBTZXRXaW5kb3dJc1Zpc2libGUoYm9vbCB3aW5kb3dJc1Zpc2libGUp
CiAgICAgV2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQoV2ViQ29yZTo6SW50UmVjdCB3aW5kb3dG
cmFtZUluU2NyZWVuQ29vcmRpbmF0ZXMsIFdlYkNvcmU6OkludFJlY3Qgdmlld0ZyYW1lSW5XaW5k
b3dDb29yZGluYXRlcykKICAgICBHZXRNYXJrZWRSYW5nZSgpIC0+ICh1aW50NjRfdCBsb2NhdGlv
biwgdWludDY0X3QgbGVuZ3RoKQpkaWZmIC0tZ2l0IGEvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1dlYlBhZ2VNYWMubW0gYi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2Vi
UGFnZU1hYy5tbQppbmRleCAxZTgwNTIyNjRjNmNhM2MzOGUzODVhODFlNzllN2Y5ZDU3OGI1ODY1
Li43YmIzMTE1MjBlZTQzMTRhMWQ0NzhiMWY2ODdlYjZhNmNmNmE0YTc3IDEwMDY0NAotLS0gYS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQorKysgYi9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQpAQCAtMjUsNiArMjUsNyBAQAog
CiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogCisjaW5jbHVkZSAiUGx1Z2luVmlldy5oIgogI2luY2x1
ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5j
bHVkZSAiV2ViUGFnZVByb3h5TWVzc2FnZXMuaCIKQEAgLTE1MSw3ICsxNTIsMTUgQEAgdm9pZCBX
ZWJQYWdlOjpjb252ZXJ0UmFuZ2VUb1BsYXRmb3JtUmFuZ2UoV2ViQ29yZTo6RnJhbWUqIGZyYW1l
LCBXZWJDb3JlOjpSYW5nZSAKICAgICBBU1NFUlQodGVzdFJhbmdlLT5zdGFydENvbnRhaW5lcigp
ID09IHNjb3BlKTsKICAgICBsZW5ndGggPSBUZXh0SXRlcmF0b3I6OnJhbmdlTGVuZ3RoKHRlc3RS
YW5nZS5nZXQoKSkgLSBsb2NhdGlvbjsKIH0KLSAgICAKKwordm9pZCBXZWJQYWdlOjpzZW5kQ29t
cGxleFRleHRJbnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCkKK3sKKyAgICBmb3IgKEhhc2hTZXQ8UGx1
Z2luVmlldyo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGx1Z2luVmlld3MuYmVnaW4oKSwgZW5k
ID0gbV9wbHVnaW5WaWV3cy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIGlmICgo
Kml0KS0+c2VuZENvbXBsZXhUZXh0SW5wdXQocGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZp
ZXIsIHRleHRJbnB1dCkpCisgICAgICAgICAgICBicmVhazsKKyAgICB9Cit9CisKIHZvaWQgV2Vi
UGFnZTo6Z2V0TWFya2VkUmFuZ2UodWludDY0X3QmIGxvY2F0aW9uLCB1aW50NjRfdCYgbGVuZ3Ro
KQogewogICAgIGxvY2F0aW9uID0gTlNOb3RGb3VuZDsK
</data>
<flag name="review"
          id="67520"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>