<?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>82569</bug_id>
          
          <creation_ts>2012-03-28 21:11:37 -0700</creation_ts>
          <short_desc>[chromium] Ensure framebuffer exists at the start of beginDrawingFrame.</short_desc>
          <delta_ts>2012-03-29 13:36:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michal Mocny">mmocny</reporter>
          <assigned_to name="Michal Mocny">mmocny</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>590811</commentid>
    <comment_count>0</comment_count>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-03-28 21:11:37 -0700</bug_when>
    <thetext>[chromium] Ensure framebuffer exists at the start of beginDrawingFrame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590813</commentid>
    <comment_count>1</comment_count>
      <attachid>134491</attachid>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-03-28 21:12:11 -0700</bug_when>
    <thetext>Created attachment 134491
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590814</commentid>
    <comment_count>2</comment_count>
      <attachid>134491</attachid>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-03-28 21:14:48 -0700</bug_when>
    <thetext>Comment on attachment 134491
Patch

If we ensure that a framebuffer exists before beginning to draw a frame, we need not have clients explicitly manage it, and we can be sure it is done on the right thread.

This is also how it will work once it recreates itself of first use, so it is good practice.

We need not discard a recreated framebuffer, because GpuMemoryManager will send another allocation suggesting to discard it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590817</commentid>
    <comment_count>3</comment_count>
      <attachid>134491</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-28 21:17:04 -0700</bug_when>
    <thetext>Comment on attachment 134491
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590821</commentid>
    <comment_count>4</comment_count>
      <attachid>134491</attachid>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-03-28 21:18:23 -0700</bug_when>
    <thetext>Comment on attachment 134491
Patch

one sec, patch to remove public methods as they are no longer needed inc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590822</commentid>
    <comment_count>5</comment_count>
      <attachid>134493</attachid>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-03-28 21:20:46 -0700</bug_when>
    <thetext>Created attachment 134493
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>590850</commentid>
    <comment_count>6</comment_count>
      <attachid>134493</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-28 22:35:30 -0700</bug_when>
    <thetext>Comment on attachment 134493
Patch

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

&gt; Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp:64
&gt; +class FakeDrawableCCLayerImpl: public CCLayerImpl {

Not sure what these root layer changes are for...?

&gt; Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp:196
&gt; +    m_layerRendererChromium.beginDrawingFrame();

Where&apos;s the expectation that we called ensure?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591043</commentid>
    <comment_count>7</comment_count>
      <attachid>134493</attachid>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-03-29 04:50:38 -0700</bug_when>
    <thetext>Comment on attachment 134493
Patch

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

&gt;&gt; Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp:64
&gt;&gt; +class FakeDrawableCCLayerImpl: public CCLayerImpl {
&gt; 
&gt; Not sure what these root layer changes are for...?

We assert that we do not have a null root layer in beginDrawingFrame.

&gt;&gt; Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp:196
&gt;&gt; +    m_layerRendererChromium.beginDrawingFrame();
&gt; 
&gt; Where&apos;s the expectation that we called ensure?

Right below, before this line we EXPECT that isFramebufferDiscarded returns true, after this line it returns false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591263</commentid>
    <comment_count>8</comment_count>
      <attachid>134493</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-29 09:53:05 -0700</bug_when>
    <thetext>Comment on attachment 134493
Patch

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

Got it. Makes sense. Still lgtm.

&gt;&gt;&gt; Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp:196
&gt;&gt;&gt; +    m_layerRendererChromium.beginDrawingFrame();
&gt;&gt; 
&gt;&gt; Where&apos;s the expectation that we called ensure?
&gt; 
&gt; Right below, before this line we EXPECT that isFramebufferDiscarded returns true, after this line it returns false.

So you might want to put before this line expect no framebuffer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591287</commentid>
    <comment_count>9</comment_count>
      <attachid>134493</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-29 10:33:10 -0700</bug_when>
    <thetext>Comment on attachment 134493
Patch

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

R=me. Could use some small cleanup before landing.

&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h:168
&gt; +    friend class LayerRendererGpuMemoryAllocationChangedCallbackAdapter;

this adapter confuses me. It adapts the call onSwapBuffersComplete() to onSwapBuffersComplete(). Why doesn&apos;t LRC just implement Extensions3DChromium::SwapBuffersCompleteCallbackCHROMIUM ?

&gt;&gt;&gt; Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp:64
&gt;&gt;&gt; +class FakeDrawableCCLayerImpl: public CCLayerImpl {
&gt;&gt; 
&gt;&gt; Not sure what these root layer changes are for...?
&gt; 
&gt; We assert that we do not have a null root layer in beginDrawingFrame.

This class appears to do nothing but expose the constructor (which is protected). However there&apos;s a ::create() function that does exactly what you want. Just make your test client have an OwnPtr&lt;CCLayerImpl&gt; and you can test the real class instead of this somewhat silly fake

&gt; Source/WebKit/chromium/tests/LayerRendererChromiumTest.cpp:71
&gt; +    FakeLayerRendererChromiumClient() : m_setFullRootLayerDamageCount(0), m_rootLayer(1) { }

one statement per line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591297</commentid>
    <comment_count>10</comment_count>
      <attachid>134493</attachid>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-03-29 10:41:25 -0700</bug_when>
    <thetext>Comment on attachment 134493
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h:168
&gt;&gt; +    friend class LayerRendererGpuMemoryAllocationChangedCallbackAdapter;
&gt; 
&gt; this adapter confuses me. It adapts the call onSwapBuffersComplete() to onSwapBuffersComplete(). Why doesn&apos;t LRC just implement Extensions3DChromium::SwapBuffersCompleteCallbackCHROMIUM ?

I assume you meant to type onMemoryAllocationChanged, and the main reason was to not need to expose extensions3dchromium in the header, and was copying the style of onSwap...
I can make the change if that is preferred.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591302</commentid>
    <comment_count>11</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-29 10:46:08 -0700</bug_when>
    <thetext>Right, the other one. I think it&apos;s fine for LayerRendererChromium to know about Extensions, the point of LRC is to implement GraphicsContext3D-based functionality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591325</commentid>
    <comment_count>12</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-29 11:02:32 -0700</bug_when>
    <thetext>I think also that the E3D callback model takes ownership of the callback ptr. We dont want G3CD deleting the lrc :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591423</commentid>
    <comment_count>13</comment_count>
      <attachid>134639</attachid>
    <who name="Michal Mocny">mmocny</who>
    <bug_when>2012-03-29 12:16:18 -0700</bug_when>
    <thetext>Created attachment 134639
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591505</commentid>
    <comment_count>14</comment_count>
      <attachid>134639</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-29 13:36:19 -0700</bug_when>
    <thetext>Comment on attachment 134639
Patch

Clearing flags on attachment: 134639

Committed r112568: &lt;http://trac.webkit.org/changeset/112568&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>591506</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-29 13:36:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134491</attachid>
            <date>2012-03-28 21:12:11 -0700</date>
            <delta_ts>2012-03-28 21:20:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82569-20120329001209.patch</filename>
            <type>text/plain</type>
            <size>11356</size>
            <attacher name="Michal Mocny">mmocny</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDJhNDQ5MzAwYzk4YTE4
ZTdiNGQwMTI3NzZiYjMyZTI3MDljOWYwYi4uODMwODQ0NjEzMWQ0ZjdkOWJlNzllMDU2NDIzM2Zk
MmE5ZGI3OGE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAzLTI4ICBNaWNo
YWwgTW9jbnkgIDxtbW9jbnlAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIEVuc3Vy
ZSBmcmFtZWJ1ZmZlciBleGlzdHMgYXQgdGhlIHN0YXJ0IG9mIGJlZ2luRHJhd2luZ0ZyYW1lLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI1NjkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIExh
eWVyUmVuZGVyZXJDaHJvbWl1bVRlc3QgdW5pdHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6c2V0VmlzaWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OmJlZ2luRHJhd2luZ0ZyYW1lKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDU2luZ2xlVGhyZWFkUHJveHk6OmNvbXBvc2l0ZUFu
ZFJlYWRiYWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmNvbXBvc2l0
ZUFuZFJlYWRiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OnJlcXVlc3RS
ZWFkYmFja09uSW1wbFRocmVhZCk6CisKIDIwMTItMDMtMjggIEphc29uIExpdSAgPGphc29uLmxp
dUB0b3JjaG1vYmlsZS5jb20uY24+CiAKICAgICAgICAgW0JsYWNrQmVycnldTWlzc2luZyBjb29r
aWVzIGZyb20gSFRUUCByZXNwb25zZSBoZWFkZXIgaW4gTmV0d29yayB0YWIgb2YgV2ViIEluc3Bl
Y3Rvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOTczYWZjZmQ4OGE3ZDBiMzI0Yjk5
NzQxZWNmNTIzMDNjMGQzNDRmNS4uNTdjOWMxNTI0ODVlYWU5NmI5NDA2ODQ5ODZlNTQ5N2MwODY3
NzJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0w
My0yOCAgTWljaGFsIE1vY255ICA8bW1vY255QGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9t
aXVtXSBFbnN1cmUgZnJhbWVidWZmZXIgZXhpc3RzIGF0IHRoZSBzdGFydCBvZiBiZWdpbkRyYXdp
bmdGcmFtZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgyNTY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB0ZXN0cy9MYXllclJlbmRlcmVyQ2hyb21pdW1UZXN0LmNwcDoKKyAgICAgICAgKEZha2VMYXll
clJlbmRlcmVyQ2hyb21pdW1DbGllbnQ6OkZha2VMYXllclJlbmRlcmVyQ2hyb21pdW1DbGllbnQp
OgorICAgICAgICAoRmFrZUxheWVyUmVuZGVyZXJDaHJvbWl1bUNsaWVudDo6cm9vdExheWVyKToK
KyAgICAgICAgKEZha2VMYXllclJlbmRlcmVyQ2hyb21pdW1DbGllbnQpOgorICAgICAgICAoVEVT
VF9GKToKKwogMjAxMi0wMy0yOCAgQmlsbCBCdWRnZSAgPGJidWRnZUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgQXNzb2NpYXRlZFVSTExvYWRlciBkb2VzIG5vdCBzdXBwb3J0IENyb3NzIE9yaWdp
biBSZWRpcmVjdHMgd2hlbiB1c2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5j
cHAKaW5kZXggNDY1NjkzNGU1ZmM5OTQ2NGEwMTc2MmViNTcxMTI4OTUyNGZjNmUxNC4uY2NiMWRk
OGQwYjI5YzM3MjIxMzNmYWI2ZGQ4MzVhOWI0ODI4YmIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJl
bmRlcmVyQ2hyb21pdW0uY3BwCkBAIC0zNTAsMTAgKzM1MCw2IEBAIHZvaWQgTGF5ZXJSZW5kZXJl
ckNocm9taXVtOjpzZXRWaXNpYmxlKGJvb2wgdmlzaWJsZSkKICAgICBpZiAoIXZpc2libGUpCiAg
ICAgICAgIHJlbGVhc2VSZW5kZXJTdXJmYWNlVGV4dHVyZXMoKTsKIAotICAgIC8vIEZJWE1FOiBS
ZW1vdmUgdGhpcyBvbmNlIGZyYW1lYnVmZmVyIGlzIGF1dG9tYXRpY2FsbHkgcmVjcmVhdGVkIG9u
IGZpcnN0IHVzZQotICAgIGlmICh2aXNpYmxlKQotICAgICAgICBlbnN1cmVGcmFtZWJ1ZmZlcigp
OwotCiAgICAgLy8gVE9ETzogUmVwbGFjZSBzZXRWaXNpYmlsaXR5Q0hST01JVU0gd2l0aCBhbiBl
eHRlbnNpb24gdG8gZXhwbGljaXRseSBtYW5hZ2UgZnJvbnQvYmFja2J1ZmZlcnMKICAgICAvLyBj
cmJ1Zy5jb20vMTE2MDQ5CiAgICAgaWYgKG1fY2FwYWJpbGl0aWVzLnVzaW5nU2V0VmlzaWJpbGl0
eSkgewpAQCAtNDA2LDYgKzQwMiwxMCBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6Y2xl
YXJSZW5kZXJTdXJmYWNlKENDUmVuZGVyU3VyZmFjZSogcmVuZGVyU3VyZmFjZSwgQwogdm9pZCBM
YXllclJlbmRlcmVyQ2hyb21pdW06OmJlZ2luRHJhd2luZ0ZyYW1lKCkKIHsKICAgICBBU1NFUlQo
cm9vdExheWVyKCkpOworCisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG9uY2UgZnJhbWVidWZm
ZXIgaXMgYXV0b21hdGljYWxseSByZWNyZWF0ZWQgb24gZmlyc3QgdXNlCisgICAgZW5zdXJlRnJh
bWVidWZmZXIoKTsKKwogICAgIG1fZGVmYXVsdFJlbmRlclN1cmZhY2UgPSByb290TGF5ZXIoKS0+
cmVuZGVyU3VyZmFjZSgpOwogCiAgICAgLy8gRklYTUU6IHVzZSB0aGUgZnJhbWUgYmVnaW4gdGlt
ZSBmcm9tIHRoZSBvdmVyYWxsIGNvbXBvc2l0b3Igc2NoZWR1bGVyLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9t
aXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJl
bmRlcmVyQ2hyb21pdW0uaAppbmRleCA1OWI4ZmY4ZmI5ZTgyZjA1ZDFmNGZjMzdkYjNiYjY3MWEx
YTkwYjZiLi5iYzhiNDc1NThmNTUyNWI5YzNhOTg3NGVkZmQ5NGIyMDY1ODhhMTA2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRl
cmVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaApAQCAtMjY2LDMzICsyNjYsNiBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9pc0ZyYW1lYnVmZmVyRGlzY2FyZGVkOwogfTsKIAotLy8gVGhlIHB1cnBv
c2Ugb2YgdGhpcyBoZWxwZXIgaXMgdHdvZm9sZDoKLS8vIDEuIFRvIGVuc3VyZSB0aGF0IGEgZnJh
bWVidWZmZXIgaXMgYXZhaWxhYmxlIGZvciBzY29wZSBsaWZldGltZSwgYW5kCi0vLyAyLiBUbyBy
ZXNldCBmcmFtZWJ1ZmZlciBhbGxvY2F0aW9uIHRvIHByZXZpb3VzIHN0YXRlIG9uIHNjb3BlIGV4
aXQuCi0vLyBJZiB0aGUgZnJhbWVidWZmZXIgaXMgcmVjcmVhdGVkLCBpdHMgY29udGVudHMgYXJl
IHVuZGVmaW5lZC4KLS8vIEZJWE1FOiBQcmV2ZW50L2RlbGF5IGRpc2NhcmRpbmcgZnJhbWVidWZm
ZXIgdmlhIGFueSBtZWFucyB3aGlsZSBhbnkKLS8vIGluc3RhbmNlIG9mIHRoaXMgaXMgYWxpdmUu
IEF0IHRoZSBtb21lbnQsIHRoaXMgaXNuJ3QgYW4gaXNzdWUuCi1jbGFzcyBTY29wZWRFbnN1cmVG
cmFtZWJ1ZmZlckFsbG9jYXRpb24gewotcHVibGljOgotICAgIGV4cGxpY2l0IFNjb3BlZEVuc3Vy
ZUZyYW1lYnVmZmVyQWxsb2NhdGlvbihMYXllclJlbmRlcmVyQ2hyb21pdW0qIGxheWVyUmVuZGVy
ZXIpCi0gICAgICAgIDogbV9sYXllclJlbmRlcmVyKGxheWVyUmVuZGVyZXIpCi0gICAgICAgICwg
bV9mcmFtZWJ1ZmZlcldhc0luaXRpYWxseURpc2NhcmRlZChsYXllclJlbmRlcmVyLT5pc0ZyYW1l
YnVmZmVyRGlzY2FyZGVkKCkpCi0gICAgewotICAgICAgICBpZiAobV9mcmFtZWJ1ZmZlcldhc0lu
aXRpYWxseURpc2NhcmRlZCkKLSAgICAgICAgICAgIG1fbGF5ZXJSZW5kZXJlci0+ZW5zdXJlRnJh
bWVidWZmZXIoKTsKLSAgICB9Ci0KLSAgICB+U2NvcGVkRW5zdXJlRnJhbWVidWZmZXJBbGxvY2F0
aW9uKCkKLSAgICB7Ci0gICAgICAgIGlmIChtX2ZyYW1lYnVmZmVyV2FzSW5pdGlhbGx5RGlzY2Fy
ZGVkKQotICAgICAgICAgICAgbV9sYXllclJlbmRlcmVyLT5kaXNjYXJkRnJhbWVidWZmZXIoKTsK
LSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgTGF5ZXJSZW5kZXJlckNocm9taXVtKiBtX2xheWVyUmVu
ZGVyZXI7Ci0gICAgYm9vbCBtX2ZyYW1lYnVmZmVyV2FzSW5pdGlhbGx5RGlzY2FyZGVkOwotfTsK
LQogCiAvLyBTZXR0aW5nIERFQlVHX0dMX0NBTExTIHRvIDEgd2lsbCBjYWxsIGdsR2V0RXJyb3Io
KSBhZnRlciBhbG1vc3QgZXZlcnkgR0wKIC8vIGNhbGwgbWFkZSBieSB0aGUgY29tcG9zaXRvci4g
VXNlZnVsIGZvciBkZWJ1Z2dpbmcgcmVuZGVyaW5nIGlzc3VlcyBidXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFk
UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKaW5kZXggMWI0MWY3ZTdjZTA0OGNkYjE1YjA4ZGJhZWMy
ZjljN2EzMDM2YWFlYi4uZWM4NDI4ZDY1MDVmYTE5OTcxZjhhYTMyMDE2NjUwMzEzMjdjMjJiNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKQEAgLTcyLDggKzcyLDYg
QEAgYm9vbCBDQ1NpbmdsZVRocmVhZFByb3h5Ojpjb21wb3NpdGVBbmRSZWFkYmFjayh2b2lkICpw
aXhlbHMsIGNvbnN0IEludFJlY3QmIHJlY3QKICAgICBUUkFDRV9FVkVOVCgiQ0NTaW5nbGVUaHJl
YWRQcm94eTo6Y29tcG9zaXRlQW5kUmVhZGJhY2siLCB0aGlzLCAwKTsKICAgICBBU1NFUlQoQ0NQ
cm94eTo6aXNNYWluVGhyZWFkKCkpOwogCi0gICAgU2NvcGVkRW5zdXJlRnJhbWVidWZmZXJBbGxv
Y2F0aW9uIGVuc3VyZUZyYW1lYnVmZmVyKG1fbGF5ZXJUcmVlSG9zdEltcGwtPmxheWVyUmVuZGVy
ZXIoKSk7Ci0KICAgICBpZiAoIWNvbW1pdElmTmVlZGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAppbmRleCAwNTVjYTA4ZmY3MDk2Yzg3NzZj
NzEwYWVkN2FhOGQyNDBiNzE2YjQ0Li5jMTFmNDY0NWVkMDVjMGVlNzNjZjMyMDM0YzZmMzE0ZTdk
NWVhNWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcApAQCAtOTMsOCArOTMsNiBAQCBi
b29sIENDVGhyZWFkUHJveHk6OmNvbXBvc2l0ZUFuZFJlYWRiYWNrKHZvaWQgKnBpeGVscywgY29u
c3QgSW50UmVjdCYgcmVjdCkKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VS
VChtX2xheWVyVHJlZUhvc3QpOwogCi0gICAgU2NvcGVkRW5zdXJlRnJhbWVidWZmZXJBbGxvY2F0
aW9uIGVuc3VyZUZyYW1lYnVmZmVyKG1fbGF5ZXJUcmVlSG9zdEltcGwtPmxheWVyUmVuZGVyZXIo
KSk7Ci0KICAgICBpZiAoIW1fbGF5ZXJSZW5kZXJlckluaXRpYWxpemVkKSB7CiAgICAgICAgIFRS
QUNFX0VWRU5UKCJjb21wb3NpdGVBbmRSZWFkYmFja19FYXJseU91dF9MUl9VbmluaXRpYWxpemVk
IiwgdGhpcywgMCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEyNSw2ICsxMjMsNyBAQCB2
b2lkIENDVGhyZWFkUHJveHk6OnJlcXVlc3RSZWFkYmFja09uSW1wbFRocmVhZChSZWFkYmFja1Jl
cXVlc3QqIHJlcXVlc3QpCiAgICAgICAgIHJlcXVlc3QtPmNvbXBsZXRpb24uc2lnbmFsKCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CisKICAgICBtX3JlYWRiYWNrUmVxdWVzdE9uSW1wbFRocmVh
ZCA9IHJlcXVlc3Q7CiAgICAgbV9zY2hlZHVsZXJPbkltcGxUaHJlYWQtPnNldE5lZWRzUmVkcmF3
KCk7CiAgICAgbV9zY2hlZHVsZXJPbkltcGxUaHJlYWQtPnNldE5lZWRzRm9yY2VkUmVkcmF3KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyUmVuZGVyZXJD
aHJvbWl1bVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXllclJlbmRl
cmVyQ2hyb21pdW1UZXN0LmNwcAppbmRleCA0NTFhY2VhMTRlZDhhMzUwNGQxZWIxNjZiMDQ5ZTZi
MmZiZDAyY2JmLi4wMGY5YzM1ZDI2MGVlOWY4MTliYTlmMTg3MmI0Nzc2Mzk0OTNjMWMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyUmVuZGVyZXJDaHJvbWl1
bVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJSZW5kZXJl
ckNocm9taXVtVGVzdC5jcHAKQEAgLTYxLDE1ICs2MSwyMCBAQCBwcml2YXRlOgogICAgIFdlYkdy
YXBoaWNzTWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxsYmFja0NIUk9NSVVNKiBtX21lbW9yeUFs
bG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2s7CiB9OwogCitjbGFzcyBGYWtlRHJhd2FibGVDQ0xheWVy
SW1wbDogcHVibGljIENDTGF5ZXJJbXBsIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBGYWtlRHJh
d2FibGVDQ0xheWVySW1wbChpbnQgaWQpIDogQ0NMYXllckltcGwoaWQpIHsgfQorfTsKKwogY2xh
c3MgRmFrZUxheWVyUmVuZGVyZXJDaHJvbWl1bUNsaWVudCA6IHB1YmxpYyBMYXllclJlbmRlcmVy
Q2hyb21pdW1DbGllbnQgewogcHVibGljOgotICAgIEZha2VMYXllclJlbmRlcmVyQ2hyb21pdW1D
bGllbnQoKSA6IG1fc2V0RnVsbFJvb3RMYXllckRhbWFnZUNvdW50KDApIHsgfQorICAgIEZha2VM
YXllclJlbmRlcmVyQ2hyb21pdW1DbGllbnQoKSA6IG1fc2V0RnVsbFJvb3RMYXllckRhbWFnZUNv
dW50KDApLCBtX3Jvb3RMYXllcigxKSB7IH0KIAogICAgIC8vIExheWVyUmVuZGVyZXJDaHJvbWl1
bUNsaWVudCBtZXRob2RzLgogICAgIHZpcnR1YWwgY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXpl
KCkgY29uc3QgeyBzdGF0aWMgSW50U2l6ZSBmYWtlU2l6ZTsgcmV0dXJuIGZha2VTaXplOyB9CiAg
ICAgdmlydHVhbCBjb25zdCBDQ1NldHRpbmdzJiBzZXR0aW5ncygpIGNvbnN0IHsgc3RhdGljIEND
U2V0dGluZ3MgZmFrZVNldHRpbmdzOyByZXR1cm4gZmFrZVNldHRpbmdzOyB9Ci0gICAgdmlydHVh
bCBDQ0xheWVySW1wbCogcm9vdExheWVyKCkgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgY29u
c3QgQ0NMYXllckltcGwqIHJvb3RMYXllcigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0
dWFsIENDTGF5ZXJJbXBsKiByb290TGF5ZXIoKSB7IHJldHVybiAmbV9yb290TGF5ZXI7IH0KKyAg
ICB2aXJ0dWFsIGNvbnN0IENDTGF5ZXJJbXBsKiByb290TGF5ZXIoKSBjb25zdCB7IHJldHVybiAm
bV9yb290TGF5ZXI7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZUNvbnRleHQoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgb25Td2FwQnVmZmVyc0NvbXBsZXRlKCkgeyB9CiAgICAgdmlydHVhbCB2
b2lkIHNldEZ1bGxSb290TGF5ZXJEYW1hZ2UoKSB7IG1fc2V0RnVsbFJvb3RMYXllckRhbWFnZUNv
dW50Kys7IH0KQEAgLTgwLDYgKzg1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBpbnQgbV9z
ZXRGdWxsUm9vdExheWVyRGFtYWdlQ291bnQ7CiAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFk
IG1faW1wbFRocmVhZDsKKyAgICBGYWtlRHJhd2FibGVDQ0xheWVySW1wbCBtX3Jvb3RMYXllcjsK
IH07CiAKIGNsYXNzIEZha2VMYXllclJlbmRlcmVyQ2hyb21pdW0gOiBwdWJsaWMgTGF5ZXJSZW5k
ZXJlckNocm9taXVtIHsKQEAgLTE3OCw1MSArMTg0LDE3IEBAIFRFU1RfRihMYXllclJlbmRlcmVy
Q2hyb21pdW1UZXN0LCBTd2FwQnVmZmVyc1doaWxlQmFja2J1ZmZlckRpc2NhcmRlZFNob3VsZEln
bm9yCiB9CiAKIC8vIFRlc3QgTGF5ZXJSZW5kZXJlckNocm9taXVtIGRpc2NhcmRGcmFtZWJ1ZmZl
ciBmdW5jdGlvbmFsaXR5OgotLy8gRGlzY2FyZCBmcmFtZWJ1ZmZlciwgdGhlbiBzZXQgdmlzaWJp
bGl0eSB0byB0cnVlLgotLy8gRXhwZWN0ZWQ6IHJlY3JlYXRlcyB0aGUgZnJhbWVidWZmZXIuCi1U
RVNUX0YoTGF5ZXJSZW5kZXJlckNocm9taXVtVGVzdCwgU2V0VmlzaWJpbGl0eVRydWVTaG91bGRS
ZWNyZWF0ZUJhY2tidWZmZXIpCi17Ci0gICAgbV9tb2NrQ29udGV4dC5zZXRNZW1vcnlBbGxvY2F0
aW9uKG1fc3VnZ2VzdEhhdmVCYWNrYnVmZmVyTm8pOwotICAgIEVYUEVDVF9UUlVFKG1fbGF5ZXJS
ZW5kZXJlckNocm9taXVtLmlzRnJhbWVidWZmZXJEaXNjYXJkZWQoKSk7Ci0KLSAgICBtX2xheWVy
UmVuZGVyZXJDaHJvbWl1bS5zZXRWaXNpYmxlKHRydWUpOwotICAgIEVYUEVDVF9GQUxTRShtX2xh
eWVyUmVuZGVyZXJDaHJvbWl1bS5pc0ZyYW1lYnVmZmVyRGlzY2FyZGVkKCkpOwotfQotCi0vLyBU
ZXN0IExheWVyUmVuZGVyZXJDaHJvbWl1bSBkaXNjYXJkRnJhbWVidWZmZXIgZnVuY3Rpb25hbGl0
eToKLS8vIENyZWF0ZSBhIFNjb3BlZEVuc3VyZUZyYW1lYnVmZmVyQWxsb2NhdGlvbiB3aGlsZSBh
IGZyYW1lYnVmZmVyIHdhcyBkaXNjYXJkZWQgYW5kIHRoZW4gc3dhcEJ1ZmZlcnMuCi0vLyBFeHBl
Y3RlZDogd2lsbCByZWNyZWF0ZSBmcmFtZWJ1ZmZlciBzY29wZSBkdXJhdGlvbiwgZHVyaW5nIHdo
aWNoIHN3YXBzIHdpbGwgd29yayBmaW5lLCBhbmQgZGlzY2FyZCBvbiBzY29wZSBleGl0LgorLy8g
QmVnaW4gZHJhd2luZyBhIGZyYW1lIHdoaWxlIGEgZnJhbWVidWZmZXIgaXMgZGlzY2FyZGVkLgor
Ly8gRXhwZWN0ZWQ6IHdpbGwgcmVjcmVhdGUgZnJhbWVidWZmZXIuCiBURVNUX0YoTGF5ZXJSZW5k
ZXJlckNocm9taXVtVGVzdCwgRGlzY2FyZGVkQmFja2J1ZmZlcklzUmVjcmVhdHJlZEZvclNjb3Bl
RHVyYXRpb24pCiB7CiAgICAgbV9tb2NrQ29udGV4dC5zZXRNZW1vcnlBbGxvY2F0aW9uKG1fc3Vn
Z2VzdEhhdmVCYWNrYnVmZmVyTm8pOwogICAgIEVYUEVDVF9UUlVFKG1fbGF5ZXJSZW5kZXJlckNo
cm9taXVtLmlzRnJhbWVidWZmZXJEaXNjYXJkZWQoKSk7CiAgICAgRVhQRUNUX0VRKDEsIG1fbW9j
a0NsaWVudC5zZXRGdWxsUm9vdExheWVyRGFtYWdlQ291bnQoKSk7Ci0gICAgewotICAgICAgICBT
Y29wZWRFbnN1cmVGcmFtZWJ1ZmZlckFsbG9jYXRpb24gZW5zdXJlRnJhbWVidWZmZXIoJm1fbGF5
ZXJSZW5kZXJlckNocm9taXVtKTsKLSAgICAgICAgRVhQRUNUX0ZBTFNFKG1fbGF5ZXJSZW5kZXJl
ckNocm9taXVtLmlzRnJhbWVidWZmZXJEaXNjYXJkZWQoKSk7Ci0KLSAgICAgICAgc3dhcEJ1ZmZl
cnMoKTsKLSAgICAgICAgRVhQRUNUX0VRKDEsIG1fbW9ja0NvbnRleHQuZnJhbWVDb3VudCgpKTsK
LSAgICB9Ci0gICAgRVhQRUNUX1RSVUUobV9sYXllclJlbmRlcmVyQ2hyb21pdW0uaXNGcmFtZWJ1
ZmZlckRpc2NhcmRlZCgpKTsKLSAgICBFWFBFQ1RfRVEoMiwgbV9tb2NrQ2xpZW50LnNldEZ1bGxS
b290TGF5ZXJEYW1hZ2VDb3VudCgpKTsKLX0KIAotLy8gVGVzdCBMYXllclJlbmRlcmVyQ2hyb21p
dW0gZGlzY2FyZEZyYW1lYnVmZmVyIGZ1bmN0aW9uYWxpdHk6Ci0vLyBDcmVhdGUgYSBTY29wZWRF
bnN1cmVGcmFtZWJ1ZmZlckFsbG9jYXRpb24gd2hpbGUgYSBmcmFtZWJ1ZmZlciB3YXMgbm90IGRp
c2NhcmRlZCBhbmQgdGhlbiBzd2FwQnVmZmVycy4KLS8vIEV4cGVjdGVkOiB3aWxsIGhhdmUgbm8g
ZWZmZWN0LgotVEVTVF9GKExheWVyUmVuZGVyZXJDaHJvbWl1bVRlc3QsIEVuc3VyaW5nQmFja2J1
ZmZlckZvclNjb3BlRHVyYXRpb25Eb2VzTm90aGluZ0lmQWxyZWFkeUV4aXN0cykKLXsKKyAgICBt
X2xheWVyUmVuZGVyZXJDaHJvbWl1bS5iZWdpbkRyYXdpbmdGcmFtZSgpOwogICAgIEVYUEVDVF9G
QUxTRShtX2xheWVyUmVuZGVyZXJDaHJvbWl1bS5pc0ZyYW1lYnVmZmVyRGlzY2FyZGVkKCkpOwot
ICAgIEVYUEVDVF9FUSgwLCBtX21vY2tDbGllbnQuc2V0RnVsbFJvb3RMYXllckRhbWFnZUNvdW50
KCkpOwotICAgIHsKLSAgICAgICAgU2NvcGVkRW5zdXJlRnJhbWVidWZmZXJBbGxvY2F0aW9uIGVu
c3VyZUZyYW1lYnVmZmVyKCZtX2xheWVyUmVuZGVyZXJDaHJvbWl1bSk7Ci0gICAgICAgIEVYUEVD
VF9GQUxTRShtX2xheWVyUmVuZGVyZXJDaHJvbWl1bS5pc0ZyYW1lYnVmZmVyRGlzY2FyZGVkKCkp
OwotICAgICAgICBFWFBFQ1RfRVEoMCwgbV9tb2NrQ2xpZW50LnNldEZ1bGxSb290TGF5ZXJEYW1h
Z2VDb3VudCgpKTsKIAotICAgICAgICBzd2FwQnVmZmVycygpOwotICAgICAgICBFWFBFQ1RfRVEo
MSwgbV9tb2NrQ29udGV4dC5mcmFtZUNvdW50KCkpOwotICAgIH0KLSAgICBFWFBFQ1RfRkFMU0Uo
bV9sYXllclJlbmRlcmVyQ2hyb21pdW0uaXNGcmFtZWJ1ZmZlckRpc2NhcmRlZCgpKTsKLSAgICBF
WFBFQ1RfRVEoMCwgbV9tb2NrQ2xpZW50LnNldEZ1bGxSb290TGF5ZXJEYW1hZ2VDb3VudCgpKTsK
KyAgICBzd2FwQnVmZmVycygpOworICAgIEVYUEVDVF9FUSgxLCBtX21vY2tDb250ZXh0LmZyYW1l
Q291bnQoKSk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134493</attachid>
            <date>2012-03-28 21:20:46 -0700</date>
            <delta_ts>2012-03-29 12:16:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82569-20120329002045.patch</filename>
            <type>text/plain</type>
            <size>12444</size>
            <attacher name="Michal Mocny">mmocny</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDJhNDQ5MzAwYzk4YTE4
ZTdiNGQwMTI3NzZiYjMyZTI3MDljOWYwYi4uODMwODQ0NjEzMWQ0ZjdkOWJlNzllMDU2NDIzM2Zk
MmE5ZGI3OGE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAzLTI4ICBNaWNo
YWwgTW9jbnkgIDxtbW9jbnlAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIEVuc3Vy
ZSBmcmFtZWJ1ZmZlciBleGlzdHMgYXQgdGhlIHN0YXJ0IG9mIGJlZ2luRHJhd2luZ0ZyYW1lLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI1NjkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIExh
eWVyUmVuZGVyZXJDaHJvbWl1bVRlc3QgdW5pdHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6c2V0VmlzaWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OmJlZ2luRHJhd2luZ0ZyYW1lKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDU2luZ2xlVGhyZWFkUHJveHk6OmNvbXBvc2l0ZUFu
ZFJlYWRiYWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmNvbXBvc2l0
ZUFuZFJlYWRiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OnJlcXVlc3RS
ZWFkYmFja09uSW1wbFRocmVhZCk6CisKIDIwMTItMDMtMjggIEphc29uIExpdSAgPGphc29uLmxp
dUB0b3JjaG1vYmlsZS5jb20uY24+CiAKICAgICAgICAgW0JsYWNrQmVycnldTWlzc2luZyBjb29r
aWVzIGZyb20gSFRUUCByZXNwb25zZSBoZWFkZXIgaW4gTmV0d29yayB0YWIgb2YgV2ViIEluc3Bl
Y3Rvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOTczYWZjZmQ4OGE3ZDBiMzI0Yjk5
NzQxZWNmNTIzMDNjMGQzNDRmNS4uNTdjOWMxNTI0ODVlYWU5NmI5NDA2ODQ5ODZlNTQ5N2MwODY3
NzJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0w
My0yOCAgTWljaGFsIE1vY255ICA8bW1vY255QGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9t
aXVtXSBFbnN1cmUgZnJhbWVidWZmZXIgZXhpc3RzIGF0IHRoZSBzdGFydCBvZiBiZWdpbkRyYXdp
bmdGcmFtZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgyNTY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB0ZXN0cy9MYXllclJlbmRlcmVyQ2hyb21pdW1UZXN0LmNwcDoKKyAgICAgICAgKEZha2VMYXll
clJlbmRlcmVyQ2hyb21pdW1DbGllbnQ6OkZha2VMYXllclJlbmRlcmVyQ2hyb21pdW1DbGllbnQp
OgorICAgICAgICAoRmFrZUxheWVyUmVuZGVyZXJDaHJvbWl1bUNsaWVudDo6cm9vdExheWVyKToK
KyAgICAgICAgKEZha2VMYXllclJlbmRlcmVyQ2hyb21pdW1DbGllbnQpOgorICAgICAgICAoVEVT
VF9GKToKKwogMjAxMi0wMy0yOCAgQmlsbCBCdWRnZSAgPGJidWRnZUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgQXNzb2NpYXRlZFVSTExvYWRlciBkb2VzIG5vdCBzdXBwb3J0IENyb3NzIE9yaWdp
biBSZWRpcmVjdHMgd2hlbiB1c2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5j
cHAKaW5kZXggNDY1NjkzNGU1ZmM5OTQ2NGEwMTc2MmViNTcxMTI4OTUyNGZjNmUxNC4uY2NiMWRk
OGQwYjI5YzM3MjIxMzNmYWI2ZGQ4MzVhOWI0ODI4YmIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJl
bmRlcmVyQ2hyb21pdW0uY3BwCkBAIC0zNTAsMTAgKzM1MCw2IEBAIHZvaWQgTGF5ZXJSZW5kZXJl
ckNocm9taXVtOjpzZXRWaXNpYmxlKGJvb2wgdmlzaWJsZSkKICAgICBpZiAoIXZpc2libGUpCiAg
ICAgICAgIHJlbGVhc2VSZW5kZXJTdXJmYWNlVGV4dHVyZXMoKTsKIAotICAgIC8vIEZJWE1FOiBS
ZW1vdmUgdGhpcyBvbmNlIGZyYW1lYnVmZmVyIGlzIGF1dG9tYXRpY2FsbHkgcmVjcmVhdGVkIG9u
IGZpcnN0IHVzZQotICAgIGlmICh2aXNpYmxlKQotICAgICAgICBlbnN1cmVGcmFtZWJ1ZmZlcigp
OwotCiAgICAgLy8gVE9ETzogUmVwbGFjZSBzZXRWaXNpYmlsaXR5Q0hST01JVU0gd2l0aCBhbiBl
eHRlbnNpb24gdG8gZXhwbGljaXRseSBtYW5hZ2UgZnJvbnQvYmFja2J1ZmZlcnMKICAgICAvLyBj
cmJ1Zy5jb20vMTE2MDQ5CiAgICAgaWYgKG1fY2FwYWJpbGl0aWVzLnVzaW5nU2V0VmlzaWJpbGl0
eSkgewpAQCAtNDA2LDYgKzQwMiwxMCBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6Y2xl
YXJSZW5kZXJTdXJmYWNlKENDUmVuZGVyU3VyZmFjZSogcmVuZGVyU3VyZmFjZSwgQwogdm9pZCBM
YXllclJlbmRlcmVyQ2hyb21pdW06OmJlZ2luRHJhd2luZ0ZyYW1lKCkKIHsKICAgICBBU1NFUlQo
cm9vdExheWVyKCkpOworCisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG9uY2UgZnJhbWVidWZm
ZXIgaXMgYXV0b21hdGljYWxseSByZWNyZWF0ZWQgb24gZmlyc3QgdXNlCisgICAgZW5zdXJlRnJh
bWVidWZmZXIoKTsKKwogICAgIG1fZGVmYXVsdFJlbmRlclN1cmZhY2UgPSByb290TGF5ZXIoKS0+
cmVuZGVyU3VyZmFjZSgpOwogCiAgICAgLy8gRklYTUU6IHVzZSB0aGUgZnJhbWUgYmVnaW4gdGlt
ZSBmcm9tIHRoZSBvdmVyYWxsIGNvbXBvc2l0b3Igc2NoZWR1bGVyLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9t
aXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJl
bmRlcmVyQ2hyb21pdW0uaAppbmRleCA1OWI4ZmY4ZmI5ZTgyZjA1ZDFmNGZjMzdkYjNiYjY3MWEx
YTkwYjZiLi4xNWE2MmY2YTk0YTEzZDM5YmQ1YTYxMzE3YjU4NDgwMDYwNDE3ZWUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRl
cmVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaApAQCAtNjEsNiArNjEsNyBAQCBjbGFzcyBDQ1Rl
eHR1cmVEcmF3UXVhZDsKIGNsYXNzIEdlb21ldHJ5QmluZGluZzsKIGNsYXNzIEdyYXBoaWNzQ29u
dGV4dDNEOwogY2xhc3MgTGF5ZXJSZW5kZXJlclN3YXBCdWZmZXJzQ29tcGxldGVDYWxsYmFja0Fk
YXB0ZXI7CitjbGFzcyBMYXllclJlbmRlcmVyR3B1TWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxs
YmFja0FkYXB0ZXI7CiBjbGFzcyBTY29wZWRFbnN1cmVGcmFtZWJ1ZmZlckFsbG9jYXRpb247CiAK
IGNsYXNzIExheWVyUmVuZGVyZXJDaHJvbWl1bUNsaWVudCB7CkBAIC0xNjMsMTEgKzE2NCwxMiBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHdpZHRoLCBmbG9hdCBo
ZWlnaHQsIGZsb2F0IG9wYWNpdHksIGNvbnN0IEZsb2F0UXVhZCYsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCBtYXRyaXhMb2NhdGlvbiwgaW50IGFscGhhTG9jYXRpb24sIGludCBxdWFk
TG9jYXRpb24pOwogCitwcm90ZWN0ZWQ6CisgICAgZnJpZW5kIGNsYXNzIExheWVyUmVuZGVyZXJH
cHVNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZENhbGxiYWNrQWRhcHRlcjsKICAgICB2b2lkIGRpc2Nh
cmRGcmFtZWJ1ZmZlcigpOwogICAgIHZvaWQgZW5zdXJlRnJhbWVidWZmZXIoKTsKICAgICBib29s
IGlzRnJhbWVidWZmZXJEaXNjYXJkZWQoKSBjb25zdCB7IHJldHVybiBtX2lzRnJhbWVidWZmZXJE
aXNjYXJkZWQ7IH0KIAotcHJvdGVjdGVkOgogICAgIExheWVyUmVuZGVyZXJDaHJvbWl1bShMYXll
clJlbmRlcmVyQ2hyb21pdW1DbGllbnQqLCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPik7
CiAgICAgYm9vbCBpbml0aWFsaXplKCk7CiAKQEAgLTI2NiwzMyArMjY4LDYgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1faXNGcmFtZWJ1ZmZlckRpc2NhcmRlZDsKIH07CiAKLS8vIFRoZSBwdXJwb3Nl
IG9mIHRoaXMgaGVscGVyIGlzIHR3b2ZvbGQ6Ci0vLyAxLiBUbyBlbnN1cmUgdGhhdCBhIGZyYW1l
YnVmZmVyIGlzIGF2YWlsYWJsZSBmb3Igc2NvcGUgbGlmZXRpbWUsIGFuZAotLy8gMi4gVG8gcmVz
ZXQgZnJhbWVidWZmZXIgYWxsb2NhdGlvbiB0byBwcmV2aW91cyBzdGF0ZSBvbiBzY29wZSBleGl0
LgotLy8gSWYgdGhlIGZyYW1lYnVmZmVyIGlzIHJlY3JlYXRlZCwgaXRzIGNvbnRlbnRzIGFyZSB1
bmRlZmluZWQuCi0vLyBGSVhNRTogUHJldmVudC9kZWxheSBkaXNjYXJkaW5nIGZyYW1lYnVmZmVy
IHZpYSBhbnkgbWVhbnMgd2hpbGUgYW55Ci0vLyBpbnN0YW5jZSBvZiB0aGlzIGlzIGFsaXZlLiBB
dCB0aGUgbW9tZW50LCB0aGlzIGlzbid0IGFuIGlzc3VlLgotY2xhc3MgU2NvcGVkRW5zdXJlRnJh
bWVidWZmZXJBbGxvY2F0aW9uIHsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBTY29wZWRFbnN1cmVG
cmFtZWJ1ZmZlckFsbG9jYXRpb24oTGF5ZXJSZW5kZXJlckNocm9taXVtKiBsYXllclJlbmRlcmVy
KQotICAgICAgICA6IG1fbGF5ZXJSZW5kZXJlcihsYXllclJlbmRlcmVyKQotICAgICAgICAsIG1f
ZnJhbWVidWZmZXJXYXNJbml0aWFsbHlEaXNjYXJkZWQobGF5ZXJSZW5kZXJlci0+aXNGcmFtZWJ1
ZmZlckRpc2NhcmRlZCgpKQotICAgIHsKLSAgICAgICAgaWYgKG1fZnJhbWVidWZmZXJXYXNJbml0
aWFsbHlEaXNjYXJkZWQpCi0gICAgICAgICAgICBtX2xheWVyUmVuZGVyZXItPmVuc3VyZUZyYW1l
YnVmZmVyKCk7Ci0gICAgfQotCi0gICAgflNjb3BlZEVuc3VyZUZyYW1lYnVmZmVyQWxsb2NhdGlv
bigpCi0gICAgewotICAgICAgICBpZiAobV9mcmFtZWJ1ZmZlcldhc0luaXRpYWxseURpc2NhcmRl
ZCkKLSAgICAgICAgICAgIG1fbGF5ZXJSZW5kZXJlci0+ZGlzY2FyZEZyYW1lYnVmZmVyKCk7Ci0g
ICAgfQotCi1wcml2YXRlOgotICAgIExheWVyUmVuZGVyZXJDaHJvbWl1bSogbV9sYXllclJlbmRl
cmVyOwotICAgIGJvb2wgbV9mcmFtZWJ1ZmZlcldhc0luaXRpYWxseURpc2NhcmRlZDsKLX07Ci0K
IAogLy8gU2V0dGluZyBERUJVR19HTF9DQUxMUyB0byAxIHdpbGwgY2FsbCBnbEdldEVycm9yKCkg
YWZ0ZXIgYWxtb3N0IGV2ZXJ5IEdMCiAvLyBjYWxsIG1hZGUgYnkgdGhlIGNvbXBvc2l0b3IuIFVz
ZWZ1bCBmb3IgZGVidWdnaW5nIHJlbmRlcmluZyBpc3N1ZXMgYnV0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
U2luZ2xlVGhyZWFkUHJveHkuY3BwCmluZGV4IDFiNDFmN2U3Y2UwNDhjZGIxNWIwOGRiYWVjMmY5
YzdhMzAzNmFhZWIuLmVjODQyOGQ2NTA1ZmExOTk3MWY4YWEzMjAxNjY1MDMxMzI3YzIyYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
U2luZ2xlVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwCkBAIC03Miw4ICs3Miw2IEBA
IGJvb2wgQ0NTaW5nbGVUaHJlYWRQcm94eTo6Y29tcG9zaXRlQW5kUmVhZGJhY2sodm9pZCAqcGl4
ZWxzLCBjb25zdCBJbnRSZWN0JiByZWN0CiAgICAgVFJBQ0VfRVZFTlQoIkNDU2luZ2xlVGhyZWFk
UHJveHk6OmNvbXBvc2l0ZUFuZFJlYWRiYWNrIiwgdGhpcywgMCk7CiAgICAgQVNTRVJUKENDUHJv
eHk6OmlzTWFpblRocmVhZCgpKTsKIAotICAgIFNjb3BlZEVuc3VyZUZyYW1lYnVmZmVyQWxsb2Nh
dGlvbiBlbnN1cmVGcmFtZWJ1ZmZlcihtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVy
KCkpOwotCiAgICAgaWYgKCFjb21taXRJZk5lZWRlZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKaW5kZXggMDU1Y2EwOGZmNzA5NmM4Nzc2Yzcx
MGFlZDdhYThkMjQwYjcxNmI0NC4uYzExZjQ2NDVlZDA1YzBlZTczY2YzMjAzNGM2ZjMxNGU3ZDVl
YTVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKQEAgLTkzLDggKzkzLDYgQEAgYm9v
bCBDQ1RocmVhZFByb3h5Ojpjb21wb3NpdGVBbmRSZWFkYmFjayh2b2lkICpwaXhlbHMsIGNvbnN0
IEludFJlY3QmIHJlY3QpCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQo
bV9sYXllclRyZWVIb3N0KTsKIAotICAgIFNjb3BlZEVuc3VyZUZyYW1lYnVmZmVyQWxsb2NhdGlv
biBlbnN1cmVGcmFtZWJ1ZmZlcihtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCkp
OwotCiAgICAgaWYgKCFtX2xheWVyUmVuZGVyZXJJbml0aWFsaXplZCkgewogICAgICAgICBUUkFD
RV9FVkVOVCgiY29tcG9zaXRlQW5kUmVhZGJhY2tfRWFybHlPdXRfTFJfVW5pbml0aWFsaXplZCIs
IHRoaXMsIDApOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMjUsNiArMTIzLDcgQEAgdm9p
ZCBDQ1RocmVhZFByb3h5OjpyZXF1ZXN0UmVhZGJhY2tPbkltcGxUaHJlYWQoUmVhZGJhY2tSZXF1
ZXN0KiByZXF1ZXN0KQogICAgICAgICByZXF1ZXN0LT5jb21wbGV0aW9uLnNpZ25hbCgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQorCiAgICAgbV9yZWFkYmFja1JlcXVlc3RPbkltcGxUaHJlYWQg
PSByZXF1ZXN0OwogICAgIG1fc2NoZWR1bGVyT25JbXBsVGhyZWFkLT5zZXROZWVkc1JlZHJhdygp
OwogICAgIG1fc2NoZWR1bGVyT25JbXBsVGhyZWFkLT5zZXROZWVkc0ZvcmNlZFJlZHJhdygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXllclJlbmRlcmVyQ2hy
b21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJSZW5kZXJl
ckNocm9taXVtVGVzdC5jcHAKaW5kZXggNDUxYWNlYTE0ZWQ4YTM1MDRkMWViMTY2YjA0OWU2YjJm
YmQwMmNiZi4uZTNkZmI2ZGM0N2ExMDRhYWU1ZTlkN2E0NTNmZGQyNjY5ZmIzODBiMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXllclJlbmRlcmVyQ2hyb21pdW1U
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyUmVuZGVyZXJD
aHJvbWl1bVRlc3QuY3BwCkBAIC02MSwxNSArNjEsMjAgQEAgcHJpdmF0ZToKICAgICBXZWJHcmFw
aGljc01lbW9yeUFsbG9jYXRpb25DaGFuZ2VkQ2FsbGJhY2tDSFJPTUlVTSogbV9tZW1vcnlBbGxv
Y2F0aW9uQ2hhbmdlZENhbGxiYWNrOwogfTsKIAorY2xhc3MgRmFrZURyYXdhYmxlQ0NMYXllcklt
cGw6IHB1YmxpYyBDQ0xheWVySW1wbCB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgRmFrZURyYXdh
YmxlQ0NMYXllckltcGwoaW50IGlkKSA6IENDTGF5ZXJJbXBsKGlkKSB7IH0KK307CisKIGNsYXNz
IEZha2VMYXllclJlbmRlcmVyQ2hyb21pdW1DbGllbnQgOiBwdWJsaWMgTGF5ZXJSZW5kZXJlckNo
cm9taXVtQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBGYWtlTGF5ZXJSZW5kZXJlckNocm9taXVtQ2xp
ZW50KCkgOiBtX3NldEZ1bGxSb290TGF5ZXJEYW1hZ2VDb3VudCgwKSB7IH0KKyAgICBGYWtlTGF5
ZXJSZW5kZXJlckNocm9taXVtQ2xpZW50KCkgOiBtX3NldEZ1bGxSb290TGF5ZXJEYW1hZ2VDb3Vu
dCgwKSwgbV9yb290TGF5ZXIoMSkgeyB9CiAKICAgICAvLyBMYXllclJlbmRlcmVyQ2hyb21pdW1D
bGllbnQgbWV0aG9kcy4KICAgICB2aXJ0dWFsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSgp
IGNvbnN0IHsgc3RhdGljIEludFNpemUgZmFrZVNpemU7IHJldHVybiBmYWtlU2l6ZTsgfQogICAg
IHZpcnR1YWwgY29uc3QgQ0NTZXR0aW5ncyYgc2V0dGluZ3MoKSBjb25zdCB7IHN0YXRpYyBDQ1Nl
dHRpbmdzIGZha2VTZXR0aW5nczsgcmV0dXJuIGZha2VTZXR0aW5nczsgfQotICAgIHZpcnR1YWwg
Q0NMYXllckltcGwqIHJvb3RMYXllcigpIHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIGNvbnN0
IENDTGF5ZXJJbXBsKiByb290TGF5ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgdmlydHVh
bCBDQ0xheWVySW1wbCogcm9vdExheWVyKCkgeyByZXR1cm4gJm1fcm9vdExheWVyOyB9CisgICAg
dmlydHVhbCBjb25zdCBDQ0xheWVySW1wbCogcm9vdExheWVyKCkgY29uc3QgeyByZXR1cm4gJm1f
cm9vdExheWVyOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZExvc2VDb250ZXh0KCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIG9uU3dhcEJ1ZmZlcnNDb21wbGV0ZSgpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBzZXRGdWxsUm9vdExheWVyRGFtYWdlKCkgeyBtX3NldEZ1bGxSb290TGF5ZXJEYW1hZ2VDb3Vu
dCsrOyB9CkBAIC04MCw2ICs4NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgaW50IG1fc2V0
RnVsbFJvb3RMYXllckRhbWFnZUNvdW50OwogICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBt
X2ltcGxUaHJlYWQ7CisgICAgRmFrZURyYXdhYmxlQ0NMYXllckltcGwgbV9yb290TGF5ZXI7CiB9
OwogCiBjbGFzcyBGYWtlTGF5ZXJSZW5kZXJlckNocm9taXVtIDogcHVibGljIExheWVyUmVuZGVy
ZXJDaHJvbWl1bSB7CkBAIC05MCw2ICs5Niw3IEBAIHB1YmxpYzoKIAogICAgIC8vIENoYW5naW5n
IHZpc2liaWxpdHkgdG8gcHVibGljLgogICAgIHVzaW5nIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6
aW5pdGlhbGl6ZTsKKyAgICB1c2luZyBMYXllclJlbmRlcmVyQ2hyb21pdW06OmlzRnJhbWVidWZm
ZXJEaXNjYXJkZWQ7CiB9OwogCiBjbGFzcyBMYXllclJlbmRlcmVyQ2hyb21pdW1UZXN0IDogcHVi
bGljIHRlc3Rpbmc6OlRlc3QgewpAQCAtMTc4LDUxICsxODUsMTcgQEAgVEVTVF9GKExheWVyUmVu
ZGVyZXJDaHJvbWl1bVRlc3QsIFN3YXBCdWZmZXJzV2hpbGVCYWNrYnVmZmVyRGlzY2FyZGVkU2hv
dWxkSWdub3IKIH0KIAogLy8gVGVzdCBMYXllclJlbmRlcmVyQ2hyb21pdW0gZGlzY2FyZEZyYW1l
YnVmZmVyIGZ1bmN0aW9uYWxpdHk6Ci0vLyBEaXNjYXJkIGZyYW1lYnVmZmVyLCB0aGVuIHNldCB2
aXNpYmlsaXR5IHRvIHRydWUuCi0vLyBFeHBlY3RlZDogcmVjcmVhdGVzIHRoZSBmcmFtZWJ1ZmZl
ci4KLVRFU1RfRihMYXllclJlbmRlcmVyQ2hyb21pdW1UZXN0LCBTZXRWaXNpYmlsaXR5VHJ1ZVNo
b3VsZFJlY3JlYXRlQmFja2J1ZmZlcikKLXsKLSAgICBtX21vY2tDb250ZXh0LnNldE1lbW9yeUFs
bG9jYXRpb24obV9zdWdnZXN0SGF2ZUJhY2tidWZmZXJObyk7Ci0gICAgRVhQRUNUX1RSVUUobV9s
YXllclJlbmRlcmVyQ2hyb21pdW0uaXNGcmFtZWJ1ZmZlckRpc2NhcmRlZCgpKTsKLQotICAgIG1f
bGF5ZXJSZW5kZXJlckNocm9taXVtLnNldFZpc2libGUodHJ1ZSk7Ci0gICAgRVhQRUNUX0ZBTFNF
KG1fbGF5ZXJSZW5kZXJlckNocm9taXVtLmlzRnJhbWVidWZmZXJEaXNjYXJkZWQoKSk7Ci19Ci0K
LS8vIFRlc3QgTGF5ZXJSZW5kZXJlckNocm9taXVtIGRpc2NhcmRGcmFtZWJ1ZmZlciBmdW5jdGlv
bmFsaXR5OgotLy8gQ3JlYXRlIGEgU2NvcGVkRW5zdXJlRnJhbWVidWZmZXJBbGxvY2F0aW9uIHdo
aWxlIGEgZnJhbWVidWZmZXIgd2FzIGRpc2NhcmRlZCBhbmQgdGhlbiBzd2FwQnVmZmVycy4KLS8v
IEV4cGVjdGVkOiB3aWxsIHJlY3JlYXRlIGZyYW1lYnVmZmVyIHNjb3BlIGR1cmF0aW9uLCBkdXJp
bmcgd2hpY2ggc3dhcHMgd2lsbCB3b3JrIGZpbmUsIGFuZCBkaXNjYXJkIG9uIHNjb3BlIGV4aXQu
CisvLyBCZWdpbiBkcmF3aW5nIGEgZnJhbWUgd2hpbGUgYSBmcmFtZWJ1ZmZlciBpcyBkaXNjYXJk
ZWQuCisvLyBFeHBlY3RlZDogd2lsbCByZWNyZWF0ZSBmcmFtZWJ1ZmZlci4KIFRFU1RfRihMYXll
clJlbmRlcmVyQ2hyb21pdW1UZXN0LCBEaXNjYXJkZWRCYWNrYnVmZmVySXNSZWNyZWF0cmVkRm9y
U2NvcGVEdXJhdGlvbikKIHsKICAgICBtX21vY2tDb250ZXh0LnNldE1lbW9yeUFsbG9jYXRpb24o
bV9zdWdnZXN0SGF2ZUJhY2tidWZmZXJObyk7CiAgICAgRVhQRUNUX1RSVUUobV9sYXllclJlbmRl
cmVyQ2hyb21pdW0uaXNGcmFtZWJ1ZmZlckRpc2NhcmRlZCgpKTsKICAgICBFWFBFQ1RfRVEoMSwg
bV9tb2NrQ2xpZW50LnNldEZ1bGxSb290TGF5ZXJEYW1hZ2VDb3VudCgpKTsKLSAgICB7Ci0gICAg
ICAgIFNjb3BlZEVuc3VyZUZyYW1lYnVmZmVyQWxsb2NhdGlvbiBlbnN1cmVGcmFtZWJ1ZmZlcigm
bV9sYXllclJlbmRlcmVyQ2hyb21pdW0pOwotICAgICAgICBFWFBFQ1RfRkFMU0UobV9sYXllclJl
bmRlcmVyQ2hyb21pdW0uaXNGcmFtZWJ1ZmZlckRpc2NhcmRlZCgpKTsKLQotICAgICAgICBzd2Fw
QnVmZmVycygpOwotICAgICAgICBFWFBFQ1RfRVEoMSwgbV9tb2NrQ29udGV4dC5mcmFtZUNvdW50
KCkpOwotICAgIH0KLSAgICBFWFBFQ1RfVFJVRShtX2xheWVyUmVuZGVyZXJDaHJvbWl1bS5pc0Zy
YW1lYnVmZmVyRGlzY2FyZGVkKCkpOwotICAgIEVYUEVDVF9FUSgyLCBtX21vY2tDbGllbnQuc2V0
RnVsbFJvb3RMYXllckRhbWFnZUNvdW50KCkpOwotfQogCi0vLyBUZXN0IExheWVyUmVuZGVyZXJD
aHJvbWl1bSBkaXNjYXJkRnJhbWVidWZmZXIgZnVuY3Rpb25hbGl0eToKLS8vIENyZWF0ZSBhIFNj
b3BlZEVuc3VyZUZyYW1lYnVmZmVyQWxsb2NhdGlvbiB3aGlsZSBhIGZyYW1lYnVmZmVyIHdhcyBu
b3QgZGlzY2FyZGVkIGFuZCB0aGVuIHN3YXBCdWZmZXJzLgotLy8gRXhwZWN0ZWQ6IHdpbGwgaGF2
ZSBubyBlZmZlY3QuCi1URVNUX0YoTGF5ZXJSZW5kZXJlckNocm9taXVtVGVzdCwgRW5zdXJpbmdC
YWNrYnVmZmVyRm9yU2NvcGVEdXJhdGlvbkRvZXNOb3RoaW5nSWZBbHJlYWR5RXhpc3RzKQotewor
ICAgIG1fbGF5ZXJSZW5kZXJlckNocm9taXVtLmJlZ2luRHJhd2luZ0ZyYW1lKCk7CiAgICAgRVhQ
RUNUX0ZBTFNFKG1fbGF5ZXJSZW5kZXJlckNocm9taXVtLmlzRnJhbWVidWZmZXJEaXNjYXJkZWQo
KSk7Ci0gICAgRVhQRUNUX0VRKDAsIG1fbW9ja0NsaWVudC5zZXRGdWxsUm9vdExheWVyRGFtYWdl
Q291bnQoKSk7Ci0gICAgewotICAgICAgICBTY29wZWRFbnN1cmVGcmFtZWJ1ZmZlckFsbG9jYXRp
b24gZW5zdXJlRnJhbWVidWZmZXIoJm1fbGF5ZXJSZW5kZXJlckNocm9taXVtKTsKLSAgICAgICAg
RVhQRUNUX0ZBTFNFKG1fbGF5ZXJSZW5kZXJlckNocm9taXVtLmlzRnJhbWVidWZmZXJEaXNjYXJk
ZWQoKSk7Ci0gICAgICAgIEVYUEVDVF9FUSgwLCBtX21vY2tDbGllbnQuc2V0RnVsbFJvb3RMYXll
ckRhbWFnZUNvdW50KCkpOwogCi0gICAgICAgIHN3YXBCdWZmZXJzKCk7Ci0gICAgICAgIEVYUEVD
VF9FUSgxLCBtX21vY2tDb250ZXh0LmZyYW1lQ291bnQoKSk7Ci0gICAgfQotICAgIEVYUEVDVF9G
QUxTRShtX2xheWVyUmVuZGVyZXJDaHJvbWl1bS5pc0ZyYW1lYnVmZmVyRGlzY2FyZGVkKCkpOwot
ICAgIEVYUEVDVF9FUSgwLCBtX21vY2tDbGllbnQuc2V0RnVsbFJvb3RMYXllckRhbWFnZUNvdW50
KCkpOworICAgIHN3YXBCdWZmZXJzKCk7CisgICAgRVhQRUNUX0VRKDEsIG1fbW9ja0NvbnRleHQu
ZnJhbWVDb3VudCgpKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134639</attachid>
            <date>2012-03-29 12:16:18 -0700</date>
            <delta_ts>2012-03-29 13:36:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82569-20120329151616.patch</filename>
            <type>text/plain</type>
            <size>12268</size>
            <attacher name="Michal Mocny">mmocny</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyNDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDJhNDQ5MzAwYzk4YTE4
ZTdiNGQwMTI3NzZiYjMyZTI3MDljOWYwYi4uZTk4ZTQ1YjRiZWJiOWZiZDc4ZjllMWY0MmE1MDUw
MzI3Y2I1OGU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAzLTI4ICBNaWNo
YWwgTW9jbnkgIDxtbW9jbnlAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIEVuc3Vy
ZSBmcmFtZWJ1ZmZlciBleGlzdHMgYXQgdGhlIHN0YXJ0IG9mIGJlZ2luRHJhd2luZ0ZyYW1lLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODI1NjkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KKworICAgICAgICBVcGRhdGVkIExh
eWVyUmVuZGVyZXJDaHJvbWl1bVRlc3QgdW5pdHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6c2V0VmlzaWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OmJlZ2luRHJhd2luZ0ZyYW1lKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDU2luZ2xlVGhyZWFkUHJveHk6OmNvbXBvc2l0ZUFu
ZFJlYWRiYWNrKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZFByb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmNvbXBvc2l0
ZUFuZFJlYWRiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OnJlcXVlc3RS
ZWFkYmFja09uSW1wbFRocmVhZCk6CisKIDIwMTItMDMtMjggIEphc29uIExpdSAgPGphc29uLmxp
dUB0b3JjaG1vYmlsZS5jb20uY24+CiAKICAgICAgICAgW0JsYWNrQmVycnldTWlzc2luZyBjb29r
aWVzIGZyb20gSFRUUCByZXNwb25zZSBoZWFkZXIgaW4gTmV0d29yayB0YWIgb2YgV2ViIEluc3Bl
Y3Rvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOTczYWZjZmQ4OGE3ZDBiMzI0Yjk5
NzQxZWNmNTIzMDNjMGQzNDRmNS4uYmYyNzZjNzJiY2U4Y2ViOWQ4N2UxMjJjMDczYTJkMmVhZDRh
ZmRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0w
My0yOCAgTWljaGFsIE1vY255ICA8bW1vY255QGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9t
aXVtXSBFbnN1cmUgZnJhbWVidWZmZXIgZXhpc3RzIGF0IHRoZSBzdGFydCBvZiBiZWdpbkRyYXdp
bmdGcmFtZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgyNTY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAg
KiB0ZXN0cy9MYXllclJlbmRlcmVyQ2hyb21pdW1UZXN0LmNwcDoKKyAgICAgICAgKEZha2VMYXll
clJlbmRlcmVyQ2hyb21pdW1DbGllbnQ6OkZha2VMYXllclJlbmRlcmVyQ2hyb21pdW1DbGllbnQp
OgorICAgICAgICAoRmFrZUxheWVyUmVuZGVyZXJDaHJvbWl1bUNsaWVudDo6cm9vdExheWVyKToK
KyAgICAgICAgKEZha2VMYXllclJlbmRlcmVyQ2hyb21pdW1DbGllbnQpOgorICAgICAgICAoVEVT
VF9GKToKKwogMjAxMi0wMy0yOCAgQmlsbCBCdWRnZSAgPGJidWRnZUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgQXNzb2NpYXRlZFVSTExvYWRlciBkb2VzIG5vdCBzdXBwb3J0IENyb3NzIE9yaWdp
biBSZWRpcmVjdHMgd2hlbiB1c2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5j
cHAKaW5kZXggNDY1NjkzNGU1ZmM5OTQ2NGEwMTc2MmViNTcxMTI4OTUyNGZjNmUxNC4uY2NiMWRk
OGQwYjI5YzM3MjIxMzNmYWI2ZGQ4MzVhOWI0ODI4YmIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJl
bmRlcmVyQ2hyb21pdW0uY3BwCkBAIC0zNTAsMTAgKzM1MCw2IEBAIHZvaWQgTGF5ZXJSZW5kZXJl
ckNocm9taXVtOjpzZXRWaXNpYmxlKGJvb2wgdmlzaWJsZSkKICAgICBpZiAoIXZpc2libGUpCiAg
ICAgICAgIHJlbGVhc2VSZW5kZXJTdXJmYWNlVGV4dHVyZXMoKTsKIAotICAgIC8vIEZJWE1FOiBS
ZW1vdmUgdGhpcyBvbmNlIGZyYW1lYnVmZmVyIGlzIGF1dG9tYXRpY2FsbHkgcmVjcmVhdGVkIG9u
IGZpcnN0IHVzZQotICAgIGlmICh2aXNpYmxlKQotICAgICAgICBlbnN1cmVGcmFtZWJ1ZmZlcigp
OwotCiAgICAgLy8gVE9ETzogUmVwbGFjZSBzZXRWaXNpYmlsaXR5Q0hST01JVU0gd2l0aCBhbiBl
eHRlbnNpb24gdG8gZXhwbGljaXRseSBtYW5hZ2UgZnJvbnQvYmFja2J1ZmZlcnMKICAgICAvLyBj
cmJ1Zy5jb20vMTE2MDQ5CiAgICAgaWYgKG1fY2FwYWJpbGl0aWVzLnVzaW5nU2V0VmlzaWJpbGl0
eSkgewpAQCAtNDA2LDYgKzQwMiwxMCBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6Y2xl
YXJSZW5kZXJTdXJmYWNlKENDUmVuZGVyU3VyZmFjZSogcmVuZGVyU3VyZmFjZSwgQwogdm9pZCBM
YXllclJlbmRlcmVyQ2hyb21pdW06OmJlZ2luRHJhd2luZ0ZyYW1lKCkKIHsKICAgICBBU1NFUlQo
cm9vdExheWVyKCkpOworCisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG9uY2UgZnJhbWVidWZm
ZXIgaXMgYXV0b21hdGljYWxseSByZWNyZWF0ZWQgb24gZmlyc3QgdXNlCisgICAgZW5zdXJlRnJh
bWVidWZmZXIoKTsKKwogICAgIG1fZGVmYXVsdFJlbmRlclN1cmZhY2UgPSByb290TGF5ZXIoKS0+
cmVuZGVyU3VyZmFjZSgpOwogCiAgICAgLy8gRklYTUU6IHVzZSB0aGUgZnJhbWUgYmVnaW4gdGlt
ZSBmcm9tIHRoZSBvdmVyYWxsIGNvbXBvc2l0b3Igc2NoZWR1bGVyLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9t
aXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJl
bmRlcmVyQ2hyb21pdW0uaAppbmRleCA1OWI4ZmY4ZmI5ZTgyZjA1ZDFmNGZjMzdkYjNiYjY3MWEx
YTkwYjZiLi4xNWE2MmY2YTk0YTEzZDM5YmQ1YTYxMzE3YjU4NDgwMDYwNDE3ZWUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRl
cmVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uaApAQCAtNjEsNiArNjEsNyBAQCBjbGFzcyBDQ1Rl
eHR1cmVEcmF3UXVhZDsKIGNsYXNzIEdlb21ldHJ5QmluZGluZzsKIGNsYXNzIEdyYXBoaWNzQ29u
dGV4dDNEOwogY2xhc3MgTGF5ZXJSZW5kZXJlclN3YXBCdWZmZXJzQ29tcGxldGVDYWxsYmFja0Fk
YXB0ZXI7CitjbGFzcyBMYXllclJlbmRlcmVyR3B1TWVtb3J5QWxsb2NhdGlvbkNoYW5nZWRDYWxs
YmFja0FkYXB0ZXI7CiBjbGFzcyBTY29wZWRFbnN1cmVGcmFtZWJ1ZmZlckFsbG9jYXRpb247CiAK
IGNsYXNzIExheWVyUmVuZGVyZXJDaHJvbWl1bUNsaWVudCB7CkBAIC0xNjMsMTEgKzE2NCwxMiBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0IHdpZHRoLCBmbG9hdCBo
ZWlnaHQsIGZsb2F0IG9wYWNpdHksIGNvbnN0IEZsb2F0UXVhZCYsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludCBtYXRyaXhMb2NhdGlvbiwgaW50IGFscGhhTG9jYXRpb24sIGludCBxdWFk
TG9jYXRpb24pOwogCitwcm90ZWN0ZWQ6CisgICAgZnJpZW5kIGNsYXNzIExheWVyUmVuZGVyZXJH
cHVNZW1vcnlBbGxvY2F0aW9uQ2hhbmdlZENhbGxiYWNrQWRhcHRlcjsKICAgICB2b2lkIGRpc2Nh
cmRGcmFtZWJ1ZmZlcigpOwogICAgIHZvaWQgZW5zdXJlRnJhbWVidWZmZXIoKTsKICAgICBib29s
IGlzRnJhbWVidWZmZXJEaXNjYXJkZWQoKSBjb25zdCB7IHJldHVybiBtX2lzRnJhbWVidWZmZXJE
aXNjYXJkZWQ7IH0KIAotcHJvdGVjdGVkOgogICAgIExheWVyUmVuZGVyZXJDaHJvbWl1bShMYXll
clJlbmRlcmVyQ2hyb21pdW1DbGllbnQqLCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPik7
CiAgICAgYm9vbCBpbml0aWFsaXplKCk7CiAKQEAgLTI2NiwzMyArMjY4LDYgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1faXNGcmFtZWJ1ZmZlckRpc2NhcmRlZDsKIH07CiAKLS8vIFRoZSBwdXJwb3Nl
IG9mIHRoaXMgaGVscGVyIGlzIHR3b2ZvbGQ6Ci0vLyAxLiBUbyBlbnN1cmUgdGhhdCBhIGZyYW1l
YnVmZmVyIGlzIGF2YWlsYWJsZSBmb3Igc2NvcGUgbGlmZXRpbWUsIGFuZAotLy8gMi4gVG8gcmVz
ZXQgZnJhbWVidWZmZXIgYWxsb2NhdGlvbiB0byBwcmV2aW91cyBzdGF0ZSBvbiBzY29wZSBleGl0
LgotLy8gSWYgdGhlIGZyYW1lYnVmZmVyIGlzIHJlY3JlYXRlZCwgaXRzIGNvbnRlbnRzIGFyZSB1
bmRlZmluZWQuCi0vLyBGSVhNRTogUHJldmVudC9kZWxheSBkaXNjYXJkaW5nIGZyYW1lYnVmZmVy
IHZpYSBhbnkgbWVhbnMgd2hpbGUgYW55Ci0vLyBpbnN0YW5jZSBvZiB0aGlzIGlzIGFsaXZlLiBB
dCB0aGUgbW9tZW50LCB0aGlzIGlzbid0IGFuIGlzc3VlLgotY2xhc3MgU2NvcGVkRW5zdXJlRnJh
bWVidWZmZXJBbGxvY2F0aW9uIHsKLXB1YmxpYzoKLSAgICBleHBsaWNpdCBTY29wZWRFbnN1cmVG
cmFtZWJ1ZmZlckFsbG9jYXRpb24oTGF5ZXJSZW5kZXJlckNocm9taXVtKiBsYXllclJlbmRlcmVy
KQotICAgICAgICA6IG1fbGF5ZXJSZW5kZXJlcihsYXllclJlbmRlcmVyKQotICAgICAgICAsIG1f
ZnJhbWVidWZmZXJXYXNJbml0aWFsbHlEaXNjYXJkZWQobGF5ZXJSZW5kZXJlci0+aXNGcmFtZWJ1
ZmZlckRpc2NhcmRlZCgpKQotICAgIHsKLSAgICAgICAgaWYgKG1fZnJhbWVidWZmZXJXYXNJbml0
aWFsbHlEaXNjYXJkZWQpCi0gICAgICAgICAgICBtX2xheWVyUmVuZGVyZXItPmVuc3VyZUZyYW1l
YnVmZmVyKCk7Ci0gICAgfQotCi0gICAgflNjb3BlZEVuc3VyZUZyYW1lYnVmZmVyQWxsb2NhdGlv
bigpCi0gICAgewotICAgICAgICBpZiAobV9mcmFtZWJ1ZmZlcldhc0luaXRpYWxseURpc2NhcmRl
ZCkKLSAgICAgICAgICAgIG1fbGF5ZXJSZW5kZXJlci0+ZGlzY2FyZEZyYW1lYnVmZmVyKCk7Ci0g
ICAgfQotCi1wcml2YXRlOgotICAgIExheWVyUmVuZGVyZXJDaHJvbWl1bSogbV9sYXllclJlbmRl
cmVyOwotICAgIGJvb2wgbV9mcmFtZWJ1ZmZlcldhc0luaXRpYWxseURpc2NhcmRlZDsKLX07Ci0K
IAogLy8gU2V0dGluZyBERUJVR19HTF9DQUxMUyB0byAxIHdpbGwgY2FsbCBnbEdldEVycm9yKCkg
YWZ0ZXIgYWxtb3N0IGV2ZXJ5IEdMCiAvLyBjYWxsIG1hZGUgYnkgdGhlIGNvbXBvc2l0b3IuIFVz
ZWZ1bCBmb3IgZGVidWdnaW5nIHJlbmRlcmluZyBpc3N1ZXMgYnV0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
U2luZ2xlVGhyZWFkUHJveHkuY3BwCmluZGV4IDFiNDFmN2U3Y2UwNDhjZGIxNWIwOGRiYWVjMmY5
YzdhMzAzNmFhZWIuLmVjODQyOGQ2NTA1ZmExOTk3MWY4YWEzMjAxNjY1MDMxMzI3YzIyYjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
U2luZ2xlVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwCkBAIC03Miw4ICs3Miw2IEBA
IGJvb2wgQ0NTaW5nbGVUaHJlYWRQcm94eTo6Y29tcG9zaXRlQW5kUmVhZGJhY2sodm9pZCAqcGl4
ZWxzLCBjb25zdCBJbnRSZWN0JiByZWN0CiAgICAgVFJBQ0VfRVZFTlQoIkNDU2luZ2xlVGhyZWFk
UHJveHk6OmNvbXBvc2l0ZUFuZFJlYWRiYWNrIiwgdGhpcywgMCk7CiAgICAgQVNTRVJUKENDUHJv
eHk6OmlzTWFpblRocmVhZCgpKTsKIAotICAgIFNjb3BlZEVuc3VyZUZyYW1lYnVmZmVyQWxsb2Nh
dGlvbiBlbnN1cmVGcmFtZWJ1ZmZlcihtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVy
KCkpOwotCiAgICAgaWYgKCFjb21taXRJZk5lZWRlZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKaW5kZXggMDU1Y2EwOGZmNzA5NmM4Nzc2Yzcx
MGFlZDdhYThkMjQwYjcxNmI0NC4uYzExZjQ2NDVlZDA1YzBlZTczY2YzMjAzNGM2ZjMxNGU3ZDVl
YTVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKQEAgLTkzLDggKzkzLDYgQEAgYm9v
bCBDQ1RocmVhZFByb3h5Ojpjb21wb3NpdGVBbmRSZWFkYmFjayh2b2lkICpwaXhlbHMsIGNvbnN0
IEludFJlY3QmIHJlY3QpCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQo
bV9sYXllclRyZWVIb3N0KTsKIAotICAgIFNjb3BlZEVuc3VyZUZyYW1lYnVmZmVyQWxsb2NhdGlv
biBlbnN1cmVGcmFtZWJ1ZmZlcihtX2xheWVyVHJlZUhvc3RJbXBsLT5sYXllclJlbmRlcmVyKCkp
OwotCiAgICAgaWYgKCFtX2xheWVyUmVuZGVyZXJJbml0aWFsaXplZCkgewogICAgICAgICBUUkFD
RV9FVkVOVCgiY29tcG9zaXRlQW5kUmVhZGJhY2tfRWFybHlPdXRfTFJfVW5pbml0aWFsaXplZCIs
IHRoaXMsIDApOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMjUsNiArMTIzLDcgQEAgdm9p
ZCBDQ1RocmVhZFByb3h5OjpyZXF1ZXN0UmVhZGJhY2tPbkltcGxUaHJlYWQoUmVhZGJhY2tSZXF1
ZXN0KiByZXF1ZXN0KQogICAgICAgICByZXF1ZXN0LT5jb21wbGV0aW9uLnNpZ25hbCgpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQorCiAgICAgbV9yZWFkYmFja1JlcXVlc3RPbkltcGxUaHJlYWQg
PSByZXF1ZXN0OwogICAgIG1fc2NoZWR1bGVyT25JbXBsVGhyZWFkLT5zZXROZWVkc1JlZHJhdygp
OwogICAgIG1fc2NoZWR1bGVyT25JbXBsVGhyZWFkLT5zZXROZWVkc0ZvcmNlZFJlZHJhdygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXllclJlbmRlcmVyQ2hy
b21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJSZW5kZXJl
ckNocm9taXVtVGVzdC5jcHAKaW5kZXggNDUxYWNlYTE0ZWQ4YTM1MDRkMWViMTY2YjA0OWU2YjJm
YmQwMmNiZi4uNDlhMzYxOGQ4MmQ4NjllOTE5ZWM2MDQ3MmNhYzgxMjY2ZjNhM2IyOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXllclJlbmRlcmVyQ2hyb21pdW1U
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyUmVuZGVyZXJD
aHJvbWl1bVRlc3QuY3BwCkBAIC02MywxMyArNjMsMTcgQEAgcHJpdmF0ZToKIAogY2xhc3MgRmFr
ZUxheWVyUmVuZGVyZXJDaHJvbWl1bUNsaWVudCA6IHB1YmxpYyBMYXllclJlbmRlcmVyQ2hyb21p
dW1DbGllbnQgewogcHVibGljOgotICAgIEZha2VMYXllclJlbmRlcmVyQ2hyb21pdW1DbGllbnQo
KSA6IG1fc2V0RnVsbFJvb3RMYXllckRhbWFnZUNvdW50KDApIHsgfQorICAgIEZha2VMYXllclJl
bmRlcmVyQ2hyb21pdW1DbGllbnQoKQorICAgICAgICA6IG1fc2V0RnVsbFJvb3RMYXllckRhbWFn
ZUNvdW50KDApCisgICAgICAgICwgbV9yb290TGF5ZXIoQ0NMYXllckltcGw6OmNyZWF0ZSgxKSkK
KyAgICB7CisgICAgfQogCiAgICAgLy8gTGF5ZXJSZW5kZXJlckNocm9taXVtQ2xpZW50IG1ldGhv
ZHMuCiAgICAgdmlydHVhbCBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUoKSBjb25zdCB7IHN0
YXRpYyBJbnRTaXplIGZha2VTaXplOyByZXR1cm4gZmFrZVNpemU7IH0KICAgICB2aXJ0dWFsIGNv
bnN0IENDU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgeyBzdGF0aWMgQ0NTZXR0aW5ncyBmYWtl
U2V0dGluZ3M7IHJldHVybiBmYWtlU2V0dGluZ3M7IH0KLSAgICB2aXJ0dWFsIENDTGF5ZXJJbXBs
KiByb290TGF5ZXIoKSB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCBjb25zdCBDQ0xheWVySW1w
bCogcm9vdExheWVyKCkgY29uc3QgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgQ0NMYXllcklt
cGwqIHJvb3RMYXllcigpIHsgcmV0dXJuIG1fcm9vdExheWVyLmdldCgpOyB9CisgICAgdmlydHVh
bCBjb25zdCBDQ0xheWVySW1wbCogcm9vdExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9yb290TGF5
ZXIuZ2V0KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkTG9zZUNvbnRleHQoKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgb25Td2FwQnVmZmVyc0NvbXBsZXRlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lk
IHNldEZ1bGxSb290TGF5ZXJEYW1hZ2UoKSB7IG1fc2V0RnVsbFJvb3RMYXllckRhbWFnZUNvdW50
Kys7IH0KQEAgLTgwLDYgKzg0LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBpbnQgbV9zZXRG
dWxsUm9vdExheWVyRGFtYWdlQ291bnQ7CiAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIG1f
aW1wbFRocmVhZDsKKyAgICBPd25QdHI8Q0NMYXllckltcGw+IG1fcm9vdExheWVyOwogfTsKIAog
Y2xhc3MgRmFrZUxheWVyUmVuZGVyZXJDaHJvbWl1bSA6IHB1YmxpYyBMYXllclJlbmRlcmVyQ2hy
b21pdW0gewpAQCAtOTAsNiArOTUsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBDaGFuZ2luZyB2aXNp
YmlsaXR5IHRvIHB1YmxpYy4KICAgICB1c2luZyBMYXllclJlbmRlcmVyQ2hyb21pdW06OmluaXRp
YWxpemU7CisgICAgdXNpbmcgTGF5ZXJSZW5kZXJlckNocm9taXVtOjppc0ZyYW1lYnVmZmVyRGlz
Y2FyZGVkOwogfTsKIAogY2xhc3MgTGF5ZXJSZW5kZXJlckNocm9taXVtVGVzdCA6IHB1YmxpYyB0
ZXN0aW5nOjpUZXN0IHsKQEAgLTE3OCw1MSArMTg0LDE3IEBAIFRFU1RfRihMYXllclJlbmRlcmVy
Q2hyb21pdW1UZXN0LCBTd2FwQnVmZmVyc1doaWxlQmFja2J1ZmZlckRpc2NhcmRlZFNob3VsZEln
bm9yCiB9CiAKIC8vIFRlc3QgTGF5ZXJSZW5kZXJlckNocm9taXVtIGRpc2NhcmRGcmFtZWJ1ZmZl
ciBmdW5jdGlvbmFsaXR5OgotLy8gRGlzY2FyZCBmcmFtZWJ1ZmZlciwgdGhlbiBzZXQgdmlzaWJp
bGl0eSB0byB0cnVlLgotLy8gRXhwZWN0ZWQ6IHJlY3JlYXRlcyB0aGUgZnJhbWVidWZmZXIuCi1U
RVNUX0YoTGF5ZXJSZW5kZXJlckNocm9taXVtVGVzdCwgU2V0VmlzaWJpbGl0eVRydWVTaG91bGRS
ZWNyZWF0ZUJhY2tidWZmZXIpCi17Ci0gICAgbV9tb2NrQ29udGV4dC5zZXRNZW1vcnlBbGxvY2F0
aW9uKG1fc3VnZ2VzdEhhdmVCYWNrYnVmZmVyTm8pOwotICAgIEVYUEVDVF9UUlVFKG1fbGF5ZXJS
ZW5kZXJlckNocm9taXVtLmlzRnJhbWVidWZmZXJEaXNjYXJkZWQoKSk7Ci0KLSAgICBtX2xheWVy
UmVuZGVyZXJDaHJvbWl1bS5zZXRWaXNpYmxlKHRydWUpOwotICAgIEVYUEVDVF9GQUxTRShtX2xh
eWVyUmVuZGVyZXJDaHJvbWl1bS5pc0ZyYW1lYnVmZmVyRGlzY2FyZGVkKCkpOwotfQotCi0vLyBU
ZXN0IExheWVyUmVuZGVyZXJDaHJvbWl1bSBkaXNjYXJkRnJhbWVidWZmZXIgZnVuY3Rpb25hbGl0
eToKLS8vIENyZWF0ZSBhIFNjb3BlZEVuc3VyZUZyYW1lYnVmZmVyQWxsb2NhdGlvbiB3aGlsZSBh
IGZyYW1lYnVmZmVyIHdhcyBkaXNjYXJkZWQgYW5kIHRoZW4gc3dhcEJ1ZmZlcnMuCi0vLyBFeHBl
Y3RlZDogd2lsbCByZWNyZWF0ZSBmcmFtZWJ1ZmZlciBzY29wZSBkdXJhdGlvbiwgZHVyaW5nIHdo
aWNoIHN3YXBzIHdpbGwgd29yayBmaW5lLCBhbmQgZGlzY2FyZCBvbiBzY29wZSBleGl0LgorLy8g
QmVnaW4gZHJhd2luZyBhIGZyYW1lIHdoaWxlIGEgZnJhbWVidWZmZXIgaXMgZGlzY2FyZGVkLgor
Ly8gRXhwZWN0ZWQ6IHdpbGwgcmVjcmVhdGUgZnJhbWVidWZmZXIuCiBURVNUX0YoTGF5ZXJSZW5k
ZXJlckNocm9taXVtVGVzdCwgRGlzY2FyZGVkQmFja2J1ZmZlcklzUmVjcmVhdHJlZEZvclNjb3Bl
RHVyYXRpb24pCiB7CiAgICAgbV9tb2NrQ29udGV4dC5zZXRNZW1vcnlBbGxvY2F0aW9uKG1fc3Vn
Z2VzdEhhdmVCYWNrYnVmZmVyTm8pOwogICAgIEVYUEVDVF9UUlVFKG1fbGF5ZXJSZW5kZXJlckNo
cm9taXVtLmlzRnJhbWVidWZmZXJEaXNjYXJkZWQoKSk7CiAgICAgRVhQRUNUX0VRKDEsIG1fbW9j
a0NsaWVudC5zZXRGdWxsUm9vdExheWVyRGFtYWdlQ291bnQoKSk7Ci0gICAgewotICAgICAgICBT
Y29wZWRFbnN1cmVGcmFtZWJ1ZmZlckFsbG9jYXRpb24gZW5zdXJlRnJhbWVidWZmZXIoJm1fbGF5
ZXJSZW5kZXJlckNocm9taXVtKTsKLSAgICAgICAgRVhQRUNUX0ZBTFNFKG1fbGF5ZXJSZW5kZXJl
ckNocm9taXVtLmlzRnJhbWVidWZmZXJEaXNjYXJkZWQoKSk7CiAKLSAgICAgICAgc3dhcEJ1ZmZl
cnMoKTsKLSAgICAgICAgRVhQRUNUX0VRKDEsIG1fbW9ja0NvbnRleHQuZnJhbWVDb3VudCgpKTsK
LSAgICB9Ci0gICAgRVhQRUNUX1RSVUUobV9sYXllclJlbmRlcmVyQ2hyb21pdW0uaXNGcmFtZWJ1
ZmZlckRpc2NhcmRlZCgpKTsKLSAgICBFWFBFQ1RfRVEoMiwgbV9tb2NrQ2xpZW50LnNldEZ1bGxS
b290TGF5ZXJEYW1hZ2VDb3VudCgpKTsKLX0KLQotLy8gVGVzdCBMYXllclJlbmRlcmVyQ2hyb21p
dW0gZGlzY2FyZEZyYW1lYnVmZmVyIGZ1bmN0aW9uYWxpdHk6Ci0vLyBDcmVhdGUgYSBTY29wZWRF
bnN1cmVGcmFtZWJ1ZmZlckFsbG9jYXRpb24gd2hpbGUgYSBmcmFtZWJ1ZmZlciB3YXMgbm90IGRp
c2NhcmRlZCBhbmQgdGhlbiBzd2FwQnVmZmVycy4KLS8vIEV4cGVjdGVkOiB3aWxsIGhhdmUgbm8g
ZWZmZWN0LgotVEVTVF9GKExheWVyUmVuZGVyZXJDaHJvbWl1bVRlc3QsIEVuc3VyaW5nQmFja2J1
ZmZlckZvclNjb3BlRHVyYXRpb25Eb2VzTm90aGluZ0lmQWxyZWFkeUV4aXN0cykKLXsKKyAgICBt
X2xheWVyUmVuZGVyZXJDaHJvbWl1bS5iZWdpbkRyYXdpbmdGcmFtZSgpOwogICAgIEVYUEVDVF9G
QUxTRShtX2xheWVyUmVuZGVyZXJDaHJvbWl1bS5pc0ZyYW1lYnVmZmVyRGlzY2FyZGVkKCkpOwot
ICAgIEVYUEVDVF9FUSgwLCBtX21vY2tDbGllbnQuc2V0RnVsbFJvb3RMYXllckRhbWFnZUNvdW50
KCkpOwotICAgIHsKLSAgICAgICAgU2NvcGVkRW5zdXJlRnJhbWVidWZmZXJBbGxvY2F0aW9uIGVu
c3VyZUZyYW1lYnVmZmVyKCZtX2xheWVyUmVuZGVyZXJDaHJvbWl1bSk7Ci0gICAgICAgIEVYUEVD
VF9GQUxTRShtX2xheWVyUmVuZGVyZXJDaHJvbWl1bS5pc0ZyYW1lYnVmZmVyRGlzY2FyZGVkKCkp
OwotICAgICAgICBFWFBFQ1RfRVEoMCwgbV9tb2NrQ2xpZW50LnNldEZ1bGxSb290TGF5ZXJEYW1h
Z2VDb3VudCgpKTsKIAotICAgICAgICBzd2FwQnVmZmVycygpOwotICAgICAgICBFWFBFQ1RfRVEo
MSwgbV9tb2NrQ29udGV4dC5mcmFtZUNvdW50KCkpOwotICAgIH0KLSAgICBFWFBFQ1RfRkFMU0Uo
bV9sYXllclJlbmRlcmVyQ2hyb21pdW0uaXNGcmFtZWJ1ZmZlckRpc2NhcmRlZCgpKTsKLSAgICBF
WFBFQ1RfRVEoMCwgbV9tb2NrQ2xpZW50LnNldEZ1bGxSb290TGF5ZXJEYW1hZ2VDb3VudCgpKTsK
KyAgICBzd2FwQnVmZmVycygpOworICAgIEVYUEVDVF9FUSgxLCBtX21vY2tDb250ZXh0LmZyYW1l
Q291bnQoKSk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>