<?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>102449</bug_id>
          
          <creation_ts>2012-11-15 17:12:40 -0800</creation_ts>
          <short_desc>Coordinated Graphics: Remove a texture if an direct composited image is off the viewport.</short_desc>
          <delta_ts>2012-11-19 16:04:36 -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>101023</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dongseong Hwang">dongseong.hwang</reporter>
          <assigned_to name="Dongseong Hwang">dongseong.hwang</assigned_to>
          <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>768718</commentid>
    <comment_count>0</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-15 17:12:40 -0800</bug_when>
    <thetext>Currently, once uploading textures for composited images, Coordinated Graphics 
does not release the textures until all layers using images are destroyed. 

This patch removes a texture if we don&apos;t need to render an image. This mechanism
is similar how TiledBackingStore removes invisible tiles.

When all layers are invisible, we wait 3 seconds to remove the image, because we
want to prevent a transform animation from creating and destroying a texture
over and over again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768719</commentid>
    <comment_count>1</comment_count>
      <attachid>174565</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-15 17:14:16 -0800</bug_when>
    <thetext>Created attachment 174565
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768767</commentid>
    <comment_count>2</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-15 17:49:20 -0800</bug_when>
    <thetext>I tested snowstack http://www.satine.org/research/webkit/snowleopard/snowstack.html

Previously, we create directly composited image textures endlessly.

Now, we create less than 60 image textures at the peak, and then we keep 9 textures after 3 seconds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768875</commentid>
    <comment_count>3</comment_count>
      <attachid>174598</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-15 20:23:37 -0800</bug_when>
    <thetext>Created attachment 174598
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>768877</commentid>
    <comment_count>4</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-15 20:24:02 -0800</bug_when>
    <thetext>rebased to upstream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769629</commentid>
    <comment_count>5</comment_count>
      <attachid>174598</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-16 13:31:26 -0800</bug_when>
    <thetext>Comment on attachment 174598
Patch

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

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeCoordinatorProxy.h:72
&gt; +    void makeImageBackingInvisible(CoordinatedImageBackingID);

Let&apos;s rename this to clearImageBackingContents

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedImageBacking.cpp:NaN
&gt;  void CoordinatedImageBacking::update()

Is this called during an animation?

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedImageBacking.cpp:91
&gt; +    bool changedToVisible = setInvisibleIfNeeded();

This line doesn&apos;t make sense from the caller site. Some of the names need refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770407</commentid>
    <comment_count>6</comment_count>
      <attachid>174902</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-18 23:57:20 -0800</bug_when>
    <thetext>Created attachment 174902
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770415</commentid>
    <comment_count>7</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-19 00:07:08 -0800</bug_when>
    <thetext>(In reply to comment #5)
Thanks for review!

&gt; (From update of attachment 174598 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=174598&amp;action=review
&gt; Let&apos;s rename this to clearImageBackingContents
Done.

&gt; &gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedImageBacking.cpp:NaN
&gt; &gt;  void CoordinatedImageBacking::update()
&gt; 
&gt; Is this called during an animation?

Yes, it called during an animation. CoordinatedImageBacking::update() is called every LayerTreeCoordinator::flushPendingLayerChanges().
We cannot guarantee every frame of UI Process animations calls this function, because UI Process can progress between sending RenderNextFrame message and receiving next DidRenderFrame message.
However, I think CoordinatedImageBacking::update() is called often enough.

&gt; &gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedImageBacking.cpp:91
&gt; &gt; +    bool changedToVisible = setInvisibleIfNeeded();
&gt; 
&gt; This line doesn&apos;t make sense from the caller site. Some of the names need refactoring.

I renamed changeVisibilityIfNeeded(bool&amp; changedToVisible). How about it?

In addition, I add some code to reduce redundant texture updates.
For example, when javascript creates a directly composited img element while another directly composited img exists, the previous patch updates the texture redundantly. This patch handles this case also.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770723</commentid>
    <comment_count>8</comment_count>
      <attachid>174902</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-19 07:17:14 -0800</bug_when>
    <thetext>Comment on attachment 174902
Patch

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

Good progress. See comments.

&gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:503
&gt; +    backingStore-&gt;removeTile(1 /* id */);

How about adding a removeAllTiles / clear function ?

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedImageBacking.cpp:107
&gt; +        // currentFrameUpdatedAlready() can decode an image redundantly, so we check at the last.
&gt; +        // When more than two layers refer the same image, markDirty() can be called even though we already updated.
&gt; +        // For example, javascript can create a directly composited img element while another directly composited img exists.
&gt; +        if (currentFrameUpdatedAlready()) {
&gt; +            m_isDirty = false;
&gt; +            return;
&gt; +        }
&gt; +    }

The comments are more confusing. 
It would be cleaner to replace this hole phrase with 
if (m_nativeImagePtr == m_image-&gt;nativeImageForCurrentFrame()) 
   m_isDirty = false
   return

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedImageBacking.cpp:143
&gt; +void CoordinatedImageBacking::changeVisibilityIfNeeded(bool&amp; changedToVisible)

updateVisibilityIfNeeded

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedImageBacking.h:50
&gt; +    class LayerClient {

How about class Host ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771058</commentid>
    <comment_count>9</comment_count>
      <attachid>175047</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-19 14:56:45 -0800</bug_when>
    <thetext>Created attachment 175047
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771060</commentid>
    <comment_count>10</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-19 14:58:34 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 174902 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=174902&amp;action=review
&gt; 
&gt; Good progress. See comments.

Thank you for review!

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/CoordinatedGraphics/LayerTreeRenderer.cpp:503
&gt; &gt; +    backingStore-&gt;removeTile(1 /* id */);
&gt; 
&gt; How about adding a removeAllTiles / clear function ?

Add removeAllTiles because we can not really clear at this time.

&gt; 
&gt; The comments are more confusing. 
&gt; It would be cleaner to replace this hole phrase with 
&gt; if (m_nativeImagePtr == m_image-&gt;nativeImageForCurrentFrame()) 
&gt;    m_isDirty = false
&gt;    return
Done.


&gt; updateVisibilityIfNeeded
Done.

&gt; &gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedImageBacking.h:50
&gt; &gt; +    class LayerClient {
&gt; 
&gt; How about class Host ?
Good suggestion! Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771063</commentid>
    <comment_count>11</comment_count>
      <attachid>175047</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-19 14:59:25 -0800</bug_when>
    <thetext>Comment on attachment 175047
Patch

I believe this is ready!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771068</commentid>
    <comment_count>12</comment_count>
      <attachid>175047</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-19 15:01:59 -0800</bug_when>
    <thetext>Comment on attachment 175047
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/CoordinatedGraphicsLayer.h:189
&gt; +    // CoordinatedImageBacking::LayerClient

Oops, here is nits. I&apos;ll update</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771069</commentid>
    <comment_count>13</comment_count>
      <attachid>175049</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-19 15:03:59 -0800</bug_when>
    <thetext>Created attachment 175049
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771078</commentid>
    <comment_count>14</comment_count>
      <attachid>175052</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-19 15:09:13 -0800</bug_when>
    <thetext>Created attachment 175052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771082</commentid>
    <comment_count>15</comment_count>
      <attachid>175052</attachid>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-19 15:09:59 -0800</bug_when>
    <thetext>Comment on attachment 175052
Patch

Rebase to upstream because this conflicts Bug 102664</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771091</commentid>
    <comment_count>16</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-11-19 15:23:25 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 175052 [details])
&gt; Rebase to upstream because this conflicts Bug 102664

(When a patch is already review, leave the r flag blank, no need to set it as r+)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771097</commentid>
    <comment_count>17</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-11-19 15:29:47 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; (From update of attachment 175052 [details] [details])
&gt; &gt; Rebase to upstream because this conflicts Bug 102664
&gt; 
&gt; (When a patch is already review, leave the r flag blank, no need to set it as r+)

Yes. Thanks for explanation!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771143</commentid>
    <comment_count>18</comment_count>
      <attachid>175052</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-19 16:04:31 -0800</bug_when>
    <thetext>Comment on attachment 175052
Patch

Clearing flags on attachment: 175052

Committed r135207: &lt;http://trac.webkit.org/changeset/135207&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>771144</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-19 16:04:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174565</attachid>
            <date>2012-11-15 17:14:16 -0800</date>
            <delta_ts>2012-11-15 20:23:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102449-20121116101139.patch</filename>
            <type>text/plain</type>
            <size>17145</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0ODUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDgxMThkYmU2NmZkNDIx
NDJkOTNkOTdlMTA2YTZmZDBhMTExZDkwOC4uNmI2ODYyNGU4ODhlNzM1MDQ1ODJmMjcyNTQxMzRm
NDRiZmUyM2Y5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU2IEBACiAyMDEyLTExLTE1ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZW1vdmUgYSB0ZXh0dXJlIGlmIGFuIGRpcmVjdCBjb21wb3NpdGVkIGlt
YWdlIGlzIG9mZiB0aGUgdmlld3BvcnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDI0NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDdXJyZW50bHksIG9uY2UgdXBsb2FkaW5nIHRleHR1cmVzIGZvciBj
b21wb3NpdGVkIGltYWdlcywgQ29vcmRpbmF0ZWQgR3JhcGhpY3MKKyAgICAgICAgZG9lcyBub3Qg
cmVsZWFzZSB0aGUgdGV4dHVyZXMgdW50aWwgYWxsIGxheWVycyB1c2luZyBpbWFnZXMgYXJlIGRl
c3Ryb3llZC4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgYSB0ZXh0dXJlIGlmIHdlIGRv
bid0IG5lZWQgdG8gcmVuZGVyIGFuIGltYWdlLiBUaGlzIG1lY2hhbmlzbQorICAgICAgICBpcyBz
aW1pbGFyIGhvdyBUaWxlZEJhY2tpbmdTdG9yZSByZW1vdmVzIGludmlzaWJsZSB0aWxlcy4KKwor
ICAgICAgICBXaGVuIGFsbCBsYXllcnMgYXJlIGludmlzaWJsZSwgd2Ugd2FpdCAzIHNlY29uZHMg
dG8gcmVtb3ZlIHRoZSBpbWFnZSwgYmVjYXVzZSB3ZQorICAgICAgICB3YW50IHRvIHByZXZlbnQg
YSB0cmFuc2Zvcm0gYW5pbWF0aW9uIGZyb20gY3JlYXRpbmcgYW5kIGRlc3Ryb3lpbmcgYSB0ZXh0
dXJlCisgICAgICAgIG92ZXIgYW5kIG92ZXIgYWdhaW4uCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6bWFrZUltYWdlQmFja2luZ0lu
dmlzaWJsZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuaDoKKyAgICAgICAgKExheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6bWFrZUltYWdlQmFja2luZ0ludmlzaWJs
ZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmg6CisgICAgICAgIChMYXllclRyZWVSZW5kZXJlcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6aW1hZ2VCYWNraW5nVmlzaWJsZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEltYWdlQmFj
a2luZzo6Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGlu
YXRlZEltYWdlQmFja2luZzo6YWRkTGF5ZXJDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpDb29y
ZGluYXRlZEltYWdlQmFja2luZzo6cmVtb3ZlTGF5ZXJDbGllbnQpOgorICAgICAgICAoV2ViS2l0
OjpDb29yZGluYXRlZEltYWdlQmFja2luZzo6dXBkYXRlKToKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpzZXRJbnZpc2libGVJZk5l
ZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjppbnZpc2li
bGVUaW1lckZpcmVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5oOgorICAgICAgICAoQ29vcmRpbmF0b3Ip
OgorICAgICAgICAoTGF5ZXJDbGllbnQpOgorICAgICAgICAoQ29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xh
eWVyVHJlZUNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRp
bmF0b3I6Om1ha2VJbWFnZUJhY2tpbmdJbnZpc2libGUpOgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVD
b29yZGluYXRvci5oOgorICAgICAgICAoTGF5ZXJUcmVlQ29vcmRpbmF0b3IpOgorCisyMDEyLTEx
LTE1ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCiAgICAgICAg
IENvb3JkaW5hdGVkIEdyYXBoaWNzOiBSZWZhY3RvciBjb2RlIHJlbGF0ZWQgdG8gZGlyZWN0bHkg
Y29tcG9zaXRlZCBpbWFnZXMuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDEwMjMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGlu
YXRvclByb3h5LmNwcAppbmRleCA0NmZlZTUzYjE3Mzg1M2RlYWM1Njk1YzZhMDcyZWE0OWRmZDBj
YWU4Li4zYTk2NDk0YjNhNDBiNDZmMTBhMTQzMmVhOTEyODcyZWE2YjhlOGJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVD
b29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNwcApAQCAtMTM3LDYgKzEz
NywxMSBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnVwZGF0ZUltYWdlQmFja2lu
ZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGltYQogICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQo
JkxheWVyVHJlZVJlbmRlcmVyOjp1cGRhdGVJbWFnZUJhY2tpbmcsIG1fcmVuZGVyZXIuZ2V0KCks
IGltYWdlSUQsIFNoYXJlYWJsZVN1cmZhY2U6OmNyZWF0ZShoYW5kbGUpKSk7CiB9CiAKK3ZvaWQg
TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6bWFrZUltYWdlQmFja2luZ0ludmlzaWJsZShDb29y
ZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWdlSUQpCit7CisgICAgZGlzcGF0Y2hVcGRhdGUoYmlu
ZCgmTGF5ZXJUcmVlUmVuZGVyZXI6Om1ha2VJbWFnZUJhY2tpbmdJbnZpc2libGUsIG1fcmVuZGVy
ZXIuZ2V0KCksIGltYWdlSUQpKTsKK30KKwogdm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5
OjpyZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlEKQog
ewogICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVJbWFn
ZUJhY2tpbmcsIG1fcmVuZGVyZXIuZ2V0KCksIGltYWdlSUQpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5h
dG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuaAppbmRleCA0ZTk5NzhhMmE4Yjg0NzYxZDllZjQ1
YTc3Zjc3YmY0Nzk5YTAxMDA0Li5mOTZkNDVhMTg2MWI3NjFkMGViNjJiNWJlNjc2MmI3MzRiZWJm
MzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFw
aGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oCkBA
IC02OSw2ICs2OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZVVwZGF0ZUF0bGFzKGludCBh
dGxhc0lEKTsKICAgICB2b2lkIGNyZWF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFj
a2luZ0lEKTsKICAgICB2b2lkIHVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFj
a2luZ0lELCBjb25zdCBTaGFyZWFibGVTdXJmYWNlOjpIYW5kbGUmKTsKKyAgICB2b2lkIG1ha2VJ
bWFnZUJhY2tpbmdJbnZpc2libGUoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAgdm9p
ZCByZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAgdm9p
ZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29u
bmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsK
ICAgICB2b2lkIHVwZGF0ZVZpZXdwb3J0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3Zjc0NGE2Y2VhMmQx
ZDZmMTUxOTUxYjA4OGE5NWY3ZjNjYzlmYjczLi42NzE1ODA2YzJmYzIyNjIyYjIwZWIzZDU0MzY1
ZjRkNTcwM2MzYTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNv
b3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTMzLDYgKzMzLDcgQEAgbWVzc2FnZXMgLT4g
TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSB7CiAgICAgUmVtb3ZlVXBkYXRlQXRsYXMoaW50IGF0
bGFzSUQpCiAgICAgQ3JlYXRlSW1hZ2VCYWNraW5nKHVpbnRwdHJfdCBpbWFnZUlEKQogICAgIFVw
ZGF0ZUltYWdlQmFja2luZyh1aW50cHRyX3QgaW1hZ2VJRCwgV2ViS2l0OjpTaGFyZWFibGVTdXJm
YWNlOjpIYW5kbGUgaGFuZGxlKQorICAgIE1ha2VJbWFnZUJhY2tpbmdJbnZpc2libGUodWludHB0
cl90IGltYWdlSUQpCiAgICAgUmVtb3ZlSW1hZ2VCYWNraW5nKHVpbnRwdHJfdCBpbWFnZUlEKQog
ICAgIERpZFJlbmRlckZyYW1lKFdlYkNvcmU6OkludFNpemUgY29udGVudHNTaXplLCBXZWJDb3Jl
OjpJbnRSZWN0IGNvdmVyZWRSZWN0KQogICAgIERpZENoYW5nZVNjcm9sbFBvc2l0aW9uKFdlYkNv
cmU6OkludFBvaW50IHBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3Bw
CmluZGV4IDBiZjcyYTZjOTZhYzAwZGI5ZTkxZDIxZGY0NWM5YjJmZWEzZWVjZWQuLmYxMjVjMDQz
ZWYxYjI2ZDM4MTE2ZTY0ODViMTE4OTRkMGNmY2RhOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVSZW5kZXJlci5jcHAKQEAgLTQ0MCw2ICs0NDAsMTUgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJl
cjo6dXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJRCwg
UGEKICAgICBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMuYWRkKGJhY2tpbmdTdG9y
ZSk7CiB9CiAKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6Om1ha2VJbWFnZUJhY2tpbmdJbnZpc2li
bGUoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlEKQoreworICAgIEFTU0VSVChtX2lt
YWdlQmFja2luZ3MuY29udGFpbnMoaW1hZ2VJRCkpOworICAgIEltYWdlQmFja2luZ01hcDo6aXRl
cmF0b3IgaXQgPSBtX2ltYWdlQmFja2luZ3MuZmluZChpbWFnZUlEKTsKKyAgICBSZWZQdHI8Q29v
cmRpbmF0ZWRCYWNraW5nU3RvcmU+IGJhY2tpbmdTdG9yZSA9IGl0LT52YWx1ZTsKKyAgICBiYWNr
aW5nU3RvcmUtPnJlbW92ZVRpbGUoMSAvKiBpZCAqLyk7CisgICAgbV9iYWNraW5nU3RvcmVzV2l0
aFBlbmRpbmdCdWZmZXJzLmFkZChiYWNraW5nU3RvcmUpOworfQorCiB2b2lkIExheWVyVHJlZVJl
bmRlcmVyOjpyZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFn
ZUlEKQogewogICAgIEFTU0VSVChtX2ltYWdlQmFja2luZ3MuY29udGFpbnMoaW1hZ2VJRCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlUmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKaW5kZXggNDdlMjNkMzhjNjQ5NGI5NTViYzlj
MDg3ZmE0MzdlNzI1ZWJlMDllMC4uMjQ3NzM4ZWNiMWM1NmQ1ZGZlMjQyYWFjMGRkM2UwM2M0MzBm
NGQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCkBAIC05MSw2ICs5MSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGZsdXNoTGF5ZXJDaGFuZ2VzKCk7CiAgICAgdm9pZCBjcmVhdGVJ
bWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAgdm9pZCB1cGRhdGVJ
bWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCwgUGFzc1JlZlB0cjxTaGFyZWFi
bGVTdXJmYWNlPik7CisgICAgdm9pZCBtYWtlSW1hZ2VCYWNraW5nSW52aXNpYmxlKENvb3JkaW5h
dGVkSW1hZ2VCYWNraW5nSUQpOwogICAgIHZvaWQgcmVtb3ZlSW1hZ2VCYWNraW5nKENvb3JkaW5h
dGVkSW1hZ2VCYWNraW5nSUQpOwogICAgIHZvaWQgc2V0TGF5ZXJBbmltYXRpb25zKFdlYkxheWVy
SUQsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJBbmltYXRpb25zJik7CiAgICAgdm9pZCBz
ZXRBbmltYXRpb25zTG9ja2VkKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKaW5kZXggNjYxN2RkMjliNjcyZDE5
ZWRjY2FjYmU4M2RhZWI1NjQzNmRjYjI4MS4uNDhhZjAxY2E2MmRjZGJlMWU1MmZjNmI3ZGJjNjc4
MGJlMDJlYWQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC01NjYsNiArNTY2LDEyIEBAIHZvaWQgQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJPbmx5
KCkKICAgICBzeW5jQ2FudmFzKCk7CiB9CiAKK2Jvb2wgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjppbWFnZUJhY2tpbmdWaXNpYmxlKCkKK3sKKyAgICBBU1NFUlQobV9jb29yZGluYXRlZEltYWdl
QmFja2luZyk7CisgICAgcmV0dXJuIHRpbGVkQmFja2luZ1N0b3JlVmlzaWJsZVJlY3QoKS5pbnRl
cnNlY3RzKGNvbnRlbnRzUmVjdCgpKTsKK30KKwogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXI6OnJlbGVhc2VJbWFnZUJhY2tpbmdJZk5lZWRlZCgpCiB7CiAgICAgaWYgKCFtX2Nvb3JkaW5h
dGVkSW1hZ2VCYWNraW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAppbmRleCAyZDRmYzFjN2QxMGFjYzUwYzBlZTRhMDBmOGU0
YjIzNDA5NTc3MTE2Li5iZTlkZjE0ZjllNzU0NTIwOWNhMzJlNzAxYzAwZWIwOGYyY2EwYWQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNz
TGF5ZXIuaApAQCAtNzksNiArNzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENv
b3JkaW5hdGVkR3JhcGhpY3NMYXllciA6IHB1YmxpYyBHcmFwaGljc0xheWVyCiAgICAgLCBwdWJs
aWMgVGlsZWRCYWNraW5nU3RvcmVDbGllbnQKKyAgICAsIHB1YmxpYyBXZWJLaXQ6OkNvb3JkaW5h
dGVkSW1hZ2VCYWNraW5nOjpMYXllckNsaWVudAogICAgICwgcHVibGljIFdlYktpdDo6Q29vcmRp
bmF0ZWRUaWxlQ2xpZW50CiAgICAgLCBwdWJsaWMgR3JhcGhpY3NMYXllckFuaW1hdGlvbjo6Q2xp
ZW50IHsKIHB1YmxpYzoKQEAgLTE4Niw2ICsxODcsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgY3Jl
YXRlQmFja2luZ1N0b3JlKCk7CiAgICAgdm9pZCByZWxlYXNlSW1hZ2VCYWNraW5nSWZOZWVkZWQo
KTsKIAorICAgIC8vIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpMYXllckNsaWVudAorICAgIHZp
cnR1YWwgYm9vbCBpbWFnZUJhY2tpbmdWaXNpYmxlKCkgT1ZFUlJJREU7CisKICAgICBib29sIHNl
bGZPckFuY2VzdG9ySGF2ZU5vbkFmZmluZVRyYW5zZm9ybXMoKTsKICAgICB2b2lkIGFkanVzdENv
bnRlbnRzU2NhbGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwCmluZGV4IGE0ZjllOTA5YWY3YTE2OTg3NTU2ZGMxMDE2
NDZjNjRjZDI3YjRjNDIuLjEyMjk4YWQzZjZmZGIyNzY1YzdiYjJkZjI0ZWFkM2U0ZGNkOGQ2ZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdl
QmFja2luZy5jcHAKQEAgLTQ5LDcgKzQ5LDkgQEAgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OkNv
b3JkaW5hdGVkSW1hZ2VCYWNraW5nKENvb3JkaW5hdG9yKiBjbGllbnQsIFBhc3NSZWZQdHIKICAg
ICA6IG1fY29vcmRpbmF0b3IoY2xpZW50KQogICAgICwgbV9pbWFnZShpbWFnZSkKICAgICAsIG1f
aWQoZ2V0Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRChtX2ltYWdlLmdldCgpKSkKKyAgICAsIG1f
aW52aXNpYmxlVGltZXIodGhpcywgJkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjppbnZpc2libGVU
aW1lckZpcmVkKQogICAgICwgbV9pc0RpcnR5KGZhbHNlKQorICAgICwgbV9pc1Zpc2libGUoZmFs
c2UpCiB7CiAgICAgLy8gRklYTUU6IFdlIHdvdWxkIG5lZWQgdG8gZGVjb2RlIGEgc21hbGwgaW1h
Z2UgZGlyZWN0bHkgaW50byBhIEdyYXBoaWNzU3VyZmFjZS4KICAgICAvLyBodHRwOi8vd2Via2l0
Lm9yZy9iLzEwMTQyNgpAQCAtNjEsMTMgKzYzLDEzIEBAIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5n
Ojp+Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcoKQogewogfQogCi12b2lkIENvb3JkaW5hdGVkSW1h
Z2VCYWNraW5nOjphZGRMYXllckNsaWVudChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVy
Q2xpZW50KQordm9pZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6YWRkTGF5ZXJDbGllbnQoTGF5
ZXJDbGllbnQqIGxheWVyQ2xpZW50KQogewogICAgIEFTU0VSVCghbV9sYXllckNsaWVudHMuY29u
dGFpbnMobGF5ZXJDbGllbnQpKTsKICAgICBtX2xheWVyQ2xpZW50cy5hcHBlbmQobGF5ZXJDbGll
bnQpOwogfQogCi12b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpyZW1vdmVMYXllckNsaWVu
dChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyQ2xpZW50KQordm9pZCBDb29yZGluYXRl
ZEltYWdlQmFja2luZzo6cmVtb3ZlTGF5ZXJDbGllbnQoTGF5ZXJDbGllbnQqIGxheWVyQ2xpZW50
KQogewogICAgIHNpemVfdCBwb3NpdGlvbiA9IG1fbGF5ZXJDbGllbnRzLmZpbmQobGF5ZXJDbGll
bnQpOwogICAgIEFTU0VSVChwb3NpdGlvbiAhPSBub3RGb3VuZCk7CkBAIC04Niw4ICs4OCwxMiBA
QCB2b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjp1cGRhdGUoKQogewogICAgIHJlbGVhc2VT
dXJmYWNlSWZOZWVkZWQoKTsKIAotICAgIGlmICghbV9pc0RpcnR5KQorICAgIGJvb2wgY2hhbmdl
ZFRvVmlzaWJsZSA9IHNldEludmlzaWJsZUlmTmVlZGVkKCk7CisgICAgYm9vbCBuZWVkVG9VcGRh
dGUgPSBjaGFuZ2VkVG9WaXNpYmxlIHx8IChtX2lzVmlzaWJsZSAmJiBtX2lzRGlydHkpOworICAg
IGlmICghbmVlZFRvVXBkYXRlKSB7CisgICAgICAgIG1faXNEaXJ0eSA9IGZhbHNlOwogICAgICAg
ICByZXR1cm47CisgICAgfQogCiAgICAgbV9zdXJmYWNlID0gU2hhcmVhYmxlU3VyZmFjZTo6Y3Jl
YXRlKG1faW1hZ2UtPnNpemUoKSwgbV9pbWFnZS0+Y3VycmVudEZyYW1lSGFzQWxwaGEoKSA/IFNo
YXJlYWJsZUJpdG1hcDo6U3VwcG9ydHNBbHBoYSA6IFNoYXJlYWJsZUJpdG1hcDo6Tm9GbGFncywg
U2hhcmVhYmxlU3VyZmFjZTo6U3VwcG9ydHNHcmFwaGljc1N1cmZhY2UpOwogICAgIG1faGFuZGxl
ID0gYWRvcHRQdHIobmV3IFNoYXJlYWJsZVN1cmZhY2U6OkhhbmRsZSgpKTsKQEAgLTExNCw1ICsx
MjAsNDAgQEAgdm9pZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6cmVsZWFzZVN1cmZhY2VJZk5l
ZWRlZCgpCiAgICAgbV9zdXJmYWNlLmNsZWFyKCk7CiB9CiAKK3N0YXRpYyBjb25zdCBkb3VibGUg
SW52aXNpYmxlVGltZXJJbnRlcnZhbCA9IDM7CisKK2Jvb2wgQ29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmc6OnNldEludmlzaWJsZUlmTmVlZGVkKCkKK3sKKyAgICBib29sIHByZXZpb3VzSXNWaXNpYmxl
ID0gbV9pc1Zpc2libGU7CisKKyAgICBtX2lzVmlzaWJsZSA9IGZhbHNlOworICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9sYXllckNsaWVudHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYg
KG1fbGF5ZXJDbGllbnRzW2ldLT5pbWFnZUJhY2tpbmdWaXNpYmxlKCkpIHsKKyAgICAgICAgICAg
IG1faXNWaXNpYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorCisgICAgYm9vbCBjaGFuZ2VkVG9JbnZpc2libGUgPSBwcmV2aW91c0lzVmlzaWJsZSAmJiAh
bV9pc1Zpc2libGU7CisgICAgaWYgKGNoYW5nZWRUb0ludmlzaWJsZSkgeworICAgICAgICBBU1NF
UlQoIW1faW52aXNpYmxlVGltZXIuaXNBY3RpdmUoKSk7CisgICAgICAgIG1faW52aXNpYmxlVGlt
ZXIuc3RhcnRPbmVTaG90KEludmlzaWJsZVRpbWVySW50ZXJ2YWwpOworICAgIH0KKworICAgIGJv
b2wgY2hhbmdlZFRvVmlzaWJsZSA9ICFwcmV2aW91c0lzVmlzaWJsZSAmJiBtX2lzVmlzaWJsZTsK
KworICAgIGlmIChtX2lzVmlzaWJsZSAmJiBtX2ludmlzaWJsZVRpbWVyLmlzQWN0aXZlKCkpIHsK
KyAgICAgICAgbV9pbnZpc2libGVUaW1lci5zdG9wKCk7CisgICAgICAgIGNoYW5nZWRUb1Zpc2li
bGUgPSBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gY2hhbmdlZFRvVmlzaWJsZTsKK30KKwor
dm9pZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6aW52aXNpYmxlVGltZXJGaXJlZChXZWJDb3Jl
OjpUaW1lcjxDb29yZGluYXRlZEltYWdlQmFja2luZz4qKQoreworICAgIG1fY29vcmRpbmF0b3It
Pm1ha2VJbWFnZUJhY2tpbmdJbnZpc2libGUoaWQoKSk7Cit9CisKIH0KICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmgKaW5k
ZXggZDBjZDIxNzhhZmNkYjRlNzQxODAzMTFhZDViYzgwOTdkMzU3OTAyZC4uNjJjMjMxM2EyZTYw
NTI4MDk4NzYxZDQ1NTFiMDA3YThhY2Q3NTZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5oCkBAIC0zNSwxMCArMzUsNiBAQAog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI7Ci19Ci0K
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBDb29yZGluYXRlZEltYWdlQmFja2luZyA6IHB1
YmxpYyBSZWZDb3VudGVkPENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nPiB7CkBAIC00NywxNyArNDMs
MjMgQEAgcHVibGljOgogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUlt
YWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKSA9IDA7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCwgY29u
c3QgU2hhcmVhYmxlU3VyZmFjZTo6SGFuZGxlJikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQg
bWFrZUltYWdlQmFja2luZ0ludmlzaWJsZShDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKSA9IDA7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFn
ZUJhY2tpbmdJRCkgPSAwOwogICAgIH07CiAKKyAgICBjbGFzcyBMYXllckNsaWVudCB7CisgICAg
cHVibGljOgorICAgICAgICB2aXJ0dWFsIGJvb2wgaW1hZ2VCYWNraW5nVmlzaWJsZSgpID0gMDsK
KyAgICB9OworCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc+
IGNyZWF0ZShDb29yZGluYXRvciosIFBhc3NSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+KTsKICAgICB2
aXJ0dWFsIH5Db29yZGluYXRlZEltYWdlQmFja2luZygpOwogCiAgICAgc3RhdGljIENvb3JkaW5h
dGVkSW1hZ2VCYWNraW5nSUQgZ2V0Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRChXZWJDb3JlOjpJ
bWFnZSopOwogICAgIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaWQoKSBjb25zdCB7IHJldHVy
biBtX2lkOyB9CiAKLSAgICB2b2lkIGFkZExheWVyQ2xpZW50KFdlYkNvcmU6OkNvb3JkaW5hdGVk
R3JhcGhpY3NMYXllciopOwotICAgIHZvaWQgcmVtb3ZlTGF5ZXJDbGllbnQoV2ViQ29yZTo6Q29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyKik7CisgICAgdm9pZCBhZGRMYXllckNsaWVudChMYXllckNs
aWVudCopOworICAgIHZvaWQgcmVtb3ZlTGF5ZXJDbGllbnQoTGF5ZXJDbGllbnQqKTsKIAogICAg
IC8vIFdoZW4gYSBuZXcgaW1hZ2UgaXMgdXBkYXRlZCBvciBhbiBhbmltYXRlZCBnaWYgaXMgcHJv
Z3Jlc3NlZCwgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyIGNhbGxzIG1hcmtEaXJ0eSgpLgogICAg
IHZvaWQgbWFya0RpcnR5KCk7CkBAIC02OSwxNiArNzEsMjIgQEAgcHJpdmF0ZToKICAgICBDb29y
ZGluYXRlZEltYWdlQmFja2luZyhDb29yZGluYXRvciosIFBhc3NSZWZQdHI8V2ViQ29yZTo6SW1h
Z2U+KTsKIAogICAgIHZvaWQgcmVsZWFzZVN1cmZhY2VJZk5lZWRlZCgpOworICAgIGJvb2wgc2V0
SW52aXNpYmxlSWZOZWVkZWQoKTsKKyAgICB2b2lkIGludmlzaWJsZVRpbWVyRmlyZWQoV2ViQ29y
ZTo6VGltZXI8Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc+Kik7CiAKICAgICBDb29yZGluYXRvciog
bV9jb29yZGluYXRvcjsKICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IG1faW1hZ2U7CiAgICAg
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBtX2lkOwotICAgIFZlY3RvcjxXZWJDb3JlOjpDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIqPiBtX2xheWVyQ2xpZW50czsKKyAgICBWZWN0b3I8TGF5ZXJD
bGllbnQqPiBtX2xheWVyQ2xpZW50czsKIAogICAgIFJlZlB0cjxTaGFyZWFibGVTdXJmYWNlPiBt
X3N1cmZhY2U7CiAgICAgT3duUHRyPFNoYXJlYWJsZVN1cmZhY2U6OkhhbmRsZT4gbV9oYW5kbGU7
CiAKKyAgICBXZWJDb3JlOjpUaW1lcjxDb29yZGluYXRlZEltYWdlQmFja2luZz4gbV9pbnZpc2li
bGVUaW1lcjsKKwogICAgIGJvb2wgbV9pc0RpcnR5OworICAgIGJvb2wgbV9pc1Zpc2libGU7CisK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3Jk
aW5hdG9yLmNwcAppbmRleCA1OWE5NGRkMWY3MDhlNDBhMTAxZGIzZjc4ZTA2Y2U4MWRiYjNlZGYy
Li4yZmYyMTYzZWUzYWQ1MjE2NmY0NDU4M2M2NDkwMGNlNmM0MzE0NTFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCkBAIC00OTIs
NiArNDkyLDEyIEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnVwZGF0ZUltYWdlQmFja2lu
ZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWdlSUQsCiAgICAgbV93ZWJQYWdlLT5zZW5k
KE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpVcGRhdGVJbWFnZUJhY2tpbmco
aW1hZ2VJRCwgaGFuZGxlKSk7CiB9CiAKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6Om1ha2VJ
bWFnZUJhY2tpbmdJbnZpc2libGUoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlEKQor
eworICAgIG1fc2hvdWxkU3luY0ZyYW1lID0gdHJ1ZTsKKyAgICBtX3dlYlBhZ2UtPnNlbmQoTWVz
c2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6Ok1ha2VJbWFnZUJhY2tpbmdJbnZpc2li
bGUoaW1hZ2VJRCkpOworfQorCiB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpyZW1vdmVJbWFn
ZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlEKQogewogICAgIGlmICht
X2lzUHVyZ2luZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29y
ZGluYXRvci5oCmluZGV4IDE5OGUzYzExMjEzZmFjNzI5ZjQ3NDVhNTI0NjczZWUzNGY3N2ViOWIu
LjUwOTVlODYwMTBiMWYzZjdkYzJkM2Q5MzA1MjgxYTRkMDI5Y2Q0NDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVy
VHJlZUNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaApAQCAtMTE2LDYgKzEx
Niw3IEBAIHByaXZhdGU6CiAgICAgLy8gQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OkNvb3JkaW5h
dG9yCiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdl
QmFja2luZ0lEKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlSW1hZ2VCYWNraW5n
KENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQsIGNvbnN0IFNoYXJlYWJsZVN1cmZhY2U6OkhhbmRs
ZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBtYWtlSW1hZ2VCYWNraW5nSW52aXNpYmxl
KENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBy
ZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkgT1ZFUlJJREU7CiAK
ICAgICB2b2lkIGZsdXNoUGVuZGluZ0ltYWdlQmFja2luZ0NoYW5nZXMoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174598</attachid>
            <date>2012-11-15 20:23:37 -0800</date>
            <delta_ts>2012-11-18 23:57:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102449-20121116132100.patch</filename>
            <type>text/plain</type>
            <size>17165</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0ODgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2ZhODc1OGU0MmFkNjIw
MmJiNGQyYjhiNTk0MDAzNmI4Y2M1MDE4NS4uYmM0NThmZWQzMWIxZDEzYjY2NGI0NGQyZmIzMzM0
MmYwM2Y3OWQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU2IEBACiAyMDEyLTExLTE1ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgogCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZW1vdmUgYSB0ZXh0dXJlIGlmIGFuIGRpcmVjdCBjb21wb3NpdGVkIGlt
YWdlIGlzIG9mZiB0aGUgdmlld3BvcnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDI0NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDdXJyZW50bHksIG9uY2UgdXBsb2FkaW5nIHRleHR1cmVzIGZvciBj
b21wb3NpdGVkIGltYWdlcywgQ29vcmRpbmF0ZWQgR3JhcGhpY3MKKyAgICAgICAgZG9lcyBub3Qg
cmVsZWFzZSB0aGUgdGV4dHVyZXMgdW50aWwgYWxsIGxheWVycyB1c2luZyBpbWFnZXMgYXJlIGRl
c3Ryb3llZC4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgYSB0ZXh0dXJlIGlmIHdlIGRv
bid0IG5lZWQgdG8gcmVuZGVyIGFuIGltYWdlLiBUaGlzIG1lY2hhbmlzbQorICAgICAgICBpcyBz
aW1pbGFyIGhvdyBUaWxlZEJhY2tpbmdTdG9yZSByZW1vdmVzIGludmlzaWJsZSB0aWxlcy4KKwor
ICAgICAgICBXaGVuIGFsbCBsYXllcnMgYXJlIGludmlzaWJsZSwgd2Ugd2FpdCAzIHNlY29uZHMg
dG8gcmVtb3ZlIHRoZSBpbWFnZSwgYmVjYXVzZSB3ZQorICAgICAgICB3YW50IHRvIHByZXZlbnQg
YSB0cmFuc2Zvcm0gYW5pbWF0aW9uIGZyb20gY3JlYXRpbmcgYW5kIGRlc3Ryb3lpbmcgYSB0ZXh0
dXJlCisgICAgICAgIG92ZXIgYW5kIG92ZXIgYWdhaW4uCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6bWFrZUltYWdlQmFja2luZ0lu
dmlzaWJsZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuaDoKKyAgICAgICAgKExheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICog
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6bWFrZUltYWdlQmFja2luZ0ludmlzaWJs
ZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmg6CisgICAgICAgIChMYXllclRyZWVSZW5kZXJlcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6aW1hZ2VCYWNraW5nVmlzaWJsZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEltYWdlQmFj
a2luZzo6Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGlu
YXRlZEltYWdlQmFja2luZzo6YWRkTGF5ZXJDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpDb29y
ZGluYXRlZEltYWdlQmFja2luZzo6cmVtb3ZlTGF5ZXJDbGllbnQpOgorICAgICAgICAoV2ViS2l0
OjpDb29yZGluYXRlZEltYWdlQmFja2luZzo6dXBkYXRlKToKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpzZXRJbnZpc2libGVJZk5l
ZWRlZCk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjppbnZpc2li
bGVUaW1lckZpcmVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5oOgorICAgICAgICAoQ29vcmRpbmF0b3Ip
OgorICAgICAgICAoTGF5ZXJDbGllbnQpOgorICAgICAgICAoQ29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmcpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xh
eWVyVHJlZUNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRp
bmF0b3I6Om1ha2VJbWFnZUJhY2tpbmdJbnZpc2libGUpOgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVD
b29yZGluYXRvci5oOgorICAgICAgICAoTGF5ZXJUcmVlQ29vcmRpbmF0b3IpOgorCisyMDEyLTEx
LTE1ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCiAgICAgICAg
IENvb3JkaW5hdGVkIEdyYXBoaWNzOiBSZW1vdmUgdGlsZXMgb2YgYSBsYXllciB3aGVuIHRoZXkg
YXJlIG9mZiB0aGUgdmlld3BvcnQuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDIzMTMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29y
ZGluYXRvclByb3h5LmNwcAppbmRleCA0NmZlZTUzYjE3Mzg1M2RlYWM1Njk1YzZhMDcyZWE0OWRm
ZDBjYWU4Li4zYTk2NDk0YjNhNDBiNDZmMTBhMTQzMmVhOTEyODcyZWE2YjhlOGJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNwcApAQCAtMTM3LDYg
KzEzNywxMSBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OnVwZGF0ZUltYWdlQmFj
a2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGltYQogICAgIGRpc3BhdGNoVXBkYXRlKGJp
bmQoJkxheWVyVHJlZVJlbmRlcmVyOjp1cGRhdGVJbWFnZUJhY2tpbmcsIG1fcmVuZGVyZXIuZ2V0
KCksIGltYWdlSUQsIFNoYXJlYWJsZVN1cmZhY2U6OmNyZWF0ZShoYW5kbGUpKSk7CiB9CiAKK3Zv
aWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6bWFrZUltYWdlQmFja2luZ0ludmlzaWJsZShD
b29yZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWdlSUQpCit7CisgICAgZGlzcGF0Y2hVcGRhdGUo
YmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6Om1ha2VJbWFnZUJhY2tpbmdJbnZpc2libGUsIG1fcmVu
ZGVyZXIuZ2V0KCksIGltYWdlSUQpKTsKK30KKwogdm9pZCBMYXllclRyZWVDb29yZGluYXRvclBy
b3h5OjpyZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlE
KQogewogICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVJ
bWFnZUJhY2tpbmcsIG1fcmVuZGVyZXIuZ2V0KCksIGltYWdlSUQpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3Jk
aW5hdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuaAppbmRleCA0ZTk5NzhhMmE4Yjg0NzYxZDll
ZjQ1YTc3Zjc3YmY0Nzk5YTAxMDA0Li5mOTZkNDVhMTg2MWI3NjFkMGViNjJiNWJlNjc2MmI3MzRi
ZWJmMzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5o
CkBAIC02OSw2ICs2OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZVVwZGF0ZUF0bGFzKGlu
dCBhdGxhc0lEKTsKICAgICB2b2lkIGNyZWF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdl
QmFja2luZ0lEKTsKICAgICB2b2lkIHVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdl
QmFja2luZ0lELCBjb25zdCBTaGFyZWFibGVTdXJmYWNlOjpIYW5kbGUmKTsKKyAgICB2b2lkIG1h
a2VJbWFnZUJhY2tpbmdJbnZpc2libGUoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAg
dm9pZCByZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAg
dm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6
Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXIm
KTsKICAgICB2b2lkIHVwZGF0ZVZpZXdwb3J0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgppbmRleCA3Zjc0NGE2Y2Vh
MmQxZDZmMTUxOTUxYjA4OGE5NWY3ZjNjYzlmYjczLi42NzE1ODA2YzJmYzIyNjIyYjIwZWIzZDU0
MzY1ZjRkNTcwM2MzYTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTMzLDYgKzMzLDcgQEAgbWVzc2FnZXMg
LT4gTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eSB7CiAgICAgUmVtb3ZlVXBkYXRlQXRsYXMoaW50
IGF0bGFzSUQpCiAgICAgQ3JlYXRlSW1hZ2VCYWNraW5nKHVpbnRwdHJfdCBpbWFnZUlEKQogICAg
IFVwZGF0ZUltYWdlQmFja2luZyh1aW50cHRyX3QgaW1hZ2VJRCwgV2ViS2l0OjpTaGFyZWFibGVT
dXJmYWNlOjpIYW5kbGUgaGFuZGxlKQorICAgIE1ha2VJbWFnZUJhY2tpbmdJbnZpc2libGUodWlu
dHB0cl90IGltYWdlSUQpCiAgICAgUmVtb3ZlSW1hZ2VCYWNraW5nKHVpbnRwdHJfdCBpbWFnZUlE
KQogICAgIERpZFJlbmRlckZyYW1lKFdlYkNvcmU6OkludFNpemUgY29udGVudHNTaXplLCBXZWJD
b3JlOjpJbnRSZWN0IGNvdmVyZWRSZWN0KQogICAgIERpZENoYW5nZVNjcm9sbFBvc2l0aW9uKFdl
YkNvcmU6OkludFBvaW50IHBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIu
Y3BwCmluZGV4IDBiZjcyYTZjOTZhYzAwZGI5ZTkxZDIxZGY0NWM5YjJmZWEzZWVjZWQuLmYxMjVj
MDQzZWYxYjI2ZDM4MTE2ZTY0ODViMTE4OTRkMGNmY2RhOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVSZW5kZXJlci5jcHAKQEAgLTQ0MCw2ICs0NDAsMTUgQEAgdm9pZCBMYXllclRyZWVSZW5k
ZXJlcjo6dXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJ
RCwgUGEKICAgICBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMuYWRkKGJhY2tpbmdT
dG9yZSk7CiB9CiAKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6Om1ha2VJbWFnZUJhY2tpbmdJbnZp
c2libGUoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlEKQoreworICAgIEFTU0VSVCht
X2ltYWdlQmFja2luZ3MuY29udGFpbnMoaW1hZ2VJRCkpOworICAgIEltYWdlQmFja2luZ01hcDo6
aXRlcmF0b3IgaXQgPSBtX2ltYWdlQmFja2luZ3MuZmluZChpbWFnZUlEKTsKKyAgICBSZWZQdHI8
Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU+IGJhY2tpbmdTdG9yZSA9IGl0LT52YWx1ZTsKKyAgICBi
YWNraW5nU3RvcmUtPnJlbW92ZVRpbGUoMSAvKiBpZCAqLyk7CisgICAgbV9iYWNraW5nU3RvcmVz
V2l0aFBlbmRpbmdCdWZmZXJzLmFkZChiYWNraW5nU3RvcmUpOworfQorCiB2b2lkIExheWVyVHJl
ZVJlbmRlcmVyOjpyZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBp
bWFnZUlEKQogewogICAgIEFTU0VSVChtX2ltYWdlQmFja2luZ3MuY29udGFpbnMoaW1hZ2VJRCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvTGF5ZXJUcmVlUmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKaW5kZXggNDdlMjNkMzhjNjQ5NGI5NTVi
YzljMDg3ZmE0MzdlNzI1ZWJlMDllMC4uMjQ3NzM4ZWNiMWM1NmQ1ZGZlMjQyYWFjMGRkM2UwM2M0
MzBmNGQzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCkBAIC05MSw2ICs5MSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGZsdXNoTGF5ZXJDaGFuZ2VzKCk7CiAgICAgdm9pZCBjcmVh
dGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAgdm9pZCB1cGRh
dGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCwgUGFzc1JlZlB0cjxTaGFy
ZWFibGVTdXJmYWNlPik7CisgICAgdm9pZCBtYWtlSW1hZ2VCYWNraW5nSW52aXNpYmxlKENvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nSUQpOwogICAgIHZvaWQgcmVtb3ZlSW1hZ2VCYWNraW5nKENvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nSUQpOwogICAgIHZvaWQgc2V0TGF5ZXJBbmltYXRpb25zKFdlYkxh
eWVySUQsIGNvbnN0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJBbmltYXRpb25zJik7CiAgICAgdm9p
ZCBzZXRBbmltYXRpb25zTG9ja2VkKGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKaW5kZXggMzgyZDYyMGRmYzEz
MjcxNTI1NTM4OTkyZTMxYmVlNjZiNTdkN2ViMy4uNDFiMTg0ZWI5M2Q5MDU0YTk3YzYxNzcwNDZm
MjMxNWY1MzkyMzhmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCkBAIC01NjEsNiArNTYxLDEyIEBAIHZvaWQgQ29v
cmRpbmF0ZWRHcmFwaGljc0xheWVyOjpmbHVzaENvbXBvc2l0aW5nU3RhdGVGb3JUaGlzTGF5ZXJP
bmx5KCkKICAgICBzeW5jQ2FudmFzKCk7CiB9CiAKK2Jvb2wgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOjppbWFnZUJhY2tpbmdWaXNpYmxlKCkKK3sKKyAgICBBU1NFUlQobV9jb29yZGluYXRlZElt
YWdlQmFja2luZyk7CisgICAgcmV0dXJuIHRpbGVkQmFja2luZ1N0b3JlVmlzaWJsZVJlY3QoKS5p
bnRlcnNlY3RzKGNvbnRlbnRzUmVjdCgpKTsKK30KKwogdm9pZCBDb29yZGluYXRlZEdyYXBoaWNz
TGF5ZXI6OnJlbGVhc2VJbWFnZUJhY2tpbmdJZk5lZWRlZCgpCiB7CiAgICAgaWYgKCFtX2Nvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAppbmRleCA5YzM3NTIxNzZmMjEzYzliOTM1MGZjYmY5
MmU2MTMxNDY2YWY5Y2EzLi5jNzFhOWQzNDQ4OTE4YzA3YjU0NTQxY2EyNDI5MjJhMjc0ZjAwYWE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuaApAQCAtNzksNiArNzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciA6IHB1YmxpYyBHcmFwaGljc0xheWVyCiAgICAgLCBw
dWJsaWMgVGlsZWRCYWNraW5nU3RvcmVDbGllbnQKKyAgICAsIHB1YmxpYyBXZWJLaXQ6OkNvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nOjpMYXllckNsaWVudAogICAgICwgcHVibGljIFdlYktpdDo6Q29v
cmRpbmF0ZWRUaWxlQ2xpZW50IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBDb29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCopOwpAQCAtMTg1LDYgKzE4Niw5IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBjcmVhdGVCYWNraW5nU3RvcmUoKTsKICAgICB2b2lkIHJlbGVhc2VJ
bWFnZUJhY2tpbmdJZk5lZWRlZCgpOwogCisgICAgLy8gQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6
OkxheWVyQ2xpZW50CisgICAgdmlydHVhbCBib29sIGltYWdlQmFja2luZ1Zpc2libGUoKSBPVkVS
UklERTsKKwogICAgIGJvb2wgc2VsZk9yQW5jZXN0b3JIYXZlTm9uQWZmaW5lVHJhbnNmb3Jtcygp
OwogICAgIHZvaWQgYWRqdXN0Q29udGVudHNTY2FsZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEltYWdlQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAKaW5kZXggYTRmOWU5
MDlhZjdhMTY5ODc1NTZkYzEwMTY0NmM2NGNkMjdiNGM0Mi4uMTIyOThhZDNmNmZkYjI3NjVjN2Ji
MmRmMjRlYWQzZTRkY2Q4ZDZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcApAQCAtNDksNyArNDksOSBAQCBDb29yZGlu
YXRlZEltYWdlQmFja2luZzo6Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcoQ29vcmRpbmF0b3IqIGNs
aWVudCwgUGFzc1JlZlB0cgogICAgIDogbV9jb29yZGluYXRvcihjbGllbnQpCiAgICAgLCBtX2lt
YWdlKGltYWdlKQogICAgICwgbV9pZChnZXRDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKG1faW1h
Z2UuZ2V0KCkpKQorICAgICwgbV9pbnZpc2libGVUaW1lcih0aGlzLCAmQ29vcmRpbmF0ZWRJbWFn
ZUJhY2tpbmc6OmludmlzaWJsZVRpbWVyRmlyZWQpCiAgICAgLCBtX2lzRGlydHkoZmFsc2UpCisg
ICAgLCBtX2lzVmlzaWJsZShmYWxzZSkKIHsKICAgICAvLyBGSVhNRTogV2Ugd291bGQgbmVlZCB0
byBkZWNvZGUgYSBzbWFsbCBpbWFnZSBkaXJlY3RseSBpbnRvIGEgR3JhcGhpY3NTdXJmYWNlLgog
ICAgIC8vIGh0dHA6Ly93ZWJraXQub3JnL2IvMTAxNDI2CkBAIC02MSwxMyArNjMsMTMgQEAgQ29v
cmRpbmF0ZWRJbWFnZUJhY2tpbmc6On5Db29yZGluYXRlZEltYWdlQmFja2luZygpCiB7CiB9CiAK
LXZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OmFkZExheWVyQ2xpZW50KENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllciogbGF5ZXJDbGllbnQpCit2b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5n
OjphZGRMYXllckNsaWVudChMYXllckNsaWVudCogbGF5ZXJDbGllbnQpCiB7CiAgICAgQVNTRVJU
KCFtX2xheWVyQ2xpZW50cy5jb250YWlucyhsYXllckNsaWVudCkpOwogICAgIG1fbGF5ZXJDbGll
bnRzLmFwcGVuZChsYXllckNsaWVudCk7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmc6OnJlbW92ZUxheWVyQ2xpZW50KENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXJDbGll
bnQpCit2b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpyZW1vdmVMYXllckNsaWVudChMYXll
ckNsaWVudCogbGF5ZXJDbGllbnQpCiB7CiAgICAgc2l6ZV90IHBvc2l0aW9uID0gbV9sYXllckNs
aWVudHMuZmluZChsYXllckNsaWVudCk7CiAgICAgQVNTRVJUKHBvc2l0aW9uICE9IG5vdEZvdW5k
KTsKQEAgLTg2LDggKzg4LDEyIEBAIHZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnVwZGF0
ZSgpCiB7CiAgICAgcmVsZWFzZVN1cmZhY2VJZk5lZWRlZCgpOwogCi0gICAgaWYgKCFtX2lzRGly
dHkpCisgICAgYm9vbCBjaGFuZ2VkVG9WaXNpYmxlID0gc2V0SW52aXNpYmxlSWZOZWVkZWQoKTsK
KyAgICBib29sIG5lZWRUb1VwZGF0ZSA9IGNoYW5nZWRUb1Zpc2libGUgfHwgKG1faXNWaXNpYmxl
ICYmIG1faXNEaXJ0eSk7CisgICAgaWYgKCFuZWVkVG9VcGRhdGUpIHsKKyAgICAgICAgbV9pc0Rp
cnR5ID0gZmFsc2U7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBtX3N1cmZhY2UgPSBT
aGFyZWFibGVTdXJmYWNlOjpjcmVhdGUobV9pbWFnZS0+c2l6ZSgpLCBtX2ltYWdlLT5jdXJyZW50
RnJhbWVIYXNBbHBoYSgpID8gU2hhcmVhYmxlQml0bWFwOjpTdXBwb3J0c0FscGhhIDogU2hhcmVh
YmxlQml0bWFwOjpOb0ZsYWdzLCBTaGFyZWFibGVTdXJmYWNlOjpTdXBwb3J0c0dyYXBoaWNzU3Vy
ZmFjZSk7CiAgICAgbV9oYW5kbGUgPSBhZG9wdFB0cihuZXcgU2hhcmVhYmxlU3VyZmFjZTo6SGFu
ZGxlKCkpOwpAQCAtMTE0LDUgKzEyMCw0MCBAQCB2b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5n
OjpyZWxlYXNlU3VyZmFjZUlmTmVlZGVkKCkKICAgICBtX3N1cmZhY2UuY2xlYXIoKTsKIH0KIAor
c3RhdGljIGNvbnN0IGRvdWJsZSBJbnZpc2libGVUaW1lckludGVydmFsID0gMzsKKworYm9vbCBD
b29yZGluYXRlZEltYWdlQmFja2luZzo6c2V0SW52aXNpYmxlSWZOZWVkZWQoKQoreworICAgIGJv
b2wgcHJldmlvdXNJc1Zpc2libGUgPSBtX2lzVmlzaWJsZTsKKworICAgIG1faXNWaXNpYmxlID0g
ZmFsc2U7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2xheWVyQ2xpZW50cy5zaXplKCk7
ICsraSkgeworICAgICAgICBpZiAobV9sYXllckNsaWVudHNbaV0tPmltYWdlQmFja2luZ1Zpc2li
bGUoKSkgeworICAgICAgICAgICAgbV9pc1Zpc2libGUgPSB0cnVlOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBib29sIGNoYW5nZWRUb0ludmlzaWJsZSA9IHBy
ZXZpb3VzSXNWaXNpYmxlICYmICFtX2lzVmlzaWJsZTsKKyAgICBpZiAoY2hhbmdlZFRvSW52aXNp
YmxlKSB7CisgICAgICAgIEFTU0VSVCghbV9pbnZpc2libGVUaW1lci5pc0FjdGl2ZSgpKTsKKyAg
ICAgICAgbV9pbnZpc2libGVUaW1lci5zdGFydE9uZVNob3QoSW52aXNpYmxlVGltZXJJbnRlcnZh
bCk7CisgICAgfQorCisgICAgYm9vbCBjaGFuZ2VkVG9WaXNpYmxlID0gIXByZXZpb3VzSXNWaXNp
YmxlICYmIG1faXNWaXNpYmxlOworCisgICAgaWYgKG1faXNWaXNpYmxlICYmIG1faW52aXNpYmxl
VGltZXIuaXNBY3RpdmUoKSkgeworICAgICAgICBtX2ludmlzaWJsZVRpbWVyLnN0b3AoKTsKKyAg
ICAgICAgY2hhbmdlZFRvVmlzaWJsZSA9IGZhbHNlOworICAgIH0KKworICAgIHJldHVybiBjaGFu
Z2VkVG9WaXNpYmxlOworfQorCit2b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjppbnZpc2li
bGVUaW1lckZpcmVkKFdlYkNvcmU6OlRpbWVyPENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nPiopCit7
CisgICAgbV9jb29yZGluYXRvci0+bWFrZUltYWdlQmFja2luZ0ludmlzaWJsZShpZCgpKTsKK30K
KwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmcuaAppbmRleCBkMGNkMjE3OGFmY2RiNGU3NDE4MDMxMWFkNWJjODA5N2Qz
NTc5MDJkLi42MmMyMzEzYTJlNjA1MjgwOTg3NjFkNDU1MWIwMDdhOGFjZDc1NmY0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEltYWdlQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmgK
QEAgLTM1LDEwICszNSw2IEBACiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjsKLX0KLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIENvb3JkaW5h
dGVkSW1hZ2VCYWNraW5nIDogcHVibGljIFJlZkNvdW50ZWQ8Q29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmc+IHsKQEAgLTQ3LDE3ICs0MywyMyBAQCBwdWJsaWM6CiAgICAgcHVibGljOgogICAgICAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQp
ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRl
ZEltYWdlQmFja2luZ0lELCBjb25zdCBTaGFyZWFibGVTdXJmYWNlOjpIYW5kbGUmKSA9IDA7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBtYWtlSW1hZ2VCYWNraW5nSW52aXNpYmxlKENvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nSUQpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUltYWdlQmFj
a2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKSA9IDA7CiAgICAgfTsKIAorICAgIGNsYXNz
IExheWVyQ2xpZW50IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgYm9vbCBpbWFnZUJh
Y2tpbmdWaXNpYmxlKCkgPSAwOworICAgIH07CisKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb29y
ZGluYXRlZEltYWdlQmFja2luZz4gY3JlYXRlKENvb3JkaW5hdG9yKiwgUGFzc1JlZlB0cjxXZWJD
b3JlOjpJbWFnZT4pOwogICAgIHZpcnR1YWwgfkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nKCk7CiAK
ICAgICBzdGF0aWMgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBnZXRDb29yZGluYXRlZEltYWdl
QmFja2luZ0lEKFdlYkNvcmU6OkltYWdlKik7CiAgICAgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJ
RCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1faWQ7IH0KIAotICAgIHZvaWQgYWRkTGF5ZXJDbGllbnQo
V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKik7Ci0gICAgdm9pZCByZW1vdmVMYXll
ckNsaWVudChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqKTsKKyAgICB2b2lkIGFk
ZExheWVyQ2xpZW50KExheWVyQ2xpZW50Kik7CisgICAgdm9pZCByZW1vdmVMYXllckNsaWVudChM
YXllckNsaWVudCopOwogCiAgICAgLy8gV2hlbiBhIG5ldyBpbWFnZSBpcyB1cGRhdGVkIG9yIGFu
IGFuaW1hdGVkIGdpZiBpcyBwcm9ncmVzc2VkLCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIgY2Fs
bHMgbWFya0RpcnR5KCkuCiAgICAgdm9pZCBtYXJrRGlydHkoKTsKQEAgLTY5LDE2ICs3MSwyMiBA
QCBwcml2YXRlOgogICAgIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nKENvb3JkaW5hdG9yKiwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpJbWFnZT4pOwogCiAgICAgdm9pZCByZWxlYXNlU3VyZmFjZUlmTmVl
ZGVkKCk7CisgICAgYm9vbCBzZXRJbnZpc2libGVJZk5lZWRlZCgpOworICAgIHZvaWQgaW52aXNp
YmxlVGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxDb29yZGluYXRlZEltYWdlQmFja2luZz4qKTsK
IAogICAgIENvb3JkaW5hdG9yKiBtX2Nvb3JkaW5hdG9yOwogICAgIFJlZlB0cjxXZWJDb3JlOjpJ
bWFnZT4gbV9pbWFnZTsKICAgICBDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIG1faWQ7Ci0gICAg
VmVjdG9yPFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcio+IG1fbGF5ZXJDbGllbnRz
OworICAgIFZlY3RvcjxMYXllckNsaWVudCo+IG1fbGF5ZXJDbGllbnRzOwogCiAgICAgUmVmUHRy
PFNoYXJlYWJsZVN1cmZhY2U+IG1fc3VyZmFjZTsKICAgICBPd25QdHI8U2hhcmVhYmxlU3VyZmFj
ZTo6SGFuZGxlPiBtX2hhbmRsZTsKIAorICAgIFdlYkNvcmU6OlRpbWVyPENvb3JkaW5hdGVkSW1h
Z2VCYWNraW5nPiBtX2ludmlzaWJsZVRpbWVyOworCiAgICAgYm9vbCBtX2lzRGlydHk7CisgICAg
Ym9vbCBtX2lzVmlzaWJsZTsKKwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0
b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCmluZGV4IDU5YTk0ZGQxZjcwOGU0MGExMDFk
YjNmNzhlMDZjZTgxZGJiM2VkZjIuLjJmZjIxNjNlZTNhZDUyMTY2ZjQ0NTgzYzY0OTAwY2U2YzQz
MTQ1MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29y
ZGluYXRvci5jcHAKQEAgLTQ5Miw2ICs0OTIsMTIgQEAgdm9pZCBMYXllclRyZWVDb29yZGluYXRv
cjo6dXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJRCwK
ICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6
OlVwZGF0ZUltYWdlQmFja2luZyhpbWFnZUlELCBoYW5kbGUpKTsKIH0KIAordm9pZCBMYXllclRy
ZWVDb29yZGluYXRvcjo6bWFrZUltYWdlQmFja2luZ0ludmlzaWJsZShDb29yZGluYXRlZEltYWdl
QmFja2luZ0lEIGltYWdlSUQpCit7CisgICAgbV9zaG91bGRTeW5jRnJhbWUgPSB0cnVlOworICAg
IG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6TWFr
ZUltYWdlQmFja2luZ0ludmlzaWJsZShpbWFnZUlEKSk7Cit9CisKIHZvaWQgTGF5ZXJUcmVlQ29v
cmRpbmF0b3I6OnJlbW92ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGlt
YWdlSUQpCiB7CiAgICAgaWYgKG1faXNQdXJnaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRp
bmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKaW5kZXggMTk4ZTNjMTEyMTNmYWM3MjlmNDc0
NWE1MjQ2NzNlZTM0Zjc3ZWI5Yi4uNTA5NWU4NjAxMGIxZjNmN2RjMmQzZDkzMDUyODFhNGQwMjlj
ZDQ0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGlu
YXRvci5oCkBAIC0xMTYsNiArMTE2LDcgQEAgcHJpdmF0ZToKICAgICAvLyBDb29yZGluYXRlZElt
YWdlQmFja2luZzo6Q29vcmRpbmF0b3IKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlSW1hZ2VCYWNr
aW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCwgY29uc3QgU2hh
cmVhYmxlU3VyZmFjZTo6SGFuZGxlJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG1ha2VJ
bWFnZUJhY2tpbmdJbnZpc2libGUoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFj
a2luZ0lEKSBPVkVSUklERTsKIAogICAgIHZvaWQgZmx1c2hQZW5kaW5nSW1hZ2VCYWNraW5nQ2hh
bmdlcygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174902</attachid>
            <date>2012-11-18 23:57:20 -0800</date>
            <delta_ts>2012-11-19 14:56:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102449-20121119165501.patch</filename>
            <type>text/plain</type>
            <size>18403</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzVkMDczNzg1YzIzZjg0
OTI4ZDdlM2RmNThhNDk5ODA0NThlYTRmNi4uZGQwNDVjZmE3ZGRlOTY3NGVlZjViZjI2YjM1NGFk
OWIzZTA5ZWNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTExLTE4ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZW1vdmUgYSB0ZXh0dXJlIGlmIGFuIGRpcmVjdCBjb21wb3NpdGVkIGlt
YWdlIGlzIG9mZiB0aGUgdmlld3BvcnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDI0NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDdXJyZW50bHksIG9uY2UgdXBsb2FkaW5nIHRleHR1cmVzIGZvciBj
b21wb3NpdGVkIGltYWdlcywgQ29vcmRpbmF0ZWQgR3JhcGhpY3MKKyAgICAgICAgZG9lcyBub3Qg
cmVsZWFzZSB0aGUgdGV4dHVyZXMgdW50aWwgYWxsIGxheWVycyB1c2luZyBpbWFnZXMgYXJlIGRl
c3Ryb3llZC4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgYSB0ZXh0dXJlIGlmIHdlIGRv
bid0IG5lZWQgdG8gcmVuZGVyIGFuIGltYWdlLiBUaGlzIG1lY2hhbmlzbQorICAgICAgICBpcyBz
aW1pbGFyIGhvdyBUaWxlZEJhY2tpbmdTdG9yZSByZW1vdmVzIGludmlzaWJsZSB0aWxlcy4KKwor
ICAgICAgICBXaGVuIGFsbCBsYXllcnMgYXJlIGludmlzaWJsZSwgd2Ugd2FpdCAzIHNlY29uZHMg
dG8gcmVtb3ZlIHRoZSBjb250ZW50CisgICAgICAgIG9mIHRoZSBpbWFnZSwgYmVjYXVzZSB3ZSB3
YW50IHRvIHByZXZlbnQgYSB0cmFuc2Zvcm0gYW5pbWF0aW9uIGZyb20KKyAgICAgICAgY3JlYXRp
bmcgYW5kIGRlc3Ryb3lpbmcgYSB0ZXh0dXJlIG92ZXIgYW5kIG92ZXIgYWdhaW4uCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6Y2xl
YXJJbWFnZUJhY2tpbmdDb250ZW50cyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuaDoK
KyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVu
ZGVyZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVSZW5kZXJlcjo6Y2xlYXJJbWFn
ZUJhY2tpbmdDb250ZW50cyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmg6CisgICAgICAgIChMYXll
clRyZWVSZW5kZXJlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6aW1hZ2VCYWNraW5nVmlzaWJsZSk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaDoKKyAgICAgICAgKENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb29y
ZGluYXRlZEltYWdlQmFja2luZzo6Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcpOgorICAgICAgICAo
V2ViS2l0OjpDb29yZGluYXRlZEltYWdlQmFja2luZzo6YWRkTGF5ZXJDbGllbnQpOgorICAgICAg
ICAoV2ViS2l0OjpDb29yZGluYXRlZEltYWdlQmFja2luZzo6cmVtb3ZlTGF5ZXJDbGllbnQpOgor
ICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEltYWdlQmFja2luZzo6dXBkYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OmN1cnJlbnRGcmFtZVVwZGF0ZWRB
bHJlYWR5KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nOjpjaGFuZ2VWaXNpYmlsaXR5SWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0
OjpDb29yZGluYXRlZEltYWdlQmFja2luZzo6Y2xlYXJDb250ZW50c1RpbWVyRmlyZWQpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nLmg6CisgICAgICAgIChDb29yZGluYXRvcik6CisgICAgICAgIChMYXllckNs
aWVudCk6CisgICAgICAgIChDb29yZGluYXRlZEltYWdlQmFja2luZyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3Iu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6Y2xlYXJJbWFnZUJh
Y2tpbmdDb250ZW50cyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmg6CisgICAg
ICAgIChMYXllclRyZWVDb29yZGluYXRvcik6CisKIDIwMTItMTEtMTggIFlhZWwgQWhhcm9uICA8
eWFlbC5haGFyb25AaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdW1dLMl0gV3JvbmcgdHJhbnNm
b3JtIHdoZW4gdXNpbmcgc29mdHdhcmUgcGF0aC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJU
cmVlQ29vcmRpbmF0b3JQcm94eS5jcHAKaW5kZXggMjdmNWU1NWY1ZWExYTQ0YjE5MjU0N2MyMjc5
NGRmMWFmYjAzZTNlMy4uZDNjZDdkODNjNzBiYTlhNzU1OTUxYjQzNDQ4ZmIzODc4YWJhYTRkNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAg
LTE1Miw2ICsxNTIsMTEgQEAgdm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5Ojp1cGRhdGVJ
bWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWEKICAgICBkaXNwYXRjaFVw
ZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJlcjo6dXBkYXRlSW1hZ2VCYWNraW5nLCBtX3JlbmRl
cmVyLmdldCgpLCBpbWFnZUlELCBTaGFyZWFibGVTdXJmYWNlOjpjcmVhdGUoaGFuZGxlKSkpOwog
fQogCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHk6OmNsZWFySW1hZ2VCYWNraW5nQ29u
dGVudHMoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlEKQoreworICAgIGRpc3BhdGNo
VXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjpjbGVhckltYWdlQmFja2luZ0NvbnRlbnRz
LCBtX3JlbmRlcmVyLmdldCgpLCBpbWFnZUlEKSk7Cit9CisKIHZvaWQgTGF5ZXJUcmVlQ29vcmRp
bmF0b3JQcm94eTo6cmVtb3ZlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQg
aW1hZ2VJRCkKIHsKICAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJlcjo6
cmVtb3ZlSW1hZ2VCYWNraW5nLCBtX3JlbmRlcmVyLmdldCgpLCBpbWFnZUlEKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0
ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmgKaW5kZXggMWRmMmM4MTFlYTE1
NDg5YWE1NGFmYjYyMGY0MGVlMTgyN2ZiMjEwOC4uYzg3MmZlMGYyMTQ5Y2FlZjNjZmRmNDUxYzQ3
MzUxZjZlY2ZlYjMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9y
UHJveHkuaApAQCAtNzMsNiArNzMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVVcGRhdGVB
dGxhcyhpbnQgYXRsYXNJRCk7CiAgICAgdm9pZCBjcmVhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAgdm9pZCB1cGRhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmdJRCwgY29uc3QgU2hhcmVhYmxlU3VyZmFjZTo6SGFuZGxlJik7CisgICAg
dm9pZCBjbGVhckltYWdlQmFja2luZ0NvbnRlbnRzKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQp
OwogICAgIHZvaWQgcmVtb3ZlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQp
OwogICAgIHZvaWQgZGlkUmVjZWl2ZUxheWVyVHJlZUNvb3JkaW5hdG9yUHJveHlNZXNzYWdlKENv
cmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VE
ZWNvZGVyJik7CiAgICAgdm9pZCB1cGRhdGVWaWV3cG9ydCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0
b3JQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMGNm
NWUyZDk5MWUwYjYxZjQ2NjhiN2FjYmNkNmYxZTZmYmFjMmJkOC4uNWEwZWE2ODNlYmU3OTg4MWZj
NDVjMTdiZjI3ZDE2MGJjM2I3NGE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zNyw2ICszNyw3IEBAIG1l
c3NhZ2VzIC0+IExheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkgewogICAgIFJlbW92ZVVwZGF0ZUF0
bGFzKGludCBhdGxhc0lEKQogICAgIENyZWF0ZUltYWdlQmFja2luZyh1aW50NjRfdCBpbWFnZUlE
KQogICAgIFVwZGF0ZUltYWdlQmFja2luZyh1aW50NjRfdCBpbWFnZUlELCBXZWJLaXQ6OlNoYXJl
YWJsZVN1cmZhY2U6OkhhbmRsZSBoYW5kbGUpCisgICAgQ2xlYXJJbWFnZUJhY2tpbmdDb250ZW50
cyh1aW50NjRfdCBpbWFnZUlEKQogICAgIFJlbW92ZUltYWdlQmFja2luZyh1aW50NjRfdCBpbWFn
ZUlEKQogICAgIERpZFJlbmRlckZyYW1lKFdlYkNvcmU6OkludFNpemUgY29udGVudHNTaXplLCBX
ZWJDb3JlOjpJbnRSZWN0IGNvdmVyZWRSZWN0KQogICAgIERpZENoYW5nZVNjcm9sbFBvc2l0aW9u
KFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVy
ZXIuY3BwCmluZGV4IDI4ODk0OTdhNDEzOGEyYjljYjk3ZWFiOGZhY2FiNzFmNTQ5MjU1ODAuLjdh
NmRlNGEzMjMwNDkwZTAwOWY5MDI5NDMwZDk5MjM0NjZlNjBjNTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVSZW5kZXJlci5jcHAKQEAgLTQ5NSw2ICs0OTUsMTUgQEAgdm9pZCBMYXllclRyZWVS
ZW5kZXJlcjo6dXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1h
Z2VJRCwgUGEKICAgICBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMuYWRkKGJhY2tp
bmdTdG9yZSk7CiB9CiAKK3ZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OmNsZWFySW1hZ2VCYWNraW5n
Q29udGVudHMoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlEKQoreworICAgIEFTU0VS
VChtX2ltYWdlQmFja2luZ3MuY29udGFpbnMoaW1hZ2VJRCkpOworICAgIEltYWdlQmFja2luZ01h
cDo6aXRlcmF0b3IgaXQgPSBtX2ltYWdlQmFja2luZ3MuZmluZChpbWFnZUlEKTsKKyAgICBSZWZQ
dHI8Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU+IGJhY2tpbmdTdG9yZSA9IGl0LT52YWx1ZTsKKyAg
ICBiYWNraW5nU3RvcmUtPnJlbW92ZVRpbGUoMSAvKiBpZCAqLyk7CisgICAgbV9iYWNraW5nU3Rv
cmVzV2l0aFBlbmRpbmdCdWZmZXJzLmFkZChiYWNraW5nU3RvcmUpOworfQorCiB2b2lkIExheWVy
VHJlZVJlbmRlcmVyOjpyZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJ
RCBpbWFnZUlEKQogewogICAgIEFTU0VSVChtX2ltYWdlQmFja2luZ3MuY29udGFpbnMoaW1hZ2VJ
RCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmgKaW5kZXggNjViNDhmMGI1MTNhZjUz
NjNjMTYxMmY1NTNkNjdhODg0ZmJmMjcwMC4uMzMyOTU0ODRlMmFmZTYwZmRmMzAyN2E4MDU1OThm
M2M1NGM3OWU1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCkBAIC0xMDEsNiAr
MTAxLDcgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2hMYXllckNoYW5nZXMoKTsKICAgICB2b2lk
IGNyZWF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKTsKICAgICB2b2lk
IHVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lELCBQYXNzUmVmUHRy
PFNoYXJlYWJsZVN1cmZhY2U+KTsKKyAgICB2b2lkIGNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMo
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAgdm9pZCByZW1vdmVJbWFnZUJhY2tpbmco
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAgdm9pZCBzZXRMYXllckFuaW1hdGlvbnMo
V2ViTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NMYXllckFuaW1hdGlvbnMmKTsKICAg
ICB2b2lkIHNldEFuaW1hdGlvbnNMb2NrZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdy
YXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcAppbmRleCA1NTg2ZDRj
YTMxZjQ5Y2QwYWQ3YjZhZDg4NTRlZWY1NzM1NjBkNzZlLi5lMzVkZmU0NzBhYzA3ZTgyYmEyOGJh
ZGE2MDBhZDlmMjRjN2E5MDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKQEAgLTU2MSw2ICs1NjEsMTIgQEAgdm9p
ZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNM
YXllck9ubHkoKQogICAgIHN5bmNDYW52YXMoKTsKIH0KIAorYm9vbCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXI6OmltYWdlQmFja2luZ1Zpc2libGUoKQoreworICAgIEFTU0VSVChtX2Nvb3JkaW5h
dGVkSW1hZ2VCYWNraW5nKTsKKyAgICByZXR1cm4gdGlsZWRCYWNraW5nU3RvcmVWaXNpYmxlUmVj
dCgpLmludGVyc2VjdHMoY29udGVudHNSZWN0KCkpOworfQorCiB2b2lkIENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcjo6cmVsZWFzZUltYWdlQmFja2luZ0lmTmVlZGVkKCkKIHsKICAgICBpZiAoIW1f
Y29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4IGQxZjU4MTE5ZmRjNGM0MDNiZWU2
NWI5Y2M2NDRmNTlhNDAxZGFjMDguLjdlMGQ4ZWZiODliOWNjNWYxYmU0MGM2ZWJiNGQ1M2U5ODY2
YjA1MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3NMYXllci5oCkBAIC03OSw2ICs3OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyIDogcHVibGljIEdyYXBoaWNzTGF5ZXIKICAg
ICAsIHB1YmxpYyBUaWxlZEJhY2tpbmdTdG9yZUNsaWVudAorICAgICwgcHVibGljIFdlYktpdDo6
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OkxheWVyQ2xpZW50CiAgICAgLCBwdWJsaWMgV2ViS2l0
OjpDb29yZGluYXRlZFRpbGVDbGllbnQgewogcHVibGljOgogICAgIGV4cGxpY2l0IENvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50Kik7CkBAIC0xODUsNiArMTg2LDkg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZUJhY2tpbmdTdG9yZSgpOwogICAgIHZvaWQgcmVs
ZWFzZUltYWdlQmFja2luZ0lmTmVlZGVkKCk7CiAKKyAgICAvLyBDb29yZGluYXRlZEltYWdlQmFj
a2luZzo6TGF5ZXJDbGllbnQKKyAgICB2aXJ0dWFsIGJvb2wgaW1hZ2VCYWNraW5nVmlzaWJsZSgp
IE9WRVJSSURFOworCiAgICAgYm9vbCBzZWxmT3JBbmNlc3RvckhhdmVOb25BZmZpbmVUcmFuc2Zv
cm1zKCk7CiAgICAgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdTdG9yZSgpOwogICAgIHZvaWQg
YWRqdXN0Q29udGVudHNTY2FsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwCmluZGV4IGE0ZjllOTA5YWY3YTE2OTg3NTU2
ZGMxMDE2NDZjNjRjZDI3YjRjNDIuLjE1OTE5NzY4ZDA0NGViYTNjMTEwYjI0ZWNiODI1MThkMmRm
ZTY3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEltYWdlQmFja2luZy5jcHAKQEAgLTQ5LDcgKzQ5LDkgQEAgQ29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmc6OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nKENvb3JkaW5hdG9yKiBjbGllbnQsIFBhc3NSZWZQ
dHIKICAgICA6IG1fY29vcmRpbmF0b3IoY2xpZW50KQogICAgICwgbV9pbWFnZShpbWFnZSkKICAg
ICAsIG1faWQoZ2V0Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRChtX2ltYWdlLmdldCgpKSkKKyAg
ICAsIG1fY2xlYXJDb250ZW50c1RpbWVyKHRoaXMsICZDb29yZGluYXRlZEltYWdlQmFja2luZzo6
Y2xlYXJDb250ZW50c1RpbWVyRmlyZWQpCiAgICAgLCBtX2lzRGlydHkoZmFsc2UpCisgICAgLCBt
X2lzVmlzaWJsZShmYWxzZSkKIHsKICAgICAvLyBGSVhNRTogV2Ugd291bGQgbmVlZCB0byBkZWNv
ZGUgYSBzbWFsbCBpbWFnZSBkaXJlY3RseSBpbnRvIGEgR3JhcGhpY3NTdXJmYWNlLgogICAgIC8v
IGh0dHA6Ly93ZWJraXQub3JnL2IvMTAxNDI2CkBAIC02MSwxMyArNjMsMTMgQEAgQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmc6On5Db29yZGluYXRlZEltYWdlQmFja2luZygpCiB7CiB9CiAKLXZvaWQg
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OmFkZExheWVyQ2xpZW50KENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllciogbGF5ZXJDbGllbnQpCit2b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjphZGRM
YXllckNsaWVudChMYXllckNsaWVudCogbGF5ZXJDbGllbnQpCiB7CiAgICAgQVNTRVJUKCFtX2xh
eWVyQ2xpZW50cy5jb250YWlucyhsYXllckNsaWVudCkpOwogICAgIG1fbGF5ZXJDbGllbnRzLmFw
cGVuZChsYXllckNsaWVudCk7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnJl
bW92ZUxheWVyQ2xpZW50KENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXJDbGllbnQpCit2
b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpyZW1vdmVMYXllckNsaWVudChMYXllckNsaWVu
dCogbGF5ZXJDbGllbnQpCiB7CiAgICAgc2l6ZV90IHBvc2l0aW9uID0gbV9sYXllckNsaWVudHMu
ZmluZChsYXllckNsaWVudCk7CiAgICAgQVNTRVJUKHBvc2l0aW9uICE9IG5vdEZvdW5kKTsKQEAg
LTg2LDkgKzg4LDI0IEBAIHZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnVwZGF0ZSgpCiB7
CiAgICAgcmVsZWFzZVN1cmZhY2VJZk5lZWRlZCgpOwogCi0gICAgaWYgKCFtX2lzRGlydHkpCisg
ICAgYm9vbCBjaGFuZ2VkVG9WaXNpYmxlOworICAgIGNoYW5nZVZpc2liaWxpdHlJZk5lZWRlZChj
aGFuZ2VkVG9WaXNpYmxlKTsKKyAgICBpZiAoIW1faXNWaXNpYmxlKQogICAgICAgICByZXR1cm47
CiAKKyAgICBpZiAoIWNoYW5nZWRUb1Zpc2libGUpIHsKKyAgICAgICAgaWYgKCFtX2lzRGlydHkp
CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgLy8gY3VycmVudEZyYW1lVXBkYXRlZEFs
cmVhZHkoKSBjYW4gZGVjb2RlIGFuIGltYWdlIHJlZHVuZGFudGx5LCBzbyB3ZSBjaGVjayBhdCB0
aGUgbGFzdC4KKyAgICAgICAgLy8gV2hlbiBtb3JlIHRoYW4gdHdvIGxheWVycyByZWZlciB0aGUg
c2FtZSBpbWFnZSwgbWFya0RpcnR5KCkgY2FuIGJlIGNhbGxlZCBldmVuIHRob3VnaCB3ZSBhbHJl
YWR5IHVwZGF0ZWQuCisgICAgICAgIC8vIEZvciBleGFtcGxlLCBqYXZhc2NyaXB0IGNhbiBjcmVh
dGUgYSBkaXJlY3RseSBjb21wb3NpdGVkIGltZyBlbGVtZW50IHdoaWxlIGFub3RoZXIgZGlyZWN0
bHkgY29tcG9zaXRlZCBpbWcgZXhpc3RzLgorICAgICAgICBpZiAoY3VycmVudEZyYW1lVXBkYXRl
ZEFscmVhZHkoKSkgeworICAgICAgICAgICAgbV9pc0RpcnR5ID0gZmFsc2U7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKICAgICBtX3N1cmZhY2UgPSBTaGFyZWFibGVT
dXJmYWNlOjpjcmVhdGUobV9pbWFnZS0+c2l6ZSgpLCBtX2ltYWdlLT5jdXJyZW50RnJhbWVIYXNB
bHBoYSgpID8gU2hhcmVhYmxlQml0bWFwOjpTdXBwb3J0c0FscGhhIDogU2hhcmVhYmxlQml0bWFw
OjpOb0ZsYWdzLCBTaGFyZWFibGVTdXJmYWNlOjpTdXBwb3J0c0dyYXBoaWNzU3VyZmFjZSk7CiAg
ICAgbV9oYW5kbGUgPSBhZG9wdFB0cihuZXcgU2hhcmVhYmxlU3VyZmFjZTo6SGFuZGxlKCkpOwog
CkBAIC0xMDIsNiArMTE5LDggQEAgdm9pZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6dXBkYXRl
KCkKICAgICBPd25QdHI8R3JhcGhpY3NDb250ZXh0PiBjb250ZXh0ID0gbV9zdXJmYWNlLT5jcmVh
dGVHcmFwaGljc0NvbnRleHQocmVjdCk7CiAgICAgY29udGV4dC0+ZHJhd0ltYWdlKG1faW1hZ2Uu
Z2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIHJlY3QsIHJlY3QpOwogCisgICAgbV9uYXRpdmVJ
bWFnZVB0ciA9IG1faW1hZ2UtPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CisKICAgICBt
X2Nvb3JkaW5hdG9yLT51cGRhdGVJbWFnZUJhY2tpbmcoaWQoKSwgKm1faGFuZGxlKTsKICAgICBt
X2lzRGlydHkgPSBmYWxzZTsKIH0KQEAgLTExNCw1ICsxMzMsNDQgQEAgdm9pZCBDb29yZGluYXRl
ZEltYWdlQmFja2luZzo6cmVsZWFzZVN1cmZhY2VJZk5lZWRlZCgpCiAgICAgbV9zdXJmYWNlLmNs
ZWFyKCk7CiB9CiAKK2Jvb2wgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OmN1cnJlbnRGcmFtZVVw
ZGF0ZWRBbHJlYWR5KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9uYXRpdmVJbWFnZVB0ciA9PSBt
X2ltYWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOworfQorCitzdGF0aWMgY29uc3Qg
ZG91YmxlIGNsZWFyQ29udGVudHNUaW1lckludGVydmFsID0gMzsKKwordm9pZCBDb29yZGluYXRl
ZEltYWdlQmFja2luZzo6Y2hhbmdlVmlzaWJpbGl0eUlmTmVlZGVkKGJvb2wmIGNoYW5nZWRUb1Zp
c2libGUpCit7CisgICAgYm9vbCBwcmV2aW91c0lzVmlzaWJsZSA9IG1faXNWaXNpYmxlOworCisg
ICAgbV9pc1Zpc2libGUgPSBmYWxzZTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fbGF5
ZXJDbGllbnRzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmIChtX2xheWVyQ2xpZW50c1tpXS0+
aW1hZ2VCYWNraW5nVmlzaWJsZSgpKSB7CisgICAgICAgICAgICBtX2lzVmlzaWJsZSA9IHRydWU7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGJvb2wgY2hhbmdl
ZFRvSW52aXNpYmxlID0gcHJldmlvdXNJc1Zpc2libGUgJiYgIW1faXNWaXNpYmxlOworICAgIGlm
IChjaGFuZ2VkVG9JbnZpc2libGUpIHsKKyAgICAgICAgQVNTRVJUKCFtX2NsZWFyQ29udGVudHNU
aW1lci5pc0FjdGl2ZSgpKTsKKyAgICAgICAgbV9jbGVhckNvbnRlbnRzVGltZXIuc3RhcnRPbmVT
aG90KGNsZWFyQ29udGVudHNUaW1lckludGVydmFsKTsKKyAgICB9CisKKyAgICBjaGFuZ2VkVG9W
aXNpYmxlID0gIXByZXZpb3VzSXNWaXNpYmxlICYmIG1faXNWaXNpYmxlOworCisgICAgaWYgKG1f
aXNWaXNpYmxlICYmIG1fY2xlYXJDb250ZW50c1RpbWVyLmlzQWN0aXZlKCkpIHsKKyAgICAgICAg
bV9jbGVhckNvbnRlbnRzVGltZXIuc3RvcCgpOworICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRv
IHVwZGF0ZSB0aGUgdGV4dHVyZSBpZiB3ZSBkaWRuJ3QgcmVtb3ZlIHRoZSB0ZXh0dXJlLgorICAg
ICAgICBjaGFuZ2VkVG9WaXNpYmxlID0gZmFsc2U7CisgICAgfQorfQorCit2b2lkIENvb3JkaW5h
dGVkSW1hZ2VCYWNraW5nOjpjbGVhckNvbnRlbnRzVGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxD
b29yZGluYXRlZEltYWdlQmFja2luZz4qKQoreworICAgIG1fY29vcmRpbmF0b3ItPmNsZWFySW1h
Z2VCYWNraW5nQ29udGVudHMoaWQoKSk7Cit9CisKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRJbWFnZUJhY2tpbmcuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmgKaW5kZXggZDBjZDIx
NzhhZmNkYjRlNzQxODAzMTFhZDViYzgwOTdkMzU3OTAyZC4uZmUwY2JkMGY3ZWI5ZGI1ZDk4MGQ0
YzZjMmNkN2ZjY2JhMTM3YTkxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9Db29yZGluYXRlZEltYWdlQmFja2luZy5oCkBAIC0zNSwxMCArMzUsNiBAQAogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci1jbGFzcyBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI7Ci19Ci0KIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBDb29yZGluYXRlZEltYWdlQmFja2luZyA6IHB1YmxpYyBSZWZD
b3VudGVkPENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nPiB7CkBAIC00NywxNyArNDMsMjMgQEAgcHVi
bGljOgogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZUltYWdlQmFja2lu
ZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCwgY29uc3QgU2hhcmVh
YmxlU3VyZmFjZTo6SGFuZGxlJikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJJbWFn
ZUJhY2tpbmdDb250ZW50cyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKSA9IDA7CiAgICAgICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJ
RCkgPSAwOwogICAgIH07CiAKKyAgICBjbGFzcyBMYXllckNsaWVudCB7CisgICAgcHVibGljOgor
ICAgICAgICB2aXJ0dWFsIGJvb2wgaW1hZ2VCYWNraW5nVmlzaWJsZSgpID0gMDsKKyAgICB9Owor
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc+IGNyZWF0ZShD
b29yZGluYXRvciosIFBhc3NSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+KTsKICAgICB2aXJ0dWFsIH5D
b29yZGluYXRlZEltYWdlQmFja2luZygpOwogCiAgICAgc3RhdGljIENvb3JkaW5hdGVkSW1hZ2VC
YWNraW5nSUQgZ2V0Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRChXZWJDb3JlOjpJbWFnZSopOwog
ICAgIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaWQoKSBjb25zdCB7IHJldHVybiBtX2lkOyB9
CiAKLSAgICB2b2lkIGFkZExheWVyQ2xpZW50KFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NM
YXllciopOwotICAgIHZvaWQgcmVtb3ZlTGF5ZXJDbGllbnQoV2ViQ29yZTo6Q29vcmRpbmF0ZWRH
cmFwaGljc0xheWVyKik7CisgICAgdm9pZCBhZGRMYXllckNsaWVudChMYXllckNsaWVudCopOwor
ICAgIHZvaWQgcmVtb3ZlTGF5ZXJDbGllbnQoTGF5ZXJDbGllbnQqKTsKIAogICAgIC8vIFdoZW4g
YSBuZXcgaW1hZ2UgaXMgdXBkYXRlZCBvciBhbiBhbmltYXRlZCBnaWYgaXMgcHJvZ3Jlc3NlZCwg
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyIGNhbGxzIG1hcmtEaXJ0eSgpLgogICAgIHZvaWQgbWFy
a0RpcnR5KCk7CkBAIC02OSwxNiArNzEsMjQgQEAgcHJpdmF0ZToKICAgICBDb29yZGluYXRlZElt
YWdlQmFja2luZyhDb29yZGluYXRvciosIFBhc3NSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+KTsKIAog
ICAgIHZvaWQgcmVsZWFzZVN1cmZhY2VJZk5lZWRlZCgpOworICAgIGJvb2wgY3VycmVudEZyYW1l
VXBkYXRlZEFscmVhZHkoKSBjb25zdDsKKyAgICB2b2lkIGNoYW5nZVZpc2liaWxpdHlJZk5lZWRl
ZChib29sJiBjaGFuZ2VkVG9WaXNpYmxlKTsKKyAgICB2b2lkIGNsZWFyQ29udGVudHNUaW1lckZp
cmVkKFdlYkNvcmU6OlRpbWVyPENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nPiopOwogCiAgICAgQ29v
cmRpbmF0b3IqIG1fY29vcmRpbmF0b3I7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlPiBtX2lt
YWdlOworICAgIFdlYkNvcmU6Ok5hdGl2ZUltYWdlUHRyIG1fbmF0aXZlSW1hZ2VQdHI7CiAgICAg
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBtX2lkOwotICAgIFZlY3RvcjxXZWJDb3JlOjpDb29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIqPiBtX2xheWVyQ2xpZW50czsKKyAgICBWZWN0b3I8TGF5ZXJD
bGllbnQqPiBtX2xheWVyQ2xpZW50czsKIAogICAgIFJlZlB0cjxTaGFyZWFibGVTdXJmYWNlPiBt
X3N1cmZhY2U7CiAgICAgT3duUHRyPFNoYXJlYWJsZVN1cmZhY2U6OkhhbmRsZT4gbV9oYW5kbGU7
CiAKKyAgICBXZWJDb3JlOjpUaW1lcjxDb29yZGluYXRlZEltYWdlQmFja2luZz4gbV9jbGVhckNv
bnRlbnRzVGltZXI7CisKICAgICBib29sIG1faXNEaXJ0eTsKKyAgICBib29sIG1faXNWaXNpYmxl
OworCiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVD
b29yZGluYXRvci5jcHAKaW5kZXggNGY1YjgxMTg3MGY0NTQwM2M3MjE3OTY0ZGNhMzE5ZWE1ZDQ4
MjE0OC4uMTZhMzVmZDM0NmVmOTk5ZDI3YzkyZjI0MGI3YTYxNzcyMmYwOWRkYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcApAQCAt
NTU2LDYgKzU1NiwxMiBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjp1cGRhdGVJbWFnZUJh
Y2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlELAogICAgIG1fd2ViUGFnZS0+
c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6VXBkYXRlSW1hZ2VCYWNr
aW5nKGltYWdlSUQsIGhhbmRsZSkpOwogfQogCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpj
bGVhckltYWdlQmFja2luZ0NvbnRlbnRzKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJ
RCkKK3sKKyAgICBtX3Nob3VsZFN5bmNGcmFtZSA9IHRydWU7CisgICAgbV93ZWJQYWdlLT5zZW5k
KE1lc3NhZ2VzOjpMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpDbGVhckltYWdlQmFja2luZ0Nv
bnRlbnRzKGltYWdlSUQpKTsKK30KKwogdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6cmVtb3Zl
SW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJRCkKIHsKICAgICBp
ZiAobV9pc1B1cmdpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3IuaAppbmRleCA3MmZlNzUyNDBjNTM0YzI1ZmEyMGI2NWMzMmVhZmQzNzhlMWQ1
YzIwLi42Nzk1OTNhZjc1NTY5NmM4YWViY2Y1Nzk5YWY1YzAxZjA3YWM3OTJmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKQEAgLTEyNSw2
ICsxMjUsNyBAQCBwcml2YXRlOgogICAgIC8vIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpDb29y
ZGluYXRvcgogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmdJRCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUltYWdlQmFj
a2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lELCBjb25zdCBTaGFyZWFibGVTdXJmYWNlOjpI
YW5kbGUmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJJbWFnZUJhY2tpbmdDb250
ZW50cyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgcmVtb3ZlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpIE9WRVJSSURF
OwogCiAgICAgdm9pZCBmbHVzaFBlbmRpbmdJbWFnZUJhY2tpbmdDaGFuZ2VzKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175047</attachid>
            <date>2012-11-19 14:56:45 -0800</date>
            <delta_ts>2012-11-19 15:03:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102449-20121120075423.patch</filename>
            <type>text/plain</type>
            <size>21006</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGYxYjAxMDhlYTRlYTVj
ZDgwZGEwOGIxZDgyNWUyMWY0YTk1ZDIwMS4uZDA2ZjFhMTliNDgzZGY1NWZiMDJhYTZmYmVhZDU5
MjUwMDk3ZWViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTExLTE5ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZW1vdmUgYSB0ZXh0dXJlIGlmIGFuIGRpcmVjdCBjb21wb3NpdGVkIGlt
YWdlIGlzIG9mZiB0aGUgdmlld3BvcnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDI0NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBDdXJyZW50bHksIG9uY2UgdXBsb2FkaW5nIHRleHR1cmVzIGZvciBj
b21wb3NpdGVkIGltYWdlcywgQ29vcmRpbmF0ZWQgR3JhcGhpY3MKKyAgICAgICAgZG9lcyBub3Qg
cmVsZWFzZSB0aGUgdGV4dHVyZXMgdW50aWwgYWxsIGxheWVycyB1c2luZyBpbWFnZXMgYXJlIGRl
c3Ryb3llZC4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgYSB0ZXh0dXJlIGlmIHdlIGRv
bid0IG5lZWQgdG8gcmVuZGVyIGFuIGltYWdlLiBUaGlzIG1lY2hhbmlzbQorICAgICAgICBpcyBz
aW1pbGFyIGhvdyBUaWxlZEJhY2tpbmdTdG9yZSByZW1vdmVzIGludmlzaWJsZSB0aWxlcy4KKwor
ICAgICAgICBXaGVuIGFsbCBsYXllcnMgYXJlIGludmlzaWJsZSwgd2Ugd2FpdCAzIHNlY29uZHMg
dG8gcmVtb3ZlIHRoZSBjb250ZW50CisgICAgICAgIG9mIHRoZSBpbWFnZSwgYmVjYXVzZSB3ZSB3
YW50IHRvIHByZXZlbnQgYSB0cmFuc2Zvcm0gYW5pbWF0aW9uIGZyb20KKyAgICAgICAgY3JlYXRp
bmcgYW5kIGRlc3Ryb3lpbmcgYSB0ZXh0dXJlIG92ZXIgYW5kIG92ZXIgYWdhaW4uCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9y
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpyZW1vdmVB
bGxUaWxlcyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmg6CisgICAgICAgIChDb29yZGlu
YXRlZEJhY2tpbmdTdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHk6OmNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMpOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVDb29yZGluYXRvclByb3h5Lmg6CisgICAgICAgIChMYXllclRyZWVDb29yZGluYXRvclBy
b3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVD
b29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlUmVuZGVyZXI6OmNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMpOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5oOgorICAgICAgICAoTGF5ZXJUcmVlUmVuZGVyZXIpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNJ
bWFnZUJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjppbWFnZUJhY2tpbmdWaXNpYmxlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZWxlYXNlSW1hZ2VCYWNraW5nSWZOZWVk
ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5oOgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZEltYWdlQmFja2luZy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nOjpDb29yZGluYXRlZEltYWdlQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6
OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjphZGRIb3N0KToKKyAgICAgICAgKFdlYktpdDo6Q29v
cmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnJlbW92ZUhvc3QpOgorICAgICAgICAoV2ViS2l0OjpDb29y
ZGluYXRlZEltYWdlQmFja2luZzo6dXBkYXRlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJLaXQ6OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjp1cGRhdGVWaXNpYmlsaXR5SWZOZWVk
ZWQpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEltYWdlQmFja2luZzo6Y2xlYXJDb250
ZW50c1RpbWVyRmlyZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmg6CisgICAgICAgIChDb29yZGluYXRv
cik6CisgICAgICAgIChIb3N0KToKKyAgICAgICAgKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9y
OjpjbGVhckltYWdlQmFja2luZ0NvbnRlbnRzKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRp
bmF0b3IuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5hdG9yKToKKwogMjAxMi0xMS0xOSAg
Q2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAg
IFtDR11bV0syXSBBc3NlcnRpb24gaW4gQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250
ZW50c1RvSW1hZ2UoV2ViQ29yZTo6SW1hZ2UqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IDJiNjdmOGFlNTA5MjZiNGEwNTJlYjk5NGQzNjVhODBj
NGQ2NGI0MTIuLjEyYWZiYzk0ZTMxNGI0MDZjNWFkMDc1NmIyZTRmMjc4ZTMzNjY2MmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTc3LDYgKzc3
LDEzIEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlbW92ZVRpbGUoaW50IGlkKQog
ICAgIG1fdGlsZXNUb1JlbW92ZS5hZGQoaWQpOwogfQogCit2b2lkIENvb3JkaW5hdGVkQmFja2lu
Z1N0b3JlOjpyZW1vdmVBbGxUaWxlcygpCit7CisgICAgSGFzaE1hcDxpbnQsIENvb3JkaW5hdGVk
QmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGVuZCA9IG1fdGlsZXMuZW5kKCk7CisgICAgZm9y
IChIYXNoTWFwPGludCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlPjo6aXRlcmF0b3IgaXQg
PSBtX3RpbGVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgbV90aWxlc1RvUmVt
b3ZlLmFkZChpdC0+a2V5KTsKK30KKwogdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6dXBk
YXRlVGlsZShpbnQgaWQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3Qm
IHRpbGVSZWN0LCBQYXNzUmVmUHRyPFNoYXJlYWJsZVN1cmZhY2U+IGJhY2tCdWZmZXIsIGNvbnN0
IEludFBvaW50JiBvZmZzZXQpCiB7CiAgICAgSGFzaE1hcDxpbnQsIENvb3JkaW5hdGVkQmFja2lu
Z1N0b3JlVGlsZT46Oml0ZXJhdG9yIGl0ID0gbV90aWxlcy5maW5kKGlkKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
QmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oCmluZGV4IDE0MGU2NzQ3YzNiMjRjZjZlODJi
YmRkNDUxZmIwZWI4YWM5ZjdjNGEuLmIwYmFjYTYzNWJlYjcxNWRiOTNkY2Q5MWI5NmU5NTZiODIz
ZjRmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuaApAQCAt
NTksNiArNTksNyBAQCBjbGFzcyBDb29yZGluYXRlZEJhY2tpbmdTdG9yZSA6IHB1YmxpYyBXZWJD
b3JlOjpUZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlIHsKIHB1YmxpYzoKICAgICB2b2lkIGNyZWF0
ZVRpbGUoaW50LCBmbG9hdCk7CiAgICAgdm9pZCByZW1vdmVUaWxlKGludCk7CisgICAgdm9pZCBy
ZW1vdmVBbGxUaWxlcygpOwogICAgIHZvaWQgdXBkYXRlVGlsZShpbnQsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgUGFzc1JlZlB0cjxTaGFyZWFibGVT
dXJmYWNlPiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKICAgICBib29sIGlzRW1wdHkoKSBj
b25zdDsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gY3Jl
YXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNwcAppbmRleCAy
N2Y1ZTU1ZjVlYTFhNDRiMTkyNTQ3YzIyNzk0ZGYxYWZiMDNlM2UzLi5kM2NkN2Q4M2M3MGJhOWE3
NTU5NTFiNDM0NDhmYjM4NzhhYmFhNGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvclByb3h5LmNwcApAQCAtMTUyLDYgKzE1MiwxMSBAQCB2b2lkIExheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHk6OnVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFj
a2luZ0lEIGltYQogICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjp1
cGRhdGVJbWFnZUJhY2tpbmcsIG1fcmVuZGVyZXIuZ2V0KCksIGltYWdlSUQsIFNoYXJlYWJsZVN1
cmZhY2U6OmNyZWF0ZShoYW5kbGUpKSk7CiB9CiAKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eTo6Y2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lE
IGltYWdlSUQpCit7CisgICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6
OmNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMsIG1fcmVuZGVyZXIuZ2V0KCksIGltYWdlSUQpKTsK
K30KKwogdm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpyZW1vdmVJbWFnZUJhY2tpbmco
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlEKQogewogICAgIGRpc3BhdGNoVXBkYXRl
KGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVJbWFnZUJhY2tpbmcsIG1fcmVuZGVyZXIu
Z2V0KCksIGltYWdlSUQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9y
UHJveHkuaAppbmRleCAxZGYyYzgxMWVhMTU0ODlhYTU0YWZiNjIwZjQwZWUxODI3ZmIyMTA4Li5j
ODcyZmUwZjIxNDljYWVmM2NmZGY0NTFjNDczNTFmNmVjZmViMzI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGlu
YXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oCkBAIC03Myw2ICs3Myw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlbW92ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lEKTsKICAgICB2b2lkIGNy
ZWF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKTsKICAgICB2b2lkIHVw
ZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lELCBjb25zdCBTaGFyZWFi
bGVTdXJmYWNlOjpIYW5kbGUmKTsKKyAgICB2b2lkIGNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMo
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAgdm9pZCByZW1vdmVJbWFnZUJhY2tpbmco
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIHVwZGF0ZVZpZXdw
b3J0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCAwY2Y1ZTJkOTkxZTBiNjFmNDY2OGI3YWNiY2Q2ZjFlNmZi
YWMyYmQ4Li41YTBlYTY4M2ViZTc5ODgxZmM0NWMxN2JmMjdkMTYwYmMzYjc0YTk5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTM3LDYgKzM3LDcgQEAgbWVzc2FnZXMgLT4gTGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eSB7CiAgICAgUmVtb3ZlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQpCiAgICAgQ3JlYXRlSW1h
Z2VCYWNraW5nKHVpbnQ2NF90IGltYWdlSUQpCiAgICAgVXBkYXRlSW1hZ2VCYWNraW5nKHVpbnQ2
NF90IGltYWdlSUQsIFdlYktpdDo6U2hhcmVhYmxlU3VyZmFjZTo6SGFuZGxlIGhhbmRsZSkKKyAg
ICBDbGVhckltYWdlQmFja2luZ0NvbnRlbnRzKHVpbnQ2NF90IGltYWdlSUQpCiAgICAgUmVtb3Zl
SW1hZ2VCYWNraW5nKHVpbnQ2NF90IGltYWdlSUQpCiAgICAgRGlkUmVuZGVyRnJhbWUoV2ViQ29y
ZTo6SW50U2l6ZSBjb250ZW50c1NpemUsIFdlYkNvcmU6OkludFJlY3QgY292ZXJlZFJlY3QpCiAg
ICAgRGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24oV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0
ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKaW5kZXggMjg4OTQ5N2E0MTM4YTJiOWNi
OTdlYWI4ZmFjYWI3MWY1NDkyNTU4MC4uNzUzZDQxYjY1ZTVkZDQyNzk4OTlhNDMyNWE0N2FhYmYw
NzQwNTU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcApAQCAtNDk1LDYg
KzQ5NSwxNSBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjp1cGRhdGVJbWFnZUJhY2tpbmcoQ29v
cmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlELCBQYQogICAgIG1fYmFja2luZ1N0b3Jlc1dp
dGhQZW5kaW5nQnVmZmVycy5hZGQoYmFja2luZ1N0b3JlKTsKIH0KIAordm9pZCBMYXllclRyZWVS
ZW5kZXJlcjo6Y2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhDb29yZGluYXRlZEltYWdlQmFja2lu
Z0lEIGltYWdlSUQpCit7CisgICAgQVNTRVJUKG1faW1hZ2VCYWNraW5ncy5jb250YWlucyhpbWFn
ZUlEKSk7CisgICAgSW1hZ2VCYWNraW5nTWFwOjppdGVyYXRvciBpdCA9IG1faW1hZ2VCYWNraW5n
cy5maW5kKGltYWdlSUQpOworICAgIFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gYmFj
a2luZ1N0b3JlID0gaXQtPnZhbHVlOworICAgIGJhY2tpbmdTdG9yZS0+cmVtb3ZlQWxsVGlsZXMo
KTsKKyAgICBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMuYWRkKGJhY2tpbmdTdG9y
ZSk7Cit9CisKIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnJlbW92ZUltYWdlQmFja2luZyhDb29y
ZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWdlSUQpCiB7CiAgICAgQVNTRVJUKG1faW1hZ2VCYWNr
aW5ncy5jb250YWlucyhpbWFnZUlEKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaApp
bmRleCA2NWI0OGYwYjUxM2FmNTM2M2MxNjEyZjU1M2Q2N2E4ODRmYmYyNzAwLi4zMzI5NTQ4NGUy
YWZlNjBmZGYzMDI3YTgwNTU5OGYzYzU0Yzc5ZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJl
bmRlcmVyLmgKQEAgLTEwMSw2ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmbHVzaExheWVy
Q2hhbmdlcygpOwogICAgIHZvaWQgY3JlYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VC
YWNraW5nSUQpOwogICAgIHZvaWQgdXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VC
YWNraW5nSUQsIFBhc3NSZWZQdHI8U2hhcmVhYmxlU3VyZmFjZT4pOworICAgIHZvaWQgY2xlYXJJ
bWFnZUJhY2tpbmdDb250ZW50cyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKTsKICAgICB2b2lk
IHJlbW92ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKTsKICAgICB2b2lk
IHNldExheWVyQW5pbWF0aW9ucyhXZWJMYXllcklELCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQW5pbWF0aW9ucyYpOwogICAgIHZvaWQgc2V0QW5pbWF0aW9uc0xvY2tlZChib29sKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuY3BwCmluZGV4IDhmYWQ5MDNjZGM0ZTQ4NjQxOWM4YjNkNzZjYzEyNjBjM2ZjNzY1ZTkuLjYw
YmI0NzQwNjVkMWM3ODQ0MDRiOTE1ZWU1MTdiOWE5MWJhZmVmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAt
NDgxLDcgKzQ4MSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jSW1hZ2VC
YWNraW5nKCkKIAogICAgICAgICBpZiAoIW1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcpIHsKICAg
ICAgICAgICAgIG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcgPSBtX2Nvb3JkaW5hdG9yLT5jcmVh
dGVJbWFnZUJhY2tpbmdJZk5lZWRlZChtX2NvbXBvc2l0ZWRJbWFnZS5nZXQoKSk7Ci0gICAgICAg
ICAgICBtX2Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLT5hZGRMYXllckNsaWVudCh0aGlzKTsKKyAg
ICAgICAgICAgIG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmctPmFkZEhvc3QodGhpcyk7CiAgICAg
ICAgICAgICBtX2xheWVySW5mby5pbWFnZUlEID0gbV9jb29yZGluYXRlZEltYWdlQmFja2luZy0+
aWQoKTsKICAgICAgICAgfQogCkBAIC01NTksMTMgKzU1OSwxOSBAQCB2b2lkIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpCiAg
ICAgc3luY0NhbnZhcygpOwogfQogCitib29sIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6aW1h
Z2VCYWNraW5nVmlzaWJsZSgpCit7CisgICAgQVNTRVJUKG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmcpOworICAgIHJldHVybiB0aWxlZEJhY2tpbmdTdG9yZVZpc2libGVSZWN0KCkuaW50ZXJzZWN0
cyhjb250ZW50c1JlY3QoKSk7Cit9CisKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpy
ZWxlYXNlSW1hZ2VCYWNraW5nSWZOZWVkZWQoKQogewogICAgIGlmICghbV9jb29yZGluYXRlZElt
YWdlQmFja2luZykKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKG1fY29vcmRpbmF0b3Ip
OwotICAgIG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmctPnJlbW92ZUxheWVyQ2xpZW50KHRoaXMp
OworICAgIG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmctPnJlbW92ZUhvc3QodGhpcyk7CiAgICAg
bV9jb29yZGluYXRlZEltYWdlQmFja2luZy5jbGVhcigpOwogICAgIG1fbGF5ZXJJbmZvLmltYWdl
SUQgPSBJbnZhbGlkQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRDsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5kZXggZDFm
NTgxMTlmZGM0YzQwM2JlZTY1YjljYzY0NGY1OWE0MDFkYWMwOC4uZmJkZDRlNTE3NDBmYmRjMjMx
YjJjMDMwMWQwOTUzNzU5NDI4OGIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTc5LDYgKzc5LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIgOiBwdWJsaWMg
R3JhcGhpY3NMYXllcgogICAgICwgcHVibGljIFRpbGVkQmFja2luZ1N0b3JlQ2xpZW50CisgICAg
LCBwdWJsaWMgV2ViS2l0OjpDb29yZGluYXRlZEltYWdlQmFja2luZzo6SG9zdAogICAgICwgcHVi
bGljIFdlYktpdDo6Q29vcmRpbmF0ZWRUaWxlQ2xpZW50IHsKIHB1YmxpYzoKICAgICBleHBsaWNp
dCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCopOwpAQCAtMTg1
LDYgKzE4Niw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVCYWNraW5nU3RvcmUoKTsKICAg
ICB2b2lkIHJlbGVhc2VJbWFnZUJhY2tpbmdJZk5lZWRlZCgpOwogCisgICAgLy8gQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmc6OkxheWVyQ2xpZW50CisgICAgdmlydHVhbCBib29sIGltYWdlQmFja2lu
Z1Zpc2libGUoKSBPVkVSUklERTsKKwogICAgIGJvb2wgc2VsZk9yQW5jZXN0b3JIYXZlTm9uQWZm
aW5lVHJhbnNmb3JtcygpOwogICAgIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nU3RvcmUoKTsK
ICAgICB2b2lkIGFkanVzdENvbnRlbnRzU2NhbGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1h
Z2VCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcAppbmRleCBhNGY5ZTkwOWFm
N2ExNjk4NzU1NmRjMTAxNjQ2YzY0Y2QyN2I0YzQyLi41NWNhOWRhN2I1OTRjYjY5OGY3OGE2Yzkw
YWIxNDE5NGY5YTFiMWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwCkBAIC00OSw3ICs0OSw5IEBAIENvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nOjpDb29yZGluYXRlZEltYWdlQmFja2luZyhDb29yZGluYXRvciogY2xpZW50
LCBQYXNzUmVmUHRyCiAgICAgOiBtX2Nvb3JkaW5hdG9yKGNsaWVudCkKICAgICAsIG1faW1hZ2Uo
aW1hZ2UpCiAgICAgLCBtX2lkKGdldENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQobV9pbWFnZS5n
ZXQoKSkpCisgICAgLCBtX2NsZWFyQ29udGVudHNUaW1lcih0aGlzLCAmQ29vcmRpbmF0ZWRJbWFn
ZUJhY2tpbmc6OmNsZWFyQ29udGVudHNUaW1lckZpcmVkKQogICAgICwgbV9pc0RpcnR5KGZhbHNl
KQorICAgICwgbV9pc1Zpc2libGUoZmFsc2UpCiB7CiAgICAgLy8gRklYTUU6IFdlIHdvdWxkIG5l
ZWQgdG8gZGVjb2RlIGEgc21hbGwgaW1hZ2UgZGlyZWN0bHkgaW50byBhIEdyYXBoaWNzU3VyZmFj
ZS4KICAgICAvLyBodHRwOi8vd2Via2l0Lm9yZy9iLzEwMTQyNgpAQCAtNjEsMTkgKzYzLDE5IEBA
IENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjp+Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcoKQogewog
fQogCi12b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjphZGRMYXllckNsaWVudChDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyQ2xpZW50KQordm9pZCBDb29yZGluYXRlZEltYWdlQmFj
a2luZzo6YWRkSG9zdChIb3N0KiBob3N0KQogewotICAgIEFTU0VSVCghbV9sYXllckNsaWVudHMu
Y29udGFpbnMobGF5ZXJDbGllbnQpKTsKLSAgICBtX2xheWVyQ2xpZW50cy5hcHBlbmQobGF5ZXJD
bGllbnQpOworICAgIEFTU0VSVCghbV9ob3N0cy5jb250YWlucyhob3N0KSk7CisgICAgbV9ob3N0
cy5hcHBlbmQoaG9zdCk7CiB9CiAKLXZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnJlbW92
ZUxheWVyQ2xpZW50KENvb3JkaW5hdGVkR3JhcGhpY3NMYXllciogbGF5ZXJDbGllbnQpCit2b2lk
IENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpyZW1vdmVIb3N0KEhvc3QqIGhvc3QpCiB7Ci0gICAg
c2l6ZV90IHBvc2l0aW9uID0gbV9sYXllckNsaWVudHMuZmluZChsYXllckNsaWVudCk7CisgICAg
c2l6ZV90IHBvc2l0aW9uID0gbV9ob3N0cy5maW5kKGhvc3QpOwogICAgIEFTU0VSVChwb3NpdGlv
biAhPSBub3RGb3VuZCk7Ci0gICAgbV9sYXllckNsaWVudHMucmVtb3ZlKHBvc2l0aW9uKTsKKyAg
ICBtX2hvc3RzLnJlbW92ZShwb3NpdGlvbik7CiAKLSAgICBpZiAobV9sYXllckNsaWVudHMuaXNF
bXB0eSgpKQorICAgIGlmIChtX2hvc3RzLmlzRW1wdHkoKSkKICAgICAgICAgbV9jb29yZGluYXRv
ci0+cmVtb3ZlSW1hZ2VCYWNraW5nKGlkKCkpOwogfQogCkBAIC04Niw5ICs4OCwyMSBAQCB2b2lk
IENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjp1cGRhdGUoKQogewogICAgIHJlbGVhc2VTdXJmYWNl
SWZOZWVkZWQoKTsKIAotICAgIGlmICghbV9pc0RpcnR5KQorICAgIGJvb2wgY2hhbmdlZFRvVmlz
aWJsZTsKKyAgICB1cGRhdGVWaXNpYmlsaXR5SWZOZWVkZWQoY2hhbmdlZFRvVmlzaWJsZSk7Cisg
ICAgaWYgKCFtX2lzVmlzaWJsZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKCFjaGFuZ2Vk
VG9WaXNpYmxlKSB7CisgICAgICAgIGlmICghbV9pc0RpcnR5KQorICAgICAgICAgICAgcmV0dXJu
OworCisgICAgICAgIGlmIChtX25hdGl2ZUltYWdlUHRyID09IG1faW1hZ2UtPm5hdGl2ZUltYWdl
Rm9yQ3VycmVudEZyYW1lKCkpIHsKKyAgICAgICAgICAgIG1faXNEaXJ0eSA9IGZhbHNlOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorCiAgICAgbV9zdXJmYWNlID0gU2hh
cmVhYmxlU3VyZmFjZTo6Y3JlYXRlKG1faW1hZ2UtPnNpemUoKSwgbV9pbWFnZS0+Y3VycmVudEZy
YW1lSGFzQWxwaGEoKSA/IFNoYXJlYWJsZUJpdG1hcDo6U3VwcG9ydHNBbHBoYSA6IFNoYXJlYWJs
ZUJpdG1hcDo6Tm9GbGFncywgU2hhcmVhYmxlU3VyZmFjZTo6U3VwcG9ydHNHcmFwaGljc1N1cmZh
Y2UpOwogICAgIG1faGFuZGxlID0gYWRvcHRQdHIobmV3IFNoYXJlYWJsZVN1cmZhY2U6OkhhbmRs
ZSgpKTsKIApAQCAtMTAyLDYgKzExNiw4IEBAIHZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6
OnVwZGF0ZSgpCiAgICAgT3duUHRyPEdyYXBoaWNzQ29udGV4dD4gY29udGV4dCA9IG1fc3VyZmFj
ZS0+Y3JlYXRlR3JhcGhpY3NDb250ZXh0KHJlY3QpOwogICAgIGNvbnRleHQtPmRyYXdJbWFnZSht
X2ltYWdlLmdldCgpLCBDb2xvclNwYWNlRGV2aWNlUkdCLCByZWN0LCByZWN0KTsKIAorICAgIG1f
bmF0aXZlSW1hZ2VQdHIgPSBtX2ltYWdlLT5uYXRpdmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpOwor
CiAgICAgbV9jb29yZGluYXRvci0+dXBkYXRlSW1hZ2VCYWNraW5nKGlkKCksICptX2hhbmRsZSk7
CiAgICAgbV9pc0RpcnR5ID0gZmFsc2U7CiB9CkBAIC0xMTQsNSArMTMwLDM5IEBAIHZvaWQgQ29v
cmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnJlbGVhc2VTdXJmYWNlSWZOZWVkZWQoKQogICAgIG1fc3Vy
ZmFjZS5jbGVhcigpOwogfQogCitzdGF0aWMgY29uc3QgZG91YmxlIGNsZWFyQ29udGVudHNUaW1l
ckludGVydmFsID0gMzsKKwordm9pZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6dXBkYXRlVmlz
aWJpbGl0eUlmTmVlZGVkKGJvb2wmIGNoYW5nZWRUb1Zpc2libGUpCit7CisgICAgYm9vbCBwcmV2
aW91c0lzVmlzaWJsZSA9IG1faXNWaXNpYmxlOworCisgICAgbV9pc1Zpc2libGUgPSBmYWxzZTsK
KyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1faG9zdHMuc2l6ZSgpOyArK2kpIHsKKyAgICAg
ICAgaWYgKG1faG9zdHNbaV0tPmltYWdlQmFja2luZ1Zpc2libGUoKSkgeworICAgICAgICAgICAg
bV9pc1Zpc2libGUgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBib29sIGNoYW5nZWRUb0ludmlzaWJsZSA9IHByZXZpb3VzSXNWaXNpYmxlICYmICFt
X2lzVmlzaWJsZTsKKyAgICBpZiAoY2hhbmdlZFRvSW52aXNpYmxlKSB7CisgICAgICAgIEFTU0VS
VCghbV9jbGVhckNvbnRlbnRzVGltZXIuaXNBY3RpdmUoKSk7CisgICAgICAgIG1fY2xlYXJDb250
ZW50c1RpbWVyLnN0YXJ0T25lU2hvdChjbGVhckNvbnRlbnRzVGltZXJJbnRlcnZhbCk7CisgICAg
fQorCisgICAgY2hhbmdlZFRvVmlzaWJsZSA9ICFwcmV2aW91c0lzVmlzaWJsZSAmJiBtX2lzVmlz
aWJsZTsKKworICAgIGlmIChtX2lzVmlzaWJsZSAmJiBtX2NsZWFyQ29udGVudHNUaW1lci5pc0Fj
dGl2ZSgpKSB7CisgICAgICAgIG1fY2xlYXJDb250ZW50c1RpbWVyLnN0b3AoKTsKKyAgICAgICAg
Ly8gV2UgZG9uJ3Qgd2FudCB0byB1cGRhdGUgdGhlIHRleHR1cmUgaWYgd2UgZGlkbid0IHJlbW92
ZSB0aGUgdGV4dHVyZS4KKyAgICAgICAgY2hhbmdlZFRvVmlzaWJsZSA9IGZhbHNlOworICAgIH0K
K30KKwordm9pZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6Y2xlYXJDb250ZW50c1RpbWVyRmly
ZWQoV2ViQ29yZTo6VGltZXI8Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc+KikKK3sKKyAgICBtX2Nv
b3JkaW5hdG9yLT5jbGVhckltYWdlQmFja2luZ0NvbnRlbnRzKGlkKCkpOworfQorCiB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFj
a2luZy5oCmluZGV4IGQwY2QyMTc4YWZjZGI0ZTc0MTgwMzExYWQ1YmM4MDk3ZDM1NzkwMmQuLjc2
MjY2YTRiNDE0MGI5NDM3YjExNzI1Mzc1NzBhN2YyMDA3OTEwZGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkSW1hZ2VCYWNraW5nLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuaApAQCAtMzUsMTAg
KzM1LDYgQEAKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KIAotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyOwotfQotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmcgOiBwdWJsaWMgUmVmQ291bnRlZDxDb29yZGluYXRlZEltYWdlQmFja2luZz4gewpAQCAt
NDcsMTcgKzQzLDIzIEBAIHB1YmxpYzoKICAgICBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBjcmVhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkgPSAwOwogICAg
ICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNr
aW5nSUQsIGNvbnN0IFNoYXJlYWJsZVN1cmZhY2U6OkhhbmRsZSYpID0gMDsKKyAgICAgICAgdmly
dHVhbCB2b2lkIGNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMoQ29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmdJRCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSW1hZ2VCYWNraW5nKENvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nSUQpID0gMDsKICAgICB9OwogCisgICAgY2xhc3MgSG9zdCB7Cisg
ICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIGJvb2wgaW1hZ2VCYWNraW5nVmlzaWJsZSgpID0g
MDsKKyAgICB9OworCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmc+IGNyZWF0ZShDb29yZGluYXRvciosIFBhc3NSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+KTsKICAg
ICB2aXJ0dWFsIH5Db29yZGluYXRlZEltYWdlQmFja2luZygpOwogCiAgICAgc3RhdGljIENvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nSUQgZ2V0Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRChXZWJDb3Jl
OjpJbWFnZSopOwogICAgIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaWQoKSBjb25zdCB7IHJl
dHVybiBtX2lkOyB9CiAKLSAgICB2b2lkIGFkZExheWVyQ2xpZW50KFdlYkNvcmU6OkNvb3JkaW5h
dGVkR3JhcGhpY3NMYXllciopOwotICAgIHZvaWQgcmVtb3ZlTGF5ZXJDbGllbnQoV2ViQ29yZTo6
Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKik7CisgICAgdm9pZCBhZGRIb3N0KEhvc3QqKTsKKyAg
ICB2b2lkIHJlbW92ZUhvc3QoSG9zdCopOwogCiAgICAgLy8gV2hlbiBhIG5ldyBpbWFnZSBpcyB1
cGRhdGVkIG9yIGFuIGFuaW1hdGVkIGdpZiBpcyBwcm9ncmVzc2VkLCBDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIgY2FsbHMgbWFya0RpcnR5KCkuCiAgICAgdm9pZCBtYXJrRGlydHkoKTsKQEAgLTY5
LDE2ICs3MSwyMyBAQCBwcml2YXRlOgogICAgIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nKENvb3Jk
aW5hdG9yKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJbWFnZT4pOwogCiAgICAgdm9pZCByZWxlYXNl
U3VyZmFjZUlmTmVlZGVkKCk7CisgICAgdm9pZCB1cGRhdGVWaXNpYmlsaXR5SWZOZWVkZWQoYm9v
bCYgY2hhbmdlZFRvVmlzaWJsZSk7CisgICAgdm9pZCBjbGVhckNvbnRlbnRzVGltZXJGaXJlZChX
ZWJDb3JlOjpUaW1lcjxDb29yZGluYXRlZEltYWdlQmFja2luZz4qKTsKIAogICAgIENvb3JkaW5h
dG9yKiBtX2Nvb3JkaW5hdG9yOwogICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gbV9pbWFnZTsK
KyAgICBXZWJDb3JlOjpOYXRpdmVJbWFnZVB0ciBtX25hdGl2ZUltYWdlUHRyOwogICAgIENvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nSUQgbV9pZDsKLSAgICBWZWN0b3I8V2ViQ29yZTo6Q29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyKj4gbV9sYXllckNsaWVudHM7CisgICAgVmVjdG9yPEhvc3QqPiBtX2hv
c3RzOwogCiAgICAgUmVmUHRyPFNoYXJlYWJsZVN1cmZhY2U+IG1fc3VyZmFjZTsKICAgICBPd25Q
dHI8U2hhcmVhYmxlU3VyZmFjZTo6SGFuZGxlPiBtX2hhbmRsZTsKIAorICAgIFdlYkNvcmU6OlRp
bWVyPENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nPiBtX2NsZWFyQ29udGVudHNUaW1lcjsKKwogICAg
IGJvb2wgbV9pc0RpcnR5OworICAgIGJvb2wgbV9pc1Zpc2libGU7CisKIH07CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAppbmRl
eCA0ZjViODExODcwZjQ1NDAzYzcyMTc5NjRkY2EzMTllYTVkNDgyMTQ4Li4xNmEzNWZkMzQ2ZWY5
OTlkMjdjOTJmMjQwYjdhNjE3NzIyZjA5ZGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCkBAIC01NTYsNiArNTU2LDEyIEBAIHZv
aWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZElt
YWdlQmFja2luZ0lEIGltYWdlSUQsCiAgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXll
clRyZWVDb29yZGluYXRvclByb3h5OjpVcGRhdGVJbWFnZUJhY2tpbmcoaW1hZ2VJRCwgaGFuZGxl
KSk7CiB9CiAKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmNsZWFySW1hZ2VCYWNraW5nQ29u
dGVudHMoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlEKQoreworICAgIG1fc2hvdWxk
U3luY0ZyYW1lID0gdHJ1ZTsKKyAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHk6OkNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMoaW1hZ2VJRCkpOwor
fQorCiB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpyZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRp
bmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlEKQogewogICAgIGlmIChtX2lzUHVyZ2luZykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCmluZGV4
IDcyZmU3NTI0MGM1MzRjMjVmYTIwYjY1YzMyZWFmZDM3OGUxZDVjMjAuLjY3OTU5M2FmNzU1Njk2
YzhhZWJjZjU3OTlhZjVjMDFmMDdhYzc5MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9y
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaApAQCAtMTI1LDYgKzEyNSw3IEBAIHByaXZhdGU6
CiAgICAgLy8gQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OkNvb3JkaW5hdG9yCiAgICAgdmlydHVh
bCB2b2lkIGNyZWF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1h
Z2VCYWNraW5nSUQsIGNvbnN0IFNoYXJlYWJsZVN1cmZhY2U6OkhhbmRsZSYpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBjbGVhckltYWdlQmFja2luZ0NvbnRlbnRzKENvb3JkaW5hdGVkSW1h
Z2VCYWNraW5nSUQpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJbWFnZUJhY2tp
bmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkgT1ZFUlJJREU7CiAKICAgICB2b2lkIGZsdXNo
UGVuZGluZ0ltYWdlQmFja2luZ0NoYW5nZXMoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175049</attachid>
            <date>2012-11-19 15:03:59 -0800</date>
            <delta_ts>2012-11-19 15:09:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102449-20121120080138.patch</filename>
            <type>text/plain</type>
            <size>20999</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MTI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGYxYjAxMDhlYTRlYTVj
ZDgwZGEwOGIxZDgyNWUyMWY0YTk1ZDIwMS4uYjgxODRkYjFjNzNiMTdkOTM0ZDcwYzliMjQyN2M4
MTZlNDkwOTdlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTExLTE5ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZW1vdmUgYSB0ZXh0dXJlIGlmIGFuIGRpcmVjdCBjb21wb3NpdGVkIGlt
YWdlIGlzIG9mZiB0aGUgdmlld3BvcnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDI0NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOb2FtIFJvc2Vu
dGhhbC4KKworICAgICAgICBDdXJyZW50bHksIG9uY2UgdXBsb2FkaW5nIHRleHR1cmVzIGZvciBj
b21wb3NpdGVkIGltYWdlcywgQ29vcmRpbmF0ZWQgR3JhcGhpY3MKKyAgICAgICAgZG9lcyBub3Qg
cmVsZWFzZSB0aGUgdGV4dHVyZXMgdW50aWwgYWxsIGxheWVycyB1c2luZyBpbWFnZXMgYXJlIGRl
c3Ryb3llZC4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgYSB0ZXh0dXJlIGlmIHdlIGRv
bid0IG5lZWQgdG8gcmVuZGVyIGFuIGltYWdlLiBUaGlzIG1lY2hhbmlzbQorICAgICAgICBpcyBz
aW1pbGFyIGhvdyBUaWxlZEJhY2tpbmdTdG9yZSByZW1vdmVzIGludmlzaWJsZSB0aWxlcy4KKwor
ICAgICAgICBXaGVuIGFsbCBsYXllcnMgYXJlIGludmlzaWJsZSwgd2Ugd2FpdCAzIHNlY29uZHMg
dG8gcmVtb3ZlIHRoZSBjb250ZW50CisgICAgICAgIG9mIHRoZSBpbWFnZSwgYmVjYXVzZSB3ZSB3
YW50IHRvIHByZXZlbnQgYSB0cmFuc2Zvcm0gYW5pbWF0aW9uIGZyb20KKyAgICAgICAgY3JlYXRp
bmcgYW5kIGRlc3Ryb3lpbmcgYSB0ZXh0dXJlIG92ZXIgYW5kIG92ZXIgYWdhaW4uCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9y
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpyZW1vdmVB
bGxUaWxlcyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmg6CisgICAgICAgIChDb29yZGlu
YXRlZEJhY2tpbmdTdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHk6OmNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMpOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVDb29yZGluYXRvclByb3h5Lmg6CisgICAgICAgIChMYXllclRyZWVDb29yZGluYXRvclBy
b3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVD
b29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlUmVuZGVyZXI6OmNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMpOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5oOgorICAgICAgICAoTGF5ZXJUcmVlUmVuZGVyZXIpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNJ
bWFnZUJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjppbWFnZUJhY2tpbmdWaXNpYmxlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZWxlYXNlSW1hZ2VCYWNraW5nSWZOZWVk
ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5oOgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZEltYWdlQmFja2luZy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nOjpDb29yZGluYXRlZEltYWdlQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6
OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjphZGRIb3N0KToKKyAgICAgICAgKFdlYktpdDo6Q29v
cmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnJlbW92ZUhvc3QpOgorICAgICAgICAoV2ViS2l0OjpDb29y
ZGluYXRlZEltYWdlQmFja2luZzo6dXBkYXRlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJLaXQ6OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjp1cGRhdGVWaXNpYmlsaXR5SWZOZWVk
ZWQpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEltYWdlQmFja2luZzo6Y2xlYXJDb250
ZW50c1RpbWVyRmlyZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmg6CisgICAgICAgIChDb29yZGluYXRv
cik6CisgICAgICAgIChIb3N0KToKKyAgICAgICAgKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9y
OjpjbGVhckltYWdlQmFja2luZ0NvbnRlbnRzKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRp
bmF0b3IuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5hdG9yKToKKwogMjAxMi0xMS0xOSAg
Q2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAg
IFtDR11bV0syXSBBc3NlcnRpb24gaW4gQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzZXRDb250
ZW50c1RvSW1hZ2UoV2ViQ29yZTo6SW1hZ2UqKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0
ZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IDJiNjdmOGFlNTA5MjZiNGEwNTJlYjk5NGQzNjVhODBj
NGQ2NGI0MTIuLjEyYWZiYzk0ZTMxNGI0MDZjNWFkMDc1NmIyZTRmMjc4ZTMzNjY2MmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTc3LDYgKzc3
LDEzIEBAIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6OnJlbW92ZVRpbGUoaW50IGlkKQog
ICAgIG1fdGlsZXNUb1JlbW92ZS5hZGQoaWQpOwogfQogCit2b2lkIENvb3JkaW5hdGVkQmFja2lu
Z1N0b3JlOjpyZW1vdmVBbGxUaWxlcygpCit7CisgICAgSGFzaE1hcDxpbnQsIENvb3JkaW5hdGVk
QmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9yIGVuZCA9IG1fdGlsZXMuZW5kKCk7CisgICAgZm9y
IChIYXNoTWFwPGludCwgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmVUaWxlPjo6aXRlcmF0b3IgaXQg
PSBtX3RpbGVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgbV90aWxlc1RvUmVt
b3ZlLmFkZChpdC0+a2V5KTsKK30KKwogdm9pZCBDb29yZGluYXRlZEJhY2tpbmdTdG9yZTo6dXBk
YXRlVGlsZShpbnQgaWQsIGNvbnN0IEludFJlY3QmIHNvdXJjZVJlY3QsIGNvbnN0IEludFJlY3Qm
IHRpbGVSZWN0LCBQYXNzUmVmUHRyPFNoYXJlYWJsZVN1cmZhY2U+IGJhY2tCdWZmZXIsIGNvbnN0
IEludFBvaW50JiBvZmZzZXQpCiB7CiAgICAgSGFzaE1hcDxpbnQsIENvb3JkaW5hdGVkQmFja2lu
Z1N0b3JlVGlsZT46Oml0ZXJhdG9yIGl0ID0gbV90aWxlcy5maW5kKGlkKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
QmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFw
aGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oCmluZGV4IDE0MGU2NzQ3YzNiMjRjZjZlODJi
YmRkNDUxZmIwZWI4YWM5ZjdjNGEuLmIwYmFjYTYzNWJlYjcxNWRiOTNkY2Q5MWI5NmU5NTZiODIz
ZjRmNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuaApAQCAt
NTksNiArNTksNyBAQCBjbGFzcyBDb29yZGluYXRlZEJhY2tpbmdTdG9yZSA6IHB1YmxpYyBXZWJD
b3JlOjpUZXh0dXJlTWFwcGVyQmFja2luZ1N0b3JlIHsKIHB1YmxpYzoKICAgICB2b2lkIGNyZWF0
ZVRpbGUoaW50LCBmbG9hdCk7CiAgICAgdm9pZCByZW1vdmVUaWxlKGludCk7CisgICAgdm9pZCBy
ZW1vdmVBbGxUaWxlcygpOwogICAgIHZvaWQgdXBkYXRlVGlsZShpbnQsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgUGFzc1JlZlB0cjxTaGFyZWFibGVT
dXJmYWNlPiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKICAgICBib29sIGlzRW1wdHkoKSBj
b25zdDsKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gY3Jl
YXRlKCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IENvb3JkaW5hdGVkQmFja2luZ1N0b3JlKTsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNwcAppbmRleCAy
N2Y1ZTU1ZjVlYTFhNDRiMTkyNTQ3YzIyNzk0ZGYxYWZiMDNlM2UzLi5kM2NkN2Q4M2M3MGJhOWE3
NTU5NTFiNDM0NDhmYjM4NzhhYmFhNGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvclByb3h5LmNwcApAQCAtMTUyLDYgKzE1MiwxMSBAQCB2b2lkIExheWVyVHJl
ZUNvb3JkaW5hdG9yUHJveHk6OnVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFj
a2luZ0lEIGltYQogICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjp1
cGRhdGVJbWFnZUJhY2tpbmcsIG1fcmVuZGVyZXIuZ2V0KCksIGltYWdlSUQsIFNoYXJlYWJsZVN1
cmZhY2U6OmNyZWF0ZShoYW5kbGUpKSk7CiB9CiAKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eTo6Y2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lE
IGltYWdlSUQpCit7CisgICAgZGlzcGF0Y2hVcGRhdGUoYmluZCgmTGF5ZXJUcmVlUmVuZGVyZXI6
OmNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMsIG1fcmVuZGVyZXIuZ2V0KCksIGltYWdlSUQpKTsK
K30KKwogdm9pZCBMYXllclRyZWVDb29yZGluYXRvclByb3h5OjpyZW1vdmVJbWFnZUJhY2tpbmco
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlEKQogewogICAgIGRpc3BhdGNoVXBkYXRl
KGJpbmQoJkxheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVJbWFnZUJhY2tpbmcsIG1fcmVuZGVyZXIu
Z2V0KCksIGltYWdlSUQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9y
UHJveHkuaAppbmRleCAxZGYyYzgxMWVhMTU0ODlhYTU0YWZiNjIwZjQwZWUxODI3ZmIyMTA4Li5j
ODcyZmUwZjIxNDljYWVmM2NmZGY0NTFjNDczNTFmNmVjZmViMzI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGlu
YXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5oCkBAIC03Myw2ICs3Myw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHJlbW92ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lEKTsKICAgICB2b2lkIGNy
ZWF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKTsKICAgICB2b2lkIHVw
ZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lELCBjb25zdCBTaGFyZWFi
bGVTdXJmYWNlOjpIYW5kbGUmKTsKKyAgICB2b2lkIGNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMo
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAgdm9pZCByZW1vdmVJbWFnZUJhY2tpbmco
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlTGF5ZXJUcmVl
Q29vcmRpbmF0b3JQcm94eU1lc3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1l
c3NhZ2VJRCwgQ29yZUlQQzo6TWVzc2FnZURlY29kZXImKTsKICAgICB2b2lkIHVwZGF0ZVZpZXdw
b3J0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCAwY2Y1ZTJkOTkxZTBiNjFmNDY2OGI3YWNiY2Q2ZjFlNmZi
YWMyYmQ4Li41YTBlYTY4M2ViZTc5ODgxZmM0NWMxN2JmMjdkMTYwYmMzYjc0YTk5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTM3LDYgKzM3LDcgQEAgbWVzc2FnZXMgLT4gTGF5ZXJUcmVlQ29vcmRpbmF0b3JQ
cm94eSB7CiAgICAgUmVtb3ZlVXBkYXRlQXRsYXMoaW50IGF0bGFzSUQpCiAgICAgQ3JlYXRlSW1h
Z2VCYWNraW5nKHVpbnQ2NF90IGltYWdlSUQpCiAgICAgVXBkYXRlSW1hZ2VCYWNraW5nKHVpbnQ2
NF90IGltYWdlSUQsIFdlYktpdDo6U2hhcmVhYmxlU3VyZmFjZTo6SGFuZGxlIGhhbmRsZSkKKyAg
ICBDbGVhckltYWdlQmFja2luZ0NvbnRlbnRzKHVpbnQ2NF90IGltYWdlSUQpCiAgICAgUmVtb3Zl
SW1hZ2VCYWNraW5nKHVpbnQ2NF90IGltYWdlSUQpCiAgICAgRGlkUmVuZGVyRnJhbWUoV2ViQ29y
ZTo6SW50U2l6ZSBjb250ZW50c1NpemUsIFdlYkNvcmU6OkludFJlY3QgY292ZXJlZFJlY3QpCiAg
ICAgRGlkQ2hhbmdlU2Nyb2xsUG9zaXRpb24oV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVSZW5kZXJlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0
ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKaW5kZXggMjg4OTQ5N2E0MTM4YTJiOWNi
OTdlYWI4ZmFjYWI3MWY1NDkyNTU4MC4uNzUzZDQxYjY1ZTVkZDQyNzk4OTlhNDMyNWE0N2FhYmYw
NzQwNTU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcApAQCAtNDk1LDYg
KzQ5NSwxNSBAQCB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjp1cGRhdGVJbWFnZUJhY2tpbmcoQ29v
cmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlELCBQYQogICAgIG1fYmFja2luZ1N0b3Jlc1dp
dGhQZW5kaW5nQnVmZmVycy5hZGQoYmFja2luZ1N0b3JlKTsKIH0KIAordm9pZCBMYXllclRyZWVS
ZW5kZXJlcjo6Y2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhDb29yZGluYXRlZEltYWdlQmFja2lu
Z0lEIGltYWdlSUQpCit7CisgICAgQVNTRVJUKG1faW1hZ2VCYWNraW5ncy5jb250YWlucyhpbWFn
ZUlEKSk7CisgICAgSW1hZ2VCYWNraW5nTWFwOjppdGVyYXRvciBpdCA9IG1faW1hZ2VCYWNraW5n
cy5maW5kKGltYWdlSUQpOworICAgIFJlZlB0cjxDb29yZGluYXRlZEJhY2tpbmdTdG9yZT4gYmFj
a2luZ1N0b3JlID0gaXQtPnZhbHVlOworICAgIGJhY2tpbmdTdG9yZS0+cmVtb3ZlQWxsVGlsZXMo
KTsKKyAgICBtX2JhY2tpbmdTdG9yZXNXaXRoUGVuZGluZ0J1ZmZlcnMuYWRkKGJhY2tpbmdTdG9y
ZSk7Cit9CisKIHZvaWQgTGF5ZXJUcmVlUmVuZGVyZXI6OnJlbW92ZUltYWdlQmFja2luZyhDb29y
ZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWdlSUQpCiB7CiAgICAgQVNTRVJUKG1faW1hZ2VCYWNr
aW5ncy5jb250YWlucyhpbWFnZUlEKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaApp
bmRleCA2NWI0OGYwYjUxM2FmNTM2M2MxNjEyZjU1M2Q2N2E4ODRmYmYyNzAwLi4zMzI5NTQ4NGUy
YWZlNjBmZGYzMDI3YTgwNTU5OGYzYzU0Yzc5ZTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJl
bmRlcmVyLmgKQEAgLTEwMSw2ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmbHVzaExheWVy
Q2hhbmdlcygpOwogICAgIHZvaWQgY3JlYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VC
YWNraW5nSUQpOwogICAgIHZvaWQgdXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VC
YWNraW5nSUQsIFBhc3NSZWZQdHI8U2hhcmVhYmxlU3VyZmFjZT4pOworICAgIHZvaWQgY2xlYXJJ
bWFnZUJhY2tpbmdDb250ZW50cyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKTsKICAgICB2b2lk
IHJlbW92ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKTsKICAgICB2b2lk
IHNldExheWVyQW5pbWF0aW9ucyhXZWJMYXllcklELCBjb25zdCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQW5pbWF0aW9ucyYpOwogICAgIHZvaWQgc2V0QW5pbWF0aW9uc0xvY2tlZChib29sKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIuY3BwCmluZGV4IDhmYWQ5MDNjZGM0ZTQ4NjQxOWM4YjNkNzZjYzEyNjBjM2ZjNzY1ZTkuLjYw
YmI0NzQwNjVkMWM3ODQ0MDRiOTE1ZWU1MTdiOWE5MWJhZmVmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcApAQCAt
NDgxLDcgKzQ4MSw3IEBAIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpzeW5jSW1hZ2VC
YWNraW5nKCkKIAogICAgICAgICBpZiAoIW1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcpIHsKICAg
ICAgICAgICAgIG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcgPSBtX2Nvb3JkaW5hdG9yLT5jcmVh
dGVJbWFnZUJhY2tpbmdJZk5lZWRlZChtX2NvbXBvc2l0ZWRJbWFnZS5nZXQoKSk7Ci0gICAgICAg
ICAgICBtX2Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLT5hZGRMYXllckNsaWVudCh0aGlzKTsKKyAg
ICAgICAgICAgIG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmctPmFkZEhvc3QodGhpcyk7CiAgICAg
ICAgICAgICBtX2xheWVySW5mby5pbWFnZUlEID0gbV9jb29yZGluYXRlZEltYWdlQmFja2luZy0+
aWQoKTsKICAgICAgICAgfQogCkBAIC01NTksMTMgKzU1OSwxOSBAQCB2b2lkIENvb3JkaW5hdGVk
R3JhcGhpY3NMYXllcjo6Zmx1c2hDb21wb3NpdGluZ1N0YXRlRm9yVGhpc0xheWVyT25seSgpCiAg
ICAgc3luY0NhbnZhcygpOwogfQogCitib29sIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6aW1h
Z2VCYWNraW5nVmlzaWJsZSgpCit7CisgICAgQVNTRVJUKG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmcpOworICAgIHJldHVybiB0aWxlZEJhY2tpbmdTdG9yZVZpc2libGVSZWN0KCkuaW50ZXJzZWN0
cyhjb250ZW50c1JlY3QoKSk7Cit9CisKIHZvaWQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpy
ZWxlYXNlSW1hZ2VCYWNraW5nSWZOZWVkZWQoKQogewogICAgIGlmICghbV9jb29yZGluYXRlZElt
YWdlQmFja2luZykKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKG1fY29vcmRpbmF0b3Ip
OwotICAgIG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmctPnJlbW92ZUxheWVyQ2xpZW50KHRoaXMp
OworICAgIG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmctPnJlbW92ZUhvc3QodGhpcyk7CiAgICAg
bV9jb29yZGluYXRlZEltYWdlQmFja2luZy5jbGVhcigpOwogICAgIG1fbGF5ZXJJbmZvLmltYWdl
SUQgPSBJbnZhbGlkQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRDsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5kZXggZDFm
NTgxMTlmZGM0YzQwM2JlZTY1YjljYzY0NGY1OWE0MDFkYWMwOC4uODRiZDNmMGIxMjk5Y2IxNjg1
MDgwMjQwNTkxMGY5ZmY0ZmU3YWUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTc5LDYgKzc5LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIgOiBwdWJsaWMg
R3JhcGhpY3NMYXllcgogICAgICwgcHVibGljIFRpbGVkQmFja2luZ1N0b3JlQ2xpZW50CisgICAg
LCBwdWJsaWMgV2ViS2l0OjpDb29yZGluYXRlZEltYWdlQmFja2luZzo6SG9zdAogICAgICwgcHVi
bGljIFdlYktpdDo6Q29vcmRpbmF0ZWRUaWxlQ2xpZW50IHsKIHB1YmxpYzoKICAgICBleHBsaWNp
dCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCopOwpAQCAtMTg1
LDYgKzE4Niw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVCYWNraW5nU3RvcmUoKTsKICAg
ICB2b2lkIHJlbGVhc2VJbWFnZUJhY2tpbmdJZk5lZWRlZCgpOwogCisgICAgLy8gQ29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmc6Okhvc3QKKyAgICB2aXJ0dWFsIGJvb2wgaW1hZ2VCYWNraW5nVmlzaWJs
ZSgpIE9WRVJSSURFOworCiAgICAgYm9vbCBzZWxmT3JBbmNlc3RvckhhdmVOb25BZmZpbmVUcmFu
c2Zvcm1zKCk7CiAgICAgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdTdG9yZSgpOwogICAgIHZv
aWQgYWRqdXN0Q29udGVudHNTY2FsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmcuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwCmluZGV4IGE0ZjllOTA5YWY3YTE2OTg3
NTU2ZGMxMDE2NDZjNjRjZDI3YjRjNDIuLjU1Y2E5ZGE3YjU5NGNiNjk4Zjc4YTZjOTBhYjE0MTk0
ZjlhMWIxYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEltYWdlQmFja2luZy5jcHAKQEAgLTQ5LDcgKzQ5LDkgQEAgQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmc6OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nKENvb3JkaW5hdG9yKiBjbGllbnQsIFBhc3NS
ZWZQdHIKICAgICA6IG1fY29vcmRpbmF0b3IoY2xpZW50KQogICAgICwgbV9pbWFnZShpbWFnZSkK
ICAgICAsIG1faWQoZ2V0Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRChtX2ltYWdlLmdldCgpKSkK
KyAgICAsIG1fY2xlYXJDb250ZW50c1RpbWVyKHRoaXMsICZDb29yZGluYXRlZEltYWdlQmFja2lu
Zzo6Y2xlYXJDb250ZW50c1RpbWVyRmlyZWQpCiAgICAgLCBtX2lzRGlydHkoZmFsc2UpCisgICAg
LCBtX2lzVmlzaWJsZShmYWxzZSkKIHsKICAgICAvLyBGSVhNRTogV2Ugd291bGQgbmVlZCB0byBk
ZWNvZGUgYSBzbWFsbCBpbWFnZSBkaXJlY3RseSBpbnRvIGEgR3JhcGhpY3NTdXJmYWNlLgogICAg
IC8vIGh0dHA6Ly93ZWJraXQub3JnL2IvMTAxNDI2CkBAIC02MSwxOSArNjMsMTkgQEAgQ29vcmRp
bmF0ZWRJbWFnZUJhY2tpbmc6On5Db29yZGluYXRlZEltYWdlQmFja2luZygpCiB7CiB9CiAKLXZv
aWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OmFkZExheWVyQ2xpZW50KENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllciogbGF5ZXJDbGllbnQpCit2b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjph
ZGRIb3N0KEhvc3QqIGhvc3QpCiB7Ci0gICAgQVNTRVJUKCFtX2xheWVyQ2xpZW50cy5jb250YWlu
cyhsYXllckNsaWVudCkpOwotICAgIG1fbGF5ZXJDbGllbnRzLmFwcGVuZChsYXllckNsaWVudCk7
CisgICAgQVNTRVJUKCFtX2hvc3RzLmNvbnRhaW5zKGhvc3QpKTsKKyAgICBtX2hvc3RzLmFwcGVu
ZChob3N0KTsKIH0KIAotdm9pZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6cmVtb3ZlTGF5ZXJD
bGllbnQoQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKiBsYXllckNsaWVudCkKK3ZvaWQgQ29vcmRp
bmF0ZWRJbWFnZUJhY2tpbmc6OnJlbW92ZUhvc3QoSG9zdCogaG9zdCkKIHsKLSAgICBzaXplX3Qg
cG9zaXRpb24gPSBtX2xheWVyQ2xpZW50cy5maW5kKGxheWVyQ2xpZW50KTsKKyAgICBzaXplX3Qg
cG9zaXRpb24gPSBtX2hvc3RzLmZpbmQoaG9zdCk7CiAgICAgQVNTRVJUKHBvc2l0aW9uICE9IG5v
dEZvdW5kKTsKLSAgICBtX2xheWVyQ2xpZW50cy5yZW1vdmUocG9zaXRpb24pOworICAgIG1faG9z
dHMucmVtb3ZlKHBvc2l0aW9uKTsKIAotICAgIGlmIChtX2xheWVyQ2xpZW50cy5pc0VtcHR5KCkp
CisgICAgaWYgKG1faG9zdHMuaXNFbXB0eSgpKQogICAgICAgICBtX2Nvb3JkaW5hdG9yLT5yZW1v
dmVJbWFnZUJhY2tpbmcoaWQoKSk7CiB9CiAKQEAgLTg2LDkgKzg4LDIxIEBAIHZvaWQgQ29vcmRp
bmF0ZWRJbWFnZUJhY2tpbmc6OnVwZGF0ZSgpCiB7CiAgICAgcmVsZWFzZVN1cmZhY2VJZk5lZWRl
ZCgpOwogCi0gICAgaWYgKCFtX2lzRGlydHkpCisgICAgYm9vbCBjaGFuZ2VkVG9WaXNpYmxlOwor
ICAgIHVwZGF0ZVZpc2liaWxpdHlJZk5lZWRlZChjaGFuZ2VkVG9WaXNpYmxlKTsKKyAgICBpZiAo
IW1faXNWaXNpYmxlKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAoIWNoYW5nZWRUb1Zpc2li
bGUpIHsKKyAgICAgICAgaWYgKCFtX2lzRGlydHkpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgaWYgKG1fbmF0aXZlSW1hZ2VQdHIgPT0gbV9pbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJy
ZW50RnJhbWUoKSkgeworICAgICAgICAgICAgbV9pc0RpcnR5ID0gZmFsc2U7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKICAgICBtX3N1cmZhY2UgPSBTaGFyZWFibGVT
dXJmYWNlOjpjcmVhdGUobV9pbWFnZS0+c2l6ZSgpLCBtX2ltYWdlLT5jdXJyZW50RnJhbWVIYXNB
bHBoYSgpID8gU2hhcmVhYmxlQml0bWFwOjpTdXBwb3J0c0FscGhhIDogU2hhcmVhYmxlQml0bWFw
OjpOb0ZsYWdzLCBTaGFyZWFibGVTdXJmYWNlOjpTdXBwb3J0c0dyYXBoaWNzU3VyZmFjZSk7CiAg
ICAgbV9oYW5kbGUgPSBhZG9wdFB0cihuZXcgU2hhcmVhYmxlU3VyZmFjZTo6SGFuZGxlKCkpOwog
CkBAIC0xMDIsNiArMTE2LDggQEAgdm9pZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6dXBkYXRl
KCkKICAgICBPd25QdHI8R3JhcGhpY3NDb250ZXh0PiBjb250ZXh0ID0gbV9zdXJmYWNlLT5jcmVh
dGVHcmFwaGljc0NvbnRleHQocmVjdCk7CiAgICAgY29udGV4dC0+ZHJhd0ltYWdlKG1faW1hZ2Uu
Z2V0KCksIENvbG9yU3BhY2VEZXZpY2VSR0IsIHJlY3QsIHJlY3QpOwogCisgICAgbV9uYXRpdmVJ
bWFnZVB0ciA9IG1faW1hZ2UtPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCk7CisKICAgICBt
X2Nvb3JkaW5hdG9yLT51cGRhdGVJbWFnZUJhY2tpbmcoaWQoKSwgKm1faGFuZGxlKTsKICAgICBt
X2lzRGlydHkgPSBmYWxzZTsKIH0KQEAgLTExNCw1ICsxMzAsMzkgQEAgdm9pZCBDb29yZGluYXRl
ZEltYWdlQmFja2luZzo6cmVsZWFzZVN1cmZhY2VJZk5lZWRlZCgpCiAgICAgbV9zdXJmYWNlLmNs
ZWFyKCk7CiB9CiAKK3N0YXRpYyBjb25zdCBkb3VibGUgY2xlYXJDb250ZW50c1RpbWVySW50ZXJ2
YWwgPSAzOworCit2b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjp1cGRhdGVWaXNpYmlsaXR5
SWZOZWVkZWQoYm9vbCYgY2hhbmdlZFRvVmlzaWJsZSkKK3sKKyAgICBib29sIHByZXZpb3VzSXNW
aXNpYmxlID0gbV9pc1Zpc2libGU7CisKKyAgICBtX2lzVmlzaWJsZSA9IGZhbHNlOworICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9ob3N0cy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAo
bV9ob3N0c1tpXS0+aW1hZ2VCYWNraW5nVmlzaWJsZSgpKSB7CisgICAgICAgICAgICBtX2lzVmlz
aWJsZSA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGJvb2wgY2hhbmdlZFRvSW52aXNpYmxlID0gcHJldmlvdXNJc1Zpc2libGUgJiYgIW1faXNWaXNp
YmxlOworICAgIGlmIChjaGFuZ2VkVG9JbnZpc2libGUpIHsKKyAgICAgICAgQVNTRVJUKCFtX2Ns
ZWFyQ29udGVudHNUaW1lci5pc0FjdGl2ZSgpKTsKKyAgICAgICAgbV9jbGVhckNvbnRlbnRzVGlt
ZXIuc3RhcnRPbmVTaG90KGNsZWFyQ29udGVudHNUaW1lckludGVydmFsKTsKKyAgICB9CisKKyAg
ICBjaGFuZ2VkVG9WaXNpYmxlID0gIXByZXZpb3VzSXNWaXNpYmxlICYmIG1faXNWaXNpYmxlOwor
CisgICAgaWYgKG1faXNWaXNpYmxlICYmIG1fY2xlYXJDb250ZW50c1RpbWVyLmlzQWN0aXZlKCkp
IHsKKyAgICAgICAgbV9jbGVhckNvbnRlbnRzVGltZXIuc3RvcCgpOworICAgICAgICAvLyBXZSBk
b24ndCB3YW50IHRvIHVwZGF0ZSB0aGUgdGV4dHVyZSBpZiB3ZSBkaWRuJ3QgcmVtb3ZlIHRoZSB0
ZXh0dXJlLgorICAgICAgICBjaGFuZ2VkVG9WaXNpYmxlID0gZmFsc2U7CisgICAgfQorfQorCit2
b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpjbGVhckNvbnRlbnRzVGltZXJGaXJlZChXZWJD
b3JlOjpUaW1lcjxDb29yZGluYXRlZEltYWdlQmFja2luZz4qKQoreworICAgIG1fY29vcmRpbmF0
b3ItPmNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMoaWQoKSk7Cit9CisKIH0KICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmgK
aW5kZXggZDBjZDIxNzhhZmNkYjRlNzQxODAzMTFhZDViYzgwOTdkMzU3OTAyZC4uNzYyNjZhNGI0
MTQwYjk0MzdiMTE3MjUzNzU3MGE3ZjIwMDc5MTBkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFn
ZUJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5oCkBAIC0zNSwxMCArMzUsNiBA
QAogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI7Ci19
Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBDb29yZGluYXRlZEltYWdlQmFja2luZyA6
IHB1YmxpYyBSZWZDb3VudGVkPENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nPiB7CkBAIC00NywxNyAr
NDMsMjMgQEAgcHVibGljOgogICAgIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGNyZWF0
ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKSA9IDA7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCwg
Y29uc3QgU2hhcmVhYmxlU3VyZmFjZTo6SGFuZGxlJikgPSAwOworICAgICAgICB2aXJ0dWFsIHZv
aWQgY2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKSA9
IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmdJRCkgPSAwOwogICAgIH07CiAKKyAgICBjbGFzcyBIb3N0IHsKKyAgICBwdWJs
aWM6CisgICAgICAgIHZpcnR1YWwgYm9vbCBpbWFnZUJhY2tpbmdWaXNpYmxlKCkgPSAwOworICAg
IH07CisKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb29yZGluYXRlZEltYWdlQmFja2luZz4gY3Jl
YXRlKENvb3JkaW5hdG9yKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJbWFnZT4pOwogICAgIHZpcnR1
YWwgfkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nKCk7CiAKICAgICBzdGF0aWMgQ29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmdJRCBnZXRDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKFdlYkNvcmU6OkltYWdl
Kik7CiAgICAgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpZCgpIGNvbnN0IHsgcmV0dXJuIG1f
aWQ7IH0KIAotICAgIHZvaWQgYWRkTGF5ZXJDbGllbnQoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyKik7Ci0gICAgdm9pZCByZW1vdmVMYXllckNsaWVudChXZWJDb3JlOjpDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIqKTsKKyAgICB2b2lkIGFkZEhvc3QoSG9zdCopOworICAgIHZvaWQg
cmVtb3ZlSG9zdChIb3N0Kik7CiAKICAgICAvLyBXaGVuIGEgbmV3IGltYWdlIGlzIHVwZGF0ZWQg
b3IgYW4gYW5pbWF0ZWQgZ2lmIGlzIHByb2dyZXNzZWQsIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ciBjYWxscyBtYXJrRGlydHkoKS4KICAgICB2b2lkIG1hcmtEaXJ0eSgpOwpAQCAtNjksMTYgKzcx
LDIzIEBAIHByaXZhdGU6CiAgICAgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcoQ29vcmRpbmF0b3Iq
LCBQYXNzUmVmUHRyPFdlYkNvcmU6OkltYWdlPik7CiAKICAgICB2b2lkIHJlbGVhc2VTdXJmYWNl
SWZOZWVkZWQoKTsKKyAgICB2b2lkIHVwZGF0ZVZpc2liaWxpdHlJZk5lZWRlZChib29sJiBjaGFu
Z2VkVG9WaXNpYmxlKTsKKyAgICB2b2lkIGNsZWFyQ29udGVudHNUaW1lckZpcmVkKFdlYkNvcmU6
OlRpbWVyPENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nPiopOwogCiAgICAgQ29vcmRpbmF0b3IqIG1f
Y29vcmRpbmF0b3I7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlPiBtX2ltYWdlOworICAgIFdl
YkNvcmU6Ok5hdGl2ZUltYWdlUHRyIG1fbmF0aXZlSW1hZ2VQdHI7CiAgICAgQ29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmdJRCBtX2lkOwotICAgIFZlY3RvcjxXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIqPiBtX2xheWVyQ2xpZW50czsKKyAgICBWZWN0b3I8SG9zdCo+IG1faG9zdHM7CiAK
ICAgICBSZWZQdHI8U2hhcmVhYmxlU3VyZmFjZT4gbV9zdXJmYWNlOwogICAgIE93blB0cjxTaGFy
ZWFibGVTdXJmYWNlOjpIYW5kbGU+IG1faGFuZGxlOwogCisgICAgV2ViQ29yZTo6VGltZXI8Q29v
cmRpbmF0ZWRJbWFnZUJhY2tpbmc+IG1fY2xlYXJDb250ZW50c1RpbWVyOworCiAgICAgYm9vbCBt
X2lzRGlydHk7CisgICAgYm9vbCBtX2lzVmlzaWJsZTsKKwogfTsKIAogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5
ZXJUcmVlQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCmluZGV4IDRmNWI4
MTE4NzBmNDU0MDNjNzIxNzk2NGRjYTMxOWVhNWQ0ODIxNDguLjE2YTM1ZmQzNDZlZjk5OWQyN2M5
MmYyNDBiN2E2MTc3MjJmMDlkZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKQEAgLTU1Niw2ICs1NTYsMTIgQEAgdm9pZCBMYXll
clRyZWVDb29yZGluYXRvcjo6dXBkYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNr
aW5nSUQgaW1hZ2VJRCwKICAgICBtX3dlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OkxheWVyVHJlZUNv
b3JkaW5hdG9yUHJveHk6OlVwZGF0ZUltYWdlQmFja2luZyhpbWFnZUlELCBoYW5kbGUpKTsKIH0K
IAordm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6Y2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhD
b29yZGluYXRlZEltYWdlQmFja2luZ0lEIGltYWdlSUQpCit7CisgICAgbV9zaG91bGRTeW5jRnJh
bWUgPSB0cnVlOworICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5ZXJUcmVlQ29vcmRp
bmF0b3JQcm94eTo6Q2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhpbWFnZUlEKSk7Cit9CisKIHZv
aWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnJlbW92ZUltYWdlQmFja2luZyhDb29yZGluYXRlZElt
YWdlQmFja2luZ0lEIGltYWdlSUQpCiB7CiAgICAgaWYgKG1faXNQdXJnaW5nKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKaW5kZXggNzJmZTc1
MjQwYzUzNGMyNWZhMjBiNjVjMzJlYWZkMzc4ZTFkNWMyMC4uNjc5NTkzYWY3NTU2OTZjOGFlYmNm
NTc5OWFmNWMwMWYwN2FjNzkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9M
YXllclRyZWVDb29yZGluYXRvci5oCkBAIC0xMjUsNiArMTI1LDcgQEAgcHJpdmF0ZToKICAgICAv
LyBDb29yZGluYXRlZEltYWdlQmFja2luZzo6Q29vcmRpbmF0b3IKICAgICB2aXJ0dWFsIHZvaWQg
Y3JlYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmdJRCwgY29uc3QgU2hhcmVhYmxlU3VyZmFjZTo6SGFuZGxlJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIGNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMoQ29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmdJRCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUltYWdlQmFja2luZyhDb29y
ZGluYXRlZEltYWdlQmFja2luZ0lEKSBPVkVSUklERTsKIAogICAgIHZvaWQgZmx1c2hQZW5kaW5n
SW1hZ2VCYWNraW5nQ2hhbmdlcygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175052</attachid>
            <date>2012-11-19 15:09:13 -0800</date>
            <delta_ts>2012-11-19 16:04:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102449-20121120080652.patch</filename>
            <type>text/plain</type>
            <size>20950</size>
            <attacher name="Dongseong Hwang">dongseong.hwang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTQ0MmJiODdlN2YzZmQ2
YzA1OTNhNDY0ZjUwMjVjNDQwYWFmYzJiMS4uMThhZTIwMTAxYTc3ZTRhODA5NDQxNGM2YTA1NDhm
ZjBkYjZlMzJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTExLTE5ICBIdWFu
ZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNvbXBhbnkxMDAubmV0PgorCisgICAgICAgIENvb3JkaW5h
dGVkIEdyYXBoaWNzOiBSZW1vdmUgYSB0ZXh0dXJlIGlmIGFuIGRpcmVjdCBjb21wb3NpdGVkIGlt
YWdlIGlzIG9mZiB0aGUgdmlld3BvcnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDI0NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOb2FtIFJvc2Vu
dGhhbC4KKworICAgICAgICBDdXJyZW50bHksIG9uY2UgdXBsb2FkaW5nIHRleHR1cmVzIGZvciBj
b21wb3NpdGVkIGltYWdlcywgQ29vcmRpbmF0ZWQgR3JhcGhpY3MKKyAgICAgICAgZG9lcyBub3Qg
cmVsZWFzZSB0aGUgdGV4dHVyZXMgdW50aWwgYWxsIGxheWVycyB1c2luZyBpbWFnZXMgYXJlIGRl
c3Ryb3llZC4KKworICAgICAgICBUaGlzIHBhdGNoIHJlbW92ZXMgYSB0ZXh0dXJlIGlmIHdlIGRv
bid0IG5lZWQgdG8gcmVuZGVyIGFuIGltYWdlLiBUaGlzIG1lY2hhbmlzbQorICAgICAgICBpcyBz
aW1pbGFyIGhvdyBUaWxlZEJhY2tpbmdTdG9yZSByZW1vdmVzIGludmlzaWJsZSB0aWxlcy4KKwor
ICAgICAgICBXaGVuIGFsbCBsYXllcnMgYXJlIGludmlzaWJsZSwgd2Ugd2FpdCAzIHNlY29uZHMg
dG8gcmVtb3ZlIHRoZSBjb250ZW50CisgICAgICAgIG9mIHRoZSBpbWFnZSwgYmVjYXVzZSB3ZSB3
YW50IHRvIHByZXZlbnQgYSB0cmFuc2Zvcm0gYW5pbWF0aW9uIGZyb20KKyAgICAgICAgY3JlYXRp
bmcgYW5kIGRlc3Ryb3lpbmcgYSB0ZXh0dXJlIG92ZXIgYW5kIG92ZXIgYWdhaW4uCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9y
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpyZW1vdmVB
bGxUaWxlcyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmg6CisgICAgICAgIChDb29yZGlu
YXRlZEJhY2tpbmdTdG9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHk6OmNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMpOgorICAgICAg
ICAoV2ViS2l0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVDb29yZGluYXRvclByb3h5Lmg6CisgICAgICAgIChMYXllclRyZWVDb29yZGluYXRvclBy
b3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVD
b29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlUmVuZGVyZXI6OmNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMpOgorICAgICAgICAoV2Vi
S2l0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVS
ZW5kZXJlci5oOgorICAgICAgICAoTGF5ZXJUcmVlUmVuZGVyZXIpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXll
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnN5bmNJ
bWFnZUJhY2tpbmcpOgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVy
OjppbWFnZUJhY2tpbmdWaXNpYmxlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyOjpyZWxlYXNlSW1hZ2VCYWNraW5nSWZOZWVk
ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5oOgorICAgICAgICAoQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZEltYWdlQmFja2luZy5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNvb3JkaW5hdGVk
SW1hZ2VCYWNraW5nOjpDb29yZGluYXRlZEltYWdlQmFja2luZyk6CisgICAgICAgIChXZWJLaXQ6
OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjphZGRIb3N0KToKKyAgICAgICAgKFdlYktpdDo6Q29v
cmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnJlbW92ZUhvc3QpOgorICAgICAgICAoV2ViS2l0OjpDb29y
ZGluYXRlZEltYWdlQmFja2luZzo6dXBkYXRlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
IChXZWJLaXQ6OkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjp1cGRhdGVWaXNpYmlsaXR5SWZOZWVk
ZWQpOgorICAgICAgICAoV2ViS2l0OjpDb29yZGluYXRlZEltYWdlQmFja2luZzo6Y2xlYXJDb250
ZW50c1RpbWVyRmlyZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmg6CisgICAgICAgIChDb29yZGluYXRv
cik6CisgICAgICAgIChIb3N0KToKKyAgICAgICAgKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nKToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9y
OjpjbGVhckltYWdlQmFja2luZ0NvbnRlbnRzKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRp
bmF0b3IuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5hdG9yKToKKwogMjAxMi0xMS0xOSAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSB0cnlVc2VQ
bGF0Zm9ybUNlcnRpZmljYXRlSW5mb0ZvckNoYWxsZW5nZSBmcm9tIEF1dGhlbnRpY2F0aW9uTWFu
YWdlciB0byBQbGF0Zm9ybUNlcnRpZmljYXRlSW5mby4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3Jl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3Jk
aW5hdGVkQmFja2luZ1N0b3JlLmNwcAppbmRleCAyYjY3ZjhhZTUwOTI2YjRhMDUyZWI5OTRkMzY1
YTgwYzRkNjRiNDEyLi4xMmFmYmM5NGUzMTRiNDA2YzVhZDA3NTZiMmU0ZjI3OGUzMzY2NjJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCkBAIC03Nyw2
ICs3NywxMyBAQCB2b2lkIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlOjpyZW1vdmVUaWxlKGludCBp
ZCkKICAgICBtX3RpbGVzVG9SZW1vdmUuYWRkKGlkKTsKIH0KIAordm9pZCBDb29yZGluYXRlZEJh
Y2tpbmdTdG9yZTo6cmVtb3ZlQWxsVGlsZXMoKQoreworICAgIEhhc2hNYXA8aW50LCBDb29yZGlu
YXRlZEJhY2tpbmdTdG9yZVRpbGU+OjppdGVyYXRvciBlbmQgPSBtX3RpbGVzLmVuZCgpOworICAg
IGZvciAoSGFzaE1hcDxpbnQsIENvb3JkaW5hdGVkQmFja2luZ1N0b3JlVGlsZT46Oml0ZXJhdG9y
IGl0ID0gbV90aWxlcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAgIG1fdGlsZXNU
b1JlbW92ZS5hZGQoaXQtPmtleSk7Cit9CisKIHZvaWQgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmU6
OnVwZGF0ZVRpbGUoaW50IGlkLCBjb25zdCBJbnRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBJbnRS
ZWN0JiB0aWxlUmVjdCwgUGFzc1JlZlB0cjxTaGFyZWFibGVTdXJmYWNlPiBiYWNrQnVmZmVyLCBj
b25zdCBJbnRQb2ludCYgb2Zmc2V0KQogewogICAgIEhhc2hNYXA8aW50LCBDb29yZGluYXRlZEJh
Y2tpbmdTdG9yZVRpbGU+OjppdGVyYXRvciBpdCA9IG1fdGlsZXMuZmluZChpZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuaAppbmRleCAxNDBlNjc0N2MzYjI0Y2Y2
ZTgyYmJkZDQ1MWZiMGViOGFjOWY3YzRhLi5iMGJhY2E2MzViZWI3MTVkYjkzZGNkOTFiOTZlOTU2
YjgyM2Y0ZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkQmFja2luZ1N0b3JlLmgK
QEAgLTU5LDYgKzU5LDcgQEAgY2xhc3MgQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUgOiBwdWJsaWMg
V2ViQ29yZTo6VGV4dHVyZU1hcHBlckJhY2tpbmdTdG9yZSB7CiBwdWJsaWM6CiAgICAgdm9pZCBj
cmVhdGVUaWxlKGludCwgZmxvYXQpOwogICAgIHZvaWQgcmVtb3ZlVGlsZShpbnQpOworICAgIHZv
aWQgcmVtb3ZlQWxsVGlsZXMoKTsKICAgICB2b2lkIHVwZGF0ZVRpbGUoaW50LCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFBhc3NSZWZQdHI8U2hhcmVh
YmxlU3VyZmFjZT4sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CiAgICAgYm9vbCBpc0VtcHR5
KCkgY29uc3Q7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU+
IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDb29yZGluYXRlZEJhY2tpbmdTdG9yZSk7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAKaW5k
ZXggYmE2MTJjMWU4NzczZjM1MWJjZjVjNzg4MWMyYTcyN2UyNmZhZWEwMy4uOGZiMTJiOTAyYjJk
YmE0MGFiZmQ3NmYwMjUwNzJiMjZkN2Q2NGU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTE1Myw2ICsxNTMsMTEgQEAgdm9pZCBMYXll
clRyZWVDb29yZGluYXRvclByb3h5Ojp1cGRhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFn
ZUJhY2tpbmdJRCBpbWEKICAgICBkaXNwYXRjaFVwZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJl
cjo6dXBkYXRlSW1hZ2VCYWNraW5nLCBtX3JlbmRlcmVyLmdldCgpLCBpbWFnZUlELCBTaGFyZWFi
bGVTdXJmYWNlOjpjcmVhdGUoaGFuZGxlKSkpOwogfQogCit2b2lkIExheWVyVHJlZUNvb3JkaW5h
dG9yUHJveHk6OmNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMoQ29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmdJRCBpbWFnZUlEKQoreworICAgIGRpc3BhdGNoVXBkYXRlKGJpbmQoJkxheWVyVHJlZVJlbmRl
cmVyOjpjbGVhckltYWdlQmFja2luZ0NvbnRlbnRzLCBtX3JlbmRlcmVyLmdldCgpLCBpbWFnZUlE
KSk7Cit9CisKIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6cmVtb3ZlSW1hZ2VCYWNr
aW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJRCkKIHsKICAgICBkaXNwYXRjaFVw
ZGF0ZShiaW5kKCZMYXllclRyZWVSZW5kZXJlcjo6cmVtb3ZlSW1hZ2VCYWNraW5nLCBtX3JlbmRl
cmVyLmdldCgpLCBpbWFnZUlEKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGlu
YXRvclByb3h5LmgKaW5kZXggODMxZDM2ZTI2M2ViNjU4YmY1ZjljN2U0YWI0NzdhMTM5NmQzOTQ0
YS4uZmI1OGIxYWU3NGZhZGM0NDJjOWQ3ZjAwZTQ3NjkzMzQ0ZmEzMWRlZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29v
cmRpbmF0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yUHJveHkuaApAQCAtNzMsNiArNzMsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCByZW1vdmVVcGRhdGVBdGxhcyhpbnQgYXRsYXNJRCk7CiAgICAgdm9p
ZCBjcmVhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAgdm9p
ZCB1cGRhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCwgY29uc3QgU2hh
cmVhYmxlU3VyZmFjZTo6SGFuZGxlJik7CisgICAgdm9pZCBjbGVhckltYWdlQmFja2luZ0NvbnRl
bnRzKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpOwogICAgIHZvaWQgcmVtb3ZlSW1hZ2VCYWNr
aW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpOwogICAgIHZvaWQgZGlkUmVjZWl2ZUxheWVy
VHJlZUNvb3JkaW5hdG9yUHJveHlNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBD
OjpNZXNzYWdlSUQsIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgdm9pZCB1cGRhdGVW
aWV3cG9ydCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5h
dG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMjQ5OGQ2ODVhZWM1YmZiMzcxY2I4NmI5ZGI0ODUx
M2E4YTIyYTk0MC4uNDJjNjliYmVmM2FhOGE1ZWQ4MTNkYzc5YzZmOTY1N2U1NWIwMDQxMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvclByb3h5Lm1l
c3NhZ2VzLmluCkBAIC0zNyw2ICszNyw3IEBAIG1lc3NhZ2VzIC0+IExheWVyVHJlZUNvb3JkaW5h
dG9yUHJveHkgewogICAgIFJlbW92ZVVwZGF0ZUF0bGFzKGludCBhdGxhc0lEKQogICAgIENyZWF0
ZUltYWdlQmFja2luZyh1aW50NjRfdCBpbWFnZUlEKQogICAgIFVwZGF0ZUltYWdlQmFja2luZyh1
aW50NjRfdCBpbWFnZUlELCBXZWJLaXQ6OlNoYXJlYWJsZVN1cmZhY2U6OkhhbmRsZSBoYW5kbGUp
CisgICAgQ2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyh1aW50NjRfdCBpbWFnZUlEKQogICAgIFJl
bW92ZUltYWdlQmFja2luZyh1aW50NjRfdCBpbWFnZUlEKQogICAgIERpZFJlbmRlckZyYW1lKFdl
YkNvcmU6OkludFNpemUgY29udGVudHNTaXplLCBXZWJDb3JlOjpJbnRSZWN0IGNvdmVyZWRSZWN0
KQogICAgIERpZENoYW5nZVNjcm9sbFBvc2l0aW9uKFdlYkNvcmU6OkludFBvaW50IHBvc2l0aW9u
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuY3BwCmluZGV4IGE4ZmU1NzYzY2NiNGQ5
MTgxZWUxYjU4NDFjOWM5NjNkZjJhZjBmNzIuLjRlZWZhYTAzZjJiMTNlYmJkNDE0ZjJmOWI5NWZj
NGMxY2M1MGJjZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVSZW5kZXJlci5jcHAKQEAgLTUx
MSw2ICs1MTEsMTUgQEAgdm9pZCBMYXllclRyZWVSZW5kZXJlcjo6dXBkYXRlSW1hZ2VCYWNraW5n
KENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJRCwgUGEKICAgICBtX2JhY2tpbmdTdG9y
ZXNXaXRoUGVuZGluZ0J1ZmZlcnMuYWRkKGJhY2tpbmdTdG9yZSk7CiB9CiAKK3ZvaWQgTGF5ZXJU
cmVlUmVuZGVyZXI6OmNsZWFySW1hZ2VCYWNraW5nQ29udGVudHMoQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmdJRCBpbWFnZUlEKQoreworICAgIEFTU0VSVChtX2ltYWdlQmFja2luZ3MuY29udGFpbnMo
aW1hZ2VJRCkpOworICAgIEltYWdlQmFja2luZ01hcDo6aXRlcmF0b3IgaXQgPSBtX2ltYWdlQmFj
a2luZ3MuZmluZChpbWFnZUlEKTsKKyAgICBSZWZQdHI8Q29vcmRpbmF0ZWRCYWNraW5nU3RvcmU+
IGJhY2tpbmdTdG9yZSA9IGl0LT52YWx1ZTsKKyAgICBiYWNraW5nU3RvcmUtPnJlbW92ZUFsbFRp
bGVzKCk7CisgICAgbV9iYWNraW5nU3RvcmVzV2l0aFBlbmRpbmdCdWZmZXJzLmFkZChiYWNraW5n
U3RvcmUpOworfQorCiB2b2lkIExheWVyVHJlZVJlbmRlcmVyOjpyZW1vdmVJbWFnZUJhY2tpbmco
Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCBpbWFnZUlEKQogewogICAgIEFTU0VSVChtX2ltYWdl
QmFja2luZ3MuY29udGFpbnMoaW1hZ2VJRCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZVJlbmRlcmVy
LmgKaW5kZXggZmYxYzg3MTdlNjM2YzhiNjI1MGMxYTdhNTcwODM3MzNjZjc2ZDg1Yi4uM2E1ZWZm
NmZkM2I2Y2ZhNzUwZjk4YjI0MDg5YmY5MmFkNTE5N2RlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlUmVuZGVyZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVSZW5kZXJlci5oCkBAIC0xMDMsNiArMTAzLDcgQEAgcHVibGljOgogICAgIHZvaWQgZmx1c2hM
YXllckNoYW5nZXMoKTsKICAgICB2b2lkIGNyZWF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZElt
YWdlQmFja2luZ0lEKTsKICAgICB2b2lkIHVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZElt
YWdlQmFja2luZ0lELCBQYXNzUmVmUHRyPFNoYXJlYWJsZVN1cmZhY2U+KTsKKyAgICB2b2lkIGNs
ZWFySW1hZ2VCYWNraW5nQ29udGVudHMoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAg
dm9pZCByZW1vdmVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCk7CiAgICAg
dm9pZCBzZXRMYXllckFuaW1hdGlvbnMoV2ViTGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckFuaW1hdGlvbnMmKTsKICAgICB2b2lkIHNldEFuaW1hdGlvbnNMb2NrZWQoYm9vbCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGlj
c0xheWVyLmNwcAppbmRleCBlMmE1MzE0ZWQyZmU1NDI3MjA4ZDQwZmQxNDkyMWFjNjEzZjc3Mzg5
Li5jNWFhYWI2YTFlNmM5M2FlYzcyOTA1MzY5MmJkNzhkZDBlOTE5NTQ4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29y
ZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAK
QEAgLTUwNCw3ICs1MDQsNyBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c3luY0lt
YWdlQmFja2luZygpCiAKICAgICAgICAgaWYgKCFtX2Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nKSB7
CiAgICAgICAgICAgICBtX2Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nID0gbV9jb29yZGluYXRvci0+
Y3JlYXRlSW1hZ2VCYWNraW5nSWZOZWVkZWQobV9jb21wb3NpdGVkSW1hZ2UuZ2V0KCkpOwotICAg
ICAgICAgICAgbV9jb29yZGluYXRlZEltYWdlQmFja2luZy0+YWRkTGF5ZXJDbGllbnQodGhpcyk7
CisgICAgICAgICAgICBtX2Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLT5hZGRIb3N0KHRoaXMpOwog
ICAgICAgICAgICAgbV9sYXllckluZm8uaW1hZ2VJRCA9IG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tp
bmctPmlkKCk7CiAgICAgICAgIH0KIApAQCAtNjAzLDEzICs2MDMsMTkgQEAgdm9pZCBDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXI6OmZsdXNoQ29tcG9zaXRpbmdTdGF0ZUZvclRoaXNMYXllck9ubHko
KQogICAgIHN5bmNDYW52YXMoKTsKIH0KIAorYm9vbCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6
OmltYWdlQmFja2luZ1Zpc2libGUoKQoreworICAgIEFTU0VSVChtX2Nvb3JkaW5hdGVkSW1hZ2VC
YWNraW5nKTsKKyAgICByZXR1cm4gdGlsZWRCYWNraW5nU3RvcmVWaXNpYmxlUmVjdCgpLmludGVy
c2VjdHMoY29udGVudHNSZWN0KCkpOworfQorCiB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXll
cjo6cmVsZWFzZUltYWdlQmFja2luZ0lmTmVlZGVkKCkKIHsKICAgICBpZiAoIW1fY29vcmRpbmF0
ZWRJbWFnZUJhY2tpbmcpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChtX2Nvb3JkaW5h
dG9yKTsKLSAgICBtX2Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLT5yZW1vdmVMYXllckNsaWVudCh0
aGlzKTsKKyAgICBtX2Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLT5yZW1vdmVIb3N0KHRoaXMpOwog
ICAgIG1fY29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY2xlYXIoKTsKICAgICBtX2xheWVySW5mby5p
bWFnZUlEID0gSW52YWxpZENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQ7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9D
b29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4
IGUzYmZlYmNiYjI0Zjc4ZmI2MWMxMTgwOTI3MDQzZTIyZTE2Y2E1NzIuLmY5ZTdjZDdiMzZiZjNj
Y2EwMGJkMDZmOWViMzUyNzFlYzZmZjY3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NM
YXllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCkBAIC04Myw2ICs4Myw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyIDogcHVi
bGljIEdyYXBoaWNzTGF5ZXIKICAgICAsIHB1YmxpYyBUaWxlZEJhY2tpbmdTdG9yZUNsaWVudAor
ICAgICwgcHVibGljIFdlYktpdDo6Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6Okhvc3QKICAgICAs
IHB1YmxpYyBXZWJLaXQ6OkNvb3JkaW5hdGVkVGlsZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgZXhw
bGljaXQgQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQqKTsKQEAg
LTE4OSw2ICsxOTAsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlQmFja2luZ1N0b3JlKCk7
CiAgICAgdm9pZCByZWxlYXNlSW1hZ2VCYWNraW5nSWZOZWVkZWQoKTsKIAorICAgIC8vIENvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nOjpIb3N0CisgICAgdmlydHVhbCBib29sIGltYWdlQmFja2luZ1Zp
c2libGUoKSBPVkVSUklERTsKKwogICAgIHZvaWQgZGVzdHJveUNhbnZhc0lmTmVlZGVkKCk7CiAg
ICAgdm9pZCBjcmVhdGVDYW52YXNJZk5lZWRlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZElt
YWdlQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5jcHAKaW5kZXggYTRmOWU5MDlh
ZjdhMTY5ODc1NTZkYzEwMTY0NmM2NGNkMjdiNGM0Mi4uNTVjYTlkYTdiNTk0Y2I2OThmNzhhNmM5
MGFiMTQxOTRmOWExYjFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmNwcApAQCAtNDksNyArNDksOSBAQCBDb29yZGluYXRl
ZEltYWdlQmFja2luZzo6Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcoQ29vcmRpbmF0b3IqIGNsaWVu
dCwgUGFzc1JlZlB0cgogICAgIDogbV9jb29yZGluYXRvcihjbGllbnQpCiAgICAgLCBtX2ltYWdl
KGltYWdlKQogICAgICwgbV9pZChnZXRDb29yZGluYXRlZEltYWdlQmFja2luZ0lEKG1faW1hZ2Uu
Z2V0KCkpKQorICAgICwgbV9jbGVhckNvbnRlbnRzVGltZXIodGhpcywgJkNvb3JkaW5hdGVkSW1h
Z2VCYWNraW5nOjpjbGVhckNvbnRlbnRzVGltZXJGaXJlZCkKICAgICAsIG1faXNEaXJ0eShmYWxz
ZSkKKyAgICAsIG1faXNWaXNpYmxlKGZhbHNlKQogewogICAgIC8vIEZJWE1FOiBXZSB3b3VsZCBu
ZWVkIHRvIGRlY29kZSBhIHNtYWxsIGltYWdlIGRpcmVjdGx5IGludG8gYSBHcmFwaGljc1N1cmZh
Y2UuCiAgICAgLy8gaHR0cDovL3dlYmtpdC5vcmcvYi8xMDE0MjYKQEAgLTYxLDE5ICs2MywxOSBA
QCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6fkNvb3JkaW5hdGVkSW1hZ2VCYWNraW5nKCkKIHsK
IH0KIAotdm9pZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6YWRkTGF5ZXJDbGllbnQoQ29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyKiBsYXllckNsaWVudCkKK3ZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmc6OmFkZEhvc3QoSG9zdCogaG9zdCkKIHsKLSAgICBBU1NFUlQoIW1fbGF5ZXJDbGllbnRz
LmNvbnRhaW5zKGxheWVyQ2xpZW50KSk7Ci0gICAgbV9sYXllckNsaWVudHMuYXBwZW5kKGxheWVy
Q2xpZW50KTsKKyAgICBBU1NFUlQoIW1faG9zdHMuY29udGFpbnMoaG9zdCkpOworICAgIG1faG9z
dHMuYXBwZW5kKGhvc3QpOwogfQogCi12b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpyZW1v
dmVMYXllckNsaWVudChDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIqIGxheWVyQ2xpZW50KQordm9p
ZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6cmVtb3ZlSG9zdChIb3N0KiBob3N0KQogewotICAg
IHNpemVfdCBwb3NpdGlvbiA9IG1fbGF5ZXJDbGllbnRzLmZpbmQobGF5ZXJDbGllbnQpOworICAg
IHNpemVfdCBwb3NpdGlvbiA9IG1faG9zdHMuZmluZChob3N0KTsKICAgICBBU1NFUlQocG9zaXRp
b24gIT0gbm90Rm91bmQpOwotICAgIG1fbGF5ZXJDbGllbnRzLnJlbW92ZShwb3NpdGlvbik7Cisg
ICAgbV9ob3N0cy5yZW1vdmUocG9zaXRpb24pOwogCi0gICAgaWYgKG1fbGF5ZXJDbGllbnRzLmlz
RW1wdHkoKSkKKyAgICBpZiAobV9ob3N0cy5pc0VtcHR5KCkpCiAgICAgICAgIG1fY29vcmRpbmF0
b3ItPnJlbW92ZUltYWdlQmFja2luZyhpZCgpKTsKIH0KIApAQCAtODYsOSArODgsMjEgQEAgdm9p
ZCBDb29yZGluYXRlZEltYWdlQmFja2luZzo6dXBkYXRlKCkKIHsKICAgICByZWxlYXNlU3VyZmFj
ZUlmTmVlZGVkKCk7CiAKLSAgICBpZiAoIW1faXNEaXJ0eSkKKyAgICBib29sIGNoYW5nZWRUb1Zp
c2libGU7CisgICAgdXBkYXRlVmlzaWJpbGl0eUlmTmVlZGVkKGNoYW5nZWRUb1Zpc2libGUpOwor
ICAgIGlmICghbV9pc1Zpc2libGUpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmICghY2hhbmdl
ZFRvVmlzaWJsZSkgeworICAgICAgICBpZiAoIW1faXNEaXJ0eSkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBpZiAobV9uYXRpdmVJbWFnZVB0ciA9PSBtX2ltYWdlLT5uYXRpdmVJbWFn
ZUZvckN1cnJlbnRGcmFtZSgpKSB7CisgICAgICAgICAgICBtX2lzRGlydHkgPSBmYWxzZTsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKwogICAgIG1fc3VyZmFjZSA9IFNo
YXJlYWJsZVN1cmZhY2U6OmNyZWF0ZShtX2ltYWdlLT5zaXplKCksIG1faW1hZ2UtPmN1cnJlbnRG
cmFtZUhhc0FscGhhKCkgPyBTaGFyZWFibGVCaXRtYXA6OlN1cHBvcnRzQWxwaGEgOiBTaGFyZWFi
bGVCaXRtYXA6Ok5vRmxhZ3MsIFNoYXJlYWJsZVN1cmZhY2U6OlN1cHBvcnRzR3JhcGhpY3NTdXJm
YWNlKTsKICAgICBtX2hhbmRsZSA9IGFkb3B0UHRyKG5ldyBTaGFyZWFibGVTdXJmYWNlOjpIYW5k
bGUoKSk7CiAKQEAgLTEwMiw2ICsxMTYsOCBAQCB2b2lkIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5n
Ojp1cGRhdGUoKQogICAgIE93blB0cjxHcmFwaGljc0NvbnRleHQ+IGNvbnRleHQgPSBtX3N1cmZh
Y2UtPmNyZWF0ZUdyYXBoaWNzQ29udGV4dChyZWN0KTsKICAgICBjb250ZXh0LT5kcmF3SW1hZ2Uo
bV9pbWFnZS5nZXQoKSwgQ29sb3JTcGFjZURldmljZVJHQiwgcmVjdCwgcmVjdCk7CiAKKyAgICBt
X25hdGl2ZUltYWdlUHRyID0gbV9pbWFnZS0+bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKTsK
KwogICAgIG1fY29vcmRpbmF0b3ItPnVwZGF0ZUltYWdlQmFja2luZyhpZCgpLCAqbV9oYW5kbGUp
OwogICAgIG1faXNEaXJ0eSA9IGZhbHNlOwogfQpAQCAtMTE0LDUgKzEzMCwzOSBAQCB2b2lkIENv
b3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpyZWxlYXNlU3VyZmFjZUlmTmVlZGVkKCkKICAgICBtX3N1
cmZhY2UuY2xlYXIoKTsKIH0KIAorc3RhdGljIGNvbnN0IGRvdWJsZSBjbGVhckNvbnRlbnRzVGlt
ZXJJbnRlcnZhbCA9IDM7CisKK3ZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OnVwZGF0ZVZp
c2liaWxpdHlJZk5lZWRlZChib29sJiBjaGFuZ2VkVG9WaXNpYmxlKQoreworICAgIGJvb2wgcHJl
dmlvdXNJc1Zpc2libGUgPSBtX2lzVmlzaWJsZTsKKworICAgIG1faXNWaXNpYmxlID0gZmFsc2U7
CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX2hvc3RzLnNpemUoKTsgKytpKSB7CisgICAg
ICAgIGlmIChtX2hvc3RzW2ldLT5pbWFnZUJhY2tpbmdWaXNpYmxlKCkpIHsKKyAgICAgICAgICAg
IG1faXNWaXNpYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAg
fQorCisgICAgYm9vbCBjaGFuZ2VkVG9JbnZpc2libGUgPSBwcmV2aW91c0lzVmlzaWJsZSAmJiAh
bV9pc1Zpc2libGU7CisgICAgaWYgKGNoYW5nZWRUb0ludmlzaWJsZSkgeworICAgICAgICBBU1NF
UlQoIW1fY2xlYXJDb250ZW50c1RpbWVyLmlzQWN0aXZlKCkpOworICAgICAgICBtX2NsZWFyQ29u
dGVudHNUaW1lci5zdGFydE9uZVNob3QoY2xlYXJDb250ZW50c1RpbWVySW50ZXJ2YWwpOworICAg
IH0KKworICAgIGNoYW5nZWRUb1Zpc2libGUgPSAhcHJldmlvdXNJc1Zpc2libGUgJiYgbV9pc1Zp
c2libGU7CisKKyAgICBpZiAobV9pc1Zpc2libGUgJiYgbV9jbGVhckNvbnRlbnRzVGltZXIuaXNB
Y3RpdmUoKSkgeworICAgICAgICBtX2NsZWFyQ29udGVudHNUaW1lci5zdG9wKCk7CisgICAgICAg
IC8vIFdlIGRvbid0IHdhbnQgdG8gdXBkYXRlIHRoZSB0ZXh0dXJlIGlmIHdlIGRpZG4ndCByZW1v
dmUgdGhlIHRleHR1cmUuCisgICAgICAgIGNoYW5nZWRUb1Zpc2libGUgPSBmYWxzZTsKKyAgICB9
Cit9CisKK3ZvaWQgQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc6OmNsZWFyQ29udGVudHNUaW1lckZp
cmVkKFdlYkNvcmU6OlRpbWVyPENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nPiopCit7CisgICAgbV9j
b29yZGluYXRvci0+Y2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhpZCgpKTsKK30KKwogfQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEltYWdlQmFja2luZy5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRJbWFnZUJh
Y2tpbmcuaAppbmRleCBkMGNkMjE3OGFmY2RiNGU3NDE4MDMxMWFkNWJjODA5N2QzNTc5MDJkLi43
NjI2NmE0YjQxNDBiOTQzN2IxMTcyNTM3NTcwYTdmMjAwNzkxMGRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEltYWdlQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkSW1hZ2VCYWNraW5nLmgKQEAgLTM1LDEw
ICszNSw2IEBACiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIENvb3JkaW5hdGVkR3JhcGhpY3NM
YXllcjsKLX0KLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIENvb3JkaW5hdGVkSW1hZ2VC
YWNraW5nIDogcHVibGljIFJlZkNvdW50ZWQ8Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc+IHsKQEAg
LTQ3LDE3ICs0MywyMyBAQCBwdWJsaWM6CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZv
aWQgY3JlYXRlSW1hZ2VCYWNraW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpID0gMDsKICAg
ICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZEltYWdlQmFj
a2luZ0lELCBjb25zdCBTaGFyZWFibGVTdXJmYWNlOjpIYW5kbGUmKSA9IDA7CisgICAgICAgIHZp
cnR1YWwgdm9pZCBjbGVhckltYWdlQmFja2luZ0NvbnRlbnRzKENvb3JkaW5hdGVkSW1hZ2VCYWNr
aW5nSUQpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUltYWdlQmFja2luZyhDb29y
ZGluYXRlZEltYWdlQmFja2luZ0lEKSA9IDA7CiAgICAgfTsKIAorICAgIGNsYXNzIEhvc3Qgewor
ICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCBib29sIGltYWdlQmFja2luZ1Zpc2libGUoKSA9
IDA7CisgICAgfTsKKwogICAgIHN0YXRpYyBQYXNzUmVmUHRyPENvb3JkaW5hdGVkSW1hZ2VCYWNr
aW5nPiBjcmVhdGUoQ29vcmRpbmF0b3IqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OkltYWdlPik7CiAg
ICAgdmlydHVhbCB+Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmcoKTsKIAogICAgIHN0YXRpYyBDb29y
ZGluYXRlZEltYWdlQmFja2luZ0lEIGdldENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQoV2ViQ29y
ZTo6SW1hZ2UqKTsKICAgICBDb29yZGluYXRlZEltYWdlQmFja2luZ0lEIGlkKCkgY29uc3QgeyBy
ZXR1cm4gbV9pZDsgfQogCi0gICAgdm9pZCBhZGRMYXllckNsaWVudChXZWJDb3JlOjpDb29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIqKTsKLSAgICB2b2lkIHJlbW92ZUxheWVyQ2xpZW50KFdlYkNvcmU6
OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllciopOworICAgIHZvaWQgYWRkSG9zdChIb3N0Kik7Cisg
ICAgdm9pZCByZW1vdmVIb3N0KEhvc3QqKTsKIAogICAgIC8vIFdoZW4gYSBuZXcgaW1hZ2UgaXMg
dXBkYXRlZCBvciBhbiBhbmltYXRlZCBnaWYgaXMgcHJvZ3Jlc3NlZCwgQ29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyIGNhbGxzIG1hcmtEaXJ0eSgpLgogICAgIHZvaWQgbWFya0RpcnR5KCk7CkBAIC02
OSwxNiArNzEsMjMgQEAgcHJpdmF0ZToKICAgICBDb29yZGluYXRlZEltYWdlQmFja2luZyhDb29y
ZGluYXRvciosIFBhc3NSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+KTsKIAogICAgIHZvaWQgcmVsZWFz
ZVN1cmZhY2VJZk5lZWRlZCgpOworICAgIHZvaWQgdXBkYXRlVmlzaWJpbGl0eUlmTmVlZGVkKGJv
b2wmIGNoYW5nZWRUb1Zpc2libGUpOworICAgIHZvaWQgY2xlYXJDb250ZW50c1RpbWVyRmlyZWQo
V2ViQ29yZTo6VGltZXI8Q29vcmRpbmF0ZWRJbWFnZUJhY2tpbmc+Kik7CiAKICAgICBDb29yZGlu
YXRvciogbV9jb29yZGluYXRvcjsKICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IG1faW1hZ2U7
CisgICAgV2ViQ29yZTo6TmF0aXZlSW1hZ2VQdHIgbV9uYXRpdmVJbWFnZVB0cjsKICAgICBDb29y
ZGluYXRlZEltYWdlQmFja2luZ0lEIG1faWQ7Ci0gICAgVmVjdG9yPFdlYkNvcmU6OkNvb3JkaW5h
dGVkR3JhcGhpY3NMYXllcio+IG1fbGF5ZXJDbGllbnRzOworICAgIFZlY3RvcjxIb3N0Kj4gbV9o
b3N0czsKIAogICAgIFJlZlB0cjxTaGFyZWFibGVTdXJmYWNlPiBtX3N1cmZhY2U7CiAgICAgT3du
UHRyPFNoYXJlYWJsZVN1cmZhY2U6OkhhbmRsZT4gbV9oYW5kbGU7CiAKKyAgICBXZWJDb3JlOjpU
aW1lcjxDb29yZGluYXRlZEltYWdlQmFja2luZz4gbV9jbGVhckNvbnRlbnRzVGltZXI7CisKICAg
ICBib29sIG1faXNEaXJ0eTsKKyAgICBib29sIG1faXNWaXNpYmxlOworCiB9OwogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKaW5k
ZXggNDkwZjg3YTdiYTFjMTNjMjViN2JlNTQ3NTM1NDQxYWQ2NDNiYjZiOC4uMTc2ZGNmNmUzMzY4
OWU3ZjNiZGFjNTUwM2VjZjI1YjdmODE0MjgzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcApAQCAtNTc2LDYgKzU3NiwxMiBAQCB2
b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjp1cGRhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJ
bWFnZUJhY2tpbmdJRCBpbWFnZUlELAogICAgIG1fd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6TGF5
ZXJUcmVlQ29vcmRpbmF0b3JQcm94eTo6VXBkYXRlSW1hZ2VCYWNraW5nKGltYWdlSUQsIGhhbmRs
ZSkpOwogfQogCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpjbGVhckltYWdlQmFja2luZ0Nv
bnRlbnRzKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJRCkKK3sKKyAgICBtX3Nob3Vs
ZFN5bmNGcmFtZSA9IHRydWU7CisgICAgbV93ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpMYXllclRy
ZWVDb29yZGluYXRvclByb3h5OjpDbGVhckltYWdlQmFja2luZ0NvbnRlbnRzKGltYWdlSUQpKTsK
K30KKwogdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6cmVtb3ZlSW1hZ2VCYWNraW5nKENvb3Jk
aW5hdGVkSW1hZ2VCYWNraW5nSUQgaW1hZ2VJRCkKIHsKICAgICBpZiAobV9pc1B1cmdpbmcpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAppbmRl
eCBmYzJlMzdkZTY3ZWNlMTFjMjAwMmE1ZmI1NzJmNzQxNGY1NTcwMDFjLi5mMDRiNTA4MjFmZGM4
ZjFhMmZhMzI3OTM1MDdhZjYwNjRhYzJjNzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKQEAgLTEyNiw2ICsxMjYsNyBAQCBwcml2YXRl
OgogICAgIC8vIENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nOjpDb29yZGluYXRvcgogICAgIHZpcnR1
YWwgdm9pZCBjcmVhdGVJbWFnZUJhY2tpbmcoQ29vcmRpbmF0ZWRJbWFnZUJhY2tpbmdJRCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUltYWdlQmFja2luZyhDb29yZGluYXRlZElt
YWdlQmFja2luZ0lELCBjb25zdCBTaGFyZWFibGVTdXJmYWNlOjpIYW5kbGUmKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJJbWFnZUJhY2tpbmdDb250ZW50cyhDb29yZGluYXRlZElt
YWdlQmFja2luZ0lEKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSW1hZ2VCYWNr
aW5nKENvb3JkaW5hdGVkSW1hZ2VCYWNraW5nSUQpIE9WRVJSSURFOwogCiAgICAgdm9pZCBmbHVz
aFBlbmRpbmdJbWFnZUJhY2tpbmdDaGFuZ2VzKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>