<?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>54511</bug_id>
          
          <creation_ts>2011-02-15 16:53:54 -0800</creation_ts>
          <short_desc>Allow acceleratesDrawing for WebKit2</short_desc>
          <delta_ts>2011-02-17 00:50:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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="Matthew Delaney">mdelaney7</reporter>
          <assigned_to name="Matthew Delaney">mdelaney7</assigned_to>
          <cc>abarth</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarrin</cc>
    
    <cc>eric</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>351736</commentid>
    <comment_count>0</comment_count>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2011-02-15 16:53:54 -0800</bug_when>
    <thetext>Allow acceleratesDrawing for WebKit2, plumb through setters/getters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351743</commentid>
    <comment_count>1</comment_count>
      <attachid>82552</attachid>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2011-02-15 17:01:05 -0800</bug_when>
    <thetext>Created attachment 82552
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351747</commentid>
    <comment_count>2</comment_count>
      <attachid>82552</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-02-15 17:08:56 -0800</bug_when>
    <thetext>Comment on attachment 82552
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        No new tests. Can&apos;t really test this.

Really, or not at all?

&gt; Source/WebCore/ChangeLog:13
&gt; +        ^^ plumb through acceleratesDrawing

Don&apos;t use ^^, and use Sentence case.

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:1295
&gt; -        return canvas-&gt;renderingContext() &amp;&amp; canvas-&gt;renderingContext()-&gt;isAccelerated();
&gt; +         return canvas-&gt;renderingContext() &amp;&amp; canvas-&gt;renderingContext()-&gt;isAccelerated();

Spurious whitespace change here.

&gt; Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp:294
&gt; +    if (graphicsLayer)
&gt; +        m_layerTreeHost-&gt;setRootCompositingLayer(graphicsLayer);

You can remove this change now.

&gt; Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp:312
&gt; +    if (m_webPage-&gt;corePage()-&gt;settings()-&gt;acceleratedDrawingEnabled())
&gt; +        return;

This is a bit hacky; we should clean up this code.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:1366
&gt; +    settings-&gt;setAcceleratedDrawingEnabled(store.getBoolValueForKey(false));

Why the store.getBoolValueForKey(false)?

&gt; Source/WebKit/mac/WebView/WebPreferences.mm:361
&gt; +        [NSNumber numberWithBool:YES],  WebKitAcceleratedDrawingEnabledPreferenceKey,

I think it should default to off.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351805</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-02-15 18:27:09 -0800</bug_when>
    <thetext>Attachment 82552 did not build on win:
Build output: http://queues.webkit.org/results/7918100</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352528</commentid>
    <comment_count>4</comment_count>
      <attachid>82736</attachid>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2011-02-16 18:57:26 -0800</bug_when>
    <thetext>Created attachment 82736
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352566</commentid>
    <comment_count>5</comment_count>
      <attachid>82736</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-02-16 20:16:10 -0800</bug_when>
    <thetext>Comment on attachment 82736
Patch

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

r=me bug DrawingAreaImpl::exitAcceleratedCompositing() needs fixing.

&gt; Source/WebCore/ChangeLog:12
&gt; +        * WebCore.exp.in:Plumb through acceleratesDrawing
&gt; +        * page/Settings.cpp:Plumb through acceleratesDrawing
&gt; +        * page/Settings.h: Plumb through acceleratesDrawing

Be consistent about putting a space after the colon.

&gt; Source/WebKit2/WebProcess/WebPage/DrawingAreaImpl.cpp:316
&gt; +    m_webPage-&gt;corePage()-&gt;settings()-&gt;acceleratedDrawingEnabled();

This isn&apos;t doing anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352591</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-02-16 20:54:43 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/78788</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352652</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-17 00:50:18 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/78788 might have broken GTK Linux 64-bit Debug</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82552</attachid>
            <date>2011-02-15 17:01:05 -0800</date>
            <delta_ts>2011-02-16 18:57:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54511-20110215170104.patch</filename>
            <type>text/plain</type>
            <size>14780</size>
            <attacher name="Matthew Delaney">mdelaney7</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NjQ4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDItMTUgIE1hdHRoZXcg
RGVsYW5leSAgPG1kZWxhbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBbGxvdyBhY2NlbGVyYXRlc0RyYXdpbmcgZm9yIFdlYktp
dDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTEx
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDYW4ndCByZWFsbHkgdGVzdCB0aGlzLgorCisgICAg
ICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAg
ICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICBeXiBwbHVtYiB0aHJvdWdoIGFjY2VsZXJh
dGVzRHJhd2luZworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3Bw
OgorICAgICAgICBzZXQgYWNjZWxlcmF0ZXNEcmF3aW5nIG9uIHRoZSBsYXllciBpZiBhY2NlbGVy
YXRlc0RyYXdpbmcgaXMgb24gaW4gc2V0dGluZ3MKKwogMjAxMS0wMi0xNSAgSmFtZXMgUm9iaW5z
b24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQ
cm9za3VyeWFrb3YuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gNzg0OTYpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtODMwLDYg
KzgzMCw3IEBAIF9fWk43V2ViQ29yZThTZXR0aW5nczI3c2V0RlRQRGlyZWN0b3J5VGUKIF9fWk43
V2ViQ29yZThTZXR0aW5nczI3c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5RWIKIF9fWk43V2Vi
Q29yZThTZXR0aW5nczI3c2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoRVJLTjNXVEY2U3RyaW5n
RQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWRFYgor
X19aTjdXZWJDb3JlOFNldHRpbmdzMjhzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkRWIKIF9f
Wk43V2ViQ29yZThTZXR0aW5nczI4c2V0Rm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5nc0ViCiBfX1pO
N1dlYkNvcmU4U2V0dGluZ3MyOXNldEFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkRWIKIF9fWk43
V2ViQ29yZThTZXR0aW5nczI5c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWRFYgpJbmRleDog
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAJKHJldmlzaW9uIDc4NDk2KQorKysgU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Miw2ICsxNDIsNyBAQCBT
ZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fZW5mb3JjZUNTU01JTUVUeXBl
SW5Ob1F1aXJrc01vZGUodHJ1ZSkKICAgICAsIG1fdXNlc0VuY29kaW5nRGV0ZWN0b3IoZmFsc2Up
CiAgICAgLCBtX2FsbG93U2NyaXB0c1RvQ2xvc2VXaW5kb3dzKGZhbHNlKQorICAgICwgbV9hY2Nl
bGVyYXRlZERyYXdpbmdFbmFibGVkKGZhbHNlKQogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBy
ZWFsbHkgYmUgZGlzYWJsZWQgYnkgZGVmYXVsdCBhcyBpdCBtYWtlcyBwbGF0Zm9ybXMgdGhhdCBk
b24ndCBzdXBwb3J0IHRoZSBmZWF0dXJlIGRvd25sb2FkIGZpbGVzCiAgICAgLy8gdGhleSBjYW4n
dCB1c2UgYnkuIExlYXZpbmcgZW5hYmxlZCBmb3Igbm93IHRvIG5vdCBjaGFuZ2UgZXhpc3Rpbmcg
YmVoYXZpb3IuCiAgICAgLCBtX2Rvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZCh0cnVlKQpA
QCAtNTk4LDYgKzU5OSwxMSBAQCB2b2lkIFNldHRpbmdzOjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nCiAgICAgc2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKG1fcGFnZSk7CiB9CiAKK3Zv
aWQgU2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQor
eworICAgIG1fYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCA9IGVuYWJsZWQ7Cit9CisKIHZvaWQg
U2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5zZm9ybXNFbmFibGVk
KGJvb2wgZW5hYmxlZCkKIHsKICAgICBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3IzRFRyYW5z
Zm9ybXNFbmFibGVkID0gZW5hYmxlZDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgJKHJldmlz
aW9uIDc4NDk2KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNzksNiArMjc5LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lk
IHNldFhTU0F1ZGl0b3JFbmFibGVkKGJvb2wpOwogICAgICAgICBib29sIHhzc0F1ZGl0b3JFbmFi
bGVkKCkgY29uc3QgeyByZXR1cm4gbV94c3NBdWRpdG9yRW5hYmxlZDsgfQogCisgICAgICAgIHZv
aWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29sKTsKKyAgICAgICAgYm9vbCBhY2Nl
bGVyYXRlZERyYXdpbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZERyYXdp
bmdFbmFibGVkOyB9CisgICAgICAgIAogICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdFbmFibGVkKGJvb2wpOwogICAgICAgICBib29sIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdF
bmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZDsg
fQogCkBAIC00MzAsNiArNDMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29s
IG1fZW5mb3JjZUNTU01JTUVUeXBlSW5Ob1F1aXJrc01vZGUgOiAxOwogICAgICAgICBib29sIG1f
dXNlc0VuY29kaW5nRGV0ZWN0b3IgOiAxOwogICAgICAgICBib29sIG1fYWxsb3dTY3JpcHRzVG9D
bG9zZVdpbmRvd3MgOiAxOworICAgICAgICBib29sIG1fYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxl
ZCA6IDE7CiAgICAgICAgIGJvb2wgbV9kb3dubG9hZGFibGVCaW5hcnlGb250c0VuYWJsZWQgOiAx
OwogICAgICAgICBib29sIG1feHNzQXVkaXRvckVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1f
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgOiAxOwpJbmRleDogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAJKHJldmlzaW9uIDc4
NDk2KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMzMSw3ICszMzEsOSBAQCBib29sIFJlbmRlckxheWVyQ29t
cG9zaXRvcjo6dXBkYXRlQmFja2luCiAgICAgICAgICAgICBsYXllci0+ZW5zdXJlQmFja2luZygp
OwogCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBQTEFURk9STShDQSkKLSAgICAgICAgICAgIGlmIChs
YXllci0+cmVuZGVyZXIoKS0+aXNDYW52YXMoKSkgeworICAgICAgICAgICAgaWYgKG1fcmVuZGVy
Vmlldy0+ZG9jdW1lbnQoKS0+c2V0dGluZ3MoKS0+YWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCgp
KQorICAgICAgICAgICAgICAgIGxheWVyLT5iYWNraW5nKCktPmdyYXBoaWNzTGF5ZXIoKS0+c2V0
QWNjZWxlcmF0ZXNEcmF3aW5nKHRydWUpOworICAgICAgICAgICAgZWxzZSBpZiAobGF5ZXItPnJl
bmRlcmVyKCktPmlzQ2FudmFzKCkpIHsKICAgICAgICAgICAgICAgICBIVE1MQ2FudmFzRWxlbWVu
dCogY2FudmFzID0gc3RhdGljX2Nhc3Q8SFRNTENhbnZhc0VsZW1lbnQqPihsYXllci0+cmVuZGVy
ZXIoKS0+bm9kZSgpKTsKICAgICAgICAgICAgICAgICBpZiAoY2FudmFzLT5yZW5kZXJpbmdDb250
ZXh0KCkgJiYgY2FudmFzLT5yZW5kZXJpbmdDb250ZXh0KCktPmlzQWNjZWxlcmF0ZWQoKSkKICAg
ICAgICAgICAgICAgICAgICAgbGF5ZXItPmJhY2tpbmcoKS0+Z3JhcGhpY3NMYXllcigpLT5zZXRB
Y2NlbGVyYXRlc0RyYXdpbmcodHJ1ZSk7CkBAIC0xMjkwLDcgKzEyOTIsNyBAQCBib29sIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6cmVxdWlyZXNDb21wCiAKICAgICBpZiAocmVuZGVyZXItPmlzQ2Fu
dmFzKCkpIHsKICAgICAgICAgSFRNTENhbnZhc0VsZW1lbnQqIGNhbnZhcyA9IHN0YXRpY19jYXN0
PEhUTUxDYW52YXNFbGVtZW50Kj4ocmVuZGVyZXItPm5vZGUoKSk7Ci0gICAgICAgIHJldHVybiBj
YW52YXMtPnJlbmRlcmluZ0NvbnRleHQoKSAmJiBjYW52YXMtPnJlbmRlcmluZ0NvbnRleHQoKS0+
aXNBY2NlbGVyYXRlZCgpOworICAgICAgICAgcmV0dXJuIGNhbnZhcy0+cmVuZGVyaW5nQ29udGV4
dCgpICYmIGNhbnZhcy0+cmVuZGVyaW5nQ29udGV4dCgpLT5pc0FjY2VsZXJhdGVkKCk7CiAgICAg
fQogICAgIHJldHVybiBmYWxzZTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NjQ4KQor
KysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTEtMDItMTUgIE1hdHRoZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGxvdyBhY2Nl
bGVyYXRlc0RyYXdpbmcgZm9yIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU0NTExCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5j
ZXNTdG9yZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIF5eIHBsdW1iIHRo
cm91Z2ggYWNjZWxlcmF0ZXNEcmF3aW5nCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Ry
YXdpbmdBcmVhSW1wbC5jcHA6CisgICAgICAgIEVudGVyIGNvbXBvc2l0aW5nIGluIGFjY2xlcmF0
ZWQgZHJhd2luZyBtb2RlCisKIDIwMTEtMDItMTUgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2Nh
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb24gSG9uZXljdXR0LgpJbmRleDog
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCShyZXZpc2lvbiA3
ODQ5NikKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgJKHdv
cmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgbWFj
cm8oSHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkLCBoeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQsIEJv
b2wsIGJvb2wsIHRydWUpIFwKICAgICBtYWNybyhOZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgbmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCiAgICAgbWFjcm8oQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQsIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
LCBCb29sLCBib29sLCB0cnVlKSBcCisgICAgbWFjcm8oQWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxl
ZCwgYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBt
YWNybyhDb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxlLCBjb21wb3NpdGluZ0JvcmRlcnNWaXNpYmxl
LCBCb29sLCBib29sLCBmYWxzZSkgXAogICAgIG1hY3JvKENvbXBvc2l0aW5nUmVwYWludENvdW50
ZXJzVmlzaWJsZSwgY29tcG9zaXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxlLCBCb29sLCBib29s
LCBmYWxzZSkgXAogICAgIG1hY3JvKFdlYkdMRW5hYmxlZCwgd2ViR0xFbmFibGVkLCBCb29sLCBi
b29sLCBmYWxzZSkgXApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJl
ZmVyZW5jZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1ByZWZlcmVuY2VzLmNwcAkocmV2aXNpb24gNzg0OTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwMSw2
ICszMDEsMTYgQEAgV0tGb250U21vb3RoaW5nTGV2ZWwgV0tQcmVmZXJlbmNlc0dldEZvbgogICAg
IHJldHVybiB0b0FQSShzdGF0aWNfY2FzdDxGb250U21vb3RoaW5nTGV2ZWw+KHRvSW1wbChwcmVm
ZXJlbmNlc1JlZiktPmZvbnRTbW9vdGhpbmdMZXZlbCgpKSk7CiB9CiAKK3ZvaWQgV0tQcmVmZXJl
bmNlc1NldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJl
bmNlc1JlZiwgYm9vbCBmbGFnKQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEFj
Y2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoZmxhZyk7Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dl
dEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1Jl
ZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+YWNjZWxlcmF0ZWREcmF3
aW5nRW5hYmxlZCgpOworfQorCiB2b2lkIFdLUHJlZmVyZW5jZXNTZXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGZsYWcp
CiB7CiAgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQoZmxhZyk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
cmVmZXJlbmNlc1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAkocmV2aXNpb24gNzg0OTYpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDcsNiArNDcsMTAgQEAgdHlwZWRlZiBlbnVtIFdLRm9udFNtb290aGluZ0xl
dmVsIFdLRm9udAogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEZvbnRTbW9vdGhpbmdM
ZXZlbChXS1ByZWZlcmVuY2VzUmVmLCBXS0ZvbnRTbW9vdGhpbmdMZXZlbCk7CiBXS19FWFBPUlQg
V0tGb250U21vb3RoaW5nTGV2ZWwgV0tQcmVmZXJlbmNlc0dldEZvbnRTbW9vdGhpbmdMZXZlbChX
S1ByZWZlcmVuY2VzUmVmKTsKIAorLy8gRGVmYXVsdHMgdG8gZmFsc2UuCitXS19FWFBPUlQgdm9p
ZCBXS1ByZWZlcmVuY2VzU2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChXS1ByZWZlcmVuY2Vz
UmVmLCBib29sKTsKK1dLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRBY2NlbGVyYXRlZERy
YXdpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOworCiAvLyBEZWZhdWx0cyB0byB0cnVlLgog
V0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFi
bGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNl
c0dldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOwpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdB
cmVhSW1wbC5jcHAJKHJldmlzaW9uIDc4NDk2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0
LDggQEAKICNpbmNsdWRlICJXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogCiAj
aWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKFdJTikKICNlcnJvciAiVGhpcyBkcmF3aW5n
IGFyZWEgaXMgbm90IHJlYWR5IGZvciB1c2UgYnkgb3RoZXIgcG9ydHMgeWV0LiIKQEAgLTY4LDYg
KzcwLDggQEAgRHJhd2luZ0FyZWFJbXBsOjpEcmF3aW5nQXJlYUltcGwoV2ViUGFnZQogICAgICwg
bV9kaXNwbGF5VGltZXIoV2ViUHJvY2Vzczo6c2hhcmVkKCkucnVuTG9vcCgpLCB0aGlzLCAmRHJh
d2luZ0FyZWFJbXBsOjpkaXNwbGF5KQogICAgICwgbV9leGl0Q29tcG9zaXRpbmdUaW1lcihXZWJQ
cm9jZXNzOjpzaGFyZWQoKS5ydW5Mb29wKCksIHRoaXMsICZEcmF3aW5nQXJlYUltcGw6OmV4aXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSkKIHsKKyAgICBpZiAod2ViUGFnZS0+Y29yZVBhZ2Uo
KS0+c2V0dGluZ3MoKS0+YWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCgpKQorICAgICAgICBlbnRl
ckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKDApOwogfQogCiB2b2lkIERyYXdpbmdBcmVhSW1w
bDo6c2V0TmVlZHNEaXNwbGF5KGNvbnN0IEludFJlY3QmIHJlY3QpCkBAIC0yODYsNyArMjkwLDgg
QEAgdm9pZCBEcmF3aW5nQXJlYUltcGw6OmVudGVyQWNjZWxlcmF0ZWRDbwogICAgIEFTU0VSVCgh
bV9sYXllclRyZWVIb3N0KTsKIAogICAgIG1fbGF5ZXJUcmVlSG9zdCA9IExheWVyVHJlZUhvc3Q6
OmNyZWF0ZShtX3dlYlBhZ2UpOwotICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Um9vdENvbXBvc2l0
aW5nTGF5ZXIoZ3JhcGhpY3NMYXllcik7CisgICAgaWYgKGdyYXBoaWNzTGF5ZXIpCisgICAgICAg
IG1fbGF5ZXJUcmVlSG9zdC0+c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoZ3JhcGhpY3NMYXllcik7
CiAgICAgCiAgICAgLy8gTm9uLWNvbXBvc2l0ZWQgY29udGVudCB3aWxsIG5vdyBiZSBoYW5kbGVk
IGV4Y2x1c2l2ZWx5IGJ5IHRoZSBsYXllciB0cmVlIGhvc3QuCiAgICAgbV9kaXJ0eVJlZ2lvbiA9
IFJlZ2lvbigpOwpAQCAtMzAzLDYgKzMwOCw5IEBAIHZvaWQgRHJhd2luZ0FyZWFJbXBsOjpleGl0
QWNjZWxlcmF0ZWRDb20KIHsKICAgICBtX2V4aXRDb21wb3NpdGluZ1RpbWVyLnN0b3AoKTsKIAor
ICAgIGlmIChtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCktPmFjY2VsZXJhdGVkRHJh
d2luZ0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgQVNTRVJUKG1fbGF5ZXJUcmVl
SG9zdCk7CiAKICAgICBtX2xheWVyVHJlZUhvc3QtPmludmFsaWRhdGUoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDc4
NDk2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMzYzLDggKzEzNjMsMTAgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQ
cmVmZXJlbmNlcyhjb25zdCBXZQogI2lmIFBMQVRGT1JNKFdJTikKICAgICAvLyBUZW1wb3Jhcmls
eSB0dXJuIG9mZiBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyB1bnRpbCB3ZSBoYXZlIGEgZ29vZCBz
b2x1dGlvbiBmb3IgcmVuZGVyaW5nIGl0LgogICAgIHNldHRpbmdzLT5zZXRBY2NlbGVyYXRlZENv
bXBvc2l0aW5nRW5hYmxlZChmYWxzZSk7CisgICAgc2V0dGluZ3MtPnNldEFjY2VsZXJhdGVkRHJh
d2luZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KGZhbHNlKSk7CiAjZWxzZQogICAg
IHNldHRpbmdzLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChzdG9yZS5nZXRCb29s
VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFi
bGVkS2V5KCkpKTsKKyAgICBzZXR0aW5ncy0+c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChz
dG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmFjY2VsZXJhdGVkRHJh
d2luZ0VuYWJsZWRLZXkoKSkpOwogI2VuZGlmCiAgICAgc2V0dGluZ3MtPnNldFNob3dEZWJ1Z0Jv
cmRlcnMoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpjb21wb3Np
dGluZ0JvcmRlcnNWaXNpYmxlS2V5KCkpKTsKICAgICBzZXR0aW5ncy0+c2V0U2hvd1JlcGFpbnRD
b3VudGVyKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6Y29tcG9z
aXRpbmdSZXBhaW50Q291bnRlcnNWaXNpYmxlS2V5KCkpKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDc4NjQ4KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDItMTUgIE1hdHRoZXcgRGVsYW5leSAgPG1k
ZWxhbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBbGxvdyBhY2NlbGVyYXRlc0RyYXdpbmcgZm9yIFdlYktpdDIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTExCisKKyAgICAgICAg
KiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcv
V2ViUHJlZmVyZW5jZXMubW06CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZh
dGUuaDoKKyAgICAgICAgXl4gcGx1bWIgdGhyb3VnaCBhY2NlbGVyYXRlc0RyYXdpbmcgZmxhZwor
CiAyMDExLTAyLTE0ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgR2F2aW4gQmFycmFjbG91Z2ggYW5kIEdlb2ZmIEdhcmVuLgpJbmRleDogU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oCShyZXZpc2lvbiA3ODQ5NikKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg4LDYgKzg4LDcgQEAKICNk
ZWZpbmUgV2ViS2l0Wm9vbXNUZXh0T25seVByZWZlcmVuY2VLZXkgQCJXZWJLaXRab29tc1RleHRP
bmx5IgogI2RlZmluZSBXZWJLaXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkUHJlZmVyZW5j
ZUtleSBAIldlYktpdEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQiCiAjZGVmaW5lIFdlYktp
dFhTU0F1ZGl0b3JFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFhTU0F1ZGl0b3JFbmFibGVk
IgorI2RlZmluZSBXZWJLaXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkUHJlZmVyZW5jZUtleSBA
IldlYktpdEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdFbmFibGVkIgogI2RlZmluZSBXZWJLaXRTaG93RGVidWdCb3JkZXJzUHJlZmVyZW5j
ZUtleSBAIldlYktpdFNob3dEZWJ1Z0JvcmRlcnMiCiAjZGVmaW5lIFdlYktpdFNob3dSZXBhaW50
Q291bnRlclByZWZlcmVuY2VLZXkgQCJXZWJLaXRTaG93UmVwYWludENvdW50ZXIiCkluZGV4OiBT
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0JKHJldmlzaW9uIDc4
NDk2KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQkod29y
a2luZyBjb3B5KQpAQCAtMzU4LDYgKzM1OCw3IEBAICsgKHZvaWQpaW5pdGlhbGl6ZQogICAgICAg
ICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdEphdmFTY3JpcHRDYW5BY2Nl
c3NDbGlwYm9hcmRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJv
b2w6WUVTXSwgIFdlYktpdFhTU0F1ZGl0b3JFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAg
W05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZFByZWZlcmVuY2VLZXksCisgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9v
bDpZRVNdLCAgV2ViS2l0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZFByZWZlcmVuY2VLZXksCiAg
ICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10sICAgV2ViS2l0U2hvd0RlYnVnQm9y
ZGVyc1ByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpOT10s
ICAgV2ViS2l0U2hvd1JlcGFpbnRDb3VudGVyUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVt
YmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRXZWJHTEVuYWJsZWRQcmVmZXJlbmNlS2V5
LApAQCAtMTIzNCw2ICsxMjM1LDE2IEBAIC0gKHZvaWQpX3NldEZvcmNlRlRQRGlyZWN0b3J5TGlz
dGluZ3M6KEIKICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZvcmNlIGZvcktleTpXZWJLaXRGb3Jj
ZUZUUERpcmVjdG9yeUxpc3RpbmdzXTsKIH0KIAorLSAoQk9PTClhY2NlbGVyYXRlZERyYXdpbmdF
bmFibGVkCit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0QWNjZWxl
cmF0ZWREcmF3aW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCistICh2b2lkKXNldEFjY2Vs
ZXJhdGVkRHJhd2luZ0VuYWJsZWQ6KEJPT0wpZW5hYmxlZAoreworICAgIFtzZWxmIF9zZXRCb29s
VmFsdWU6ZW5hYmxlZCBmb3JLZXk6V2ViS2l0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZFByZWZl
cmVuY2VLZXldOworfQorCiAtIChCT09MKWFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkCiB7
CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAkocmV2aXNpb24gNzg0OTYpCisr
KyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzYsNiArMTc2LDkgQEAgQGludGVyZmFjZSBXZWJQcmVmZXJlbmNlcyAo
V2ViUHJpdmF0ZSkKIC0gKE5TU3RyaW5nICopX2xvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDsKIC0g
KHZvaWQpX3NldExvY2FsU3RvcmFnZURhdGFiYXNlUGF0aDooTlNTdHJpbmcgKilwYXRoOwogCist
IChCT09MKWFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQ7CistICh2b2lkKXNldEFjY2VsZXJhdGVk
RHJhd2luZ0VuYWJsZWQ6KEJPT0wpZW5hYmxlZDsKKwogLSAoQk9PTClhY2NlbGVyYXRlZENvbXBv
c2l0aW5nRW5hYmxlZDsKIC0gKHZvaWQpc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ6
KEJPT0wpZW5hYmxlZDsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82736</attachid>
            <date>2011-02-16 18:57:26 -0800</date>
            <delta_ts>2011-02-16 20:16:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54511-20110216185725.patch</filename>
            <type>text/plain</type>
            <size>14164</size>
            <attacher name="Matthew Delaney">mdelaney7</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NzM0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDItMTYgIE1hdHRoZXcg
RGVsYW5leSAgPG1kZWxhbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBbGxvdyBhY2NlbGVyYXRlc0RyYXdpbmcgZm9yIFdlYktp
dDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTEx
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzOyBUaGVzZSBwbHVtYmluZyBjaGFuZ2VzIGNhbid0IGJl
IHRlc3RlZC4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOlBsdW1iIHRocm91Z2ggYWNjZWxl
cmF0ZXNEcmF3aW5nCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6UGx1bWIgdGhyb3VnaCBh
Y2NlbGVyYXRlc0RyYXdpbmcKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6IFBsdW1iIHRocm91
Z2ggYWNjZWxlcmF0ZXNEcmF3aW5nCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5jcHA6IFNldCBhY2NlbGVyYXRlc0RyYXdpbmcgb24gdGhlIGxheWVyIGlmIGFjY2Vs
ZXJhdGVzRHJhd2luZyBpcyBvbiBpbiBzZXR0aW5ncworCiAyMDExLTAyLTE1ICBHYXZpbiBCYXJy
YWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBH
ZW9mZiBHYXJlbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiA3ODczNCkKKysr
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCSh3b3JraW5nIGNvcHkpCkBAIC04MzIsNiAr
ODMyLDcgQEAgX19aTjdXZWJDb3JlOFNldHRpbmdzMjdzZXRGVFBEaXJlY3RvcnlUZQogX19aTjdX
ZWJDb3JlOFNldHRpbmdzMjdzZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHlFYgogX19aTjdXZWJD
b3JlOFNldHRpbmdzMjdzZXRMb2NhbFN0b3JhZ2VEYXRhYmFzZVBhdGhFUktOM1dURjZTdHJpbmdF
CiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyN3NldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZEViCitf
X1pON1dlYkNvcmU4U2V0dGluZ3MyOHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWRFYgogX19a
TjdXZWJDb3JlOFNldHRpbmdzMjhzZXRGb3JjZUZUUERpcmVjdG9yeUxpc3RpbmdzRWIKIF9fWk43
V2ViQ29yZThTZXR0aW5nczI5c2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWRFYgogX19aTjdX
ZWJDb3JlOFNldHRpbmdzMjlzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZEViCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmNwcAkocmV2aXNpb24gNzg3MzQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQyLDYgKzE0Miw3IEBAIFNl
dHRpbmdzOjpTZXR0aW5ncyhQYWdlKiBwYWdlKQogICAgICwgbV9lbmZvcmNlQ1NTTUlNRVR5cGVJ
bk5vUXVpcmtzTW9kZSh0cnVlKQogICAgICwgbV91c2VzRW5jb2RpbmdEZXRlY3RvcihmYWxzZSkK
ICAgICAsIG1fYWxsb3dTY3JpcHRzVG9DbG9zZVdpbmRvd3MoZmFsc2UpCisgICAgLCBtX2FjY2Vs
ZXJhdGVkRHJhd2luZ0VuYWJsZWQoZmFsc2UpCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJl
YWxseSBiZSBkaXNhYmxlZCBieSBkZWZhdWx0IGFzIGl0IG1ha2VzIHBsYXRmb3JtcyB0aGF0IGRv
bid0IHN1cHBvcnQgdGhlIGZlYXR1cmUgZG93bmxvYWQgZmlsZXMKICAgICAvLyB0aGV5IGNhbid0
IHVzZSBieS4gTGVhdmluZyBlbmFibGVkIGZvciBub3cgdG8gbm90IGNoYW5nZSBleGlzdGluZyBi
ZWhhdmlvci4KICAgICAsIG1fZG93bmxvYWRhYmxlQmluYXJ5Rm9udHNFbmFibGVkKHRydWUpCkBA
IC02MTMsNiArNjE0LDExIEBAIHZvaWQgU2V0dGluZ3M6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRp
bmcKICAgICBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMobV9wYWdlKTsKIH0KIAordm9p
ZCBTZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCit7
CisgICAgbV9hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkID0gZW5hYmxlZDsKK30KKwogdm9pZCBT
ZXR0aW5nczo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcjNEVHJhbnNmb3Jtc0VuYWJsZWQo
Ym9vbCBlbmFibGVkKQogewogICAgIG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvcjNEVHJhbnNm
b3Jtc0VuYWJsZWQgPSBlbmFibGVkOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAkocmV2aXNp
b24gNzg3MzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI4Myw2ICsyODMsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQg
c2V0WFNTQXVkaXRvckVuYWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgeHNzQXVkaXRvckVuYWJs
ZWQoKSBjb25zdCB7IHJldHVybiBtX3hzc0F1ZGl0b3JFbmFibGVkOyB9CiAKKyAgICAgICAgdm9p
ZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGJvb2wpOworICAgICAgICBib29sIGFjY2Vs
ZXJhdGVkRHJhd2luZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGVkRHJhd2lu
Z0VuYWJsZWQ7IH0KKyAgICAgICAgCiAgICAgICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0VuYWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Vu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkOyB9
CiAKQEAgLTQzNCw2ICs0MzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wg
bV9lbmZvcmNlQ1NTTUlNRVR5cGVJbk5vUXVpcmtzTW9kZSA6IDE7CiAgICAgICAgIGJvb2wgbV91
c2VzRW5jb2RpbmdEZXRlY3RvciA6IDE7CiAgICAgICAgIGJvb2wgbV9hbGxvd1NjcmlwdHNUb0Ns
b3NlV2luZG93cyA6IDE7CisgICAgICAgIGJvb2wgbV9hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVk
IDogMTsKICAgICAgICAgYm9vbCBtX2Rvd25sb2FkYWJsZUJpbmFyeUZvbnRzRW5hYmxlZCA6IDE7
CiAgICAgICAgIGJvb2wgbV94c3NBdWRpdG9yRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9h
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCA6IDE7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAkocmV2aXNpb24gNzg3
MzQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzMxLDcgKzMzMSw5IEBAIGJvb2wgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjp1cGRhdGVCYWNraW4KICAgICAgICAgICAgIGxheWVyLT5lbnN1cmVCYWNraW5nKCk7
CiAKICNpZiBQTEFURk9STShNQUMpICYmIFBMQVRGT1JNKENBKQotICAgICAgICAgICAgaWYgKGxh
eWVyLT5yZW5kZXJlcigpLT5pc0NhbnZhcygpKSB7CisgICAgICAgICAgICBpZiAobV9yZW5kZXJW
aWV3LT5kb2N1bWVudCgpLT5zZXR0aW5ncygpLT5hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKCkp
CisgICAgICAgICAgICAgICAgbGF5ZXItPmJhY2tpbmcoKS0+Z3JhcGhpY3NMYXllcigpLT5zZXRB
Y2NlbGVyYXRlc0RyYXdpbmcodHJ1ZSk7CisgICAgICAgICAgICBlbHNlIGlmIChsYXllci0+cmVu
ZGVyZXIoKS0+aXNDYW52YXMoKSkgewogICAgICAgICAgICAgICAgIEhUTUxDYW52YXNFbGVtZW50
KiBjYW52YXMgPSBzdGF0aWNfY2FzdDxIVE1MQ2FudmFzRWxlbWVudCo+KGxheWVyLT5yZW5kZXJl
cigpLT5ub2RlKCkpOwogICAgICAgICAgICAgICAgIGlmIChjYW52YXMtPnJlbmRlcmluZ0NvbnRl
eHQoKSAmJiBjYW52YXMtPnJlbmRlcmluZ0NvbnRleHQoKS0+aXNBY2NlbGVyYXRlZCgpKQogICAg
ICAgICAgICAgICAgICAgICBsYXllci0+YmFja2luZygpLT5ncmFwaGljc0xheWVyKCktPnNldEFj
Y2VsZXJhdGVzRHJhd2luZyh0cnVlKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4NzM0KQor
KysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTEtMDItMTYgIE1hdHRoZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGxvdyBhY2Nl
bGVyYXRlc0RyYXdpbmcgZm9yIFdlYktpdDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU0NTExCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5j
ZXNTdG9yZS5oOiBQbHVtYiB0aHJvdWdoIGFjY2VsZXJhdGVzRHJhd2luZworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDogUGx1bWIgdGhyb3VnaCBhY2NlbGVyYXRl
c0RyYXdpbmcKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUu
aDogUGx1bWIgdGhyb3VnaCBhY2NlbGVyYXRlc0RyYXdpbmcKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6IFBsdW1iIHRocm91Z2ggYWNjZWxlcmF0ZXNEcmF3aW5nCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhSW1wbC5jcHA6IEVudGVyIGNv
bXBvc2l0aW5nIGluIGFjY2VsZXJhdGVkIGRyYXdpbmcgbW9kZQorCiAyMDExLTAyLTE2ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QWRhbSBSb2Jlbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0
b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
U3RvcmUuaAkocmV2aXNpb24gNzg3MzQpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXNTdG9yZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogICAgIG1hY3JvKEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCwgaHlwZXJsaW5r
QXVkaXRpbmdFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCiAgICAgbWFjcm8oTmVlZHNTaXRl
U3BlY2lmaWNRdWlya3MsIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBCb29sLCBib29sLCBmYWxz
ZSkgXAogICAgIG1hY3JvKEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkLCBhY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAorICAgIG1hY3JvKEFjY2Vs
ZXJhdGVkRHJhd2luZ0VuYWJsZWQsIGFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQsIEJvb2wsIGJv
b2wsIGZhbHNlKSBcCiAgICAgbWFjcm8oQ29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZSwgY29tcG9z
aXRpbmdCb3JkZXJzVmlzaWJsZSwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhDb21w
b3NpdGluZ1JlcGFpbnRDb3VudGVyc1Zpc2libGUsIGNvbXBvc2l0aW5nUmVwYWludENvdW50ZXJz
VmlzaWJsZSwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhXZWJHTEVuYWJsZWQsIHdl
YkdMRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAJKHJldmlzaW9uIDc4NzM0KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMDEsNiArMzAxLDE2IEBAIFdLRm9udFNtb290aGluZ0xldmVsIFdLUHJl
ZmVyZW5jZXNHZXRGb24KICAgICByZXR1cm4gdG9BUEkoc3RhdGljX2Nhc3Q8Rm9udFNtb290aGlu
Z0xldmVsPih0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5mb250U21vb3RoaW5nTGV2ZWwoKSkpOwog
fQogCit2b2lkIFdLUHJlZmVyZW5jZXNTZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKFdLUHJl
ZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZmxhZykKK3sKKyAgICB0b0ltcGwocHJl
ZmVyZW5jZXNSZWYpLT5zZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGZsYWcpOworfQorCiti
b29sIFdLUHJlZmVyZW5jZXNHZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKFdLUHJlZmVyZW5j
ZXNSZWYgcHJlZmVyZW5jZXNSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1Jl
ZiktPmFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoKTsKK30KKwogdm9pZCBXS1ByZWZlcmVuY2Vz
U2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJl
bmNlc1JlZiwgYm9vbCBmbGFnKQogewogICAgIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPnNldEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKGZsYWcpOwpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgJKHJldmlz
aW9uIDc4NzM0KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5j
ZXNQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDEwIEBAIHR5cGVkZWYgZW51
bSBXS0ZvbnRTbW9vdGhpbmdMZXZlbCBXS0ZvbnQKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5j
ZXNTZXRGb250U21vb3RoaW5nTGV2ZWwoV0tQcmVmZXJlbmNlc1JlZiwgV0tGb250U21vb3RoaW5n
TGV2ZWwpOwogV0tfRVhQT1JUIFdLRm9udFNtb290aGluZ0xldmVsIFdLUHJlZmVyZW5jZXNHZXRG
b250U21vb3RoaW5nTGV2ZWwoV0tQcmVmZXJlbmNlc1JlZik7CiAKKy8vIERlZmF1bHRzIHRvIGZh
bHNlLgorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldEFjY2VsZXJhdGVkRHJhd2luZ0Vu
YWJsZWQoV0tQcmVmZXJlbmNlc1JlZiwgYm9vbCk7CitXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVu
Y2VzR2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsKKwogLy8g
RGVmYXVsdHMgdG8gdHJ1ZS4KIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sKTsKIFdLX0VYUE9S
VCBib29sIFdLUHJlZmVyZW5jZXNHZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChXS1By
ZWZlcmVuY2VzUmVmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCShyZXZpc2lvbiA3ODczNCkKKysrIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYUltcGwuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNCw2ICszNCw4IEBACiAjaW5jbHVkZSAiV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBo
aWNzQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2V0dGluZ3MuaD4KIAogI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShXSU4pCiAj
ZXJyb3IgIlRoaXMgZHJhd2luZyBhcmVhIGlzIG5vdCByZWFkeSBmb3IgdXNlIGJ5IG90aGVyIHBv
cnRzIHlldC4iCkBAIC02OCw2ICs3MCw4IEBAIERyYXdpbmdBcmVhSW1wbDo6RHJhd2luZ0FyZWFJ
bXBsKFdlYlBhZ2UKICAgICAsIG1fZGlzcGxheVRpbWVyKFdlYlByb2Nlc3M6OnNoYXJlZCgpLnJ1
bkxvb3AoKSwgdGhpcywgJkRyYXdpbmdBcmVhSW1wbDo6ZGlzcGxheSkKICAgICAsIG1fZXhpdENv
bXBvc2l0aW5nVGltZXIoV2ViUHJvY2Vzczo6c2hhcmVkKCkucnVuTG9vcCgpLCB0aGlzLCAmRHJh
d2luZ0FyZWFJbXBsOjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpCiB7CisgICAgaWYg
KHdlYlBhZ2UtPmNvcmVQYWdlKCktPnNldHRpbmdzKCktPmFjY2VsZXJhdGVkRHJhd2luZ0VuYWJs
ZWQoKSkKKyAgICAgICAgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgwKTsKIH0KIAog
dm9pZCBEcmF3aW5nQXJlYUltcGw6OnNldE5lZWRzRGlzcGxheShjb25zdCBJbnRSZWN0JiByZWN0
KQpAQCAtMzA5LDYgKzMxMyw4IEBAIHZvaWQgRHJhd2luZ0FyZWFJbXBsOjpleGl0QWNjZWxlcmF0
ZWRDb20KIHsKICAgICBtX2V4aXRDb21wb3NpdGluZ1RpbWVyLnN0b3AoKTsKIAorICAgIG1fd2Vi
UGFnZS0+Y29yZVBhZ2UoKS0+c2V0dGluZ3MoKS0+YWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCgp
OworCiAgICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9zdCk7CiAKICAgICBtX2xheWVyVHJlZUhvc3Qt
PmludmFsaWRhdGUoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDc4NzM0KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYzLDggKzEzNjMs
MTAgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZQogI2lmIFBMQVRG
T1JNKFdJTikKICAgICAvLyBUZW1wb3JhcmlseSB0dXJuIG9mZiBhY2NlbGVyYXRlZCBjb21wb3Np
dGluZyB1bnRpbCB3ZSBoYXZlIGEgZ29vZCBzb2x1dGlvbiBmb3IgcmVuZGVyaW5nIGl0LgogICAg
IHNldHRpbmdzLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChmYWxzZSk7CisgICAg
c2V0dGluZ3MtPnNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoZmFsc2UpOwogI2Vsc2UKICAg
ICBzZXR0aW5ncy0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9v
bFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjphY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5h
YmxlZEtleSgpKSk7CisgICAgc2V0dGluZ3MtPnNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQo
c3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjphY2NlbGVyYXRlZERy
YXdpbmdFbmFibGVkS2V5KCkpKTsKICNlbmRpZgogICAgIHNldHRpbmdzLT5zZXRTaG93RGVidWdC
b3JkZXJzKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6Y29tcG9z
aXRpbmdCb3JkZXJzVmlzaWJsZUtleSgpKSk7CiAgICAgc2V0dGluZ3MtPnNldFNob3dSZXBhaW50
Q291bnRlcihzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmNvbXBv
c2l0aW5nUmVwYWludENvdW50ZXJzVmlzaWJsZUtleSgpKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3ODczNCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDExLTAyLTE2ICBNYXR0aGV3IERlbGFuZXkgIDxt
ZGVsYW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWxsb3cgYWNjZWxlcmF0ZXNEcmF3aW5nIGZvciBXZWJLaXQyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDUxMQorCisgICAgICAg
ICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDogUGx1bWIgdGhyb3VnaCBhY2Nl
bGVyYXRlc0RyYXdpbmcKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOiBQbHVt
YiB0aHJvdWdoIGFjY2VsZXJhdGVzRHJhd2luZworICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVy
ZW5jZXNQcml2YXRlLmg6IFBsdW1iIHRocm91Z2ggYWNjZWxlcmF0ZXNEcmF3aW5nCisKIDIwMTEt
MDItMTUgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICA8aHR0
cDovL3dlYmtpdC5vcmcvYi81NDUwNT4gTW92ZSAtW1dlYkR5bmFtaWNTY3JvbGxCYXJzVmlldyBp
blByb2dyYW1tYXRpY1Njcm9sbF0gdG8gV2ViRHluYW1pY1Njcm9sbEJhcnNWaWV3SW50ZXJuYWwu
aApJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZh
dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oCShyZXZpc2lvbiA3ODczNCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg4LDYg
Kzg4LDcgQEAKICNkZWZpbmUgV2ViS2l0Wm9vbXNUZXh0T25seVByZWZlcmVuY2VLZXkgQCJXZWJL
aXRab29tc1RleHRPbmx5IgogI2RlZmluZSBXZWJLaXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJv
YXJkUHJlZmVyZW5jZUtleSBAIldlYktpdEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQiCiAj
ZGVmaW5lIFdlYktpdFhTU0F1ZGl0b3JFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFhTU0F1
ZGl0b3JFbmFibGVkIgorI2RlZmluZSBXZWJLaXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkUHJl
ZmVyZW5jZUtleSBAIldlYktpdEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQiCiAjZGVmaW5lIFdl
YktpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkIgogI2RlZmluZSBXZWJLaXRTaG93RGVidWdCb3Jk
ZXJzUHJlZmVyZW5jZUtleSBAIldlYktpdFNob3dEZWJ1Z0JvcmRlcnMiCiAjZGVmaW5lIFdlYktp
dFNob3dSZXBhaW50Q291bnRlclByZWZlcmVuY2VLZXkgQCJXZWJLaXRTaG93UmVwYWludENvdW50
ZXIiCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0J
KHJldmlzaW9uIDc4NzM0KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzU4LDYgKzM1OCw3IEBAICsgKHZvaWQpaW5pdGlh
bGl6ZQogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdEphdmFT
Y3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIg
bnVtYmVyV2l0aEJvb2w6WUVTXSwgIFdlYktpdFhTU0F1ZGl0b3JFbmFibGVkUHJlZmVyZW5jZUtl
eSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nRW5hYmxlZFByZWZlcmVuY2VLZXksCisgICAgICAgIFtOU051bWJlciBu
dW1iZXJXaXRoQm9vbDpOT10sICBXZWJLaXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkUHJlZmVy
ZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRT
aG93RGVidWdCb3JkZXJzUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldp
dGhCb29sOk5PXSwgICBXZWJLaXRTaG93UmVwYWludENvdW50ZXJQcmVmZXJlbmNlS2V5LAogICAg
ICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdFdlYkdMRW5hYmxlZFBy
ZWZlcmVuY2VLZXksCkBAIC0xMjM0LDYgKzEyMzUsMTYgQEAgLSAodm9pZClfc2V0Rm9yY2VGVFBE
aXJlY3RvcnlMaXN0aW5nczooQgogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6Zm9yY2UgZm9yS2V5
OldlYktpdEZvcmNlRlRQRGlyZWN0b3J5TGlzdGluZ3NdOwogfQogCistIChCT09MKWFjY2VsZXJh
dGVkRHJhd2luZ0VuYWJsZWQKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpX
ZWJLaXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZv
aWQpc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZDooQk9PTCllbmFibGVkCit7CisgICAgW3Nl
bGYgX3NldEJvb2xWYWx1ZTplbmFibGVkIGZvcktleTpXZWJLaXRBY2NlbGVyYXRlZERyYXdpbmdF
bmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKIC0gKEJPT0wpYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQKIHsKICAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOwpJbmRleDogU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCShyZXZpc2lv
biA3ODczNCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2
YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE3Niw2ICsxNzYsOSBAQCBAaW50ZXJmYWNlIFdlYlBy
ZWZlcmVuY2VzIChXZWJQcml2YXRlKQogLSAoTlNTdHJpbmcgKilfbG9jYWxTdG9yYWdlRGF0YWJh
c2VQYXRoOwogLSAodm9pZClfc2V0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoOihOU1N0cmluZyAq
KXBhdGg7CiAKKy0gKEJPT0wpYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZDsKKy0gKHZvaWQpc2V0
QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZDooQk9PTCllbmFibGVkOworCiAtIChCT09MKWFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkOwogLSAodm9pZClzZXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZDooQk9PTCllbmFibGVkOwogCg==
</data>
<flag name="review"
          id="74430"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="74444"
          type_id="3"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>