<?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>239503</bug_id>
          
          <creation_ts>2022-04-19 09:56:39 -0700</creation_ts>
          <short_desc>Use SortedArrayMap in parseEnumeration&lt;&gt;() in the JS bindings</short_desc>
          <delta_ts>2022-04-19 17:25:14 -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>Bindings</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1862598</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-19 09:56:39 -0700</bug_when>
    <thetext>Use SortedArrayMap in parseEnumeration&lt;&gt;() in the JS bindings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862600</commentid>
    <comment_count>1</comment_count>
      <attachid>457909</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-19 09:59:30 -0700</bug_when>
    <thetext>Created attachment 457909
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862703</commentid>
    <comment_count>2</comment_count>
      <attachid>457933</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-19 13:31:51 -0700</bug_when>
    <thetext>Created attachment 457933
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862768</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-19 17:24:42 -0700</bug_when>
    <thetext>Committed r293050 (249785@main): &lt;https://commits.webkit.org/249785@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 457933.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1862769</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-19 17:25:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/91995990&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457909</attachid>
            <date>2022-04-19 09:59:30 -0700</date>
            <delta_ts>2022-04-19 13:31:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239503-20220419095929.patch</filename>
            <type>text/plain</type>
            <size>20237</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTE3ZmRiMTEwODlkNjhh
MTJhNjJjMjQ2YTUxYzQ0NzA5Yzk0YjNjYS4uMzgyZDc2OGZmMmUwMDRjNWU1NjBjMTdmYTcxYmNk
MWY3YzBjMmM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIyLTA0LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFNvcnRlZEFycmF5TWFw
IGluIHBhcnNlRW51bWVyYXRpb248PigpIGluIHRoZSBKUyBiaW5kaW5ncworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NTAzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFNvcnRlZEFycmF5TWFwIGlu
IHBhcnNlRW51bWVyYXRpb248PigpIGluIHRoZSBKUyBiaW5kaW5ncywgd2hpY2ggc2hvdWxkIGJl
IHNsaWdodGx5CisgICAgICAgIGJldHRlciBmb3IgcGVyZm9ybWFuY2UuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlRW51
bWVyYXRpb25JbXBsZW1lbnRhdGlvbkNvbnRlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0ludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpwYXJzZUVudW1lcmF0aW9uPFRlc3RDYWxsYmFja0ludGVyZmFjZTo6RW51bT4pOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09ORW51bS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpwYXJzZUVudW1lcmF0aW9uPFRlc3REZWZhdWx0VG9KU09ORW51
bT4pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cGFyc2VFbnVtZXJhdGlvbjxUZXN0T2JqOjpFbnVtVHlwZT4pOgor
ICAgICAgICAoV2ViQ29yZTo6cGFyc2VFbnVtZXJhdGlvbjxUZXN0T2JqOjpFbnVtVHJhaWxpbmdD
b21tYT4pOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VFbnVtZXJhdGlvbjxUZXN0T2JqOjpPcHRp
b25hbD4pOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VFbnVtZXJhdGlvbjxBbHRlcm5hdGVFbnVt
TmFtZT4pOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VFbnVtZXJhdGlvbjxUZXN0T2JqOjpFbnVt
QT4pOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VFbnVtZXJhdGlvbjxUZXN0T2JqOjpFbnVtQj4p
OgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VFbnVtZXJhdGlvbjxUZXN0T2JqOjpFbnVtQz4pOgor
ICAgICAgICAoV2ViQ29yZTo6cGFyc2VFbnVtZXJhdGlvbjxUZXN0T2JqOjpLaW5kPik6CisgICAg
ICAgIChXZWJDb3JlOjpwYXJzZUVudW1lcmF0aW9uPFRlc3RPYmo6OlNpemU+KToKKyAgICAgICAg
KFdlYkNvcmU6OnBhcnNlRW51bWVyYXRpb248VGVzdE9iajo6Q29uZmlkZW5jZT4pOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdGFuZGFsb25lRGljdGlvbmFyeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZUVudW1lcmF0aW9uPFRlc3RTdGFuZGFsb25lRGlj
dGlvbmFyeTo6RW51bUluU3RhbmRhbG9uZURpY3Rpb25hcnlGaWxlPik6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0YW5kYWxvbmVFbnVtZXJhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpwYXJzZUVudW1lcmF0aW9uPFRlc3RTdGFuZGFsb25lRW51bWVyYXRp
b24+KToKKwogMjAyMi0wNC0xNiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dTdHJlYW1lcl1bV2ViUlRDXSBNaW5vciBjbGVhbnVwIGluIEluY29t
aW5nU291cmNlR1N0cmVhbWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDE5NDg5NTJjMmJlZWI1MjJiMmRhZDY2ZWM0MGMy
YjdmYjE4OGU1ZWMuLmY4MWJhYWZiZTA2ZmVmYzRlMGViZjdlNDJjNTkzMzE4ZWJhYmFiZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCkBAIC0yMzYyLDYgKzIzNjIsNyBAQCBzdWIgR2VuZXJhdGVFbnVtZXJhdGlvbkltcGxlbWVu
dGF0aW9uQ29udGVudAogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCI8SmF2YVNjcmlwdENvcmUvSlNT
dHJpbmcuaD4iKTsKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiPEphdmFTY3JpcHRDb3JlL0pTQ0lu
bGluZXMuaD4iKTsKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01Db252ZXJ0RW51bWVyYXRp
b24uaCIpOworICAgIEFkZFRvSW1wbEluY2x1ZGVzKCI8d3RmL1NvcnRlZEFycmF5TWFwLmg+Iik7
CiAKICAgICBteSAkcmVzdWx0ID0gIiI7CiAgICAgJHJlc3VsdCAuPSAiI2lmICR7Y29uZGl0aW9u
YWxTdHJpbmd9XG5cbiIgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwpAQCAtMjQwMiwxNSArMjQwMywx
NiBAQCBzdWIgR2VuZXJhdGVFbnVtZXJhdGlvbkltcGxlbWVudGF0aW9uQ29udGVudAogICAgICRy
ZXN1bHQgLj0gInRlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDwkY2xhc3NOYW1lPiBwYXJzZUVudW1l
cmF0aW9uPCRjbGFzc05hbWU+KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1ZhbHVlIHZhbHVlKVxuIjsKICAgICAkcmVzdWx0IC49ICJ7XG4iOwogICAgICRyZXN1bHQgLj0g
IiAgICBhdXRvIHN0cmluZ1ZhbHVlID0gdmFsdWUudG9XVEZTdHJpbmcoJmxleGljYWxHbG9iYWxP
YmplY3QpO1xuIjsKLSAgICBmb3JlYWNoIG15ICR2YWx1ZSAoQHskZW51bWVyYXRpb24tPnZhbHVl
c30pIHsKKyAgICAkcmVzdWx0IC49ICIgICAgc3RhdGljIGNvbnN0ZXhwciBzdGQ6OnBhaXI8Q29t
cGFyYWJsZUFTQ0lJTGl0ZXJhbCwgJGNsYXNzTmFtZT4gbWFwcGluZ3NbXSA9IHtcbiI7CisgICAg
bXkgQHNvcnRlZEVudW1lcmF0aW9uVmFsdWVzID0gc29ydCBAeyRlbnVtZXJhdGlvbi0+dmFsdWVz
fTsKKyAgICBmb3IgbXkgJHZhbHVlIChAc29ydGVkRW51bWVyYXRpb25WYWx1ZXMpIHsKICAgICAg
ICAgbXkgJGVudW1lcmF0aW9uVmFsdWVOYW1lID0gR2V0RW51bWVyYXRpb25WYWx1ZU5hbWUoJHZh
bHVlKTsKLSAgICAgICAgaWYgKCR2YWx1ZSBlcSAiIikgewotICAgICAgICAgICAgJHJlc3VsdCAu
PSAiICAgIGlmIChzdHJpbmdWYWx1ZS5pc0VtcHR5KCkpXG4iOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgJHJlc3VsdCAuPSAiICAgIGlmIChzdHJpbmdWYWx1ZSA9PSBcIiR2YWx1ZVwi
KVxuIjsKLSAgICAgICAgfQotICAgICAgICAkcmVzdWx0IC49ICIgICAgICAgIHJldHVybiAke2Ns
YXNzTmFtZX06OiR7ZW51bWVyYXRpb25WYWx1ZU5hbWV9O1xuIjsKKyAgICAgICAgJHJlc3VsdCAu
PSAiICAgICAgICB7IFwiJHZhbHVlXCIsICR7Y2xhc3NOYW1lfTo6JGVudW1lcmF0aW9uVmFsdWVO
YW1lIH0sXG4iOwogICAgIH0KKyAgICAkcmVzdWx0IC49ICIgICAgfTtcbiI7CisgICAgJHJlc3Vs
dCAuPSAiICAgIHN0YXRpYyBjb25zdGV4cHIgU29ydGVkQXJyYXlNYXAgZW51bWVyYXRpb25NYXBw
aW5nIHsgbWFwcGluZ3MgfTtcbiI7CisgICAgJHJlc3VsdCAuPSAiICAgIGlmIChhdXRvKiBlbnVt
ZXJhdGlvblZhbHVlID0gZW51bWVyYXRpb25NYXBwaW5nLnRyeUdldChzdHJpbmdWYWx1ZSk7IExJ
S0VMWShlbnVtZXJhdGlvblZhbHVlKSlcbiI7CisgICAgJHJlc3VsdCAuPSAiICAgICAgICByZXR1
cm4gKmVudW1lcmF0aW9uVmFsdWU7XG4iOwogICAgICRyZXN1bHQgLj0gIiAgICByZXR1cm4gc3Rk
OjpudWxsb3B0O1xuIjsKICAgICAkcmVzdWx0IC49ICJ9XG5cbiI7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0ludGVy
ZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q2FsbGJhY2tJbnRlcmZhY2UuY3BwCmluZGV4IDE4ZGRhZmYxMzRhZjNjY2E5ODRmNWNlNDk5ZjQ5
MTg3Y2U2MWU2MWEuLmVjZjcxOWJkNDc2MWIyYTA4NzhhOWI0YzdkZGNhYmIyMTdjZDMwNTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
YWxsYmFja0ludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrSW50ZXJmYWNlLmNwcApAQCAtNDQsNiArNDQsNyBAQAog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9KU1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2lu
Y2x1ZGUgPHd0Zi9Tb3J0ZWRBcnJheU1hcC5oPgogCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTY5LDEwICs3MCwxMyBAQCB0ZW1wbGF0ZTw+IEpTU3RyaW5nKiBjb252ZXJ0RW51bWVyYXRpb25U
b0pTKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LAogdGVtcGxhdGU8PiBzdGQ6
Om9wdGlvbmFsPFRlc3RDYWxsYmFja0ludGVyZmFjZTo6RW51bT4gcGFyc2VFbnVtZXJhdGlvbjxU
ZXN0Q2FsbGJhY2tJbnRlcmZhY2U6OkVudW0+KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8gc3RyaW5nVmFsdWUgPSB2YWx1ZS50
b1dURlN0cmluZygmbGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKHN0cmluZ1ZhbHVlID09
ICJ2YWx1ZTEiKQotICAgICAgICByZXR1cm4gVGVzdENhbGxiYWNrSW50ZXJmYWNlOjpFbnVtOjpW
YWx1ZTE7Ci0gICAgaWYgKHN0cmluZ1ZhbHVlID09ICJ2YWx1ZTIiKQotICAgICAgICByZXR1cm4g
VGVzdENhbGxiYWNrSW50ZXJmYWNlOjpFbnVtOjpWYWx1ZTI7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBzdGQ6OnBhaXI8Q29tcGFyYWJsZUFTQ0lJTGl0ZXJhbCwgVGVzdENhbGxiYWNrSW50ZXJmYWNl
OjpFbnVtPiBtYXBwaW5nc1tdID0geworICAgICAgICB7ICJ2YWx1ZTEiLCBUZXN0Q2FsbGJhY2tJ
bnRlcmZhY2U6OkVudW06OlZhbHVlMSB9LAorICAgICAgICB7ICJ2YWx1ZTIiLCBUZXN0Q2FsbGJh
Y2tJbnRlcmZhY2U6OkVudW06OlZhbHVlMiB9LAorICAgIH07CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBTb3J0ZWRBcnJheU1hcCBlbnVtZXJhdGlvbk1hcHBpbmcgeyBtYXBwaW5ncyB9OworICAgIGlm
IChhdXRvKiBlbnVtZXJhdGlvblZhbHVlID0gZW51bWVyYXRpb25NYXBwaW5nLnRyeUdldChzdHJp
bmdWYWx1ZSk7IExJS0VMWShlbnVtZXJhdGlvblZhbHVlKSkKKyAgICAgICAgcmV0dXJuICplbnVt
ZXJhdGlvblZhbHVlOwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9K
U09ORW51bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RGVmYXVsdFRvSlNPTkVudW0uY3BwCmluZGV4IDE2ZGM0ZDExZDAyNGRkOGI5ZmI3M2NkNmY2
YzQxMGIwMGFiMzU1NTcuLjljZTNlM2Y2MGYxODI3MTNkODBkZTU1NGE4NzBiOTM1MzcwYjYxMmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3REZWZhdWx0VG9KU09ORW51bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pTT05FbnVtLmNwcApAQCAtMjQsNiArMjQsNyBA
QAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9KU1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgor
I2luY2x1ZGUgPHd0Zi9Tb3J0ZWRBcnJheU1hcC5oPgogCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTQ5LDEwICs1MCwxMyBAQCB0ZW1wbGF0ZTw+IEpTU3RyaW5nKiBjb252ZXJ0RW51bWVyYXRp
b25Ub0pTKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LAogdGVtcGxhdGU8PiBz
dGQ6Om9wdGlvbmFsPFRlc3REZWZhdWx0VG9KU09ORW51bT4gcGFyc2VFbnVtZXJhdGlvbjxUZXN0
RGVmYXVsdFRvSlNPTkVudW0+KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBK
U1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8gc3RyaW5nVmFsdWUgPSB2YWx1ZS50b1dURlN0cmlu
ZygmbGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKHN0cmluZ1ZhbHVlID09ICJFbnVtVmFs
dWUxIikKLSAgICAgICAgcmV0dXJuIFRlc3REZWZhdWx0VG9KU09ORW51bTo6RW51bVZhbHVlMTsK
LSAgICBpZiAoc3RyaW5nVmFsdWUgPT0gIkVudW1WYWx1ZTIiKQotICAgICAgICByZXR1cm4gVGVz
dERlZmF1bHRUb0pTT05FbnVtOjpFbnVtVmFsdWUyOworICAgIHN0YXRpYyBjb25zdGV4cHIgc3Rk
OjpwYWlyPENvbXBhcmFibGVBU0NJSUxpdGVyYWwsIFRlc3REZWZhdWx0VG9KU09ORW51bT4gbWFw
cGluZ3NbXSA9IHsKKyAgICAgICAgeyAiRW51bVZhbHVlMSIsIFRlc3REZWZhdWx0VG9KU09ORW51
bTo6RW51bVZhbHVlMSB9LAorICAgICAgICB7ICJFbnVtVmFsdWUyIiwgVGVzdERlZmF1bHRUb0pT
T05FbnVtOjpFbnVtVmFsdWUyIH0sCisgICAgfTsKKyAgICBzdGF0aWMgY29uc3RleHByIFNvcnRl
ZEFycmF5TWFwIGVudW1lcmF0aW9uTWFwcGluZyB7IG1hcHBpbmdzIH07CisgICAgaWYgKGF1dG8q
IGVudW1lcmF0aW9uVmFsdWUgPSBlbnVtZXJhdGlvbk1hcHBpbmcudHJ5R2V0KHN0cmluZ1ZhbHVl
KTsgTElLRUxZKGVudW1lcmF0aW9uVmFsdWUpKQorICAgICAgICByZXR1cm4gKmVudW1lcmF0aW9u
VmFsdWU7CiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCA0OTRj
ZGZjMzI4MzIwYmUxODFmMDgxNzdjZWJhYjhkZGRjNjA1MmJiLi5lODdjZDBlYTdhODlhYTNhMzRl
NWQ4NmUzMTVlMzI5ZjYwYWM2MGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApAQCAtMTAyLDYgKzEwMiw3IEBACiAj
aW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1BvaW50ZXJQcmVwYXJhdGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvU29ydGVkQXJyYXlNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC0xNDks
MTQgKzE1MCwxNSBAQCB0ZW1wbGF0ZTw+IEpTU3RyaW5nKiBjb252ZXJ0RW51bWVyYXRpb25Ub0pT
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LAogdGVtcGxhdGU8PiBzdGQ6Om9w
dGlvbmFsPFRlc3RPYmo6OkVudW1UeXBlPiBwYXJzZUVudW1lcmF0aW9uPFRlc3RPYmo6OkVudW1U
eXBlPihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1ZSkK
IHsKICAgICBhdXRvIHN0cmluZ1ZhbHVlID0gdmFsdWUudG9XVEZTdHJpbmcoJmxleGljYWxHbG9i
YWxPYmplY3QpOwotICAgIGlmIChzdHJpbmdWYWx1ZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVy
biBUZXN0T2JqOjpFbnVtVHlwZTo6RW1wdHlTdHJpbmc7Ci0gICAgaWYgKHN0cmluZ1ZhbHVlID09
ICJlbnVtVmFsdWUxIikKLSAgICAgICAgcmV0dXJuIFRlc3RPYmo6OkVudW1UeXBlOjpFbnVtVmFs
dWUxOwotICAgIGlmIChzdHJpbmdWYWx1ZSA9PSAiRW51bVZhbHVlMiIpCi0gICAgICAgIHJldHVy
biBUZXN0T2JqOjpFbnVtVHlwZTo6RW51bVZhbHVlMjsKLSAgICBpZiAoc3RyaW5nVmFsdWUgPT0g
IkVudW1WYWx1ZTMiKQotICAgICAgICByZXR1cm4gVGVzdE9iajo6RW51bVR5cGU6OkVudW1WYWx1
ZTM7CisgICAgc3RhdGljIGNvbnN0ZXhwciBzdGQ6OnBhaXI8Q29tcGFyYWJsZUFTQ0lJTGl0ZXJh
bCwgVGVzdE9iajo6RW51bVR5cGU+IG1hcHBpbmdzW10gPSB7CisgICAgICAgIHsgIiIsIFRlc3RP
Ymo6OkVudW1UeXBlOjpFbXB0eVN0cmluZyB9LAorICAgICAgICB7ICJFbnVtVmFsdWUyIiwgVGVz
dE9iajo6RW51bVR5cGU6OkVudW1WYWx1ZTIgfSwKKyAgICAgICAgeyAiRW51bVZhbHVlMyIsIFRl
c3RPYmo6OkVudW1UeXBlOjpFbnVtVmFsdWUzIH0sCisgICAgICAgIHsgImVudW1WYWx1ZTEiLCBU
ZXN0T2JqOjpFbnVtVHlwZTo6RW51bVZhbHVlMSB9LAorICAgIH07CisgICAgc3RhdGljIGNvbnN0
ZXhwciBTb3J0ZWRBcnJheU1hcCBlbnVtZXJhdGlvbk1hcHBpbmcgeyBtYXBwaW5ncyB9OworICAg
IGlmIChhdXRvKiBlbnVtZXJhdGlvblZhbHVlID0gZW51bWVyYXRpb25NYXBwaW5nLnRyeUdldChz
dHJpbmdWYWx1ZSk7IExJS0VMWShlbnVtZXJhdGlvblZhbHVlKSkKKyAgICAgICAgcmV0dXJuICpl
bnVtZXJhdGlvblZhbHVlOwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKQEAgLTE4NSwx
MCArMTg3LDEzIEBAIHRlbXBsYXRlPD4gSlNTdHJpbmcqIGNvbnZlcnRFbnVtZXJhdGlvblRvSlMo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsCiB0ZW1wbGF0ZTw+IHN0ZDo6b3B0
aW9uYWw8VGVzdE9iajo6RW51bVRyYWlsaW5nQ29tbWE+IHBhcnNlRW51bWVyYXRpb248VGVzdE9i
ajo6RW51bVRyYWlsaW5nQ29tbWE+KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8gc3RyaW5nVmFsdWUgPSB2YWx1ZS50b1dURlN0
cmluZygmbGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKHN0cmluZ1ZhbHVlID09ICJlbnVt
VmFsdWUxIikKLSAgICAgICAgcmV0dXJuIFRlc3RPYmo6OkVudW1UcmFpbGluZ0NvbW1hOjpFbnVt
VmFsdWUxOwotICAgIGlmIChzdHJpbmdWYWx1ZSA9PSAiZW51bVZhbHVlMiIpCi0gICAgICAgIHJl
dHVybiBUZXN0T2JqOjpFbnVtVHJhaWxpbmdDb21tYTo6RW51bVZhbHVlMjsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHN0ZDo6cGFpcjxDb21wYXJhYmxlQVNDSUlMaXRlcmFsLCBUZXN0T2JqOjpFbnVt
VHJhaWxpbmdDb21tYT4gbWFwcGluZ3NbXSA9IHsKKyAgICAgICAgeyAiZW51bVZhbHVlMSIsIFRl
c3RPYmo6OkVudW1UcmFpbGluZ0NvbW1hOjpFbnVtVmFsdWUxIH0sCisgICAgICAgIHsgImVudW1W
YWx1ZTIiLCBUZXN0T2JqOjpFbnVtVHJhaWxpbmdDb21tYTo6RW51bVZhbHVlMiB9LAorICAgIH07
CisgICAgc3RhdGljIGNvbnN0ZXhwciBTb3J0ZWRBcnJheU1hcCBlbnVtZXJhdGlvbk1hcHBpbmcg
eyBtYXBwaW5ncyB9OworICAgIGlmIChhdXRvKiBlbnVtZXJhdGlvblZhbHVlID0gZW51bWVyYXRp
b25NYXBwaW5nLnRyeUdldChzdHJpbmdWYWx1ZSk7IExJS0VMWShlbnVtZXJhdGlvblZhbHVlKSkK
KyAgICAgICAgcmV0dXJuICplbnVtZXJhdGlvblZhbHVlOwogICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiB9CiAKQEAgLTIyMSwxNCArMjI2LDE1IEBAIHRlbXBsYXRlPD4gSlNTdHJpbmcqIGNvbnZl
cnRFbnVtZXJhdGlvblRvSlMoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsCiB0
ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8VGVzdE9iajo6T3B0aW9uYWw+IHBhcnNlRW51bWVyYXRp
b248VGVzdE9iajo6T3B0aW9uYWw+KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8gc3RyaW5nVmFsdWUgPSB2YWx1ZS50b1dURlN0
cmluZygmbGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKHN0cmluZ1ZhbHVlLmlzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuIFRlc3RPYmo6Ok9wdGlvbmFsOjpFbXB0eVN0cmluZzsKLSAgICBp
ZiAoc3RyaW5nVmFsdWUgPT0gIk9wdGlvbmFsVmFsdWUxIikKLSAgICAgICAgcmV0dXJuIFRlc3RP
Ymo6Ok9wdGlvbmFsOjpPcHRpb25hbFZhbHVlMTsKLSAgICBpZiAoc3RyaW5nVmFsdWUgPT0gIk9w
dGlvbmFsVmFsdWUyIikKLSAgICAgICAgcmV0dXJuIFRlc3RPYmo6Ok9wdGlvbmFsOjpPcHRpb25h
bFZhbHVlMjsKLSAgICBpZiAoc3RyaW5nVmFsdWUgPT0gIk9wdGlvbmFsVmFsdWUzIikKLSAgICAg
ICAgcmV0dXJuIFRlc3RPYmo6Ok9wdGlvbmFsOjpPcHRpb25hbFZhbHVlMzsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHN0ZDo6cGFpcjxDb21wYXJhYmxlQVNDSUlMaXRlcmFsLCBUZXN0T2JqOjpPcHRp
b25hbD4gbWFwcGluZ3NbXSA9IHsKKyAgICAgICAgeyAiIiwgVGVzdE9iajo6T3B0aW9uYWw6OkVt
cHR5U3RyaW5nIH0sCisgICAgICAgIHsgIk9wdGlvbmFsVmFsdWUxIiwgVGVzdE9iajo6T3B0aW9u
YWw6Ok9wdGlvbmFsVmFsdWUxIH0sCisgICAgICAgIHsgIk9wdGlvbmFsVmFsdWUyIiwgVGVzdE9i
ajo6T3B0aW9uYWw6Ok9wdGlvbmFsVmFsdWUyIH0sCisgICAgICAgIHsgIk9wdGlvbmFsVmFsdWUz
IiwgVGVzdE9iajo6T3B0aW9uYWw6Ok9wdGlvbmFsVmFsdWUzIH0sCisgICAgfTsKKyAgICBzdGF0
aWMgY29uc3RleHByIFNvcnRlZEFycmF5TWFwIGVudW1lcmF0aW9uTWFwcGluZyB7IG1hcHBpbmdz
IH07CisgICAgaWYgKGF1dG8qIGVudW1lcmF0aW9uVmFsdWUgPSBlbnVtZXJhdGlvbk1hcHBpbmcu
dHJ5R2V0KHN0cmluZ1ZhbHVlKTsgTElLRUxZKGVudW1lcmF0aW9uVmFsdWUpKQorICAgICAgICBy
ZXR1cm4gKmVudW1lcmF0aW9uVmFsdWU7CiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIApA
QCAtMjU3LDEwICsyNjMsMTMgQEAgdGVtcGxhdGU8PiBKU1N0cmluZyogY29udmVydEVudW1lcmF0
aW9uVG9KUyhKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwKIHRlbXBsYXRlPD4g
c3RkOjpvcHRpb25hbDxBbHRlcm5hdGVFbnVtTmFtZT4gcGFyc2VFbnVtZXJhdGlvbjxBbHRlcm5h
dGVFbnVtTmFtZT4oSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUg
dmFsdWUpCiB7CiAgICAgYXV0byBzdHJpbmdWYWx1ZSA9IHZhbHVlLnRvV1RGU3RyaW5nKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoc3RyaW5nVmFsdWUgPT0gImVudW1WYWx1ZTEiKQot
ICAgICAgICByZXR1cm4gQWx0ZXJuYXRlRW51bU5hbWU6OkVudW1WYWx1ZTE7Ci0gICAgaWYgKHN0
cmluZ1ZhbHVlID09ICJFbnVtVmFsdWUyIikKLSAgICAgICAgcmV0dXJuIEFsdGVybmF0ZUVudW1O
YW1lOjpFbnVtVmFsdWUyOworICAgIHN0YXRpYyBjb25zdGV4cHIgc3RkOjpwYWlyPENvbXBhcmFi
bGVBU0NJSUxpdGVyYWwsIEFsdGVybmF0ZUVudW1OYW1lPiBtYXBwaW5nc1tdID0geworICAgICAg
ICB7ICJFbnVtVmFsdWUyIiwgQWx0ZXJuYXRlRW51bU5hbWU6OkVudW1WYWx1ZTIgfSwKKyAgICAg
ICAgeyAiZW51bVZhbHVlMSIsIEFsdGVybmF0ZUVudW1OYW1lOjpFbnVtVmFsdWUxIH0sCisgICAg
fTsKKyAgICBzdGF0aWMgY29uc3RleHByIFNvcnRlZEFycmF5TWFwIGVudW1lcmF0aW9uTWFwcGlu
ZyB7IG1hcHBpbmdzIH07CisgICAgaWYgKGF1dG8qIGVudW1lcmF0aW9uVmFsdWUgPSBlbnVtZXJh
dGlvbk1hcHBpbmcudHJ5R2V0KHN0cmluZ1ZhbHVlKTsgTElLRUxZKGVudW1lcmF0aW9uVmFsdWUp
KQorICAgICAgICByZXR1cm4gKmVudW1lcmF0aW9uVmFsdWU7CiAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKIH0KIApAQCAtMjg5LDggKzI5OCwxMiBAQCB0ZW1wbGF0ZTw+IEpTU3RyaW5nKiBjb252
ZXJ0RW51bWVyYXRpb25Ub0pTKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LAog
dGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPFRlc3RPYmo6OkVudW1BPiBwYXJzZUVudW1lcmF0aW9u
PFRlc3RPYmo6OkVudW1BPihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNW
YWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvIHN0cmluZ1ZhbHVlID0gdmFsdWUudG9XVEZTdHJpbmco
JmxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIGlmIChzdHJpbmdWYWx1ZSA9PSAiQSIpCi0gICAg
ICAgIHJldHVybiBUZXN0T2JqOjpFbnVtQTo6QTsKKyAgICBzdGF0aWMgY29uc3RleHByIHN0ZDo6
cGFpcjxDb21wYXJhYmxlQVNDSUlMaXRlcmFsLCBUZXN0T2JqOjpFbnVtQT4gbWFwcGluZ3NbXSA9
IHsKKyAgICAgICAgeyAiQSIsIFRlc3RPYmo6OkVudW1BOjpBIH0sCisgICAgfTsKKyAgICBzdGF0
aWMgY29uc3RleHByIFNvcnRlZEFycmF5TWFwIGVudW1lcmF0aW9uTWFwcGluZyB7IG1hcHBpbmdz
IH07CisgICAgaWYgKGF1dG8qIGVudW1lcmF0aW9uVmFsdWUgPSBlbnVtZXJhdGlvbk1hcHBpbmcu
dHJ5R2V0KHN0cmluZ1ZhbHVlKTsgTElLRUxZKGVudW1lcmF0aW9uVmFsdWUpKQorICAgICAgICBy
ZXR1cm4gKmVudW1lcmF0aW9uVmFsdWU7CiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIApA
QCAtMzIxLDggKzMzNCwxMiBAQCB0ZW1wbGF0ZTw+IEpTU3RyaW5nKiBjb252ZXJ0RW51bWVyYXRp
b25Ub0pTKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LAogdGVtcGxhdGU8PiBz
dGQ6Om9wdGlvbmFsPFRlc3RPYmo6OkVudW1CPiBwYXJzZUVudW1lcmF0aW9uPFRlc3RPYmo6OkVu
dW1CPihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1ZSkK
IHsKICAgICBhdXRvIHN0cmluZ1ZhbHVlID0gdmFsdWUudG9XVEZTdHJpbmcoJmxleGljYWxHbG9i
YWxPYmplY3QpOwotICAgIGlmIChzdHJpbmdWYWx1ZSA9PSAiQiIpCi0gICAgICAgIHJldHVybiBU
ZXN0T2JqOjpFbnVtQjo6QjsKKyAgICBzdGF0aWMgY29uc3RleHByIHN0ZDo6cGFpcjxDb21wYXJh
YmxlQVNDSUlMaXRlcmFsLCBUZXN0T2JqOjpFbnVtQj4gbWFwcGluZ3NbXSA9IHsKKyAgICAgICAg
eyAiQiIsIFRlc3RPYmo6OkVudW1COjpCIH0sCisgICAgfTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IFNvcnRlZEFycmF5TWFwIGVudW1lcmF0aW9uTWFwcGluZyB7IG1hcHBpbmdzIH07CisgICAgaWYg
KGF1dG8qIGVudW1lcmF0aW9uVmFsdWUgPSBlbnVtZXJhdGlvbk1hcHBpbmcudHJ5R2V0KHN0cmlu
Z1ZhbHVlKTsgTElLRUxZKGVudW1lcmF0aW9uVmFsdWUpKQorICAgICAgICByZXR1cm4gKmVudW1l
cmF0aW9uVmFsdWU7CiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIApAQCAtMzUzLDggKzM3
MCwxMiBAQCB0ZW1wbGF0ZTw+IEpTU3RyaW5nKiBjb252ZXJ0RW51bWVyYXRpb25Ub0pTKEpTR2xv
YmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LAogdGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFs
PFRlc3RPYmo6OkVudW1DPiBwYXJzZUVudW1lcmF0aW9uPFRlc3RPYmo6OkVudW1DPihKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRv
IHN0cmluZ1ZhbHVlID0gdmFsdWUudG9XVEZTdHJpbmcoJmxleGljYWxHbG9iYWxPYmplY3QpOwot
ICAgIGlmIChzdHJpbmdWYWx1ZSA9PSAiQyIpCi0gICAgICAgIHJldHVybiBUZXN0T2JqOjpFbnVt
Qzo6QzsKKyAgICBzdGF0aWMgY29uc3RleHByIHN0ZDo6cGFpcjxDb21wYXJhYmxlQVNDSUlMaXRl
cmFsLCBUZXN0T2JqOjpFbnVtQz4gbWFwcGluZ3NbXSA9IHsKKyAgICAgICAgeyAiQyIsIFRlc3RP
Ymo6OkVudW1DOjpDIH0sCisgICAgfTsKKyAgICBzdGF0aWMgY29uc3RleHByIFNvcnRlZEFycmF5
TWFwIGVudW1lcmF0aW9uTWFwcGluZyB7IG1hcHBpbmdzIH07CisgICAgaWYgKGF1dG8qIGVudW1l
cmF0aW9uVmFsdWUgPSBlbnVtZXJhdGlvbk1hcHBpbmcudHJ5R2V0KHN0cmluZ1ZhbHVlKTsgTElL
RUxZKGVudW1lcmF0aW9uVmFsdWUpKQorICAgICAgICByZXR1cm4gKmVudW1lcmF0aW9uVmFsdWU7
CiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIApAQCAtMzg1LDEwICs0MDYsMTMgQEAgdGVt
cGxhdGU8PiBKU1N0cmluZyogY29udmVydEVudW1lcmF0aW9uVG9KUyhKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwKIHRlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxUZXN0T2JqOjpL
aW5kPiBwYXJzZUVudW1lcmF0aW9uPFRlc3RPYmo6OktpbmQ+KEpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8gc3RyaW5nVmFsdWUg
PSB2YWx1ZS50b1dURlN0cmluZygmbGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKHN0cmlu
Z1ZhbHVlID09ICJxdWljayIpCi0gICAgICAgIHJldHVybiBUZXN0T2JqOjpLaW5kOjpRdWljazsK
LSAgICBpZiAoc3RyaW5nVmFsdWUgPT0gImRlYWQiKQotICAgICAgICByZXR1cm4gVGVzdE9iajo6
S2luZDo6RGVhZDsKKyAgICBzdGF0aWMgY29uc3RleHByIHN0ZDo6cGFpcjxDb21wYXJhYmxlQVND
SUlMaXRlcmFsLCBUZXN0T2JqOjpLaW5kPiBtYXBwaW5nc1tdID0geworICAgICAgICB7ICJkZWFk
IiwgVGVzdE9iajo6S2luZDo6RGVhZCB9LAorICAgICAgICB7ICJxdWljayIsIFRlc3RPYmo6Oktp
bmQ6OlF1aWNrIH0sCisgICAgfTsKKyAgICBzdGF0aWMgY29uc3RleHByIFNvcnRlZEFycmF5TWFw
IGVudW1lcmF0aW9uTWFwcGluZyB7IG1hcHBpbmdzIH07CisgICAgaWYgKGF1dG8qIGVudW1lcmF0
aW9uVmFsdWUgPSBlbnVtZXJhdGlvbk1hcHBpbmcudHJ5R2V0KHN0cmluZ1ZhbHVlKTsgTElLRUxZ
KGVudW1lcmF0aW9uVmFsdWUpKQorICAgICAgICByZXR1cm4gKmVudW1lcmF0aW9uVmFsdWU7CiAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIApAQCAtNDE3LDEwICs0NDEsMTMgQEAgdGVtcGxh
dGU8PiBKU1N0cmluZyogY29udmVydEVudW1lcmF0aW9uVG9KUyhKU0dsb2JhbE9iamVjdCYgbGV4
aWNhbEdsb2JhbE9iamVjdCwKIHRlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxUZXN0T2JqOjpTaXpl
PiBwYXJzZUVudW1lcmF0aW9uPFRlc3RPYmo6OlNpemU+KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8gc3RyaW5nVmFsdWUgPSB2
YWx1ZS50b1dURlN0cmluZygmbGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKHN0cmluZ1Zh
bHVlID09ICJzbWFsbCIpCi0gICAgICAgIHJldHVybiBUZXN0T2JqOjpTaXplOjpTbWFsbDsKLSAg
ICBpZiAoc3RyaW5nVmFsdWUgPT0gIm11Y2gtbXVjaC1sYXJnZXIiKQotICAgICAgICByZXR1cm4g
VGVzdE9iajo6U2l6ZTo6TXVjaE11Y2hMYXJnZXI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBzdGQ6
OnBhaXI8Q29tcGFyYWJsZUFTQ0lJTGl0ZXJhbCwgVGVzdE9iajo6U2l6ZT4gbWFwcGluZ3NbXSA9
IHsKKyAgICAgICAgeyAibXVjaC1tdWNoLWxhcmdlciIsIFRlc3RPYmo6OlNpemU6Ok11Y2hNdWNo
TGFyZ2VyIH0sCisgICAgICAgIHsgInNtYWxsIiwgVGVzdE9iajo6U2l6ZTo6U21hbGwgfSwKKyAg
ICB9OworICAgIHN0YXRpYyBjb25zdGV4cHIgU29ydGVkQXJyYXlNYXAgZW51bWVyYXRpb25NYXBw
aW5nIHsgbWFwcGluZ3MgfTsKKyAgICBpZiAoYXV0byogZW51bWVyYXRpb25WYWx1ZSA9IGVudW1l
cmF0aW9uTWFwcGluZy50cnlHZXQoc3RyaW5nVmFsdWUpOyBMSUtFTFkoZW51bWVyYXRpb25WYWx1
ZSkpCisgICAgICAgIHJldHVybiAqZW51bWVyYXRpb25WYWx1ZTsKICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogfQogCkBAIC00NDksMTAgKzQ3NiwxMyBAQCB0ZW1wbGF0ZTw+IEpTU3RyaW5nKiBj
b252ZXJ0RW51bWVyYXRpb25Ub0pTKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LAogdGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPFRlc3RPYmo6OkNvbmZpZGVuY2U+IHBhcnNlRW51
bWVyYXRpb248VGVzdE9iajo6Q29uZmlkZW5jZT4oSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byBzdHJpbmdWYWx1ZSA9IHZhbHVl
LnRvV1RGU3RyaW5nKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoc3RyaW5nVmFsdWUg
PT0gImhpZ2giKQotICAgICAgICByZXR1cm4gVGVzdE9iajo6Q29uZmlkZW5jZTo6SGlnaDsKLSAg
ICBpZiAoc3RyaW5nVmFsdWUgPT0gImtpbmRhLWxvdyIpCi0gICAgICAgIHJldHVybiBUZXN0T2Jq
OjpDb25maWRlbmNlOjpLaW5kYUxvdzsKKyAgICBzdGF0aWMgY29uc3RleHByIHN0ZDo6cGFpcjxD
b21wYXJhYmxlQVNDSUlMaXRlcmFsLCBUZXN0T2JqOjpDb25maWRlbmNlPiBtYXBwaW5nc1tdID0g
eworICAgICAgICB7ICJoaWdoIiwgVGVzdE9iajo6Q29uZmlkZW5jZTo6SGlnaCB9LAorICAgICAg
ICB7ICJraW5kYS1sb3ciLCBUZXN0T2JqOjpDb25maWRlbmNlOjpLaW5kYUxvdyB9LAorICAgIH07
CisgICAgc3RhdGljIGNvbnN0ZXhwciBTb3J0ZWRBcnJheU1hcCBlbnVtZXJhdGlvbk1hcHBpbmcg
eyBtYXBwaW5ncyB9OworICAgIGlmIChhdXRvKiBlbnVtZXJhdGlvblZhbHVlID0gZW51bWVyYXRp
b25NYXBwaW5nLnRyeUdldChzdHJpbmdWYWx1ZSk7IExJS0VMWShlbnVtZXJhdGlvblZhbHVlKSkK
KyAgICAgICAgcmV0dXJuICplbnVtZXJhdGlvblZhbHVlOwogICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTdGFuZGFsb25lRGljdGlvbmFyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RhbmRhbG9uZURpY3Rpb25hcnkuY3BwCmluZGV4
IDc1ZjI2OTlmMmZkOTVlNDk0NDBjNGI2YjgxMGMxZWQxOGExMmExNzQuLjFmN2E5YmI3ZDQ5NzNm
ZmE5MmJhYmQxZTQzZDVmY2QzYmI4YjA0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdGFuZGFsb25lRGljdGlvbmFyeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0YW5kYWxv
bmVEaWN0aW9uYXJ5LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL09iamVjdENvbnN0cnVjdG9yLmg+CiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvU29ydGVkQXJyYXlNYXAuaD4KIAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNTAsMTAgKzM1MSwxMyBAQCB0ZW1wbGF0ZTw+IEpT
U3RyaW5nKiBjb252ZXJ0RW51bWVyYXRpb25Ub0pTKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xv
YmFsT2JqZWN0LAogdGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPFRlc3RTdGFuZGFsb25lRGljdGlv
bmFyeTo6RW51bUluU3RhbmRhbG9uZURpY3Rpb25hcnlGaWxlPiBwYXJzZUVudW1lcmF0aW9uPFRl
c3RTdGFuZGFsb25lRGljdGlvbmFyeTo6RW51bUluU3RhbmRhbG9uZURpY3Rpb25hcnlGaWxlPihK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAg
ICBhdXRvIHN0cmluZ1ZhbHVlID0gdmFsdWUudG9XVEZTdHJpbmcoJmxleGljYWxHbG9iYWxPYmpl
Y3QpOwotICAgIGlmIChzdHJpbmdWYWx1ZSA9PSAiZW51bVZhbHVlMSIpCi0gICAgICAgIHJldHVy
biBUZXN0U3RhbmRhbG9uZURpY3Rpb25hcnk6OkVudW1JblN0YW5kYWxvbmVEaWN0aW9uYXJ5Rmls
ZTo6RW51bVZhbHVlMTsKLSAgICBpZiAoc3RyaW5nVmFsdWUgPT0gImVudW1WYWx1ZTIiKQotICAg
ICAgICByZXR1cm4gVGVzdFN0YW5kYWxvbmVEaWN0aW9uYXJ5OjpFbnVtSW5TdGFuZGFsb25lRGlj
dGlvbmFyeUZpbGU6OkVudW1WYWx1ZTI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBzdGQ6OnBhaXI8
Q29tcGFyYWJsZUFTQ0lJTGl0ZXJhbCwgVGVzdFN0YW5kYWxvbmVEaWN0aW9uYXJ5OjpFbnVtSW5T
dGFuZGFsb25lRGljdGlvbmFyeUZpbGU+IG1hcHBpbmdzW10gPSB7CisgICAgICAgIHsgImVudW1W
YWx1ZTEiLCBUZXN0U3RhbmRhbG9uZURpY3Rpb25hcnk6OkVudW1JblN0YW5kYWxvbmVEaWN0aW9u
YXJ5RmlsZTo6RW51bVZhbHVlMSB9LAorICAgICAgICB7ICJlbnVtVmFsdWUyIiwgVGVzdFN0YW5k
YWxvbmVEaWN0aW9uYXJ5OjpFbnVtSW5TdGFuZGFsb25lRGljdGlvbmFyeUZpbGU6OkVudW1WYWx1
ZTIgfSwKKyAgICB9OworICAgIHN0YXRpYyBjb25zdGV4cHIgU29ydGVkQXJyYXlNYXAgZW51bWVy
YXRpb25NYXBwaW5nIHsgbWFwcGluZ3MgfTsKKyAgICBpZiAoYXV0byogZW51bWVyYXRpb25WYWx1
ZSA9IGVudW1lcmF0aW9uTWFwcGluZy50cnlHZXQoc3RyaW5nVmFsdWUpOyBMSUtFTFkoZW51bWVy
YXRpb25WYWx1ZSkpCisgICAgICAgIHJldHVybiAqZW51bWVyYXRpb25WYWx1ZTsKICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RhbmRhbG9uZUVudW1lcmF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdGFuZGFsb25lRW51bWVy
YXRpb24uY3BwCmluZGV4IDQ2YTYyNDQ5ZjU2YTQ2MDBhYjE2ZjNiYTE2NDU4ODI2YTliN2MyMTYu
LjQyNjg5Y2Q1NzM4NjQxMWFkOWNiYTM2M2JlMTMzNmZjZmI4OTg0ZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdGFuZGFsb25lRW51
bWVyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTdGFuZGFsb25lRW51bWVyYXRpb24uY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0pTU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVk
ZSA8d3RmL1NvcnRlZEFycmF5TWFwLmg+CiAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTIs
MTAgKzUzLDEzIEBAIHRlbXBsYXRlPD4gSlNTdHJpbmcqIGNvbnZlcnRFbnVtZXJhdGlvblRvSlMo
SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsCiB0ZW1wbGF0ZTw+IHN0ZDo6b3B0
aW9uYWw8VGVzdFN0YW5kYWxvbmVFbnVtZXJhdGlvbj4gcGFyc2VFbnVtZXJhdGlvbjxUZXN0U3Rh
bmRhbG9uZUVudW1lcmF0aW9uPihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBhdXRvIHN0cmluZ1ZhbHVlID0gdmFsdWUudG9XVEZTdHJp
bmcoJmxleGljYWxHbG9iYWxPYmplY3QpOwotICAgIGlmIChzdHJpbmdWYWx1ZSA9PSAiZW51bVZh
bHVlMSIpCi0gICAgICAgIHJldHVybiBUZXN0U3RhbmRhbG9uZUVudW1lcmF0aW9uOjpFbnVtVmFs
dWUxOwotICAgIGlmIChzdHJpbmdWYWx1ZSA9PSAiZW51bVZhbHVlMiIpCi0gICAgICAgIHJldHVy
biBUZXN0U3RhbmRhbG9uZUVudW1lcmF0aW9uOjpFbnVtVmFsdWUyOworICAgIHN0YXRpYyBjb25z
dGV4cHIgc3RkOjpwYWlyPENvbXBhcmFibGVBU0NJSUxpdGVyYWwsIFRlc3RTdGFuZGFsb25lRW51
bWVyYXRpb24+IG1hcHBpbmdzW10gPSB7CisgICAgICAgIHsgImVudW1WYWx1ZTEiLCBUZXN0U3Rh
bmRhbG9uZUVudW1lcmF0aW9uOjpFbnVtVmFsdWUxIH0sCisgICAgICAgIHsgImVudW1WYWx1ZTIi
LCBUZXN0U3RhbmRhbG9uZUVudW1lcmF0aW9uOjpFbnVtVmFsdWUyIH0sCisgICAgfTsKKyAgICBz
dGF0aWMgY29uc3RleHByIFNvcnRlZEFycmF5TWFwIGVudW1lcmF0aW9uTWFwcGluZyB7IG1hcHBp
bmdzIH07CisgICAgaWYgKGF1dG8qIGVudW1lcmF0aW9uVmFsdWUgPSBlbnVtZXJhdGlvbk1hcHBp
bmcudHJ5R2V0KHN0cmluZ1ZhbHVlKTsgTElLRUxZKGVudW1lcmF0aW9uVmFsdWUpKQorICAgICAg
ICByZXR1cm4gKmVudW1lcmF0aW9uVmFsdWU7CiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0K
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457933</attachid>
            <date>2022-04-19 13:31:51 -0700</date>
            <delta_ts>2022-04-19 17:24:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239503-20220419133150.patch</filename>
            <type>text/plain</type>
            <size>20151</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzMDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzg5NzFhYWU2MzhlY2Rj
NjQ4M2ZmODY5OTBmNTNlMjE0MjM5NDhhMi4uZjE2YTllYzQzOGFmZmVhZmFmZjZmZDczMWM3M2M0
NjgyMGQxYjY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIyLTA0LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFNvcnRlZEFycmF5TWFw
IGluIHBhcnNlRW51bWVyYXRpb248PigpIGluIHRoZSBKUyBiaW5kaW5ncworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5NTAzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIFNvcnRlZEFycmF5TWFwIGlu
IHBhcnNlRW51bWVyYXRpb248PigpIGluIHRoZSBKUyBiaW5kaW5ncywgd2hpY2ggc2hvdWxkIGJl
IHNsaWdodGx5CisgICAgICAgIGJldHRlciBmb3IgcGVyZm9ybWFuY2UuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlRW51
bWVyYXRpb25JbXBsZW1lbnRhdGlvbkNvbnRlbnQpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RDYWxsYmFja0ludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpwYXJzZUVudW1lcmF0aW9uPFRlc3RDYWxsYmFja0ludGVyZmFjZTo6RW51bT4pOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3REZWZhdWx0VG9KU09ORW51bS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpwYXJzZUVudW1lcmF0aW9uPFRlc3REZWZhdWx0VG9KU09ORW51
bT4pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cGFyc2VFbnVtZXJhdGlvbjxUZXN0T2JqOjpFbnVtVHlwZT4pOgor
ICAgICAgICAoV2ViQ29yZTo6cGFyc2VFbnVtZXJhdGlvbjxUZXN0T2JqOjpFbnVtVHJhaWxpbmdD
b21tYT4pOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VFbnVtZXJhdGlvbjxUZXN0T2JqOjpPcHRp
b25hbD4pOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VFbnVtZXJhdGlvbjxBbHRlcm5hdGVFbnVt
TmFtZT4pOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VFbnVtZXJhdGlvbjxUZXN0T2JqOjpFbnVt
QT4pOgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VFbnVtZXJhdGlvbjxUZXN0T2JqOjpFbnVtQj4p
OgorICAgICAgICAoV2ViQ29yZTo6cGFyc2VFbnVtZXJhdGlvbjxUZXN0T2JqOjpFbnVtQz4pOgor
ICAgICAgICAoV2ViQ29yZTo6cGFyc2VFbnVtZXJhdGlvbjxUZXN0T2JqOjpLaW5kPik6CisgICAg
ICAgIChXZWJDb3JlOjpwYXJzZUVudW1lcmF0aW9uPFRlc3RPYmo6OlNpemU+KToKKyAgICAgICAg
KFdlYkNvcmU6OnBhcnNlRW51bWVyYXRpb248VGVzdE9iajo6Q29uZmlkZW5jZT4pOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdGFuZGFsb25lRGljdGlvbmFyeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpwYXJzZUVudW1lcmF0aW9uPFRlc3RTdGFuZGFsb25lRGlj
dGlvbmFyeTo6RW51bUluU3RhbmRhbG9uZURpY3Rpb25hcnlGaWxlPik6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0YW5kYWxvbmVFbnVtZXJhdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpwYXJzZUVudW1lcmF0aW9uPFRlc3RTdGFuZGFsb25lRW51bWVyYXRp
b24+KToKKwogMjAyMi0wNC0xOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBUZXh0IHNlbGVjdGlvbiBmbGlja2VycyB3aGVuIGluc2VydGlu
ZyB0ZXh0IHVzaW5nIGRpY3RhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBiZjc2MjIxYjMyODc5MGZmNjdlMDU0NWE2
MWEzODgxZDhiMDU5ODYyLi5iM2FlMGEwODIzMjg5MzMwMDVjNDFkNjAxYzU1NTcxZjExYzBhZDMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQpAQCAtMjM2Miw2ICsyMzYyLDcgQEAgc3ViIEdlbmVyYXRlRW51bWVyYXRpb25JbXBs
ZW1lbnRhdGlvbkNvbnRlbnQKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiPEphdmFTY3JpcHRDb3Jl
L0pTU3RyaW5nLmg+Iik7CiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIjxKYXZhU2NyaXB0Q29yZS9K
U0NJbmxpbmVzLmg+Iik7CiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTRE9NQ29udmVydEVudW1l
cmF0aW9uLmgiKTsKKyAgICBBZGRUb0ltcGxJbmNsdWRlcygiPHd0Zi9Tb3J0ZWRBcnJheU1hcC5o
PiIpOwogCiAgICAgbXkgJHJlc3VsdCA9ICIiOwogICAgICRyZXN1bHQgLj0gIiNpZiAke2NvbmRp
dGlvbmFsU3RyaW5nfVxuXG4iIGlmICRjb25kaXRpb25hbFN0cmluZzsKQEAgLTI0MDIsMTUgKzI0
MDMsMjEgQEAgc3ViIEdlbmVyYXRlRW51bWVyYXRpb25JbXBsZW1lbnRhdGlvbkNvbnRlbnQKICAg
ICAkcmVzdWx0IC49ICJ0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8JGNsYXNzTmFtZT4gcGFyc2VF
bnVtZXJhdGlvbjwkY2xhc3NOYW1lPihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwgSlNWYWx1ZSB2YWx1ZSlcbiI7CiAgICAgJHJlc3VsdCAuPSAie1xuIjsKICAgICAkcmVzdWx0
IC49ICIgICAgYXV0byBzdHJpbmdWYWx1ZSA9IHZhbHVlLnRvV1RGU3RyaW5nKCZsZXhpY2FsR2xv
YmFsT2JqZWN0KTtcbiI7Ci0gICAgZm9yZWFjaCBteSAkdmFsdWUgKEB7JGVudW1lcmF0aW9uLT52
YWx1ZXN9KSB7CisgICAgbXkgQHNvcnRlZEVudW1lcmF0aW9uVmFsdWVzID0gc29ydCBAeyRlbnVt
ZXJhdGlvbi0+dmFsdWVzfTsKKyAgICBpZiAoJHNvcnRlZEVudW1lcmF0aW9uVmFsdWVzWzBdIGVx
ICIiKSB7CisgICAgICAgICRyZXN1bHQgLj0gIiAgICBpZiAoc3RyaW5nVmFsdWUuaXNFbXB0eSgp
KVxuIjsKKyAgICAgICAgbXkgJGVudW1lcmF0aW9uVmFsdWVOYW1lID0gR2V0RW51bWVyYXRpb25W
YWx1ZU5hbWUoc2hpZnQoQHNvcnRlZEVudW1lcmF0aW9uVmFsdWVzKSk7CisgICAgICAgICRyZXN1
bHQgLj0gIiAgICAgICAgcmV0dXJuICR7Y2xhc3NOYW1lfTo6JGVudW1lcmF0aW9uVmFsdWVOYW1l
O1xuIjsKKyAgICB9CisgICAgJHJlc3VsdCAuPSAiICAgIHN0YXRpYyBjb25zdGV4cHIgc3RkOjpw
YWlyPENvbXBhcmFibGVBU0NJSUxpdGVyYWwsICRjbGFzc05hbWU+IG1hcHBpbmdzW10gPSB7XG4i
OworICAgIGZvciBteSAkdmFsdWUgKEBzb3J0ZWRFbnVtZXJhdGlvblZhbHVlcykgewogICAgICAg
ICBteSAkZW51bWVyYXRpb25WYWx1ZU5hbWUgPSBHZXRFbnVtZXJhdGlvblZhbHVlTmFtZSgkdmFs
dWUpOwotICAgICAgICBpZiAoJHZhbHVlIGVxICIiKSB7Ci0gICAgICAgICAgICAkcmVzdWx0IC49
ICIgICAgaWYgKHN0cmluZ1ZhbHVlLmlzRW1wdHkoKSlcbiI7Ci0gICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAkcmVzdWx0IC49ICIgICAgaWYgKHN0cmluZ1ZhbHVlID09IFwiJHZhbHVlXCIp
XG4iOwotICAgICAgICB9Ci0gICAgICAgICRyZXN1bHQgLj0gIiAgICAgICAgcmV0dXJuICR7Y2xh
c3NOYW1lfTo6JHtlbnVtZXJhdGlvblZhbHVlTmFtZX07XG4iOworICAgICAgICAkcmVzdWx0IC49
ICIgICAgICAgIHsgXCIkdmFsdWVcIiwgJHtjbGFzc05hbWV9OjokZW51bWVyYXRpb25WYWx1ZU5h
bWUgfSxcbiI7CiAgICAgfQorICAgICRyZXN1bHQgLj0gIiAgICB9O1xuIjsKKyAgICAkcmVzdWx0
IC49ICIgICAgc3RhdGljIGNvbnN0ZXhwciBTb3J0ZWRBcnJheU1hcCBlbnVtZXJhdGlvbk1hcHBp
bmcgeyBtYXBwaW5ncyB9O1xuIjsKKyAgICAkcmVzdWx0IC49ICIgICAgaWYgKGF1dG8qIGVudW1l
cmF0aW9uVmFsdWUgPSBlbnVtZXJhdGlvbk1hcHBpbmcudHJ5R2V0KHN0cmluZ1ZhbHVlKTsgTElL
RUxZKGVudW1lcmF0aW9uVmFsdWUpKVxuIjsKKyAgICAkcmVzdWx0IC49ICIgICAgICAgIHJldHVy
biAqZW51bWVyYXRpb25WYWx1ZTtcbiI7CiAgICAgJHJlc3VsdCAuPSAiICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7XG4iOwogICAgICRyZXN1bHQgLj0gIn1cblxuIjsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxiYWNrSW50ZXJm
YWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
YWxsYmFja0ludGVyZmFjZS5jcHAKaW5kZXggMThkZGFmZjEzNGFmM2NjYTk4NGY1Y2U0OTlmNDkx
ODdjZTYxZTYxYS4uZWNmNzE5YmQ0NzYxYjJhMDg3OGE5YjRjN2RkY2FiYjIxN2NkMzA1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENh
bGxiYWNrSW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q2FsbGJhY2tJbnRlcmZhY2UuY3BwCkBAIC00NCw2ICs0NCw3IEBACiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5j
bHVkZSA8d3RmL1NvcnRlZEFycmF5TWFwLmg+CiAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NjksMTAgKzcwLDEzIEBAIHRlbXBsYXRlPD4gSlNTdHJpbmcqIGNvbnZlcnRFbnVtZXJhdGlvblRv
SlMoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsCiB0ZW1wbGF0ZTw+IHN0ZDo6
b3B0aW9uYWw8VGVzdENhbGxiYWNrSW50ZXJmYWNlOjpFbnVtPiBwYXJzZUVudW1lcmF0aW9uPFRl
c3RDYWxsYmFja0ludGVyZmFjZTo6RW51bT4oSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byBzdHJpbmdWYWx1ZSA9IHZhbHVlLnRv
V1RGU3RyaW5nKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoc3RyaW5nVmFsdWUgPT0g
InZhbHVlMSIpCi0gICAgICAgIHJldHVybiBUZXN0Q2FsbGJhY2tJbnRlcmZhY2U6OkVudW06OlZh
bHVlMTsKLSAgICBpZiAoc3RyaW5nVmFsdWUgPT0gInZhbHVlMiIpCi0gICAgICAgIHJldHVybiBU
ZXN0Q2FsbGJhY2tJbnRlcmZhY2U6OkVudW06OlZhbHVlMjsKKyAgICBzdGF0aWMgY29uc3RleHBy
IHN0ZDo6cGFpcjxDb21wYXJhYmxlQVNDSUlMaXRlcmFsLCBUZXN0Q2FsbGJhY2tJbnRlcmZhY2U6
OkVudW0+IG1hcHBpbmdzW10gPSB7CisgICAgICAgIHsgInZhbHVlMSIsIFRlc3RDYWxsYmFja0lu
dGVyZmFjZTo6RW51bTo6VmFsdWUxIH0sCisgICAgICAgIHsgInZhbHVlMiIsIFRlc3RDYWxsYmFj
a0ludGVyZmFjZTo6RW51bTo6VmFsdWUyIH0sCisgICAgfTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IFNvcnRlZEFycmF5TWFwIGVudW1lcmF0aW9uTWFwcGluZyB7IG1hcHBpbmdzIH07CisgICAgaWYg
KGF1dG8qIGVudW1lcmF0aW9uVmFsdWUgPSBlbnVtZXJhdGlvbk1hcHBpbmcudHJ5R2V0KHN0cmlu
Z1ZhbHVlKTsgTElLRUxZKGVudW1lcmF0aW9uVmFsdWUpKQorICAgICAgICByZXR1cm4gKmVudW1l
cmF0aW9uVmFsdWU7CiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERlZmF1bHRUb0pT
T05FbnVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3REZWZhdWx0VG9KU09ORW51bS5jcHAKaW5kZXggMTZkYzRkMTFkMDI0ZGQ4YjlmYjczY2Q2ZjZj
NDEwYjAwYWIzNTU1Ny4uOWNlM2UzZjYwZjE4MjcxM2Q4MGRlNTU0YTg3MGI5MzUzNzBiNjEyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dERlZmF1bHRUb0pTT05FbnVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RGVmYXVsdFRvSlNPTkVudW0uY3BwCkBAIC0yNCw2ICsyNCw3IEBA
CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5saW5lcy5oPgogI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Cisj
aW5jbHVkZSA8d3RmL1NvcnRlZEFycmF5TWFwLmg+CiAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNDksMTAgKzUwLDEzIEBAIHRlbXBsYXRlPD4gSlNTdHJpbmcqIGNvbnZlcnRFbnVtZXJhdGlv
blRvSlMoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsCiB0ZW1wbGF0ZTw+IHN0
ZDo6b3B0aW9uYWw8VGVzdERlZmF1bHRUb0pTT05FbnVtPiBwYXJzZUVudW1lcmF0aW9uPFRlc3RE
ZWZhdWx0VG9KU09ORW51bT4oSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpT
VmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byBzdHJpbmdWYWx1ZSA9IHZhbHVlLnRvV1RGU3RyaW5n
KCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoc3RyaW5nVmFsdWUgPT0gIkVudW1WYWx1
ZTEiKQotICAgICAgICByZXR1cm4gVGVzdERlZmF1bHRUb0pTT05FbnVtOjpFbnVtVmFsdWUxOwot
ICAgIGlmIChzdHJpbmdWYWx1ZSA9PSAiRW51bVZhbHVlMiIpCi0gICAgICAgIHJldHVybiBUZXN0
RGVmYXVsdFRvSlNPTkVudW06OkVudW1WYWx1ZTI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBzdGQ6
OnBhaXI8Q29tcGFyYWJsZUFTQ0lJTGl0ZXJhbCwgVGVzdERlZmF1bHRUb0pTT05FbnVtPiBtYXBw
aW5nc1tdID0geworICAgICAgICB7ICJFbnVtVmFsdWUxIiwgVGVzdERlZmF1bHRUb0pTT05FbnVt
OjpFbnVtVmFsdWUxIH0sCisgICAgICAgIHsgIkVudW1WYWx1ZTIiLCBUZXN0RGVmYXVsdFRvSlNP
TkVudW06OkVudW1WYWx1ZTIgfSwKKyAgICB9OworICAgIHN0YXRpYyBjb25zdGV4cHIgU29ydGVk
QXJyYXlNYXAgZW51bWVyYXRpb25NYXBwaW5nIHsgbWFwcGluZ3MgfTsKKyAgICBpZiAoYXV0byog
ZW51bWVyYXRpb25WYWx1ZSA9IGVudW1lcmF0aW9uTWFwcGluZy50cnlHZXQoc3RyaW5nVmFsdWUp
OyBMSUtFTFkoZW51bWVyYXRpb25WYWx1ZSkpCisgICAgICAgIHJldHVybiAqZW51bWVyYXRpb25W
YWx1ZTsKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCmluZGV4IDlhZmEz
N2I1ZDE4ZmZhYmIxZTE3OGE3MjhkZDNhNWU4ODdhYTcwNjIuLjU1OGE5MTZlM2U5NTdjNWQyM2E2
OGY3N2I1M2U0MjJhNzI5YmJiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC0xMDMsNiArMTAzLDcgQEAKICNp
bmNsdWRlIDx2YXJpYW50PgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UG9pbnRlclByZXBhcmF0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9Tb3J0ZWRBcnJheU1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTE1Miwx
MiArMTUzLDE0IEBAIHRlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxUZXN0T2JqOjpFbnVtVHlwZT4g
cGFyc2VFbnVtZXJhdGlvbjxUZXN0T2JqOjpFbnVtVHlwZT4oCiAgICAgYXV0byBzdHJpbmdWYWx1
ZSA9IHZhbHVlLnRvV1RGU3RyaW5nKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBpZiAoc3Ry
aW5nVmFsdWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gVGVzdE9iajo6RW51bVR5cGU6OkVt
cHR5U3RyaW5nOwotICAgIGlmIChzdHJpbmdWYWx1ZSA9PSAiZW51bVZhbHVlMSIpCi0gICAgICAg
IHJldHVybiBUZXN0T2JqOjpFbnVtVHlwZTo6RW51bVZhbHVlMTsKLSAgICBpZiAoc3RyaW5nVmFs
dWUgPT0gIkVudW1WYWx1ZTIiKQotICAgICAgICByZXR1cm4gVGVzdE9iajo6RW51bVR5cGU6OkVu
dW1WYWx1ZTI7Ci0gICAgaWYgKHN0cmluZ1ZhbHVlID09ICJFbnVtVmFsdWUzIikKLSAgICAgICAg
cmV0dXJuIFRlc3RPYmo6OkVudW1UeXBlOjpFbnVtVmFsdWUzOworICAgIHN0YXRpYyBjb25zdGV4
cHIgc3RkOjpwYWlyPENvbXBhcmFibGVBU0NJSUxpdGVyYWwsIFRlc3RPYmo6OkVudW1UeXBlPiBt
YXBwaW5nc1tdID0geworICAgICAgICB7ICJFbnVtVmFsdWUyIiwgVGVzdE9iajo6RW51bVR5cGU6
OkVudW1WYWx1ZTIgfSwKKyAgICAgICAgeyAiRW51bVZhbHVlMyIsIFRlc3RPYmo6OkVudW1UeXBl
OjpFbnVtVmFsdWUzIH0sCisgICAgICAgIHsgImVudW1WYWx1ZTEiLCBUZXN0T2JqOjpFbnVtVHlw
ZTo6RW51bVZhbHVlMSB9LAorICAgIH07CisgICAgc3RhdGljIGNvbnN0ZXhwciBTb3J0ZWRBcnJh
eU1hcCBlbnVtZXJhdGlvbk1hcHBpbmcgeyBtYXBwaW5ncyB9OworICAgIGlmIChhdXRvKiBlbnVt
ZXJhdGlvblZhbHVlID0gZW51bWVyYXRpb25NYXBwaW5nLnRyeUdldChzdHJpbmdWYWx1ZSk7IExJ
S0VMWShlbnVtZXJhdGlvblZhbHVlKSkKKyAgICAgICAgcmV0dXJuICplbnVtZXJhdGlvblZhbHVl
OwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKQEAgLTE4NiwxMCArMTg5LDEzIEBAIHRl
bXBsYXRlPD4gSlNTdHJpbmcqIGNvbnZlcnRFbnVtZXJhdGlvblRvSlMoSlNHbG9iYWxPYmplY3Qm
IGxleGljYWxHbG9iYWxPYmplY3QsCiB0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8VGVzdE9iajo6
RW51bVRyYWlsaW5nQ29tbWE+IHBhcnNlRW51bWVyYXRpb248VGVzdE9iajo6RW51bVRyYWlsaW5n
Q29tbWE+KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVl
KQogewogICAgIGF1dG8gc3RyaW5nVmFsdWUgPSB2YWx1ZS50b1dURlN0cmluZygmbGV4aWNhbEds
b2JhbE9iamVjdCk7Ci0gICAgaWYgKHN0cmluZ1ZhbHVlID09ICJlbnVtVmFsdWUxIikKLSAgICAg
ICAgcmV0dXJuIFRlc3RPYmo6OkVudW1UcmFpbGluZ0NvbW1hOjpFbnVtVmFsdWUxOwotICAgIGlm
IChzdHJpbmdWYWx1ZSA9PSAiZW51bVZhbHVlMiIpCi0gICAgICAgIHJldHVybiBUZXN0T2JqOjpF
bnVtVHJhaWxpbmdDb21tYTo6RW51bVZhbHVlMjsKKyAgICBzdGF0aWMgY29uc3RleHByIHN0ZDo6
cGFpcjxDb21wYXJhYmxlQVNDSUlMaXRlcmFsLCBUZXN0T2JqOjpFbnVtVHJhaWxpbmdDb21tYT4g
bWFwcGluZ3NbXSA9IHsKKyAgICAgICAgeyAiZW51bVZhbHVlMSIsIFRlc3RPYmo6OkVudW1UcmFp
bGluZ0NvbW1hOjpFbnVtVmFsdWUxIH0sCisgICAgICAgIHsgImVudW1WYWx1ZTIiLCBUZXN0T2Jq
OjpFbnVtVHJhaWxpbmdDb21tYTo6RW51bVZhbHVlMiB9LAorICAgIH07CisgICAgc3RhdGljIGNv
bnN0ZXhwciBTb3J0ZWRBcnJheU1hcCBlbnVtZXJhdGlvbk1hcHBpbmcgeyBtYXBwaW5ncyB9Owor
ICAgIGlmIChhdXRvKiBlbnVtZXJhdGlvblZhbHVlID0gZW51bWVyYXRpb25NYXBwaW5nLnRyeUdl
dChzdHJpbmdWYWx1ZSk7IExJS0VMWShlbnVtZXJhdGlvblZhbHVlKSkKKyAgICAgICAgcmV0dXJu
ICplbnVtZXJhdGlvblZhbHVlOwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKQEAgLTIy
NCwxMiArMjMwLDE0IEBAIHRlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxUZXN0T2JqOjpPcHRpb25h
bD4gcGFyc2VFbnVtZXJhdGlvbjxUZXN0T2JqOjpPcHRpb25hbD4oCiAgICAgYXV0byBzdHJpbmdW
YWx1ZSA9IHZhbHVlLnRvV1RGU3RyaW5nKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBpZiAo
c3RyaW5nVmFsdWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gVGVzdE9iajo6T3B0aW9uYWw6
OkVtcHR5U3RyaW5nOwotICAgIGlmIChzdHJpbmdWYWx1ZSA9PSAiT3B0aW9uYWxWYWx1ZTEiKQot
ICAgICAgICByZXR1cm4gVGVzdE9iajo6T3B0aW9uYWw6Ok9wdGlvbmFsVmFsdWUxOwotICAgIGlm
IChzdHJpbmdWYWx1ZSA9PSAiT3B0aW9uYWxWYWx1ZTIiKQotICAgICAgICByZXR1cm4gVGVzdE9i
ajo6T3B0aW9uYWw6Ok9wdGlvbmFsVmFsdWUyOwotICAgIGlmIChzdHJpbmdWYWx1ZSA9PSAiT3B0
aW9uYWxWYWx1ZTMiKQotICAgICAgICByZXR1cm4gVGVzdE9iajo6T3B0aW9uYWw6Ok9wdGlvbmFs
VmFsdWUzOworICAgIHN0YXRpYyBjb25zdGV4cHIgc3RkOjpwYWlyPENvbXBhcmFibGVBU0NJSUxp
dGVyYWwsIFRlc3RPYmo6Ok9wdGlvbmFsPiBtYXBwaW5nc1tdID0geworICAgICAgICB7ICJPcHRp
b25hbFZhbHVlMSIsIFRlc3RPYmo6Ok9wdGlvbmFsOjpPcHRpb25hbFZhbHVlMSB9LAorICAgICAg
ICB7ICJPcHRpb25hbFZhbHVlMiIsIFRlc3RPYmo6Ok9wdGlvbmFsOjpPcHRpb25hbFZhbHVlMiB9
LAorICAgICAgICB7ICJPcHRpb25hbFZhbHVlMyIsIFRlc3RPYmo6Ok9wdGlvbmFsOjpPcHRpb25h
bFZhbHVlMyB9LAorICAgIH07CisgICAgc3RhdGljIGNvbnN0ZXhwciBTb3J0ZWRBcnJheU1hcCBl
bnVtZXJhdGlvbk1hcHBpbmcgeyBtYXBwaW5ncyB9OworICAgIGlmIChhdXRvKiBlbnVtZXJhdGlv
blZhbHVlID0gZW51bWVyYXRpb25NYXBwaW5nLnRyeUdldChzdHJpbmdWYWx1ZSk7IExJS0VMWShl
bnVtZXJhdGlvblZhbHVlKSkKKyAgICAgICAgcmV0dXJuICplbnVtZXJhdGlvblZhbHVlOwogICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKQEAgLTI1OCwxMCArMjY2LDEzIEBAIHRlbXBsYXRl
PD4gSlNTdHJpbmcqIGNvbnZlcnRFbnVtZXJhdGlvblRvSlMoSlNHbG9iYWxPYmplY3QmIGxleGlj
YWxHbG9iYWxPYmplY3QsCiB0ZW1wbGF0ZTw+IHN0ZDo6b3B0aW9uYWw8QWx0ZXJuYXRlRW51bU5h
bWU+IHBhcnNlRW51bWVyYXRpb248QWx0ZXJuYXRlRW51bU5hbWU+KEpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGF1dG8gc3RyaW5nVmFs
dWUgPSB2YWx1ZS50b1dURlN0cmluZygmbGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgaWYgKHN0
cmluZ1ZhbHVlID09ICJlbnVtVmFsdWUxIikKLSAgICAgICAgcmV0dXJuIEFsdGVybmF0ZUVudW1O
YW1lOjpFbnVtVmFsdWUxOwotICAgIGlmIChzdHJpbmdWYWx1ZSA9PSAiRW51bVZhbHVlMiIpCi0g
ICAgICAgIHJldHVybiBBbHRlcm5hdGVFbnVtTmFtZTo6RW51bVZhbHVlMjsKKyAgICBzdGF0aWMg
Y29uc3RleHByIHN0ZDo6cGFpcjxDb21wYXJhYmxlQVNDSUlMaXRlcmFsLCBBbHRlcm5hdGVFbnVt
TmFtZT4gbWFwcGluZ3NbXSA9IHsKKyAgICAgICAgeyAiRW51bVZhbHVlMiIsIEFsdGVybmF0ZUVu
dW1OYW1lOjpFbnVtVmFsdWUyIH0sCisgICAgICAgIHsgImVudW1WYWx1ZTEiLCBBbHRlcm5hdGVF
bnVtTmFtZTo6RW51bVZhbHVlMSB9LAorICAgIH07CisgICAgc3RhdGljIGNvbnN0ZXhwciBTb3J0
ZWRBcnJheU1hcCBlbnVtZXJhdGlvbk1hcHBpbmcgeyBtYXBwaW5ncyB9OworICAgIGlmIChhdXRv
KiBlbnVtZXJhdGlvblZhbHVlID0gZW51bWVyYXRpb25NYXBwaW5nLnRyeUdldChzdHJpbmdWYWx1
ZSk7IExJS0VMWShlbnVtZXJhdGlvblZhbHVlKSkKKyAgICAgICAgcmV0dXJuICplbnVtZXJhdGlv
blZhbHVlOwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKQEAgLTI5MCw4ICszMDEsMTIg
QEAgdGVtcGxhdGU8PiBKU1N0cmluZyogY29udmVydEVudW1lcmF0aW9uVG9KUyhKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwKIHRlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxUZXN0
T2JqOjpFbnVtQT4gcGFyc2VFbnVtZXJhdGlvbjxUZXN0T2JqOjpFbnVtQT4oSlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byBzdHJp
bmdWYWx1ZSA9IHZhbHVlLnRvV1RGU3RyaW5nKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBp
ZiAoc3RyaW5nVmFsdWUgPT0gIkEiKQotICAgICAgICByZXR1cm4gVGVzdE9iajo6RW51bUE6OkE7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBzdGQ6OnBhaXI8Q29tcGFyYWJsZUFTQ0lJTGl0ZXJhbCwg
VGVzdE9iajo6RW51bUE+IG1hcHBpbmdzW10gPSB7CisgICAgICAgIHsgIkEiLCBUZXN0T2JqOjpF
bnVtQTo6QSB9LAorICAgIH07CisgICAgc3RhdGljIGNvbnN0ZXhwciBTb3J0ZWRBcnJheU1hcCBl
bnVtZXJhdGlvbk1hcHBpbmcgeyBtYXBwaW5ncyB9OworICAgIGlmIChhdXRvKiBlbnVtZXJhdGlv
blZhbHVlID0gZW51bWVyYXRpb25NYXBwaW5nLnRyeUdldChzdHJpbmdWYWx1ZSk7IExJS0VMWShl
bnVtZXJhdGlvblZhbHVlKSkKKyAgICAgICAgcmV0dXJuICplbnVtZXJhdGlvblZhbHVlOwogICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKQEAgLTMyMiw4ICszMzcsMTIgQEAgdGVtcGxhdGU8
PiBKU1N0cmluZyogY29udmVydEVudW1lcmF0aW9uVG9KUyhKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwKIHRlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxUZXN0T2JqOjpFbnVtQj4g
cGFyc2VFbnVtZXJhdGlvbjxUZXN0T2JqOjpFbnVtQj4oSlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byBzdHJpbmdWYWx1ZSA9IHZh
bHVlLnRvV1RGU3RyaW5nKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoc3RyaW5nVmFs
dWUgPT0gIkIiKQotICAgICAgICByZXR1cm4gVGVzdE9iajo6RW51bUI6OkI7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBzdGQ6OnBhaXI8Q29tcGFyYWJsZUFTQ0lJTGl0ZXJhbCwgVGVzdE9iajo6RW51
bUI+IG1hcHBpbmdzW10gPSB7CisgICAgICAgIHsgIkIiLCBUZXN0T2JqOjpFbnVtQjo6QiB9LAor
ICAgIH07CisgICAgc3RhdGljIGNvbnN0ZXhwciBTb3J0ZWRBcnJheU1hcCBlbnVtZXJhdGlvbk1h
cHBpbmcgeyBtYXBwaW5ncyB9OworICAgIGlmIChhdXRvKiBlbnVtZXJhdGlvblZhbHVlID0gZW51
bWVyYXRpb25NYXBwaW5nLnRyeUdldChzdHJpbmdWYWx1ZSk7IExJS0VMWShlbnVtZXJhdGlvblZh
bHVlKSkKKyAgICAgICAgcmV0dXJuICplbnVtZXJhdGlvblZhbHVlOwogICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiB9CiAKQEAgLTM1NCw4ICszNzMsMTIgQEAgdGVtcGxhdGU8PiBKU1N0cmluZyog
Y29udmVydEVudW1lcmF0aW9uVG9KUyhKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVj
dCwKIHRlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxUZXN0T2JqOjpFbnVtQz4gcGFyc2VFbnVtZXJh
dGlvbjxUZXN0T2JqOjpFbnVtQz4oSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byBzdHJpbmdWYWx1ZSA9IHZhbHVlLnRvV1RGU3Ry
aW5nKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoc3RyaW5nVmFsdWUgPT0gIkMiKQot
ICAgICAgICByZXR1cm4gVGVzdE9iajo6RW51bUM6OkM7CisgICAgc3RhdGljIGNvbnN0ZXhwciBz
dGQ6OnBhaXI8Q29tcGFyYWJsZUFTQ0lJTGl0ZXJhbCwgVGVzdE9iajo6RW51bUM+IG1hcHBpbmdz
W10gPSB7CisgICAgICAgIHsgIkMiLCBUZXN0T2JqOjpFbnVtQzo6QyB9LAorICAgIH07CisgICAg
c3RhdGljIGNvbnN0ZXhwciBTb3J0ZWRBcnJheU1hcCBlbnVtZXJhdGlvbk1hcHBpbmcgeyBtYXBw
aW5ncyB9OworICAgIGlmIChhdXRvKiBlbnVtZXJhdGlvblZhbHVlID0gZW51bWVyYXRpb25NYXBw
aW5nLnRyeUdldChzdHJpbmdWYWx1ZSk7IExJS0VMWShlbnVtZXJhdGlvblZhbHVlKSkKKyAgICAg
ICAgcmV0dXJuICplbnVtZXJhdGlvblZhbHVlOwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9
CiAKQEAgLTM4NiwxMCArNDA5LDEzIEBAIHRlbXBsYXRlPD4gSlNTdHJpbmcqIGNvbnZlcnRFbnVt
ZXJhdGlvblRvSlMoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsCiB0ZW1wbGF0
ZTw+IHN0ZDo6b3B0aW9uYWw8VGVzdE9iajo6S2luZD4gcGFyc2VFbnVtZXJhdGlvbjxUZXN0T2Jq
OjpLaW5kPihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1
ZSkKIHsKICAgICBhdXRvIHN0cmluZ1ZhbHVlID0gdmFsdWUudG9XVEZTdHJpbmcoJmxleGljYWxH
bG9iYWxPYmplY3QpOwotICAgIGlmIChzdHJpbmdWYWx1ZSA9PSAicXVpY2siKQotICAgICAgICBy
ZXR1cm4gVGVzdE9iajo6S2luZDo6UXVpY2s7Ci0gICAgaWYgKHN0cmluZ1ZhbHVlID09ICJkZWFk
IikKLSAgICAgICAgcmV0dXJuIFRlc3RPYmo6OktpbmQ6OkRlYWQ7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBzdGQ6OnBhaXI8Q29tcGFyYWJsZUFTQ0lJTGl0ZXJhbCwgVGVzdE9iajo6S2luZD4gbWFw
cGluZ3NbXSA9IHsKKyAgICAgICAgeyAiZGVhZCIsIFRlc3RPYmo6OktpbmQ6OkRlYWQgfSwKKyAg
ICAgICAgeyAicXVpY2siLCBUZXN0T2JqOjpLaW5kOjpRdWljayB9LAorICAgIH07CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBTb3J0ZWRBcnJheU1hcCBlbnVtZXJhdGlvbk1hcHBpbmcgeyBtYXBwaW5n
cyB9OworICAgIGlmIChhdXRvKiBlbnVtZXJhdGlvblZhbHVlID0gZW51bWVyYXRpb25NYXBwaW5n
LnRyeUdldChzdHJpbmdWYWx1ZSk7IExJS0VMWShlbnVtZXJhdGlvblZhbHVlKSkKKyAgICAgICAg
cmV0dXJuICplbnVtZXJhdGlvblZhbHVlOwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAK
QEAgLTQxOCwxMCArNDQ0LDEzIEBAIHRlbXBsYXRlPD4gSlNTdHJpbmcqIGNvbnZlcnRFbnVtZXJh
dGlvblRvSlMoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsCiB0ZW1wbGF0ZTw+
IHN0ZDo6b3B0aW9uYWw8VGVzdE9iajo6U2l6ZT4gcGFyc2VFbnVtZXJhdGlvbjxUZXN0T2JqOjpT
aXplPihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2YWx1ZSkK
IHsKICAgICBhdXRvIHN0cmluZ1ZhbHVlID0gdmFsdWUudG9XVEZTdHJpbmcoJmxleGljYWxHbG9i
YWxPYmplY3QpOwotICAgIGlmIChzdHJpbmdWYWx1ZSA9PSAic21hbGwiKQotICAgICAgICByZXR1
cm4gVGVzdE9iajo6U2l6ZTo6U21hbGw7Ci0gICAgaWYgKHN0cmluZ1ZhbHVlID09ICJtdWNoLW11
Y2gtbGFyZ2VyIikKLSAgICAgICAgcmV0dXJuIFRlc3RPYmo6OlNpemU6Ok11Y2hNdWNoTGFyZ2Vy
OworICAgIHN0YXRpYyBjb25zdGV4cHIgc3RkOjpwYWlyPENvbXBhcmFibGVBU0NJSUxpdGVyYWws
IFRlc3RPYmo6OlNpemU+IG1hcHBpbmdzW10gPSB7CisgICAgICAgIHsgIm11Y2gtbXVjaC1sYXJn
ZXIiLCBUZXN0T2JqOjpTaXplOjpNdWNoTXVjaExhcmdlciB9LAorICAgICAgICB7ICJzbWFsbCIs
IFRlc3RPYmo6OlNpemU6OlNtYWxsIH0sCisgICAgfTsKKyAgICBzdGF0aWMgY29uc3RleHByIFNv
cnRlZEFycmF5TWFwIGVudW1lcmF0aW9uTWFwcGluZyB7IG1hcHBpbmdzIH07CisgICAgaWYgKGF1
dG8qIGVudW1lcmF0aW9uVmFsdWUgPSBlbnVtZXJhdGlvbk1hcHBpbmcudHJ5R2V0KHN0cmluZ1Zh
bHVlKTsgTElLRUxZKGVudW1lcmF0aW9uVmFsdWUpKQorICAgICAgICByZXR1cm4gKmVudW1lcmF0
aW9uVmFsdWU7CiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIApAQCAtNDUwLDEwICs0Nzks
MTMgQEAgdGVtcGxhdGU8PiBKU1N0cmluZyogY29udmVydEVudW1lcmF0aW9uVG9KUyhKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwKIHRlbXBsYXRlPD4gc3RkOjpvcHRpb25hbDxU
ZXN0T2JqOjpDb25maWRlbmNlPiBwYXJzZUVudW1lcmF0aW9uPFRlc3RPYmo6OkNvbmZpZGVuY2U+
KEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewog
ICAgIGF1dG8gc3RyaW5nVmFsdWUgPSB2YWx1ZS50b1dURlN0cmluZygmbGV4aWNhbEdsb2JhbE9i
amVjdCk7Ci0gICAgaWYgKHN0cmluZ1ZhbHVlID09ICJoaWdoIikKLSAgICAgICAgcmV0dXJuIFRl
c3RPYmo6OkNvbmZpZGVuY2U6OkhpZ2g7Ci0gICAgaWYgKHN0cmluZ1ZhbHVlID09ICJraW5kYS1s
b3ciKQotICAgICAgICByZXR1cm4gVGVzdE9iajo6Q29uZmlkZW5jZTo6S2luZGFMb3c7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBzdGQ6OnBhaXI8Q29tcGFyYWJsZUFTQ0lJTGl0ZXJhbCwgVGVzdE9i
ajo6Q29uZmlkZW5jZT4gbWFwcGluZ3NbXSA9IHsKKyAgICAgICAgeyAiaGlnaCIsIFRlc3RPYmo6
OkNvbmZpZGVuY2U6OkhpZ2ggfSwKKyAgICAgICAgeyAia2luZGEtbG93IiwgVGVzdE9iajo6Q29u
ZmlkZW5jZTo6S2luZGFMb3cgfSwKKyAgICB9OworICAgIHN0YXRpYyBjb25zdGV4cHIgU29ydGVk
QXJyYXlNYXAgZW51bWVyYXRpb25NYXBwaW5nIHsgbWFwcGluZ3MgfTsKKyAgICBpZiAoYXV0byog
ZW51bWVyYXRpb25WYWx1ZSA9IGVudW1lcmF0aW9uTWFwcGluZy50cnlHZXQoc3RyaW5nVmFsdWUp
OyBMSUtFTFkoZW51bWVyYXRpb25WYWx1ZSkpCisgICAgICAgIHJldHVybiAqZW51bWVyYXRpb25W
YWx1ZTsKICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RhbmRhbG9uZURpY3Rpb25h
cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0
YW5kYWxvbmVEaWN0aW9uYXJ5LmNwcAppbmRleCA3NWYyNjk5ZjJmZDk1ZTQ5NDQwYzRiNmI4MTBj
MWVkMThhMTJhMTc0Li4xZjdhOWJiN2Q0OTczZmZhOTJiYWJkMWU0M2Q1ZmNkM2JiOGIwNGY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U3RhbmRhbG9uZURpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTdGFuZGFsb25lRGljdGlvbmFyeS5jcHAKQEAgLTM4LDYgKzM4
LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9PYmplY3RDb25zdHJ1Y3Rvci5oPgogI2lu
Y2x1ZGUgPHZhcmlhbnQ+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVk
ZSA8d3RmL1NvcnRlZEFycmF5TWFwLmg+CiAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzUw
LDEwICszNTEsMTMgQEAgdGVtcGxhdGU8PiBKU1N0cmluZyogY29udmVydEVudW1lcmF0aW9uVG9K
UyhKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwKIHRlbXBsYXRlPD4gc3RkOjpv
cHRpb25hbDxUZXN0U3RhbmRhbG9uZURpY3Rpb25hcnk6OkVudW1JblN0YW5kYWxvbmVEaWN0aW9u
YXJ5RmlsZT4gcGFyc2VFbnVtZXJhdGlvbjxUZXN0U3RhbmRhbG9uZURpY3Rpb25hcnk6OkVudW1J
blN0YW5kYWxvbmVEaWN0aW9uYXJ5RmlsZT4oSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byBzdHJpbmdWYWx1ZSA9IHZhbHVlLnRv
V1RGU3RyaW5nKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICBpZiAoc3RyaW5nVmFsdWUgPT0g
ImVudW1WYWx1ZTEiKQotICAgICAgICByZXR1cm4gVGVzdFN0YW5kYWxvbmVEaWN0aW9uYXJ5OjpF
bnVtSW5TdGFuZGFsb25lRGljdGlvbmFyeUZpbGU6OkVudW1WYWx1ZTE7Ci0gICAgaWYgKHN0cmlu
Z1ZhbHVlID09ICJlbnVtVmFsdWUyIikKLSAgICAgICAgcmV0dXJuIFRlc3RTdGFuZGFsb25lRGlj
dGlvbmFyeTo6RW51bUluU3RhbmRhbG9uZURpY3Rpb25hcnlGaWxlOjpFbnVtVmFsdWUyOworICAg
IHN0YXRpYyBjb25zdGV4cHIgc3RkOjpwYWlyPENvbXBhcmFibGVBU0NJSUxpdGVyYWwsIFRlc3RT
dGFuZGFsb25lRGljdGlvbmFyeTo6RW51bUluU3RhbmRhbG9uZURpY3Rpb25hcnlGaWxlPiBtYXBw
aW5nc1tdID0geworICAgICAgICB7ICJlbnVtVmFsdWUxIiwgVGVzdFN0YW5kYWxvbmVEaWN0aW9u
YXJ5OjpFbnVtSW5TdGFuZGFsb25lRGljdGlvbmFyeUZpbGU6OkVudW1WYWx1ZTEgfSwKKyAgICAg
ICAgeyAiZW51bVZhbHVlMiIsIFRlc3RTdGFuZGFsb25lRGljdGlvbmFyeTo6RW51bUluU3RhbmRh
bG9uZURpY3Rpb25hcnlGaWxlOjpFbnVtVmFsdWUyIH0sCisgICAgfTsKKyAgICBzdGF0aWMgY29u
c3RleHByIFNvcnRlZEFycmF5TWFwIGVudW1lcmF0aW9uTWFwcGluZyB7IG1hcHBpbmdzIH07Cisg
ICAgaWYgKGF1dG8qIGVudW1lcmF0aW9uVmFsdWUgPSBlbnVtZXJhdGlvbk1hcHBpbmcudHJ5R2V0
KHN0cmluZ1ZhbHVlKTsgTElLRUxZKGVudW1lcmF0aW9uVmFsdWUpKQorICAgICAgICByZXR1cm4g
KmVudW1lcmF0aW9uVmFsdWU7CiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0YW5k
YWxvbmVFbnVtZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U3RhbmRhbG9uZUVudW1lcmF0aW9uLmNwcAppbmRleCA0NmE2MjQ0OWY1NmE0
NjAwYWIxNmYzYmExNjQ1ODgyNmE5YjdjMjE2Li40MjY4OWNkNTczODY0MTFhZDljYmEzNjNiZTEz
MzZmY2ZiODk4NGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U3RhbmRhbG9uZUVudW1lcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RhbmRhbG9uZUVudW1lcmF0aW9u
LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGlu
ZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1N0cmluZy5oPgogI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9Tb3J0ZWRBcnJheU1hcC5oPgogCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTUyLDEwICs1MywxMyBAQCB0ZW1wbGF0ZTw+IEpTU3Ry
aW5nKiBjb252ZXJ0RW51bWVyYXRpb25Ub0pTKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LAogdGVtcGxhdGU8PiBzdGQ6Om9wdGlvbmFsPFRlc3RTdGFuZGFsb25lRW51bWVyYXRp
b24+IHBhcnNlRW51bWVyYXRpb248VGVzdFN0YW5kYWxvbmVFbnVtZXJhdGlvbj4oSlNHbG9iYWxP
YmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgYXV0byBz
dHJpbmdWYWx1ZSA9IHZhbHVlLnRvV1RGU3RyaW5nKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAg
ICBpZiAoc3RyaW5nVmFsdWUgPT0gImVudW1WYWx1ZTEiKQotICAgICAgICByZXR1cm4gVGVzdFN0
YW5kYWxvbmVFbnVtZXJhdGlvbjo6RW51bVZhbHVlMTsKLSAgICBpZiAoc3RyaW5nVmFsdWUgPT0g
ImVudW1WYWx1ZTIiKQotICAgICAgICByZXR1cm4gVGVzdFN0YW5kYWxvbmVFbnVtZXJhdGlvbjo6
RW51bVZhbHVlMjsKKyAgICBzdGF0aWMgY29uc3RleHByIHN0ZDo6cGFpcjxDb21wYXJhYmxlQVND
SUlMaXRlcmFsLCBUZXN0U3RhbmRhbG9uZUVudW1lcmF0aW9uPiBtYXBwaW5nc1tdID0geworICAg
ICAgICB7ICJlbnVtVmFsdWUxIiwgVGVzdFN0YW5kYWxvbmVFbnVtZXJhdGlvbjo6RW51bVZhbHVl
MSB9LAorICAgICAgICB7ICJlbnVtVmFsdWUyIiwgVGVzdFN0YW5kYWxvbmVFbnVtZXJhdGlvbjo6
RW51bVZhbHVlMiB9LAorICAgIH07CisgICAgc3RhdGljIGNvbnN0ZXhwciBTb3J0ZWRBcnJheU1h
cCBlbnVtZXJhdGlvbk1hcHBpbmcgeyBtYXBwaW5ncyB9OworICAgIGlmIChhdXRvKiBlbnVtZXJh
dGlvblZhbHVlID0gZW51bWVyYXRpb25NYXBwaW5nLnRyeUdldChzdHJpbmdWYWx1ZSk7IExJS0VM
WShlbnVtZXJhdGlvblZhbHVlKSkKKyAgICAgICAgcmV0dXJuICplbnVtZXJhdGlvblZhbHVlOwog
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>