<?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>142897</bug_id>
          
          <creation_ts>2015-03-19 21:33:46 -0700</creation_ts>
          <short_desc>[Content Filtering] Move ContentFilter to from platform/ to loader/</short_desc>
          <delta_ts>2015-03-19 22:23:00 -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>128858</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>japhet</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1078740</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-03-19 21:33:46 -0700</bug_when>
    <thetext>[Content Filtering] Move ContentFilter to from platform/ to loader/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078743</commentid>
    <comment_count>1</comment_count>
      <attachid>249083</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-03-19 21:57:24 -0700</bug_when>
    <thetext>Created attachment 249083
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078745</commentid>
    <comment_count>2</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-03-19 22:08:19 -0700</bug_when>
    <thetext>This will allow me to add some non-platform code to ContentFilter later on without introducing a layering violation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1078749</commentid>
    <comment_count>3</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2015-03-19 22:23:00 -0700</bug_when>
    <thetext>Committed r181781: &lt;http://trac.webkit.org/changeset/181781&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249083</attachid>
            <date>2015-03-19 21:57:24 -0700</date>
            <delta_ts>2015-03-19 22:20:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-142897-20150319215652.patch</filename>
            <type>text/plain</type>
            <size>34231</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgxNjU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWEyZTM5MjZjMjQ0Yjli
YTQwNTAyMzUyODYwZDI5MGQxNGRjYmZkMS4uMjQxYjI0NDU1MzliZTUwMTY5YjZiNDU1YTc2NGEz
ZDRjYzkyYzdhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE1LTAzLTE5ICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29udGVudCBGaWx0ZXJpbmdd
IE1vdmUgQ29udGVudEZpbHRlciB0byBmcm9tIHBsYXRmb3JtLyB0byBsb2FkZXIvCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI4OTcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb250ZW50RmlsdGVyQ29s
bGVjdGlvbiBuZXZlciBjb250YWluZWQgYW55IHBsYXRmb3JtIGNvZGUsIHNvIGl0IGRvZXNuJ3Qg
bWFrZSBzZW5zZSBmb3IgaXQgdG8gYmUgaW4gcGxhdGZvcm0uCisgICAgICAgIE1vdmUgaXQgdG8g
bG9hZGVyLywgc2luY2UgQ29udGVudEZpbHRlcnMgYXJlIG93bmVkIGJ5IERvY3VtZW50TG9hZGVy
cywgYW5kIGp1c3QgY2FsbCBpdCBDb250ZW50RmlsdGVyLiBFeHRyYWN0CisgICAgICAgIHRoZSBh
YnN0cmFjdCBwYXJ0IG9mIENvbnRlbnRGaWx0ZXIgaW50byBhIG5ldyBiYXNlIGNsYXNzIGNhbGxl
ZCBQbGF0Zm9ybUNvbnRlbnRGaWx0ZXIgdGhhdCBlYWNoIG9mIHRoZQorICAgICAgICBpbmRpdmlk
dWFsIGZpbHRlcnMgaW5oZXJpdCBmcm9tLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxvYWRlci9Db250ZW50RmlsdGVyLmNwcDogUmVu
YW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRGaWx0ZXIuY3BwLgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6dHlwZXMpOiBNb3ZlZCBmcm9tIENvbnRlbnRG
aWx0ZXJDb2xsZWN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6Y3JlYXRl
SWZOZWVkZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6OkNvbnRl
bnRGaWx0ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6OmFkZERh
dGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6OmZpbmlzaGVkQWRk
aW5nRGF0YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6bmVlZHNN
b3JlRGF0YSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6ZGlkQmxv
Y2tEYXRhKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RmlsdGVyOjpnZXRSZXBs
YWNlbWVudERhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRGaWx0ZXI6OnVu
YmxvY2tIYW5kbGVyKTogRGl0dG8uCisgICAgICAgICogbG9hZGVyL0NvbnRlbnRGaWx0ZXIuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGVudEZpbHRlci5oLgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudEZpbHRlcjo6dHlwZSk6IFJlcGxhY2VkIGEgdXNlIG9mIENv
bnRlbnRGaWx0ZXJDb2xsZWN0aW9uLgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtQ29udGVu
dEZpbHRlci5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGVudEZp
bHRlci5oLgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50
RmlsdGVyLmg6IEluaGVyaXRlZCBmcm9tIFBsYXRmb3JtQ29udGVudEZpbHRlci4KKyAgICAgICAg
KiBwbGF0Zm9ybS9jb2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5oOiBEaXR0by4K
KyAgICAgICAgKiB0ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyLmg6IERpdHRvLgorCiAyMDE1LTAz
LTE3ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgVXNl
IGEgYmV0dGVyIHBhcmFtZXRlciBuYW1lIGZvciBEb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NO
YW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggZGNlYjQxM2NhZWZlMzg2MDhmYzU2YTcyMzExZGIwODgwZjI2ZTgxYi4uNWRjYmFm
NzYwNWJmNTBhZjJhMGIzZWNhMWNmNmE4MDI2YmNkZmNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTA0MSw3ICsxMDQxLDYg
QEAKIAkJMjkxN0I1NjIxNDczNDk2QzAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5MTdCNTVGMTQ3
MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZsdXNoU2NoZWR1bGVyLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMjkxN0I1NjMxNDczNDk2QzAwNTJDOUQw
IC8qIExheWVyRmx1c2hTY2hlZHVsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5MTdCNTYwMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXllckZs
dXNoU2NoZWR1bGVyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMjkxN0I1NjYxNDczNDk5NTAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hl
ZHVsZXJNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMjkxN0I1NjUxNDczNDk5NTAwNTJDOUQwIC8qIExheWVyRmx1c2hTY2hlZHVsZXJNYWMuY3Bw
ICovOyB9OwotCQkyOTE5QTFFOTE2QjMzNzY2MDA3ODcyMTMgLyogQ29udGVudEZpbHRlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkxOUExRTgxNkIz
Mzc2NjAwNzg3MjEzIC8qIENvbnRlbnRGaWx0ZXIuaCAqLzsgfTsKIAkJMjkzNDk0MEExNkMwMkMw
NzAwOTAxMzE4IC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2UuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjUyN0NDOTMxNkJGOTJFQzAwOURE
QUMwIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVm9pY2UuY3BwICovOyB9OwogCQkyOTM0OTQw
QjE2QzAyQzBBMDA5MDEzMTggLyogUGxhdGZvcm1TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjUyN0NDOTUx
NkJGOTVERDAwOUREQUMwIC8qIFBsYXRmb3JtU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmNwcCAq
LzsgfTsKIAkJMjkzRUFFMUYxMzU2QjJGRTAwNjdBQ0Y5IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjkz
RUFFMUUxMzU2QjJGRTAwNjdBQ0Y5IC8qIFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0zODEzLDcgKzM4
MTIsOSBAQAogCQlBMTQ4MzJDRDE4N0Y2ODJFMDBEQTYzQTYgLyogV2ViQ29yZVRocmVhZFNhZmUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExNDgzMjlG
MTg3RjUwODcwMERBNjNBNiAvKiBXZWJDb3JlVGhyZWFkU2FmZS5oICovOyB9OwogCQlBMTQ4MzJD
RTE4N0Y2ODM0MDBEQTYzQTYgLyogV2ViQ29yZVRocmVhZFN5c3RlbUludGVyZmFjZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTQ4MzJBMDE4N0Y1
MDg3MDBEQTYzQTYgLyogV2ViQ29yZVRocmVhZFN5c3RlbUludGVyZmFjZS5jcHAgKi87IH07CiAJ
CUExNDgzMkNGMTg3RjY4NDcwMERBNjNBNiAvKiBXZWJDb3JlVGhyZWFkU3lzdGVtSW50ZXJmYWNl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTQ4MzJB
MTE4N0Y1MDg3MDBEQTYzQTYgLyogV2ViQ29yZVRocmVhZFN5c3RlbUludGVyZmFjZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUExNUQzMjlEMUFB
N0NGM0IwMDlBMjM0QSAvKiBDb250ZW50RmlsdGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExNUQzMjlDMUFBN0NGM0IwMDlBMjM0QSAvKiBDb250
ZW50RmlsdGVyLmNwcCAqLzsgfTsKKwkJQTE0OTc4NkUxQUJBRjMzODAwQ0VGN0U0IC8qIENvbnRl
bnRGaWx0ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTE0OTc4NkMxQUJBRjMzODAwQ0VGN0U0IC8qIENvbnRlbnRGaWx0ZXIuY3BwICovOyB9Owor
CQlBMTQ5Nzg2RjFBQkFGMzM4MDBDRUY3RTQgLyogQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTE0OTc4NkQxQUJBRjMzODAwQ0VG
N0U0IC8qIENvbnRlbnRGaWx0ZXIuaCAqLzsgfTsKKwkJQTE0OTc4NzExQUJBRjNBNTAwQ0VGN0U0
IC8qIFBsYXRmb3JtQ29udGVudEZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTE0OTc4NzAxQUJBRjNBNTAwQ0VGN0U0IC8qIFBsYXRmb3JtQ29u
dGVudEZpbHRlci5oICovOyB9OwogCQlBMTdDODEyMjBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVs
ZW1lbnRGYWN0b3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExN0M4MTIwMEYyQTVDRjcwMDVEQUFFQiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuY3Bw
ICovOyB9OwogCQlBMTdDODEyMzBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTdDODEy
MTBGMkE1Q0Y3MDA1REFBRUIgLyogSFRNTEVsZW1lbnRGYWN0b3J5LmggKi87IH07CiAJCUExODg5
MEFFMUFBMTNGMjUwMDI2QzMwMSAvKiBQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExODg5MEFDMUFB
MTNGMjUwMDI2QzMwMSAvKiBQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5tbSAqLzsgfTsK
QEAgLTgxMTUsNyArODExNiw2IEBACiAJCTI5MTdCNTVGMTQ3MzQ5NkMwMDUyQzlEMCAvKiBMYXll
ckZsdXNoU2NoZWR1bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExheWVy
Rmx1c2hTY2hlZHVsZXIuaDsgcGF0aCA9IGNhL0xheWVyRmx1c2hTY2hlZHVsZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjkxN0I1NjAxNDczNDk2QzAwNTJDOUQwIC8qIExheWVy
Rmx1c2hTY2hlZHVsZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
TGF5ZXJGbHVzaFNjaGVkdWxlckNsaWVudC5oOyBwYXRoID0gY2EvTGF5ZXJGbHVzaFNjaGVkdWxl
ckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTE3QjU2NTE0NzM0OTk1
MDA1MkM5RDAgLyogTGF5ZXJGbHVzaFNjaGVkdWxlck1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBMYXllckZsdXNoU2NoZWR1bGVyTWFjLmNwcDsgcGF0aCA9IGNh
L21hYy9MYXllckZsdXNoU2NoZWR1bGVyTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJMjkxOUExRTgxNkIzMzc2NjAwNzg3MjEzIC8qIENvbnRlbnRGaWx0ZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGVudEZpbHRlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyOTNFQUUxRTEzNTZCMkZFMDA2N0FDRjkgLyogUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJ1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyOTNFQUUy
MDEzNTZCMzJFMDA2N0FDRjkgLyogUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJ1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTI5NDg5RkM1MTJDMDBGMDMwMEQ4M0Yw
RiAvKiBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTEwNjUsNyArMTEwNjUsOSBAQAogCQlBMTQ4MzJBOTE4N0Y1MDg3MDBEQTYzQTYg
LyogV0tWaWV3LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLVmlldy5oOyBw
YXRoID0gaW9zL3dhay9XS1ZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE0
ODMyQUExODdGNTA4NzAwREE2M0E2IC8qIFdLVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgbmFtZSA9IFdLVmlldy5tbTsgcGF0aCA9IGlvcy93YWsvV0tWaWV3Lm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTQ4MzJBQjE4N0Y1MDg3MDBEQTYzQTYgLyog
V0tWaWV3UHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS1ZpZXdQ
cml2YXRlLmg7IHBhdGggPSBpb3Mvd2FrL1dLVmlld1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJQTE1RDMyOUMxQUE3Q0YzQjAwOUEyMzRBIC8qIENvbnRlbnRGaWx0ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29udGVudEZpbHRlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExNDk3ODZDMUFCQUYzMzgwMENFRjdF
NCAvKiBDb250ZW50RmlsdGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENvbnRlbnRGaWx0ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTQ5
Nzg2RDFBQkFGMzM4MDBDRUY3RTQgLyogQ29udGVudEZpbHRlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDb250ZW50RmlsdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUExNDk3ODcwMUFCQUYzQTUwMENFRjdFNCAvKiBQbGF0Zm9ybUNvbnRlbnRGaWx0ZXIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1Db250ZW50RmlsdGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExN0M4MTIwMEYyQTVDRjcwMDVEQUFF
QiAvKiBIVE1MRWxlbWVudEZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSFRNTEVsZW1lbnRGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTE3QzgxMjEwRjJBNUNGNzAwNURBQUVCIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MRWxlbWVudEZhY3RvcnkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTE4ODkwQUMxQUExM0YyNTAwMjZDMzAxIC8qIFBh
cmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTQwMCw2ICsyMTQwMiw4IEBACiAJCQkJN0U0REUxMEIx
OThCMTA4MTAwNTFDQjAyIC8qIGNvY29hICovLAogCQkJCTUxMjZFNkI2MEEyRTNBRUYwMDVDMjlG
QSAvKiBpY29uICovLAogCQkJCTkzQTFFQUEyMEE1NjM0RDgwMDY5NjBBMCAvKiBtYWMgKi8sCisJ
CQkJQTE0OTc4NkMxQUJBRjMzODAwQ0VGN0U0IC8qIENvbnRlbnRGaWx0ZXIuY3BwICovLAorCQkJ
CUExNDk3ODZEMUFCQUYzMzgwMENFRjdFNCAvKiBDb250ZW50RmlsdGVyLmggKi8sCiAJCQkJRTE0
MjRDOTExNjRCNTJDODAwRjMyRDQwIC8qIENvb2tpZUphci5jcHAgKi8sCiAJCQkJRTE0MjRDOTIx
NjRCNTJDODAwRjMyRDQwIC8qIENvb2tpZUphci5oICovLAogCQkJCUUxQzQxNjE2MEY2NTYzMTgw
MDkyRDJGQiAvKiBDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwICovLApAQCAtMjE1NTksOCAr
MjE1NjMsNiBAQAogCQkJCUMzMzBBMjIxMTNFQzE5NkIwMDAwQjQ1QiAvKiBDb2xvckNob29zZXIu
aCAqLywKIAkJCQlDMzdDREVCQzE0OUVGMjAzMDA0MjA5MEQgLyogQ29sb3JDaG9vc2VyQ2xpZW50
LmggKi8sCiAJCQkJQkNDOENGQ0EwOTg2Q0QyNDAwMTQwQkYyIC8qIENvbG9yRGF0YS5ncGVyZiAq
LywKLQkJCQlBMTVEMzI5QzFBQTdDRjNCMDA5QTIzNEEgLyogQ29udGVudEZpbHRlci5jcHAgKi8s
Ci0JCQkJMjkxOUExRTgxNkIzMzc2NjAwNzg3MjEzIC8qIENvbnRlbnRGaWx0ZXIuaCAqLywKIAkJ
CQlBMTQwOTBGQzFBQTUxRTQ4MDA5MTE5MUEgLyogQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVy
LmggKi8sCiAJCQkJNDFEMDE1QzkwRjRCNUM3MTAwNEE2NjJGIC8qIENvbnRlbnRUeXBlLmNwcCAq
LywKIAkJCQk0MUQwMTVDODBGNEI1QzcxMDA0QTY2MkYgLyogQ29udGVudFR5cGUuaCAqLywKQEAg
LTIxNjI3LDYgKzIxNjI5LDcgQEAKIAkJCQk5OEVCMUY5NDEzMTNGRTA1MDBEMEUxRUEgLyogTm90
SW1wbGVtZW50ZWQuaCAqLywKIAkJCQk0QjI3MDhDNTBBRjE5RUU0MDA2NTEyN0YgLyogUGFzdGVi
b2FyZC5oICovLAogCQkJCUM1Rjc2NUI0MTRFMUQ0MTQwMDZDODk5QiAvKiBQYXN0ZWJvYXJkU3Ry
YXRlZ3kuaCAqLywKKwkJCQlBMTQ5Nzg3MDFBQkFGM0E1MDBDRUY3RTQgLyogUGxhdGZvcm1Db250
ZW50RmlsdGVyLmggKi8sCiAJCQkJRTE0MjRDODkxNjRCM0I0RTAwRjMyRDQwIC8qIFBsYXRmb3Jt
Q29va2llSmFyLmggKi8sCiAJCQkJQkM1Qzc2MjkxNDk3RkUxNDAwQkM0Nzc1IC8qIFBsYXRmb3Jt
RXZlbnQuaCAqLywKIAkJCQlBNzIzRjc3QTE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBv
cnRNYWNyb3MuaCAqLywKQEAgLTIzODM2LDcgKzIzODM5LDYgQEAKIAkJCQlFMUExNDcwODExMTAy
QjE1MDBFRUMwRjMgLyogQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDNUVCOTgxMEU4MjA3MjUwMEIyNTk2NSAvKiBDb250ZW50RGF0YS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTdCNzkxQTQxNEM2QTYyOTAwRjIwMkQxIC8qIENvbnRlbnREaXN0cmlidXRvci5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJMjkxOUExRTkxNkIzMzc2NjAwNzg3MjEzIC8qIENvbnRlbnRG
aWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3QzQ3MURDMTJGOTI1QkQwMDg2MzU0QiAvKiBD
b250ZW50U2VjdXJpdHlQb2xpY3kuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRDAxNUNBMEY0QjVD
NzEwMDRBNjYyRiAvKiBDb250ZW50VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc2MjdCOEUx
NEZCM0NFRTAwMkNEQ0ExIC8qIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI1Njg0LDYgKzI1Njg2LDcgQEAKIAkJCQk1MkYxMDg2NjE2MkI2REE4MDA5QUM4
MUUgLyogTWl4ZWRDb250ZW50Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0UxMjUyNDkx
QTE2QzNCQzAwODY0NDgwIC8qIE1vYmlsZUdlc3RhbHRTUEkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUNERjJCMDExMTgyMDU0MDYwMEYyQjQyNCAvKiBNb2NrQm94LmggaW4gSGVhZGVycyAqLywKKwkJ
CQlBMTQ5Nzg3MTFBQkFGM0E1MDBDRUY3RTQgLyogUGxhdGZvcm1Db250ZW50RmlsdGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQlDREYyQjAxMzE4MjA1NDA2MDBGMkI0MjQgLyogTW9ja01lZGlhUGxh
eWVyTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERjJCMDE1MTgyMDU0MDYwMEYy
QjQyNCAvKiBNb2NrTWVkaWFTb3VyY2VQcml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREYy
QjAxNzE4MjA1NDA3MDBGMkI0MjQgLyogTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjU5MTUsNiArMjU5MTgsNyBAQAogCQkJCTU1MEEwQkNBMDg1RjYwMzkwMDcz
NTNENiAvKiBRdWFsaWZpZWROYW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRTEyNTIzRDFBMTY3
NkNEMDA4NjQ0ODAgLyogUXVhcnR6Q29yZVNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDQyQUY3
QTkxMDJDRERFQTAwOEZENEQzIC8qIFF1aWNrTG9vay5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTE0
OTc4NkYxQUJBRjMzODAwQ0VGN0U0IC8qIENvbnRlbnRGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUNFMTI1MjM5MUExNjZGQTAwMDg2NDQ4MCAvKiBRdWlja0xvb2tTUEkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUExMERCRjQ3MThGOTIzMTcwMDBENzBDNiAvKiBRdWlja0xvb2tIYW5kbGVDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MkFFMUU4MTgzQzA3NDEwMDBBNTk4OCAvKiBRdWlj
a1RpbWVQbHVnaW5SZXBsYWNlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzcwNiw2ICsyNzcx
MCw3IEBACiAJCQkJRjU1QjNEQjcxMjUxRjEyRDAwM0VGMjY5IC8qIERhdGVUaW1lSW5wdXRUeXBl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY1NUIzREI5MTI1MUYxMkQwMDNFRjI2OSAvKiBEYXRl
VGltZUxvY2FsSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNkExMkJEMUEwMDky
MzcwMEM2REU3MiAvKiBEZWJ1Z1BhZ2VPdmVybGF5cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlB
MTQ5Nzg2RTFBQkFGMzM4MDBDRUY3RTQgLyogQ29udGVudEZpbHRlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0NUZFQTVDRjE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBOEMyMjhBMjExRDU3MjJFMDBENUE3RDMgLyogRGVjb2RlZERhdGFEb2N1bWVu
dFBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0MTYyQTQ1MDEwMTE0NUFFMDBERkYzRUQg
LyogRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yOTE3
MSw3ICsyOTE3Niw2IEBACiAJCQkJQ0RCODU5RjcxNjBENDhBNDAwRTVCMDdGIC8qIE1lZGlhS2V5
RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBOThERDgxNjAyNUJFRjAwRkVBM0IxIC8q
IE1lZGlhS2V5TWVzc2FnZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNEMUI0QTY1MTYw
Nzg2QUUwMDI4MkRGOSAvKiBNZWRpYUtleU5lZWRlZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUExNUQzMjlEMUFBN0NGM0IwMDlBMjM0QSAvKiBDb250ZW50RmlsdGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTZDNTY4Q0IwMTlEQUZFQTAwMDQzMENBMiAvKiBNYXNrSW1hZ2VPcGVyYXRp
b24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0RBOThFMEQxNjAzRkU0QTAwRkVBM0IxIC8qIE1l
ZGlhS2V5cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzkzRjM0RDFBQTZCRjA3MDBBOThCQUIg
LyogQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0NvbnRlbnRGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0NvbnRlbnRGaWx0ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyOGJlZjk1YjM3NDk3MWYy
Y2UyYjg3ODU2ZjBjNzUyNGFlMDQ1MjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvQ29udGVudEZpbHRlci5jcHAKQEAgLTAsMCArMSwxMzUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29udGVudEZpbHRlci5oIgorCisjaWYg
RU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQorCisjaW5jbHVkZSAiTmV0d29ya0V4dGVuc2lvbkNv
bnRlbnRGaWx0ZXIuaCIKKyNpbmNsdWRlICJQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5o
IgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK1ZlY3RvcjxDb250ZW50RmlsdGVyOjpUeXBlPiYgQ29udGVudEZpbHRlcjo6dHlwZXMoKQor
eworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxWZWN0b3I8Q29udGVudEZpbHRlcjo6VHlwZT4+
IHR5cGVzIHsKKyAgICAgICAgVmVjdG9yPENvbnRlbnRGaWx0ZXI6OlR5cGU+IHsKKyAgICAgICAg
ICAgIHR5cGU8UGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXI+KCksCisjaWYgSEFWRShORVRX
T1JLX0VYVEVOU0lPTikKKyAgICAgICAgICAgIHR5cGU8TmV0d29ya0V4dGVuc2lvbkNvbnRlbnRG
aWx0ZXI+KCkKKyNlbmRpZgorICAgICAgICB9CisgICAgfTsKKyAgICByZXR1cm4gdHlwZXM7Cit9
CisKK3N0ZDo6dW5pcXVlX3B0cjxDb250ZW50RmlsdGVyPiBDb250ZW50RmlsdGVyOjpjcmVhdGVJ
Zk5lZWRlZChjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBDb250YWlu
ZXIgZmlsdGVyczsKKyAgICBmb3IgKGF1dG8mIHR5cGUgOiB0eXBlcygpKSB7CisgICAgICAgIGlm
ICh0eXBlLmNhbkhhbmRsZVJlc3BvbnNlKHJlc3BvbnNlKSkKKyAgICAgICAgICAgIGZpbHRlcnMu
YXBwZW5kKHR5cGUuY3JlYXRlKHJlc3BvbnNlKSk7CisgICAgfQorCisgICAgaWYgKGZpbHRlcnMu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPENvbnRlbnRGaWx0ZXI+KFdURjo6bW92ZShmaWx0ZXJzKSk7Cit9CisKK0NvbnRl
bnRGaWx0ZXI6OkNvbnRlbnRGaWx0ZXIoQ29udGFpbmVyIGNvbnRlbnRGaWx0ZXJzKQorICAgIDog
bV9jb250ZW50RmlsdGVycyB7IFdURjo6bW92ZShjb250ZW50RmlsdGVycykgfQoreworICAgIEFT
U0VSVCghbV9jb250ZW50RmlsdGVycy5pc0VtcHR5KCkpOworfQorCit2b2lkIENvbnRlbnRGaWx0
ZXI6OmFkZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkKK3sKKyAgICBBU1NFUlQo
bmVlZHNNb3JlRGF0YSgpKTsKKworICAgIGZvciAoYXV0byYgY29udGVudEZpbHRlciA6IG1fY29u
dGVudEZpbHRlcnMpCisgICAgICAgIGNvbnRlbnRGaWx0ZXItPmFkZERhdGEoZGF0YSwgbGVuZ3Ro
KTsKK30KKyAgICAKK3ZvaWQgQ29udGVudEZpbHRlcjo6ZmluaXNoZWRBZGRpbmdEYXRhKCkKK3sK
KyAgICBBU1NFUlQobmVlZHNNb3JlRGF0YSgpKTsKKworICAgIGZvciAoYXV0byYgY29udGVudEZp
bHRlciA6IG1fY29udGVudEZpbHRlcnMpCisgICAgICAgIGNvbnRlbnRGaWx0ZXItPmZpbmlzaGVk
QWRkaW5nRGF0YSgpOworCisgICAgQVNTRVJUKCFuZWVkc01vcmVEYXRhKCkpOworfQorCitib29s
IENvbnRlbnRGaWx0ZXI6Om5lZWRzTW9yZURhdGEoKSBjb25zdAoreworICAgIGZvciAoYXV0byYg
Y29udGVudEZpbHRlciA6IG1fY29udGVudEZpbHRlcnMpIHsKKyAgICAgICAgaWYgKGNvbnRlbnRG
aWx0ZXItPm5lZWRzTW9yZURhdGEoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBDb250ZW50RmlsdGVyOjpkaWRCbG9ja0Rh
dGEoKSBjb25zdAoreworICAgIGZvciAoYXV0byYgY29udGVudEZpbHRlciA6IG1fY29udGVudEZp
bHRlcnMpIHsKKyAgICAgICAgaWYgKGNvbnRlbnRGaWx0ZXItPmRpZEJsb2NrRGF0YSgpKQorICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCitj
b25zdCBjaGFyKiBDb250ZW50RmlsdGVyOjpnZXRSZXBsYWNlbWVudERhdGEoaW50JiBsZW5ndGgp
IGNvbnN0Cit7CisgICAgQVNTRVJUKCFuZWVkc01vcmVEYXRhKCkpOworCisgICAgZm9yIChhdXRv
JiBjb250ZW50RmlsdGVyIDogbV9jb250ZW50RmlsdGVycykgeworICAgICAgICBpZiAoY29udGVu
dEZpbHRlci0+ZGlkQmxvY2tEYXRhKCkpCisgICAgICAgICAgICByZXR1cm4gY29udGVudEZpbHRl
ci0+Z2V0UmVwbGFjZW1lbnREYXRhKGxlbmd0aCk7CisgICAgfQorCisgICAgcmV0dXJuIG1fY29u
dGVudEZpbHRlcnNbMF0tPmdldFJlcGxhY2VtZW50RGF0YShsZW5ndGgpOworfQorCitDb250ZW50
RmlsdGVyVW5ibG9ja0hhbmRsZXIgQ29udGVudEZpbHRlcjo6dW5ibG9ja0hhbmRsZXIoKSBjb25z
dAoreworICAgIEFTU0VSVChkaWRCbG9ja0RhdGEoKSk7CisKKyAgICBmb3IgKGF1dG8mIGNvbnRl
bnRGaWx0ZXIgOiBtX2NvbnRlbnRGaWx0ZXJzKSB7CisgICAgICAgIGlmIChjb250ZW50RmlsdGVy
LT5kaWRCbG9ja0RhdGEoKSkKKyAgICAgICAgICAgIHJldHVybiBjb250ZW50RmlsdGVyLT51bmJs
b2NrSGFuZGxlcigpOworICAgIH0KKworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiB7IH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJM
RShDT05URU5UX0ZJTFRFUklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9D
b250ZW50RmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29udGVudEZpbHRlci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjYyMmE0OTEyYzRiNTU0ZWNkNTU3NjI1NDcyZDc2MDcyZTY4NmNiODUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvQ29udGVudEZpbHRlci5oCkBAIC0w
LDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvbnRlbnRGaWx0ZXJfaAorI2RlZmlu
ZSBDb250ZW50RmlsdGVyX2gKKworI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKKworI2lu
Y2x1ZGUgIlBsYXRmb3JtQ29udGVudEZpbHRlci5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworCitjbGFz
cyBDb250ZW50RmlsdGVyIGZpbmFsIDogcHVibGljIFBsYXRmb3JtQ29udGVudEZpbHRlciB7Citw
dWJsaWM6CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0YXRpYyB2b2lkIGFkZFR5cGUoKSB7
IHR5cGVzKCkuYXBwZW5kKHR5cGU8VD4oKSk7IH0KKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PENvbnRlbnRGaWx0ZXI+IGNyZWF0ZUlmTmVlZGVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsK
KworICAgIHZvaWQgYWRkRGF0YShjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKSBvdmVycmlk
ZTsKKyAgICB2b2lkIGZpbmlzaGVkQWRkaW5nRGF0YSgpIG92ZXJyaWRlOworICAgIGJvb2wgbmVl
ZHNNb3JlRGF0YSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgZGlkQmxvY2tEYXRhKCkgY29u
c3Qgb3ZlcnJpZGU7CisgICAgY29uc3QgY2hhciogZ2V0UmVwbGFjZW1lbnREYXRhKGludCYgbGVu
Z3RoKSBjb25zdCBvdmVycmlkZTsKKyAgICBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgdW5i
bG9ja0hhbmRsZXIoKSBjb25zdCBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBzdHJ1Y3QgVHlw
ZSB7CisgICAgICAgIGNvbnN0IHN0ZDo6ZnVuY3Rpb248Ym9vbChjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJik+IGNhbkhhbmRsZVJlc3BvbnNlOworICAgICAgICBjb25zdCBzdGQ6OmZ1bmN0aW9uPHN0
ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybUNvbnRlbnRGaWx0ZXI+KGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKT4gY3JlYXRlOworICAgIH07CisgICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0YXRpYyBU
eXBlIHR5cGUoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVmVjdG9yPFR5cGU+JiB0eXBl
cygpOworCisgICAgdXNpbmcgQ29udGFpbmVyID0gVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxQbGF0
Zm9ybUNvbnRlbnRGaWx0ZXI+PjsKKyAgICBmcmllbmQgc3RkOjp1bmlxdWVfcHRyPENvbnRlbnRG
aWx0ZXI+IHN0ZDo6bWFrZV91bmlxdWU8Q29udGVudEZpbHRlcj4oQ29udGFpbmVyJiYpOworICAg
IGV4cGxpY2l0IENvbnRlbnRGaWx0ZXIoQ29udGFpbmVyKTsKKworICAgIENvbnRhaW5lciBtX2Nv
bnRlbnRGaWx0ZXJzOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitDb250ZW50RmlsdGVy
OjpUeXBlIENvbnRlbnRGaWx0ZXI6OnR5cGUoKQoreworICAgIHN0YXRpY19hc3NlcnQoc3RkOjpp
c19iYXNlX29mPFBsYXRmb3JtQ29udGVudEZpbHRlciwgVD46OnZhbHVlLCAiVHlwZSBtdXN0IGJl
IGEgUGxhdGZvcm1Db250ZW50RmlsdGVyLiIpOworICAgIHJldHVybiB7IFQ6OmNhbkhhbmRsZVJl
c3BvbnNlLCBUOjpjcmVhdGUgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQorCisjZW5kaWYgLy8gQ29udGVudEZpbHRl
cl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZW50RmlsdGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRGaWx0ZXIuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3ZDVjMmQzOTBlNmIxMmZmZGZiMGY0ZTM5MDZkNzJhZDZkYzIz
YzY4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0NvbnRlbnRGaWx0ZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
MTUzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
Q29udGVudEZpbHRlci5oIgotCi0jaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotCi0jaW5j
bHVkZSAiTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCIKLSNpbmNsdWRlICJQYXJlbnRh
bENvbnRyb2xzQ29udGVudEZpbHRlci5oIgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1WZWN0
b3I8Q29udGVudEZpbHRlcjo6VHlwZT4mIENvbnRlbnRGaWx0ZXI6OnR5cGVzKCkKLXsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8VmVjdG9yPENvbnRlbnRGaWx0ZXI6OlR5cGU+PiB0eXBlcyB7
Ci0gICAgICAgIFZlY3RvcjxDb250ZW50RmlsdGVyOjpUeXBlPiB7Ci0gICAgICAgICAgICB0eXBl
PFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyPigpLAotI2lmIEhBVkUoTkVUV09SS19FWFRF
TlNJT04pCi0gICAgICAgICAgICB0eXBlPE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyPigp
Ci0jZW5kaWYKLSAgICAgICAgfQotICAgIH07Ci0gICAgcmV0dXJuIHR5cGVzOwotfQotCi1jbGFz
cyBDb250ZW50RmlsdGVyQ29sbGVjdGlvbiBmaW5hbCA6IHB1YmxpYyBDb250ZW50RmlsdGVyIHsK
LXB1YmxpYzoKLSAgICB1c2luZyBDb250YWluZXIgPSBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENv
bnRlbnRGaWx0ZXI+PjsKLQotICAgIGV4cGxpY2l0IENvbnRlbnRGaWx0ZXJDb2xsZWN0aW9uKENv
bnRhaW5lcik7Ci0KLSAgICB2b2lkIGFkZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0
aCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBmaW5pc2hlZEFkZGluZ0RhdGEoKSBvdmVycmlkZTsKLSAg
ICBib29sIG5lZWRzTW9yZURhdGEoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGRpZEJsb2Nr
RGF0YSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGNvbnN0IGNoYXIqIGdldFJlcGxhY2VtZW50RGF0
YShpbnQmIGxlbmd0aCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgQ29udGVudEZpbHRlclVuYmxvY2tI
YW5kbGVyIHVuYmxvY2tIYW5kbGVyKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLXByaXZhdGU6Ci0gICAg
Q29udGFpbmVyIG1fY29udGVudEZpbHRlcnM7Ci19OwotCi1zdGQ6OnVuaXF1ZV9wdHI8Q29udGVu
dEZpbHRlcj4gQ29udGVudEZpbHRlcjo6Y3JlYXRlSWZOZWVkZWQoY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpCi17Ci0gICAgQ29udGVudEZpbHRlckNvbGxlY3Rpb246OkNvbnRhaW5l
ciBmaWx0ZXJzOwotICAgIGZvciAoYXV0byYgdHlwZSA6IHR5cGVzKCkpIHsKLSAgICAgICAgaWYg
KHR5cGUuY2FuSGFuZGxlUmVzcG9uc2UocmVzcG9uc2UpKQotICAgICAgICAgICAgZmlsdGVycy5h
cHBlbmQodHlwZS5jcmVhdGUocmVzcG9uc2UpKTsKLSAgICB9Ci0KLSAgICBpZiAoZmlsdGVycy5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8Q29udGVudEZpbHRlckNvbGxlY3Rpb24+KFdURjo6bW92ZShmaWx0ZXJzKSk7Ci19
Ci0KLUNvbnRlbnRGaWx0ZXJDb2xsZWN0aW9uOjpDb250ZW50RmlsdGVyQ29sbGVjdGlvbihDb250
YWluZXIgY29udGVudEZpbHRlcnMpCi0gICAgOiBtX2NvbnRlbnRGaWx0ZXJzIHsgV1RGOjptb3Zl
KGNvbnRlbnRGaWx0ZXJzKSB9Ci17Ci0gICAgQVNTRVJUKCFtX2NvbnRlbnRGaWx0ZXJzLmlzRW1w
dHkoKSk7Ci19Ci0KLXZvaWQgQ29udGVudEZpbHRlckNvbGxlY3Rpb246OmFkZERhdGEoY29uc3Qg
Y2hhciogZGF0YSwgaW50IGxlbmd0aCkKLXsKLSAgICBBU1NFUlQobmVlZHNNb3JlRGF0YSgpKTsK
LQotICAgIGZvciAoYXV0byYgY29udGVudEZpbHRlciA6IG1fY29udGVudEZpbHRlcnMpCi0gICAg
ICAgIGNvbnRlbnRGaWx0ZXItPmFkZERhdGEoZGF0YSwgbGVuZ3RoKTsKLX0KLSAgICAKLXZvaWQg
Q29udGVudEZpbHRlckNvbGxlY3Rpb246OmZpbmlzaGVkQWRkaW5nRGF0YSgpCi17Ci0gICAgQVNT
RVJUKG5lZWRzTW9yZURhdGEoKSk7Ci0KLSAgICBmb3IgKGF1dG8mIGNvbnRlbnRGaWx0ZXIgOiBt
X2NvbnRlbnRGaWx0ZXJzKQotICAgICAgICBjb250ZW50RmlsdGVyLT5maW5pc2hlZEFkZGluZ0Rh
dGEoKTsKLQotICAgIEFTU0VSVCghbmVlZHNNb3JlRGF0YSgpKTsKLX0KLQotYm9vbCBDb250ZW50
RmlsdGVyQ29sbGVjdGlvbjo6bmVlZHNNb3JlRGF0YSgpIGNvbnN0Ci17Ci0gICAgZm9yIChhdXRv
JiBjb250ZW50RmlsdGVyIDogbV9jb250ZW50RmlsdGVycykgewotICAgICAgICBpZiAoY29udGVu
dEZpbHRlci0+bmVlZHNNb3JlRGF0YSgpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
fQotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIENvbnRlbnRGaWx0ZXJDb2xsZWN0aW9u
OjpkaWRCbG9ja0RhdGEoKSBjb25zdAotewotICAgIGZvciAoYXV0byYgY29udGVudEZpbHRlciA6
IG1fY29udGVudEZpbHRlcnMpIHsKLSAgICAgICAgaWYgKGNvbnRlbnRGaWx0ZXItPmRpZEJsb2Nr
RGF0YSgpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZh
bHNlOwotfQotCi1jb25zdCBjaGFyKiBDb250ZW50RmlsdGVyQ29sbGVjdGlvbjo6Z2V0UmVwbGFj
ZW1lbnREYXRhKGludCYgbGVuZ3RoKSBjb25zdAotewotICAgIEFTU0VSVCghbmVlZHNNb3JlRGF0
YSgpKTsKLQotICAgIGZvciAoYXV0byYgY29udGVudEZpbHRlciA6IG1fY29udGVudEZpbHRlcnMp
IHsKLSAgICAgICAgaWYgKGNvbnRlbnRGaWx0ZXItPmRpZEJsb2NrRGF0YSgpKQotICAgICAgICAg
ICAgcmV0dXJuIGNvbnRlbnRGaWx0ZXItPmdldFJlcGxhY2VtZW50RGF0YShsZW5ndGgpOwotICAg
IH0KLQotICAgIHJldHVybiBtX2NvbnRlbnRGaWx0ZXJzWzBdLT5nZXRSZXBsYWNlbWVudERhdGEo
bGVuZ3RoKTsKLX0KLQotQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyIENvbnRlbnRGaWx0ZXJD
b2xsZWN0aW9uOjp1bmJsb2NrSGFuZGxlcigpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGRpZEJsb2Nr
RGF0YSgpKTsKLQotICAgIGZvciAoYXV0byYgY29udGVudEZpbHRlciA6IG1fY29udGVudEZpbHRl
cnMpIHsKLSAgICAgICAgaWYgKGNvbnRlbnRGaWx0ZXItPmRpZEJsb2NrRGF0YSgpKQotICAgICAg
ICAgICAgcmV0dXJuIGNvbnRlbnRGaWx0ZXItPnVuYmxvY2tIYW5kbGVyKCk7Ci0gICAgfQotCi0g
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGVudEZpbHRlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ29udGVudEZpbHRlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxYmZlMTM2YTI5ODdmNjMwMGY3NWVhNzY5YmRiYTIzOTIwZmU3NjcyLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0NvbnRlbnRGaWx0ZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaWZuZGVmIENvbnRlbnRGaWx0ZXJfaAotI2RlZmluZSBDb250ZW50RmlsdGVy
X2gKLQotI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKLQotI2luY2x1ZGUgIkNvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlci5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1jbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwotCi1jbGFzcyBDb250ZW50
RmlsdGVyIHsKLXB1YmxpYzoKLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RhdGljIHZvaWQg
YWRkVHlwZSgpIHsgdHlwZXMoKS5hcHBlbmQodHlwZTxUPigpKTsgfQotCi0gICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxDb250ZW50RmlsdGVyPiBjcmVhdGVJZk5lZWRlZChjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJik7Ci0KLSAgICB2aXJ0dWFsIH5Db250ZW50RmlsdGVyKCkgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIGFkZERhdGEoY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBmaW5pc2hlZEFkZGluZ0RhdGEoKSA9IDA7Ci0gICAgdmlydHVhbCBib29s
IG5lZWRzTW9yZURhdGEoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBib29sIGRpZEJsb2NrRGF0
YSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGdldFJlcGxhY2VtZW50RGF0
YShpbnQmIGxlbmd0aCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgQ29udGVudEZpbHRlclVuYmxv
Y2tIYW5kbGVyIHVuYmxvY2tIYW5kbGVyKCkgY29uc3QgPSAwOwotCi1wcml2YXRlOgotICAgIHN0
cnVjdCBUeXBlIHsKLSAgICAgICAgY29uc3Qgc3RkOjpmdW5jdGlvbjxib29sKGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmKT4gY2FuSGFuZGxlUmVzcG9uc2U7Ci0gICAgICAgIGNvbnN0IHN0ZDo6ZnVu
Y3Rpb248c3RkOjp1bmlxdWVfcHRyPENvbnRlbnRGaWx0ZXI+KGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKT4gY3JlYXRlOwotICAgIH07Ci0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHN0YXRpYyBU
eXBlIHR5cGUoKSB7IHJldHVybiB7IFQ6OmNhbkhhbmRsZVJlc3BvbnNlLCBUOjpjcmVhdGUgfTsg
fQotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBWZWN0b3I8VHlwZT4mIHR5cGVzKCk7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoQ09OVEVOVF9GSUxU
RVJJTkcpCi0KLSNlbmRpZiAvLyBDb250ZW50RmlsdGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtQ29udGVudEZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1Db250ZW50RmlsdGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBiZTAxOTQ5ZDNl
MjVhODQ4NDU0MWJmZWRkYzU4Y2FmODg0ODhmMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtQ29udGVudEZpbHRlci5oCkBAIC0wLDAgKzEsNTUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFBsYXRmb3JtQ29udGVudEZpbHRlcl9oCisjZGVmaW5lIFBs
YXRmb3JtQ29udGVudEZpbHRlcl9oCisKKyNpbmNsdWRlICJDb250ZW50RmlsdGVyVW5ibG9ja0hh
bmRsZXIuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOworCitjbGFzcyBQbGF0Zm9ybUNvbnRl
bnRGaWx0ZXIgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFBsYXRmb3JtQ29udGVudEZpbHRlcik7CisKK3Byb3RlY3RlZDoKKyAgICBQbGF0
Zm9ybUNvbnRlbnRGaWx0ZXIoKSA9IGRlZmF1bHQ7CisKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5Q
bGF0Zm9ybUNvbnRlbnRGaWx0ZXIoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYWRkRGF0YShjb25z
dCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGZpbmlzaGVk
QWRkaW5nRGF0YSgpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgbmVlZHNNb3JlRGF0YSgpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgZGlkQmxvY2tEYXRhKCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgY29uc3QgY2hhciogZ2V0UmVwbGFjZW1lbnREYXRhKGludCYgbGVuZ3RoKSBjb25zdCA9
IDA7CisgICAgdmlydHVhbCBDb250ZW50RmlsdGVyVW5ibG9ja0hhbmRsZXIgdW5ibG9ja0hhbmRs
ZXIoKSBjb25zdCA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBQbGF0Zm9ybUNvbnRlbnRGaWx0ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL05ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmgKaW5kZXgg
OTIwOGMyZDkyMDI3M2UyMjcwOWQ1NmM4OTkwNjdiM2ExMmFmNDBlMy4uMjZkZmU1ZDgxMGI5ZWRj
OWE3NmE5NDk5M2MyYzhkYTU5MGQ5MmY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9OZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oCkBA
IC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyX2gK
ICNkZWZpbmUgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXJfaAogCi0jaW5jbHVkZSAiQ29u
dGVudEZpbHRlci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtQ29udGVudEZpbHRlci5oIgogI2luY2x1
ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPG9iamMvTlNPYmpDUnVudGltZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9Db21waWxlci5oPgpAQCAtNDUsOSArNDUsNyBAQCBPQkpDX0NMQVNTIE5TTXV0
YWJsZURhdGE7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTmV0d29ya0V4dGVuc2lv
bkNvbnRlbnRGaWx0ZXIgZmluYWwgOiBwdWJsaWMgQ29udGVudEZpbHRlciB7Ci0gICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTmV0d29ya0V4dGVu
c2lvbkNvbnRlbnRGaWx0ZXIpOworY2xhc3MgTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIg
ZmluYWwgOiBwdWJsaWMgUGxhdGZvcm1Db250ZW50RmlsdGVyIHsKICAgICBmcmllbmQgc3RkOjp1
bmlxdWVfcHRyPE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyPiBzdGQ6Om1ha2VfdW5pcXVl
PE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyPihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7
CiAKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bh
cmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9QYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlci5oCmluZGV4IGZkZDgyNTc2Nzk3NDU1
Y2JhNzJhMGNjOTU0Nzg1MmUzNzI3NGNjNzcuLmVhMGE0ZTJlZWE0NjMyOWNkYjU2MjA0ZGIwZGI5
NDA0Y2Y2NWIxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bh
cmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIuaApAQCAtMjYsNyArMjYsNyBA
QAogI2lmbmRlZiBQYXJlbnRhbENvbnRyb2xzQ29udGVudEZpbHRlcl9oCiAjZGVmaW5lIFBhcmVu
dGFsQ29udHJvbHNDb250ZW50RmlsdGVyX2gKIAotI2luY2x1ZGUgIkNvbnRlbnRGaWx0ZXIuaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybUNvbnRlbnRGaWx0ZXIuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGls
ZXIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKQEAgLTM1LDkgKzM1LDcgQEAgT0JK
Q19DTEFTUyBXZWJGaWx0ZXJFdmFsdWF0b3I7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIgZmluYWwgOiBwdWJsaWMgQ29udGVudEZp
bHRlciB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci0gICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoUGFyZW50YWxDb250cm9sc0NvbnRlbnRGaWx0ZXIpOworY2xhc3MgUGFyZW50YWxDb250
cm9sc0NvbnRlbnRGaWx0ZXIgZmluYWwgOiBwdWJsaWMgUGxhdGZvcm1Db250ZW50RmlsdGVyIHsK
ICAgICBmcmllbmQgc3RkOjp1bmlxdWVfcHRyPFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVy
PiBzdGQ6Om1ha2VfdW5pcXVlPFBhcmVudGFsQ29udHJvbHNDb250ZW50RmlsdGVyPihjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJik7CiAKIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9N
b2NrQ29udGVudEZpbHRlci5jcHAKaW5kZXggNzFlZWQwY2Y3NjgxYWQ4MjI5YTNiNGVkOGY3ZDU1
MTZhYjBiNWNmMS4uYjRiOWIzNTgzMjNkOTNkOWEyMDUyMTI1N2FhMjk3NGFkYTY4NmI3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlci5jcHAKQEAgLTI4LDYg
KzI4LDcgQEAKIAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIAorI2luY2x1ZGUgIkNv
bnRlbnRGaWx0ZXIuaCIKICNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRG
aWx0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXIuaAppbmRl
eCA5Y2I4NzYwMjllMjE0NzI5MGNmMTIxYjIxNDM1N2ZjODc3MGZlZjY1Li4xMTJlYmQ5ODFlOGVh
ZTcxY2M4NDhiMjlmM2NhM2FmMzYxNjc4ZGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9N
b2NrQ29udGVudEZpbHRlci5oCkBAIC0yNiwxNCArMjYsMTIgQEAKICNpZm5kZWYgTW9ja0NvbnRl
bnRGaWx0ZXJfaAogI2RlZmluZSBNb2NrQ29udGVudEZpbHRlcl9oCiAKLSNpbmNsdWRlICJDb250
ZW50RmlsdGVyLmgiCiAjaW5jbHVkZSAiTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtQ29udGVudEZpbHRlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIE1vY2tDb250ZW50RmlsdGVyIGZpbmFsIDogcHVibGljIENvbnRlbnRGaWx0ZXIgewot
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1v
Y2tDb250ZW50RmlsdGVyKTsKK2NsYXNzIE1vY2tDb250ZW50RmlsdGVyIGZpbmFsIDogcHVibGlj
IFBsYXRmb3JtQ29udGVudEZpbHRlciB7CiAgICAgZnJpZW5kIHN0ZDo6dW5pcXVlX3B0cjxNb2Nr
Q29udGVudEZpbHRlcj4gc3RkOjptYWtlX3VuaXF1ZTxNb2NrQ29udGVudEZpbHRlcj4oY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYpOwogCiBwdWJsaWM6Cg==
</data>
<flag name="review"
          id="273921"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>