<?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>128917</bug_id>
          
          <creation_ts>2014-02-17 10:48:03 -0800</creation_ts>
          <short_desc>Turn the history client into a fancy API::HistoryClient abstract base class</short_desc>
          <delta_ts>2014-02-17 11:03:35 -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>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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>981533</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-02-17 10:48:03 -0800</bug_when>
    <thetext>Turn the history client into a fancy API::HistoryClient abstract base class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981535</commentid>
    <comment_count>1</comment_count>
      <attachid>224396</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-02-17 10:50:04 -0800</bug_when>
    <thetext>Created attachment 224396
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981536</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-17 10:52:25 -0800</bug_when>
    <thetext>Attachment 224396 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/API/C/WKContext.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981540</commentid>
    <comment_count>3</comment_count>
      <attachid>224396</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-17 10:56:25 -0800</bug_when>
    <thetext>Comment on attachment 224396
Patch

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

r=me though there&apos;s a disgusting amount of asterisks in this code. :|

&gt; Source/WebKit2/UIProcess/WebContext.h:223
&gt; +    API::HistoryClient&amp; historyClient() { return *m_historyClient; }

I&apos;d use this accessor instead of accessing m_historyClient now, since that lets you use . instead of -&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981544</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-02-17 11:03:35 -0800</bug_when>
    <thetext>Committed r164230: &lt;http://trac.webkit.org/changeset/164230&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224396</attachid>
            <date>2014-02-17 10:50:04 -0800</date>
            <delta_ts>2014-02-17 10:56:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128917-20140217105003.patch</filename>
            <type>text/plain</type>
            <size>28751</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0MjI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzY2M2Y0NDM4ZTRhM2U5
M2Q5NjI0ODEzNzZjMGJiOWZlMzMyMGI2OC4uOGJjOTI2MTIyNGRlYjIxZmU0YzliYzViMWNlMmVh
Mjc5ZjRlYTg0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE0LTAyLTE3ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAgVHVybiB0aGUgaGlz
dG9yeSBjbGllbnQgaW50byBhIGZhbmN5IEFQSTo6SGlzdG9yeUNsaWVudCBhYnN0cmFjdCBiYXNl
IGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mjg5MTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQVBJSGlzdG9yeUNsaWVudC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkhpc3RvcnlDbGllbnQuaC4KKyAgICAgICAgKEFQSTo6SGlzdG9y
eUNsaWVudDo6fkhpc3RvcnlDbGllbnQpOgorICAgICAgICAoQVBJOjpIaXN0b3J5Q2xpZW50Ojpk
aWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YSk6CisgICAgICAgIChBUEk6Okhpc3RvcnlDbGll
bnQ6OmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisgICAgICAgIChBUEk6Okhpc3RvcnlDbGll
bnQ6OmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdCk6CisgICAgICAgIChBUEk6Okhpc3RvcnlDbGll
bnQ6OmRpZFVwZGF0ZUhpc3RvcnlUaXRsZSk6CisgICAgICAgIChBUEk6Okhpc3RvcnlDbGllbnQ6
OnBvcHVsYXRlVmlzaXRlZExpbmtzKToKKyAgICAgICAgKEFQSTo6SGlzdG9yeUNsaWVudDo6c2hv
dWxkVHJhY2tWaXNpdGVkTGlua3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuY3BwOgorICAgICAgICAoV0tDb250ZXh0U2V0SGlzdG9yeUNsaWVudCk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpX
ZWJDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6c2V0SGlzdG9yeUNsaWVu
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmNyZWF0ZU5ld1dlYlByb2Nlc3MpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojpwb3B1bGF0ZVZpc2l0ZWRMaW5rcyk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHQuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4
dDo6aGlzdG9yeUNsaWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkhpc3RvcnlDbGllbnQu
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKiBXZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTQtMDItMTYgIERhbiBCZXJuc3RlaW4gIDxt
aXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBTcGVjdWxhdGl2ZSBpT1MgYnVpbGQgZml4LgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElIaXN0b3J5Q2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSUhpc3RvcnlDbGllbnQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xNTRmNDNmOGIzNGNjN2NmNjBjMDczMzU3YzI1OGU2ZTA4NDg4MmE5Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElIaXN0b3J5Q2xpZW50LmgK
QEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQVBJSGlzdG9yeUNsaWVudF9o
CisjZGVmaW5lIEFQSUhpc3RvcnlDbGllbnRfaAorCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJDb250ZXh0OworY2xhc3MgV2ViRnJhbWVQ
cm94eTsKK2NsYXNzIFdlYlBhZ2VQcm94eTsKK3N0cnVjdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3Jl
OworfQorCituYW1lc3BhY2UgQVBJIHsKKworY2xhc3MgSGlzdG9yeUNsaWVudCB7CitwdWJsaWM6
CisgICAgdmlydHVhbCB+SGlzdG9yeUNsaWVudCgpIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGRp
ZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKFdlYktpdDo6V2ViQ29udGV4dCosIFdlYktpdDo6
V2ViUGFnZVByb3h5KiwgY29uc3QgV2ViS2l0OjpXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlJiwgV2Vi
S2l0OjpXZWJGcmFtZVByb3h5KikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFBlcmZvcm1DbGll
bnRSZWRpcmVjdChXZWJLaXQ6OldlYkNvbnRleHQqLCBXZWJLaXQ6OldlYlBhZ2VQcm94eSosIGNv
bnN0IFdURjo6U3RyaW5nJiBzb3VyY2VVUkwsIGNvbnN0IFdURjo6U3RyaW5nJiBkZXN0aW5hdGlv
blVSTCwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFBl
cmZvcm1TZXJ2ZXJSZWRpcmVjdChXZWJLaXQ6OldlYkNvbnRleHQqLCBXZWJLaXQ6OldlYlBhZ2VQ
cm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiBzb3VyY2VVUkwsIGNvbnN0IFdURjo6U3RyaW5nJiBk
ZXN0aW5hdGlvblVSTCwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KikgeyB9CisgICAgdmlydHVhbCB2
b2lkIGRpZFVwZGF0ZUhpc3RvcnlUaXRsZShXZWJLaXQ6OldlYkNvbnRleHQqLCBXZWJLaXQ6Oldl
YlBhZ2VQcm94eSosIGNvbnN0IFdURjo6U3RyaW5nJiB0aXRsZSwgY29uc3QgV1RGOjpTdHJpbmcm
IHVybCwgV2ViS2l0OjpXZWJGcmFtZVByb3h5KikgeyB9CisgICAgdmlydHVhbCB2b2lkIHBvcHVs
YXRlVmlzaXRlZExpbmtzKFdlYktpdDo6V2ViQ29udGV4dCopIHsgfQorICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRUcmFja1Zpc2l0ZWRMaW5rcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBBUEkKKworI2VuZGlmIC8vIEFQSUhpc3RvcnlDbGllbnRfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCBhYjVmY2Zm
NmRhZmY5MTZlYTMyMDk1Mjc2MWE3ZWViZjkyYTBmYWNkLi43ODFmM2UwZjAzMWU1NzA1NzdmNGNi
YmNlMmFmNzZlMWJmOGQxNTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmNwcApAQCAtMjQsOSArMjQsMTEgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiV0tDb250ZXh0LmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0UHJpdmF0ZS5o
IgogCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSAiQVBJSGlzdG9yeUNsaWVudC5o
IgorI2luY2x1ZGUgIkFQSU5hdmlnYXRpb25EYXRhLmgiCiAjaW5jbHVkZSAiQVBJVVJMUmVxdWVz
dC5oIgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldlYkNvbnRleHQuaCIKQEAg
LTUzLDYgKzU1LDEyIEBACiAjaW5jbHVkZSAiV2ViTmV0d29ya0luZm9NYW5hZ2VyUHJveHkuaCIK
ICNlbmRpZgogCituYW1lc3BhY2UgQVBJIHsKK3RlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0
czxXS0NvbnRleHRIaXN0b3J5Q2xpZW50QmFzZT4geworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxX
S0NvbnRleHRIaXN0b3J5Q2xpZW50VjA+IFZlcnNpb25zOworfTsKK30KKwogdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKIAogV0tUeXBlSUQgV0tDb250ZXh0R2V0VHlwZUlEKCkKQEAgLTg0LDcgKzky
LDYyIEBAIHZvaWQgV0tDb250ZXh0U2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQoV0tDb250ZXh0UmVm
IGNvbnRleHRSZWYsIGNvbnN0IFdLQ29udGV4dEluCiAKIHZvaWQgV0tDb250ZXh0U2V0SGlzdG9y
eUNsaWVudChXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgY29uc3QgV0tDb250ZXh0SGlzdG9yeUNs
aWVudEJhc2UqIHdrQ2xpZW50KQogewotICAgIHRvSW1wbChjb250ZXh0UmVmKS0+aW5pdGlhbGl6
ZUhpc3RvcnlDbGllbnQod2tDbGllbnQpOworICAgIGNsYXNzIEhpc3RvcnlDbGllbnQgZmluYWwg
OiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tDb250ZXh0SGlzdG9yeUNsaWVudEJhc2U+LCBwdWJsaWMg
QVBJOjpIaXN0b3J5Q2xpZW50IHsKKyAgICBwdWJsaWM6CisgICAgICAgIGV4cGxpY2l0IEhpc3Rv
cnlDbGllbnQoY29uc3QgV0tDb250ZXh0SGlzdG9yeUNsaWVudEJhc2UqIGNsaWVudCkKKyAgICAg
ICAgeworICAgICAgICAgICAgaW5pdGlhbGl6ZShjbGllbnQpOworICAgICAgICB9CisKKyAgICBw
cml2YXRlOgorICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRh
dGEoV2ViQ29udGV4dCogY29udGV4dCwgV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBXZWJOYXZp
Z2F0aW9uRGF0YVN0b3JlJiBuYXZpZ2F0aW9uRGF0YVN0b3JlLCBXZWJGcmFtZVByb3h5KiBmcmFt
ZSkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5kaWROYXZp
Z2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb25EYXRhPiBuYXZpZ2F0aW9uRGF0YSA9IEFQSTo6
TmF2aWdhdGlvbkRhdGE6OmNyZWF0ZShuYXZpZ2F0aW9uRGF0YVN0b3JlKTsKKyAgICAgICAgICAg
IG1fY2xpZW50LmRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25EYXRhKHRvQVBJKGNvbnRleHQpLCB0
b0FQSShwYWdlKSwgdG9BUEkobmF2aWdhdGlvbkRhdGEuZ2V0KCkpLCB0b0FQSShmcmFtZSksIG1f
Y2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkUGVyZm9ybUNsaWVudFJlZGlyZWN0KFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYlBhZ2VQ
cm94eSogcGFnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGNvbnN0IFN0cmluZyYgZGVzdGlu
YXRpb25VUkwsIFdlYkZyYW1lUHJveHkqIGZyYW1lKSBvdmVycmlkZQorICAgICAgICB7CisgICAg
ICAgICAgICBpZiAoIW1fY2xpZW50LmRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCkKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZFBlcmZvcm1DbGllbnRS
ZWRpcmVjdCh0b0FQSShjb250ZXh0KSwgdG9BUEkocGFnZSksIHRvVVJMUmVmKHNvdXJjZVVSTC5p
bXBsKCkpLCB0b1VSTFJlZihkZXN0aW5hdGlvblVSTC5pbXBsKCkpLCB0b0FQSShmcmFtZSksIG1f
Y2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkUGVyZm9ybVNlcnZlclJlZGlyZWN0KFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYlBhZ2VQ
cm94eSogcGFnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIGNvbnN0IFN0cmluZyYgZGVzdGlu
YXRpb25VUkwsIFdlYkZyYW1lUHJveHkqIGZyYW1lKSBvdmVycmlkZQorICAgICAgICB7CisgICAg
ICAgICAgICBpZiAoIW1fY2xpZW50LmRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdCkKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIG1fY2xpZW50LmRpZFBlcmZvcm1TZXJ2ZXJS
ZWRpcmVjdCh0b0FQSShjb250ZXh0KSwgdG9BUEkocGFnZSksIHRvVVJMUmVmKHNvdXJjZVVSTC5p
bXBsKCkpLCB0b1VSTFJlZihkZXN0aW5hdGlvblVSTC5pbXBsKCkpLCB0b0FQSShmcmFtZSksIG1f
Y2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkVXBkYXRlSGlzdG9yeVRpdGxlKFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYlBhZ2VQcm94
eSogcGFnZSwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIFdlYkZyYW1l
UHJveHkqIGZyYW1lKSBvdmVycmlkZQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fY2xp
ZW50LmRpZFVwZGF0ZUhpc3RvcnlUaXRsZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgICAgIG1fY2xpZW50LmRpZFVwZGF0ZUhpc3RvcnlUaXRsZSh0b0FQSShjb250ZXh0KSwg
dG9BUEkocGFnZSksIHRvQVBJKHRpdGxlLmltcGwoKSksIHRvVVJMUmVmKHVybC5pbXBsKCkpLCB0
b0FQSShmcmFtZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgICAgIH0KKworICAg
ICAgICB2aXJ0dWFsIHZvaWQgcG9wdWxhdGVWaXNpdGVkTGlua3MoV2ViQ29udGV4dCogY29udGV4
dCkgb3ZlcnJpZGUKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudC5wb3B1bGF0
ZVZpc2l0ZWRMaW5rcykKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIG1f
Y2xpZW50LnBvcHVsYXRlVmlzaXRlZExpbmtzKHRvQVBJKGNvbnRleHQpLCBtX2NsaWVudC5iYXNl
LmNsaWVudEluZm8pOworICAgICAgICB9CisKKyAgICAgICAgdmlydHVhbCBib29sIHNob3VsZFRy
YWNrVmlzaXRlZExpbmtzKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1f
Y2xpZW50LnBvcHVsYXRlVmlzaXRlZExpbmtzOworICAgICAgICB9CisgICAgfTsKKyAgICAKKyAg
ICB0b0ltcGwoY29udGV4dFJlZiktPnNldEhpc3RvcnlDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxI
aXN0b3J5Q2xpZW50Pih3a0NsaWVudCkpOwogfQogCiB2b2lkIFdLQ29udGV4dFNldERvd25sb2Fk
Q2xpZW50KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBjb25zdCBXS0NvbnRleHREb3dubG9hZENs
aWVudEJhc2UqIHdrQ2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3Bw
CmluZGV4IDFkZWY2YTdkYzhlYmMxZTJiYWQzN2ZlN2FkYmQ1Y2VhY2M2YTkwZjIuLjM0NTM2NDg2
ZGQzMWE3NWQ0MDE5MGVjZWY0OTQ0NmY3OWJiODdhN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29udGV4dC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJXZWJDb250ZXh0
LmgiCiAKICNpbmNsdWRlICJBUElBcnJheS5oIgorI2luY2x1ZGUgIkFQSUhpc3RvcnlDbGllbnQu
aCIKICNpbmNsdWRlICJEb3dubG9hZFByb3h5LmgiCiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eU1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgpAQCAtMTM1LDYgKzEzNiw3IEBAIFdlYkNv
bnRleHQ6OldlYkNvbnRleHQoY29uc3QgU3RyaW5nJiBpbmplY3RlZEJ1bmRsZVBhdGgpCiAgICAg
LCBtX3Byb2Nlc3NXaXRoUGFnZUNhY2hlKDApCiAgICAgLCBtX2RlZmF1bHRQYWdlR3JvdXAoV2Vi
UGFnZUdyb3VwOjpjcmVhdGVOb25OdWxsKCkpCiAgICAgLCBtX2luamVjdGVkQnVuZGxlUGF0aChp
bmplY3RlZEJ1bmRsZVBhdGgpCisgICAgLCBtX2hpc3RvcnlDbGllbnQoc3RkOjptYWtlX3VuaXF1
ZTxBUEk6Okhpc3RvcnlDbGllbnQ+KCkpCiAgICAgLCBtX3Zpc2l0ZWRMaW5rUHJvdmlkZXIodGhp
cykKICAgICAsIG1fcGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIodGhpcykKICAgICAsIG1fYWx3YXlz
VXNlc0NvbXBsZXhUZXh0Q29kZVBhdGgoZmFsc2UpCkBAIC0yNjksMTEgKzI3MSwxNCBAQCB2b2lk
IFdlYkNvbnRleHQ6OmluaXRpYWxpemVDb25uZWN0aW9uQ2xpZW50KGNvbnN0IFdLQ29udGV4dENv
bm5lY3Rpb25DbGllbnRCYXNlKgogICAgIG1fY29ubmVjdGlvbkNsaWVudC5pbml0aWFsaXplKGNs
aWVudCk7CiB9CiAKLXZvaWQgV2ViQ29udGV4dDo6aW5pdGlhbGl6ZUhpc3RvcnlDbGllbnQoY29u
c3QgV0tDb250ZXh0SGlzdG9yeUNsaWVudEJhc2UqIGNsaWVudCkKK3ZvaWQgV2ViQ29udGV4dDo6
c2V0SGlzdG9yeUNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpIaXN0b3J5Q2xpZW50PiBoaXN0
b3J5Q2xpZW50KQogewotICAgIG1faGlzdG9yeUNsaWVudC5pbml0aWFsaXplKGNsaWVudCk7Cisg
ICAgaWYgKCFoaXN0b3J5Q2xpZW50KQorICAgICAgICBtX2hpc3RvcnlDbGllbnQgPSBzdGQ6Om1h
a2VfdW5pcXVlPEFQSTo6SGlzdG9yeUNsaWVudD4oKTsKKyAgICBlbHNlCisgICAgICAgIG1faGlz
dG9yeUNsaWVudCA9IHN0ZDo6bW92ZShoaXN0b3J5Q2xpZW50KTsKIAotICAgIHNlbmRUb0FsbFBy
b2Nlc3NlcyhNZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0U2hvdWxkVHJhY2tWaXNpdGVkTGlua3Mo
bV9oaXN0b3J5Q2xpZW50LnNob3VsZFRyYWNrVmlzaXRlZExpbmtzKCkpKTsKKyAgICBzZW5kVG9B
bGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldFNob3VsZFRyYWNrVmlzaXRlZExp
bmtzKG1faGlzdG9yeUNsaWVudC0+c2hvdWxkVHJhY2tWaXNpdGVkTGlua3MoKSkpOwogfQogCiB2
b2lkIFdlYkNvbnRleHQ6OmluaXRpYWxpemVEb3dubG9hZENsaWVudChjb25zdCBXS0NvbnRleHRE
b3dubG9hZENsaWVudEJhc2UqIGNsaWVudCkKQEAgLTU2NSw3ICs1NzAsNyBAQCBXZWJQcm9jZXNz
UHJveHkmIFdlYkNvbnRleHQ6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoKQogCiAgICAgcGFyYW1ldGVy
cy5zaG91bGRVc2VUZXN0aW5nTmV0d29ya1Nlc3Npb24gPSBtX3Nob3VsZFVzZVRlc3RpbmdOZXR3
b3JrU2Vzc2lvbjsKIAotICAgIHBhcmFtZXRlcnMuc2hvdWxkVHJhY2tWaXNpdGVkTGlua3MgPSBt
X2hpc3RvcnlDbGllbnQuc2hvdWxkVHJhY2tWaXNpdGVkTGlua3MoKTsKKyAgICBwYXJhbWV0ZXJz
LnNob3VsZFRyYWNrVmlzaXRlZExpbmtzID0gbV9oaXN0b3J5Q2xpZW50LT5zaG91bGRUcmFja1Zp
c2l0ZWRMaW5rcygpOwogICAgIHBhcmFtZXRlcnMuY2FjaGVNb2RlbCA9IG1fY2FjaGVNb2RlbDsK
ICAgICBwYXJhbWV0ZXJzLmxhbmd1YWdlcyA9IHVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoKTsKIApA
QCAtODM4LDcgKzg0Myw3IEBAIHZvaWQgV2ViQ29udGV4dDo6ZGlkUmVjZWl2ZVN5bmNocm9ub3Vz
TWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShjb25zdCBTdHJpbmcmIG1lCiAKIHZvaWQgV2ViQ29u
dGV4dDo6cG9wdWxhdGVWaXNpdGVkTGlua3MoKQogewotICAgIG1faGlzdG9yeUNsaWVudC5wb3B1
bGF0ZVZpc2l0ZWRMaW5rcyh0aGlzKTsKKyAgICBtX2hpc3RvcnlDbGllbnQtPnBvcHVsYXRlVmlz
aXRlZExpbmtzKHRoaXMpOwogfQogCiBXZWJDb250ZXh0OjpTdGF0aXN0aWNzJiBXZWJDb250ZXh0
OjpzdGF0aXN0aWNzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCmluZGV4IGE5
ZjIzMGIyODZmZTZjZTRkZDViMjYyMjZhMjY4NTM0NDkwZDBlYmYuLjE3MzA5OTc5ODI4OTZmMGE5
MjFkZTk2MGYyODA1NWE5ZGEzNjhjMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuaApAQCAtNDIsNyArNDIsNiBAQAogI2luY2x1ZGUgIldlYkNvbnRleHRDb25uZWN0aW9uQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmgiCiAjaW5j
bHVkZSAiV2ViRG93bmxvYWRDbGllbnQuaCIKLSNpbmNsdWRlICJXZWJIaXN0b3J5Q2xpZW50Lmgi
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5rSGFz
aC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CkBAIC02Niw2ICs2NSwxMCBAQCBPQkpDX0NM
QVNTIE5TT2JqZWN0OwogT0JKQ19DTEFTUyBOU1N0cmluZzsKICNlbmRpZgogCituYW1lc3BhY2Ug
QVBJIHsKK2NsYXNzIEhpc3RvcnlDbGllbnQ7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBj
bGFzcyBEb3dubG9hZFByb3h5OwpAQCAtMTI4LDcgKzEzMSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGluaXRpYWxpemVDbGllbnQoY29uc3QgV0tDb250ZXh0Q2xpZW50QmFzZSopOwogICAgIHZvaWQg
aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlQ2xpZW50KGNvbnN0IFdLQ29udGV4dEluamVjdGVkQnVu
ZGxlQ2xpZW50QmFzZSopOwogICAgIHZvaWQgaW5pdGlhbGl6ZUNvbm5lY3Rpb25DbGllbnQoY29u
c3QgV0tDb250ZXh0Q29ubmVjdGlvbkNsaWVudEJhc2UqKTsKLSAgICB2b2lkIGluaXRpYWxpemVI
aXN0b3J5Q2xpZW50KGNvbnN0IFdLQ29udGV4dEhpc3RvcnlDbGllbnRCYXNlKik7CisgICAgdm9p
ZCBzZXRIaXN0b3J5Q2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6Okhpc3RvcnlDbGllbnQ+KTsK
ICAgICB2b2lkIGluaXRpYWxpemVEb3dubG9hZENsaWVudChjb25zdCBXS0NvbnRleHREb3dubG9h
ZENsaWVudEJhc2UqKTsKIAogICAgIHZvaWQgc2V0UHJvY2Vzc01vZGVsKFByb2Nlc3NNb2RlbCk7
IC8vIENhbiBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZXJlIGFyZSBubyBwcm9jZXNzZXMgcnVubmlu
Zy4KQEAgLTIxNyw3ICsyMjAsNyBAQCBwdWJsaWM6CiAgICAgRG93bmxvYWRQcm94eSogY3JlYXRl
RG93bmxvYWRQcm94eSgpOwogICAgIFdlYkRvd25sb2FkQ2xpZW50JiBkb3dubG9hZENsaWVudCgp
IHsgcmV0dXJuIG1fZG93bmxvYWRDbGllbnQ7IH0KIAotICAgIFdlYkhpc3RvcnlDbGllbnQmIGhp
c3RvcnlDbGllbnQoKSB7IHJldHVybiBtX2hpc3RvcnlDbGllbnQ7IH0KKyAgICBBUEk6Okhpc3Rv
cnlDbGllbnQmIGhpc3RvcnlDbGllbnQoKSB7IHJldHVybiAqbV9oaXN0b3J5Q2xpZW50OyB9CiAg
ICAgV2ViQ29udGV4dENsaWVudCYgY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAogICAg
IFdlYkljb25EYXRhYmFzZSogaWNvbkRhdGFiYXNlKCkgY29uc3QgeyByZXR1cm4gbV9pY29uRGF0
YWJhc2UuZ2V0KCk7IH0KQEAgLTQ0MCw3ICs0NDMsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvbnRl
eHRDbGllbnQgbV9jbGllbnQ7CiAgICAgV2ViQ29udGV4dENvbm5lY3Rpb25DbGllbnQgbV9jb25u
ZWN0aW9uQ2xpZW50OwogICAgIFdlYkRvd25sb2FkQ2xpZW50IG1fZG93bmxvYWRDbGllbnQ7Ci0g
ICAgV2ViSGlzdG9yeUNsaWVudCBtX2hpc3RvcnlDbGllbnQ7CisgICAgc3RkOjp1bmlxdWVfcHRy
PEFQSTo6SGlzdG9yeUNsaWVudD4gbV9oaXN0b3J5Q2xpZW50OwogCiAjaWYgRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCiAgICAgUGx1Z2luSW5mb1N0b3JlIG1fcGx1Z2luSW5mb1N0b3JlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkhpc3RvcnlDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkhpc3RvcnlDbGllbnQuY3BwCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNTIyOTdmMDkyYzY2NmFlNDdlMjAyMGQ3NmEzZDA0ZDNl
NWNhYjc1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJIaXN0b3J5Q2xpZW50LmNwcAorKysgL2Rldi9udWxs
CkBAIC0xLDc4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiV2ViSGlzdG9yeUNsaWVudC5oIgotCi0jaW5jbHVkZSAiQVBJTmF2aWdhdGlvbkRhdGEu
aCIKLSNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLXVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotdm9pZCBXZWJI
aXN0b3J5Q2xpZW50OjpkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShXZWJDb250ZXh0KiBj
b250ZXh0LCBXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUm
IG5hdmlnYXRpb25EYXRhU3RvcmUsIFdlYkZyYW1lUHJveHkqIGZyYW1lKQotewotICAgIGlmICgh
bV9jbGllbnQuZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEpCi0gICAgICAgIHJldHVybjsK
LQotICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb25EYXRhPiBuYXZpZ2F0aW9uRGF0YSA9IEFQSTo6
TmF2aWdhdGlvbkRhdGE6OmNyZWF0ZShuYXZpZ2F0aW9uRGF0YVN0b3JlKTsKLSAgICBtX2NsaWVu
dC5kaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YSh0b0FQSShjb250ZXh0KSwgdG9BUEkocGFn
ZSksIHRvQVBJKG5hdmlnYXRpb25EYXRhLmdldCgpKSwgdG9BUEkoZnJhbWUpLCBtX2NsaWVudC5i
YXNlLmNsaWVudEluZm8pOwotfQotCi12b2lkIFdlYkhpc3RvcnlDbGllbnQ6OmRpZFBlcmZvcm1D
bGllbnRSZWRpcmVjdChXZWJDb250ZXh0KiBjb250ZXh0LCBXZWJQYWdlUHJveHkqIHBhZ2UsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCBXZWJG
cmFtZVByb3h5KiBmcmFtZSkKLXsKLSAgICBpZiAoIW1fY2xpZW50LmRpZFBlcmZvcm1DbGllbnRS
ZWRpcmVjdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jbGllbnQuZGlkUGVyZm9ybUNsaWVu
dFJlZGlyZWN0KHRvQVBJKGNvbnRleHQpLCB0b0FQSShwYWdlKSwgdG9VUkxSZWYoc291cmNlVVJM
LmltcGwoKSksIHRvVVJMUmVmKGRlc3RpbmF0aW9uVVJMLmltcGwoKSksIHRvQVBJKGZyYW1lKSwg
bV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKLX0KLQotdm9pZCBXZWJIaXN0b3J5Q2xpZW50Ojpk
aWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoV2ViQ29udGV4dCogY29udGV4dCwgV2ViUGFnZVByb3h5
KiBwYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlv
blVSTCwgV2ViRnJhbWVQcm94eSogZnJhbWUpCi17Ci0gICAgaWYgKCFtX2NsaWVudC5kaWRQZXJm
b3JtU2VydmVyUmVkaXJlY3QpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fY2xpZW50LmRpZFBl
cmZvcm1TZXJ2ZXJSZWRpcmVjdCh0b0FQSShjb250ZXh0KSwgdG9BUEkocGFnZSksIHRvVVJMUmVm
KHNvdXJjZVVSTC5pbXBsKCkpLCB0b1VSTFJlZihkZXN0aW5hdGlvblVSTC5pbXBsKCkpLCB0b0FQ
SShmcmFtZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Ci19Ci0KLXZvaWQgV2ViSGlzdG9y
eUNsaWVudDo6ZGlkVXBkYXRlSGlzdG9yeVRpdGxlKFdlYkNvbnRleHQqIGNvbnRleHQsIFdlYlBh
Z2VQcm94eSogcGFnZSwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIFdl
YkZyYW1lUHJveHkqIGZyYW1lKQotewotICAgIGlmICghbV9jbGllbnQuZGlkVXBkYXRlSGlzdG9y
eVRpdGxlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX2NsaWVudC5kaWRVcGRhdGVIaXN0b3J5
VGl0bGUodG9BUEkoY29udGV4dCksIHRvQVBJKHBhZ2UpLCB0b0FQSSh0aXRsZS5pbXBsKCkpLCB0
b1VSTFJlZih1cmwuaW1wbCgpKSwgdG9BUEkoZnJhbWUpLCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOwotfQotCi12b2lkIFdlYkhpc3RvcnlDbGllbnQ6OnBvcHVsYXRlVmlzaXRlZExpbmtzKFdl
YkNvbnRleHQqIGNvbnRleHQpCi17Ci0gICAgaWYgKCFtX2NsaWVudC5wb3B1bGF0ZVZpc2l0ZWRM
aW5rcykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jbGllbnQucG9wdWxhdGVWaXNpdGVkTGlu
a3ModG9BUEkoY29udGV4dCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
Ykhpc3RvcnlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJIaXN0b3J5Q2xp
ZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM3NDhkNzdjZmZhMDhkNTc5ZWIx
OTU2YjhhNmYzNDBkZWQ2ZDUyYTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkhpc3RvcnlDbGllbnQuaAor
KysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFdlYkhp
c3RvcnlDbGllbnRfaAotI2RlZmluZSBXZWJIaXN0b3J5Q2xpZW50X2gKLQotI2luY2x1ZGUgIkFQ
SUNsaWVudC5oIgotI2luY2x1ZGUgIldLQ29udGV4dC5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+Ci0KLW5hbWVzcGFjZSBBUEkgewotdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdL
Q29udGV4dEhpc3RvcnlDbGllbnRCYXNlPiB7Ci0gICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLQ29u
dGV4dEhpc3RvcnlDbGllbnRWMD4gVmVyc2lvbnM7Ci19OwotfQotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotY2xhc3MgV2ViQ29udGV4dDsKLWNsYXNzIFdlYkZyYW1lUHJveHk7Ci1jbGFzcyBXZWJQ
YWdlUHJveHk7Ci1zdHJ1Y3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZTsKLQotY2xhc3MgV2ViSGlz
dG9yeUNsaWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS0NvbnRleHRIaXN0b3J5Q2xpZW50QmFz
ZT4gewotcHVibGljOgotICAgIHZvaWQgZGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoV2Vi
Q29udGV4dCosIFdlYlBhZ2VQcm94eSosIGNvbnN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmUmLCBX
ZWJGcmFtZVByb3h5Kik7Ci0gICAgdm9pZCBkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QoV2ViQ29u
dGV4dCosIFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBjb25zdCBTdHJp
bmcmIGRlc3RpbmF0aW9uVVJMLCBXZWJGcmFtZVByb3h5Kik7Ci0gICAgdm9pZCBkaWRQZXJmb3Jt
U2VydmVyUmVkaXJlY3QoV2ViQ29udGV4dCosIFdlYlBhZ2VQcm94eSosIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uVVJMLCBXZWJGcmFtZVByb3h5Kik7
Ci0gICAgdm9pZCBkaWRVcGRhdGVIaXN0b3J5VGl0bGUoV2ViQ29udGV4dCosIFdlYlBhZ2VQcm94
eSosIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYgdXJsLCBXZWJGcmFtZVByb3h5
Kik7Ci0gICAgdm9pZCBwb3B1bGF0ZVZpc2l0ZWRMaW5rcyhXZWJDb250ZXh0Kik7Ci0KLSAgICBi
b29sIHNob3VsZFRyYWNrVmlzaXRlZExpbmtzKCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQucG9w
dWxhdGVWaXNpdGVkTGlua3M7IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi0jZW5k
aWYgLy8gV2ViSGlzdG9yeUNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmgKaW5kZXggYTE4Mzk3ODgxZjgwMWJkMjNiMDQ5MzMzNjg5ZWU5NzJiMGRhNDBlZC4uYjc1
MzQxYzc5NTMyZmQ3NzE1NGMzNzYyZGQyOTA5MzE4YTMwMzYyZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNTAsNyArNTAsNiBAQAogI2luY2x1ZGUgIldlYkZp
bmRDbGllbnQuaCIKICNpbmNsdWRlICJXZWJGb3JtQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRnJh
bWVQcm94eS5oIgotI2luY2x1ZGUgIldlYkhpc3RvcnlDbGllbnQuaCIKICNpbmNsdWRlICJXZWJI
aXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiV2ViUGFnZUNvbnRleHRNZW51Q2xpZW50LmgiCiAj
aW5jbHVkZSAiV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBkMDc1YmI2ZjA3MjE3ZTRlNmNhMzI2
Zjk0MjU4NmNiNzZkNzliNWU2Li5kZjEzYWZiMDUyMDkyMjRhODE4YWNjNjdhMDU2N2IzMWQ2MzFm
ZjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApA
QCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogCiAjaW5jbHVk
ZSAiQVBJRnJhbWVIYW5kbGUuaCIKKyNpbmNsdWRlICJBUElIaXN0b3J5Q2xpZW50LmgiCiAjaW5j
bHVkZSAiQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkRh
dGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJEb3dubG9hZFByb3h5TWFwLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDg5NjMy
MTYyNTAxZGVhZDNlNjMyZWIzNzY4MjBhNTI0ZTY3NDgzYS4uMjY4NjY0NDgyMTllY2M5NThjNjdl
NzMwNzc2ZDBmMWJiOTFhMWZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTk5LDYgKzE5OSw3IEBACiAJCTFBNjQyMzA5MTJE
RDA5RUIwMENBQUUyQyAvKiBEcmF3aW5nQXJlYVByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNjQyMzA3MTJERDA5RUIwMENBQUUy
QyAvKiBEcmF3aW5nQXJlYVByb3h5TWVzc2FnZXMuaCAqLzsgfTsKIAkJMUE2NDI0NUUxMkRFMjlB
MTAwQ0FBRTJDIC8qIFVwZGF0ZUluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDFBNjQyNDVDMTJERTI5QTEwMENBQUUyQyAvKiBVcGRhdGVJbmZvLmgg
Ki87IH07CiAJCTFBNjQyNDVGMTJERTI5QTEwMENBQUUyQyAvKiBVcGRhdGVJbmZvLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNjQyNDVEMTJERTI5
QTEwMENBQUUyQyAvKiBVcGRhdGVJbmZvLmNwcCAqLzsgfTsKKwkJMUE2NjM3RDcxOEIyODMxRjAw
QzBCQ0YzIC8qIEFQSUhpc3RvcnlDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDFBNjYzN0Q2MThCMjgzMUYwMEMwQkNGMyAvKiBBUElIaXN0b3J5
Q2xpZW50LmggKi87IH07CiAJCTFBNjZCRjhGMThBMDUyRUQwMDIwNzFCNCAvKiBXS1dlYlZpZXdJ
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUE2NkJGOEUxOEEwNTJFRDAwMjA3MUI0IC8qIFdLV2ViVmlld0ludGVybmFsLmggKi87IH07CiAJ
CTFBNkY5RjkwMTFFMTNFRkMwMERCMTM3MSAvKiBDb21tYW5kTGluZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2RjlGOEUxMUUxM0VGQzAwREIxMzcx
IC8qIENvbW1hbmRMaW5lLmggKi87IH07CiAJCTFBNkY5RkI3MTFFMTQwODUwMERCMTM3MSAvKiBD
b21tYW5kTGluZVBPU0lYLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFBNkY5RkI2MTFFMTQwODUwMERCMTM3MSAvKiBDb21tYW5kTGluZVBPU0lYLmNw
cCAqLzsgfTsKQEAgLTEzMjMsOCArMTMyNCw2IEBACiAJCUJDRjRERTIzMTY4RTRCRDUwMEM5NEFG
QyAvKiBOZXR3b3JrUHJvY2Vzc1N1cHBsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjRERTIyMTY4RTRCRDUwMEM5NEFGQyAvKiBOZXR3b3Jr
UHJvY2Vzc1N1cHBsZW1lbnQuaCAqLzsgfTsKIAkJQkNGNERFMjUxNjhGQTQ0ODAwQzk0QUZDIC8q
IFdlYkNvbnRleHRTdXBwbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQ0Y0REUyNDE2OEZBNDQ4MDBDOTRBRkMgLyogV2ViQ29udGV4dFN1cHBs
ZW1lbnQuaCAqLzsgfTsKIAkJQkNGNTA3MjgxMjQzMjlBQTAwNTk1NUFFIC8qIFdlYkNlcnRpZmlj
YXRlSW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkNGNTA3MjYxMjQzMjlBQTAwNTk1NUFFIC8qIFdlYkNlcnRpZmljYXRlSW5mby5oICovOyB9Owot
CQlCQ0Y2OUY4NjExNzZDRDZGMDA0NzFBNTIgLyogV2ViSGlzdG9yeUNsaWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y2OUY4NDExNzZDRDZG
MDA0NzFBNTIgLyogV2ViSGlzdG9yeUNsaWVudC5jcHAgKi87IH07Ci0JCUJDRjY5Rjg3MTE3NkNE
NkYwMDQ3MUE1MiAvKiBXZWJIaXN0b3J5Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y2OUY4NTExNzZDRDZGMDA0NzFBNTIgLyogV2ViSGlz
dG9yeUNsaWVudC5oICovOyB9OwogCQlCQ0Y2OUY5QTExNzZDRUQ2MDA0NzFBNTIgLyogV2ViTmF2
aWdhdGlvbkRhdGFTdG9yZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkNGNjlGOTgxMTc2Q0VENjAwNDcxQTUyIC8qIFdlYk5hdmlnYXRpb25EYXRhU3Rv
cmUuaCAqLzsgfTsKIAkJQkNGNjlGQTIxMTc2RDAxNDAwNDcxQTUyIC8qIEFQSU5hdmlnYXRpb25E
YXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Y2
OUZBMDExNzZEMDE0MDA0NzFBNTIgLyogQVBJTmF2aWdhdGlvbkRhdGEuaCAqLzsgfTsKIAkJQkNG
NjlGQTMxMTc2RDAxNDAwNDcxQTUyIC8qIEFQSU5hdmlnYXRpb25EYXRhLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjY5RkExMTE3NkQwMTQwMDQ3
MUE1MiAvKiBBUElOYXZpZ2F0aW9uRGF0YS5jcHAgKi87IH07CkBAIC0xODcwLDYgKzE4NjksNyBA
QAogCQkxQTY0MjMwNzEyREQwOUVCMDBDQUFFMkMgLyogRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2Vz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYXdpbmdBcmVhUHJveHlNZXNz
YWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTY0MjQ1QzEyREUyOUExMDBD
QUFFMkMgLyogVXBkYXRlSW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBV
cGRhdGVJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNjQyNDVEMTJERTI5
QTEwMENBQUUyQyAvKiBVcGRhdGVJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFVwZGF0ZUluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
QTY2MzdENjE4QjI4MzFGMDBDMEJDRjMgLyogQVBJSGlzdG9yeUNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBUElIaXN0b3J5Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTFBNjZCRjhFMThBMDUyRUQwMDIwNzFCNCAvKiBXS1dlYlZpZXdJbnRl
cm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1dlYlZpZXdJbnRlcm5h
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTZGOUY4RTExRTEzRUZDMDBEQjEz
NzEgLyogQ29tbWFuZExpbmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29t
bWFuZExpbmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE2RjlGQjYxMUUxNDA4
NTAwREIxMzcxIC8qIENvbW1hbmRMaW5lUE9TSVguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gQ29tbWFuZExpbmVQT1NJWC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0zMTA1LDggKzMxMDUsNiBAQAogCQlCQ0Y0REUyNDE2OEZBNDQ4MDBDOTRBRkMg
LyogV2ViQ29udGV4dFN1cHBsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViQ29udGV4dFN1cHBsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkNGNTA2ODQxMjQzMTg2MTAwNTk1NUFFIC8qIFNlY3VyaXR5LmZyYW1ld29yayAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3Jr
OyBuYW1lID0gU2VjdXJpdHkuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1l
d29ya3MvU2VjdXJpdHkuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9Owog
CQlCQ0Y1MDcyNjEyNDMyOUFBMDA1OTU1QUUgLyogV2ViQ2VydGlmaWNhdGVJbmZvLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNlcnRpZmljYXRlSW5mby5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0Y2OUY4NDExNzZDRDZGMDA0NzFBNTIgLyogV2ViSGlz
dG9yeUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJI
aXN0b3J5Q2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNGNjlGODUx
MTc2Q0Q2RjAwNDcxQTUyIC8qIFdlYkhpc3RvcnlDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViSGlzdG9yeUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQ0Y2OUY5ODExNzZDRUQ2MDA0NzFBNTIgLyogV2ViTmF2aWdhdGlvbkRhdGFTdG9y
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJOYXZpZ2F0aW9uRGF0YVN0
b3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRjY5RkEwMTE3NkQwMTQwMDQ3
MUE1MiAvKiBBUElOYXZpZ2F0aW9uRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBUElOYXZpZ2F0aW9uRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
Q0Y2OUZBMTExNzZEMDE0MDA0NzFBNTIgLyogQVBJTmF2aWdhdGlvbkRhdGEuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVBJTmF2aWdhdGlvbkRhdGEuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTEyNSw4ICs1MTIzLDYgQEAKIAkJCQlCQzBFNjE1
MjEyRDZDQUM4MDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkubWVzc2FnZXMu
aW4gKi8sCiAJCQkJQkMxQkUxRjExMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJv
dmlkZXIuY3BwICovLAogCQkJCUJDMUJFMUYwMTJENTREQkQwMDA0QTIyOCAvKiBXZWJHZW9sb2Nh
dGlvblByb3ZpZGVyLmggKi8sCi0JCQkJQkNGNjlGODQxMTc2Q0Q2RjAwNDcxQTUyIC8qIFdlYkhp
c3RvcnlDbGllbnQuY3BwICovLAotCQkJCUJDRjY5Rjg1MTE3NkNENkYwMDQ3MUE1MiAvKiBXZWJI
aXN0b3J5Q2xpZW50LmggKi8sCiAJCQkJNTExQjI0QTgxMzJFMDk3MjAwMDY1QTBDIC8qIFdlYklj
b25EYXRhYmFzZS5jcHAgKi8sCiAJCQkJNTExQjI0QTkxMzJFMDk3MjAwMDY1QTBDIC8qIFdlYklj
b25EYXRhYmFzZS5oICovLAogCQkJCTUxODRCQzRBMTMyRTkwN0EwMDZCOUUyOCAvKiBXZWJJY29u
RGF0YWJhc2UubWVzc2FnZXMuaW4gKi8sCkBAIC01MTcyLDExICs1MTY4LDEyIEBACiAJCUJDMDMy
REM0MTBGNDM4N0MwMDU4QzE1QSAvKiBBUEkgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAotCQkJCTJEQTk0NDc3MTg4NEUzQUIwMEVEODZEQiAvKiBpb3MgKi8sCiAJ
CQkJQkMwQzM3NjYxMEY4MDc2NjAwNzZEN0NCIC8qIEMgKi8sCiAJCQkJMzdDNEMwODMxODE0OUMy
QTAwMzY4OEI5IC8qIENvY29hICovLAogCQkJCUJDOEE1MDEzMTE3NjVGNDUwMDc1NzU3MyAvKiBj
cHAgKi8sCisJCQkJMkRBOTQ0NzcxODg0RTNBQjAwRUQ4NkRCIC8qIGlvcyAqLywKIAkJCQlCQzEx
MUI0NzExMkY2MTY5MDAzMzdCQUIgLyogbWFjICovLAorCQkJCTFBNjYzN0Q2MThCMjgzMUYwMEMw
QkNGMyAvKiBBUElIaXN0b3J5Q2xpZW50LmggKi8sCiAJCQkJMUEyNDY0RjIxODkxRTQ1MTAwMjM0
QzVCIC8qIEFQSUxvYWRlckNsaWVudC5oICovLAogCQkJCTFBRkREMzE0MTg5MUI1NDAwMDE1Mzk3
MCAvKiBBUElQb2xpY3lDbGllbnQuaCAqLywKIAkJCQkxQTRENjY0NzE4QTJEOTFBMDBEODJFMjEg
LyogQVBJVUlDbGllbnQuaCAqLywKQEAgLTYzNjMsNiArNjM2MCw3IEBACiAJCQkJMUFEQ0I4NkIx
ODk4MzFCMzAwMjJFRTVBIC8qIE5hdmlnYXRpb25BY3Rpb25EYXRhLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzVFRUJBMjEyNzc2MUQwMDAzMzIyQjggLyogSW5qZWN0ZWRCdW5kbGVCYWNrRm9yd2Fy
ZExpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNUVFQkE0MTI3NzYxRDYwMDMzMjJCOCAvKiBJ
bmplY3RlZEJ1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaCBpbiBIZWFkZXJzICovLAorCQkJCTFB
NjYzN0Q3MThCMjgzMUYwMEMwQkNGMyAvKiBBUElIaXN0b3J5Q2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0VFN0RDNTEyOEI2NDVEMDA5ODI3REEgLyogSW5qZWN0ZWRCdW5kbGVDbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDNDk4NjE4MTI0RDEwRTIwMEQ4MzRFMSAvKiBJbmplY3Rl
ZEJ1bmRsZUhpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NDc3ODUzMTc2RkND
MDgwMENEQzdCQiAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCBpbiBI
ZWFkZXJzICovLApAQCAtNjYzOSw3ICs2NjM3LDYgQEAKIAkJCQlCQzBFNjA3MzEyRDZCQzIwMDAx
MkE3MkEgLyogV2ViR2VvbG9jYXRpb25Qb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMx
QkUxRjIxMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMTc0QUEzMTQyQTRDQjcwMDM5MjUwRiAvKiBBUElHZW9tZXRyeS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJQkNGNjlGODcxMTc2Q0Q2RjAwNDcxQTUyIC8qIFdlYkhpc3RvcnlD
bGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNEQ2NjQ4MThBMkQ5MUEwMEQ4MkUyMSAvKiBB
UElVSUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzgwMUMwOUExNDIyOTBDNDAwRkFGOUFG
IC8qIFdlYkhpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMUIyNEFCMTMyRTA5
NzIwMDA2NUEwQyAvKiBXZWJJY29uRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovLApAQCAtODA0OSw3
ICs4MDQ2LDYgQEAKIAkJCQlCQzBFNjE4MjEyRDZDQjFEMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRp
b25NYW5hZ2VyUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMw
RTYwNzQxMkQ2QkMyMDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uUG9zaXRpb24uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkMxQkUxRjMxMkQ1NERCRDAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9u
UHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNGNjlGODYxMTc2Q0Q2RjAwNDcxQTUy
IC8qIFdlYkhpc3RvcnlDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzgwMUMwOTkxNDIy
OTBDNDAwRkFGOUFGIC8qIFdlYkhpdFRlc3RSZXN1bHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTExQjI0QUExMzJFMDk3MjAwMDY1QTBDIC8qIFdlYkljb25EYXRhYmFzZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MTgzNDU5MjEzNDUzMkU5MDA5MkI2OTYgLyogV2ViSWNvbkRhdGFiYXNlQ2xp
ZW50LmNwcCBpbiBTb3VyY2VzICovLAo=
</data>
<flag name="review"
          id="248485"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>