<?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>24115</bug_id>
          
          <creation_ts>2009-02-23 19:11:53 -0800</creation_ts>
          <short_desc>Introduce platform independent stubs for plugins</short_desc>
          <delta_ts>2009-03-18 09:35:32 -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>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Laszlo Gombos">laszlo.gombos</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hausmann</cc>
    
    <cc>kevino</cc>
    
    <cc>vestbo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>110674</commentid>
    <comment_count>0</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-02-23 19:11:53 -0800</bug_when>
    <thetext>I noticed that there are 2 implementations for plug-in stubs. One implementation is under WebCore/plugins/wx for the wx port and the other one is in the WebCore/platform/qt/TemporaryLinkStubs.cpp for certain the Qt ports. There is no reason why the stubs could not be shared between the wx and Qt ports and potentially used by other ports as well. 

The proposal is to promote the wx stubs to top level stubs to the WebCore/plugins directory - similarly as this has been handled for IconDatabase(None) and Threading(None).

Patch will follow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110675</commentid>
    <comment_count>1</comment_count>
      <attachid>27901</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-02-23 19:19:11 -0800</bug_when>
    <thetext>Created attachment 27901
Move wx plug-in stubs to common port independent stubs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110678</commentid>
    <comment_count>2</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-02-23 20:28:25 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=27901) [review]
&gt; Move wx plug-in stubs to common port independent stubs

I forget to mention that this just promotes the wx stubs to be port independent stubs. I intent to create another bug/patch to take advantage of this in the Qt build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114194</commentid>
    <comment_count>3</comment_count>
    <who name="Kevin Ollivier">kevino</who>
    <bug_when>2009-03-18 09:35:32 -0700</bug_when>
    <thetext>Landed in r41786, thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27901</attachid>
            <date>2009-02-23 19:19:11 -0800</date>
            <delta_ts>2009-03-15 12:07:23 -0700</delta_ts>
            <desc>Move wx plug-in stubs to common port independent stubs</desc>
            <filename>patch_24115.txt</filename>
            <type>text/plain</type>
            <size>19862</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTE2NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMDktMDItMjMgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21i
b3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDExNQorICAg
ICAgICBJbnRyb2R1Y2UgcGxhdGZvcm0gaW5kZXBlbmRlbnQgc3R1YnMgZm9yIHBsdWdpbnMuCisK
KyAgICAgICAgKiBwbHVnaW5zL1BsdWdpbkRhdGFOb25lLmNwcDogQ29waWVkIGZyb20gV2ViQ29y
ZS9wbHVnaW5zL3d4L1BsdWdpbkRhdGFXeC5jcHAuCisgICAgICAgICogcGx1Z2lucy9QbHVnaW5Q
YWNrYWdlTm9uZS5jcHA6IENvcGllZCBmcm9tIFdlYkNvcmUvcGx1Z2lucy93eC9QbHVnaW5QYWNr
YWdlV3guY3BwLgorICAgICAgICAqIHBsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwOiBDb3BpZWQg
ZnJvbSBXZWJDb3JlL3BsdWdpbnMvd3gvUGx1Z2luVmlld1d4LmNwcC4KKyAgICAgICAgKiBwbHVn
aW5zL3d4L1BsdWdpbkRhdGFXeC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGx1Z2lucy93eC9Q
bHVnaW5QYWNrYWdlV3guY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsdWdpbnMvd3gvUGx1Z2lu
Vmlld1d4LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiB3ZWJjb3JlLXd4LmJrbDoKKwogMjAwOS0w
Mi0yMyAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYkNvcmUvd2ViY29yZS13eC5ia2wK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS93ZWJjb3JlLXd4LmJrbAkocmV2aXNpb24gNDExNjMpCisr
KyBXZWJDb3JlL3dlYmNvcmUtd3guYmtsCSh3b3JraW5nIGNvcHkpCkBAIC05OCw5ICs5OCw5IEBA
IHd4V2ViQ29yZSBwb3J0IEJha2VmaWxlIHByb2plY3QgZmlsZS4KICAgICAgICAgICAgIHBsYXRm
b3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCiAgICAgICAgICAgICBwbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVNYW5hZ2VyLmNwcAogICAgICAgICAgICAg
Ci0gICAgICAgICAgICBwbHVnaW5zL3d4L1BsdWdpbkRhdGFXeC5jcHAKLSAgICAgICAgICAgIHBs
dWdpbnMvd3gvUGx1Z2luUGFja2FnZVd4LmNwcAotICAgICAgICAgICAgcGx1Z2lucy93eC9QbHVn
aW5WaWV3V3guY3BwCisgICAgICAgICAgICBwbHVnaW5zL1BsdWdpbkRhdGFOb25lLmNwcAorICAg
ICAgICAgICAgcGx1Z2lucy9QbHVnaW5QYWNrYWdlTm9uZS5jcHAKKyAgICAgICAgICAgIHBsdWdp
bnMvUGx1Z2luVmlld05vbmUuY3BwCiAgICAgICAgIDwvc291cmNlcz4KICAgICAgICAgCiAgICAg
ICAgIDwhLS0gcGxhdGZvcm0tZGVwZW5kZW50IHNvdXJjZSBmaWxlcyAtLT4KSW5kZXg6IFdlYkNv
cmUvcGx1Z2lucy9QbHVnaW5EYXRhTm9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVn
aW5zL1BsdWdpbkRhdGFOb25lLmNwcAkocmV2aXNpb24gNDExNjMpCShmcm9tIFdlYkNvcmUvcGx1
Z2lucy93eC9QbHVnaW5EYXRhV3guY3BwOjQxMTYzKQorKysgV2ViQ29yZS9wbHVnaW5zL1BsdWdp
bkRhdGFOb25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA4IEtldmluIE9sbGl2aWVyIDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGx1Z2luRGF0YS5oIgor
CisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2
b2lkIFBsdWdpbkRhdGE6OmluaXRQbHVnaW5zKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit2b2lkIFBsdWdpbkRhdGE6OnJlZnJlc2goKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK307CkluZGV4OiBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZU5vbmUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlTm9uZS5jcHAJKHJldmlz
aW9uIDQxMTYzKQkoZnJvbSBXZWJDb3JlL3BsdWdpbnMvd3gvUGx1Z2luUGFja2FnZVd4LmNwcDo0
MTE2MykKKysrIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlTm9uZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBLZXZpbiBP
bGxpdmllciA8a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJQbHVnaW5QYWNrYWdlLmgiCisKKyNpbmNsdWRlICJDU3RyaW5nLmgi
CisjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCisjaW5jbHVkZSAibnBydW50aW1lX2ltcGwuaCIKKyNpbmNsdWRlICJQbHVnaW5EYXRhYmFz
ZS5oIgorI2luY2x1ZGUgIlBsdWdpbkRlYnVnLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
dm9pZCBQbHVnaW5QYWNrYWdlOjpkZXRlcm1pbmVRdWlya3MoY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFBsdWdpblBhY2thZ2U6OmZl
dGNoSW5mbygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgUGx1Z2luUGFja2FnZTo6bG9hZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Vuc2lnbmVkIFBsdWdpblBhY2thZ2U6Omhhc2goKSBj
b25zdAoreyAKKyAgICBub3RJbXBsZW1lbnRlZCgpOworCisgICAgcmV0dXJuIDA7Cit9CisKK2Jv
b2wgUGx1Z2luUGFja2FnZTo6ZXF1YWwoY29uc3QgUGx1Z2luUGFja2FnZSYgYSwgY29uc3QgUGx1
Z2luUGFja2FnZSYgYikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKworaW50IFBsdWdpblBhY2thZ2U6OmNvbXBhcmVGaWxlVmVyc2lvbihjb25zdCBQbGF0
Zm9ybU1vZHVsZVZlcnNpb24mIGNvbXBhcmVWZXJzaW9uKSBjb25zdAoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK30KSW5kZXg6IFdlYkNvcmUvcGx1Z2lucy9Q
bHVnaW5QYWNrYWdlTm9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbHVnaW5zL1BsdWdp
blBhY2thZ2VOb25lLmNwcAkocmV2aXNpb24gNDExNjMpCisrKyBXZWJDb3JlL3BsdWdpbnMvUGx1
Z2luUGFja2FnZU5vbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotdm9pZCBQbHVnaW5QYWNrYWdlOjpkZXRlcm1pbmVRdWlya3Mo
Y29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKK3ZvaWQgUGx1Z2luUGFja2FnZTo6ZGV0ZXJtaW5lUXVp
cmtzKGNvbnN0IFN0cmluZyYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTU5LDEz
ICs1OSwxMyBAQCB1bnNpZ25lZCBQbHVnaW5QYWNrYWdlOjpoYXNoKCkgY29uc3QKICAgICByZXR1
cm4gMDsKIH0KIAotYm9vbCBQbHVnaW5QYWNrYWdlOjplcXVhbChjb25zdCBQbHVnaW5QYWNrYWdl
JiBhLCBjb25zdCBQbHVnaW5QYWNrYWdlJiBiKQorYm9vbCBQbHVnaW5QYWNrYWdlOjplcXVhbChj
b25zdCBQbHVnaW5QYWNrYWdlJiwgY29uc3QgUGx1Z2luUGFja2FnZSYpCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWludCBQbHVnaW5QYWNrYWdlOjpj
b21wYXJlRmlsZVZlcnNpb24oY29uc3QgUGxhdGZvcm1Nb2R1bGVWZXJzaW9uJiBjb21wYXJlVmVy
c2lvbikgY29uc3QKK2ludCBQbHVnaW5QYWNrYWdlOjpjb21wYXJlRmlsZVZlcnNpb24oY29uc3Qg
UGxhdGZvcm1Nb2R1bGVWZXJzaW9uJikgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
ICAgIHJldHVybiAwOwpJbmRleDogV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwCShyZXZpc2lv
biA0MTE2MykJKGZyb20gV2ViQ29yZS9wbHVnaW5zL3d4L1BsdWdpblZpZXdXeC5jcHA6NDExNjMp
CisrKyBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMTQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEtldmluIE9sbGl2aWVy
IDxrZXZpbm9AdGhlb2xsaXZpZXJzLmNvbT4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisj
aW5jbHVkZSAiUGx1Z2luUGFja2FnZS5oIgorCit1c2luZyBuYW1lc3BhY2UgV1RGOworCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgUGx1Z2luVmlldzo6c2V0Rm9jdXMoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGx1Z2luVmlldzo6c2hvdygpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQbHVnaW5WaWV3OjpoaWRlKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBsdWdpblZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFBsdWdpblZpZXc6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVu
dCogZXZlbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQbHVnaW5WaWV3
OjpoYW5kbGVNb3VzZUV2ZW50KE1vdXNlRXZlbnQqIGV2ZW50KQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgUGx1Z2luVmlldzo6c2V0UGFyZW50KFNjcm9sbFZpZXcqIHBhcmVu
dCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBsdWdpblZpZXc6OnNldE5Q
V2luZG93UmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgUGx1Z2luVmlldzo6c3RvcCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKworY29uc3QgY2hhciogUGx1Z2luVmlldzo6dXNlckFnZW50KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitOUEVycm9yIFBsdWdpblZpZXc6OmhhbmRs
ZVBvc3RSZWFkRmlsZShWZWN0b3I8Y2hhcj4mIGJ1ZmZlciwgdWludDMyIGxlbiwgY29uc3QgY2hh
ciogYnVmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisKKyAgICByZXR1cm4gMDsKK30KKwor
TlBFcnJvciBQbHVnaW5WaWV3OjpnZXRWYWx1ZShOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCog
dmFsdWUpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwordm9p
ZCBQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVjdChOUFJlY3QqIHJlY3QpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVjdChjb25zdCBJ
bnRSZWN0JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBsdWdpblZpZXc6
OmludmFsaWRhdGVSZWdpb24oTlBSZWdpb24gcmVnaW9uKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgUGx1Z2luVmlldzo6Zm9yY2VSZWRyYXcoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK1BsdWdpblZpZXc6On5QbHVnaW5WaWV3KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIFBsdWdpblZpZXc6OmluaXQoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgUGx1Z2luVmlldzo6c2V0UGFyZW50VmlzaWJsZShib29sKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGx1Z2luVmlldzo6dXBkYXRlUGx1
Z2luV2lkZ2V0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlld05vbmUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3Tm9uZS5jcHAJKHJldmlzaW9uIDQx
MTYzKQorKysgV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXdOb25lLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDgsMjcgKzQ4LDI3IEBAIHZvaWQgUGx1Z2luVmlldzo6aGlkZSgpCiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKIH0KIAotdm9pZCBQbHVnaW5WaWV3OjpwYWludChHcmFwaGljc0NvbnRleHQq
IGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCit2b2lkIFBsdWdpblZpZXc6OnBhaW50KEdy
YXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CiAKLXZvaWQgUGx1Z2luVmlldzo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50
KiBldmVudCkKK3ZvaWQgUGx1Z2luVmlldzo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2
ZW50KikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFBsdWdpblZpZXc6Omhh
bmRsZU1vdXNlRXZlbnQoTW91c2VFdmVudCogZXZlbnQpCit2b2lkIFBsdWdpblZpZXc6OmhhbmRs
ZU1vdXNlRXZlbnQoTW91c2VFdmVudCopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAot
dm9pZCBQbHVnaW5WaWV3OjpzZXRQYXJlbnQoU2Nyb2xsVmlldyogcGFyZW50KQordm9pZCBQbHVn
aW5WaWV3OjpzZXRQYXJlbnQoU2Nyb2xsVmlldyopCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAotdm9pZCBQbHVnaW5WaWV3OjpzZXROUFdpbmRvd1JlY3QoY29uc3QgSW50UmVjdCYgcmVj
dCkKK3ZvaWQgUGx1Z2luVmlldzo6c2V0TlBXaW5kb3dSZWN0KGNvbnN0IEludFJlY3QmKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC04NCwyMCArODQsMjAgQEAgY29uc3QgY2hhciog
UGx1Z2luVmlldzo6dXNlckFnZW50KCkKICAgICByZXR1cm4gMDsKIH0KIAotTlBFcnJvciBQbHVn
aW5WaWV3OjpoYW5kbGVQb3N0UmVhZEZpbGUoVmVjdG9yPGNoYXI+JiBidWZmZXIsIHVpbnQzMiBs
ZW4sIGNvbnN0IGNoYXIqIGJ1ZikKK05QRXJyb3IgUGx1Z2luVmlldzo6aGFuZGxlUG9zdFJlYWRG
aWxlKFZlY3RvcjxjaGFyPiYsIHVpbnQzMiwgY29uc3QgY2hhciopCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIAogICAgIHJldHVybiAwOwogfQogCi1OUEVycm9yIFBsdWdpblZpZXc6OmdldFZh
bHVlKE5QTlZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSkKK05QRXJyb3IgUGx1Z2luVmll
dzo6Z2V0VmFsdWUoTlBOVmFyaWFibGUsIHZvaWQqKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgUGx1Z2luVmlldzo6aW52YWxpZGF0ZVJlY3QoTlBS
ZWN0KiByZWN0KQordm9pZCBQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVjdChOUFJlY3QqKQogewog
ICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBQbHVnaW5W
aWV3OjppbnZhbGlkYXRlUmVjdChjb25zdCBJbgogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAK
LXZvaWQgUGx1Z2luVmlldzo6aW52YWxpZGF0ZVJlZ2lvbihOUFJlZ2lvbiByZWdpb24pCit2b2lk
IFBsdWdpblZpZXc6OmludmFsaWRhdGVSZWdpb24oTlBSZWdpb24pCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KSW5kZXg6IFdlYkNvcmUvcGx1Z2lucy93eC9QbHVnaW5EYXRhV3guY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGx1Z2lucy93eC9QbHVnaW5EYXRhV3guY3BwCShyZXZpc2lv
biA0MTE2MykKKysrIFdlYkNvcmUvcGx1Z2lucy93eC9QbHVnaW5EYXRhV3guY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggS2V2aW4g
T2xsaXZpZXIgPGtldmlub0B0aGVvbGxpdmllcnMuY29tPiBBbGwgUmlnaHRzIFJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCi0KLSNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgUGx1Z2luRGF0YTo6aW5pdFBs
dWdpbnMoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgUGx1Z2luRGF0YTo6
cmVmcmVzaCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotfTsKSW5kZXg6IFdlYkNv
cmUvcGx1Z2lucy93eC9QbHVnaW5QYWNrYWdlV3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGx1Z2lucy93eC9QbHVnaW5QYWNrYWdlV3guY3BwCShyZXZpc2lvbiA0MTE2MykKKysrIFdlYkNv
cmUvcGx1Z2lucy93eC9QbHVnaW5QYWNrYWdlV3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDc0
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDggS2V2aW4gT2xsaXZpZXIgPGtldmlu
b0B0aGVvbGxpdmllcnMuY29tPiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiUGx1Z2luUGFja2FnZS5oIgotCi0jaW5jbHVkZSAiQ1N0cmluZy5oIgotI2luY2x1ZGUgIk1J
TUVUeXBlUmVnaXN0cnkuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUg
Im5wcnVudGltZV9pbXBsLmgiCi0jaW5jbHVkZSAiUGx1Z2luRGF0YWJhc2UuaCIKLSNpbmNsdWRl
ICJQbHVnaW5EZWJ1Zy5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXZvaWQgUGx1Z2luUGFj
a2FnZTo6ZGV0ZXJtaW5lUXVpcmtzKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCi17Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLX0KLQotYm9vbCBQbHVnaW5QYWNrYWdlOjpmZXRjaEluZm8oKQotewot
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIFBsdWdp
blBhY2thZ2U6OmxvYWQoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZh
bHNlOwotfQotCi11bnNpZ25lZCBQbHVnaW5QYWNrYWdlOjpoYXNoKCkgY29uc3QKLXsgCi0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLQotICAgIHJldHVybiAwOwotfQotCi1ib29sIFBsdWdpblBhY2th
Z2U6OmVxdWFsKGNvbnN0IFBsdWdpblBhY2thZ2UmIGEsIGNvbnN0IFBsdWdpblBhY2thZ2UmIGIp
Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWludCBQ
bHVnaW5QYWNrYWdlOjpjb21wYXJlRmlsZVZlcnNpb24oY29uc3QgUGxhdGZvcm1Nb2R1bGVWZXJz
aW9uJiBjb21wYXJlVmVyc2lvbikgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiAwOwotfQotCi19CkluZGV4OiBXZWJDb3JlL3BsdWdpbnMvd3gvUGx1Z2luVmlld1d4
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsdWdpbnMvd3gvUGx1Z2luVmlld1d4LmNwcAko
cmV2aXNpb24gNDExNjMpCisrKyBXZWJDb3JlL3BsdWdpbnMvd3gvUGx1Z2luVmlld1d4LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSwxNDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
OCBLZXZpbiBPbGxpdmllciA8a2V2aW5vQHRoZW9sbGl2aWVycy5jb20+IEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgot
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCi0KLSNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIlBsdWdpblBhY2thZ2UuaCIKLQotdXNpbmcgbmFtZXNw
YWNlIFdURjsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi12b2lkIFBsdWdpblZpZXc6OnNldEZv
Y3VzKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFBsdWdpblZpZXc6OnNo
b3coKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgUGx1Z2luVmlldzo6aGlk
ZSgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBQbHVnaW5WaWV3OjpwYWlu
dChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCi17Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBQbHVnaW5WaWV3OjpoYW5kbGVLZXlib2FyZEV2
ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0K
LXZvaWQgUGx1Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudChNb3VzZUV2ZW50KiBldmVudCkKLXsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFBsdWdpblZpZXc6OnNldFBhcmVudChT
Y3JvbGxWaWV3KiBwYXJlbnQpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBQ
bHVnaW5WaWV3OjpzZXROUFdpbmRvd1JlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKLXsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFBsdWdpblZpZXc6OnN0b3AoKQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci19Ci0KLWNvbnN0IGNoYXIqIFBsdWdpblZpZXc6OnVzZXJBZ2VudCgp
Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gMDsKLX0KLQotTlBFcnJvciBQ
bHVnaW5WaWV3OjpoYW5kbGVQb3N0UmVhZEZpbGUoVmVjdG9yPGNoYXI+JiBidWZmZXIsIHVpbnQz
MiBsZW4sIGNvbnN0IGNoYXIqIGJ1ZikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotCi0gICAg
cmV0dXJuIDA7Ci19Ci0KLU5QRXJyb3IgUGx1Z2luVmlldzo6Z2V0VmFsdWUoTlBOVmFyaWFibGUg
dmFyaWFibGUsIHZvaWQqIHZhbHVlKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuIDA7Ci19Ci0KLXZvaWQgUGx1Z2luVmlldzo6aW52YWxpZGF0ZVJlY3QoTlBSZWN0KiByZWN0
KQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgUGx1Z2luVmlldzo6aW52YWxp
ZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQot
dm9pZCBQbHVnaW5WaWV3OjppbnZhbGlkYXRlUmVnaW9uKE5QUmVnaW9uIHJlZ2lvbikKLXsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFBsdWdpblZpZXc6OmZvcmNlUmVkcmF3KCkK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi1QbHVnaW5WaWV3Ojp+UGx1Z2luVmlldygp
Ci17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBQbHVnaW5WaWV3Ojppbml0KCkK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFBsdWdpblZpZXc6OnNldFBhcmVu
dFZpc2libGUoYm9vbCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIFBsdWdp
blZpZXc6OnVwZGF0ZVBsdWdpbldpZGdldCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>
<flag name="review"
          id="13584"
          type_id="1"
          status="+"
          setter="kevino"
    />
          </attachment>
      

    </bug>

</bugzilla>