<?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>119410</bug_id>
          
          <creation_ts>2013-08-01 14:03:48 -0700</creation_ts>
          <short_desc>Fixed expected test results for run-bindings-tests after r153532, r153537.</short_desc>
          <delta_ts>2013-08-01 14:12:58 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>alecflett</cc>
    
    <cc>barraclough</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jsbell</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>913858</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-08-01 14:03:48 -0700</bug_when>
    <thetext>r153532, r153537 changed the generated bindings code.  We should update the expected test results so that the WebCore bindings test will pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913860</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-08-01 14:04:18 -0700</bug_when>
    <thetext>The bindings generation code was changed in https://bugs.webkit.org/show_bug.cgi?id=119343.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913863</commentid>
    <comment_count>2</comment_count>
      <attachid>207951</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-08-01 14:07:23 -0700</bug_when>
    <thetext>Created attachment 207951
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913864</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2013-08-01 14:12:58 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r153607: &lt;http://trac.webkit.org/changeset/153607&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207951</attachid>
            <date>2013-08-01 14:07:23 -0700</date>
            <delta_ts>2013-08-01 14:09:45 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>bug-119410.patch</filename>
            <type>text/plain</type>
            <size>66288</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MzYwNCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDgwIEBACisyMDEzLTA4LTAxICBNYXJrIExh
bSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBGaXhlZCBleHBlY3RlZCB0ZXN0IHJl
c3VsdHMgZm9yIHJ1bi1iaW5kaW5ncy10ZXN0cyBhZnRlciByMTUzNTMyLCByMTUzNTM3LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5NDEwLgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cy4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0Zsb2F0NjRBcnJheS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU0Zsb2F0NjRBcnJheUNvbnN0cnVjdG9yOjpnZXRPd25Q
cm9wZXJ0eVNsb3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNGbG9hdDY0QXJyYXlQcm90b3R5cGU6
OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU0Zsb2F0NjRBcnJheTo6
Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRmxvYXQ2NEFycmF5Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNGbG9hdDY0QXJyYXkuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEFj
dGl2ZURPTU9iamVjdENvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAo
V2ViQ29yZTo6SlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNs
b3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0QWN0aXZlRE9NT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3QpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3Rp
dmVET01PYmplY3QuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKFdlYkNv
cmU6OkpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmdldE93blByb3Bl
cnR5U2xvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6Z2V0
T3duUHJvcGVydHlTbG90QnlJbmRleCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlT
bG90KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25z
dHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVu
dFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RFdmVudFRhcmdldENvbnN0cnVj
dG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RXZlbnRU
YXJnZXRQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChXZWJDb3JlOjpK
U1Rlc3RFdmVudFRhcmdldDo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKFdlYkNvcmU6
OkpTVGVzdEV2ZW50VGFyZ2V0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0RXhjZXB0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3Qp
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0SW50ZXJmYWNlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lcjo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJv
cGVydHlTbG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE5hbWVkQ29uc3RydWN0b3I6Omdl
dE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROb2RlQ29uc3RydWN0
b3I6OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3ROb2RlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROb2RlLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RPYmpDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJv
cGVydHlTbG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9ialByb3RvdHlwZTo6Z2V0T3du
UHJvcGVydHlTbG90KToKKyAgICAgICAgKFdlYkNvcmU6OkpTVGVzdE9iajo6Z2V0T3duUHJvcGVy
dHlTbG90KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc0NvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoV2ViQ29yZTo6
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6Z2V0T3duUHJvcGVydHlTbG90KToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
cy5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdCk6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6
OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU1Rlc3RUeXBlZGVmc0NvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNUZXN0VHlwZWRlZnNQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdCk6
CisgICAgICAgIChXZWJDb3JlOjpKU1Rlc3RUeXBlZGVmczo6Z2V0T3duUHJvcGVydHlTbG90KToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuaDoKKwog
MjAxMy0wOC0wMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ29weSBlZ2xwbGF0Zm9ybS5oIHRvIGJlIGZvdW5kIGJ5IFdpbmRvd3MgV2ViR0wg
YnVpbGQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNG
bG9hdDY0QXJyYXkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU0Zsb2F0NjRBcnJheS5jcHAJKHJldmlzaW9uIDE1MzYwNCkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0Zsb2F0NjRBcnJheS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTkzLDkgKzkzLDkgQEAgdm9pZCBKU0Zsb2F0NjRBcnJheUNvbnN0
cnVjdG9yOjpmaW5pc2hDcgogICAgIHB1dERpcmVjdChleGVjLT52bSgpLCBleGVjLT5wcm9wZXJ0
eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9u
dEVudW0pOwogfQogCi1ib29sIEpTRmxvYXQ2NEFycmF5Q29uc3RydWN0b3I6OmdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU0Zsb2F0NjRBcnJheUNvbnN0cnVj
dG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVj
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAg
cmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU0Zsb2F0NjRBcnJheUNvbnN0cnVjdG9yLCBKU0RP
TVdyYXBwZXI+KGV4ZWMsIGdldEpTRmxvYXQ2NEFycmF5Q29uc3RydWN0b3JUYWJsZShleGVjKSwg
anNDYXN0PEpTRmxvYXQ2NEFycmF5Q29uc3RydWN0b3IqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBz
bG90KTsKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTRmxvYXQ2NEFycmF5Q29uc3Ry
dWN0b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgZ2V0SlNGbG9hdDY0QXJyYXlDb25zdHJ1Y3RvclRh
YmxlKGV4ZWMpLCBqc0Nhc3Q8SlNGbG9hdDY0QXJyYXlDb25zdHJ1Y3Rvcio+KG9iamVjdCksIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNGbG9hdDY0QXJyYXlDb25zdHJ1Y3Rvcjo6
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yKQpAQCAtMTMxLDkgKzEzMSw5IEBAIEpTT2JqZWN0KiBKU0Zsb2F0NjRBcnJheVByb3RvdHlw
ZTo6c2VsZigKICAgICByZXR1cm4gZ2V0RE9NUHJvdG90eXBlPEpTRmxvYXQ2NEFycmF5PihleGVj
LCBnbG9iYWxPYmplY3QpOwogfQogCi1ib29sIEpTRmxvYXQ2NEFycmF5UHJvdG90eXBlOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNGbG9hdDY0QXJyYXlQ
cm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
LSAgICBKU0Zsb2F0NjRBcnJheVByb3RvdHlwZSogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0Zsb2F0
NjRBcnJheVByb3RvdHlwZSo+KGNlbGwpOworICAgIEpTRmxvYXQ2NEFycmF5UHJvdG90eXBlKiB0
aGlzT2JqZWN0ID0ganNDYXN0PEpTRmxvYXQ2NEFycmF5UHJvdG90eXBlKj4ob2JqZWN0KTsKICAg
ICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEpTT2JqZWN0PihleGVjLCBnZXRKU0Zsb2F0
NjRBcnJheVByb3RvdHlwZVRhYmxlKGV4ZWMpLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOwogfQogCkBAIC0xNzAsOSArMTcwLDkgQEAgSlNPYmplY3QqIEpTRmxvYXQ2NEFycmF5Ojpj
cmVhdGVQcm90b3R5cAogICAgIHJldHVybiBKU0Zsb2F0NjRBcnJheVByb3RvdHlwZTo6Y3JlYXRl
KGV4ZWMtPnZtKCksIGdsb2JhbE9iamVjdCwgSlNGbG9hdDY0QXJyYXlQcm90b3R5cGU6OmNyZWF0
ZVN0cnVjdHVyZShleGVjLT52bSgpLCBnbG9iYWxPYmplY3QsIEpTQXJyYXlCdWZmZXJWaWV3UHJv
dG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCkpKTsKIH0KIAotYm9vbCBKU0Zsb2F0NjRB
cnJheTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTRmxv
YXQ2NEFycmF5OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7
Ci0gICAgSlNGbG9hdDY0QXJyYXkqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNGbG9hdDY0QXJyYXkq
PihjZWxsKTsKKyAgICBKU0Zsb2F0NjRBcnJheSogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0Zsb2F0
NjRBcnJheSo+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2Jq
ZWN0LCAmc19pbmZvKTsKICAgICB1bnNpZ25lZCBpbmRleCA9IHByb3BlcnR5TmFtZS5hc0luZGV4
KCk7CiAgICAgaWYgKGluZGV4ICE9IFByb3BlcnR5TmFtZTo6Tm90QW5JbmRleCAmJiBpbmRleCA8
IHN0YXRpY19jYXN0PEZsb2F0NjRBcnJheSo+KHRoaXNPYmplY3QtPmltcGwoKSktPmxlbmd0aCgp
KSB7CkBAIC0xOTQsOSArMTk0LDkgQEAgYm9vbCBKU0Zsb2F0NjRBcnJheTo6Z2V0T3duUHJvcGVy
dHlEZXNjcgogICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZURlc2NyaXB0b3I8SlNGbG9hdDY0QXJy
YXksIEJhc2U+KGV4ZWMsIGdldEpTRmxvYXQ2NEFycmF5VGFibGUoZXhlYyksIHRoaXNPYmplY3Qs
IHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKLWJvb2wgSlNGbG9hdDY0QXJyYXk6Omdl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVu
c2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTRmxvYXQ2NEFycmF5Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhl
YywgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBKU0Zsb2F0NjRB
cnJheSogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0Zsb2F0NjRBcnJheSo+KGNlbGwpOworICAgIEpT
RmxvYXQ2NEFycmF5KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTRmxvYXQ2NEFycmF5Kj4ob2JqZWN0
KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pOwog
ICAgIGlmIChpbmRleCA8IHN0YXRpY19jYXN0PEZsb2F0NjRBcnJheSo+KHRoaXNPYmplY3QtPmlt
cGwoKSktPmxlbmd0aCgpKSB7CiAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdC0+Z2V0
QnlJbmRleChleGVjLCBpbmRleCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTRmxvYXQ2NEFycmF5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTRmxvYXQ2NEFycmF5LmgJKHJldmlzaW9uIDE1
MzYwNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0Zsb2F0
NjRBcnJheS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw5ICszOSw5IEBAIHB1YmxpYzoKICAgICB9
CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUs
IEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90
KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6
OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRv
cihKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlND
OjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKLSAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90QnlJbmRleChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBw
cm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZvaWQgcHV0KEpT
Qzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU1Zh
bHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyB2b2lkIHB1dEJ5SW5kZXgo
SlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlND
OjpKU1ZhbHVlLCBib29sIHNob3VsZFRocm93KTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFz
c0luZm8gc19pbmZvOwpAQCAtODMsNyArODMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3Rh
dGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKLSAgICBzdGF0aWMgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlO
YW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwg
SlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUs
IEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7CkBAIC0xMTAsNyArMTEwLDcgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9w
ZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlO
YW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5
RGVzY3JpcHRvcihKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5
TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpD
bGFzc0luZm8gc19pbmZvOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0
dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6
SlNWYWx1ZSBwcm90b3R5cGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNw
cAkocmV2aXNpb24gMTUzNjA0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2LDkg
KzY2LDkgQEAgdm9pZCBKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3Rvcjo6ZgogICAgIHB1
dERpcmVjdChleGVjLT52bSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJl
cigwKSwgUmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0pOwogfQogCi1ib29sIEpTVGVz
dEFjdGl2ZURPTU9iamVjdENvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3I6OmdldE93
blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0
U3RhdGljVmFsdWVTbG90PEpTVGVzdEFjdGl2ZURPTU9iamVjdENvbnN0cnVjdG9yLCBKU0RPTVdy
YXBwZXI+KGV4ZWMsICZKU1Rlc3RBY3RpdmVET01PYmplY3RDb25zdHJ1Y3RvclRhYmxlLCBqc0Nh
c3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0b3IqPihjZWxsKSwgcHJvcGVydHlOYW1l
LCBzbG90KTsKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdEFjdGl2ZURPTU9i
amVjdENvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3RBY3RpdmVET01PYmpl
Y3RDb25zdHJ1Y3RvclRhYmxlLCBqc0Nhc3Q8SlNUZXN0QWN0aXZlRE9NT2JqZWN0Q29uc3RydWN0
b3IqPihvYmplY3QpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdEFjdGl2
ZURPTU9iamVjdENvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3Qq
IG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCkBAIC05Myw5ICs5Myw5IEBAIEpTT2JqZWN0KiBK
U1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGUKICAgICByZXR1cm4gZ2V0RE9NUHJvdG90eXBl
PEpTVGVzdEFjdGl2ZURPTU9iamVjdD4oZXhlYywgZ2xvYmFsT2JqZWN0KTsKIH0KIAotYm9vbCBK
U1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQorYm9vbCBKU1Rlc3RBY3RpdmVET01PYmplY3RQcm90b3R5cGU6OmdldE93
blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBKU1Rlc3RBY3Rp
dmVET01PYmplY3RQcm90b3R5cGUqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0QWN0aXZlRE9N
T2JqZWN0UHJvdG90eXBlKj4oY2VsbCk7CisgICAgSlNUZXN0QWN0aXZlRE9NT2JqZWN0UHJvdG90
eXBlKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZSo+
KG9iamVjdCk7CiAgICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxKU09iamVjdD4oZXhl
YywgJkpTVGVzdEFjdGl2ZURPTU9iamVjdFByb3RvdHlwZVRhYmxlLCB0aGlzT2JqZWN0LCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwogfQogCkBAIC0xMzUsOSArMTM1LDkgQEAgSlNUZXN0QWN0aXZlRE9N
T2JqZWN0Ojp+SlNUZXN0QWN0aXZlRE9NTwogICAgIHJlbGVhc2VJbXBsSWZOb3ROdWxsKCk7CiB9
CiAKLWJvb2wgSlNUZXN0QWN0aXZlRE9NT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxs
KiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0QWN0aXZlRE9NT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgSlNUZXN0QWN0aXZlRE9NT2Jq
ZWN0KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEFjdGl2ZURPTU9iamVjdCo+KGNlbGwpOwor
ICAgIEpTVGVzdEFjdGl2ZURPTU9iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RBY3Rp
dmVET01PYmplY3QqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhp
c09iamVjdCwgJnNfaW5mbyk7CiAgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RB
Y3RpdmVET01PYmplY3QsIEJhc2U+KGV4ZWMsICZKU1Rlc3RBY3RpdmVET01PYmplY3RUYWJsZSwg
dGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0
aXZlRE9NT2JqZWN0LmgJKHJldmlzaW9uIDE1MzYwNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuaAkod29ya2luZyBjb3B5
KQpAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNP
YmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKTsKLSAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwor
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBz
dGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpKU09iamVjdCosIEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7
CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAgIH5KU1Rlc3RBY3Rp
dmVET01PYmplY3QoKTsKQEAgLTEwMyw3ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAg
c3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKLSAgICBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVy
dHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFt
ZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5h
bWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKICAgICB7CkBAIC0xMzAsNyArMTMwLDcg
QEAgcHVibGljOgogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIAotICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQ
cm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVy
dHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3Bl
cnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlND
OjpDbGFzc0luZm8gc19pbmZvOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Qzo6SlNWYWx1ZSBwcm90b3R5cGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdl
dHRlci5jcHAJKHJldmlzaW9uIDE1MzYwNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY0LDkgKzY0LDkgQEAgdm9pZCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9y
OgogICAgIHB1dERpcmVjdChleGVjLT52bSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3Ro
LCBqc051bWJlcigwKSwgUmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0pOwogfQogCi1i
b29sIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0
cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBl
eGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0g
ICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0
cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0
cnVjdG9yVGFibGUsIGpzQ2FzdDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yKj4o
Y2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xv
dDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMs
ICZKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yVGFibGUsIGpzQ2FzdDxKU1Rlc3RD
dXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yKj4ob2JqZWN0KSwgcHJvcGVydHlOYW1lLCBzbG90
KTsKIH0KIAogYm9vbCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yOjpnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCkBA
IC05MCw5ICs5MCw5IEBAIEpTT2JqZWN0KiBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHkK
ICAgICByZXR1cm4gZ2V0RE9NUHJvdG90eXBlPEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyPihleGVj
LCBnbG9iYWxPYmplY3QpOwogfQogCi1ib29sIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90
eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGU6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCog
b2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKLSAgICBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZSog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZSo+KGNl
bGwpOworICAgIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlKiB0aGlzT2JqZWN0ID0g
anNDYXN0PEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlKj4ob2JqZWN0KTsKICAgICBy
ZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEpTT2JqZWN0PihleGVjLCAmSlNUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXJQcm90b3R5cGVUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90
KTsKIH0KIApAQCAtMTMyLDkgKzEzMiw5IEBAIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjp+SlNU
ZXN0Q3VzdG9tTmEKICAgICByZWxlYXNlSW1wbElmTm90TnVsbCgpOwogfQogCi1ib29sIEpTVGVz
dEN1c3RvbU5hbWVkR2V0dGVyOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xv
dCkKK2Jvb2wgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmdldE93blByb3BlcnR5U2xvdChKU09i
amVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBKU1Rlc3RDdXN0b21OYW1lZEdldHRlciogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlcio+KGNlbGwpOworICAgIEpT
VGVzdEN1c3RvbU5hbWVkR2V0dGVyKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEN1c3RvbU5h
bWVkR2V0dGVyKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNP
YmplY3QsICZzX2luZm8pOwogICAgIGlmIChjYW5HZXRJdGVtc0Zvck5hbWUoZXhlYywgc3RhdGlj
X2Nhc3Q8VGVzdEN1c3RvbU5hbWVkR2V0dGVyKj4odGhpc09iamVjdC0+aW1wbCgpKSwgcHJvcGVy
dHlOYW1lKSkgewogICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCB0aGlzT2JqZWN0
LT5uYW1lR2V0dGVyKTsKQEAgLTE1Niw5ICsxNTYsOSBAQCBib29sIEpTVGVzdEN1c3RvbU5hbWVk
R2V0dGVyOjpnZXRPd25Qcm9wCiAgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlRGVzY3JpcHRvcjxK
U1Rlc3RDdXN0b21OYW1lZEdldHRlciwgQmFzZT4oZXhlYywgJkpTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvcik7CiB9CiAKLWJv
b2wgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlND
ZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpCitib29sIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpnZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgaW5kZXgs
IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBKU1Rlc3RDdXN0b21OYW1lZEdldHRlciogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlcio+KGNlbGwpOworICAgIEpT
VGVzdEN1c3RvbU5hbWVkR2V0dGVyKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEN1c3RvbU5h
bWVkR2V0dGVyKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNP
YmplY3QsICZzX2luZm8pOwogICAgIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUgPSBJZGVudGlm
aWVyOjpmcm9tKGV4ZWMsIGluZGV4KTsKICAgICBpZiAoY2FuR2V0SXRlbXNGb3JOYW1lKGV4ZWMs
IHN0YXRpY19jYXN0PFRlc3RDdXN0b21OYW1lZEdldHRlcio+KHRoaXNPYmplY3QtPmltcGwoKSks
IHByb3BlcnR5TmFtZSkpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5o
CShyZXZpc2lvbiAxNTM2MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsOSAr
NDAsOSBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0
ZVByb3RvdHlwZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBz
dGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBi
b29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7Ci0gICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0
YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHN0
YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDOjpKU09iamVjdCosIEpTQzo6
RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwog
ICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+SlNUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXIoKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwpA
QCAtMTA3LDcgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgSlND
OjpDbGFzc0luZm8gc19pbmZvOwotICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChK
U0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJv
cGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNP
YmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVy
ZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpT
VmFsdWUgcHJvdG90eXBlKQogICAgIHsKQEAgLTEzNCw3ICsxMzQsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBwdHI7CiAgICAgfQogCi0gICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlND
OjpQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
OjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJv
cGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlBy
b3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2lu
Zm87CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYg
dm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3Rv
dHlwZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9u
IDE1MzYwNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudENvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDkgKzEwNCw5IEBA
IHZvaWQgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yOjoKICAgICBwdXREaXJlY3Qo
ZXhlYy0+dm0oKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoMSksIFJl
YWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTsKIH0KIAotYm9vbCBKU1Rlc3RFdmVudENv
bnN0cnVjdG9yQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBz
bG90KQorYm9vbCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3I6OmdldE93blByb3Bl
cnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGlj
VmFsdWVTbG90PEpTVGVzdEV2ZW50Q29uc3RydWN0b3JDb25zdHJ1Y3RvciwgSlNET01XcmFwcGVy
PihleGVjLCAmSlNUZXN0RXZlbnRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yVGFibGUsIGpzQ2FzdDxK
U1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0b3IqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBz
bG90KTsKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdEV2ZW50Q29uc3RydWN0
b3JDb25zdHJ1Y3RvciwgSlNET01XcmFwcGVyPihleGVjLCAmSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ckNvbnN0cnVjdG9yVGFibGUsIGpzQ2FzdDxKU1Rlc3RFdmVudENvbnN0cnVjdG9yQ29uc3RydWN0
b3IqPihvYmplY3QpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdEV2ZW50
Q29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0
KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJv
cGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpAQCAtMTY1LDkgKzE2NSw5IEBAIEpTVGVzdEV2
ZW50Q29uc3RydWN0b3I6On5KU1Rlc3RFdmVudENvbnMKICAgICByZWxlYXNlSW1wbElmTm90TnVs
bCgpOwogfQogCi1ib29sIEpTVGVzdEV2ZW50Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU1Rlc3RFdmVudENvbnN0cnVjdG9yOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgSlNUZXN0RXZl
bnRDb25zdHJ1Y3RvciogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RFdmVudENvbnN0cnVjdG9y
Kj4oY2VsbCk7CisgICAgSlNUZXN0RXZlbnRDb25zdHJ1Y3RvciogdGhpc09iamVjdCA9IGpzQ2Fz
dDxKU1Rlc3RFdmVudENvbnN0cnVjdG9yKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pOwogICAgIHJldHVybiBnZXRTdGF0aWNWYWx1
ZVNsb3Q8SlNUZXN0RXZlbnRDb25zdHJ1Y3RvciwgQmFzZT4oZXhlYywgJkpTVGVzdEV2ZW50Q29u
c3RydWN0b3JUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0
cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuaAkocmV2aXNpb24gMTUzNjA0KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0
b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAg
ICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNHbG9iYWxPYmplY3QqKTsKLSAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6
OlByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6
OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9w
ZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlND
OjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJv
cGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCop
OwogICAgIH5KU1Rlc3RFdmVudENvbnN0cnVjdG9yKCk7CkBAIC0xMzAsNyArMTMwLDcgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0
eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1l
LCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFt
ZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFz
c0luZm8gc19pbmZvOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNW
YWx1ZSBwcm90b3R5cGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAJKHJldmlzaW9u
IDE1MzYwNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFdmVudFRhcmdldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcwLDkgKzcwLDkgQEAgdm9pZCBK
U1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yOjpmaW5pcwogICAgIHB1dERpcmVjdChleGVjLT52
bSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigwKSwgUmVhZE9ubHkg
fCBEb250RGVsZXRlIHwgRG9udEVudW0pOwogfQogCi1ib29sIEpTVGVzdEV2ZW50VGFyZ2V0Q29u
c3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBK
U1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3Qq
IG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RF
dmVudFRhcmdldENvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3RFdmVudFRh
cmdldENvbnN0cnVjdG9yVGFibGUsIGpzQ2FzdDxKU1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9y
Kj4oY2VsbCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVl
U2xvdDxKU1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZK
U1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yVGFibGUsIGpzQ2FzdDxKU1Rlc3RFdmVudFRhcmdl
dENvbnN0cnVjdG9yKj4ob2JqZWN0KSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBK
U1Rlc3RFdmVudFRhcmdldENvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNP
YmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCkBAIC05OSw5ICs5OSw5IEBAIEpTT2Jq
ZWN0KiBKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlwZTo6c2UKICAgICByZXR1cm4gZ2V0RE9NUHJv
dG90eXBlPEpTVGVzdEV2ZW50VGFyZ2V0PihleGVjLCBnbG9iYWxPYmplY3QpOwogfQogCi1ib29s
IEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0RXZlbnRUYXJnZXRQcm90b3R5cGU6OmdldE93blByb3Bl
cnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBKU1Rlc3RFdmVudFRhcmdl
dFByb3RvdHlwZSogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RFdmVudFRhcmdldFByb3RvdHlw
ZSo+KGNlbGwpOworICAgIEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlKiB0aGlzT2JqZWN0ID0g
anNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0UHJvdG90eXBlKj4ob2JqZWN0KTsKICAgICByZXR1cm4g
Z2V0U3RhdGljRnVuY3Rpb25TbG90PEpTT2JqZWN0PihleGVjLCAmSlNUZXN0RXZlbnRUYXJnZXRQ
cm90b3R5cGVUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIApAQCAt
MTQxLDkgKzE0MSw5IEBAIEpTVGVzdEV2ZW50VGFyZ2V0Ojp+SlNUZXN0RXZlbnRUYXJnZXQoKQog
ICAgIHJlbGVhc2VJbXBsSWZOb3ROdWxsKCk7CiB9CiAKLWJvb2wgSlNUZXN0RXZlbnRUYXJnZXQ6
OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU1Rlc3RFdmVu
dFRhcmdldDo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSog
ZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewot
ICAgIEpTVGVzdEV2ZW50VGFyZ2V0KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEV2ZW50VGFy
Z2V0Kj4oY2VsbCk7CisgICAgSlNUZXN0RXZlbnRUYXJnZXQqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
SlNUZXN0RXZlbnRUYXJnZXQqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFModGhpc09iamVjdCwgJnNfaW5mbyk7CiAgICAgY29uc3QgSGFzaEVudHJ5KiBlbnRyeSA9IGdl
dFN0YXRpY1ZhbHVlU2xvdEVudHJ5V2l0aG91dENhY2hpbmc8SlNUZXN0RXZlbnRUYXJnZXQ+KGV4
ZWMsIHByb3BlcnR5TmFtZSk7CiAgICAgaWYgKGVudHJ5KSB7CkBAIC0xODksOSArMTg5LDkgQEAg
Ym9vbCBKU1Rlc3RFdmVudFRhcmdldDo6Z2V0T3duUHJvcGVydHlEZQogICAgIHJldHVybiBnZXRT
dGF0aWNWYWx1ZURlc2NyaXB0b3I8SlNUZXN0RXZlbnRUYXJnZXQsIEJhc2U+KGV4ZWMsICZKU1Rl
c3RFdmVudFRhcmdldFRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3Ip
OwogfQogCi1ib29sIEpTVGVzdEV2ZW50VGFyZ2V0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlT
bG90JiBzbG90KQorYm9vbCBKU1Rlc3RFdmVudFRhcmdldDo6Z2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGluZGV4LCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgSlNUZXN0RXZlbnRUYXJnZXQqIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8SlNUZXN0RXZlbnRUYXJnZXQqPihjZWxsKTsKKyAgICBKU1Rlc3RFdmVudFRhcmdl
dCogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RFdmVudFRhcmdldCo+KG9iamVjdCk7CiAgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCAmc19pbmZvKTsKICAgICBpZiAo
aW5kZXggPCBzdGF0aWNfY2FzdDxUZXN0RXZlbnRUYXJnZXQqPih0aGlzT2JqZWN0LT5pbXBsKCkp
LT5sZW5ndGgoKSkgewogICAgICAgICBzbG90LnNldEN1c3RvbUluZGV4KHRoaXNPYmplY3QsIGlu
ZGV4LCB0aGlzT2JqZWN0LT5pbmRleEdldHRlcik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQu
aAkocmV2aXNpb24gMTUzNjA0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDkgKzQxLDkg
QEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90
b3R5cGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci0gICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQ
cm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwotICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSos
IHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNT
dGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBz
dGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdEV2ZW50VGFyZ2V0
KCk7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKQEAgLTExMiw3ICsx
MTIsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZv
IHNfaW5mbzsKLSAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwq
LCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYp
OworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlND
OjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpKU09iamVjdCosIEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9y
Jik7CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYg
dm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3Rv
dHlwZSkKICAgICB7CkBAIC0xMzksNyArMTM5LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
cHRyOwogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpT
Q2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlT
bG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYp
OwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2Ny
aXB0b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogICAgIHN0
YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9u
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXhjZXB0aW9uLmNwcAkocmV2aXNpb24gMTUzNjA0KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTYzLDkgKzYzLDkgQEAgdm9pZCBKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3Rvcjo6
ZmluaXNoQwogICAgIHB1dERpcmVjdChleGVjLT52bSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCku
bGVuZ3RoLCBqc051bWJlcigwKSwgUmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0pOwog
fQogCi1ib29sIEpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUs
IFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3I6Omdl
dE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4g
Z2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yLCBKU0RPTVdyYXBw
ZXI+KGV4ZWMsICZKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvclRhYmxlLCBqc0Nhc3Q8SlNUZXN0
RXhjZXB0aW9uQ29uc3RydWN0b3IqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICBy
ZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yLCBKU0RP
TVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3RFeGNlcHRpb25Db25zdHJ1Y3RvclRhYmxlLCBqc0Nhc3Q8
SlNUZXN0RXhjZXB0aW9uQ29uc3RydWN0b3IqPihvYmplY3QpLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwogfQogCiBib29sIEpTVGVzdEV4Y2VwdGlvbkNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCkBAIC0xMTgsOSAr
MTE4LDkgQEAgSlNUZXN0RXhjZXB0aW9uOjp+SlNUZXN0RXhjZXB0aW9uKCkKICAgICByZWxlYXNl
SW1wbElmTm90TnVsbCgpOwogfQogCi1ib29sIEpTVGVzdEV4Y2VwdGlvbjo6Z2V0T3duUHJvcGVy
dHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTVGVzdEV4Y2VwdGlvbjo6Z2V0T3du
UHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIEpTVGVzdEV4Y2Vw
dGlvbiogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RFeGNlcHRpb24qPihjZWxsKTsKKyAgICBK
U1Rlc3RFeGNlcHRpb24qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0RXhjZXB0aW9uKj4ob2Jq
ZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8p
OwogICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0RXhjZXB0aW9uLCBCYXNlPihl
eGVjLCAmSlNUZXN0RXhjZXB0aW9uVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xv
dCk7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXhjZXB0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5oCShyZXZpc2lvbiAxNTM2MDQpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpT
R2xvYmFsT2JqZWN0Kik7Ci0gICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6
SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVj
dCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90
Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVz
Y3JpcHRvciYpOwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKICAgICB+
SlNUZXN0RXhjZXB0aW9uKCk7CkBAIC0xMjgsNyArMTI4LDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gcHRyOwogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChK
U0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJv
cGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNP
YmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwog
ICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50
ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAkocmV2aXNpb24gMTUzNjA0KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE3MCw5ICsxNzAsOSBAQCB2b2lkIEpTVGVzdEludGVyZmFjZUNvbnN0
cnVjdG9yOjpmaW5pc2hDCiAgICAgcHV0RGlyZWN0KGV4ZWMtPnZtKCksIGV4ZWMtPnByb3BlcnR5
TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKDEpLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250
RW51bSk7CiB9CiAKLWJvb2wgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6OmdldE93blByb3Bl
cnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1
Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAg
IHJldHVybiBnZXRTdGF0aWNQcm9wZXJ0eVNsb3Q8SlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3Is
IEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yVGFibGUsIGpz
Q2FzdDxKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcio+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOworICAgIHJldHVybiBnZXRTdGF0aWNQcm9wZXJ0eVNsb3Q8SlNUZXN0SW50ZXJmYWNlQ29u
c3RydWN0b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9y
VGFibGUsIGpzQ2FzdDxKU1Rlc3RJbnRlcmZhY2VDb25zdHJ1Y3Rvcio+KG9iamVjdCksIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0SW50ZXJmYWNlQ29uc3RydWN0b3I6Omdl
dE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRv
cikKQEAgLTIzMyw5ICsyMzMsOSBAQCBKU09iamVjdCogSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBl
OjpzZWxmCiAgICAgcmV0dXJuIGdldERPTVByb3RvdHlwZTxKU1Rlc3RJbnRlcmZhY2U+KGV4ZWMs
IGdsb2JhbE9iamVjdCk7CiB9CiAKLWJvb2wgSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlOjpnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0SW50ZXJmYWNl
UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7
Ci0gICAgSlNUZXN0SW50ZXJmYWNlUHJvdG90eXBlKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVz
dEludGVyZmFjZVByb3RvdHlwZSo+KGNlbGwpOworICAgIEpTVGVzdEludGVyZmFjZVByb3RvdHlw
ZSogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJbnRlcmZhY2VQcm90b3R5cGUqPihvYmplY3Qp
OwogICAgIHJldHVybiBnZXRTdGF0aWNQcm9wZXJ0eVNsb3Q8SlNUZXN0SW50ZXJmYWNlUHJvdG90
eXBlLCBKU09iamVjdD4oZXhlYywgJkpTVGVzdEludGVyZmFjZVByb3RvdHlwZVRhYmxlLCB0aGlz
T2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCkBAIC0yNzUsOSArMjc1LDkgQEAgSlNU
ZXN0SW50ZXJmYWNlOjp+SlNUZXN0SW50ZXJmYWNlKCkKICAgICByZWxlYXNlSW1wbElmTm90TnVs
bCgpOwogfQogCi1ib29sIEpTVGVzdEludGVyZmFjZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTVGVzdEludGVyZmFjZTo6Z2V0T3duUHJvcGVydHlTbG90
KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIEpTVGVzdEludGVyZmFjZSogdGhpc09i
amVjdCA9IGpzQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihjZWxsKTsKKyAgICBKU1Rlc3RJbnRlcmZh
Y2UqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4ob2JqZWN0KTsKICAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pOwogICAgIHJldHVy
biBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0SW50ZXJmYWNlLCBCYXNlPihleGVjLCAmSlNUZXN0
SW50ZXJmYWNlVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEludGVyZmFjZS5oCShyZXZpc2lvbiAxNTM2MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQyLDcgKzQyLDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBKU0M6OkpTT2Jq
ZWN0KiBjcmVhdGVQcm90b3R5cGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTR2xvYmFsT2JqZWN0
Kik7Ci0gICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlND
OjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAg
ICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4
ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwog
ICAgIHN0YXRpYyB2b2lkIHB1dChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQ
cm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlNDOjpQdXRQcm9wZXJ0eVNsb3QmKTsKICAgICBz
dGF0aWMgdm9pZCBwdXRCeUluZGV4KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNp
Z25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgYm9vbCBzaG91bGRUaHJvdyk7CkBAIC0x
MzAsNyArMTMwLDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNs
YXNzSW5mbyBzX2luZm87Ci0gICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6
SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVj
dCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90
Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVz
Y3JpcHRvciYpOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpT
Qzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1
ZSBwcm90b3R5cGUpCiAgICAgewpAQCAtMTU3LDcgKzE1Nyw3IEBAIHB1YmxpYzoKICAgICAgICAg
cmV0dXJuIHB0cjsKICAgICB9CiAKLSAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlBy
b3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpK
U09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVy
dHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsK
ICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwg
SlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBl
KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAko
cmV2aXNpb24gMTUzNjA0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
NCw5ICs2NCw5IEBAIHZvaWQgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNvbnN0cnUKICAg
ICBwdXREaXJlY3QoZXhlYy0+dm0oKSwgZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNO
dW1iZXIoMCksIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVtKTsKIH0KIAotYm9vbCBK
U1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xv
dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
Q29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3Rh
dGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkK
IHsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXJDb25zdHJ1Y3RvciwgSlNET01XcmFwcGVyPihleGVjLCAmSlNUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lckNvbnN0cnVjdG9yVGFibGUsIGpzQ2FzdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyQ29uc3RydWN0b3IqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1
cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1
Y3RvciwgSlNET01XcmFwcGVyPihleGVjLCAmSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lckNv
bnN0cnVjdG9yVGFibGUsIGpzQ2FzdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ29uc3Ry
dWN0b3IqPihvYmplY3QpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXJDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQpAQCAtOTAsOSArOTAsOSBAQCBK
U09iamVjdCogSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByCiAgICAgcmV0dXJuIGdldERP
TVByb3RvdHlwZTxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyPihleGVjLCBnbG9iYWxPYmpl
Y3QpOwogfQogCi1ib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcm90b3R5cGU6Omdl
dE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQorYm9vbCBKU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9i
amVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCiB7Ci0gICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlw
ZSogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90
eXBlKj4oY2VsbCk7CisgICAgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZSog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJvdG90eXBl
Kj4ob2JqZWN0KTsKICAgICByZXR1cm4gZ2V0U3RhdGljRnVuY3Rpb25TbG90PEpTT2JqZWN0Pihl
eGVjLCAmSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByb3RvdHlwZVRhYmxlLCB0aGlzT2Jq
ZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCkBAIC0xMzIsOSArMTMyLDkgQEAgSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6fkpTVGVzdE1lZAogICAgIHJlbGVhc2VJbXBsSWZOb3RO
dWxsKCk7CiB9CiAKLWJvb2wgSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcjo6Z2V0T3duUHJv
cGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXI6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
LSAgICBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqPihjZWxsKTsKKyAgICBKU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVj
dCwgJnNfaW5mbyk7CiAgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RNZWRpYVF1
ZXJ5TGlzdExpc3RlbmVyLCBCYXNlPihleGVjLCAmSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
clRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCShyZXZpc2lvbiAxNTM2MDQpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVy
eUxpc3RMaXN0ZW5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoK
ICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0
eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1l
LCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFt
ZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpT
Qzo6SlNDZWxsKik7CiAgICAgfkpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIoKTsKQEAgLTEw
Myw3ICsxMDMsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xh
c3NJbmZvIHNfaW5mbzsKLSAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpK
U0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3Qm
KTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpKU09iamVj
dCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNj
cmlwdG9yJik7CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlND
OjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVl
IHByb3RvdHlwZSkKICAgICB7CkBAIC0xMzAsNyArMTMwLDcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gcHRyOwogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChK
U0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJv
cGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNP
YmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwog
ICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRDb25zdHJ1Y3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxNTM2
MDQpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDkgKzYzLDkgQEAgdm9pZCBK
U1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3I6OgogICAgIHB1dERpcmVjdChleGVjLT52
bSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigwKSwgUmVhZE9ubHkg
fCBEb250RGVsZXRlIHwgRG9udEVudW0pOwogfQogCi1ib29sIEpTVGVzdE5hbWVkQ29uc3RydWN0
b3JDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiti
b29sIEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90
KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNs
b3Q8SlNUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMs
ICZKU1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3JUYWJsZSwganNDYXN0PEpTVGVzdE5h
bWVkQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcio+KGNlbGwpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwor
ICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0TmFtZWRDb25zdHJ1Y3RvckNvbnN0
cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3Ry
dWN0b3JUYWJsZSwganNDYXN0PEpTVGVzdE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3Rvcio+KG9i
amVjdCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRDb25zdHJ1
Y3RvckNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVj
dCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURl
c2NyaXB0b3ImIGRlc2NyaXB0b3IpCkBAIC0xNjIsOSArMTYyLDkgQEAgSlNUZXN0TmFtZWRDb25z
dHJ1Y3Rvcjo6fkpTVGVzdE5hbWVkQ29ucwogICAgIHJlbGVhc2VJbXBsSWZOb3ROdWxsKCk7CiB9
CiAKLWJvb2wgSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTVGVzdE5hbWVkQ29uc3RydWN0b3I6OmdldE93blByb3Bl
cnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBKU1Rlc3ROYW1lZENvbnN0
cnVjdG9yKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkQ29uc3RydWN0b3IqPihjZWxs
KTsKKyAgICBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVz
dE5hbWVkQ29uc3RydWN0b3IqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFModGhpc09iamVjdCwgJnNfaW5mbyk7CiAgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxK
U1Rlc3ROYW1lZENvbnN0cnVjdG9yLCBCYXNlPihleGVjLCAmSlNUZXN0TmFtZWRDb25zdHJ1Y3Rv
clRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3Iu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCShyZXZpc2lvbiAxNTM2MDQpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U0dsb2JhbE9iamVjdCopOwotICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6
OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVy
dHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xv
dCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkpTT2Jq
ZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURl
c2NyaXB0b3ImKTsKICAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7CiAgICAg
fkpTVGVzdE5hbWVkQ29uc3RydWN0b3IoKTsKQEAgLTEyOSw3ICsxMjksNyBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBwdHI7CiAgICAgfQogCi0gICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwg
SlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6
UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6
OlByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBz
X2luZm87CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpW
TSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHBy
b3RvdHlwZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAJKHJldmlzaW9uIDE1MzYwNCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzAsOSArNzAsOSBAQCB2b2lkIEpTVGVzdE5vZGVDb25zdHJ1Y3Rvcjo6ZmluaXNo
Q3JlYXRpCiAgICAgcHV0RGlyZWN0KGV4ZWMtPnZtKCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5s
ZW5ndGgsIGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSk7CiB9
CiAKLWJvb2wgSlNUZXN0Tm9kZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxs
KiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0Tm9kZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgcmV0dXJuIGdldFN0YXRpY1Zh
bHVlU2xvdDxKU1Rlc3ROb2RlQ29uc3RydWN0b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVz
dE5vZGVDb25zdHJ1Y3RvclRhYmxlLCBqc0Nhc3Q8SlNUZXN0Tm9kZUNvbnN0cnVjdG9yKj4oY2Vs
bCksIHByb3BlcnR5TmFtZSwgc2xvdCk7CisgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxK
U1Rlc3ROb2RlQ29uc3RydWN0b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdE5vZGVDb25z
dHJ1Y3RvclRhYmxlLCBqc0Nhc3Q8SlNUZXN0Tm9kZUNvbnN0cnVjdG9yKj4ob2JqZWN0KSwgcHJv
cGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROb2RlQ29uc3RydWN0b3I6OmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikK
QEAgLTExOSw5ICsxMTksOSBAQCBKU09iamVjdCogSlNUZXN0Tm9kZTo6Y3JlYXRlUHJvdG90eXBl
KEV4CiAgICAgcmV0dXJuIEpTVGVzdE5vZGVQcm90b3R5cGU6OmNyZWF0ZShleGVjLT52bSgpLCBn
bG9iYWxPYmplY3QsIEpTVGVzdE5vZGVQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT52
bSgpLCBnbG9iYWxPYmplY3QsIEpTTm9kZVByb3RvdHlwZTo6c2VsZihleGVjLCBnbG9iYWxPYmpl
Y3QpKSk7CiB9CiAKLWJvb2wgSlNUZXN0Tm9kZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCitib29sIEpTVGVzdE5vZGU6OmdldE93blByb3BlcnR5U2xvdChKU09iamVj
dCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBKU1Rlc3ROb2RlKiB0aGlzT2JqZWN0ID0ganNDYXN0
PEpTVGVzdE5vZGUqPihjZWxsKTsKKyAgICBKU1Rlc3ROb2RlKiB0aGlzT2JqZWN0ID0ganNDYXN0
PEpTVGVzdE5vZGUqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhp
c09iamVjdCwgJnNfaW5mbyk7CiAgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RO
b2RlLCBCYXNlPihleGVjLCAmSlNUZXN0Tm9kZVRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oCShyZXZpc2lvbiAxNTM2MDQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zOSw3ICszOSw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9i
amVjdCopOwotICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCos
IEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7
CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkpTT2JqZWN0KiwgSlND
OjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3Im
KTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogCkBAIC05NSw3ICs5
NSw3IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHB0cjsKICAgICB9CiAKLSAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlBy
b3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQ
cm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIGNvbnN0
IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0
ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHJldmlzaW9uIDE1MzYw
NCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzcsOSArMjM3LDkgQEAgdm9pZCBKU1Rlc3RPYmpDb25z
dHJ1Y3Rvcjo6ZmluaXNoQ3JlYXRpbwogICAgIHB1dERpcmVjdChleGVjLT52bSgpLCBleGVjLT5w
cm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigxKSwgUmVhZE9ubHkgfCBEb250RGVsZXRl
IHwgRG9udEVudW0pOwogfQogCi1ib29sIEpTVGVzdE9iakNvbnN0cnVjdG9yOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0T2JqQ29uc3RydWN0b3I6
OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1
cm4gZ2V0U3RhdGljUHJvcGVydHlTbG90PEpTVGVzdE9iakNvbnN0cnVjdG9yLCBKU0RPTVdyYXBw
ZXI+KGV4ZWMsICZKU1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxlLCBqc0Nhc3Q8SlNUZXN0T2JqQ29u
c3RydWN0b3IqPihjZWxsKSwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gZ2V0U3Rh
dGljUHJvcGVydHlTbG90PEpTVGVzdE9iakNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMs
ICZKU1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxlLCBqc0Nhc3Q8SlNUZXN0T2JqQ29uc3RydWN0b3Iq
PihvYmplY3QpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE9iakNvbnN0
cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0
YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eURlc2NyaXB0b3Im
IGRlc2NyaXB0b3IpCkBAIC0zNDgsOSArMzQ4LDkgQEAgSlNPYmplY3QqIEpTVGVzdE9ialByb3Rv
dHlwZTo6c2VsZihFeGVjUwogICAgIHJldHVybiBnZXRET01Qcm90b3R5cGU8SlNUZXN0T2JqPihl
eGVjLCBnbG9iYWxPYmplY3QpOwogfQogCi1ib29sIEpTVGVzdE9ialByb3RvdHlwZTo6Z2V0T3du
UHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTVGVzdE9ialByb3RvdHlw
ZTo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIEpT
VGVzdE9ialByb3RvdHlwZSogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RPYmpQcm90b3R5cGUq
PihjZWxsKTsKKyAgICBKU1Rlc3RPYmpQcm90b3R5cGUqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNU
ZXN0T2JqUHJvdG90eXBlKj4ob2JqZWN0KTsKICAgICByZXR1cm4gZ2V0U3RhdGljUHJvcGVydHlT
bG90PEpTVGVzdE9ialByb3RvdHlwZSwgSlNPYmplY3Q+KGV4ZWMsICZKU1Rlc3RPYmpQcm90b3R5
cGVUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIApAQCAtMzkwLDkg
KzM5MCw5IEBAIEpTVGVzdE9iajo6fkpTVGVzdE9iaigpCiAgICAgcmVsZWFzZUltcGxJZk5vdE51
bGwoKTsKIH0KIAotYm9vbCBKU1Rlc3RPYmo6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlT
bG90JiBzbG90KQorYm9vbCBKU1Rlc3RPYmo6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCog
b2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKLSAgICBKU1Rlc3RPYmoqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNU
ZXN0T2JqKj4oY2VsbCk7CisgICAgSlNUZXN0T2JqKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVz
dE9iaio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0
LCAmc19pbmZvKTsKICAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdE9iaiwgQmFz
ZT4oZXhlYywgJkpTVGVzdE9ialRhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouaAkocmV2aXNpb24gMTUzNjA0KQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw3
ICs0MCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3Jl
YXRlUHJvdG90eXBlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU0dsb2JhbE9iamVjdCopOwotICAg
IHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29s
IGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0
aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlO
YW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIHZv
aWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwpAQCAtMTE3LDcgKzExNyw3IEBAIHB1YmxpYzoKICAg
ICB9CiAKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwotICAgIHN0YXRp
YyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgSlND
OjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQogICAgIHsKQEAgLTE0
NCw3ICsxNDQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQogCi0gICAg
c3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMg
Ym9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wg
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHN0YXRp
YyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAJKHJldmlzaW9uIDE1MzYwNCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMxLDkgKzEzMSw5IEBAIHZvaWQgSlNUZXN0
T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnUKICAgICBwdXREaXJlY3QoZXhlYy0+dm0oKSwg
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoMSksIFJlYWRPbmx5IHwgRG9u
dERlbGV0ZSB8IERvbnRFbnVtKTsKIH0KIAotYm9vbCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0
ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQor
Ym9vbCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3I6OmdldE93blByb3Bl
cnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGlj
VmFsdWVTbG90PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvciwgSlNET01X
cmFwcGVyPihleGVjLCAmSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yVGFi
bGUsIGpzQ2FzdDxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IqPihjZWxs
KSwgcHJvcGVydHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpT
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25zdHJ1Y3RvciwgSlNET01XcmFwcGVyPihleGVj
LCAmSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc0NvbnN0cnVjdG9yVGFibGUsIGpzQ2FzdDxK
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzQ29uc3RydWN0b3IqPihvYmplY3QpLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDb25z
dHJ1Y3Rvcjo6Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNT
dGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlEZXNjcmlwdG9y
JiBkZXNjcmlwdG9yKQpAQCAtMTkyLDkgKzE5Miw5IEBAIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1
Y3RvcnM6On5KU1Rlc3RPdmUKICAgICByZWxlYXNlSW1wbElmTm90TnVsbCgpOwogfQogCi1ib29s
IEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM6OmdldE93blByb3BlcnR5U2xvdChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVy
dHlTbG90JiBzbG90KQorYm9vbCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgSlNUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycyogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzKj4oY2VsbCk7CisgICAgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKj4ob2JqZWN0KTsK
ICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZzX2luZm8pOwogICAg
IHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycywg
QmFzZT4oZXhlYywgJkpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNUYWJsZSwgdGhpc09iamVj
dCwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnMuaAkocmV2aXNpb24gMTUzNjA0KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaAko
d29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3Rh
dGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNHbG9iYWxPYmplY3QqKTsKLSAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlND
OjpKU0NlbGwqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3Bl
cnR5U2xvdCYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2Jq
ZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNs
b3QmKTsKICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpKU09i
amVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlE
ZXNjcmlwdG9yJik7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwogICAg
IH5KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKCk7CkBAIC0xMjgsNyArMTI4LDcgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gcHRyOwogICAgIH0KIAotICAgIHN0YXRpYyBib29sIGdldE93
blByb3BlcnR5U2xvdChKU0M6OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0
eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1l
LCBKU0M6OlByb3BlcnR5U2xvdCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFt
ZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFz
c0luZm8gc19pbmZvOwogICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNW
YWx1ZSBwcm90b3R5cGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAkocmV2aXNpb24gMTUzNjA0KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcyLDkgKzcyLDkgQEAgdm9pZCBK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhYwogICAgIHB1dERpcmVjdChleGVjLT52
bSgpLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcigwKSwgUmVhZE9ubHkg
fCBEb250RGVsZXRlIHwgRG9udEVudW0pOwogfQogCi1ib29sIEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29u
c3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
LSAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZUludGVyZmFjZUNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZKU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvclRhYmxlLCBqc0Nhc3Q8SlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IqPihjZWxsKSwgcHJvcGVydHlO
YW1lLCBzbG90KTsKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yLCBKU0RPTVdyYXBwZXI+KGV4ZWMsICZK
U1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VDb25zdHJ1Y3RvclRhYmxlLCBqc0Nh
c3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ29uc3RydWN0b3IqPihvYmpl
Y3QpLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZUNvbnN0cnVjdG9yOjpnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNP
YmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
LCBQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCkBAIC0xMjcsOSArMTI3LDkgQEAgSlNU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjp+SgogICAgIHJlbGVhc2VJbXBsSWZO
b3ROdWxsKCk7CiB9CiAKLWJvb2wgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3Qq
IG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9w
ZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZSo+KGNlbGwpOworICAgIEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2Uq
PihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgJnNf
aW5mbyk7CiAgICAgcmV0dXJuIGdldFN0YXRpY1ZhbHVlU2xvdDxKU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UsIEJhc2U+KGV4ZWMsICZKU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2VUYWJsZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlLmgJKHJldmlzaW9uIDE1MzYwNCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgc3RhdGljIEpT
Qzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9i
YWxPYmplY3QqKTsKLSAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU0Nl
bGwqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xv
dCYpOworICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsK
ICAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoSlNDOjpKU09iamVjdCos
IEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlEZXNjcmlw
dG9yJik7CiAgICAgc3RhdGljIHZvaWQgcHV0KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYp
OwogICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKQEAgLTEzNSw3ICsxMzUs
NyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBwdHI7CiAgICAgfQogCi0gICAgc3RhdGljIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9w
ZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJv
cGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVzY3JpcHRvciYpOwogICAgIHN0YXRpYyBjb25zdCBK
U0M6OkNsYXNzSW5mbyBzX2luZm87CiAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVT
dHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
SlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAkocmV2aXNp
b24gMTUzNjA0KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFR5cGVkZWZzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTYsOSArOTYsOSBAQCB2b2lkIEpT
VGVzdFR5cGVkZWZzQ29uc3RydWN0b3I6OmZpbmlzaENyCiAgICAgcHV0RGlyZWN0KGV4ZWMtPnZt
KCksIGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKDIpLCBSZWFkT25seSB8
IERvbnREZWxldGUgfCBEb250RW51bSk7CiB9CiAKLWJvb2wgSlNUZXN0VHlwZWRlZnNDb25zdHJ1
Y3Rvcjo6Z2V0T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTVGVz
dFR5cGVkZWZzQ29uc3RydWN0b3I6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0
LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xv
dCYgc2xvdCkKIHsKLSAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdFR5cGVkZWZz
Q29uc3RydWN0b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdFR5cGVkZWZzQ29uc3RydWN0
b3JUYWJsZSwganNDYXN0PEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IqPihjZWxsKSwgcHJvcGVy
dHlOYW1lLCBzbG90KTsKKyAgICByZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PEpTVGVzdFR5cGVk
ZWZzQ29uc3RydWN0b3IsIEpTRE9NV3JhcHBlcj4oZXhlYywgJkpTVGVzdFR5cGVkZWZzQ29uc3Ry
dWN0b3JUYWJsZSwganNDYXN0PEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3IqPihvYmplY3QpLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdFR5cGVkZWZzQ29uc3RydWN0b3I6
OmdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4
ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3Jp
cHRvcikKQEAgLTEzNiw5ICsxMzYsOSBAQCBKU09iamVjdCogSlNUZXN0VHlwZWRlZnNQcm90b3R5
cGU6OnNlbGYoCiAgICAgcmV0dXJuIGdldERPTVByb3RvdHlwZTxKU1Rlc3RUeXBlZGVmcz4oZXhl
YywgZ2xvYmFsT2JqZWN0KTsKIH0KIAotYm9vbCBKU1Rlc3RUeXBlZGVmc1Byb3RvdHlwZTo6Z2V0
T3duUHJvcGVydHlTbG90KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCitib29sIEpTVGVzdFR5cGVkZWZz
UHJvdG90eXBlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7
Ci0gICAgSlNUZXN0VHlwZWRlZnNQcm90b3R5cGUqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0
VHlwZWRlZnNQcm90b3R5cGUqPihjZWxsKTsKKyAgICBKU1Rlc3RUeXBlZGVmc1Byb3RvdHlwZSog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RUeXBlZGVmc1Byb3RvdHlwZSo+KG9iamVjdCk7CiAg
ICAgcmV0dXJuIGdldFN0YXRpY0Z1bmN0aW9uU2xvdDxKU09iamVjdD4oZXhlYywgJkpTVGVzdFR5
cGVkZWZzUHJvdG90eXBlVGFibGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CiAKQEAgLTE3OCw5ICsxNzgsOSBAQCBKU1Rlc3RUeXBlZGVmczo6fkpTVGVzdFR5cGVkZWZzKCkK
ICAgICByZWxlYXNlSW1wbElmTm90TnVsbCgpOwogfQogCi1ib29sIEpTVGVzdFR5cGVkZWZzOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKK2Jvb2wgSlNUZXN0VHlwZWRl
ZnM6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBK
U1Rlc3RUeXBlZGVmcyogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KGNlbGwp
OworICAgIEpTVGVzdFR5cGVkZWZzKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFR5cGVkZWZz
Kj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsICZz
X2luZm8pOwogICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNUZXN0VHlwZWRlZnMsIEJh
c2U+KGV4ZWMsICZKU1Rlc3RUeXBlZGVmc1RhYmxlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUs
IHNsb3QpOwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFR5cGVkZWZzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmgJKHJldmlzaW9uIDE1MzYwNCkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0
aWMgSlNDOjpKU09iamVjdCogY3JlYXRlUHJvdG90eXBlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpK
U0dsb2JhbE9iamVjdCopOwotICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6
OkpTQ2VsbCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVy
dHlTbG90Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xv
dCYpOwogICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkpTT2Jq
ZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURl
c2NyaXB0b3ImKTsKICAgICBzdGF0aWMgdm9pZCBwdXQoSlNDOjpKU0NlbGwqLCBKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJvcGVydHlT
bG90Jik7CiAgICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwpAQCAtMTA0LDcg
KzEwNCw3IEBAIHB1YmxpYzoKICAgICB9CiAKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0lu
Zm8gc19pbmZvOwotICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTQ2Vs
bCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90
Jik7CisgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpOwog
ICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5RGVzY3JpcHRvcihKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eURlc2NyaXB0
b3ImKTsKICAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZN
JiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJv
dG90eXBlKQogICAgIHsKQEAgLTEzMSw3ICsxMzEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVy
biBwdHI7CiAgICAgfQogCi0gICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6
SlNDZWxsKiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0
eVNsb3QmKTsKKyAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVj
dCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90
Jik7CiAgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5RGVz
Y3JpcHRvciYpOwogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAgICAg
c3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkK
</data>
<flag name="review"
          id="229806"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>