<?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>215147</bug_id>
          
          <creation_ts>2020-08-04 16:03:30 -0700</creation_ts>
          <short_desc>Move poseAsClass() into the TestRunnerShared directory</short_desc>
          <delta_ts>2020-08-04 18:27:18 -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>Tools / Tests</component>
          <version>WebKit 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>DoNotImportToRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1677789</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-08-04 16:03:30 -0700</bug_when>
    <thetext>Deduplicate a bit of code across DumpRenderTree and WebKitTestRunner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677795</commentid>
    <comment_count>1</comment_count>
      <attachid>405958</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-08-04 16:17:42 -0700</bug_when>
    <thetext>Created attachment 405958
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677846</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-04 18:27:17 -0700</bug_when>
    <thetext>Committed r265271: &lt;https://trac.webkit.org/changeset/265271&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 405958.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405958</attachid>
            <date>2020-08-04 16:17:42 -0700</date>
            <delta_ts>2020-08-04 18:27:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215147-20200804161741.patch</filename>
            <type>text/plain</type>
            <size>24765</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1MjQ5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjAxMDZhOGUyMTEyNTdkYjg3Yzc5YjJiM2U4MDFjZWZk
NTAzOGM5My4uNjI1OTM3ZWU0YTRjOTZkNGIwMzFjZDFhNDRkZjNjNGQ4MzA4OGY3MyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1
IEBACisyMDIwLTA4LTA0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIE1vdmUgcG9zZUFzQ2xhc3MoKSBpbnRvIHRoZSBUZXN0UnVubmVyU2hhcmVkIGRp
cmVjdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE1MTQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TW92ZSB0aGUgZHVwbGljYXRlZCBpbXBsZW1lbnRhdGlvbnMgb2YgYHBvc2VBc0NsYXNzKClgIG91
dCBvZiBXZWJLaXRUZXN0UnVubmVyIGFuZCBEdW1wUmVuZGVyVHJlZSwKKyAgICAgICAgYW5kIGlu
dG8gaGVscGVyIGZpbGVzIGluIFRlc3RSdW5uZXJTaGFyZWQgaW5zdGVhZC4KKworICAgICAgICBO
byBjaGFuZ2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9EdW1wUmVu
ZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHBvc2VBc0NsYXNzKTogRGVsZXRl
ZC4KKyAgICAgICAgKHNldFBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldExvY2F0aW9uKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL2NvY29hL1Bvc2VBc0NsYXNzLmg6IFJlbmFt
ZWQgZnJvbSBUb29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9Qb3NlQXNDbGFzcy5oLgorICAgICAg
ICAqIFRlc3RSdW5uZXJTaGFyZWQvY29jb2EvUG9zZUFzQ2xhc3MubW06IFJlbmFtZWQgZnJvbSBU
b29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9Qb3NlQXNDbGFzcy5tbS4KKyAgICAgICAgKHN3aXp6
bGVBbGxNZXRob2RzKToKKyAgICAgICAgKHBvc2VBc0NsYXNzKToKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwog
MjAyMC0wOC0wNCAgSGVjdG9yIExvcGV6ICA8aGVjdG9yX2lfbG9wZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBteXNlbGYgdG8gY29udHJpYnV0b3JzLmpzb24KZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGFjMTE1OGQzNTNhNTVhMmI5YzBhYWY0NTgxMDg3NzEwMWE0NmEwNjUuLmEy
OWUwY2E4ZDZmMTIxYjgzOTFjNWExMTQwMDIzNGM3MWUyZTdlNGQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTU2LDYgKzE1Niw3IEBACiAJCUMyM0VBMjA4MUJDOUYwNTEwMEM5ODBC
NyAvKiBGb250V2l0aEZlYXR1cmVzLm90ZiBpbiBDb3B5IEZvbnQgRmlsZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIzRUEyMDYxQkM5RUFCQTAwQzk4MEI3IC8qIEZvbnRX
aXRoRmVhdHVyZXMub3RmICovOyB9OwogCQlDMjNFQTIwOTFCQzlGMDUxMDBDOTgwQjcgLyogRm9u
dFdpdGhGZWF0dXJlcy50dGYgaW4gQ29weSBGb250IEZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMyM0VBMjA3MUJDOUVBQkEwMEM5ODBCNyAvKiBGb250V2l0aEZlYXR1
cmVzLnR0ZiAqLzsgfTsKIAkJRTFCNzgxNjUxMUFGMzFCNzAwN0UxQkMyIC8qIE1vY2tHZW9sb2Nh
dGlvblByb3ZpZGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFCNzgwODcxMUFGMTY2OTAwN0UxQkMyIC8qIE1vY2tHZW9sb2NhdGlvblByb3ZpZGVy
Lm1tICovOyB9OworCQlGNDAxMEI3QjI0REEyMDFGMDBBODc2RTIgLyogUG9zZUFzQ2xhc3MubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDAxMEI3OTI0
REEyMDBFMDBBODc2RTIgLyogUG9zZUFzQ2xhc3MubW0gKi87IH07CiAJCUY0NDVDNjg2MjRCMjc4
OUQwMDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRyb2xsZXJTaGFyZWQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0NUM2ODUyNEIyNzg4RjAwNzkwNDQw
IC8qIFVJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5jcHAgKi87IH07CiAJCUY0NDVDNjg5MjRCMjc4
RUMwMDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0NUM2ODgyNEIyNzhFQzAwNzkwNDQwIC8qIFVJ
U2NyaXB0Q29udHJvbGxlci5jcHAgKi87IH07CiAJCUY0NEE1MzFEMjFCODlBNEQwMERCQjk5QyAv
KiBDbGFzc01ldGhvZFN3aXp6bGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ0QTUzMUEyMUI4OUE0NDAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dp
enpsZXIubW0gKi87IH07CkBAIC00MjgsNiArNDI5LDggQEAKIAkJQzIzRUEyMDcxQkM5RUFCQTAw
Qzk4MEI3IC8qIEZvbnRXaXRoRmVhdHVyZXMudHRmICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgbmFtZSA9IEZvbnRXaXRoRmVhdHVyZXMudHRm
OyBwYXRoID0gZm9udHMvRm9udFdpdGhGZWF0dXJlcy50dGY7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUxQjc4MDg1MTFBRjE2NDMwMDdFMUJDMiAvKiBNb2NrR2VvbG9jYXRpb25Qcm92
aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBNb2NrR2VvbG9jYXRpb25Q
cm92aWRlci5oOyBwYXRoID0gbWFjL01vY2tHZW9sb2NhdGlvblByb3ZpZGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQjc4MDg3MTFBRjE2NjkwMDdFMUJDMiAvKiBNb2NrR2Vv
bG9jYXRpb25Qcm92aWRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFt
ZSA9IE1vY2tHZW9sb2NhdGlvblByb3ZpZGVyLm1tOyBwYXRoID0gbWFjL01vY2tHZW9sb2NhdGlv
blByb3ZpZGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDAxMEI3OTI0REEy
MDBFMDBBODc2RTIgLyogUG9zZUFzQ2xhc3MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBQb3NlQXNDbGFzcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRjQwMTBCN0EyNERBMjAwRTAwQTg3NkUyIC8qIFBvc2VBc0NsYXNzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvc2VBc0NsYXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY0NDVDNjg1MjRCMjc4OEYwMDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRyb2xsZXJT
aGFyZWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNw
cDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29u
dHJvbGxlclNoYXJlZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NDVDNjg4
MjRCMjc4RUMwMDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVUlTY3JpcHRDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjQ0QTUzMTkyMUI4OUE0NDAwREJCOTlDIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zdGFuY2VNZXRob2RTd2l6emxlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODc3LDYgKzg4MCw4IEBACiAJCQkJRjQ0
QTUzMUMyMUI4OUE0NTAwREJCOTlDIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gKi8sCiAJ
CQkJRjRDMzU3ODkyMEU4NDQyNzAwRkEwNzQ4IC8qIExheW91dFRlc3RTcGVsbENoZWNrZXIuaCAq
LywKIAkJCQlGNEMzNTc4ODIwRTg0NDI3MDBGQTA3NDggLyogTGF5b3V0VGVzdFNwZWxsQ2hlY2tl
ci5tbSAqLywKKwkJCQlGNDAxMEI3QTI0REEyMDBFMDBBODc2RTIgLyogUG9zZUFzQ2xhc3MuaCAq
LywKKwkJCQlGNDAxMEI3OTI0REEyMDBFMDBBODc2RTIgLyogUG9zZUFzQ2xhc3MubW0gKi8sCiAJ
CQkpOwogCQkJcGF0aCA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEy
MjUsNiArMTIzMCw3IEBACiAJCQkJQTExNThENTkxODkyNzQzNjAwODhDMTdCIC8qIFBpeGVsRHVt
cFN1cHBvcnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0IyODRENjBDRkE4M0QxMDA3RTUz
M0UgLyogUGl4ZWxEdW1wU3VwcG9ydE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDQTE4QjY2
MEM5QjA4QzIwMDExNDM2OSAvKiBQb2xpY3lEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAorCQkJ
CUY0MDEwQjdCMjREQTIwMUYwMEE4NzZFMiAvKiBQb3NlQXNDbGFzcy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCUJDQTE4QjY4MEM5QjA4QzIwMDExNDM2OSAvKiBSZXNvdXJjZUxvYWREZWxlZ2F0ZS5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUEzMEEyMUY4MjA1MUQ4QzQwMDA4RkY0MiAvKiBUZXN0T3B0
aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzAxMzFEQTBDOTc3MjAxMDA4NzMxN0QgLyog
VGVzdFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZS5tbQppbmRleCAwYzJjZDc2ZWEzYmQ3MDU4MjFiZTRhNzE2MzliODgzNWFl
YTQ2NWZlLi5jZDAxMDI0NTZiNTc0MmZiOWU2ZWVlMWNlZjI2ODUwNTcwZDA3OGI1IDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC00OCw2ICs0OCw3IEBA
CiAjaW1wb3J0ICJPYmpDUGx1Z2luRnVuY3Rpb24uaCIKICNpbXBvcnQgIlBpeGVsRHVtcFN1cHBv
cnQuaCIKICNpbXBvcnQgIlBvbGljeURlbGVnYXRlLmgiCisjaW1wb3J0ICJQb3NlQXNDbGFzcy5o
IgogI2ltcG9ydCAiUmVzb3VyY2VMb2FkRGVsZWdhdGUuaCIKICNpbXBvcnQgIlRlc3RPcHRpb25z
LmgiCiAjaW1wb3J0ICJUZXN0UnVubmVyLmgiCkBAIC0yMzksNTYgKzI0MCw2IEBAIER1bXBSZW5k
ZXJUcmVlV2ViU2Nyb2xsVmlldyAqZ1dlYlNjcm9sbFZpZXcgPSBuaWw7CiBEdW1wUmVuZGVyVHJl
ZVdpbmRvdyAqZ0RydFdpbmRvdyA9IG5pbDsKICNlbmRpZgogCi0jaWZkZWYgX19PQkpDMl9fCi1z
dGF0aWMgdm9pZCBzd2l6emxlQWxsTWV0aG9kcyhDbGFzcyBpbXBvc3RlciwgQ2xhc3Mgb3JpZ2lu
YWwpCi17Ci0gICAgdW5zaWduZWQgaW50IGltcG9zdGVyTWV0aG9kQ291bnQ7Ci0gICAgTWV0aG9k
KiBpbXBvc3Rlck1ldGhvZHMgPSBjbGFzc19jb3B5TWV0aG9kTGlzdChpbXBvc3RlciwgJmltcG9z
dGVyTWV0aG9kQ291bnQpOwotCi0gICAgdW5zaWduZWQgaW50IG9yaWdpbmFsTWV0aG9kQ291bnQ7
Ci0gICAgTWV0aG9kKiBvcmlnaW5hbE1ldGhvZHMgPSBjbGFzc19jb3B5TWV0aG9kTGlzdChvcmln
aW5hbCwgJm9yaWdpbmFsTWV0aG9kQ291bnQpOwotCi0gICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9
IDA7IGkgPCBpbXBvc3Rlck1ldGhvZENvdW50OyBpKyspIHsKLSAgICAgICAgU0VMIGltcG9zdGVy
TWV0aG9kTmFtZSA9IG1ldGhvZF9nZXROYW1lKGltcG9zdGVyTWV0aG9kc1tpXSk7Ci0KLSAgICAg
ICAgLy8gQXR0ZW1wdCB0byBhZGQgdGhlIG1ldGhvZCB0byB0aGUgb3JpZ2luYWwgY2xhc3MuICBJ
ZiBpdCBmYWlscywgdGhlIG1ldGhvZCBhbHJlYWR5IGV4aXN0cyBhbmQgd2Ugc2hvdWxkCi0gICAg
ICAgIC8vIGluc3RlYWQgZXhjaGFuZ2UgdGhlIGltcGxlbWVudGF0aW9ucy4KLSAgICAgICAgaWYg
KGNsYXNzX2FkZE1ldGhvZChvcmlnaW5hbCwgaW1wb3N0ZXJNZXRob2ROYW1lLCBtZXRob2RfZ2V0
SW1wbGVtZW50YXRpb24oaW1wb3N0ZXJNZXRob2RzW2ldKSwgbWV0aG9kX2dldFR5cGVFbmNvZGlu
ZyhpbXBvc3Rlck1ldGhvZHNbaV0pKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAg
IHVuc2lnbmVkIGludCBqID0gMDsKLSAgICAgICAgZm9yICg7IGogPCBvcmlnaW5hbE1ldGhvZENv
dW50OyBqKyspIHsKLSAgICAgICAgICAgIFNFTCBvcmlnaW5hbE1ldGhvZE5hbWUgPSBtZXRob2Rf
Z2V0TmFtZShvcmlnaW5hbE1ldGhvZHNbal0pOwotICAgICAgICAgICAgaWYgKHNlbF9pc0VxdWFs
KGltcG9zdGVyTWV0aG9kTmFtZSwgb3JpZ2luYWxNZXRob2ROYW1lKSkKLSAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIElmIGNsYXNzX2FkZE1ldGhvZCBmYWls
ZWQgYWJvdmUgdGhlbiB0aGUgbWV0aG9kIG11c3QgZXhpc3Qgb24gdGhlIG9yaWdpbmFsIGNsYXNz
LgotICAgICAgICBBU1NFUlQoaiA8IG9yaWdpbmFsTWV0aG9kQ291bnQpOwotICAgICAgICBtZXRo
b2RfZXhjaGFuZ2VJbXBsZW1lbnRhdGlvbnMoaW1wb3N0ZXJNZXRob2RzW2ldLCBvcmlnaW5hbE1l
dGhvZHNbal0pOwotICAgIH0KLQotICAgIGZyZWUoaW1wb3N0ZXJNZXRob2RzKTsKLSAgICBmcmVl
KG9yaWdpbmFsTWV0aG9kcyk7Ci19Ci0jZW5kaWYKLQotc3RhdGljIHZvaWQgcG9zZUFzQ2xhc3Mo
Y29uc3QgY2hhciogaW1wb3N0ZXIsIGNvbnN0IGNoYXIqIG9yaWdpbmFsKQotewotICAgIENsYXNz
IGltcG9zdGVyQ2xhc3MgPSBvYmpjX2dldENsYXNzKGltcG9zdGVyKTsKLSAgICBDbGFzcyBvcmln
aW5hbENsYXNzID0gb2JqY19nZXRDbGFzcyhvcmlnaW5hbCk7Ci0KLSNpZm5kZWYgX19PQkpDMl9f
Ci0gICAgY2xhc3NfcG9zZUFzKGltcG9zdGVyQ2xhc3MsIG9yaWdpbmFsQ2xhc3MpOwotI2Vsc2UK
LQotICAgIC8vIFN3aXp6bGUgaW5zdGFuY2UgbWV0aG9kcwotICAgIHN3aXp6bGVBbGxNZXRob2Rz
KGltcG9zdGVyQ2xhc3MsIG9yaWdpbmFsQ2xhc3MpOwotICAgIC8vIGFuZCB0aGVuIGNsYXNzIG1l
dGhvZHMKLSAgICBzd2l6emxlQWxsTWV0aG9kcyhvYmplY3RfZ2V0Q2xhc3MoaW1wb3N0ZXJDbGFz
cyksIG9iamVjdF9nZXRDbGFzcyhvcmlnaW5hbENsYXNzKSk7Ci0jZW5kaWYKLX0KLQogdm9pZCBz
ZXRQZXJzaXN0ZW50VXNlclN0eWxlU2hlZXRMb2NhdGlvbihDRlN0cmluZ1JlZiB1cmwpCiB7CiAg
ICAgcGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0TG9jYXRpb24gPSB1cmw7CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29hL1Bvc2VBc0NsYXNzLmggYi9Ub29scy9UZXN0UnVu
bmVyU2hhcmVkL2NvY29hL1Bvc2VBc0NsYXNzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWI5NjM0ZjYyMTg1MjU5
NTgwZDM3MWRlMDNiZTIxNTMyODJjMGY0MAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RS
dW5uZXJTaGFyZWQvY29jb2EvUG9zZUFzQ2xhc3MuaApAQCAtMCwwICsxLDI4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwordm9pZCBwb3NlQXNDbGFzcyhjb25zdCBjaGFyKiBp
bXBvc3RlciwgY29uc3QgY2hhciogb3JpZ2luYWwpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1
bm5lclNoYXJlZC9jb2NvYS9Qb3NlQXNDbGFzcy5tbSBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
Y29jb2EvUG9zZUFzQ2xhc3MubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDdkYmY5OGE5NDUzMWY1MThlOWEyNjFj
ZDE5Yjk4MjI3MWEwMThjMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFy
ZWQvY29jb2EvUG9zZUFzQ2xhc3MubW0KQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMy0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJQb3NlQXNDbGFzcy5oIgorCisjaW1wb3J0
IDxvYmpjL3J1bnRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CisKK3N0YXRpYyB2
b2lkIHN3aXp6bGVBbGxNZXRob2RzKENsYXNzIGltcG9zdGVyLCBDbGFzcyBvcmlnaW5hbCkKK3sK
KyAgICB1bnNpZ25lZCBpbXBvc3Rlck1ldGhvZENvdW50OworICAgIE1ldGhvZCogaW1wb3N0ZXJN
ZXRob2RzID0gY2xhc3NfY29weU1ldGhvZExpc3QoaW1wb3N0ZXIsICZpbXBvc3Rlck1ldGhvZENv
dW50KTsKKworICAgIHVuc2lnbmVkIG9yaWdpbmFsTWV0aG9kQ291bnQ7CisgICAgTWV0aG9kKiBv
cmlnaW5hbE1ldGhvZHMgPSBjbGFzc19jb3B5TWV0aG9kTGlzdChvcmlnaW5hbCwgJm9yaWdpbmFs
TWV0aG9kQ291bnQpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGltcG9zdGVyTWV0
aG9kQ291bnQ7IGkrKykgeworICAgICAgICBTRUwgaW1wb3N0ZXJNZXRob2ROYW1lID0gbWV0aG9k
X2dldE5hbWUoaW1wb3N0ZXJNZXRob2RzW2ldKTsKKworICAgICAgICAvLyBBdHRlbXB0IHRvIGFk
ZCB0aGUgbWV0aG9kIHRvIHRoZSBvcmlnaW5hbCBjbGFzcy4gSWYgaXQgZmFpbHMsIHRoZSBtZXRo
b2QgYWxyZWFkeSBleGlzdHMgYW5kIHdlIHNob3VsZAorICAgICAgICAvLyBpbnN0ZWFkIGV4Y2hh
bmdlIHRoZSBpbXBsZW1lbnRhdGlvbnMuCisgICAgICAgIGlmIChjbGFzc19hZGRNZXRob2Qob3Jp
Z2luYWwsIGltcG9zdGVyTWV0aG9kTmFtZSwgbWV0aG9kX2dldEltcGxlbWVudGF0aW9uKGltcG9z
dGVyTWV0aG9kc1tpXSksIG1ldGhvZF9nZXRUeXBlRW5jb2RpbmcoaW1wb3N0ZXJNZXRob2RzW2ld
KSkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICB1bnNpZ25lZCBqID0gMDsKKyAg
ICAgICAgZm9yICg7IGogPCBvcmlnaW5hbE1ldGhvZENvdW50OyBqKyspIHsKKyAgICAgICAgICAg
IFNFTCBvcmlnaW5hbE1ldGhvZE5hbWUgPSBtZXRob2RfZ2V0TmFtZShvcmlnaW5hbE1ldGhvZHNb
al0pOworICAgICAgICAgICAgaWYgKHNlbF9pc0VxdWFsKGltcG9zdGVyTWV0aG9kTmFtZSwgb3Jp
Z2luYWxNZXRob2ROYW1lKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisg
ICAgICAgIC8vIElmIGNsYXNzX2FkZE1ldGhvZCBmYWlsZWQgYWJvdmUgdGhlbiB0aGUgbWV0aG9k
IG11c3QgZXhpc3Qgb24gdGhlIG9yaWdpbmFsIGNsYXNzLgorICAgICAgICBBU1NFUlQoaiA8IG9y
aWdpbmFsTWV0aG9kQ291bnQpOworICAgICAgICBtZXRob2RfZXhjaGFuZ2VJbXBsZW1lbnRhdGlv
bnMoaW1wb3N0ZXJNZXRob2RzW2ldLCBvcmlnaW5hbE1ldGhvZHNbal0pOworICAgIH0KKworICAg
IGZyZWUoaW1wb3N0ZXJNZXRob2RzKTsKKyAgICBmcmVlKG9yaWdpbmFsTWV0aG9kcyk7Cit9CisK
K3ZvaWQgcG9zZUFzQ2xhc3MoY29uc3QgY2hhciogaW1wb3N0ZXIsIGNvbnN0IGNoYXIqIG9yaWdp
bmFsKQoreworICAgIENsYXNzIGltcG9zdGVyQ2xhc3MgPSBvYmpjX2dldENsYXNzKGltcG9zdGVy
KTsKKyAgICBDbGFzcyBvcmlnaW5hbENsYXNzID0gb2JqY19nZXRDbGFzcyhvcmlnaW5hbCk7CisK
KyAgICAvLyBTd2l6emxlIGluc3RhbmNlIG1ldGhvZHMKKyAgICBzd2l6emxlQWxsTWV0aG9kcyhp
bXBvc3RlckNsYXNzLCBvcmlnaW5hbENsYXNzKTsKKyAgICAvLyBhbmQgdGhlbiBjbGFzcyBtZXRo
b2RzCisgICAgc3dpenpsZUFsbE1ldGhvZHMob2JqZWN0X2dldENsYXNzKGltcG9zdGVyQ2xhc3Mp
LCBvYmplY3RfZ2V0Q2xhc3Mob3JpZ2luYWxDbGFzcykpOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2ogYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA2MGJjZmI4ZmFmMTcwYjljZmQ5YWVjZmI4ZGRhYjQzYTNhMjdi
NjgxLi5lMTE5Y2QzYTRmMzIyMmZkYWQyNDcyNzZiNDljZjgxZTM1YTE2Mjk4IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTUwLDggKzE1MCw4IEBACiAJCUMwQ0U3MjBC
MTI0N0M5MzMwMEJDMEVDNCAvKiBUZXN0UnVubmVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzBDRTcyMEExMjQ3QzkzMzAwQkMwRUM0IC8qIFRl
c3RSdW5uZXJNYWMubW0gKi87IH07CiAJCUUxMzJBQTNBMTdDRDVGMTAwMDYxMURGMCAvKiBXZWJL
aXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTEzMkFBMzgxN0NENUYxMDAwNjExREYwIC8qIFdlYktpdFRlc3RS
dW5uZXJEcmFnZ2luZ0luZm8ubW0gKi87IH07CiAJCUUxMzJBQTNEMTdDRTc3NkYwMDYxMURGMCAv
KiBXZWJLaXRUZXN0UnVubmVyRXZlbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFMTMyQUEzQjE3Q0U3NzZGMDA2MTFERjAgLyogV2ViS2l0VGVzdFJ1
bm5lckV2ZW50Lm1tICovOyB9OwotCQlFMUM2NDJDMzE3Q0JDQzczMDBENjZBM0MgLyogUG9zZUFz
Q2xhc3MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MUM2NDJDMTE3Q0JDQzczMDBENjZBM0MgLyogUG9zZUFzQ2xhc3MubW0gKi87IH07CiAJCUUxQzY0
MkM2MTdDQkNENEMwMEQ2NkEzQyAvKiBXZWJLaXRUZXN0UnVubmVyUGFzdGVib2FyZC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzY0MkM0MTdDQkNE
NEMwMEQ2NkEzQyAvKiBXZWJLaXRUZXN0UnVubmVyUGFzdGVib2FyZC5tbSAqLzsgfTsKKwkJRjQw
MTBCN0UyNERBMjA1MzAwQTg3NkUyIC8qIFBvc2VBc0NsYXNzLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQwMTBCN0MyNERBMjA0ODAwQTg3NkUyIC8q
IFBvc2VBc0NsYXNzLm1tICovOyB9OwogCQlGNDQ1QzY4QTI0QjI3QUNDMDA3OTA0NDAgLyogVUlT
Y3JpcHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0NDVDNjgzMjRCMjc3RTMwMDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRyb2xsZXIu
Y3BwICovOyB9OwogCQlGNDRBNTMxNzIxQjg5OUUyMDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6
emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
NEE1MzE0MjFCODk5REEwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLm1tICovOyB9Owog
CQlGNDRBNTMxODIxQjg5OUU1MDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEE1MzE2MjFC
ODk5REEwMERCQjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tICovOyB9OwpAQCAtNDA3
LDEwICs0MDcsMTAgQEAKIAkJRTEzMkFBM0IxN0NFNzc2RjAwNjExREYwIC8qIFdlYktpdFRlc3RS
dW5uZXJFdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdl
YktpdFRlc3RSdW5uZXJFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEz
MkFBM0MxN0NFNzc2RjAwNjExREYwIC8qIFdlYktpdFRlc3RSdW5uZXJFdmVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXRUZXN0UnVubmVyRXZlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFCQTY3MUQxNzQyREE1QTAwQzIwMjUxIC8qIENhcmJv
bi5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IENhcmJvbi5mcmFtZXdvcms7IHBhdGggPSBT
eXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBT
REtST09UOyB9OwotCQlFMUM2NDJDMTE3Q0JDQzczMDBENjZBM0MgLyogUG9zZUFzQ2xhc3MubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQb3NlQXNDbGFzcy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFDNjQyQzIxN0NCQ0M3MzAwRDY2QTNDIC8q
IFBvc2VBc0NsYXNzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBvc2VBc0Ns
YXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQzY0MkM0MTdDQkNENEMwMEQ2
NkEzQyAvKiBXZWJLaXRUZXN0UnVubmVyUGFzdGVib2FyZC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUM2NDJDNTE3Q0JDRDRDMDBENjZBM0MgLyogV2Vi
S2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViS2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjQwMTBCN0MyNERBMjA0ODAwQTg3NkUyIC8qIFBvc2VBc0NsYXNzLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gUG9zZUFzQ2xhc3MubW07IHBhdGggPSAu
Li9UZXN0UnVubmVyU2hhcmVkL2NvY29hL1Bvc2VBc0NsYXNzLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGNDAxMEI3RDI0REEyMDQ4MDBBODc2RTIgLyogUG9zZUFzQ2xhc3MuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gUG9zZUFzQ2xhc3MuaDsgcGF0aCA9IC4u
L1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvUG9zZUFzQ2xhc3MuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjQ0NUM2ODMyNEIyNzdFMzAwNzkwNDQwIC8qIFVJU2NyaXB0Q29udHJvbGxl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVSVNjcmlwdENvbnRyb2xsZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRBNTMxMzIxQjg5OURBMDBEQkI5OUMgLyogSW5zdGFu
Y2VNZXRob2RTd2l6emxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBJbnN0
YW5jZU1ldGhvZFN3aXp6bGVyLmg7IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0lu
c3RhbmNlTWV0aG9kU3dpenpsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0
QTUzMTQyMUI4OTlEQTAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenpsZXIubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBDbGFzc01ldGhvZFN3aXp6bGVyLm1tOyBw
YXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9DbGFzc01ldGhvZFN3aXp6bGVyLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzk2LDggKzc5Niw2IEBACiAJCQkJNTY3MEI4
MjcxMzg2RkNBNTAwMkVCMzU1IC8qIEV2ZW50U2VuZGVyUHJveHkubW0gKi8sCiAJCQkJQkM3OTMz
RkYxMThGN0M4NDAwNUVBOEUyIC8qIG1haW4ubW0gKi8sCiAJCQkJQkM3OTM0RTcxMTkwNjg0NjAw
NUVBOEUyIC8qIFBsYXRmb3JtV2ViVmlld01hYy5tbSAqLywKLQkJCQlFMUM2NDJDMjE3Q0JDQzcz
MDBENjZBM0MgLyogUG9zZUFzQ2xhc3MuaCAqLywKLQkJCQlFMUM2NDJDMTE3Q0JDQzczMDBENjZB
M0MgLyogUG9zZUFzQ2xhc3MubW0gKi8sCiAJCQkJQkM4Qzc5NUIxMUQyNzg1RDAwNDUzNUExIC8q
IFRlc3RDb250cm9sbGVyTWFjLm1tICovLAogCQkJCTJEMDU4RTBBMjJFMkVGNkQwMEU0QzE0NSAv
KiBVSVNjcmlwdENvbnRyb2xsZXJNYWMuaCAqLywKIAkJCQkwRjg3QjYxMTFCQUNBRDZGMDA0RUM1
NzIgLyogVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tICovLApAQCAtOTAwLDYgKzg5OCw4IEBACiAJ
CQkJRjRDMzU3OEEyMEU4NDQ0MDAwRkEwNzQ4IC8qIExheW91dFRlc3RTcGVsbENoZWNrZXIubW0g
Ki8sCiAJCQkJMkUyQTc2NUIyMzcwQzhBMDAwOEY5RkZFIC8qIFBsYXRmb3JtVmlld0hlbHBlcnMu
aCAqLywKIAkJCQkyRTJBNzY1QzIzNzBDOEEwMDA4RjlGRkUgLyogUGxhdGZvcm1WaWV3SGVscGVy
cy5tbSAqLywKKwkJCQlGNDAxMEI3RDI0REEyMDQ4MDBBODc2RTIgLyogUG9zZUFzQ2xhc3MuaCAq
LywKKwkJCQlGNDAxMEI3QzI0REEyMDQ4MDBBODc2RTIgLyogUG9zZUFzQ2xhc3MubW0gKi8sCiAJ
CQkpOwogCQkJbmFtZSA9IGNvY29hOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEx
NjYsNyArMTE2Niw2IEBACiAJCQkJQkM3OTM0MDAxMThGN0M4NDAwNUVBOEUyIC8qIG1haW4ubW0g
aW4gU291cmNlcyAqLywKIAkJCQlGNEZFRDMyNDIzNTgyM0EzMDAzQzEzOUMgLyogTlNQYXN0ZWJv
YXJkQWRkaXRpb25zLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM3OTM0RTgxMTkwNjg0NjAwNUVB
OEUyIC8qIFBsYXRmb3JtV2ViVmlld01hYy5tbSBpbiBTb3VyY2VzICovLAotCQkJCUUxQzY0MkMz
MTdDQkNDNzMwMEQ2NkEzQyAvKiBQb3NlQXNDbGFzcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJD
OEM3OTVDMTFEMjc4NUQwMDQ1MzVBMSAvKiBUZXN0Q29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGODdCNjEzMUJBQ0FEODIwMDRFQzU3MiAvKiBVSVNjcmlwdENvbnRyb2xsZXJN
YWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlFMTMyQUEzQTE3Q0Q1RjEwMDA2MTFERjAgLyogV2Vi
S2l0VGVzdFJ1bm5lckRyYWdnaW5nSW5mby5tbSBpbiBTb3VyY2VzICovLApAQCAtMTE5Myw2ICsx
MTkyLDcgQEAKIAkJCQlBMTg1MTAzQzFCOUFFMEZFMDA3NDRBRUIgLyogT3B0aW9ucy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBMTg1MTA0MDFCOUFFMTMxMDA3NDRBRUIgLyogUGl4ZWxEdW1wU3Vw
cG9ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRTJBNzY1RDIzNzBDOEQxMDA4RjlGRkUgLyog
UGxhdGZvcm1WaWV3SGVscGVycy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY0MDEwQjdFMjREQTIw
NTMwMEE4NzZFMiAvKiBQb3NlQXNDbGFzcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJERkE5ODQ5
MUQ3RjcwQ0YwMEFGRjJDOSAvKiBTaGFyZWRFdmVudFN0cmVhbXNNYWMubW0gaW4gU291cmNlcyAq
LywKIAkJCQlBMTg1MTA0MTFCOUFFMTM4MDA3NDRBRUIgLyogVGVzdENvbnRyb2xsZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwM0IxQjlBRTBFMjAwNzQ0QUVCIC8qIFRlc3RDb250cm9s
bGVyQ29jb2EubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvbWFjL1Bvc2VBc0NsYXNzLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9Qb3Nl
QXNDbGFzcy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNDI4YzYxZGEyODY2MDM5
ZGVjN2E2NDA3NWMwMTFiNjBjYmRhMmI4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1Bvc2VBc0NsYXNzLmgK
KysrIC9kZXYvbnVsbApAQCAtMSwzMSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBQb3Nl
QXNDbGFzc19oCi0jZGVmaW5lIFBvc2VBc0NsYXNzX2gKLQotdm9pZCBwb3NlQXNDbGFzcyhjb25z
dCBjaGFyKiBpbXBvc3RlciwgY29uc3QgY2hhciogb3JpZ2luYWwpOwotCi0jZW5kaWYgLy8gUG9z
ZUFzQ2xhc3NfaApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvUG9zZUFz
Q2xhc3MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9Qb3NlQXNDbGFzcy5tbQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWE4NTJjYmNkMWQ4OTRhNDgxODJiMjQ4Y2E2MmY4
NDRmNDk0Njk2Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9Qb3NlQXNDbGFzcy5tbQorKysgL2Rldi9udWxs
CkBAIC0xLDczICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBv
cnQgIlBvc2VBc0NsYXNzLmgiCi0KLSNpbXBvcnQgPG9iamMvcnVudGltZS5oPgotI2ltcG9ydCA8
d3RmL0Fzc2VydGlvbnMuaD4KLQotc3RhdGljIHZvaWQgc3dpenpsZUFsbE1ldGhvZHMoQ2xhc3Mg
aW1wb3N0ZXIsIENsYXNzIG9yaWdpbmFsKQotewotICAgIHVuc2lnbmVkIGludCBpbXBvc3Rlck1l
dGhvZENvdW50OwotICAgIE1ldGhvZCogaW1wb3N0ZXJNZXRob2RzID0gY2xhc3NfY29weU1ldGhv
ZExpc3QoaW1wb3N0ZXIsICZpbXBvc3Rlck1ldGhvZENvdW50KTsKLQotICAgIHVuc2lnbmVkIGlu
dCBvcmlnaW5hbE1ldGhvZENvdW50OwotICAgIE1ldGhvZCogb3JpZ2luYWxNZXRob2RzID0gY2xh
c3NfY29weU1ldGhvZExpc3Qob3JpZ2luYWwsICZvcmlnaW5hbE1ldGhvZENvdW50KTsKLQotICAg
IGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgaW1wb3N0ZXJNZXRob2RDb3VudDsgaSsrKSB7
Ci0gICAgICAgIFNFTCBpbXBvc3Rlck1ldGhvZE5hbWUgPSBtZXRob2RfZ2V0TmFtZShpbXBvc3Rl
ck1ldGhvZHNbaV0pOwotCi0gICAgICAgIC8vIEF0dGVtcHQgdG8gYWRkIHRoZSBtZXRob2QgdG8g
dGhlIG9yaWdpbmFsIGNsYXNzLiAgSWYgaXQgZmFpbHMsIHRoZSBtZXRob2QgYWxyZWFkeSBleGlz
dHMgYW5kIHdlIHNob3VsZAotICAgICAgICAvLyBpbnN0ZWFkIGV4Y2hhbmdlIHRoZSBpbXBsZW1l
bnRhdGlvbnMuCi0gICAgICAgIGlmIChjbGFzc19hZGRNZXRob2Qob3JpZ2luYWwsIGltcG9zdGVy
TWV0aG9kTmFtZSwgbWV0aG9kX2dldEltcGxlbWVudGF0aW9uKGltcG9zdGVyTWV0aG9kc1tpXSks
IG1ldGhvZF9nZXRUeXBlRW5jb2RpbmcoaW1wb3N0ZXJNZXRob2RzW2ldKSkpCi0gICAgICAgICAg
ICBjb250aW51ZTsKLQotICAgICAgICB1bnNpZ25lZCBpbnQgaiA9IDA7Ci0gICAgICAgIGZvciAo
OyBqIDwgb3JpZ2luYWxNZXRob2RDb3VudDsgaisrKSB7Ci0gICAgICAgICAgICBTRUwgb3JpZ2lu
YWxNZXRob2ROYW1lID0gbWV0aG9kX2dldE5hbWUob3JpZ2luYWxNZXRob2RzW2pdKTsKLSAgICAg
ICAgICAgIGlmIChzZWxfaXNFcXVhbChpbXBvc3Rlck1ldGhvZE5hbWUsIG9yaWdpbmFsTWV0aG9k
TmFtZSkpCi0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBJ
ZiBjbGFzc19hZGRNZXRob2QgZmFpbGVkIGFib3ZlIHRoZW4gdGhlIG1ldGhvZCBtdXN0IGV4aXN0
IG9uIHRoZSBvcmlnaW5hbCBjbGFzcy4KLSAgICAgICAgQVNTRVJUKGogPCBvcmlnaW5hbE1ldGhv
ZENvdW50KTsKLSAgICAgICAgbWV0aG9kX2V4Y2hhbmdlSW1wbGVtZW50YXRpb25zKGltcG9zdGVy
TWV0aG9kc1tpXSwgb3JpZ2luYWxNZXRob2RzW2pdKTsKLSAgICB9Ci0KLSAgICBmcmVlKGltcG9z
dGVyTWV0aG9kcyk7Ci0gICAgZnJlZShvcmlnaW5hbE1ldGhvZHMpOwotfQotCi12b2lkIHBvc2VB
c0NsYXNzKGNvbnN0IGNoYXIqIGltcG9zdGVyLCBjb25zdCBjaGFyKiBvcmlnaW5hbCkKLXsKLSAg
ICBDbGFzcyBpbXBvc3RlckNsYXNzID0gb2JqY19nZXRDbGFzcyhpbXBvc3Rlcik7Ci0gICAgQ2xh
c3Mgb3JpZ2luYWxDbGFzcyA9IG9iamNfZ2V0Q2xhc3Mob3JpZ2luYWwpOwotCi0gICAgLy8gU3dp
enpsZSBpbnN0YW5jZSBtZXRob2RzCi0gICAgc3dpenpsZUFsbE1ldGhvZHMoaW1wb3N0ZXJDbGFz
cywgb3JpZ2luYWxDbGFzcyk7Ci0gICAgLy8gYW5kIHRoZW4gY2xhc3MgbWV0aG9kcwotICAgIHN3
aXp6bGVBbGxNZXRob2RzKG9iamVjdF9nZXRDbGFzcyhpbXBvc3RlckNsYXNzKSwgb2JqZWN0X2dl
dENsYXNzKG9yaWdpbmFsQ2xhc3MpKTsKLX0K
</data>

          </attachment>
      

    </bug>

</bugzilla>