<?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>133898</bug_id>
          
          <creation_ts>2014-06-13 23:14:02 -0700</creation_ts>
          <short_desc>Store DOM constants directly in the JS object rather than jumping through a custom accessor</short_desc>
          <delta_ts>2014-06-14 13:39:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1015621</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-06-13 23:14:02 -0700</bug_when>
    <thetext>Store DOM constants directly in the JS object rather than jumping through a custom accessor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015624</commentid>
    <comment_count>1</comment_count>
      <attachid>233105</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-06-13 23:31:08 -0700</bug_when>
    <thetext>Created attachment 233105
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015626</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-06-13 23:45:01 -0700</bug_when>
    <thetext>There are two things I am not quite sure of with this patch:

1) Is the use of PropertySlot::setValue() for constants that still get accessed through the static lookup functions as efficient as PropertySlot::setCacheableCustom() with an accessor? If not, would it make sense to put the constant directly on the object when it is first looked up like we do with functions?  Should we do that with all properties now that we have CustomGetterSetter?

2) We have multiple variants of the static lookup functions to avoid unnecessary branches if a value of the specified type can&apos;t possibly be in the table. (e.g. constructors that only have constants used to use getStaticValueSlot(), but ones that had some functions as well had to use getStaticPropertySlot()).  I&apos;ve added an extra branch to both getStaticValueSlot() and getStaticPropertySlot() but could have added new variants of them instead, and only called them the table had a constant.  This felt like overkill, but I could do it if anyone thinks that optimization is still important (or, I could add a single templatized version, where you just or in the set of possible types at compile time).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015637</commentid>
    <comment_count>3</comment_count>
      <attachid>233105</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-06-14 01:27:27 -0700</bug_when>
    <thetext>Comment on attachment 233105
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=233105&amp;action=review

I

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        and will make adding more flags possibles.

possible_s_ :)

&gt; Source/WebCore/bindings/scripts/test/TestObj.idl:-248
&gt; -    const DOMString CONST_VALUE_10 = &quot;my constant string&quot;;

Why did we remove this? Do we just not have any non-integer constants in the dom?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015651</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-06-14 08:36:14 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 233105 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=233105&amp;action=review
&gt; 
&gt; I
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:11
&gt; &gt; +        and will make adding more flags possibles.
&gt; 
&gt; possible_s_ :)

Will fix.

&gt; 
&gt; &gt; Source/WebCore/bindings/scripts/test/TestObj.idl:-248
&gt; &gt; -    const DOMString CONST_VALUE_10 = &quot;my constant string&quot;;
&gt; 
&gt; Why did we remove this? Do we just not have any non-integer constants in the dom?

We both don&apos;t have any non-integer constants, and the WebIDL spec says it shouldn&apos;t be supported.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015659</commentid>
    <comment_count>5</comment_count>
      <attachid>233105</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2014-06-14 09:24:40 -0700</bug_when>
    <thetext>Comment on attachment 233105
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=233105&amp;action=review

&gt;&gt;&gt; Source/WebCore/bindings/scripts/test/TestObj.idl:-248
&gt;&gt;&gt; -    const DOMString CONST_VALUE_10 = &quot;my constant string&quot;;
&gt;&gt; 
&gt;&gt; Why did we remove this? Do we just not have any non-integer constants in the dom?
&gt; 
&gt; We both don&apos;t have any non-integer constants, and the WebIDL spec says it shouldn&apos;t be supported.

Well, I guess i&apos;ll let this change happen (but just this once) ;D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015694</commentid>
    <comment_count>6</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-06-14 13:39:18 -0700</bug_when>
    <thetext>Committed revision 169979.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233105</attachid>
            <date>2014-06-13 23:31:08 -0700</date>
            <delta_ts>2014-06-14 09:24:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133898-20140613233045.patch</filename>
            <type>text/plain</type>
            <size>49017</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTY5OTYzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBA
CisyMDE0LTA2LTEzICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU3Rv
cmUgRE9NIGNvbnN0YW50cyBkaXJlY3RseSBpbiB0aGUgSlMgb2JqZWN0IHJhdGhlciB0aGFuIGp1
bXBpbmcgdGhyb3VnaCBhIGN1c3RvbSBhY2Nlc3NvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzODk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL0xvb2t1cC5oOgorICAgICAgICAoSlND
OjpIYXNoVGFibGVWYWx1ZTo6YXR0cmlidXRlcyk6CisgICAgICAgIFN3aXRjaCBhdHRyaWJ1dGVz
IHRvIGJlIHN0b3JlZCBhcyBhbiB1bnNpZ25lZCByYXRoZXIgdGhhbiBhbiB1bnNpZ25lZCBjaGFy
LCBzaW5jZSB0aGVyZSBpcyBubyBkaWZmZXJlbmNlIGluIG1lbW9yeSB1c2UKKyAgICAgICAgYW5k
IHdpbGwgbWFrZSBhZGRpbmcgbW9yZSBmbGFncyBwb3NzaWJsZXMuCisKKyAgICAgICAgKEpTQzo6
SGFzaFRhYmxlVmFsdWU6OnByb3BlcnR5R2V0dGVyKToKKyAgICAgICAgKEpTQzo6SGFzaFRhYmxl
VmFsdWU6OnByb3BlcnR5UHV0dGVyKToKKyAgICAgICAgQ2hhbmdlIGFzc2VydGlvbiB0byB1c2Ug
QnVpbHRpbk9yRnVuY3Rpb25PckNvbnN0YW50LgorCisgICAgICAgIChKU0M6Okhhc2hUYWJsZVZh
bHVlOjpjb25zdGFudEludGVnZXIpOgorICAgICAgICBBZGRlZC4KKworICAgICAgICAoSlNDOjpn
ZXRTdGF0aWNQcm9wZXJ0eVNsb3QpOgorICAgICAgICAoSlNDOjpnZXRTdGF0aWNWYWx1ZVNsb3Qp
OgorICAgICAgICBVc2UgUHJvcGVydHlTbG90OjpzZXRWYWx1ZSgpIGZvciBjb25zdGFudHMgZHVy
aW5nIHN0YXRpYyBsb29rdXAuCisKKyAgICAgICAgKEpTQzo6cmVpZnlTdGF0aWNQcm9wZXJ0aWVz
KToKKyAgICAgICAgUHV0IHRoZSBjb25zdGFudCBkaXJlY3RseSBvbiB0aGUgb2JqZWN0IHdoZW4g
ZWFnZXJseSByZWlmeWluZy4KKworICAgICAgICAqIHJ1bnRpbWUvUHJvcGVydHlTbG90Lmg6Cisg
ICAgICAgIEFkZCBDb25zdGFudEludGVnZXIgZmxhZyBhbmQgQnVpbHRpbk9yRnVuY3Rpb25PckNv
bnN0YW50IGhlbHBlci4KKwogMjAxNC0wNi0xMyAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJl
cmdAYXBwbGUuY29tPgogCiAgICAgICAgIE9TUiBleGl0IHNob3VsZCBiYXJyaWVyIHRoZSBFeGVj
dXRhYmxlcyBmb3IgYWxsIElubGluZUNhbGxGcmFtZXMsIG5vdCBqdXN0IHRob3NlIG9uIHRoZSBz
dGFjayBhdCB0aGUgdGltZSBvZiBleGl0CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9Mb29rdXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Mb29rdXAuaAkocmV2aXNpb24gMTY5OTYzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvTG9va3VwLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0LDkgKzI0LDkgQEAKICNpbmNsdWRl
ICJCYXRjaGVkVHJhbnNpdGlvbk9wdGltaXplci5oIgogI2luY2x1ZGUgIkNhbGxGcmFtZS5oIgog
I2luY2x1ZGUgIkN1c3RvbUdldHRlclNldHRlci5oIgorI2luY2x1ZGUgIklkZW50aWZpZXIuaCIK
ICNpbmNsdWRlICJJZGVudGlmaWVySW5saW5lcy5oIgogI2luY2x1ZGUgIkludHJpbnNpYy5oIgot
I2luY2x1ZGUgIklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2lu
Y2x1ZGUgIlByb3BlcnR5U2xvdC5oIgogI2luY2x1ZGUgIlB1dFByb3BlcnR5U2xvdC5oIgpAQCAt
NDcsMzEgKzQ3LDI3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIC8vIEhhc2ggdGFibGUgZ2VuZXJh
dGVkIGJ5IHRoZSBjcmVhdGVfaGFzaF90YWJsZSBzY3JpcHQuCiAgICAgc3RydWN0IEhhc2hUYWJs
ZVZhbHVlIHsKICAgICAgICAgY29uc3QgY2hhciogbV9rZXk7IC8vIHByb3BlcnR5IG5hbWUKLSAg
ICAgICAgdW5zaWduZWQgY2hhciBtX2F0dHJpYnV0ZXM7IC8vIEpTT2JqZWN0IGF0dHJpYnV0ZXMK
KyAgICAgICAgdW5zaWduZWQgbV9hdHRyaWJ1dGVzOyAvLyBKU09iamVjdCBhdHRyaWJ1dGVzCiAg
ICAgICAgIEludHJpbnNpYyBtX2ludHJpbnNpYzsKICAgICAgICAgaW50cHRyX3QgbV92YWx1ZTE7
CiAgICAgICAgIGludHB0cl90IG1fdmFsdWUyOwogCi0gICAgICAgIHVuc2lnbmVkIGNoYXIgYXR0
cmlidXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlczsgfQotCi0gICAgICAgIEludHJp
bnNpYyBpbnRyaW5zaWMoKSBjb25zdAotICAgICAgICB7Ci0gICAgICAgICAgICBBU1NFUlQobV9h
dHRyaWJ1dGVzICYgRnVuY3Rpb24pOwotICAgICAgICAgICAgcmV0dXJuIG1faW50cmluc2ljOwot
ICAgICAgICB9CisgICAgICAgIHVuc2lnbmVkIGF0dHJpYnV0ZXMoKSBjb25zdCB7IHJldHVybiBt
X2F0dHJpYnV0ZXM7IH0KIAorICAgICAgICBJbnRyaW5zaWMgaW50cmluc2ljKCkgY29uc3QgeyBB
U1NFUlQobV9hdHRyaWJ1dGVzICYgRnVuY3Rpb24pOyByZXR1cm4gbV9pbnRyaW5zaWM7IH0KICAg
ICAgICAgQnVpbHRpbkdlbmVyYXRvciBidWlsdGluR2VuZXJhdG9yKCkgY29uc3QgeyBBU1NFUlQo
bV9hdHRyaWJ1dGVzICYgQnVpbHRpbik7IHJldHVybiByZWludGVycHJldF9jYXN0PEJ1aWx0aW5H
ZW5lcmF0b3I+KG1fdmFsdWUxKTsgfQogICAgICAgICBOYXRpdmVGdW5jdGlvbiBmdW5jdGlvbigp
IGNvbnN0IHsgQVNTRVJUKG1fYXR0cmlidXRlcyAmIEZ1bmN0aW9uKTsgcmV0dXJuIHJlaW50ZXJw
cmV0X2Nhc3Q8TmF0aXZlRnVuY3Rpb24+KG1fdmFsdWUxKTsgfQogICAgICAgICB1bnNpZ25lZCBj
aGFyIGZ1bmN0aW9uTGVuZ3RoKCkgY29uc3QgeyBBU1NFUlQobV9hdHRyaWJ1dGVzICYgRnVuY3Rp
b24pOyByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcj4obV92YWx1ZTIpOyB9CiAKLSAg
ICAgICAgR2V0RnVuY3Rpb24gcHJvcGVydHlHZXR0ZXIoKSBjb25zdCB7IEFTU0VSVCghKG1fYXR0
cmlidXRlcyAmIEJ1aWx0aW5PckZ1bmN0aW9uKSk7IHJldHVybiByZWludGVycHJldF9jYXN0PEdl
dEZ1bmN0aW9uPihtX3ZhbHVlMSk7IH0KLSAgICAgICAgUHV0RnVuY3Rpb24gcHJvcGVydHlQdXR0
ZXIoKSBjb25zdCB7IEFTU0VSVCghKG1fYXR0cmlidXRlcyAmIEJ1aWx0aW5PckZ1bmN0aW9uKSk7
IHJldHVybiByZWludGVycHJldF9jYXN0PFB1dEZ1bmN0aW9uPihtX3ZhbHVlMik7IH0KKyAgICAg
ICAgR2V0RnVuY3Rpb24gcHJvcGVydHlHZXR0ZXIoKSBjb25zdCB7IEFTU0VSVCghKG1fYXR0cmli
dXRlcyAmIEJ1aWx0aW5PckZ1bmN0aW9uT3JDb25zdGFudCkpOyByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxHZXRGdW5jdGlvbj4obV92YWx1ZTEpOyB9CisgICAgICAgIFB1dEZ1bmN0aW9uIHByb3Bl
cnR5UHV0dGVyKCkgY29uc3QgeyBBU1NFUlQoIShtX2F0dHJpYnV0ZXMgJiBCdWlsdGluT3JGdW5j
dGlvbk9yQ29uc3RhbnQpKTsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8UHV0RnVuY3Rpb24+KG1f
dmFsdWUyKTsgfQorCisgICAgICAgIGludHB0cl90IGNvbnN0YW50SW50ZWdlcigpIGNvbnN0IHsg
QVNTRVJUKG1fYXR0cmlidXRlcyAmIENvbnN0YW50SW50ZWdlcik7IHJldHVybiBtX3ZhbHVlMTsg
fQogCiAgICAgICAgIGludHB0cl90IGxleGVyVmFsdWUoKSBjb25zdCB7IEFTU0VSVCghbV9hdHRy
aWJ1dGVzKTsgcmV0dXJuIG1fdmFsdWUxOyB9CiAgICAgfTsKIAogICAgIHN0cnVjdCBIYXNoVGFi
bGUgewotCiAgICAgICAgIG11dGFibGUgaW50IG51bWJlck9mVmFsdWVzOwogICAgICAgICBpbnQg
aW5kZXhNYXNrOwogICAgICAgICBib29sIGhhc1NldHRlck9yUmVhZG9ubHlQcm9wZXJ0aWVzOwpA
QCAtMjI1LDYgKzIyMSwxMSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgaWYgKGVudHJ5LT5h
dHRyaWJ1dGVzKCkgJiBCdWlsdGluT3JGdW5jdGlvbikKICAgICAgICAgICAgIHJldHVybiBzZXRV
cFN0YXRpY0Z1bmN0aW9uU2xvdChleGVjLCBlbnRyeSwgdGhpc09iaiwgcHJvcGVydHlOYW1lLCBz
bG90KTsKIAorICAgICAgICBpZiAoZW50cnktPmF0dHJpYnV0ZXMoKSAmIENvbnN0YW50SW50ZWdl
cikgeworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqLCBlbnRyeS0+YXR0cmlidXRl
cygpLCBqc051bWJlcihlbnRyeS0+Y29uc3RhbnRJbnRlZ2VyKCkpKTsKKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICB9CisgICAgCiAgICAgICAgIHNsb3Quc2V0Q2FjaGVhYmxlQ3Vz
dG9tKHRoaXNPYmosIGVudHJ5LT5hdHRyaWJ1dGVzKCksIGVudHJ5LT5wcm9wZXJ0eUdldHRlcigp
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAtMjYxLDYgKzI2MiwxMSBAQCBuYW1l
c3BhY2UgSlNDIHsKIAogICAgICAgICBBU1NFUlQoIShlbnRyeS0+YXR0cmlidXRlcygpICYgQnVp
bHRpbk9yRnVuY3Rpb24pKTsKIAorICAgICAgICBpZiAoZW50cnktPmF0dHJpYnV0ZXMoKSAmIENv
bnN0YW50SW50ZWdlcikgeworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqLCBlbnRy
eS0+YXR0cmlidXRlcygpLCBqc051bWJlcihlbnRyeS0+Y29uc3RhbnRJbnRlZ2VyKCkpKTsKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKICAgICAgICAgc2xvdC5zZXRDYWNo
ZWFibGVDdXN0b20odGhpc09iaiwgZW50cnktPmF0dHJpYnV0ZXMoKSwgZW50cnktPnByb3BlcnR5
R2V0dGVyKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0zMTQsNiArMzIwLDEx
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAg
ICAgfQogCisgICAgICAgICAgICBpZiAodmFsdWUuYXR0cmlidXRlcygpICYgQ29uc3RhbnRJbnRl
Z2VyKSB7CisgICAgICAgICAgICAgICAgdGhpc09iai5wdXREaXJlY3Qodm0sIHByb3BlcnR5TmFt
ZSwganNOdW1iZXIodmFsdWUuY29uc3RhbnRJbnRlZ2VyKCkpLCB2YWx1ZS5hdHRyaWJ1dGVzKCkp
OworICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorCiAgICAgICAgICAg
ICBpZiAodmFsdWUuYXR0cmlidXRlcygpICYgQWNjZXNzb3IpIHsKICAgICAgICAgICAgICAgICBS
RUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJvcGVydHlTbG90LmgJKHJl
dmlzaW9uIDE2OTk2MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Byb3BlcnR5
U2xvdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw5IEBAIGVudW0gQXR0cmlidXRlIHsK
ICAgICBBY2Nlc3NvciAgICAgICAgICA9IDEgPDwgNSwgIC8vIHByb3BlcnR5IGlzIGEgZ2V0dGVy
L3NldHRlcgogICAgIEN1c3RvbUFjY2Vzc29yICAgID0gMSA8PCA2LAogICAgIEJ1aWx0aW4gICAg
ICAgICAgID0gMSA8PCA3LCAvLyBwcm9wZXJ0eSBpcyBhIGJ1aWx0aW4gZnVuY3Rpb24gLSBvbmx5
IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKKyAgICBDb25zdGFudEludGVnZXIgICA9IDEgPDwg
OCwgLy8gcHJvcGVydHkgaXMgYSBjb25zdGFudCBpbnRlZ2VyIC0gb25seSB1c2VkIGJ5IHN0YXRp
YyBoYXNodGFibGVzCiAgICAgQnVpbHRpbk9yRnVuY3Rpb24gPSBCdWlsdGluIHwgRnVuY3Rpb24s
IC8vIGhlbHBlciBvbmx5IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKKyAgICBCdWlsdGluT3JG
dW5jdGlvbk9yQ29uc3RhbnQgPSBCdWlsdGluIHwgRnVuY3Rpb24gfCBDb25zdGFudEludGVnZXIs
IC8vIGhlbHBlciBvbmx5IHVzZWQgYnkgc3RhdGljIGhhc2h0YWJsZXMKIH07CiAKIGNsYXNzIFBy
b3BlcnR5U2xvdCB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjk5NjMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0NiBAQAorMjAxNC0w
Ni0xMyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFN0b3JlIERPTSBj
b25zdGFudHMgZGlyZWN0bHkgaW4gdGhlIEpTIG9iamVjdCByYXRoZXIgdGhhbiBqdW1waW5nIHRo
cm91Z2ggYSBjdXN0b20gYWNjZXNzb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzMzg5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEluc3RlYWQgb2YgaW1wbGVtZW50aW5nIGNvbnN0YW50cyBhcyBjdXN0
b20gYWNjZXNzb3JzIHRoYXQganVzdCBoYXBwZW4gdG8gcmV0dXJuIGEgdmFsdWUsCisgICAgICAg
IHdlIG5vdyBzdG9yZSB0aGUgY29uc3RhbnQgZGlyZWN0bHkgaW4gdGhlIEhhc2hUYWJsZVZhbHVl
IGFycmF5ICh3aGVyZSB0aGUgR2V0VmFsdWVGdW5jIHVzZWQKKyAgICAgICAgdG8gYmUpLiAKKyAg
ICAgICAgCisgICAgICAgIC0gRm9yIHRoZSBjYXNlIHdoZXJlIHRoZSBjb25zdGFudCBpcyBhY2Nl
c3NlZCB2aWEgdGhlIHN0YXRpYyB0YWJsZSAoc3RpbGwgaW4gdXNlIGZvciBpbnN0YW5jZXMgCisg
ICAgICAgICAgYW5kIHNvbWUgcHJvdG90eXBlcyksIHRoZSBzdGF0aWMgbG9va3VwIGZ1bmN0aW9u
IHdpbGwgc2V0IHRoZSB2YWx1ZSBvbiB0aGUgcHJvcGVydHkgc2xvdCwKKyAgICAgICAgICBpbnN0
ZWFkIG9mIHBhc3NpbmcgYSBmdW5jdGlvbiBwb2ludGVyLgorICAgICAgICAtIEZvciB0aGUgY2Fz
ZSB3aGVyZSB0aGUgY29uc3RhbnQgaXMgZWFnZXJseSByZWlmaWVkIChtb3N0IHByb3RvdHlwZXMg
YW5kIGFsbCBjb25zdHJ1Y3RvcnMpIHRoZQorICAgICAgICAgIGNvbnN0YW50IGlzIHB1dCBkaXJl
Y3RseSBpbiB0aGUgb2JqZWN0LgorCisgICAgICAgIEluIG1pY3JvIGJlbmNobWFya3MgdGhpcyBs
b29rcyB0byBiZSBhcm91bmQgYSA0eCBzcGVlZHVwIG9uIHRoZSB1c2Ugb2YgRE9NIGNvbnN0YW50
cy4KKworICAgICAgICBUaGlzIGFsc28gcmVtb3ZlcyBzdXBwb3J0IGZvciBjb25zdGFudCBzdHJp
bmdzIGluIElETCwgd2hpY2ggd2UgaGFkIG5vIHVzZXMgb2YuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToK
KyAgICAgICAgUmVtb3ZlIGNvZGUgdG8gZ2VuZXJhdGUgZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiBj
b25zdGFudCBhY2Nlc3NvciBmdW5jdGlvbnMuCisKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50
YXRpb24pOgorICAgICAgICBSZW1vdmUgY29kZSB0byBnZW5lcmF0ZSBpbXBsZW1lbnRhdGlvbiBv
ZiBjb25zdGFudCBhY2Nlc3NvciBmdW5jdGlvbnMuCisKKyAgICAgICAgKEdlbmVyYXRlSGFzaFRh
YmxlVmFsdWVBcnJheSk6CisgICAgICAgIFBsYW50IHRoZSBjb25zdGFudCBkaXJlY3RseSBpbiB0
aGUgdmFsdWUgYXJyYXkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5w
bToKKyAgICAgICAgKHBhcnNlQ29uc3RWYWx1ZSk6CisgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZv
ciBjb25zdGFudCBzdHJpbmdzLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEludGVyZmFjZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmg6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICBV
cGRhdGUgdGVzdCByZXN1bHRzLgorCiAyMDE0LTA2LTE0ICBGcsOpZMOpcmljIFdhbmcgIDxmcmVk
LndhbmdAZnJlZS5mcj4KIAogICAgICAgICBEcmF3IHJhZGljYWxzIHdpdGggZ2x5cGhzIGZvciBi
ZXR0ZXIgcmVuZGVyaW5nCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gMTY5OTYzKQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkK
QEAgLTEyOTcsMTcgKzEyOTcsNiBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAgICAgfQogICAg
IH0KIAotICAgIGlmICgkbnVtQ29uc3RhbnRzID4gMCkgewotICAgICAgICBwdXNoKEBoZWFkZXJD
b250ZW50LCIvLyBDb25zdGFudHNcblxuIik7Ci0gICAgICAgIGZvcmVhY2ggbXkgJGNvbnN0YW50
IChAeyRpbnRlcmZhY2UtPmNvbnN0YW50c30pIHsKLSAgICAgICAgICAgIG15ICRjb25kaXRpb25h
bFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRjb25z
dGFudCk7Ci0gICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2lmICR7Y29uZGl0aW9u
YWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7Ci0gICAgICAgICAgICBteSAkZ2V0
dGVyID0gImpzIiAuICRpbnRlcmZhY2VOYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3Qo
JGNvbnN0YW50LT5uYW1lKTsKLSAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJKU0M6
OkVuY29kZWRKU1ZhbHVlICR7Z2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7XG4iKTsKLSAgICAgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25kaXRpb25hbFN0cmlu
ZzsKLSAgICAgICAgfQotICAgIH0KLQogICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2Rl
R2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRpbnRlcmZhY2UpOwogICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICJcbn0gLy8gbmFtZXNwYWNlIFdlYkNvcmVcblxuIik7CiAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiNlbmRpZiAvLyAke2NvbmRpdGlvbmFsU3RyaW5nfVxuXG4i
KSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CkBAIC0xNzg5LDE0ICsxNzc4LDEyIEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIG15IEBoYXNoU3BlY2lhbHMgPSAoKTsKICAgICAg
ICAgbXkgJWNvbmRpdGlvbmFscyA9ICgpOwogCi0gICAgICAgICMgRklYTUU6IHdlIHNob3VsZCBu
b3QgbmVlZCBhIGZ1bmN0aW9uIGZvciBldmVyeSBjb25zdGFudC4KICAgICAgICAgZm9yZWFjaCBt
eSAkY29uc3RhbnQgKEB7JGludGVyZmFjZS0+Y29uc3RhbnRzfSkgewogICAgICAgICAgICAgbXkg
JG5hbWUgPSAkY29uc3RhbnQtPm5hbWU7CiAgICAgICAgICAgICBwdXNoKEBoYXNoS2V5cywgJG5h
bWUpOwotICAgICAgICAgICAgbXkgJGdldHRlciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICRj
b2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0KCRuYW1lKTsKLSAgICAgICAgICAgIHB1c2goQGhhc2hW
YWx1ZTEsICRnZXR0ZXIpOworICAgICAgICAgICAgcHVzaChAaGFzaFZhbHVlMSwgJGNvbnN0YW50
LT52YWx1ZSk7CiAgICAgICAgICAgICBwdXNoKEBoYXNoVmFsdWUyLCAiMCIpOwotICAgICAgICAg
ICAgcHVzaChAaGFzaFNwZWNpYWxzLCAiRG9udERlbGV0ZSB8IFJlYWRPbmx5Iik7CisgICAgICAg
ICAgICBwdXNoKEBoYXNoU3BlY2lhbHMsICJEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBDb25zdGFu
dEludGVnZXIiKTsKIAogICAgICAgICAgICAgbXkgJGltcGxlbWVudGVkQnkgPSAkY29uc3RhbnQt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEJ5In07CiAgICAgICAgICAgICBpZiAo
JGltcGxlbWVudGVkQnkpIHsKQEAgLTE4OTIsMTQgKzE4NzksMTMgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICAgICAgXCVjb25kaXRpb25hbHMpOwogICAgIG15ICRoYXNoU2l6ZSA9
ICRudW1GdW5jdGlvbnMgKyAkbnVtQ29uc3RhbnRzICsgJG51bVByb3RvdHlwZUF0dHJpYnV0ZXM7
CiAKLSAgICAjIEZJWE1FOiB3ZSBzaG91bGQgbm90IG5lZWQgYSBmdW5jdGlvbiBmb3IgZXZlcnkg
Y29uc3RhbnQuCiAgICAgZm9yZWFjaCBteSAkY29uc3RhbnQgKEB7JGludGVyZmFjZS0+Y29uc3Rh
bnRzfSkgewogICAgICAgICBteSAkbmFtZSA9ICRjb25zdGFudC0+bmFtZTsKKwogICAgICAgICBw
dXNoKEBoYXNoS2V5cywgJG5hbWUpOwotICAgICAgICBteSAkZ2V0dGVyID0gImpzIiAuICRpbnRl
cmZhY2VOYW1lIC4gJGNvZGVHZW5lcmF0b3ItPldLX3VjZmlyc3QoJG5hbWUpOwotICAgICAgICBw
dXNoKEBoYXNoVmFsdWUxLCAkZ2V0dGVyKTsKKyAgICAgICAgcHVzaChAaGFzaFZhbHVlMSwgJGNv
bnN0YW50LT52YWx1ZSk7CiAgICAgICAgIHB1c2goQGhhc2hWYWx1ZTIsICIwIik7Ci0gICAgICAg
IHB1c2goQGhhc2hTcGVjaWFscywgIkRvbnREZWxldGUgfCBSZWFkT25seSIpOworICAgICAgICBw
dXNoKEBoYXNoU3BlY2lhbHMsICJEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBDb25zdGFudEludGVn
ZXIiKTsKIAogICAgICAgICBteSAkY29uZGl0aW9uYWwgPSAkY29uc3RhbnQtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJDb25kaXRpb25hbCJ9OwogICAgICAgICBpZiAoJGNvbmRpdGlvbmFsKSB7CkBA
IC0yODg0LDMyICsyODcwLDYgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAjIFVu
Y29tbWVudCB0aGUgYmVsb3cgbGluZSB0byB0ZW1wb3JhcmlseSBlbmZvcmNlIGdlbmVyYXRlZCBt
YXJrIGZ1bmN0aW9ucyB3aGVuIGNhY2hlZCBhdHRyaWJ1dGVzIGFyZSBwcmVzZW50LgogICAgICMg
ZGllICJDYW4ndCBnZW5lcmF0ZSBiaW5kaW5nIGZvciBjbGFzcyB3aXRoIGNhY2hlZCBhdHRyaWJ1
dGUgYW5kIGN1c3RvbSBtYXJrLiIgaWYgKCgkbnVtQ2FjaGVkQXR0cmlidXRlcyA+IDApIGFuZCAo
JGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tTWFya0Z1bmN0aW9uIn0p
KTsKIAotICAgIGlmICgkbnVtQ29uc3RhbnRzID4gMCkgewotICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIi8vIENvbnN0YW50IGdldHRlcnNcblxuIik7Ci0KLSAgICAgICAgZm9yZWFjaCBteSAk
Y29uc3RhbnQgKEB7JGludGVyZmFjZS0+Y29uc3RhbnRzfSkgewotICAgICAgICAgICAgbXkgJGdl
dHRlciA9ICJqcyIgLiAkaW50ZXJmYWNlTmFtZSAuICRjb2RlR2VuZXJhdG9yLT5XS191Y2ZpcnN0
KCRjb25zdGFudC0+bmFtZSk7Ci0gICAgICAgICAgICBteSAkY29uZGl0aW9uYWwgPSAkY29uc3Rh
bnQtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDb25kaXRpb25hbCJ9OwotCi0gICAgICAgICAgICBp
ZiAoJGNvbmRpdGlvbmFsKSB7Ci0gICAgICAgICAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5n
ID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmdGcm9tQXR0cmlidXRl
VmFsdWUoJGNvbmRpdGlvbmFsKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxuIik7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIGlmICgkY29uc3RhbnQtPnR5cGUgZXEgIkRPTVN0cmluZyIpIHsKLSAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIkVuY29kZWRKU1ZhbHVlICR7Z2V0dGVyfShFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSlcbiIpOwotICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7Ci0gICAgICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc1N0cmluZ09y
TnVsbChleGVjLCBTdHJpbmcoIiAuICRjb25zdGFudC0+dmFsdWUgLiAiKSkpO1xuIik7Ci0gICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiRW5j
b2RlZEpTVmFsdWUgJHtnZXR0ZXJ9KEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFs
dWUsIFByb3BlcnR5TmFtZSlcbiIpOwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAie1xuIik7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc051bWJlcigiIC4gJGNvbnN0YW50LT52YWx1ZSAuICIpKTtcbiIp
OwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ9XG5cbiIp
OwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25kaXRp
b25hbDsKLSAgICAgICAgfQotICAgIH0KLQogICAgIGlmICgkaW5kZXhlZEdldHRlckZ1bmN0aW9u
KSB7CiAgICAgICAgIGlmICgkaW5kZXhlZEdldHRlckZ1bmN0aW9uLT5zaWduYXR1cmUtPnR5cGUg
ZXEgIkRPTVN0cmluZyIpIHsKICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IlVSTC5oIn0gPSAx
OwpAQCAtNDA4MCw2ICs0MDQwLDggQEAgc3ViIEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheQog
ICAgICAgICAKICAgICAgICAgaWYgKCJAJHNwZWNpYWxzWyRpXSIgPX4gbS9GdW5jdGlvbi8pIHsK
ICAgICAgICAgICAgICRmaXJzdFRhcmdldFR5cGUgPSAic3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rp
b24+IjsKKyAgICAgICAgfSBlbHNpZiAoIkAkc3BlY2lhbHNbJGldIiA9fiBtL0NvbnN0YW50SW50
ZWdlci8pIHsKKyAgICAgICAgICAgICRmaXJzdFRhcmdldFR5cGUgPSAiIjsKICAgICAgICAgfSBl
bHNlIHsKICAgICAgICAgICAgICRmaXJzdFRhcmdldFR5cGUgPSAic3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+IjsKICAgICAgICAgICAgICRzZWNvbmRUYXJnZXRUeXBlID0g
InN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPiI7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQkocmV2aXNpb24gMTY5
OTYzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0JKHdv
cmtpbmcgY29weSkKQEAgLTkwNSwxMCArOTA1LDYgQEAgc3ViIHBhcnNlQ29uc3RWYWx1ZQogICAg
IGlmICgkbmV4dC0+dHlwZSgpID09IEZsb2F0VG9rZW4gfHwgJG5leHQtPnZhbHVlKCkgPX4gLyRu
ZXh0Q29uc3RWYWx1ZV8yLykgewogICAgICAgICByZXR1cm4gJHNlbGYtPnBhcnNlRmxvYXRMaXRl
cmFsKCk7CiAgICAgfQotICAgICMgYmFja3dhcmQgY29tcGF0aWJpbGl0eQotICAgIGlmICgkbmV4
dC0+dHlwZSgpID09IFN0cmluZ1Rva2VuKSB7Ci0gICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9r
ZW4oKS0+dmFsdWUoKTsKLSAgICB9CiAgICAgaWYgKCRuZXh0LT50eXBlKCkgPT0gSW50ZWdlclRv
a2VuKSB7CiAgICAgICAgIHJldHVybiAkc2VsZi0+Z2V0VG9rZW4oKS0+dmFsdWUoKTsKICAgICB9
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RP
YmouaWRsCShyZXZpc2lvbiAxNjk5NjMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVGVzdE9iai5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI0NSw3ICsyNDUsNiBAQCBl
bnVtIF9vcHRpb25hbCB7ICIiLCAiT3B0aW9uYWxWYWx1ZTEiLCAiCiAgICAgY29uc3QgdW5zaWdu
ZWQgc2hvcnQgQ09OU1RfVkFMVUVfNCA9IDQ7CiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgQ09O
U1RfVkFMVUVfOCA9IDg7CiAgICAgY29uc3Qgc2hvcnQgQ09OU1RfVkFMVUVfOSA9IC0xOwotICAg
IGNvbnN0IERPTVN0cmluZyBDT05TVF9WQUxVRV8xMCA9ICJteSBjb25zdGFudCBzdHJpbmciOwog
ICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IENPTlNUX1ZBTFVFXzExID0gMHhmZmZmZmZmZjsKICAg
ICBjb25zdCB1bnNpZ25lZCBzaG9ydCBDT05TVF9WQUxVRV8xMiA9IDB4MDE7CiAgICAgY29uc3Qg
dW5zaWduZWQgc2hvcnQgQ09OU1RfVkFMVUVfMTMgPSAwWDIwOwpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVy
ZmFjZS5jcHAJKHJldmlzaW9uIDE2OTk2MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Mywy
MiArOTMsMjIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVAogc3Rh
dGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yVGFibGVW
YWx1ZXNbXSA9CiB7CiAjaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9u
MjMpCi0gICAgeyAiSU1QTEVNRU5UU0NPTlNUQU5UMSIsIERvbnREZWxldGUgfCBSZWFkT25seSwg
Tm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0SW50ZXJmYWNlSU1QTEVNRU5UU0NPTlNUQU5UMSksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCisgICAgeyAiSU1Q
TEVNRU5UU0NPTlNUQU5UMSIsIERvbnREZWxldGUgfCBSZWFkT25seSB8IENvbnN0YW50SW50ZWdl
ciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdCkoMSksIChpbnRwdHJfdCkgKDApIH0sCiAjZWxzZQog
ICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIDAsIDAgfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25k
aXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlvbjIzKQotICAgIHsgIklNUExFTUVOVFNDT05TVEFO
VDIiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEludGVyZmFjZUlNUExFTUVO
VFNDT05TVEFOVDIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0
VmFsdWVGdW5jPigwKSB9LAorICAgIHsgIklNUExFTUVOVFNDT05TVEFOVDIiLCBEb250RGVsZXRl
IHwgUmVhZE9ubHkgfCBDb25zdGFudEludGVnZXIsIE5vSW50cmluc2ljLCAoaW50cHRyX3QpKDIp
LCAoaW50cHRyX3QpICgwKSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCAwLCAw
IH0sCiAjZW5kaWYKICNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24x
MikKLSAgICB7ICJTVVBQTEVNRU5UQUxDT05TVEFOVDEiLCBEb250RGVsZXRlIHwgUmVhZE9ubHks
IE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdEludGVyZmFjZVNVUFBMRU1FTlRBTENPTlNUQU5UMSksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCisgICAgeyAi
U1VQUExFTUVOVEFMQ09OU1RBTlQxIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgQ29uc3RhbnRJ
bnRlZ2VyLCBOb0ludHJpbnNpYywgKGludHB0cl90KSgxKSwgKGludHB0cl90KSAoMCkgfSwKICNl
bHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgMCwgMCB9LAogI2VuZGlmCiAjaWYgRU5BQkxF
KENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi0gICAgeyAiU1VQUExFTUVOVEFM
Q09OU1RBTlQyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VT
VVBQTEVNRU5UQUxDT05TVEFOVDIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAorICAgIHsgIlNVUFBMRU1FTlRBTENPTlNUQU5UMiIs
IERvbnREZWxldGUgfCBSZWFkT25seSB8IENvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIChp
bnRwdHJfdCkoMiksIChpbnRwdHJfdCkgKDApIH0sCiAjZWxzZQogICAgIHsgMCwgMCwgTm9JbnRy
aW5zaWMsIDAsIDAgfSwKICNlbmRpZgpAQCAtMzExLDIyICszMTEsMjIgQEAgc3RhdGljIGNvbnN0
IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEludGVyZgogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIDAs
IDAgfSwKICNlbmRpZgogI2lmIEVOQUJMRShDb25kaXRpb24yMikgfHwgRU5BQkxFKENvbmRpdGlv
bjIzKQotICAgIHsgIklNUExFTUVOVFNDT05TVEFOVDEiLCBEb250RGVsZXRlIHwgUmVhZE9ubHks
IE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdEludGVyZmFjZUlNUExFTUVOVFNDT05TVEFOVDEpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAorICAgIHsgIklN
UExFTUVOVFNDT05TVEFOVDEiLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBDb25zdGFudEludGVn
ZXIsIE5vSW50cmluc2ljLCAoaW50cHRyX3QpKDEpLCAoaW50cHRyX3QpICgwKSB9LAogI2Vsc2UK
ICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCAwLCAwIH0sCiAjZW5kaWYKICNpZiBFTkFCTEUoQ29u
ZGl0aW9uMjIpIHx8IEVOQUJMRShDb25kaXRpb24yMykKLSAgICB7ICJJTVBMRU1FTlRTQ09OU1RB
TlQyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VJTVBMRU1F
TlRTQ09OU1RBTlQyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oMCkgfSwKKyAgICB7ICJJTVBMRU1FTlRTQ09OU1RBTlQyIiwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5IHwgQ29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgKGludHB0cl90KSgy
KSwgKGludHB0cl90KSAoMCkgfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgMCwg
MCB9LAogI2VuZGlmCiAjaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9u
MTIpCi0gICAgeyAiU1VQUExFTUVOVEFMQ09OU1RBTlQxIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RJbnRlcmZhY2VTVVBQTEVNRU5UQUxDT05TVEFOVDEpLCAoaW50cHRyX3Qp
IHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAorICAgIHsg
IlNVUFBMRU1FTlRBTENPTlNUQU5UMSIsIERvbnREZWxldGUgfCBSZWFkT25seSB8IENvbnN0YW50
SW50ZWdlciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdCkoMSksIChpbnRwdHJfdCkgKDApIH0sCiAj
ZWxzZQogICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMsIDAsIDAgfSwKICNlbmRpZgogI2lmIEVOQUJM
RShDb25kaXRpb24xMSkgfHwgRU5BQkxFKENvbmRpdGlvbjEyKQotICAgIHsgIlNVUFBMRU1FTlRB
TENPTlNUQU5UMiIsIERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0SW50ZXJmYWNl
U1VQUExFTUVOVEFMQ09OU1RBTlQyKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKKyAgICB7ICJTVVBQTEVNRU5UQUxDT05TVEFOVDIi
LCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBDb25zdGFudEludGVnZXIsIE5vSW50cmluc2ljLCAo
aW50cHRyX3QpKDIpLCAoaW50cHRyX3QpICgwKSB9LAogI2Vsc2UKICAgICB7IDAsIDAsIE5vSW50
cmluc2ljLCAwLCAwIH0sCiAjZW5kaWYKQEAgLTkwMCwzNiArOTAwLDYgQEAgRW5jb2RlZEpTVmFs
dWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RJbnRlcgogCiAjZW5kaWYKIAotLy8gQ29uc3RhbnQgZ2V0
dGVycwotCi0jaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VJTVBMRU1FTlRTQ09OU1RBTlQxKEV4ZWNTdGF0
ZSosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1
cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKDEpKTsKLX0KLQotI2VuZGlmCi0jaWYgRU5BQkxF
KENvbmRpdGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1FbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RJbnRlcmZhY2VJTVBMRU1FTlRTQ09OU1RBTlQyKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgRW5j
b2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KGpzTnVtYmVyKDIpKTsKLX0KLQotI2VuZGlmCi0jaWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBF
TkFCTEUoQ29uZGl0aW9uMTIpCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTVVBQTEVN
RU5UQUxDT05TVEFOVDEoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lKQotewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoMSkpOwot
fQotCi0jZW5kaWYKLSNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRpb24x
MikKLUVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVNVUFBMRU1FTlRBTENPTlNUQU5UMihF
eGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi17Ci0g
ICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigyKSk7Ci19Ci0KLSNlbmRpZgogYm9v
bCBKU1Rlc3RJbnRlcmZhY2VPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikK
IHsKICAgICBKU1Rlc3RJbnRlcmZhY2UqIGpzVGVzdEludGVyZmFjZSA9IGpzQ2FzdDxKU1Rlc3RJ
bnRlcmZhY2UqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFj
ZS5oCShyZXZpc2lvbiAxNjk5NjMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0NywyMCArMjQ3
LDYgQEAgSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbnRlcmZhY2VTdXBwbAogdm9pZCBzZXRK
U1Rlc3RJbnRlcmZhY2VTdXBwbGVtZW50YWxOb2RlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogI2VuZGlm
CiBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUNvbnN0cnVjdG9yKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKLS8vIENvbnN0YW50cwotCi0jaWYgRU5BQkxFKENvbmRpdGlvbjIyKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZUlNUExF
TUVOVFNDT05TVEFOVDEoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotI2VuZGlmCi0jaWYgRU5BQkxFKENvbmRp
dGlvbjIyKSB8fCBFTkFCTEUoQ29uZGl0aW9uMjMpCi1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVz
dEludGVyZmFjZUlNUExFTUVOVFNDT05TVEFOVDIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotI2VuZGlmCi0j
aWYgRU5BQkxFKENvbmRpdGlvbjExKSB8fCBFTkFCTEUoQ29uZGl0aW9uMTIpCi1KU0M6OkVuY29k
ZWRKU1ZhbHVlIGpzVGVzdEludGVyZmFjZVNVUFBMRU1FTlRBTENPTlNUQU5UMShKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5
TmFtZSk7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoQ29uZGl0aW9uMTEpIHx8IEVOQUJMRShDb25kaXRp
b24xMikKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0SW50ZXJmYWNlU1VQUExFTUVOVEFMQ09O
U1RBTlQyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLSNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouY3BwCShyZXZpc2lvbiAxNjk5NjMpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTIyLDEwICsxMjIsMTAgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRh
Ygogc3RhdGljIGNvbnN0IEhhc2hUYWJsZSBKU1Rlc3RPYmpUYWJsZSA9IHsgNiwgMTUsIHRydWUs
IEpTVGVzdE9ialRhYmxlVmFsdWVzLCAwLCBKU1Rlc3RPYmpUYWJsZUluZGV4IH07CiAvKiBIYXNo
IHRhYmxlIGZvciBjb25zdHJ1Y3RvciAqLwogCi1zdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RI
YXNoSW5kZXggSlNUZXN0T2JqQ29uc3RydWN0b3JUYWJsZUluZGV4WzM5XSA9IHsKK3N0YXRpYyBj
b25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxlSW5k
ZXhbMzhdID0gewogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA5LCAzNCB9LAotICAgIHsgMjEsIC0x
IH0sCisgICAgeyA4LCAzNCB9LAorICAgIHsgMjAsIC0xIH0sCiAgICAgeyAyLCAtMSB9LAogICAg
IHsgMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtMTMzLDggKzEzMyw4IEBAIHN0YXRpYyBj
b25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1QKICAgICB7IC0xLCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCiAgICAgeyAwLCAtMSB9LAotICAgIHsgMTIsIC0xIH0sCi0gICAgeyAxNiwgLTEg
fSwKKyAgICB7IDExLCAtMSB9LAorICAgIHsgMTUsIC0xIH0sCiAgICAgeyA1LCAzMiB9LAogICAg
IHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTE0Miw0OSArMTQyLDQ3IEBAIHN0YXRp
YyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1QKICAgICB7IC0xLCAtMSB9LAogICAg
IHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDEwLCAtMSB9LAotICAgIHsgNywg
MzYgfSwKLSAgICB7IDE1LCAtMSB9LAorICAgIHsgOSwgLTEgfSwKKyAgICB7IDE4LCAzNyB9LAor
ICAgIHsgMTQsIC0xIH0sCiAgICAgeyAzLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyAx
MSwgMzMgfSwKKyAgICB7IDEwLCAzMyB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEg
fSwKLSAgICB7IDgsIDM3IH0sCi0gICAgeyAxOCwgLTEgfSwKKyAgICB7IDcsIDM2IH0sCisgICAg
eyAxNywgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyA0LCAt
MSB9LAogICAgIHsgNiwgLTEgfSwKLSAgICB7IDEzLCAtMSB9LAotICAgIHsgMTQsIDM1IH0sCi0g
ICAgeyAxNywgLTEgfSwKLSAgICB7IDE5LCAzOCB9LAotICAgIHsgMjAsIC0xIH0sCi0gICAgeyAy
MiwgLTEgfSwKKyAgICB7IDEyLCAtMSB9LAorICAgIHsgMTMsIDM1IH0sCisgICAgeyAxNiwgLTEg
fSwKKyAgICB7IDE5LCAtMSB9LAorICAgIHsgMjEsIC0xIH0sCiB9OwogCiAKIHN0YXRpYyBjb25z
dCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxlVmFsdWVzW10gPQogewog
I2lmIEVOQUJMRShDb25kaXRpb24xKQotICAgIHsgIkNPTkRJVElPTkFMX0NPTlNUIiwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3Bl
cnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDT05ESVRJT05BTF9DT05TVCksIChpbnRw
dHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCisg
ICAgeyAiQ09ORElUSU9OQUxfQ09OU1QiLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBDb25zdGFu
dEludGVnZXIsIE5vSW50cmluc2ljLCAoaW50cHRyX3QpKDApLCAoaW50cHRyX3QpICgwKSB9LAog
I2Vsc2UKICAgICB7IDAsIDAsIE5vSW50cmluc2ljLCAwLCAwIH0sCiAjZW5kaWYKLSAgICB7ICJD
T05TVF9WQUxVRV8wIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDT05T
VF9WQUxVRV8wKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZh
bHVlRnVuYz4oMCkgfSwKLSAgICB7ICJDT05TVF9WQUxVRV8xIiwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RPYmpDT05TVF9WQUxVRV8xKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKLSAgICB7ICJDT05TVF9WQUxV
RV8yIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDT05TVF9WQUxVRV8y
KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4o
MCkgfSwKLSAgICB7ICJDT05TVF9WQUxVRV80IiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0lu
dHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpDT05TVF9WQUxVRV80KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9w
ZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKLSAgICB7ICJDT05TVF9WQUxVRV84IiwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFBy
b3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDT05TVF9WQUxVRV84KSwgKGludHB0
cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKLSAg
ICB7ICJDT05TVF9WQUxVRV85IiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RP
YmpDT05TVF9WQUxVRV85KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6
OlB1dFZhbHVlRnVuYz4oMCkgfSwKLSAgICB7ICJDT05TVF9WQUxVRV8xMCIsIERvbnREZWxldGUg
fCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfVkFMVUVfMTApLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAotICAgIHsgIkNP
TlNUX1ZBTFVFXzExIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDT05T
VF9WQUxVRV8xMSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRW
YWx1ZUZ1bmM+KDApIH0sCi0gICAgeyAiQ09OU1RfVkFMVUVfMTIiLCBEb250RGVsZXRlIHwgUmVh
ZE9ubHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNPTlNUX1ZBTFVFXzEyKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKLSAgICB7ICJDT05TVF9W
QUxVRV8xMyIsIERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfVkFM
VUVfMTMpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPigwKSB9LAotICAgIHsgIkNPTlNUX1ZBTFVFXzE0IiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFs
dWVGdW5jPihqc1Rlc3RPYmpDT05TVF9WQUxVRV8xNCksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8
UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCi0gICAgeyAiQ09OU1RfSkFWQVND
UklQVCIsIERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfSkFWQVND
UklQVCksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KDApIH0sCi0gICAgeyAicmVhZG9ubHkiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIE5vSW50
cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+
KGpzVGVzdE9ialJlYWRvbmx5KSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKKyAgICB7ICJDT05TVF9WQUxVRV8wIiwgRG9udERlbGV0
ZSB8IFJlYWRPbmx5IHwgQ29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgKGludHB0cl90KSgw
KSwgKGludHB0cl90KSAoMCkgfSwKKyAgICB7ICJDT05TVF9WQUxVRV8xIiwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5IHwgQ29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgKGludHB0cl90KSgxKSwg
KGludHB0cl90KSAoMCkgfSwKKyAgICB7ICJDT05TVF9WQUxVRV8yIiwgRG9udERlbGV0ZSB8IFJl
YWRPbmx5IHwgQ29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgKGludHB0cl90KSgyKSwgKGlu
dHB0cl90KSAoMCkgfSwKKyAgICB7ICJDT05TVF9WQUxVRV80IiwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5IHwgQ29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgKGludHB0cl90KSg0KSwgKGludHB0
cl90KSAoMCkgfSwKKyAgICB7ICJDT05TVF9WQUxVRV84IiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
IHwgQ29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgKGludHB0cl90KSg4KSwgKGludHB0cl90
KSAoMCkgfSwKKyAgICB7ICJDT05TVF9WQUxVRV85IiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwg
Q29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgKGludHB0cl90KSgtMSksIChpbnRwdHJfdCkg
KDApIH0sCisgICAgeyAiQ09OU1RfVkFMVUVfMTEiLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBD
b25zdGFudEludGVnZXIsIE5vSW50cmluc2ljLCAoaW50cHRyX3QpKDB4ZmZmZmZmZmYpLCAoaW50
cHRyX3QpICgwKSB9LAorICAgIHsgIkNPTlNUX1ZBTFVFXzEyIiwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5IHwgQ29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgKGludHB0cl90KSgweDAxKSwgKGlu
dHB0cl90KSAoMCkgfSwKKyAgICB7ICJDT05TVF9WQUxVRV8xMyIsIERvbnREZWxldGUgfCBSZWFk
T25seSB8IENvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdCkoMFgyMCksIChp
bnRwdHJfdCkgKDApIH0sCisgICAgeyAiQ09OU1RfVkFMVUVfMTQiLCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkgfCBDb25zdGFudEludGVnZXIsIE5vSW50cmluc2ljLCAoaW50cHRyX3QpKDB4MWFiYyks
IChpbnRwdHJfdCkgKDApIH0sCisgICAgeyAiQ09OU1RfSkFWQVNDUklQVCIsIERvbnREZWxldGUg
fCBSZWFkT25seSB8IENvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdCkoMTUp
LCAoaW50cHRyX3QpICgwKSB9LAorICAgIHsgInJlYWRvbmx5IiwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5IHwgQ29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgKGludHB0cl90KSgwKSwgKGludHB0
cl90KSAoMCkgfSwKICAgICB7ICJzdGF0aWNSZWFkT25seUxvbmdBdHRyIiwgRG9udERlbGV0ZSB8
IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDb25zdHJ1Y3RvclN0YXRpY1JlYWRPbmx5TG9uZ0F0
dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PigwKSB9LAogICAgIHsgInN0YXRpY1N0cmluZ0F0dHIiLCBEb250RGVsZXRlLCBOb0ludHJpbnNp
YywgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rl
c3RPYmpDb25zdHJ1Y3RvclN0YXRpY1N0cmluZ0F0dHIpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpDb25zdHJ1Y3RvclN0
YXRpY1N0cmluZ0F0dHIpIH0sCiAgICAgeyAiVGVzdFN1Yk9iaiIsIERvbnREZWxldGUgfCBSZWFk
T25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0T2JqQ29uc3RydWN0b3JUZXN0U3ViT2JqKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKQEAgLTIwMCw3
ICsxOTgsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2JqQ29uCiAjZW5k
aWYKIH07CiAKLXN0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0T2JqQ29uc3RydWN0b3JUYWJs
ZSA9IHsgMjMsIDMxLCB0cnVlLCBKU1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxlVmFsdWVzLCAwLCBK
U1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxlSW5kZXggfTsKK3N0YXRpYyBjb25zdCBIYXNoVGFibGUg
SlNUZXN0T2JqQ29uc3RydWN0b3JUYWJsZSA9IHsgMjIsIDMxLCB0cnVlLCBKU1Rlc3RPYmpDb25z
dHJ1Y3RvclRhYmxlVmFsdWVzLCAwLCBKU1Rlc3RPYmpDb25zdHJ1Y3RvclRhYmxlSW5kZXggfTsK
IAogI2lmIEVOQUJMRShDb25kaXRpb24xKQogQ09NUElMRV9BU1NFUlQoMCA9PSBUZXN0T2JqOjpD
T05ESVRJT05BTF9DT05TVCwgVGVzdE9iakVudW1DT05ESVRJT05BTF9DT05TVElzV3JvbmdVc2VE
b05vdENoZWNrQ29uc3RhbnRzKTsKQEAgLTIxMSw3ICsyMDksNiBAQCBDT01QSUxFX0FTU0VSVCgy
ID09IFRlc3RPYmo6OkNPTlNUX1ZBTFVFCiBDT01QSUxFX0FTU0VSVCg0ID09IFRlc3RPYmo6OkNP
TlNUX1ZBTFVFXzQsIFRlc3RPYmpFbnVtQ09OU1RfVkFMVUVfNElzV3JvbmdVc2VEb05vdENoZWNr
Q29uc3RhbnRzKTsKIENPTVBJTEVfQVNTRVJUKDggPT0gVGVzdE9iajo6Q09OU1RfVkFMVUVfOCwg
VGVzdE9iakVudW1DT05TVF9WQUxVRV84SXNXcm9uZ1VzZURvTm90Q2hlY2tDb25zdGFudHMpOwog
Q09NUElMRV9BU1NFUlQoLTEgPT0gVGVzdE9iajo6Q09OU1RfVkFMVUVfOSwgVGVzdE9iakVudW1D
T05TVF9WQUxVRV85SXNXcm9uZ1VzZURvTm90Q2hlY2tDb25zdGFudHMpOwotQ09NUElMRV9BU1NF
UlQoIm15IGNvbnN0YW50IHN0cmluZyIgPT0gVGVzdE9iajo6Q09OU1RfVkFMVUVfMTAsIFRlc3RP
YmpFbnVtQ09OU1RfVkFMVUVfMTBJc1dyb25nVXNlRG9Ob3RDaGVja0NvbnN0YW50cyk7CiBDT01Q
SUxFX0FTU0VSVCgweGZmZmZmZmZmID09IFRlc3RPYmo6OkNPTlNUX1ZBTFVFXzExLCBUZXN0T2Jq
RW51bUNPTlNUX1ZBTFVFXzExSXNXcm9uZ1VzZURvTm90Q2hlY2tDb25zdGFudHMpOwogQ09NUElM
RV9BU1NFUlQoMHgwMSA9PSBUZXN0T2JqOjpDT05TVF9WQUxVRV8xMiwgVGVzdE9iakVudW1DT05T
VF9WQUxVRV8xMklzV3JvbmdVc2VEb05vdENoZWNrQ29uc3RhbnRzKTsKIENPTVBJTEVfQVNTRVJU
KDBYMjAgPT0gVGVzdE9iajo6Q09OU1RfVkFMVUVfMTMsIFRlc3RPYmpFbnVtQ09OU1RfVkFMVUVf
MTNJc1dyb25nVXNlRG9Ob3RDaGVja0NvbnN0YW50cyk7CkBAIC0yODAsNyArMjc3LDcgQEAgc3Rh
dGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVAogICAgIHsgLTEsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKICAgICB7IDQ3LCAtMSB9LAotICAgIHsgNzMsIC0xIH0sCisgICAgeyA3
MiwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgNDEsIC0xIH0sCiAgICAgeyAtMSwgLTEg
fSwKQEAgLTI5Miw3ICsyODksNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5k
ZXggSlNUCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0s
Ci0gICAgeyAxMDIsIC0xIH0sCisgICAgeyAxMDEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC0zMDEsNyArMjk4LDcgQEAgc3RhdGlj
IGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVAogICAgIHsgLTEsIC0xIH0sCiAgICAg
eyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgMTEwLCAtMSB9LAorICAgIHsgMTA5
LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9
LApAQCAtMzE4LDEyICszMTUsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaElu
ZGV4IEpTVAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9
LAotICAgIHsgMTI2LCAtMSB9LAorICAgIHsgMTI1LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgMTAxLCAtMSB9LAogICAgIHsg
MTAwLCAtMSB9LAorICAgIHsgOTksIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC0zMzYsNyArMzMzLDcgQEAgc3RhdGljIGNvbnN0IHN0
cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEg
fSwKICAgICB7IDUsIC0xIH0sCi0gICAgeyAxMzQsIC0xIH0sCisgICAgeyAxMzMsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC0zNTAs
OCArMzQ3LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVAogICAg
IHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgOTMs
IC0xIH0sCi0gICAgeyA4NywgLTEgfSwKKyAgICB7IDkyLCAtMSB9LAorICAgIHsgODYsIC0xIH0s
CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC0z
NjcsMTEgKzM2NCwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNU
CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAg
eyAxMTcsIC0xIH0sCisgICAgeyAxMTYsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0x
LCAtMSB9LAotICAgIHsgNzgsIC0xIH0sCi0gICAgeyA3MCwgLTEgfSwKKyAgICB7IDc3LCAtMSB9
LAorICAgIHsgNjksIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IDI1LCAtMSB9LAogICAg
IHsgLTEsIC0xIH0sCkBAIC0zODUsMTEgKzM4MiwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENv
bXBhY3RIYXNoSW5kZXggSlNUCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAg
IHsgLTEsIC0xIH0sCi0gICAgeyA5NiwgLTEgfSwKKyAgICB7IDk1LCAtMSB9LAogICAgIHsgLTEs
IC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgMTE0LCAtMSB9
LAorICAgIHsgMTEzLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyA2LCAtMSB9LAogICAg
IHsgLTEsIC0xIH0sCkBAIC0zOTksNyArMzk2LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21w
YWN0SGFzaEluZGV4IEpTVAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7
IC0xLCAtMSB9LAotICAgIHsgODYsIC0xIH0sCisgICAgeyA4NSwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAxLCAtMSB9LApAQCAtNDA4LDI1ICs0MDUsMjYg
QEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVAogICAgIHsgMzMsIC0x
IH0sCiAgICAgeyA1MSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNzEsIC0xIH0sCisg
ICAgeyA3MCwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAt
MSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEg
fSwKLSAgICB7IDkyLCAtMSB9LAorICAgIHsgOTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0x
LCAtMSB9LAotICAgIHsgMTI3LCAtMSB9LAorICAgIHsgMTI2LCAtMSB9LAogICAgIHsgLTEsIC0x
IH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0g
ICAgeyA3MiwgLTEgfSwKKyAgICB7IDcxLCAtMSB9LAorICAgIHsgLTEsIC0xIH0sCiAgICAgeyAt
MSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC00MzYsNyArNDM0
LDYgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVAogICAgIHsgLTEs
IC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgNjcsIC0xIH0s
CiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC00
NjAsNyArNDU3LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4IEpTVAog
ICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsg
ODksIC0xIH0sCisgICAgeyA4OCwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0x
IH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTQ4MSw3ICs0NzgsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry
dWN0IENvbXBhY3RIYXNoSW5kZXggSlNUCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9
LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA4MiwgLTEgfSwKKyAgICB7IDgxLCAtMSB9LAogICAg
IHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtNDkxLDcg
KzQ4OCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1QKICAgICB7
IC0xLCAtMSB9LAogICAgIHsgNDUsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDc3LCAt
MSB9LAorICAgIHsgNzYsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAog
ICAgIHsgLTEsIC0xIH0sCkBAIC01MDMsMTAgKzUwMCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0
IENvbXBhY3RIYXNoSW5kZXggSlNUCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IDgsIDUxMiB9LAog
ICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxMzAsIC0xIH0sCisgICAgeyAxMjksIC0xIH0sCiAgICAg
eyAtMSwgLTEgfSwKICAgICB7IDU4LCA1MjggfSwKLSAgICB7IDEzNSwgLTEgfSwKKyAgICB7IDEz
NCwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEg
fSwKQEAgLTUxNSw5ICs1MTIsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5k
ZXggSlNUCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0s
Ci0gICAgeyAxMzEsIC0xIH0sCisgICAgeyAxMzAsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAg
ICB7IDEwMywgLTEgfSwKKyAgICB7IDEwMiwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTUzMCw5ICs1MjcsOSBAQCBzdGF0aWMgY29u
c3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUCiAgICAgeyAzOSwgNTE1IH0sCiAgICAgeyAt
MSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgMTEzLCAtMSB9LAotICAgIHsgOTAsIC0x
IH0sCi0gICAgeyAxMjAsIC0xIH0sCisgICAgeyAxMTIsIC0xIH0sCisgICAgeyA4OSwgLTEgfSwK
KyAgICB7IDExOSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAg
eyAtMSwgLTEgfSwKQEAgLTU2MSw4ICs1NTgsOCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBh
Y3RIYXNoSW5kZXggSlNUCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAxMjgsIC0xIH0sCi0gICAgeyAxMjMsIC0xIH0sCisgICAgeyAxMjcs
IC0xIH0sCisgICAgeyAxMjIsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9
LAogICAgIHsgLTEsIC0xIH0sCkBAIC01NzEsNyArNTY4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVj
dCBDb21wYWN0SGFzaEluZGV4IEpTVAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwK
ICAgICB7IC0xLCAtMSB9LAotICAgIHsgNzYsIC0xIH0sCisgICAgeyA3NSwgLTEgfSwKICAgICB7
IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTU4MCw3ICs1
NzcsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUCiAgICAgeyAt
MSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA4NCwgLTEg
fSwKKyAgICB7IDgzLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LApAQCAtNjAzLDcgKzYwMCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29t
cGFjdEhhc2hJbmRleCBKU1QKICAgICB7IC0xLCAtMSB9LAogICAgIHsgMCwgLTEgfSwKICAgICB7
IC0xLCAtMSB9LAotICAgIHsgOTksIC0xIH0sCisgICAgeyA5OCwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTYxMiw3ICs2MDksNyBA
QCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUCiAgICAgeyAyOCwgLTEg
fSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxMjQsIC0xIH0sCisg
ICAgeyAxMjMsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IDM1LCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCkBAIC02MjYsMTQgKzYyMywxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBh
Y3RIYXNoSW5kZXggSlNUCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCi0gICAgeyA4OCwgLTEgfSwKKyAgICB7IDg3LCAtMSB9LAogICAgIHsgLTEsIC0x
IH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAg
ICAgeyAtMSwgLTEgfSwKICAgICB7IDQ2LCA1MjEgfSwKLSAgICB7IDgwLCAtMSB9LAorICAgIHsg
NzksIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0x
IH0sCkBAIC02NDEsNyArNjM4LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaElu
ZGV4IEpTVAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9
LAotICAgIHsgNjksIC0xIH0sCisgICAgeyA2OCwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAg
IHsgNjIsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKQEAgLTY1MSw3ICs2NDgsNyBAQCBzdGF0aWMg
Y29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUCiAgICAgeyAtMSwgLTEgfSwKICAgICB7
IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA5NSwgLTEgfSwKKyAgICB7IDk0LCAt
MSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApA
QCAtNjY3LDEyICs2NjQsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBDb21wYWN0SGFzaEluZGV4
IEpTVAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IDU3LCAtMSB9LAot
ICAgIHsgNjgsIC0xIH0sCisgICAgeyA2NywgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsg
LTEsIC0xIH0sCi0gICAgeyAxMDcsIDUyNyB9LAorICAgIHsgMTA2LCA1MjcgfSwKICAgICB7IC0x
LCAtMSB9LAotICAgIHsgMTA4LCAtMSB9LAorICAgIHsgMTA3LCAtMSB9LAogICAgIHsgLTEsIC0x
IH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LApAQCAtNjkyLDcgKzY4OSw3IEBA
IHN0YXRpYyBjb25zdCBzdHJ1Y3QgQ29tcGFjdEhhc2hJbmRleCBKU1QKICAgICB7IC0xLCAtMSB9
LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDExMiwgLTEgfSwKKyAg
ICB7IDExMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAt
MSwgLTEgfSwKQEAgLTcwMSw3ICs2OTgsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RI
YXNoSW5kZXggSlNUCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEs
IC0xIH0sCi0gICAgeyAxMTgsIC0xIH0sCisgICAgeyAxMTcsIC0xIH0sCiAgICAgeyAtMSwgLTEg
fSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCkBAIC03MDksMjYgKzcwNiwyNiBA
QCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUCiAgICAgeyAtMSwgLTEg
fSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyA3OSwgLTEgfSwKKyAg
ICB7IDc4LCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0x
LCAtMSB9LAogICAgIHsgNjAsIC0xIH0sCiAgICAgeyA1MiwgLTEgfSwKICAgICB7IC0xLCAtMSB9
LAotICAgIHsgNzQsIC0xIH0sCi0gICAgeyAxMzIsIC0xIH0sCisgICAgeyA3MywgLTEgfSwKKyAg
ICB7IDEzMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAt
MSwgLTEgfSwKICAgICB7IDU0LCA1MTYgfSwKICAgICB7IC0xLCAtMSB9LAotICAgIHsgODUsIC0x
IH0sCisgICAgeyA4NCwgLTEgfSwKICAgICB7IDksIC0xIH0sCiAgICAgeyAtMSwgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCi0gICAgeyAxMDUsIC0xIH0sCisgICAgeyAx
MDQsIC0xIH0sCiAgICAgeyAyOSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0x
IH0sCkBAIC03NDksMjMgKzc0NiwyMyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNo
SW5kZXggSlNUCiAgICAgeyAtMSwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0x
IH0sCi0gICAgeyAxMDksIC0xIH0sCisgICAgeyAxMDgsIC0xIH0sCiAgICAgeyAxMywgNTE0IH0s
CiAgICAgeyA0MCwgLTEgfSwKLSAgICB7IDExMSwgLTEgfSwKKyAgICB7IDExMCwgLTEgfSwKICAg
ICB7IC0xLCAtMSB9LAogICAgIHsgNywgNTI1IH0sCiAgICAgeyAtMSwgLTEgfSwKLSAgICB7IDEy
NSwgLTEgfSwKLSAgICB7IDEwNiwgLTEgfSwKLSAgICB7IDc1LCA1MjAgfSwKKyAgICB7IDEyNCwg
LTEgfSwKKyAgICB7IDEwNSwgLTEgfSwKKyAgICB7IDc0LCA1MjAgfSwKICAgICB7IC0xLCAtMSB9
LAotICAgIHsgMTIyLCAtMSB9LAotICAgIHsgODMsIC0xIH0sCisgICAgeyAxMjEsIC0xIH0sCisg
ICAgeyA4MiwgLTEgfSwKICAgICB7IC0xLCAtMSB9LAogICAgIHsgLTEsIC0xIH0sCiAgICAgeyAt
MSwgLTEgfSwKLSAgICB7IDExOSwgLTEgfSwKKyAgICB7IDExOCwgLTEgfSwKICAgICB7IC0xLCAt
MSB9LAogICAgIHsgMTAsIDUxOSB9LAogICAgIHsgMTEsIC0xIH0sCkBAIC03NzUsMTcgKzc3Miwx
NyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IENvbXBhY3RIYXNoSW5kZXggSlNUCiAgICAgeyA1Niwg
LTEgfSwKICAgICB7IDYzLCAtMSB9LAogICAgIHsgNjYsIC0xIH0sCi0gICAgeyA4MSwgLTEgfSwK
LSAgICB7IDkxLCAtMSB9LAotICAgIHsgOTQsIC0xIH0sCisgICAgeyA4MCwgLTEgfSwKKyAgICB7
IDkwLCAtMSB9LAorICAgIHsgOTMsIC0xIH0sCisgICAgeyA5NiwgLTEgfSwKICAgICB7IDk3LCAt
MSB9LAotICAgIHsgOTgsIC0xIH0sCi0gICAgeyAxMDQsIC0xIH0sCisgICAgeyAxMDMsIC0xIH0s
CisgICAgeyAxMTQsIC0xIH0sCiAgICAgeyAxMTUsIC0xIH0sCi0gICAgeyAxMTYsIC0xIH0sCi0g
ICAgeyAxMjEsIC0xIH0sCi0gICAgeyAxMjksIC0xIH0sCi0gICAgeyAxMzMsIC0xIH0sCisgICAg
eyAxMjAsIC0xIH0sCisgICAgeyAxMjgsIC0xIH0sCisgICAgeyAxMzIsIC0xIH0sCiB9OwogCiAK
QEAgLTg2NCwyMyArODYxLDIyIEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RP
YmpQcm8KICAgICB7ICJhdHRyaWJ1dGUiLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBDdXN0b21B
Y2Nlc3NvciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKICAgICB7ICJhdHRyaWJ1dGVX
aXRoUmVzZXJ2ZWRFbnVtVHlwZSIsIERvbnREZWxldGUgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRy
aW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0T2JqQXR0cmlidXRlV2l0aFJlc2VydmVkRW51bVR5cGUpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpBdHRyaWJ1
dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZSkgfSwKICNpZiBFTkFCTEUoQ29uZGl0aW9uMSkKLSAgICB7
ICJDT05ESVRJT05BTF9DT05TVCIsIERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMs
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
T2JqQ09ORElUSU9OQUxfQ09OU1QpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5
U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAorICAgIHsgIkNPTkRJVElPTkFMX0NPTlNUIiwgRG9u
dERlbGV0ZSB8IFJlYWRPbmx5IHwgQ29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywgKGludHB0
cl90KSgwKSwgKGludHB0cl90KSAoMCkgfSwKICNlbHNlCiAgICAgeyAwLCAwLCBOb0ludHJpbnNp
YywgMCwgMCB9LAogI2VuZGlmCi0gICAgeyAiQ09OU1RfVkFMVUVfMCIsIERvbnREZWxldGUgfCBS
ZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfVkFMVUVfMCksIChpbnRwdHJfdCkgc3RhdGlj
X2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCi0gICAgeyAiQ09OU1Rf
VkFMVUVfMSIsIERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClz
dGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfVkFM
VUVfMSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KDApIH0sCi0gICAgeyAiQ09OU1RfVkFMVUVfMiIsIERvbnREZWxldGUgfCBSZWFkT25seSwg
Tm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVl
RnVuYz4oanNUZXN0T2JqQ09OU1RfVkFMVUVfMiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0
UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCi0gICAgeyAiQ09OU1RfVkFMVUVfNCIs
IERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfVkFMVUVfNCksIChp
bnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0s
Ci0gICAgeyAiQ09OU1RfVkFMVUVfOCIsIERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5z
aWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNU
ZXN0T2JqQ09OU1RfVkFMVUVfOCksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlT
bG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCi0gICAgeyAiQ09OU1RfVkFMVUVfOSIsIERvbnREZWxl
dGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfVkFMVUVfOSksIChpbnRwdHJfdCkg
c3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCi0gICAgeyAi
Q09OU1RfVkFMVUVfMTAiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIE5vSW50cmluc2ljLCAoaW50
cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNP
TlNUX1ZBTFVFXzEwKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1
dFZhbHVlRnVuYz4oMCkgfSwKLSAgICB7ICJDT05TVF9WQUxVRV8xMSIsIERvbnREZWxldGUgfCBS
ZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6
OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfVkFMVUVfMTEpLCAoaW50cHRyX3QpIHN0YXRp
Y19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAotICAgIHsgIkNPTlNU
X1ZBTFVFXzEyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDT05TVF9W
QUxVRV8xMiksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1
ZUZ1bmM+KDApIH0sCi0gICAgeyAiQ09OU1RfVkFMVUVfMTMiLCBEb250RGVsZXRlIHwgUmVhZE9u
bHksIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9iakNPTlNUX1ZBTFVFXzEzKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSwKLSAgICB7ICJDT05TVF9WQUxV
RV8xNCIsIERvbnREZWxldGUgfCBSZWFkT25seSwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0
aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ09OU1RfVkFMVUVf
MTQpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5j
PigwKSB9LAotICAgIHsgIkNPTlNUX0pBVkFTQ1JJUFQiLCBEb250RGVsZXRlIHwgUmVhZE9ubHks
IE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9iakNPTlNUX0pBVkFTQ1JJUFQpLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0
PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9LAotICAgIHsgInJlYWRvbmx5Iiwg
RG9udERlbGV0ZSB8IFJlYWRPbmx5LCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0
PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWFkb25seSksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0sCisgICAg
eyAiQ09OU1RfVkFMVUVfMCIsIERvbnREZWxldGUgfCBSZWFkT25seSB8IENvbnN0YW50SW50ZWdl
ciwgTm9JbnRyaW5zaWMsIChpbnRwdHJfdCkoMCksIChpbnRwdHJfdCkgKDApIH0sCisgICAgeyAi
Q09OU1RfVkFMVUVfMSIsIERvbnREZWxldGUgfCBSZWFkT25seSB8IENvbnN0YW50SW50ZWdlciwg
Tm9JbnRyaW5zaWMsIChpbnRwdHJfdCkoMSksIChpbnRwdHJfdCkgKDApIH0sCisgICAgeyAiQ09O
U1RfVkFMVUVfMiIsIERvbnREZWxldGUgfCBSZWFkT25seSB8IENvbnN0YW50SW50ZWdlciwgTm9J
bnRyaW5zaWMsIChpbnRwdHJfdCkoMiksIChpbnRwdHJfdCkgKDApIH0sCisgICAgeyAiQ09OU1Rf
VkFMVUVfNCIsIERvbnREZWxldGUgfCBSZWFkT25seSB8IENvbnN0YW50SW50ZWdlciwgTm9JbnRy
aW5zaWMsIChpbnRwdHJfdCkoNCksIChpbnRwdHJfdCkgKDApIH0sCisgICAgeyAiQ09OU1RfVkFM
VUVfOCIsIERvbnREZWxldGUgfCBSZWFkT25seSB8IENvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5z
aWMsIChpbnRwdHJfdCkoOCksIChpbnRwdHJfdCkgKDApIH0sCisgICAgeyAiQ09OU1RfVkFMVUVf
OSIsIERvbnREZWxldGUgfCBSZWFkT25seSB8IENvbnN0YW50SW50ZWdlciwgTm9JbnRyaW5zaWMs
IChpbnRwdHJfdCkoLTEpLCAoaW50cHRyX3QpICgwKSB9LAorICAgIHsgIkNPTlNUX1ZBTFVFXzEx
IiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgQ29uc3RhbnRJbnRlZ2VyLCBOb0ludHJpbnNpYywg
KGludHB0cl90KSgweGZmZmZmZmZmKSwgKGludHB0cl90KSAoMCkgfSwKKyAgICB7ICJDT05TVF9W
QUxVRV8xMiIsIERvbnREZWxldGUgfCBSZWFkT25seSB8IENvbnN0YW50SW50ZWdlciwgTm9JbnRy
aW5zaWMsIChpbnRwdHJfdCkoMHgwMSksIChpbnRwdHJfdCkgKDApIH0sCisgICAgeyAiQ09OU1Rf
VkFMVUVfMTMiLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBDb25zdGFudEludGVnZXIsIE5vSW50
cmluc2ljLCAoaW50cHRyX3QpKDBYMjApLCAoaW50cHRyX3QpICgwKSB9LAorICAgIHsgIkNPTlNU
X1ZBTFVFXzE0IiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5IHwgQ29uc3RhbnRJbnRlZ2VyLCBOb0lu
dHJpbnNpYywgKGludHB0cl90KSgweDFhYmMpLCAoaW50cHRyX3QpICgwKSB9LAorICAgIHsgIkNP
TlNUX0pBVkFTQ1JJUFQiLCBEb250RGVsZXRlIHwgUmVhZE9ubHkgfCBDb25zdGFudEludGVnZXIs
IE5vSW50cmluc2ljLCAoaW50cHRyX3QpKDE1KSwgKGludHB0cl90KSAoMCkgfSwKKyAgICB7ICJy
ZWFkb25seSIsIERvbnREZWxldGUgfCBSZWFkT25seSB8IENvbnN0YW50SW50ZWdlciwgTm9JbnRy
aW5zaWMsIChpbnRwdHJfdCkoMCksIChpbnRwdHJfdCkgKDApIH0sCiAgICAgeyAidm9pZE1ldGhv
ZCIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9uVm9pZE1ldGhvZCksIChpbnRw
dHJfdCkgKDApIH0sCiAgICAgeyAidm9pZE1ldGhvZFdpdGhBcmdzIiwgSlNDOjpGdW5jdGlvbiwg
Tm9JbnRyaW5zaWMsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0
T2JqUHJvdG90eXBlRnVuY3Rpb25Wb2lkTWV0aG9kV2l0aEFyZ3MpLCAoaW50cHRyX3QpICgzKSB9
LAogICAgIHsgImJ5dGVNZXRob2QiLCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0
cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlv
bkJ5dGVNZXRob2QpLCAoaW50cHRyX3QpICgwKSB9LApAQCAtOTU3LDcgKzk1Myw3IEBAIHN0YXRp
YyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpQcm8KICAgICB7ICJhbnkiLCBKU0M6OkZ1
bmN0aW9uLCBOb0ludHJpbnNpYywgKGludHB0cl90KXN0YXRpY19jYXN0PE5hdGl2ZUZ1bmN0aW9u
Pihqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbkFueSksIChpbnRwdHJfdCkgKDIpIH0sCiB9Owog
Ci1zdGF0aWMgY29uc3QgSGFzaFRhYmxlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxlID0geyAxMzYs
IDUxMSwgdHJ1ZSwgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXMsIDAsIEpTVGVzdE9ialBy
b3RvdHlwZVRhYmxlSW5kZXggfTsKK3N0YXRpYyBjb25zdCBIYXNoVGFibGUgSlNUZXN0T2JqUHJv
dG90eXBlVGFibGUgPSB7IDEzNSwgNTExLCB0cnVlLCBKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZVZh
bHVlcywgMCwgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVJbmRleCB9OwogY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdE9ialByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdE9iamVjdFByb3RvdHlwZSIsICZC
YXNlOjpzX2luZm8sICZKU1Rlc3RPYmpQcm90b3R5cGVUYWJsZSwgMCwgQ1JFQVRFX01FVEhPRF9U
QUJMRShKU1Rlc3RPYmpQcm90b3R5cGUpIH07CiAKIEpTT2JqZWN0KiBKU1Rlc3RPYmpQcm90b3R5
cGU6OnNlbGYoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQpAQCAtNDY1OCw4
MCArNDY1NCw2IEBAIHZvaWQgSlNUZXN0T2JqOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2UKICAg
ICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9jYWNoZWRBdHRyaWJ1dGUyKTsKIH0KIAot
Ly8gQ29uc3RhbnQgZ2V0dGVycwotCi0jaWYgRU5BQkxFKENvbmRpdGlvbjEpCi1FbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpDT05ESVRJT05BTF9DT05TVChFeGVjU3RhdGUqLCBKU09iamVjdCosIEVu
Y29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc051bWJlcigwKSk7Ci19Ci0KLSNlbmRpZgotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ09O
U1RfVkFMVUVfMChFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCi17Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigwKSk7Ci19Ci0K
LUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNPTlNUX1ZBTFVFXzEoRXhlY1N0YXRlKiwgSlNPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQotewotICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoMSkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDT05T
VF9WQUxVRV8yKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5
TmFtZSkKLXsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKDIpKTsKLX0KLQot
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ09OU1RfVkFMVUVfNChFeGVjU3RhdGUqLCBKU09iamVj
dCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc051bWJlcig0KSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNPTlNU
X1ZBTFVFXzgoRXhlY1N0YXRlKiwgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlO
YW1lKQotewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIoOCkpOwotfQotCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDT05TVF9WQUxVRV85KEV4ZWNTdGF0ZSosIEpTT2JqZWN0
KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFtZSkKLXsKLSAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzTnVtYmVyKC0xKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNPTlNU
X1ZBTFVFXzEwKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJv
cGVydHlOYW1lKQotewotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNTdHJpbmdPck51bGwo
ZXhlYywgU3RyaW5nKCJteSBjb25zdGFudCBzdHJpbmciKSkpOwotfQotCi1FbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpDT05TVF9WQUxVRV8xMShFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRK
U1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051
bWJlcigweGZmZmZmZmZmKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNPTlNUX1ZB
TFVFXzEyKEV4ZWNTdGF0ZSosIEpTT2JqZWN0KiwgRW5jb2RlZEpTVmFsdWUsIFByb3BlcnR5TmFt
ZSkKLXsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKDB4MDEpKTsKLX0KLQot
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ09OU1RfVkFMVUVfMTMoRXhlY1N0YXRlKiwgSlNPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSwgUHJvcGVydHlOYW1lKQotewotICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUoanNOdW1iZXIoMFgyMCkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpD
T05TVF9WQUxVRV8xNChFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9w
ZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigweDFhYmMp
KTsKLX0KLQotRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ09OU1RfSkFWQVNDUklQVChFeGVjU3Rh
dGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi17Ci0gICAgcmV0
dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigxNSkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RPYmpSZWFkb25seShFeGVjU3RhdGUqLCBKU09iamVjdCosIEVuY29kZWRKU1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCi17Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bWJlcigwKSk7
Ci19Ci0KIGJvb2wgSlNUZXN0T2JqT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3RzKEpT
Qzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0b3ImIHZpc2l0
b3IpCiB7CiAgICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oCShyZXZpc2lvbiAx
Njk5NjMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmgJKHdvcmtpbmcgY29weSkKQEAgLTM3MiwyNCArMzcyLDYgQEAgSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpBdHRyaWJ1dGUoSgogSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpB
dHRyaWJ1dGVXaXRoUmVzZXJ2ZWRFbnVtVHlwZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiB2b2lkIHNldEpT
VGVzdE9iakF0dHJpYnV0ZVdpdGhSZXNlcnZlZEVudW1UeXBlKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwog
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7
Ci0vLyBDb25zdGFudHMKLQotI2lmIEVOQUJMRShDb25kaXRpb24xKQotSlNDOjpFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpDT05ESVRJT05BTF9DT05TVChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci0jZW5kaWYK
LUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ09OU1RfVkFMVUVfMChKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFt
ZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNPTlNUX1ZBTFVFXzEoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0
eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDT05TVF9WQUxVRV8yKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ09OU1RfVkFMVUVfNChK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6
OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNPTlNUX1ZBTFVF
XzgoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwg
SlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpDT05TVF9W
QUxVRV85KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFs
dWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQ09O
U1RfVkFMVUVfMTAoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RP
YmpDT05TVF9WQUxVRV8xMShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakNPTlNUX1ZBTFVFXzEyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpT
Qzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLUpTQzo6RW5jb2RlZEpTVmFs
dWUganNUZXN0T2JqQ09OU1RfVkFMVUVfMTMoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotSlNDOjpFbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RPYmpDT05TVF9WQUxVRV8xNChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNP
YmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iakNPTlNUX0pBVkFTQ1JJUFQoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpSZWFkb25seShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAkocmV2aXNpb24gMTY5
OTYzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVz
dE9iai5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw2IEBAIGVudW0gewogICAgIERPTV9D
T05TVF9WQUxVRV80ID0gNCwKICAgICBET01fQ09OU1RfVkFMVUVfOCA9IDgsCiAgICAgRE9NX0NP
TlNUX1ZBTFVFXzkgPSAtMSwKLSAgICBET01fQ09OU1RfVkFMVUVfMTAgPSAibXkgY29uc3RhbnQg
c3RyaW5nIiwKICAgICBET01fQ09OU1RfVkFMVUVfMTEgPSAweGZmZmZmZmZmLAogICAgIERPTV9D
T05TVF9WQUxVRV8xMiA9IDB4MDEsCiAgICAgRE9NX0NPTlNUX1ZBTFVFXzEzID0gMFgyMCwK
</data>
<flag name="review"
          id="257601"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>