<?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>96429</bug_id>
          
          <creation_ts>2012-09-11 14:56:28 -0700</creation_ts>
          <short_desc>Add &apos;any&apos; type to V8 bindings as a synonym for DOMObject</short_desc>
          <delta_ts>2012-09-11 17:34:49 -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="Alec Flett">alecflett</reporter>
          <assigned_to name="Alec Flett">alecflett</assigned_to>
          <cc>abarth</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>717586</commentid>
    <comment_count>0</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-09-11 14:56:28 -0700</bug_when>
    <thetext>Add &apos;any&apos; type to V8 bindings as a synonym for DOMObject</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717596</commentid>
    <comment_count>1</comment_count>
      <attachid>163453</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-09-11 15:09:50 -0700</bug_when>
    <thetext>Created attachment 163453
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717599</commentid>
    <comment_count>2</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-09-11 15:10:43 -0700</bug_when>
    <thetext>I have no idea what I&apos;m doing.

Ok, I have some idea.

But I don&apos;t know how much of JSC I should worry about. 

haraken@ or abarth@ - can you offer any guidance?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717610</commentid>
    <comment_count>3</comment_count>
      <attachid>163453</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-11 15:24:21 -0700</bug_when>
    <thetext>Comment on attachment 163453
Patch

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

&gt; Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp:1369
&gt; +    impl-&gt;setAnyAttribute(SerializedScriptValue::create(exec, value, 0, 0));

This seems to imply that &quot;any&quot; maps to SerializedScriptValue is JSC.  Is that what you intend?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717720</commentid>
    <comment_count>4</comment_count>
      <attachid>163479</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-09-11 16:46:59 -0700</bug_when>
    <thetext>Created attachment 163479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717729</commentid>
    <comment_count>5</comment_count>
      <attachid>163479</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-11 16:50:25 -0700</bug_when>
    <thetext>Comment on attachment 163479
Patch

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

OK

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:251
&gt; +        or $type eq &quot;DOMString&quot; or $type eq &quot;DOMObject&quot; or $type eq &quot;any&quot; or$type eq &quot;Array&quot; or $type eq &quot;DOMTimeStamp&quot;) {

Nit: One space please after &apos;or&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717738</commentid>
    <comment_count>6</comment_count>
      <attachid>163483</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-09-11 17:01:03 -0700</bug_when>
    <thetext>Created attachment 163483
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717762</commentid>
    <comment_count>7</comment_count>
      <attachid>163483</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-11 17:34:46 -0700</bug_when>
    <thetext>Comment on attachment 163483
Patch for landing

Clearing flags on attachment: 163483

Committed r128248: &lt;http://trac.webkit.org/changeset/128248&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717763</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-11 17:34:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163453</attachid>
            <date>2012-09-11 15:09:50 -0700</date>
            <delta_ts>2012-09-11 16:46:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96429-20120911150925.patch</filename>
            <type>text/plain</type>
            <size>11575</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWNhZTY2ZjExM2ExZjk5
NWQxY2NiMDY4YzY2YjViOTQwMTY5NjI4OC4uODgwMjg5Nzg0ZTZmZmRjODU5Yjg5ZGE5MDM3OTU5
Mjg1ZDFlMDY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA5LTExICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgJ2FueScgdHlw
ZSB0byBWOCBiaW5kaW5ncyBhcyBhIHN5bm9ueW0gZm9yIERPTU9iamVjdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY0MjkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIHN1cHBvcnQgZm9yICdhbnkn
IGFzIGEgc3lub255bSB0byBET01PYmplY3QuCisKKyAgICAgICAgVGVzdDogVGVzdE9iai5pZGwg
aGFzIGFuIGF0dHJpYnV0ZSAnYW55QXR0cmlidXRlJy4KKworICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2V0TmF0aXZlVHlwZSk6CisgICAg
ICAgIChKU1ZhbHVlVG9OYXRpdmUpOgorICAgICAgICAoR2V0VjhIZWFkZXJOYW1lKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQW55QXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakFueUF0dHJpYnV0ZSk6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGVz
dE9ialY4SW50ZXJuYWw6OmNhY2hlZEF0dHJpYnV0ZTFBdHRyR2V0dGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpjYWNoZWRBdHRyaWJ1dGUyQXR0ckdldHRlcik6Cisg
ICAgICAgIChUZXN0T2JqVjhJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJ
bnRlcm5hbDo6YW55QXR0cmlidXRlQXR0ckdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0
T2JqVjhJbnRlcm5hbDo6YW55QXR0cmlidXRlQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3Jl
KToKKwogMjAxMi0wOS0wOSAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4K
IAogICAgICAgICBBZGQgU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKCkgYW5kIHVzZSBpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bQppbmRleCA5NGYxYTFiY2VjMzM2MmFmZjYwOGViYTc3NjUyYzdmODkyYjY4NDJkLi4wMjRlNjBl
MTc3NWI0Mzc5NjY5NmQwZDE1Y2VjZTM3YWNiZTZhMTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMzY2Miw3ICszNjYy
LDcgQEAgc3ViIEdldE5hdGl2ZVR5cGUKICAgICAjIEV2ZW50VGFyZ2V0IGNhbiBiZSBwYXNzZWQg
YXMgYSBwYXJhbWV0ZXIuCiAgICAgcmV0dXJuICJOb2RlKiIgaWYgJHR5cGUgZXEgIkV2ZW50VGFy
Z2V0IiBhbmQgJGlzUGFyYW1ldGVyOwogICAgIHJldHVybiAiZG91YmxlIiBpZiAkdHlwZSBlcSAi
RGF0ZSI7Ci0gICAgcmV0dXJuICJTY3JpcHRWYWx1ZSIgaWYgJHR5cGUgZXEgIkRPTU9iamVjdCI7
CisgICAgcmV0dXJuICJTY3JpcHRWYWx1ZSIgaWYgJHR5cGUgZXEgIkRPTU9iamVjdCIgb3IgJHR5
cGUgZXEgImFueSI7CiAgICAgcmV0dXJuICJEaWN0aW9uYXJ5IiBpZiAkdHlwZSBlcSAiRGljdGlv
bmFyeSI7CiAKICAgICByZXR1cm4gIlN0cmluZyIgaWYgJHR5cGUgZXEgIkRPTVVzZXJEYXRhIjsg
ICMgRklYTUU6IFRlbXBvcmFyeSBoYWNrPwpAQCAtMzc2MSw3ICszNzYxLDcgQEAgc3ViIEpTVmFs
dWVUb05hdGl2ZQogICAgICAgICByZXR1cm4gIkRpY3Rpb25hcnkoJHZhbHVlLCAkZ2V0SXNvbGF0
ZSkiOwogICAgIH0KIAotICAgIGlmICgkdHlwZSBlcSAiRE9NT2JqZWN0IikgeworICAgIGlmICgk
dHlwZSBlcSAiRE9NT2JqZWN0IiBvciAkdHlwZSBlcSAiYW55IikgewogICAgICAgICBBZGRUb0lt
cGxJbmNsdWRlcygiU2NyaXB0VmFsdWUuaCIpOwogICAgICAgICByZXR1cm4gIlNjcmlwdFZhbHVl
KCR2YWx1ZSkiOwogICAgIH0KQEAgLTM4MjIsNyArMzgyMiw3IEBAIHN1YiBHZXRWOEhlYWRlck5h
bWUKICAgICByZXR1cm4gIlY4RXZlbnQuaCIgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CiAg
ICAgcmV0dXJuICJFdmVudExpc3RlbmVyLmgiIGlmICR0eXBlIGVxICJFdmVudExpc3RlbmVyIjsK
ICAgICByZXR1cm4gIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIiBpZiAkdHlwZSBlcSAiU2VyaWFs
aXplZFNjcmlwdFZhbHVlIjsKLSAgICByZXR1cm4gIlNjcmlwdFZhbHVlLmgiIGlmICR0eXBlIGVx
ICJET01PYmplY3QiOworICAgIHJldHVybiAiU2NyaXB0VmFsdWUuaCIgaWYgJHR5cGUgZXEgIkRP
TU9iamVjdCIgb3IgJHR5cGUgZXEgImFueSI7CiAgICAgcmV0dXJuICJWOERPTVN0cmluZ0xpc3Qu
aCIgaWYgJHR5cGUgZXEgIkRPTVN0cmluZ1tdIjsKICAgICByZXR1cm4gIlY4JHt0eXBlfS5oIjsK
IH0KQEAgLTM5MjAsNiArMzkyMCw3IEBAIG15ICVub25fd3JhcHBlcl90eXBlcyA9ICgKICAgICAn
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcicgPT4gMSwKICAgICAnTm9kZUZpbHRlcicgPT4gMSwKICAg
ICAnU2VyaWFsaXplZFNjcmlwdFZhbHVlJyA9PiAxLAorICAgICdhbnknID0+IDEsCiAgICAgJ2Jv
b2xlYW4nID0+IDEsCiAgICAgJ2RvdWJsZScgPT4gMSwKICAgICAnZmxvYXQnID0+IDEsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwCmluZGV4IGZhZTg2ZDA4ZjllNzc5YTE1ZWIzMzY5MDdiMTgwYmI2NjdiMWZlOWIuLjlkZTE3
YmIwOGRiYzQ4NmZhYjQwZTYzYmQyZTc4MDc1MDQ1N2E0NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC0xMzUs
NiArMTM1LDcgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialRhYmxlVmFs
dWVzW10gPQogI2VuZGlmCiAgICAgeyAiY2FjaGVkQXR0cmlidXRlMSIsIERvbnREZWxldGUgfCBS
ZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxKSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0s
CiAgICAgeyAiY2FjaGVkQXR0cmlidXRlMiIsIERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0
cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDYWNo
ZWRBdHRyaWJ1dGUyKSwgKGludHB0cl90KTAsIE5vSW50cmluc2ljIH0sCisgICAgeyAiYW55QXR0
cmlidXRlIiwgRG9udERlbGV0ZSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6
R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpBbnlBdHRyaWJ1dGUpLCAoaW50cHRyX3Qpc2V0SlNUZXN0
T2JqQW55QXR0cmlidXRlLCBOb0ludHJpbnNpYyB9LAogICAgIHsgImNvbnRlbnREb2N1bWVudCIs
IERvbnREZWxldGUgfCBSZWFkT25seSwgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDb250ZW50RG9jdW1lbnQpLCAoaW50cHRyX3QpMCwg
Tm9JbnRyaW5zaWMgfSwKICAgICB7ICJtdXRhYmxlUG9pbnQiLCBEb250RGVsZXRlLCAoaW50cHRy
X3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iak11dGFi
bGVQb2ludCksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQsIE5vSW50cmluc2lj
IH0sCiAgICAgeyAiaW1tdXRhYmxlUG9pbnQiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGlj
X2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakltbXV0YWJsZVBvaW50
KSwgKGludHB0cl90KXNldEpTVGVzdE9iakltbXV0YWJsZVBvaW50LCBOb0ludHJpbnNpYyB9LApA
QCAtODYzLDYgKzg2NCwxNiBAQCBKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTIoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBQcm9wZXJ0eU5hbQogfQogCiAKK0pTVmFs
dWUganNUZXN0T2JqQW55QXR0cmlidXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFz
ZSwgUHJvcGVydHlOYW1lKQoreworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxK
U1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkpOworICAgIFVOVVNFRF9QQVJBTShleGVjKTsK
KyAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8VGVzdE9iaio+KGNhc3RlZFRoaXMtPmlt
cGwoKSk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBpbXBsLT5hbnlBdHRyaWJ1dGUoKSA/IGltcGwt
PmFueUF0dHJpYnV0ZSgpLT5kZXNlcmlhbGl6ZShleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmpl
Y3QoKSwgMCkgOiBqc051bGwoKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCisKIEpTVmFsdWUg
anNUZXN0T2JqQ29udGVudERvY3VtZW50KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFz
ZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxK
U1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkpOwpAQCAtMTM1MCw2ICsxMzYxLDE1IEBAIHZv
aWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIHRoaXNPYmplCiAKICNlbmRpZgogCit2b2lkIHNldEpTVGVzdE9iakFueUF0
dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZh
bHVlKQoreworICAgIFVOVVNFRF9QQVJBTShleGVjKTsKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRo
aXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVjdCk7CisgICAgVGVzdE9iaiogaW1wbCA9
IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOworICAgIGltcGwtPnNl
dEFueUF0dHJpYnV0ZShTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShleGVjLCB2YWx1ZSwg
MCwgMCkpOworfQorCisKIHZvaWQgc2V0SlNUZXN0T2JqTXV0YWJsZVBvaW50KEV4ZWNTdGF0ZSog
ZXhlYywgSlNPYmplY3QqIHRoaXNPYmplY3QsIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgVU5VU0VE
X1BBUkFNKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5oCmluZGV4IDc2NTQ5ZDQ2MTllOGViZGE5YTFhNzk5MDU1MzUzMjU2
ODVhOTYxZGIuLjU2YjAxOWExYWZkMjZhODIyMjc2NTZmOTI0NGRkOGZlMDA5NzJiNzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmgKQEAgLTMxNCw2ICszMTQsOCBAQCB2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZD
b25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKUwogI2VuZGlmCiBK
U0M6OkpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMShKU0M6OkV4ZWNTdGF0ZSosIEpT
Qzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNh
Y2hlZEF0dHJpYnV0ZTIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHJvcGVy
dHlOYW1lKTsKK0pTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpBbnlBdHRyaWJ1dGUoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKK3ZvaWQgc2V0SlNUZXN0T2Jq
QW55QXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1
ZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2JqQ29udGVudERvY3VtZW50KEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0
T2JqTXV0YWJsZVBvaW50KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7CiB2b2lkIHNldEpTVGVzdE9iak11dGFibGVQb2ludChKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IGM1M2NjZmQ3Y2M0MDZiNDA2MTIw
Y2E3ZjA0OWVmMWI0ZmMwODU2OTcuLjkzN2QwZDYzY2IyYTQ4NzViMDM5ZWYxODg1NjFlZWY0ZDYy
ZGVkMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dE9iai5pZGwKQEAgLTE2Nyw2ICsxNjcsOCBAQCBtb2R1bGUgdGVzdCB7CiAjaWYgZGVmaW5lZChU
RVNUSU5HX1Y4KSB8fCBkZWZpbmVkKFRFU1RJTkdfSlMpCiAgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbQ2FjaGVkQXR0cmlidXRlXSBhbnkgY2FjaGVkQXR0cmlidXRlMTsKICAgICAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIFtDYWNoZWRBdHRyaWJ1dGVdIGFueSBjYWNoZWRBdHRyaWJ1dGUyOwor
CisgICAgICAgIGF0dHJpYnV0ZSBhbnkgYW55QXR0cmlidXRlOwogI2VuZGlmCiAKICNpZiBkZWZp
bmVkKFRFU1RJTkdfVjgpIHx8IGRlZmluZWQoVEVTVElOR19KUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKaW5kZXggNDZi
NDE1ZDI4MWE1NzhkMGYwYmE2ODI5NTU1YWM4NmE1ZTVhNDRhYy4uYjdkMDM2ZmNlZmYxOGZmNmEw
M2UxNzYwMjI0ODljMGU3MTJiOTcyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNp
bmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2tGYWN0
b3J5LmgiCiAjaW5jbHVkZSAiU2NyaXB0UHJvZmlsZS5oIgorI2luY2x1ZGUgIlNjcmlwdFZhbHVl
LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiVjhCaW5k
aW5nLmgiCiAjaW5jbHVkZSAiVjhET01TdHJpbmdMaXN0LmgiCkBAIC01MCw3ICs1MSw2IEBACiAj
aW5jbHVkZSAiVjhUZXN0Q2FsbGJhY2suaCIKICNpbmNsdWRlICJWOFRlc3RTdWJPYmouaCIKICNp
bmNsdWRlICJWOGEuaCIKLSNpbmNsdWRlICJWOGFueS5oIgogI2luY2x1ZGUgIlY4Yi5oIgogI2lu
Y2x1ZGUgIlY4Ym9vbC5oIgogI2luY2x1ZGUgIlY4ZC5oIgpAQCAtODIyLDI4ICs4MjIsMzAgQEAg
c3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjYWNoZWRBdHRyaWJ1dGUxQXR0ckdldHRlcih2
ODo6TG9jYWw8djg6OlN0cmluZz4gbmEKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmNh
Y2hlZEF0dHJpYnV0ZTEuX2dldCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9O
YXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgUmVmUHRyPGFueT4gcmVzdWx0ID0gaW1wLT5jYWNo
ZWRBdHRyaWJ1dGUxKCk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdyYXBwZXIgPSByZXN1
bHQuZ2V0KCkgPyBnZXRET01PYmplY3RNYXAoaW5mby5HZXRJc29sYXRlKCkpLmdldChyZXN1bHQu
Z2V0KCkpIDogdjhVbmRlZmluZWQoKTsKLSAgICBpZiAod3JhcHBlci5Jc0VtcHR5KCkpIHsKLSAg
ICAgICAgd3JhcHBlciA9IHRvVjgocmVzdWx0LmdldCgpLCBpbmZvLkhvbGRlcigpLCBpbmZvLkdl
dElzb2xhdGUoKSk7Ci0gICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCi0gICAgICAgICAg
ICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKGluZm8uSG9sZGVyKCksICJj
YWNoZWRBdHRyaWJ1dGUxIiwgd3JhcHBlcik7Ci0gICAgfQotICAgIHJldHVybiB3cmFwcGVyOwor
ICAgIHJldHVybiBpbXAtPmNhY2hlZEF0dHJpYnV0ZTEoKS52OFZhbHVlKCk7CiB9CiAKIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY2FjaGVkQXR0cmlidXRlMkF0dHJHZXR0ZXIodjg6Okxv
Y2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAg
ICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5jYWNoZWRBdHRyaWJ1dGUyLl9nZXQiKTsKICAgICBU
ZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOwotICAgIFJl
ZlB0cjxhbnk+IHJlc3VsdCA9IGltcC0+Y2FjaGVkQXR0cmlidXRlMigpOwotICAgIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB3cmFwcGVyID0gcmVzdWx0LmdldCgpID8gZ2V0RE9NT2JqZWN0TWFwKGlu
Zm8uR2V0SXNvbGF0ZSgpKS5nZXQocmVzdWx0LmdldCgpKSA6IHY4VW5kZWZpbmVkKCk7Ci0gICAg
aWYgKHdyYXBwZXIuSXNFbXB0eSgpKSB7Ci0gICAgICAgIHdyYXBwZXIgPSB0b1Y4KHJlc3VsdC5n
ZXQoKSwgaW5mby5Ib2xkZXIoKSwgaW5mby5HZXRJc29sYXRlKCkpOwotICAgICAgICBpZiAoIXdy
YXBwZXIuSXNFbXB0eSgpKQotICAgICAgICAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRl
blJlZmVyZW5jZShpbmZvLkhvbGRlcigpLCAiY2FjaGVkQXR0cmlidXRlMiIsIHdyYXBwZXIpOwot
ICAgIH0KLSAgICByZXR1cm4gd3JhcHBlcjsKKyAgICByZXR1cm4gaW1wLT5jYWNoZWRBdHRyaWJ1
dGUyKCkudjhWYWx1ZSgpOworfQorCitzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFueUF0
dHJpYnV0ZUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpB
Y2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5hbnlBdHRy
aWJ1dGUuX2dldCIpOworICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5m
by5Ib2xkZXIoKSk7CisgICAgcmV0dXJuIGltcC0+YW55QXR0cmlidXRlKCkudjhWYWx1ZSgpOwor
fQorCitzdGF0aWMgdm9pZCBhbnlBdHRyaWJ1dGVBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3Ry
aW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29y
SW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmFueUF0dHJpYnV0ZS5f
c2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRl
cigpKTsKKyAgICBTY3JpcHRWYWx1ZSB2ID0gU2NyaXB0VmFsdWUodmFsdWUpOworICAgIGltcC0+
c2V0QW55QXR0cmlidXRlKFdURjo6Z2V0UHRyKHYpKTsKKyAgICByZXR1cm47CiB9CiAKIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZW5hYmxlZEF0UnVudGltZUF0dHIxQXR0ckdldHRlcih2
ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykK
QEAgLTIwMzIsNiArMjAzNCw4IEBAIHN0YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246OkJh
dGNoZWRBdHRyaWJ1dGUgVGVzdE9iakF0dHJzW10gPSB7CiAgICAgeyJjYWNoZWRBdHRyaWJ1dGUx
IiwgVGVzdE9ialY4SW50ZXJuYWw6OmNhY2hlZEF0dHJpYnV0ZTFBdHRyR2V0dGVyLCAwLCAwIC8q
IG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCks
IHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGlu
c3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ2NhY2hlZEF0dHJpYnV0ZTInIChUeXBlOiAn
cmVhZG9ubHkgYXR0cmlidXRlJyBFeHRBdHRyOiAnQ2FjaGVkQXR0cmlidXRlJykKICAgICB7ImNh
Y2hlZEF0dHJpYnV0ZTIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6Y2FjaGVkQXR0cmlidXRlMkF0dHJH
ZXR0ZXIsIDAsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+
KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9u
ZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAorICAgIC8vIEF0dHJpYnV0ZSAnYW55QXR0cmlidXRl
JyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCisgICAgeyJhbnlBdHRyaWJ1dGUiLCBU
ZXN0T2JqVjhJbnRlcm5hbDo6YW55QXR0cmlidXRlQXR0ckdldHRlciwgVGVzdE9ialY4SW50ZXJu
YWw6OmFueUF0dHJpYnV0ZUF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8
djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5
QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJp
YnV0ZSAnZmxvYXRBcnJheScgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQogICAgIHsi
ZmxvYXRBcnJheSIsIFRlc3RPYmpWOEludGVybmFsOjpmbG9hdEFycmF5QXR0ckdldHRlciwgVGVz
dE9ialY4SW50ZXJuYWw6OmZsb2F0QXJyYXlBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0
YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4
OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAg
ICAvLyBBdHRyaWJ1dGUgJ2RvdWJsZUFycmF5JyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjog
JycpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163479</attachid>
            <date>2012-09-11 16:46:59 -0700</date>
            <delta_ts>2012-09-11 17:00:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96429-20120911164634.patch</filename>
            <type>text/plain</type>
            <size>25008</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTc1NGZlZGNjNTlkOGIz
OGE5MDExYTdlZGVlYjE0MTI4Nzg0NTU4Ni4uYzEzMGRjMTMwNDYxZWE0YWIzODk3OTE5ZDMwZTY1
MGQyMzI4MDM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTA5LTExICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgJ2FueScgdHlw
ZSB0byBWOCBiaW5kaW5ncyBhcyBhIHN5bm9ueW0gZm9yIERPTU9iamVjdCAgICAgICAgICAgICAg
ICAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NDI5
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisK
KyAgICAgICAgQWRkcyBzdXBwb3J0IGZvciAnYW55JyBhcyBhIHN5bm9ueW0gdG8gRE9NT2JqZWN0
LiAgICAgICAgICAgICAgICAgICAgICAgCisKKyAgICAgICAgVGVzdDogVGVzdE9iai5pZGwgaGFz
IGFuIGF0dHJpYnV0ZSAnYW55QXR0cmlidXRlJy4gICAgICAgICAgICAgICAgICAgICAgCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEFk
ZEluY2x1ZGVzRm9yVHlwZSk6CisgICAgICAgIChKU1ZhbHVlVG9OYXRpdmUpOgorICAgICAgICAo
TmF0aXZlVG9KU1ZhbHVlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbToKKyAgICAgICAgKEdldE5hdGl2ZVR5cGUpOgorICAgICAgICAoSlNWYWx1ZVRvTmF0
aXZlKToKKyAgICAgICAgKEdldFY4SGVhZGVyTmFtZSk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkRPTVRlc3RPYmo6
OmFueUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJET01UZXN0T2JqOjpzZXRBbnlBdHRyaWJ1dGUp
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmou
Y3BwOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9nZXRfcHJvcGVydHkpOgorICAgICAg
ICAod2Via2l0X2RvbV90ZXN0X29ial9jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF9kb21f
dGVzdF9vYmpfZ2V0X2FueV9hdHRyaWJ1dGUpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29i
al9zZXRfYW55X2F0dHJpYnV0ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dP
YmplY3QvV2ViS2l0RE9NVGVzdE9iai5oOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
Ojpqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9i
akNhY2hlZEF0dHJpYnV0ZTIpOgorICAgICAgICAoV2ViQ29yZTo6anNUZXN0T2JqQW55QXR0cmli
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OnNldEpTVGVzdE9iakFueUF0dHJpYnV0ZSk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5o
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW06Cisg
ICAgICAgICgtW0RPTVRlc3RPYmogYW55QXR0cmlidXRlXSk6CisgICAgICAgICgtW0RPTVRlc3RP
Ymogc2V0QW55QXR0cmlidXRlOl0pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0T2JqLmlkbDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpjYWNoZWRBdHRyaWJ1
dGUxQXR0ckdldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6Y2Fj
aGVkQXR0cmlidXRlMkF0dHJHZXR0ZXIpOgorICAgICAgICAoVGVzdE9ialY4SW50ZXJuYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmFueUF0dHJpYnV0ZUF0dHJHZXR0
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmFueUF0dHJpYnV0ZUF0
dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDktMTEgIFNlcmdpbyBWaWxs
YXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gV2ViS2l0R3Rr
KyBjcmFzaGVzIHdpdGggbm9uLVVURjggSFRUUCBoZWFkZXIgbmFtZXMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggNzg0YjAz
MjZjY2E0NzkxZjA1NjkyNTVjZjk3YmQ3MzE1MTgzMzYzOS4uYzQ4OTY4ZjgxOGM0NjQ3MTJjMGE1
ZGEwYWVhYWMwMjU2NDE4ZWU4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KQEAgLTI0OCw3ICsyNDgsNyBAQCBzdWIgQWRkSW5j
bHVkZXNGb3JUeXBlCiAgICAgIyBXaGVuIHdlJ3JlIGZpbmlzaGVkIHdpdGggdGhlIG9uZS1maWxl
LXBlci1jbGFzcwogICAgICMgcmVvcmdhbml6YXRpb24sIHdlIHdvbid0IG5lZWQgdGhlc2Ugc3Bl
Y2lhbCBjYXNlcy4KICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklzUHJpbWl0aXZlVHlwZSgkdHlw
ZSkgb3IgJGNvZGVHZW5lcmF0b3ItPlNraXBJbmNsdWRlSGVhZGVyKCR0eXBlKQotICAgICAgICBv
ciAkdHlwZSBlcSAiRE9NU3RyaW5nIiBvciAkdHlwZSBlcSAiRE9NT2JqZWN0IiBvciAkdHlwZSBl
cSAiQXJyYXkiIG9yICR0eXBlIGVxICJET01UaW1lU3RhbXAiKSB7CisgICAgICAgIG9yICR0eXBl
IGVxICJET01TdHJpbmciIG9yICR0eXBlIGVxICJET01PYmplY3QiIG9yICR0eXBlIGVxICJhbnki
IG9yJHR5cGUgZXEgIkFycmF5IiBvciAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIikgewogICAgIH0g
ZWxzaWYgKCR0eXBlID1+IC9TVkdQYXRoU2VnLykgewogICAgICAgICBteSAkam9pbmVkTmFtZSA9
ICR0eXBlOwogICAgICAgICAkam9pbmVkTmFtZSA9fiBzL0Fic3xSZWwvLzsKQEAgLTI5MzksNiAr
MjkzOSw3IEBAIG15ICVuYXRpdmVUeXBlID0gKAogICAgICJTZXJpYWxpemVkU2NyaXB0VmFsdWUi
ID0+ICJSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiIsCiAgICAgIklEQktleSIgPT4gIlBh
c3NSZWZQdHI8SURCS2V5PiIsCiAgICAgIkRpY3Rpb25hcnkiID0+ICJEaWN0aW9uYXJ5IiwKKyAg
ICAiYW55IiA9PiAiU2NyaXB0VmFsdWUiLAogICAgICJib29sZWFuIiA9PiAiYm9vbCIsCiAgICAg
ImRvdWJsZSIgPT4gImRvdWJsZSIsCiAgICAgImZsb2F0IiA9PiAiZmxvYXQiLApAQCAtMzA1NCw3
ICszMDU1LDcgQEAgc3ViIEpTVmFsdWVUb05hdGl2ZQogICAgICAgICByZXR1cm4gIiR2YWx1ZS5p
c0VtcHR5KCkgPyBTdHJpbmcoKSA6ICR2YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyki
OwogICAgIH0KIAotICAgIGlmICgkdHlwZSBlcSAiRE9NT2JqZWN0IikgeworICAgIGlmICgkdHlw
ZSBlcSAiRE9NT2JqZWN0IiBvciAkdHlwZSBlcSAiYW55IikgewogICAgICAgICByZXR1cm4gImV4
ZWMtPmdsb2JhbERhdGEoKSwgJHZhbHVlIjsKICAgICB9CiAKQEAgLTMwNjgsNyArMzA2OSw3IEBA
IHN1YiBKU1ZhbHVlVG9OYXRpdmUKICAgICAgICAgcmV0dXJuICJNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyOjpjcmVhdGUoU2NyaXB0VmFsdWUoZXhlYy0+Z2xvYmFsRGF0YSgpLCAiIC4gJHZhbHVlIC4i
KSkiOwogICAgIH0KIAotICAgIGlmICgkdHlwZSBlcSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIiBv
ciAkdHlwZSBlcSAiYW55IikgeworICAgIGlmICgkdHlwZSBlcSAiU2VyaWFsaXplZFNjcmlwdFZh
bHVlIikgewogICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgiLCAkY29uZGl0aW9uYWwpOwogICAgICAgICByZXR1cm4gIlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZTo6Y3JlYXRlKGV4ZWMsICR2YWx1ZSwgMCwgMCkiOwogICAgIH0KQEAgLTMxODMsNyArMzE4NCw3
IEBAIHN1YiBOYXRpdmVUb0pTVmFsdWUKICAgICAgICAgcmV0dXJuICJqc0FycmF5KGV4ZWMsICR0
aGlzVmFsdWUtPmdsb2JhbE9iamVjdCgpLCAkdmFsdWUpIjsKICAgICB9CiAKLSAgICBpZiAoJHR5
cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAgICBpZiAoJHR5cGUgZXEgIkRPTU9iamVjdCIgb3IgJHR5
cGUgZXEgImFueSIpIHsKICAgICAgICAgaWYgKCRpbXBsQ2xhc3NOYW1lIGVxICJEb2N1bWVudCIp
IHsKICAgICAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5oIiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggYzI5Y2M1
YzBmODJiMTllY2M2MWNjMTg5OWJlMTg4OTUzMjZlMzg5Yi4uYjMxYmI5Nzk5ZGJiY2E2YzVjOWQ4
MDhmNzQ1NzU2ZjE2NzBjZTg3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTM2NDgsNyArMzY0OCw3IEBAIHN1YiBHZXRO
YXRpdmVUeXBlCiAgICAgIyBFdmVudFRhcmdldCBjYW4gYmUgcGFzc2VkIGFzIGEgcGFyYW1ldGVy
LgogICAgIHJldHVybiAiTm9kZSoiIGlmICR0eXBlIGVxICJFdmVudFRhcmdldCIgYW5kICRpc1Bh
cmFtZXRlcjsKICAgICByZXR1cm4gImRvdWJsZSIgaWYgJHR5cGUgZXEgIkRhdGUiOwotICAgIHJl
dHVybiAiU2NyaXB0VmFsdWUiIGlmICR0eXBlIGVxICJET01PYmplY3QiOworICAgIHJldHVybiAi
U2NyaXB0VmFsdWUiIGlmICR0eXBlIGVxICJET01PYmplY3QiIG9yICR0eXBlIGVxICJhbnkiOwog
ICAgIHJldHVybiAiRGljdGlvbmFyeSIgaWYgJHR5cGUgZXEgIkRpY3Rpb25hcnkiOwogCiAgICAg
cmV0dXJuICJTdHJpbmciIGlmICR0eXBlIGVxICJET01Vc2VyRGF0YSI7ICAjIEZJWE1FOiBUZW1w
b3JhcnkgaGFjaz8KQEAgLTM3NDcsNyArMzc0Nyw3IEBAIHN1YiBKU1ZhbHVlVG9OYXRpdmUKICAg
ICAgICAgcmV0dXJuICJEaWN0aW9uYXJ5KCR2YWx1ZSwgJGdldElzb2xhdGUpIjsKICAgICB9CiAK
LSAgICBpZiAoJHR5cGUgZXEgIkRPTU9iamVjdCIpIHsKKyAgICBpZiAoJHR5cGUgZXEgIkRPTU9i
amVjdCIgb3IgJHR5cGUgZXEgImFueSIpIHsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlNj
cmlwdFZhbHVlLmgiKTsKICAgICAgICAgcmV0dXJuICJTY3JpcHRWYWx1ZSgkdmFsdWUpIjsKICAg
ICB9CkBAIC0zODA4LDcgKzM4MDgsNyBAQCBzdWIgR2V0VjhIZWFkZXJOYW1lCiAgICAgcmV0dXJu
ICJWOEV2ZW50LmgiIGlmICR0eXBlIGVxICJET01UaW1lU3RhbXAiOwogICAgIHJldHVybiAiRXZl
bnRMaXN0ZW5lci5oIiBpZiAkdHlwZSBlcSAiRXZlbnRMaXN0ZW5lciI7CiAgICAgcmV0dXJuICJT
ZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIgaWYgJHR5cGUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSI7Ci0gICAgcmV0dXJuICJTY3JpcHRWYWx1ZS5oIiBpZiAkdHlwZSBlcSAiRE9NT2JqZWN0IjsK
KyAgICByZXR1cm4gIlNjcmlwdFZhbHVlLmgiIGlmICR0eXBlIGVxICJET01PYmplY3QiIG9yICR0
eXBlIGVxICJhbnkiOwogICAgIHJldHVybiAiVjhET01TdHJpbmdMaXN0LmgiIGlmICR0eXBlIGVx
ICJET01TdHJpbmdbXSI7CiAgICAgcmV0dXJuICJWOCR7dHlwZX0uaCI7CiB9CkBAIC0zOTA2LDYg
KzM5MDYsNyBAQCBteSAlbm9uX3dyYXBwZXJfdHlwZXMgPSAoCiAgICAgJ01lZGlhUXVlcnlMaXN0
TGlzdGVuZXInID0+IDEsCiAgICAgJ05vZGVGaWx0ZXInID0+IDEsCiAgICAgJ1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZScgPT4gMSwKKyAgICAnYW55JyA9PiAxLAogICAgICdib29sZWFuJyA9PiAxLAog
ICAgICdkb3VibGUnID0+IDEsCiAgICAgJ2Zsb2F0JyA9PiAxLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAK
aW5kZXggYWE4MTE5NWJiNGNlZGI5NDU4ZDc0NmZiMzIxMDRlNDk1MDgwZWM0Yi4uMGNmNjc2NTk5
YzYzYmYxMjVjMWQ0OWJjYWEwYzgzM2M4NTMxODEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCkBA
IC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiV2ViRE9NU1ZHUG9pbnQuaCIKICNpbmNsdWRlICJX
ZWJET01TdHJpbmcuaCIKICNpbmNsdWRlICJXZWJET01hLmgiCisjaW5jbHVkZSAiV2ViRE9NYW55
LmgiCiAjaW5jbHVkZSAiV2ViRE9NYi5oIgogI2luY2x1ZGUgIldlYkRPTWJvb2wuaCIKICNpbmNs
dWRlICJXZWJET01kLmgiCkBAIC00Miw2ICs0Myw3IEBACiAjaW5jbHVkZSAiV2ViRXhjZXB0aW9u
SGFuZGxlci5oIgogI2luY2x1ZGUgIldlYk5hdGl2ZUV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRl
ICJhLmgiCisjaW5jbHVkZSAiYW55LmgiCiAjaW5jbHVkZSAiYi5oIgogI2luY2x1ZGUgImJvb2wu
aCIKICNpbmNsdWRlICJkLmgiCkBAIC01MzksNiArNTQxLDIyIEBAIHZvaWQgV2ViRE9NVGVzdE9i
ajo6c2V0Q29uZGl0aW9uYWxBdHRyMyhpbnQgbmV3Q29uZGl0aW9uYWxBdHRyMykKIH0KIAogI2Vu
ZGlmCitXZWJET01hbnkgV2ViRE9NVGVzdE9iajo6YW55QXR0cmlidXRlKCkgY29uc3QKK3sKKyAg
ICBpZiAoIWltcGwoKSkKKyAgICAgICAgcmV0dXJuIFdlYkRPTWFueSgpOworCisgICAgcmV0dXJu
IHRvV2ViS2l0KFdURjo6Z2V0UHRyKGltcGwoKS0+YW55QXR0cmlidXRlKCkpKTsKK30KKwordm9p
ZCBXZWJET01UZXN0T2JqOjpzZXRBbnlBdHRyaWJ1dGUoY29uc3QgV2ViRE9NYW55JiBuZXdBbnlB
dHRyaWJ1dGUpCit7CisgICAgaWYgKCFpbXBsKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlt
cGwoKS0+c2V0QW55QXR0cmlidXRlKHRvV2ViQ29yZShuZXdBbnlBdHRyaWJ1dGUpKTsKK30KKwog
V2ViRE9NRG9jdW1lbnQgV2ViRE9NVGVzdE9iajo6Y29udGVudERvY3VtZW50KCkgY29uc3QKIHsK
ICAgICBpZiAoIWltcGwoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKaW5kZXggMDBmMDYwMDJkNzMzZjk2YmU1
YmMwODkxMTU0MGFlM2U0NTY5NzdmYy4uZDU1ZmY3ODY1NTFlYmQzYzc0YWQxYTk2ODgzMmQyMDI5
YmNhYzUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0NQUC9XZWJET01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmgKQEAgLTM4LDYgKzM4LDcgQEAgY2xhc3MgV2ViRE9N
U1ZHUG9pbnQ7CiBjbGFzcyBXZWJET01TdHJpbmc7CiBjbGFzcyBXZWJET01UZXN0T2JqOwogY2xh
c3MgV2ViRE9NYTsKK2NsYXNzIFdlYkRPTWFueTsKIGNsYXNzIFdlYkRPTWI7CiBjbGFzcyBXZWJE
T01ib29sOwogY2xhc3MgV2ViRE9NZDsKQEAgLTEyOCw2ICsxMjksOCBAQCBwdWJsaWM6CiAgICAg
aW50IGNvbmRpdGlvbmFsQXR0cjMoKSBjb25zdDsKICAgICB2b2lkIHNldENvbmRpdGlvbmFsQXR0
cjMoaW50KTsKICNlbmRpZgorICAgIFdlYkRPTWFueSBhbnlBdHRyaWJ1dGUoKSBjb25zdDsKKyAg
ICB2b2lkIHNldEFueUF0dHJpYnV0ZShjb25zdCBXZWJET01hbnkmKTsKICAgICBXZWJET01Eb2N1
bWVudCBjb250ZW50RG9jdW1lbnQoKSBjb25zdDsKICAgICBXZWJET01TVkdQb2ludCBtdXRhYmxl
UG9pbnQoKSBjb25zdDsKICAgICB2b2lkIHNldE11dGFibGVQb2ludChjb25zdCBXZWJET01TVkdQ
b2ludCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAppbmRleCBjZWZiYzA0YTQ5
MDhiNTY4YWM2ZDYxMTBkMzg3YmU3YWQ2ZTgzNzc4Li4xMjA0ZGZiNTBkYmQzZGM5YTQyM2NhMWQ1
YWFiNTczMTgzNWViOTM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcApAQCAt
MjksNiArMjksNyBAQAogI2luY2x1ZGUgIlNWR1BvaW50LmgiCiAjaW5jbHVkZSAiVGVzdE9iai5o
IgogI2luY2x1ZGUgIldlYktpdERPTUJpbmRpbmcuaCIKKyNpbmNsdWRlICJhbnkuaCIKICNpbmNs
dWRlICJib29sLmgiCiAjaW5jbHVkZSAiZ29iamVjdC9Db252ZXJ0VG9VVEY4U3RyaW5nLmgiCiAj
aW5jbHVkZSAid2Via2l0L1dlYktpdERPTURpY3Rpb25hcnkuaCIKQEAgLTQ0LDYgKzQ1LDggQEAK
ICNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0RE9NVGVzdE9ialByaXZhdGUuaCIKICNpbmNsdWRlICJ3
ZWJraXQvV2ViS2l0RE9NYS5oIgogI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRET01hUHJpdmF0ZS5o
IgorI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRET01hbnkuaCIKKyNpbmNsdWRlICJ3ZWJraXQvV2Vi
S2l0RE9NYW55UHJpdmF0ZS5oIgogI2luY2x1ZGUgIndlYmtpdC9XZWJLaXRET01iLmgiCiAjaW5j
bHVkZSAid2Via2l0L1dlYktpdERPTWJQcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0L1dlYktp
dERPTWJvb2wuaCIKQEAgLTEzNCw2ICsxMzcsNyBAQCBlbnVtIHsKICAgICBQUk9QX0NPTkRJVElP
TkFMX0FUVFIxLAogICAgIFBST1BfQ09ORElUSU9OQUxfQVRUUjIsCiAgICAgUFJPUF9DT05ESVRJ
T05BTF9BVFRSMywKKyAgICBQUk9QX0FOWV9BVFRSSUJVVEUsCiAgICAgUFJPUF9DT05URU5UX0RP
Q1VNRU5ULAogICAgIFBST1BfTVVUQUJMRV9QT0lOVCwKICAgICBQUk9QX0lNTVVUQUJMRV9QT0lO
VCwKQEAgLTQ4MSw2ICs0ODUsMTEgQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X29ial9n
ZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLAogI2VuZGlmIC8q
IEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikgKi8KICAgICAgICAgYnJl
YWs7CiAgICAgfQorICAgIGNhc2UgUFJPUF9BTllfQVRUUklCVVRFOiB7CisgICAgICAgIFJlZlB0
cjxXZWJDb3JlOjphbnk+IHB0ciA9IGNvcmVTZWxmLT5hbnlBdHRyaWJ1dGUoKTsKKyAgICAgICAg
Z192YWx1ZV9zZXRfb2JqZWN0KHZhbHVlLCBXZWJLaXQ6OmtpdChwdHIuZ2V0KCkpKTsKKyAgICAg
ICAgYnJlYWs7CisgICAgfQogICAgIGNhc2UgUFJPUF9DT05URU5UX0RPQ1VNRU5UOiB7CiAgICAg
ICAgIFJlZlB0cjxXZWJDb3JlOjpEb2N1bWVudD4gcHRyID0gY29yZVNlbGYtPmNvbnRlbnREb2N1
bWVudCgpOwogICAgICAgICBnX3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIFdlYktpdDo6a2l0KHB0
ci5nZXQoKSkpOwpAQCAtODI1LDYgKzgzNCwxMyBAQCBHX01BWExPTkcsIC8qIG1heCAqLwogMCwg
LyogZGVmYXVsdCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CiAgICAgZ19vYmplY3Rf
Y2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0Q2xhc3MsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBQUk9QX0FOWV9BVFRSSUJVVEUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnX3BhcmFtX3NwZWNfb2JqZWN0KCJhbnktYXR0cmlidXRlIiwgLyog
bmFtZSAqLworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAidGVzdF9vYmpfYW55LWF0dHJpYnV0ZSIsIC8qIHNob3J0IGRlc2NyaXB0aW9u
ICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJyZWFkLXdyaXRlICBXZWJLaXRET01hbnkqIFRlc3RPYmouYW55LWF0dHJpYnV0ZSIs
IC8qIGxvbmdlciAtIGNvdWxkIGRvIHdpdGggc29tZSBleHRyYSBkb2Mgc3R1ZmYgaGVyZSAqLwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXRUJLSVRfVFlQRV9ET01fQU5ZLCAvKiBnb2JqZWN0IHR5cGUgKi8KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFN
X1JFQURXUklURSkpOworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVj
dENsYXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJPUF9DT05URU5U
X0RPQ1VNRU5ULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ19wYXJhbV9z
cGVjX29iamVjdCgiY29udGVudC1kb2N1bWVudCIsIC8qIG5hbWUgKi8KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3Rfb2JqX2Nv
bnRlbnQtZG9jdW1lbnQiLCAvKiBzaG9ydCBkZXNjcmlwdGlvbiAqLwpAQCAtMjI0MCw2ICsyMjU2
LDMyIEBAIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2NvbmRpdGlvbmFsX2F0dHIzKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYsIGdsb25nIHZhbHVlKQogI2VuZGlmIC8qIEVOQUJMRShDb25kaXRpb24x
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMikgKi8KIH0KIAorV2ViS2l0RE9NYW55Kgord2Via2l0X2Rv
bV90ZXN0X29ial9nZXRfYW55X2F0dHJpYnV0ZShXZWJLaXRET01UZXN0T2JqKiBzZWxmKQorewor
ICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHNlbGYsIDApOworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0
Ojpjb3JlKHNlbGYpOworICAgIFJlZlB0cjxXZWJDb3JlOjphbnk+IGdvYmplY3RSZXN1bHQgPSBX
VEY6OmdldFB0cihpdGVtLT5hbnlBdHRyaWJ1dGUoKSk7CisgICAgV2ViS2l0RE9NYW55KiByZXN1
bHQgPSBXZWJLaXQ6OmtpdChnb2JqZWN0UmVzdWx0LmdldCgpKTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCit2b2lkCit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hbnlfYXR0cmlidXRlKFdlYktp
dERPTVRlc3RPYmoqIHNlbGYsIFdlYktpdERPTWFueSogdmFsdWUpCit7CisgICAgZ19yZXR1cm5f
aWZfZmFpbChzZWxmKTsKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKKyAgICBn
X3JldHVybl9pZl9mYWlsKHZhbHVlKTsKKyAgICBXZWJDb3JlOjphbnkqIGNvbnZlcnRlZFZhbHVl
ID0gMDsKKyAgICBpZiAodmFsdWUpIHsKKyAgICAgICAgY29udmVydGVkVmFsdWUgPSBXZWJLaXQ6
OmNvcmUodmFsdWUpOworICAgICAgICBnX3JldHVybl9pZl9mYWlsKGNvbnZlcnRlZFZhbHVlKTsK
KyAgICB9CisgICAgaXRlbS0+c2V0QW55QXR0cmlidXRlKGNvbnZlcnRlZFZhbHVlKTsKK30KKwog
V2ViS2l0RE9NRG9jdW1lbnQqCiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9jb250ZW50X2RvY3Vt
ZW50KFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2Jq
LmgKaW5kZXggNDZiODVkMGJlNWE4ZDBhMWRiM2UzNmU1NDczYTMzYjFhNjljY2ZlZC4uMzk1ZmE3
N2E2OTE0NGQyMDg2ZGViNTQzMmFjNjA5YjJlNGNjZDk2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERP
TVRlc3RPYmouaApAQCAtMTIwMCw2ICsxMjAwLDI3IEBAIFdFQktJVF9BUEkgdm9pZAogd2Via2l0
X2RvbV90ZXN0X29ial9zZXRfY29uZGl0aW9uYWxfYXR0cjMoV2ViS2l0RE9NVGVzdE9iaiogc2Vs
ZiwgZ2xvbmcgdmFsdWUpOwogCiAvKioKKyAqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2FueV9h
dHRyaWJ1dGU6CisgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagorICoKKyAqIFJldHVybnM6
ICh0cmFuc2ZlciBub25lKToKKyAqCisqKi8KK1dFQktJVF9BUEkgV2ViS2l0RE9NYW55Kgord2Vi
a2l0X2RvbV90ZXN0X29ial9nZXRfYW55X2F0dHJpYnV0ZShXZWJLaXRET01UZXN0T2JqKiBzZWxm
KTsKKworLyoqCisgKiB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hbnlfYXR0cmlidXRlOgorICog
QHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoKKyAqIEB2YWx1ZTogQSAjV2ViS2l0RE9NYW55Cisg
KgorICogUmV0dXJuczogKHRyYW5zZmVyIG5vbmUpOgorICoKKyoqLworV0VCS0lUX0FQSSB2b2lk
Cit3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hbnlfYXR0cmlidXRlKFdlYktpdERPTVRlc3RPYmoq
IHNlbGYsIFdlYktpdERPTWFueSogdmFsdWUpOworCisvKioKICAqIHdlYmtpdF9kb21fdGVzdF9v
YmpfZ2V0X2NvbnRlbnRfZG9jdW1lbnQ6CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagog
ICoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5jcHAKaW5kZXggZmFlODZkMDhmOWU3NzlhMTVlYjMzNjkwN2IxODBiYjY2N2IxZmU5
Yi4uMWNhZTJjODBjZWFmOWVlMzc1NDI0NDNiZmFmYjYzZjVlZjhkZTlmYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAK
QEAgLTEzNSw2ICsxMzUsNyBAQCBzdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0T2Jq
VGFibGVWYWx1ZXNbXSA9CiAjZW5kaWYKICAgICB7ICJjYWNoZWRBdHRyaWJ1dGUxIiwgRG9udERl
bGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRW
YWx1ZUZ1bmM+KGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTEpLCAoaW50cHRyX3QpMCwgTm9JbnRy
aW5zaWMgfSwKICAgICB7ICJjYWNoZWRBdHRyaWJ1dGUyIiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5
LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVz
dE9iakNhY2hlZEF0dHJpYnV0ZTIpLCAoaW50cHRyX3QpMCwgTm9JbnRyaW5zaWMgfSwKKyAgICB7
ICJhbnlBdHRyaWJ1dGUiLCBEb250RGVsZXRlLCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVy
dHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakFueUF0dHJpYnV0ZSksIChpbnRwdHJfdClz
ZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUsIE5vSW50cmluc2ljIH0sCiAgICAgeyAiY29udGVudERv
Y3VtZW50IiwgRG9udERlbGV0ZSB8IFJlYWRPbmx5LCAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJv
cGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9iakNvbnRlbnREb2N1bWVudCksIChpbnRw
dHJfdCkwLCBOb0ludHJpbnNpYyB9LAogICAgIHsgIm11dGFibGVQb2ludCIsIERvbnREZWxldGUs
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
T2JqTXV0YWJsZVBvaW50KSwgKGludHB0cl90KXNldEpTVGVzdE9iak11dGFibGVQb2ludCwgTm9J
bnRyaW5zaWMgfSwKICAgICB7ICJpbW11dGFibGVQb2ludCIsIERvbnREZWxldGUsIChpbnRwdHJf
dClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqSW1tdXRh
YmxlUG9pbnQpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqSW1tdXRhYmxlUG9pbnQsIE5vSW50cmlu
c2ljIH0sCkBAIC04NDQsNyArODQ1LDcgQEAgSlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1
dGUxKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW0KICAgICBp
ZiAoSlNWYWx1ZSBjYWNoZWRWYWx1ZSA9IGNhc3RlZFRoaXMtPm1fY2FjaGVkQXR0cmlidXRlMS5n
ZXQoKSkKICAgICAgICAgcmV0dXJuIGNhY2hlZFZhbHVlOwogICAgIFRlc3RPYmoqIGltcGwgPSBz
dGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBKU1ZhbHVlIHJl
c3VsdCA9IGltcGwtPmNhY2hlZEF0dHJpYnV0ZTEoKSA/IGltcGwtPmNhY2hlZEF0dHJpYnV0ZTEo
KS0+ZGVzZXJpYWxpemUoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIDApIDoganNO
dWxsKCk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSAoaW1wbC0+Y2FjaGVkQXR0cmlidXRlMSgpLmhh
c05vVmFsdWUoKSA/IGpzTnVsbCgpIDogaW1wbC0+Y2FjaGVkQXR0cmlidXRlMSgpLmpzVmFsdWUo
KSk7CiAgICAgY2FzdGVkVGhpcy0+bV9jYWNoZWRBdHRyaWJ1dGUxLnNldChleGVjLT5nbG9iYWxE
YXRhKCksIGNhc3RlZFRoaXMsIHJlc3VsdCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTg1
NywxMiArODU4LDIyIEBAIEpTVmFsdWUganNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMihFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtCiAgICAgaWYgKEpTVmFsdWUg
Y2FjaGVkVmFsdWUgPSBjYXN0ZWRUaGlzLT5tX2NhY2hlZEF0dHJpYnV0ZTIuZ2V0KCkpCiAgICAg
ICAgIHJldHVybiBjYWNoZWRWYWx1ZTsKICAgICBUZXN0T2JqKiBpbXBsID0gc3RhdGljX2Nhc3Q8
VGVzdE9iaio+KGNhc3RlZFRoaXMtPmltcGwoKSk7Ci0gICAgSlNWYWx1ZSByZXN1bHQgPSBpbXBs
LT5jYWNoZWRBdHRyaWJ1dGUyKCkgPyBpbXBsLT5jYWNoZWRBdHRyaWJ1dGUyKCktPmRlc2VyaWFs
aXplKGV4ZWMsIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpLCAwKSA6IGpzTnVsbCgpOworICAg
IEpTVmFsdWUgcmVzdWx0ID0gKGltcGwtPmNhY2hlZEF0dHJpYnV0ZTIoKS5oYXNOb1ZhbHVlKCkg
PyBqc051bGwoKSA6IGltcGwtPmNhY2hlZEF0dHJpYnV0ZTIoKS5qc1ZhbHVlKCkpOwogICAgIGNh
c3RlZFRoaXMtPm1fY2FjaGVkQXR0cmlidXRlMi5zZXQoZXhlYy0+Z2xvYmFsRGF0YSgpLCBjYXN0
ZWRUaGlzLCByZXN1bHQpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIAorSlNWYWx1ZSBqc1Rl
c3RPYmpBbnlBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBQcm9w
ZXJ0eU5hbWUpCit7CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9i
aio+KGFzT2JqZWN0KHNsb3RCYXNlKSk7CisgICAgVU5VU0VEX1BBUkFNKGV4ZWMpOworICAgIFRl
c3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsK
KyAgICBKU1ZhbHVlIHJlc3VsdCA9IChpbXBsLT5hbnlBdHRyaWJ1dGUoKS5oYXNOb1ZhbHVlKCkg
PyBqc051bGwoKSA6IGltcGwtPmFueUF0dHJpYnV0ZSgpLmpzVmFsdWUoKSk7CisgICAgcmV0dXJu
IHJlc3VsdDsKK30KKworCiBKU1ZhbHVlIGpzVGVzdE9iakNvbnRlbnREb2N1bWVudChFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3BlcnR5TmFtZSkKIHsKICAgICBKU1Rlc3RP
YmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsK
QEAgLTEzNTAsNiArMTM2MSwxNSBAQCB2b2lkIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsQXR0cjZD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZQogCiAjZW5kaWYK
IAordm9pZCBzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUoRXhlY1N0YXRlKiBleGVjLCBKU09iamVj
dCogdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oZXhlYyk7
CisgICAgSlNUZXN0T2JqKiBjYXN0ZWRUaGlzID0ganNDYXN0PEpTVGVzdE9iaio+KHRoaXNPYmpl
Y3QpOworICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxUZXN0T2JqKj4oY2FzdGVkVGhp
cy0+aW1wbCgpKTsKKyAgICBpbXBsLT5zZXRBbnlBdHRyaWJ1dGUoZXhlYy0+Z2xvYmFsRGF0YSgp
LCB2YWx1ZSk7Cit9CisKKwogdm9pZCBzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQoRXhlY1N0YXRl
KiBleGVjLCBKU09iamVjdCogdGhpc09iamVjdCwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBVTlVT
RURfUEFSQU0oZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmgKaW5kZXggNzY1NDlkNDYxOWU4ZWJkYTlhMWE3OTkwNTUzNTMy
NTY4NWE5NjFkYi4uNTZiMDE5YTFhZmQyNmE4MjIyNzY1NmY5MjQ0ZGQ4ZmUwMDk3MmI3NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouaApAQCAtMzE0LDYgKzMxNCw4IEBAIHZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRy
NkNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTCiAjZW5kaWYK
IEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUxKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBKU0M6OkpTVmFsdWUganNUZXN0T2Jq
Q2FjaGVkQXR0cmlidXRlMihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOworSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakFueUF0dHJpYnV0ZShKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RP
YmpBbnlBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1Zh
bHVlKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpDb250ZW50RG9jdW1lbnQoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIEpTQzo6SlNWYWx1ZSBqc1Rl
c3RPYmpNdXRhYmxlUG9pbnQoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHJv
cGVydHlOYW1lKTsKIHZvaWQgc2V0SlNUZXN0T2JqTXV0YWJsZVBvaW50KEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpKU09iamVjdCosIEpTQzo6SlNWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKaW5kZXggMDhjOTA2
ZGJlMTJkZDViNGM2NGEzNjA5YmZlODRmNTNiNTFmMDhmZC4uNmE5MDk5MTFjYzhiYjBhYzAzMWM3
MDEyOWE0MTkxNjJkNjVlZWNhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaApAQCAtMzgsNiArMzgsNyBAQAogQGNs
YXNzIERPTVRlc3RPYmplY3RCQ29uc3RydWN0b3I7CiBAY2xhc3MgRE9NVGVzdE9iamVjdENDb25z
dHJ1Y3RvcjsKIEBjbGFzcyBET01hOworQGNsYXNzIERPTWFueTsKIEBjbGFzcyBET01iOwogQGNs
YXNzIERPTWJvb2w7CiBAY2xhc3MgRE9NZDsKQEAgLTEwNCw2ICsxMDUsNyBAQCBlbnVtIHsKIEBw
cm9wZXJ0eShyZXRhaW4pIERPTVRlc3RPYmplY3RBQ29uc3RydWN0b3IgKmNvbmRpdGlvbmFsQXR0
cjQ7CiBAcHJvcGVydHkocmV0YWluKSBET01UZXN0T2JqZWN0QkNvbnN0cnVjdG9yICpjb25kaXRp
b25hbEF0dHI1OwogQHByb3BlcnR5KHJldGFpbikgRE9NVGVzdE9iamVjdENDb25zdHJ1Y3RvciAq
Y29uZGl0aW9uYWxBdHRyNjsKK0Bwcm9wZXJ0eShyZXRhaW4pIERPTWFueSAqYW55QXR0cmlidXRl
OwogQHByb3BlcnR5KHJlYWRvbmx5LCByZXRhaW4pIERPTURvY3VtZW50ICpjb250ZW50RG9jdW1l
bnQ7CiBAcHJvcGVydHkocmV0YWluKSBET01TVkdQb2ludCAqbXV0YWJsZVBvaW50OwogQHByb3Bl
cnR5KHJldGFpbikgRE9NU1ZHUG9pbnQgKmltbXV0YWJsZVBvaW50OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KaW5k
ZXggNGJkMDQwMWNkZWE1NmVhYmI2OTZhOGExNTllNDUyYWE4NGY1YTM0Yy4uOGIyYmNmMDBiMWY5
NjQxM2M5MGM5MDkwMGQ1MGY4OGM4ZWFkNmQ2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCkBAIC00NSw2ICs0
NSw3IEBACiAjaW1wb3J0ICJET01UZXN0T2JqZWN0QkNvbnN0cnVjdG9ySW50ZXJuYWwuaCIKICNp
bXBvcnQgIkRPTVRlc3RPYmplY3RDQ29uc3RydWN0b3JJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9N
YUludGVybmFsLmgiCisjaW1wb3J0ICJET01hbnlJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NYklu
dGVybmFsLmgiCiAjaW1wb3J0ICJET01ib29sSW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTWRJbnRl
cm5hbC5oIgpAQCAtNjksNiArNzAsNyBAQAogI2ltcG9ydCAiV2ViQ29yZU9iakNFeHRyYXMuaCIK
ICNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKICNpbXBvcnQgImEuaCIKKyNpbXBv
cnQgImFueS5oIgogI2ltcG9ydCAiYi5oIgogI2ltcG9ydCAiYm9vbC5oIgogI2ltcG9ydCAiZC5o
IgpAQCAtNjIzLDYgKzYyNSwyMCBAQAogfQogI2VuZGlmCiAKKy0gKERPTWFueSAqKWFueUF0dHJp
YnV0ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPmFueUF0dHJpYnV0ZSgpKSk7Cit9CisKKy0gKHZv
aWQpc2V0QW55QXR0cmlidXRlOihET01hbnkgKiluZXdBbnlBdHRyaWJ1dGUKK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgQVNTRVJUKG5ld0FueUF0dHJp
YnV0ZSk7CisKKyAgICBJTVBMLT5zZXRBbnlBdHRyaWJ1dGUoY29yZShuZXdBbnlBdHRyaWJ1dGUp
KTsKK30KKwogLSAoRE9NRG9jdW1lbnQgKiljb250ZW50RG9jdW1lbnQKIHsKICAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggYzUzY2NmZDdjYzQwNmI0MDYxMjBj
YTdmMDQ5ZWYxYjRmYzA4NTY5Ny4uMTg3NzVmNzAzZDVlMDc0YmYyMjljZDI3ZjBmYWMzNjRlOGY4
MDJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0
T2JqLmlkbApAQCAtMTY4LDYgKzE2OCw4IEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFtDYWNoZWRBdHRyaWJ1dGVdIGFueSBjYWNoZWRBdHRyaWJ1dGUxOwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NhY2hlZEF0dHJpYnV0ZV0gYW55IGNhY2hlZEF0dHJp
YnV0ZTI7CiAjZW5kaWYKKyAgICAgICAgCisgICAgICAgIGF0dHJpYnV0ZSBhbnkgYW55QXR0cmli
dXRlOwogCiAjaWYgZGVmaW5lZChURVNUSU5HX1Y4KSB8fCBkZWZpbmVkKFRFU1RJTkdfSlMpCiAg
ICAgICAgIC8vIE92ZXJsb2FkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAppbmRleCA1ZmQzMjNlZWU0ZjY3NTgyNjU1ZjU2
M2VjMjFhNjI0OTczNGUzZGUyLi5hZjQxZmNjYTdiNDMwNjljMWZkZTRlMjEwZDAwM2M3NzZiN2Yy
OTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0T2JqLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0T2JqLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlNjcmlwdENhbGxT
dGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCIKICNpbmNsdWRlICJT
Y3JpcHRQcm9maWxlLmgiCisjaW5jbHVkZSAiU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJTZXJp
YWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKICNpbmNsdWRlICJW
OERPTVN0cmluZ0xpc3QuaCIKQEAgLTQ5LDcgKzUwLDYgQEAKICNpbmNsdWRlICJWOFRlc3RDYWxs
YmFjay5oIgogI2luY2x1ZGUgIlY4VGVzdFN1Yk9iai5oIgogI2luY2x1ZGUgIlY4YS5oIgotI2lu
Y2x1ZGUgIlY4YW55LmgiCiAjaW5jbHVkZSAiVjhiLmgiCiAjaW5jbHVkZSAiVjhib29sLmgiCiAj
aW5jbHVkZSAiVjhkLmgiCkBAIC04MDEsMjggKzgwMSwzMCBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGNhY2hlZEF0dHJpYnV0ZTFBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5n
PiBuYQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouY2FjaGVkQXR0cmlidXRlMS5fZ2V0
Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigp
KTsKLSAgICBSZWZQdHI8YW55PiByZXN1bHQgPSBpbXAtPmNhY2hlZEF0dHJpYnV0ZTEoKTsKLSAg
ICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd3JhcHBlciA9IHJlc3VsdC5nZXQoKSA/IGdldERPTU9i
amVjdE1hcChpbmZvLkdldElzb2xhdGUoKSkuZ2V0KHJlc3VsdC5nZXQoKSkgOiB2OFVuZGVmaW5l
ZCgpOwotICAgIGlmICh3cmFwcGVyLklzRW1wdHkoKSkgewotICAgICAgICB3cmFwcGVyID0gdG9W
OChyZXN1bHQuZ2V0KCksIGluZm8uSG9sZGVyKCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKLSAgICAg
ICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKLSAgICAgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0
TmFtZWRIaWRkZW5SZWZlcmVuY2UoaW5mby5Ib2xkZXIoKSwgImNhY2hlZEF0dHJpYnV0ZTEiLCB3
cmFwcGVyKTsKLSAgICB9Ci0gICAgcmV0dXJuIHdyYXBwZXI7CisgICAgcmV0dXJuIGltcC0+Y2Fj
aGVkQXR0cmlidXRlMSgpLnY4VmFsdWUoKTsKIH0KIAogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBjYWNoZWRBdHRyaWJ1dGUyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFt
ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5U
ZXN0T2JqLmNhY2hlZEF0dHJpYnV0ZTIuX2dldCIpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVz
dE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7Ci0gICAgUmVmUHRyPGFueT4gcmVzdWx0ID0g
aW1wLT5jYWNoZWRBdHRyaWJ1dGUyKCk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdyYXBw
ZXIgPSByZXN1bHQuZ2V0KCkgPyBnZXRET01PYmplY3RNYXAoaW5mby5HZXRJc29sYXRlKCkpLmdl
dChyZXN1bHQuZ2V0KCkpIDogdjhVbmRlZmluZWQoKTsKLSAgICBpZiAod3JhcHBlci5Jc0VtcHR5
KCkpIHsKLSAgICAgICAgd3JhcHBlciA9IHRvVjgocmVzdWx0LmdldCgpLCBpbmZvLkhvbGRlcigp
LCBpbmZvLkdldElzb2xhdGUoKSk7Ci0gICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCi0g
ICAgICAgICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKGluZm8uSG9s
ZGVyKCksICJjYWNoZWRBdHRyaWJ1dGUyIiwgd3JhcHBlcik7Ci0gICAgfQotICAgIHJldHVybiB3
cmFwcGVyOworICAgIHJldHVybiBpbXAtPmNhY2hlZEF0dHJpYnV0ZTIoKS52OFZhbHVlKCk7Cit9
CisKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYW55QXR0cmlidXRlQXR0ckdldHRlcih2
ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykK
K3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmFueUF0dHJpYnV0ZS5fZ2V0Iik7CisgICAg
VGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBy
ZXR1cm4gaW1wLT5hbnlBdHRyaWJ1dGUoKS52OFZhbHVlKCk7Cit9CisKK3N0YXRpYyB2b2lkIGFu
eUF0dHJpYnV0ZUF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2Nh
bDx2ODo6VmFsdWU+IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAg
IElOQ19TVEFUUygiRE9NLlRlc3RPYmouYW55QXR0cmlidXRlLl9zZXQiKTsKKyAgICBUZXN0T2Jq
KiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIFNjcmlwdFZh
bHVlIHYgPSBTY3JpcHRWYWx1ZSh2YWx1ZSk7CisgICAgaW1wLT5zZXRBbnlBdHRyaWJ1dGUoV1RG
OjpnZXRQdHIodikpOworICAgIHJldHVybjsKIH0KIAogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBlbmFibGVkQXRSdW50aW1lQXR0cjFBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5n
PiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQpAQCAtMjAwMyw2ICsyMDA1LDgg
QEAgc3RhdGljIGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZEF0dHJpYnV0ZSBUZXN0
T2JqQXR0cnNbXSA9IHsKICAgICB7ImNhY2hlZEF0dHJpYnV0ZTEiLCBUZXN0T2JqVjhJbnRlcm5h
bDo6Y2FjaGVkQXR0cmlidXRlMUF0dHJHZXR0ZXIsIDAsIDAgLyogbm8gZGF0YSAqLywgc3RhdGlj
X2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlBy
b3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8v
IEF0dHJpYnV0ZSAnY2FjaGVkQXR0cmlidXRlMicgKFR5cGU6ICdyZWFkb25seSBhdHRyaWJ1dGUn
IEV4dEF0dHI6ICdDYWNoZWRBdHRyaWJ1dGUnKQogICAgIHsiY2FjaGVkQXR0cmlidXRlMiIsIFRl
c3RPYmpWOEludGVybmFsOjpjYWNoZWRBdHRyaWJ1dGUyQXR0ckdldHRlciwgMCwgMCAvKiBubyBk
YXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0
aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5j
ZSAqL30sCisgICAgLy8gQXR0cmlidXRlICdhbnlBdHRyaWJ1dGUnIChUeXBlOiAnYXR0cmlidXRl
JyBFeHRBdHRyOiAnJykKKyAgICB7ImFueUF0dHJpYnV0ZSIsIFRlc3RPYmpWOEludGVybmFsOjph
bnlBdHRyaWJ1dGVBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5hbDo6YW55QXR0cmlidXRlQXR0
clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4o
djg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25l
KSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICdmbG9hdEFycmF5JyAo
VHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCiAgICAgeyJmbG9hdEFycmF5IiwgVGVzdE9i
alY4SW50ZXJuYWw6OmZsb2F0QXJyYXlBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5hbDo6Zmxv
YXRBcnJheUF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vz
c0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRl
Pih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAnZG91
YmxlQXJyYXknIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163483</attachid>
            <date>2012-09-11 17:01:03 -0700</date>
            <delta_ts>2012-09-11 17:34:46 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-96429-20120911170037.patch</filename>
            <type>text/plain</type>
            <size>25007</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTc1NGZlZGNjNTlkOGIz
OGE5MDExYTdlZGVlYjE0MTI4Nzg0NTU4Ni4uOWNiZTgxYWY0ZTkzNDE1ZDU3N2FmZTFjNWYzNjVl
MTk2MzQwMWQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDEyLTA5LTExICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgJ2FueScgdHlw
ZSB0byBWOCBiaW5kaW5ncyBhcyBhIHN5bm9ueW0gZm9yIERPTU9iamVjdCAgICAgICAgICAgICAg
ICAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NDI5
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VudGFy
byBIYXJhLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorCisg
ICAgICAgIEFkZHMgc3VwcG9ydCBmb3IgJ2FueScgYXMgYSBzeW5vbnltIHRvIERPTU9iamVjdC4g
ICAgICAgICAgICAgICAgICAgICAgIAorCisgICAgICAgIFRlc3Q6IFRlc3RPYmouaWRsIGhhcyBh
biBhdHRyaWJ1dGUgJ2FueUF0dHJpYnV0ZScuICAgICAgICAgICAgICAgICAgICAgIAorCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChBZGRJ
bmNsdWRlc0ZvclR5cGUpOgorICAgICAgICAoSlNWYWx1ZVRvTmF0aXZlKToKKyAgICAgICAgKE5h
dGl2ZVRvSlNWYWx1ZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG06CisgICAgICAgIChHZXROYXRpdmVUeXBlKToKKyAgICAgICAgKEpTVmFsdWVUb05hdGl2
ZSk6CisgICAgICAgIChHZXRWOEhlYWRlck5hbWUpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJET01UZXN0T2JqOjph
bnlBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViRE9NVGVzdE9iajo6c2V0QW55QXR0cmlidXRlKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNw
cDoKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAg
KHdlYmtpdF9kb21fdGVzdF9vYmpfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rl
c3Rfb2JqX2dldF9hbnlfYXR0cmlidXRlKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpf
c2V0X2FueV9hdHRyaWJ1dGUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2Jq
ZWN0L1dlYktpdERPTVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
anNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMSk6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RPYmpD
YWNoZWRBdHRyaWJ1dGUyKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9iakFueUF0dHJpYnV0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpBbnlBdHRyaWJ1dGUpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouaDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tOgorICAg
ICAgICAoLVtET01UZXN0T2JqIGFueUF0dHJpYnV0ZV0pOgorICAgICAgICAoLVtET01UZXN0T2Jq
IHNldEFueUF0dHJpYnV0ZTpdKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dE9iai5pZGw6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6Y2FjaGVkQXR0cmlidXRl
MUF0dHJHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmNhY2hl
ZEF0dHJpYnV0ZTJBdHRyR2V0dGVyKToKKyAgICAgICAgKFRlc3RPYmpWOEludGVybmFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjphbnlBdHRyaWJ1dGVBdHRyR2V0dGVy
KToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjphbnlBdHRyaWJ1dGVBdHRy
U2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmUpOgorCiAyMDEyLTA5LTExICBTZXJnaW8gVmlsbGFy
IFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFdlYktpdEd0aysg
Y3Jhc2hlcyB3aXRoIG5vbi1VVEY4IEhUVFAgaGVhZGVyIG5hbWVzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IDc4NGIwMzI2
Y2NhNDc5MWYwNTY5MjU1Y2Y5N2JkNzMxNTE4MzM2MzkuLmU1MDI1MjAwOTVkZWFlYWY0YTFhMTBm
OGFmMmNjYmI5NWViN2UwNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC0yNDgsNyArMjQ4LDcgQEAgc3ViIEFkZEluY2x1
ZGVzRm9yVHlwZQogICAgICMgV2hlbiB3ZSdyZSBmaW5pc2hlZCB3aXRoIHRoZSBvbmUtZmlsZS1w
ZXItY2xhc3MKICAgICAjIHJlb3JnYW5pemF0aW9uLCB3ZSB3b24ndCBuZWVkIHRoZXNlIHNwZWNp
YWwgY2FzZXMuCiAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHR5cGUp
IG9yICRjb2RlR2VuZXJhdG9yLT5Ta2lwSW5jbHVkZUhlYWRlcigkdHlwZSkKLSAgICAgICAgb3Ig
JHR5cGUgZXEgIkRPTVN0cmluZyIgb3IgJHR5cGUgZXEgIkRPTU9iamVjdCIgb3IgJHR5cGUgZXEg
IkFycmF5IiBvciAkdHlwZSBlcSAiRE9NVGltZVN0YW1wIikgeworICAgICAgICBvciAkdHlwZSBl
cSAiRE9NU3RyaW5nIiBvciAkdHlwZSBlcSAiRE9NT2JqZWN0IiBvciAkdHlwZSBlcSAiYW55IiBv
ciAkdHlwZSBlcSAiQXJyYXkiIG9yICR0eXBlIGVxICJET01UaW1lU3RhbXAiKSB7CiAgICAgfSBl
bHNpZiAoJHR5cGUgPX4gL1NWR1BhdGhTZWcvKSB7CiAgICAgICAgIG15ICRqb2luZWROYW1lID0g
JHR5cGU7CiAgICAgICAgICRqb2luZWROYW1lID1+IHMvQWJzfFJlbC8vOwpAQCAtMjkzOSw2ICsy
OTM5LDcgQEAgbXkgJW5hdGl2ZVR5cGUgPSAoCiAgICAgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIg
PT4gIlJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IiwKICAgICAiSURCS2V5IiA9PiAiUGFz
c1JlZlB0cjxJREJLZXk+IiwKICAgICAiRGljdGlvbmFyeSIgPT4gIkRpY3Rpb25hcnkiLAorICAg
ICJhbnkiID0+ICJTY3JpcHRWYWx1ZSIsCiAgICAgImJvb2xlYW4iID0+ICJib29sIiwKICAgICAi
ZG91YmxlIiA9PiAiZG91YmxlIiwKICAgICAiZmxvYXQiID0+ICJmbG9hdCIsCkBAIC0zMDU0LDcg
KzMwNTUsNyBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAgICAgICAgIHJldHVybiAiJHZhbHVlLmlz
RW1wdHkoKSA/IFN0cmluZygpIDogJHZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSI7
CiAgICAgfQogCi0gICAgaWYgKCR0eXBlIGVxICJET01PYmplY3QiKSB7CisgICAgaWYgKCR0eXBl
IGVxICJET01PYmplY3QiIG9yICR0eXBlIGVxICJhbnkiKSB7CiAgICAgICAgIHJldHVybiAiZXhl
Yy0+Z2xvYmFsRGF0YSgpLCAkdmFsdWUiOwogICAgIH0KIApAQCAtMzA2OCw3ICszMDY5LDcgQEAg
c3ViIEpTVmFsdWVUb05hdGl2ZQogICAgICAgICByZXR1cm4gIk1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXI6OmNyZWF0ZShTY3JpcHRWYWx1ZShleGVjLT5nbG9iYWxEYXRhKCksICIgLiAkdmFsdWUgLiIp
KSI7CiAgICAgfQogCi0gICAgaWYgKCR0eXBlIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiIG9y
ICR0eXBlIGVxICJhbnkiKSB7CisgICAgaWYgKCR0eXBlIGVxICJTZXJpYWxpemVkU2NyaXB0VmFs
dWUiKSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJTZXJpYWxpemVkU2NyaXB0VmFsdWUu
aCIsICRjb25kaXRpb25hbCk7CiAgICAgICAgIHJldHVybiAiU2VyaWFsaXplZFNjcmlwdFZhbHVl
OjpjcmVhdGUoZXhlYywgJHZhbHVlLCAwLCAwKSI7CiAgICAgfQpAQCAtMzE4Myw3ICszMTg0LDcg
QEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAgICAgICByZXR1cm4gImpzQXJyYXkoZXhlYywgJHRo
aXNWYWx1ZS0+Z2xvYmFsT2JqZWN0KCksICR2YWx1ZSkiOwogICAgIH0KIAotICAgIGlmICgkdHlw
ZSBlcSAiRE9NT2JqZWN0IikgeworICAgIGlmICgkdHlwZSBlcSAiRE9NT2JqZWN0IiBvciAkdHlw
ZSBlcSAiYW55IikgewogICAgICAgICBpZiAoJGltcGxDbGFzc05hbWUgZXEgIkRvY3VtZW50Iikg
ewogICAgICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmgiLCAkY29uZGl0aW9uYWwpOwogICAgICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCBjMjljYzVj
MGY4MmIxOWVjYzYxY2MxODk5YmUxODg5NTMyNmUzODliLi5iMzFiYjk3OTlkYmJjYTZjNWM5ZDgw
OGY3NDU3NTZmMTY3MGNlODczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMzY0OCw3ICszNjQ4LDcgQEAgc3ViIEdldE5h
dGl2ZVR5cGUKICAgICAjIEV2ZW50VGFyZ2V0IGNhbiBiZSBwYXNzZWQgYXMgYSBwYXJhbWV0ZXIu
CiAgICAgcmV0dXJuICJOb2RlKiIgaWYgJHR5cGUgZXEgIkV2ZW50VGFyZ2V0IiBhbmQgJGlzUGFy
YW1ldGVyOwogICAgIHJldHVybiAiZG91YmxlIiBpZiAkdHlwZSBlcSAiRGF0ZSI7Ci0gICAgcmV0
dXJuICJTY3JpcHRWYWx1ZSIgaWYgJHR5cGUgZXEgIkRPTU9iamVjdCI7CisgICAgcmV0dXJuICJT
Y3JpcHRWYWx1ZSIgaWYgJHR5cGUgZXEgIkRPTU9iamVjdCIgb3IgJHR5cGUgZXEgImFueSI7CiAg
ICAgcmV0dXJuICJEaWN0aW9uYXJ5IiBpZiAkdHlwZSBlcSAiRGljdGlvbmFyeSI7CiAKICAgICBy
ZXR1cm4gIlN0cmluZyIgaWYgJHR5cGUgZXEgIkRPTVVzZXJEYXRhIjsgICMgRklYTUU6IFRlbXBv
cmFyeSBoYWNrPwpAQCAtMzc0Nyw3ICszNzQ3LDcgQEAgc3ViIEpTVmFsdWVUb05hdGl2ZQogICAg
ICAgICByZXR1cm4gIkRpY3Rpb25hcnkoJHZhbHVlLCAkZ2V0SXNvbGF0ZSkiOwogICAgIH0KIAot
ICAgIGlmICgkdHlwZSBlcSAiRE9NT2JqZWN0IikgeworICAgIGlmICgkdHlwZSBlcSAiRE9NT2Jq
ZWN0IiBvciAkdHlwZSBlcSAiYW55IikgewogICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiU2Ny
aXB0VmFsdWUuaCIpOwogICAgICAgICByZXR1cm4gIlNjcmlwdFZhbHVlKCR2YWx1ZSkiOwogICAg
IH0KQEAgLTM4MDgsNyArMzgwOCw3IEBAIHN1YiBHZXRWOEhlYWRlck5hbWUKICAgICByZXR1cm4g
IlY4RXZlbnQuaCIgaWYgJHR5cGUgZXEgIkRPTVRpbWVTdGFtcCI7CiAgICAgcmV0dXJuICJFdmVu
dExpc3RlbmVyLmgiIGlmICR0eXBlIGVxICJFdmVudExpc3RlbmVyIjsKICAgICByZXR1cm4gIlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIiBpZiAkdHlwZSBlcSAiU2VyaWFsaXplZFNjcmlwdFZhbHVl
IjsKLSAgICByZXR1cm4gIlNjcmlwdFZhbHVlLmgiIGlmICR0eXBlIGVxICJET01PYmplY3QiOwor
ICAgIHJldHVybiAiU2NyaXB0VmFsdWUuaCIgaWYgJHR5cGUgZXEgIkRPTU9iamVjdCIgb3IgJHR5
cGUgZXEgImFueSI7CiAgICAgcmV0dXJuICJWOERPTVN0cmluZ0xpc3QuaCIgaWYgJHR5cGUgZXEg
IkRPTVN0cmluZ1tdIjsKICAgICByZXR1cm4gIlY4JHt0eXBlfS5oIjsKIH0KQEAgLTM5MDYsNiAr
MzkwNiw3IEBAIG15ICVub25fd3JhcHBlcl90eXBlcyA9ICgKICAgICAnTWVkaWFRdWVyeUxpc3RM
aXN0ZW5lcicgPT4gMSwKICAgICAnTm9kZUZpbHRlcicgPT4gMSwKICAgICAnU2VyaWFsaXplZFNj
cmlwdFZhbHVlJyA9PiAxLAorICAgICdhbnknID0+IDEsCiAgICAgJ2Jvb2xlYW4nID0+IDEsCiAg
ICAgJ2RvdWJsZScgPT4gMSwKICAgICAnZmxvYXQnID0+IDEsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmNwcApp
bmRleCBhYTgxMTk1YmI0Y2VkYjk0NThkNzQ2ZmIzMjEwNGU0OTUwODBlYzRiLi4wY2Y2NzY1OTlj
NjNiZjEyNWMxZDQ5YmNhYTBjODMzYzg1MzE4MTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9DUFAvV2ViRE9NVGVzdE9iai5jcHAKQEAg
LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJXZWJET01TVkdQb2ludC5oIgogI2luY2x1ZGUgIldl
YkRPTVN0cmluZy5oIgogI2luY2x1ZGUgIldlYkRPTWEuaCIKKyNpbmNsdWRlICJXZWJET01hbnku
aCIKICNpbmNsdWRlICJXZWJET01iLmgiCiAjaW5jbHVkZSAiV2ViRE9NYm9vbC5oIgogI2luY2x1
ZGUgIldlYkRPTWQuaCIKQEAgLTQyLDYgKzQzLDcgQEAKICNpbmNsdWRlICJXZWJFeGNlcHRpb25I
YW5kbGVyLmgiCiAjaW5jbHVkZSAiV2ViTmF0aXZlRXZlbnRMaXN0ZW5lci5oIgogI2luY2x1ZGUg
ImEuaCIKKyNpbmNsdWRlICJhbnkuaCIKICNpbmNsdWRlICJiLmgiCiAjaW5jbHVkZSAiYm9vbC5o
IgogI2luY2x1ZGUgImQuaCIKQEAgLTUzOSw2ICs1NDEsMjIgQEAgdm9pZCBXZWJET01UZXN0T2Jq
OjpzZXRDb25kaXRpb25hbEF0dHIzKGludCBuZXdDb25kaXRpb25hbEF0dHIzKQogfQogCiAjZW5k
aWYKK1dlYkRPTWFueSBXZWJET01UZXN0T2JqOjphbnlBdHRyaWJ1dGUoKSBjb25zdAoreworICAg
IGlmICghaW1wbCgpKQorICAgICAgICByZXR1cm4gV2ViRE9NYW55KCk7CisKKyAgICByZXR1cm4g
dG9XZWJLaXQoV1RGOjpnZXRQdHIoaW1wbCgpLT5hbnlBdHRyaWJ1dGUoKSkpOworfQorCit2b2lk
IFdlYkRPTVRlc3RPYmo6OnNldEFueUF0dHJpYnV0ZShjb25zdCBXZWJET01hbnkmIG5ld0FueUF0
dHJpYnV0ZSkKK3sKKyAgICBpZiAoIWltcGwoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW1w
bCgpLT5zZXRBbnlBdHRyaWJ1dGUodG9XZWJDb3JlKG5ld0FueUF0dHJpYnV0ZSkpOworfQorCiBX
ZWJET01Eb2N1bWVudCBXZWJET01UZXN0T2JqOjpjb250ZW50RG9jdW1lbnQoKSBjb25zdAogewog
ICAgIGlmICghaW1wbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0NQUC9XZWJET01UZXN0T2JqLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaAppbmRleCAwMGYwNjAwMmQ3MzNmOTZiZTVi
YzA4OTExNTQwYWUzZTQ1Njk3N2ZjLi5kNTVmZjc4NjU1MWViZDNjNzRhZDFhOTY4ODMyZDIwMjli
Y2FjNTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
Q1BQL1dlYkRPTVRlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvQ1BQL1dlYkRPTVRlc3RPYmouaApAQCAtMzgsNiArMzgsNyBAQCBjbGFzcyBXZWJET01T
VkdQb2ludDsKIGNsYXNzIFdlYkRPTVN0cmluZzsKIGNsYXNzIFdlYkRPTVRlc3RPYmo7CiBjbGFz
cyBXZWJET01hOworY2xhc3MgV2ViRE9NYW55OwogY2xhc3MgV2ViRE9NYjsKIGNsYXNzIFdlYkRP
TWJvb2w7CiBjbGFzcyBXZWJET01kOwpAQCAtMTI4LDYgKzEyOSw4IEBAIHB1YmxpYzoKICAgICBp
bnQgY29uZGl0aW9uYWxBdHRyMygpIGNvbnN0OwogICAgIHZvaWQgc2V0Q29uZGl0aW9uYWxBdHRy
MyhpbnQpOwogI2VuZGlmCisgICAgV2ViRE9NYW55IGFueUF0dHJpYnV0ZSgpIGNvbnN0OworICAg
IHZvaWQgc2V0QW55QXR0cmlidXRlKGNvbnN0IFdlYkRPTWFueSYpOwogICAgIFdlYkRPTURvY3Vt
ZW50IGNvbnRlbnREb2N1bWVudCgpIGNvbnN0OwogICAgIFdlYkRPTVNWR1BvaW50IG11dGFibGVQ
b2ludCgpIGNvbnN0OwogICAgIHZvaWQgc2V0TXV0YWJsZVBvaW50KGNvbnN0IFdlYkRPTVNWR1Bv
aW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCmluZGV4IGNlZmJjMDRhNDkw
OGI1NjhhYzZkNjExMGQzODdiZTdhZDZlODM3NzguLjEyMDRkZmI1MGRiZDNkYzlhNDIzY2ExZDVh
YWI1NzMxODM1ZWI5MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwCkBAIC0y
OSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiU1ZHUG9pbnQuaCIKICNpbmNsdWRlICJUZXN0T2JqLmgi
CiAjaW5jbHVkZSAiV2ViS2l0RE9NQmluZGluZy5oIgorI2luY2x1ZGUgImFueS5oIgogI2luY2x1
ZGUgImJvb2wuaCIKICNpbmNsdWRlICJnb2JqZWN0L0NvbnZlcnRUb1VURjhTdHJpbmcuaCIKICNp
bmNsdWRlICJ3ZWJraXQvV2ViS2l0RE9NRGljdGlvbmFyeS5oIgpAQCAtNDQsNiArNDUsOCBAQAog
I2luY2x1ZGUgIndlYmtpdC9XZWJLaXRET01UZXN0T2JqUHJpdmF0ZS5oIgogI2luY2x1ZGUgIndl
YmtpdC9XZWJLaXRET01hLmgiCiAjaW5jbHVkZSAid2Via2l0L1dlYktpdERPTWFQcml2YXRlLmgi
CisjaW5jbHVkZSAid2Via2l0L1dlYktpdERPTWFueS5oIgorI2luY2x1ZGUgIndlYmtpdC9XZWJL
aXRET01hbnlQcml2YXRlLmgiCiAjaW5jbHVkZSAid2Via2l0L1dlYktpdERPTWIuaCIKICNpbmNs
dWRlICJ3ZWJraXQvV2ViS2l0RE9NYlByaXZhdGUuaCIKICNpbmNsdWRlICJ3ZWJraXQvV2ViS2l0
RE9NYm9vbC5oIgpAQCAtMTM0LDYgKzEzNyw3IEBAIGVudW0gewogICAgIFBST1BfQ09ORElUSU9O
QUxfQVRUUjEsCiAgICAgUFJPUF9DT05ESVRJT05BTF9BVFRSMiwKICAgICBQUk9QX0NPTkRJVElP
TkFMX0FUVFIzLAorICAgIFBST1BfQU5ZX0FUVFJJQlVURSwKICAgICBQUk9QX0NPTlRFTlRfRE9D
VU1FTlQsCiAgICAgUFJPUF9NVVRBQkxFX1BPSU5ULAogICAgIFBST1BfSU1NVVRBQkxFX1BPSU5U
LApAQCAtNDgxLDYgKzQ4NSwxMSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dl
dF9wcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcnR5SWQsCiAjZW5kaWYgLyog
RU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKSAqLwogICAgICAgICBicmVh
azsKICAgICB9CisgICAgY2FzZSBQUk9QX0FOWV9BVFRSSUJVVEU6IHsKKyAgICAgICAgUmVmUHRy
PFdlYkNvcmU6OmFueT4gcHRyID0gY29yZVNlbGYtPmFueUF0dHJpYnV0ZSgpOworICAgICAgICBn
X3ZhbHVlX3NldF9vYmplY3QodmFsdWUsIFdlYktpdDo6a2l0KHB0ci5nZXQoKSkpOworICAgICAg
ICBicmVhazsKKyAgICB9CiAgICAgY2FzZSBQUk9QX0NPTlRFTlRfRE9DVU1FTlQ6IHsKICAgICAg
ICAgUmVmUHRyPFdlYkNvcmU6OkRvY3VtZW50PiBwdHIgPSBjb3JlU2VsZi0+Y29udGVudERvY3Vt
ZW50KCk7CiAgICAgICAgIGdfdmFsdWVfc2V0X29iamVjdCh2YWx1ZSwgV2ViS2l0OjpraXQocHRy
LmdldCgpKSk7CkBAIC04MjUsNiArODM0LDEzIEBAIEdfTUFYTE9ORywgLyogbWF4ICovCiAwLCAv
KiBkZWZhdWx0ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUpKTsKICAgICBnX29iamVjdF9j
bGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFBST1BfQU5ZX0FUVFJJQlVURSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdfcGFyYW1fc3BlY19vYmplY3QoImFueS1hdHRyaWJ1dGUiLCAvKiBu
YW1lICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ0ZXN0X29ial9hbnktYXR0cmlidXRlIiwgLyogc2hvcnQgZGVzY3JpcHRpb24g
Ki8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInJlYWQtd3JpdGUgIFdlYktpdERPTWFueSogVGVzdE9iai5hbnktYXR0cmlidXRlIiwg
LyogbG9uZ2VyIC0gY291bGQgZG8gd2l0aCBzb21lIGV4dHJhIGRvYyBzdHVmZiBoZXJlICovCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdFQktJVF9UWVBFX0RPTV9BTlksIC8qIGdvYmplY3QgdHlwZSAqLworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1f
UkVBRFdSSVRFKSk7CisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eShnb2JqZWN0
Q2xhc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUk9QX0NPTlRFTlRf
RE9DVU1FTlQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnX3BhcmFtX3Nw
ZWNfb2JqZWN0KCJjb250ZW50LWRvY3VtZW50IiwgLyogbmFtZSAqLwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9vYmpfY29u
dGVudC1kb2N1bWVudCIsIC8qIHNob3J0IGRlc2NyaXB0aW9uICovCkBAIC0yMjQwLDYgKzIyNTYs
MzIgQEAgd2Via2l0X2RvbV90ZXN0X29ial9zZXRfY29uZGl0aW9uYWxfYXR0cjMoV2ViS2l0RE9N
VGVzdE9iaiogc2VsZiwgZ2xvbmcgdmFsdWUpCiAjZW5kaWYgLyogRU5BQkxFKENvbmRpdGlvbjEp
IHx8IEVOQUJMRShDb25kaXRpb24yKSAqLwogfQogCitXZWJLaXRET01hbnkqCit3ZWJraXRfZG9t
X3Rlc3Rfb2JqX2dldF9hbnlfYXR0cmlidXRlKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCit7Cisg
ICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoc2VsZiwgMCk7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6
OmNvcmUoc2VsZik7CisgICAgUmVmUHRyPFdlYkNvcmU6OmFueT4gZ29iamVjdFJlc3VsdCA9IFdU
Rjo6Z2V0UHRyKGl0ZW0tPmFueUF0dHJpYnV0ZSgpKTsKKyAgICBXZWJLaXRET01hbnkqIHJlc3Vs
dCA9IFdlYktpdDo6a2l0KGdvYmplY3RSZXN1bHQuZ2V0KCkpOworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKK3ZvaWQKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2FueV9hdHRyaWJ1dGUoV2ViS2l0
RE9NVGVzdE9iaiogc2VsZiwgV2ViS2l0RE9NYW55KiB2YWx1ZSkKK3sKKyAgICBnX3JldHVybl9p
Zl9mYWlsKHNlbGYpOworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAgIGdf
cmV0dXJuX2lmX2ZhaWwodmFsdWUpOworICAgIFdlYkNvcmU6OmFueSogY29udmVydGVkVmFsdWUg
PSAwOworICAgIGlmICh2YWx1ZSkgeworICAgICAgICBjb252ZXJ0ZWRWYWx1ZSA9IFdlYktpdDo6
Y29yZSh2YWx1ZSk7CisgICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwoY29udmVydGVkVmFsdWUpOwor
ICAgIH0KKyAgICBpdGVtLT5zZXRBbnlBdHRyaWJ1dGUoY29udmVydGVkVmFsdWUpOworfQorCiBX
ZWJLaXRET01Eb2N1bWVudCoKIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2NvbnRlbnRfZG9jdW1l
bnQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmou
aAppbmRleCA0NmI4NWQwYmU1YThkMGExZGIzZTM2ZTU0NzNhMzNiMWE2OWNjZmVkLi4zOTVmYTc3
YTY5MTQ0ZDIwODZkZWI1NDMyYWM2MDliMmU0Y2NkOTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9N
VGVzdE9iai5oCkBAIC0xMjAwLDYgKzEyMDAsMjcgQEAgV0VCS0lUX0FQSSB2b2lkCiB3ZWJraXRf
ZG9tX3Rlc3Rfb2JqX3NldF9jb25kaXRpb25hbF9hdHRyMyhXZWJLaXRET01UZXN0T2JqKiBzZWxm
LCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgorICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYW55X2F0
dHJpYnV0ZToKKyAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCisgKgorICogUmV0dXJuczog
KHRyYW5zZmVyIG5vbmUpOgorICoKKyoqLworV0VCS0lUX0FQSSBXZWJLaXRET01hbnkqCit3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX2dldF9hbnlfYXR0cmlidXRlKFdlYktpdERPTVRlc3RPYmoqIHNlbGYp
OworCisvKioKKyAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2FueV9hdHRyaWJ1dGU6CisgKiBA
c2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagorICogQHZhbHVlOiBBICNXZWJLaXRET01hbnkKKyAq
CisgKiBSZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6CisgKgorKiovCitXRUJLSVRfQVBJIHZvaWQK
K3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2FueV9hdHRyaWJ1dGUoV2ViS2l0RE9NVGVzdE9iaiog
c2VsZiwgV2ViS2l0RE9NYW55KiB2YWx1ZSk7CisKKy8qKgogICogd2Via2l0X2RvbV90ZXN0X29i
al9nZXRfY29udGVudF9kb2N1bWVudDoKICAqIEBzZWxmOiBBICNXZWJLaXRET01UZXN0T2JqCiAg
KgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcAppbmRleCBmYWU4NmQwOGY5ZTc3OWExNWViMzM2OTA3YjE4MGJiNjY3YjFmZTli
Li4xY2FlMmM4MGNlYWY5ZWUzNzU0MjQ0M2JmYWZiNjNmNWVmOGRlOWZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApA
QCAtMTM1LDYgKzEzNSw3IEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RPYmpU
YWJsZVZhbHVlc1tdID0KICNlbmRpZgogICAgIHsgImNhY2hlZEF0dHJpYnV0ZTEiLCBEb250RGVs
ZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZh
bHVlRnVuYz4oanNUZXN0T2JqQ2FjaGVkQXR0cmlidXRlMSksIChpbnRwdHJfdCkwLCBOb0ludHJp
bnNpYyB9LAogICAgIHsgImNhY2hlZEF0dHJpYnV0ZTIiLCBEb250RGVsZXRlIHwgUmVhZE9ubHks
IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0
T2JqQ2FjaGVkQXR0cmlidXRlMiksIChpbnRwdHJfdCkwLCBOb0ludHJpbnNpYyB9LAorICAgIHsg
ImFueUF0dHJpYnV0ZSIsIERvbnREZWxldGUsIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0
eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQW55QXR0cmlidXRlKSwgKGludHB0cl90KXNl
dEpTVGVzdE9iakFueUF0dHJpYnV0ZSwgTm9JbnRyaW5zaWMgfSwKICAgICB7ICJjb250ZW50RG9j
dW1lbnQiLCBEb250RGVsZXRlIHwgUmVhZE9ubHksIChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQ29udGVudERvY3VtZW50KSwgKGludHB0
cl90KTAsIE5vSW50cmluc2ljIH0sCiAgICAgeyAibXV0YWJsZVBvaW50IiwgRG9udERlbGV0ZSwg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RP
YmpNdXRhYmxlUG9pbnQpLCAoaW50cHRyX3Qpc2V0SlNUZXN0T2JqTXV0YWJsZVBvaW50LCBOb0lu
dHJpbnNpYyB9LAogICAgIHsgImltbXV0YWJsZVBvaW50IiwgRG9udERlbGV0ZSwgKGludHB0cl90
KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpJbW11dGFi
bGVQb2ludCksIChpbnRwdHJfdClzZXRKU1Rlc3RPYmpJbW11dGFibGVQb2ludCwgTm9JbnRyaW5z
aWMgfSwKQEAgLTg0NCw3ICs4NDUsNyBAQCBKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0
ZTEoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBQcm9wZXJ0eU5hbQogICAgIGlm
IChKU1ZhbHVlIGNhY2hlZFZhbHVlID0gY2FzdGVkVGhpcy0+bV9jYWNoZWRBdHRyaWJ1dGUxLmdl
dCgpKQogICAgICAgICByZXR1cm4gY2FjaGVkVmFsdWU7CiAgICAgVGVzdE9iaiogaW1wbCA9IHN0
YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwotICAgIEpTVmFsdWUgcmVz
dWx0ID0gaW1wbC0+Y2FjaGVkQXR0cmlidXRlMSgpID8gaW1wbC0+Y2FjaGVkQXR0cmlidXRlMSgp
LT5kZXNlcmlhbGl6ZShleGVjLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmplY3QoKSwgMCkgOiBqc051
bGwoKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IChpbXBsLT5jYWNoZWRBdHRyaWJ1dGUxKCkuaGFz
Tm9WYWx1ZSgpID8ganNOdWxsKCkgOiBpbXBsLT5jYWNoZWRBdHRyaWJ1dGUxKCkuanNWYWx1ZSgp
KTsKICAgICBjYXN0ZWRUaGlzLT5tX2NhY2hlZEF0dHJpYnV0ZTEuc2V0KGV4ZWMtPmdsb2JhbERh
dGEoKSwgY2FzdGVkVGhpcywgcmVzdWx0KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtODU3
LDEyICs4NTgsMjIgQEAgSlNWYWx1ZSBqc1Rlc3RPYmpDYWNoZWRBdHRyaWJ1dGUyKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW0KICAgICBpZiAoSlNWYWx1ZSBj
YWNoZWRWYWx1ZSA9IGNhc3RlZFRoaXMtPm1fY2FjaGVkQXR0cmlidXRlMi5nZXQoKSkKICAgICAg
ICAgcmV0dXJuIGNhY2hlZFZhbHVlOwogICAgIFRlc3RPYmoqIGltcGwgPSBzdGF0aWNfY2FzdDxU
ZXN0T2JqKj4oY2FzdGVkVGhpcy0+aW1wbCgpKTsKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGltcGwt
PmNhY2hlZEF0dHJpYnV0ZTIoKSA/IGltcGwtPmNhY2hlZEF0dHJpYnV0ZTIoKS0+ZGVzZXJpYWxp
emUoZXhlYywgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCksIDApIDoganNOdWxsKCk7CisgICAg
SlNWYWx1ZSByZXN1bHQgPSAoaW1wbC0+Y2FjaGVkQXR0cmlidXRlMigpLmhhc05vVmFsdWUoKSA/
IGpzTnVsbCgpIDogaW1wbC0+Y2FjaGVkQXR0cmlidXRlMigpLmpzVmFsdWUoKSk7CiAgICAgY2Fz
dGVkVGhpcy0+bV9jYWNoZWRBdHRyaWJ1dGUyLnNldChleGVjLT5nbG9iYWxEYXRhKCksIGNhc3Rl
ZFRoaXMsIHJlc3VsdCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogCitKU1ZhbHVlIGpzVGVz
dE9iakFueUF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgc2xvdEJhc2UsIFByb3Bl
cnR5TmFtZSkKK3sKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2Jq
Kj4oYXNPYmplY3Qoc2xvdEJhc2UpKTsKKyAgICBVTlVTRURfUEFSQU0oZXhlYyk7CisgICAgVGVz
dE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlzLT5pbXBsKCkpOwor
ICAgIEpTVmFsdWUgcmVzdWx0ID0gKGltcGwtPmFueUF0dHJpYnV0ZSgpLmhhc05vVmFsdWUoKSA/
IGpzTnVsbCgpIDogaW1wbC0+YW55QXR0cmlidXRlKCkuanNWYWx1ZSgpKTsKKyAgICByZXR1cm4g
cmVzdWx0OworfQorCisKIEpTVmFsdWUganNUZXN0T2JqQ29udGVudERvY3VtZW50KEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgUHJvcGVydHlOYW1lKQogewogICAgIEpTVGVzdE9i
aiogY2FzdGVkVGhpcyA9IGpzQ2FzdDxKU1Rlc3RPYmoqPihhc09iamVjdChzbG90QmFzZSkpOwpA
QCAtMTM1MCw2ICsxMzYxLDE1IEBAIHZvaWQgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBdHRyNkNv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmplCiAKICNlbmRpZgog
Cit2b2lkIHNldEpTVGVzdE9iakFueUF0dHJpYnV0ZShFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0
KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQoreworICAgIFVOVVNFRF9QQVJBTShleGVjKTsK
KyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4odGhpc09iamVj
dCk7CisgICAgVGVzdE9iaiogaW1wbCA9IHN0YXRpY19jYXN0PFRlc3RPYmoqPihjYXN0ZWRUaGlz
LT5pbXBsKCkpOworICAgIGltcGwtPnNldEFueUF0dHJpYnV0ZShleGVjLT5nbG9iYWxEYXRhKCks
IHZhbHVlKTsKK30KKworCiB2b2lkIHNldEpTVGVzdE9iak11dGFibGVQb2ludChFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiB0aGlzT2JqZWN0LCBKU1ZhbHVlIHZhbHVlKQogewogICAgIFVOVVNF
RF9QQVJBTShleGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPYmouaAppbmRleCA3NjU0OWQ0NjE5ZThlYmRhOWExYTc5OTA1NTM1MzI1
Njg1YTk2MWRiLi41NmIwMTlhMWFmZDI2YTgyMjI3NjU2ZjkyNDRkZDhmZTAwOTcyYjc3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5oCkBAIC0zMTQsNiArMzE0LDggQEAgdm9pZCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEF0dHI2
Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlMKICNlbmRpZgog
SlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNhY2hlZEF0dHJpYnV0ZTEoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKIEpTQzo6SlNWYWx1ZSBqc1Rlc3RPYmpD
YWNoZWRBdHRyaWJ1dGUyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3Bl
cnR5TmFtZSk7CitKU0M6OkpTVmFsdWUganNUZXN0T2JqQW55QXR0cmlidXRlKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9i
akFueUF0dHJpYnV0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkpTVmFs
dWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVzdE9iakNvbnRlbnREb2N1bWVudChKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwogSlNDOjpKU1ZhbHVlIGpzVGVz
dE9iak11dGFibGVQb2ludChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpOwogdm9pZCBzZXRKU1Rlc3RPYmpNdXRhYmxlUG9pbnQoSlNDOjpFeGVjU3RhdGUq
LCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpKU1ZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmouaAppbmRleCAwOGM5MDZk
YmUxMmRkNWI0YzY0YTM2MDliZmU4NGY1M2I1MWYwOGZkLi42YTkwOTkxMWNjOGJiMGFjMDMxYzcw
MTI5YTQxOTE2MmQ2NWVlY2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCkBAIC0zOCw2ICszOCw3IEBACiBAY2xh
c3MgRE9NVGVzdE9iamVjdEJDb25zdHJ1Y3RvcjsKIEBjbGFzcyBET01UZXN0T2JqZWN0Q0NvbnN0
cnVjdG9yOwogQGNsYXNzIERPTWE7CitAY2xhc3MgRE9NYW55OwogQGNsYXNzIERPTWI7CiBAY2xh
c3MgRE9NYm9vbDsKIEBjbGFzcyBET01kOwpAQCAtMTA0LDYgKzEwNSw3IEBAIGVudW0gewogQHBy
b3BlcnR5KHJldGFpbikgRE9NVGVzdE9iamVjdEFDb25zdHJ1Y3RvciAqY29uZGl0aW9uYWxBdHRy
NDsKIEBwcm9wZXJ0eShyZXRhaW4pIERPTVRlc3RPYmplY3RCQ29uc3RydWN0b3IgKmNvbmRpdGlv
bmFsQXR0cjU7CiBAcHJvcGVydHkocmV0YWluKSBET01UZXN0T2JqZWN0Q0NvbnN0cnVjdG9yICpj
b25kaXRpb25hbEF0dHI2OworQHByb3BlcnR5KHJldGFpbikgRE9NYW55ICphbnlBdHRyaWJ1dGU7
CiBAcHJvcGVydHkocmVhZG9ubHksIHJldGFpbikgRE9NRG9jdW1lbnQgKmNvbnRlbnREb2N1bWVu
dDsKIEBwcm9wZXJ0eShyZXRhaW4pIERPTVNWR1BvaW50ICptdXRhYmxlUG9pbnQ7CiBAcHJvcGVy
dHkocmV0YWluKSBET01TVkdQb2ludCAqaW1tdXRhYmxlUG9pbnQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQppbmRl
eCA0YmQwNDAxY2RlYTU2ZWFiYjY5NmE4YTE1OWU0NTJhYTg0ZjVhMzRjLi44YjJiY2YwMGIxZjk2
NDEzYzkwYzkwOTAwZDUwZjg4YzhlYWQ2ZDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KQEAgLTQ1LDYgKzQ1
LDcgQEAKICNpbXBvcnQgIkRPTVRlc3RPYmplY3RCQ29uc3RydWN0b3JJbnRlcm5hbC5oIgogI2lt
cG9ydCAiRE9NVGVzdE9iamVjdENDb25zdHJ1Y3RvckludGVybmFsLmgiCiAjaW1wb3J0ICJET01h
SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTWFueUludGVybmFsLmgiCiAjaW1wb3J0ICJET01iSW50
ZXJuYWwuaCIKICNpbXBvcnQgIkRPTWJvb2xJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NZEludGVy
bmFsLmgiCkBAIC02OSw2ICs3MCw3IEBACiAjaW1wb3J0ICJXZWJDb3JlT2JqQ0V4dHJhcy5oIgog
I2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgogI2ltcG9ydCAiYS5oIgorI2ltcG9y
dCAiYW55LmgiCiAjaW1wb3J0ICJiLmgiCiAjaW1wb3J0ICJib29sLmgiCiAjaW1wb3J0ICJkLmgi
CkBAIC02MjMsNiArNjI1LDIwIEBACiB9CiAjZW5kaWYKIAorLSAoRE9NYW55ICopYW55QXR0cmli
dXRlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJl
dHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+YW55QXR0cmlidXRlKCkpKTsKK30KKworLSAodm9p
ZClzZXRBbnlBdHRyaWJ1dGU6KERPTWFueSAqKW5ld0FueUF0dHJpYnV0ZQoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBBU1NFUlQobmV3QW55QXR0cmli
dXRlKTsKKworICAgIElNUEwtPnNldEFueUF0dHJpYnV0ZShjb3JlKG5ld0FueUF0dHJpYnV0ZSkp
OworfQorCiAtIChET01Eb2N1bWVudCAqKWNvbnRlbnREb2N1bWVudAogewogICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRleCBjNTNjY2ZkN2NjNDA2YjQwNjEyMGNh
N2YwNDllZjFiNGZjMDg1Njk3Li4xODc3NWY3MDNkNWUwNzRiZjIyOWNkMjdmMGZhYzM2NGU4Zjgw
MmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RP
YmouaWRsCkBAIC0xNjgsNiArMTY4LDggQEAgbW9kdWxlIHRlc3QgewogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgW0NhY2hlZEF0dHJpYnV0ZV0gYW55IGNhY2hlZEF0dHJpYnV0ZTE7CiAgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ2FjaGVkQXR0cmlidXRlXSBhbnkgY2FjaGVkQXR0cmli
dXRlMjsKICNlbmRpZgorICAgICAgICAKKyAgICAgICAgYXR0cmlidXRlIGFueSBhbnlBdHRyaWJ1
dGU7CiAKICNpZiBkZWZpbmVkKFRFU1RJTkdfVjgpIHx8IGRlZmluZWQoVEVTVElOR19KUykKICAg
ICAgICAgLy8gT3ZlcmxvYWRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IDVmZDMyM2VlZTRmNjc1ODI2NTVmNTYz
ZWMyMWE2MjQ5NzM0ZTNkZTIuLmFmNDFmY2NhN2I0MzA2OWMxZmRlNGUyMTBkMDAzYzc3NmI3ZjI5
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RPYmouY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0
YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIgogI2luY2x1ZGUgIlNj
cmlwdFByb2ZpbGUuaCIKKyNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlY4QmluZGluZy5oIgogI2luY2x1ZGUgIlY4
RE9NU3RyaW5nTGlzdC5oIgpAQCAtNDksNyArNTAsNiBAQAogI2luY2x1ZGUgIlY4VGVzdENhbGxi
YWNrLmgiCiAjaW5jbHVkZSAiVjhUZXN0U3ViT2JqLmgiCiAjaW5jbHVkZSAiVjhhLmgiCi0jaW5j
bHVkZSAiVjhhbnkuaCIKICNpbmNsdWRlICJWOGIuaCIKICNpbmNsdWRlICJWOGJvb2wuaCIKICNp
bmNsdWRlICJWOGQuaCIKQEAgLTgwMSwyOCArODAxLDMwIEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gY2FjaGVkQXR0cmlidXRlMUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+
IG5hCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5jYWNoZWRBdHRyaWJ1dGUxLl9nZXQi
KTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkp
OwotICAgIFJlZlB0cjxhbnk+IHJlc3VsdCA9IGltcC0+Y2FjaGVkQXR0cmlidXRlMSgpOwotICAg
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3cmFwcGVyID0gcmVzdWx0LmdldCgpID8gZ2V0RE9NT2Jq
ZWN0TWFwKGluZm8uR2V0SXNvbGF0ZSgpKS5nZXQocmVzdWx0LmdldCgpKSA6IHY4VW5kZWZpbmVk
KCk7Ci0gICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKSB7Ci0gICAgICAgIHdyYXBwZXIgPSB0b1Y4
KHJlc3VsdC5nZXQoKSwgaW5mby5Ib2xkZXIoKSwgaW5mby5HZXRJc29sYXRlKCkpOwotICAgICAg
ICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQotICAgICAgICAgICAgVjhET01XcmFwcGVyOjpzZXRO
YW1lZEhpZGRlblJlZmVyZW5jZShpbmZvLkhvbGRlcigpLCAiY2FjaGVkQXR0cmlidXRlMSIsIHdy
YXBwZXIpOwotICAgIH0KLSAgICByZXR1cm4gd3JhcHBlcjsKKyAgICByZXR1cm4gaW1wLT5jYWNo
ZWRBdHRyaWJ1dGUxKCkudjhWYWx1ZSgpOwogfQogCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IGNhY2hlZEF0dHJpYnV0ZTJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1l
LCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIElOQ19TVEFUUygiRE9NLlRl
c3RPYmouY2FjaGVkQXR0cmlidXRlMi5fZ2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0
T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKLSAgICBSZWZQdHI8YW55PiByZXN1bHQgPSBp
bXAtPmNhY2hlZEF0dHJpYnV0ZTIoKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd3JhcHBl
ciA9IHJlc3VsdC5nZXQoKSA/IGdldERPTU9iamVjdE1hcChpbmZvLkdldElzb2xhdGUoKSkuZ2V0
KHJlc3VsdC5nZXQoKSkgOiB2OFVuZGVmaW5lZCgpOwotICAgIGlmICh3cmFwcGVyLklzRW1wdHko
KSkgewotICAgICAgICB3cmFwcGVyID0gdG9WOChyZXN1bHQuZ2V0KCksIGluZm8uSG9sZGVyKCks
IGluZm8uR2V0SXNvbGF0ZSgpKTsKLSAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKLSAg
ICAgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5SZWZlcmVuY2UoaW5mby5Ib2xk
ZXIoKSwgImNhY2hlZEF0dHJpYnV0ZTIiLCB3cmFwcGVyKTsKLSAgICB9Ci0gICAgcmV0dXJuIHdy
YXBwZXI7CisgICAgcmV0dXJuIGltcC0+Y2FjaGVkQXR0cmlidXRlMigpLnY4VmFsdWUoKTsKK30K
Kworc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhbnlBdHRyaWJ1dGVBdHRyR2V0dGVyKHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQor
eworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouYW55QXR0cmlidXRlLl9nZXQiKTsKKyAgICBU
ZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHJl
dHVybiBpbXAtPmFueUF0dHJpYnV0ZSgpLnY4VmFsdWUoKTsKK30KKworc3RhdGljIHZvaWQgYW55
QXR0cmlidXRlQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2Fs
PHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAg
SU5DX1NUQVRTKCJET00uVGVzdE9iai5hbnlBdHRyaWJ1dGUuX3NldCIpOworICAgIFRlc3RPYmoq
IGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgU2NyaXB0VmFs
dWUgdiA9IFNjcmlwdFZhbHVlKHZhbHVlKTsKKyAgICBpbXAtPnNldEFueUF0dHJpYnV0ZShXVEY6
OmdldFB0cih2KSk7CisgICAgcmV0dXJuOwogfQogCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IGVuYWJsZWRBdFJ1bnRpbWVBdHRyMUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+
IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCkBAIC0yMDAzLDYgKzIwMDUsOCBA
QCBzdGF0aWMgY29uc3QgVjhET01Db25maWd1cmF0aW9uOjpCYXRjaGVkQXR0cmlidXRlIFRlc3RP
YmpBdHRyc1tdID0gewogICAgIHsiY2FjaGVkQXR0cmlidXRlMSIsIFRlc3RPYmpWOEludGVybmFs
OjpjYWNoZWRBdHRyaWJ1dGUxQXR0ckdldHRlciwgMCwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNf
Y2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJv
cGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8g
QXR0cmlidXRlICdjYWNoZWRBdHRyaWJ1dGUyJyAoVHlwZTogJ3JlYWRvbmx5IGF0dHJpYnV0ZScg
RXh0QXR0cjogJ0NhY2hlZEF0dHJpYnV0ZScpCiAgICAgeyJjYWNoZWRBdHRyaWJ1dGUyIiwgVGVz
dE9ialY4SW50ZXJuYWw6OmNhY2hlZEF0dHJpYnV0ZTJBdHRyR2V0dGVyLCAwLCAwIC8qIG5vIGRh
dGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRp
Y19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNl
ICovfSwKKyAgICAvLyBBdHRyaWJ1dGUgJ2FueUF0dHJpYnV0ZScgKFR5cGU6ICdhdHRyaWJ1dGUn
IEV4dEF0dHI6ICcnKQorICAgIHsiYW55QXR0cmlidXRlIiwgVGVzdE9ialY4SW50ZXJuYWw6OmFu
eUF0dHJpYnV0ZUF0dHJHZXR0ZXIsIFRlc3RPYmpWOEludGVybmFsOjphbnlBdHRyaWJ1dGVBdHRy
U2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2
ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUp
LCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ2Zsb2F0QXJyYXknIChU
eXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKICAgICB7ImZsb2F0QXJyYXkiLCBUZXN0T2Jq
VjhJbnRlcm5hbDo6ZmxvYXRBcnJheUF0dHJHZXR0ZXIsIFRlc3RPYmpWOEludGVybmFsOjpmbG9h
dEFycmF5QXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNz
Q29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+
KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8gQXR0cmlidXRlICdkb3Vi
bGVBcnJheScgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>