<?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>70438</bug_id>
          
          <creation_ts>2011-10-19 13:46:25 -0700</creation_ts>
          <short_desc>Add skeleton of an Objective-C WebKit2 API</short_desc>
          <delta_ts>2011-10-19 15:02:39 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>486973</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-10-19 13:46:25 -0700</bug_when>
    <thetext>Add skeleton of an Objective-C WebKit API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486976</commentid>
    <comment_count>1</comment_count>
      <attachid>111669</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-10-19 13:51:08 -0700</bug_when>
    <thetext>Created attachment 111669
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487039</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-10-19 15:02:39 -0700</bug_when>
    <thetext>Committed r97882: &lt;http://trac.webkit.org/changeset/97882&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111669</attachid>
            <date>2011-10-19 13:51:08 -0700</date>
            <delta_ts>2011-10-19 14:42:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70438-20111019135106.patch</filename>
            <type>text/plain</type>
            <size>28294</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3ODc0KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTEtMTAtMTkgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgc2tlbGV0b24gb2YgYW4gT2JqZWN0
aXZlLUMgV2ViS2l0MiBBUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTcwNDM4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkcyBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKFdLUGFnZVJlZiB3cmFw
cGVyKSBhbmQgV0tQcm9jZXNzQ2x1c3RlcgorICAgICAgICAoV0tDb250ZXh0UmVmIHdyYXBwZXIp
IGFzIGluaXRpYWwgZmlsZXMgb2YgYW4gT2JqZWN0aXZlLUMgV2ViS2l0MiBBUEkuIEFsc28sCisg
ICAgICAgIGhvb2sgdGhlbSB1cCBzbyB0aGF0IHlvdSBjYW4gZ2V0IGEgV0tCcm93c2luZ0NvbnRl
eHRDb250cm9sbGVyIGZyb20gdGhlIFdLVmlldworICAgICAgICBhbmQgeW91IGNhbiBjcmVhdGUg
YSBXS1ZpZXcgYXNzb2NpYXRlZCB3aXRoIGEgV0tQcm9jZXNzQ2x1c3Rlci4gVGhlc2UgbmFtZXMg
YXJlCisgICAgICAgIG5vdCBmaW5hbCwgYW5kIHRoaXMgd29yayBpcyBtYWlubHkgYWJvdXQgZ2V0
dGluZyB0aGUgd3JhcHBlciBsaWZldGltZXMgd29ya2VkCisgICAgICAgIG91dC4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5oOiBBZGRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXIubW06IEFkZGVkLgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgZGVh
bGxvY10pOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgcGFnZVJlZl0p
OgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgbG9hZFJlcXVlc3Q6XSk6
CisgICAgICAgICgtW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBsb2FkRmlsZVVSTDpyZXN0
cmljdFRvRmlsZXNXaXRoaW46XSk6CisgICAgICAgICgtW1dLQnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlciBzdG9wTG9hZGluZ10pOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXIgcmVsb2FkXSk6CisgICAgICAgICgtW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciByZWxv
YWRGcm9tT3JpZ2luXSk6CisgICAgICAgICgtW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBn
b0ZvcndhcmRdKToKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIGNhbkdv
Rm9yd2FyZF0pOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgZ29CYWNr
XSk6CisgICAgICAgICgtW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBjYW5Hb0JhY2tdKToK
KyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIGluaXRXaXRoUGFnZVJlZjpd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXJJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgQWRkIHdyYXBwZXIgZm9yIFdLUGFnZVJlZi4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLUHJvY2Vzc0NsdXN0ZXIuaDogQWRkZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tQcm9jZXNzQ2x1c3Rlci5tbTogQWRkZWQu
CisgICAgICAgICgtW1dLUHJvY2Vzc0NsdXN0ZXIgaW5pdF0pOgorICAgICAgICAoLVtXS1Byb2Nl
c3NDbHVzdGVyIGluaXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6XSk6CisgICAgICAgICgtW1dLUHJv
Y2Vzc0NsdXN0ZXIgZGVhbGxvY10pOgorICAgICAgICAoLVtXS1Byb2Nlc3NDbHVzdGVyIGNvbnRl
eHRSZWZdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1Byb2Nlc3NDbHVzdGVySW50
ZXJuYWwuaDogQWRkZWQuCisgICAgICAgIEFkZCB3cmFwcGVyIGZvciBXS0NvbnRleHRSZWYuCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBpbml0V2l0aEZyYW1lOnBy
b2Nlc3NDbHVzdGVyOl0pOgorICAgICAgICBBZGQgbmV3IGluaXQgbWV0aG9kIHdoaWNoIHRha2Vz
IGEgV0tQcm9jZXNzQ2x1c3Rlci4KKworICAgICAgICAoLVtXS1ZpZXcgYnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlcl0pOgorICAgICAgICBBZGQgYWNjZXNzb3IgZm9yIHRoZSBXS0Jyb3dzaW5nQ29u
dGV4dENvbnRyb2xsZXIuIFRoaXMgd29ya3MgYnkgbGF6aWx5IGNyZWF0aW5nCisgICAgICAgIHRo
ZSB3cmFwcGVyIGFuZCBjYWNoaW5nIGl0IGluIHRoZSB2aWV3IGl0c2VsZi4KKworICAgICAgICAq
IFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgQWRkIG5ldyBmaWxl
cy4KKwogMjAxMS0xMC0xOSAgQ2FpbyBNYXJjZWxvIGRlIE9saXZlaXJhIEZpbGhvICA8Y2Fpby5v
bGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtRdF0gW1dLMl0gUmVuYW1lIGZpbGVz
IGFuZCBjbGFzc2VzIHRvIGZvbGxvdyBjb252ZW50aW9ucwpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9tYWMvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tCcm93c2luZ0NvbnRleHRD
b250cm9sbGVyLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L21hYy9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgor
I2ltcG9ydCA8V2ViS2l0Mi9XS0Jhc2UuaD4KKworQGNsYXNzIFdLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlckRhdGE7CisKK1dLX0VYUE9SVAorQGludGVyZmFjZSBXS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIgOiBOU09iamVjdAoreworICAgIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckRh
dGEgKl9kYXRhOworfQorCisjcHJhZ21hIG1hcmsgTG9hZGluZworCisvKiBMb2FkIGEgcmVxdWVz
dC4gVGhpcyBpcyBvbmx5IHZhbGlkIGZvciByZXF1ZXN0cyBvZiBub24tZmlsZTogVVJMcy4gUGFz
c2luZyBhCisgICBmaWxlOiBVUkwgd2lsbCB0aHJvdyBhbiBleGNlcHRpb24uICovCistICh2b2lk
KWxvYWRSZXF1ZXN0OihOU1VSTFJlcXVlc3QgKilyZXF1ZXN0OworCisvKiBMb2FkIGEgZmlsZTog
VVJMLiBPcGVucyB0aGUgc2FuZGJveCBvbmx5IGZvciBmaWxlcyB3aXRoaW4gYWxsb3dlZERpcmVj
dG9yeS4KKyAgICAtIFBhc3NpbmcgYSBub24tZmlsZTogVVJMIHRvIGVpdGhlciBwYXJhbWV0ZXIg
d2lsbCB5ZWlsZCBhbiBleGNlcHRpb24uCisgICAgLSBQYXNzaW5nIG5pbCBhcyB0aGUgYWxsb3dl
ZERpcmVjdG9yeSB3aWxsIG9wZW4gdGhlIGVudGlyZSBmaWxlLXN5c3RlbSBmb3IKKyAgICAgIHJl
YWRpbmcuIAorKi8KKy0gKHZvaWQpbG9hZEZpbGVVUkw6KE5TVVJMICopVVJMIHJlc3RyaWN0VG9G
aWxlc1dpdGhpbjooTlNVUkwgKilhbGxvd2VkRGlyZWN0b3J5OworCisvKiBTdG9wcyB0aGUgbG9h
ZCBhc3NvY2lhdGVkIHdpdGggdGhlIGFjdGl2ZSBVUkwuICovCistICh2b2lkKXN0b3BMb2FkaW5n
OworCisvKiBSZWxvYWQgdGhlIGN1cnJlbnRseSBhY3RpdmUgVVJMLiAqLworLSAodm9pZClyZWxv
YWQ7CisKKy8qIFJlbG9hZCB0aGUgY3VycmVudGx5IGFjdGl2ZSBVUkwsIGJ5cGFzc2luZyBjYWNo
ZXMuICovCistICh2b2lkKXJlbG9hZEZyb21PcmlnaW47CisKKworI3ByYWdtYSBtYXJrIEJhY2sv
Rm9yd2FyZAorCisvKiBHbyB0byB0aGUgbmV4dCBwYWdlIGluIHRoZSBiYWNrL2ZvcndhcmQgbGlz
dC4gKi8KKy0gKHZvaWQpZ29Gb3J3YXJkOworCisvKiBSZXR1cm5zIHdoZXRoZXIgdGhlcmUgaXMg
YSBuZXh0IHBhZ2UgaW4gdGhlIGJhY2svZm9yd2FyZCBsaXN0LiAqLworLSAoQk9PTCljYW5Hb0Zv
cndhcmQ7CisKKy8qIEdvIHRvIHRoZSBwcmV2aW91cyBwYWdlIGluIHRoZSBiYWNrL2ZvcndhcmQg
bGlzdC4gKi8KKy0gKHZvaWQpZ29CYWNrOworCisvKiBSZXR1cm5zIHdoZXRoZXIgdGhlcmUgaXMg
YSBwcmV2aW91cyBwYWdlIGluIHRoZSBiYWNrL2ZvcndhcmQgbGlzdC4gKi8KKy0gKEJPT0wpY2Fu
R29CYWNrOworCitAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9X
S0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tCcm93c2luZ0Nv
bnRleHRDb250cm9sbGVyLm1tCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyNiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250
cm9sbGVyLmgiCisjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5o
IgorCisjaW1wb3J0ICJXS1BhZ2UuaCIKKyNpbXBvcnQgIldLUmV0YWluUHRyLmgiCisjaW1wb3J0
ICJXS1VSTFJlcXVlc3QuaCIKKyNpbXBvcnQgIldLVVJMUmVxdWVzdE5TLmgiCisKK0BpbnRlcmZh
Y2UgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyRGF0YSA6IE5TT2JqZWN0IHsKK0BwdWJsaWMK
KyAgICBXS1JldGFpblB0cjxXS1BhZ2VSZWY+IF9wYWdlUmVmOworfQorQGVuZAorCitAaW1wbGVt
ZW50YXRpb24gV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyRGF0YQorQGVuZAorCitAaW1wbGVt
ZW50YXRpb24gV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyCisKKy0gKHZvaWQpZGVhbGxvYwor
eworICAgIFtfZGF0YSByZWxlYXNlXTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKFdL
UGFnZVJlZilwYWdlUmVmCit7CisgICAgcmV0dXJuIF9kYXRhLT5fcGFnZVJlZi5nZXQoKTsKK30K
KworI3ByYWdtYSBtYXJrIExvYWRpbmcKKworLSAodm9pZClsb2FkUmVxdWVzdDooTlNVUkxSZXF1
ZXN0ICopcmVxdWVzdAoreworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVxdWVzdFJlZj4gd2tSZXF1
ZXN0ID0gYWRvcHRXSyhXS1VSTFJlcXVlc3RDcmVhdGVXaXRoTlNVUkxSZXF1ZXN0KHJlcXVlc3Qp
KTsKKyAgICBXS1BhZ2VMb2FkVVJMUmVxdWVzdChzZWxmLnBhZ2VSZWYsIHdrUmVxdWVzdC5nZXQo
KSk7Cit9CisKKy0gKHZvaWQpbG9hZEZpbGVVUkw6KE5TVVJMICopVVJMIHJlc3RyaWN0VG9GaWxl
c1dpdGhpbjooTlNVUkwgKilhbGxvd2VkRGlyZWN0b3J5Cit7CisgICAgLyogRklYTUU6IEltcGxl
bWVudC4gKi8KK30KKworLSAodm9pZClzdG9wTG9hZGluZworeworICAgIFdLUGFnZVN0b3BMb2Fk
aW5nKHNlbGYucGFnZVJlZik7Cit9CisKKy0gKHZvaWQpcmVsb2FkCit7CisgICAgV0tQYWdlUmVs
b2FkKHNlbGYucGFnZVJlZik7Cit9CisKKy0gKHZvaWQpcmVsb2FkRnJvbU9yaWdpbgoreworICAg
IFdLUGFnZVJlbG9hZEZyb21PcmlnaW4oc2VsZi5wYWdlUmVmKTsKK30KKworI3ByYWdtYSBtYXJr
IEJhY2svRm9yd2FyZAorCistICh2b2lkKWdvRm9yd2FyZAoreworICAgIFdLUGFnZUdvRm9yd2Fy
ZChzZWxmLnBhZ2VSZWYpOworfQorCistIChCT09MKWNhbkdvRm9yd2FyZAoreworICAgIHJldHVy
biBXS1BhZ2VDYW5Hb0ZvcndhcmQoc2VsZi5wYWdlUmVmKTsKK30KKworLSAodm9pZClnb0JhY2sK
K3sKKyAgICBXS1BhZ2VHb0JhY2soc2VsZi5wYWdlUmVmKTsKK30KKworLSAoQk9PTCljYW5Hb0Jh
Y2sKK3sKKyAgICByZXR1cm4gV0tQYWdlQ2FuR29CYWNrKHNlbGYucGFnZVJlZik7Cit9CisKK0Bl
bmQKKworCitAaW1wbGVtZW50YXRpb24gV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIChJbnRl
cm5hbCkKKworLyogVGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgZnJvbSBhc3NvY2lhdGUgdmll
dy4gKi8KKworLSAoaWQpaW5pdFdpdGhQYWdlUmVmOihXS1BhZ2VSZWYpcGFnZVJlZgoreworICAg
IHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmls
OworCisgICAgX2RhdGEgPSBbW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckRhdGEgYWxsb2Nd
IGluaXRdOworICAgIF9kYXRhLT5fcGFnZVJlZiA9IHBhZ2VSZWY7CisKKyAgICByZXR1cm4gc2Vs
ZjsKK30KKworQGVuZApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRl
cm5hbC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMv
V0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdDIvV0tCcm93c2luZ0NvbnRl
eHRDb250cm9sbGVyLmg+CisKK0BpbnRlcmZhY2UgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVy
IChJbnRlcm5hbCkKKworLyogVGhpcyBzaG91bGQgb25seSBiZSBjYWxsZWQgZnJvbSBhc3NvY2lh
dGUgdmlldy4gKi8KKy0gKGlkKWluaXRXaXRoUGFnZVJlZjooV0tQYWdlUmVmKXBhZ2VSZWY7CisK
K0BlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLUHJvY2Vzc0Ns
dXN0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9X
S1Byb2Nlc3NDbHVzdGVyLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1Byb2Nlc3NDbHVzdGVyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KKyNpbXBv
cnQgPFdlYktpdDIvV0tCYXNlLmg+CisKK0BjbGFzcyBXS1Byb2Nlc3NDbHVzdGVyRGF0YTsKKwor
V0tfRVhQT1JUCitAaW50ZXJmYWNlIFdLUHJvY2Vzc0NsdXN0ZXIgOiBOU09iamVjdAoreworICAg
IFdLUHJvY2Vzc0NsdXN0ZXJEYXRhICpfZGF0YTsKK30KKworLSAoaWQpaW5pdDsKKy0gKGlkKWlu
aXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6KE5TVVJMICopYnVuZGxlVVJMOworCitAZW5kCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1Byb2Nlc3NDbHVzdGVyLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLUHJvY2Vzc0Ns
dXN0ZXIubW0JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1Byb2Nlc3NDbHVzdGVyLm1tCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDg0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS1Byb2Nlc3NDbHVzdGVyLmgi
CisjaW1wb3J0ICJXS1Byb2Nlc3NDbHVzdGVySW50ZXJuYWwuaCIKKworI2ltcG9ydCAiV0tDb250
ZXh0LmgiCisjaW1wb3J0ICJXS1JldGFpblB0ci5oIgorI2ltcG9ydCAiV0tTdHJpbmdDRi5oIgor
CitAaW50ZXJmYWNlIFdLUHJvY2Vzc0NsdXN0ZXJEYXRhIDogTlNPYmplY3QgeworQHB1YmxpYwor
ICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gX2NvbnRleHRSZWY7Cit9CitAZW5kCisKK0Bp
bXBsZW1lbnRhdGlvbiBXS1Byb2Nlc3NDbHVzdGVyRGF0YQorQGVuZAorCitAaW1wbGVtZW50YXRp
b24gV0tQcm9jZXNzQ2x1c3RlcgorCistIChpZClpbml0Cit7CisgICAgcmV0dXJuIFtzZWxmIGlu
aXRXaXRoSW5qZWN0ZWRCdW5kbGVVUkw6bmlsXTsKK30KKworLSAoaWQpaW5pdFdpdGhJbmplY3Rl
ZEJ1bmRsZVVSTDooTlNVUkwgKilidW5kbGVVUkwKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRd
OworICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9kYXRhID0gW1tX
S1Byb2Nlc3NDbHVzdGVyRGF0YSBhbGxvY10gaW5pdF07CisgICAgCisgICAgaWYgKGJ1bmRsZVVS
TCkgeworICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gYnVuZGxlVVJMU3RyaW5nID0g
YWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhDRlN0cmluZygoQ0ZTdHJpbmdSZWYpW2J1bmRsZVVS
TCBhYnNvbHV0ZVN0cmluZ10pKTsKKyAgICAgICAgX2RhdGEtPl9jb250ZXh0UmVmID0gYWRvcHRX
SyhXS0NvbnRleHRDcmVhdGVXaXRoSW5qZWN0ZWRCdW5kbGVQYXRoKGJ1bmRsZVVSTFN0cmluZy5n
ZXQoKSkpOworICAgIH0gZWxzZQorICAgICAgICBfZGF0YS0+X2NvbnRleHRSZWYgPSBhZG9wdFdL
KFdLQ29udGV4dENyZWF0ZSgpKTsKKworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWRl
YWxsb2MKK3sKKyAgICBbX2RhdGEgcmVsZWFzZV07CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQor
CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS1Byb2Nlc3NDbHVzdGVyIChJbnRlcm5hbCkKKwor
LSAoV0tDb250ZXh0UmVmKWNvbnRleHRSZWYKK3sKKyAgICByZXR1cm4gX2RhdGEtPl9jb250ZXh0
UmVmLmdldCgpOworfQorCitAZW5kCisKKwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvV0tQcm9jZXNzQ2x1c3RlckludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tQcm9jZXNzQ2x1c3RlckludGVybmFsLmgJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1Byb2Nlc3ND
bHVzdGVySW50ZXJuYWwuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgPFdlYktpdDIvV0tQcm9jZXNzQ2x1c3Rlci5oPgorCitAaW50ZXJmYWNlIFdL
UHJvY2Vzc0NsdXN0ZXIgKEludGVybmFsKQorCitAcHJvcGVydHkocmVhZG9ubHkpIFdLQ29udGV4
dFJlZiBjb250ZXh0UmVmOworCitAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL21hYy9XS1ZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL21hYy9XS1ZpZXcuaAkocmV2aXNpb24gOTc4NzIpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOCBAQAog
I2ltcG9ydCA8Q29jb2EvQ29jb2EuaD4KICNpbXBvcnQgPFdlYktpdDIvV0tCYXNlLmg+CiAKK0Bj
bGFzcyBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI7CitAY2xhc3MgV0tQcm9jZXNzQ2x1c3Rl
cjsKIEBjbGFzcyBXS1ZpZXdEYXRhOwogCiBXS19FWFBPUlQKQEAgLTM0LDYgKzM2LDEwIEBAIEBp
bnRlcmZhY2UgV0tWaWV3IDogTlNWaWV3IDxOU1RleHRJbnB1dEMKICAgICB1bnNpZ25lZCBfdW51
c2VkOwogfQogCistIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgcHJvY2Vzc0NsdXN0
ZXI6KFdLUHJvY2Vzc0NsdXN0ZXIgKilwcm9jZXNzQ2x1c3RlcjsKKworQHByb3BlcnR5KHJlYWRv
bmx5KSBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXI7CisKIEBwcm9wZXJ0eSBCT09MIGRyYXdzQmFja2dyb3VuZDsKIEBwcm9wZXJ0eSBCT09MIGRy
YXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCShyZXZpc2lvbiA5Nzg3MikKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNjEsMTAgKzYx
LDEwIEBACiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yTWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Ry
YWdDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdEYXRhLmg+Ci0jaW1wb3J0IDxX
ZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvS2V5Ym9hcmRF
dmVudC5oPgorI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1BsYXRmb3JtTW91c2VFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVNj
cmVlbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZWdpb24uaD4KQEAgLTcyLDYgKzcyLDExIEBACiAj
aW1wb3J0IDx3dGYvUmVmUHRyLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKKy8qIEFQ
SSBpbnRlcm5hbHMuICovCisjaW1wb3J0ICJXS1Byb2Nlc3NDbHVzdGVySW50ZXJuYWwuaCIKKyNp
bXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlckludGVybmFsLmgiCisKKwogQGludGVy
ZmFjZSBOU0FwcGxpY2F0aW9uIChXS05TQXBwbGljYXRpb25EZXRhaWxzKQogLSAodm9pZClzcGVh
a1N0cmluZzooTlNTdHJpbmcgKilzdHJpbmc7CiAtICh2b2lkKV9zZXRDdXJyZW50RXZlbnQ6KE5T
RXZlbnQgKilldmVudDsKQEAgLTEyMCw2ICsxMjUsOSBAQCBAaW50ZXJmYWNlIFdLVmlld0RhdGEg
OiBOU09iamVjdCB7CiBAcHVibGljCiAgICAgT3duUHRyPFBhZ2VDbGllbnRJbXBsPiBfcGFnZUNs
aWVudDsKICAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBfcGFnZTsKKyAgICAKKyAgICAvLyBDYWNo
ZSBvZiB0aGUgYXNzb2NpYXRlZCBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIuCisgICAgUmV0
YWluUHRyPFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcj4gX2Jyb3dzaW5nQ29udGV4dENvbnRy
b2xsZXI7CiAKICAgICAvLyBGb3IgVG9vbFRpcHMuCiAgICAgTlNUb29sVGlwVGFnIF9sYXN0VG9v
bFRpcFRhZzsKQEAgLTE3NSw2ICsxODMsMTAgQEAgQGludGVyZmFjZSBXS1ZpZXdEYXRhIDogTlNP
YmplY3QgewogfQogQGVuZAogCitAaW1wbGVtZW50YXRpb24gV0tWaWV3RGF0YQorQGVuZAorCisK
IEBpbnRlcmZhY2UgV0tSZXNwb25kZXJDaGFpblNpbmsgOiBOU1Jlc3BvbmRlciB7CiAgICAgTlNS
ZXNwb25kZXIgKl9sYXN0UmVzcG9uZGVySW5DaGFpbjsKICAgICBib29sIF9kaWRSZWNlaXZlVW5o
YW5kbGVkQ29tbWFuZDsKQEAgLTE4NCwxMSArMTk2LDE4IEBAIC0gKHZvaWQpZGV0YWNoOwogLSAo
Ym9vbClkaWRSZWNlaXZlVW5oYW5kbGVkQ29tbWFuZDsKIEBlbmQKIAotQGltcGxlbWVudGF0aW9u
IFdLVmlld0RhdGEKLUBlbmQKLQogQGltcGxlbWVudGF0aW9uIFdLVmlldwogCistIChpZClpbml0
V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUKK3sKKyAgICByZXR1cm4gW3NlbGYgaW5pdFdpdGhGcmFt
ZTpmcmFtZSBjb250ZXh0UmVmOnRvQVBJKFdlYkNvbnRleHQ6OnNoYXJlZFByb2Nlc3NDb250ZXh0
KCkpXTsKK30KKworLSAoaWQpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIHByb2Nlc3NDbHVz
dGVyOihXS1Byb2Nlc3NDbHVzdGVyICopcHJvY2Vzc0NsdXN0ZXIKK3sKKyAgICByZXR1cm4gW3Nl
bGYgaW5pdFdpdGhGcmFtZTpmcmFtZSBjb250ZXh0UmVmOnByb2Nlc3NDbHVzdGVyLmNvbnRleHRS
ZWZdOworfQorCiAtICh2b2lkKWRlYWxsb2MKIHsKICAgICBfZGF0YS0+X3BhZ2UtPmNsb3NlKCk7
CkBAIC0yMDMsNiArMjIyLDEzIEBAIC0gKHZvaWQpZGVhbGxvYwogICAgIFtzdXBlciBkZWFsbG9j
XTsKIH0KIAorLSAoV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICopYnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlcgoreworICAgIGlmICghX2RhdGEtPl9icm93c2luZ0NvbnRleHRDb250cm9sbGVy
KQorICAgICAgICBfZGF0YS0+X2Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIuYWRvcHROUyhbW1dL
QnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhQYWdlUmVmOltzZWxmIHBh
Z2VSZWZdXSk7CisgICAgcmV0dXJuIF9kYXRhLT5fYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5n
ZXQoKTsKK30KKwogLSAodm9pZClzZXREcmF3c0JhY2tncm91bmQ6KEJPT0wpZHJhd3NCYWNrZ3Jv
dW5kCiB7CiAgICAgX2RhdGEtPl9wYWdlLT5zZXREcmF3c0JhY2tncm91bmQoZHJhd3NCYWNrZ3Jv
dW5kKTsKQEAgLTI1NDcsMTEgKzI1NzMsNiBAQCAtICh2b2lkKWhhbmRsZUNvcnJlY3Rpb25QYW5l
bFJlc3VsdDooTlNTCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1ZpZXcgKFByaXZhdGUpCiAKLS0gKGlk
KWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZQotewotICAgIHJldHVybiBbc2VsZiBpbml0V2l0
aEZyYW1lOmZyYW1lIGNvbnRleHRSZWY6dG9BUEkoV2ViQ29udGV4dDo6c2hhcmVkUHJvY2Vzc0Nv
bnRleHQoKSldOwotfQotCiAtIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgY29udGV4
dFJlZjooV0tDb250ZXh0UmVmKWNvbnRleHRSZWYKIHsgICAKICAgICByZXR1cm4gW3NlbGYgaW5p
dFdpdGhGcmFtZTpmcmFtZSBjb250ZXh0UmVmOmNvbnRleHRSZWYgcGFnZUdyb3VwUmVmOm5pbF07
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiA5Nzg3MikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjg2LDYgKzY4NiwxMiBAQAog
CQlCQ0I5RjZBNjExMjNERDBEMDBBMTM3RTAgLyogV0tGcmFtZVBvbGljeUxpc3RlbmVyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjlGNkE0MTEy
M0REMEQwMEExMzdFMCAvKiBXS0ZyYW1lUG9saWN5TGlzdGVuZXIuY3BwICovOyB9OwogCQlCQ0I5
RjhBRjExMjRFMDc3MDBBMTM3RTAgLyogV2ViUG9saWN5Q2xpZW50LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjlGOEFEMTEyNEUwNzcwMEExMzdF
MCAvKiBXZWJQb2xpY3lDbGllbnQuY3BwICovOyB9OwogCQlCQ0I5RjhCMDExMjRFMDc3MDBBMTM3
RTAgLyogV2ViUG9saWN5Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0I5RjhBRTExMjRFMDc3MDBBMTM3RTAgLyogV2ViUG9saWN5Q2xpZW50
LmggKi87IH07CisJCUJDQkFBQzcyMTQ0RTYxOTkwMDUzRjgyRiAvKiBXS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBCQ0JBQUM2RDE0NEU2MTkyMDA1M0Y4MkYgLyogV0tCcm93c2luZ0NvbnRleHRDb250cm9s
bGVyLm1tICovOyB9OworCQlCQ0JBQUM3MzE0NEU2MTlFMDA1M0Y4MkYgLyogV0tCcm93c2luZ0Nv
bnRleHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0JBQUM2QzE0NEU2MTkxMDA1M0Y4MkYgLyogV0tCcm93c2luZ0NvbnRleHRDb250
cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9Owor
CQlCQ0JBQUM3NDE0NEU2MUE1MDA1M0Y4MkYgLyogV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVy
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDQkFBQzZFMTQ0RTYxOTIwMDUzRjgyRiAvKiBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJ
bnRlcm5hbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CisJCUJDQkFB
Qzc3MTQ0RTZDQjQwMDUzRjgyRiAvKiBXS1Byb2Nlc3NDbHVzdGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JBQUM3NTE0NEU2Q0IyMDA1M0Y4MkYg
LyogV0tQcm9jZXNzQ2x1c3Rlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFB1Ymxp
YywgKTsgfTsgfTsKKwkJQkNCQUFDNzgxNDRFNkNCNDAwNTNGODJGIC8qIFdLUHJvY2Vzc0NsdXN0
ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0JB
QUM3NjE0NEU2Q0IyMDA1M0Y4MkYgLyogV0tQcm9jZXNzQ2x1c3Rlci5tbSAqLzsgfTsKKwkJQkNC
QUFDN0IxNDRFNzA1OTAwNTNGODJGIC8qIFdLUHJvY2Vzc0NsdXN0ZXJJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCQUFDNzkxNDRFNzA1
NjAwNTNGODJGIC8qIFdLUHJvY2Vzc0NsdXN0ZXJJbnRlcm5hbC5oICovOyB9OwogCQlCQ0JDQjBD
QjEyMTVFMzIxMDBERTU5Q0EgLyogSW1tdXRhYmxlRGljdGlvbmFyeS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCQ0IwQ0ExMjE1RTMyMTAwREU1OUNB
IC8qIEltbXV0YWJsZURpY3Rpb25hcnkuaCAqLzsgfTsKIAkJQkNCQ0IwQ0QxMjE1RTMzQTAwREU1
OUNBIC8qIEltbXV0YWJsZURpY3Rpb25hcnkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCQ0IwQ0MxMjE1RTMzQTAwREU1OUNBIC8qIEltbXV0YWJs
ZURpY3Rpb25hcnkuY3BwICovOyB9OwogCQlCQ0JEMzkxNDEyNUJCMUE4MDBEMkMyOUYgLyogV2Vi
UGFnZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDQkQzOTEyMTI1QkIxQTgwMEQyQzI5RiAvKiBXZWJQYWdlUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwpAQCAtMTY0Miw2ICsxNjQ4LDEyIEBACiAJCUJD
QjlGNkE0MTEyM0REMEQwMEExMzdFMCAvKiBXS0ZyYW1lUG9saWN5TGlzdGVuZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tGcmFtZVBvbGljeUxpc3RlbmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCOUY4QUQxMTI0RTA3NzAwQTEzN0Uw
IC8qIFdlYlBvbGljeUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJQb2xpY3lDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
Q0I5RjhBRTExMjRFMDc3MDBBMTM3RTAgLyogV2ViUG9saWN5Q2xpZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBvbGljeUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlCQ0JBQUM2QzE0NEU2MTkxMDA1M0Y4MkYgLyogV0tCcm93c2luZ0NvbnRl
eHRDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnJvd3Np
bmdDb250ZXh0Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0JB
QUM2RDE0NEU2MTkyMDA1M0Y4MkYgLyogV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tCcm93c2luZ0NvbnRleHRD
b250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0JBQUM2RTE0NEU2
MTkyMDA1M0Y4MkYgLyogV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVy
SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNCQUFDNzUxNDRFNkNC
MjAwNTNGODJGIC8qIFdLUHJvY2Vzc0NsdXN0ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tQcm9jZXNzQ2x1c3Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlCQ0JBQUM3NjE0NEU2Q0IyMDA1M0Y4MkYgLyogV0tQcm9jZXNzQ2x1c3Rlci5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLUHJvY2Vzc0NsdXN0ZXIubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDQkFBQzc5MTQ0RTcwNTYwMDUzRjgyRiAvKiBX
S1Byb2Nlc3NDbHVzdGVySW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tQcm9jZXNzQ2x1c3RlckludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDQkNCMENBMTIxNUUzMjEwMERFNTlDQSAvKiBJbW11dGFibGVEaWN0aW9uYXJ5LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltbXV0YWJsZURpY3Rpb25hcnkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCQ0IwQ0MxMjE1RTMzQTAwREU1OUNBIC8qIElt
bXV0YWJsZURpY3Rpb25hcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW1tdXRhYmxlRGljdGlvbmFyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDQkQzOEZBMTI1QkFCOUEwMEQyQzI5RiAvKiBXZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjkxMCw4ICsyOTIyLDE1IEBACiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUJDQkFBQzU4MTQ0RTM4QjkwMDUzRjgyRiAvKiBXS1Zp
ZXcgRGV0YWlscyAqLywKKwkJCQlCQ0JBQUM2QzE0NEU2MTkxMDA1M0Y4MkYgLyogV0tCcm93c2lu
Z0NvbnRleHRDb250cm9sbGVyLmggKi8sCisJCQkJQkNCQUFDNkQxNDRFNjE5MjAwNTNGODJGIC8q
IFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbSAqLywKKwkJCQlCQ0JBQUM2RTE0NEU2MTky
MDA1M0Y4MkYgLyogV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaCAqLywKKwkJ
CQlCQ0JBQUM3NTE0NEU2Q0IyMDA1M0Y4MkYgLyogV0tQcm9jZXNzQ2x1c3Rlci5oICovLAorCQkJ
CUJDQkFBQzc2MTQ0RTZDQjIwMDUzRjgyRiAvKiBXS1Byb2Nlc3NDbHVzdGVyLm1tICovLAorCQkJ
CUJDQkFBQzc5MTQ0RTcwNTYwMDUzRjgyRiAvKiBXS1Byb2Nlc3NDbHVzdGVySW50ZXJuYWwuaCAq
LywKIAkJCQlCQzg2OTlCMjExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3LmggKi8sCiAJCQkJQkM4
Njk5QjMxMTZBQURBQTAwMkE5MjVCIC8qIFdLVmlldy5tbSAqLywKKwkJCQlCQzg2OTlCNDExNkFB
REFBMDAyQTkyNUIgLyogV0tWaWV3SW50ZXJuYWwuaCAqLywKIAkJCQlCRkE2MTc5RTEyRjBCOTlE
MDAzM0UwQ0EgLyogV0tWaWV3UHJpdmF0ZS5oICovLAogCQkJKTsKIAkJCXBhdGggPSBtYWM7CkBA
IC0zMTc4LDcgKzMxOTcsNiBAQAogCQkJCUUxMzRGMDE5MTJFQTVEOTkwMDRFQzU4RCAvKiBXS1By
aW50aW5nVmlldy5tbSAqLywKIAkJCQkxQTRBOUFBNjEyQjdFNzk2MDA4RkU5ODQgLyogV0tUZXh0
SW5wdXRXaW5kb3dDb250cm9sbGVyLmggKi8sCiAJCQkJMUE0QTlBQTcxMkI3RTc5NjAwOEZFOTg0
IC8qIFdLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5tbSAqLywKLQkJCQlCQzg2OTlCNDExNkFB
REFBMDAyQTkyNUIgLyogV0tWaWV3SW50ZXJuYWwuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gIldL
VmlldyBEZXRhaWxzIjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zODkwLDYgKzM5
MDgsMTAgQEAKIAkJCQk3ODAxQzA5QTE0MjI5MEM0MDBGQUY5QUYgLyogV2ViSGl0VGVzdFJlc3Vs
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxNzRBQTMxNDJBNENCNzAwMzkyNTBGIC8qIFdlYkdl
b21ldHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQlCNjJFNzMxMjE0MzA0N0IwMDA2OUVDMzUgLyog
V0tIaXRUZXN0UmVzdWx0LmggaW4gSGVhZGVycyAqLywKKwkJCQlCQ0JBQUM3MzE0NEU2MTlFMDA1
M0Y4MkYgLyogV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlCQ0JBQUM3NDE0NEU2MUE1MDA1M0Y4MkYgLyogV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVy
SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDQkFBQzc3MTQ0RTZDQjQwMDUzRjgyRiAv
KiBXS1Byb2Nlc3NDbHVzdGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlCQ0JBQUM3QjE0NEU3MDU5
MDA1M0Y4MkYgLyogV0tQcm9jZXNzQ2x1c3RlckludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAg
LTQ1NzksNiArNDYwMSw4IEBACiAJCQkJRTE5OTg3NUUxNDJDMDQ1NDAwQkIyREU3IC8qIEJ1aWx0
SW5QREZWaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMTc0QUE3MTQyQUFDNjEwMDM5MjUw
RiAvKiBXS0dlb21ldHJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI2MkU3MzEwMTQzMDQ3QTYw
MDY5RUMzNSAvKiBXS0hpdFRlc3RSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkNCQUFD
NzIxNDRFNjE5OTAwNTNGODJGIC8qIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbSBpbiBT
b3VyY2VzICovLAorCQkJCUJDQkFBQzc4MTQ0RTZDQjQwMDUzRjgyRiAvKiBXS1Byb2Nlc3NDbHVz
dGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0
cHJvY2Vzc2luZyA9IDA7CiAJCX07Cg==
</data>
<flag name="review"
          id="109556"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>