<?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>132798</bug_id>
          
          <creation_ts>2014-05-10 23:04:55 -0700</creation_ts>
          <short_desc>Simplify FileThread::Task usage</short_desc>
          <delta_ts>2014-05-12 00:01:59 -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>
          
          <blocked>132800</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1008379</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-05-10 23:04:55 -0700</bug_when>
    <thetext>Simplify FileThread::Task usage</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008381</commentid>
    <comment_count>1</comment_count>
      <attachid>231251</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-05-10 23:14:27 -0700</bug_when>
    <thetext>Created attachment 231251
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008382</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-10 23:16:12 -0700</bug_when>
    <thetext>Attachment 231251 did not pass style-queue:


ERROR: Source/WebCore/fileapi/FileThread.h:75:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 1 in 3 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>1008426</commentid>
    <comment_count>3</comment_count>
      <attachid>231251</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-05-11 10:53:26 -0700</bug_when>
    <thetext>Comment on attachment 231251
Patch

This is OK, and a bit of an improvement, but I think we should also be getting rid of CrossThreadCopier entirely and instead just using plain old lambdas with explicit copying of the arguments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008489</commentid>
    <comment_count>4</comment_count>
      <attachid>231251</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-05-12 00:01:52 -0700</bug_when>
    <thetext>Comment on attachment 231251
Patch

Clearing flags on attachment: 231251

Committed r168610: &lt;http://trac.webkit.org/changeset/168610&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1008490</commentid>
    <comment_count>5</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2014-05-12 00:01:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231251</attachid>
            <date>2014-05-10 23:14:27 -0700</date>
            <delta_ts>2014-05-12 00:01:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132798-20140510231403.patch</filename>
            <type>text/plain</type>
            <size>19772</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2ODU5NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE0LTA1LTEwICBaYW4gRG9i
ZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBTaW1wbGlmeSBGaWxlVGhy
ZWFkOjpUYXNrIHVzYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzI3OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmUgdGhlIGNyZWF0ZUZpbGVUaHJlYWRUYXNrIGZ1bmN0aW9ucyBhbmQgdGhl
IHJlbGF0ZWQgRmlsZVRocmVhZFRhc2sgaGVscGVyIGNsYXNzZXMuCisKKyAgICAgICAgSW5zdGVh
ZCwgdGhlIEZpbGVUaHJlYWQ6OlRhc2sgY2xhc3Mgbm93IGhhcyBhIHRlbXBsYXRlZCBjb25zdHJ1
Y3RvciB0aGF0IHRha2VzIGluIGEgcG9pbnRlcgorICAgICAgICB0byB0aGUgb2JqZWN0IGluc3Rh
bmNlLCBhIG1ldGhvZCwgYW5kIGEgdmFyaWFkaWMgcGFjayBvZiBwYXJhbWV0ZXJzLiBUaGUgcG9p
bnRlciBhbmQgdGhlCisgICAgICAgIGNyb3NzLXRocmVhZCBjb3BpZXMgb2YgYWxsIHRoZSBwYXJh
bWV0ZXJzIGFyZSB0aGVuIGJvdW5kIHRvIHRoZSBnaXZlbiBtZXRob2QgdGhyb3VnaCBzdGQ6OmJp
bmQoKS4KKworICAgICAgICBJbnN0ZWFkIG9mIGNyZWF0ZUZpbGVUaHJlYWRUYXNrLCBzdGQ6Om1h
a2VfdW5pcXVlPD4oKSBzaG91bGQgYmUgdXNlZCB0byBjb25zdHJ1Y3QgdW5pcXVlIHBvaW50ZXJz
CisgICAgICAgIHRoYXQgd3JhcCBGaWxlVGhyZWFkOjpUYXNrIG9iamVjdHMuCisKKyAgICAgICAg
KiBXZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qOgorICAgICAgICAqIFdlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVyczoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZmlsZWFwaS9Bc3luY0ZpbGVTdHJlYW0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNGaWxlU3RyZWFtOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6QXN5bmNGaWxlU3RyZWFtOjpzdG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5j
RmlsZVN0cmVhbTo6Z2V0U2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpBc3luY0ZpbGVTdHJlYW06
Om9wZW5Gb3JSZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jRmlsZVN0cmVhbTo6b3BlbkZv
cldyaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jRmlsZVN0cmVhbTo6Y2xvc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6QXN5bmNGaWxlU3RyZWFtOjpyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6
OkFzeW5jRmlsZVN0cmVhbTo6d3JpdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNGaWxlU3Ry
ZWFtOjp0cnVuY2F0ZSk6CisgICAgICAgICogZmlsZWFwaS9GaWxlVGhyZWFkLmg6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlVGhyZWFkOjpUYXNrOjpUYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkZp
bGVUaHJlYWQ6OlRhc2s6OnBlcmZvcm1UYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVUaHJl
YWQ6OlRhc2s6On5UYXNrKTogRGVsZXRlZC4KKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVUaHJlYWRU
YXNrLmg6IFJlbW92ZWQuCisKIDIwMTQtMDUtMTAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dLV2ViVmlldyBfdXBkYXRlU2Nyb2xsVmlld0JhY2tn
cm91bmRdIGNodXJucyBVSS1hbmQtQ0dDb2xvcnMgd2hpbGUgcmVwYWludGluZwpJbmRleDogU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCShyZXZpc2lv
biAxNjg1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yMDUxNCw3ICsyMDUxNCw2IEBACiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxmaWxlYXBpXEZpbGVSZWFkZXJMb2FkZXJDbGllbnQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZpbGVhcGlcRmlsZVJlYWRlclN5bmMuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZpbGVhcGlcRmlsZVRocmVhZC5oIiAvPgotICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZmlsZWFwaVxGaWxlVGhyZWFkVGFzay5oIiAvPgogICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5caHRtbFxGb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCIgLz4KICAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcRm9ybUNvbnRyb2xsZXIuaCIgLz4KICAgICA8Q2xJ
bmNsdWRlIEluY2x1ZGU9Ii4uXGh0bWxcRm9ybURhdGFMaXN0LmgiIC8+CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0
ZXJzCShyZXZpc2lvbiAxNjg1OTUpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ov
V2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMJKHdvcmtpbmcgY29weSkKQEAgLTEwNzY1LDkgKzEwNzY1
LDYgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXGZpbGVhcGlcRmlsZVRocmVhZC5oIj4K
ICAgICAgIDxGaWx0ZXI+aHRtbDwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRlPgotICAgIDxDbElu
Y2x1ZGUgSW5jbHVkZT0iLi5cZmlsZWFwaVxGaWxlVGhyZWFkVGFzay5oIj4KLSAgICAgIDxGaWx0
ZXI+aHRtbDwvRmlsdGVyPgotICAgIDwvQ2xJbmNsdWRlPgogICAgIDxDbEluY2x1ZGUgSW5jbHVk
ZT0iLi5caHRtbFxGb3JtQXNzb2NpYXRlZEVsZW1lbnQuaCI+CiAgICAgICA8RmlsdGVyPmh0bWw8
L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE2ODU5NSkKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtMzM5Myw3ICszMzkzLDYgQEAKIAkJOTc2RDZDODkxMjJCOEEzRDAwMUZEMUY3IC8q
IEZpbGVSZWFkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk3NkQ2QzZBMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlUmVhZGVyLmggKi87IH07CiAJCTk3
NkQ2QzhEMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3NkQ2QzZFMTIyQjhBM0QwMDFGRDFGNyAv
KiBGaWxlVGhyZWFkLmNwcCAqLzsgfTsKIAkJOTc2RDZDOEUxMjJCOEEzRDAwMUZEMUY3IC8qIEZp
bGVUaHJlYWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk3NkQ2QzZGMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlVGhyZWFkLmggKi87IH07Ci0JCTk3NkQ2
QzhGMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlVGhyZWFkVGFzay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RDZDNzAxMjJCOEEzRDAwMUZEMUY3IC8q
IEZpbGVUaHJlYWRUYXNrLmggKi87IH07CiAJCTk3NkQ2Qzk0MTIyQjhBM0QwMDFGRDFGNyAvKiBU
aHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk3NkQ2Qzc1MTIyQjhBM0QwMDFGRDFGNyAvKiBUaHJlYWRhYmxlQmxv
YlJlZ2lzdHJ5LmNwcCAqLzsgfTsKIAkJOTc2RDZDOTUxMjJCOEEzRDAwMUZEMUY3IC8qIFRocmVh
ZGFibGVCbG9iUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk3NkQ2Qzc2MTIyQjhBM0QwMDFGRDFGNyAvKiBUaHJlYWRhYmxlQmxvYlJlZ2lz
dHJ5LmggKi87IH07CiAJCTk3NkYzNkVBMTQ2ODYyMjUwMDVFOTNCNCAvKiBTZWN1cml0eUNvbnRl
eHQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2
RjM2RTgxNDY4NjIyNTAwNUU5M0I0IC8qIFNlY3VyaXR5Q29udGV4dC5jcHAgKi87IH07CkBAIC0x
MDQ0MCw3ICsxMDQzOSw2IEBACiAJCTk3NkQ2QzZBMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlUmVh
ZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZpbGVSZWFkZXIuaDsgcGF0
aCA9IGZpbGVhcGkvRmlsZVJlYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
NzZENkM2RTEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZVRocmVhZC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBGaWxlVGhyZWFkLmNwcDsgcGF0aCA9IGZpbGVhcGkvRmls
ZVRocmVhZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NkQ2QzZGMTIyQjhB
M0QwMDFGRDFGNyAvKiBGaWxlVGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEZpbGVUaHJlYWQuaDsgcGF0aCA9IGZpbGVhcGkvRmlsZVRocmVhZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk5NzZENkM3MDEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZVRocmVh
ZFRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gRmlsZVRocmVhZFRhc2su
aDsgcGF0aCA9IGZpbGVhcGkvRmlsZVRocmVhZFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTc2RDZDNzUxMjJCOEEzRDAwMUZEMUY3IC8qIFRocmVhZGFibGVCbG9iUmVnaXN0
cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVGhyZWFkYWJsZUJs
b2JSZWdpc3RyeS5jcHA7IHBhdGggPSBmaWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0cnkuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzZENkM3NjEyMkI4QTNEMDAxRkQxRjcg
LyogVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5Lmg7IHBhdGggPSBmaWxlYXBpL1RocmVhZGFibGVC
bG9iUmVnaXN0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc2RjM2RTgxNDY4
NjIyNTAwNUU5M0I0IC8qIFNlY3VyaXR5Q29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTZWN1cml0eUNvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTc4OTYsNyArMTc4OTQsNiBAQAogCQkJCUUxQUIxRUJEMTRFOUUzQTgwMDQ0
OUUxMyAvKiBGaWxlUmVhZGVyU3luYy5pZGwgKi8sCiAJCQkJOTc2RDZDNkUxMjJCOEEzRDAwMUZE
MUY3IC8qIEZpbGVUaHJlYWQuY3BwICovLAogCQkJCTk3NkQ2QzZGMTIyQjhBM0QwMDFGRDFGNyAv
KiBGaWxlVGhyZWFkLmggKi8sCi0JCQkJOTc2RDZDNzAxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGVU
aHJlYWRUYXNrLmggKi8sCiAJCQkJOTc2RDZDNzUxMjJCOEEzRDAwMUZEMUY3IC8qIFRocmVhZGFi
bGVCbG9iUmVnaXN0cnkuY3BwICovLAogCQkJCTk3NkQ2Qzc2MTIyQjhBM0QwMDFGRDFGNyAvKiBU
aHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmggKi8sCiAJCQkJOTc2RDZDNUMxMjJCOEEzRDAwMUZEMUY3
IC8qIFdlYktpdEJsb2JCdWlsZGVyLmNwcCAqLywKQEAgLTIzOTE2LDcgKzIzOTEzLDYgQEAKIAkJ
CQkyNkMxN0EzRTE0OTFEMkQ0MDBEMTJCQTIgLyogRmlsZVN5c3RlbUlPUy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTc2RDZDOEUxMjJCOEEzRDAwMUZEMUY3IC8qIEZpbGVUaHJlYWQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFDQzZCMDZEMThGODUyNkIwMDA3RUNDRCAvKiBXZWJQcm9maWxlckFnZW50
LmggaW4gSGVhZGVycyAqLywKLQkJCQk5NzZENkM4RjEyMkI4QTNEMDAxRkQxRjcgLyogRmlsZVRo
cmVhZFRhc2suaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNjlGMEU4MURBRUIwMEIyNTk2NSAv
KiBGaWxsTGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NUU3MkY4MEZEMjYxRUUwMEE4N0Q3
OSAvKiBGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4QzkyNTFBMEZDQzdDNEEwMDQ4MERF
QyAvKiBGaWx0ZXJFZmZlY3QuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL1dlYkNvcmUv
ZmlsZWFwaS9Bc3luY0ZpbGVTdHJlYW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2ZpbGVhcGkvQXN5bmNGaWxlU3RyZWFtLmNwcAkocmV2aXNpb24gMTY4NTk1KQorKysgU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9Bc3luY0ZpbGVTdHJlYW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
OSw3ICszOSw2IEBACiAjaW5jbHVkZSAiRmlsZVN0cmVhbS5oIgogI2luY2x1ZGUgIkZpbGVTdHJl
YW1DbGllbnQuaCIKICNpbmNsdWRlICJGaWxlVGhyZWFkLmgiCi0jaW5jbHVkZSAiRmlsZVRocmVh
ZFRhc2suaCIKICNpbmNsdWRlICJNYWluVGhyZWFkVGFzay5oIgogI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC04MCw3ICs3OSw3
IEBAIFBhc3NSZWZQdHI8QXN5bmNGaWxlU3RyZWFtPiBBc3luY0ZpbGVTdHIKICAgICAvLyBUaGlz
IGlzIGJhbGFuY2VkIGJ5IHRoZSBkZXJlZiBpbiBkZXJlZlByb3h5T25Db250ZXh0IGJlbG93Lgog
ICAgIHByb3h5LT5yZWYoKTsKIAotICAgIGZpbGVUaHJlYWQoKS0+cG9zdFRhc2soY3JlYXRlRmls
ZVRocmVhZFRhc2socHJveHkuZ2V0KCksICZBc3luY0ZpbGVTdHJlYW06OnN0YXJ0T25GaWxlVGhy
ZWFkKSk7CisgICAgZmlsZVRocmVhZCgpLT5wb3N0VGFzayhzdGQ6Om1ha2VfdW5pcXVlPEZpbGVU
aHJlYWQ6OlRhc2s+KHByb3h5LmdldCgpLCAmQXN5bmNGaWxlU3RyZWFtOjpzdGFydE9uRmlsZVRo
cmVhZCkpOwogCiAgICAgcmV0dXJuIHByb3h5LnJlbGVhc2UoKTsKIH0KQEAgLTExMCw3ICsxMDks
NyBAQCB2b2lkIEFzeW5jRmlsZVN0cmVhbTo6c3RvcCgpCiAgICAgc2V0Q2xpZW50KDApOwogCiAg
ICAgZmlsZVRocmVhZCgpLT51bnNjaGVkdWxlVGFza3MobV9zdHJlYW0uZ2V0KCkpOwotICAgIGZp
bGVUaHJlYWQoKS0+cG9zdFRhc2soY3JlYXRlRmlsZVRocmVhZFRhc2sodGhpcywgJkFzeW5jRmls
ZVN0cmVhbTo6c3RvcE9uRmlsZVRocmVhZCkpOworICAgIGZpbGVUaHJlYWQoKS0+cG9zdFRhc2so
c3RkOjptYWtlX3VuaXF1ZTxGaWxlVGhyZWFkOjpUYXNrPih0aGlzLCAmQXN5bmNGaWxlU3RyZWFt
OjpzdG9wT25GaWxlVGhyZWFkKSk7CiB9CiAKIHN0YXRpYyB2b2lkIGRlcmVmUHJveHlPbk1haW5U
aHJlYWQoQXN5bmNGaWxlU3RyZWFtKiBwcm94eSkKQEAgLTEzMyw3ICsxMzIsNyBAQCBzdGF0aWMg
dm9pZCBkaWRHZXRTaXplKEFzeW5jRmlsZVN0cmVhbSoKIAogdm9pZCBBc3luY0ZpbGVTdHJlYW06
OmdldFNpemUoY29uc3QgU3RyaW5nJiBwYXRoLCBkb3VibGUgZXhwZWN0ZWRNb2RpZmljYXRpb25U
aW1lKQogewotICAgIGZpbGVUaHJlYWQoKS0+cG9zdFRhc2soY3JlYXRlRmlsZVRocmVhZFRhc2so
dGhpcywgJkFzeW5jRmlsZVN0cmVhbTo6Z2V0U2l6ZU9uRmlsZVRocmVhZCwgcGF0aCwgZXhwZWN0
ZWRNb2RpZmljYXRpb25UaW1lKSk7CisgICAgZmlsZVRocmVhZCgpLT5wb3N0VGFzayhzdGQ6Om1h
a2VfdW5pcXVlPEZpbGVUaHJlYWQ6OlRhc2s+KHRoaXMsICZBc3luY0ZpbGVTdHJlYW06OmdldFNp
emVPbkZpbGVUaHJlYWQsIHBhdGgsIGV4cGVjdGVkTW9kaWZpY2F0aW9uVGltZSkpOwogfQogCiB2
b2lkIEFzeW5jRmlsZVN0cmVhbTo6Z2V0U2l6ZU9uRmlsZVRocmVhZChjb25zdCBTdHJpbmcmIHBh
dGgsIGRvdWJsZSBleHBlY3RlZE1vZGlmaWNhdGlvblRpbWUpCkBAIC0xNTAsNyArMTQ5LDcgQEAg
c3RhdGljIHZvaWQgZGlkT3BlbihBc3luY0ZpbGVTdHJlYW0qIHBybwogCiB2b2lkIEFzeW5jRmls
ZVN0cmVhbTo6b3BlbkZvclJlYWQoY29uc3QgU3RyaW5nJiBwYXRoLCBsb25nIGxvbmcgb2Zmc2V0
LCBsb25nIGxvbmcgbGVuZ3RoKQogewotICAgIGZpbGVUaHJlYWQoKS0+cG9zdFRhc2soY3JlYXRl
RmlsZVRocmVhZFRhc2sodGhpcywgJkFzeW5jRmlsZVN0cmVhbTo6b3BlbkZvclJlYWRPbkZpbGVU
aHJlYWQsIHBhdGgsIG9mZnNldCwgbGVuZ3RoKSk7CisgICAgZmlsZVRocmVhZCgpLT5wb3N0VGFz
ayhzdGQ6Om1ha2VfdW5pcXVlPEZpbGVUaHJlYWQ6OlRhc2s+KHRoaXMsICZBc3luY0ZpbGVTdHJl
YW06Om9wZW5Gb3JSZWFkT25GaWxlVGhyZWFkLCBwYXRoLCBvZmZzZXQsIGxlbmd0aCkpOwogfQog
CiB2b2lkIEFzeW5jRmlsZVN0cmVhbTo6b3BlbkZvclJlYWRPbkZpbGVUaHJlYWQoY29uc3QgU3Ry
aW5nJiBwYXRoLCBsb25nIGxvbmcgb2Zmc2V0LCBsb25nIGxvbmcgbGVuZ3RoKQpAQCAtMTYxLDkg
KzE2MCw3IEBAIHZvaWQgQXN5bmNGaWxlU3RyZWFtOjpvcGVuRm9yUmVhZE9uRmlsZVQKIAogdm9p
ZCBBc3luY0ZpbGVTdHJlYW06Om9wZW5Gb3JXcml0ZShjb25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0g
ICAgZmlsZVRocmVhZCgpLT5wb3N0VGFzaygKLSAgICAgICAgY3JlYXRlRmlsZVRocmVhZFRhc2so
dGhpcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJkFzeW5jRmlsZVN0cmVhbTo6b3Bl
bkZvcldyaXRlT25GaWxlVGhyZWFkLCBwYXRoKSk7CisgICAgZmlsZVRocmVhZCgpLT5wb3N0VGFz
ayhzdGQ6Om1ha2VfdW5pcXVlPEZpbGVUaHJlYWQ6OlRhc2s+KHRoaXMsICZBc3luY0ZpbGVTdHJl
YW06Om9wZW5Gb3JXcml0ZU9uRmlsZVRocmVhZCwgcGF0aCkpOwogfQogCiB2b2lkIEFzeW5jRmls
ZVN0cmVhbTo6b3BlbkZvcldyaXRlT25GaWxlVGhyZWFkKGNvbnN0IFN0cmluZyYgcGF0aCkKQEAg
LTE3NCw3ICsxNzEsNyBAQCB2b2lkIEFzeW5jRmlsZVN0cmVhbTo6b3BlbkZvcldyaXRlT25GaWxl
CiAKIHZvaWQgQXN5bmNGaWxlU3RyZWFtOjpjbG9zZSgpCiB7Ci0gICAgZmlsZVRocmVhZCgpLT5w
b3N0VGFzayhjcmVhdGVGaWxlVGhyZWFkVGFzayh0aGlzLCAmQXN5bmNGaWxlU3RyZWFtOjpjbG9z
ZU9uRmlsZVRocmVhZCkpOworICAgIGZpbGVUaHJlYWQoKS0+cG9zdFRhc2soc3RkOjptYWtlX3Vu
aXF1ZTxGaWxlVGhyZWFkOjpUYXNrPih0aGlzLCAmQXN5bmNGaWxlU3RyZWFtOjpjbG9zZU9uRmls
ZVRocmVhZCkpOwogfQogCiB2b2lkIEFzeW5jRmlsZVN0cmVhbTo6Y2xvc2VPbkZpbGVUaHJlYWQo
KQpAQCAtMTkwLDkgKzE4Nyw3IEBAIHN0YXRpYyB2b2lkIGRpZFJlYWQoQXN5bmNGaWxlU3RyZWFt
KiBwcm8KIAogdm9pZCBBc3luY0ZpbGVTdHJlYW06OnJlYWQoY2hhciogYnVmZmVyLCBpbnQgbGVu
Z3RoKQogewotICAgIGZpbGVUaHJlYWQoKS0+cG9zdFRhc2soCi0gICAgICAgIGNyZWF0ZUZpbGVU
aHJlYWRUYXNrKHRoaXMsICZBc3luY0ZpbGVTdHJlYW06OnJlYWRPbkZpbGVUaHJlYWQsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoYnVmZmVyKSwg
bGVuZ3RoKSk7CisgICAgZmlsZVRocmVhZCgpLT5wb3N0VGFzayhzdGQ6Om1ha2VfdW5pcXVlPEZp
bGVUaHJlYWQ6OlRhc2s+KHRoaXMsICZBc3luY0ZpbGVTdHJlYW06OnJlYWRPbkZpbGVUaHJlYWQs
IEFsbG93Q3Jvc3NUaHJlYWRBY2Nlc3MoYnVmZmVyKSwgbGVuZ3RoKSk7CiB9CiAKIHZvaWQgQXN5
bmNGaWxlU3RyZWFtOjpyZWFkT25GaWxlVGhyZWFkKGNoYXIqIGJ1ZmZlciwgaW50IGxlbmd0aCkK
QEAgLTIwOSw3ICsyMDQsNyBAQCBzdGF0aWMgdm9pZCBkaWRXcml0ZShBc3luY0ZpbGVTdHJlYW0q
IHByCiAKIHZvaWQgQXN5bmNGaWxlU3RyZWFtOjp3cml0ZShjb25zdCBVUkwmIGJsb2JVUkwsIGxv
bmcgbG9uZyBwb3NpdGlvbiwgaW50IGxlbmd0aCkKIHsKLSAgICBmaWxlVGhyZWFkKCktPnBvc3RU
YXNrKGNyZWF0ZUZpbGVUaHJlYWRUYXNrKHRoaXMsICZBc3luY0ZpbGVTdHJlYW06OndyaXRlT25G
aWxlVGhyZWFkLCBibG9iVVJMLCBwb3NpdGlvbiwgbGVuZ3RoKSk7CisgICAgZmlsZVRocmVhZCgp
LT5wb3N0VGFzayhzdGQ6Om1ha2VfdW5pcXVlPEZpbGVUaHJlYWQ6OlRhc2s+KHRoaXMsICZBc3lu
Y0ZpbGVTdHJlYW06OndyaXRlT25GaWxlVGhyZWFkLCBibG9iVVJMLCBwb3NpdGlvbiwgbGVuZ3Ro
KSk7CiB9CiAKIHZvaWQgQXN5bmNGaWxlU3RyZWFtOjp3cml0ZU9uRmlsZVRocmVhZChjb25zdCBV
UkwmIGJsb2JVUkwsIGxvbmcgbG9uZyBwb3NpdGlvbiwgaW50IGxlbmd0aCkKQEAgLTIyNiw3ICsy
MjEsNyBAQCBzdGF0aWMgdm9pZCBkaWRUcnVuY2F0ZShBc3luY0ZpbGVTdHJlYW0qCiAKIHZvaWQg
QXN5bmNGaWxlU3RyZWFtOjp0cnVuY2F0ZShsb25nIGxvbmcgcG9zaXRpb24pCiB7Ci0gICAgZmls
ZVRocmVhZCgpLT5wb3N0VGFzayhjcmVhdGVGaWxlVGhyZWFkVGFzayh0aGlzLCAmQXN5bmNGaWxl
U3RyZWFtOjp0cnVuY2F0ZU9uRmlsZVRocmVhZCwgcG9zaXRpb24pKTsKKyAgICBmaWxlVGhyZWFk
KCktPnBvc3RUYXNrKHN0ZDo6bWFrZV91bmlxdWU8RmlsZVRocmVhZDo6VGFzaz4odGhpcywgJkFz
eW5jRmlsZVN0cmVhbTo6dHJ1bmNhdGVPbkZpbGVUaHJlYWQsIHBvc2l0aW9uKSk7CiB9CiAKIHZv
aWQgQXN5bmNGaWxlU3RyZWFtOjp0cnVuY2F0ZU9uRmlsZVRocmVhZChsb25nIGxvbmcgcG9zaXRp
b24pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVUaHJlYWQuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVUaHJlYWQuaAkocmV2aXNpb24gMTY4NTk1
KQorKysgU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlVGhyZWFkLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDYgKzMzLDggQEAKIAogI2lmIEVOQUJMRShCTE9CKQogCisjaW5jbHVkZSAiQ3Jvc3NU
aHJlYWRDb3BpZXIuaCIKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9NZXNz
YWdlUXVldWUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9U
aHJlYWRpbmcuaD4KQEAgLTU2LDExICs1OCwyMSBAQCBwdWJsaWM6CiAgICAgY2xhc3MgVGFzayB7
CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRhc2spOwogICAgIHB1YmxpYzoKLSAgICAg
ICAgdmlydHVhbCB+VGFzaygpIHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybVRhc2so
KSA9IDA7CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIE1ldGhvZCwgdHlw
ZW5hbWUuLi4gUGFyYW1ldGVycz4KKyAgICAgICAgVGFzayhUKiBpbnN0YW5jZSwgTWV0aG9kIG1l
dGhvZCwgY29uc3QgUGFyYW1ldGVycyYuLi4gcGFyYW1ldGVycykKKyAgICAgICAgICAgIDogbV90
YXNrKHN0ZDo6YmluZChtZXRob2QsIGluc3RhbmNlLCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGll
cjxQYXJhbWV0ZXJzPjo6VHlwZShDcm9zc1RocmVhZENvcGllcjxQYXJhbWV0ZXJzPjo6Y29weShw
YXJhbWV0ZXJzKSkuLi4pKQorICAgICAgICAgICAgLCBtX2luc3RhbmNlKGluc3RhbmNlKQorICAg
ICAgICB7CisgICAgICAgIH0KKworICAgICAgICB2b2lkIHBlcmZvcm1UYXNrKCkKKyAgICAgICAg
eworICAgICAgICAgICAgbV90YXNrKCk7CisgICAgICAgIH0KICAgICAgICAgdm9pZCogaW5zdGFu
Y2UoKSBjb25zdCB7IHJldHVybiBtX2luc3RhbmNlOyB9Ci0gICAgcHJvdGVjdGVkOgotICAgICAg
ICBUYXNrKHZvaWQqIGluc3RhbmNlKSA6IG1faW5zdGFuY2UoaW5zdGFuY2UpIHsgfQorCisgICAg
cHJpdmF0ZToKKyAgICAgICAgc3RkOjpmdW5jdGlvbjx2b2lkICgpPiBtX3Rhc2s7CiAgICAgICAg
IHZvaWQqIG1faW5zdGFuY2U7CiAgICAgfTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvZmlsZWFw
aS9GaWxlVGhyZWFkVGFzay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZVRocmVhZFRhc2suaAkocmV2aXNpb24gMTY4NTk1KQorKysgU291cmNlL1dlYkNvcmUvZmls
ZWFwaS9GaWxlVGhyZWFkVGFzay5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIwNiArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0g
KiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
Zm5kZWYgRmlsZVRocmVhZFRhc2tfaAotI2RlZmluZSBGaWxlVGhyZWFkVGFza19oCi0KLSNpbmNs
dWRlICJDcm9zc1RocmVhZENvcGllci5oIgotI2luY2x1ZGUgIkNyb3NzVGhyZWFkVGFzay5oIgot
I2luY2x1ZGUgIkZpbGVUaHJlYWQuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1jbGFzcyBGaWxlVGhy
ZWFkVGFzazAgOiBwdWJsaWMgRmlsZVRocmVhZDo6VGFzayB7Ci1wdWJsaWM6Ci0gICAgdHlwZWRl
ZiB2b2lkIChUOjoqTWV0aG9kKSgpOwotICAgIHR5cGVkZWYgRmlsZVRocmVhZFRhc2swPFQ+IEZp
bGVUaHJlYWRUYXNrSW1wbDsKLQotICAgIEZpbGVUaHJlYWRUYXNrMChUKiBpbnN0YW5jZSwgTWV0
aG9kIG1ldGhvZCkKLSAgICAgICAgOiBGaWxlVGhyZWFkOjpUYXNrKGluc3RhbmNlKQotICAgICAg
ICAsIG1fbWV0aG9kKG1ldGhvZCkKLSAgICB7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIHZpcnR1
YWwgdm9pZCBwZXJmb3JtVGFzaygpIG92ZXJyaWRlCi0gICAgewotICAgICAgICAoKnN0YXRpY19j
YXN0PFQqPihpbnN0YW5jZSgpKS4qbV9tZXRob2QpKCk7Ci0gICAgfQotCi1wcml2YXRlOgotICAg
IE1ldGhvZCBtX21ldGhvZDsKLX07Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFAx
LCB0eXBlbmFtZSBNUDE+Ci1jbGFzcyBGaWxlVGhyZWFkVGFzazEgOiBwdWJsaWMgRmlsZVRocmVh
ZDo6VGFzayB7Ci1wdWJsaWM6Ci0gICAgdHlwZWRlZiB2b2lkIChUOjoqTWV0aG9kKShNUDEpOwot
ICAgIHR5cGVkZWYgRmlsZVRocmVhZFRhc2sxPFQsIFAxLCBNUDE+IEZpbGVUaHJlYWRUYXNrSW1w
bDsKLSAgICB0eXBlZGVmIHR5cGVuYW1lIENyb3NzVGhyZWFkVGFza1RyYWl0czxQMT46OlBhcmFt
VHlwZSBQYXJhbTE7Ci0KLSAgICBGaWxlVGhyZWFkVGFzazEoVCogaW5zdGFuY2UsIE1ldGhvZCBt
ZXRob2QsIFBhcmFtMSBwYXJhbWV0ZXIxKQotICAgICAgICA6IEZpbGVUaHJlYWQ6OlRhc2soaW5z
dGFuY2UpCi0gICAgICAgICwgbV9tZXRob2QobWV0aG9kKQotICAgICAgICAsIG1fcGFyYW1ldGVy
MShwYXJhbWV0ZXIxKQotICAgIHsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgdmlydHVhbCB2b2lk
IHBlcmZvcm1UYXNrKCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgICgqc3RhdGljX2Nhc3Q8VCo+
KGluc3RhbmNlKCkpLiptX21ldGhvZCkobV9wYXJhbWV0ZXIxKTsKLSAgICB9Ci0KLXByaXZhdGU6
Ci0gICAgTWV0aG9kIG1fbWV0aG9kOwotICAgIFAxIG1fcGFyYW1ldGVyMTsKLX07Ci0KLXRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAyLCB0
eXBlbmFtZSBNUDI+Ci1jbGFzcyBGaWxlVGhyZWFkVGFzazIgOiBwdWJsaWMgRmlsZVRocmVhZDo6
VGFzayB7Ci1wdWJsaWM6Ci0gICAgdHlwZWRlZiB2b2lkIChUOjoqTWV0aG9kKShNUDEsIE1QMik7
Ci0gICAgdHlwZWRlZiBGaWxlVGhyZWFkVGFzazI8VCwgUDEsIE1QMSwgUDIsIE1QMj4gRmlsZVRo
cmVhZFRhc2tJbXBsOwotICAgIHR5cGVkZWYgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRUYXNrVHJhaXRz
PFAxPjo6UGFyYW1UeXBlIFBhcmFtMTsKLSAgICB0eXBlZGVmIHR5cGVuYW1lIENyb3NzVGhyZWFk
VGFza1RyYWl0czxQMj46OlBhcmFtVHlwZSBQYXJhbTI7Ci0KLSAgICBGaWxlVGhyZWFkVGFzazIo
VCogaW5zdGFuY2UsIE1ldGhvZCBtZXRob2QsIFBhcmFtMSBwYXJhbWV0ZXIxLCBQYXJhbTIgcGFy
YW1ldGVyMikKLSAgICAgICAgOiBGaWxlVGhyZWFkOjpUYXNrKGluc3RhbmNlKQotICAgICAgICAs
IG1fbWV0aG9kKG1ldGhvZCkKLSAgICAgICAgLCBtX3BhcmFtZXRlcjEocGFyYW1ldGVyMSkKLSAg
ICAgICAgLCBtX3BhcmFtZXRlcjIocGFyYW1ldGVyMikKLSAgICB7Ci0gICAgfQotCi1wcml2YXRl
OgotICAgIHZpcnR1YWwgdm9pZCBwZXJmb3JtVGFzaygpIG92ZXJyaWRlCi0gICAgewotICAgICAg
ICAoKnN0YXRpY19jYXN0PFQqPihpbnN0YW5jZSgpKS4qbV9tZXRob2QpKG1fcGFyYW1ldGVyMSwg
bV9wYXJhbWV0ZXIyKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgTWV0aG9kIG1fbWV0aG9kOwot
ICAgIFAxIG1fcGFyYW1ldGVyMTsKLSAgICBQMiBtX3BhcmFtZXRlcjI7Ci19OwotCi10ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlw
ZW5hbWUgTVAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAzPgotY2xhc3MgRmlsZVRocmVhZFRh
c2szIDogcHVibGljIEZpbGVUaHJlYWQ6OlRhc2sgewotcHVibGljOgotICAgIHR5cGVkZWYgdm9p
ZCAoVDo6Kk1ldGhvZCkoTVAxLCBNUDIsIE1QMyk7Ci0gICAgdHlwZWRlZiBGaWxlVGhyZWFkVGFz
azM8VCwgUDEsIE1QMSwgUDIsIE1QMiwgUDMsIE1QMz4gRmlsZVRocmVhZFRhc2tJbXBsOwotICAg
IHR5cGVkZWYgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRUYXNrVHJhaXRzPFAxPjo6UGFyYW1UeXBlIFBh
cmFtMTsKLSAgICB0eXBlZGVmIHR5cGVuYW1lIENyb3NzVGhyZWFkVGFza1RyYWl0czxQMj46OlBh
cmFtVHlwZSBQYXJhbTI7Ci0gICAgdHlwZWRlZiB0eXBlbmFtZSBDcm9zc1RocmVhZFRhc2tUcmFp
dHM8UDM+OjpQYXJhbVR5cGUgUGFyYW0zOwotCi0gICAgRmlsZVRocmVhZFRhc2szKFQqIGluc3Rh
bmNlLCBNZXRob2QgbWV0aG9kLCBQYXJhbTEgcGFyYW1ldGVyMSwgUGFyYW0yIHBhcmFtZXRlcjIs
IFBhcmFtMyBwYXJhbWV0ZXIzKQotICAgICAgICA6IEZpbGVUaHJlYWQ6OlRhc2soaW5zdGFuY2Up
Ci0gICAgICAgICwgbV9tZXRob2QobWV0aG9kKQotICAgICAgICAsIG1fcGFyYW1ldGVyMShwYXJh
bWV0ZXIxKQotICAgICAgICAsIG1fcGFyYW1ldGVyMihwYXJhbWV0ZXIyKQotICAgICAgICAsIG1f
cGFyYW1ldGVyMyhwYXJhbWV0ZXIzKQotICAgIHsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgdmly
dHVhbCB2b2lkIHBlcmZvcm1UYXNrKCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgICgqc3RhdGlj
X2Nhc3Q8VCo+KGluc3RhbmNlKCkpLiptX21ldGhvZCkobV9wYXJhbWV0ZXIxLCBtX3BhcmFtZXRl
cjIsIG1fcGFyYW1ldGVyMyk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIE1ldGhvZCBtX21ldGhv
ZDsKLSAgICBQMSBtX3BhcmFtZXRlcjE7Ci0gICAgUDIgbV9wYXJhbWV0ZXIyOwotICAgIFAzIG1f
cGFyYW1ldGVyMzsKLX07Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1zdGQ6OnVuaXF1ZV9wdHI8
RmlsZVRocmVhZDo6VGFzaz4gY3JlYXRlRmlsZVRocmVhZFRhc2soCi0gICAgVCogY29uc3QgY2Fs
bGVlLAotICAgIHZvaWQgKFQ6OiptZXRob2QpKCkpOwotCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPgot
c3RkOjp1bmlxdWVfcHRyPEZpbGVUaHJlYWQ6OlRhc2s+IGNyZWF0ZUZpbGVUaHJlYWRUYXNrKAot
ICAgIFQqIGNvbnN0IGNhbGxlZSwKLSAgICB2b2lkIChUOjoqbWV0aG9kKSgpKQotewotICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPEZpbGVUaHJlYWRUYXNrMDxUPj4oCi0gICAgICAgIGNhbGxl
ZSwKLSAgICAgICAgbWV0aG9kKTsKLX0KLQotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
UDEsIHR5cGVuYW1lIE1QMT4KLXN0ZDo6dW5pcXVlX3B0cjxGaWxlVGhyZWFkOjpUYXNrPiBjcmVh
dGVGaWxlVGhyZWFkVGFzaygKLSAgICBUKiBjb25zdCBjYWxsZWUsCi0gICAgdm9pZCAoVDo6Km1l
dGhvZCkoTVAxKSwKLSAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSkKLXsKLSAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxGaWxlVGhyZWFkVGFzazE8VCwgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3Bp
ZXI8UDE+OjpUeXBlLCBNUDE+PigKLSAgICAgICAgY2FsbGVlLAotICAgICAgICBtZXRob2QsCi0g
ICAgICAgIENyb3NzVGhyZWFkQ29waWVyPFAxPjo6Y29weShwYXJhbWV0ZXIxKSk7Ci19Ci0KLXRl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5cGVuYW1lIFAy
LCB0eXBlbmFtZSBNUDI+Ci1zdGQ6OnVuaXF1ZV9wdHI8RmlsZVRocmVhZDo6VGFzaz4gY3JlYXRl
RmlsZVRocmVhZFRhc2soCi0gICAgVCogY29uc3QgY2FsbGVlLAotICAgIHZvaWQgKFQ6OiptZXRo
b2QpKE1QMSwgTVAyKSwKLSAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwKLSAgICBjb25zdCBQMiYg
cGFyYW1ldGVyMikKLXsKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxGaWxlVGhyZWFkVGFz
azI8VCwgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDE+OjpUeXBlLCBNUDEsIHR5cGVuYW1l
IENyb3NzVGhyZWFkQ29waWVyPFAyPjo6VHlwZSwgTVAyPj4oCi0gICAgICAgIGNhbGxlZSwKLSAg
ICAgICAgbWV0aG9kLAotICAgICAgICBDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1l
dGVyMSksCi0gICAgICAgIENyb3NzVGhyZWFkQ29waWVyPFAyPjo6Y29weShwYXJhbWV0ZXIyKSk7
Ci19Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBNUDEsIHR5
cGVuYW1lIFAyLCB0eXBlbmFtZSBNUDIsIHR5cGVuYW1lIFAzLCB0eXBlbmFtZSBNUDM+Ci1zdGQ6
OnVuaXF1ZV9wdHI8RmlsZVRocmVhZDo6VGFzaz4gY3JlYXRlRmlsZVRocmVhZFRhc2soCi0gICAg
VCogY29uc3QgY2FsbGVlLAotICAgIHZvaWQgKFQ6OiptZXRob2QpKE1QMSwgTVAyLCBNUDMpLAot
ICAgIGNvbnN0IFAxJiBwYXJhbWV0ZXIxLAotICAgIGNvbnN0IFAyJiBwYXJhbWV0ZXIyLAotICAg
IGNvbnN0IFAzJiBwYXJhbWV0ZXIzKQotewotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEZp
bGVUaHJlYWRUYXNrMzxULCB0eXBlbmFtZSBDcm9zc1RocmVhZENvcGllcjxQMT46OlR5cGUsIE1Q
MSwgdHlwZW5hbWUgQ3Jvc3NUaHJlYWRDb3BpZXI8UDI+OjpUeXBlLCBNUDIsIHR5cGVuYW1lIENy
b3NzVGhyZWFkQ29waWVyPFAzPjo6VHlwZSwgTVAzPj4oCi0gICAgICAgIGNhbGxlZSwKLSAgICAg
ICAgbWV0aG9kLAotICAgICAgICBDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVy
MSksCi0gICAgICAgIENyb3NzVGhyZWFkQ29waWVyPFAyPjo6Y29weShwYXJhbWV0ZXIyKSwKLSAg
ICAgICAgQ3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFtZXRlcjMpKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRmlsZVRocmVhZFRhc2tfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>