<?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>39092</bug_id>
          
          <creation_ts>2010-05-13 16:17:27 -0700</creation_ts>
          <short_desc>Chromium/Mac: Add support for yank (ctrl-y)</short_desc>
          <delta_ts>2010-05-27 15:42:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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="Nico Weber">thakis</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>225555</commentid>
    <comment_count>0</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-05-13 16:17:27 -0700</bug_when>
    <thetext>Chromium/Mac: Add support for yank (ctrl-y)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225560</commentid>
    <comment_count>1</comment_count>
      <attachid>56031</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-05-13 16:22:50 -0700</bug_when>
    <thetext>Created attachment 56031
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225582</commentid>
    <comment_count>2</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-05-13 17:30:15 -0700</bug_when>
    <thetext>The new code is just a copy from some of the code in editing/mac/EditorMac.mm. jamesr suggested I pull that into a new file, but I&apos;m not sure where to put that new file (editing/macchromium? surely not). avi says that all the rendertheme code is forked like this too (chromium&apos;s code is mostly a copy of the mac port&apos;s code).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228253</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-20 01:11:07 -0700</bug_when>
    <thetext>Can we just re-use EditorMac?  The RenderTheme code recently got unified iirc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228373</commentid>
    <comment_count>4</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-05-20 07:57:23 -0700</bug_when>
    <thetext>We can&apos;t use all of EditorMac (we don&apos;t want its Editor::newGeneralClipboard(), Editor::showFontPanel(),  Editor::showStylesPanel(), Editor::showColorPanel(), and Editor::paste()), only about 50% of it.

If we want to share the yank stuff, I could
1.) put that into a file that&apos;s used by both the mac port and the chromium port on mac. In that case I need to know what directory put the file with the shared parts.

2.) The RenderTheme stuff now uses inheritance. If we wanted to do that here, I&apos;d need to give Editor a static create() method, change all calling sites of Editor::Editor() to use the factory method, and make some functions virtual. Then I&apos;d put EditorChromiumMac and EditorMac directly into editing/, and make EditorMac a subclass of EditorChromiumMac. This feels intrusive to me.

Do you want me to do one of these (or something else)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228502</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-20 12:31:10 -0700</bug_when>
    <thetext>Seems the original design for this would have been cleaner with a platform/KillRing.h class.  This is the current hack for other ports:

#if !PLATFORM(MAC)

void Editor::appendToKillRing(const String&amp;)
{
}

void Editor::prependToKillRing(const String&amp;)
{
}

String Editor::yankFromKillRing()
{
    return String();
}

void Editor::startNewKillRingSequence()
{
}

void Editor::setKillRingToYankedState()
{
}

#endif

I think we should put these calls into an object.  We can either make a KillRingNone for other ports, or we can make all the callers check non-zero.  But the Mac and ChromiumMac ports want to return a KillRingMac object.

Does that design sound sane?  You&apos;re more versed in this code than I am by now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230586</commentid>
    <comment_count>6</comment_count>
      <attachid>57071</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-05-25 23:10:33 -0700</bug_when>
    <thetext>Created attachment 57071
Patch with comments

Makes sense; done.

Is there a good way to add files? I manually updated all project files I could find, I hope I didn&apos;t miss anything. Is there something easier?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230588</commentid>
    <comment_count>7</comment_count>
      <attachid>57072</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-05-25 23:14:31 -0700</bug_when>
    <thetext>Created attachment 57072
doh</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230590</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-25 23:17:53 -0700</bug_when>
    <thetext>Attachment 57072 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/platform/mac/KillRingMac.h:42:  One space before end of line comments  [whitespace/comments] [5]
WebCore/platform/mac/KillRingMac.h:44:  One space before end of line comments  [whitespace/comments] [5]
WebCore/platform/KillRing.h:43:  One space before end of line comments  [whitespace/comments] [5]
WebCore/platform/KillRing.h:45:  One space before end of line comments  [whitespace/comments] [5]
Total errors found: 4 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230595</commentid>
    <comment_count>9</comment_count>
      <attachid>57075</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-05-25 23:26:25 -0700</bug_when>
    <thetext>Created attachment 57075
make stylebot happy(er)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230604</commentid>
    <comment_count>10</comment_count>
      <attachid>57075</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-26 01:11:16 -0700</bug_when>
    <thetext>Comment on attachment 57075
make stylebot happy(er)

We don&apos;t need this to be run-time switchable.  So we should just make KillRing.h non-virtual declarations and then add a KillRingNone.cpp which is used by every non-mac port and has empty implementations.

We could also just use a killRing() helper function in KillRing.h which returns a function-level static KillRing; which would then effectively be the killring.

Using a global function to access the killring like that makes mocking harder... but we don&apos;t really have C++ unit testing in WebCore anyway.  It would get rid of the need to have any #ifdefs in editor since everywhere would just call killRing() like it does now, but that would be a global function returning the global killring object.

Otherwise this patch looks FANTASTIC. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230605</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-26 01:12:24 -0700</bug_when>
    <thetext>The pattern I describe above of sharing declarations via the header and non-virtual implementations via *Mac or *None, etc. is a common pattern used in WebCore/platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230764</commentid>
    <comment_count>12</comment_count>
      <attachid>57114</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-05-26 10:36:26 -0700</bug_when>
    <thetext>Created attachment 57114
address comments

Created KillRingNone.cpp, removed virtual. The static function doesn&apos;t seem necessary.

find WebCore/platform -name &apos;*None*&apos; doesn&apos;t find a whole bunch of stuff, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230768</commentid>
    <comment_count>13</comment_count>
      <attachid>57115</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-05-26 10:50:24 -0700</bug_when>
    <thetext>Created attachment 57115
rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230817</commentid>
    <comment_count>14</comment_count>
      <attachid>57115</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-26 12:30:07 -0700</bug_when>
    <thetext>Comment on attachment 57115
rebase

I may be thinking of ThreadingNone.cpp in JavaScriptCore and similar.

Looks fantastic!  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231299</commentid>
    <comment_count>15</comment_count>
      <attachid>57115</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-27 07:51:08 -0700</bug_when>
    <thetext>Comment on attachment 57115
rebase

Rejecting patch 57115 from commit-queue.

Failed to run &quot;[u&apos;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Eric Seidel&apos;, u&apos;--force&apos;]&quot; exit_code: 1
Last 500 characters of output:
f 6 hunks FAILED -- saving rejects to file WebCore/WebCore.xcodeproj/project.pbxproj.rej
patching file WebCore/editing/Editor.cpp
patching file WebCore/editing/Editor.h
patching file WebCore/editing/EditorCommand.cpp
Hunk #1 succeeded at 47 with fuzz 2 (offset 1 line).
Hunk #2 succeeded at 1047 (offset 1 line).
patching file WebCore/editing/mac/EditorMac.mm
patching file WebCore/platform/KillRing.h
patching file WebCore/platform/KillRingNone.cpp
patching file WebCore/platform/mac/KillRingMac.mm

Full output: http://webkit-commit-queue.appspot.com/results/2556021</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231320</commentid>
    <comment_count>16</comment_count>
      <attachid>57249</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-05-27 08:41:24 -0700</bug_when>
    <thetext>Created attachment 57249
rebase once more</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231324</commentid>
    <comment_count>17</comment_count>
      <attachid>57250</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2010-05-27 08:51:50 -0700</bug_when>
    <thetext>Created attachment 57250
Add reviewer name</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231325</commentid>
    <comment_count>18</comment_count>
      <attachid>57250</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2010-05-27 08:55:51 -0700</bug_when>
    <thetext>Comment on attachment 57250
Add reviewer name

&lt;tonikitoo&gt; thakis, you do not need to r+ it yourself, but just get a cq+ from a committer/reviewer
&lt;tonikitoo&gt; thakis, also you have no commit message. generally tools combine the changes you have done in changeLog files as the commit message
&lt;tonikitoo&gt; not sure if it will be processed correctly by the tools, but lets try</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231373</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-27 11:11:55 -0700</bug_when>
    <thetext>You can use &quot;webkit-patch land-safely&quot; and the tools will apply the reviewer to your current diff and then upload it with commit-queue=?  That&apos;s the automated version of what you just did. :)  If the patch isnt&apos; in your working copy before you do that you woudl have to run &quot;webkit-patch apply-from-bug 39092&quot; or &quot;webkit-patch apply-attachment 57115&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231487</commentid>
    <comment_count>20</comment_count>
      <attachid>57250</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-27 15:42:04 -0700</bug_when>
    <thetext>Comment on attachment 57250
Add reviewer name

Clearing flags on attachment: 57250

Committed r60326: &lt;http://trac.webkit.org/changeset/60326&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231488</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-27 15:42:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56031</attachid>
            <date>2010-05-13 16:22:50 -0700</date>
            <delta_ts>2010-05-25 23:10:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39092-20100513162249.patch</filename>
            <type>text/plain</type>
            <size>5237</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTM5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDUtMTMgIE5pY29sYXMgV2ViZXIgIDx0aGFraXNAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTA5MgorCisgICAgICAg
IEFkZCBZYW5rIHN1cHBvcnQgdG8gY2hyb21pdW0gbWFjLiBEbyB0aGlzIGJ5IGNvcHlpbmcgV2Vi
S2l0IE1hYydzCisgICAgICAgIGltcGxlbWVudGF0aW9uIG9mIEVkaXRvcjo6eWFua0Zyb21LaWxs
UmluZygpIGFuZCBmcmllbmRzLgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKiBlZGl0aW5nL2Nocm9taXVtL0VkaXRvckNo
cm9taXVtTWFjLm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Oik6CisgICAgICAgIChXZWJD
b3JlOjppbml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3I6OmFwcGVuZFRvS2lsbFJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwcmVwZW5k
VG9LaWxsUmluZyk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnlhbmtGcm9tS2lsbFJpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzdGFydE5ld0tpbGxSaW5nU2VxdWVuY2UpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzZXRLaWxsUmluZ1RvWWFua2VkU3RhdGUpOgorCiAy
MDEwLTA1LTEzICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDU5Mzk0KQorKysgV2ViQ29y
ZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTEyNTMsNiArMTI1Myw3IEBACiAgICAg
ICAgICAgICAnZG9tL1hNTFRva2VuaXplclF0LmNwcCcsCiAgICAgICAgICAgICAnZWRpdGluZy9h
bmRyb2lkL0VkaXRvckFuZHJvaWQuY3BwJywKICAgICAgICAgICAgICdlZGl0aW5nL2Nocm9taXVt
L0VkaXRvckNocm9taXVtLmNwcCcsCisgICAgICAgICAgICAnZWRpdGluZy9jaHJvbWl1bS9FZGl0
b3JDaHJvbWl1bU1hYy5tbScsCiAgICAgICAgICAgICAnZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1t
JywKICAgICAgICAgICAgICdlZGl0aW5nL21hYy9TZWxlY3Rpb25Db250cm9sbGVyTWFjLm1tJywK
ICAgICAgICAgICAgICdlZGl0aW5nL3F0L0VkaXRvclF0LmNwcCcsCkluZGV4OiBXZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cAkocmV2aXNpb24gNTkzOTQpCisrKyBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcxNyw3ICsyNzE3LDcgQEAgdm9pZCBFZGl0b3I6OmFkZFRvS2lsbFJpbmco
UmFuZ2UqIHJhbmdlLAogICAgIG1fc2hvdWxkU3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlID0gZmFs
c2U7CiB9CiAKLSNpZiAhUExBVEZPUk0oTUFDKQorI2lmICEoUExBVEZPUk0oTUFDKSB8fCAoUExB
VEZPUk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpKQogCiB2b2lkIEVkaXRvcjo6YXBwZW5kVG9L
aWxsUmluZyhjb25zdCBTdHJpbmcmKQogewpJbmRleDogV2ViQ29yZS9lZGl0aW5nL2Nocm9taXVt
L0VkaXRvckNocm9taXVtTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9jaHJv
bWl1bS9FZGl0b3JDaHJvbWl1bU1hYy5tbQkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvZWRpdGlu
Zy9jaHJvbWl1bS9FZGl0b3JDaHJvbWl1bU1hYy5tbQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
IAorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICogCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFZGl0b3IuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitleHRlcm4gIkMiIHsKKworLy8gS2lsbCByaW5nIGNhbGxzLiBXb3Vs
ZCBiZSBiZXR0ZXIgdG8gdXNlIE5TS2lsbFJpbmcuaCwgYnV0IHRoYXQncyBub3QgYXZhaWxhYmxl
IGFzIEFQSSBvciBTUEkuCisKK3ZvaWQgX05TSW5pdGlhbGl6ZUtpbGxSaW5nKCk7Cit2b2lkIF9O
U0FwcGVuZFRvS2lsbFJpbmcoTlNTdHJpbmcgKik7Cit2b2lkIF9OU1ByZXBlbmRUb0tpbGxSaW5n
KE5TU3RyaW5nICopOworTlNTdHJpbmcgKl9OU1lhbmtGcm9tS2lsbFJpbmcoKTsKK3ZvaWQgX05T
TmV3S2lsbFJpbmdTZXF1ZW5jZSgpOwordm9pZCBfTlNTZXRLaWxsUmluZ1RvWWFua2VkU3RhdGUo
KTsKKworfQorCitzdGF0aWMgdm9pZCBpbml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgpCit7Cisg
ICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWRLaWxsUmluZyA9IGZhbHNlOworICAgIGlmICghaW5p
dGlhbGl6ZWRLaWxsUmluZykgeworICAgICAgICBpbml0aWFsaXplZEtpbGxSaW5nID0gdHJ1ZTsK
KyAgICAgICAgX05TSW5pdGlhbGl6ZUtpbGxSaW5nKCk7CisgICAgfQorfQorCit2b2lkIEVkaXRv
cjo6YXBwZW5kVG9LaWxsUmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBpbml0aWFs
aXplS2lsbFJpbmdJZk5lZWRlZCgpOworICAgIF9OU0FwcGVuZFRvS2lsbFJpbmcoc3RyaW5nKTsK
K30KKwordm9pZCBFZGl0b3I6OnByZXBlbmRUb0tpbGxSaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5n
KQoreworICAgIGluaXRpYWxpemVLaWxsUmluZ0lmTmVlZGVkKCk7CisgICAgX05TUHJlcGVuZFRv
S2lsbFJpbmcoc3RyaW5nKTsKK30KKworU3RyaW5nIEVkaXRvcjo6eWFua0Zyb21LaWxsUmluZygp
Cit7CisgICAgaW5pdGlhbGl6ZUtpbGxSaW5nSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gX05TWWFu
a0Zyb21LaWxsUmluZygpOworfQorCit2b2lkIEVkaXRvcjo6c3RhcnROZXdLaWxsUmluZ1NlcXVl
bmNlKCkKK3sKKyAgICBpbml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgpOworICAgIF9OU05ld0tp
bGxSaW5nU2VxdWVuY2UoKTsKK30KKwordm9pZCBFZGl0b3I6OnNldEtpbGxSaW5nVG9ZYW5rZWRT
dGF0ZSgpCit7CisgICAgaW5pdGlhbGl6ZUtpbGxSaW5nSWZOZWVkZWQoKTsKKyAgICBfTlNTZXRL
aWxsUmluZ1RvWWFua2VkU3RhdGUoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCgpQ
cm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJDb3JlL2VkaXRpbmcvY2hyb21pdW0vRWRpdG9yQ2hyb21p
dW1NYWMubW0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57071</attachid>
            <date>2010-05-25 23:10:33 -0700</date>
            <delta_ts>2010-05-25 23:14:31 -0700</delta_ts>
            <desc>Patch with comments</desc>
            <filename>webkit_killring.patch</filename>
            <type>text/plain</type>
            <size>14790</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDIxNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMDUtMjUgIE5pY28gV2ViZXIgIDx0aGFraXNAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTA5MgorCisgICAgICAgIEFk
ZCBZYW5rIHN1cHBvcnQgdG8gY2hyb21pdW0gbWFjLiBEbyB0aGlzIGJ5IG1vdmluZyBXZWJLaXQg
TWFjJ3MKKyAgICAgICAgaW1wbGVtZW50YXRpb24gb2YgRWRpdG9yOjp5YW5rRnJvbUtpbGxSaW5n
KCkgaW50byBpdHMgb3duIGNsYXNzIGFuZAorICAgICAgICB0aGVuIHVzaW5nIHRoYXQuCisKKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgICAgVXNlIG5ldyBLaWxsUmluZyBj
bGFzcy4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjpraWxsUmluZyk6CisgICAgICAgICAgVXNlIG5ldyBLaWxsUmluZyBjbGFzcy4KKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0
ZVlhbmtBbmRTZWxlY3QpOgorICAgICAgICAgIFVzZSBuZXcgS2lsbFJpbmcgY2xhc3MuCisgICAg
ICAgICogcGxhdGZvcm0vS2lsbFJpbmcuaDoKKyAgICAgICAgICBBZGQgbmV3IEtpbGxSaW5nIGNs
YXNzLCB3aGljaCBhY3RzIGFzIG51bGwgb2JqZWN0LgorICAgICAgICAoV2ViQ29yZTo6S2lsbFJp
bmc6On5LaWxsUmluZyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0tpbGxSaW5nTWFjLmg6Cisg
ICAgICAgICAgQWRkIG5ldyBLaWxsUmluZ01hYyBjbGFzcywgd2hpY2ggd3JpdGVzIHRvIHRoZSBt
YWMncyBraWxsIHJpbmcuCisgICAgICAgICogcGxhdGZvcm0vbWFjL0tpbGxSaW5nTWFjLm1tOgor
ICAgICAgICAgIEFkZCBuZXcgS2lsbFJpbmdNYWMgY2xhc3MsIHdoaWNoIHdyaXRlcyB0byB0aGUg
bWFjJ3Mga2lsbCByaW5nLgorCiAyMDEwLTA1LTI1ICBEdW1pdHJ1IERhbmlsaXVjICA8ZHVtaUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgY2hhbmdpbmcgImZ0czIiIHRvICJm
dHMzIiBpbiBvbmUgbG9jYXRpb24gSSBtaXNzZWQgaW4gcjYwMTg4LgpJbmRleDogV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiA2MDIxNCkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAg
LTE1NjcsNiArMTU2Nyw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9wbGF0Zm9y
bS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9u
U2VydmljZS5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaCBcCisJV2ViQ29yZS9w
bGF0Zm9ybS9LaWxsUmluZy5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL0tVUkwuY3BwIFwKIAlXZWJD
b3JlL3BsYXRmb3JtL0tVUkwuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9LVVJMSGFzaC5oIFwKSW5k
ZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5n
eXBpCShyZXZpc2lvbiA2MDIxNCkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNv
cHkpCkBAIC0yNTExLDYgKzI1MTEsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9Gb3Vu
ZGF0aW9uRXh0cmFzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9LVVJMTWFjLm1tJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW0nLAorICAgICAgICAgICAg
J3BsYXRmb3JtL21hYy9LaWxsUmluZ01hYy5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMv
S2lsbFJpbmdNYWMubW0nLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9MYW5ndWFnZS5tbScs
CiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5o
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0
Lm1tJywKQEAgLTI4OTUsNiArMjg5Nyw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vR2VvbG9j
YXRpb25TZXJ2aWNlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2
aWNlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0hvc3RXaW5kb3cuaCcsCisgICAgICAgICAg
ICAncGxhdGZvcm0vS2lsbFJpbmcuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vS1VSTC5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL0tVUkwuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
S1VSTEdvb2dsZS5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA2MDIxNCkKKysrIFdlYkNvcmUvV2ViQ29y
ZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTE2MTcsNiArMTYxNyw3IEBAIEhFQURFUlMgKz0gXAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaCBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb25zLmgg
XAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3Bl
cmF0aW9uLmggXAorICAgIHBsYXRmb3JtL0tpbGxSaW5nLmggXAogICAgIHBsYXRmb3JtL0tVUkwu
aCBcCiAgICAgcGxhdGZvcm0vTGVuZ3RoLmggXAogICAgIHBsYXRmb3JtL0xpbmtIYXNoLmggXApJ
bmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA2MDIxNCkK
KysrIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkK
QEAgLTIyNDA5LDYgKzIyNDA5LDEwIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXEtpbGxSaW5nLmgiDQorCQkJCT4NCisJCQk8
L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxLVVJMLmNw
cCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNjAyMTQpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTE1OSw2ICsxMTU5LDkg
QEAKIAkJNTFFQzkyNTkwQ0U5MERCNDAwRjkwMzA4IC8qIFNRTEVycm9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUVDOTI1NzBDRTkwREI0MDBGOTAz
MDggLyogU1FMRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MUVDOTI2NTBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0ZW1l
bnRFcnJvckNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRUM5MjVEMENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFN0YXRlbWVu
dEVycm9yQ2FsbGJhY2suY3BwICovOyB9OwogCQk1MUZBRkUzNDBDRUNCRjJEMDBCQjNGMjQgLyog
RGF0YWJhc2VUcmFja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MUZBRkUzMzBDRUNCRjJEMDBCQjNGMjQgLyogRGF0YWJhc2VUcmFja2Vy
Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJNTI2QzE2RDgxMUFDOTE4NTAwODAxMjRFIC8qIEtpbGxSaW5nLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjZDMTZENzExQUM5MTg1MDA4MDEyNEUg
LyogS2lsbFJpbmcuaCAqLzsgfTsKKwkJNTI2QzE2REIxMUFDOTFBNjAwODAxMjRFIC8qIEtpbGxS
aW5nTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MjZDMTZEOTExQUM5MUE2MDA4MDEyNEUgLyogS2lsbFJpbmdNYWMuaCAqLzsgfTsKKwkJNTI2QzE2
REMxMUFDOTFBNjAwODAxMjRFIC8qIEtpbGxSaW5nTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTI2QzE2REExMUFDOTFBNjAwODAxMjRFIC8qIEtp
bGxSaW5nTWFjLm1tICovOyB9OwogCQk1NEM1MEY3QjBFODAxREYzMDA5ODMyQTAgLyogWE1MVG9r
ZW5pemVyTGlieG1sMi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NEM1MEY3QTBFODAxREYzMDA5ODMyQTAgLyogWE1MVG9rZW5pemVyTGlieG1sMi5j
cHAgKi87IH07CiAJCTU1MEEwQkM5MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM3
MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCAqLzsgfTsKIAkJNTUwQTBCQ0Ew
ODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFs
aWZpZWROYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTY3NzYsNiArNjc3OSw5IEBACiAJCTUxRjZBM0Q1MDY2M0JGMDQwMDREMjkxOSAvKiBI
VE1MQ2FudmFzRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MQ2FudmFzRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1MUY2QTNENjA2NjNC
RjA0MDA0RDI5MTkgLyogSFRNTENhbnZhc0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTENhbnZhc0VsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTUxRkFG
RTMzMENFQ0JGMkQwMEJCM0YyNCAvKiBEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YWJhc2VUcmFja2VyQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyNkMxNkQ3MTFBQzkxODUwMDgwMTI0RSAvKiBLaWxsUmlu
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLaWxsUmluZy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1MjZDMTZEOTExQUM5MUE2MDA4MDEyNEUgLyogS2lsbFJp
bmdNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS2lsbFJpbmdNYWMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTI2QzE2REExMUFDOTFBNjAwODAxMjRFIC8q
IEtpbGxSaW5nTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
S2lsbFJpbmdNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU0QzUwRjdBMEU4
MDFERjMwMDk4MzJBMCAvKiBYTUxUb2tlbml6ZXJMaWJ4bWwyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTFRva2VuaXplckxpYnhtbDIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NTBBMEJDNzA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVk
TmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBRdWFsaWZpZWROYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBR
dWFsaWZpZWROYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFF1YWxpZmllZE5hbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xMTg4OCw2ICsxMTg5NCw4IEBACiAJCQkJQkNF
NDk0QTkwRjRGNUU5RTAwODRFMzE5IC8qIEdlb2xvY2F0aW9uU2VydmljZU1hYy5oICovLAogCQkJ
CUJDRTQ5NEFBMEY0RjVFOUUwMDg0RTMxOSAvKiBHZW9sb2NhdGlvblNlcnZpY2VNYWMubW0gKi8s
CiAJCQkJOTM1QzQ3NkUwOUFDNEQ3MzAwQTZBQUI0IC8qIEtleUV2ZW50TWFjLm1tICovLAorCQkJ
CTUyNkMxNkQ5MTFBQzkxQTYwMDgwMTI0RSAvKiBLaWxsUmluZ01hYy5oICovLAorCQkJCTUyNkMx
NkRBMTFBQzkxQTYwMDgwMTI0RSAvKiBLaWxsUmluZ01hYy5tbSAqLywKIAkJCQk2NTkzOTIzOTA5
QUU0MzVDMDAyQzUzMUYgLyogS1VSTE1hYy5tbSAqLywKIAkJCQk5MzUyMDg0NDA5QkQ0M0I5MDBG
MjAzOEQgLyogTGFuZ3VhZ2UubW0gKi8sCiAJCQkJMDZFODFFRDYwQUI1RDVFOTAwQzg3ODM3IC8q
IExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oICovLApAQCAtMTU4MTMsNiArMTU4MjEsNyBA
QAogCQkJCUZFQUI5MDEwMEVBNTFCOUMwMDYzNDhDMyAvKiBHZW9sb2NhdGlvblNlcnZpY2UuY3Bw
ICovLAogCQkJCUZFQUI5MDExMEVBNTFCOUMwMDYzNDhDMyAvKiBHZW9sb2NhdGlvblNlcnZpY2Uu
aCAqLywKIAkJCQlCQzNCQzI5QjBFOTFBQjBGMDA4MzU1ODggLyogSG9zdFdpbmRvdy5oICovLAor
CQkJCTUyNkMxNkQ3MTFBQzkxODUwMDgwMTI0RSAvKiBLaWxsUmluZy5oICovLAogCQkJCTY1OTM5
MjM1MDlBRTQzNDYwMDJDNTMxRiAvKiBLVVJMLmNwcCAqLywKIAkJCQk2NTkzOTIzNjA5QUU0MzQ2
MDAyQzUzMUYgLyogS1VSTC5oICovLAogCQkJCUJDQkQyMUFBMEU0MTdBRDQwMEEwNzBGMiAvKiBL
VVJMSGFzaC5oICovLApAQCAtMTkzMzEsNiArMTkzNDAsOCBAQAogCQkJCUM1NDQyNzRCMTFBNTdF
N0EwMDYzQTc0OSAvKiBET01TdHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTEzN0NG
MzExQTU4Mzc4MDA0QURCOTkgLyogSlNET01TdHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2MkMxMjE3RDExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNTI2QzE2RDgxMUFDOTE4NTAwODAxMjRFIC8qIEtpbGxSaW5nLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk1MjZDMTZEQjExQUM5MUE2MDA4MDEyNEUgLyogS2lsbFJpbmdNYWMuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtMjE2MjEsNiArMjE2MzIsNyBAQAogCQkJCUM1MTM3Q0YyMTFBNTgz
NzgwMDRBREI5OSAvKiBKU0RPTVN0cmluZ0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU1
NjEwRjExMUE3MDRFQjAwQjgyRDI3IC8qIERPTVN0cmluZ0xpc3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNjJDMTIxN0MxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNTI2QzE2REMxMUFDOTFBNjAwODAxMjRFIC8qIEtpbGxSaW5nTWFj
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gNjAyMTQpCisr
KyBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUs
NyBAQAogI2luY2x1ZGUgIkluZGVudE91dGRlbnRDb21tYW5kLmgiCiAjaW5jbHVkZSAiSW5zZXJ0
TGlzdENvbW1hbmQuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiS2ls
bFJpbmcuaCIKICNpbmNsdWRlICJNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgpAQCAtNzEsNiArNzIsMTAgQEAKICNp
bmNsdWRlICJ2aXNpYmxlX3VuaXRzLmgiCiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAK
KyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkK
KyNpbmNsdWRlICJLaWxsUmluZ01hYy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTkyOCw2ICs5MzMsMTEgQEAgRWRpdG9yOjpFZGl0
b3IoRnJhbWUqIGZyYW1lKQogICAgICwgbV9zaG91bGRTdGFydE5ld0tpbGxSaW5nU2VxdWVuY2Uo
ZmFsc2UpCiAgICAgLy8gVGhpcyBpcyBvZmYgYnkgZGVmYXVsdCwgc2luY2UgbW9zdCBlZGl0b3Jz
IHdhbnQgdGhpcyBiZWhhdmlvciAodGhpcyBtYXRjaGVzIElFIGJ1dCBub3QgRkYpLgogICAgICwg
bV9zaG91bGRTdHlsZVdpdGhDU1MoZmFsc2UpCisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZP
Uk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpCisgICAgLCBtX2tpbGxSaW5nKG5ldyBLaWxsUmlu
Z01hYygpKQorI2Vsc2UKKyAgICAsIG1fa2lsbFJpbmcobmV3IEtpbGxSaW5nKCkpCisjZW5kaWYK
IHsgCiB9CiAKQEAgLTI3MDcsNDEgKzI3MTcsMTYgQEAgdm9pZCBFZGl0b3I6OnRyYW5zcG9zZSgp
CiB2b2lkIEVkaXRvcjo6YWRkVG9LaWxsUmluZyhSYW5nZSogcmFuZ2UsIGJvb2wgcHJlcGVuZCkK
IHsKICAgICBpZiAobV9zaG91bGRTdGFydE5ld0tpbGxSaW5nU2VxdWVuY2UpCi0gICAgICAgIHN0
YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZSgpOworICAgICAgICBraWxsUmluZygpLT5zdGFydE5ld1Nl
cXVlbmNlKCk7CiAKICAgICBTdHJpbmcgdGV4dCA9IHBsYWluVGV4dChyYW5nZSk7CiAgICAgaWYg
KHByZXBlbmQpCi0gICAgICAgIHByZXBlbmRUb0tpbGxSaW5nKHRleHQpOworICAgICAgICBraWxs
UmluZygpLT5wcmVwZW5kKHRleHQpOwogICAgIGVsc2UKLSAgICAgICAgYXBwZW5kVG9LaWxsUmlu
Zyh0ZXh0KTsKKyAgICAgICAga2lsbFJpbmcoKS0+YXBwZW5kKHRleHQpOwogICAgIG1fc2hvdWxk
U3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlID0gZmFsc2U7CiB9CiAKLSNpZiAhUExBVEZPUk0oTUFD
KQotCi12b2lkIEVkaXRvcjo6YXBwZW5kVG9LaWxsUmluZyhjb25zdCBTdHJpbmcmKQotewotfQot
Ci12b2lkIEVkaXRvcjo6cHJlcGVuZFRvS2lsbFJpbmcoY29uc3QgU3RyaW5nJikKLXsKLX0KLQot
U3RyaW5nIEVkaXRvcjo6eWFua0Zyb21LaWxsUmluZygpCi17Ci0gICAgcmV0dXJuIFN0cmluZygp
OwotfQotCi12b2lkIEVkaXRvcjo6c3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlKCkKLXsKLX0KLQot
dm9pZCBFZGl0b3I6OnNldEtpbGxSaW5nVG9ZYW5rZWRTdGF0ZSgpCi17Ci19Ci0KLSNlbmRpZgot
CiBib29sIEVkaXRvcjo6aW5zaWRlVmlzaWJsZUFyZWEoY29uc3QgSW50UG9pbnQmIHBvaW50KSBj
b25zdAogewogICAgIGlmIChtX2ZyYW1lLT5leGNsdWRlRnJvbVRleHRTZWFyY2goKSkKSW5kZXg6
IFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmgJKHJldmlzaW9uIDYwMjE0KQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCSh3
b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBAIGNsYXNzIEVkaXRvckNsaWVudDsKIGNsYXNz
IEVkaXRvckludGVybmFsQ29tbWFuZDsKIGNsYXNzIEhUTUxFbGVtZW50OwogY2xhc3MgSGl0VGVz
dFJlc3VsdDsKK2NsYXNzIEtpbGxSaW5nOwogY2xhc3MgUGFzdGVib2FyZDsKIGNsYXNzIFNpbXBs
ZUZvbnREYXRhOwogY2xhc3MgVGV4dDsKQEAgLTI3OCwxMSArMjc5LDcgQEAgcHVibGljOgogCiAg
ICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb25Gb3JDb21tYW5kKEV2ZW50Kik7CiAKLSAgICB2
b2lkIGFwcGVuZFRvS2lsbFJpbmcoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBwcmVwZW5kVG9L
aWxsUmluZyhjb25zdCBTdHJpbmcmKTsKLSAgICBTdHJpbmcgeWFua0Zyb21LaWxsUmluZygpOwot
ICAgIHZvaWQgc3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlKCk7Ci0gICAgdm9pZCBzZXRLaWxsUmlu
Z1RvWWFua2VkU3RhdGUoKTsKKyAgICBLaWxsUmluZyoga2lsbFJpbmcoKSBjb25zdCB7IHJldHVy
biBtX2tpbGxSaW5nLmdldCgpOyB9CiAKICAgICBQYXNzUmVmUHRyPFJhbmdlPiBzZWxlY3RlZFJh
bmdlKCk7CiAgICAgCkBAIC0zMDUsNiArMzAyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faWdu
b3JlQ29tcG9zaXRpb25TZWxlY3Rpb25DaGFuZ2U7CiAgICAgYm9vbCBtX3Nob3VsZFN0YXJ0TmV3
S2lsbFJpbmdTZXF1ZW5jZTsKICAgICBib29sIG1fc2hvdWxkU3R5bGVXaXRoQ1NTOworICAgIE93
blB0cjxLaWxsUmluZz4gbV9raWxsUmluZzsKIAogICAgIGJvb2wgY2FuRGVsZXRlUmFuZ2UoUmFu
Z2UqKSBjb25zdDsKICAgICBib29sIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKFBhc3Rl
Ym9hcmQqKTsKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAJKHJldmlzaW9uIDYwMjE0
KQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUg
IkluZGVudE91dGRlbnRDb21tYW5kLmgiCiAjaW5jbHVkZSAiSW5zZXJ0TGlzdENvbW1hbmQuaCIK
KyNpbmNsdWRlICJLaWxsUmluZy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5k
ZXJCb3guaCIKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIgpAQCAtMTA0NSwx
NSArMTA0NiwxNSBAQCBzdGF0aWMgYm9vbCBleGVjdXRlVW5zZWxlY3QoRnJhbWUqIGZyYW1lCiAK
IHN0YXRpYyBib29sIGV4ZWN1dGVZYW5rKEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21t
YW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIGZyYW1lLT5lZGl0b3IoKS0+aW5zZXJ0
VGV4dFdpdGhvdXRTZW5kaW5nVGV4dEV2ZW50KGZyYW1lLT5lZGl0b3IoKS0+eWFua0Zyb21LaWxs
UmluZygpLCBmYWxzZSwgMCk7Ci0gICAgZnJhbWUtPmVkaXRvcigpLT5zZXRLaWxsUmluZ1RvWWFu
a2VkU3RhdGUoKTsKKyAgICBmcmFtZS0+ZWRpdG9yKCktPmluc2VydFRleHRXaXRob3V0U2VuZGlu
Z1RleHRFdmVudChmcmFtZS0+ZWRpdG9yKCktPmtpbGxSaW5nKCktPnlhbmsoKSwgZmFsc2UsIDAp
OworICAgIGZyYW1lLT5lZGl0b3IoKS0+a2lsbFJpbmcoKS0+c2V0VG9ZYW5rZWRTdGF0ZSgpOwog
ICAgIHJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlWWFua0FuZFNlbGVjdChG
cmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikK
IHsKLSAgICBmcmFtZS0+ZWRpdG9yKCktPmluc2VydFRleHRXaXRob3V0U2VuZGluZ1RleHRFdmVu
dChmcmFtZS0+ZWRpdG9yKCktPnlhbmtGcm9tS2lsbFJpbmcoKSwgdHJ1ZSwgMCk7Ci0gICAgZnJh
bWUtPmVkaXRvcigpLT5zZXRLaWxsUmluZ1RvWWFua2VkU3RhdGUoKTsKKyAgICBmcmFtZS0+ZWRp
dG9yKCktPmluc2VydFRleHRXaXRob3V0U2VuZGluZ1RleHRFdmVudChmcmFtZS0+ZWRpdG9yKCkt
PmtpbGxSaW5nKCktPnlhbmsoKSwgdHJ1ZSwgMCk7CisgICAgZnJhbWUtPmVkaXRvcigpLT5raWxs
UmluZygpLT5zZXRUb1lhbmtlZFN0YXRlKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKSW5kZXg6
IFdlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
ZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCShyZXZpc2lvbiA2MDIxNCkKKysrIFdlYkNvcmUvZWRp
dGluZy9tYWMvRWRpdG9yTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2MyArMzMsMTEgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1leHRlcm4gIkMiIHsKLQotLy8gS2lsbCByaW5nIGNh
bGxzLiBXb3VsZCBiZSBiZXR0ZXIgdG8gdXNlIE5TS2lsbFJpbmcuaCwgYnV0IHRoYXQncyBub3Qg
YXZhaWxhYmxlIGFzIEFQSSBvciBTUEkuCi0KLXZvaWQgX05TSW5pdGlhbGl6ZUtpbGxSaW5nKCk7
Ci12b2lkIF9OU0FwcGVuZFRvS2lsbFJpbmcoTlNTdHJpbmcgKik7Ci12b2lkIF9OU1ByZXBlbmRU
b0tpbGxSaW5nKE5TU3RyaW5nICopOwotTlNTdHJpbmcgKl9OU1lhbmtGcm9tS2lsbFJpbmcoKTsK
LXZvaWQgX05TTmV3S2lsbFJpbmdTZXF1ZW5jZSgpOwotdm9pZCBfTlNTZXRLaWxsUmluZ1RvWWFu
a2VkU3RhdGUoKTsKLQotfQotCiBQYXNzUmVmUHRyPENsaXBib2FyZD4gRWRpdG9yOjpuZXdHZW5l
cmFsQ2xpcGJvYXJkKENsaXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3kpCiB7CiAgICAgcmV0dXJu
IENsaXBib2FyZE1hYzo6Y3JlYXRlKGZhbHNlLCBbTlNQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0ZWJv
YXJkXSwgcG9saWN5LCAwKTsKIH0KIAotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUtpbGxSaW5nSWZO
ZWVkZWQoKQotewotICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkS2lsbFJpbmcgPSBmYWxzZTsK
LSAgICBpZiAoIWluaXRpYWxpemVkS2lsbFJpbmcpIHsKLSAgICAgICAgaW5pdGlhbGl6ZWRLaWxs
UmluZyA9IHRydWU7Ci0gICAgICAgIF9OU0luaXRpYWxpemVLaWxsUmluZygpOwotICAgIH0KLX0K
LQotdm9pZCBFZGl0b3I6OmFwcGVuZFRvS2lsbFJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCi17
Ci0gICAgaW5pdGlhbGl6ZUtpbGxSaW5nSWZOZWVkZWQoKTsKLSAgICBfTlNBcHBlbmRUb0tpbGxS
aW5nKHN0cmluZyk7Ci19Ci0KLXZvaWQgRWRpdG9yOjpwcmVwZW5kVG9LaWxsUmluZyhjb25zdCBT
dHJpbmcmIHN0cmluZykKLXsKLSAgICBpbml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgpOwotICAg
IF9OU1ByZXBlbmRUb0tpbGxSaW5nKHN0cmluZyk7Ci19Ci0KLVN0cmluZyBFZGl0b3I6OnlhbmtG
cm9tS2lsbFJpbmcoKQotewotICAgIGluaXRpYWxpemVLaWxsUmluZ0lmTmVlZGVkKCk7Ci0gICAg
cmV0dXJuIF9OU1lhbmtGcm9tS2lsbFJpbmcoKTsKLX0KLQotdm9pZCBFZGl0b3I6OnN0YXJ0TmV3
S2lsbFJpbmdTZXF1ZW5jZSgpCi17Ci0gICAgaW5pdGlhbGl6ZUtpbGxSaW5nSWZOZWVkZWQoKTsK
LSAgICBfTlNOZXdLaWxsUmluZ1NlcXVlbmNlKCk7Ci19Ci0KLXZvaWQgRWRpdG9yOjpzZXRLaWxs
UmluZ1RvWWFua2VkU3RhdGUoKQotewotICAgIGluaXRpYWxpemVLaWxsUmluZ0lmTmVlZGVkKCk7
Ci0gICAgX05TU2V0S2lsbFJpbmdUb1lhbmtlZFN0YXRlKCk7Ci19Ci0KIHZvaWQgRWRpdG9yOjpz
aG93Rm9udFBhbmVsKCkKIHsKICAgICBbW05TRm9udE1hbmFnZXIgc2hhcmVkRm9udE1hbmFnZXJd
IG9yZGVyRnJvbnRGb250UGFuZWw6bmlsXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57072</attachid>
            <date>2010-05-25 23:14:31 -0700</date>
            <delta_ts>2010-05-25 23:26:25 -0700</delta_ts>
            <desc>doh</desc>
            <filename>webkit_killring.patch</filename>
            <type>text/plain</type>
            <size>22080</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDIxNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMDUtMjUgIE5pY28gV2ViZXIgIDx0aGFraXNAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTA5MgorCisgICAgICAgIEFk
ZCBZYW5rIHN1cHBvcnQgdG8gY2hyb21pdW0gbWFjLiBEbyB0aGlzIGJ5IG1vdmluZyBXZWJLaXQg
TWFjJ3MKKyAgICAgICAgaW1wbGVtZW50YXRpb24gb2YgRWRpdG9yOjp5YW5rRnJvbUtpbGxSaW5n
KCkgaW50byBpdHMgb3duIGNsYXNzIGFuZAorICAgICAgICB0aGVuIHVzaW5nIHRoYXQuCisKKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgICAgVXNlIG5ldyBLaWxsUmluZyBj
bGFzcy4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjpraWxsUmluZyk6CisgICAgICAgICAgVXNlIG5ldyBLaWxsUmluZyBjbGFzcy4KKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0
ZVlhbmtBbmRTZWxlY3QpOgorICAgICAgICAgIFVzZSBuZXcgS2lsbFJpbmcgY2xhc3MuCisgICAg
ICAgICogcGxhdGZvcm0vS2lsbFJpbmcuaDoKKyAgICAgICAgICBBZGQgbmV3IEtpbGxSaW5nIGNs
YXNzLCB3aGljaCBhY3RzIGFzIG51bGwgb2JqZWN0LgorICAgICAgICAoV2ViQ29yZTo6S2lsbFJp
bmc6On5LaWxsUmluZyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0tpbGxSaW5nTWFjLmg6Cisg
ICAgICAgICAgQWRkIG5ldyBLaWxsUmluZ01hYyBjbGFzcywgd2hpY2ggd3JpdGVzIHRvIHRoZSBt
YWMncyBraWxsIHJpbmcuCisgICAgICAgICogcGxhdGZvcm0vbWFjL0tpbGxSaW5nTWFjLm1tOgor
ICAgICAgICAgIEFkZCBuZXcgS2lsbFJpbmdNYWMgY2xhc3MsIHdoaWNoIHdyaXRlcyB0byB0aGUg
bWFjJ3Mga2lsbCByaW5nLgorCiAyMDEwLTA1LTI1ICBEdW1pdHJ1IERhbmlsaXVjICA8ZHVtaUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgY2hhbmdpbmcgImZ0czIiIHRvICJm
dHMzIiBpbiBvbmUgbG9jYXRpb24gSSBtaXNzZWQgaW4gcjYwMTg4LgpJbmRleDogV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiA2MDIxNCkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAg
LTE1NjcsNiArMTU2Nyw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9wbGF0Zm9y
bS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9u
U2VydmljZS5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaCBcCisJV2ViQ29yZS9w
bGF0Zm9ybS9LaWxsUmluZy5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL0tVUkwuY3BwIFwKIAlXZWJD
b3JlL3BsYXRmb3JtL0tVUkwuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9LVVJMSGFzaC5oIFwKSW5k
ZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5n
eXBpCShyZXZpc2lvbiA2MDIxNCkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNv
cHkpCkBAIC0yNTExLDYgKzI1MTEsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9Gb3Vu
ZGF0aW9uRXh0cmFzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9LVVJMTWFjLm1tJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW0nLAorICAgICAgICAgICAg
J3BsYXRmb3JtL21hYy9LaWxsUmluZ01hYy5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMv
S2lsbFJpbmdNYWMubW0nLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9MYW5ndWFnZS5tbScs
CiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5o
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0
Lm1tJywKQEAgLTI4OTUsNiArMjg5Nyw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vR2VvbG9j
YXRpb25TZXJ2aWNlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2
aWNlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0hvc3RXaW5kb3cuaCcsCisgICAgICAgICAg
ICAncGxhdGZvcm0vS2lsbFJpbmcuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vS1VSTC5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL0tVUkwuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
S1VSTEdvb2dsZS5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA2MDIxNCkKKysrIFdlYkNvcmUvV2ViQ29y
ZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTE2MTcsNiArMTYxNyw3IEBAIEhFQURFUlMgKz0gXAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaCBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb25zLmgg
XAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3Bl
cmF0aW9uLmggXAorICAgIHBsYXRmb3JtL0tpbGxSaW5nLmggXAogICAgIHBsYXRmb3JtL0tVUkwu
aCBcCiAgICAgcGxhdGZvcm0vTGVuZ3RoLmggXAogICAgIHBsYXRmb3JtL0xpbmtIYXNoLmggXApJ
bmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA2MDIxNCkK
KysrIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkK
QEAgLTIyNDA5LDYgKzIyNDA5LDEwIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXEtpbGxSaW5nLmgiDQorCQkJCT4NCisJCQk8
L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxLVVJMLmNw
cCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNjAyMTQpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTE1OSw2ICsxMTU5LDkg
QEAKIAkJNTFFQzkyNTkwQ0U5MERCNDAwRjkwMzA4IC8qIFNRTEVycm9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUVDOTI1NzBDRTkwREI0MDBGOTAz
MDggLyogU1FMRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MUVDOTI2NTBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0ZW1l
bnRFcnJvckNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRUM5MjVEMENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFN0YXRlbWVu
dEVycm9yQ2FsbGJhY2suY3BwICovOyB9OwogCQk1MUZBRkUzNDBDRUNCRjJEMDBCQjNGMjQgLyog
RGF0YWJhc2VUcmFja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MUZBRkUzMzBDRUNCRjJEMDBCQjNGMjQgLyogRGF0YWJhc2VUcmFja2Vy
Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJNTI2QzE2RDgxMUFDOTE4NTAwODAxMjRFIC8qIEtpbGxSaW5nLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjZDMTZENzExQUM5MTg1MDA4MDEyNEUg
LyogS2lsbFJpbmcuaCAqLzsgfTsKKwkJNTI2QzE2REIxMUFDOTFBNjAwODAxMjRFIC8qIEtpbGxS
aW5nTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MjZDMTZEOTExQUM5MUE2MDA4MDEyNEUgLyogS2lsbFJpbmdNYWMuaCAqLzsgfTsKKwkJNTI2QzE2
REMxMUFDOTFBNjAwODAxMjRFIC8qIEtpbGxSaW5nTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTI2QzE2REExMUFDOTFBNjAwODAxMjRFIC8qIEtp
bGxSaW5nTWFjLm1tICovOyB9OwogCQk1NEM1MEY3QjBFODAxREYzMDA5ODMyQTAgLyogWE1MVG9r
ZW5pemVyTGlieG1sMi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NEM1MEY3QTBFODAxREYzMDA5ODMyQTAgLyogWE1MVG9rZW5pemVyTGlieG1sMi5j
cHAgKi87IH07CiAJCTU1MEEwQkM5MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM3
MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCAqLzsgfTsKIAkJNTUwQTBCQ0Ew
ODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFs
aWZpZWROYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTY3NzYsNiArNjc3OSw5IEBACiAJCTUxRjZBM0Q1MDY2M0JGMDQwMDREMjkxOSAvKiBI
VE1MQ2FudmFzRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MQ2FudmFzRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1MUY2QTNENjA2NjNC
RjA0MDA0RDI5MTkgLyogSFRNTENhbnZhc0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTENhbnZhc0VsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTUxRkFG
RTMzMENFQ0JGMkQwMEJCM0YyNCAvKiBEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YWJhc2VUcmFja2VyQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyNkMxNkQ3MTFBQzkxODUwMDgwMTI0RSAvKiBLaWxsUmlu
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLaWxsUmluZy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1MjZDMTZEOTExQUM5MUE2MDA4MDEyNEUgLyogS2lsbFJp
bmdNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS2lsbFJpbmdNYWMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTI2QzE2REExMUFDOTFBNjAwODAxMjRFIC8q
IEtpbGxSaW5nTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
S2lsbFJpbmdNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU0QzUwRjdBMEU4
MDFERjMwMDk4MzJBMCAvKiBYTUxUb2tlbml6ZXJMaWJ4bWwyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTFRva2VuaXplckxpYnhtbDIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NTBBMEJDNzA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVk
TmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBRdWFsaWZpZWROYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBR
dWFsaWZpZWROYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFF1YWxpZmllZE5hbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xMTg4OCw2ICsxMTg5NCw4IEBACiAJCQkJQkNF
NDk0QTkwRjRGNUU5RTAwODRFMzE5IC8qIEdlb2xvY2F0aW9uU2VydmljZU1hYy5oICovLAogCQkJ
CUJDRTQ5NEFBMEY0RjVFOUUwMDg0RTMxOSAvKiBHZW9sb2NhdGlvblNlcnZpY2VNYWMubW0gKi8s
CiAJCQkJOTM1QzQ3NkUwOUFDNEQ3MzAwQTZBQUI0IC8qIEtleUV2ZW50TWFjLm1tICovLAorCQkJ
CTUyNkMxNkQ5MTFBQzkxQTYwMDgwMTI0RSAvKiBLaWxsUmluZ01hYy5oICovLAorCQkJCTUyNkMx
NkRBMTFBQzkxQTYwMDgwMTI0RSAvKiBLaWxsUmluZ01hYy5tbSAqLywKIAkJCQk2NTkzOTIzOTA5
QUU0MzVDMDAyQzUzMUYgLyogS1VSTE1hYy5tbSAqLywKIAkJCQk5MzUyMDg0NDA5QkQ0M0I5MDBG
MjAzOEQgLyogTGFuZ3VhZ2UubW0gKi8sCiAJCQkJMDZFODFFRDYwQUI1RDVFOTAwQzg3ODM3IC8q
IExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oICovLApAQCAtMTU4MTMsNiArMTU4MjEsNyBA
QAogCQkJCUZFQUI5MDEwMEVBNTFCOUMwMDYzNDhDMyAvKiBHZW9sb2NhdGlvblNlcnZpY2UuY3Bw
ICovLAogCQkJCUZFQUI5MDExMEVBNTFCOUMwMDYzNDhDMyAvKiBHZW9sb2NhdGlvblNlcnZpY2Uu
aCAqLywKIAkJCQlCQzNCQzI5QjBFOTFBQjBGMDA4MzU1ODggLyogSG9zdFdpbmRvdy5oICovLAor
CQkJCTUyNkMxNkQ3MTFBQzkxODUwMDgwMTI0RSAvKiBLaWxsUmluZy5oICovLAogCQkJCTY1OTM5
MjM1MDlBRTQzNDYwMDJDNTMxRiAvKiBLVVJMLmNwcCAqLywKIAkJCQk2NTkzOTIzNjA5QUU0MzQ2
MDAyQzUzMUYgLyogS1VSTC5oICovLAogCQkJCUJDQkQyMUFBMEU0MTdBRDQwMEEwNzBGMiAvKiBL
VVJMSGFzaC5oICovLApAQCAtMTkzMzEsNiArMTkzNDAsOCBAQAogCQkJCUM1NDQyNzRCMTFBNTdF
N0EwMDYzQTc0OSAvKiBET01TdHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTEzN0NG
MzExQTU4Mzc4MDA0QURCOTkgLyogSlNET01TdHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2MkMxMjE3RDExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNTI2QzE2RDgxMUFDOTE4NTAwODAxMjRFIC8qIEtpbGxSaW5nLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk1MjZDMTZEQjExQUM5MUE2MDA4MDEyNEUgLyogS2lsbFJpbmdNYWMuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtMjE2MjEsNiArMjE2MzIsNyBAQAogCQkJCUM1MTM3Q0YyMTFBNTgz
NzgwMDRBREI5OSAvKiBKU0RPTVN0cmluZ0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU1
NjEwRjExMUE3MDRFQjAwQjgyRDI3IC8qIERPTVN0cmluZ0xpc3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNjJDMTIxN0MxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNTI2QzE2REMxMUFDOTFBNjAwODAxMjRFIC8qIEtpbGxSaW5nTWFj
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gNjAyMTQpCisr
KyBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUs
NyBAQAogI2luY2x1ZGUgIkluZGVudE91dGRlbnRDb21tYW5kLmgiCiAjaW5jbHVkZSAiSW5zZXJ0
TGlzdENvbW1hbmQuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiS2ls
bFJpbmcuaCIKICNpbmNsdWRlICJNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgpAQCAtNzEsNiArNzIsMTAgQEAKICNp
bmNsdWRlICJ2aXNpYmxlX3VuaXRzLmgiCiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAK
KyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkK
KyNpbmNsdWRlICJLaWxsUmluZ01hYy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTkyOCw2ICs5MzMsMTEgQEAgRWRpdG9yOjpFZGl0
b3IoRnJhbWUqIGZyYW1lKQogICAgICwgbV9zaG91bGRTdGFydE5ld0tpbGxSaW5nU2VxdWVuY2Uo
ZmFsc2UpCiAgICAgLy8gVGhpcyBpcyBvZmYgYnkgZGVmYXVsdCwgc2luY2UgbW9zdCBlZGl0b3Jz
IHdhbnQgdGhpcyBiZWhhdmlvciAodGhpcyBtYXRjaGVzIElFIGJ1dCBub3QgRkYpLgogICAgICwg
bV9zaG91bGRTdHlsZVdpdGhDU1MoZmFsc2UpCisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZP
Uk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpCisgICAgLCBtX2tpbGxSaW5nKG5ldyBLaWxsUmlu
Z01hYygpKQorI2Vsc2UKKyAgICAsIG1fa2lsbFJpbmcobmV3IEtpbGxSaW5nKCkpCisjZW5kaWYK
IHsgCiB9CiAKQEAgLTI3MDcsNDEgKzI3MTcsMTYgQEAgdm9pZCBFZGl0b3I6OnRyYW5zcG9zZSgp
CiB2b2lkIEVkaXRvcjo6YWRkVG9LaWxsUmluZyhSYW5nZSogcmFuZ2UsIGJvb2wgcHJlcGVuZCkK
IHsKICAgICBpZiAobV9zaG91bGRTdGFydE5ld0tpbGxSaW5nU2VxdWVuY2UpCi0gICAgICAgIHN0
YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZSgpOworICAgICAgICBraWxsUmluZygpLT5zdGFydE5ld1Nl
cXVlbmNlKCk7CiAKICAgICBTdHJpbmcgdGV4dCA9IHBsYWluVGV4dChyYW5nZSk7CiAgICAgaWYg
KHByZXBlbmQpCi0gICAgICAgIHByZXBlbmRUb0tpbGxSaW5nKHRleHQpOworICAgICAgICBraWxs
UmluZygpLT5wcmVwZW5kKHRleHQpOwogICAgIGVsc2UKLSAgICAgICAgYXBwZW5kVG9LaWxsUmlu
Zyh0ZXh0KTsKKyAgICAgICAga2lsbFJpbmcoKS0+YXBwZW5kKHRleHQpOwogICAgIG1fc2hvdWxk
U3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlID0gZmFsc2U7CiB9CiAKLSNpZiAhUExBVEZPUk0oTUFD
KQotCi12b2lkIEVkaXRvcjo6YXBwZW5kVG9LaWxsUmluZyhjb25zdCBTdHJpbmcmKQotewotfQot
Ci12b2lkIEVkaXRvcjo6cHJlcGVuZFRvS2lsbFJpbmcoY29uc3QgU3RyaW5nJikKLXsKLX0KLQot
U3RyaW5nIEVkaXRvcjo6eWFua0Zyb21LaWxsUmluZygpCi17Ci0gICAgcmV0dXJuIFN0cmluZygp
OwotfQotCi12b2lkIEVkaXRvcjo6c3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlKCkKLXsKLX0KLQot
dm9pZCBFZGl0b3I6OnNldEtpbGxSaW5nVG9ZYW5rZWRTdGF0ZSgpCi17Ci19Ci0KLSNlbmRpZgot
CiBib29sIEVkaXRvcjo6aW5zaWRlVmlzaWJsZUFyZWEoY29uc3QgSW50UG9pbnQmIHBvaW50KSBj
b25zdAogewogICAgIGlmIChtX2ZyYW1lLT5leGNsdWRlRnJvbVRleHRTZWFyY2goKSkKSW5kZXg6
IFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmgJKHJldmlzaW9uIDYwMjE0KQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCSh3
b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBAIGNsYXNzIEVkaXRvckNsaWVudDsKIGNsYXNz
IEVkaXRvckludGVybmFsQ29tbWFuZDsKIGNsYXNzIEhUTUxFbGVtZW50OwogY2xhc3MgSGl0VGVz
dFJlc3VsdDsKK2NsYXNzIEtpbGxSaW5nOwogY2xhc3MgUGFzdGVib2FyZDsKIGNsYXNzIFNpbXBs
ZUZvbnREYXRhOwogY2xhc3MgVGV4dDsKQEAgLTI3OCwxMSArMjc5LDcgQEAgcHVibGljOgogCiAg
ICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb25Gb3JDb21tYW5kKEV2ZW50Kik7CiAKLSAgICB2
b2lkIGFwcGVuZFRvS2lsbFJpbmcoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBwcmVwZW5kVG9L
aWxsUmluZyhjb25zdCBTdHJpbmcmKTsKLSAgICBTdHJpbmcgeWFua0Zyb21LaWxsUmluZygpOwot
ICAgIHZvaWQgc3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlKCk7Ci0gICAgdm9pZCBzZXRLaWxsUmlu
Z1RvWWFua2VkU3RhdGUoKTsKKyAgICBLaWxsUmluZyoga2lsbFJpbmcoKSBjb25zdCB7IHJldHVy
biBtX2tpbGxSaW5nLmdldCgpOyB9CiAKICAgICBQYXNzUmVmUHRyPFJhbmdlPiBzZWxlY3RlZFJh
bmdlKCk7CiAgICAgCkBAIC0zMDUsNiArMzAyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faWdu
b3JlQ29tcG9zaXRpb25TZWxlY3Rpb25DaGFuZ2U7CiAgICAgYm9vbCBtX3Nob3VsZFN0YXJ0TmV3
S2lsbFJpbmdTZXF1ZW5jZTsKICAgICBib29sIG1fc2hvdWxkU3R5bGVXaXRoQ1NTOworICAgIE93
blB0cjxLaWxsUmluZz4gbV9raWxsUmluZzsKIAogICAgIGJvb2wgY2FuRGVsZXRlUmFuZ2UoUmFu
Z2UqKSBjb25zdDsKICAgICBib29sIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKFBhc3Rl
Ym9hcmQqKTsKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAJKHJldmlzaW9uIDYwMjE0
KQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUg
IkluZGVudE91dGRlbnRDb21tYW5kLmgiCiAjaW5jbHVkZSAiSW5zZXJ0TGlzdENvbW1hbmQuaCIK
KyNpbmNsdWRlICJLaWxsUmluZy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5k
ZXJCb3guaCIKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIgpAQCAtMTA0NSwx
NSArMTA0NiwxNSBAQCBzdGF0aWMgYm9vbCBleGVjdXRlVW5zZWxlY3QoRnJhbWUqIGZyYW1lCiAK
IHN0YXRpYyBib29sIGV4ZWN1dGVZYW5rKEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21t
YW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIGZyYW1lLT5lZGl0b3IoKS0+aW5zZXJ0
VGV4dFdpdGhvdXRTZW5kaW5nVGV4dEV2ZW50KGZyYW1lLT5lZGl0b3IoKS0+eWFua0Zyb21LaWxs
UmluZygpLCBmYWxzZSwgMCk7Ci0gICAgZnJhbWUtPmVkaXRvcigpLT5zZXRLaWxsUmluZ1RvWWFu
a2VkU3RhdGUoKTsKKyAgICBmcmFtZS0+ZWRpdG9yKCktPmluc2VydFRleHRXaXRob3V0U2VuZGlu
Z1RleHRFdmVudChmcmFtZS0+ZWRpdG9yKCktPmtpbGxSaW5nKCktPnlhbmsoKSwgZmFsc2UsIDAp
OworICAgIGZyYW1lLT5lZGl0b3IoKS0+a2lsbFJpbmcoKS0+c2V0VG9ZYW5rZWRTdGF0ZSgpOwog
ICAgIHJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlWWFua0FuZFNlbGVjdChG
cmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikK
IHsKLSAgICBmcmFtZS0+ZWRpdG9yKCktPmluc2VydFRleHRXaXRob3V0U2VuZGluZ1RleHRFdmVu
dChmcmFtZS0+ZWRpdG9yKCktPnlhbmtGcm9tS2lsbFJpbmcoKSwgdHJ1ZSwgMCk7Ci0gICAgZnJh
bWUtPmVkaXRvcigpLT5zZXRLaWxsUmluZ1RvWWFua2VkU3RhdGUoKTsKKyAgICBmcmFtZS0+ZWRp
dG9yKCktPmluc2VydFRleHRXaXRob3V0U2VuZGluZ1RleHRFdmVudChmcmFtZS0+ZWRpdG9yKCkt
PmtpbGxSaW5nKCktPnlhbmsoKSwgdHJ1ZSwgMCk7CisgICAgZnJhbWUtPmVkaXRvcigpLT5raWxs
UmluZygpLT5zZXRUb1lhbmtlZFN0YXRlKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKSW5kZXg6
IFdlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
ZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCShyZXZpc2lvbiA2MDIxNCkKKysrIFdlYkNvcmUvZWRp
dGluZy9tYWMvRWRpdG9yTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2MyArMzMsMTEgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1leHRlcm4gIkMiIHsKLQotLy8gS2lsbCByaW5nIGNh
bGxzLiBXb3VsZCBiZSBiZXR0ZXIgdG8gdXNlIE5TS2lsbFJpbmcuaCwgYnV0IHRoYXQncyBub3Qg
YXZhaWxhYmxlIGFzIEFQSSBvciBTUEkuCi0KLXZvaWQgX05TSW5pdGlhbGl6ZUtpbGxSaW5nKCk7
Ci12b2lkIF9OU0FwcGVuZFRvS2lsbFJpbmcoTlNTdHJpbmcgKik7Ci12b2lkIF9OU1ByZXBlbmRU
b0tpbGxSaW5nKE5TU3RyaW5nICopOwotTlNTdHJpbmcgKl9OU1lhbmtGcm9tS2lsbFJpbmcoKTsK
LXZvaWQgX05TTmV3S2lsbFJpbmdTZXF1ZW5jZSgpOwotdm9pZCBfTlNTZXRLaWxsUmluZ1RvWWFu
a2VkU3RhdGUoKTsKLQotfQotCiBQYXNzUmVmUHRyPENsaXBib2FyZD4gRWRpdG9yOjpuZXdHZW5l
cmFsQ2xpcGJvYXJkKENsaXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3kpCiB7CiAgICAgcmV0dXJu
IENsaXBib2FyZE1hYzo6Y3JlYXRlKGZhbHNlLCBbTlNQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0ZWJv
YXJkXSwgcG9saWN5LCAwKTsKIH0KIAotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUtpbGxSaW5nSWZO
ZWVkZWQoKQotewotICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkS2lsbFJpbmcgPSBmYWxzZTsK
LSAgICBpZiAoIWluaXRpYWxpemVkS2lsbFJpbmcpIHsKLSAgICAgICAgaW5pdGlhbGl6ZWRLaWxs
UmluZyA9IHRydWU7Ci0gICAgICAgIF9OU0luaXRpYWxpemVLaWxsUmluZygpOwotICAgIH0KLX0K
LQotdm9pZCBFZGl0b3I6OmFwcGVuZFRvS2lsbFJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCi17
Ci0gICAgaW5pdGlhbGl6ZUtpbGxSaW5nSWZOZWVkZWQoKTsKLSAgICBfTlNBcHBlbmRUb0tpbGxS
aW5nKHN0cmluZyk7Ci19Ci0KLXZvaWQgRWRpdG9yOjpwcmVwZW5kVG9LaWxsUmluZyhjb25zdCBT
dHJpbmcmIHN0cmluZykKLXsKLSAgICBpbml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgpOwotICAg
IF9OU1ByZXBlbmRUb0tpbGxSaW5nKHN0cmluZyk7Ci19Ci0KLVN0cmluZyBFZGl0b3I6OnlhbmtG
cm9tS2lsbFJpbmcoKQotewotICAgIGluaXRpYWxpemVLaWxsUmluZ0lmTmVlZGVkKCk7Ci0gICAg
cmV0dXJuIF9OU1lhbmtGcm9tS2lsbFJpbmcoKTsKLX0KLQotdm9pZCBFZGl0b3I6OnN0YXJ0TmV3
S2lsbFJpbmdTZXF1ZW5jZSgpCi17Ci0gICAgaW5pdGlhbGl6ZUtpbGxSaW5nSWZOZWVkZWQoKTsK
LSAgICBfTlNOZXdLaWxsUmluZ1NlcXVlbmNlKCk7Ci19Ci0KLXZvaWQgRWRpdG9yOjpzZXRLaWxs
UmluZ1RvWWFua2VkU3RhdGUoKQotewotICAgIGluaXRpYWxpemVLaWxsUmluZ0lmTmVlZGVkKCk7
Ci0gICAgX05TU2V0S2lsbFJpbmdUb1lhbmtlZFN0YXRlKCk7Ci19Ci0KIHZvaWQgRWRpdG9yOjpz
aG93Rm9udFBhbmVsKCkKIHsKICAgICBbW05TRm9udE1hbmFnZXIgc2hhcmVkRm9udE1hbmFnZXJd
IG9yZGVyRnJvbnRGb250UGFuZWw6bmlsXTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vS2lsbFJp
bmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL0tpbGxSaW5nLmgJKHJldmlzaW9u
IDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL0tpbGxSaW5nLmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBLaWxsUmluZ19oCisjZGVmaW5lIEtpbGxSaW5n
X2gKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgS2lsbFJpbmcgeworcHVibGljOgorICAgIHZpcnR1YWwgfktpbGxSaW5nKCkge30K
KyAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kKGNvbnN0IFN0cmluZyYpIHt9CisgICAgdmlydHVhbCB2
b2lkIHByZXBlbmQoY29uc3QgU3RyaW5nJikge30KKyAgICB2aXJ0dWFsIFN0cmluZyB5YW5rKCkg
eyByZXR1cm4gU3RyaW5nKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnROZXdTZXF1ZW5jZSgp
IHt9CisgICAgdmlydHVhbCB2b2lkIHNldFRvWWFua2VkU3RhdGUoKSB7fQorfTsKKworfSAgLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmICAvLyBLaWxsUmluZ19oCgpQcm9wZXJ0eSBjaGFu
Z2VzIG9uOiBXZWJDb3JlL3BsYXRmb3JtL0tpbGxSaW5nLmgKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3Zu
OmVvbC1zdHlsZQogICArIExGCgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2lsbFJpbmdN
YWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL21hYy9LaWxsUmluZ01hYy5oCShy
ZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2lsbFJpbmdNYWMuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEtpbGxSaW5nTWFjX2gK
KyNkZWZpbmUgS2lsbFJpbmdNYWNfaAorCisjaW5jbHVkZSAiS2lsbFJpbmcuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBLaWxsUmluZ01hYyA6IHB1YmxpYyBLaWxsUmluZyB7Citw
dWJsaWM6CisgICAgdmlydHVhbCB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0
dWFsIHZvaWQgcHJlcGVuZChjb25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIFN0cmluZyB5YW5r
KCk7CisgICAgdmlydHVhbCB2b2lkIHN0YXJ0TmV3U2VxdWVuY2UoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2V0VG9ZYW5rZWRTdGF0ZSgpOworfTsKKworfSAgLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmICAvLyBLaWxsUmluZ01hY19oCisKClByb3BlcnR5IGNoYW5nZXMgb246IFdlYkNvcmUv
cGxhdGZvcm0vbWFjL0tpbGxSaW5nTWFjLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHls
ZQogICArIExGCgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2lsbFJpbmdNYWMubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2lsbFJpbmdNYWMubW0JKHJldmlzaW9u
IDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL21hYy9LaWxsUmluZ01hYy5tbQkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJLaWxsUmluZ01hYy5oIgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2V4dGVybiAiQyIgeworCisvLyBLaWxsIHJpbmcgY2FsbHMu
IFdvdWxkIGJlIGJldHRlciB0byB1c2UgTlNLaWxsUmluZy5oLCBidXQgdGhhdCdzIG5vdCBhdmFp
bGFibGUgYXMgQVBJIG9yIFNQSS4KKwordm9pZCBfTlNJbml0aWFsaXplS2lsbFJpbmcoKTsKK3Zv
aWQgX05TQXBwZW5kVG9LaWxsUmluZyhOU1N0cmluZyAqKTsKK3ZvaWQgX05TUHJlcGVuZFRvS2ls
bFJpbmcoTlNTdHJpbmcgKik7CitOU1N0cmluZyAqX05TWWFua0Zyb21LaWxsUmluZygpOwordm9p
ZCBfTlNOZXdLaWxsUmluZ1NlcXVlbmNlKCk7Cit2b2lkIF9OU1NldEtpbGxSaW5nVG9ZYW5rZWRT
dGF0ZSgpOworCit9CisKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVLaWxsUmluZ0lmTmVlZGVkKCkK
K3sKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZEtpbGxSaW5nID0gZmFsc2U7CisgICAgaWYg
KCFpbml0aWFsaXplZEtpbGxSaW5nKSB7CisgICAgICAgIGluaXRpYWxpemVkS2lsbFJpbmcgPSB0
cnVlOworICAgICAgICBfTlNJbml0aWFsaXplS2lsbFJpbmcoKTsKKyAgICB9Cit9CisKK3ZvaWQg
S2lsbFJpbmdNYWM6OmFwcGVuZChjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBpbml0aWFs
aXplS2lsbFJpbmdJZk5lZWRlZCgpOworICAgIF9OU0FwcGVuZFRvS2lsbFJpbmcoc3RyaW5nKTsK
K30KKwordm9pZCBLaWxsUmluZ01hYzo6cHJlcGVuZChjb25zdCBTdHJpbmcmIHN0cmluZykKK3sK
KyAgICBpbml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgpOworICAgIF9OU1ByZXBlbmRUb0tpbGxS
aW5nKHN0cmluZyk7Cit9CisKK1N0cmluZyBLaWxsUmluZ01hYzo6eWFuaygpCit7CisgICAgaW5p
dGlhbGl6ZUtpbGxSaW5nSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gX05TWWFua0Zyb21LaWxsUmlu
ZygpOworfQorCit2b2lkIEtpbGxSaW5nTWFjOjpzdGFydE5ld1NlcXVlbmNlKCkKK3sKKyAgICBp
bml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgpOworICAgIF9OU05ld0tpbGxSaW5nU2VxdWVuY2Uo
KTsKK30KKwordm9pZCBLaWxsUmluZ01hYzo6c2V0VG9ZYW5rZWRTdGF0ZSgpCit7CisgICAgaW5p
dGlhbGl6ZUtpbGxSaW5nSWZOZWVkZWQoKTsKKyAgICBfTlNTZXRLaWxsUmluZ1RvWWFua2VkU3Rh
dGUoKTsKK30KKworfSAgLy8gbmFtZXNwYWNlIFdlYkNvcmUKClByb3BlcnR5IGNoYW5nZXMgb246
IFdlYkNvcmUvcGxhdGZvcm0vbWFjL0tpbGxSaW5nTWFjLm1tCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2
bjplb2wtc3R5bGUKICAgKyBMRgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57075</attachid>
            <date>2010-05-25 23:26:25 -0700</date>
            <delta_ts>2010-05-26 10:50:24 -0700</delta_ts>
            <desc>make stylebot happy(er)</desc>
            <filename>webkit_killring.patch</filename>
            <type>text/plain</type>
            <size>22075</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDIxNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMDUtMjUgIE5pY28gV2ViZXIgIDx0aGFraXNAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTA5MgorCisgICAgICAgIEFk
ZCBZYW5rIHN1cHBvcnQgdG8gY2hyb21pdW0gbWFjLiBEbyB0aGlzIGJ5IG1vdmluZyBXZWJLaXQg
TWFjJ3MKKyAgICAgICAgaW1wbGVtZW50YXRpb24gb2YgRWRpdG9yOjp5YW5rRnJvbUtpbGxSaW5n
KCkgaW50byBpdHMgb3duIGNsYXNzIGFuZAorICAgICAgICB0aGVuIHVzaW5nIHRoYXQuCisKKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgICAgVXNlIG5ldyBLaWxsUmluZyBj
bGFzcy4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjpraWxsUmluZyk6CisgICAgICAgICAgVXNlIG5ldyBLaWxsUmluZyBjbGFzcy4KKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0
ZVlhbmtBbmRTZWxlY3QpOgorICAgICAgICAgIFVzZSBuZXcgS2lsbFJpbmcgY2xhc3MuCisgICAg
ICAgICogcGxhdGZvcm0vS2lsbFJpbmcuaDoKKyAgICAgICAgICBBZGQgbmV3IEtpbGxSaW5nIGNs
YXNzLCB3aGljaCBhY3RzIGFzIG51bGwgb2JqZWN0LgorICAgICAgICAoV2ViQ29yZTo6S2lsbFJp
bmc6On5LaWxsUmluZyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0tpbGxSaW5nTWFjLmg6Cisg
ICAgICAgICAgQWRkIG5ldyBLaWxsUmluZ01hYyBjbGFzcywgd2hpY2ggd3JpdGVzIHRvIHRoZSBt
YWMncyBraWxsIHJpbmcuCisgICAgICAgICogcGxhdGZvcm0vbWFjL0tpbGxSaW5nTWFjLm1tOgor
ICAgICAgICAgIEFkZCBuZXcgS2lsbFJpbmdNYWMgY2xhc3MsIHdoaWNoIHdyaXRlcyB0byB0aGUg
bWFjJ3Mga2lsbCByaW5nLgorCiAyMDEwLTA1LTI1ICBEdW1pdHJ1IERhbmlsaXVjICA8ZHVtaUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgY2hhbmdpbmcgImZ0czIiIHRvICJm
dHMzIiBpbiBvbmUgbG9jYXRpb24gSSBtaXNzZWQgaW4gcjYwMTg4LgpJbmRleDogV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiA2MDIxNCkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAg
LTE1NjcsNiArMTU2Nyw3IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9wbGF0Zm9y
bS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9u
U2VydmljZS5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaCBcCisJV2ViQ29yZS9w
bGF0Zm9ybS9LaWxsUmluZy5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL0tVUkwuY3BwIFwKIAlXZWJD
b3JlL3BsYXRmb3JtL0tVUkwuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9LVVJMSGFzaC5oIFwKSW5k
ZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5n
eXBpCShyZXZpc2lvbiA2MDIxNCkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNv
cHkpCkBAIC0yNTExLDYgKzI1MTEsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9Gb3Vu
ZGF0aW9uRXh0cmFzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9LVVJMTWFjLm1tJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW0nLAorICAgICAgICAgICAg
J3BsYXRmb3JtL21hYy9LaWxsUmluZ01hYy5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMv
S2lsbFJpbmdNYWMubW0nLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9MYW5ndWFnZS5tbScs
CiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5o
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0
Lm1tJywKQEAgLTI4OTUsNiArMjg5Nyw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vR2VvbG9j
YXRpb25TZXJ2aWNlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2
aWNlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0hvc3RXaW5kb3cuaCcsCisgICAgICAgICAg
ICAncGxhdGZvcm0vS2lsbFJpbmcuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vS1VSTC5jcHAn
LAogICAgICAgICAgICAgJ3BsYXRmb3JtL0tVUkwuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
S1VSTEdvb2dsZS5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA2MDIxNCkKKysrIFdlYkNvcmUvV2ViQ29y
ZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTE2MTcsNiArMTYxNyw3IEBAIEhFQURFUlMgKz0gXAog
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaCBc
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb25zLmgg
XAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3Bl
cmF0aW9uLmggXAorICAgIHBsYXRmb3JtL0tpbGxSaW5nLmggXAogICAgIHBsYXRmb3JtL0tVUkwu
aCBcCiAgICAgcGxhdGZvcm0vTGVuZ3RoLmggXAogICAgIHBsYXRmb3JtL0xpbmtIYXNoLmggXApJ
bmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA2MDIxNCkK
KysrIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkK
QEAgLTIyNDA5LDYgKzIyNDA5LDEwIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXEtpbGxSaW5nLmgiDQorCQkJCT4NCisJCQk8
L0ZpbGU+DQorCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxLVVJMLmNw
cCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNjAyMTQpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTE1OSw2ICsxMTU5LDkg
QEAKIAkJNTFFQzkyNTkwQ0U5MERCNDAwRjkwMzA4IC8qIFNRTEVycm9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUVDOTI1NzBDRTkwREI0MDBGOTAz
MDggLyogU1FMRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MUVDOTI2NTBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0ZW1l
bnRFcnJvckNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRUM5MjVEMENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFN0YXRlbWVu
dEVycm9yQ2FsbGJhY2suY3BwICovOyB9OwogCQk1MUZBRkUzNDBDRUNCRjJEMDBCQjNGMjQgLyog
RGF0YWJhc2VUcmFja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MUZBRkUzMzBDRUNCRjJEMDBCQjNGMjQgLyogRGF0YWJhc2VUcmFja2Vy
Q2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJNTI2QzE2RDgxMUFDOTE4NTAwODAxMjRFIC8qIEtpbGxSaW5nLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjZDMTZENzExQUM5MTg1MDA4MDEyNEUg
LyogS2lsbFJpbmcuaCAqLzsgfTsKKwkJNTI2QzE2REIxMUFDOTFBNjAwODAxMjRFIC8qIEtpbGxS
aW5nTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MjZDMTZEOTExQUM5MUE2MDA4MDEyNEUgLyogS2lsbFJpbmdNYWMuaCAqLzsgfTsKKwkJNTI2QzE2
REMxMUFDOTFBNjAwODAxMjRFIC8qIEtpbGxSaW5nTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTI2QzE2REExMUFDOTFBNjAwODAxMjRFIC8qIEtp
bGxSaW5nTWFjLm1tICovOyB9OwogCQk1NEM1MEY3QjBFODAxREYzMDA5ODMyQTAgLyogWE1MVG9r
ZW5pemVyTGlieG1sMi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NEM1MEY3QTBFODAxREYzMDA5ODMyQTAgLyogWE1MVG9rZW5pemVyTGlieG1sMi5j
cHAgKi87IH07CiAJCTU1MEEwQkM5MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM3
MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCAqLzsgfTsKIAkJNTUwQTBCQ0Ew
ODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFs
aWZpZWROYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKQEAgLTY3NzYsNiArNjc3OSw5IEBACiAJCTUxRjZBM0Q1MDY2M0JGMDQwMDREMjkxOSAvKiBI
VE1MQ2FudmFzRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MQ2FudmFzRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1MUY2QTNENjA2NjNC
RjA0MDA0RDI5MTkgLyogSFRNTENhbnZhc0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTENhbnZhc0VsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTUxRkFG
RTMzMENFQ0JGMkQwMEJCM0YyNCAvKiBEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YWJhc2VUcmFja2VyQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyNkMxNkQ3MTFBQzkxODUwMDgwMTI0RSAvKiBLaWxsUmlu
Zy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBLaWxsUmluZy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk1MjZDMTZEOTExQUM5MUE2MDA4MDEyNEUgLyogS2lsbFJp
bmdNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS2lsbFJpbmdNYWMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTI2QzE2REExMUFDOTFBNjAwODAxMjRFIC8q
IEtpbGxSaW5nTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
S2lsbFJpbmdNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU0QzUwRjdBMEU4
MDFERjMwMDk4MzJBMCAvKiBYTUxUb2tlbml6ZXJMaWJ4bWwyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTFRva2VuaXplckxpYnhtbDIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1NTBBMEJDNzA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVk
TmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBRdWFsaWZpZWROYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBR
dWFsaWZpZWROYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFF1YWxpZmllZE5hbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xMTg4OCw2ICsxMTg5NCw4IEBACiAJCQkJQkNF
NDk0QTkwRjRGNUU5RTAwODRFMzE5IC8qIEdlb2xvY2F0aW9uU2VydmljZU1hYy5oICovLAogCQkJ
CUJDRTQ5NEFBMEY0RjVFOUUwMDg0RTMxOSAvKiBHZW9sb2NhdGlvblNlcnZpY2VNYWMubW0gKi8s
CiAJCQkJOTM1QzQ3NkUwOUFDNEQ3MzAwQTZBQUI0IC8qIEtleUV2ZW50TWFjLm1tICovLAorCQkJ
CTUyNkMxNkQ5MTFBQzkxQTYwMDgwMTI0RSAvKiBLaWxsUmluZ01hYy5oICovLAorCQkJCTUyNkMx
NkRBMTFBQzkxQTYwMDgwMTI0RSAvKiBLaWxsUmluZ01hYy5tbSAqLywKIAkJCQk2NTkzOTIzOTA5
QUU0MzVDMDAyQzUzMUYgLyogS1VSTE1hYy5tbSAqLywKIAkJCQk5MzUyMDg0NDA5QkQ0M0I5MDBG
MjAzOEQgLyogTGFuZ3VhZ2UubW0gKi8sCiAJCQkJMDZFODFFRDYwQUI1RDVFOTAwQzg3ODM3IC8q
IExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oICovLApAQCAtMTU4MTMsNiArMTU4MjEsNyBA
QAogCQkJCUZFQUI5MDEwMEVBNTFCOUMwMDYzNDhDMyAvKiBHZW9sb2NhdGlvblNlcnZpY2UuY3Bw
ICovLAogCQkJCUZFQUI5MDExMEVBNTFCOUMwMDYzNDhDMyAvKiBHZW9sb2NhdGlvblNlcnZpY2Uu
aCAqLywKIAkJCQlCQzNCQzI5QjBFOTFBQjBGMDA4MzU1ODggLyogSG9zdFdpbmRvdy5oICovLAor
CQkJCTUyNkMxNkQ3MTFBQzkxODUwMDgwMTI0RSAvKiBLaWxsUmluZy5oICovLAogCQkJCTY1OTM5
MjM1MDlBRTQzNDYwMDJDNTMxRiAvKiBLVVJMLmNwcCAqLywKIAkJCQk2NTkzOTIzNjA5QUU0MzQ2
MDAyQzUzMUYgLyogS1VSTC5oICovLAogCQkJCUJDQkQyMUFBMEU0MTdBRDQwMEEwNzBGMiAvKiBL
VVJMSGFzaC5oICovLApAQCAtMTkzMzEsNiArMTkzNDAsOCBAQAogCQkJCUM1NDQyNzRCMTFBNTdF
N0EwMDYzQTc0OSAvKiBET01TdHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTEzN0NG
MzExQTU4Mzc4MDA0QURCOTkgLyogSlNET01TdHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk2MkMxMjE3RDExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNTI2QzE2RDgxMUFDOTE4NTAwODAxMjRFIC8qIEtpbGxSaW5nLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk1MjZDMTZEQjExQUM5MUE2MDA4MDEyNEUgLyogS2lsbFJpbmdNYWMuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpAQCAtMjE2MjEsNiArMjE2MzIsNyBAQAogCQkJCUM1MTM3Q0YyMTFBNTgz
NzgwMDRBREI5OSAvKiBKU0RPTVN0cmluZ0xpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzU1
NjEwRjExMUE3MDRFQjAwQjgyRDI3IC8qIERPTVN0cmluZ0xpc3QuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNjJDMTIxN0MxMUFCOUU3NzAwM0M0NjJDIC8qIFN1c3BlbmRhYmxlVGltZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNTI2QzE2REMxMUFDOTFBNjAwODAxMjRFIC8qIEtpbGxSaW5nTWFj
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJv
Y2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gNjAyMTQpCisr
KyBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUs
NyBAQAogI2luY2x1ZGUgIkluZGVudE91dGRlbnRDb21tYW5kLmgiCiAjaW5jbHVkZSAiSW5zZXJ0
TGlzdENvbW1hbmQuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiS2ls
bFJpbmcuaCIKICNpbmNsdWRlICJNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCIKICNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgpAQCAtNzEsNiArNzIsMTAgQEAKICNp
bmNsdWRlICJ2aXNpYmxlX3VuaXRzLmgiCiAjaW5jbHVkZSA8d3RmL1VudXNlZFBhcmFtLmg+CiAK
KyNpZiBQTEFURk9STShNQUMpIHx8IChQTEFURk9STShDSFJPTUlVTSkgJiYgT1MoREFSV0lOKSkK
KyNpbmNsdWRlICJLaWxsUmluZ01hYy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTkyOCw2ICs5MzMsMTEgQEAgRWRpdG9yOjpFZGl0
b3IoRnJhbWUqIGZyYW1lKQogICAgICwgbV9zaG91bGRTdGFydE5ld0tpbGxSaW5nU2VxdWVuY2Uo
ZmFsc2UpCiAgICAgLy8gVGhpcyBpcyBvZmYgYnkgZGVmYXVsdCwgc2luY2UgbW9zdCBlZGl0b3Jz
IHdhbnQgdGhpcyBiZWhhdmlvciAodGhpcyBtYXRjaGVzIElFIGJ1dCBub3QgRkYpLgogICAgICwg
bV9zaG91bGRTdHlsZVdpdGhDU1MoZmFsc2UpCisjaWYgUExBVEZPUk0oTUFDKSB8fCAoUExBVEZP
Uk0oQ0hST01JVU0pICYmIE9TKERBUldJTikpCisgICAgLCBtX2tpbGxSaW5nKG5ldyBLaWxsUmlu
Z01hYygpKQorI2Vsc2UKKyAgICAsIG1fa2lsbFJpbmcobmV3IEtpbGxSaW5nKCkpCisjZW5kaWYK
IHsgCiB9CiAKQEAgLTI3MDcsNDEgKzI3MTcsMTYgQEAgdm9pZCBFZGl0b3I6OnRyYW5zcG9zZSgp
CiB2b2lkIEVkaXRvcjo6YWRkVG9LaWxsUmluZyhSYW5nZSogcmFuZ2UsIGJvb2wgcHJlcGVuZCkK
IHsKICAgICBpZiAobV9zaG91bGRTdGFydE5ld0tpbGxSaW5nU2VxdWVuY2UpCi0gICAgICAgIHN0
YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZSgpOworICAgICAgICBraWxsUmluZygpLT5zdGFydE5ld1Nl
cXVlbmNlKCk7CiAKICAgICBTdHJpbmcgdGV4dCA9IHBsYWluVGV4dChyYW5nZSk7CiAgICAgaWYg
KHByZXBlbmQpCi0gICAgICAgIHByZXBlbmRUb0tpbGxSaW5nKHRleHQpOworICAgICAgICBraWxs
UmluZygpLT5wcmVwZW5kKHRleHQpOwogICAgIGVsc2UKLSAgICAgICAgYXBwZW5kVG9LaWxsUmlu
Zyh0ZXh0KTsKKyAgICAgICAga2lsbFJpbmcoKS0+YXBwZW5kKHRleHQpOwogICAgIG1fc2hvdWxk
U3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlID0gZmFsc2U7CiB9CiAKLSNpZiAhUExBVEZPUk0oTUFD
KQotCi12b2lkIEVkaXRvcjo6YXBwZW5kVG9LaWxsUmluZyhjb25zdCBTdHJpbmcmKQotewotfQot
Ci12b2lkIEVkaXRvcjo6cHJlcGVuZFRvS2lsbFJpbmcoY29uc3QgU3RyaW5nJikKLXsKLX0KLQot
U3RyaW5nIEVkaXRvcjo6eWFua0Zyb21LaWxsUmluZygpCi17Ci0gICAgcmV0dXJuIFN0cmluZygp
OwotfQotCi12b2lkIEVkaXRvcjo6c3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlKCkKLXsKLX0KLQot
dm9pZCBFZGl0b3I6OnNldEtpbGxSaW5nVG9ZYW5rZWRTdGF0ZSgpCi17Ci19Ci0KLSNlbmRpZgot
CiBib29sIEVkaXRvcjo6aW5zaWRlVmlzaWJsZUFyZWEoY29uc3QgSW50UG9pbnQmIHBvaW50KSBj
b25zdAogewogICAgIGlmIChtX2ZyYW1lLT5leGNsdWRlRnJvbVRleHRTZWFyY2goKSkKSW5kZXg6
IFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmgJKHJldmlzaW9uIDYwMjE0KQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCSh3
b3JraW5nIGNvcHkpCkBAIC00Myw2ICs0Myw3IEBAIGNsYXNzIEVkaXRvckNsaWVudDsKIGNsYXNz
IEVkaXRvckludGVybmFsQ29tbWFuZDsKIGNsYXNzIEhUTUxFbGVtZW50OwogY2xhc3MgSGl0VGVz
dFJlc3VsdDsKK2NsYXNzIEtpbGxSaW5nOwogY2xhc3MgUGFzdGVib2FyZDsKIGNsYXNzIFNpbXBs
ZUZvbnREYXRhOwogY2xhc3MgVGV4dDsKQEAgLTI3OCwxMSArMjc5LDcgQEAgcHVibGljOgogCiAg
ICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb25Gb3JDb21tYW5kKEV2ZW50Kik7CiAKLSAgICB2
b2lkIGFwcGVuZFRvS2lsbFJpbmcoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBwcmVwZW5kVG9L
aWxsUmluZyhjb25zdCBTdHJpbmcmKTsKLSAgICBTdHJpbmcgeWFua0Zyb21LaWxsUmluZygpOwot
ICAgIHZvaWQgc3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlKCk7Ci0gICAgdm9pZCBzZXRLaWxsUmlu
Z1RvWWFua2VkU3RhdGUoKTsKKyAgICBLaWxsUmluZyoga2lsbFJpbmcoKSBjb25zdCB7IHJldHVy
biBtX2tpbGxSaW5nLmdldCgpOyB9CiAKICAgICBQYXNzUmVmUHRyPFJhbmdlPiBzZWxlY3RlZFJh
bmdlKCk7CiAgICAgCkBAIC0zMDUsNiArMzAyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faWdu
b3JlQ29tcG9zaXRpb25TZWxlY3Rpb25DaGFuZ2U7CiAgICAgYm9vbCBtX3Nob3VsZFN0YXJ0TmV3
S2lsbFJpbmdTZXF1ZW5jZTsKICAgICBib29sIG1fc2hvdWxkU3R5bGVXaXRoQ1NTOworICAgIE93
blB0cjxLaWxsUmluZz4gbV9raWxsUmluZzsKIAogICAgIGJvb2wgY2FuRGVsZXRlUmFuZ2UoUmFu
Z2UqKSBjb25zdDsKICAgICBib29sIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKFBhc3Rl
Ym9hcmQqKTsKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAJKHJldmlzaW9uIDYwMjE0
KQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUg
IkluZGVudE91dGRlbnRDb21tYW5kLmgiCiAjaW5jbHVkZSAiSW5zZXJ0TGlzdENvbW1hbmQuaCIK
KyNpbmNsdWRlICJLaWxsUmluZy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5k
ZXJCb3guaCIKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIgpAQCAtMTA0NSwx
NSArMTA0NiwxNSBAQCBzdGF0aWMgYm9vbCBleGVjdXRlVW5zZWxlY3QoRnJhbWUqIGZyYW1lCiAK
IHN0YXRpYyBib29sIGV4ZWN1dGVZYW5rKEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21t
YW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIGZyYW1lLT5lZGl0b3IoKS0+aW5zZXJ0
VGV4dFdpdGhvdXRTZW5kaW5nVGV4dEV2ZW50KGZyYW1lLT5lZGl0b3IoKS0+eWFua0Zyb21LaWxs
UmluZygpLCBmYWxzZSwgMCk7Ci0gICAgZnJhbWUtPmVkaXRvcigpLT5zZXRLaWxsUmluZ1RvWWFu
a2VkU3RhdGUoKTsKKyAgICBmcmFtZS0+ZWRpdG9yKCktPmluc2VydFRleHRXaXRob3V0U2VuZGlu
Z1RleHRFdmVudChmcmFtZS0+ZWRpdG9yKCktPmtpbGxSaW5nKCktPnlhbmsoKSwgZmFsc2UsIDAp
OworICAgIGZyYW1lLT5lZGl0b3IoKS0+a2lsbFJpbmcoKS0+c2V0VG9ZYW5rZWRTdGF0ZSgpOwog
ICAgIHJldHVybiB0cnVlOwogfQogCiBzdGF0aWMgYm9vbCBleGVjdXRlWWFua0FuZFNlbGVjdChG
cmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5nJikK
IHsKLSAgICBmcmFtZS0+ZWRpdG9yKCktPmluc2VydFRleHRXaXRob3V0U2VuZGluZ1RleHRFdmVu
dChmcmFtZS0+ZWRpdG9yKCktPnlhbmtGcm9tS2lsbFJpbmcoKSwgdHJ1ZSwgMCk7Ci0gICAgZnJh
bWUtPmVkaXRvcigpLT5zZXRLaWxsUmluZ1RvWWFua2VkU3RhdGUoKTsKKyAgICBmcmFtZS0+ZWRp
dG9yKCktPmluc2VydFRleHRXaXRob3V0U2VuZGluZ1RleHRFdmVudChmcmFtZS0+ZWRpdG9yKCkt
PmtpbGxSaW5nKCktPnlhbmsoKSwgdHJ1ZSwgMCk7CisgICAgZnJhbWUtPmVkaXRvcigpLT5raWxs
UmluZygpLT5zZXRUb1lhbmtlZFN0YXRlKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKSW5kZXg6
IFdlYkNvcmUvZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
ZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tCShyZXZpc2lvbiA2MDIxNCkKKysrIFdlYkNvcmUvZWRp
dGluZy9tYWMvRWRpdG9yTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2MyArMzMsMTEgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1leHRlcm4gIkMiIHsKLQotLy8gS2lsbCByaW5nIGNh
bGxzLiBXb3VsZCBiZSBiZXR0ZXIgdG8gdXNlIE5TS2lsbFJpbmcuaCwgYnV0IHRoYXQncyBub3Qg
YXZhaWxhYmxlIGFzIEFQSSBvciBTUEkuCi0KLXZvaWQgX05TSW5pdGlhbGl6ZUtpbGxSaW5nKCk7
Ci12b2lkIF9OU0FwcGVuZFRvS2lsbFJpbmcoTlNTdHJpbmcgKik7Ci12b2lkIF9OU1ByZXBlbmRU
b0tpbGxSaW5nKE5TU3RyaW5nICopOwotTlNTdHJpbmcgKl9OU1lhbmtGcm9tS2lsbFJpbmcoKTsK
LXZvaWQgX05TTmV3S2lsbFJpbmdTZXF1ZW5jZSgpOwotdm9pZCBfTlNTZXRLaWxsUmluZ1RvWWFu
a2VkU3RhdGUoKTsKLQotfQotCiBQYXNzUmVmUHRyPENsaXBib2FyZD4gRWRpdG9yOjpuZXdHZW5l
cmFsQ2xpcGJvYXJkKENsaXBib2FyZEFjY2Vzc1BvbGljeSBwb2xpY3kpCiB7CiAgICAgcmV0dXJu
IENsaXBib2FyZE1hYzo6Y3JlYXRlKGZhbHNlLCBbTlNQYXN0ZWJvYXJkIGdlbmVyYWxQYXN0ZWJv
YXJkXSwgcG9saWN5LCAwKTsKIH0KIAotc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUtpbGxSaW5nSWZO
ZWVkZWQoKQotewotICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkS2lsbFJpbmcgPSBmYWxzZTsK
LSAgICBpZiAoIWluaXRpYWxpemVkS2lsbFJpbmcpIHsKLSAgICAgICAgaW5pdGlhbGl6ZWRLaWxs
UmluZyA9IHRydWU7Ci0gICAgICAgIF9OU0luaXRpYWxpemVLaWxsUmluZygpOwotICAgIH0KLX0K
LQotdm9pZCBFZGl0b3I6OmFwcGVuZFRvS2lsbFJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCi17
Ci0gICAgaW5pdGlhbGl6ZUtpbGxSaW5nSWZOZWVkZWQoKTsKLSAgICBfTlNBcHBlbmRUb0tpbGxS
aW5nKHN0cmluZyk7Ci19Ci0KLXZvaWQgRWRpdG9yOjpwcmVwZW5kVG9LaWxsUmluZyhjb25zdCBT
dHJpbmcmIHN0cmluZykKLXsKLSAgICBpbml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgpOwotICAg
IF9OU1ByZXBlbmRUb0tpbGxSaW5nKHN0cmluZyk7Ci19Ci0KLVN0cmluZyBFZGl0b3I6OnlhbmtG
cm9tS2lsbFJpbmcoKQotewotICAgIGluaXRpYWxpemVLaWxsUmluZ0lmTmVlZGVkKCk7Ci0gICAg
cmV0dXJuIF9OU1lhbmtGcm9tS2lsbFJpbmcoKTsKLX0KLQotdm9pZCBFZGl0b3I6OnN0YXJ0TmV3
S2lsbFJpbmdTZXF1ZW5jZSgpCi17Ci0gICAgaW5pdGlhbGl6ZUtpbGxSaW5nSWZOZWVkZWQoKTsK
LSAgICBfTlNOZXdLaWxsUmluZ1NlcXVlbmNlKCk7Ci19Ci0KLXZvaWQgRWRpdG9yOjpzZXRLaWxs
UmluZ1RvWWFua2VkU3RhdGUoKQotewotICAgIGluaXRpYWxpemVLaWxsUmluZ0lmTmVlZGVkKCk7
Ci0gICAgX05TU2V0S2lsbFJpbmdUb1lhbmtlZFN0YXRlKCk7Ci19Ci0KIHZvaWQgRWRpdG9yOjpz
aG93Rm9udFBhbmVsKCkKIHsKICAgICBbW05TRm9udE1hbmFnZXIgc2hhcmVkRm9udE1hbmFnZXJd
IG9yZGVyRnJvbnRGb250UGFuZWw6bmlsXTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vS2lsbFJp
bmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL0tpbGxSaW5nLmgJKHJldmlzaW9u
IDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL0tpbGxSaW5nLmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBLaWxsUmluZ19oCisjZGVmaW5lIEtpbGxSaW5n
X2gKKworI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgS2lsbFJpbmcgeworcHVibGljOgorICAgIHZpcnR1YWwgfktpbGxSaW5nKCkge30K
KyAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kKGNvbnN0IFN0cmluZyYpIHt9CisgICAgdmlydHVhbCB2
b2lkIHByZXBlbmQoY29uc3QgU3RyaW5nJikge30KKyAgICB2aXJ0dWFsIFN0cmluZyB5YW5rKCkg
eyByZXR1cm4gU3RyaW5nKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc3RhcnROZXdTZXF1ZW5jZSgp
IHt9CisgICAgdmlydHVhbCB2b2lkIHNldFRvWWFua2VkU3RhdGUoKSB7fQorfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gS2lsbFJpbmdfaAoKUHJvcGVydHkgY2hhbmdl
cyBvbjogV2ViQ29yZS9wbGF0Zm9ybS9LaWxsUmluZy5oCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjpl
b2wtc3R5bGUKICAgKyBMRgoKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbWFjL0tpbGxSaW5nTWFj
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2lsbFJpbmdNYWMuaAkocmV2
aXNpb24gMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vbWFjL0tpbGxSaW5nTWFjLmgJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBLaWxsUmluZ01hY19oCisj
ZGVmaW5lIEtpbGxSaW5nTWFjX2gKKworI2luY2x1ZGUgIktpbGxSaW5nLmgiCisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgS2lsbFJpbmdNYWMgOiBwdWJsaWMgS2lsbFJpbmcgeworcHVi
bGljOgorICAgIHZpcnR1YWwgdm9pZCBhcHBlbmQoY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVh
bCB2b2lkIHByZXBlbmQoY29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCBTdHJpbmcgeWFuaygp
OworICAgIHZpcnR1YWwgdm9pZCBzdGFydE5ld1NlcXVlbmNlKCk7CisgICAgdmlydHVhbCB2b2lk
IHNldFRvWWFua2VkU3RhdGUoKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEtpbGxSaW5nTWFjX2gKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvS2lsbFJpbmdNYWMuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAg
ICsgTEYKCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL21hYy9LaWxsUmluZ01hYy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL21hYy9LaWxsUmluZ01hYy5tbQkocmV2aXNpb24gMCkK
KysrIFdlYkNvcmUvcGxhdGZvcm0vbWFjL0tpbGxSaW5nTWFjLm1tCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDgzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIktpbGxSaW5nTWFjLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworZXh0ZXJuICJDIiB7CisKKy8vIEtpbGwgcmluZyBjYWxscy4gV291
bGQgYmUgYmV0dGVyIHRvIHVzZSBOU0tpbGxSaW5nLmgsIGJ1dCB0aGF0J3Mgbm90IGF2YWlsYWJs
ZSBhcyBBUEkgb3IgU1BJLgorCit2b2lkIF9OU0luaXRpYWxpemVLaWxsUmluZygpOwordm9pZCBf
TlNBcHBlbmRUb0tpbGxSaW5nKE5TU3RyaW5nICopOwordm9pZCBfTlNQcmVwZW5kVG9LaWxsUmlu
ZyhOU1N0cmluZyAqKTsKK05TU3RyaW5nICpfTlNZYW5rRnJvbUtpbGxSaW5nKCk7Cit2b2lkIF9O
U05ld0tpbGxSaW5nU2VxdWVuY2UoKTsKK3ZvaWQgX05TU2V0S2lsbFJpbmdUb1lhbmtlZFN0YXRl
KCk7CisKK30KKworc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUtpbGxSaW5nSWZOZWVkZWQoKQorewor
ICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkS2lsbFJpbmcgPSBmYWxzZTsKKyAgICBpZiAoIWlu
aXRpYWxpemVkS2lsbFJpbmcpIHsKKyAgICAgICAgaW5pdGlhbGl6ZWRLaWxsUmluZyA9IHRydWU7
CisgICAgICAgIF9OU0luaXRpYWxpemVLaWxsUmluZygpOworICAgIH0KK30KKwordm9pZCBLaWxs
UmluZ01hYzo6YXBwZW5kKGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIGluaXRpYWxpemVL
aWxsUmluZ0lmTmVlZGVkKCk7CisgICAgX05TQXBwZW5kVG9LaWxsUmluZyhzdHJpbmcpOworfQor
Cit2b2lkIEtpbGxSaW5nTWFjOjpwcmVwZW5kKGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworICAg
IGluaXRpYWxpemVLaWxsUmluZ0lmTmVlZGVkKCk7CisgICAgX05TUHJlcGVuZFRvS2lsbFJpbmco
c3RyaW5nKTsKK30KKworU3RyaW5nIEtpbGxSaW5nTWFjOjp5YW5rKCkKK3sKKyAgICBpbml0aWFs
aXplS2lsbFJpbmdJZk5lZWRlZCgpOworICAgIHJldHVybiBfTlNZYW5rRnJvbUtpbGxSaW5nKCk7
Cit9CisKK3ZvaWQgS2lsbFJpbmdNYWM6OnN0YXJ0TmV3U2VxdWVuY2UoKQoreworICAgIGluaXRp
YWxpemVLaWxsUmluZ0lmTmVlZGVkKCk7CisgICAgX05TTmV3S2lsbFJpbmdTZXF1ZW5jZSgpOwor
fQorCit2b2lkIEtpbGxSaW5nTWFjOjpzZXRUb1lhbmtlZFN0YXRlKCkKK3sKKyAgICBpbml0aWFs
aXplS2lsbFJpbmdJZk5lZWRlZCgpOworICAgIF9OU1NldEtpbGxSaW5nVG9ZYW5rZWRTdGF0ZSgp
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJD
b3JlL3BsYXRmb3JtL21hYy9LaWxsUmluZ01hYy5tbQpfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9s
LXN0eWxlCiAgICsgTEYKCg==
</data>
<flag name="review"
          id="41596"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57114</attachid>
            <date>2010-05-26 10:36:26 -0700</date>
            <delta_ts>2010-05-26 10:50:24 -0700</delta_ts>
            <desc>address comments</desc>
            <filename>webkit_killring.patch</filename>
            <type>text/plain</type>
            <size>22811</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDIxNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMDUtMjUgIE5pY28gV2ViZXIgIDx0aGFraXNAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTA5MgorCisgICAgICAgIEFk
ZCBZYW5rIHN1cHBvcnQgdG8gY2hyb21pdW0gbWFjLiBEbyB0aGlzIGJ5IG1vdmluZyBXZWJLaXQg
TWFjJ3MKKyAgICAgICAgaW1wbGVtZW50YXRpb24gb2YgRWRpdG9yOjp5YW5rRnJvbUtpbGxSaW5n
KCkgaW50byBpdHMgb3duIGNsYXNzIGFuZAorICAgICAgICB0aGVuIHVzaW5nIHRoYXQuCisKKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgICAgVXNlIG5ldyBLaWxsUmluZyBj
bGFzcy4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjpraWxsUmluZyk6CisgICAgICAgICAgVXNlIG5ldyBLaWxsUmluZyBjbGFzcy4KKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0
ZVlhbmtBbmRTZWxlY3QpOgorICAgICAgICAgIFVzZSBuZXcgS2lsbFJpbmcgY2xhc3MuCisgICAg
ICAgICogcGxhdGZvcm0vS2lsbFJpbmcuaDoKKyAgICAgICAgICBBZGQgbmV3IEtpbGxSaW5nIGNs
YXNzLCB3aGljaCBhY3RzIGFzIG51bGwgb2JqZWN0LgorICAgICAgICAoV2ViQ29yZTo6S2lsbFJp
bmc6On5LaWxsUmluZyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0tpbGxSaW5nTWFjLmg6Cisg
ICAgICAgICAgQWRkIG5ldyBLaWxsUmluZ01hYyBjbGFzcywgd2hpY2ggd3JpdGVzIHRvIHRoZSBt
YWMncyBraWxsIHJpbmcuCisgICAgICAgICogcGxhdGZvcm0vbWFjL0tpbGxSaW5nTWFjLm1tOgor
ICAgICAgICAgIEFkZCBuZXcgS2lsbFJpbmdNYWMgY2xhc3MsIHdoaWNoIHdyaXRlcyB0byB0aGUg
bWFjJ3Mga2lsbCByaW5nLgorCiAyMDEwLTA1LTI1ICBEdW1pdHJ1IERhbmlsaXVjICA8ZHVtaUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgY2hhbmdpbmcgImZ0czIiIHRvICJm
dHMzIiBpbiBvbmUgbG9jYXRpb24gSSBtaXNzZWQgaW4gcjYwMTg4LgpJbmRleDogV2ViQ29yZS9H
TlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZp
c2lvbiA2MDIxNCkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAg
LTE1NjcsNiArMTU2Nyw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9wbGF0Zm9y
bS9HZW9sb2NhdGlvblNlcnZpY2UuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9u
U2VydmljZS5oIFwKIAlXZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaCBcCisJV2ViQ29yZS9w
bGF0Zm9ybS9LaWxsUmluZy5oIFwKKwlXZWJDb3JlL3BsYXRmb3JtL0tpbGxSaW5nTm9uZS5jcHAg
XAogCVdlYkNvcmUvcGxhdGZvcm0vS1VSTC5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vS1VSTC5o
IFwKIAlXZWJDb3JlL3BsYXRmb3JtL0tVUkxIYXNoLmggXApJbmRleDogV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDYwMjE0
KQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTI1MTEsNiArMjUx
MSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL0ZvdW5kYXRpb25FeHRyYXMuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vbWFjL0tVUkxNYWMubW0nLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL21hYy9LZXlFdmVudE1hYy5tbScsCisgICAgICAgICAgICAncGxhdGZvcm0vbWFjL0tpbGxS
aW5nTWFjLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvTGFuZ3VhZ2UubW0nLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbScs
CkBAIC0yODk1LDYgKzI4OTYsOCBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL0dlb2xvY2F0aW9u
U2VydmljZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5o
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9Ib3N0V2luZG93LmgnLAorICAgICAgICAgICAgJ3Bs
YXRmb3JtL0tpbGxSaW5nLmgnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL0tpbGxSaW5nTm9uZS5j
cHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0tVUkwuY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9LVVJMLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0tVUkxHb29nbGUuY3BwJywKSW5k
ZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBy
bwkocmV2aXNpb24gNjAyMTQpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkp
CkBAIC04NTksNiArODU5LDcgQEAgU09VUkNFUyArPSBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9Ta2V3VHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBcCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb25zLmNwcCBcCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uY3BwIFwKKyAg
ICBwbGF0Zm9ybS9LaWxsUmluZ05vbmUuY3BwIFwKICAgICBwbGF0Zm9ybS9LVVJMLmNwcCBcCiAg
ICAgcGxhdGZvcm0vTGVuZ3RoLmNwcCBcCiAgICAgcGxhdGZvcm0vTGlua0hhc2guY3BwIFwKQEAg
LTE2MTcsNiArMTYxOCw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3Ry
YW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaCBcCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9UcmFuc2Zvcm1PcGVyYXRpb25zLmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmggXAorICAgIHBsYXRmb3Jt
L0tpbGxSaW5nLmggXAogICAgIHBsYXRmb3JtL0tVUkwuaCBcCiAgICAgcGxhdGZvcm0vTGVuZ3Ro
LmggXAogICAgIHBsYXRmb3JtL0xpbmtIYXNoLmggXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5
cC9XZWJDb3JlLmd5cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUu
Z3lwCShyZXZpc2lvbiA2MDIxNCkKKysrIFdlYkNvcmUvV2ViQ29yZS5neXAvV2ViQ29yZS5neXAJ
KHdvcmtpbmcgY29weSkKQEAgLTEwMTAsNiArMTAxMCw3IEBACiAgICAgICAgICAgICBbJ2luY2x1
ZGUnLCAncGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ29udGV4dE1hY1xcLm1tJCddLAog
ICAgICAgICAgICAgWydpbmNsdWRlJywgJ3BsYXRmb3JtL2dyYXBoaWNzL21hYy9JbnRSZWN0TWFj
XFwubW0kJ10sCiAgICAgICAgICAgICBbJ2luY2x1ZGUnLCAncGxhdGZvcm0vbWFjL0Jsb2NrRXhj
ZXB0aW9uc1xcLm1tJCddLAorICAgICAgICAgICAgWydpbmNsdWRlJywgJ3BsYXRmb3JtL21hYy9L
aWxsUmluZ01hY1xcLm1tJCddLAogICAgICAgICAgICAgWydpbmNsdWRlJywgJ3BsYXRmb3JtL21h
Yy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHRcXC5tbSQnXSwKICAgICAgICAgICAgIFsnaW5j
bHVkZScsICdwbGF0Zm9ybS9tYWMvUHVyZ2VhYmxlQnVmZmVyTWFjXFwuY3BwJCddLAogICAgICAg
ICAgICAgWydpbmNsdWRlJywgJ3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlXFwu
bW0kJ10sCkBAIC0xMDIyLDYgKzEwMjMsMTAgQEAKICAgICAgICAgICAgIFsnaW5jbHVkZScsICdX
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5c3RlbUludGVyZmFjZVxcLm0kJ10sCiAgICAg
ICAgICAgXSwKICAgICAgICAgICAnc291cmNlcyEnOiBbCisgICAgICAgICAgICAjIFRoZSBNYWMg
dXNlcyBwbGF0Zm9ybS9tYWMvS2lsbFJpbmdNYWMubW0gaW5zdGVhZCBvZiB0aGUgZHVtbXkKKyAg
ICAgICAgICAgICMgaW1wbGVtZW50YXRpb24uCisgICAgICAgICAgICAnLi4vcGxhdGZvcm0vS2ls
bFJpbmdOb25lLmNwcCcsCisKICAgICAgICAgICAgICMgVGhlIE1hYyBjdXJyZW50bHkgdXNlcyBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcCBmcm9tCiAgICAgICAgICAgICAjIHBsYXRmb3JtL2dy
YXBoaWNzL21hYywgaW5jbHVkZWQgYnkgcmVnZXggYWJvdmUsIGluc3RlYWQuCiAgICAgICAgICAg
ICAnLi4vcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA2
MDIxNCkKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTIyNDA5LDYgKzIyNDA5LDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXEtpbGxSaW5nLmgiDQorCQkJCT4N
CisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxL
aWxsUmluZ05vbmUuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJl
bGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cS1VSTC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpJ
bmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDYwMjE0KQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTExNTksNiArMTE1OSw4IEBACiAJCTUxRUM5MjU5MENFOTBEQjQwMEY5
MDMwOCAvKiBTUUxFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTFFQzkyNTcwQ0U5MERCNDAwRjkwMzA4IC8qIFNRTEVycm9yLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTFFQzkyNjUwQ0U5MERE
NDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUVDOTI1RDBDRTkwREQ0
MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNrLmNwcCAqLzsgfTsK
IAkJNTFGQUZFMzQwQ0VDQkYyRDAwQkIzRjI0IC8qIERhdGFiYXNlVHJhY2tlckNsaWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQUZFMzMwQ0VD
QkYyRDAwQkIzRjI0IC8qIERhdGFiYXNlVHJhY2tlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTUyNkMxNkQ4MTFBQzkxODUwMDgwMTI0
RSAvKiBLaWxsUmluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTI2QzE2RDcxMUFDOTE4NTAwODAxMjRFIC8qIEtpbGxSaW5nLmggKi87IH07CisJCTUy
NkMxNkRDMTFBQzkxQTYwMDgwMTI0RSAvKiBLaWxsUmluZ01hYy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyNkMxNkRBMTFBQzkxQTYwMDgwMTI0RSAv
KiBLaWxsUmluZ01hYy5tbSAqLzsgfTsKIAkJNTRDNTBGN0IwRTgwMURGMzAwOTgzMkEwIC8qIFhN
TFRva2VuaXplckxpYnhtbDIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTRDNTBGN0EwRTgwMURGMzAwOTgzMkEwIC8qIFhNTFRva2VuaXplckxpYnht
bDIuY3BwICovOyB9OwogCQk1NTBBMEJDOTA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFt
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTBB
MEJDNzA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgKi87IH07CiAJCTU1MEEw
QkNBMDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NTBBMEJDODA4NUY2MDM5MDA3MzUzRDYgLyog
UXVhbGlmaWVkTmFtZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC02Nzc2LDYgKzY3NzgsOCBAQAogCQk1MUY2QTNENTA2NjNCRjA0MDA0RDI5MTkg
LyogSFRNTENhbnZhc0VsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTENhbnZhc0VsZW1lbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJNTFGNkEzRDYw
NjYzQkYwNDAwNEQyOTE5IC8qIEhUTUxDYW52YXNFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxDYW52YXNFbGVtZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1
MUZBRkUzMzBDRUNCRjJEMDBCQjNGMjQgLyogRGF0YWJhc2VUcmFja2VyQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFiYXNlVHJhY2tlckNsaWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MjZDMTZENzExQUM5MTg1MDA4MDEyNEUgLyogS2ls
bFJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS2lsbFJpbmcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTI2QzE2REExMUFDOTFBNjAwODAxMjRFIC8qIEtp
bGxSaW5nTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gS2ls
bFJpbmdNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU0QzUwRjdBMEU4MDFE
RjMwMDk4MzJBMCAvKiBYTUxUb2tlbml6ZXJMaWJ4bWwyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFhNTFRva2VuaXplckxpYnhtbDIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1NTBBMEJDNzA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFt
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGlu
ZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBRdWFsaWZpZWROYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFs
aWZpZWROYW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFF1YWxpZmllZE5hbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGgg
PSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xMTg4OCw2ICsxMTg5Miw3IEBACiAJCQkJQkNFNDk0
QTkwRjRGNUU5RTAwODRFMzE5IC8qIEdlb2xvY2F0aW9uU2VydmljZU1hYy5oICovLAogCQkJCUJD
RTQ5NEFBMEY0RjVFOUUwMDg0RTMxOSAvKiBHZW9sb2NhdGlvblNlcnZpY2VNYWMubW0gKi8sCiAJ
CQkJOTM1QzQ3NkUwOUFDNEQ3MzAwQTZBQUI0IC8qIEtleUV2ZW50TWFjLm1tICovLAorCQkJCTUy
NkMxNkRBMTFBQzkxQTYwMDgwMTI0RSAvKiBLaWxsUmluZ01hYy5tbSAqLywKIAkJCQk2NTkzOTIz
OTA5QUU0MzVDMDAyQzUzMUYgLyogS1VSTE1hYy5tbSAqLywKIAkJCQk5MzUyMDg0NDA5QkQ0M0I5
MDBGMjAzOEQgLyogTGFuZ3VhZ2UubW0gKi8sCiAJCQkJMDZFODFFRDYwQUI1RDVFOTAwQzg3ODM3
IC8qIExvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5oICovLApAQCAtMTU4MTMsNiArMTU4MTgs
NyBAQAogCQkJCUZFQUI5MDEwMEVBNTFCOUMwMDYzNDhDMyAvKiBHZW9sb2NhdGlvblNlcnZpY2Uu
Y3BwICovLAogCQkJCUZFQUI5MDExMEVBNTFCOUMwMDYzNDhDMyAvKiBHZW9sb2NhdGlvblNlcnZp
Y2UuaCAqLywKIAkJCQlCQzNCQzI5QjBFOTFBQjBGMDA4MzU1ODggLyogSG9zdFdpbmRvdy5oICov
LAorCQkJCTUyNkMxNkQ3MTFBQzkxODUwMDgwMTI0RSAvKiBLaWxsUmluZy5oICovLAogCQkJCTY1
OTM5MjM1MDlBRTQzNDYwMDJDNTMxRiAvKiBLVVJMLmNwcCAqLywKIAkJCQk2NTkzOTIzNjA5QUU0
MzQ2MDAyQzUzMUYgLyogS1VSTC5oICovLAogCQkJCUJDQkQyMUFBMEU0MTdBRDQwMEEwNzBGMiAv
KiBLVVJMSGFzaC5oICovLApAQCAtMTkzMzEsNiArMTkzMzcsNyBAQAogCQkJCUM1NDQyNzRCMTFB
NTdFN0EwMDYzQTc0OSAvKiBET01TdHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNTEz
N0NGMzExQTU4Mzc4MDA0QURCOTkgLyogSlNET01TdHJpbmdMaXN0LmggaW4gSGVhZGVycyAqLywK
IAkJCQk2MkMxMjE3RDExQUI5RTc3MDAzQzQ2MkMgLyogU3VzcGVuZGFibGVUaW1lci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNTI2QzE2RDgxMUFDOTE4NTAwODAxMjRFIC8qIEtpbGxSaW5nLmggaW4g
SGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKQEAgLTIxNjIxLDYgKzIxNjI4LDcgQEAKIAkJCQlDNTEzN0NGMjExQTU4Mzc4
MDA0QURCOTkgLyogSlNET01TdHJpbmdMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM1NTYx
MEYxMTFBNzA0RUIwMEI4MkQyNyAvKiBET01TdHJpbmdMaXN0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTYyQzEyMTdDMTFBQjlFNzcwMDNDNDYyQyAvKiBTdXNwZW5kYWJsZVRpbWVyLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTUyNkMxNkRDMTFBQzkxQTYwMDgwMTI0RSAvKiBLaWxsUmluZ01hYy5t
bSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHJldmlzaW9uIDYwMjE0KQorKysg
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDYgKzU1LDcg
QEAKICNpbmNsdWRlICJJbmRlbnRPdXRkZW50Q29tbWFuZC5oIgogI2luY2x1ZGUgIkluc2VydExp
c3RDb21tYW5kLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIktpbGxS
aW5nLmgiCiAjaW5jbHVkZSAiTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmgiCiAjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKQEAgLTkyOCw2ICs5MjksNyBAQCBFZGl0
b3I6OkVkaXRvcihGcmFtZSogZnJhbWUpCiAgICAgLCBtX3Nob3VsZFN0YXJ0TmV3S2lsbFJpbmdT
ZXF1ZW5jZShmYWxzZSkKICAgICAvLyBUaGlzIGlzIG9mZiBieSBkZWZhdWx0LCBzaW5jZSBtb3N0
IGVkaXRvcnMgd2FudCB0aGlzIGJlaGF2aW9yICh0aGlzIG1hdGNoZXMgSUUgYnV0IG5vdCBGRiku
CiAgICAgLCBtX3Nob3VsZFN0eWxlV2l0aENTUyhmYWxzZSkKKyAgICAsIG1fa2lsbFJpbmcobmV3
IEtpbGxSaW5nKQogeyAKIH0KIApAQCAtMjcwNyw0MSArMjcwOSwxNiBAQCB2b2lkIEVkaXRvcjo6
dHJhbnNwb3NlKCkKIHZvaWQgRWRpdG9yOjphZGRUb0tpbGxSaW5nKFJhbmdlKiByYW5nZSwgYm9v
bCBwcmVwZW5kKQogewogICAgIGlmIChtX3Nob3VsZFN0YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZSkK
LSAgICAgICAgc3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlKCk7CisgICAgICAgIGtpbGxSaW5nKCkt
PnN0YXJ0TmV3U2VxdWVuY2UoKTsKIAogICAgIFN0cmluZyB0ZXh0ID0gcGxhaW5UZXh0KHJhbmdl
KTsKICAgICBpZiAocHJlcGVuZCkKLSAgICAgICAgcHJlcGVuZFRvS2lsbFJpbmcodGV4dCk7Cisg
ICAgICAgIGtpbGxSaW5nKCktPnByZXBlbmQodGV4dCk7CiAgICAgZWxzZQotICAgICAgICBhcHBl
bmRUb0tpbGxSaW5nKHRleHQpOworICAgICAgICBraWxsUmluZygpLT5hcHBlbmQodGV4dCk7CiAg
ICAgbV9zaG91bGRTdGFydE5ld0tpbGxSaW5nU2VxdWVuY2UgPSBmYWxzZTsKIH0KIAotI2lmICFQ
TEFURk9STShNQUMpCi0KLXZvaWQgRWRpdG9yOjphcHBlbmRUb0tpbGxSaW5nKGNvbnN0IFN0cmlu
ZyYpCi17Ci19Ci0KLXZvaWQgRWRpdG9yOjpwcmVwZW5kVG9LaWxsUmluZyhjb25zdCBTdHJpbmcm
KQotewotfQotCi1TdHJpbmcgRWRpdG9yOjp5YW5rRnJvbUtpbGxSaW5nKCkKLXsKLSAgICByZXR1
cm4gU3RyaW5nKCk7Ci19Ci0KLXZvaWQgRWRpdG9yOjpzdGFydE5ld0tpbGxSaW5nU2VxdWVuY2Uo
KQotewotfQotCi12b2lkIEVkaXRvcjo6c2V0S2lsbFJpbmdUb1lhbmtlZFN0YXRlKCkKLXsKLX0K
LQotI2VuZGlmCi0KIGJvb2wgRWRpdG9yOjppbnNpZGVWaXNpYmxlQXJlYShjb25zdCBJbnRQb2lu
dCYgcG9pbnQpIGNvbnN0CiB7CiAgICAgaWYgKG1fZnJhbWUtPmV4Y2x1ZGVGcm9tVGV4dFNlYXJj
aCgpKQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvZWRpdGluZy9FZGl0b3IuaAkocmV2aXNpb24gNjAyMTQpCisrKyBXZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcgQEAgY2xhc3MgRWRpdG9yQ2xp
ZW50OwogY2xhc3MgRWRpdG9ySW50ZXJuYWxDb21tYW5kOwogY2xhc3MgSFRNTEVsZW1lbnQ7CiBj
bGFzcyBIaXRUZXN0UmVzdWx0OworY2xhc3MgS2lsbFJpbmc7CiBjbGFzcyBQYXN0ZWJvYXJkOwog
Y2xhc3MgU2ltcGxlRm9udERhdGE7CiBjbGFzcyBUZXh0OwpAQCAtMjc4LDExICsyNzksNyBAQCBw
dWJsaWM6CiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbkZvckNvbW1hbmQoRXZlbnQq
KTsKIAotICAgIHZvaWQgYXBwZW5kVG9LaWxsUmluZyhjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lk
IHByZXBlbmRUb0tpbGxSaW5nKGNvbnN0IFN0cmluZyYpOwotICAgIFN0cmluZyB5YW5rRnJvbUtp
bGxSaW5nKCk7Ci0gICAgdm9pZCBzdGFydE5ld0tpbGxSaW5nU2VxdWVuY2UoKTsKLSAgICB2b2lk
IHNldEtpbGxSaW5nVG9ZYW5rZWRTdGF0ZSgpOworICAgIEtpbGxSaW5nKiBraWxsUmluZygpIGNv
bnN0IHsgcmV0dXJuIG1fa2lsbFJpbmcuZ2V0KCk7IH0KIAogICAgIFBhc3NSZWZQdHI8UmFuZ2U+
IHNlbGVjdGVkUmFuZ2UoKTsKICAgICAKQEAgLTMwNSw2ICszMDIsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9pZ25vcmVDb21wb3NpdGlvblNlbGVjdGlvbkNoYW5nZTsKICAgICBib29sIG1fc2hv
dWxkU3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlOwogICAgIGJvb2wgbV9zaG91bGRTdHlsZVdpdGhD
U1M7CisgICAgT3duUHRyPEtpbGxSaW5nPiBtX2tpbGxSaW5nOwogCiAgICAgYm9vbCBjYW5EZWxl
dGVSYW5nZShSYW5nZSopIGNvbnN0OwogICAgIGJvb2wgY2FuU21hcnRSZXBsYWNlV2l0aFBhc3Rl
Ym9hcmQoUGFzdGVib2FyZCopOwpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAkocmV2
aXNpb24gNjAyMTQpCisrKyBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSW5kZW50T3V0ZGVudENvbW1hbmQuaCIKICNpbmNsdWRlICJJbnNlcnRMaXN0
Q29tbWFuZC5oIgorI2luY2x1ZGUgIktpbGxSaW5nLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlJlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmgi
CkBAIC0xMDQ1LDE1ICsxMDQ2LDE1IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVVbnNlbGVjdChGcmFt
ZSogZnJhbWUKIAogc3RhdGljIGJvb2wgZXhlY3V0ZVlhbmsoRnJhbWUqIGZyYW1lLCBFdmVudCos
IEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgZnJhbWUtPmVkaXRv
cigpLT5pbnNlcnRUZXh0V2l0aG91dFNlbmRpbmdUZXh0RXZlbnQoZnJhbWUtPmVkaXRvcigpLT55
YW5rRnJvbUtpbGxSaW5nKCksIGZhbHNlLCAwKTsKLSAgICBmcmFtZS0+ZWRpdG9yKCktPnNldEtp
bGxSaW5nVG9ZYW5rZWRTdGF0ZSgpOworICAgIGZyYW1lLT5lZGl0b3IoKS0+aW5zZXJ0VGV4dFdp
dGhvdXRTZW5kaW5nVGV4dEV2ZW50KGZyYW1lLT5lZGl0b3IoKS0+a2lsbFJpbmcoKS0+eWFuaygp
LCBmYWxzZSwgMCk7CisgICAgZnJhbWUtPmVkaXRvcigpLT5raWxsUmluZygpLT5zZXRUb1lhbmtl
ZFN0YXRlKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVZYW5r
QW5kU2VsZWN0KEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25z
dCBTdHJpbmcmKQogewotICAgIGZyYW1lLT5lZGl0b3IoKS0+aW5zZXJ0VGV4dFdpdGhvdXRTZW5k
aW5nVGV4dEV2ZW50KGZyYW1lLT5lZGl0b3IoKS0+eWFua0Zyb21LaWxsUmluZygpLCB0cnVlLCAw
KTsKLSAgICBmcmFtZS0+ZWRpdG9yKCktPnNldEtpbGxSaW5nVG9ZYW5rZWRTdGF0ZSgpOworICAg
IGZyYW1lLT5lZGl0b3IoKS0+aW5zZXJ0VGV4dFdpdGhvdXRTZW5kaW5nVGV4dEV2ZW50KGZyYW1l
LT5lZGl0b3IoKS0+a2lsbFJpbmcoKS0+eWFuaygpLCB0cnVlLCAwKTsKKyAgICBmcmFtZS0+ZWRp
dG9yKCktPmtpbGxSaW5nKCktPnNldFRvWWFua2VkU3RhdGUoKTsKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIApJbmRleDogV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0JKHJldmlzaW9uIDYwMjE0KQorKysg
V2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMzLDYz
ICszMywxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWV4dGVybiAiQyIgewotCi0vLyBL
aWxsIHJpbmcgY2FsbHMuIFdvdWxkIGJlIGJldHRlciB0byB1c2UgTlNLaWxsUmluZy5oLCBidXQg
dGhhdCdzIG5vdCBhdmFpbGFibGUgYXMgQVBJIG9yIFNQSS4KLQotdm9pZCBfTlNJbml0aWFsaXpl
S2lsbFJpbmcoKTsKLXZvaWQgX05TQXBwZW5kVG9LaWxsUmluZyhOU1N0cmluZyAqKTsKLXZvaWQg
X05TUHJlcGVuZFRvS2lsbFJpbmcoTlNTdHJpbmcgKik7Ci1OU1N0cmluZyAqX05TWWFua0Zyb21L
aWxsUmluZygpOwotdm9pZCBfTlNOZXdLaWxsUmluZ1NlcXVlbmNlKCk7Ci12b2lkIF9OU1NldEtp
bGxSaW5nVG9ZYW5rZWRTdGF0ZSgpOwotCi19Ci0KIFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBFZGl0
b3I6Om5ld0dlbmVyYWxDbGlwYm9hcmQoQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSkKIHsK
ICAgICByZXR1cm4gQ2xpcGJvYXJkTWFjOjpjcmVhdGUoZmFsc2UsIFtOU1Bhc3RlYm9hcmQgZ2Vu
ZXJhbFBhc3RlYm9hcmRdLCBwb2xpY3ksIDApOwogfQogCi1zdGF0aWMgdm9pZCBpbml0aWFsaXpl
S2lsbFJpbmdJZk5lZWRlZCgpCi17Ci0gICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWRLaWxsUmlu
ZyA9IGZhbHNlOwotICAgIGlmICghaW5pdGlhbGl6ZWRLaWxsUmluZykgewotICAgICAgICBpbml0
aWFsaXplZEtpbGxSaW5nID0gdHJ1ZTsKLSAgICAgICAgX05TSW5pdGlhbGl6ZUtpbGxSaW5nKCk7
Ci0gICAgfQotfQotCi12b2lkIEVkaXRvcjo6YXBwZW5kVG9LaWxsUmluZyhjb25zdCBTdHJpbmcm
IHN0cmluZykKLXsKLSAgICBpbml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgpOwotICAgIF9OU0Fw
cGVuZFRvS2lsbFJpbmcoc3RyaW5nKTsKLX0KLQotdm9pZCBFZGl0b3I6OnByZXBlbmRUb0tpbGxS
aW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQotewotICAgIGluaXRpYWxpemVLaWxsUmluZ0lmTmVl
ZGVkKCk7Ci0gICAgX05TUHJlcGVuZFRvS2lsbFJpbmcoc3RyaW5nKTsKLX0KLQotU3RyaW5nIEVk
aXRvcjo6eWFua0Zyb21LaWxsUmluZygpCi17Ci0gICAgaW5pdGlhbGl6ZUtpbGxSaW5nSWZOZWVk
ZWQoKTsKLSAgICByZXR1cm4gX05TWWFua0Zyb21LaWxsUmluZygpOwotfQotCi12b2lkIEVkaXRv
cjo6c3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlKCkKLXsKLSAgICBpbml0aWFsaXplS2lsbFJpbmdJ
Zk5lZWRlZCgpOwotICAgIF9OU05ld0tpbGxSaW5nU2VxdWVuY2UoKTsKLX0KLQotdm9pZCBFZGl0
b3I6OnNldEtpbGxSaW5nVG9ZYW5rZWRTdGF0ZSgpCi17Ci0gICAgaW5pdGlhbGl6ZUtpbGxSaW5n
SWZOZWVkZWQoKTsKLSAgICBfTlNTZXRLaWxsUmluZ1RvWWFua2VkU3RhdGUoKTsKLX0KLQogdm9p
ZCBFZGl0b3I6OnNob3dGb250UGFuZWwoKQogewogICAgIFtbTlNGb250TWFuYWdlciBzaGFyZWRG
b250TWFuYWdlcl0gb3JkZXJGcm9udEZvbnRQYW5lbDpuaWxdOwpJbmRleDogV2ViQ29yZS9wbGF0
Zm9ybS9LaWxsUmluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vS2lsbFJpbmcu
aAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vS2lsbFJpbmcuaAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIEtpbGxSaW5nX2gKKyNkZWZp
bmUgS2lsbFJpbmdfaAorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBLaWxsUmluZyB7CitwdWJsaWM6CisgICAgdm9pZCBhcHBlbmQo
Y29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBwcmVwZW5kKGNvbnN0IFN0cmluZyYpOworICAgIFN0
cmluZyB5YW5rKCk7CisgICAgdm9pZCBzdGFydE5ld1NlcXVlbmNlKCk7CisgICAgdm9pZCBzZXRU
b1lhbmtlZFN0YXRlKCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBLaWxsUmluZ19oCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJDb3JlL3BsYXRmb3JtL0tpbGxS
aW5nLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9LaWxsUmluZ05vbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vS2lsbFJpbmdOb25lLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
S2lsbFJpbmdOb25lLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIktpbGxSaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBL
aWxsUmluZzo6YXBwZW5kKGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworfQorCit2b2lkIEtpbGxS
aW5nOjpwcmVwZW5kKGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworfQorCitTdHJpbmcgS2lsbFJp
bmc6OnlhbmsoKQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwordm9pZCBLaWxsUmluZzo6
c3RhcnROZXdTZXF1ZW5jZSgpCit7Cit9CisKK3ZvaWQgS2lsbFJpbmc6OnNldFRvWWFua2VkU3Rh
dGUoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBXZWJDb3JlL3BsYXRmb3JtL0tpbGxSaW5nTm9uZS5jcHAKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3Zu
OmVvbC1zdHlsZQogICArIExGCgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2lsbFJpbmdN
YWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2lsbFJpbmdNYWMubW0J
KHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3JtL21hYy9LaWxsUmluZ01hYy5tbQkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJLaWxsUmluZy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2V4dGVybiAiQyIgeworCisvLyBLaWxsIHJpbmcg
Y2FsbHMuIFdvdWxkIGJlIGJldHRlciB0byB1c2UgTlNLaWxsUmluZy5oLCBidXQgdGhhdCdzIG5v
dCBhdmFpbGFibGUgYXMgQVBJIG9yIFNQSS4KKwordm9pZCBfTlNJbml0aWFsaXplS2lsbFJpbmco
KTsKK3ZvaWQgX05TQXBwZW5kVG9LaWxsUmluZyhOU1N0cmluZyAqKTsKK3ZvaWQgX05TUHJlcGVu
ZFRvS2lsbFJpbmcoTlNTdHJpbmcgKik7CitOU1N0cmluZyAqX05TWWFua0Zyb21LaWxsUmluZygp
Owordm9pZCBfTlNOZXdLaWxsUmluZ1NlcXVlbmNlKCk7Cit2b2lkIF9OU1NldEtpbGxSaW5nVG9Z
YW5rZWRTdGF0ZSgpOworCit9CisKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVLaWxsUmluZ0lmTmVl
ZGVkKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZEtpbGxSaW5nID0gZmFsc2U7Cisg
ICAgaWYgKCFpbml0aWFsaXplZEtpbGxSaW5nKSB7CisgICAgICAgIGluaXRpYWxpemVkS2lsbFJp
bmcgPSB0cnVlOworICAgICAgICBfTlNJbml0aWFsaXplS2lsbFJpbmcoKTsKKyAgICB9Cit9CisK
K3ZvaWQgS2lsbFJpbmc6OmFwcGVuZChjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBpbml0
aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgpOworICAgIF9OU0FwcGVuZFRvS2lsbFJpbmcoc3RyaW5n
KTsKK30KKwordm9pZCBLaWxsUmluZzo6cHJlcGVuZChjb25zdCBTdHJpbmcmIHN0cmluZykKK3sK
KyAgICBpbml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgpOworICAgIF9OU1ByZXBlbmRUb0tpbGxS
aW5nKHN0cmluZyk7Cit9CisKK1N0cmluZyBLaWxsUmluZzo6eWFuaygpCit7CisgICAgaW5pdGlh
bGl6ZUtpbGxSaW5nSWZOZWVkZWQoKTsKKyAgICByZXR1cm4gX05TWWFua0Zyb21LaWxsUmluZygp
OworfQorCit2b2lkIEtpbGxSaW5nOjpzdGFydE5ld1NlcXVlbmNlKCkKK3sKKyAgICBpbml0aWFs
aXplS2lsbFJpbmdJZk5lZWRlZCgpOworICAgIF9OU05ld0tpbGxSaW5nU2VxdWVuY2UoKTsKK30K
Kwordm9pZCBLaWxsUmluZzo6c2V0VG9ZYW5rZWRTdGF0ZSgpCit7CisgICAgaW5pdGlhbGl6ZUtp
bGxSaW5nSWZOZWVkZWQoKTsKKyAgICBfTlNTZXRLaWxsUmluZ1RvWWFua2VkU3RhdGUoKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvS2lsbFJpbmdNYWMubW0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHls
ZQogICArIExGCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57115</attachid>
            <date>2010-05-26 10:50:24 -0700</date>
            <delta_ts>2010-05-27 08:41:24 -0700</delta_ts>
            <desc>rebase</desc>
            <filename>webkit_killring.patch</filename>
            <type>text/plain</type>
            <size>22835</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDI0MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMDUtMjUgIE5pY28gV2ViZXIgIDx0aGFraXNAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTA5MgorCisgICAgICAgIEFk
ZCBZYW5rIHN1cHBvcnQgdG8gY2hyb21pdW0gbWFjLiBEbyB0aGlzIGJ5IG1vdmluZyBXZWJLaXQg
TWFjJ3MKKyAgICAgICAgaW1wbGVtZW50YXRpb24gb2YgRWRpdG9yOjp5YW5rRnJvbUtpbGxSaW5n
KCkgaW50byBpdHMgb3duIGNsYXNzIGFuZAorICAgICAgICB0aGVuIHVzaW5nIHRoYXQuCisKKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgICAgVXNlIG5ldyBLaWxsUmluZyBj
bGFzcy4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjpraWxsUmluZyk6CisgICAgICAgICAgVXNlIG5ldyBLaWxsUmluZyBjbGFzcy4KKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0
ZVlhbmtBbmRTZWxlY3QpOgorICAgICAgICAgIFVzZSBuZXcgS2lsbFJpbmcgY2xhc3MuCisgICAg
ICAgICogcGxhdGZvcm0vS2lsbFJpbmcuaDoKKyAgICAgICAgICBBZGQgbmV3IEtpbGxSaW5nIGNs
YXNzLCB3aGljaCBhY3RzIGFzIG51bGwgb2JqZWN0LgorICAgICAgICAoV2ViQ29yZTo6S2lsbFJp
bmc6On5LaWxsUmluZyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0tpbGxSaW5nTWFjLmg6Cisg
ICAgICAgICAgQWRkIG5ldyBLaWxsUmluZ01hYyBjbGFzcywgd2hpY2ggd3JpdGVzIHRvIHRoZSBt
YWMncyBraWxsIHJpbmcuCisgICAgICAgICogcGxhdGZvcm0vbWFjL0tpbGxSaW5nTWFjLm1tOgor
ICAgICAgICAgIEFkZCBuZXcgS2lsbFJpbmdNYWMgY2xhc3MsIHdoaWNoIHdyaXRlcyB0byB0aGUg
bWFjJ3Mga2lsbCByaW5nLgorCiAyMDEwLTA1LTI2ICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGZvciBXaW5kb3dzICsg
Y2xlYW4gdXAgdGhlIFZpc3VhbCBTdHVkaW8gcHJvamVjdC4KSW5kZXg6IFdlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24g
NjAyNDIpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xNTcz
LDYgKzE1NzMsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvcGxhdGZvcm0vR2Vv
bG9jYXRpb25TZXJ2aWNlLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZp
Y2UuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmggXAorCVdlYkNvcmUvcGxhdGZv
cm0vS2lsbFJpbmcuaCBcCisJV2ViQ29yZS9wbGF0Zm9ybS9LaWxsUmluZ05vbmUuY3BwIFwKIAlX
ZWJDb3JlL3BsYXRmb3JtL0tVUkwuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL0tVUkwuaCBcCiAJ
V2ViQ29yZS9wbGF0Zm9ybS9LVVJMSGFzaC5oIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXBp
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA2MDI0MikKKysr
IFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0yNTE0LDYgKzI1MTQsNyBA
QAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9Gb3VuZGF0aW9uRXh0cmFzLmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL21hYy9LVVJMTWFjLm1tJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9t
YWMvS2V5RXZlbnRNYWMubW0nLAorICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9LaWxsUmluZ01h
Yy5tbScsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL0xhbmd1YWdlLm1tJywKICAgICAgICAg
ICAgICdwbGF0Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmgnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0nLApAQCAt
Mjg5OCw2ICsyODk5LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZp
Y2UuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9HZW9sb2NhdGlvblNlcnZpY2UuaCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vSG9zdFdpbmRvdy5oJywKKyAgICAgICAgICAgICdwbGF0Zm9y
bS9LaWxsUmluZy5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9LaWxsUmluZ05vbmUuY3BwJywK
ICAgICAgICAgICAgICdwbGF0Zm9ybS9LVVJMLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
S1VSTC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9LVVJMR29vZ2xlLmNwcCcsCkluZGV4OiBX
ZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJl
dmlzaW9uIDYwMjQyKQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAt
ODYwLDYgKzg2MCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBoaWNz
L3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9ucy5jcHAgXAogICAgIHBsYXRmb3JtL2dyYXBo
aWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCBcCisgICAgcGxh
dGZvcm0vS2lsbFJpbmdOb25lLmNwcCBcCiAgICAgcGxhdGZvcm0vS1VSTC5jcHAgXAogICAgIHBs
YXRmb3JtL0xlbmd0aC5jcHAgXAogICAgIHBsYXRmb3JtL0xpbmtIYXNoLmNwcCBcCkBAIC0xNjE5
LDYgKzE2MjAsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zv
cm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmggXAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9ucy5oIFwKICAgICBwbGF0Zm9ybS9ncmFwaGljcy90cmFu
c2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIFwKKyAgICBwbGF0Zm9ybS9LaWxs
UmluZy5oIFwKICAgICBwbGF0Zm9ybS9LVVJMLmggXAogICAgIHBsYXRmb3JtL0xlbmd0aC5oIFwK
ICAgICBwbGF0Zm9ybS9MaW5rSGFzaC5oIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5neXAvV2Vi
Q29yZS5neXAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cAko
cmV2aXNpb24gNjAyNDIpCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDEwLDYgKzEwMTAsNyBAQAogICAgICAgICAgICAgWydpbmNsdWRlJywg
J3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHRNYWNcXC5tbSQnXSwKICAgICAg
ICAgICAgIFsnaW5jbHVkZScsICdwbGF0Zm9ybS9ncmFwaGljcy9tYWMvSW50UmVjdE1hY1xcLm1t
JCddLAogICAgICAgICAgICAgWydpbmNsdWRlJywgJ3BsYXRmb3JtL21hYy9CbG9ja0V4Y2VwdGlv
bnNcXC5tbSQnXSwKKyAgICAgICAgICAgIFsnaW5jbHVkZScsICdwbGF0Zm9ybS9tYWMvS2lsbFJp
bmdNYWNcXC5tbSQnXSwKICAgICAgICAgICAgIFsnaW5jbHVkZScsICdwbGF0Zm9ybS9tYWMvTG9j
YWxDdXJyZW50R3JhcGhpY3NDb250ZXh0XFwubW0kJ10sCiAgICAgICAgICAgICBbJ2luY2x1ZGUn
LCAncGxhdGZvcm0vbWFjL1B1cmdlYWJsZUJ1ZmZlck1hY1xcLmNwcCQnXSwKICAgICAgICAgICAg
IFsnaW5jbHVkZScsICdwbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZVxcLm1tJCdd
LApAQCAtMTAyMiw2ICsxMDIzLDEwIEBACiAgICAgICAgICAgICBbJ2luY2x1ZGUnLCAnV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2VcXC5tJCddLAogICAgICAgICAg
IF0sCiAgICAgICAgICAgJ3NvdXJjZXMhJzogWworICAgICAgICAgICAgIyBUaGUgTWFjIHVzZXMg
cGxhdGZvcm0vbWFjL0tpbGxSaW5nTWFjLm1tIGluc3RlYWQgb2YgdGhlIGR1bW15CisgICAgICAg
ICAgICAjIGltcGxlbWVudGF0aW9uLgorICAgICAgICAgICAgJy4uL3BsYXRmb3JtL0tpbGxSaW5n
Tm9uZS5jcHAnLAorCiAgICAgICAgICAgICAjIFRoZSBNYWMgY3VycmVudGx5IHVzZXMgRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5jcHAgZnJvbQogICAgICAgICAgICAgIyBwbGF0Zm9ybS9ncmFwaGlj
cy9tYWMsIGluY2x1ZGVkIGJ5IHJlZ2V4IGFib3ZlLCBpbnN0ZWFkLgogICAgICAgICAgICAgJy4u
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwJywK
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2aXNpb24gNjAyNDIp
CisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC0yMjQwOSw2ICsyMjQwOSwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxLaWxsUmluZy5oIg0KKwkJCQk+DQorCQkJ
PC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cS2lsbFJp
bmdOb25lLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXHBsYXRmb3JtXEtVUkwuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KSW5kZXg6
IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA2MDI0
MikKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTU5LDYgKzExNTksOCBAQAogCQk1MUVDOTI1OTBDRTkwREI0MDBGOTAzMDgg
LyogU1FMRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUxRUM5MjU3MENFOTBEQjQwMEY5MDMwOCAvKiBTUUxFcnJvci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxRUM5MjY1MENFOTBERDQwMEY5
MDMwOCAvKiBKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFQzkyNUQwQ0U5MERENDAwRjkw
MzA4IC8qIEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAgKi87IH07CiAJCTUx
RkFGRTM0MENFQ0JGMkQwMEJCM0YyNCAvKiBEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkFGRTMzMENFQ0JGMkQw
MEJCM0YyNCAvKiBEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MjZDMTZEODExQUM5MTg1MDA4MDEyNEUgLyog
S2lsbFJpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUyNkMxNkQ3MTFBQzkxODUwMDgwMTI0RSAvKiBLaWxsUmluZy5oICovOyB9OworCQk1MjZDMTZE
QzExQUM5MUE2MDA4MDEyNEUgLyogS2lsbFJpbmdNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjZDMTZEQTExQUM5MUE2MDA4MDEyNEUgLyogS2ls
bFJpbmdNYWMubW0gKi87IH07CiAJCTU0QzUwRjdCMEU4MDFERjMwMDk4MzJBMCAvKiBYTUxUb2tl
bml6ZXJMaWJ4bWwyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU0QzUwRjdBMEU4MDFERjMwMDk4MzJBMCAvKiBYTUxUb2tlbml6ZXJMaWJ4bWwyLmNw
cCAqLzsgfTsKIAkJNTUwQTBCQzkwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUwQTBCQzcw
ODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3BwICovOyB9OwogCQk1NTBBMEJDQTA4
NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUwQTBCQzgwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxp
ZmllZE5hbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtNjc4NCw2ICs2Nzg2LDggQEAKIAkJNTFGNkEzRDUwNjYzQkYwNDAwNEQyOTE5IC8qIEhU
TUxDYW52YXNFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxDYW52YXNFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTUxRjZBM0Q2MDY2M0JG
MDQwMDREMjkxOSAvKiBIVE1MQ2FudmFzRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MQ2FudmFzRWxlbWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJNTFGQUZF
MzMwQ0VDQkYyRDAwQkIzRjI0IC8qIERhdGFiYXNlVHJhY2tlckNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhYmFzZVRyYWNrZXJDbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTI2QzE2RDcxMUFDOTE4NTAwODAxMjRFIC8qIEtpbGxSaW5n
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEtpbGxSaW5nLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyNkMxNkRBMTFBQzkxQTYwMDgwMTI0RSAvKiBLaWxsUmlu
Z01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEtpbGxSaW5n
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NEM1MEY3QTBFODAxREYzMDA5
ODMyQTAgLyogWE1MVG9rZW5pemVyTGlieG1sMi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBYTUxUb2tlbml6ZXJMaWJ4bWwyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTUwQTBCQzcwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRX
aWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UXVhbGlmaWVkTmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwogCQk1NTBBMEJDODA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVk
TmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBp
bmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBRdWFsaWZpZWROYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
dXNlc1RhYnMgPSAwOyB9OwpAQCAtMTE5MTIsNiArMTE5MTYsNyBAQAogCQkJCUJDRTQ5NEE5MEY0
RjVFOUUwMDg0RTMxOSAvKiBHZW9sb2NhdGlvblNlcnZpY2VNYWMuaCAqLywKIAkJCQlCQ0U0OTRB
QTBGNEY1RTlFMDA4NEUzMTkgLyogR2VvbG9jYXRpb25TZXJ2aWNlTWFjLm1tICovLAogCQkJCTkz
NUM0NzZFMDlBQzRENzMwMEE2QUFCNCAvKiBLZXlFdmVudE1hYy5tbSAqLywKKwkJCQk1MjZDMTZE
QTExQUM5MUE2MDA4MDEyNEUgLyogS2lsbFJpbmdNYWMubW0gKi8sCiAJCQkJNjU5MzkyMzkwOUFF
NDM1QzAwMkM1MzFGIC8qIEtVUkxNYWMubW0gKi8sCiAJCQkJOTM1MjA4NDQwOUJENDNCOTAwRjIw
MzhEIC8qIExhbmd1YWdlLm1tICovLAogCQkJCTA2RTgxRUQ2MEFCNUQ1RTkwMEM4NzgzNyAvKiBM
b2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaCAqLywKQEAgLTE1ODQxLDYgKzE1ODQ2LDcgQEAK
IAkJCQlGRUFCOTAxMDBFQTUxQjlDMDA2MzQ4QzMgLyogR2VvbG9jYXRpb25TZXJ2aWNlLmNwcCAq
LywKIAkJCQlGRUFCOTAxMTBFQTUxQjlDMDA2MzQ4QzMgLyogR2VvbG9jYXRpb25TZXJ2aWNlLmgg
Ki8sCiAJCQkJQkMzQkMyOUIwRTkxQUIwRjAwODM1NTg4IC8qIEhvc3RXaW5kb3cuaCAqLywKKwkJ
CQk1MjZDMTZENzExQUM5MTg1MDA4MDEyNEUgLyogS2lsbFJpbmcuaCAqLywKIAkJCQk2NTkzOTIz
NTA5QUU0MzQ2MDAyQzUzMUYgLyogS1VSTC5jcHAgKi8sCiAJCQkJNjU5MzkyMzYwOUFFNDM0NjAw
MkM1MzFGIC8qIEtVUkwuaCAqLywKIAkJCQlCQ0JEMjFBQTBFNDE3QUQ0MDBBMDcwRjIgLyogS1VS
TEhhc2guaCAqLywKQEAgLTE5MzYzLDYgKzE5MzY5LDcgQEAKIAkJCQlCNjY5M0VFQzExQUQ2M0U2
MDAzRjI3NzAgLyogSURCT2JqZWN0U3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUI2NjkzRUVF
MTFBRDYzRTYwMDNGMjc3MCAvKiBJREJPYmplY3RTdG9yZVJlcXVlc3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCUI2NjkzRUYzMTFBRDY0ODYwMDNGMjc3MCAvKiBKU0lEQk9iamVjdFN0b3JlUmVxdWVz
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTI2QzE2RDgxMUFDOTE4NTAwODAxMjRFIC8qIEtpbGxS
aW5nLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIxNjU3LDYgKzIxNjY0LDcgQEAKIAkJCQlCNjY5M0VF
RDExQUQ2M0U2MDAzRjI3NzAgLyogSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUI2NjkzRUYyMTFBRDY0ODYwMDNGMjc3MCAvKiBKU0lEQk9iamVjdFN0b3JlUmVx
dWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCNjI3RkIyRDExQUQ3NDM1MDBFOTdCNzIgLyog
SURCRGF0YWJhc2VJbXBsLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUyNkMxNkRDMTFBQzkxQTYw
MDgwMTI0RSAvKiBLaWxsUmluZ01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAJKHJldmlzaW9uIDYwMjQyKQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJJbmRlbnRPdXRkZW50Q29tbWFu
ZC5oIgogI2luY2x1ZGUgIkluc2VydExpc3RDb21tYW5kLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRF
dmVudC5oIgorI2luY2x1ZGUgIktpbGxSaW5nLmgiCiAjaW5jbHVkZSAiTW9kaWZ5U2VsZWN0aW9u
TGlzdExldmVsLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIK
QEAgLTkyOCw2ICs5MjksNyBAQCBFZGl0b3I6OkVkaXRvcihGcmFtZSogZnJhbWUpCiAgICAgLCBt
X3Nob3VsZFN0YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZShmYWxzZSkKICAgICAvLyBUaGlzIGlzIG9m
ZiBieSBkZWZhdWx0LCBzaW5jZSBtb3N0IGVkaXRvcnMgd2FudCB0aGlzIGJlaGF2aW9yICh0aGlz
IG1hdGNoZXMgSUUgYnV0IG5vdCBGRikuCiAgICAgLCBtX3Nob3VsZFN0eWxlV2l0aENTUyhmYWxz
ZSkKKyAgICAsIG1fa2lsbFJpbmcobmV3IEtpbGxSaW5nKQogeyAKIH0KIApAQCAtMjcwNyw0MSAr
MjcwOSwxNiBAQCB2b2lkIEVkaXRvcjo6dHJhbnNwb3NlKCkKIHZvaWQgRWRpdG9yOjphZGRUb0tp
bGxSaW5nKFJhbmdlKiByYW5nZSwgYm9vbCBwcmVwZW5kKQogewogICAgIGlmIChtX3Nob3VsZFN0
YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZSkKLSAgICAgICAgc3RhcnROZXdLaWxsUmluZ1NlcXVlbmNl
KCk7CisgICAgICAgIGtpbGxSaW5nKCktPnN0YXJ0TmV3U2VxdWVuY2UoKTsKIAogICAgIFN0cmlu
ZyB0ZXh0ID0gcGxhaW5UZXh0KHJhbmdlKTsKICAgICBpZiAocHJlcGVuZCkKLSAgICAgICAgcHJl
cGVuZFRvS2lsbFJpbmcodGV4dCk7CisgICAgICAgIGtpbGxSaW5nKCktPnByZXBlbmQodGV4dCk7
CiAgICAgZWxzZQotICAgICAgICBhcHBlbmRUb0tpbGxSaW5nKHRleHQpOworICAgICAgICBraWxs
UmluZygpLT5hcHBlbmQodGV4dCk7CiAgICAgbV9zaG91bGRTdGFydE5ld0tpbGxSaW5nU2VxdWVu
Y2UgPSBmYWxzZTsKIH0KIAotI2lmICFQTEFURk9STShNQUMpCi0KLXZvaWQgRWRpdG9yOjphcHBl
bmRUb0tpbGxSaW5nKGNvbnN0IFN0cmluZyYpCi17Ci19Ci0KLXZvaWQgRWRpdG9yOjpwcmVwZW5k
VG9LaWxsUmluZyhjb25zdCBTdHJpbmcmKQotewotfQotCi1TdHJpbmcgRWRpdG9yOjp5YW5rRnJv
bUtpbGxSaW5nKCkKLXsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0KLXZvaWQgRWRpdG9yOjpz
dGFydE5ld0tpbGxSaW5nU2VxdWVuY2UoKQotewotfQotCi12b2lkIEVkaXRvcjo6c2V0S2lsbFJp
bmdUb1lhbmtlZFN0YXRlKCkKLXsKLX0KLQotI2VuZGlmCi0KIGJvb2wgRWRpdG9yOjppbnNpZGVW
aXNpYmxlQXJlYShjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0CiB7CiAgICAgaWYgKG1fZnJh
bWUtPmV4Y2x1ZGVGcm9tVGV4dFNlYXJjaCgpKQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAkocmV2aXNpb24gNjAy
NDIpCisrKyBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYg
KzQzLDcgQEAgY2xhc3MgRWRpdG9yQ2xpZW50OwogY2xhc3MgRWRpdG9ySW50ZXJuYWxDb21tYW5k
OwogY2xhc3MgSFRNTEVsZW1lbnQ7CiBjbGFzcyBIaXRUZXN0UmVzdWx0OworY2xhc3MgS2lsbFJp
bmc7CiBjbGFzcyBQYXN0ZWJvYXJkOwogY2xhc3MgU2ltcGxlRm9udERhdGE7CiBjbGFzcyBUZXh0
OwpAQCAtMjc4LDExICsyNzksNyBAQCBwdWJsaWM6CiAKICAgICBWaXNpYmxlU2VsZWN0aW9uIHNl
bGVjdGlvbkZvckNvbW1hbmQoRXZlbnQqKTsKIAotICAgIHZvaWQgYXBwZW5kVG9LaWxsUmluZyhj
b25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIHByZXBlbmRUb0tpbGxSaW5nKGNvbnN0IFN0cmluZyYp
OwotICAgIFN0cmluZyB5YW5rRnJvbUtpbGxSaW5nKCk7Ci0gICAgdm9pZCBzdGFydE5ld0tpbGxS
aW5nU2VxdWVuY2UoKTsKLSAgICB2b2lkIHNldEtpbGxSaW5nVG9ZYW5rZWRTdGF0ZSgpOworICAg
IEtpbGxSaW5nKiBraWxsUmluZygpIGNvbnN0IHsgcmV0dXJuIG1fa2lsbFJpbmcuZ2V0KCk7IH0K
IAogICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHNlbGVjdGVkUmFuZ2UoKTsKICAgICAKQEAgLTMwNSw2
ICszMDIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pZ25vcmVDb21wb3NpdGlvblNlbGVjdGlv
bkNoYW5nZTsKICAgICBib29sIG1fc2hvdWxkU3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlOwogICAg
IGJvb2wgbV9zaG91bGRTdHlsZVdpdGhDU1M7CisgICAgT3duUHRyPEtpbGxSaW5nPiBtX2tpbGxS
aW5nOwogCiAgICAgYm9vbCBjYW5EZWxldGVSYW5nZShSYW5nZSopIGNvbnN0OwogICAgIGJvb2wg
Y2FuU21hcnRSZXBsYWNlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCopOwpJbmRleDogV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGlu
Zy9FZGl0b3JDb21tYW5kLmNwcAkocmV2aXNpb24gNjAyNDIpCisrKyBXZWJDb3JlL2VkaXRpbmcv
RWRpdG9yQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNs
dWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5kZW50T3V0ZGVudENvbW1hbmQu
aCIKICNpbmNsdWRlICJJbnNlcnRMaXN0Q29tbWFuZC5oIgorI2luY2x1ZGUgIktpbGxSaW5nLmgi
CiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kLmgiCkBAIC0xMDQ1LDE1ICsxMDQ2LDE1IEBAIHN0YXRpYyBi
b29sIGV4ZWN1dGVVbnNlbGVjdChGcmFtZSogZnJhbWUKIAogc3RhdGljIGJvb2wgZXhlY3V0ZVlh
bmsoRnJhbWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmlu
ZyYpCiB7Ci0gICAgZnJhbWUtPmVkaXRvcigpLT5pbnNlcnRUZXh0V2l0aG91dFNlbmRpbmdUZXh0
RXZlbnQoZnJhbWUtPmVkaXRvcigpLT55YW5rRnJvbUtpbGxSaW5nKCksIGZhbHNlLCAwKTsKLSAg
ICBmcmFtZS0+ZWRpdG9yKCktPnNldEtpbGxSaW5nVG9ZYW5rZWRTdGF0ZSgpOworICAgIGZyYW1l
LT5lZGl0b3IoKS0+aW5zZXJ0VGV4dFdpdGhvdXRTZW5kaW5nVGV4dEV2ZW50KGZyYW1lLT5lZGl0
b3IoKS0+a2lsbFJpbmcoKS0+eWFuaygpLCBmYWxzZSwgMCk7CisgICAgZnJhbWUtPmVkaXRvcigp
LT5raWxsUmluZygpLT5zZXRUb1lhbmtlZFN0YXRlKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
IHN0YXRpYyBib29sIGV4ZWN1dGVZYW5rQW5kU2VsZWN0KEZyYW1lKiBmcmFtZSwgRXZlbnQqLCBF
ZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAgIGZyYW1lLT5lZGl0b3Io
KS0+aW5zZXJ0VGV4dFdpdGhvdXRTZW5kaW5nVGV4dEV2ZW50KGZyYW1lLT5lZGl0b3IoKS0+eWFu
a0Zyb21LaWxsUmluZygpLCB0cnVlLCAwKTsKLSAgICBmcmFtZS0+ZWRpdG9yKCktPnNldEtpbGxS
aW5nVG9ZYW5rZWRTdGF0ZSgpOworICAgIGZyYW1lLT5lZGl0b3IoKS0+aW5zZXJ0VGV4dFdpdGhv
dXRTZW5kaW5nVGV4dEV2ZW50KGZyYW1lLT5lZGl0b3IoKS0+a2lsbFJpbmcoKS0+eWFuaygpLCB0
cnVlLCAwKTsKKyAgICBmcmFtZS0+ZWRpdG9yKCktPmtpbGxSaW5nKCktPnNldFRvWWFua2VkU3Rh
dGUoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApJbmRleDogV2ViQ29yZS9lZGl0aW5nL21hYy9F
ZGl0b3JNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMu
bW0JKHJldmlzaW9uIDYwMjQyKQorKysgV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0J
KHdvcmtpbmcgY29weSkKQEAgLTMzLDYzICszMywxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLWV4dGVybiAiQyIgewotCi0vLyBLaWxsIHJpbmcgY2FsbHMuIFdvdWxkIGJlIGJldHRlciB0
byB1c2UgTlNLaWxsUmluZy5oLCBidXQgdGhhdCdzIG5vdCBhdmFpbGFibGUgYXMgQVBJIG9yIFNQ
SS4KLQotdm9pZCBfTlNJbml0aWFsaXplS2lsbFJpbmcoKTsKLXZvaWQgX05TQXBwZW5kVG9LaWxs
UmluZyhOU1N0cmluZyAqKTsKLXZvaWQgX05TUHJlcGVuZFRvS2lsbFJpbmcoTlNTdHJpbmcgKik7
Ci1OU1N0cmluZyAqX05TWWFua0Zyb21LaWxsUmluZygpOwotdm9pZCBfTlNOZXdLaWxsUmluZ1Nl
cXVlbmNlKCk7Ci12b2lkIF9OU1NldEtpbGxSaW5nVG9ZYW5rZWRTdGF0ZSgpOwotCi19Ci0KIFBh
c3NSZWZQdHI8Q2xpcGJvYXJkPiBFZGl0b3I6Om5ld0dlbmVyYWxDbGlwYm9hcmQoQ2xpcGJvYXJk
QWNjZXNzUG9saWN5IHBvbGljeSkKIHsKICAgICByZXR1cm4gQ2xpcGJvYXJkTWFjOjpjcmVhdGUo
ZmFsc2UsIFtOU1Bhc3RlYm9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRdLCBwb2xpY3ksIDApOwogfQog
Ci1zdGF0aWMgdm9pZCBpbml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgpCi17Ci0gICAgc3RhdGlj
IGJvb2wgaW5pdGlhbGl6ZWRLaWxsUmluZyA9IGZhbHNlOwotICAgIGlmICghaW5pdGlhbGl6ZWRL
aWxsUmluZykgewotICAgICAgICBpbml0aWFsaXplZEtpbGxSaW5nID0gdHJ1ZTsKLSAgICAgICAg
X05TSW5pdGlhbGl6ZUtpbGxSaW5nKCk7Ci0gICAgfQotfQotCi12b2lkIEVkaXRvcjo6YXBwZW5k
VG9LaWxsUmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKLXsKLSAgICBpbml0aWFsaXplS2lsbFJp
bmdJZk5lZWRlZCgpOwotICAgIF9OU0FwcGVuZFRvS2lsbFJpbmcoc3RyaW5nKTsKLX0KLQotdm9p
ZCBFZGl0b3I6OnByZXBlbmRUb0tpbGxSaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQotewotICAg
IGluaXRpYWxpemVLaWxsUmluZ0lmTmVlZGVkKCk7Ci0gICAgX05TUHJlcGVuZFRvS2lsbFJpbmco
c3RyaW5nKTsKLX0KLQotU3RyaW5nIEVkaXRvcjo6eWFua0Zyb21LaWxsUmluZygpCi17Ci0gICAg
aW5pdGlhbGl6ZUtpbGxSaW5nSWZOZWVkZWQoKTsKLSAgICByZXR1cm4gX05TWWFua0Zyb21LaWxs
UmluZygpOwotfQotCi12b2lkIEVkaXRvcjo6c3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlKCkKLXsK
LSAgICBpbml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgpOwotICAgIF9OU05ld0tpbGxSaW5nU2Vx
dWVuY2UoKTsKLX0KLQotdm9pZCBFZGl0b3I6OnNldEtpbGxSaW5nVG9ZYW5rZWRTdGF0ZSgpCi17
Ci0gICAgaW5pdGlhbGl6ZUtpbGxSaW5nSWZOZWVkZWQoKTsKLSAgICBfTlNTZXRLaWxsUmluZ1Rv
WWFua2VkU3RhdGUoKTsKLX0KLQogdm9pZCBFZGl0b3I6OnNob3dGb250UGFuZWwoKQogewogICAg
IFtbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl0gb3JkZXJGcm9udEZvbnRQYW5lbDpu
aWxdOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9LaWxsUmluZy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vS2lsbFJpbmcuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vS2lsbFJpbmcuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aWZuZGVmIEtpbGxSaW5nX2gKKyNkZWZpbmUgS2lsbFJpbmdfaAorCisjaW5jbHVkZSAiUGxhdGZv
cm1TdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBLaWxsUmluZyB7Citw
dWJsaWM6CisgICAgdm9pZCBhcHBlbmQoY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBwcmVwZW5k
KGNvbnN0IFN0cmluZyYpOworICAgIFN0cmluZyB5YW5rKCk7CisgICAgdm9pZCBzdGFydE5ld1Nl
cXVlbmNlKCk7CisgICAgdm9pZCBzZXRUb1lhbmtlZFN0YXRlKCk7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBLaWxsUmluZ19oCgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBXZWJDb3JlL3BsYXRmb3JtL0tpbGxSaW5nLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1z
dHlsZQogICArIExGCgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9LaWxsUmluZ05vbmUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vS2lsbFJpbmdOb25lLmNwcAkocmV2aXNpb24g
MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vS2lsbFJpbmdOb25lLmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIktpbGxSaW5nLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordm9pZCBLaWxsUmluZzo6YXBwZW5kKGNvbnN0IFN0cmluZyYgc3Ry
aW5nKQoreworfQorCit2b2lkIEtpbGxSaW5nOjpwcmVwZW5kKGNvbnN0IFN0cmluZyYgc3RyaW5n
KQoreworfQorCitTdHJpbmcgS2lsbFJpbmc6OnlhbmsoKQoreworICAgIHJldHVybiBTdHJpbmco
KTsKK30KKwordm9pZCBLaWxsUmluZzo6c3RhcnROZXdTZXF1ZW5jZSgpCit7Cit9CisKK3ZvaWQg
S2lsbFJpbmc6OnNldFRvWWFua2VkU3RhdGUoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJDb3JlL3BsYXRmb3JtL0tpbGxSaW5nTm9uZS5j
cHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvS2lsbFJpbmdNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvS2lsbFJpbmdNYWMubW0JKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L21hYy9LaWxsUmluZ01hYy5tbQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0ICJLaWxsUmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2V4dGVy
biAiQyIgeworCisvLyBLaWxsIHJpbmcgY2FsbHMuIFdvdWxkIGJlIGJldHRlciB0byB1c2UgTlNL
aWxsUmluZy5oLCBidXQgdGhhdCdzIG5vdCBhdmFpbGFibGUgYXMgQVBJIG9yIFNQSS4KKwordm9p
ZCBfTlNJbml0aWFsaXplS2lsbFJpbmcoKTsKK3ZvaWQgX05TQXBwZW5kVG9LaWxsUmluZyhOU1N0
cmluZyAqKTsKK3ZvaWQgX05TUHJlcGVuZFRvS2lsbFJpbmcoTlNTdHJpbmcgKik7CitOU1N0cmlu
ZyAqX05TWWFua0Zyb21LaWxsUmluZygpOwordm9pZCBfTlNOZXdLaWxsUmluZ1NlcXVlbmNlKCk7
Cit2b2lkIF9OU1NldEtpbGxSaW5nVG9ZYW5rZWRTdGF0ZSgpOworCit9CisKK3N0YXRpYyB2b2lk
IGluaXRpYWxpemVLaWxsUmluZ0lmTmVlZGVkKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFs
aXplZEtpbGxSaW5nID0gZmFsc2U7CisgICAgaWYgKCFpbml0aWFsaXplZEtpbGxSaW5nKSB7Cisg
ICAgICAgIGluaXRpYWxpemVkS2lsbFJpbmcgPSB0cnVlOworICAgICAgICBfTlNJbml0aWFsaXpl
S2lsbFJpbmcoKTsKKyAgICB9Cit9CisKK3ZvaWQgS2lsbFJpbmc6OmFwcGVuZChjb25zdCBTdHJp
bmcmIHN0cmluZykKK3sKKyAgICBpbml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgpOworICAgIF9O
U0FwcGVuZFRvS2lsbFJpbmcoc3RyaW5nKTsKK30KKwordm9pZCBLaWxsUmluZzo6cHJlcGVuZChj
b25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBpbml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgp
OworICAgIF9OU1ByZXBlbmRUb0tpbGxSaW5nKHN0cmluZyk7Cit9CisKK1N0cmluZyBLaWxsUmlu
Zzo6eWFuaygpCit7CisgICAgaW5pdGlhbGl6ZUtpbGxSaW5nSWZOZWVkZWQoKTsKKyAgICByZXR1
cm4gX05TWWFua0Zyb21LaWxsUmluZygpOworfQorCit2b2lkIEtpbGxSaW5nOjpzdGFydE5ld1Nl
cXVlbmNlKCkKK3sKKyAgICBpbml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgpOworICAgIF9OU05l
d0tpbGxSaW5nU2VxdWVuY2UoKTsKK30KKwordm9pZCBLaWxsUmluZzo6c2V0VG9ZYW5rZWRTdGF0
ZSgpCit7CisgICAgaW5pdGlhbGl6ZUtpbGxSaW5nSWZOZWVkZWQoKTsKKyAgICBfTlNTZXRLaWxs
UmluZ1RvWWFua2VkU3RhdGUoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2lsbFJpbmdNYWMubW0KX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgo=
</data>
<flag name="review"
          id="41645"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="41646"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57249</attachid>
            <date>2010-05-27 08:41:24 -0700</date>
            <delta_ts>2010-05-27 08:51:50 -0700</delta_ts>
            <desc>rebase once more</desc>
            <filename>webkit_killring.patch</filename>
            <type>text/plain</type>
            <size>22793</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDMwMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMDUtMjUgIE5pY28gV2ViZXIgIDx0aGFraXNAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTA5MgorCisgICAgICAgIEFk
ZCBZYW5rIHN1cHBvcnQgdG8gY2hyb21pdW0gbWFjLiBEbyB0aGlzIGJ5IG1vdmluZyBXZWJLaXQg
TWFjJ3MKKyAgICAgICAgaW1wbGVtZW50YXRpb24gb2YgRWRpdG9yOjp5YW5rRnJvbUtpbGxSaW5n
KCkgaW50byBpdHMgb3duIGNsYXNzIGFuZAorICAgICAgICB0aGVuIHVzaW5nIHRoYXQuCisKKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgICAgVXNlIG5ldyBLaWxsUmluZyBj
bGFzcy4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjpraWxsUmluZyk6CisgICAgICAgICAgVXNlIG5ldyBLaWxsUmluZyBjbGFzcy4KKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0
ZVlhbmtBbmRTZWxlY3QpOgorICAgICAgICAgIFVzZSBuZXcgS2lsbFJpbmcgY2xhc3MuCisgICAg
ICAgICogcGxhdGZvcm0vS2lsbFJpbmcuaDoKKyAgICAgICAgICBBZGQgbmV3IEtpbGxSaW5nIGNs
YXNzLCB3aGljaCBhY3RzIGFzIG51bGwgb2JqZWN0LgorICAgICAgICAoV2ViQ29yZTo6S2lsbFJp
bmc6On5LaWxsUmluZyk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL0tpbGxSaW5nTWFjLmg6Cisg
ICAgICAgICAgQWRkIG5ldyBLaWxsUmluZ01hYyBjbGFzcywgd2hpY2ggd3JpdGVzIHRvIHRoZSBt
YWMncyBraWxsIHJpbmcuCisgICAgICAgICogcGxhdGZvcm0vbWFjL0tpbGxSaW5nTWFjLm1tOgor
ICAgICAgICAgIEFkZCBuZXcgS2lsbFJpbmdNYWMgY2xhc3MsIHdoaWNoIHdyaXRlcyB0byB0aGUg
bWFjJ3Mga2lsbCByaW5nLgorCiAyMDEwLTA1LTI3ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCkluZGV4
OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZp
bGUuYW0JKHJldmlzaW9uIDYwMzAyKQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2lu
ZyBjb3B5KQpAQCAtMTU3OCw2ICsxNTc4LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJD
b3JlL3BsYXRmb3JtL0dlb2xvY2F0aW9uU2VydmljZS5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0v
R2VvbG9jYXRpb25TZXJ2aWNlLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oIFwK
KwlXZWJDb3JlL3BsYXRmb3JtL0tpbGxSaW5nLmggXAorCVdlYkNvcmUvcGxhdGZvcm0vS2lsbFJp
bmdOb25lLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9LVVJMLmNwcCBcCiAJV2ViQ29yZS9wbGF0
Zm9ybS9LVVJMLmggXAogCVdlYkNvcmUvcGxhdGZvcm0vS1VSTEhhc2guaCBcCkluZGV4OiBXZWJD
b3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkocmV2
aXNpb24gNjAzMDIpCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAt
MjUxNiw2ICsyNTE2LDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvRm91bmRhdGlvbkV4
dHJhcy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvS1VSTE1hYy5tbScsCiAgICAgICAg
ICAgICAncGxhdGZvcm0vbWFjL0tleUV2ZW50TWFjLm1tJywKKyAgICAgICAgICAgICdwbGF0Zm9y
bS9tYWMvS2lsbFJpbmdNYWMubW0nLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9MYW5ndWFn
ZS5tbScsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29u
dGV4dC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3ND
b250ZXh0Lm1tJywKQEAgLTI5MDAsNiArMjkwMSw4IEBACiAgICAgICAgICAgICAncGxhdGZvcm0v
R2VvbG9jYXRpb25TZXJ2aWNlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vR2VvbG9jYXRp
b25TZXJ2aWNlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL0hvc3RXaW5kb3cuaCcsCisgICAg
ICAgICAgICAncGxhdGZvcm0vS2lsbFJpbmcuaCcsCisgICAgICAgICAgICAncGxhdGZvcm0vS2ls
bFJpbmdOb25lLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vS1VSTC5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL0tVUkwuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vS1VSTEdvb2ds
ZS5jcHAnLApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L1dlYkNvcmUucHJvCShyZXZpc2lvbiA2MDMwMikKKysrIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdv
cmtpbmcgY29weSkKQEAgLTg2MSw2ICs4NjEsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1NrZXdUcmFuc2Zvcm1PcGVyYXRpb24uY3BwIFwKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbnMuY3BwIFwKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlv
bi5jcHAgXAorICAgIHBsYXRmb3JtL0tpbGxSaW5nTm9uZS5jcHAgXAogICAgIHBsYXRmb3JtL0tV
UkwuY3BwIFwKICAgICBwbGF0Zm9ybS9MZW5ndGguY3BwIFwKICAgICBwbGF0Zm9ybS9MaW5rSGFz
aC5jcHAgXApAQCAtMTYyMCw2ICsxNjIxLDcgQEAgSEVBREVSUyArPSBcCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIFwKICAgICBwbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybU9wZXJhdGlvbnMuaCBcCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2xhdGVUcmFuc2Zvcm1PcGVyYXRpb24uaCBcCisg
ICAgcGxhdGZvcm0vS2lsbFJpbmcuaCBcCiAgICAgcGxhdGZvcm0vS1VSTC5oIFwKICAgICBwbGF0
Zm9ybS9MZW5ndGguaCBcCiAgICAgcGxhdGZvcm0vTGlua0hhc2guaCBcCkluZGV4OiBXZWJDb3Jl
L1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5n
eXAvV2ViQ29yZS5neXAJKHJldmlzaW9uIDYwMzAyKQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cC9X
ZWJDb3JlLmd5cAkod29ya2luZyBjb3B5KQpAQCAtMTAxMCw2ICsxMDEwLDcgQEAKICAgICAgICAg
ICAgIFsnaW5jbHVkZScsICdwbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDb250ZXh0TWFj
XFwubW0kJ10sCiAgICAgICAgICAgICBbJ2luY2x1ZGUnLCAncGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ludFJlY3RNYWNcXC5tbSQnXSwKICAgICAgICAgICAgIFsnaW5jbHVkZScsICdwbGF0Zm9ybS9t
YWMvQmxvY2tFeGNlcHRpb25zXFwubW0kJ10sCisgICAgICAgICAgICBbJ2luY2x1ZGUnLCAncGxh
dGZvcm0vbWFjL0tpbGxSaW5nTWFjXFwubW0kJ10sCiAgICAgICAgICAgICBbJ2luY2x1ZGUnLCAn
cGxhdGZvcm0vbWFjL0xvY2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dFxcLm1tJCddLAogICAgICAg
ICAgICAgWydpbmNsdWRlJywgJ3BsYXRmb3JtL21hYy9QdXJnZWFibGVCdWZmZXJNYWNcXC5jcHAk
J10sCiAgICAgICAgICAgICBbJ2luY2x1ZGUnLCAncGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1J
bnRlcmZhY2VcXC5tbSQnXSwKQEAgLTEwMjIsNiArMTAyMywxMCBAQAogICAgICAgICAgICAgWydp
bmNsdWRlJywgJ1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlXFwu
bSQnXSwKICAgICAgICAgICBdLAogICAgICAgICAgICdzb3VyY2VzISc6IFsKKyAgICAgICAgICAg
ICMgVGhlIE1hYyB1c2VzIHBsYXRmb3JtL21hYy9LaWxsUmluZ01hYy5tbSBpbnN0ZWFkIG9mIHRo
ZSBkdW1teQorICAgICAgICAgICAgIyBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgICAgICcuLi9w
bGF0Zm9ybS9LaWxsUmluZ05vbmUuY3BwJywKKwogICAgICAgICAgICAgIyBUaGUgTWFjIGN1cnJl
bnRseSB1c2VzIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwIGZyb20KICAgICAgICAgICAgICMg
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjLCBpbmNsdWRlZCBieSByZWdleCBhYm92ZSwgaW5zdGVhZC4K
ICAgICAgICAgICAgICcuLi9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmNwcCcsCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJ
KHJldmlzaW9uIDYwMzAyKQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agkod29ya2luZyBjb3B5KQpAQCAtMjI0MDksNiArMjI0MDksMTQgQEAKIAkJCQk+DQogCQkJPC9G
aWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cS2lsbFJpbmcu
aCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHBsYXRmb3JtXEtpbGxSaW5nTm9uZS5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZp
bGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxLVVJMLmNwcCINCiAJCQkJPg0KIAkJ
CTwvRmlsZT4NCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkocmV2aXNpb24gNjAzMDIpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTE1OSw2ICsxMTU5LDggQEAKIAkJNTFFQzkyNTkw
Q0U5MERCNDAwRjkwMzA4IC8qIFNRTEVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MUVDOTI1NzBDRTkwREI0MDBGOTAzMDggLyogU1FMRXJyb3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUVD
OTI2NTBDRTkwREQ0MDBGOTAzMDggLyogSlNDdXN0b21TUUxTdGF0ZW1lbnRFcnJvckNhbGxiYWNr
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRUM5
MjVEMENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2su
Y3BwICovOyB9OwogCQk1MUZBRkUzNDBDRUNCRjJEMDBCQjNGMjQgLyogRGF0YWJhc2VUcmFja2Vy
Q2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MUZBRkUzMzBDRUNCRjJEMDBCQjNGMjQgLyogRGF0YWJhc2VUcmFja2VyQ2xpZW50LmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTIxRDQ2RjYxMUFF
Qzk4MTAwNTE0NjEzIC8qIEtpbGxSaW5nTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTIxRDQ2RjUxMUFFQzk4MTAwNTE0NjEzIC8qIEtpbGxSaW5n
TWFjLm1tICovOyB9OworCQk1MjFENDZGODExQUVDOUIxMDA1MTQ2MTMgLyogS2lsbFJpbmcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyMUQ0NkY3MTFB
RUM5QjEwMDUxNDYxMyAvKiBLaWxsUmluZy5oICovOyB9OwogCQk1NEM1MEY3QjBFODAxREYzMDA5
ODMyQTAgLyogWE1MVG9rZW5pemVyTGlieG1sMi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NEM1MEY3QTBFODAxREYzMDA5ODMyQTAgLyogWE1MVG9r
ZW5pemVyTGlieG1sMi5jcHAgKi87IH07CiAJCTU1MEEwQkM5MDg1RjYwMzkwMDczNTNENiAvKiBR
dWFsaWZpZWROYW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU1MEEwQkM3MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCAqLzsg
fTsKIAkJNTUwQTBCQ0EwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM4MDg1RjYwMzkw
MDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTY3ODYsNiArNjc4OCw4IEBACiAJCTUxRjZBM0Q1MDY2M0JG
MDQwMDREMjkxOSAvKiBIVE1MQ2FudmFzRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MQ2FudmFzRWxlbWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9Owog
CQk1MUY2QTNENjA2NjNCRjA0MDA0RDI5MTkgLyogSFRNTENhbnZhc0VsZW1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTENhbnZhc0Vs
ZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9
IDA7IH07CiAJCTUxRkFGRTMzMENFQ0JGMkQwMEJCM0YyNCAvKiBEYXRhYmFzZVRyYWNrZXJDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YWJhc2VUcmFja2VyQ2xp
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyMUQ0NkY1MTFBRUM5ODEwMDUx
NDYxMyAvKiBLaWxsUmluZ01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEtpbGxSaW5nTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MjFE
NDZGNzExQUVDOUIxMDA1MTQ2MTMgLyogS2lsbFJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gS2lsbFJpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTRD
NTBGN0EwRTgwMURGMzAwOTgzMkEwIC8qIFhNTFRva2VuaXplckxpYnhtbDIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWE1MVG9rZW5pemVyTGlieG1sMi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1MEEwQkM3MDg1RjYwMzkwMDczNTNENiAvKiBR
dWFsaWZpZWROYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFF1YWxpZmllZE5hbWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJNTUwQTBCQzgwODVGNjAzOTAwNzM1
M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUXVhbGlmaWVkTmFtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTExOTE2LDYgKzExOTIwLDcgQEAK
IAkJCQlCQ0U0OTRBOTBGNEY1RTlFMDA4NEUzMTkgLyogR2VvbG9jYXRpb25TZXJ2aWNlTWFjLmgg
Ki8sCiAJCQkJQkNFNDk0QUEwRjRGNUU5RTAwODRFMzE5IC8qIEdlb2xvY2F0aW9uU2VydmljZU1h
Yy5tbSAqLywKIAkJCQk5MzVDNDc2RTA5QUM0RDczMDBBNkFBQjQgLyogS2V5RXZlbnRNYWMubW0g
Ki8sCisJCQkJNTIxRDQ2RjUxMUFFQzk4MTAwNTE0NjEzIC8qIEtpbGxSaW5nTWFjLm1tICovLAog
CQkJCTY1OTM5MjM5MDlBRTQzNUMwMDJDNTMxRiAvKiBLVVJMTWFjLm1tICovLAogCQkJCTkzNTIw
ODQ0MDlCRDQzQjkwMEYyMDM4RCAvKiBMYW5ndWFnZS5tbSAqLywKIAkJCQkwNkU4MUVENjBBQjVE
NUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmggKi8sCkBAIC0xNTg0
Nyw2ICsxNTg1Miw3IEBACiAJCQkJRkVBQjkwMTAwRUE1MUI5QzAwNjM0OEMzIC8qIEdlb2xvY2F0
aW9uU2VydmljZS5jcHAgKi8sCiAJCQkJRkVBQjkwMTEwRUE1MUI5QzAwNjM0OEMzIC8qIEdlb2xv
Y2F0aW9uU2VydmljZS5oICovLAogCQkJCUJDM0JDMjlCMEU5MUFCMEYwMDgzNTU4OCAvKiBIb3N0
V2luZG93LmggKi8sCisJCQkJNTIxRDQ2RjcxMUFFQzlCMTAwNTE0NjEzIC8qIEtpbGxSaW5nLmgg
Ki8sCiAJCQkJNjU5MzkyMzUwOUFFNDM0NjAwMkM1MzFGIC8qIEtVUkwuY3BwICovLAogCQkJCTY1
OTM5MjM2MDlBRTQzNDYwMDJDNTMxRiAvKiBLVVJMLmggKi8sCiAJCQkJQkNCRDIxQUEwRTQxN0FE
NDAwQTA3MEYyIC8qIEtVUkxIYXNoLmggKi8sCkBAIC0xOTM3MCw2ICsxOTM3Niw3IEBACiAJCQkJ
QjY2OTNFRUUxMUFENjNFNjAwM0YyNzcwIC8qIElEQk9iamVjdFN0b3JlUmVxdWVzdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjY2OTNFRjMxMUFENjQ4NjAwM0YyNzcwIC8qIEpTSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODNCM0FGMTExQURFRkY1MDA0NTg4MDkg
LyogSFRNTDVTY3JpcHRSdW5uZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTUyMUQ0NkY4MTFBRUM5
QjEwMDUxNDYxMyAvKiBLaWxsUmluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25s
eUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0yMTY2NSw2ICsyMTY3
Miw3IEBACiAJCQkJQjY2OTNFRjIxMUFENjQ4NjAwM0YyNzcwIC8qIEpTSURCT2JqZWN0U3RvcmVS
ZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI2MjdGQjJEMTFBRDc0MzUwMEU5N0I3MiAv
KiBJREJEYXRhYmFzZUltcGwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgzQjNBRjAxMUFERUZG
NTAwNDU4ODA5IC8qIEhUTUw1U2NyaXB0UnVubmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUy
MUQ0NkY2MTFBRUM5ODEwMDUxNDYxMyAvKiBLaWxsUmluZ01hYy5tbSBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJ
bmRleDogV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAJKHJldmlzaW9uIDYwMzAyKQorKysgV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlICJJbmRl
bnRPdXRkZW50Q29tbWFuZC5oIgogI2luY2x1ZGUgIkluc2VydExpc3RDb21tYW5kLmgiCiAjaW5j
bHVkZSAiS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIktpbGxSaW5nLmgiCiAjaW5jbHVkZSAi
TW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlBhc3RlYm9hcmQuaCIKQEAgLTkyOCw2ICs5MjksNyBAQCBFZGl0b3I6OkVkaXRvcihGcmFtZSog
ZnJhbWUpCiAgICAgLCBtX3Nob3VsZFN0YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZShmYWxzZSkKICAg
ICAvLyBUaGlzIGlzIG9mZiBieSBkZWZhdWx0LCBzaW5jZSBtb3N0IGVkaXRvcnMgd2FudCB0aGlz
IGJlaGF2aW9yICh0aGlzIG1hdGNoZXMgSUUgYnV0IG5vdCBGRikuCiAgICAgLCBtX3Nob3VsZFN0
eWxlV2l0aENTUyhmYWxzZSkKKyAgICAsIG1fa2lsbFJpbmcobmV3IEtpbGxSaW5nKQogeyAKIH0K
IApAQCAtMjcwNyw0MSArMjcwOSwxNiBAQCB2b2lkIEVkaXRvcjo6dHJhbnNwb3NlKCkKIHZvaWQg
RWRpdG9yOjphZGRUb0tpbGxSaW5nKFJhbmdlKiByYW5nZSwgYm9vbCBwcmVwZW5kKQogewogICAg
IGlmIChtX3Nob3VsZFN0YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZSkKLSAgICAgICAgc3RhcnROZXdL
aWxsUmluZ1NlcXVlbmNlKCk7CisgICAgICAgIGtpbGxSaW5nKCktPnN0YXJ0TmV3U2VxdWVuY2Uo
KTsKIAogICAgIFN0cmluZyB0ZXh0ID0gcGxhaW5UZXh0KHJhbmdlKTsKICAgICBpZiAocHJlcGVu
ZCkKLSAgICAgICAgcHJlcGVuZFRvS2lsbFJpbmcodGV4dCk7CisgICAgICAgIGtpbGxSaW5nKCkt
PnByZXBlbmQodGV4dCk7CiAgICAgZWxzZQotICAgICAgICBhcHBlbmRUb0tpbGxSaW5nKHRleHQp
OworICAgICAgICBraWxsUmluZygpLT5hcHBlbmQodGV4dCk7CiAgICAgbV9zaG91bGRTdGFydE5l
d0tpbGxSaW5nU2VxdWVuY2UgPSBmYWxzZTsKIH0KIAotI2lmICFQTEFURk9STShNQUMpCi0KLXZv
aWQgRWRpdG9yOjphcHBlbmRUb0tpbGxSaW5nKGNvbnN0IFN0cmluZyYpCi17Ci19Ci0KLXZvaWQg
RWRpdG9yOjpwcmVwZW5kVG9LaWxsUmluZyhjb25zdCBTdHJpbmcmKQotewotfQotCi1TdHJpbmcg
RWRpdG9yOjp5YW5rRnJvbUtpbGxSaW5nKCkKLXsKLSAgICByZXR1cm4gU3RyaW5nKCk7Ci19Ci0K
LXZvaWQgRWRpdG9yOjpzdGFydE5ld0tpbGxSaW5nU2VxdWVuY2UoKQotewotfQotCi12b2lkIEVk
aXRvcjo6c2V0S2lsbFJpbmdUb1lhbmtlZFN0YXRlKCkKLXsKLX0KLQotI2VuZGlmCi0KIGJvb2wg
RWRpdG9yOjppbnNpZGVWaXNpYmxlQXJlYShjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0CiB7
CiAgICAgaWYgKG1fZnJhbWUtPmV4Y2x1ZGVGcm9tVGV4dFNlYXJjaCgpKQpJbmRleDogV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
aAkocmV2aXNpb24gNjAzMDIpCisrKyBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQzLDYgKzQzLDcgQEAgY2xhc3MgRWRpdG9yQ2xpZW50OwogY2xhc3MgRWRpdG9y
SW50ZXJuYWxDb21tYW5kOwogY2xhc3MgSFRNTEVsZW1lbnQ7CiBjbGFzcyBIaXRUZXN0UmVzdWx0
OworY2xhc3MgS2lsbFJpbmc7CiBjbGFzcyBQYXN0ZWJvYXJkOwogY2xhc3MgU2ltcGxlRm9udERh
dGE7CiBjbGFzcyBUZXh0OwpAQCAtMjc4LDExICsyNzksNyBAQCBwdWJsaWM6CiAKICAgICBWaXNp
YmxlU2VsZWN0aW9uIHNlbGVjdGlvbkZvckNvbW1hbmQoRXZlbnQqKTsKIAotICAgIHZvaWQgYXBw
ZW5kVG9LaWxsUmluZyhjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIHByZXBlbmRUb0tpbGxSaW5n
KGNvbnN0IFN0cmluZyYpOwotICAgIFN0cmluZyB5YW5rRnJvbUtpbGxSaW5nKCk7Ci0gICAgdm9p
ZCBzdGFydE5ld0tpbGxSaW5nU2VxdWVuY2UoKTsKLSAgICB2b2lkIHNldEtpbGxSaW5nVG9ZYW5r
ZWRTdGF0ZSgpOworICAgIEtpbGxSaW5nKiBraWxsUmluZygpIGNvbnN0IHsgcmV0dXJuIG1fa2ls
bFJpbmcuZ2V0KCk7IH0KIAogICAgIFBhc3NSZWZQdHI8UmFuZ2U+IHNlbGVjdGVkUmFuZ2UoKTsK
ICAgICAKQEAgLTMwNSw2ICszMDIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pZ25vcmVDb21w
b3NpdGlvblNlbGVjdGlvbkNoYW5nZTsKICAgICBib29sIG1fc2hvdWxkU3RhcnROZXdLaWxsUmlu
Z1NlcXVlbmNlOwogICAgIGJvb2wgbV9zaG91bGRTdHlsZVdpdGhDU1M7CisgICAgT3duUHRyPEtp
bGxSaW5nPiBtX2tpbGxSaW5nOwogCiAgICAgYm9vbCBjYW5EZWxldGVSYW5nZShSYW5nZSopIGNv
bnN0OwogICAgIGJvb2wgY2FuU21hcnRSZXBsYWNlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCop
OwpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAkocmV2aXNpb24gNjAzMDIpCisrKyBX
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYg
KzQ3LDcgQEAKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5kZW50
T3V0ZGVudENvbW1hbmQuaCIKICNpbmNsdWRlICJJbnNlcnRMaXN0Q29tbWFuZC5oIgorI2luY2x1
ZGUgIktpbGxSaW5nLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCkBAIC0xMDQ2LDE1ICsxMDQ3
LDE1IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVVbnNlbGVjdChGcmFtZSogZnJhbWUKIAogc3RhdGlj
IGJvb2wgZXhlY3V0ZVlhbmsoRnJhbWUqIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3Vy
Y2UsIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgZnJhbWUtPmVkaXRvcigpLT5pbnNlcnRUZXh0V2l0
aG91dFNlbmRpbmdUZXh0RXZlbnQoZnJhbWUtPmVkaXRvcigpLT55YW5rRnJvbUtpbGxSaW5nKCks
IGZhbHNlLCAwKTsKLSAgICBmcmFtZS0+ZWRpdG9yKCktPnNldEtpbGxSaW5nVG9ZYW5rZWRTdGF0
ZSgpOworICAgIGZyYW1lLT5lZGl0b3IoKS0+aW5zZXJ0VGV4dFdpdGhvdXRTZW5kaW5nVGV4dEV2
ZW50KGZyYW1lLT5lZGl0b3IoKS0+a2lsbFJpbmcoKS0+eWFuaygpLCBmYWxzZSwgMCk7CisgICAg
ZnJhbWUtPmVkaXRvcigpLT5raWxsUmluZygpLT5zZXRUb1lhbmtlZFN0YXRlKCk7CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBib29sIGV4ZWN1dGVZYW5rQW5kU2VsZWN0KEZyYW1lKiBm
cmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcmKQogewotICAg
IGZyYW1lLT5lZGl0b3IoKS0+aW5zZXJ0VGV4dFdpdGhvdXRTZW5kaW5nVGV4dEV2ZW50KGZyYW1l
LT5lZGl0b3IoKS0+eWFua0Zyb21LaWxsUmluZygpLCB0cnVlLCAwKTsKLSAgICBmcmFtZS0+ZWRp
dG9yKCktPnNldEtpbGxSaW5nVG9ZYW5rZWRTdGF0ZSgpOworICAgIGZyYW1lLT5lZGl0b3IoKS0+
aW5zZXJ0VGV4dFdpdGhvdXRTZW5kaW5nVGV4dEV2ZW50KGZyYW1lLT5lZGl0b3IoKS0+a2lsbFJp
bmcoKS0+eWFuaygpLCB0cnVlLCAwKTsKKyAgICBmcmFtZS0+ZWRpdG9yKCktPmtpbGxSaW5nKCkt
PnNldFRvWWFua2VkU3RhdGUoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApJbmRleDogV2ViQ29y
ZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5n
L21hYy9FZGl0b3JNYWMubW0JKHJldmlzaW9uIDYwMzAyKQorKysgV2ViQ29yZS9lZGl0aW5nL21h
Yy9FZGl0b3JNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMzLDYzICszMywxMSBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWV4dGVybiAiQyIgewotCi0vLyBLaWxsIHJpbmcgY2FsbHMuIFdv
dWxkIGJlIGJldHRlciB0byB1c2UgTlNLaWxsUmluZy5oLCBidXQgdGhhdCdzIG5vdCBhdmFpbGFi
bGUgYXMgQVBJIG9yIFNQSS4KLQotdm9pZCBfTlNJbml0aWFsaXplS2lsbFJpbmcoKTsKLXZvaWQg
X05TQXBwZW5kVG9LaWxsUmluZyhOU1N0cmluZyAqKTsKLXZvaWQgX05TUHJlcGVuZFRvS2lsbFJp
bmcoTlNTdHJpbmcgKik7Ci1OU1N0cmluZyAqX05TWWFua0Zyb21LaWxsUmluZygpOwotdm9pZCBf
TlNOZXdLaWxsUmluZ1NlcXVlbmNlKCk7Ci12b2lkIF9OU1NldEtpbGxSaW5nVG9ZYW5rZWRTdGF0
ZSgpOwotCi19Ci0KIFBhc3NSZWZQdHI8Q2xpcGJvYXJkPiBFZGl0b3I6Om5ld0dlbmVyYWxDbGlw
Ym9hcmQoQ2xpcGJvYXJkQWNjZXNzUG9saWN5IHBvbGljeSkKIHsKICAgICByZXR1cm4gQ2xpcGJv
YXJkTWFjOjpjcmVhdGUoZmFsc2UsIFtOU1Bhc3RlYm9hcmQgZ2VuZXJhbFBhc3RlYm9hcmRdLCBw
b2xpY3ksIDApOwogfQogCi1zdGF0aWMgdm9pZCBpbml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgp
Ci17Ci0gICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWRLaWxsUmluZyA9IGZhbHNlOwotICAgIGlm
ICghaW5pdGlhbGl6ZWRLaWxsUmluZykgewotICAgICAgICBpbml0aWFsaXplZEtpbGxSaW5nID0g
dHJ1ZTsKLSAgICAgICAgX05TSW5pdGlhbGl6ZUtpbGxSaW5nKCk7Ci0gICAgfQotfQotCi12b2lk
IEVkaXRvcjo6YXBwZW5kVG9LaWxsUmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKLXsKLSAgICBp
bml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgpOwotICAgIF9OU0FwcGVuZFRvS2lsbFJpbmcoc3Ry
aW5nKTsKLX0KLQotdm9pZCBFZGl0b3I6OnByZXBlbmRUb0tpbGxSaW5nKGNvbnN0IFN0cmluZyYg
c3RyaW5nKQotewotICAgIGluaXRpYWxpemVLaWxsUmluZ0lmTmVlZGVkKCk7Ci0gICAgX05TUHJl
cGVuZFRvS2lsbFJpbmcoc3RyaW5nKTsKLX0KLQotU3RyaW5nIEVkaXRvcjo6eWFua0Zyb21LaWxs
UmluZygpCi17Ci0gICAgaW5pdGlhbGl6ZUtpbGxSaW5nSWZOZWVkZWQoKTsKLSAgICByZXR1cm4g
X05TWWFua0Zyb21LaWxsUmluZygpOwotfQotCi12b2lkIEVkaXRvcjo6c3RhcnROZXdLaWxsUmlu
Z1NlcXVlbmNlKCkKLXsKLSAgICBpbml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgpOwotICAgIF9O
U05ld0tpbGxSaW5nU2VxdWVuY2UoKTsKLX0KLQotdm9pZCBFZGl0b3I6OnNldEtpbGxSaW5nVG9Z
YW5rZWRTdGF0ZSgpCi17Ci0gICAgaW5pdGlhbGl6ZUtpbGxSaW5nSWZOZWVkZWQoKTsKLSAgICBf
TlNTZXRLaWxsUmluZ1RvWWFua2VkU3RhdGUoKTsKLX0KLQogdm9pZCBFZGl0b3I6OnNob3dGb250
UGFuZWwoKQogewogICAgIFtbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl0gb3JkZXJG
cm9udEZvbnRQYW5lbDpuaWxdOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9LaWxsUmluZy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vS2lsbFJpbmcuaAkocmV2aXNpb24gMCkKKysr
IFdlYkNvcmUvcGxhdGZvcm0vS2lsbFJpbmcuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0NCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
Q09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBD
T01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaWZuZGVmIEtpbGxSaW5nX2gKKyNkZWZpbmUgS2lsbFJpbmdfaAorCisj
aW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBLaWxsUmluZyB7CitwdWJsaWM6CisgICAgdm9pZCBhcHBlbmQoY29uc3QgU3RyaW5nJik7Cisg
ICAgdm9pZCBwcmVwZW5kKGNvbnN0IFN0cmluZyYpOworICAgIFN0cmluZyB5YW5rKCk7CisgICAg
dm9pZCBzdGFydE5ld1NlcXVlbmNlKCk7CisgICAgdm9pZCBzZXRUb1lhbmtlZFN0YXRlKCk7Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBLaWxsUmluZ19oCgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBXZWJDb3JlL3BsYXRmb3JtL0tpbGxSaW5nLmgKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpB
ZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9LaWxs
UmluZ05vbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vS2lsbFJpbmdOb25l
LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vS2lsbFJpbmdOb25lLmNwcAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIktpbGxS
aW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBLaWxsUmluZzo6YXBwZW5kKGNv
bnN0IFN0cmluZyYgc3RyaW5nKQoreworfQorCit2b2lkIEtpbGxSaW5nOjpwcmVwZW5kKGNvbnN0
IFN0cmluZyYgc3RyaW5nKQoreworfQorCitTdHJpbmcgS2lsbFJpbmc6OnlhbmsoKQoreworICAg
IHJldHVybiBTdHJpbmcoKTsKK30KKwordm9pZCBLaWxsUmluZzo6c3RhcnROZXdTZXF1ZW5jZSgp
Cit7Cit9CisKK3ZvaWQgS2lsbFJpbmc6OnNldFRvWWFua2VkU3RhdGUoKQoreworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJDb3JlL3BsYXRmb3Jt
L0tpbGxSaW5nTm9uZS5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExG
CgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2lsbFJpbmdNYWMubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2lsbFJpbmdNYWMubW0JKHJldmlzaW9uIDApCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL21hYy9LaWxsUmluZ01hYy5tbQkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw4MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgUmlnaHRz
IFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJLaWxsUmluZy5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2V4dGVybiAiQyIgeworCisvLyBLaWxsIHJpbmcgY2FsbHMuIFdvdWxkIGJlIGJl
dHRlciB0byB1c2UgTlNLaWxsUmluZy5oLCBidXQgdGhhdCdzIG5vdCBhdmFpbGFibGUgYXMgQVBJ
IG9yIFNQSS4KKwordm9pZCBfTlNJbml0aWFsaXplS2lsbFJpbmcoKTsKK3ZvaWQgX05TQXBwZW5k
VG9LaWxsUmluZyhOU1N0cmluZyAqKTsKK3ZvaWQgX05TUHJlcGVuZFRvS2lsbFJpbmcoTlNTdHJp
bmcgKik7CitOU1N0cmluZyAqX05TWWFua0Zyb21LaWxsUmluZygpOwordm9pZCBfTlNOZXdLaWxs
UmluZ1NlcXVlbmNlKCk7Cit2b2lkIF9OU1NldEtpbGxSaW5nVG9ZYW5rZWRTdGF0ZSgpOworCit9
CisKK3N0YXRpYyB2b2lkIGluaXRpYWxpemVLaWxsUmluZ0lmTmVlZGVkKCkKK3sKKyAgICBzdGF0
aWMgYm9vbCBpbml0aWFsaXplZEtpbGxSaW5nID0gZmFsc2U7CisgICAgaWYgKCFpbml0aWFsaXpl
ZEtpbGxSaW5nKSB7CisgICAgICAgIGluaXRpYWxpemVkS2lsbFJpbmcgPSB0cnVlOworICAgICAg
ICBfTlNJbml0aWFsaXplS2lsbFJpbmcoKTsKKyAgICB9Cit9CisKK3ZvaWQgS2lsbFJpbmc6OmFw
cGVuZChjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBpbml0aWFsaXplS2lsbFJpbmdJZk5l
ZWRlZCgpOworICAgIF9OU0FwcGVuZFRvS2lsbFJpbmcoc3RyaW5nKTsKK30KKwordm9pZCBLaWxs
UmluZzo6cHJlcGVuZChjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBpbml0aWFsaXplS2ls
bFJpbmdJZk5lZWRlZCgpOworICAgIF9OU1ByZXBlbmRUb0tpbGxSaW5nKHN0cmluZyk7Cit9CisK
K1N0cmluZyBLaWxsUmluZzo6eWFuaygpCit7CisgICAgaW5pdGlhbGl6ZUtpbGxSaW5nSWZOZWVk
ZWQoKTsKKyAgICByZXR1cm4gX05TWWFua0Zyb21LaWxsUmluZygpOworfQorCit2b2lkIEtpbGxS
aW5nOjpzdGFydE5ld1NlcXVlbmNlKCkKK3sKKyAgICBpbml0aWFsaXplS2lsbFJpbmdJZk5lZWRl
ZCgpOworICAgIF9OU05ld0tpbGxSaW5nU2VxdWVuY2UoKTsKK30KKwordm9pZCBLaWxsUmluZzo6
c2V0VG9ZYW5rZWRTdGF0ZSgpCit7CisgICAgaW5pdGlhbGl6ZUtpbGxSaW5nSWZOZWVkZWQoKTsK
KyAgICBfTlNTZXRLaWxsUmluZ1RvWWFua2VkU3RhdGUoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQoKUHJvcGVydHkgY2hhbmdlcyBvbjogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvS2lsbFJp
bmdNYWMubW0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57250</attachid>
            <date>2010-05-27 08:51:50 -0700</date>
            <delta_ts>2010-05-27 15:42:04 -0700</delta_ts>
            <desc>Add reviewer name</desc>
            <filename>webkit_killring.patch</filename>
            <type>text/plain</type>
            <size>22789</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2MDMwMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMDUtMjcgIE5pY28gV2ViZXIgIDx0aGFraXNAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5MDkyCisKKyAgICAgICAgQWRkIFlh
bmsgc3VwcG9ydCB0byBjaHJvbWl1bSBtYWMuIERvIHRoaXMgYnkgbW92aW5nIFdlYktpdCBNYWMn
cworICAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiBFZGl0b3I6OnlhbmtGcm9tS2lsbFJpbmcoKSBp
bnRvIGl0cyBvd24gY2xhc3MgYW5kCisgICAgICAgIHRoZW4gdXNpbmcgdGhhdC4KKworICAgICAg
ICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgICBVc2UgbmV3IEtpbGxSaW5nIGNsYXNz
LgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OmtpbGxSaW5nKToKKyAgICAgICAgICBVc2UgbmV3IEtpbGxSaW5nIGNsYXNzLgorICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlWWFu
a0FuZFNlbGVjdCk6CisgICAgICAgICAgVXNlIG5ldyBLaWxsUmluZyBjbGFzcy4KKyAgICAgICAg
KiBwbGF0Zm9ybS9LaWxsUmluZy5oOgorICAgICAgICAgIEFkZCBuZXcgS2lsbFJpbmcgY2xhc3Ms
IHdoaWNoIGFjdHMgYXMgbnVsbCBvYmplY3QuCisgICAgICAgIChXZWJDb3JlOjpLaWxsUmluZzo6
fktpbGxSaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvS2lsbFJpbmdNYWMuaDoKKyAgICAg
ICAgICBBZGQgbmV3IEtpbGxSaW5nTWFjIGNsYXNzLCB3aGljaCB3cml0ZXMgdG8gdGhlIG1hYydz
IGtpbGwgcmluZy4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvS2lsbFJpbmdNYWMubW06CisgICAg
ICAgICAgQWRkIG5ldyBLaWxsUmluZ01hYyBjbGFzcywgd2hpY2ggd3JpdGVzIHRvIHRoZSBtYWMn
cyBraWxsIHJpbmcuCisKIDIwMTAtMDUtMjcgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KSW5kZXg6IFdl
YkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9HTlVtYWtlZmlsZS5h
bQkocmV2aXNpb24gNjAzMDIpCisrKyBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCSh3b3JraW5nIGNv
cHkpCkBAIC0xNTc4LDYgKzE1NzgsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUv
cGxhdGZvcm0vR2VvbG9jYXRpb25TZXJ2aWNlLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9HZW9s
b2NhdGlvblNlcnZpY2UuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmggXAorCVdl
YkNvcmUvcGxhdGZvcm0vS2lsbFJpbmcuaCBcCisJV2ViQ29yZS9wbGF0Zm9ybS9LaWxsUmluZ05v
bmUuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL0tVUkwuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3Jt
L0tVUkwuaCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9LVVJMSGFzaC5oIFwKSW5kZXg6IFdlYkNvcmUv
V2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lv
biA2MDMwMikKKysrIFdlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0yNTE2
LDYgKzI1MTYsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9Gb3VuZGF0aW9uRXh0cmFz
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9LVVJMTWFjLm1tJywKICAgICAgICAgICAg
ICdwbGF0Zm9ybS9tYWMvS2V5RXZlbnRNYWMubW0nLAorICAgICAgICAgICAgJ3BsYXRmb3JtL21h
Yy9LaWxsUmluZ01hYy5tbScsCiAgICAgICAgICAgICAncGxhdGZvcm0vbWFjL0xhbmd1YWdlLm1t
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL21hYy9Mb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRl
eHQubW0nLApAQCAtMjkwMCw2ICsyOTAxLDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9HZW9s
b2NhdGlvblNlcnZpY2UuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9HZW9sb2NhdGlvblNl
cnZpY2UuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vSG9zdFdpbmRvdy5oJywKKyAgICAgICAg
ICAgICdwbGF0Zm9ybS9LaWxsUmluZy5oJywKKyAgICAgICAgICAgICdwbGF0Zm9ybS9LaWxsUmlu
Z05vbmUuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9LVVJMLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vS1VSTC5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9LVVJMR29vZ2xlLmNw
cCcsCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2Vi
Q29yZS5wcm8JKHJldmlzaW9uIDYwMzAyKQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2lu
ZyBjb3B5KQpAQCAtODYxLDYgKzg2MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL3RyYW5zZm9ybXMvU2tld1RyYW5zZm9ybU9wZXJhdGlvbi5jcHAgXAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9ucy5jcHAgXAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNsYXRlVHJhbnNmb3JtT3BlcmF0aW9uLmNw
cCBcCisgICAgcGxhdGZvcm0vS2lsbFJpbmdOb25lLmNwcCBcCiAgICAgcGxhdGZvcm0vS1VSTC5j
cHAgXAogICAgIHBsYXRmb3JtL0xlbmd0aC5jcHAgXAogICAgIHBsYXRmb3JtL0xpbmtIYXNoLmNw
cCBcCkBAIC0xNjIwLDYgKzE2MjEsNyBAQCBIRUFERVJTICs9IFwKICAgICBwbGF0Zm9ybS9ncmFw
aGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmggXAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtT3BlcmF0aW9ucy5oIFwKICAgICBwbGF0Zm9ybS9n
cmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIFwKKyAgICBw
bGF0Zm9ybS9LaWxsUmluZy5oIFwKICAgICBwbGF0Zm9ybS9LVVJMLmggXAogICAgIHBsYXRmb3Jt
L0xlbmd0aC5oIFwKICAgICBwbGF0Zm9ybS9MaW5rSGFzaC5oIFwKSW5kZXg6IFdlYkNvcmUvV2Vi
Q29yZS5neXAvV2ViQ29yZS5neXAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cC9X
ZWJDb3JlLmd5cAkocmV2aXNpb24gNjAzMDIpCisrKyBXZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNv
cmUuZ3lwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEwLDYgKzEwMTAsNyBAQAogICAgICAgICAgICAg
WydpbmNsdWRlJywgJ3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HcmFwaGljc0NvbnRleHRNYWNcXC5t
bSQnXSwKICAgICAgICAgICAgIFsnaW5jbHVkZScsICdwbGF0Zm9ybS9ncmFwaGljcy9tYWMvSW50
UmVjdE1hY1xcLm1tJCddLAogICAgICAgICAgICAgWydpbmNsdWRlJywgJ3BsYXRmb3JtL21hYy9C
bG9ja0V4Y2VwdGlvbnNcXC5tbSQnXSwKKyAgICAgICAgICAgIFsnaW5jbHVkZScsICdwbGF0Zm9y
bS9tYWMvS2lsbFJpbmdNYWNcXC5tbSQnXSwKICAgICAgICAgICAgIFsnaW5jbHVkZScsICdwbGF0
Zm9ybS9tYWMvTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0XFwubW0kJ10sCiAgICAgICAgICAg
ICBbJ2luY2x1ZGUnLCAncGxhdGZvcm0vbWFjL1B1cmdlYWJsZUJ1ZmZlck1hY1xcLmNwcCQnXSwK
ICAgICAgICAgICAgIFsnaW5jbHVkZScsICdwbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVy
ZmFjZVxcLm1tJCddLApAQCAtMTAyMiw2ICsxMDIzLDEwIEBACiAgICAgICAgICAgICBbJ2luY2x1
ZGUnLCAnV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2VcXC5tJCdd
LAogICAgICAgICAgIF0sCiAgICAgICAgICAgJ3NvdXJjZXMhJzogWworICAgICAgICAgICAgIyBU
aGUgTWFjIHVzZXMgcGxhdGZvcm0vbWFjL0tpbGxSaW5nTWFjLm1tIGluc3RlYWQgb2YgdGhlIGR1
bW15CisgICAgICAgICAgICAjIGltcGxlbWVudGF0aW9uLgorICAgICAgICAgICAgJy4uL3BsYXRm
b3JtL0tpbGxSaW5nTm9uZS5jcHAnLAorCiAgICAgICAgICAgICAjIFRoZSBNYWMgY3VycmVudGx5
IHVzZXMgRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgZnJvbQogICAgICAgICAgICAgIyBwbGF0
Zm9ybS9ncmFwaGljcy9tYWMsIGluY2x1ZGVkIGJ5IHJlZ2V4IGFib3ZlLCBpbnN0ZWFkLgogICAg
ICAgICAgICAgJy4uL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuY3BwJywKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkocmV2
aXNpb24gNjAzMDIpCisrKyBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC0yMjQwOSw2ICsyMjQwOSwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+
DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxLaWxsUmluZy5oIg0K
KwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxh
dGZvcm1cS2lsbFJpbmdOb25lLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0K
IAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRmb3JtXEtVUkwuY3BwIg0KIAkJCQk+DQogCQkJPC9G
aWxlPg0KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShy
ZXZpc2lvbiA2MDMwMikKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMTU5LDYgKzExNTksOCBAQAogCQk1MUVDOTI1OTBDRTkw
REI0MDBGOTAzMDggLyogU1FMRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxRUM5MjU3MENFOTBEQjQwMEY5MDMwOCAvKiBTUUxFcnJvci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTUxRUM5MjY1
MENFOTBERDQwMEY5MDMwOCAvKiBKU0N1c3RvbVNRTFN0YXRlbWVudEVycm9yQ2FsbGJhY2suY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFFQzkyNUQw
Q0U5MERENDAwRjkwMzA4IC8qIEpTQ3VzdG9tU1FMU3RhdGVtZW50RXJyb3JDYWxsYmFjay5jcHAg
Ki87IH07CiAJCTUxRkFGRTM0MENFQ0JGMkQwMEJCM0YyNCAvKiBEYXRhYmFzZVRyYWNrZXJDbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRkFG
RTMzMENFQ0JGMkQwMEJCM0YyNCAvKiBEYXRhYmFzZVRyYWNrZXJDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MjFENDZGNjExQUVDOTgx
MDA1MTQ2MTMgLyogS2lsbFJpbmdNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MjFENDZGNTExQUVDOTgxMDA1MTQ2MTMgLyogS2lsbFJpbmdNYWMu
bW0gKi87IH07CisJCTUyMUQ0NkY4MTFBRUM5QjEwMDUxNDYxMyAvKiBLaWxsUmluZy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTIxRDQ2RjcxMUFFQzlC
MTAwNTE0NjEzIC8qIEtpbGxSaW5nLmggKi87IH07CiAJCTU0QzUwRjdCMEU4MDFERjMwMDk4MzJB
MCAvKiBYTUxUb2tlbml6ZXJMaWJ4bWwyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU0QzUwRjdBMEU4MDFERjMwMDk4MzJBMCAvKiBYTUxUb2tlbml6
ZXJMaWJ4bWwyLmNwcCAqLzsgfTsKIAkJNTUwQTBCQzkwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxp
ZmllZE5hbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTUwQTBCQzcwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3BwICovOyB9Owog
CQk1NTBBMEJDQTA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUwQTBCQzgwODVGNjAzOTAwNzM1
M0Q2IC8qIFF1YWxpZmllZE5hbWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtNjc4Niw2ICs2Nzg4LDggQEAKIAkJNTFGNkEzRDUwNjYzQkYwNDAw
NEQyOTE5IC8qIEhUTUxDYW52YXNFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxDYW52YXNFbGVtZW50LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTUx
RjZBM0Q2MDY2M0JGMDQwMDREMjkxOSAvKiBIVE1MQ2FudmFzRWxlbWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MQ2FudmFzRWxlbWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsg
fTsKIAkJNTFGQUZFMzMwQ0VDQkYyRDAwQkIzRjI0IC8qIERhdGFiYXNlVHJhY2tlckNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhYmFzZVRyYWNrZXJDbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTIxRDQ2RjUxMUFFQzk4MTAwNTE0NjEz
IC8qIEtpbGxSaW5nTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gS2lsbFJpbmdNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyMUQ0NkY3
MTFBRUM5QjEwMDUxNDYxMyAvKiBLaWxsUmluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBLaWxsUmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NEM1MEY3
QTBFODAxREYzMDA5ODMyQTAgLyogWE1MVG9rZW5pemVyTGlieG1sMi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYTUxUb2tlbml6ZXJMaWJ4bWwyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTUwQTBCQzcwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxp
ZmllZE5hbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUXVhbGlmaWVkTmFtZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk1NTBBMEJDODA4NUY2MDM5MDA3MzUzRDYg
LyogUXVhbGlmaWVkTmFtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBRdWFsaWZpZWROYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTE5MTYsNiArMTE5MjAsNyBAQAogCQkJ
CUJDRTQ5NEE5MEY0RjVFOUUwMDg0RTMxOSAvKiBHZW9sb2NhdGlvblNlcnZpY2VNYWMuaCAqLywK
IAkJCQlCQ0U0OTRBQTBGNEY1RTlFMDA4NEUzMTkgLyogR2VvbG9jYXRpb25TZXJ2aWNlTWFjLm1t
ICovLAogCQkJCTkzNUM0NzZFMDlBQzRENzMwMEE2QUFCNCAvKiBLZXlFdmVudE1hYy5tbSAqLywK
KwkJCQk1MjFENDZGNTExQUVDOTgxMDA1MTQ2MTMgLyogS2lsbFJpbmdNYWMubW0gKi8sCiAJCQkJ
NjU5MzkyMzkwOUFFNDM1QzAwMkM1MzFGIC8qIEtVUkxNYWMubW0gKi8sCiAJCQkJOTM1MjA4NDQw
OUJENDNCOTAwRjIwMzhEIC8qIExhbmd1YWdlLm1tICovLAogCQkJCTA2RTgxRUQ2MEFCNUQ1RTkw
MEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQuaCAqLywKQEAgLTE1ODQ3LDYg
KzE1ODUyLDcgQEAKIAkJCQlGRUFCOTAxMDBFQTUxQjlDMDA2MzQ4QzMgLyogR2VvbG9jYXRpb25T
ZXJ2aWNlLmNwcCAqLywKIAkJCQlGRUFCOTAxMTBFQTUxQjlDMDA2MzQ4QzMgLyogR2VvbG9jYXRp
b25TZXJ2aWNlLmggKi8sCiAJCQkJQkMzQkMyOUIwRTkxQUIwRjAwODM1NTg4IC8qIEhvc3RXaW5k
b3cuaCAqLywKKwkJCQk1MjFENDZGNzExQUVDOUIxMDA1MTQ2MTMgLyogS2lsbFJpbmcuaCAqLywK
IAkJCQk2NTkzOTIzNTA5QUU0MzQ2MDAyQzUzMUYgLyogS1VSTC5jcHAgKi8sCiAJCQkJNjU5Mzky
MzYwOUFFNDM0NjAwMkM1MzFGIC8qIEtVUkwuaCAqLywKIAkJCQlCQ0JEMjFBQTBFNDE3QUQ0MDBB
MDcwRjIgLyogS1VSTEhhc2guaCAqLywKQEAgLTE5MzcwLDYgKzE5Mzc2LDcgQEAKIAkJCQlCNjY5
M0VFRTExQUQ2M0U2MDAzRjI3NzAgLyogSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCNjY5M0VGMzExQUQ2NDg2MDAzRjI3NzAgLyogSlNJREJPYmplY3RTdG9yZVJl
cXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4M0IzQUYxMTFBREVGRjUwMDQ1ODgwOSAvKiBI
VE1MNVNjcmlwdFJ1bm5lci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTIxRDQ2RjgxMUFFQzlCMTAw
NTE0NjEzIC8qIEtpbGxSaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIxNjY1LDYgKzIxNjcyLDcg
QEAKIAkJCQlCNjY5M0VGMjExQUQ2NDg2MDAzRjI3NzAgLyogSlNJREJPYmplY3RTdG9yZVJlcXVl
c3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjYyN0ZCMkQxMUFENzQzNTAwRTk3QjcyIC8qIElE
QkRhdGFiYXNlSW1wbC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODNCM0FGMDExQURFRkY1MDA0
NTg4MDkgLyogSFRNTDVTY3JpcHRSdW5uZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTIxRDQ2
RjYxMUFFQzk4MTAwNTE0NjEzIC8qIEtpbGxSaW5nTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkp
OwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4
OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcAkocmV2aXNpb24gNjAzMDIpCisrKyBXZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIkluZGVudE91
dGRlbnRDb21tYW5kLmgiCiAjaW5jbHVkZSAiSW5zZXJ0TGlzdENvbW1hbmQuaCIKICNpbmNsdWRl
ICJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiS2lsbFJpbmcuaCIKICNpbmNsdWRlICJNb2Rp
ZnlTZWxlY3Rpb25MaXN0TGV2ZWwuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFz
dGVib2FyZC5oIgpAQCAtOTI4LDYgKzkyOSw3IEBAIEVkaXRvcjo6RWRpdG9yKEZyYW1lKiBmcmFt
ZSkKICAgICAsIG1fc2hvdWxkU3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlKGZhbHNlKQogICAgIC8v
IFRoaXMgaXMgb2ZmIGJ5IGRlZmF1bHQsIHNpbmNlIG1vc3QgZWRpdG9ycyB3YW50IHRoaXMgYmVo
YXZpb3IgKHRoaXMgbWF0Y2hlcyBJRSBidXQgbm90IEZGKS4KICAgICAsIG1fc2hvdWxkU3R5bGVX
aXRoQ1NTKGZhbHNlKQorICAgICwgbV9raWxsUmluZyhuZXcgS2lsbFJpbmcpCiB7IAogfQogCkBA
IC0yNzA3LDQxICsyNzA5LDE2IEBAIHZvaWQgRWRpdG9yOjp0cmFuc3Bvc2UoKQogdm9pZCBFZGl0
b3I6OmFkZFRvS2lsbFJpbmcoUmFuZ2UqIHJhbmdlLCBib29sIHByZXBlbmQpCiB7CiAgICAgaWYg
KG1fc2hvdWxkU3RhcnROZXdLaWxsUmluZ1NlcXVlbmNlKQotICAgICAgICBzdGFydE5ld0tpbGxS
aW5nU2VxdWVuY2UoKTsKKyAgICAgICAga2lsbFJpbmcoKS0+c3RhcnROZXdTZXF1ZW5jZSgpOwog
CiAgICAgU3RyaW5nIHRleHQgPSBwbGFpblRleHQocmFuZ2UpOwogICAgIGlmIChwcmVwZW5kKQot
ICAgICAgICBwcmVwZW5kVG9LaWxsUmluZyh0ZXh0KTsKKyAgICAgICAga2lsbFJpbmcoKS0+cHJl
cGVuZCh0ZXh0KTsKICAgICBlbHNlCi0gICAgICAgIGFwcGVuZFRvS2lsbFJpbmcodGV4dCk7Cisg
ICAgICAgIGtpbGxSaW5nKCktPmFwcGVuZCh0ZXh0KTsKICAgICBtX3Nob3VsZFN0YXJ0TmV3S2ls
bFJpbmdTZXF1ZW5jZSA9IGZhbHNlOwogfQogCi0jaWYgIVBMQVRGT1JNKE1BQykKLQotdm9pZCBF
ZGl0b3I6OmFwcGVuZFRvS2lsbFJpbmcoY29uc3QgU3RyaW5nJikKLXsKLX0KLQotdm9pZCBFZGl0
b3I6OnByZXBlbmRUb0tpbGxSaW5nKGNvbnN0IFN0cmluZyYpCi17Ci19Ci0KLVN0cmluZyBFZGl0
b3I6OnlhbmtGcm9tS2lsbFJpbmcoKQotewotICAgIHJldHVybiBTdHJpbmcoKTsKLX0KLQotdm9p
ZCBFZGl0b3I6OnN0YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZSgpCi17Ci19Ci0KLXZvaWQgRWRpdG9y
OjpzZXRLaWxsUmluZ1RvWWFua2VkU3RhdGUoKQotewotfQotCi0jZW5kaWYKLQogYm9vbCBFZGl0
b3I6Omluc2lkZVZpc2libGVBcmVhKGNvbnN0IEludFBvaW50JiBwb2ludCkgY29uc3QKIHsKICAg
ICBpZiAobV9mcmFtZS0+ZXhjbHVkZUZyb21UZXh0U2VhcmNoKCkpCkluZGV4OiBXZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCShy
ZXZpc2lvbiA2MDMwMikKKysrIFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAkod29ya2luZyBjb3B5
KQpAQCAtNDMsNiArNDMsNyBAQCBjbGFzcyBFZGl0b3JDbGllbnQ7CiBjbGFzcyBFZGl0b3JJbnRl
cm5hbENvbW1hbmQ7CiBjbGFzcyBIVE1MRWxlbWVudDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7Citj
bGFzcyBLaWxsUmluZzsKIGNsYXNzIFBhc3RlYm9hcmQ7CiBjbGFzcyBTaW1wbGVGb250RGF0YTsK
IGNsYXNzIFRleHQ7CkBAIC0yNzgsMTEgKzI3OSw3IEBAIHB1YmxpYzoKIAogICAgIFZpc2libGVT
ZWxlY3Rpb24gc2VsZWN0aW9uRm9yQ29tbWFuZChFdmVudCopOwogCi0gICAgdm9pZCBhcHBlbmRU
b0tpbGxSaW5nKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgcHJlcGVuZFRvS2lsbFJpbmcoY29u
c3QgU3RyaW5nJik7Ci0gICAgU3RyaW5nIHlhbmtGcm9tS2lsbFJpbmcoKTsKLSAgICB2b2lkIHN0
YXJ0TmV3S2lsbFJpbmdTZXF1ZW5jZSgpOwotICAgIHZvaWQgc2V0S2lsbFJpbmdUb1lhbmtlZFN0
YXRlKCk7CisgICAgS2lsbFJpbmcqIGtpbGxSaW5nKCkgY29uc3QgeyByZXR1cm4gbV9raWxsUmlu
Zy5nZXQoKTsgfQogCiAgICAgUGFzc1JlZlB0cjxSYW5nZT4gc2VsZWN0ZWRSYW5nZSgpOwogICAg
IApAQCAtMzA1LDYgKzMwMiw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lnbm9yZUNvbXBvc2l0
aW9uU2VsZWN0aW9uQ2hhbmdlOwogICAgIGJvb2wgbV9zaG91bGRTdGFydE5ld0tpbGxSaW5nU2Vx
dWVuY2U7CiAgICAgYm9vbCBtX3Nob3VsZFN0eWxlV2l0aENTUzsKKyAgICBPd25QdHI8S2lsbFJp
bmc+IG1fa2lsbFJpbmc7CiAKICAgICBib29sIGNhbkRlbGV0ZVJhbmdlKFJhbmdlKikgY29uc3Q7
CiAgICAgYm9vbCBjYW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZChQYXN0ZWJvYXJkKik7Cklu
ZGV4OiBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCShyZXZpc2lvbiA2MDMwMikKKysrIFdlYkNv
cmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcs
NyBAQAogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJJbmRlbnRPdXRk
ZW50Q29tbWFuZC5oIgogI2luY2x1ZGUgIkluc2VydExpc3RDb21tYW5kLmgiCisjaW5jbHVkZSAi
S2lsbFJpbmcuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQuaCIKICNpbmNsdWRlICJTY3JvbGxiYXIuaCIKQEAgLTEwNDYsMTUgKzEwNDcsMTUg
QEAgc3RhdGljIGJvb2wgZXhlY3V0ZVVuc2VsZWN0KEZyYW1lKiBmcmFtZQogCiBzdGF0aWMgYm9v
bCBleGVjdXRlWWFuayhGcmFtZSogZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwg
Y29uc3QgU3RyaW5nJikKIHsKLSAgICBmcmFtZS0+ZWRpdG9yKCktPmluc2VydFRleHRXaXRob3V0
U2VuZGluZ1RleHRFdmVudChmcmFtZS0+ZWRpdG9yKCktPnlhbmtGcm9tS2lsbFJpbmcoKSwgZmFs
c2UsIDApOwotICAgIGZyYW1lLT5lZGl0b3IoKS0+c2V0S2lsbFJpbmdUb1lhbmtlZFN0YXRlKCk7
CisgICAgZnJhbWUtPmVkaXRvcigpLT5pbnNlcnRUZXh0V2l0aG91dFNlbmRpbmdUZXh0RXZlbnQo
ZnJhbWUtPmVkaXRvcigpLT5raWxsUmluZygpLT55YW5rKCksIGZhbHNlLCAwKTsKKyAgICBmcmFt
ZS0+ZWRpdG9yKCktPmtpbGxSaW5nKCktPnNldFRvWWFua2VkU3RhdGUoKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAogc3RhdGljIGJvb2wgZXhlY3V0ZVlhbmtBbmRTZWxlY3QoRnJhbWUqIGZyYW1l
LCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZyYpCiB7Ci0gICAgZnJh
bWUtPmVkaXRvcigpLT5pbnNlcnRUZXh0V2l0aG91dFNlbmRpbmdUZXh0RXZlbnQoZnJhbWUtPmVk
aXRvcigpLT55YW5rRnJvbUtpbGxSaW5nKCksIHRydWUsIDApOwotICAgIGZyYW1lLT5lZGl0b3Io
KS0+c2V0S2lsbFJpbmdUb1lhbmtlZFN0YXRlKCk7CisgICAgZnJhbWUtPmVkaXRvcigpLT5pbnNl
cnRUZXh0V2l0aG91dFNlbmRpbmdUZXh0RXZlbnQoZnJhbWUtPmVkaXRvcigpLT5raWxsUmluZygp
LT55YW5rKCksIHRydWUsIDApOworICAgIGZyYW1lLT5lZGl0b3IoKS0+a2lsbFJpbmcoKS0+c2V0
VG9ZYW5rZWRTdGF0ZSgpOwogICAgIHJldHVybiB0cnVlOwogfQogCkluZGV4OiBXZWJDb3JlL2Vk
aXRpbmcvbWFjL0VkaXRvck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvbWFj
L0VkaXRvck1hYy5tbQkocmV2aXNpb24gNjAzMDIpCisrKyBXZWJDb3JlL2VkaXRpbmcvbWFjL0Vk
aXRvck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzMsNjMgKzMzLDExIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotZXh0ZXJuICJDIiB7Ci0KLS8vIEtpbGwgcmluZyBjYWxscy4gV291bGQg
YmUgYmV0dGVyIHRvIHVzZSBOU0tpbGxSaW5nLmgsIGJ1dCB0aGF0J3Mgbm90IGF2YWlsYWJsZSBh
cyBBUEkgb3IgU1BJLgotCi12b2lkIF9OU0luaXRpYWxpemVLaWxsUmluZygpOwotdm9pZCBfTlNB
cHBlbmRUb0tpbGxSaW5nKE5TU3RyaW5nICopOwotdm9pZCBfTlNQcmVwZW5kVG9LaWxsUmluZyhO
U1N0cmluZyAqKTsKLU5TU3RyaW5nICpfTlNZYW5rRnJvbUtpbGxSaW5nKCk7Ci12b2lkIF9OU05l
d0tpbGxSaW5nU2VxdWVuY2UoKTsKLXZvaWQgX05TU2V0S2lsbFJpbmdUb1lhbmtlZFN0YXRlKCk7
Ci0KLX0KLQogUGFzc1JlZlB0cjxDbGlwYm9hcmQ+IEVkaXRvcjo6bmV3R2VuZXJhbENsaXBib2Fy
ZChDbGlwYm9hcmRBY2Nlc3NQb2xpY3kgcG9saWN5KQogewogICAgIHJldHVybiBDbGlwYm9hcmRN
YWM6OmNyZWF0ZShmYWxzZSwgW05TUGFzdGVib2FyZCBnZW5lcmFsUGFzdGVib2FyZF0sIHBvbGlj
eSwgMCk7CiB9CiAKLXN0YXRpYyB2b2lkIGluaXRpYWxpemVLaWxsUmluZ0lmTmVlZGVkKCkKLXsK
LSAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZEtpbGxSaW5nID0gZmFsc2U7Ci0gICAgaWYgKCFp
bml0aWFsaXplZEtpbGxSaW5nKSB7Ci0gICAgICAgIGluaXRpYWxpemVkS2lsbFJpbmcgPSB0cnVl
OwotICAgICAgICBfTlNJbml0aWFsaXplS2lsbFJpbmcoKTsKLSAgICB9Ci19Ci0KLXZvaWQgRWRp
dG9yOjphcHBlbmRUb0tpbGxSaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQotewotICAgIGluaXRp
YWxpemVLaWxsUmluZ0lmTmVlZGVkKCk7Ci0gICAgX05TQXBwZW5kVG9LaWxsUmluZyhzdHJpbmcp
OwotfQotCi12b2lkIEVkaXRvcjo6cHJlcGVuZFRvS2lsbFJpbmcoY29uc3QgU3RyaW5nJiBzdHJp
bmcpCi17Ci0gICAgaW5pdGlhbGl6ZUtpbGxSaW5nSWZOZWVkZWQoKTsKLSAgICBfTlNQcmVwZW5k
VG9LaWxsUmluZyhzdHJpbmcpOwotfQotCi1TdHJpbmcgRWRpdG9yOjp5YW5rRnJvbUtpbGxSaW5n
KCkKLXsKLSAgICBpbml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgpOwotICAgIHJldHVybiBfTlNZ
YW5rRnJvbUtpbGxSaW5nKCk7Ci19Ci0KLXZvaWQgRWRpdG9yOjpzdGFydE5ld0tpbGxSaW5nU2Vx
dWVuY2UoKQotewotICAgIGluaXRpYWxpemVLaWxsUmluZ0lmTmVlZGVkKCk7Ci0gICAgX05TTmV3
S2lsbFJpbmdTZXF1ZW5jZSgpOwotfQotCi12b2lkIEVkaXRvcjo6c2V0S2lsbFJpbmdUb1lhbmtl
ZFN0YXRlKCkKLXsKLSAgICBpbml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgpOwotICAgIF9OU1Nl
dEtpbGxSaW5nVG9ZYW5rZWRTdGF0ZSgpOwotfQotCiB2b2lkIEVkaXRvcjo6c2hvd0ZvbnRQYW5l
bCgpCiB7CiAgICAgW1tOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZvbnRNYW5hZ2VyXSBvcmRlckZyb250
Rm9udFBhbmVsOm5pbF07CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0tpbGxSaW5nLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9LaWxsUmluZy5oCShyZXZpc2lvbiAwKQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS9LaWxsUmluZy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
IAorICovCisKKyNpZm5kZWYgS2lsbFJpbmdfaAorI2RlZmluZSBLaWxsUmluZ19oCisKKyNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEtp
bGxSaW5nIHsKK3B1YmxpYzoKKyAgICB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmcmKTsKKyAgICB2
b2lkIHByZXBlbmQoY29uc3QgU3RyaW5nJik7CisgICAgU3RyaW5nIHlhbmsoKTsKKyAgICB2b2lk
IHN0YXJ0TmV3U2VxdWVuY2UoKTsKKyAgICB2b2lkIHNldFRvWWFua2VkU3RhdGUoKTsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEtpbGxSaW5nX2gKClByb3BlcnR5
IGNoYW5nZXMgb246IFdlYkNvcmUvcGxhdGZvcm0vS2lsbFJpbmcuaApfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVk
OiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL0tpbGxSaW5n
Tm9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9LaWxsUmluZ05vbmUuY3Bw
CShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9LaWxsUmluZ05vbmUuY3BwCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiS2lsbFJpbmcu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEtpbGxSaW5nOjphcHBlbmQoY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCit7Cit9CisKK3ZvaWQgS2lsbFJpbmc6OnByZXBlbmQoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCit7Cit9CisKK1N0cmluZyBLaWxsUmluZzo6eWFuaygpCit7CisgICAgcmV0
dXJuIFN0cmluZygpOworfQorCit2b2lkIEtpbGxSaW5nOjpzdGFydE5ld1NlcXVlbmNlKCkKK3sK
K30KKwordm9pZCBLaWxsUmluZzo6c2V0VG9ZYW5rZWRTdGF0ZSgpCit7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKClByb3BlcnR5IGNoYW5nZXMgb246IFdlYkNvcmUvcGxhdGZvcm0vS2ls
bFJpbmdOb25lLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL21hYy9LaWxsUmluZ01hYy5tbQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL21hYy9LaWxsUmluZ01hYy5tbQkocmV2aXNpb24gMCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vbWFjL0tpbGxSaW5nTWFjLm1tCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDgz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIktpbGxSaW5nLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworZXh0ZXJuICJDIiB7CisKKy8vIEtpbGwgcmluZyBjYWxscy4gV291bGQgYmUgYmV0dGVy
IHRvIHVzZSBOU0tpbGxSaW5nLmgsIGJ1dCB0aGF0J3Mgbm90IGF2YWlsYWJsZSBhcyBBUEkgb3Ig
U1BJLgorCit2b2lkIF9OU0luaXRpYWxpemVLaWxsUmluZygpOwordm9pZCBfTlNBcHBlbmRUb0tp
bGxSaW5nKE5TU3RyaW5nICopOwordm9pZCBfTlNQcmVwZW5kVG9LaWxsUmluZyhOU1N0cmluZyAq
KTsKK05TU3RyaW5nICpfTlNZYW5rRnJvbUtpbGxSaW5nKCk7Cit2b2lkIF9OU05ld0tpbGxSaW5n
U2VxdWVuY2UoKTsKK3ZvaWQgX05TU2V0S2lsbFJpbmdUb1lhbmtlZFN0YXRlKCk7CisKK30KKwor
c3RhdGljIHZvaWQgaW5pdGlhbGl6ZUtpbGxSaW5nSWZOZWVkZWQoKQoreworICAgIHN0YXRpYyBi
b29sIGluaXRpYWxpemVkS2lsbFJpbmcgPSBmYWxzZTsKKyAgICBpZiAoIWluaXRpYWxpemVkS2ls
bFJpbmcpIHsKKyAgICAgICAgaW5pdGlhbGl6ZWRLaWxsUmluZyA9IHRydWU7CisgICAgICAgIF9O
U0luaXRpYWxpemVLaWxsUmluZygpOworICAgIH0KK30KKwordm9pZCBLaWxsUmluZzo6YXBwZW5k
KGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIGluaXRpYWxpemVLaWxsUmluZ0lmTmVlZGVk
KCk7CisgICAgX05TQXBwZW5kVG9LaWxsUmluZyhzdHJpbmcpOworfQorCit2b2lkIEtpbGxSaW5n
OjpwcmVwZW5kKGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIGluaXRpYWxpemVLaWxsUmlu
Z0lmTmVlZGVkKCk7CisgICAgX05TUHJlcGVuZFRvS2lsbFJpbmcoc3RyaW5nKTsKK30KKworU3Ry
aW5nIEtpbGxSaW5nOjp5YW5rKCkKK3sKKyAgICBpbml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgp
OworICAgIHJldHVybiBfTlNZYW5rRnJvbUtpbGxSaW5nKCk7Cit9CisKK3ZvaWQgS2lsbFJpbmc6
OnN0YXJ0TmV3U2VxdWVuY2UoKQoreworICAgIGluaXRpYWxpemVLaWxsUmluZ0lmTmVlZGVkKCk7
CisgICAgX05TTmV3S2lsbFJpbmdTZXF1ZW5jZSgpOworfQorCit2b2lkIEtpbGxSaW5nOjpzZXRU
b1lhbmtlZFN0YXRlKCkKK3sKKyAgICBpbml0aWFsaXplS2lsbFJpbmdJZk5lZWRlZCgpOworICAg
IF9OU1NldEtpbGxSaW5nVG9ZYW5rZWRTdGF0ZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBXZWJDb3JlL3BsYXRmb3JtL21hYy9LaWxsUmluZ01h
Yy5tbQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>