<?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>25205</bug_id>
          
          <creation_ts>2009-04-15 01:03:13 -0700</creation_ts>
          <short_desc>XMLHttpRequest instance is not an instanceof XMLHttpRequest</short_desc>
          <delta_ts>2009-07-21 18:00:50 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Michael A. Puls II">shadow2531</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>sam</cc>
    
    <cc>yuzo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>117580</commentid>
    <comment_count>0</comment_count>
    <who name="Michael A. Puls II">shadow2531</who>
    <bug_when>2009-04-15 01:03:13 -0700</bug_when>
    <thetext>WebKit r42344

The following alerts true in FF, Opera and IE8, but alerts false in Safari.

javascript:alert((new XMLHttpRequest()) instanceof XMLHttpRequest)%3B

This causes (ProgressEvent_instance.target instanceof XMLHttpRequest) to evaluate to false in the load listener function for XHR.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117589</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-04-15 02:07:59 -0700</bug_when>
    <thetext>Same problem with e.g. XSLTProcessor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117642</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-04-15 12:13:22 -0700</bug_when>
    <thetext>Interestingly, javascript:alert((new XMLHttpRequest).__proto__ == XMLHttpRequest.prototype) returns true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117643</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-04-15 12:13:33 -0700</bug_when>
    <thetext>Is this a regression?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>117645</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-04-15 12:21:03 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Is this a regression?

Not from Safari 3.2.1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130172</commentid>
    <comment_count>5</comment_count>
      <attachid>32370</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2009-07-07 02:31:57 -0700</bug_when>
    <thetext>Created attachment 32370
Fix for &quot;instanceof XMLHttpRequest&quot;

Hi,

Can you review the attached patch?
It attempts to fix this bug by setting JSC::ImplementsHasInstance flag for JSXMLHttpRequestConstructor.

Yuzo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130174</commentid>
    <comment_count>6</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2009-07-07 03:12:29 -0700</bug_when>
    <thetext>If the proposed patch is the right fix, the same should be applicable to:

WebCore/bindings/js/JSAudioConstructor.cpp 
WebCore/bindings/js/JSImageConstructor.cpp 
WebCore/bindings/js/JSMessageChannelConstructor.cpp 
WebCore/bindings/js/JSOptionConstructor.cpp 
WebCore/bindings/js/JSWebKitCSSMatrixConstructor.cpp 
WebCore/bindings/js/JSWebKitPointConstructor.cpp 
WebCore/bindings/js/JSWorkerConstructor.cpp 
# WebCore/bindings/js/JSXMLHttpRequestConstructor.cpp 
WebCore/bindings/js/JSXSLTProcessorConstructor.cpp 

In that case, we should perhaps add:

static PassRefPtr&lt;Structure&gt; createStructureForConstructor(JSValue prototype);

to JavaScriptCore/runtime/JSObject.h
and call the method from the above classes.

Yuzo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130387</commentid>
    <comment_count>7</comment_count>
      <attachid>32434</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2009-07-08 00:29:08 -0700</bug_when>
    <thetext>Created attachment 32434
This also fixes for XSTLProcessor, Audio, etc.

Can anyone review this, please?

I&apos;ve updated the patch to fix for XSLTProcessor, Audio, etc.

Yuzo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130446</commentid>
    <comment_count>8</comment_count>
      <attachid>32434</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-07-08 09:54:11 -0700</bug_when>
    <thetext>Comment on attachment 32434
This also fixes for XSTLProcessor, Audio, etc.

This seems OK, but not great. The design here is supposed to be that derived classes override createStructure if the base class version doesn&apos;t work right. Leaving behind a createStructure function that does the wrong thing and relying on the callers to call the correct one seems unnecessarily fragile to me. To share code, we could create a new base class, derived from DOMObject, and have all the constructor classes derive from this, and it would override createStructure to work properly.

Would you be willing to try that approach?

review- for now, but I&apos;m open to landing this version if you don&apos;t like my suggestion and can convince me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130600</commentid>
    <comment_count>9</comment_count>
      <attachid>32499</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2009-07-08 19:29:54 -0700</bug_when>
    <thetext>Created attachment 32499
DOMConstructorObject approach.

Thank you for your review.

I agree.

I&apos;ve revised the patch such that all the classes in question derive from DOMConstructorObject, which in turn derives from DOMObject.

Can you take another look?

Yuzo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130664</commentid>
    <comment_count>10</comment_count>
      <attachid>32499</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-07-09 08:18:21 -0700</bug_when>
    <thetext>Comment on attachment 32499
DOMConstructorObject approach.

&gt; +#ifndef NDEBUG
&gt; +        virtual ~DOMConstructorObject();
&gt; +#endif

What&apos;s the idea here? I don&apos;t see any definition of this destructor, so it seems like the change won&apos;t link. Have you tested yet?

Otherwise, everything looks great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130799</commentid>
    <comment_count>11</comment_count>
      <attachid>32547</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2009-07-09 18:33:38 -0700</bug_when>
    <thetext>Created attachment 32547
Removed virtual destructor declaration of DOMConstructorObject.

Hi,

Thank you for reviewing this.

I&apos;ve removed the virtual destructor declaration of DOMConstructorObject
and confirmed that the layout test succeeds for both Debug and Release.

Yuzo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132002</commentid>
    <comment_count>12</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2009-07-15 12:55:30 -0700</bug_when>
    <thetext>Assign for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132004</commentid>
    <comment_count>13</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2009-07-15 13:09:14 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/45938.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133619</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-21 15:28:55 -0700</bug_when>
    <thetext>This doesn&apos;t fix all constructors though.  This diff is still missing from the change:

@@ -2027,10 +2042,10 @@ sub constructorFor
     my $canConstruct = shift;
 
 my $implContent = &lt;&lt; &quot;EOF&quot;;
-class ${className}Constructor : public DOMObject {
+class ${className}Constructor : public DOMConstructorObject {
 public:
     ${className}Constructor(ExecState* exec, JSDOMGlobalObject* globalObject)
-        : DOMObject(${className}Constructor::createStructure(globalObject-&gt;objectPrototype()))
+        : DOMConstructorObject(${className}Constructor::createStructure(globalObject-&gt;objectPrototype()), globalObject)
     {
         putDirect(exec-&gt;propertyNames().prototype, ${protoClassName}::self(exec, globalObject), None);
     }

I guess I&apos;ll find a way to write a test and file a new bug for that change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133622</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-21 15:29:55 -0700</bug_when>
    <thetext>Hum... I&apos;m surprised Darin let you get away w/o a test case!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133672</commentid>
    <comment_count>16</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2009-07-21 17:59:14 -0700</bug_when>
    <thetext>My patch contains:
LayoutTests/fast/js/instanceof-operator.html b/LayoutTests/fast/js/instanceof-operator.html

Do you mean a different kind of test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133673</commentid>
    <comment_count>17</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-21 18:00:50 -0700</bug_when>
    <thetext>Sorry. I just missed them in the diff http://trac.webkit.org/changeset/45938.  I never remember to look for the special green squares.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32370</attachid>
            <date>2009-07-07 02:31:57 -0700</date>
            <delta_ts>2009-07-08 00:29:08 -0700</delta_ts>
            <desc>Fix for &quot;instanceof XMLHttpRequest&quot;</desc>
            <filename>instanceof_patch_0.txt</filename>
            <type>text/plain</type>
            <size>3887</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwNDA4NGQ4Li5hYWI3YmJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDct
MDcgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBmb3I6IEJ1ZyAyNTIwNSAtICBYTUxI
dHRwUmVxdWVzdCBpbnN0YW5jZSBpcyBub3QgYW4gaW5zdGFuY2VvZiBYTUxIdHRwUmVxdWVzdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUyMDUKKwor
ICAgICAgICAqIGZhc3QvanMvaW5zdGFuY2VvZi14bWxodHRwcmVxdWVzdC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvaW5zdGFuY2VvZi14bWxodHRwcmVxdWVzdC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3Jlc291cmNlcy9pbnN0YW5jZW9mLXhtbGh0dHBy
ZXF1ZXN0LmpzOiBBZGRlZC4KKwogMjAwOS0wNi0yNCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvanMvaW5zdGFuY2VvZi14bWxodHRwcmVxdWVzdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL2luc3RhbmNlb2YteG1saHR0cHJlcXVlc3QtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmNjQ2ZGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL2luc3RhbmNlb2YteG1saHR0cHJlcXVl
c3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK2luc3RhbmNlb2YgWE1MSHR0cFJlcXVl
c3QgdGVzdAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB4aHIgaW5zdGFu
Y2VvZiBYTUxIdHRwUmVxdWVzdCBpcyB0cnVlCitQQVNTIGFyciBpbnN0YW5jZW9mIFhNTEh0dHBS
ZXF1ZXN0IGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9pbnN0YW5jZW9mLXht
bGh0dHByZXF1ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL2luc3RhbmNlb2YteG1saHR0
cHJlcXVlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNThhMDdh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9pbnN0YW5jZW9mLXhtbGh0
dHByZXF1ZXN0Lmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICIt
Ly9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVz
aGVldCIgaHJlZj0icmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBz
cmM9InJlc291cmNlcy9pbnN0YW5jZW9mLXhtbGh0dHByZXF1ZXN0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2luc3Rh
bmNlb2YteG1saHR0cHJlcXVlc3QuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9p
bnN0YW5jZW9mLXhtbGh0dHByZXF1ZXN0LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjZiNGFkNTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jl
c291cmNlcy9pbnN0YW5jZW9mLXhtbGh0dHByZXF1ZXN0LmpzCkBAIC0wLDAgKzEsMTAgQEAKK2Rl
c2NyaXB0aW9uKAorImluc3RhbmNlb2YgWE1MSHR0cFJlcXVlc3QgdGVzdCIKKyk7CisKK3ZhciB4
aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKK3ZhciBhcnIgPSBuZXcgQXJyYXkoKTsKK3Nob3Vs
ZEJlVHJ1ZSgieGhyIGluc3RhbmNlb2YgWE1MSHR0cFJlcXVlc3QiKQorc2hvdWxkQmVGYWxzZSgi
YXJyIGluc3RhbmNlb2YgWE1MSHR0cFJlcXVlc3QiKQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZDk0ZDJmMi4uMGIwOWYxNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAwOS0wNy0wNyAgWXV6
byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGZvcjogQnVnIDI1MjA1IC0gIFhNTEh0dHBSZXF1
ZXN0IGluc3RhbmNlIGlzIG5vdCBhbiBpbnN0YW5jZW9mIFhNTEh0dHBSZXF1ZXN0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTIwNQorCisgICAgICAg
IFRlc3Q6IGZhc3QvanMvaW5zdGFuY2VvZi14bWxodHRwcmVxdWVzdC5odG1sCisKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKToKKwog
MjAwOS0wNi0yNCAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuaAppbmRleCA5NzhhOWYwLi5lNmU2MTkyIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5o
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmgK
QEAgLTIxLDYgKzIxLDcgQEAKICNkZWZpbmUgSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yX2gK
IAogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvU3RydWN0dXJl
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzEsNiArMzIsMTEgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAKICAgICB2aXJ0dWFsIHZv
aWQgbWFyaygpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVT
dHJ1Y3R1cmUoSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBK
U0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVj
dFR5cGUsIEpTQzo6SGFzU3RhbmRhcmRHZXRPd25Qcm9wZXJ0eVNsb3QgfCBKU0M6OkltcGxlbWVu
dHNIYXNJbnN0YW5jZSkpOworICAgIH0KKyAgCiBwcml2YXRlOgogICAgIHZpcnR1YWwgSlNDOjpD
b25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDOjpDb25zdHJ1Y3REYXRhJik7CiAgICAg
dmlydHVhbCBjb25zdCBKU0M6OkNsYXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4g
JnNfaW5mbzsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32434</attachid>
            <date>2009-07-08 00:29:08 -0700</date>
            <delta_ts>2009-07-08 19:29:54 -0700</delta_ts>
            <desc>This also fixes for XSTLProcessor, Audio, etc.</desc>
            <filename>instanceof_patch_1.txt</filename>
            <type>text/plain</type>
            <size>15884</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCBlYWM5MzM1Li5iMTJlZGQ0IDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMDktMDctMDggIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBmb3I6IEJ1ZyAy
NTIwNSAtICBYTUxIdHRwUmVxdWVzdCBpbnN0YW5jZSBpcyBub3QgYW4gaW5zdGFuY2VvZiBYTUxI
dHRwUmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjUyMDUKKworICAgICAgICBJbiBhZGRpdGlvbiB0byBmb3IgWE1MSHR0cFJlcXVlc3QsIHRo
aXMgYWxzbyBmaXhlcyBmb3I6CisgICAgICAgIC0gQXVkaW8KKyAgICAgICAgLSBJbWFnZQorICAg
ICAgICAtIE1lc3NhZ2VDaGFubmVsCisgICAgICAgIC0gT3B0aW9uCisgICAgICAgIC0gV2ViS2l0
Q1NTTWF0cml4CisgICAgICAgIC0gV2ViS2l0UG9pbnQKKyAgICAgICAgLSBXb3JrZXIKKyAgICAg
ICAgLSBYU0xUUHJvY2Vzc29yCisKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0Lmg6CisgICAg
ICAgIChKU0M6OkpTT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmVGb3JDb25zdHJ1Y3Rvcik6CisKIDIw
MDktMDYtMjQgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBHYXZpbiBCYXJyYWNsb3VnaC4KZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuaCBiL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuaAppbmRleCBk
YjQ3YWM3Li45YmM1NzVhIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2Jq
ZWN0LmgKKysrIGIvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5oCkBAIC0yMDMsNiAr
MjAzLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6
Y3JlYXRlKHByb3RvdHlwZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgSGFzU3RhbmRhcmRHZXRPd25Q
cm9wZXJ0eVNsb3QpKTsKICAgICAgICAgfQogCisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0
cnVjdHVyZT4gY3JlYXRlU3RydWN0dXJlRm9yQ29uc3RydWN0b3IoSlNWYWx1ZSBwcm90b3R5cGUp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZShwcm90b3R5
cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIEhhc1N0YW5kYXJkR2V0T3duUHJvcGVydHlTbG90IHwg
SW1wbGVtZW50c0hhc0luc3RhbmNlKSk7CisgICAgICAgIH0KKwogICAgIHByaXZhdGU6CiAgICAg
ICAgIENvbnN0UHJvcGVydHlTdG9yYWdlIHByb3BlcnR5U3RvcmFnZSgpIGNvbnN0IHsgcmV0dXJu
IChpc1VzaW5nSW5saW5lU3RvcmFnZSgpID8gbV9pbmxpbmVTdG9yYWdlIDogbV9leHRlcm5hbFN0
b3JhZ2UpOyB9CiAgICAgICAgIFByb3BlcnR5U3RvcmFnZSBwcm9wZXJ0eVN0b3JhZ2UoKSB7IHJl
dHVybiAoaXNVc2luZ0lubGluZVN0b3JhZ2UoKSA/IG1faW5saW5lU3RvcmFnZSA6IG1fZXh0ZXJu
YWxTdG9yYWdlKTsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDA0MDg0ZDguLmZhMDJiMmIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NSBAQAorMjAwOS0wNy0wOCAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGZvcjogQnVn
IDI1MjA1IC0gIFhNTEh0dHBSZXF1ZXN0IGluc3RhbmNlIGlzIG5vdCBhbiBpbnN0YW5jZW9mIFhN
TEh0dHBSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNTIwNQorCisgICAgICAgIEluIGFkZGl0aW9uIHRvIGZvciBYTUxIdHRwUmVxdWVzdCwg
dGhpcyBhbHNvIGZpeGVzIGZvcjoKKyAgICAgICAgLSBBdWRpbworICAgICAgICAtIEltYWdlCisg
ICAgICAgIC0gTWVzc2FnZUNoYW5uZWwKKyAgICAgICAgLSBPcHRpb24KKyAgICAgICAgLSBXZWJL
aXRDU1NNYXRyaXgKKyAgICAgICAgLSBXZWJLaXRQb2ludAorICAgICAgICAtIFdvcmtlcgorICAg
ICAgICAtIFhTTFRQcm9jZXNzb3IKKworICAgICAgICAqIGZhc3QvanMvaW5zdGFuY2VvZi1vcGVy
YXRvci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvaW5zdGFuY2VvZi1v
cGVyYXRvci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3Jlc291cmNlcy9pbnN0YW5j
ZW9mLW9wZXJhdG9yLWR1bW15LXdvcmtlci5qczogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9y
ZXNvdXJjZXMvaW5zdGFuY2VvZi1vcGVyYXRvci5qczogQWRkZWQuCisKIDIwMDktMDYtMjQgIERh
biBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1v
biBGcmFzZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL2luc3RhbmNlb2Ytb3Bl
cmF0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9pbnN0YW5jZW9mLW9wZXJh
dG9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDBm
NWNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9pbnN0YW5jZW9mLW9w
ZXJhdG9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1IEBACitpbnN0YW5jZW9mIFhNTEh0dHBS
ZXF1ZXN0IHRlc3QKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgKG5ldyBB
dWRpbygpKSBpbnN0YW5jZW9mIEF1ZGlvIGlzIHRydWUKK1BBU1MgKG5ldyBBcnJheSgpKSBpbnN0
YW5jZW9mIEF1ZGlvIGlzIGZhbHNlCitQQVNTIChuZXcgSW1hZ2UoKSkgaW5zdGFuY2VvZiBJbWFn
ZSBpcyB0cnVlCitQQVNTIChuZXcgQXJyYXkoKSkgaW5zdGFuY2VvZiBJbWFnZSBpcyBmYWxzZQor
UEFTUyAobmV3IE9wdGlvbigpKSBpbnN0YW5jZW9mIE9wdGlvbiBpcyB0cnVlCitQQVNTIChuZXcg
QXJyYXkoKSkgaW5zdGFuY2VvZiBPcHRpb24gaXMgZmFsc2UKK1BBU1MgKG5ldyBXZWJLaXRDU1NN
YXRyaXgoKSkgaW5zdGFuY2VvZiBXZWJLaXRDU1NNYXRyaXggaXMgdHJ1ZQorUEFTUyAobmV3IEFy
cmF5KCkpIGluc3RhbmNlb2YgV2ViS2l0Q1NTTWF0cml4IGlzIGZhbHNlCitQQVNTIChuZXcgV2Vi
S2l0UG9pbnQoKSkgaW5zdGFuY2VvZiBXZWJLaXRQb2ludCBpcyB0cnVlCitQQVNTIChuZXcgQXJy
YXkoKSkgaW5zdGFuY2VvZiBXZWJLaXRQb2ludCBpcyBmYWxzZQorUEFTUyAobmV3IFdvcmtlcign
aW5zdGFuY2VvZi1vcGVyYXRvci1kdW1teS13b3JrZXIuanMnKSkgaW5zdGFuY2VvZiBXb3JrZXIg
aXMgdHJ1ZQorUEFTUyAobmV3IEFycmF5KCkpIGluc3RhbmNlb2YgV29ya2VyIGlzIGZhbHNlCitQ
QVNTIChuZXcgWE1MSHR0cFJlcXVlc3QoKSkgaW5zdGFuY2VvZiBYTUxIdHRwUmVxdWVzdCBpcyB0
cnVlCitQQVNTIChuZXcgQXJyYXkoKSkgaW5zdGFuY2VvZiBYTUxIdHRwUmVxdWVzdCBpcyBmYWxz
ZQorUEFTUyAobmV3IFhTTFRQcm9jZXNzb3IoKSkgaW5zdGFuY2VvZiBYU0xUUHJvY2Vzc29yIGlz
IHRydWUKK1BBU1MgKG5ldyBBcnJheSgpKSBpbnN0YW5jZW9mIFhTTFRQcm9jZXNzb3IgaXMgZmFs
c2UKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2pzL2luc3RhbmNlb2Ytb3BlcmF0b3IuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvanMvaW5zdGFuY2VvZi1vcGVyYXRvci5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4NTRlMTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2pzL2luc3RhbmNlb2Ytb3BlcmF0b3IuaHRtbApAQCAtMCwwICsxLDEzIEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvanMtdGVzdC1z
dHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2luc3RhbmNlb2Ytb3BlcmF0
b3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9qcy9yZXNvdXJjZXMvaW5zdGFuY2VvZi1vcGVyYXRvci1kdW1teS13b3JrZXIuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9pbnN0YW5jZW9mLW9wZXJhdG9yLWR1bW15LXdvcmtl
ci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YTY1ZGJhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvaW5zdGFuY2VvZi1vcGVy
YXRvci1kdW1teS13b3JrZXIuanMKQEAgLTAsMCArMSBAQAorLy8gRW1wdHkgSmF2YVNjcmlwdCBm
aWxlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvaW5zdGFuY2Vv
Zi1vcGVyYXRvci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2luc3RhbmNlb2Yt
b3BlcmF0b3IuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGU5MjYyMQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2luc3RhbmNl
b2Ytb3BlcmF0b3IuanMKQEAgLTAsMCArMSwzMyBAQAorZGVzY3JpcHRpb24oCisiaW5zdGFuY2Vv
ZiBYTUxIdHRwUmVxdWVzdCB0ZXN0IgorKTsKKworc2hvdWxkQmVUcnVlKCIobmV3IEF1ZGlvKCkp
IGluc3RhbmNlb2YgQXVkaW8iKTsKK3Nob3VsZEJlRmFsc2UoIihuZXcgQXJyYXkoKSkgaW5zdGFu
Y2VvZiBBdWRpbyIpOworCitzaG91bGRCZVRydWUoIihuZXcgSW1hZ2UoKSkgaW5zdGFuY2VvZiBJ
bWFnZSIpOworc2hvdWxkQmVGYWxzZSgiKG5ldyBBcnJheSgpKSBpbnN0YW5jZW9mIEltYWdlIik7
CisKKy8vIE1lc3NhZ2VDaGFubmVsIGlzIG5vdCBhdmFpbGFibGUgeWV0LgorLy9zaG91bGRCZVRy
dWUoIihuZXcgTWVzc2FnZUNoYW5uZWwoKSkgaW5zdGFuY2VvZiBNZXNzYWdlQ2hhbm5lbCIpOwor
Ly9zaG91bGRCZUZhbHNlKCIobmV3IEFycmF5KCkpIGluc3RhbmNlb2YgTWVzc2FnZUNoYW5uZWwi
KTsKKworc2hvdWxkQmVUcnVlKCIobmV3IE9wdGlvbigpKSBpbnN0YW5jZW9mIE9wdGlvbiIpOwor
c2hvdWxkQmVGYWxzZSgiKG5ldyBBcnJheSgpKSBpbnN0YW5jZW9mIE9wdGlvbiIpOworCitzaG91
bGRCZVRydWUoIihuZXcgV2ViS2l0Q1NTTWF0cml4KCkpIGluc3RhbmNlb2YgV2ViS2l0Q1NTTWF0
cml4Iik7CitzaG91bGRCZUZhbHNlKCIobmV3IEFycmF5KCkpIGluc3RhbmNlb2YgV2ViS2l0Q1NT
TWF0cml4Iik7CisKK3Nob3VsZEJlVHJ1ZSgiKG5ldyBXZWJLaXRQb2ludCgpKSBpbnN0YW5jZW9m
IFdlYktpdFBvaW50Iik7CitzaG91bGRCZUZhbHNlKCIobmV3IEFycmF5KCkpIGluc3RhbmNlb2Yg
V2ViS2l0UG9pbnQiKTsKKworc2hvdWxkQmVUcnVlKCIobmV3IFdvcmtlcignaW5zdGFuY2VvZi1v
cGVyYXRvci1kdW1teS13b3JrZXIuanMnKSkgaW5zdGFuY2VvZiBXb3JrZXIiKTsKK3Nob3VsZEJl
RmFsc2UoIihuZXcgQXJyYXkoKSkgaW5zdGFuY2VvZiBXb3JrZXIiKTsKKworc2hvdWxkQmVUcnVl
KCIobmV3IFhNTEh0dHBSZXF1ZXN0KCkpIGluc3RhbmNlb2YgWE1MSHR0cFJlcXVlc3QiKQorc2hv
dWxkQmVGYWxzZSgiKG5ldyBBcnJheSgpKSBpbnN0YW5jZW9mIFhNTEh0dHBSZXF1ZXN0IikKKwor
c2hvdWxkQmVUcnVlKCIobmV3IFhTTFRQcm9jZXNzb3IoKSkgaW5zdGFuY2VvZiBYU0xUUHJvY2Vz
c29yIik7CitzaG91bGRCZUZhbHNlKCIobmV3IEFycmF5KCkpIGluc3RhbmNlb2YgWFNMVFByb2Nl
c3NvciIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDk0ZDJmMi4uYzJlNDQz
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0MSBAQAorMjAwOS0wNy0wOCAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2ds
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Rml4IGZvcjogQnVnIDI1MjA1IC0gIFhNTEh0dHBSZXF1ZXN0IGluc3RhbmNlIGlzIG5vdCBhbiBp
bnN0YW5jZW9mIFhNTEh0dHBSZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNTIwNQorCisgICAgICAgIEluIGFkZGl0aW9uIHRvIGZvciBYTUxI
dHRwUmVxdWVzdCwgdGhpcyBhbHNvIGZpeGVzIGZvcjoKKyAgICAgICAgLSBBdWRpbworICAgICAg
ICAtIEltYWdlCisgICAgICAgIC0gTWVzc2FnZUNoYW5uZWwKKyAgICAgICAgLSBPcHRpb24KKyAg
ICAgICAgLSBXZWJLaXRDU1NNYXRyaXgKKyAgICAgICAgLSBXZWJLaXRQb2ludAorICAgICAgICAt
IFdvcmtlcgorICAgICAgICAtIFhTTFRQcm9jZXNzb3IKKworICAgICAgICBUZXN0OiBmYXN0L2pz
L2luc3RhbmNlb2Ytb3BlcmF0b3IuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRp
b0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQXVkaW9Db25zdHJ1Y3Rvcjo6
SlNBdWRpb0NvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3Ry
dWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNJbWFnZUNvbnN0cnVjdG9yOjpKU0ltYWdl
Q29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDb25z
dHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0
b3I6OkpTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNPcHRpb25Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU09wdGlvbkNvbnN0
cnVjdG9yOjpKU09wdGlvbkNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dl
YktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTV2ViS2l0
Q1NTTWF0cml4Q29uc3RydWN0b3I6OkpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IpOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU1dlYktpdFBvaW50Q29uc3RydWN0b3I6OkpTV2ViS2l0UG9pbnRDb25zdHJ1
Y3Rvcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJDb25zdHJ1Y3Rvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1dvcmtlckNvbnN0cnVjdG9yOjpKU1dvcmtlckNvbnN0cnVjdG9y
KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yOjpKU1hNTEh0
dHBSZXF1ZXN0Q29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWFNMVFByb2Nl
c3NvckNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTWFNMVFByb2Nlc3NvckNv
bnN0cnVjdG9yOjpKU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvcik6CisKIDIwMDktMDYtMjQgIEpl
cmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29u
c3RydWN0b3IuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3Bw
CmluZGV4IDc0YmNhZDUuLmFiNWIzMzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNBdWRpb0NvbnN0cnVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9D
b25zdHJ1Y3Rvci5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY29u
c3QgQ2xhc3NJbmZvIEpTQXVkaW9Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiQXVkaW9Db25zdHJ1
Y3RvciIsIDAsIDAsIDAgfTsKIAogSlNBdWRpb0NvbnN0cnVjdG9yOjpKU0F1ZGlvQ29uc3RydWN0
b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAg
IDogRE9NT2JqZWN0KEpTQXVkaW9Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKS0+b2JqZWN0UHJvdG90eXBlKCkpKQorICAgIDogRE9NT2JqZWN0
KEpTQXVkaW9Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlRm9yQ29uc3RydWN0b3IoZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5vYmplY3RQcm90b3R5cGUoKSkpCiAgICAgLCBtX2dsb2Jh
bE9iamVjdChnbG9iYWxPYmplY3QpCiB7CiAgICAgQVNTRVJUKGdsb2JhbE9iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJ
bWFnZUNvbnN0cnVjdG9yLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVj
dG9yLmNwcAppbmRleCA0YTI3YmI0Li41ODFhOGY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0ltYWdlQ29uc3RydWN0b3IuY3BwCkBAIC0zNSw3ICszNSw3IEBAIEFTU0VSVF9DTEFTU19GSVRT
X0lOX0NFTEwoSlNJbWFnZUNvbnN0cnVjdG9yKTsKIGNvbnN0IENsYXNzSW5mbyBKU0ltYWdlQ29u
c3RydWN0b3I6OnNfaW5mbyA9IHsgIkltYWdlQ29uc3RydWN0b3IiLCAwLCAwLCAwIH07CiAKIEpT
SW1hZ2VDb25zdHJ1Y3Rvcjo6SlNJbWFnZUNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICA6IERPTU9iamVjdChKU0ltYWdlQ29u
c3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm9i
amVjdFByb3RvdHlwZSgpKSkKKyAgICA6IERPTU9iamVjdChKU0ltYWdlQ29uc3RydWN0b3I6OmNy
ZWF0ZVN0cnVjdHVyZUZvckNvbnN0cnVjdG9yKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+
b2JqZWN0UHJvdG90eXBlKCkpKQogICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0KQog
ewogICAgIEFTU0VSVChnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rv
ci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5j
cHAKaW5kZXggNDk1YmQ1My4uMzQxZjkzOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcApAQCAtMzgsNyArMzgsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjb25zdCBDbGFzc0luZm8gSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVj
dG9yOjpzX2luZm8gPSB7ICJNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yIiwgMCwgMCwgMCB9Owog
CiBKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3I6OkpTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAg
OiBET01PYmplY3QoSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUo
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5vYmplY3RQcm90b3R5cGUoKSkpCisgICAgOiBE
T01PYmplY3QoSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmVGb3JD
b25zdHJ1Y3RvcihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm9iamVjdFByb3RvdHlwZSgp
KSkKICAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCkKIHsKICAgICBwdXREaXJlY3Qo
ZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNNZXNzYWdlQ2hhbm5lbFByb3RvdHlw
ZTo6c2VsZihleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBOb25lKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5jcHAgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4IDllODE4ZmYuLmNl
OTIwZTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rv
ci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNwcApA
QCAtMzUsNyArMzUsNyBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTT3B0aW9uQ29uc3Ry
dWN0b3IpOwogY29uc3QgQ2xhc3NJbmZvIEpTT3B0aW9uQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsg
Ik9wdGlvbkNvbnN0cnVjdG9yIiwgMCwgMCwgMCB9OwogCiBKU09wdGlvbkNvbnN0cnVjdG9yOjpK
U09wdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCkKLSAgICA6IERPTU9iamVjdChKU09wdGlvbkNvbnN0cnVjdG9yOjpjcmVhdGVT
dHJ1Y3R1cmUoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5vYmplY3RQcm90b3R5cGUoKSkp
CisgICAgOiBET01PYmplY3QoSlNPcHRpb25Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlRm9y
Q29uc3RydWN0b3IoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5vYmplY3RQcm90b3R5cGUo
KSkpCiAgICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmplY3QpCiB7CiAgICAgQVNTRVJUKGds
b2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvci5jcHAgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuY3BwCmluZGV4IGM3ZmU0
YTUuLjFkYjExMmUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NN
YXRyaXhDb25zdHJ1Y3Rvci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdENT
U01hdHJpeENvbnN0cnVjdG9yLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjb25zdCBDbGFzc0luZm8gSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvcjo6c19pbmZv
ID0geyAiV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IiLCAwLCAwLCAwIH07CiAKIEpTV2ViS2l0
Q1NTTWF0cml4Q29uc3RydWN0b3I6OkpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleGVjKQotICAgIDogRE9NT2JqZWN0KEpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3I6
OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm9iamVjdFByb3Rv
dHlwZSgpKSkKKyAgICA6IERPTU9iamVjdChKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yOjpj
cmVhdGVTdHJ1Y3R1cmVGb3JDb25zdHJ1Y3RvcihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkt
Pm9iamVjdFByb3RvdHlwZSgpKSkKIHsKICAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1l
cygpLnByb3RvdHlwZSwgSlNXZWJLaXRDU1NNYXRyaXhQcm90b3R5cGU6OnNlbGYoZXhlYywgZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwgTm9uZSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKGV4ZWMsIDEpLCBSZWFkT25seXxEb250RGVs
ZXRlfERvbnRFbnVtKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRQ
b2ludENvbnN0cnVjdG9yLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludENv
bnN0cnVjdG9yLmNwcAppbmRleCBjN2Q0ZTM2Li4xNDE0ZTJhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwCkBAIC0zNyw3ICszNyw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBKU0M7CiBjb25zdCBDbGFzc0luZm8gSlNXZWJLaXRQb2ludENvbnN0
cnVjdG9yOjpzX2luZm8gPSB7ICJXZWJLaXRQb2ludENvbnN0cnVjdG9yIiwgMCwgMCwgMCB9Owog
CiBKU1dlYktpdFBvaW50Q29uc3RydWN0b3I6OkpTV2ViS2l0UG9pbnRDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIGV4ZWMpCi0gICAgOiBET01PYmplY3QoSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yOjpj
cmVhdGVTdHJ1Y3R1cmUoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5vYmplY3RQcm90b3R5
cGUoKSkpCisgICAgOiBET01PYmplY3QoSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yOjpjcmVhdGVT
dHJ1Y3R1cmVGb3JDb25zdHJ1Y3RvcihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm9iamVj
dFByb3RvdHlwZSgpKSkKIHsKICAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnBy
b3RvdHlwZSwgSlNXZWJLaXRQb2ludFByb3RvdHlwZTo6c2VsZihleGVjLCBleGVjLT5sZXhpY2Fs
R2xvYmFsT2JqZWN0KCkpLCBOb25lKTsKICAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1l
cygpLmxlbmd0aCwganNOdW1iZXIoZXhlYywgMiksIFJlYWRPbmx5fERvbnREZWxldGV8RG9udEVu
dW0pOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnN0cnVjdG9y
LmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb25zdHJ1Y3Rvci5jcHAKaW5kZXgg
OGVhNjcxOC4uYzBiNTAxYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtl
ckNvbnN0cnVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29uc3Ry
dWN0b3IuY3BwCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNvbnN0IENs
YXNzSW5mbyBKU1dvcmtlckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJXb3JrZXJDb25zdHJ1Y3Rv
ciIsIDAsIDAsIDAgfTsKIAogSlNXb3JrZXJDb25zdHJ1Y3Rvcjo6SlNXb3JrZXJDb25zdHJ1Y3Rv
cihFeGVjU3RhdGUqIGV4ZWMpCi0gICAgOiBET01PYmplY3QoSlNXb3JrZXJDb25zdHJ1Y3Rvcjo6
Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+b2JqZWN0UHJvdG90
eXBlKCkpKQorICAgIDogRE9NT2JqZWN0KEpTV29ya2VyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZUZvckNvbnN0cnVjdG9yKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+b2JqZWN0UHJv
dG90eXBlKCkpKQogewogICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90
eXBlLCBKU1dvcmtlclByb3RvdHlwZTo6c2VsZihleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCkpLCBOb25lKTsKICAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0
aCwganNOdW1iZXIoZXhlYywgMSksIFJlYWRPbmx5fERvbnREZWxldGV8RG9udEVudW0pOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3Iu
Y3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3Bw
CmluZGV4IDY1Y2RmYzIuLmU1N2ExMGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAgQVNTRVJU
X0NMQVNTX0ZJVFNfSU5fQ0VMTChKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IpOwogY29uc3Qg
Q2xhc3NJbmZvIEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiWE1MSHR0
cFJlcXVlc3RDb25zdHJ1Y3RvciIsIDAsIDAsIDAgfTsKIAogSlNYTUxIdHRwUmVxdWVzdENvbnN0
cnVjdG9yOjpKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgIDogRE9NT2JqZWN0KEpTWE1MSHR0cFJl
cXVlc3RDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKS0+b2JqZWN0UHJvdG90eXBlKCkpKQorICAgIDogRE9NT2JqZWN0KEpTWE1MSHR0cFJlcXVl
c3RDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlRm9yQ29uc3RydWN0b3IoZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpLT5vYmplY3RQcm90b3R5cGUoKSkpCiAgICAgLCBtX2dsb2JhbE9iamVj
dChnbG9iYWxPYmplY3QpCiB7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5w
cm90b3R5cGUsIEpTWE1MSHR0cFJlcXVlc3RQcm90b3R5cGU6OnNlbGYoZXhlYywgZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpKSwgTm9uZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IuY3BwCmluZGV4IDgwN2IwMTcuLjk2YTJmZTMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3Iu
Y3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3Iu
Y3BwCkBAIC00Miw3ICs0Miw3IEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNYU0xUUHJv
Y2Vzc29yQ29uc3RydWN0b3IpOwogY29uc3QgQ2xhc3NJbmZvIEpTWFNMVFByb2Nlc3NvckNvbnN0
cnVjdG9yOjpzX2luZm8gPSB7ICJYU0xUUHJvY2Vzc29yQ29uc3J1Y3RvciIsIDAsIDAsIDAgfTsK
IAogSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3I6OkpTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9y
KEV4ZWNTdGF0ZSogZXhlYykKLSAgICA6IERPTU9iamVjdChKU1hTTFRQcm9jZXNzb3JDb25zdHJ1
Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+b2JqZWN0
UHJvdG90eXBlKCkpKQorICAgIDogRE9NT2JqZWN0KEpTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9y
OjpjcmVhdGVTdHJ1Y3R1cmVGb3JDb25zdHJ1Y3RvcihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0
KCktPm9iamVjdFByb3RvdHlwZSgpKSkKIHsKICAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlO
YW1lcygpLnByb3RvdHlwZSwgSlNYU0xUUHJvY2Vzc29yUHJvdG90eXBlOjpzZWxmKGV4ZWMsIGV4
ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIE5vbmUpOwogfQo=
</data>
<flag name="review"
          id="16878"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32499</attachid>
            <date>2009-07-08 19:29:54 -0700</date>
            <delta_ts>2009-07-09 18:33:38 -0700</delta_ts>
            <desc>DOMConstructorObject approach.</desc>
            <filename>instanceof_patch_2.txt</filename>
            <type>text/plain</type>
            <size>20529</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwNDA4NGQ4Li5mYTAyYjJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDktMDct
MDggIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBmb3I6IEJ1ZyAyNTIwNSAtICBYTUxI
dHRwUmVxdWVzdCBpbnN0YW5jZSBpcyBub3QgYW4gaW5zdGFuY2VvZiBYTUxIdHRwUmVxdWVzdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUyMDUKKwor
ICAgICAgICBJbiBhZGRpdGlvbiB0byBmb3IgWE1MSHR0cFJlcXVlc3QsIHRoaXMgYWxzbyBmaXhl
cyBmb3I6CisgICAgICAgIC0gQXVkaW8KKyAgICAgICAgLSBJbWFnZQorICAgICAgICAtIE1lc3Nh
Z2VDaGFubmVsCisgICAgICAgIC0gT3B0aW9uCisgICAgICAgIC0gV2ViS2l0Q1NTTWF0cml4Cisg
ICAgICAgIC0gV2ViS2l0UG9pbnQKKyAgICAgICAgLSBXb3JrZXIKKyAgICAgICAgLSBYU0xUUHJv
Y2Vzc29yCisKKyAgICAgICAgKiBmYXN0L2pzL2luc3RhbmNlb2Ytb3BlcmF0b3ItZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL2luc3RhbmNlb2Ytb3BlcmF0b3IuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9qcy9yZXNvdXJjZXMvaW5zdGFuY2VvZi1vcGVyYXRvci1k
dW1teS13b3JrZXIuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvcmVzb3VyY2VzL2luc3Rh
bmNlb2Ytb3BlcmF0b3IuanM6IEFkZGVkLgorCiAyMDA5LTA2LTI0ICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9pbnN0YW5jZW9mLW9wZXJhdG9yLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvanMvaW5zdGFuY2VvZi1vcGVyYXRvci1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQwZjVjYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvaW5zdGFuY2VvZi1vcGVyYXRvci1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyNSBAQAoraW5zdGFuY2VvZiBYTUxIdHRwUmVxdWVzdCB0ZXN0CisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIChuZXcgQXVkaW8oKSkgaW5zdGFu
Y2VvZiBBdWRpbyBpcyB0cnVlCitQQVNTIChuZXcgQXJyYXkoKSkgaW5zdGFuY2VvZiBBdWRpbyBp
cyBmYWxzZQorUEFTUyAobmV3IEltYWdlKCkpIGluc3RhbmNlb2YgSW1hZ2UgaXMgdHJ1ZQorUEFT
UyAobmV3IEFycmF5KCkpIGluc3RhbmNlb2YgSW1hZ2UgaXMgZmFsc2UKK1BBU1MgKG5ldyBPcHRp
b24oKSkgaW5zdGFuY2VvZiBPcHRpb24gaXMgdHJ1ZQorUEFTUyAobmV3IEFycmF5KCkpIGluc3Rh
bmNlb2YgT3B0aW9uIGlzIGZhbHNlCitQQVNTIChuZXcgV2ViS2l0Q1NTTWF0cml4KCkpIGluc3Rh
bmNlb2YgV2ViS2l0Q1NTTWF0cml4IGlzIHRydWUKK1BBU1MgKG5ldyBBcnJheSgpKSBpbnN0YW5j
ZW9mIFdlYktpdENTU01hdHJpeCBpcyBmYWxzZQorUEFTUyAobmV3IFdlYktpdFBvaW50KCkpIGlu
c3RhbmNlb2YgV2ViS2l0UG9pbnQgaXMgdHJ1ZQorUEFTUyAobmV3IEFycmF5KCkpIGluc3RhbmNl
b2YgV2ViS2l0UG9pbnQgaXMgZmFsc2UKK1BBU1MgKG5ldyBXb3JrZXIoJ2luc3RhbmNlb2Ytb3Bl
cmF0b3ItZHVtbXktd29ya2VyLmpzJykpIGluc3RhbmNlb2YgV29ya2VyIGlzIHRydWUKK1BBU1Mg
KG5ldyBBcnJheSgpKSBpbnN0YW5jZW9mIFdvcmtlciBpcyBmYWxzZQorUEFTUyAobmV3IFhNTEh0
dHBSZXF1ZXN0KCkpIGluc3RhbmNlb2YgWE1MSHR0cFJlcXVlc3QgaXMgdHJ1ZQorUEFTUyAobmV3
IEFycmF5KCkpIGluc3RhbmNlb2YgWE1MSHR0cFJlcXVlc3QgaXMgZmFsc2UKK1BBU1MgKG5ldyBY
U0xUUHJvY2Vzc29yKCkpIGluc3RhbmNlb2YgWFNMVFByb2Nlc3NvciBpcyB0cnVlCitQQVNTIChu
ZXcgQXJyYXkoKSkgaW5zdGFuY2VvZiBYU0xUUHJvY2Vzc29yIGlzIGZhbHNlCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9qcy9pbnN0YW5jZW9mLW9wZXJhdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2pzL2luc3RhbmNlb2Ytb3BlcmF0b3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4yODU0ZTE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9q
cy9pbnN0YW5jZW9mLW9wZXJhdG9yLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnN0YW5jZW9mLW9wZXJhdG9yLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2Vz
L2luc3RhbmNlb2Ytb3BlcmF0b3ItZHVtbXktd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9q
cy9yZXNvdXJjZXMvaW5zdGFuY2VvZi1vcGVyYXRvci1kdW1teS13b3JrZXIuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE2NWRiYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2luc3RhbmNlb2Ytb3BlcmF0b3ItZHVtbXktd29y
a2VyLmpzCkBAIC0wLDAgKzEgQEAKKy8vIEVtcHR5IEphdmFTY3JpcHQgZmlsZS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2luc3RhbmNlb2Ytb3BlcmF0b3IuanMg
Yi9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9pbnN0YW5jZW9mLW9wZXJhdG9yLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlOTI2MjEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9pbnN0YW5jZW9mLW9wZXJhdG9yLmpz
CkBAIC0wLDAgKzEsMzMgQEAKK2Rlc2NyaXB0aW9uKAorImluc3RhbmNlb2YgWE1MSHR0cFJlcXVl
c3QgdGVzdCIKKyk7CisKK3Nob3VsZEJlVHJ1ZSgiKG5ldyBBdWRpbygpKSBpbnN0YW5jZW9mIEF1
ZGlvIik7CitzaG91bGRCZUZhbHNlKCIobmV3IEFycmF5KCkpIGluc3RhbmNlb2YgQXVkaW8iKTsK
Kworc2hvdWxkQmVUcnVlKCIobmV3IEltYWdlKCkpIGluc3RhbmNlb2YgSW1hZ2UiKTsKK3Nob3Vs
ZEJlRmFsc2UoIihuZXcgQXJyYXkoKSkgaW5zdGFuY2VvZiBJbWFnZSIpOworCisvLyBNZXNzYWdl
Q2hhbm5lbCBpcyBub3QgYXZhaWxhYmxlIHlldC4KKy8vc2hvdWxkQmVUcnVlKCIobmV3IE1lc3Nh
Z2VDaGFubmVsKCkpIGluc3RhbmNlb2YgTWVzc2FnZUNoYW5uZWwiKTsKKy8vc2hvdWxkQmVGYWxz
ZSgiKG5ldyBBcnJheSgpKSBpbnN0YW5jZW9mIE1lc3NhZ2VDaGFubmVsIik7CisKK3Nob3VsZEJl
VHJ1ZSgiKG5ldyBPcHRpb24oKSkgaW5zdGFuY2VvZiBPcHRpb24iKTsKK3Nob3VsZEJlRmFsc2Uo
IihuZXcgQXJyYXkoKSkgaW5zdGFuY2VvZiBPcHRpb24iKTsKKworc2hvdWxkQmVUcnVlKCIobmV3
IFdlYktpdENTU01hdHJpeCgpKSBpbnN0YW5jZW9mIFdlYktpdENTU01hdHJpeCIpOworc2hvdWxk
QmVGYWxzZSgiKG5ldyBBcnJheSgpKSBpbnN0YW5jZW9mIFdlYktpdENTU01hdHJpeCIpOworCitz
aG91bGRCZVRydWUoIihuZXcgV2ViS2l0UG9pbnQoKSkgaW5zdGFuY2VvZiBXZWJLaXRQb2ludCIp
Oworc2hvdWxkQmVGYWxzZSgiKG5ldyBBcnJheSgpKSBpbnN0YW5jZW9mIFdlYktpdFBvaW50Iik7
CisKK3Nob3VsZEJlVHJ1ZSgiKG5ldyBXb3JrZXIoJ2luc3RhbmNlb2Ytb3BlcmF0b3ItZHVtbXkt
d29ya2VyLmpzJykpIGluc3RhbmNlb2YgV29ya2VyIik7CitzaG91bGRCZUZhbHNlKCIobmV3IEFy
cmF5KCkpIGluc3RhbmNlb2YgV29ya2VyIik7CisKK3Nob3VsZEJlVHJ1ZSgiKG5ldyBYTUxIdHRw
UmVxdWVzdCgpKSBpbnN0YW5jZW9mIFhNTEh0dHBSZXF1ZXN0IikKK3Nob3VsZEJlRmFsc2UoIihu
ZXcgQXJyYXkoKSkgaW5zdGFuY2VvZiBYTUxIdHRwUmVxdWVzdCIpCisKK3Nob3VsZEJlVHJ1ZSgi
KG5ldyBYU0xUUHJvY2Vzc29yKCkpIGluc3RhbmNlb2YgWFNMVFByb2Nlc3NvciIpOworc2hvdWxk
QmVGYWxzZSgiKG5ldyBBcnJheSgpKSBpbnN0YW5jZW9mIFhTTFRQcm9jZXNzb3IiKTsKKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ5NGQyZjIuLjZmMTc3Y2QgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMg
QEAKKzIwMDktMDctMDggIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvanMv
aW5zdGFuY2VvZi1vcGVyYXRvci5odG1sCisKKyAgICAgICAgRml4IGZvcjogQnVnIDI1MjA1IC0g
IFhNTEh0dHBSZXF1ZXN0IGluc3RhbmNlIGlzIG5vdCBhbiBpbnN0YW5jZW9mIFhNTEh0dHBSZXF1
ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTIw
NQorCisgICAgICAgIEluIGFkZGl0aW9uIHRvIGZvciBYTUxIdHRwUmVxdWVzdCwgdGhpcyBhbHNv
IGZpeGVzIGZvcjoKKyAgICAgICAgLSBBdWRpbworICAgICAgICAtIEltYWdlCisgICAgICAgIC0g
TWVzc2FnZUNoYW5uZWwKKyAgICAgICAgLSBPcHRpb24KKyAgICAgICAgLSBXZWJLaXRDU1NNYXRy
aXgKKyAgICAgICAgLSBXZWJLaXRQb2ludAorICAgICAgICAtIFdvcmtlcgorICAgICAgICAtIFhT
TFRQcm9jZXNzb3IKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU0F1ZGlvQ29uc3RydWN0b3I6OkpTQXVkaW9Db25zdHJ1
Y3Rvcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmg6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpET01D
b25zdHJ1Y3Rvck9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TUNvbnN0cnVjdG9yT2JqZWN0OjpET01Db25zdHJ1Y3Rvck9iamVjdCk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSW1h
Z2VDb25zdHJ1Y3Rvcjo6SlNJbWFnZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0ltYWdlQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VD
aGFubmVsQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNNZXNzYWdlQ2hhbm5l
bENvbnN0cnVjdG9yOjpKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNPcHRp
b25Db25zdHJ1Y3Rvcjo6SlNPcHRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViS2l0
Q1NTTWF0cml4Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJLaXRDU1NN
YXRyaXhDb25zdHJ1Y3Rvcjo6SlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvcik6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvci5oOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU1dlYktpdFBvaW50Q29uc3RydWN0b3I6OkpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvcik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yLmg6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU1dvcmtlckNvbnN0cnVjdG9yOjpKU1dvcmtlckNvbnN0cnVjdG9yKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnN0cnVjdG9yLmg6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
WE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcjo6SlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvcjo6SlNYU0xUUHJvY2Vzc29y
Q29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckNvbnN0
cnVjdG9yLmg6CisKIDIwMDktMDYtMjQgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwCmluZGV4IDc0YmNhZDUuLjUzZTJhMmIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmNwcAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5jcHAKQEAgLTQyLDcgKzQyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY29uc3QgQ2xhc3NJbmZvIEpTQXVkaW9Db25zdHJ1Y3Rv
cjo6c19pbmZvID0geyAiQXVkaW9Db25zdHJ1Y3RvciIsIDAsIDAsIDAgfTsKIAogSlNBdWRpb0Nv
bnN0cnVjdG9yOjpKU0F1ZGlvQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgIDogRE9NT2JqZWN0KEpTQXVkaW9Db25zdHJ1Y3Rv
cjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+b2JqZWN0UHJv
dG90eXBlKCkpKQorICAgIDogRE9NQ29uc3RydWN0b3JPYmplY3QoSlNBdWRpb0NvbnN0cnVjdG9y
OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5vYmplY3RQcm90
b3R5cGUoKSkpCiAgICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmplY3QpCiB7CiAgICAgQVNT
RVJUKGdsb2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmggYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5oCmluZGV4IDBhM2E3ZWEuLjNkODQ1NDkgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuaApAQCAtMzQsNyArMzQsNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBKU0F1ZGlvQ29uc3RydWN0b3IgOiBw
dWJsaWMgRE9NT2JqZWN0IHsKKyAgICBjbGFzcyBKU0F1ZGlvQ29uc3RydWN0b3IgOiBwdWJsaWMg
RE9NQ29uc3RydWN0b3JPYmplY3QgewogICAgIHB1YmxpYzoKICAgICAgICAgSlNBdWRpb0NvbnN0
cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgKaW5kZXggMTM3OGM5MS4uMTQ0MTIzNiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NQmluZGluZy5oCkBAIC01OSw2ICs1OSwyNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAj
ZW5kaWYKICAgICB9OwogCisgICAgLy8gQmFzZSBjbGFzcyBmb3IgYWxsIGNvbnN0cnVjdG9yIG9i
amVjdHMgaW4gdGhpcyBiaW5kaW5nIGV4Y2VwdCBXaW5kb3cuCisgICAgY2xhc3MgRE9NQ29uc3Ry
dWN0b3JPYmplY3QgOiBwdWJsaWMgRE9NT2JqZWN0IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1Zh
bHVlIHByb3RvdHlwZSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0
dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgSlND
OjpIYXNTdGFuZGFyZEdldE93blByb3BlcnR5U2xvdCB8IEpTQzo6SW1wbGVtZW50c0hhc0luc3Rh
bmNlKSk7CisgICAgICAgIH0KKworICAgIHByb3RlY3RlZDoKKyAgICAgICAgZXhwbGljaXQgRE9N
Q29uc3RydWN0b3JPYmplY3QoUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gc3RydWN0dXJlKQor
ICAgICAgICAgICAgOiBET01PYmplY3Qoc3RydWN0dXJlKQorICAgICAgICB7CisgICAgICAgIH0K
KworI2lmbmRlZiBOREVCVUcKKyAgICAgICAgdmlydHVhbCB+RE9NQ29uc3RydWN0b3JPYmplY3Qo
KTsKKyNlbmRpZgorICAgIH07CisKICAgICBET01PYmplY3QqIGdldENhY2hlZERPTU9iamVjdFdy
YXBwZXIoSlNDOjpKU0dsb2JhbERhdGEmLCB2b2lkKiBvYmplY3RIYW5kbGUpOwogICAgIHZvaWQg
Y2FjaGVET01PYmplY3RXcmFwcGVyKEpTQzo6SlNHbG9iYWxEYXRhJiwgdm9pZCogb2JqZWN0SGFu
ZGxlLCBET01PYmplY3QqIHdyYXBwZXIpOwogICAgIHZvaWQgZm9yZ2V0RE9NT2JqZWN0KEpTQzo6
SlNHbG9iYWxEYXRhJiwgdm9pZCogb2JqZWN0SGFuZGxlKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNJbWFnZUNvbnN0cnVjdG9yLmNwcAppbmRleCA0YTI3YmI0Li4yY2ViMTRlIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuY3BwCkBAIC0zNSw3ICszNSw3IEBAIEFT
U0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNJbWFnZUNvbnN0cnVjdG9yKTsKIGNvbnN0IENsYXNz
SW5mbyBKU0ltYWdlQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkltYWdlQ29uc3RydWN0b3IiLCAw
LCAwLCAwIH07CiAKIEpTSW1hZ2VDb25zdHJ1Y3Rvcjo6SlNJbWFnZUNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICA6IERPTU9i
amVjdChKU0ltYWdlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhpY2FsR2xv
YmFsT2JqZWN0KCktPm9iamVjdFByb3RvdHlwZSgpKSkKKyAgICA6IERPTUNvbnN0cnVjdG9yT2Jq
ZWN0KEpTSW1hZ2VDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKS0+b2JqZWN0UHJvdG90eXBlKCkpKQogICAgICwgbV9nbG9iYWxPYmplY3QoZ2xv
YmFsT2JqZWN0KQogewogICAgIEFTU0VSVChnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1
Y3Rvci5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuaAppbmRleCA4
ZGM3YWRkLi41MjhhOWQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VD
b25zdHJ1Y3Rvci5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9y
LmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3Mg
SlNJbWFnZUNvbnN0cnVjdG9yIDogcHVibGljIERPTU9iamVjdCB7CisgICAgY2xhc3MgSlNJbWFn
ZUNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsKICAgICBwdWJsaWM6
CiAgICAgICAgIEpTSW1hZ2VDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFs
T2JqZWN0Kik7CiAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwIGIv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwCmluZGV4
IDQ5NWJkNTMuLjFkNWQwNTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNz
YWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVz
c2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY29uc3QgQ2xhc3NJbmZvIEpTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvcjo6c19p
bmZvID0geyAiTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3RvciIsIDAsIDAsIDAgfTsKIAogSlNNZXNz
YWdlQ2hhbm5lbENvbnN0cnVjdG9yOjpKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgIDogRE9NT2Jq
ZWN0KEpTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKS0+b2JqZWN0UHJvdG90eXBlKCkpKQorICAgIDogRE9NQ29uc3Ry
dWN0b3JPYmplY3QoSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUo
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5vYmplY3RQcm90b3R5cGUoKSkpCiAgICAgLCBt
X2dsb2JhbE9iamVjdChnbG9iYWxPYmplY3QpCiB7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTTWVzc2FnZUNoYW5uZWxQcm90b3R5cGU6OnNlbGYoZXhl
YywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwgTm9uZSk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5oIGIvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuaAppbmRleCA5MGMyOWEzLi4x
MDk2ZjU5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxD
b25zdHJ1Y3Rvci5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbENv
bnN0cnVjdG9yLmgKQEAgLTMwLDcgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0g
ICAgY2xhc3MgSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yIDogcHVibGljIERPTU9iamVjdCB7
CisgICAgY2xhc3MgSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0
cnVjdG9yT2JqZWN0IHsKICAgICBwdWJsaWM6CiAgICAgICAgIEpTTWVzc2FnZUNoYW5uZWxDb25z
dHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7CiAgICAgICAgIHZp
cnR1YWwgfkpTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3RvcigpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNPcHRpb25Db25zdHJ1Y3Rvci5jcHAKaW5kZXggOWU4MThmZi4uYTQ0YTM5MCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNwcAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0zNSw3ICszNSw3
IEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNPcHRpb25Db25zdHJ1Y3Rvcik7CiBjb25z
dCBDbGFzc0luZm8gSlNPcHRpb25Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiT3B0aW9uQ29uc3Ry
dWN0b3IiLCAwLCAwLCAwIH07CiAKIEpTT3B0aW9uQ29uc3RydWN0b3I6OkpTT3B0aW9uQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQot
ICAgIDogRE9NT2JqZWN0KEpTT3B0aW9uQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm9iamVjdFByb3RvdHlwZSgpKSkKKyAgICA6IERPTUNv
bnN0cnVjdG9yT2JqZWN0KEpTT3B0aW9uQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm9iamVjdFByb3RvdHlwZSgpKSkKICAgICAsIG1fZ2xv
YmFsT2JqZWN0KGdsb2JhbE9iamVjdCkKIHsKICAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0LT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U09wdGlvbkNvbnN0cnVjdG9yLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3Ry
dWN0b3IuaAppbmRleCAzYzg3YzI4Li4wNDgzZmI2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
T3B0aW9uQ29uc3RydWN0b3IuaApAQCAtMjYsNyArMjYsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLSAgICBjbGFzcyBKU09wdGlvbkNvbnN0cnVjdG9yIDogcHVibGljIERPTU9iamVjdCB7
CisgICAgY2xhc3MgSlNPcHRpb25Db25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9i
amVjdCB7CiAgICAgcHVibGljOgogICAgICAgICBKU09wdGlvbkNvbnN0cnVjdG9yKEpTQzo6RXhl
Y1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50
KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0
cml4Q29uc3RydWN0b3IuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJp
eENvbnN0cnVjdG9yLmNwcAppbmRleCBjN2ZlNGE1Li4xOTE0ZDA1IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuY3BwCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvci5jcHAKQEAgLTM2
LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY29uc3QgQ2xhc3NJbmZvIEpTV2ViS2l0
Q1NTTWF0cml4Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIldlYktpdENTU01hdHJpeENvbnN0cnVj
dG9yIiwgMCwgMCwgMCB9OwogCiBKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yOjpKU1dlYktp
dENTU01hdHJpeENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKLSAgICA6IERPTU9iamVjdChK
U1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+bGV4aWNh
bEdsb2JhbE9iamVjdCgpLT5vYmplY3RQcm90b3R5cGUoKSkpCisgICAgOiBET01Db25zdHJ1Y3Rv
ck9iamVjdChKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZXhl
Yy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5vYmplY3RQcm90b3R5cGUoKSkpCiB7CiAgICAgcHV0
RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTV2ViS2l0Q1NTTWF0cml4
UHJvdG90eXBlOjpzZWxmKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIE5vbmUp
OwogICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihl
eGVjLCAxKSwgUmVhZE9ubHl8RG9udERlbGV0ZXxEb250RW51bSk7CmRpZmYgLS1naXQgYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuaCBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvci5oCmluZGV4IGQwZTBiZDEu
LjBiYmYxOTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRy
aXhDb25zdHJ1Y3Rvci5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRy
aXhDb25zdHJ1Y3Rvci5oCkBAIC0zMSw3ICszMSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01PYmplY3Qg
eworY2xhc3MgSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1
Y3Rvck9iamVjdCB7CiBwdWJsaWM6CiAgICAgSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3RvcihK
U0M6OkV4ZWNTdGF0ZSopOwogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rv
ci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAK
aW5kZXggYzdkNGUzNi4uYTUwNDVlNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNX
ZWJLaXRQb2ludENvbnN0cnVjdG9yLmNwcApAQCAtMzcsNyArMzcsNyBAQCB1c2luZyBuYW1lc3Bh
Y2UgSlNDOwogY29uc3QgQ2xhc3NJbmZvIEpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvcjo6c19pbmZv
ID0geyAiV2ViS2l0UG9pbnRDb25zdHJ1Y3RvciIsIDAsIDAsIDAgfTsKIAogSlNXZWJLaXRQb2lu
dENvbnN0cnVjdG9yOjpKU1dlYktpdFBvaW50Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQot
ICAgIDogRE9NT2JqZWN0KEpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+b2JqZWN0UHJvdG90eXBlKCkpKQorICAgIDog
RE9NQ29uc3RydWN0b3JPYmplY3QoSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1
Y3R1cmUoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5vYmplY3RQcm90b3R5cGUoKSkpCiB7
CiAgICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTV2ViS2l0
UG9pbnRQcm90b3R5cGU6OnNlbGYoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwg
Tm9uZSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVt
YmVyKGV4ZWMsIDIpLCBSZWFkT25seXxEb250RGVsZXRlfERvbnRFbnVtKTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yLmggYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5oCmluZGV4IGE1YmI1YzEuLjlk
MTkyMjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludENvbnN0
cnVjdG9yLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q29uc3RydWN0
b3IuaApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpT
V2ViS2l0UG9pbnRDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01PYmplY3QgeworY2xhc3MgSlNXZWJL
aXRQb2ludENvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsKIHB1Ymxp
YzoKICAgICBKU1dlYktpdFBvaW50Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqKTsKICAgICBz
dGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckNvbnN0cnVjdG9yLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXb3JrZXJDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOGVhNjcxOC4uMDdlYTJlYiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnN0cnVjdG9yLmNwcAorKysgYi9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29uc3RydWN0b3IuY3BwCkBAIC00Miw3ICs0Miw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNvbnN0IENsYXNzSW5mbyBKU1dvcmtlckNvbnN0cnVjdG9y
OjpzX2luZm8gPSB7ICJXb3JrZXJDb25zdHJ1Y3RvciIsIDAsIDAsIDAgfTsKIAogSlNXb3JrZXJD
b25zdHJ1Y3Rvcjo6SlNXb3JrZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCi0gICAgOiBE
T01PYmplY3QoSlNXb3JrZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKS0+b2JqZWN0UHJvdG90eXBlKCkpKQorICAgIDogRE9NQ29uc3RydWN0
b3JPYmplY3QoSlNXb3JrZXJDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKS0+b2JqZWN0UHJvdG90eXBlKCkpKQogewogICAgIHB1dERpcmVjdChl
eGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU1dvcmtlclByb3RvdHlwZTo6c2VsZihl
eGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBOb25lKTsKICAgICBwdXREaXJlY3Qo
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoZXhlYywgMSksIFJlYWRPbmx5
fERvbnREZWxldGV8RG9udEVudW0pOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dvcmtlckNvbnN0cnVjdG9yLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29uc3Ry
dWN0b3IuaAppbmRleCBkMWRmN2ViLi43MzU0MzllIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV29ya2VyQ29uc3RydWN0b3IuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V29ya2VyQ29uc3RydWN0b3IuaApAQCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLSAgICBjbGFzcyBKU1dvcmtlckNvbnN0cnVjdG9yIDogcHVibGljIERPTU9iamVjdCB7
CisgICAgY2xhc3MgSlNXb3JrZXJDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9i
amVjdCB7CiAgICAgcHVibGljOgogICAgICAgICBKU1dvcmtlckNvbnN0cnVjdG9yKEpTQzo6RXhl
Y1N0YXRlKik7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVx
dWVzdENvbnN0cnVjdG9yLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVz
dENvbnN0cnVjdG9yLmNwcAppbmRleCA2NWNkZmMyLi4yYmJkOTM0IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3BwCkBAIC0zMyw3
ICszMyw3IEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNYTUxIdHRwUmVxdWVzdENvbnN0
cnVjdG9yKTsKIGNvbnN0IENsYXNzSW5mbyBKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3I6OnNf
aW5mbyA9IHsgIlhNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IiLCAwLCAwLCAwIH07CiAKIEpTWE1M
SHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcjo6SlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICA6IERPTU9i
amVjdChKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPm9iamVjdFByb3RvdHlwZSgpKSkKKyAgICA6IERPTUNvbnN0
cnVjdG9yT2JqZWN0KEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJl
KGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+b2JqZWN0UHJvdG90eXBlKCkpKQogICAgICwg
bV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0KQogewogICAgIHB1dERpcmVjdChleGVjLT5wcm9w
ZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU1hNTEh0dHBSZXF1ZXN0UHJvdG90eXBlOjpzZWxmKGV4
ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIE5vbmUpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuaCBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmgKaW5kZXggOTc4YTlmMC4u
ZjBiMTBjOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0
Q29uc3RydWN0b3IuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RD
b25zdHJ1Y3Rvci5oCkBAIC0yNCw3ICsyNCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yIDogcHVibGljIERPTU9iamVjdCB7Citj
bGFzcyBKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JP
YmplY3QgewogcHVibGljOgogICAgIEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3RvcihKU0M6OkV4
ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yLmNwcAppbmRleCA4MDdiMDE3Li5kOWI0
OGY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckNvbnN0
cnVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckNvbnN0
cnVjdG9yLmNwcApAQCAtNDIsNyArNDIsNyBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpT
WFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yKTsKIGNvbnN0IENsYXNzSW5mbyBKU1hTTFRQcm9jZXNz
b3JDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiWFNMVFByb2Nlc3NvckNvbnNydWN0b3IiLCAwLCAw
LCAwIH07CiAKIEpTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yOjpKU1hTTFRQcm9jZXNzb3JDb25z
dHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCi0gICAgOiBET01PYmplY3QoSlNYU0xUUHJvY2Vzc29y
Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkt
Pm9iamVjdFByb3RvdHlwZSgpKSkKKyAgICA6IERPTUNvbnN0cnVjdG9yT2JqZWN0KEpTWFNMVFBy
b2Nlc3NvckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+bGV4aWNhbEdsb2JhbE9i
amVjdCgpLT5vYmplY3RQcm90b3R5cGUoKSkpCiB7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTWFNMVFByb2Nlc3NvclByb3RvdHlwZTo6c2VsZihleGVj
LCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBOb25lKTsKIH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IuaCBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IuaAppbmRleCA2NGVmOTQ0Li4z
ZTYxYmVlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckNv
bnN0cnVjdG9yLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDb25z
dHJ1Y3Rvci5oCkBAIC0zMiw3ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAg
IGNsYXNzIEpTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yIDogcHVibGljIERPTU9iamVjdCB7Cisg
ICAgY2xhc3MgSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0
b3JPYmplY3QgewogICAgIHB1YmxpYzoKICAgICAgICAgSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0
b3IoSlNDOjpFeGVjU3RhdGUqKTsKICAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZv
IHNfaW5mbzsK
</data>
<flag name="review"
          id="16924"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32547</attachid>
            <date>2009-07-09 18:33:38 -0700</date>
            <delta_ts>2009-07-10 16:44:49 -0700</delta_ts>
            <desc>Removed virtual destructor declaration of DOMConstructorObject.</desc>
            <filename>instanceof_patch_3.txt</filename>
            <type>text/plain</type>
            <size>20461</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwNDA4NGQ4Li5mYTAyYjJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDktMDct
MDggIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBmb3I6IEJ1ZyAyNTIwNSAtICBYTUxI
dHRwUmVxdWVzdCBpbnN0YW5jZSBpcyBub3QgYW4gaW5zdGFuY2VvZiBYTUxIdHRwUmVxdWVzdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUyMDUKKwor
ICAgICAgICBJbiBhZGRpdGlvbiB0byBmb3IgWE1MSHR0cFJlcXVlc3QsIHRoaXMgYWxzbyBmaXhl
cyBmb3I6CisgICAgICAgIC0gQXVkaW8KKyAgICAgICAgLSBJbWFnZQorICAgICAgICAtIE1lc3Nh
Z2VDaGFubmVsCisgICAgICAgIC0gT3B0aW9uCisgICAgICAgIC0gV2ViS2l0Q1NTTWF0cml4Cisg
ICAgICAgIC0gV2ViS2l0UG9pbnQKKyAgICAgICAgLSBXb3JrZXIKKyAgICAgICAgLSBYU0xUUHJv
Y2Vzc29yCisKKyAgICAgICAgKiBmYXN0L2pzL2luc3RhbmNlb2Ytb3BlcmF0b3ItZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL2luc3RhbmNlb2Ytb3BlcmF0b3IuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9qcy9yZXNvdXJjZXMvaW5zdGFuY2VvZi1vcGVyYXRvci1k
dW1teS13b3JrZXIuanM6IEFkZGVkLgorICAgICAgICAqIGZhc3QvanMvcmVzb3VyY2VzL2luc3Rh
bmNlb2Ytb3BlcmF0b3IuanM6IEFkZGVkLgorCiAyMDA5LTA2LTI0ICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9pbnN0YW5jZW9mLW9wZXJhdG9yLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvanMvaW5zdGFuY2VvZi1vcGVyYXRvci1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQwZjVjYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvanMvaW5zdGFuY2VvZi1vcGVyYXRvci1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyNSBAQAoraW5zdGFuY2VvZiBYTUxIdHRwUmVxdWVzdCB0ZXN0CisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIChuZXcgQXVkaW8oKSkgaW5zdGFu
Y2VvZiBBdWRpbyBpcyB0cnVlCitQQVNTIChuZXcgQXJyYXkoKSkgaW5zdGFuY2VvZiBBdWRpbyBp
cyBmYWxzZQorUEFTUyAobmV3IEltYWdlKCkpIGluc3RhbmNlb2YgSW1hZ2UgaXMgdHJ1ZQorUEFT
UyAobmV3IEFycmF5KCkpIGluc3RhbmNlb2YgSW1hZ2UgaXMgZmFsc2UKK1BBU1MgKG5ldyBPcHRp
b24oKSkgaW5zdGFuY2VvZiBPcHRpb24gaXMgdHJ1ZQorUEFTUyAobmV3IEFycmF5KCkpIGluc3Rh
bmNlb2YgT3B0aW9uIGlzIGZhbHNlCitQQVNTIChuZXcgV2ViS2l0Q1NTTWF0cml4KCkpIGluc3Rh
bmNlb2YgV2ViS2l0Q1NTTWF0cml4IGlzIHRydWUKK1BBU1MgKG5ldyBBcnJheSgpKSBpbnN0YW5j
ZW9mIFdlYktpdENTU01hdHJpeCBpcyBmYWxzZQorUEFTUyAobmV3IFdlYktpdFBvaW50KCkpIGlu
c3RhbmNlb2YgV2ViS2l0UG9pbnQgaXMgdHJ1ZQorUEFTUyAobmV3IEFycmF5KCkpIGluc3RhbmNl
b2YgV2ViS2l0UG9pbnQgaXMgZmFsc2UKK1BBU1MgKG5ldyBXb3JrZXIoJ2luc3RhbmNlb2Ytb3Bl
cmF0b3ItZHVtbXktd29ya2VyLmpzJykpIGluc3RhbmNlb2YgV29ya2VyIGlzIHRydWUKK1BBU1Mg
KG5ldyBBcnJheSgpKSBpbnN0YW5jZW9mIFdvcmtlciBpcyBmYWxzZQorUEFTUyAobmV3IFhNTEh0
dHBSZXF1ZXN0KCkpIGluc3RhbmNlb2YgWE1MSHR0cFJlcXVlc3QgaXMgdHJ1ZQorUEFTUyAobmV3
IEFycmF5KCkpIGluc3RhbmNlb2YgWE1MSHR0cFJlcXVlc3QgaXMgZmFsc2UKK1BBU1MgKG5ldyBY
U0xUUHJvY2Vzc29yKCkpIGluc3RhbmNlb2YgWFNMVFByb2Nlc3NvciBpcyB0cnVlCitQQVNTIChu
ZXcgQXJyYXkoKSkgaW5zdGFuY2VvZiBYU0xUUHJvY2Vzc29yIGlzIGZhbHNlCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9qcy9pbnN0YW5jZW9mLW9wZXJhdG9yLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2pzL2luc3RhbmNlb2Ytb3BlcmF0b3IuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4yODU0ZTE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9q
cy9pbnN0YW5jZW9mLW9wZXJhdG9yLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0icmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9pbnN0YW5jZW9mLW9wZXJhdG9yLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2Vz
L2luc3RhbmNlb2Ytb3BlcmF0b3ItZHVtbXktd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9q
cy9yZXNvdXJjZXMvaW5zdGFuY2VvZi1vcGVyYXRvci1kdW1teS13b3JrZXIuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE2NWRiYQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2luc3RhbmNlb2Ytb3BlcmF0b3ItZHVtbXktd29y
a2VyLmpzCkBAIC0wLDAgKzEgQEAKKy8vIEVtcHR5IEphdmFTY3JpcHQgZmlsZS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2luc3RhbmNlb2Ytb3BlcmF0b3IuanMg
Yi9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9pbnN0YW5jZW9mLW9wZXJhdG9yLmpzCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRlOTI2MjEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL3Jlc291cmNlcy9pbnN0YW5jZW9mLW9wZXJhdG9yLmpz
CkBAIC0wLDAgKzEsMzMgQEAKK2Rlc2NyaXB0aW9uKAorImluc3RhbmNlb2YgWE1MSHR0cFJlcXVl
c3QgdGVzdCIKKyk7CisKK3Nob3VsZEJlVHJ1ZSgiKG5ldyBBdWRpbygpKSBpbnN0YW5jZW9mIEF1
ZGlvIik7CitzaG91bGRCZUZhbHNlKCIobmV3IEFycmF5KCkpIGluc3RhbmNlb2YgQXVkaW8iKTsK
Kworc2hvdWxkQmVUcnVlKCIobmV3IEltYWdlKCkpIGluc3RhbmNlb2YgSW1hZ2UiKTsKK3Nob3Vs
ZEJlRmFsc2UoIihuZXcgQXJyYXkoKSkgaW5zdGFuY2VvZiBJbWFnZSIpOworCisvLyBNZXNzYWdl
Q2hhbm5lbCBpcyBub3QgYXZhaWxhYmxlIHlldC4KKy8vc2hvdWxkQmVUcnVlKCIobmV3IE1lc3Nh
Z2VDaGFubmVsKCkpIGluc3RhbmNlb2YgTWVzc2FnZUNoYW5uZWwiKTsKKy8vc2hvdWxkQmVGYWxz
ZSgiKG5ldyBBcnJheSgpKSBpbnN0YW5jZW9mIE1lc3NhZ2VDaGFubmVsIik7CisKK3Nob3VsZEJl
VHJ1ZSgiKG5ldyBPcHRpb24oKSkgaW5zdGFuY2VvZiBPcHRpb24iKTsKK3Nob3VsZEJlRmFsc2Uo
IihuZXcgQXJyYXkoKSkgaW5zdGFuY2VvZiBPcHRpb24iKTsKKworc2hvdWxkQmVUcnVlKCIobmV3
IFdlYktpdENTU01hdHJpeCgpKSBpbnN0YW5jZW9mIFdlYktpdENTU01hdHJpeCIpOworc2hvdWxk
QmVGYWxzZSgiKG5ldyBBcnJheSgpKSBpbnN0YW5jZW9mIFdlYktpdENTU01hdHJpeCIpOworCitz
aG91bGRCZVRydWUoIihuZXcgV2ViS2l0UG9pbnQoKSkgaW5zdGFuY2VvZiBXZWJLaXRQb2ludCIp
Oworc2hvdWxkQmVGYWxzZSgiKG5ldyBBcnJheSgpKSBpbnN0YW5jZW9mIFdlYktpdFBvaW50Iik7
CisKK3Nob3VsZEJlVHJ1ZSgiKG5ldyBXb3JrZXIoJ2luc3RhbmNlb2Ytb3BlcmF0b3ItZHVtbXkt
d29ya2VyLmpzJykpIGluc3RhbmNlb2YgV29ya2VyIik7CitzaG91bGRCZUZhbHNlKCIobmV3IEFy
cmF5KCkpIGluc3RhbmNlb2YgV29ya2VyIik7CisKK3Nob3VsZEJlVHJ1ZSgiKG5ldyBYTUxIdHRw
UmVxdWVzdCgpKSBpbnN0YW5jZW9mIFhNTEh0dHBSZXF1ZXN0IikKK3Nob3VsZEJlRmFsc2UoIihu
ZXcgQXJyYXkoKSkgaW5zdGFuY2VvZiBYTUxIdHRwUmVxdWVzdCIpCisKK3Nob3VsZEJlVHJ1ZSgi
KG5ldyBYU0xUUHJvY2Vzc29yKCkpIGluc3RhbmNlb2YgWFNMVFByb2Nlc3NvciIpOworc2hvdWxk
QmVGYWxzZSgiKG5ldyBBcnJheSgpKSBpbnN0YW5jZW9mIFhTTFRQcm9jZXNzb3IiKTsKKwordmFy
IHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQ5NGQyZjIuLjZmMTc3Y2QgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMg
QEAKKzIwMDktMDctMDggIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGZhc3QvanMv
aW5zdGFuY2VvZi1vcGVyYXRvci5odG1sCisKKyAgICAgICAgRml4IGZvcjogQnVnIDI1MjA1IC0g
IFhNTEh0dHBSZXF1ZXN0IGluc3RhbmNlIGlzIG5vdCBhbiBpbnN0YW5jZW9mIFhNTEh0dHBSZXF1
ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTIw
NQorCisgICAgICAgIEluIGFkZGl0aW9uIHRvIGZvciBYTUxIdHRwUmVxdWVzdCwgdGhpcyBhbHNv
IGZpeGVzIGZvcjoKKyAgICAgICAgLSBBdWRpbworICAgICAgICAtIEltYWdlCisgICAgICAgIC0g
TWVzc2FnZUNoYW5uZWwKKyAgICAgICAgLSBPcHRpb24KKyAgICAgICAgLSBXZWJLaXRDU1NNYXRy
aXgKKyAgICAgICAgLSBXZWJLaXRQb2ludAorICAgICAgICAtIFdvcmtlcgorICAgICAgICAtIFhT
TFRQcm9jZXNzb3IKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU0F1ZGlvQ29uc3RydWN0b3I6OkpTQXVkaW9Db25zdHJ1
Y3Rvcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmg6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpET01D
b25zdHJ1Y3Rvck9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TUNvbnN0cnVjdG9yT2JqZWN0OjpET01Db25zdHJ1Y3Rvck9iamVjdCk6CisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSW1h
Z2VDb25zdHJ1Y3Rvcjo6SlNJbWFnZUNvbnN0cnVjdG9yKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU0ltYWdlQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VD
aGFubmVsQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNNZXNzYWdlQ2hhbm5l
bENvbnN0cnVjdG9yOjpKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNPcHRp
b25Db25zdHJ1Y3Rvcjo6SlNPcHRpb25Db25zdHJ1Y3Rvcik6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNPcHRpb25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViS2l0
Q1NTTWF0cml4Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNXZWJLaXRDU1NN
YXRyaXhDb25zdHJ1Y3Rvcjo6SlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvcik6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvci5oOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU1dlYktpdFBvaW50Q29uc3RydWN0b3I6OkpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvcik6
CisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yLmg6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNXb3JrZXJDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpKU1dvcmtlckNvbnN0cnVjdG9yOjpKU1dvcmtlckNvbnN0cnVjdG9yKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9KU1dvcmtlckNvbnN0cnVjdG9yLmg6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpT
WE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcjo6SlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvcjo6SlNYU0xUUHJvY2Vzc29y
Q29uc3RydWN0b3IpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckNvbnN0
cnVjdG9yLmg6CisKIDIwMDktMDYtMjQgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwCmluZGV4IDc0YmNhZDUuLjUzZTJhMmIgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmNwcAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5jcHAKQEAgLTQyLDcgKzQyLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY29uc3QgQ2xhc3NJbmZvIEpTQXVkaW9Db25zdHJ1Y3Rv
cjo6c19pbmZvID0geyAiQXVkaW9Db25zdHJ1Y3RvciIsIDAsIDAsIDAgfTsKIAogSlNBdWRpb0Nv
bnN0cnVjdG9yOjpKU0F1ZGlvQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgIDogRE9NT2JqZWN0KEpTQXVkaW9Db25zdHJ1Y3Rv
cjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+b2JqZWN0UHJv
dG90eXBlKCkpKQorICAgIDogRE9NQ29uc3RydWN0b3JPYmplY3QoSlNBdWRpb0NvbnN0cnVjdG9y
OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5vYmplY3RQcm90
b3R5cGUoKSkpCiAgICAgLCBtX2dsb2JhbE9iamVjdChnbG9iYWxPYmplY3QpCiB7CiAgICAgQVNT
RVJUKGdsb2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmggYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5oCmluZGV4IDBhM2E3ZWEuLjNkODQ1NDkgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKKysrIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuaApAQCAtMzQsNyArMzQsNyBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBKU0F1ZGlvQ29uc3RydWN0b3IgOiBw
dWJsaWMgRE9NT2JqZWN0IHsKKyAgICBjbGFzcyBKU0F1ZGlvQ29uc3RydWN0b3IgOiBwdWJsaWMg
RE9NQ29uc3RydWN0b3JPYmplY3QgewogICAgIHB1YmxpYzoKICAgICAgICAgSlNBdWRpb0NvbnN0
cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKIApkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01CaW5kaW5nLmgKaW5kZXggMTM3OGM5MS4uNmUxNjgyZSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NQmluZGluZy5oCkBAIC01OSw2ICs1OSwyMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAj
ZW5kaWYKICAgICB9OwogCisgICAgLy8gQmFzZSBjbGFzcyBmb3IgYWxsIGNvbnN0cnVjdG9yIG9i
amVjdHMgaW4gdGhpcyBiaW5kaW5nIGV4Y2VwdCBXaW5kb3cuCisgICAgY2xhc3MgRE9NQ29uc3Ry
dWN0b3JPYmplY3QgOiBwdWJsaWMgRE9NT2JqZWN0IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHN0
YXRpYyBQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpKU1Zh
bHVlIHByb3RvdHlwZSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0
dXJlOjpjcmVhdGUocHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgSlND
OjpIYXNTdGFuZGFyZEdldE93blByb3BlcnR5U2xvdCB8IEpTQzo6SW1wbGVtZW50c0hhc0luc3Rh
bmNlKSk7CisgICAgICAgIH0KKworICAgIHByb3RlY3RlZDoKKyAgICAgICAgZXhwbGljaXQgRE9N
Q29uc3RydWN0b3JPYmplY3QoUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gc3RydWN0dXJlKQor
ICAgICAgICAgICAgOiBET01PYmplY3Qoc3RydWN0dXJlKQorICAgICAgICB7CisgICAgICAgIH0K
KyAgICB9OworCiAgICAgRE9NT2JqZWN0KiBnZXRDYWNoZWRET01PYmplY3RXcmFwcGVyKEpTQzo6
SlNHbG9iYWxEYXRhJiwgdm9pZCogb2JqZWN0SGFuZGxlKTsKICAgICB2b2lkIGNhY2hlRE9NT2Jq
ZWN0V3JhcHBlcihKU0M6OkpTR2xvYmFsRGF0YSYsIHZvaWQqIG9iamVjdEhhbmRsZSwgRE9NT2Jq
ZWN0KiB3cmFwcGVyKTsKICAgICB2b2lkIGZvcmdldERPTU9iamVjdChKU0M6OkpTR2xvYmFsRGF0
YSYsIHZvaWQqIG9iamVjdEhhbmRsZSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25z
dHJ1Y3Rvci5jcHAKaW5kZXggNGEyN2JiNC4uMmNlYjE0ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNJbWFnZUNvbnN0cnVjdG9yLmNwcApAQCAtMzUsNyArMzUsNyBAQCBBU1NFUlRfQ0xBU1Nf
RklUU19JTl9DRUxMKEpTSW1hZ2VDb25zdHJ1Y3Rvcik7CiBjb25zdCBDbGFzc0luZm8gSlNJbWFn
ZUNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJJbWFnZUNvbnN0cnVjdG9yIiwgMCwgMCwgMCB9Owog
CiBKU0ltYWdlQ29uc3RydWN0b3I6OkpTSW1hZ2VDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgOiBET01PYmplY3QoSlNJbWFn
ZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgp
LT5vYmplY3RQcm90b3R5cGUoKSkpCisgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChKU0ltYWdl
Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkt
Pm9iamVjdFByb3RvdHlwZSgpKSkKICAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9iamVjdCkK
IHsKICAgICBBU1NFUlQoZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuaCBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmgKaW5kZXggOGRjN2FkZC4uNTI4
YTlkMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3Iu
aAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5oCkBAIC0yNSw3
ICsyNSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIEpTSW1hZ2VDb25z
dHJ1Y3RvciA6IHB1YmxpYyBET01PYmplY3QgeworICAgIGNsYXNzIEpTSW1hZ2VDb25zdHJ1Y3Rv
ciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CiAgICAgcHVibGljOgogICAgICAgICBK
U0ltYWdlQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwog
ICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcCBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcAppbmRleCA0OTViZDUzLi4x
ZDVkMDUzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxD
b25zdHJ1Y3Rvci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVs
Q29uc3RydWN0b3IuY3BwCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNv
bnN0IENsYXNzSW5mbyBKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIk1l
c3NhZ2VDaGFubmVsQ29uc3RydWN0b3IiLCAwLCAwLCAwIH07CiAKIEpTTWVzc2FnZUNoYW5uZWxD
b25zdHJ1Y3Rvcjo6SlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywg
SlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICA6IERPTU9iamVjdChKU01lc3Nh
Z2VDaGFubmVsQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhpY2FsR2xvYmFs
T2JqZWN0KCktPm9iamVjdFByb3RvdHlwZSgpKSkKKyAgICA6IERPTUNvbnN0cnVjdG9yT2JqZWN0
KEpTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmxleGlj
YWxHbG9iYWxPYmplY3QoKS0+b2JqZWN0UHJvdG90eXBlKCkpKQogICAgICwgbV9nbG9iYWxPYmpl
Y3QoZ2xvYmFsT2JqZWN0KQogewogICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCku
cHJvdG90eXBlLCBKU01lc3NhZ2VDaGFubmVsUHJvdG90eXBlOjpzZWxmKGV4ZWMsIGV4ZWMtPmxl
eGljYWxHbG9iYWxPYmplY3QoKSksIE5vbmUpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuaCBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmgKaW5kZXggOTBjMjlhMy4uMTA5NmY1OSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3Iu
aAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5o
CkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIEpT
TWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01PYmplY3QgeworICAgIGNsYXNz
IEpTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVj
dCB7CiAgICAgcHVibGljOgogICAgICAgICBKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IoSlND
OjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCopOwogICAgICAgICB2aXJ0dWFsIH5KU01l
c3NhZ2VDaGFubmVsQ29uc3RydWN0b3IoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNPcHRpb25Db25zdHJ1Y3Rvci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTT3B0aW9u
Q29uc3RydWN0b3IuY3BwCmluZGV4IDllODE4ZmYuLmE0NGEzOTAgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMzUsNyArMzUsNyBAQCBBU1NFUlRf
Q0xBU1NfRklUU19JTl9DRUxMKEpTT3B0aW9uQ29uc3RydWN0b3IpOwogY29uc3QgQ2xhc3NJbmZv
IEpTT3B0aW9uQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIk9wdGlvbkNvbnN0cnVjdG9yIiwgMCwg
MCwgMCB9OwogCiBKU09wdGlvbkNvbnN0cnVjdG9yOjpKU09wdGlvbkNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLSAgICA6IERPTU9i
amVjdChKU09wdGlvbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpLT5vYmplY3RQcm90b3R5cGUoKSkpCisgICAgOiBET01Db25zdHJ1Y3Rvck9i
amVjdChKU09wdGlvbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+bGV4aWNhbEds
b2JhbE9iamVjdCgpLT5vYmplY3RQcm90b3R5cGUoKSkpCiAgICAgLCBtX2dsb2JhbE9iamVjdChn
bG9iYWxPYmplY3QpCiB7CiAgICAgQVNTRVJUKGdsb2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25z
dHJ1Y3Rvci5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmgKaW5k
ZXggM2M4N2MyOC4uMDQ4M2ZiNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09w
dGlvbkNvbnN0cnVjdG9yLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0
cnVjdG9yLmgKQEAgLTI2LDcgKzI2LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAg
Y2xhc3MgSlNPcHRpb25Db25zdHJ1Y3RvciA6IHB1YmxpYyBET01PYmplY3QgeworICAgIGNsYXNz
IEpTT3B0aW9uQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JPYmplY3QgewogICAg
IHB1YmxpYzoKICAgICAgICAgSlNPcHRpb25Db25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpT
RE9NR2xvYmFsT2JqZWN0Kik7CiAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0Owpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeENvbnN0cnVj
dG9yLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggYzdmZTRhNS4uMTkxNGQwNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuY3BwCkBAIC0zNiw3ICszNiw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNvbnN0IENsYXNzSW5mbyBKU1dlYktpdENTU01hdHJpeENv
bnN0cnVjdG9yOjpzX2luZm8gPSB7ICJXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3RvciIsIDAsIDAs
IDAgfTsKIAogSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvcjo6SlNXZWJLaXRDU1NNYXRyaXhD
b25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMpCi0gICAgOiBET01PYmplY3QoSlNXZWJLaXRDU1NN
YXRyaXhDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKS0+b2JqZWN0UHJvdG90eXBlKCkpKQorICAgIDogRE9NQ29uc3RydWN0b3JPYmplY3QoSlNX
ZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKS0+b2JqZWN0UHJvdG90eXBlKCkpKQogewogICAgIHB1dERpcmVjdChleGVj
LT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU1dlYktpdENTU01hdHJpeFByb3RvdHlwZTo6
c2VsZihleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBOb25lKTsKICAgICBwdXRE
aXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1iZXIoZXhlYywgMSksIFJl
YWRPbmx5fERvbnREZWxldGV8RG9udEVudW0pOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuaAppbmRleCBkMGUwYmQxLi4wYmJmMTk1IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0
b3IuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0
b3IuaApAQCAtMzEsNyArMzEsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpT
V2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IgOiBwdWJsaWMgRE9NT2JqZWN0IHsKK2NsYXNzIEpT
V2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JPYmplY3Qg
ewogcHVibGljOgogICAgIEpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IoSlNDOjpFeGVjU3Rh
dGUqKTsKICAgICBzdGF0aWMgY29uc3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwCmluZGV4IGM3ZDRl
MzYuLmE1MDQ1ZTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRQb2lu
dENvbnN0cnVjdG9yLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRD
b25zdHJ1Y3Rvci5jcHAKQEAgLTM3LDcgKzM3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIGNv
bnN0IENsYXNzSW5mbyBKU1dlYktpdFBvaW50Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIldlYktp
dFBvaW50Q29uc3RydWN0b3IiLCAwLCAwLCAwIH07CiAKIEpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rv
cjo6SlNXZWJLaXRQb2ludENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYykKLSAgICA6IERPTU9i
amVjdChKU1dlYktpdFBvaW50Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCktPm9iamVjdFByb3RvdHlwZSgpKSkKKyAgICA6IERPTUNvbnN0cnVj
dG9yT2JqZWN0KEpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMt
PmxleGljYWxHbG9iYWxPYmplY3QoKS0+b2JqZWN0UHJvdG90eXBlKCkpKQogewogICAgIHB1dERp
cmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU1dlYktpdFBvaW50UHJvdG90
eXBlOjpzZWxmKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIE5vbmUpOwogICAg
IHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihleGVjLCAy
KSwgUmVhZE9ubHl8RG9udERlbGV0ZXxEb250RW51bSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5oIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dlYktpdFBvaW50Q29uc3RydWN0b3IuaAppbmRleCBhNWJiNWMxLi45ZDE5MjI0IDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5oCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yLmgKQEAgLTMx
LDcgKzMxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBKU1dlYktpdFBvaW50
Q29uc3RydWN0b3IgOiBwdWJsaWMgRE9NT2JqZWN0IHsKK2NsYXNzIEpTV2ViS2l0UG9pbnRDb25z
dHJ1Y3RvciA6IHB1YmxpYyBET01Db25zdHJ1Y3Rvck9iamVjdCB7CiBwdWJsaWM6CiAgICAgSlNX
ZWJLaXRQb2ludENvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKik7CiAgICAgc3RhdGljIGNvbnN0
IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXb3JrZXJDb25zdHJ1Y3Rvci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV29ya2VyQ29u
c3RydWN0b3IuY3BwCmluZGV4IDhlYTY3MTguLjA3ZWEyZWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNXb3JrZXJDb25zdHJ1Y3Rvci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1dvcmtlckNvbnN0cnVjdG9yLmNwcApAQCAtNDIsNyArNDIsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjb25zdCBDbGFzc0luZm8gSlNXb3JrZXJDb25zdHJ1Y3Rvcjo6c19pbmZvID0g
eyAiV29ya2VyQ29uc3RydWN0b3IiLCAwLCAwLCAwIH07CiAKIEpTV29ya2VyQ29uc3RydWN0b3I6
OkpTV29ya2VyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQotICAgIDogRE9NT2JqZWN0KEpT
V29ya2VyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCktPm9iamVjdFByb3RvdHlwZSgpKSkKKyAgICA6IERPTUNvbnN0cnVjdG9yT2JqZWN0KEpT
V29ya2VyQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCktPm9iamVjdFByb3RvdHlwZSgpKSkKIHsKICAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVy
dHlOYW1lcygpLnByb3RvdHlwZSwgSlNXb3JrZXJQcm90b3R5cGU6OnNlbGYoZXhlYywgZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwgTm9uZSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPnByb3Bl
cnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKGV4ZWMsIDEpLCBSZWFkT25seXxEb250RGVsZXRl
fERvbnRFbnVtKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb25z
dHJ1Y3Rvci5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnN0cnVjdG9yLmgKaW5k
ZXggZDFkZjdlYi4uNzM1NDM5ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dv
cmtlckNvbnN0cnVjdG9yLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnN0
cnVjdG9yLmgKQEAgLTMyLDcgKzMyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAg
Y2xhc3MgSlNXb3JrZXJDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01PYmplY3QgeworICAgIGNsYXNz
IEpTV29ya2VyQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NQ29uc3RydWN0b3JPYmplY3QgewogICAg
IHB1YmxpYzoKICAgICAgICAgSlNXb3JrZXJDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSopOwog
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1
Y3Rvci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggNjVjZGZjMi4uMmJiZDkzNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3BwCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmNwcApAQCAtMzMsNyArMzMsNyBAQCBB
U1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcik7CiBj
b25zdCBDbGFzc0luZm8gSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJY
TUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yIiwgMCwgMCwgMCB9OwogCiBKU1hNTEh0dHBSZXF1ZXN0
Q29uc3RydWN0b3I6OkpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgOiBET01PYmplY3QoSlNYTUxI
dHRwUmVxdWVzdENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpLT5vYmplY3RQcm90b3R5cGUoKSkpCisgICAgOiBET01Db25zdHJ1Y3Rvck9iamVj
dChKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhp
Y2FsR2xvYmFsT2JqZWN0KCktPm9iamVjdFByb3RvdHlwZSgpKSkKICAgICAsIG1fZ2xvYmFsT2Jq
ZWN0KGdsb2JhbE9iamVjdCkKIHsKICAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygp
LnByb3RvdHlwZSwgSlNYTUxIdHRwUmVxdWVzdFByb3RvdHlwZTo6c2VsZihleGVjLCBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBOb25lKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5oCmluZGV4IDk3OGE5ZjAuLmYwYjEwYzggMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9y
LmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3Iu
aApAQCAtMjQsNyArMjQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEpTWE1M
SHR0cFJlcXVlc3RDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01PYmplY3QgeworY2xhc3MgSlNYTUxI
dHRwUmVxdWVzdENvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsKIHB1
YmxpYzoKICAgICBKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBK
U0RPTUdsb2JhbE9iamVjdCopOwogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hT
TFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5jcHAKaW5kZXggODA3YjAxNy4uZDliNDhmOCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5jcHAK
KysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5jcHAK
QEAgLTQyLDcgKzQyLDcgQEAgQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU1hTTFRQcm9jZXNz
b3JDb25zdHJ1Y3Rvcik7CiBjb25zdCBDbGFzc0luZm8gSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0
b3I6OnNfaW5mbyA9IHsgIlhTTFRQcm9jZXNzb3JDb25zcnVjdG9yIiwgMCwgMCwgMCB9OwogCiBK
U1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvcjo6SlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IoRXhl
Y1N0YXRlKiBleGVjKQotICAgIDogRE9NT2JqZWN0KEpTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9y
OjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5vYmplY3RQcm90
b3R5cGUoKSkpCisgICAgOiBET01Db25zdHJ1Y3Rvck9iamVjdChKU1hTTFRQcm9jZXNzb3JDb25z
dHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+b2Jq
ZWN0UHJvdG90eXBlKCkpKQogewogICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCku
cHJvdG90eXBlLCBKU1hTTFRQcm9jZXNzb3JQcm90b3R5cGU6OnNlbGYoZXhlYywgZXhlYy0+bGV4
aWNhbEdsb2JhbE9iamVjdCgpKSwgTm9uZSk7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yLmggYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yLmgKaW5kZXggNjRlZjk0NC4uM2U2MWJlZSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvci5o
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IuaApA
QCAtMzIsNyArMzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICBjbGFzcyBKU1hT
TFRQcm9jZXNzb3JDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01PYmplY3QgeworICAgIGNsYXNzIEpT
WFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0cnVjdG9yT2JqZWN0IHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIEpTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yKEpTQzo6RXhl
Y1N0YXRlKik7CiAgICAgICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87Cg==
</data>
<flag name="review"
          id="16969"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>