<?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>103366</bug_id>
          
          <creation_ts>2012-11-26 22:28:45 -0800</creation_ts>
          <short_desc>[TexMap] Perform the layer-tree traversal in GraphicsLayerTextureMapper.</short_desc>
          <delta_ts>2012-12-16 18:31:09 -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>Layout and Rendering</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>
          <dependson>104640</dependson>
          <blocked>103854</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Dongseong Hwang">dongseong.hwang</assigned_to>
          <cc>mrobinson</cc>
    
    <cc>noam</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>776347</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-26 22:28:45 -0800</bug_when>
    <thetext>Move layer-tree traverse from TextureMapperLaye to GraphicsLayerTextureMapper.

It is because of two reasons.
1. It is a part of implementing actor model. After implementing actor model,
each GraphicsLayerTextureMapper needs to send a layer state message to
TextureMapperLayer. It means the outside instance of TextureMapperLayer should
perform recursive traverse.
2. LayerTreeRenderer needs to syncronize a layer state of TextureMapperLayer when
receiving the SetCompositingLayerState message. See Bug 103171.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776351</commentid>
    <comment_count>1</comment_count>
      <attachid>176176</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-26 22:33:58 -0800</bug_when>
    <thetext>Created attachment 176176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776370</commentid>
    <comment_count>2</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-26 22:49:44 -0800</bug_when>
    <thetext>Now GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly() synchronize a layer state and animation on this layer only.

Currently, GraphicsLayerTextureMapper::flushCompositingStateForThisLayerOnly() performs synchronizing the layer state of the given layer and the animations of children as well as the given layer. However, there is no requirement that flushCompositingStateForThisLayerOnly() synchronizes all animations in layer tree.

All clients that call flushCompositingStateForThisLayerOnly() uses GraphicsLayer in the same way.
rootLayer-&gt;flushCompositingStateForThisLayerOnly()
nonCompositingLayer-&gt;flushCompositingStateForThisLayerOnly()
frameView-&gt;flushCompositingStateIncludingSubframes()

It means that flushCompositingStateForThisLayerOnly() needs to synchronize the animation of only the given layer.
Currently, we traverse 3 times to sync animation redundantly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776490</commentid>
    <comment_count>3</comment_count>
      <attachid>176200</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-27 01:49:27 -0800</bug_when>
    <thetext>Created attachment 176200
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776526</commentid>
    <comment_count>4</comment_count>
      <attachid>176200</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-27 02:25:10 -0800</bug_when>
    <thetext>Comment on attachment 176200
Patch

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

&gt; Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:434
&gt; +        return;

Now we can call GraphicsLayerTextureMapper::flushCompositingState() before setting TextureMapper to the root TextureMapperLayer.
GraphicsLayerTextureMapper::flushCompositingState() can sync layer states except for completing prepareBackingStore().
prepareBackingStore() can not be perform without TextureMapper, but it is safe because we keep m_needsDisplay and united m_needsDisplayRect until prepareBackingStore() completes after setting TextureMapper to the root layer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786981</commentid>
    <comment_count>5</comment_count>
      <attachid>178471</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-09 22:08:45 -0800</bug_when>
    <thetext>Created attachment 178471
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786990</commentid>
    <comment_count>6</comment_count>
      <attachid>178471</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-09 22:21:56 -0800</bug_when>
    <thetext>Comment on attachment 178471
Patch

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

You&apos;re also removing the SyncOptions thingy... it&apos;s ok but you need to specific in the changelog why/how this is ok.

&gt; Source/WebCore/ChangeLog:11
&gt; +        urrently, CoordinatedGraphicsLayer performs layer tree traversal by
&gt; +        itself, but GraphicsLayerTextureMapper delegates the tree traversal to
&gt; +        TextureMapperLayer. This patch decides the tree traversal is the role of
&gt; +        GraphicsLayer.

Perform the layer-tree traversal in GraphicsLayerTextureMapper.

&gt; Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:420
&gt; +        toGraphicsLayerTextureMapper(maskLayer())-&gt;flushCompositingState(rect);

you don&apos;t need toGraphicsLayerTextureMapper</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787022</commentid>
    <comment_count>7</comment_count>
      <attachid>178479</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-09 23:16:24 -0800</bug_when>
    <thetext>Created attachment 178479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787024</commentid>
    <comment_count>8</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-09 23:17:56 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 178471 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=178471&amp;action=review

Thank you for review!

&gt; You&apos;re also removing the SyncOptions thingy... it&apos;s ok but you need to specific in the changelog why/how this is ok.

Oops, I missed.

&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        urrently, CoordinatedGraphicsLayer performs layer tree traversal by
&gt; &gt; +        itself, but GraphicsLayerTextureMapper delegates the tree traversal to
&gt; &gt; +        TextureMapperLayer. This patch decides the tree traversal is the role of
&gt; &gt; +        GraphicsLayer.
&gt; 
&gt; Perform the layer-tree traversal in GraphicsLayerTextureMapper.

I rephrased based on your help :)

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:420
&gt; &gt; +        toGraphicsLayerTextureMapper(maskLayer())-&gt;flushCompositingState(rect);
&gt; 
&gt; you don&apos;t need toGraphicsLayerTextureMapper

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788067</commentid>
    <comment_count>9</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-10 22:55:44 -0800</bug_when>
    <thetext>mrobinson, noamr and I talked about GTK+ AC regresstion in IRC.

Bug 103046 made the problem, and this bug fixes the problem.

I did not understand how Bug 103046 can cause the problem yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788106</commentid>
    <comment_count>10</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-10 23:57:55 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; mrobinson, noamr and I talked about GTK+ AC regresstion in IRC.
&gt; 
&gt; Bug 103046 made the problem, and this bug fixes the problem.
&gt; 
&gt; I did not understand how Bug 103046 can cause the problem yet.

I filed Bug 104640 to fix the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788119</commentid>
    <comment_count>11</comment_count>
      <attachid>178739</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-11 00:28:08 -0800</bug_when>
    <thetext>Created attachment 178739
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788129</commentid>
    <comment_count>12</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-11 00:37:13 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Created an attachment (id=178739) [details]
&gt; Patch

Fix Bug 104640 the first and refactor this bug the second.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788796</commentid>
    <comment_count>13</comment_count>
      <attachid>178739</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-11 14:21:09 -0800</bug_when>
    <thetext>Comment on attachment 178739
Patch

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

&gt; Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp:367
&gt; +    flushCompositingStateSelf(graphicsLayer);
&gt; +    syncAnimations();

IS this needed? can&apos;t we have one function, that calls syncAnimations in the end?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789055</commentid>
    <comment_count>14</comment_count>
      <attachid>178934</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-11 17:47:45 -0800</bug_when>
    <thetext>Created attachment 178934
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789056</commentid>
    <comment_count>15</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-11 17:48:33 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 178739 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=178739&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/texmap/TextureMapperLayer.cpp:367
&gt; &gt; +    flushCompositingStateSelf(graphicsLayer);
&gt; &gt; +    syncAnimations();
&gt; 
&gt; IS this needed? can&apos;t we have one function, that calls syncAnimations in the end?

Good suggestion. I changed :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790586</commentid>
    <comment_count>16</comment_count>
      <attachid>178934</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-12-13 07:13:52 -0800</bug_when>
    <thetext>Comment on attachment 178934
Patch

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

I&apos;m OK with this. I&apos;d rather someone else cq+ if things are stable enough for this.

&gt; Source/WebCore/ChangeLog:19
&gt; +        In addition, this patch removes SyncOptions enum. Currently, when using
&gt; +        ComputationsOnly, the layer-tree traversal synchronizes only animations
&gt; +        without layer states. However, there is no client that calls
&gt; +        flushCompositingState() for the purpose. Even we already have the API
&gt; +        for the purpose: applyAnimationsRecursively(). So from now on, we have
&gt; +        only flushCompositingStateForThisLayerOnly() API in TextureMapperLayer
&gt; +        for brevity.

Just say:
Also removed the SyncOptions enum, which is redundant since no client calls it with ComputationsOnly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791066</commentid>
    <comment_count>17</comment_count>
      <attachid>179367</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-13 16:12:12 -0800</bug_when>
    <thetext>Created attachment 179367
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791067</commentid>
    <comment_count>18</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-12-13 16:13:31 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 178934 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=178934&amp;action=review
&gt; 
&gt; I&apos;m OK with this. I&apos;d rather someone else cq+ if things are stable enough for this.

I think it is stable. Now a day, I tested much :)

&gt; Just say:
&gt; Also removed the SyncOptions enum, which is redundant since no client calls it with ComputationsOnly.

Thank you for rephrasing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792431</commentid>
    <comment_count>19</comment_count>
      <attachid>179367</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-16 18:31:04 -0800</bug_when>
    <thetext>Comment on attachment 179367
Patch

Clearing flags on attachment: 179367

Committed r137867: &lt;http://trac.webkit.org/changeset/137867&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>792432</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-16 18:31:09 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176176</attachid>
            <date>2012-11-26 22:33:58 -0800</date>
            <delta_ts>2012-11-27 00:34:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103366-20121127153117.patch</filename>
            <type>text/plain</type>
            <size>11385</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1ODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmNiNTU5NmQ0NzQyZmFl
Y2E2ZWNjMmViNGYxZWJkYzcyYjQ5ZTEwOC4uOTExYTQzZTI2MTRmNmUwYmY0MGYwZGMwYzE4ZDlj
NGQ5N2NlNmJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQwIEBACiAyMDEyLTExLTI2ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIFtUZXhNYXBd
IFJlZmFjdG9yIFRleHR1cmVNYXBwZXJMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlKCkuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMzNjYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIGxheWVy
LXRyZWUgdHJhdmVyc2UgZnJvbSBUZXh0dXJlTWFwcGVyTGF5ZSB0byBHcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlci4KKworICAgICAgICBJdCBpcyBiZWNhdXNlIG9mIHR3byByZWFzb25zLgorICAg
ICAgICAxLiBJdCBpcyBhIHBhcnQgb2YgaW1wbGVtZW50aW5nIGFjdG9yIG1vZGVsLiBBZnRlciBp
bXBsZW1lbnRpbmcgYWN0b3IgbW9kZWwsCisgICAgICAgIGVhY2ggR3JhcGhpY3NMYXllclRleHR1
cmVNYXBwZXIgbmVlZHMgdG8gc2VuZCBhIGxheWVyIHN0YXRlIG1lc3NhZ2UgdG8KKyAgICAgICAg
VGV4dHVyZU1hcHBlckxheWVyLiBJdCBtZWFucyB0aGUgb3V0c2lkZSBpbnN0YW5jZSBvZiBUZXh0
dXJlTWFwcGVyTGF5ZXIgc2hvdWxkCisgICAgICAgIHBlcmZvcm0gcmVjdXJzaXZlIHRyYXZlcnNl
LgorICAgICAgICAyLiBMYXllclRyZWVSZW5kZXJlciBuZWVkcyB0byBzeW5jcm9uaXplIGEgbGF5
ZXIgc3RhdGUgb2YgVGV4dHVyZU1hcHBlckxheWVyIHdoZW4KKyAgICAgICAgcmVjZWl2aW5nIHRo
ZSBTZXRDb21wb3NpdGluZ0xheWVyU3RhdGUgbWVzc2FnZS4gU2VlIEJ1ZyAxMDMxNzEuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpmbHVzaENv
bXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0
ZVJlY3Vyc2l2ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
cjo6ZGlkRmx1c2hDb21wb3NpdGluZ1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnVwZGF0ZUJhY2tpbmdTdG9y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6cHJlcGFy
ZUJhY2tpbmdTdG9yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmg6CisgICAgICAgIChHcmFwaGljc0xheWVyVGV4dHVyZU1h
cHBlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJM
YXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OmZsdXNoQ29t
cG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVy
ZU1hcHBlckxheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGVTZWxmKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmg6CisgICAgICAgIChUZXh0
dXJlTWFwcGVyTGF5ZXIpOgorCisyMDEyLTExLTI2ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxh
QGNvbXBhbnkxMDAubmV0PgorCiAgICAgICAgIENvb3JkaW5hdGVkIEdyYXBoaWNzOiBTZXQgdmlz
aWJpbGl0eSB0byBhIG1hc2sgbGF5ZXIgaW4gR3JhcGhpY3NMYXllcjo6c2V0Q29udGVudHNWaXNp
YmxlKCkuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDMyOTcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4
bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKaW5kZXgg
MWRmOWJiMDc5NTlmMDU2ZjA3MTkyYmVkN2I4NTdhYjM3MTViYzBlNy4uNzE4YTdkM2Q1OThjN2Ri
ZTY2OTgwOGUxZWM2MDUzODYyYjI5NGY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXIuY3BwCkBAIC0zODgsNDggKzM4OCw2MiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvTWVkaWEoVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5
ZXIqCiAqLwogdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6Zmx1c2hDb21wb3NpdGlu
Z1N0YXRlRm9yVGhpc0xheWVyT25seSgpCiB7Ci0gICAgbV9sYXllci0+Zmx1c2hDb21wb3NpdGlu
Z1N0YXRlKHRoaXMpOwotICAgIGRpZEZsdXNoQ29tcG9zaXRpbmdTdGF0ZSgpOworICAgIFRleHR1
cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIgPSBtX2xheWVyLT50ZXh0dXJlTWFwcGVyKCk7CisgICAg
aWYgKCF0ZXh0dXJlTWFwcGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBmbHVzaENvbXBvc2l0
aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KHRleHR1cmVNYXBwZXIpOwogfQogCiAvKiBccmVpbXAg
KEdyYXBoaWNzTGF5ZXIuaCkKICovCiB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpm
bHVzaENvbXBvc2l0aW5nU3RhdGUoY29uc3QgRmxvYXRSZWN0JikKIHsKLSAgICBtX2xheWVyLT5m
bHVzaENvbXBvc2l0aW5nU3RhdGUodGhpcywgVGV4dHVyZU1hcHBlckxheWVyOjpUcmF2ZXJzZURl
c2NlbmRhbnRzKTsKLSAgICBkaWRGbHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1cnNpdmUoKTsKKyAg
ICBUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyID0gbV9sYXllci0+dGV4dHVyZU1hcHBlcigp
OworICAgIGlmICghdGV4dHVyZU1hcHBlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgZmx1c2hD
b21wb3NpdGluZ1N0YXRlUmVjdXJzaXZlKHRleHR1cmVNYXBwZXIpOwogfQogCi12b2lkIEdyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpkaWRGbHVzaENvbXBvc2l0aW5nU3RhdGUoKQordm9pZCBH
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xh
eWVyT25seShUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyKQogewotICAgIHVwZGF0ZUJhY2tp
bmdTdG9yZSgpOwotICAgIG1fY2hhbmdlTWFzayA9IDA7Ci0gICAgbV9uZWVkc0Rpc3BsYXkgPSBm
YWxzZTsKLSAgICBtX25lZWRzRGlzcGxheVJlY3QgPSBJbnRSZWN0KCk7CisgICAgbV9sYXllci0+
Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSh0aGlzKTsKKyAgICB1cGRhdGVC
YWNraW5nU3RvcmUodGV4dHVyZU1hcHBlcik7CisgICAgZGlkRmx1c2hDb21wb3NpdGluZ1N0YXRl
KCk7CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OmRpZEZsdXNoQ29tcG9z
aXRpbmdTdGF0ZVJlY3Vyc2l2ZSgpCit2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpm
bHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1cnNpdmUoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBl
cikKIHsKLSAgICBkaWRGbHVzaENvbXBvc2l0aW5nU3RhdGUoKTsKLSAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGNoaWxkcmVuKCkuc2l6ZSgpOyArK2kpCi0gICAgICAgIHRvR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXIoY2hpbGRyZW4oKVtpXSktPmRpZEZsdXNoQ29tcG9zaXRpbmdTdGF0ZVJl
Y3Vyc2l2ZSgpOworICAgIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkodGV4
dHVyZU1hcHBlcik7CisKICAgICBpZiAobWFza0xheWVyKCkpCi0gICAgICAgIHRvR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXIobWFza0xheWVyKCkpLT5kaWRGbHVzaENvbXBvc2l0aW5nU3RhdGVS
ZWN1cnNpdmUoKTsKKyAgICAgICAgdG9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihtYXNrTGF5
ZXIoKSktPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZVJlY3Vyc2l2ZSh0ZXh0dXJlTWFwcGVyKTsKICAg
ICBpZiAocmVwbGljYUxheWVyKCkpCi0gICAgICAgIHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBw
ZXIocmVwbGljYUxheWVyKCkpLT5kaWRGbHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1cnNpdmUoKTsK
KyAgICAgICAgdG9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihyZXBsaWNhTGF5ZXIoKSktPmZs
dXNoQ29tcG9zaXRpbmdTdGF0ZVJlY3Vyc2l2ZSh0ZXh0dXJlTWFwcGVyKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGNoaWxkcmVuKCkuc2l6ZSgpOyArK2kpCisgICAgICAgIHRvR3JhcGhp
Y3NMYXllclRleHR1cmVNYXBwZXIoY2hpbGRyZW4oKVtpXSktPmZsdXNoQ29tcG9zaXRpbmdTdGF0
ZVJlY3Vyc2l2ZSh0ZXh0dXJlTWFwcGVyKTsKIH0KIAotdm9pZCBHcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlcjo6dXBkYXRlQmFja2luZ1N0b3JlKCkKK3ZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXI6OmRpZEZsdXNoQ29tcG9zaXRpbmdTdGF0ZSgpCit7CisgICAgbV9jaGFuZ2VNYXNrID0g
MDsKKyAgICBtX25lZWRzRGlzcGxheSA9IGZhbHNlOworICAgIG1fbmVlZHNEaXNwbGF5UmVjdCA9
IEludFJlY3QoKTsKK30KKwordm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6dXBkYXRl
QmFja2luZ1N0b3JlKFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIpCiB7CiAgICAgaWYgKCFt
X2hhc093bkJhY2tpbmdTdG9yZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcHJlcGFyZUJhY2tp
bmdTdG9yZSgpOworICAgIHByZXBhcmVCYWNraW5nU3RvcmUodGV4dHVyZU1hcHBlcik7CiAgICAg
bV9sYXllci0+c2V0QmFja2luZ1N0b3JlKG1fYmFja2luZ1N0b3JlKTsKIH0KIAotdm9pZCBHcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlcjo6cHJlcGFyZUJhY2tpbmdTdG9yZSgpCit2b2lkIEdyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpwcmVwYXJlQmFja2luZ1N0b3JlKFRleHR1cmVNYXBwZXIq
IHRleHR1cmVNYXBwZXIpCiB7CisgICAgQVNTRVJUKHRleHR1cmVNYXBwZXIpOwogICAgIGlmICgh
c2hvdWxkSGF2ZUJhY2tpbmdTdG9yZSgpKSB7CiAgICAgICAgIG1fYmFja2luZ1N0b3JlLmNsZWFy
KCk7CiAgICAgICAgIHJldHVybjsKQEAgLTQ0MSw5ICs0NTUsNiBAQCB2b2lkIEdyYXBoaWNzTGF5
ZXJUZXh0dXJlTWFwcGVyOjpwcmVwYXJlQmFja2luZ1N0b3JlKCkKICAgICBpZiAoZGlydHlSZWN0
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgVGV4dHVyZU1hcHBlciogdGV4dHVy
ZU1hcHBlciA9IG1fbGF5ZXItPnRleHR1cmVNYXBwZXIoKTsKLSAgICBBU1NFUlQodGV4dHVyZU1h
cHBlcik7Ci0KICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQogICAgICAgICBtX2JhY2tpbmdTdG9y
ZSA9IFRleHR1cmVNYXBwZXJUaWxlZEJhY2tpbmdTdG9yZTo6Y3JlYXRlKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKaW5kZXggYWY0OTQwOTQzNWViOTYzYjg0Zjhl
ODEwYmI3YzRmMjE4YzM2MWQ2ZS4uYjhkYWM0MWY2OGIwNmRlNmNmNTM2ZjRiMTk2MDc4ZWM5M2Jk
ZmIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKQEAgLTk3LDEw
ICs5NywxMSBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZURl
c3Ryb3llZCgpOworICAgIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25s
eShUZXh0dXJlTWFwcGVyKik7CisgICAgdm9pZCBmbHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1cnNp
dmUoVGV4dHVyZU1hcHBlciopOwogICAgIHZvaWQgZGlkRmx1c2hDb21wb3NpdGluZ1N0YXRlKCk7
Ci0gICAgdm9pZCBkaWRGbHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1cnNpdmUoKTsKLSAgICB2b2lk
IHVwZGF0ZUJhY2tpbmdTdG9yZSgpOwotICAgIHZvaWQgcHJlcGFyZUJhY2tpbmdTdG9yZSgpOwor
ICAgIHZvaWQgdXBkYXRlQmFja2luZ1N0b3JlKFRleHR1cmVNYXBwZXIqKTsKKyAgICB2b2lkIHBy
ZXBhcmVCYWNraW5nU3RvcmUoVGV4dHVyZU1hcHBlciopOwogICAgIGJvb2wgc2hvdWxkSGF2ZUJh
Y2tpbmdTdG9yZSgpIGNvbnN0OwogICAgIHZvaWQgZHJhd1JlcGFpbnRDb3VudGVyKEdyYXBoaWNz
Q29udGV4dCopOwogICAgIHZvaWQgYW5pbWF0aW9uU3RhcnRlZFRpbWVyRmlyZWQoVGltZXI8R3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXI+Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCmlu
ZGV4IGQyYTEwYWE2NmVkMTMzN2ViY2NlNzRlNWRhNGY4YjlkMzE2YThiZjAuLmEyYjkzNGNjY2Rj
N2M4ZGI5ZWE3MDg2MjViZDQ5ZDA0ZjgxOWI5NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIu
Y3BwCkBAIC0zNTIsMTIgKzM1MiwxNCBAQCBUZXh0dXJlTWFwcGVyKiBUZXh0dXJlTWFwcGVyTGF5
ZXI6OnRleHR1cmVNYXBwZXIoKSBjb25zdAogICAgIHJldHVybiByb290TGF5ZXIoKS0+bV90ZXh0
dXJlTWFwcGVyOwogfQogCi12b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6Zmx1c2hDb21wb3NpdGlu
Z1N0YXRlKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiBncmFwaGljc0xheWVyLCBpbnQgb3B0
aW9ucykKK3ZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JU
aGlzTGF5ZXJPbmx5KEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiBncmFwaGljc0xheWVyKQog
ewotICAgIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZShncmFwaGljc0xheWVyLCB0ZXh0dXJlTWFwcGVy
KCksIG9wdGlvbnMpOworICAgIEFTU0VSVChncmFwaGljc0xheWVyKTsKKyAgICBmbHVzaENvbXBv
c2l0aW5nU3RhdGVTZWxmKGdyYXBoaWNzTGF5ZXIpOworICAgIHN5bmNBbmltYXRpb25zKCk7CiB9
CiAKLXZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGVTZWxmKEdy
YXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiBncmFwaGljc0xheWVyLCBUZXh0dXJlTWFwcGVyKikK
K3ZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGVTZWxmKEdyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiBncmFwaGljc0xheWVyKQogewogICAgIGludCBjaGFuZ2VN
YXNrID0gZ3JhcGhpY3NMYXllci0+Y2hhbmdlTWFzaygpOwogCkBAIC00NzYsMzkgKzQ3OCw2IEBA
IHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpzeW5jQW5pbWF0aW9ucygpCiAjZW5kaWYKIH0KIAot
dm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShHcmFwaGljc0xh
eWVyVGV4dHVyZU1hcHBlciogZ3JhcGhpY3NMYXllciwgVGV4dHVyZU1hcHBlciogdGV4dHVyZU1h
cHBlciwgaW50IG9wdGlvbnMpCi17Ci0gICAgaWYgKCF0ZXh0dXJlTWFwcGVyKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBpZiAoZ3JhcGhpY3NMYXllciAmJiAhKG9wdGlvbnMgJiBDb21wdXRhdGlv
bnNPbmx5KSkKLSAgICAgICAgZmx1c2hDb21wb3NpdGluZ1N0YXRlU2VsZihncmFwaGljc0xheWVy
LCB0ZXh0dXJlTWFwcGVyKTsKLQotICAgIGlmIChncmFwaGljc0xheWVyICYmIG1fc3RhdGUubWFz
a0xheWVyKQotICAgICAgICBtX3N0YXRlLm1hc2tMYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRl
KHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIoZ3JhcGhpY3NMYXllci0+bWFza0xheWVyKCkp
LCB0ZXh0dXJlTWFwcGVyKTsKLQotICAgIGlmIChtX3N0YXRlLnJlcGxpY2FMYXllcikKLSAgICAg
ICAgbV9zdGF0ZS5yZXBsaWNhTGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSh0b0dyYXBoaWNz
TGF5ZXJUZXh0dXJlTWFwcGVyKGdyYXBoaWNzTGF5ZXItPnJlcGxpY2FMYXllcigpKSwgdGV4dHVy
ZU1hcHBlcik7Ci0KLSAgICBzeW5jQW5pbWF0aW9ucygpOwotCi0gICAgaWYgKCEob3B0aW9ucyAm
IFRyYXZlcnNlRGVzY2VuZGFudHMpKQotICAgICAgICBvcHRpb25zID0gQ29tcHV0YXRpb25zT25s
eTsKLQotICAgIGlmIChncmFwaGljc0xheWVyKSB7Ci0gICAgICAgIFZlY3RvcjxHcmFwaGljc0xh
eWVyKj4gY2hpbGRyZW4gPSBncmFwaGljc0xheWVyLT5jaGlsZHJlbigpOwotICAgICAgICBmb3Ig
KGludCBpID0gY2hpbGRyZW4uc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpIHsKLSAgICAgICAgICAg
IFRleHR1cmVNYXBwZXJMYXllciogbGF5ZXIgPSB0b1RleHR1cmVNYXBwZXJMYXllcihjaGlsZHJl
bltpXSk7Ci0gICAgICAgICAgICBpZiAoIWxheWVyKQotICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICAgICAgbGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSh0b0dyYXBoaWNzTGF5
ZXJUZXh0dXJlTWFwcGVyKGNoaWxkcmVuW2ldKSwgdGV4dHVyZU1hcHBlciwgb3B0aW9ucyk7Ci0g
ICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBmb3IgKGludCBpID0gbV9jaGlsZHJlbi5z
aXplKCkgLSAxOyBpID49IDA7IC0taSkKLSAgICAgICAgICAgIG1fY2hpbGRyZW5baV0tPmZsdXNo
Q29tcG9zaXRpbmdTdGF0ZSgwLCB0ZXh0dXJlTWFwcGVyLCBvcHRpb25zKTsKLSAgICB9Ci19Ci0K
IGJvb2wgVGV4dHVyZU1hcHBlckxheWVyOjppc0FuY2VzdG9yRml4ZWRUb1ZpZXdwb3J0KCkgY29u
c3QKIHsKICAgICBmb3IgKFRleHR1cmVNYXBwZXJMYXllciogcGFyZW50ID0gbV9wYXJlbnQ7IHBh
cmVudDsgcGFyZW50ID0gcGFyZW50LT5tX3BhcmVudCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5o
CmluZGV4IDI3YTc3ZjZmZWY4NjJjOGRhNjVlNWI0ODViYzZlNzg1ZGIwNjdjYTIuLmM1OTM0NDlm
MDg2NzJlYTE5YjQwZjhmNjNhMWZmNmZmM2FlMmZjZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVy
LmgKQEAgLTg3LDExICs4Nyw2IEBAIHB1YmxpYzoKICAgICAgICAgRmlsdGVyQ2hhbmdlID0gICAg
ICAgICAgICAgICgxTCA8PCAyMykKICAgICB9OwogCi0gICAgZW51bSBTeW5jT3B0aW9ucyB7Ci0g
ICAgICAgIFRyYXZlcnNlRGVzY2VuZGFudHMgPSAxLAotICAgICAgICBDb21wdXRhdGlvbnNPbmx5
ID0gMgotICAgIH07Ci0KICAgICBUZXh0dXJlTWFwcGVyTGF5ZXIoKQogICAgICAgICA6IG1fcGFy
ZW50KDApCiAgICAgICAgICwgbV9lZmZlY3RUYXJnZXQoMCkKQEAgLTEwNCw4ICs5OSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5UZXh0dXJlTWFwcGVyTGF5ZXIoKTsKIAogICAgIFRleHR1cmVN
YXBwZXIqIHRleHR1cmVNYXBwZXIoKSBjb25zdDsKLSAgICB2b2lkIGZsdXNoQ29tcG9zaXRpbmdT
dGF0ZShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciosIGludCBzeW5jT3B0aW9ucyA9IDApOwot
ICAgIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
KiwgVGV4dHVyZU1hcHBlciosIGludCBzeW5jT3B0aW9ucyA9IDApOworICAgIHZvaWQgZmx1c2hD
b21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
ciopOwogICAgIEludFNpemUgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIEludFNpemUobV9zaXplLndp
ZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSk7IH0KICAgICB2b2lkIHNldFRyYW5zZm9ybShjb25zdCBU
cmFuc2Zvcm1hdGlvbk1hdHJpeCYpOwogICAgIHZvaWQgc2V0T3BhY2l0eShmbG9hdCB2YWx1ZSkg
eyBtX29wYWNpdHkgPSB2YWx1ZTsgfQpAQCAtMTM2LDcgKzEzMCw3IEBAIHByaXZhdGU6CiAgICAg
RmxvYXRSZWN0IHRhcmdldFJlY3RGb3JUaWxlUmVjdChjb25zdCBGbG9hdFJlY3QmIHRvdGFsVGFy
Z2V0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCkgY29uc3Q7CiAgICAgdm9pZCBpbnZh
bGlkYXRlVmlld3BvcnQoY29uc3QgRmxvYXRSZWN0Jik7CiAgICAgdm9pZCBub3RpZnlDaGFuZ2Uo
Q2hhbmdlTWFzayk7Ci0gICAgdm9pZCBmbHVzaENvbXBvc2l0aW5nU3RhdGVTZWxmKEdyYXBoaWNz
TGF5ZXJUZXh0dXJlTWFwcGVyKiwgVGV4dHVyZU1hcHBlciopOworICAgIHZvaWQgZmx1c2hDb21w
b3NpdGluZ1N0YXRlU2VsZihHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciopOwogCiAgICAgc3Rh
dGljIGludCBjb21wYXJlR3JhcGhpY3NMYXllcnNaVmFsdWUoY29uc3Qgdm9pZCogYSwgY29uc3Qg
dm9pZCogYik7CiAgICAgc3RhdGljIHZvaWQgc29ydEJ5Wk9yZGVyKFZlY3RvcjxUZXh0dXJlTWFw
cGVyTGF5ZXIqID4mIGFycmF5LCBpbnQgZmlyc3QsIGludCBsYXN0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176200</attachid>
            <date>2012-11-27 01:49:27 -0800</date>
            <delta_ts>2012-11-27 17:50:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103366-20121127184704.patch</filename>
            <type>text/plain</type>
            <size>10877</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1ODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmNiNTU5NmQ0NzQyZmFl
Y2E2ZWNjMmViNGYxZWJkYzcyYjQ5ZTEwOC4uYjRhMjIzY2RkZDgwMGNkNDA0Y2M2NjYzMDFmMWJh
YTZkZGIzNGExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTExLTI3ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtUZXhNYXBd
IFJlZmFjdG9yIFRleHR1cmVNYXBwZXJMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlKCkuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMzNjYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIGxheWVy
LXRyZWUgdHJhdmVyc2UgZnJvbSBUZXh0dXJlTWFwcGVyTGF5ZSB0byBHcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlci4KKworICAgICAgICBJdCBpcyBiZWNhdXNlIG9mIHR3byByZWFzb25zLgorICAg
ICAgICAxLiBJdCBpcyBhIHBhcnQgb2YgaW1wbGVtZW50aW5nIGFjdG9yIG1vZGVsLiBBZnRlciBp
bXBsZW1lbnRpbmcgYWN0b3IgbW9kZWwsCisgICAgICAgIGVhY2ggR3JhcGhpY3NMYXllclRleHR1
cmVNYXBwZXIgbmVlZHMgdG8gc2VuZCBhIGxheWVyIHN0YXRlIG1lc3NhZ2UgdG8KKyAgICAgICAg
VGV4dHVyZU1hcHBlckxheWVyLiBJdCBtZWFucyB0aGUgb3V0c2lkZSBpbnN0YW5jZSBvZiBUZXh0
dXJlTWFwcGVyTGF5ZXIgc2hvdWxkCisgICAgICAgIHBlcmZvcm0gcmVjdXJzaXZlIHRyYXZlcnNl
LgorICAgICAgICAyLiBMYXllclRyZWVSZW5kZXJlciBuZWVkcyB0byBzeW5jcm9uaXplIGEgbGF5
ZXIgc3RhdGUgb2YgVGV4dHVyZU1hcHBlckxheWVyIHdoZW4KKyAgICAgICAgcmVjZWl2aW5nIHRo
ZSBTZXRDb21wb3NpdGluZ0xheWVyU3RhdGUgbWVzc2FnZS4gU2VlIEJ1ZyAxMDMxNzEuCisKKyAg
ICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXROZWVk
c0Rpc3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6
OnNldE5lZWRzRGlzcGxheUluUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6Zmx1c2hDb21wb3Np
dGluZ1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
OjpkaWRGbHVzaENvbXBvc2l0aW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXI6OnByZXBhcmVCYWNraW5nU3RvcmUpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oOgorICAgICAg
ICAoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dHVyZU1hcHBlckxheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KToK
KyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0
YXRlU2VsZik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJMYXllci5oOgorICAgICAgICAoVGV4dHVyZU1hcHBlckxheWVyKToKKwogMjAxMi0xMS0yNiAg
SHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBDb29y
ZGluYXRlZCBHcmFwaGljczogU2V0IHZpc2liaWxpdHkgdG8gYSBtYXNrIGxheWVyIGluIEdyYXBo
aWNzTGF5ZXI6OnNldENvbnRlbnRzVmlzaWJsZSgpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlci5jcHAKaW5kZXggMWRmOWJiMDc5NTlmMDU2ZjA3MTkyYmVkN2I4NTdhYjM3
MTViYzBlNy4uOTZlODc1OWNiYjE4MmZjYWZmNzllYzI1OWJjYjg0NmMwZTdkN2RhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5
ZXJUZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCkBAIC05MCw2ICs5MCw5IEBA
IHZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OndpbGxCZURlc3Ryb3llZCgpCiAqLwog
dm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0TmVlZHNEaXNwbGF5KCkKIHsKKyAg
ICBpZiAoIW1faGFzT3duQmFja2luZ1N0b3JlKQorICAgICAgICByZXR1cm47CisKICAgICBtX25l
ZWRzRGlzcGxheSA9IHRydWU7CiAgICAgbm90aWZ5Q2hhbmdlKFRleHR1cmVNYXBwZXJMYXllcjo6
RGlzcGxheUNoYW5nZSk7CiAgICAgYWRkUmVwYWludFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQo
KSwgbV9zaXplKSk7CkBAIC0xMDcsNiArMTEwLDkgQEAgdm9pZCBHcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlcjo6c2V0Q29udGVudHNOZWVkc0Rpc3BsYXkoKQogKi8KIHZvaWQgR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXI6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBGbG9hdFJlY3QmIHJl
Y3QpCiB7CisgICAgaWYgKCFtX2hhc093bkJhY2tpbmdTdG9yZSkKKyAgICAgICAgcmV0dXJuOwor
CiAgICAgaWYgKG1fbmVlZHNEaXNwbGF5KQogICAgICAgICByZXR1cm47CiAgICAgbV9uZWVkc0Rp
c3BsYXlSZWN0LnVuaXRlKHJlY3QpOwpAQCAtMzg4LDM1ICszOTQsMjggQEAgdm9pZCBHcmFwaGlj
c0xheWVyVGV4dHVyZU1hcHBlcjo6c2V0Q29udGVudHNUb01lZGlhKFRleHR1cmVNYXBwZXJQbGF0
Zm9ybUxheWVyKgogKi8KIHZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OmZsdXNoQ29t
cG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoKQogewotICAgIG1fbGF5ZXItPmZsdXNoQ29t
cG9zaXRpbmdTdGF0ZSh0aGlzKTsKKyAgICBtX2xheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGVG
b3JUaGlzTGF5ZXJPbmx5KHRoaXMpOworICAgIHVwZGF0ZUJhY2tpbmdTdG9yZSgpOwogICAgIGRp
ZEZsdXNoQ29tcG9zaXRpbmdTdGF0ZSgpOwogfQogCiAvKiBccmVpbXAgKEdyYXBoaWNzTGF5ZXIu
aCkKICovCi12b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpmbHVzaENvbXBvc2l0aW5n
U3RhdGUoY29uc3QgRmxvYXRSZWN0JikKK3ZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6
OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgbV9s
YXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHRoaXMsIFRleHR1cmVNYXBwZXJMYXllcjo6VHJh
dmVyc2VEZXNjZW5kYW50cyk7Ci0gICAgZGlkRmx1c2hDb21wb3NpdGluZ1N0YXRlUmVjdXJzaXZl
KCk7CisgICAgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpOworCisgICAg
aWYgKG1hc2tMYXllcigpKQorICAgICAgICB0b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKG1h
c2tMYXllcigpKS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHJlY3QpOworICAgIGlmIChyZXBsaWNh
TGF5ZXIoKSkKKyAgICAgICAgdG9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihyZXBsaWNhTGF5
ZXIoKSktPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShyZWN0KTsKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGNoaWxkcmVuKCkuc2l6ZSgpOyArK2kpCisgICAgICAgIHRvR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXIoY2hpbGRyZW4oKVtpXSktPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShyZWN0KTsK
IH0KIAogdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6ZGlkRmx1c2hDb21wb3NpdGlu
Z1N0YXRlKCkKIHsKLSAgICB1cGRhdGVCYWNraW5nU3RvcmUoKTsKICAgICBtX2NoYW5nZU1hc2sg
PSAwOwotICAgIG1fbmVlZHNEaXNwbGF5ID0gZmFsc2U7Ci0gICAgbV9uZWVkc0Rpc3BsYXlSZWN0
ID0gSW50UmVjdCgpOwotfQotCi12b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpkaWRG
bHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1cnNpdmUoKQotewotICAgIGRpZEZsdXNoQ29tcG9zaXRp
bmdTdGF0ZSgpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2hpbGRyZW4oKS5zaXplKCk7
ICsraSkKLSAgICAgICAgdG9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihjaGlsZHJlbigpW2ld
KS0+ZGlkRmx1c2hDb21wb3NpdGluZ1N0YXRlUmVjdXJzaXZlKCk7Ci0gICAgaWYgKG1hc2tMYXll
cigpKQotICAgICAgICB0b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKG1hc2tMYXllcigpKS0+
ZGlkRmx1c2hDb21wb3NpdGluZ1N0YXRlUmVjdXJzaXZlKCk7Ci0gICAgaWYgKHJlcGxpY2FMYXll
cigpKQotICAgICAgICB0b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKHJlcGxpY2FMYXllcigp
KS0+ZGlkRmx1c2hDb21wb3NpdGluZ1N0YXRlUmVjdXJzaXZlKCk7CiB9CiAKIHZvaWQgR3JhcGhp
Y3NMYXllclRleHR1cmVNYXBwZXI6OnVwZGF0ZUJhY2tpbmdTdG9yZSgpCkBAIC00MzAsNiArNDI5
LDEwIEBAIHZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnVwZGF0ZUJhY2tpbmdTdG9y
ZSgpCiAKIHZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnByZXBhcmVCYWNraW5nU3Rv
cmUoKQogeworICAgIFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIgPSBtX2xheWVyLT50ZXh0
dXJlTWFwcGVyKCk7CisgICAgaWYgKCF0ZXh0dXJlTWFwcGVyKQorICAgICAgICByZXR1cm47CisK
ICAgICBpZiAoIXNob3VsZEhhdmVCYWNraW5nU3RvcmUoKSkgewogICAgICAgICBtX2JhY2tpbmdT
dG9yZS5jbGVhcigpOwogICAgICAgICByZXR1cm47CkBAIC00NDEsOSArNDQ0LDYgQEAgdm9pZCBH
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6cHJlcGFyZUJhY2tpbmdTdG9yZSgpCiAgICAgaWYg
KGRpcnR5UmVjdC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFRleHR1cmVNYXBw
ZXIqIHRleHR1cmVNYXBwZXIgPSBtX2xheWVyLT50ZXh0dXJlTWFwcGVyKCk7Ci0gICAgQVNTRVJU
KHRleHR1cmVNYXBwZXIpOwotCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKICAgICAgICAgbV9i
YWNraW5nU3RvcmUgPSBUZXh0dXJlTWFwcGVyVGlsZWRCYWNraW5nU3RvcmU6OmNyZWF0ZSgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCmluZGV4IGFmNDk0MDk0MzVl
Yjk2M2I4NGY4ZTgxMGJiN2M0ZjIxOGMzNjFkNmUuLjc2N2JhZDIwMjYzMjMyNTk0MGViMjIxMjJi
M2VlYzk1ZjhlMWE5MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5o
CkBAIC0yOSw4ICsyOSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgVGV4dHVy
ZU1hcHBlcjsKLQogY2xhc3MgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIgOiBwdWJsaWMgR3Jh
cGhpY3NMYXllciB7CiAgICAgZnJpZW5kIGNsYXNzIFRleHR1cmVNYXBwZXJMYXllcjsKIApAQCAt
OTgsNyArOTYsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVE
ZXN0cm95ZWQoKTsKICAgICB2b2lkIGRpZEZsdXNoQ29tcG9zaXRpbmdTdGF0ZSgpOwotICAgIHZv
aWQgZGlkRmx1c2hDb21wb3NpdGluZ1N0YXRlUmVjdXJzaXZlKCk7CiAgICAgdm9pZCB1cGRhdGVC
YWNraW5nU3RvcmUoKTsKICAgICB2b2lkIHByZXBhcmVCYWNraW5nU3RvcmUoKTsKICAgICBib29s
IHNob3VsZEhhdmVCYWNraW5nU3RvcmUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5j
cHAKaW5kZXggZDJhMTBhYTY2ZWQxMzM3ZWJjY2U3NGU1ZGE0ZjhiOWQzMTZhOGJmMC4uYTJiOTM0
Y2NjZGM3YzhkYjllYTcwODYyNWJkNDlkMDRmODE5Yjk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJM
YXllci5jcHAKQEAgLTM1MiwxMiArMzUyLDE0IEBAIFRleHR1cmVNYXBwZXIqIFRleHR1cmVNYXBw
ZXJMYXllcjo6dGV4dHVyZU1hcHBlcigpIGNvbnN0CiAgICAgcmV0dXJuIHJvb3RMYXllcigpLT5t
X3RleHR1cmVNYXBwZXI7CiB9CiAKLXZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpmbHVzaENvbXBv
c2l0aW5nU3RhdGUoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqIGdyYXBoaWNzTGF5ZXIsIGlu
dCBvcHRpb25zKQordm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0
ZUZvclRoaXNMYXllck9ubHkoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqIGdyYXBoaWNzTGF5
ZXIpCiB7Ci0gICAgZmx1c2hDb21wb3NpdGluZ1N0YXRlKGdyYXBoaWNzTGF5ZXIsIHRleHR1cmVN
YXBwZXIoKSwgb3B0aW9ucyk7CisgICAgQVNTRVJUKGdyYXBoaWNzTGF5ZXIpOworICAgIGZsdXNo
Q29tcG9zaXRpbmdTdGF0ZVNlbGYoZ3JhcGhpY3NMYXllcik7CisgICAgc3luY0FuaW1hdGlvbnMo
KTsKIH0KIAotdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZVNl
bGYoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqIGdyYXBoaWNzTGF5ZXIsIFRleHR1cmVNYXBw
ZXIqKQordm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZVNlbGYo
R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqIGdyYXBoaWNzTGF5ZXIpCiB7CiAgICAgaW50IGNo
YW5nZU1hc2sgPSBncmFwaGljc0xheWVyLT5jaGFuZ2VNYXNrKCk7CiAKQEAgLTQ3NiwzOSArNDc4
LDYgQEAgdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OnN5bmNBbmltYXRpb25zKCkKICNlbmRpZgog
fQogCi12b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlKEdyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiBncmFwaGljc0xheWVyLCBUZXh0dXJlTWFwcGVyKiB0ZXh0
dXJlTWFwcGVyLCBpbnQgb3B0aW9ucykKLXsKLSAgICBpZiAoIXRleHR1cmVNYXBwZXIpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGlmIChncmFwaGljc0xheWVyICYmICEob3B0aW9ucyAmIENvbXB1
dGF0aW9uc09ubHkpKQotICAgICAgICBmbHVzaENvbXBvc2l0aW5nU3RhdGVTZWxmKGdyYXBoaWNz
TGF5ZXIsIHRleHR1cmVNYXBwZXIpOwotCi0gICAgaWYgKGdyYXBoaWNzTGF5ZXIgJiYgbV9zdGF0
ZS5tYXNrTGF5ZXIpCi0gICAgICAgIG1fc3RhdGUubWFza0xheWVyLT5mbHVzaENvbXBvc2l0aW5n
U3RhdGUodG9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihncmFwaGljc0xheWVyLT5tYXNrTGF5
ZXIoKSksIHRleHR1cmVNYXBwZXIpOwotCi0gICAgaWYgKG1fc3RhdGUucmVwbGljYUxheWVyKQot
ICAgICAgICBtX3N0YXRlLnJlcGxpY2FMYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHRvR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIoZ3JhcGhpY3NMYXllci0+cmVwbGljYUxheWVyKCkpLCB0
ZXh0dXJlTWFwcGVyKTsKLQotICAgIHN5bmNBbmltYXRpb25zKCk7Ci0KLSAgICBpZiAoIShvcHRp
b25zICYgVHJhdmVyc2VEZXNjZW5kYW50cykpCi0gICAgICAgIG9wdGlvbnMgPSBDb21wdXRhdGlv
bnNPbmx5OwotCi0gICAgaWYgKGdyYXBoaWNzTGF5ZXIpIHsKLSAgICAgICAgVmVjdG9yPEdyYXBo
aWNzTGF5ZXIqPiBjaGlsZHJlbiA9IGdyYXBoaWNzTGF5ZXItPmNoaWxkcmVuKCk7Ci0gICAgICAg
IGZvciAoaW50IGkgPSBjaGlsZHJlbi5zaXplKCkgLSAxOyBpID49IDA7IC0taSkgewotICAgICAg
ICAgICAgVGV4dHVyZU1hcHBlckxheWVyKiBsYXllciA9IHRvVGV4dHVyZU1hcHBlckxheWVyKGNo
aWxkcmVuW2ldKTsKLSAgICAgICAgICAgIGlmICghbGF5ZXIpCi0gICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICBsYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHRvR3JhcGhp
Y3NMYXllclRleHR1cmVNYXBwZXIoY2hpbGRyZW5baV0pLCB0ZXh0dXJlTWFwcGVyLCBvcHRpb25z
KTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIGZvciAoaW50IGkgPSBtX2NoaWxk
cmVuLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKQotICAgICAgICAgICAgbV9jaGlsZHJlbltpXS0+
Zmx1c2hDb21wb3NpdGluZ1N0YXRlKDAsIHRleHR1cmVNYXBwZXIsIG9wdGlvbnMpOwotICAgIH0K
LX0KLQogYm9vbCBUZXh0dXJlTWFwcGVyTGF5ZXI6OmlzQW5jZXN0b3JGaXhlZFRvVmlld3BvcnQo
KSBjb25zdAogewogICAgIGZvciAoVGV4dHVyZU1hcHBlckxheWVyKiBwYXJlbnQgPSBtX3BhcmVu
dDsgcGFyZW50OyBwYXJlbnQgPSBwYXJlbnQtPm1fcGFyZW50KSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxh
eWVyLmgKaW5kZXggMjdhNzdmNmZlZjg2MmM4ZGE2NWU1YjQ4NWJjNmU3ODVkYjA2N2NhMi4uYzU5
MzQ0OWYwODY3MmVhMTliNDBmOGY2M2ExZmY2ZmYzYWUyZmNkNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
TGF5ZXIuaApAQCAtODcsMTEgKzg3LDYgQEAgcHVibGljOgogICAgICAgICBGaWx0ZXJDaGFuZ2Ug
PSAgICAgICAgICAgICAgKDFMIDw8IDIzKQogICAgIH07CiAKLSAgICBlbnVtIFN5bmNPcHRpb25z
IHsKLSAgICAgICAgVHJhdmVyc2VEZXNjZW5kYW50cyA9IDEsCi0gICAgICAgIENvbXB1dGF0aW9u
c09ubHkgPSAyCi0gICAgfTsKLQogICAgIFRleHR1cmVNYXBwZXJMYXllcigpCiAgICAgICAgIDog
bV9wYXJlbnQoMCkKICAgICAgICAgLCBtX2VmZmVjdFRhcmdldCgwKQpAQCAtMTA0LDggKzk5LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgflRleHR1cmVNYXBwZXJMYXllcigpOwogCiAgICAgVGV4
dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlcigpIGNvbnN0OwotICAgIHZvaWQgZmx1c2hDb21wb3Np
dGluZ1N0YXRlKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiwgaW50IHN5bmNPcHRpb25zID0g
MCk7Ci0gICAgdm9pZCBmbHVzaENvbXBvc2l0aW5nU3RhdGUoR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXIqLCBUZXh0dXJlTWFwcGVyKiwgaW50IHN5bmNPcHRpb25zID0gMCk7CisgICAgdm9pZCBm
bHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KEdyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyKik7CiAgICAgSW50U2l6ZSBzaXplKCkgY29uc3QgeyByZXR1cm4gSW50U2l6ZShtX3Np
emUud2lkdGgoKSwgbV9zaXplLmhlaWdodCgpKTsgfQogICAgIHZvaWQgc2V0VHJhbnNmb3JtKGNv
bnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4Jik7CiAgICAgdm9pZCBzZXRPcGFjaXR5KGZsb2F0IHZh
bHVlKSB7IG1fb3BhY2l0eSA9IHZhbHVlOyB9CkBAIC0xMzYsNyArMTMwLDcgQEAgcHJpdmF0ZToK
ICAgICBGbG9hdFJlY3QgdGFyZ2V0UmVjdEZvclRpbGVSZWN0KGNvbnN0IEZsb2F0UmVjdCYgdG90
YWxUYXJnZXRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0KSBjb25zdDsKICAgICB2b2lk
IGludmFsaWRhdGVWaWV3cG9ydChjb25zdCBGbG9hdFJlY3QmKTsKICAgICB2b2lkIG5vdGlmeUNo
YW5nZShDaGFuZ2VNYXNrKTsKLSAgICB2b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZVNlbGYoR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIqLCBUZXh0dXJlTWFwcGVyKik7CisgICAgdm9pZCBmbHVz
aENvbXBvc2l0aW5nU3RhdGVTZWxmKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKik7CiAKICAg
ICBzdGF0aWMgaW50IGNvbXBhcmVHcmFwaGljc0xheWVyc1pWYWx1ZShjb25zdCB2b2lkKiBhLCBj
b25zdCB2b2lkKiBiKTsKICAgICBzdGF0aWMgdm9pZCBzb3J0QnlaT3JkZXIoVmVjdG9yPFRleHR1
cmVNYXBwZXJMYXllciogPiYgYXJyYXksIGludCBmaXJzdCwgaW50IGxhc3QpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178471</attachid>
            <date>2012-12-09 22:08:45 -0800</date>
            <delta_ts>2012-12-09 23:16:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103366-20121210150553.patch</filename>
            <type>text/plain</type>
            <size>9421</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ1NTI3MjAxNTEyYjdl
Nzk0MmUwODllOGI2MDRhOThiOWQ1YzgzYy4uZjIzNjk2YTUyNTBkYTZiZDc3YTIwMTI5OWM2ZTYx
OTQ1NGZiYjVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTEyLTA5ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtUZXhNYXBd
IE1vdmUgbGF5ZXIgdHJlZSB0cmF2ZXJzYWwgZnJvbSBUZXh0dXJlTWFwcGVyTGF5ZXIgdG8gR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDMzNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICB1cnJlbnRseSwgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyIHBlcmZv
cm1zIGxheWVyIHRyZWUgdHJhdmVyc2FsIGJ5CisgICAgICAgIGl0c2VsZiwgYnV0IEdyYXBoaWNz
TGF5ZXJUZXh0dXJlTWFwcGVyIGRlbGVnYXRlcyB0aGUgdHJlZSB0cmF2ZXJzYWwgdG8KKyAgICAg
ICAgVGV4dHVyZU1hcHBlckxheWVyLiBUaGlzIHBhdGNoIGRlY2lkZXMgdGhlIHRyZWUgdHJhdmVy
c2FsIGlzIHRoZSByb2xlIG9mCisgICAgICAgIEdyYXBoaWNzTGF5ZXIuCisKKyAgICAgICAgVGhp
cyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgcmVmYWN0b3JpbmcgVGV4dHVyZU1hcHBlciB0byB3b3Jr
IGluIGFuIGFjdG9yCisgICAgICAgIG1vZGVsIChodHRwOi8vd2Via2l0Lm9yZy9iLzEwMzg1NCku
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpm
bHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OmZsdXNoQ29tcG9zaXRp
bmdTdGF0ZVJlY3Vyc2l2ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlcjo6ZGlkRmx1c2hDb21wb3NpdGluZ1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnVwZGF0ZUJhY2tp
bmdTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6
cHJlcGFyZUJhY2tpbmdTdG9yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmg6CisgICAgICAgIChHcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlcik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVN
YXBwZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OmZs
dXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkpOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dHVyZU1hcHBlckxheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGVTZWxmKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmg6CisgICAgICAg
IChUZXh0dXJlTWFwcGVyTGF5ZXIpOgorCiAyMDEyLTEyLTA5ICBLb25kYXBhbGx5IEthbHlhbiAg
PGthbHlhbi5rb25kYXBhbGx5QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBbV2ViR0xdIFBh
dGggaXMgbm90IHJlc2l6ZWQgY29ycmVjdGx5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlci5jcHAKaW5kZXggN2E0OWQ3MTljMDcxMDJkOTUwZDUwYzI5YjJkNDhmNzExMmIx
NDNjOS4uOTZkMDU0ODkzYTU0ODdhYmIxY2UxZDY0ZDliMGIxNWEyOThlNmE0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCkBAIC00MDUsMzUgKzQwNSwzMCBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvTWVkaWEoVGV4
dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIqCiAqLwogdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1h
cHBlcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpCiB7Ci0gICAgbV9s
YXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHRoaXMpOworICAgIG1fbGF5ZXItPmZsdXNoQ29t
cG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkodGhpcyk7CisgICAgdXBkYXRlQmFja2luZ1N0
b3JlKCk7CiAgICAgZGlkRmx1c2hDb21wb3NpdGluZ1N0YXRlKCk7CiB9CiAKIC8qIFxyZWltcCAo
R3JhcGhpY3NMYXllci5oKQogKi8KLXZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OmZs
dXNoQ29tcG9zaXRpbmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmKQordm9pZCBHcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCkKIHsKLSAgICBtX2xheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUodGhpcywgVGV4dHVyZU1h
cHBlckxheWVyOjpUcmF2ZXJzZURlc2NlbmRhbnRzKTsKLSAgICBkaWRGbHVzaENvbXBvc2l0aW5n
U3RhdGVSZWN1cnNpdmUoKTsKKyAgICBmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJP
bmx5KCk7CisKKyAgICBpZiAobWFza0xheWVyKCkpCisgICAgICAgIHRvR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXIobWFza0xheWVyKCkpLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUocmVjdCk7Cisg
ICAgaWYgKHJlcGxpY2FMYXllcigpKQorICAgICAgICB0b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyKHJlcGxpY2FMYXllcigpKS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHJlY3QpOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgY2hpbGRyZW4oKS5zaXplKCk7ICsraSkKKyAgICAgICAgdG9H
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihjaGlsZHJlbigpW2ldKS0+Zmx1c2hDb21wb3NpdGlu
Z1N0YXRlKHJlY3QpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpkaWRG
bHVzaENvbXBvc2l0aW5nU3RhdGUoKQogewotICAgIHVwZGF0ZUJhY2tpbmdTdG9yZSgpOwogICAg
IG1fY2hhbmdlTWFzayA9IDA7CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6
OmRpZEZsdXNoQ29tcG9zaXRpbmdTdGF0ZVJlY3Vyc2l2ZSgpCi17Ci0gICAgZGlkRmx1c2hDb21w
b3NpdGluZ1N0YXRlKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZHJlbigpLnNp
emUoKTsgKytpKQotICAgICAgICB0b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKGNoaWxkcmVu
KClbaV0pLT5kaWRGbHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1cnNpdmUoKTsKLSAgICBpZiAobWFz
a0xheWVyKCkpCi0gICAgICAgIHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIobWFza0xheWVy
KCkpLT5kaWRGbHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1cnNpdmUoKTsKLSAgICBpZiAocmVwbGlj
YUxheWVyKCkpCi0gICAgICAgIHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIocmVwbGljYUxh
eWVyKCkpLT5kaWRGbHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1cnNpdmUoKTsKLX0KLQogdm9pZCBH
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6dXBkYXRlQmFja2luZ1N0b3JlKCkKIHsKICAgICBp
ZiAoIW1faGFzT3duQmFja2luZ1N0b3JlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXIuaAppbmRleCA0MzJkNmM2YjYwMWM0NWQzZWNmNDMxZTBmZWQ3NDY4ZDEyM2JiNjc5Li5j
Y2JiMDhmYWY3OTMzMGQzOTEwODM4ODUxZmE1OGVlODA2ODIyNzM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIuaApAQCAtMjksOCArMjksNiBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIFRleHR1cmVNYXBwZXI7Ci0KIGNsYXNzIEdyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyIDogcHVibGljIEdyYXBoaWNzTGF5ZXIgewogICAgIGZyaWVuZCBjbGFzcyBU
ZXh0dXJlTWFwcGVyTGF5ZXI7CiAKQEAgLTEwMCw3ICs5OCw2IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwogICAgIHZvaWQgZGlkRmx1c2hD
b21wb3NpdGluZ1N0YXRlKCk7Ci0gICAgdm9pZCBkaWRGbHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1
cnNpdmUoKTsKICAgICB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZSgpOwogICAgIHZvaWQgcHJlcGFy
ZUJhY2tpbmdTdG9yZSgpOwogICAgIGJvb2wgc2hvdWxkSGF2ZUJhY2tpbmdTdG9yZSgpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAppbmRleCA0YTQ1YzRhYzQ3NWI1NDhlMzZkMGY1
N2FjOGUwZTg2OWEyYzU2YTBhLi5hNzU4NjAwOTg1MzU0MDIwOGRlMGIzMWRkYjU0NTU4ODY1NjQ2
MjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAtMzYwLDEyICszNjAsMTQgQEAg
VGV4dHVyZU1hcHBlciogVGV4dHVyZU1hcHBlckxheWVyOjp0ZXh0dXJlTWFwcGVyKCkgY29uc3QK
ICAgICByZXR1cm4gcm9vdExheWVyKCktPm1fdGV4dHVyZU1hcHBlcjsKIH0KIAotdm9pZCBUZXh0
dXJlTWFwcGVyTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShHcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlciogZ3JhcGhpY3NMYXllciwgaW50IG9wdGlvbnMpCit2b2lkIFRleHR1cmVNYXBwZXJM
YXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seShHcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlciogZ3JhcGhpY3NMYXllcikKIHsKLSAgICBmbHVzaENvbXBvc2l0aW5nU3Rh
dGUoZ3JhcGhpY3NMYXllciwgdGV4dHVyZU1hcHBlcigpLCBvcHRpb25zKTsKKyAgICBBU1NFUlQo
Z3JhcGhpY3NMYXllcik7CisgICAgZmx1c2hDb21wb3NpdGluZ1N0YXRlU2VsZihncmFwaGljc0xh
eWVyKTsKKyAgICBzeW5jQW5pbWF0aW9ucygpOwogfQogCi12b2lkIFRleHR1cmVNYXBwZXJMYXll
cjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlU2VsZihHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciog
Z3JhcGhpY3NMYXllciwgVGV4dHVyZU1hcHBlciopCit2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6
Zmx1c2hDb21wb3NpdGluZ1N0YXRlU2VsZihHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciogZ3Jh
cGhpY3NMYXllcikKIHsKICAgICBpbnQgY2hhbmdlTWFzayA9IGdyYXBoaWNzTGF5ZXItPmNoYW5n
ZU1hc2soKTsKIApAQCAtNDg1LDM5ICs0ODcsNiBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6
c3luY0FuaW1hdGlvbnMoKQogI2VuZGlmCiB9CiAKLXZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpm
bHVzaENvbXBvc2l0aW5nU3RhdGUoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqIGdyYXBoaWNz
TGF5ZXIsIFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGludCBvcHRpb25zKQotewotICAg
IGlmICghdGV4dHVyZU1hcHBlcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGdyYXBoaWNz
TGF5ZXIgJiYgIShvcHRpb25zICYgQ29tcHV0YXRpb25zT25seSkpCi0gICAgICAgIGZsdXNoQ29t
cG9zaXRpbmdTdGF0ZVNlbGYoZ3JhcGhpY3NMYXllciwgdGV4dHVyZU1hcHBlcik7Ci0KLSAgICBp
ZiAoZ3JhcGhpY3NMYXllciAmJiBtX3N0YXRlLm1hc2tMYXllcikKLSAgICAgICAgbV9zdGF0ZS5t
YXNrTGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSh0b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyKGdyYXBoaWNzTGF5ZXItPm1hc2tMYXllcigpKSwgdGV4dHVyZU1hcHBlcik7Ci0KLSAgICBp
ZiAobV9zdGF0ZS5yZXBsaWNhTGF5ZXIpCi0gICAgICAgIG1fc3RhdGUucmVwbGljYUxheWVyLT5m
bHVzaENvbXBvc2l0aW5nU3RhdGUodG9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihncmFwaGlj
c0xheWVyLT5yZXBsaWNhTGF5ZXIoKSksIHRleHR1cmVNYXBwZXIpOwotCi0gICAgc3luY0FuaW1h
dGlvbnMoKTsKLQotICAgIGlmICghKG9wdGlvbnMgJiBUcmF2ZXJzZURlc2NlbmRhbnRzKSkKLSAg
ICAgICAgb3B0aW9ucyA9IENvbXB1dGF0aW9uc09ubHk7Ci0KLSAgICBpZiAoZ3JhcGhpY3NMYXll
cikgewotICAgICAgICBWZWN0b3I8R3JhcGhpY3NMYXllcio+IGNoaWxkcmVuID0gZ3JhcGhpY3NM
YXllci0+Y2hpbGRyZW4oKTsKLSAgICAgICAgZm9yIChpbnQgaSA9IGNoaWxkcmVuLnNpemUoKSAt
IDE7IGkgPj0gMDsgLS1pKSB7Ci0gICAgICAgICAgICBUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVy
ID0gdG9UZXh0dXJlTWFwcGVyTGF5ZXIoY2hpbGRyZW5baV0pOwotICAgICAgICAgICAgaWYgKCFs
YXllcikKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGxheWVyLT5mbHVz
aENvbXBvc2l0aW5nU3RhdGUodG9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihjaGlsZHJlbltp
XSksIHRleHR1cmVNYXBwZXIsIG9wdGlvbnMpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgZm9yIChpbnQgaSA9IG1fY2hpbGRyZW4uc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpCi0g
ICAgICAgICAgICBtX2NoaWxkcmVuW2ldLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUoMCwgdGV4dHVy
ZU1hcHBlciwgb3B0aW9ucyk7Ci0gICAgfQotfQotCiBib29sIFRleHR1cmVNYXBwZXJMYXllcjo6
aXNBbmNlc3RvckZpeGVkVG9WaWV3cG9ydCgpIGNvbnN0CiB7CiAgICAgZm9yIChUZXh0dXJlTWFw
cGVyTGF5ZXIqIHBhcmVudCA9IG1fcGFyZW50OyBwYXJlbnQ7IHBhcmVudCA9IHBhcmVudC0+bV9w
YXJlbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Rl
eG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaAppbmRleCAyMTYxZDUzOWYzZDMyZjJiMmZm
NmE5YjBiNGM1NmY5MjE1NGEyNjgyLi5kZjZmOGViYWM4YjYwOGZlNjQ2YzBhMzNkY2NjYjc0YjM3
YjY4MTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oCkBAIC04NywxMSArODcsNiBAQCBwdWJs
aWM6CiAgICAgICAgIEZpbHRlckNoYW5nZSA9ICAgICAgICAgICAgICAoMUwgPDwgMjMpCiAgICAg
fTsKIAotICAgIGVudW0gU3luY09wdGlvbnMgewotICAgICAgICBUcmF2ZXJzZURlc2NlbmRhbnRz
ID0gMSwKLSAgICAgICAgQ29tcHV0YXRpb25zT25seSA9IDIKLSAgICB9OwotCiAgICAgVGV4dHVy
ZU1hcHBlckxheWVyKCkKICAgICAgICAgOiBtX3BhcmVudCgwKQogICAgICAgICAsIG1fZWZmZWN0
VGFyZ2V0KDApCkBAIC0xMDQsOCArOTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+VGV4dHVy
ZU1hcHBlckxheWVyKCk7CiAKICAgICBUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyKCkgY29u
c3Q7Ci0gICAgdm9pZCBmbHVzaENvbXBvc2l0aW5nU3RhdGUoR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXIqLCBpbnQgc3luY09wdGlvbnMgPSAwKTsKLSAgICB2b2lkIGZsdXNoQ29tcG9zaXRpbmdT
dGF0ZShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciosIFRleHR1cmVNYXBwZXIqLCBpbnQgc3lu
Y09wdGlvbnMgPSAwKTsKKyAgICB2b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXll
ck9ubHkoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqKTsKICAgICBJbnRTaXplIHNpemUoKSBj
b25zdCB7IHJldHVybiBJbnRTaXplKG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpOyB9
CiAgICAgdm9pZCBzZXRUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKICAg
ICB2b2lkIHNldE9wYWNpdHkoZmxvYXQgdmFsdWUpIHsgbV9vcGFjaXR5ID0gdmFsdWU7IH0KQEAg
LTEzNiw3ICsxMzAsNyBAQCBwcml2YXRlOgogICAgIEZsb2F0UmVjdCB0YXJnZXRSZWN0Rm9yVGls
ZVJlY3QoY29uc3QgRmxvYXRSZWN0JiB0b3RhbFRhcmdldFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYg
dGlsZVJlY3QpIGNvbnN0OwogICAgIHZvaWQgaW52YWxpZGF0ZVZpZXdwb3J0KGNvbnN0IEZsb2F0
UmVjdCYpOwogICAgIHZvaWQgbm90aWZ5Q2hhbmdlKENoYW5nZU1hc2spOwotICAgIHZvaWQgZmx1
c2hDb21wb3NpdGluZ1N0YXRlU2VsZihHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciosIFRleHR1
cmVNYXBwZXIqKTsKKyAgICB2b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZVNlbGYoR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXIqKTsKIAogICAgIHN0YXRpYyBpbnQgY29tcGFyZUdyYXBoaWNzTGF5
ZXJzWlZhbHVlKGNvbnN0IHZvaWQqIGEsIGNvbnN0IHZvaWQqIGIpOwogICAgIHN0YXRpYyB2b2lk
IHNvcnRCeVpPcmRlcihWZWN0b3I8VGV4dHVyZU1hcHBlckxheWVyKiA+JiBhcnJheSwgaW50IGZp
cnN0LCBpbnQgbGFzdCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178479</attachid>
            <date>2012-12-09 23:16:24 -0800</date>
            <delta_ts>2012-12-11 00:28:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103366-20121210161332.patch</filename>
            <type>text/plain</type>
            <size>9829</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MDk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjQ1NTI3MjAxNTEyYjdl
Nzk0MmUwODllOGI2MDRhOThiOWQ1YzgzYy4uMDUwMWI0ODY4YjkyMzBiZWI1NzM5MjQ5ZjY1MjI5
YWE3M2NlZWY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTEyLTA5ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtUZXhNYXBd
IFBlcmZvcm0gdGhlIGxheWVyLXRyZWUgdHJhdmVyc2FsIGluIEdyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAzMzY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q3VycmVudGx5LCBUZXh0dXJlIE1hcHBlciBwZXJmb3JtcyB0aGUgbGF5ZXItdHJlZSB0cmF2ZXJz
YWwgaW4KKyAgICAgICAgVGV4dHVyZU1hcHBlckxheWVyLCB3aGlsZSBDb29yZGluYXRlZCBHcmFw
aGljcyBwZXJmb3JtcyB0aGUgdHJhdmVyc2FsIGluCisgICAgICAgIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci4gVGhpcyBwYXRjaCBtYWtlcyBUZXh0dXJlIE1hcHBlciBwZXJmb3JtIHRoZQorICAg
ICAgICB0cmF2ZXJzYWwgaW4gR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuCisKKyAgICAgICAg
SW4gYWRkaXRpb24sIHRoaXMgcGF0Y2ggcmVtb3ZlcyBTeW5jT3B0aW9ucyBlbnVtLiBDdXJyZW50
bHksIHdoZW4gdXNpbmcKKyAgICAgICAgQ29tcHV0YXRpb25zT25seSwgdGhlIGxheWVyLXRyZWUg
dHJhdmVyc2FsIHN5bmNocm9uaXplcyBvbmx5IGFuaW1hdGlvbnMKKyAgICAgICAgd2l0aG91dCBs
YXllciBzdGF0ZXMuIEhvd2V2ZXIsIHRoZXJlIGlzIG5vIGNsaWVudCB0aGF0IGNhbGxzCisgICAg
ICAgIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZSgpIGZvciB0aGUgcHVycG9zZS4gRXZlbiB3ZSBhbHJl
YWR5IGhhdmUgdGhlIEFQSQorICAgICAgICBmb3IgdGhlIHB1cnBvc2U6IGFwcGx5QW5pbWF0aW9u
c1JlY3Vyc2l2ZWx5KCkuIFNvIGZyb20gbm93IG9uLCB3ZSBoYXZlCisgICAgICAgIG9ubHkgZmx1
c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpIEFQSSBpbiBUZXh0dXJlTWFwcGVy
TGF5ZXIKKyAgICAgICAgZm9yIGJyZXZpdHkuCisKKyAgICAgICAgVGhpcyBpcyBpbiBwcmVwYXJh
dGlvbiBmb3IgcmVmYWN0b3JpbmcgVGV4dHVyZU1hcHBlciB0byB3b3JrIGluIGFuIGFjdG9yCisg
ICAgICAgIG1vZGVsIChodHRwOi8vd2Via2l0Lm9yZy9iLzEwMzg1NCkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpmbHVzaENvbXBvc2l0aW5n
U3RhdGVGb3JUaGlzTGF5ZXJPbmx5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZVJlY3Vyc2l2
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6ZGlkRmx1
c2hDb21wb3NpdGluZ1N0YXRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnVwZGF0ZUJhY2tpbmdTdG9yZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6cHJlcGFyZUJhY2tpbmdT
dG9yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyLmg6CisgICAgICAgIChHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdT
dGF0ZUZvclRoaXNMYXllck9ubHkpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxh
eWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGVTZWxmKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmg6CisgICAgICAgIChUZXh0dXJlTWFwcGVy
TGF5ZXIpOgorCiAyMDEyLTEyLTA5ICBLb25kYXBhbGx5IEthbHlhbiAgPGthbHlhbi5rb25kYXBh
bGx5QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBbV2ViR0xdIFBhdGggaXMgbm90IHJlc2l6
ZWQgY29ycmVjdGx5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAK
aW5kZXggN2E0OWQ3MTljMDcxMDJkOTUwZDUwYzI5YjJkNDhmNzExMmIxNDNjOS4uNWQ4MTE3Yjkx
NjM0YzUyZTkwYzUxYjg2OWJkMTk1ZWRmZTFjNGJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXIuY3BwCkBAIC00MDUsMzUgKzQwNSwzMCBAQCB2b2lkIEdyYXBoaWNz
TGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvTWVkaWEoVGV4dHVyZU1hcHBlclBsYXRm
b3JtTGF5ZXIqCiAqLwogdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6Zmx1c2hDb21w
b3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpCiB7Ci0gICAgbV9sYXllci0+Zmx1c2hDb21w
b3NpdGluZ1N0YXRlKHRoaXMpOworICAgIG1fbGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZv
clRoaXNMYXllck9ubHkodGhpcyk7CisgICAgdXBkYXRlQmFja2luZ1N0b3JlKCk7CiAgICAgZGlk
Rmx1c2hDb21wb3NpdGluZ1N0YXRlKCk7CiB9CiAKIC8qIFxyZWltcCAoR3JhcGhpY3NMYXllci5o
KQogKi8KLXZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OmZsdXNoQ29tcG9zaXRpbmdT
dGF0ZShjb25zdCBGbG9hdFJlY3QmKQordm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6
Zmx1c2hDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBtX2xh
eWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUodGhpcywgVGV4dHVyZU1hcHBlckxheWVyOjpUcmF2
ZXJzZURlc2NlbmRhbnRzKTsKLSAgICBkaWRGbHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1cnNpdmUo
KTsKKyAgICBmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CisKKyAgICBp
ZiAobWFza0xheWVyKCkpCisgICAgICAgIG1hc2tMYXllcigpLT5mbHVzaENvbXBvc2l0aW5nU3Rh
dGUocmVjdCk7CisgICAgaWYgKHJlcGxpY2FMYXllcigpKQorICAgICAgICByZXBsaWNhTGF5ZXIo
KS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHJlY3QpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgY2hpbGRyZW4oKS5zaXplKCk7ICsraSkKKyAgICAgICAgY2hpbGRyZW4oKVtpXS0+Zmx1c2hD
b21wb3NpdGluZ1N0YXRlKHJlY3QpOwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyOjpkaWRGbHVzaENvbXBvc2l0aW5nU3RhdGUoKQogewotICAgIHVwZGF0ZUJhY2tpbmdTdG9y
ZSgpOwogICAgIG1fY2hhbmdlTWFzayA9IDA7CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllclRleHR1
cmVNYXBwZXI6OmRpZEZsdXNoQ29tcG9zaXRpbmdTdGF0ZVJlY3Vyc2l2ZSgpCi17Ci0gICAgZGlk
Rmx1c2hDb21wb3NpdGluZ1N0YXRlKCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGls
ZHJlbigpLnNpemUoKTsgKytpKQotICAgICAgICB0b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
KGNoaWxkcmVuKClbaV0pLT5kaWRGbHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1cnNpdmUoKTsKLSAg
ICBpZiAobWFza0xheWVyKCkpCi0gICAgICAgIHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIo
bWFza0xheWVyKCkpLT5kaWRGbHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1cnNpdmUoKTsKLSAgICBp
ZiAocmVwbGljYUxheWVyKCkpCi0gICAgICAgIHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIo
cmVwbGljYUxheWVyKCkpLT5kaWRGbHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1cnNpdmUoKTsKLX0K
LQogdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6dXBkYXRlQmFja2luZ1N0b3JlKCkK
IHsKICAgICBpZiAoIW1faGFzT3duQmFja2luZ1N0b3JlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXIuaAppbmRleCA0MzJkNmM2YjYwMWM0NWQzZWNmNDMxZTBmZWQ3NDY4ZDEy
M2JiNjc5Li5jY2JiMDhmYWY3OTMzMGQzOTEwODM4ODUxZmE1OGVlODA2ODIyNzM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaApAQCAtMjksOCArMjksNiBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFRleHR1cmVNYXBwZXI7Ci0KIGNsYXNzIEdyYXBo
aWNzTGF5ZXJUZXh0dXJlTWFwcGVyIDogcHVibGljIEdyYXBoaWNzTGF5ZXIgewogICAgIGZyaWVu
ZCBjbGFzcyBUZXh0dXJlTWFwcGVyTGF5ZXI7CiAKQEAgLTEwMCw3ICs5OCw2IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwogICAgIHZvaWQg
ZGlkRmx1c2hDb21wb3NpdGluZ1N0YXRlKCk7Ci0gICAgdm9pZCBkaWRGbHVzaENvbXBvc2l0aW5n
U3RhdGVSZWN1cnNpdmUoKTsKICAgICB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZSgpOwogICAgIHZv
aWQgcHJlcGFyZUJhY2tpbmdTdG9yZSgpOwogICAgIGJvb2wgc2hvdWxkSGF2ZUJhY2tpbmdTdG9y
ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAppbmRleCA0YTQ1YzRhYzQ3NWI1
NDhlMzZkMGY1N2FjOGUwZTg2OWEyYzU2YTBhLi5hNzU4NjAwOTg1MzU0MDIwOGRlMGIzMWRkYjU0
NTU4ODY1NjQ2MjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAtMzYwLDEyICsz
NjAsMTQgQEAgVGV4dHVyZU1hcHBlciogVGV4dHVyZU1hcHBlckxheWVyOjp0ZXh0dXJlTWFwcGVy
KCkgY29uc3QKICAgICByZXR1cm4gcm9vdExheWVyKCktPm1fdGV4dHVyZU1hcHBlcjsKIH0KIAot
dm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShHcmFwaGljc0xh
eWVyVGV4dHVyZU1hcHBlciogZ3JhcGhpY3NMYXllciwgaW50IG9wdGlvbnMpCit2b2lkIFRleHR1
cmVNYXBwZXJMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seShHcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlciogZ3JhcGhpY3NMYXllcikKIHsKLSAgICBmbHVzaENvbXBv
c2l0aW5nU3RhdGUoZ3JhcGhpY3NMYXllciwgdGV4dHVyZU1hcHBlcigpLCBvcHRpb25zKTsKKyAg
ICBBU1NFUlQoZ3JhcGhpY3NMYXllcik7CisgICAgZmx1c2hDb21wb3NpdGluZ1N0YXRlU2VsZihn
cmFwaGljc0xheWVyKTsKKyAgICBzeW5jQW5pbWF0aW9ucygpOwogfQogCi12b2lkIFRleHR1cmVN
YXBwZXJMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlU2VsZihHcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlciogZ3JhcGhpY3NMYXllciwgVGV4dHVyZU1hcHBlciopCit2b2lkIFRleHR1cmVNYXBw
ZXJMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlU2VsZihHcmFwaGljc0xheWVyVGV4dHVyZU1h
cHBlciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBpbnQgY2hhbmdlTWFzayA9IGdyYXBoaWNzTGF5
ZXItPmNoYW5nZU1hc2soKTsKIApAQCAtNDg1LDM5ICs0ODcsNiBAQCB2b2lkIFRleHR1cmVNYXBw
ZXJMYXllcjo6c3luY0FuaW1hdGlvbnMoKQogI2VuZGlmCiB9CiAKLXZvaWQgVGV4dHVyZU1hcHBl
ckxheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGUoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIq
IGdyYXBoaWNzTGF5ZXIsIFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBwZXIsIGludCBvcHRpb25z
KQotewotICAgIGlmICghdGV4dHVyZU1hcHBlcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYg
KGdyYXBoaWNzTGF5ZXIgJiYgIShvcHRpb25zICYgQ29tcHV0YXRpb25zT25seSkpCi0gICAgICAg
IGZsdXNoQ29tcG9zaXRpbmdTdGF0ZVNlbGYoZ3JhcGhpY3NMYXllciwgdGV4dHVyZU1hcHBlcik7
Ci0KLSAgICBpZiAoZ3JhcGhpY3NMYXllciAmJiBtX3N0YXRlLm1hc2tMYXllcikKLSAgICAgICAg
bV9zdGF0ZS5tYXNrTGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSh0b0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyKGdyYXBoaWNzTGF5ZXItPm1hc2tMYXllcigpKSwgdGV4dHVyZU1hcHBlcik7
Ci0KLSAgICBpZiAobV9zdGF0ZS5yZXBsaWNhTGF5ZXIpCi0gICAgICAgIG1fc3RhdGUucmVwbGlj
YUxheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUodG9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
cihncmFwaGljc0xheWVyLT5yZXBsaWNhTGF5ZXIoKSksIHRleHR1cmVNYXBwZXIpOwotCi0gICAg
c3luY0FuaW1hdGlvbnMoKTsKLQotICAgIGlmICghKG9wdGlvbnMgJiBUcmF2ZXJzZURlc2NlbmRh
bnRzKSkKLSAgICAgICAgb3B0aW9ucyA9IENvbXB1dGF0aW9uc09ubHk7Ci0KLSAgICBpZiAoZ3Jh
cGhpY3NMYXllcikgewotICAgICAgICBWZWN0b3I8R3JhcGhpY3NMYXllcio+IGNoaWxkcmVuID0g
Z3JhcGhpY3NMYXllci0+Y2hpbGRyZW4oKTsKLSAgICAgICAgZm9yIChpbnQgaSA9IGNoaWxkcmVu
LnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7Ci0gICAgICAgICAgICBUZXh0dXJlTWFwcGVyTGF5
ZXIqIGxheWVyID0gdG9UZXh0dXJlTWFwcGVyTGF5ZXIoY2hpbGRyZW5baV0pOwotICAgICAgICAg
ICAgaWYgKCFsYXllcikKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGxh
eWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUodG9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihj
aGlsZHJlbltpXSksIHRleHR1cmVNYXBwZXIsIG9wdGlvbnMpOwotICAgICAgICB9Ci0gICAgfSBl
bHNlIHsKLSAgICAgICAgZm9yIChpbnQgaSA9IG1fY2hpbGRyZW4uc2l6ZSgpIC0gMTsgaSA+PSAw
OyAtLWkpCi0gICAgICAgICAgICBtX2NoaWxkcmVuW2ldLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUo
MCwgdGV4dHVyZU1hcHBlciwgb3B0aW9ucyk7Ci0gICAgfQotfQotCiBib29sIFRleHR1cmVNYXBw
ZXJMYXllcjo6aXNBbmNlc3RvckZpeGVkVG9WaWV3cG9ydCgpIGNvbnN0CiB7CiAgICAgZm9yIChU
ZXh0dXJlTWFwcGVyTGF5ZXIqIHBhcmVudCA9IG1fcGFyZW50OyBwYXJlbnQ7IHBhcmVudCA9IHBh
cmVudC0+bV9wYXJlbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaAppbmRleCAyMTYxZDUzOWYz
ZDMyZjJiMmZmNmE5YjBiNGM1NmY5MjE1NGEyNjgyLi5kZjZmOGViYWM4YjYwOGZlNjQ2YzBhMzNk
Y2NjYjc0YjM3YjY4MTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oCkBAIC04NywxMSArODcs
NiBAQCBwdWJsaWM6CiAgICAgICAgIEZpbHRlckNoYW5nZSA9ICAgICAgICAgICAgICAoMUwgPDwg
MjMpCiAgICAgfTsKIAotICAgIGVudW0gU3luY09wdGlvbnMgewotICAgICAgICBUcmF2ZXJzZURl
c2NlbmRhbnRzID0gMSwKLSAgICAgICAgQ29tcHV0YXRpb25zT25seSA9IDIKLSAgICB9OwotCiAg
ICAgVGV4dHVyZU1hcHBlckxheWVyKCkKICAgICAgICAgOiBtX3BhcmVudCgwKQogICAgICAgICAs
IG1fZWZmZWN0VGFyZ2V0KDApCkBAIC0xMDQsOCArOTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB+VGV4dHVyZU1hcHBlckxheWVyKCk7CiAKICAgICBUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFw
cGVyKCkgY29uc3Q7Ci0gICAgdm9pZCBmbHVzaENvbXBvc2l0aW5nU3RhdGUoR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXIqLCBpbnQgc3luY09wdGlvbnMgPSAwKTsKLSAgICB2b2lkIGZsdXNoQ29t
cG9zaXRpbmdTdGF0ZShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciosIFRleHR1cmVNYXBwZXIq
LCBpbnQgc3luY09wdGlvbnMgPSAwKTsKKyAgICB2b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZv
clRoaXNMYXllck9ubHkoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqKTsKICAgICBJbnRTaXpl
IHNpemUoKSBjb25zdCB7IHJldHVybiBJbnRTaXplKG1fc2l6ZS53aWR0aCgpLCBtX3NpemUuaGVp
Z2h0KCkpOyB9CiAgICAgdm9pZCBzZXRUcmFuc2Zvcm0oY29uc3QgVHJhbnNmb3JtYXRpb25NYXRy
aXgmKTsKICAgICB2b2lkIHNldE9wYWNpdHkoZmxvYXQgdmFsdWUpIHsgbV9vcGFjaXR5ID0gdmFs
dWU7IH0KQEAgLTEzNiw3ICsxMzAsNyBAQCBwcml2YXRlOgogICAgIEZsb2F0UmVjdCB0YXJnZXRS
ZWN0Rm9yVGlsZVJlY3QoY29uc3QgRmxvYXRSZWN0JiB0b3RhbFRhcmdldFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgdGlsZVJlY3QpIGNvbnN0OwogICAgIHZvaWQgaW52YWxpZGF0ZVZpZXdwb3J0KGNv
bnN0IEZsb2F0UmVjdCYpOwogICAgIHZvaWQgbm90aWZ5Q2hhbmdlKENoYW5nZU1hc2spOwotICAg
IHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlU2VsZihHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
ciosIFRleHR1cmVNYXBwZXIqKTsKKyAgICB2b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZVNlbGYo
R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqKTsKIAogICAgIHN0YXRpYyBpbnQgY29tcGFyZUdy
YXBoaWNzTGF5ZXJzWlZhbHVlKGNvbnN0IHZvaWQqIGEsIGNvbnN0IHZvaWQqIGIpOwogICAgIHN0
YXRpYyB2b2lkIHNvcnRCeVpPcmRlcihWZWN0b3I8VGV4dHVyZU1hcHBlckxheWVyKiA+JiBhcnJh
eSwgaW50IGZpcnN0LCBpbnQgbGFzdCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178739</attachid>
            <date>2012-12-11 00:28:08 -0800</date>
            <delta_ts>2012-12-11 17:47:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103366-20121211172527.patch</filename>
            <type>text/plain</type>
            <size>9730</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MjU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWE3N2M5MWUwZjMwOTM0
YWY1MjRiYTZhZjFjZTZiNWJmMzliODQ4Ny4uNzRjMmQzMWMwMWFlZjlkZjliZTQzZWM5YTFlMGI3
NzkzYzY0ZGM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQyIEBACiAyMDEyLTEyLTExICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIFtUZXhNYXBd
IFBlcmZvcm0gdGhlIGxheWVyLXRyZWUgdHJhdmVyc2FsIGluIEdyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAzMzY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q3VycmVudGx5LCBUZXh0dXJlIE1hcHBlciBwZXJmb3JtcyB0aGUgbGF5ZXItdHJlZSB0cmF2ZXJz
YWwgaW4KKyAgICAgICAgVGV4dHVyZU1hcHBlckxheWVyLCB3aGlsZSBDb29yZGluYXRlZCBHcmFw
aGljcyBwZXJmb3JtcyB0aGUgdHJhdmVyc2FsIGluCisgICAgICAgIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci4gVGhpcyBwYXRjaCBtYWtlcyBUZXh0dXJlIE1hcHBlciBwZXJmb3JtIHRoZQorICAg
ICAgICB0cmF2ZXJzYWwgaW4gR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuCisKKyAgICAgICAg
SW4gYWRkaXRpb24sIHRoaXMgcGF0Y2ggcmVtb3ZlcyBTeW5jT3B0aW9ucyBlbnVtLiBDdXJyZW50
bHksIHdoZW4gdXNpbmcKKyAgICAgICAgQ29tcHV0YXRpb25zT25seSwgdGhlIGxheWVyLXRyZWUg
dHJhdmVyc2FsIHN5bmNocm9uaXplcyBvbmx5IGFuaW1hdGlvbnMKKyAgICAgICAgd2l0aG91dCBs
YXllciBzdGF0ZXMuIEhvd2V2ZXIsIHRoZXJlIGlzIG5vIGNsaWVudCB0aGF0IGNhbGxzCisgICAg
ICAgIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZSgpIGZvciB0aGUgcHVycG9zZS4gRXZlbiB3ZSBhbHJl
YWR5IGhhdmUgdGhlIEFQSQorICAgICAgICBmb3IgdGhlIHB1cnBvc2U6IGFwcGx5QW5pbWF0aW9u
c1JlY3Vyc2l2ZWx5KCkuIFNvIGZyb20gbm93IG9uLCB3ZSBoYXZlCisgICAgICAgIG9ubHkgZmx1
c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpIEFQSSBpbiBUZXh0dXJlTWFwcGVy
TGF5ZXIKKyAgICAgICAgZm9yIGJyZXZpdHkuCisKKyAgICAgICAgVGhpcyBpcyBpbiBwcmVwYXJh
dGlvbiBmb3IgcmVmYWN0b3JpbmcgVGV4dHVyZU1hcHBlciB0byB3b3JrIGluIGFuIGFjdG9yCisg
ICAgICAgIG1vZGVsIChodHRwOi8vd2Via2l0Lm9yZy9iLzEwMzg1NCkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpmbHVzaENvbXBvc2l0aW5n
U3RhdGVGb3JUaGlzTGF5ZXJPbmx5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OmRpZEZsdXNoQ29tcG9zaXRpbmdTdGF0ZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyLmg6CisgICAgICAgIChHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRo
aXNMYXllck9ubHkpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dHVyZU1hcHBlckxheWVyOjpmbHVz
aENvbXBvc2l0aW5nU3RhdGVTZWxmKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvVGV4dHVyZU1hcHBlckxheWVyLmg6CisgICAgICAgIChUZXh0dXJlTWFwcGVyTGF5ZXIpOgor
CisyMDEyLTEyLTExICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0Pgor
CiAgICAgICAgIFtHVEtdIFJFR1JFU1NJT04ocjEzNTYyMCk6IEFjY2VsZXJhdGVkIENvbXBvc2l0
aW5nIGRvZXMgbm90IGRyYXcgc29tZSBwYWdlcy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNDY0MAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyLmNwcAppbmRleCAyYzlmYTNhNzRlNjc0YmY0MDVlMzQ3MmYzODVhM2U4YjU4
ZGVlZmYzLi5jYThkNDlhMThkMGJiNzE5ZTgzZjBmZjUyZDkzMWVmMDMzZGFkMTE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5jcHAKQEAgLTQwNSwzOCArNDA1LDMz
IEBAIHZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnNldENvbnRlbnRzVG9NZWRpYShU
ZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcioKICovCiB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCkKIHsKLSAgICBt
X2xheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUodGhpcyk7CisgICAgbV9sYXllci0+Zmx1c2hD
b21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSh0aGlzKTsKKyAgICB1cGRhdGVCYWNraW5n
U3RvcmUoKTsKICAgICBkaWRGbHVzaENvbXBvc2l0aW5nU3RhdGUoKTsKIH0KIAogLyogXHJlaW1w
IChHcmFwaGljc0xheWVyLmgpCiAqLwotdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6
Zmx1c2hDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYpCit2b2lkIEdyYXBoaWNzTGF5
ZXJUZXh0dXJlTWFwcGVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGUoY29uc3QgRmxvYXRSZWN0JiBy
ZWN0KQogewogICAgIGlmICghbV9sYXllci0+dGV4dHVyZU1hcHBlcigpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBtX2xheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUodGhpcywgVGV4dHVyZU1h
cHBlckxheWVyOjpUcmF2ZXJzZURlc2NlbmRhbnRzKTsKLSAgICBkaWRGbHVzaENvbXBvc2l0aW5n
U3RhdGVSZWN1cnNpdmUoKTsKKyAgICBmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJP
bmx5KCk7CisKKyAgICBpZiAobWFza0xheWVyKCkpCisgICAgICAgIG1hc2tMYXllcigpLT5mbHVz
aENvbXBvc2l0aW5nU3RhdGUocmVjdCk7CisgICAgaWYgKHJlcGxpY2FMYXllcigpKQorICAgICAg
ICByZXBsaWNhTGF5ZXIoKS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHJlY3QpOworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgY2hpbGRyZW4oKS5zaXplKCk7ICsraSkKKyAgICAgICAgY2hpbGRy
ZW4oKVtpXS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHJlY3QpOwogfQogCiB2b2lkIEdyYXBoaWNz
TGF5ZXJUZXh0dXJlTWFwcGVyOjpkaWRGbHVzaENvbXBvc2l0aW5nU3RhdGUoKQogewotICAgIHVw
ZGF0ZUJhY2tpbmdTdG9yZSgpOwogICAgIG1fY2hhbmdlTWFzayA9IDA7CiB9CiAKLXZvaWQgR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXI6OmRpZEZsdXNoQ29tcG9zaXRpbmdTdGF0ZVJlY3Vyc2l2
ZSgpCi17Ci0gICAgZGlkRmx1c2hDb21wb3NpdGluZ1N0YXRlKCk7Ci0gICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBjaGlsZHJlbigpLnNpemUoKTsgKytpKQotICAgICAgICB0b0dyYXBoaWNzTGF5
ZXJUZXh0dXJlTWFwcGVyKGNoaWxkcmVuKClbaV0pLT5kaWRGbHVzaENvbXBvc2l0aW5nU3RhdGVS
ZWN1cnNpdmUoKTsKLSAgICBpZiAobWFza0xheWVyKCkpCi0gICAgICAgIHRvR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXIobWFza0xheWVyKCkpLT5kaWRGbHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1
cnNpdmUoKTsKLSAgICBpZiAocmVwbGljYUxheWVyKCkpCi0gICAgICAgIHRvR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXIocmVwbGljYUxheWVyKCkpLT5kaWRGbHVzaENvbXBvc2l0aW5nU3RhdGVS
ZWN1cnNpdmUoKTsKLX0KLQogdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6dXBkYXRl
QmFja2luZ1N0b3JlKCkKIHsKICAgICBpZiAoIW1faGFzT3duQmFja2luZ1N0b3JlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5
ZXJUZXh0dXJlTWFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaAppbmRleCA0MzJkNmM2YjYwMWM0NWQzZWNm
NDMxZTBmZWQ3NDY4ZDEyM2JiNjc5Li5jY2JiMDhmYWY3OTMzMGQzOTEwODM4ODUxZmE1OGVlODA2
ODIyNzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaApAQCAtMjks
OCArMjksNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFRleHR1cmVNYXBwZXI7
Ci0KIGNsYXNzIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyIDogcHVibGljIEdyYXBoaWNzTGF5
ZXIgewogICAgIGZyaWVuZCBjbGFzcyBUZXh0dXJlTWFwcGVyTGF5ZXI7CiAKQEAgLTEwMCw3ICs5
OCw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3ll
ZCgpOwogICAgIHZvaWQgZGlkRmx1c2hDb21wb3NpdGluZ1N0YXRlKCk7Ci0gICAgdm9pZCBkaWRG
bHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1cnNpdmUoKTsKICAgICB2b2lkIHVwZGF0ZUJhY2tpbmdT
dG9yZSgpOwogICAgIHZvaWQgcHJlcGFyZUJhY2tpbmdTdG9yZSgpOwogICAgIGJvb2wgc2hvdWxk
SGF2ZUJhY2tpbmdTdG9yZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAppbmRl
eCA0YTQ1YzRhYzQ3NWI1NDhlMzZkMGY1N2FjOGUwZTg2OWEyYzU2YTBhLi5hNzU4NjAwOTg1MzU0
MDIwOGRlMGIzMWRkYjU0NTU4ODY1NjQ2MjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNw
cApAQCAtMzYwLDEyICszNjAsMTQgQEAgVGV4dHVyZU1hcHBlciogVGV4dHVyZU1hcHBlckxheWVy
Ojp0ZXh0dXJlTWFwcGVyKCkgY29uc3QKICAgICByZXR1cm4gcm9vdExheWVyKCktPm1fdGV4dHVy
ZU1hcHBlcjsKIH0KIAotdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdT
dGF0ZShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciogZ3JhcGhpY3NMYXllciwgaW50IG9wdGlv
bnMpCit2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhp
c0xheWVyT25seShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciogZ3JhcGhpY3NMYXllcikKIHsK
LSAgICBmbHVzaENvbXBvc2l0aW5nU3RhdGUoZ3JhcGhpY3NMYXllciwgdGV4dHVyZU1hcHBlcigp
LCBvcHRpb25zKTsKKyAgICBBU1NFUlQoZ3JhcGhpY3NMYXllcik7CisgICAgZmx1c2hDb21wb3Np
dGluZ1N0YXRlU2VsZihncmFwaGljc0xheWVyKTsKKyAgICBzeW5jQW5pbWF0aW9ucygpOwogfQog
Ci12b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlU2VsZihHcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlciogZ3JhcGhpY3NMYXllciwgVGV4dHVyZU1hcHBlciopCit2
b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlU2VsZihHcmFwaGlj
c0xheWVyVGV4dHVyZU1hcHBlciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBpbnQgY2hhbmdlTWFz
ayA9IGdyYXBoaWNzTGF5ZXItPmNoYW5nZU1hc2soKTsKIApAQCAtNDg1LDM5ICs0ODcsNiBAQCB2
b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c3luY0FuaW1hdGlvbnMoKQogI2VuZGlmCiB9CiAKLXZv
aWQgVGV4dHVyZU1hcHBlckxheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGUoR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXIqIGdyYXBoaWNzTGF5ZXIsIFRleHR1cmVNYXBwZXIqIHRleHR1cmVNYXBw
ZXIsIGludCBvcHRpb25zKQotewotICAgIGlmICghdGV4dHVyZU1hcHBlcikKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgaWYgKGdyYXBoaWNzTGF5ZXIgJiYgIShvcHRpb25zICYgQ29tcHV0YXRpb25z
T25seSkpCi0gICAgICAgIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZVNlbGYoZ3JhcGhpY3NMYXllciwg
dGV4dHVyZU1hcHBlcik7Ci0KLSAgICBpZiAoZ3JhcGhpY3NMYXllciAmJiBtX3N0YXRlLm1hc2tM
YXllcikKLSAgICAgICAgbV9zdGF0ZS5tYXNrTGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSh0
b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKGdyYXBoaWNzTGF5ZXItPm1hc2tMYXllcigpKSwg
dGV4dHVyZU1hcHBlcik7Ci0KLSAgICBpZiAobV9zdGF0ZS5yZXBsaWNhTGF5ZXIpCi0gICAgICAg
IG1fc3RhdGUucmVwbGljYUxheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUodG9HcmFwaGljc0xh
eWVyVGV4dHVyZU1hcHBlcihncmFwaGljc0xheWVyLT5yZXBsaWNhTGF5ZXIoKSksIHRleHR1cmVN
YXBwZXIpOwotCi0gICAgc3luY0FuaW1hdGlvbnMoKTsKLQotICAgIGlmICghKG9wdGlvbnMgJiBU
cmF2ZXJzZURlc2NlbmRhbnRzKSkKLSAgICAgICAgb3B0aW9ucyA9IENvbXB1dGF0aW9uc09ubHk7
Ci0KLSAgICBpZiAoZ3JhcGhpY3NMYXllcikgewotICAgICAgICBWZWN0b3I8R3JhcGhpY3NMYXll
cio+IGNoaWxkcmVuID0gZ3JhcGhpY3NMYXllci0+Y2hpbGRyZW4oKTsKLSAgICAgICAgZm9yIChp
bnQgaSA9IGNoaWxkcmVuLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7Ci0gICAgICAgICAgICBU
ZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyID0gdG9UZXh0dXJlTWFwcGVyTGF5ZXIoY2hpbGRyZW5b
aV0pOwotICAgICAgICAgICAgaWYgKCFsYXllcikKLSAgICAgICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgICAgIGxheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUodG9HcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlcihjaGlsZHJlbltpXSksIHRleHR1cmVNYXBwZXIsIG9wdGlvbnMpOwotICAg
ICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZm9yIChpbnQgaSA9IG1fY2hpbGRyZW4uc2l6
ZSgpIC0gMTsgaSA+PSAwOyAtLWkpCi0gICAgICAgICAgICBtX2NoaWxkcmVuW2ldLT5mbHVzaENv
bXBvc2l0aW5nU3RhdGUoMCwgdGV4dHVyZU1hcHBlciwgb3B0aW9ucyk7Ci0gICAgfQotfQotCiBi
b29sIFRleHR1cmVNYXBwZXJMYXllcjo6aXNBbmNlc3RvckZpeGVkVG9WaWV3cG9ydCgpIGNvbnN0
CiB7CiAgICAgZm9yIChUZXh0dXJlTWFwcGVyTGF5ZXIqIHBhcmVudCA9IG1fcGFyZW50OyBwYXJl
bnQ7IHBhcmVudCA9IHBhcmVudC0+bV9wYXJlbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaApp
bmRleCAyMTYxZDUzOWYzZDMyZjJiMmZmNmE5YjBiNGM1NmY5MjE1NGEyNjgyLi5kZjZmOGViYWM4
YjYwOGZlNjQ2YzBhMzNkY2NjYjc0YjM3YjY4MTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5o
CkBAIC04NywxMSArODcsNiBAQCBwdWJsaWM6CiAgICAgICAgIEZpbHRlckNoYW5nZSA9ICAgICAg
ICAgICAgICAoMUwgPDwgMjMpCiAgICAgfTsKIAotICAgIGVudW0gU3luY09wdGlvbnMgewotICAg
ICAgICBUcmF2ZXJzZURlc2NlbmRhbnRzID0gMSwKLSAgICAgICAgQ29tcHV0YXRpb25zT25seSA9
IDIKLSAgICB9OwotCiAgICAgVGV4dHVyZU1hcHBlckxheWVyKCkKICAgICAgICAgOiBtX3BhcmVu
dCgwKQogICAgICAgICAsIG1fZWZmZWN0VGFyZ2V0KDApCkBAIC0xMDQsOCArOTksNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlckxheWVyKCk7CiAKICAgICBUZXh0dXJlTWFw
cGVyKiB0ZXh0dXJlTWFwcGVyKCkgY29uc3Q7Ci0gICAgdm9pZCBmbHVzaENvbXBvc2l0aW5nU3Rh
dGUoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqLCBpbnQgc3luY09wdGlvbnMgPSAwKTsKLSAg
ICB2b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZShHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcios
IFRleHR1cmVNYXBwZXIqLCBpbnQgc3luY09wdGlvbnMgPSAwKTsKKyAgICB2b2lkIGZsdXNoQ29t
cG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIq
KTsKICAgICBJbnRTaXplIHNpemUoKSBjb25zdCB7IHJldHVybiBJbnRTaXplKG1fc2l6ZS53aWR0
aCgpLCBtX3NpemUuaGVpZ2h0KCkpOyB9CiAgICAgdm9pZCBzZXRUcmFuc2Zvcm0oY29uc3QgVHJh
bnNmb3JtYXRpb25NYXRyaXgmKTsKICAgICB2b2lkIHNldE9wYWNpdHkoZmxvYXQgdmFsdWUpIHsg
bV9vcGFjaXR5ID0gdmFsdWU7IH0KQEAgLTEzNiw3ICsxMzAsNyBAQCBwcml2YXRlOgogICAgIEZs
b2F0UmVjdCB0YXJnZXRSZWN0Rm9yVGlsZVJlY3QoY29uc3QgRmxvYXRSZWN0JiB0b3RhbFRhcmdl
dFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QpIGNvbnN0OwogICAgIHZvaWQgaW52YWxp
ZGF0ZVZpZXdwb3J0KGNvbnN0IEZsb2F0UmVjdCYpOwogICAgIHZvaWQgbm90aWZ5Q2hhbmdlKENo
YW5nZU1hc2spOwotICAgIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlU2VsZihHcmFwaGljc0xh
eWVyVGV4dHVyZU1hcHBlciosIFRleHR1cmVNYXBwZXIqKTsKKyAgICB2b2lkIGZsdXNoQ29tcG9z
aXRpbmdTdGF0ZVNlbGYoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqKTsKIAogICAgIHN0YXRp
YyBpbnQgY29tcGFyZUdyYXBoaWNzTGF5ZXJzWlZhbHVlKGNvbnN0IHZvaWQqIGEsIGNvbnN0IHZv
aWQqIGIpOwogICAgIHN0YXRpYyB2b2lkIHNvcnRCeVpPcmRlcihWZWN0b3I8VGV4dHVyZU1hcHBl
ckxheWVyKiA+JiBhcnJheSwgaW50IGZpcnN0LCBpbnQgbGFzdCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178934</attachid>
            <date>2012-12-11 17:47:45 -0800</date>
            <delta_ts>2012-12-13 16:12:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103366-20121212104501.patch</filename>
            <type>text/plain</type>
            <size>9761</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MzY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjFiODJkMjg0N2MyZTlk
M2RiZTA0OWQwM2E3M2JjZWUzMzRjNGYwNS4uYjNmMWI3NTY5YjkzMzE0NmU0N2Q3N2ZmYTNlYjY0
NTQ1Njk2NDAwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTEyLTExICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtUZXhNYXBd
IFBlcmZvcm0gdGhlIGxheWVyLXRyZWUgdHJhdmVyc2FsIGluIEdyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAzMzY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Q3VycmVudGx5LCBUZXh0dXJlIE1hcHBlciBwZXJmb3JtcyB0aGUgbGF5ZXItdHJlZSB0cmF2ZXJz
YWwgaW4KKyAgICAgICAgVGV4dHVyZU1hcHBlckxheWVyLCB3aGlsZSBDb29yZGluYXRlZCBHcmFw
aGljcyBwZXJmb3JtcyB0aGUgdHJhdmVyc2FsIGluCisgICAgICAgIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci4gVGhpcyBwYXRjaCBtYWtlcyBUZXh0dXJlIE1hcHBlciBwZXJmb3JtIHRoZQorICAg
ICAgICB0cmF2ZXJzYWwgaW4gR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuCisKKyAgICAgICAg
SW4gYWRkaXRpb24sIHRoaXMgcGF0Y2ggcmVtb3ZlcyBTeW5jT3B0aW9ucyBlbnVtLiBDdXJyZW50
bHksIHdoZW4gdXNpbmcKKyAgICAgICAgQ29tcHV0YXRpb25zT25seSwgdGhlIGxheWVyLXRyZWUg
dHJhdmVyc2FsIHN5bmNocm9uaXplcyBvbmx5IGFuaW1hdGlvbnMKKyAgICAgICAgd2l0aG91dCBs
YXllciBzdGF0ZXMuIEhvd2V2ZXIsIHRoZXJlIGlzIG5vIGNsaWVudCB0aGF0IGNhbGxzCisgICAg
ICAgIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZSgpIGZvciB0aGUgcHVycG9zZS4gRXZlbiB3ZSBhbHJl
YWR5IGhhdmUgdGhlIEFQSQorICAgICAgICBmb3IgdGhlIHB1cnBvc2U6IGFwcGx5QW5pbWF0aW9u
c1JlY3Vyc2l2ZWx5KCkuIFNvIGZyb20gbm93IG9uLCB3ZSBoYXZlCisgICAgICAgIG9ubHkgZmx1
c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpIEFQSSBpbiBUZXh0dXJlTWFwcGVy
TGF5ZXIKKyAgICAgICAgZm9yIGJyZXZpdHkuCisKKyAgICAgICAgVGhpcyBpcyBpbiBwcmVwYXJh
dGlvbiBmb3IgcmVmYWN0b3JpbmcgVGV4dHVyZU1hcHBlciB0byB3b3JrIGluIGFuIGFjdG9yCisg
ICAgICAgIG1vZGVsIChodHRwOi8vd2Via2l0Lm9yZy9iLzEwMzg1NCkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpmbHVzaENvbXBvc2l0aW5n
U3RhdGVGb3JUaGlzTGF5ZXJPbmx5KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OmRpZEZsdXNoQ29tcG9zaXRpbmdTdGF0ZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFw
cGVyLmg6CisgICAgICAgIChHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcik6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRo
aXNMYXllck9ubHkpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyTGF5ZXIuaDoKKyAgICAgICAgKFRleHR1cmVNYXBwZXJMYXllcik6CisKIDIwMTItMTIt
MTEgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENsYW1wIG91
dC1vZi1yYW5nZSBudW1iZXJzIGluIENTUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlci5jcHAKaW5kZXggMmM5ZmEzYTc0ZTY3NGJmNDA1ZTM0NzJmMzg1YTNlOGI1OGRlZWZm
My4uY2E4ZDQ5YTE4ZDBiYjcxOWU4M2YwZmY1MmQ5MzFlZjAzM2RhZDExNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0
dXJlTWFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCkBAIC00MDUsMzggKzQwNSwzMyBAQCB2
b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpzZXRDb250ZW50c1RvTWVkaWEoVGV4dHVy
ZU1hcHBlclBsYXRmb3JtTGF5ZXIqCiAqLwogdm9pZCBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
cjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpCiB7Ci0gICAgbV9sYXll
ci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHRoaXMpOworICAgIG1fbGF5ZXItPmZsdXNoQ29tcG9z
aXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkodGhpcyk7CisgICAgdXBkYXRlQmFja2luZ1N0b3Jl
KCk7CiAgICAgZGlkRmx1c2hDb21wb3NpdGluZ1N0YXRlKCk7CiB9CiAKIC8qIFxyZWltcCAoR3Jh
cGhpY3NMYXllci5oKQogKi8KLXZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OmZsdXNo
Q29tcG9zaXRpbmdTdGF0ZShjb25zdCBGbG9hdFJlY3QmKQordm9pZCBHcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkK
IHsKICAgICBpZiAoIW1fbGF5ZXItPnRleHR1cmVNYXBwZXIoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgbV9sYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHRoaXMsIFRleHR1cmVNYXBwZXJM
YXllcjo6VHJhdmVyc2VEZXNjZW5kYW50cyk7Ci0gICAgZGlkRmx1c2hDb21wb3NpdGluZ1N0YXRl
UmVjdXJzaXZlKCk7CisgICAgZmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgp
OworCisgICAgaWYgKG1hc2tMYXllcigpKQorICAgICAgICBtYXNrTGF5ZXIoKS0+Zmx1c2hDb21w
b3NpdGluZ1N0YXRlKHJlY3QpOworICAgIGlmIChyZXBsaWNhTGF5ZXIoKSkKKyAgICAgICAgcmVw
bGljYUxheWVyKCktPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShyZWN0KTsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IGNoaWxkcmVuKCkuc2l6ZSgpOyArK2kpCisgICAgICAgIGNoaWxkcmVuKClb
aV0tPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShyZWN0KTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlcjo6ZGlkRmx1c2hDb21wb3NpdGluZ1N0YXRlKCkKIHsKLSAgICB1cGRhdGVC
YWNraW5nU3RvcmUoKTsKICAgICBtX2NoYW5nZU1hc2sgPSAwOwogfQogCi12b2lkIEdyYXBoaWNz
TGF5ZXJUZXh0dXJlTWFwcGVyOjpkaWRGbHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1cnNpdmUoKQot
ewotICAgIGRpZEZsdXNoQ29tcG9zaXRpbmdTdGF0ZSgpOwotICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgY2hpbGRyZW4oKS5zaXplKCk7ICsraSkKLSAgICAgICAgdG9HcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlcihjaGlsZHJlbigpW2ldKS0+ZGlkRmx1c2hDb21wb3NpdGluZ1N0YXRlUmVjdXJz
aXZlKCk7Ci0gICAgaWYgKG1hc2tMYXllcigpKQotICAgICAgICB0b0dyYXBoaWNzTGF5ZXJUZXh0
dXJlTWFwcGVyKG1hc2tMYXllcigpKS0+ZGlkRmx1c2hDb21wb3NpdGluZ1N0YXRlUmVjdXJzaXZl
KCk7Ci0gICAgaWYgKHJlcGxpY2FMYXllcigpKQotICAgICAgICB0b0dyYXBoaWNzTGF5ZXJUZXh0
dXJlTWFwcGVyKHJlcGxpY2FMYXllcigpKS0+ZGlkRmx1c2hDb21wb3NpdGluZ1N0YXRlUmVjdXJz
aXZlKCk7Ci19Ci0KIHZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OnVwZGF0ZUJhY2tp
bmdTdG9yZSgpCiB7CiAgICAgaWYgKCFtX2hhc093bkJhY2tpbmdTdG9yZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dy
YXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKaW5kZXggNDMyZDZjNmI2MDFjNDVkM2VjZjQzMWUw
ZmVkNzQ2OGQxMjNiYjY3OS4uY2NiYjA4ZmFmNzkzMzBkMzkxMDgzODg1MWZhNThlZTgwNjgyMjcz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL0dy
YXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmgKQEAgLTI5LDggKzI5
LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBUZXh0dXJlTWFwcGVyOwotCiBj
bGFzcyBHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciA6IHB1YmxpYyBHcmFwaGljc0xheWVyIHsK
ICAgICBmcmllbmQgY2xhc3MgVGV4dHVyZU1hcHBlckxheWVyOwogCkBAIC0xMDAsNyArOTgsNiBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKTsK
ICAgICB2b2lkIGRpZEZsdXNoQ29tcG9zaXRpbmdTdGF0ZSgpOwotICAgIHZvaWQgZGlkRmx1c2hD
b21wb3NpdGluZ1N0YXRlUmVjdXJzaXZlKCk7CiAgICAgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmUo
KTsKICAgICB2b2lkIHByZXBhcmVCYWNraW5nU3RvcmUoKTsKICAgICBib29sIHNob3VsZEhhdmVC
YWNraW5nU3RvcmUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKaW5kZXggNGE0
NWM0YWM0NzViNTQ4ZTM2ZDBmNTdhYzhlMGU4NjlhMmM1NmEwYS4uZDM0MjdlYWQwZDMxNGRlNmYw
NjAxNjViZWMwYjU0OGVjMjA5NjRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5jcHAKQEAg
LTM2MCwxMyArMzYwLDkgQEAgVGV4dHVyZU1hcHBlciogVGV4dHVyZU1hcHBlckxheWVyOjp0ZXh0
dXJlTWFwcGVyKCkgY29uc3QKICAgICByZXR1cm4gcm9vdExheWVyKCktPm1fdGV4dHVyZU1hcHBl
cjsKIH0KIAotdm9pZCBUZXh0dXJlTWFwcGVyTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZShH
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciogZ3JhcGhpY3NMYXllciwgaW50IG9wdGlvbnMpCi17
Ci0gICAgZmx1c2hDb21wb3NpdGluZ1N0YXRlKGdyYXBoaWNzTGF5ZXIsIHRleHR1cmVNYXBwZXIo
KSwgb3B0aW9ucyk7Ci19Ci0KLXZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpmbHVzaENvbXBvc2l0
aW5nU3RhdGVTZWxmKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiBncmFwaGljc0xheWVyLCBU
ZXh0dXJlTWFwcGVyKikKK3ZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpmbHVzaENvbXBvc2l0aW5n
U3RhdGVGb3JUaGlzTGF5ZXJPbmx5KEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiBncmFwaGlj
c0xheWVyKQogeworICAgIEFTU0VSVChncmFwaGljc0xheWVyKTsKICAgICBpbnQgY2hhbmdlTWFz
ayA9IGdyYXBoaWNzTGF5ZXItPmNoYW5nZU1hc2soKTsKIAogICAgIGlmIChjaGFuZ2VNYXNrID09
IE5vQ2hhbmdlcyAmJiBncmFwaGljc0xheWVyLT5tX2FuaW1hdGlvbnMuaXNFbXB0eSgpKQpAQCAt
NDUwLDYgKzQ0Niw4IEBAIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpmbHVzaENvbXBvc2l0aW5n
U3RhdGVTZWxmKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiBnCiAgICAgbV90cmFuc2Zvcm0u
c2V0U2l6ZShtX3N0YXRlLnNpemUpOwogICAgIG1fdHJhbnNmb3JtLnNldEZsYXR0ZW5pbmcoIW1f
c3RhdGUucHJlc2VydmVzM0QpOwogICAgIG1fdHJhbnNmb3JtLnNldENoaWxkcmVuVHJhbnNmb3Jt
KG1fc3RhdGUuY2hpbGRyZW5UcmFuc2Zvcm0pOworCisgICAgc3luY0FuaW1hdGlvbnMoKTsKIH0K
IAogYm9vbCBUZXh0dXJlTWFwcGVyTGF5ZXI6OmRlc2NlbmRhbnRzT3JTZWxmSGF2ZVJ1bm5pbmdB
bmltYXRpb25zKCkgY29uc3QKQEAgLTQ4NSwzOSArNDgzLDYgQEAgdm9pZCBUZXh0dXJlTWFwcGVy
TGF5ZXI6OnN5bmNBbmltYXRpb25zKCkKICNlbmRpZgogfQogCi12b2lkIFRleHR1cmVNYXBwZXJM
YXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiBn
cmFwaGljc0xheWVyLCBUZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyLCBpbnQgb3B0aW9ucykK
LXsKLSAgICBpZiAoIXRleHR1cmVNYXBwZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChn
cmFwaGljc0xheWVyICYmICEob3B0aW9ucyAmIENvbXB1dGF0aW9uc09ubHkpKQotICAgICAgICBm
bHVzaENvbXBvc2l0aW5nU3RhdGVTZWxmKGdyYXBoaWNzTGF5ZXIsIHRleHR1cmVNYXBwZXIpOwot
Ci0gICAgaWYgKGdyYXBoaWNzTGF5ZXIgJiYgbV9zdGF0ZS5tYXNrTGF5ZXIpCi0gICAgICAgIG1f
c3RhdGUubWFza0xheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUodG9HcmFwaGljc0xheWVyVGV4
dHVyZU1hcHBlcihncmFwaGljc0xheWVyLT5tYXNrTGF5ZXIoKSksIHRleHR1cmVNYXBwZXIpOwot
Ci0gICAgaWYgKG1fc3RhdGUucmVwbGljYUxheWVyKQotICAgICAgICBtX3N0YXRlLnJlcGxpY2FM
YXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIo
Z3JhcGhpY3NMYXllci0+cmVwbGljYUxheWVyKCkpLCB0ZXh0dXJlTWFwcGVyKTsKLQotICAgIHN5
bmNBbmltYXRpb25zKCk7Ci0KLSAgICBpZiAoIShvcHRpb25zICYgVHJhdmVyc2VEZXNjZW5kYW50
cykpCi0gICAgICAgIG9wdGlvbnMgPSBDb21wdXRhdGlvbnNPbmx5OwotCi0gICAgaWYgKGdyYXBo
aWNzTGF5ZXIpIHsKLSAgICAgICAgVmVjdG9yPEdyYXBoaWNzTGF5ZXIqPiBjaGlsZHJlbiA9IGdy
YXBoaWNzTGF5ZXItPmNoaWxkcmVuKCk7Ci0gICAgICAgIGZvciAoaW50IGkgPSBjaGlsZHJlbi5z
aXplKCkgLSAxOyBpID49IDA7IC0taSkgewotICAgICAgICAgICAgVGV4dHVyZU1hcHBlckxheWVy
KiBsYXllciA9IHRvVGV4dHVyZU1hcHBlckxheWVyKGNoaWxkcmVuW2ldKTsKLSAgICAgICAgICAg
IGlmICghbGF5ZXIpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBsYXll
ci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIoY2hp
bGRyZW5baV0pLCB0ZXh0dXJlTWFwcGVyLCBvcHRpb25zKTsKLSAgICAgICAgfQotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIGZvciAoaW50IGkgPSBtX2NoaWxkcmVuLnNpemUoKSAtIDE7IGkgPj0gMDsg
LS1pKQotICAgICAgICAgICAgbV9jaGlsZHJlbltpXS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKDAs
IHRleHR1cmVNYXBwZXIsIG9wdGlvbnMpOwotICAgIH0KLX0KLQogYm9vbCBUZXh0dXJlTWFwcGVy
TGF5ZXI6OmlzQW5jZXN0b3JGaXhlZFRvVmlld3BvcnQoKSBjb25zdAogewogICAgIGZvciAoVGV4
dHVyZU1hcHBlckxheWVyKiBwYXJlbnQgPSBtX3BhcmVudDsgcGFyZW50OyBwYXJlbnQgPSBwYXJl
bnQtPm1fcGFyZW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgKaW5kZXggMjE2MWQ1MzlmM2Qz
MmYyYjJmZjZhOWIwYjRjNTZmOTIxNTRhMjY4Mi4uM2I1OGUwMDA0NzcyY2RlYmQyYjg3ODAyNWQ5
NWY2Nzg2ODFkNzM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuaApAQCAtODcsMTEgKzg3LDYg
QEAgcHVibGljOgogICAgICAgICBGaWx0ZXJDaGFuZ2UgPSAgICAgICAgICAgICAgKDFMIDw8IDIz
KQogICAgIH07CiAKLSAgICBlbnVtIFN5bmNPcHRpb25zIHsKLSAgICAgICAgVHJhdmVyc2VEZXNj
ZW5kYW50cyA9IDEsCi0gICAgICAgIENvbXB1dGF0aW9uc09ubHkgPSAyCi0gICAgfTsKLQogICAg
IFRleHR1cmVNYXBwZXJMYXllcigpCiAgICAgICAgIDogbV9wYXJlbnQoMCkKICAgICAgICAgLCBt
X2VmZmVjdFRhcmdldCgwKQpAQCAtMTA0LDggKzk5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
flRleHR1cmVNYXBwZXJMYXllcigpOwogCiAgICAgVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBl
cigpIGNvbnN0OwotICAgIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlKEdyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyKiwgaW50IHN5bmNPcHRpb25zID0gMCk7Ci0gICAgdm9pZCBmbHVzaENvbXBv
c2l0aW5nU3RhdGUoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqLCBUZXh0dXJlTWFwcGVyKiwg
aW50IHN5bmNPcHRpb25zID0gMCk7CisgICAgdm9pZCBmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JU
aGlzTGF5ZXJPbmx5KEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKik7CiAgICAgSW50U2l6ZSBz
aXplKCkgY29uc3QgeyByZXR1cm4gSW50U2l6ZShtX3NpemUud2lkdGgoKSwgbV9zaXplLmhlaWdo
dCgpKTsgfQogICAgIHZvaWQgc2V0VHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
Jik7CiAgICAgdm9pZCBzZXRPcGFjaXR5KGZsb2F0IHZhbHVlKSB7IG1fb3BhY2l0eSA9IHZhbHVl
OyB9CkBAIC0xMzYsNyArMTMwLDYgQEAgcHJpdmF0ZToKICAgICBGbG9hdFJlY3QgdGFyZ2V0UmVj
dEZvclRpbGVSZWN0KGNvbnN0IEZsb2F0UmVjdCYgdG90YWxUYXJnZXRSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHRpbGVSZWN0KSBjb25zdDsKICAgICB2b2lkIGludmFsaWRhdGVWaWV3cG9ydChjb25z
dCBGbG9hdFJlY3QmKTsKICAgICB2b2lkIG5vdGlmeUNoYW5nZShDaGFuZ2VNYXNrKTsKLSAgICB2
b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZVNlbGYoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIq
LCBUZXh0dXJlTWFwcGVyKik7CiAKICAgICBzdGF0aWMgaW50IGNvbXBhcmVHcmFwaGljc0xheWVy
c1pWYWx1ZShjb25zdCB2b2lkKiBhLCBjb25zdCB2b2lkKiBiKTsKICAgICBzdGF0aWMgdm9pZCBz
b3J0QnlaT3JkZXIoVmVjdG9yPFRleHR1cmVNYXBwZXJMYXllciogPiYgYXJyYXksIGludCBmaXJz
dCwgaW50IGxhc3QpOwo=
</data>
<flag name="review"
          id="195622"
          type_id="1"
          status="+"
          setter="noam"
    />
    <flag name="commit-queue"
          id="195623"
          type_id="3"
          status="-"
          setter="noam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179367</attachid>
            <date>2012-12-13 16:12:12 -0800</date>
            <delta_ts>2012-12-16 18:31:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103366-20121214090921.patch</filename>
            <type>text/plain</type>
            <size>9445</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3Mzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGFjNzU1N2QyNjkzZDg5
MDE3ZDRmNTVlYjAxMzEyMTM4NjU5ZjkxOS4uZGRjNDAzZTEwYzNjOWQ1OTFmNWQyY2NiNTgwNGY3
MzcxY2FjMGE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTEyLTExICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIFtUZXhNYXBd
IFBlcmZvcm0gdGhlIGxheWVyLXRyZWUgdHJhdmVyc2FsIGluIEdyYXBoaWNzTGF5ZXJUZXh0dXJl
TWFwcGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAzMzY2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTm9hbSBSb3NlbnRoYWwuCisKKyAgICAgICAg
Q3VycmVudGx5LCBUZXh0dXJlIE1hcHBlciBwZXJmb3JtcyB0aGUgbGF5ZXItdHJlZSB0cmF2ZXJz
YWwgaW4KKyAgICAgICAgVGV4dHVyZU1hcHBlckxheWVyLCB3aGlsZSBDb29yZGluYXRlZCBHcmFw
aGljcyBwZXJmb3JtcyB0aGUgdHJhdmVyc2FsIGluCisgICAgICAgIENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllci4gVGhpcyBwYXRjaCBtYWtlcyBUZXh0dXJlIE1hcHBlciBwZXJmb3JtIHRoZQorICAg
ICAgICB0cmF2ZXJzYWwgaW4gR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuCisKKyAgICAgICAg
QWxzbyByZW1vdmVkIHRoZSBTeW5jT3B0aW9ucyBlbnVtLCB3aGljaCBpcyByZWR1bmRhbnQgc2lu
Y2Ugbm8gY2xpZW50CisgICAgICAgIGNhbGxzIGl0IHdpdGggQ29tcHV0YXRpb25zT25seS4KKwor
ICAgICAgICBUaGlzIGlzIGluIHByZXBhcmF0aW9uIGZvciByZWZhY3RvcmluZyBUZXh0dXJlTWFw
cGVyIHRvIHdvcmsgaW4gYW4gYWN0b3IKKyAgICAgICAgbW9kZWwgKGh0dHA6Ly93ZWJraXQub3Jn
L2IvMTAzODU0KS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIENvdmVyZWQgYnkgZXhpc3Rpbmcg
dGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXll
clRleHR1cmVNYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclRleHR1
cmVNYXBwZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OmZsdXNoQ29tcG9zaXRpbmdT
dGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcjo6ZGlk
Rmx1c2hDb21wb3NpdGluZ1N0YXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXht
YXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaDoKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXJU
ZXh0dXJlTWFwcGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJMYXllcjo6
Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oOgorICAgICAgICAoVGV4dHVy
ZU1hcHBlckxheWVyKToKKwogMjAxMi0xMi0xMyAgSHVhbmcgRG9uZ3N1bmcgIDxsdXh0ZWxsYUBj
b21wYW55MTAwLm5ldD4KIAogICAgICAgICBDb29yZGluYXRlZCBHcmFwaGljczogUmVmYWN0b3Ig
VGlsZWRCYWNraW5nU3RvcmUgY29kZSBpbiBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmNwcAppbmRleCAyYzlmYTNhNzRlNjc0
YmY0MDVlMzQ3MmYzODVhM2U4YjU4ZGVlZmYzLi5jYThkNDlhMThkMGJiNzE5ZTgzZjBmZjUyZDkz
MWVmMDMzZGFkMTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9HcmFwaGljc0xheWVyVGV4dHVyZU1hcHBlci5j
cHAKQEAgLTQwNSwzOCArNDA1LDMzIEBAIHZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6
OnNldENvbnRlbnRzVG9NZWRpYShUZXh0dXJlTWFwcGVyUGxhdGZvcm1MYXllcioKICovCiB2b2lk
IEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlz
TGF5ZXJPbmx5KCkKIHsKLSAgICBtX2xheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUodGhpcyk7
CisgICAgbV9sYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSh0aGlz
KTsKKyAgICB1cGRhdGVCYWNraW5nU3RvcmUoKTsKICAgICBkaWRGbHVzaENvbXBvc2l0aW5nU3Rh
dGUoKTsKIH0KIAogLyogXHJlaW1wIChHcmFwaGljc0xheWVyLmgpCiAqLwotdm9pZCBHcmFwaGlj
c0xheWVyVGV4dHVyZU1hcHBlcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlKGNvbnN0IEZsb2F0UmVj
dCYpCit2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpmbHVzaENvbXBvc2l0aW5nU3Rh
dGUoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewogICAgIGlmICghbV9sYXllci0+dGV4dHVyZU1h
cHBlcigpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2xheWVyLT5mbHVzaENvbXBvc2l0aW5n
U3RhdGUodGhpcywgVGV4dHVyZU1hcHBlckxheWVyOjpUcmF2ZXJzZURlc2NlbmRhbnRzKTsKLSAg
ICBkaWRGbHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1cnNpdmUoKTsKKyAgICBmbHVzaENvbXBvc2l0
aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5KCk7CisKKyAgICBpZiAobWFza0xheWVyKCkpCisgICAg
ICAgIG1hc2tMYXllcigpLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUocmVjdCk7CisgICAgaWYgKHJl
cGxpY2FMYXllcigpKQorICAgICAgICByZXBsaWNhTGF5ZXIoKS0+Zmx1c2hDb21wb3NpdGluZ1N0
YXRlKHJlY3QpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY2hpbGRyZW4oKS5zaXplKCk7
ICsraSkKKyAgICAgICAgY2hpbGRyZW4oKVtpXS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHJlY3Qp
OwogfQogCiB2b2lkIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyOjpkaWRGbHVzaENvbXBvc2l0
aW5nU3RhdGUoKQogewotICAgIHVwZGF0ZUJhY2tpbmdTdG9yZSgpOwogICAgIG1fY2hhbmdlTWFz
ayA9IDA7CiB9CiAKLXZvaWQgR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI6OmRpZEZsdXNoQ29t
cG9zaXRpbmdTdGF0ZVJlY3Vyc2l2ZSgpCi17Ci0gICAgZGlkRmx1c2hDb21wb3NpdGluZ1N0YXRl
KCk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjaGlsZHJlbigpLnNpemUoKTsgKytpKQot
ICAgICAgICB0b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKGNoaWxkcmVuKClbaV0pLT5kaWRG
bHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1cnNpdmUoKTsKLSAgICBpZiAobWFza0xheWVyKCkpCi0g
ICAgICAgIHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIobWFza0xheWVyKCkpLT5kaWRGbHVz
aENvbXBvc2l0aW5nU3RhdGVSZWN1cnNpdmUoKTsKLSAgICBpZiAocmVwbGljYUxheWVyKCkpCi0g
ICAgICAgIHRvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIocmVwbGljYUxheWVyKCkpLT5kaWRG
bHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1cnNpdmUoKTsKLX0KLQogdm9pZCBHcmFwaGljc0xheWVy
VGV4dHVyZU1hcHBlcjo6dXBkYXRlQmFja2luZ1N0b3JlKCkKIHsKICAgICBpZiAoIW1faGFzT3du
QmFja2luZ1N0b3JlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaAppbmRl
eCA0MzJkNmM2YjYwMWM0NWQzZWNmNDMxZTBmZWQ3NDY4ZDEyM2JiNjc5Li5jY2JiMDhmYWY3OTMz
MGQzOTEwODM4ODUxZmE1OGVlODA2ODIyNzM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvR3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXIuaApAQCAtMjksOCArMjksNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIFRleHR1cmVNYXBwZXI7Ci0KIGNsYXNzIEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVy
IDogcHVibGljIEdyYXBoaWNzTGF5ZXIgewogICAgIGZyaWVuZCBjbGFzcyBUZXh0dXJlTWFwcGVy
TGF5ZXI7CiAKQEAgLTEwMCw3ICs5OCw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdmlydHVh
bCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwogICAgIHZvaWQgZGlkRmx1c2hDb21wb3NpdGluZ1N0
YXRlKCk7Ci0gICAgdm9pZCBkaWRGbHVzaENvbXBvc2l0aW5nU3RhdGVSZWN1cnNpdmUoKTsKICAg
ICB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZSgpOwogICAgIHZvaWQgcHJlcGFyZUJhY2tpbmdTdG9y
ZSgpOwogICAgIGJvb2wgc2hvdWxkSGF2ZUJhY2tpbmdTdG9yZSgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJM
YXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVy
ZU1hcHBlckxheWVyLmNwcAppbmRleCA0YTQ1YzRhYzQ3NWI1NDhlMzZkMGY1N2FjOGUwZTg2OWEy
YzU2YTBhLi5kMzQyN2VhZDBkMzE0ZGU2ZjA2MDE2NWJlYzBiNTQ4ZWMyMDk2NGQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBl
ckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAv
VGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAtMzYwLDEzICszNjAsOSBAQCBUZXh0dXJlTWFwcGVy
KiBUZXh0dXJlTWFwcGVyTGF5ZXI6OnRleHR1cmVNYXBwZXIoKSBjb25zdAogICAgIHJldHVybiBy
b290TGF5ZXIoKS0+bV90ZXh0dXJlTWFwcGVyOwogfQogCi12b2lkIFRleHR1cmVNYXBwZXJMYXll
cjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlKEdyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKiBncmFw
aGljc0xheWVyLCBpbnQgb3B0aW9ucykKLXsKLSAgICBmbHVzaENvbXBvc2l0aW5nU3RhdGUoZ3Jh
cGhpY3NMYXllciwgdGV4dHVyZU1hcHBlcigpLCBvcHRpb25zKTsKLX0KLQotdm9pZCBUZXh0dXJl
TWFwcGVyTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZVNlbGYoR3JhcGhpY3NMYXllclRleHR1
cmVNYXBwZXIqIGdyYXBoaWNzTGF5ZXIsIFRleHR1cmVNYXBwZXIqKQordm9pZCBUZXh0dXJlTWFw
cGVyTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoR3JhcGhpY3NM
YXllclRleHR1cmVNYXBwZXIqIGdyYXBoaWNzTGF5ZXIpCiB7CisgICAgQVNTRVJUKGdyYXBoaWNz
TGF5ZXIpOwogICAgIGludCBjaGFuZ2VNYXNrID0gZ3JhcGhpY3NMYXllci0+Y2hhbmdlTWFzaygp
OwogCiAgICAgaWYgKGNoYW5nZU1hc2sgPT0gTm9DaGFuZ2VzICYmIGdyYXBoaWNzTGF5ZXItPm1f
YW5pbWF0aW9ucy5pc0VtcHR5KCkpCkBAIC00NTAsNiArNDQ2LDggQEAgdm9pZCBUZXh0dXJlTWFw
cGVyTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZVNlbGYoR3JhcGhpY3NMYXllclRleHR1cmVN
YXBwZXIqIGcKICAgICBtX3RyYW5zZm9ybS5zZXRTaXplKG1fc3RhdGUuc2l6ZSk7CiAgICAgbV90
cmFuc2Zvcm0uc2V0RmxhdHRlbmluZyghbV9zdGF0ZS5wcmVzZXJ2ZXMzRCk7CiAgICAgbV90cmFu
c2Zvcm0uc2V0Q2hpbGRyZW5UcmFuc2Zvcm0obV9zdGF0ZS5jaGlsZHJlblRyYW5zZm9ybSk7CisK
KyAgICBzeW5jQW5pbWF0aW9ucygpOwogfQogCiBib29sIFRleHR1cmVNYXBwZXJMYXllcjo6ZGVz
Y2VuZGFudHNPclNlbGZIYXZlUnVubmluZ0FuaW1hdGlvbnMoKSBjb25zdApAQCAtNDg1LDM5ICs0
ODMsNiBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6c3luY0FuaW1hdGlvbnMoKQogI2VuZGlm
CiB9CiAKLXZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGUoR3Jh
cGhpY3NMYXllclRleHR1cmVNYXBwZXIqIGdyYXBoaWNzTGF5ZXIsIFRleHR1cmVNYXBwZXIqIHRl
eHR1cmVNYXBwZXIsIGludCBvcHRpb25zKQotewotICAgIGlmICghdGV4dHVyZU1hcHBlcikKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGdyYXBoaWNzTGF5ZXIgJiYgIShvcHRpb25zICYgQ29t
cHV0YXRpb25zT25seSkpCi0gICAgICAgIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZVNlbGYoZ3JhcGhp
Y3NMYXllciwgdGV4dHVyZU1hcHBlcik7Ci0KLSAgICBpZiAoZ3JhcGhpY3NMYXllciAmJiBtX3N0
YXRlLm1hc2tMYXllcikKLSAgICAgICAgbV9zdGF0ZS5tYXNrTGF5ZXItPmZsdXNoQ29tcG9zaXRp
bmdTdGF0ZSh0b0dyYXBoaWNzTGF5ZXJUZXh0dXJlTWFwcGVyKGdyYXBoaWNzTGF5ZXItPm1hc2tM
YXllcigpKSwgdGV4dHVyZU1hcHBlcik7Ci0KLSAgICBpZiAobV9zdGF0ZS5yZXBsaWNhTGF5ZXIp
Ci0gICAgICAgIG1fc3RhdGUucmVwbGljYUxheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUodG9H
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlcihncmFwaGljc0xheWVyLT5yZXBsaWNhTGF5ZXIoKSks
IHRleHR1cmVNYXBwZXIpOwotCi0gICAgc3luY0FuaW1hdGlvbnMoKTsKLQotICAgIGlmICghKG9w
dGlvbnMgJiBUcmF2ZXJzZURlc2NlbmRhbnRzKSkKLSAgICAgICAgb3B0aW9ucyA9IENvbXB1dGF0
aW9uc09ubHk7Ci0KLSAgICBpZiAoZ3JhcGhpY3NMYXllcikgewotICAgICAgICBWZWN0b3I8R3Jh
cGhpY3NMYXllcio+IGNoaWxkcmVuID0gZ3JhcGhpY3NMYXllci0+Y2hpbGRyZW4oKTsKLSAgICAg
ICAgZm9yIChpbnQgaSA9IGNoaWxkcmVuLnNpemUoKSAtIDE7IGkgPj0gMDsgLS1pKSB7Ci0gICAg
ICAgICAgICBUZXh0dXJlTWFwcGVyTGF5ZXIqIGxheWVyID0gdG9UZXh0dXJlTWFwcGVyTGF5ZXIo
Y2hpbGRyZW5baV0pOwotICAgICAgICAgICAgaWYgKCFsYXllcikKLSAgICAgICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgICAgIGxheWVyLT5mbHVzaENvbXBvc2l0aW5nU3RhdGUodG9HcmFw
aGljc0xheWVyVGV4dHVyZU1hcHBlcihjaGlsZHJlbltpXSksIHRleHR1cmVNYXBwZXIsIG9wdGlv
bnMpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZm9yIChpbnQgaSA9IG1fY2hp
bGRyZW4uc2l6ZSgpIC0gMTsgaSA+PSAwOyAtLWkpCi0gICAgICAgICAgICBtX2NoaWxkcmVuW2ld
LT5mbHVzaENvbXBvc2l0aW5nU3RhdGUoMCwgdGV4dHVyZU1hcHBlciwgb3B0aW9ucyk7Ci0gICAg
fQotfQotCiBib29sIFRleHR1cmVNYXBwZXJMYXllcjo6aXNBbmNlc3RvckZpeGVkVG9WaWV3cG9y
dCgpIGNvbnN0CiB7CiAgICAgZm9yIChUZXh0dXJlTWFwcGVyTGF5ZXIqIHBhcmVudCA9IG1fcGFy
ZW50OyBwYXJlbnQ7IHBhcmVudCA9IHBhcmVudC0+bV9wYXJlbnQpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVy
TGF5ZXIuaAppbmRleCAyMTYxZDUzOWYzZDMyZjJiMmZmNmE5YjBiNGM1NmY5MjE1NGEyNjgyLi4z
YjU4ZTAwMDQ3NzJjZGViZDJiODc4MDI1ZDk1ZjY3ODY4MWQ3MzU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJMYXllci5oCkBAIC04NywxMSArODcsNiBAQCBwdWJsaWM6CiAgICAgICAgIEZpbHRlckNoYW5n
ZSA9ICAgICAgICAgICAgICAoMUwgPDwgMjMpCiAgICAgfTsKIAotICAgIGVudW0gU3luY09wdGlv
bnMgewotICAgICAgICBUcmF2ZXJzZURlc2NlbmRhbnRzID0gMSwKLSAgICAgICAgQ29tcHV0YXRp
b25zT25seSA9IDIKLSAgICB9OwotCiAgICAgVGV4dHVyZU1hcHBlckxheWVyKCkKICAgICAgICAg
OiBtX3BhcmVudCgwKQogICAgICAgICAsIG1fZWZmZWN0VGFyZ2V0KDApCkBAIC0xMDQsOCArOTks
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+VGV4dHVyZU1hcHBlckxheWVyKCk7CiAKICAgICBU
ZXh0dXJlTWFwcGVyKiB0ZXh0dXJlTWFwcGVyKCkgY29uc3Q7Ci0gICAgdm9pZCBmbHVzaENvbXBv
c2l0aW5nU3RhdGUoR3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXIqLCBpbnQgc3luY09wdGlvbnMg
PSAwKTsKLSAgICB2b2lkIGZsdXNoQ29tcG9zaXRpbmdTdGF0ZShHcmFwaGljc0xheWVyVGV4dHVy
ZU1hcHBlciosIFRleHR1cmVNYXBwZXIqLCBpbnQgc3luY09wdGlvbnMgPSAwKTsKKyAgICB2b2lk
IGZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHkoR3JhcGhpY3NMYXllclRleHR1
cmVNYXBwZXIqKTsKICAgICBJbnRTaXplIHNpemUoKSBjb25zdCB7IHJldHVybiBJbnRTaXplKG1f
c2l6ZS53aWR0aCgpLCBtX3NpemUuaGVpZ2h0KCkpOyB9CiAgICAgdm9pZCBzZXRUcmFuc2Zvcm0o
Y29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmKTsKICAgICB2b2lkIHNldE9wYWNpdHkoZmxvYXQg
dmFsdWUpIHsgbV9vcGFjaXR5ID0gdmFsdWU7IH0KQEAgLTEzNiw3ICsxMzAsNiBAQCBwcml2YXRl
OgogICAgIEZsb2F0UmVjdCB0YXJnZXRSZWN0Rm9yVGlsZVJlY3QoY29uc3QgRmxvYXRSZWN0JiB0
b3RhbFRhcmdldFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGlsZVJlY3QpIGNvbnN0OwogICAgIHZv
aWQgaW52YWxpZGF0ZVZpZXdwb3J0KGNvbnN0IEZsb2F0UmVjdCYpOwogICAgIHZvaWQgbm90aWZ5
Q2hhbmdlKENoYW5nZU1hc2spOwotICAgIHZvaWQgZmx1c2hDb21wb3NpdGluZ1N0YXRlU2VsZihH
cmFwaGljc0xheWVyVGV4dHVyZU1hcHBlciosIFRleHR1cmVNYXBwZXIqKTsKIAogICAgIHN0YXRp
YyBpbnQgY29tcGFyZUdyYXBoaWNzTGF5ZXJzWlZhbHVlKGNvbnN0IHZvaWQqIGEsIGNvbnN0IHZv
aWQqIGIpOwogICAgIHN0YXRpYyB2b2lkIHNvcnRCeVpPcmRlcihWZWN0b3I8VGV4dHVyZU1hcHBl
ckxheWVyKiA+JiBhcnJheSwgaW50IGZpcnN0LCBpbnQgbGFzdCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>