<?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>24456</bug_id>
          
          <creation_ts>2009-03-08 10:39:56 -0700</creation_ts>
          <short_desc>Chromium Unforking: Split ColorChromium.cpp into Windows + Mac variants</short_desc>
          <delta_ts>2009-03-19 09:43:51 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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="Jeremy Moskovich">playmobil</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>agl</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>112787</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2009-03-08 10:39:56 -0700</bug_when>
    <thetext>Split ColorChromium.cpp into Mac &amp; Windows variants.

Remove Chromium Dependency on platform/graphics/mac/ColorMac.mm since we ultimately need to take a different approach (e.g. in the face of the sandbox we need to ship things over IPC from the browser process).  For now, createCGColor() is copied from ColorMac.mm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112788</commentid>
    <comment_count>1</comment_count>
      <attachid>28408</attachid>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2009-03-08 10:43:06 -0700</bug_when>
    <thetext>Created attachment 28408
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112797</commentid>
    <comment_count>2</comment_count>
      <attachid>28408</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-03-08 22:34:14 -0700</bug_when>
    <thetext>Comment on attachment 28408
patch

Why is it so important to remove the dependance on ColorMac.mm?  It seems that it would be better for us to not duplicate code as a general rule.

Splitting out the win version seems fine, but it seems it also needs a comment about Windows listening to the browser process for focus changes.  Probably the &quot;getting the focus ring color from the browser process&quot; could be x-platform code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112803</commentid>
    <comment_count>3</comment_count>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2009-03-09 01:46:52 -0700</bug_when>
    <thetext>Thanks for looking at this Eric,

This CL puts is into an intermediate state but I think the comments point clearly at where we want to go.

While I&apos;d like to land something finished with everything fully plumed through, splitting the files up and adding comments creates an easier path to move in that direction and allows us to unfork our copy of ColorMac.mm.

The motivation for taking the code from ColorMac is that, we do want to do our own thing [in the face of MP &amp; the Sandbox], and while duplicating code sucks, IMHO the small quantity and comments are cleaner than other potential solutions (upstreaming our ifdefed version of ColorMac.mm).

If you think there&apos;s a way we can comment things more clearly, or file bugs to track this more closely I&apos;m all for it.

Good point about the tint color changed notification on the Windows side, I&apos;ll ping the relevant people and see what the right thing to do is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112832</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-03-09 09:22:25 -0700</bug_when>
    <thetext>What is the solution for Chromium Linux?  Wouldn&apos;t the current patch break the Linux build?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>112852</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Langley">agl</who>
    <bug_when>2009-03-09 10:25:52 -0700</bug_when>
    <thetext>For Linux, one could either change ColorChromiumWin.* to ColorChromium.*, or duplicate the Windows code to ChromiumLinux.cpp. At the moment, we have no plans to do anything other than pick a static colour.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113174</commentid>
    <comment_count>6</comment_count>
      <attachid>28477</attachid>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2009-03-11 06:29:56 -0700</bug_when>
    <thetext>Created attachment 28477
patch1

Sliced stuff a little differently:
ColorChromium.cpp vs ColorChromiumMac.mm.

Added comment to reflect the fact that we are content to use a static focus ring color on Windows/Linux.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113825</commentid>
    <comment_count>7</comment_count>
      <attachid>28477</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2009-03-15 08:40:26 -0700</bug_when>
    <thetext>Comment on attachment 28477
patch1

&gt;+++ b/WebCore/ChangeLog
&gt;+2009-03-11  Jeremy Moskovich  &lt;jeremy@chromium.org&gt;
&gt;+
&gt;+        Reviewed by NOBODY (OOPS!).
&gt;+
&gt;+        Split ColorChromium.cpp into Mac &amp; Windows variants.
&gt;+        Remove Chromium Dependency on platform/graphics/mac/ColorMac.mm since we
&gt;+        ultimately need to take a different approach.  For now, createCGColor()
&gt;+        is copied from ColorMac.mm.
&gt;+
&gt;+        No observable change in behavior, so no test.

nit: please add a bug link in here.


&gt;+
&gt;+        * platform/graphics/chromium/ColorChromium.cpp:
&gt;+        (WebCore::focusRingColor):
&gt;+        * platform/graphics/chromium/ColorChromiumMac.mm: Added.
&gt;+        (WebCore::focusRingColor):
&gt;+        (WebCore::nsColor):
&gt;+        (WebCore::CGColorFromNSColor):
&gt;+        (WebCore::createCGColor):

nit: for newly added files, please remove the lines that mention the newly added
functions.  i wish prepare-ChangeLog did that automatically :-/


&gt;+++ b/WebCore/platform/graphics/chromium/ColorChromiumMac.mm
&gt;@@ -0,0 +1,131 @@
&gt;+/*
&gt;+ * Copyright (C) 2008 Google Inc. All rights reserved.

This copyright info is not correct, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114248</commentid>
    <comment_count>8</comment_count>
      <attachid>28736</attachid>
    <who name="Jeremy Moskovich">playmobil</who>
    <bug_when>2009-03-18 16:26:01 -0700</bug_when>
    <thetext>Created attachment 28736
patch2

Fixes for Darines comments (thanks!)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114324</commentid>
    <comment_count>9</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-03-19 09:43:51 -0700</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/41839.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28408</attachid>
            <date>2009-03-08 10:43:06 -0700</date>
            <delta_ts>2009-03-11 06:29:56 -0700</delta_ts>
            <desc>patch</desc>
            <filename>color.patch</filename>
            <type>text/plain</type>
            <size>12671</size>
            <attacher name="Jeremy Moskovich">playmobil</attacher>
            
              <data encoding="base64">Y29tbWl0IGFmYmU3OWM1OTY3MTQ4ZjA0OWVmYjE2ZjYzMmEwYTA5ZjdiM2E1MTEKQXV0aG9yOiBK
ZXJlbXkgTW9za292aWNoIDxqZXJlbXlAY2hyb21pdW0ub3JnPgpEYXRlOiAgIFN1biBNYXIgOCAx
OTo0MTo1OSAyMDA5ICswMjAwCgogICAgU3BsaXQgQ29sb3JDaHJvbWl1bS5jcHAgaW50byBNYWMg
JiBXaW5kb3dzIHZhcmlhbnRzLgogICAgCiAgICBSZW1vdmUgQ2hyb21pdW0gRGVwZW5kZW5jeSBv
biBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29sb3JNYWMubW0gc2luY2Ugd2UgdWx0aW1hdGVseSBu
ZWVkIHRvIHRha2UgYSBkaWZmZXJlbnQgYXBwcm9hY2guICBGb3Igbm93LCBjcmVhdGVDR0NvbG9y
KCkgaXMgY29waWVkIGZyb20gQ29sb3JNYWMubW0uCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmYTVkZGE3Li40MTVmMDZkIDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIzIEBACisyMDA5LTAzLTA4ICBKZXJlbXkgTW9za292aWNoICA8amVyZW15QGNocm9taXVtLm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTcGxp
dCBDb2xvckNocm9taXVtLmNwcCBpbnRvIE1hYyAmIFdpbmRvd3MgdmFyaWFudHMuCisgICAgICAg
IFJlbW92ZSBDaHJvbWl1bSBEZXBlbmRlbmN5IG9uIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db2xv
ck1hYy5tbSBzaW5jZSB3ZQorICAgICAgICB1bHRpbWF0ZWx5IG5lZWQgdG8gdGFrZSBhIGRpZmZl
cmVudCBhcHByb2FjaC4gIEZvciBub3csIGNyZWF0ZUNHQ29sb3IoKQorICAgICAgICBpcyBjb3Bp
ZWQgZnJvbSBDb2xvck1hYy5tbS4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGNoYW5nZSBpbiBi
ZWhhdmlvciwgc28gbm8gdGVzdC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0NvbG9yQ2hyb21pdW0uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0NvbG9yQ2hyb21pdW1NYWMubW06IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Zm9jdXNSaW5nQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6bnNDb2xvcik6CisgICAgICAg
IChXZWJDb3JlOjpDR0NvbG9yRnJvbU5TQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRl
Q0dDb2xvcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29sb3JDaHJv
bWl1bVdpbi5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Zm9jdXNSaW5nQ29sb3IpOgor
CiAyMDA5LTAzLTA3ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgTWFyayBSb3dlLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9Db2xvckNocm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vQ29sb3JDaHJvbWl1bS5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDE2Y2ExN2QuLjAwMDAwMDAKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Db2xvckNocm9taXVtLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDggR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
Ci0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNvbG9yLmgiCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotQ29sb3IgZm9jdXNSaW5nQ29sb3IoKQotewotLy8gRklYTUU6IFRo
aXMgc2hvdWxkIGJlIHNwbGl0IHVwIHRvIENvbG9yQ2hyb21pdW1XaW4gYW5kIENvbG9yQ2hyb21p
dW1NYWMuCi0jaWYgUExBVEZPUk0oREFSV0lOKQotICAgIC8vIFRvIGF2b2lkIHRoZSBNYWMgQ2hy
b21pdW0gYnVpbGQgaGF2aW5nIHRvIHJlYmFzbGluZSA1MDArIGxheW91dCB0ZXN0cyBhbmQKLSAg
ICAvLyBjb250aW51ZSB0byBkbyB0aGlzIHcvIG5ldyB0ZXN0cyB0aGF0IGdldCBsYW5kZWQgaW4g
V2ViS2l0LCB3ZSB3YW50IHRvCi0gICAgLy8gcnVuIHRoZSBsYXlvdXQgdGVzdHMgdy8gdGhlIHNh
bWUgY29sb3IgdGhhdCBzdG9jayBXZWJLaXQgdXNlcy4KLSAgICAvLyAKLSAgICAvLyBUT0RPOiBG
b3Igbm93IHdlJ3ZlIGhhcmQgY29kZWQgdGhlIGNvbG9yIHRoYXQgV2ViS2l0IHVzZXMgZm9yIGxh
eW91dAotICAgIC8vIHRlc3RzLiAgV2UgbmVlZCB0byByZXZpc2l0IHRoaXMgYW5kIGRvIGVpdGhl
ciBvZiB0aGUgZm9sbG93aW5nOgotICAgIC8vICBBLiBGdWxseSBob25vciB0aGUgY29sb3IgZnJv
bSB0aGUgVUksIHdoaWNoIG1lYW5zIGNvbGxlY3RpbmcgdGhlIGNvbG9yCi0gICAgLy8gICAgIChh
bmQgY2hhbmdlIG5vdGlmaWNhdGlvbnMpIGluIHRoZSBicm93c2VyIHByb2Nlc3MsIGFuZCBtZXNz
YWdpbmcgdGhlCi0gICAgLy8gICAgIGNvbG9yIHRvIHRoZSByZW5kZXIgcHJvY2Vzcy4KLSAgICAv
LyAgQi4gQWRkaW5nIGEgImxheW91dCB0ZXN0cyIgZmxhZywgdG8gY29udHJvbCB0aGUgb3JhZ2Ug
dnMuIGJsdWUgY29sb3JzCi0gICAgLy8gICAgIGRlcGVuZGluZyBpZiB3ZSdyZSBydW5uaW5nIGxh
eW91dCB0ZXN0cy4KLSAgICAvLyBUbyBzZWUgdGhlIFdlYktpdCBpbXBsZW1lbnRhdGlvbiBvZiB1
c2luZyB0aGUgVUkgY29sb3IgYW5kL29yIGEgZmxhZyBmb3IKLSAgICAvLyBsYXlvdXQgdGVzdHMg
c2VlIFdlYktpdC9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db2xvck1hYy5tbS4KLSAg
ICAvLyAoUmVhbGl0eSBpcyB3ZSBqdXN0IG5lZWQgYW4gYXBpIHRvIG92ZXJyaWRlIHRoZSBmb2N1
cyBjb2xvciBhbmQgYm90aAotICAgIC8vIG9mIHRoZSBhYm92ZSBhcmUgY292ZXJlZCBmb3Igd2hh
dCB0aGlzIGZpbGUgbmVlZHMgdG8gcHJvdmlkZSwgdGhlCi0gICAgLy8gdHdvIG9wdGlvbnMgd291
bGQgYmUgZGV0YWlscyB0aGF0IGhhcHBlbiBpbiBvdGhlciBwbGFjZXMuKQotCi0gICAgLy8gRnJv
bSBXZWJLaXQ6Ci0gICAgLy8gc3RhdGljIFJHQkEzMiBvbGRBcXVhRm9jdXNSaW5nQ29sb3JSR0JB
ID0gMHhGRjdEQUREOTsKLSAgICBzdGF0aWMgQ29sb3Igb2xkQXF1YUZvY3VzUmluZ0NvbG9yKDB4
N0QsIDB4QUQsIDB4RDksIDB4RkYpOwotICAgIHJldHVybiBvbGRBcXVhRm9jdXNSaW5nQ29sb3I7
Ci0jZWxzZQotICAgIHN0YXRpYyBDb2xvciBmb2N1c1JpbmdDb2xvcigyMjksIDE1MSwgMCwgMjU1
KTsKLSAgICByZXR1cm4gZm9jdXNSaW5nQ29sb3I7Ci0jZW5kaWYKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9Db2xvckNocm9taXVtTWFjLm1tIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9Db2xvckNocm9taXVtTWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmY1NzIyZjcKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0NvbG9yQ2hyb21pdW1NYWMubW0KQEAgLTAsMCArMSwxMzEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDggR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvbG9yLmgiCisKKyNpbXBvcnQgPHd0Zi9B
c3NlcnRpb25zLmg+CisjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW1wb3J0IDx3dGYv
UmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ29sb3IgZm9jdXNSaW5nQ29s
b3IoKQoreworICAgIC8vIFRvIGF2b2lkIHRoZSBNYWMgQ2hyb21pdW0gYnVpbGQgaGF2aW5nIHRv
IHJlYmFzbGluZSA1MDArIGxheW91dCB0ZXN0cyBhbmQKKyAgICAvLyBjb250aW51ZSB0byBkbyB0
aGlzIHcvIG5ldyB0ZXN0cyB0aGF0IGdldCBsYW5kZWQgaW4gV2ViS2l0LCB3ZSB3YW50IHRvCisg
ICAgLy8gcnVuIHRoZSBsYXlvdXQgdGVzdHMgdy8gdGhlIHNhbWUgY29sb3IgdGhhdCBzdG9jayBX
ZWJLaXQgdXNlcy4KKyAgICAvLyAKKyAgICAvLyBUT0RPOiBGb3Igbm93IHdlJ3ZlIGhhcmQgY29k
ZWQgdGhlIGNvbG9yIHRoYXQgV2ViS2l0IHVzZXMgZm9yIGxheW91dAorICAgIC8vIHRlc3RzLiAg
V2UgbmVlZCB0byByZXZpc2l0IHRoaXMgYW5kIGRvIGVpdGhlciBvZiB0aGUgZm9sbG93aW5nOgor
ICAgIC8vICBBLiBGdWxseSBob25vciB0aGUgY29sb3IgZnJvbSB0aGUgVUksIHdoaWNoIG1lYW5z
IGNvbGxlY3RpbmcgdGhlIGNvbG9yCisgICAgLy8gICAgIChhbmQgY2hhbmdlIG5vdGlmaWNhdGlv
bnMpIGluIHRoZSBicm93c2VyIHByb2Nlc3MsIGFuZCBtZXNzYWdpbmcgdGhlCisgICAgLy8gICAg
IGNvbG9yIHRvIHRoZSByZW5kZXIgcHJvY2Vzcy4KKyAgICAvLyAgQi4gQWRkaW5nIGEgImxheW91
dCB0ZXN0cyIgZmxhZywgdG8gY29udHJvbCB0aGUgb3JhZ2UgdnMuIGJsdWUgY29sb3JzCisgICAg
Ly8gICAgIGRlcGVuZGluZyBpZiB3ZSdyZSBydW5uaW5nIGxheW91dCB0ZXN0cy4KKyAgICAvLyBU
byBzZWUgdGhlIFdlYktpdCBpbXBsZW1lbnRhdGlvbiBvZiB1c2luZyB0aGUgVUkgY29sb3IgYW5k
L29yIGEgZmxhZyBmb3IKKyAgICAvLyBsYXlvdXQgdGVzdHMgc2VlIFdlYktpdC9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9Db2xvck1hYy5tbS4KKyAgICAvLyAoUmVhbGl0eSBpcyB3ZSBq
dXN0IG5lZWQgYW4gYXBpIHRvIG92ZXJyaWRlIHRoZSBmb2N1cyBjb2xvciBhbmQgYm90aAorICAg
IC8vIG9mIHRoZSBhYm92ZSBhcmUgY292ZXJlZCBmb3Igd2hhdCB0aGlzIGZpbGUgbmVlZHMgdG8g
cHJvdmlkZSwgdGhlCisgICAgLy8gdHdvIG9wdGlvbnMgd291bGQgYmUgZGV0YWlscyB0aGF0IGhh
cHBlbiBpbiBvdGhlciBwbGFjZXMuKQorCisgICAgLy8gRnJvbSBXZWJLaXQ6CisgICAgLy8gc3Rh
dGljIFJHQkEzMiBvbGRBcXVhRm9jdXNSaW5nQ29sb3JSR0JBID0gMHhGRjdEQUREOTsKKyAgICBz
dGF0aWMgQ29sb3Igb2xkQXF1YUZvY3VzUmluZ0NvbG9yKDB4N0QsIDB4QUQsIDB4RDksIDB4RkYp
OworICAgIHJldHVybiBvbGRBcXVhRm9jdXNSaW5nQ29sb3I7Cit9CisKKy8vIGNyZWF0ZUNHQ29s
b3IoKSBhbmQgdGhlIGZ1bmN0aW9ucyBpdCBjYWxscyBhcmUgdmVyYmF0dW0gY29waWVzIG9mCisv
LyBncmFwaGljcy9tYWMvQ29sb3JNYWMubW0uICBUaGVzZSBhcmUgY29waWVkIGhlcmUgc28gdGhh
dCB3ZSBkb24ndCBuZWVkIHRvCisvLyBpbmNsdWRlIENvbG9yTWFjLm1tIGluIHRoZSBDaHJvbWl1
bSBidWlsZC4KKy8vIEZJWE1FOiBDaGVjayBmZWFzaWJpbGl0eSBvZiB1c2luZyBwdXJlIENHIGNh
bGxzIGFuZCB1bmlmeWluZyB0aGlzIGNvcHkgd2l0aAorLy8gQ29sb3JNYWMubW0ncyB1bmRlciBn
cmFwaGljcy9jZy4KKworCitOU0NvbG9yKiBuc0NvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKK3sK
KyAgICB1bnNpZ25lZCBjID0gY29sb3IucmdiKCk7CisgICAgc3dpdGNoIChjKSB7CisgICAgICAg
IGNhc2UgMDogeworICAgICAgICAgICAgLy8gTmVlZCB0aGlzIHRvIGF2b2lkIHJldHVybmluZyBu
aWwgYmVjYXVzZSBjYWNoZWRSR0JBVmFsdWVzIHdpbGwgZGVmYXVsdCB0byAwLgorICAgICAgICAg
ICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZXRhaW5QdHI8TlNDb2xvcj4sIGNsZWFyQ29sb3IsIChb
TlNDb2xvciBjb2xvcldpdGhEZXZpY2VSZWQ6MC4wZiBncmVlbjowLjBmIGJsdWU6MC4wZiBhbHBo
YTowLjBmXSkpOworICAgICAgICAgICAgcmV0dXJuIGNsZWFyQ29sb3IuZ2V0KCk7CisgICAgICAg
IH0KKyAgICAgICAgY2FzZSBDb2xvcjo6YmxhY2s6IHsKKyAgICAgICAgICAgIERFRklORV9TVEFU
SUNfTE9DQUwoUmV0YWluUHRyPE5TQ29sb3I+LCBibGFja0NvbG9yLCAoW05TQ29sb3IgY29sb3JX
aXRoRGV2aWNlUmVkOjAuMGYgZ3JlZW46MC4wZiBibHVlOjAuMGYgYWxwaGE6MS4wZl0pKTsKKyAg
ICAgICAgICAgIHJldHVybiBibGFja0NvbG9yLmdldCgpOworICAgICAgICB9CisgICAgICAgIGNh
c2UgQ29sb3I6OndoaXRlOiB7CisgICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFJldGFp
blB0cjxOU0NvbG9yPiwgd2hpdGVDb2xvciwgKFtOU0NvbG9yIGNvbG9yV2l0aERldmljZVJlZDox
LjBmIGdyZWVuOjEuMGYgYmx1ZToxLjBmIGFscGhhOjEuMGZdKSk7CisgICAgICAgICAgICByZXR1
cm4gd2hpdGVDb2xvci5nZXQoKTsKKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0OiB7CisgICAg
ICAgICAgICBjb25zdCBpbnQgY2FjaGVTaXplID0gMzI7CisgICAgICAgICAgICBzdGF0aWMgdW5z
aWduZWQgY2FjaGVkUkdCQVZhbHVlc1tjYWNoZVNpemVdOworICAgICAgICAgICAgc3RhdGljIFJl
dGFpblB0cjxOU0NvbG9yPiogY2FjaGVkQ29sb3JzID0gbmV3IFJldGFpblB0cjxOU0NvbG9yPltj
YWNoZVNpemVdOworCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSAhPSBjYWNoZVNpemU7
ICsraSkKKyAgICAgICAgICAgICAgICBpZiAoY2FjaGVkUkdCQVZhbHVlc1tpXSA9PSBjKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGVkQ29sb3JzW2ldLmdldCgpOworCisgICAgICAg
ICAgICBOU0NvbG9yKiByZXN1bHQgPSBbTlNDb2xvciBjb2xvcldpdGhEZXZpY2VSZWQ6Y29sb3Iu
cmVkKCkgLyAyNTUuMGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBncmVlbjpjb2xvci5ncmVlbigpIC8gMjU1LjBmCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsdWU6Y29sb3IuYmx1ZSgpIC8g
MjU1LjBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYWxwaGE6Y29sb3IuYWxwaGEoKSAvMjU1LjBmXTsKKworICAgICAgICAgICAgc3RhdGljIGlu
dCBjdXJzb3I7CisgICAgICAgICAgICBjYWNoZWRSR0JBVmFsdWVzW2N1cnNvcl0gPSBjOworICAg
ICAgICAgICAgY2FjaGVkQ29sb3JzW2N1cnNvcl0gPSByZXN1bHQ7CisgICAgICAgICAgICBpZiAo
KytjdXJzb3IgPT0gY2FjaGVTaXplKQorICAgICAgICAgICAgICAgIGN1cnNvciA9IDA7CisgICAg
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgfQorfQorCitzdGF0aWMgQ0dD
b2xvclJlZiBDR0NvbG9yRnJvbU5TQ29sb3IoTlNDb2xvciogY29sb3IpCit7CisgICAgLy8gVGhp
cyBuZWVkcyB0byBhbHdheXMgdXNlIGRldmljZSBjb2xvcnNwYWNlIHNvIGl0IGNhbiBkZS1jYWxp
YnJhdGUgdGhlIGNvbG9yIGZvcgorICAgIC8vIENHQ29sb3IgdG8gcG9zc2libHkgcmVjYWxpYnJh
dGUgaXQuCisgICAgTlNDb2xvciogZGV2aWNlQ29sb3IgPSBbY29sb3IgY29sb3JVc2luZ0NvbG9y
U3BhY2VOYW1lOk5TRGV2aWNlUkdCQ29sb3JTcGFjZV07CisgICAgQ0dGbG9hdCByZWQgPSBbZGV2
aWNlQ29sb3IgcmVkQ29tcG9uZW50XTsKKyAgICBDR0Zsb2F0IGdyZWVuID0gW2RldmljZUNvbG9y
IGdyZWVuQ29tcG9uZW50XTsKKyAgICBDR0Zsb2F0IGJsdWUgPSBbZGV2aWNlQ29sb3IgYmx1ZUNv
bXBvbmVudF07CisgICAgQ0dGbG9hdCBhbHBoYSA9IFtkZXZpY2VDb2xvciBhbHBoYUNvbXBvbmVu
dF07CisgICAgY29uc3QgQ0dGbG9hdCBjb21wb25lbnRzWzRdID0geyByZWQsIGdyZWVuLCBibHVl
LCBhbHBoYSB9OworICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgZGV2aWNlUkdCQ29sb3JTcGFj
ZSA9IENHQ29sb3JTcGFjZUNyZWF0ZURldmljZVJHQigpOworICAgIENHQ29sb3JSZWYgY2dDb2xv
ciA9IENHQ29sb3JDcmVhdGUoZGV2aWNlUkdCQ29sb3JTcGFjZSwgY29tcG9uZW50cyk7CisgICAg
cmV0dXJuIGNnQ29sb3I7Cit9CisKK0NHQ29sb3JSZWYgY3JlYXRlQ0dDb2xvcihjb25zdCBDb2xv
ciYgYykKK3sKKyAgICAvLyBXZSBjb3VsZCBkaXJlY3RseSBjcmVhdGUgYSBDR0NvbG9yIGhlcmUs
IGJ1dCB0aGF0IHdvdWxkCisgICAgLy8gc2tpcCBhbnkgUkdCIGNhY2hpbmcgdGhlIG5zQ29sb3Ig
bWV0aG9kIGRvZXMuIEEgZGlyZWN0IAorICAgIC8vIGNyZWF0aW9uIGNvdWxkIGJlIGludmVzdGln
YXRlZCBmb3IgYSBwb3NzaWJsZSBwZXJmb3JtYW5jZSB3aW4uCisgICAgcmV0dXJuIENHQ29sb3JG
cm9tTlNDb2xvcihuc0NvbG9yKGMpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db2xvckNocm9taXVt
V2luLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29sb3JDaHJvbWl1
bVdpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWQ0NWMzNgotLS0g
L2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29sb3JD
aHJvbWl1bVdpbi5jcHAKQEAgLTAsMCArMSwzNyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
OCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiQ29sb3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDb2xv
ciBmb2N1c1JpbmdDb2xvcigpCit7CisgICAgc3RhdGljIENvbG9yIGZvY3VzUmluZ0NvbG9yKDIy
OSwgMTUxLCAwLCAyNTUpOworICAgIHJldHVybiBmb2N1c1JpbmdDb2xvcjsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQo=
</data>
<flag name="review"
          id="13919"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28477</attachid>
            <date>2009-03-11 06:29:56 -0700</date>
            <delta_ts>2009-03-18 16:26:01 -0700</delta_ts>
            <desc>patch1</desc>
            <filename>color.patch</filename>
            <type>text/plain</type>
            <size>9580</size>
            <attacher name="Jeremy Moskovich">playmobil</attacher>
            
              <data encoding="base64">Y29tbWl0IDViY2ViYmE1ZDQ0ZjNlYzU0Yjk1NmVhMTM0YTM4Y2E2MDNmNjFiNjQKQXV0aG9yOiBK
ZXJlbXkgTW9za292aWNoIDxqZXJlbXlAY2hyb21pdW0ub3JnPgpEYXRlOiAgIFdlZCBNYXIgMTEg
MTU6Mjc6NTEgMjAwOSArMDIwMAoKICAgIFNwbGl0IENvbG9yQ2hyb21pdW0uY3BwIGludG8gTWFj
ICYgV2luZG93cyB2YXJpYW50cy4KICAgIAogICAgUmVtb3ZlIENocm9taXVtIERlcGVuZGVuY3kg
b24gcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbG9yTWFjLm1tIHNpbmNlIHdlIHVsdGltYXRlbHkg
bmVlZCB0byB0YWtlIGEgZGlmZmVyZW50IGFwcHJvYWNoLiAgRm9yIG5vdywgY3JlYXRlQ0dDb2xv
cigpIGlzIGNvcGllZCBmcm9tIENvbG9yTWFjLm1tLgoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmE1ZGRhNy4uZDdjZGMyYSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMiBAQAorMjAwOS0wMy0xMSAgSmVyZW15IE1vc2tvdmljaCAgPGplcmVteUBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Bs
aXQgQ29sb3JDaHJvbWl1bS5jcHAgaW50byBNYWMgJiBXaW5kb3dzIHZhcmlhbnRzLgorICAgICAg
ICBSZW1vdmUgQ2hyb21pdW0gRGVwZW5kZW5jeSBvbiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29s
b3JNYWMubW0gc2luY2Ugd2UKKyAgICAgICAgdWx0aW1hdGVseSBuZWVkIHRvIHRha2UgYSBkaWZm
ZXJlbnQgYXBwcm9hY2guICBGb3Igbm93LCBjcmVhdGVDR0NvbG9yKCkKKyAgICAgICAgaXMgY29w
aWVkIGZyb20gQ29sb3JNYWMubW0uCisKKyAgICAgICAgTm8gb2JzZXJ2YWJsZSBjaGFuZ2UgaW4g
YmVoYXZpb3IsIHNvIG5vIHRlc3QuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Db2xvckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZvY3VzUmluZ0NvbG9y
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db2xvckNocm9taXVtTWFj
Lm1tOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmZvY3VzUmluZ0NvbG9yKToKKyAgICAgICAg
KFdlYkNvcmU6Om5zQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6Q0dDb2xvckZyb21OU0NvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNHQ29sb3IpOgorCiAyMDA5LTAzLTA3ICBEYW4g
QmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBS
b3dlLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db2xv
ckNocm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29sb3JD
aHJvbWl1bS5jcHAKaW5kZXggMTZjYTE3ZC4uNjQ3MTY5YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db2xvckNocm9taXVtLmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbG9yQ2hyb21pdW0uY3BwCkBAIC0yOCwzNSAr
MjgsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisjaWYgIVBMQVRGT1JNKERBUldJTikK
Ky8vIE9uIE9TIFgsIHRoZXJlJ3MgY29kZSB0byBtb25pdG9yIGNoYW5nZXMgaW4gdGhlIGZvY3Vz
IGNvbG9yIHN5c3RlbSBzZXR0aW5nLgorLy8gT24gV2luZG93cy9MaW51eCB0aGVyZSBpcyBubyBl
cXVpdmFsZW50IHN5c3RlbSBzZXR0aW5nIGFuZCB0aGVyZWZvcmUgYSBzdGF0aWMKKy8vIGNvbG9y
IGlzIGFsbCB3ZSBuZWVkLgogQ29sb3IgZm9jdXNSaW5nQ29sb3IoKQogewotLy8gRklYTUU6IFRo
aXMgc2hvdWxkIGJlIHNwbGl0IHVwIHRvIENvbG9yQ2hyb21pdW1XaW4gYW5kIENvbG9yQ2hyb21p
dW1NYWMuCi0jaWYgUExBVEZPUk0oREFSV0lOKQotICAgIC8vIFRvIGF2b2lkIHRoZSBNYWMgQ2hy
b21pdW0gYnVpbGQgaGF2aW5nIHRvIHJlYmFzbGluZSA1MDArIGxheW91dCB0ZXN0cyBhbmQKLSAg
ICAvLyBjb250aW51ZSB0byBkbyB0aGlzIHcvIG5ldyB0ZXN0cyB0aGF0IGdldCBsYW5kZWQgaW4g
V2ViS2l0LCB3ZSB3YW50IHRvCi0gICAgLy8gcnVuIHRoZSBsYXlvdXQgdGVzdHMgdy8gdGhlIHNh
bWUgY29sb3IgdGhhdCBzdG9jayBXZWJLaXQgdXNlcy4KLSAgICAvLyAKLSAgICAvLyBUT0RPOiBG
b3Igbm93IHdlJ3ZlIGhhcmQgY29kZWQgdGhlIGNvbG9yIHRoYXQgV2ViS2l0IHVzZXMgZm9yIGxh
eW91dAotICAgIC8vIHRlc3RzLiAgV2UgbmVlZCB0byByZXZpc2l0IHRoaXMgYW5kIGRvIGVpdGhl
ciBvZiB0aGUgZm9sbG93aW5nOgotICAgIC8vICBBLiBGdWxseSBob25vciB0aGUgY29sb3IgZnJv
bSB0aGUgVUksIHdoaWNoIG1lYW5zIGNvbGxlY3RpbmcgdGhlIGNvbG9yCi0gICAgLy8gICAgIChh
bmQgY2hhbmdlIG5vdGlmaWNhdGlvbnMpIGluIHRoZSBicm93c2VyIHByb2Nlc3MsIGFuZCBtZXNz
YWdpbmcgdGhlCi0gICAgLy8gICAgIGNvbG9yIHRvIHRoZSByZW5kZXIgcHJvY2Vzcy4KLSAgICAv
LyAgQi4gQWRkaW5nIGEgImxheW91dCB0ZXN0cyIgZmxhZywgdG8gY29udHJvbCB0aGUgb3JhZ2Ug
dnMuIGJsdWUgY29sb3JzCi0gICAgLy8gICAgIGRlcGVuZGluZyBpZiB3ZSdyZSBydW5uaW5nIGxh
eW91dCB0ZXN0cy4KLSAgICAvLyBUbyBzZWUgdGhlIFdlYktpdCBpbXBsZW1lbnRhdGlvbiBvZiB1
c2luZyB0aGUgVUkgY29sb3IgYW5kL29yIGEgZmxhZyBmb3IKLSAgICAvLyBsYXlvdXQgdGVzdHMg
c2VlIFdlYktpdC9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db2xvck1hYy5tbS4KLSAg
ICAvLyAoUmVhbGl0eSBpcyB3ZSBqdXN0IG5lZWQgYW4gYXBpIHRvIG92ZXJyaWRlIHRoZSBmb2N1
cyBjb2xvciBhbmQgYm90aAotICAgIC8vIG9mIHRoZSBhYm92ZSBhcmUgY292ZXJlZCBmb3Igd2hh
dCB0aGlzIGZpbGUgbmVlZHMgdG8gcHJvdmlkZSwgdGhlCi0gICAgLy8gdHdvIG9wdGlvbnMgd291
bGQgYmUgZGV0YWlscyB0aGF0IGhhcHBlbiBpbiBvdGhlciBwbGFjZXMuKQotCi0gICAgLy8gRnJv
bSBXZWJLaXQ6Ci0gICAgLy8gc3RhdGljIFJHQkEzMiBvbGRBcXVhRm9jdXNSaW5nQ29sb3JSR0JB
ID0gMHhGRjdEQUREOTsKLSAgICBzdGF0aWMgQ29sb3Igb2xkQXF1YUZvY3VzUmluZ0NvbG9yKDB4
N0QsIDB4QUQsIDB4RDksIDB4RkYpOwotICAgIHJldHVybiBvbGRBcXVhRm9jdXNSaW5nQ29sb3I7
Ci0jZWxzZQogICAgIHN0YXRpYyBDb2xvciBmb2N1c1JpbmdDb2xvcigyMjksIDE1MSwgMCwgMjU1
KTsKICAgICByZXR1cm4gZm9jdXNSaW5nQ29sb3I7Ci0jZW5kaWYKIH0KKyNlbmRpZgogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0NvbG9yQ2hyb21pdW1NYWMubW0gYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL0NvbG9yQ2hyb21pdW1NYWMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZjU3MjJmNwotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vQ29sb3JDaHJvbWl1bU1hYy5tbQpAQCAtMCwwICsxLDEzMSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwOCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVU
RVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRF
UiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29sb3IuaCIKKworI2ltcG9y
dCA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbXBvcnQgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitDb2xvciBmb2N1
c1JpbmdDb2xvcigpCit7CisgICAgLy8gVG8gYXZvaWQgdGhlIE1hYyBDaHJvbWl1bSBidWlsZCBo
YXZpbmcgdG8gcmViYXNsaW5lIDUwMCsgbGF5b3V0IHRlc3RzIGFuZAorICAgIC8vIGNvbnRpbnVl
IHRvIGRvIHRoaXMgdy8gbmV3IHRlc3RzIHRoYXQgZ2V0IGxhbmRlZCBpbiBXZWJLaXQsIHdlIHdh
bnQgdG8KKyAgICAvLyBydW4gdGhlIGxheW91dCB0ZXN0cyB3LyB0aGUgc2FtZSBjb2xvciB0aGF0
IHN0b2NrIFdlYktpdCB1c2VzLgorICAgIC8vIAorICAgIC8vIFRPRE86IEZvciBub3cgd2UndmUg
aGFyZCBjb2RlZCB0aGUgY29sb3IgdGhhdCBXZWJLaXQgdXNlcyBmb3IgbGF5b3V0CisgICAgLy8g
dGVzdHMuICBXZSBuZWVkIHRvIHJldmlzaXQgdGhpcyBhbmQgZG8gZWl0aGVyIG9mIHRoZSBmb2xs
b3dpbmc6CisgICAgLy8gIEEuIEZ1bGx5IGhvbm9yIHRoZSBjb2xvciBmcm9tIHRoZSBVSSwgd2hp
Y2ggbWVhbnMgY29sbGVjdGluZyB0aGUgY29sb3IKKyAgICAvLyAgICAgKGFuZCBjaGFuZ2Ugbm90
aWZpY2F0aW9ucykgaW4gdGhlIGJyb3dzZXIgcHJvY2VzcywgYW5kIG1lc3NhZ2luZyB0aGUKKyAg
ICAvLyAgICAgY29sb3IgdG8gdGhlIHJlbmRlciBwcm9jZXNzLgorICAgIC8vICBCLiBBZGRpbmcg
YSAibGF5b3V0IHRlc3RzIiBmbGFnLCB0byBjb250cm9sIHRoZSBvcmFnZSB2cy4gYmx1ZSBjb2xv
cnMKKyAgICAvLyAgICAgZGVwZW5kaW5nIGlmIHdlJ3JlIHJ1bm5pbmcgbGF5b3V0IHRlc3RzLgor
ICAgIC8vIFRvIHNlZSB0aGUgV2ViS2l0IGltcGxlbWVudGF0aW9uIG9mIHVzaW5nIHRoZSBVSSBj
b2xvciBhbmQvb3IgYSBmbGFnIGZvcgorICAgIC8vIGxheW91dCB0ZXN0cyBzZWUgV2ViS2l0L1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbG9yTWFjLm1tLgorICAgIC8vIChSZWFsaXR5
IGlzIHdlIGp1c3QgbmVlZCBhbiBhcGkgdG8gb3ZlcnJpZGUgdGhlIGZvY3VzIGNvbG9yIGFuZCBi
b3RoCisgICAgLy8gb2YgdGhlIGFib3ZlIGFyZSBjb3ZlcmVkIGZvciB3aGF0IHRoaXMgZmlsZSBu
ZWVkcyB0byBwcm92aWRlLCB0aGUKKyAgICAvLyB0d28gb3B0aW9ucyB3b3VsZCBiZSBkZXRhaWxz
IHRoYXQgaGFwcGVuIGluIG90aGVyIHBsYWNlcy4pCisKKyAgICAvLyBGcm9tIFdlYktpdDoKKyAg
ICAvLyBzdGF0aWMgUkdCQTMyIG9sZEFxdWFGb2N1c1JpbmdDb2xvclJHQkEgPSAweEZGN0RBREQ5
OworICAgIHN0YXRpYyBDb2xvciBvbGRBcXVhRm9jdXNSaW5nQ29sb3IoMHg3RCwgMHhBRCwgMHhE
OSwgMHhGRik7CisgICAgcmV0dXJuIG9sZEFxdWFGb2N1c1JpbmdDb2xvcjsKK30KKworLy8gY3Jl
YXRlQ0dDb2xvcigpIGFuZCB0aGUgZnVuY3Rpb25zIGl0IGNhbGxzIGFyZSB2ZXJiYXR1bSBjb3Bp
ZXMgb2YKKy8vIGdyYXBoaWNzL21hYy9Db2xvck1hYy5tbS4gIFRoZXNlIGFyZSBjb3BpZWQgaGVy
ZSBzbyB0aGF0IHdlIGRvbid0IG5lZWQgdG8KKy8vIGluY2x1ZGUgQ29sb3JNYWMubW0gaW4gdGhl
IENocm9taXVtIGJ1aWxkLgorLy8gRklYTUU6IENoZWNrIGZlYXNpYmlsaXR5IG9mIHVzaW5nIHB1
cmUgQ0cgY2FsbHMgYW5kIHVuaWZ5aW5nIHRoaXMgY29weSB3aXRoCisvLyBDb2xvck1hYy5tbSdz
IHVuZGVyIGdyYXBoaWNzL2NnLgorCisKK05TQ29sb3IqIG5zQ29sb3IoY29uc3QgQ29sb3ImIGNv
bG9yKQoreworICAgIHVuc2lnbmVkIGMgPSBjb2xvci5yZ2IoKTsKKyAgICBzd2l0Y2ggKGMpIHsK
KyAgICAgICAgY2FzZSAwOiB7CisgICAgICAgICAgICAvLyBOZWVkIHRoaXMgdG8gYXZvaWQgcmV0
dXJuaW5nIG5pbCBiZWNhdXNlIGNhY2hlZFJHQkFWYWx1ZXMgd2lsbCBkZWZhdWx0IHRvIDAuCisg
ICAgICAgICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFJldGFpblB0cjxOU0NvbG9yPiwgY2xlYXJD
b2xvciwgKFtOU0NvbG9yIGNvbG9yV2l0aERldmljZVJlZDowLjBmIGdyZWVuOjAuMGYgYmx1ZTow
LjBmIGFscGhhOjAuMGZdKSk7CisgICAgICAgICAgICByZXR1cm4gY2xlYXJDb2xvci5nZXQoKTsK
KyAgICAgICAgfQorICAgICAgICBjYXNlIENvbG9yOjpibGFjazogeworICAgICAgICAgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChSZXRhaW5QdHI8TlNDb2xvcj4sIGJsYWNrQ29sb3IsIChbTlNDb2xv
ciBjb2xvcldpdGhEZXZpY2VSZWQ6MC4wZiBncmVlbjowLjBmIGJsdWU6MC4wZiBhbHBoYToxLjBm
XSkpOworICAgICAgICAgICAgcmV0dXJuIGJsYWNrQ29sb3IuZ2V0KCk7CisgICAgICAgIH0KKyAg
ICAgICAgY2FzZSBDb2xvcjo6d2hpdGU6IHsKKyAgICAgICAgICAgIERFRklORV9TVEFUSUNfTE9D
QUwoUmV0YWluUHRyPE5TQ29sb3I+LCB3aGl0ZUNvbG9yLCAoW05TQ29sb3IgY29sb3JXaXRoRGV2
aWNlUmVkOjEuMGYgZ3JlZW46MS4wZiBibHVlOjEuMGYgYWxwaGE6MS4wZl0pKTsKKyAgICAgICAg
ICAgIHJldHVybiB3aGl0ZUNvbG9yLmdldCgpOworICAgICAgICB9CisgICAgICAgIGRlZmF1bHQ6
IHsKKyAgICAgICAgICAgIGNvbnN0IGludCBjYWNoZVNpemUgPSAzMjsKKyAgICAgICAgICAgIHN0
YXRpYyB1bnNpZ25lZCBjYWNoZWRSR0JBVmFsdWVzW2NhY2hlU2l6ZV07CisgICAgICAgICAgICBz
dGF0aWMgUmV0YWluUHRyPE5TQ29sb3I+KiBjYWNoZWRDb2xvcnMgPSBuZXcgUmV0YWluUHRyPE5T
Q29sb3I+W2NhY2hlU2l6ZV07CisKKyAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpICE9IGNh
Y2hlU2l6ZTsgKytpKQorICAgICAgICAgICAgICAgIGlmIChjYWNoZWRSR0JBVmFsdWVzW2ldID09
IGMpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZWRDb2xvcnNbaV0uZ2V0KCk7CisK
KyAgICAgICAgICAgIE5TQ29sb3IqIHJlc3VsdCA9IFtOU0NvbG9yIGNvbG9yV2l0aERldmljZVJl
ZDpjb2xvci5yZWQoKSAvIDI1NS4wZgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdyZWVuOmNvbG9yLmdyZWVuKCkgLyAyNTUuMGYKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmx1ZTpjb2xvci5i
bHVlKCkgLyAyNTUuMGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhbHBoYTpjb2xvci5hbHBoYSgpIC8yNTUuMGZdOworCisgICAgICAgICAgICBz
dGF0aWMgaW50IGN1cnNvcjsKKyAgICAgICAgICAgIGNhY2hlZFJHQkFWYWx1ZXNbY3Vyc29yXSA9
IGM7CisgICAgICAgICAgICBjYWNoZWRDb2xvcnNbY3Vyc29yXSA9IHJlc3VsdDsKKyAgICAgICAg
ICAgIGlmICgrK2N1cnNvciA9PSBjYWNoZVNpemUpCisgICAgICAgICAgICAgICAgY3Vyc29yID0g
MDsKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgICAgIH0KKyAgICB9Cit9CisKK3N0
YXRpYyBDR0NvbG9yUmVmIENHQ29sb3JGcm9tTlNDb2xvcihOU0NvbG9yKiBjb2xvcikKK3sKKyAg
ICAvLyBUaGlzIG5lZWRzIHRvIGFsd2F5cyB1c2UgZGV2aWNlIGNvbG9yc3BhY2Ugc28gaXQgY2Fu
IGRlLWNhbGlicmF0ZSB0aGUgY29sb3IgZm9yCisgICAgLy8gQ0dDb2xvciB0byBwb3NzaWJseSBy
ZWNhbGlicmF0ZSBpdC4KKyAgICBOU0NvbG9yKiBkZXZpY2VDb2xvciA9IFtjb2xvciBjb2xvclVz
aW5nQ29sb3JTcGFjZU5hbWU6TlNEZXZpY2VSR0JDb2xvclNwYWNlXTsKKyAgICBDR0Zsb2F0IHJl
ZCA9IFtkZXZpY2VDb2xvciByZWRDb21wb25lbnRdOworICAgIENHRmxvYXQgZ3JlZW4gPSBbZGV2
aWNlQ29sb3IgZ3JlZW5Db21wb25lbnRdOworICAgIENHRmxvYXQgYmx1ZSA9IFtkZXZpY2VDb2xv
ciBibHVlQ29tcG9uZW50XTsKKyAgICBDR0Zsb2F0IGFscGhhID0gW2RldmljZUNvbG9yIGFscGhh
Q29tcG9uZW50XTsKKyAgICBjb25zdCBDR0Zsb2F0IGNvbXBvbmVudHNbNF0gPSB7IHJlZCwgZ3Jl
ZW4sIGJsdWUsIGFscGhhIH07CisgICAgc3RhdGljIENHQ29sb3JTcGFjZVJlZiBkZXZpY2VSR0JD
b2xvclNwYWNlID0gQ0dDb2xvclNwYWNlQ3JlYXRlRGV2aWNlUkdCKCk7CisgICAgQ0dDb2xvclJl
ZiBjZ0NvbG9yID0gQ0dDb2xvckNyZWF0ZShkZXZpY2VSR0JDb2xvclNwYWNlLCBjb21wb25lbnRz
KTsKKyAgICByZXR1cm4gY2dDb2xvcjsKK30KKworQ0dDb2xvclJlZiBjcmVhdGVDR0NvbG9yKGNv
bnN0IENvbG9yJiBjKQoreworICAgIC8vIFdlIGNvdWxkIGRpcmVjdGx5IGNyZWF0ZSBhIENHQ29s
b3IgaGVyZSwgYnV0IHRoYXQgd291bGQKKyAgICAvLyBza2lwIGFueSBSR0IgY2FjaGluZyB0aGUg
bnNDb2xvciBtZXRob2QgZG9lcy4gQSBkaXJlY3QgCisgICAgLy8gY3JlYXRpb24gY291bGQgYmUg
aW52ZXN0aWdhdGVkIGZvciBhIHBvc3NpYmxlIHBlcmZvcm1hbmNlIHdpbi4KKyAgICByZXR1cm4g
Q0dDb2xvckZyb21OU0NvbG9yKG5zQ29sb3IoYykpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCg==
</data>
<flag name="review"
          id="13966"
          type_id="1"
          status="-"
          setter="fishd"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28736</attachid>
            <date>2009-03-18 16:26:01 -0700</date>
            <delta_ts>2009-03-18 16:31:55 -0700</delta_ts>
            <desc>patch2</desc>
            <filename>color.patch</filename>
            <type>text/plain</type>
            <size>9695</size>
            <attacher name="Jeremy Moskovich">playmobil</attacher>
            
              <data encoding="base64">Y29tbWl0IDQyNTVhN2FiMmEwNTQ1YmMwNjExZjkwOGM5YzFlMmU1NDgwNGJjNzkKQXV0aG9yOiBK
ZXJlbXkgTW9za292aWNoIDxwbGF5bW9iaWxAZGhjcC0xNzItMjItNzEtOC5tdHYuY29ycC5nb29n
bGUuY29tPgpEYXRlOiAgIFdlZCBNYXIgMTggMTY6MjQ6NTcgMjAwOSAtMDcwMAoKICAgIFNwbGl0
IENvbG9yQ2hyb21pdW0uY3BwIGludG8gTWFjICYgV2luZG93cyB2YXJpYW50cy4KICAgIAogICAg
UmVtb3ZlIENocm9taXVtIERlcGVuZGVuY3kgb24gcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0NvbG9y
TWFjLm1tIHNpbmNlIHdlCiAgICB1bHRpbWF0ZWx5IG5lZWQgdG8gdGFrZSBhIGRpZmZlcmVudCBh
cHByb2FjaC4gIEZvciBub3csIGNyZWF0ZUNHQ29sb3IoKQogICAgaXMgY29waWVkIGZyb20gQ29s
b3JNYWMubW0uCiAgICAKICAgIEZpeGVzIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yNDQ1NgoKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNzhiOWEyNi4uYmUzYjhhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAwOS0wMy0x
OCAgSmVyZW15IE1vc2tvdmljaCAgPGplcmVteUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4IGZvciBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ0NTYKKworICAgICAgICBTcGxpdCBDb2xvckNo
cm9taXVtLmNwcCBpbnRvIE1hYyAmIFdpbmRvd3MgdmFyaWFudHMuCisgICAgICAgIFJlbW92ZSBD
aHJvbWl1bSBEZXBlbmRlbmN5IG9uIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db2xvck1hYy5tbSBz
aW5jZSB3ZQorICAgICAgICB1bHRpbWF0ZWx5IG5lZWQgdG8gdGFrZSBhIGRpZmZlcmVudCBhcHBy
b2FjaC4gIEZvciBub3csIGNyZWF0ZUNHQ29sb3IoKQorICAgICAgICBpcyBjb3BpZWQgZnJvbSBD
b2xvck1hYy5tbS4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGNoYW5nZSBpbiBiZWhhdmlvciwg
c28gbm8gdGVzdC4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbG9y
Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Zm9jdXNSaW5nQ29sb3IpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbG9yQ2hyb21pdW1NYWMubW06IEFkZGVk
LgorCiAyMDA5LTAzLTE4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29sb3JDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbG9yQ2hyb21pdW0uY3BwCmluZGV4IDE2Y2ExN2Qu
LjY0NzE2OWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Q29sb3JDaHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9Db2xvckNocm9taXVtLmNwcApAQCAtMjgsMzUgKzI4LDE1IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorI2lmICFQTEFURk9STShEQVJXSU4pCisvLyBPbiBPUyBYLCB0aGVyZSdzIGNvZGUg
dG8gbW9uaXRvciBjaGFuZ2VzIGluIHRoZSBmb2N1cyBjb2xvciBzeXN0ZW0gc2V0dGluZy4KKy8v
IE9uIFdpbmRvd3MvTGludXggdGhlcmUgaXMgbm8gZXF1aXZhbGVudCBzeXN0ZW0gc2V0dGluZyBh
bmQgdGhlcmVmb3JlIGEgc3RhdGljCisvLyBjb2xvciBpcyBhbGwgd2UgbmVlZC4KIENvbG9yIGZv
Y3VzUmluZ0NvbG9yKCkKIHsKLS8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBzcGxpdCB1cCB0byBD
b2xvckNocm9taXVtV2luIGFuZCBDb2xvckNocm9taXVtTWFjLgotI2lmIFBMQVRGT1JNKERBUldJ
TikKLSAgICAvLyBUbyBhdm9pZCB0aGUgTWFjIENocm9taXVtIGJ1aWxkIGhhdmluZyB0byByZWJh
c2xpbmUgNTAwKyBsYXlvdXQgdGVzdHMgYW5kCi0gICAgLy8gY29udGludWUgdG8gZG8gdGhpcyB3
LyBuZXcgdGVzdHMgdGhhdCBnZXQgbGFuZGVkIGluIFdlYktpdCwgd2Ugd2FudCB0bwotICAgIC8v
IHJ1biB0aGUgbGF5b3V0IHRlc3RzIHcvIHRoZSBzYW1lIGNvbG9yIHRoYXQgc3RvY2sgV2ViS2l0
IHVzZXMuCi0gICAgLy8gCi0gICAgLy8gVE9ETzogRm9yIG5vdyB3ZSd2ZSBoYXJkIGNvZGVkIHRo
ZSBjb2xvciB0aGF0IFdlYktpdCB1c2VzIGZvciBsYXlvdXQKLSAgICAvLyB0ZXN0cy4gIFdlIG5l
ZWQgdG8gcmV2aXNpdCB0aGlzIGFuZCBkbyBlaXRoZXIgb2YgdGhlIGZvbGxvd2luZzoKLSAgICAv
LyAgQS4gRnVsbHkgaG9ub3IgdGhlIGNvbG9yIGZyb20gdGhlIFVJLCB3aGljaCBtZWFucyBjb2xs
ZWN0aW5nIHRoZSBjb2xvcgotICAgIC8vICAgICAoYW5kIGNoYW5nZSBub3RpZmljYXRpb25zKSBp
biB0aGUgYnJvd3NlciBwcm9jZXNzLCBhbmQgbWVzc2FnaW5nIHRoZQotICAgIC8vICAgICBjb2xv
ciB0byB0aGUgcmVuZGVyIHByb2Nlc3MuCi0gICAgLy8gIEIuIEFkZGluZyBhICJsYXlvdXQgdGVz
dHMiIGZsYWcsIHRvIGNvbnRyb2wgdGhlIG9yYWdlIHZzLiBibHVlIGNvbG9ycwotICAgIC8vICAg
ICBkZXBlbmRpbmcgaWYgd2UncmUgcnVubmluZyBsYXlvdXQgdGVzdHMuCi0gICAgLy8gVG8gc2Vl
IHRoZSBXZWJLaXQgaW1wbGVtZW50YXRpb24gb2YgdXNpbmcgdGhlIFVJIGNvbG9yIGFuZC9vciBh
IGZsYWcgZm9yCi0gICAgLy8gbGF5b3V0IHRlc3RzIHNlZSBXZWJLaXQvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvQ29sb3JNYWMubW0uCi0gICAgLy8gKFJlYWxpdHkgaXMgd2UganVzdCBu
ZWVkIGFuIGFwaSB0byBvdmVycmlkZSB0aGUgZm9jdXMgY29sb3IgYW5kIGJvdGgKLSAgICAvLyBv
ZiB0aGUgYWJvdmUgYXJlIGNvdmVyZWQgZm9yIHdoYXQgdGhpcyBmaWxlIG5lZWRzIHRvIHByb3Zp
ZGUsIHRoZQotICAgIC8vIHR3byBvcHRpb25zIHdvdWxkIGJlIGRldGFpbHMgdGhhdCBoYXBwZW4g
aW4gb3RoZXIgcGxhY2VzLikKLQotICAgIC8vIEZyb20gV2ViS2l0OgotICAgIC8vIHN0YXRpYyBS
R0JBMzIgb2xkQXF1YUZvY3VzUmluZ0NvbG9yUkdCQSA9IDB4RkY3REFERDk7Ci0gICAgc3RhdGlj
IENvbG9yIG9sZEFxdWFGb2N1c1JpbmdDb2xvcigweDdELCAweEFELCAweEQ5LCAweEZGKTsKLSAg
ICByZXR1cm4gb2xkQXF1YUZvY3VzUmluZ0NvbG9yOwotI2Vsc2UKICAgICBzdGF0aWMgQ29sb3Ig
Zm9jdXNSaW5nQ29sb3IoMjI5LCAxNTEsIDAsIDI1NSk7CiAgICAgcmV0dXJuIGZvY3VzUmluZ0Nv
bG9yOwotI2VuZGlmCiB9CisjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db2xvckNocm9taXVtTWFj
Lm1tIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db2xvckNocm9taXVtTWFj
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4YjRkYTAKLS0tIC9kZXYv
bnVsbAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbG9yQ2hyb21p
dW1NYWMubW0KQEAgLTAsMCArMSwxMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIw
MDQsIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBV
VEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVU
RVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4g
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvbG9yLmgiCisKKyNpbXBv
cnQgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW1wb3J0IDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworQ29sb3IgZm9j
dXNSaW5nQ29sb3IoKQoreworICAgIC8vIFRvIGF2b2lkIHRoZSBNYWMgQ2hyb21pdW0gYnVpbGQg
aGF2aW5nIHRvIHJlYmFzbGluZSA1MDArIGxheW91dCB0ZXN0cyBhbmQKKyAgICAvLyBjb250aW51
ZSB0byBkbyB0aGlzIHcvIG5ldyB0ZXN0cyB0aGF0IGdldCBsYW5kZWQgaW4gV2ViS2l0LCB3ZSB3
YW50IHRvCisgICAgLy8gcnVuIHRoZSBsYXlvdXQgdGVzdHMgdy8gdGhlIHNhbWUgY29sb3IgdGhh
dCBzdG9jayBXZWJLaXQgdXNlcy4KKyAgICAvLyAKKyAgICAvLyBUT0RPOiBGb3Igbm93IHdlJ3Zl
IGhhcmQgY29kZWQgdGhlIGNvbG9yIHRoYXQgV2ViS2l0IHVzZXMgZm9yIGxheW91dAorICAgIC8v
IHRlc3RzLiAgV2UgbmVlZCB0byByZXZpc2l0IHRoaXMgYW5kIGRvIGVpdGhlciBvZiB0aGUgZm9s
bG93aW5nOgorICAgIC8vICBBLiBGdWxseSBob25vciB0aGUgY29sb3IgZnJvbSB0aGUgVUksIHdo
aWNoIG1lYW5zIGNvbGxlY3RpbmcgdGhlIGNvbG9yCisgICAgLy8gICAgIChhbmQgY2hhbmdlIG5v
dGlmaWNhdGlvbnMpIGluIHRoZSBicm93c2VyIHByb2Nlc3MsIGFuZCBtZXNzYWdpbmcgdGhlCisg
ICAgLy8gICAgIGNvbG9yIHRvIHRoZSByZW5kZXIgcHJvY2Vzcy4KKyAgICAvLyAgQi4gQWRkaW5n
IGEgImxheW91dCB0ZXN0cyIgZmxhZywgdG8gY29udHJvbCB0aGUgb3JhZ2UgdnMuIGJsdWUgY29s
b3JzCisgICAgLy8gICAgIGRlcGVuZGluZyBpZiB3ZSdyZSBydW5uaW5nIGxheW91dCB0ZXN0cy4K
KyAgICAvLyBUbyBzZWUgdGhlIFdlYktpdCBpbXBsZW1lbnRhdGlvbiBvZiB1c2luZyB0aGUgVUkg
Y29sb3IgYW5kL29yIGEgZmxhZyBmb3IKKyAgICAvLyBsYXlvdXQgdGVzdHMgc2VlIFdlYktpdC9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db2xvck1hYy5tbS4KKyAgICAvLyAoUmVhbGl0
eSBpcyB3ZSBqdXN0IG5lZWQgYW4gYXBpIHRvIG92ZXJyaWRlIHRoZSBmb2N1cyBjb2xvciBhbmQg
Ym90aAorICAgIC8vIG9mIHRoZSBhYm92ZSBhcmUgY292ZXJlZCBmb3Igd2hhdCB0aGlzIGZpbGUg
bmVlZHMgdG8gcHJvdmlkZSwgdGhlCisgICAgLy8gdHdvIG9wdGlvbnMgd291bGQgYmUgZGV0YWls
cyB0aGF0IGhhcHBlbiBpbiBvdGhlciBwbGFjZXMuKQorCisgICAgLy8gRnJvbSBXZWJLaXQ6Cisg
ICAgLy8gc3RhdGljIFJHQkEzMiBvbGRBcXVhRm9jdXNSaW5nQ29sb3JSR0JBID0gMHhGRjdEQURE
OTsKKyAgICBzdGF0aWMgQ29sb3Igb2xkQXF1YUZvY3VzUmluZ0NvbG9yKDB4N0QsIDB4QUQsIDB4
RDksIDB4RkYpOworICAgIHJldHVybiBvbGRBcXVhRm9jdXNSaW5nQ29sb3I7Cit9CisKKy8vIGNy
ZWF0ZUNHQ29sb3IoKSBhbmQgdGhlIGZ1bmN0aW9ucyBpdCBjYWxscyBhcmUgdmVyYmF0dW0gY29w
aWVzIG9mCisvLyBncmFwaGljcy9tYWMvQ29sb3JNYWMubW0uICBUaGVzZSBhcmUgY29waWVkIGhl
cmUgc28gdGhhdCB3ZSBkb24ndCBuZWVkIHRvCisvLyBpbmNsdWRlIENvbG9yTWFjLm1tIGluIHRo
ZSBDaHJvbWl1bSBidWlsZC4KKy8vIEZJWE1FOiBDaGVjayBmZWFzaWJpbGl0eSBvZiB1c2luZyBw
dXJlIENHIGNhbGxzIGFuZCB1bmlmeWluZyB0aGlzIGNvcHkgd2l0aAorLy8gQ29sb3JNYWMubW0n
cyB1bmRlciBncmFwaGljcy9jZy4KKworCitOU0NvbG9yKiBuc0NvbG9yKGNvbnN0IENvbG9yJiBj
b2xvcikKK3sKKyAgICB1bnNpZ25lZCBjID0gY29sb3IucmdiKCk7CisgICAgc3dpdGNoIChjKSB7
CisgICAgICAgIGNhc2UgMDogeworICAgICAgICAgICAgLy8gTmVlZCB0aGlzIHRvIGF2b2lkIHJl
dHVybmluZyBuaWwgYmVjYXVzZSBjYWNoZWRSR0JBVmFsdWVzIHdpbGwgZGVmYXVsdCB0byAwLgor
ICAgICAgICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChSZXRhaW5QdHI8TlNDb2xvcj4sIGNsZWFy
Q29sb3IsIChbTlNDb2xvciBjb2xvcldpdGhEZXZpY2VSZWQ6MC4wZiBncmVlbjowLjBmIGJsdWU6
MC4wZiBhbHBoYTowLjBmXSkpOworICAgICAgICAgICAgcmV0dXJuIGNsZWFyQ29sb3IuZ2V0KCk7
CisgICAgICAgIH0KKyAgICAgICAgY2FzZSBDb2xvcjo6YmxhY2s6IHsKKyAgICAgICAgICAgIERF
RklORV9TVEFUSUNfTE9DQUwoUmV0YWluUHRyPE5TQ29sb3I+LCBibGFja0NvbG9yLCAoW05TQ29s
b3IgY29sb3JXaXRoRGV2aWNlUmVkOjAuMGYgZ3JlZW46MC4wZiBibHVlOjAuMGYgYWxwaGE6MS4w
Zl0pKTsKKyAgICAgICAgICAgIHJldHVybiBibGFja0NvbG9yLmdldCgpOworICAgICAgICB9Cisg
ICAgICAgIGNhc2UgQ29sb3I6OndoaXRlOiB7CisgICAgICAgICAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKFJldGFpblB0cjxOU0NvbG9yPiwgd2hpdGVDb2xvciwgKFtOU0NvbG9yIGNvbG9yV2l0aERl
dmljZVJlZDoxLjBmIGdyZWVuOjEuMGYgYmx1ZToxLjBmIGFscGhhOjEuMGZdKSk7CisgICAgICAg
ICAgICByZXR1cm4gd2hpdGVDb2xvci5nZXQoKTsKKyAgICAgICAgfQorICAgICAgICBkZWZhdWx0
OiB7CisgICAgICAgICAgICBjb25zdCBpbnQgY2FjaGVTaXplID0gMzI7CisgICAgICAgICAgICBz
dGF0aWMgdW5zaWduZWQgY2FjaGVkUkdCQVZhbHVlc1tjYWNoZVNpemVdOworICAgICAgICAgICAg
c3RhdGljIFJldGFpblB0cjxOU0NvbG9yPiogY2FjaGVkQ29sb3JzID0gbmV3IFJldGFpblB0cjxO
U0NvbG9yPltjYWNoZVNpemVdOworCisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSAhPSBj
YWNoZVNpemU7ICsraSkKKyAgICAgICAgICAgICAgICBpZiAoY2FjaGVkUkdCQVZhbHVlc1tpXSA9
PSBjKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGVkQ29sb3JzW2ldLmdldCgpOwor
CisgICAgICAgICAgICBOU0NvbG9yKiByZXN1bHQgPSBbTlNDb2xvciBjb2xvcldpdGhEZXZpY2VS
ZWQ6Y29sb3IucmVkKCkgLyAyNTUuMGYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBncmVlbjpjb2xvci5ncmVlbigpIC8gMjU1LjBmCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJsdWU6Y29sb3Iu
Ymx1ZSgpIC8gMjU1LjBmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYWxwaGE6Y29sb3IuYWxwaGEoKSAvMjU1LjBmXTsKKworICAgICAgICAgICAg
c3RhdGljIGludCBjdXJzb3I7CisgICAgICAgICAgICBjYWNoZWRSR0JBVmFsdWVzW2N1cnNvcl0g
PSBjOworICAgICAgICAgICAgY2FjaGVkQ29sb3JzW2N1cnNvcl0gPSByZXN1bHQ7CisgICAgICAg
ICAgICBpZiAoKytjdXJzb3IgPT0gY2FjaGVTaXplKQorICAgICAgICAgICAgICAgIGN1cnNvciA9
IDA7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAgICB9CisgICAgfQorfQorCitz
dGF0aWMgQ0dDb2xvclJlZiBDR0NvbG9yRnJvbU5TQ29sb3IoTlNDb2xvciogY29sb3IpCit7Cisg
ICAgLy8gVGhpcyBuZWVkcyB0byBhbHdheXMgdXNlIGRldmljZSBjb2xvcnNwYWNlIHNvIGl0IGNh
biBkZS1jYWxpYnJhdGUgdGhlIGNvbG9yIGZvcgorICAgIC8vIENHQ29sb3IgdG8gcG9zc2libHkg
cmVjYWxpYnJhdGUgaXQuCisgICAgTlNDb2xvciogZGV2aWNlQ29sb3IgPSBbY29sb3IgY29sb3JV
c2luZ0NvbG9yU3BhY2VOYW1lOk5TRGV2aWNlUkdCQ29sb3JTcGFjZV07CisgICAgQ0dGbG9hdCBy
ZWQgPSBbZGV2aWNlQ29sb3IgcmVkQ29tcG9uZW50XTsKKyAgICBDR0Zsb2F0IGdyZWVuID0gW2Rl
dmljZUNvbG9yIGdyZWVuQ29tcG9uZW50XTsKKyAgICBDR0Zsb2F0IGJsdWUgPSBbZGV2aWNlQ29s
b3IgYmx1ZUNvbXBvbmVudF07CisgICAgQ0dGbG9hdCBhbHBoYSA9IFtkZXZpY2VDb2xvciBhbHBo
YUNvbXBvbmVudF07CisgICAgY29uc3QgQ0dGbG9hdCBjb21wb25lbnRzWzRdID0geyByZWQsIGdy
ZWVuLCBibHVlLCBhbHBoYSB9OworICAgIHN0YXRpYyBDR0NvbG9yU3BhY2VSZWYgZGV2aWNlUkdC
Q29sb3JTcGFjZSA9IENHQ29sb3JTcGFjZUNyZWF0ZURldmljZVJHQigpOworICAgIENHQ29sb3JS
ZWYgY2dDb2xvciA9IENHQ29sb3JDcmVhdGUoZGV2aWNlUkdCQ29sb3JTcGFjZSwgY29tcG9uZW50
cyk7CisgICAgcmV0dXJuIGNnQ29sb3I7Cit9CisKK0NHQ29sb3JSZWYgY3JlYXRlQ0dDb2xvcihj
b25zdCBDb2xvciYgYykKK3sKKyAgICAvLyBXZSBjb3VsZCBkaXJlY3RseSBjcmVhdGUgYSBDR0Nv
bG9yIGhlcmUsIGJ1dCB0aGF0IHdvdWxkCisgICAgLy8gc2tpcCBhbnkgUkdCIGNhY2hpbmcgdGhl
IG5zQ29sb3IgbWV0aG9kIGRvZXMuIEEgZGlyZWN0IAorICAgIC8vIGNyZWF0aW9uIGNvdWxkIGJl
IGludmVzdGlnYXRlZCBmb3IgYSBwb3NzaWJsZSBwZXJmb3JtYW5jZSB3aW4uCisgICAgcmV0dXJu
IENHQ29sb3JGcm9tTlNDb2xvcihuc0NvbG9yKGMpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQo=
</data>
<flag name="review"
          id="14167"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>