<?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>138206</bug_id>
          
          <creation_ts>2014-10-29 18:55:19 -0700</creation_ts>
          <short_desc>Remove create() factory function in FooAnimationValue classes</short_desc>
          <delta_ts>2014-11-09 22:47:09 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gyuyoung Kim">gyuyoung.kim</reporter>
          <assigned_to name="Gyuyoung Kim">gyuyoung.kim</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>noam</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1044950</commentid>
    <comment_count>0</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-29 18:55:19 -0700</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1044952</commentid>
    <comment_count>1</comment_count>
      <attachid>240647</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-29 18:56:29 -0700</bug_when>
    <thetext>Created attachment 240647
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045199</commentid>
    <comment_count>2</comment_count>
      <attachid>240719</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-30 18:46:23 -0700</bug_when>
    <thetext>Created attachment 240719
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045222</commentid>
    <comment_count>3</comment_count>
      <attachid>240724</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-30 21:42:27 -0700</bug_when>
    <thetext>Created attachment 240724
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045481</commentid>
    <comment_count>4</comment_count>
      <attachid>240724</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-10-31 20:48:31 -0700</bug_when>
    <thetext>Comment on attachment 240724
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsLayer.h:91
&gt; +    FloatAnimationValue(double keyTime, float value, TimingFunction* timingFunction = nullptr)
&gt; +        : AnimationValue(keyTime, timingFunction)
&gt; +        , m_value(value)
&gt;      {
&gt; -        return adoptPtr(new FloatAnimationValue(keyTime, value, timingFunction));
&gt;      }

Doesn&apos;t this change expose the copy constructor as a public member function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045494</commentid>
    <comment_count>5</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-10-31 23:25:39 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 240724 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=240724&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GraphicsLayer.h:91
&gt; &gt; +    FloatAnimationValue(double keyTime, float value, TimingFunction* timingFunction = nullptr)
&gt; &gt; +        : AnimationValue(keyTime, timingFunction)
&gt; &gt; +        , m_value(value)
&gt; &gt;      {
&gt; &gt; -        return adoptPtr(new FloatAnimationValue(keyTime, value, timingFunction));
&gt; &gt;      }
&gt; 
&gt; Doesn&apos;t this change expose the copy constructor as a public member function?


When I try to create FloatAnimationValue through copy constructor, there is no build error. If you have concern about it, could you let me know it ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1045979</commentid>
    <comment_count>6</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-11-03 20:56:09 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Comment on attachment 240724 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=240724&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/GraphicsLayer.h:91
&gt; &gt; &gt; +    FloatAnimationValue(double keyTime, float value, TimingFunction* timingFunction = nullptr)
&gt; &gt; &gt; +        : AnimationValue(keyTime, timingFunction)
&gt; &gt; &gt; +        , m_value(value)
&gt; &gt; &gt;      {
&gt; &gt; &gt; -        return adoptPtr(new FloatAnimationValue(keyTime, value, timingFunction));
&gt; &gt; &gt;      }
&gt; &gt; 
&gt; &gt; Doesn&apos;t this change expose the copy constructor as a public member function?
&gt; 
&gt; 
&gt; When I try to create FloatAnimationValue through copy constructor, there is
&gt; no build error.

I succeed to create FloatAnimationValue object using copy constructor as below,

 FloatAnimationValue* fValue = new FloatAnimationValue(key, keyframeStyle-&gt;opacity(), tf);
 FloatAnimationValue* copyValue(fValue);

It looks the change can support copy constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047437</commentid>
    <comment_count>7</comment_count>
      <attachid>241266</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-11-09 18:27:26 -0800</bug_when>
    <thetext>Created attachment 241266
Rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047461</commentid>
    <comment_count>8</comment_count>
      <attachid>241266</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-11-09 21:48:56 -0800</bug_when>
    <thetext>Comment on attachment 241266
Rebased

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

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp:160
&gt; +    std::unique_ptr&lt;AnimationValue&gt; intialValue = std::make_unique&lt;FloatAnimationValue&gt;(0, 1);
&gt; +    fadeKeyframes.insert(WTF::move(intialValue));

I think this would read better without a local variable:

    fadeKeyframes.insert(std::make_unique&lt;FloatAnimationValue&gt;(0, 1));

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp:163
&gt; +    std::unique_ptr&lt;AnimationValue&gt; finalValue = std::make_unique&lt;FloatAnimationValue&gt;(0.25, 0);
&gt; +    fadeKeyframes.insert(WTF::move(finalValue));

I think this would read better without a local variable:

    fadeKeyframes.insert(std::make_unique&lt;FloatAnimationValue&gt;(0.25, 0));</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047466</commentid>
    <comment_count>9</comment_count>
      <attachid>241275</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-11-09 22:01:59 -0800</bug_when>
    <thetext>Created attachment 241275
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047467</commentid>
    <comment_count>10</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2014-11-09 22:02:59 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 241266 [details]
&gt; Rebased
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=241266&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp:160
&gt; &gt; +    std::unique_ptr&lt;AnimationValue&gt; intialValue = std::make_unique&lt;FloatAnimationValue&gt;(0, 1);
&gt; &gt; +    fadeKeyframes.insert(WTF::move(intialValue));
&gt; 
&gt; I think this would read better without a local variable:
&gt; 
&gt;     fadeKeyframes.insert(std::make_unique&lt;FloatAnimationValue&gt;(0, 1));
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebCoreSupport/WebInspectorClient.cpp:163
&gt; &gt; +    std::unique_ptr&lt;AnimationValue&gt; finalValue = std::make_unique&lt;FloatAnimationValue&gt;(0.25, 0);
&gt; &gt; +    fadeKeyframes.insert(WTF::move(finalValue));
&gt; 
&gt; I think this would read better without a local variable:
&gt; 
&gt;     fadeKeyframes.insert(std::make_unique&lt;FloatAnimationValue&gt;(0.25, 0));

Thank you for review ! Fixed all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047475</commentid>
    <comment_count>11</comment_count>
      <attachid>241275</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-09 22:47:02 -0800</bug_when>
    <thetext>Comment on attachment 241275
Patch for landing

Clearing flags on attachment: 241275

Committed r175799: &lt;http://trac.webkit.org/changeset/175799&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1047476</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-11-09 22:47:09 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240647</attachid>
            <date>2014-10-29 18:56:29 -0700</date>
            <delta_ts>2014-10-30 18:45:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138206-20141030105637.patch</filename>
            <type>text/plain</type>
            <size>16496</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1MzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTAxMDRiNmMzMWFkMWMz
MTM5OWQ4NjgyODA5NWIyZmVjMzM2NjMyOS4uYmExYzJhNjE2ODU2YmE1MGQ5OWQwOWZkNzJiNjk2
ZTFiZjQ0N2QxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTEwLTI5ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmVtb3ZlIGNy
ZWF0ZSgpIGZhY3RvcnkgZnVuY3Rpb24gaW4gRm9vQW5pbWF0aW9uVmFsdWUgY2xhc3NlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4MjA2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgYSBzdGVwIHRv
IHVzZSBzdGQ6OnVuaXF1ZV9wdHIgYW5kIHN0ZDo6bWFrZV91bmlxdWUsIHRoaXMgcGF0Y2ggcmVt
b3ZlcyBjcmVhdGUoKQorICAgICAgICBmYWN0b3J5IGZ1bmN0aW9uIGluIEZvb0FuaW1hdGlvblZh
bHVlIGNsYXNzZXMuIEFzIHRoaXMgY2hhbmdlcywgRm9vQW5pbWF0aW9uVmFsdWU6OmNyZWF0ZSgp
CisgICAgICAgIGFyZSBjaGFuZ2VkIHRvIHN0ZDo6bWFrZV91bmlxdWU8Pi4KKworICAgICAgICBO
byBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lVmFs
dWVMaXN0OjppbnNlcnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0QW5pbWF0aW9uVmFsdWU6OkZsb2F0QW5pbWF0
aW9uVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU6OlRy
YW5zZm9ybUFuaW1hdGlvblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckFuaW1hdGlv
blZhbHVlOjpGaWx0ZXJBbmltYXRpb25WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdEFu
aW1hdGlvblZhbHVlOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNm
b3JtQW5pbWF0aW9uVmFsdWU6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpG
aWx0ZXJBbmltYXRpb25WYWx1ZTo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
QmFja2luZzo6c3RhcnRBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJC
YWNraW5nOjpzdGFydFRyYW5zaXRpb24pOgorCiAyMDE0LTEwLTI5ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRmluYWwtaXplIG1vcmUgb2YgVGV4dEZpZWxkSW5w
dXRUeXBlJ3MgdmlydHVhbCBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4ZGQ4MzA4MGQzNjhiNTA1
ZWU4MDJhOTJlZGY5ZTEwNDkyMzIyZGEyLi5lZTVmMzA4NzVlNDU0MzFmMjNkNDZlNjcxYjg0ZWY0
ZGE3ODk1Mzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjEgQEAKIDIwMTQtMTAtMjkgIEd5dXlv
dW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAorICAgICAgICBSZW1vdmUgY3Jl
YXRlKCkgZmFjdG9yeSBmdW5jdGlvbiBpbiBGb29BbmltYXRpb25WYWx1ZSBjbGFzc2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzgyMDYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBcyBhIHN0ZXAgdG8g
dXNlIHN0ZDo6dW5pcXVlX3B0ciBhbmQgc3RkOjptYWtlX3VuaXF1ZSwgdGhpcyBwYXRjaCByZW1v
dmVzIGNyZWF0ZSgpCisgICAgICAgIGZhY3RvcnkgZnVuY3Rpb24gaW4gRm9vQW5pbWF0aW9uVmFs
dWUgY2xhc3Nlcy4gQXMgdGhpcyBjaGFuZ2VzLCBGb29BbmltYXRpb25WYWx1ZTo6Y3JlYXRlKCkK
KyAgICAgICAgYXJlIGNoYW5nZWQgdG8gc3RkOjptYWtlX3VuaXF1ZTw+LgorCisgICAgICAgICog
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29k
ZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxHcmFwaGljc0xheWVyQW5pbWF0
aW9uPjo6ZGVjb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvckNsaWVudDo6
c2hvd1BhaW50UmVjdCk6CisKKzIwMTQtMTAtMjkgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtp
bUBzYW1zdW5nLmNvbT4KKwogICAgICAgICBVbnJldmlld2VkLCBFRkwgYnVpbGQgZml4IHNpbmNl
IHIxNzUzNDkuCiAKICAgICAgICAgKiBVSVByb2Nlc3MvV2ViQmFja0ZvcndhcmRMaXN0LmNwcDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5j
cHAKaW5kZXggM2Q3Y2Q4NTI3MWIyOTg2NDNjZDY1NWY2OTE4MTJiYmU1ODJkYjcxZC4uOGFkNWJi
YjdlMjIxYTcyMGZkMmU4MGVhN2Y2ZmUwYjFmNjY3Y2I3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAKQEAgLTUxLDI0ICs1MSwy
NCBAQCBzdGF0aWMgUmVwYWludE1hcCYgcmVwYWludFJlY3RNYXAoKQogICAgIHJldHVybiBtYXA7
CiB9CiAKLXZvaWQgS2V5ZnJhbWVWYWx1ZUxpc3Q6Omluc2VydChQYXNzT3duUHRyPGNvbnN0IEFu
aW1hdGlvblZhbHVlPiB2YWx1ZSkKK3ZvaWQgS2V5ZnJhbWVWYWx1ZUxpc3Q6Omluc2VydChzdGQ6
OnVuaXF1ZV9wdHI8Y29uc3QgQW5pbWF0aW9uVmFsdWU+IHZhbHVlKQogewogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV92YWx1ZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgY29uc3QgQW5p
bWF0aW9uVmFsdWUqIGN1clZhbHVlID0gbV92YWx1ZXNbaV0uZ2V0KCk7CiAgICAgICAgIGlmIChj
dXJWYWx1ZS0+a2V5VGltZSgpID09IHZhbHVlLT5rZXlUaW1lKCkpIHsKICAgICAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgLy8gaW5zZXJ0IGFmdGVyCi0gICAgICAg
ICAgICBtX3ZhbHVlcy5pbnNlcnQoaSArIDEsIHZhbHVlKTsKKyAgICAgICAgICAgIG1fdmFsdWVz
Lmluc2VydChpICsgMSwgV1RGOjptb3ZlKHZhbHVlKSk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KICAgICAgICAgaWYgKGN1clZhbHVlLT5rZXlUaW1lKCkgPiB2YWx1ZS0+a2V5VGlt
ZSgpKSB7CiAgICAgICAgICAgICAvLyBpbnNlcnQgYmVmb3JlCi0gICAgICAgICAgICBtX3ZhbHVl
cy5pbnNlcnQoaSwgdmFsdWUpOworICAgICAgICAgICAgbV92YWx1ZXMuaW5zZXJ0KGksIFdURjo6
bW92ZSh2YWx1ZSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQogICAg
IAotICAgIG1fdmFsdWVzLmFwcGVuZCh2YWx1ZSk7CisgICAgbV92YWx1ZXMuYXBwZW5kKFdURjo6
bW92ZSh2YWx1ZSkpOwogfQogCiBHcmFwaGljc0xheWVyOjpHcmFwaGljc0xheWVyKEdyYXBoaWNz
TGF5ZXJDbGllbnQmIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCAxZTc0Y2FlMDcyYzFhNmI5MmQyMGZlMzRiOWE2NmIx
M2E1YjhmZTVkLi40MDAxYWE4OTVlNmY3YTU4ZmNiNmM5OWVlMTQ4MDc5MmJmMjQ2ZDcwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCkBA
IC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBrZXlUaW1lKCkgY29uc3QgeyBy
ZXR1cm4gbV9rZXlUaW1lOyB9CiAgICAgY29uc3QgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV90aW1pbmdGdW5jdGlvbi5nZXQoKTsgfQotICAgIHZpcnR1
YWwgUGFzc093blB0cjxBbmltYXRpb25WYWx1ZT4gY2xvbmUoKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCBzdGQ6OnVuaXF1ZV9wdHI8QW5pbWF0aW9uVmFsdWU+IGNsb25lKCkgY29uc3QgPSAwOwog
CiBwcm90ZWN0ZWQ6CiAgICAgQW5pbWF0aW9uVmFsdWUoZG91YmxlIGtleVRpbWUsIFRpbWluZ0Z1
bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IG51bGxwdHIpCkBAIC04NCwyNSArODQsMjAgQEAgcHJp
dmF0ZToKIC8vIEZJWE1FOiBTaG91bGQgYmUgbW92ZWQgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4K
IGNsYXNzIEZsb2F0QW5pbWF0aW9uVmFsdWUgOiBwdWJsaWMgQW5pbWF0aW9uVmFsdWUgewogcHVi
bGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEZsb2F0QW5pbWF0aW9uVmFsdWU+IGNyZWF0ZShk
b3VibGUga2V5VGltZSwgZmxvYXQgdmFsdWUsIFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlv
biA9IG51bGxwdHIpCisgICAgRmxvYXRBbmltYXRpb25WYWx1ZShkb3VibGUga2V5VGltZSwgZmxv
YXQgdmFsdWUsIFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IG51bGxwdHIpCisgICAg
ICAgIDogQW5pbWF0aW9uVmFsdWUoa2V5VGltZSwgdGltaW5nRnVuY3Rpb24pCisgICAgICAgICwg
bV92YWx1ZSh2YWx1ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRmxvYXRB
bmltYXRpb25WYWx1ZShrZXlUaW1lLCB2YWx1ZSwgdGltaW5nRnVuY3Rpb24pKTsKICAgICB9CiAK
LSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8QW5pbWF0aW9uVmFsdWU+IGNsb25lKCkgY29uc3Qgb3Zl
cnJpZGUKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxBbmltYXRpb25WYWx1ZT4gY2xvbmUo
KSBjb25zdCBvdmVycmlkZQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBGbG9h
dEFuaW1hdGlvblZhbHVlKCp0aGlzKSk7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PEZsb2F0QW5pbWF0aW9uVmFsdWU+KCp0aGlzKTsKICAgICB9CiAKICAgICBmbG9hdCB2YWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KIAogcHJpdmF0ZToKLSAgICBGbG9hdEFuaW1hdGlv
blZhbHVlKGRvdWJsZSBrZXlUaW1lLCBmbG9hdCB2YWx1ZSwgVGltaW5nRnVuY3Rpb24qIHRpbWlu
Z0Z1bmN0aW9uKQotICAgICAgICA6IEFuaW1hdGlvblZhbHVlKGtleVRpbWUsIHRpbWluZ0Z1bmN0
aW9uKQotICAgICAgICAsIG1fdmFsdWUodmFsdWUpCi0gICAgewotICAgIH0KLQogICAgIGZsb2F0
IG1fdmFsdWU7CiB9OwogCkBAIC0xMTAsMjUgKzEwNSwyMCBAQCBwcml2YXRlOgogLy8gRklYTUU6
IFNob3VsZCBiZSBtb3ZlZCB0byBpdHMgb3duIGhlYWRlciBmaWxlLgogY2xhc3MgVHJhbnNmb3Jt
QW5pbWF0aW9uVmFsdWUgOiBwdWJsaWMgQW5pbWF0aW9uVmFsdWUgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzT3duUHRyPFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlPiBjcmVhdGUoZG91YmxlIGtl
eVRpbWUsIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIHZhbHVlLCBUaW1pbmdGdW5jdGlvbiog
dGltaW5nRnVuY3Rpb24gPSBudWxscHRyKQorICAgIFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKGRv
dWJsZSBrZXlUaW1lLCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zJiB2YWx1ZSwgVGltaW5nRnVu
Y3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gbnVsbHB0cikKKyAgICAgICAgOiBBbmltYXRpb25WYWx1
ZShrZXlUaW1lLCB0aW1pbmdGdW5jdGlvbikKKyAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQogICAg
IHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZShr
ZXlUaW1lLCB2YWx1ZSwgdGltaW5nRnVuY3Rpb24pKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIFBh
c3NPd25QdHI8QW5pbWF0aW9uVmFsdWU+IGNsb25lKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICB2aXJ0
dWFsIHN0ZDo6dW5pcXVlX3B0cjxBbmltYXRpb25WYWx1ZT4gY2xvbmUoKSBjb25zdCBvdmVycmlk
ZQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBUcmFuc2Zvcm1BbmltYXRpb25W
YWx1ZSgqdGhpcykpOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxUcmFuc2Zvcm1B
bmltYXRpb25WYWx1ZT4oKnRoaXMpOwogICAgIH0KIAogICAgIGNvbnN0IFRyYW5zZm9ybU9wZXJh
dGlvbnMmIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQogCiBwcml2YXRlOgotICAg
IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKGRvdWJsZSBrZXlUaW1lLCBjb25zdCBUcmFuc2Zvcm1P
cGVyYXRpb25zJiB2YWx1ZSwgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uKQotICAgICAg
ICA6IEFuaW1hdGlvblZhbHVlKGtleVRpbWUsIHRpbWluZ0Z1bmN0aW9uKQotICAgICAgICAsIG1f
dmFsdWUodmFsdWUpCi0gICAgewotICAgIH0KLQogICAgIFRyYW5zZm9ybU9wZXJhdGlvbnMgbV92
YWx1ZTsKIH07CiAKQEAgLTEzNiwyNSArMTI2LDIwIEBAIHByaXZhdGU6CiAvLyBGSVhNRTogU2hv
dWxkIGJlIG1vdmVkIHRvIGl0cyBvd24gaGVhZGVyIGZpbGUuCiBjbGFzcyBGaWx0ZXJBbmltYXRp
b25WYWx1ZSA6IHB1YmxpYyBBbmltYXRpb25WYWx1ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NPd25QdHI8RmlsdGVyQW5pbWF0aW9uVmFsdWU+IGNyZWF0ZShkb3VibGUga2V5VGltZSwgY29u
c3QgRmlsdGVyT3BlcmF0aW9ucyYgdmFsdWUsIFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlv
biA9IG51bGxwdHIpCisgICAgRmlsdGVyQW5pbWF0aW9uVmFsdWUoZG91YmxlIGtleVRpbWUsIGNv
bnN0IEZpbHRlck9wZXJhdGlvbnMmIHZhbHVlLCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rp
b24gPSBudWxscHRyKQorICAgICAgICA6IEFuaW1hdGlvblZhbHVlKGtleVRpbWUsIHRpbWluZ0Z1
bmN0aW9uKQorICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRQdHIobmV3IEZpbHRlckFuaW1hdGlvblZhbHVlKGtleVRpbWUsIHZhbHVlLCB0aW1pbmdG
dW5jdGlvbikpOwogICAgIH0KIAotICAgIHZpcnR1YWwgUGFzc093blB0cjxBbmltYXRpb25WYWx1
ZT4gY2xvbmUoKSBjb25zdCBvdmVycmlkZQorICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEFu
aW1hdGlvblZhbHVlPiBjbG9uZSgpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAgICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IEZpbHRlckFuaW1hdGlvblZhbHVlKCp0aGlzKSk7CisgICAgICAgIHJl
dHVybiBzdGQ6Om1ha2VfdW5pcXVlPEZpbHRlckFuaW1hdGlvblZhbHVlPigqdGhpcyk7CiAgICAg
fQogCiAgICAgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgdmFsdWUoKSBjb25zdCB7IHJldHVybiBt
X3ZhbHVlOyB9CiAKIHByaXZhdGU6Ci0gICAgRmlsdGVyQW5pbWF0aW9uVmFsdWUoZG91YmxlIGtl
eVRpbWUsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIHZhbHVlLCBUaW1pbmdGdW5jdGlvbiogdGlt
aW5nRnVuY3Rpb24pCi0gICAgICAgIDogQW5pbWF0aW9uVmFsdWUoa2V5VGltZSwgdGltaW5nRnVu
Y3Rpb24pCi0gICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKLSAgICB7Ci0gICAgfQotCiAgICAgRmls
dGVyT3BlcmF0aW9ucyBtX3ZhbHVlOwogfTsKIApAQCAtMTk4LDEwICsxODMsMTAgQEAgcHVibGlj
OgogICAgIGNvbnN0IEFuaW1hdGlvblZhbHVlJiBhdChzaXplX3QgaSkgY29uc3QgeyByZXR1cm4g
Km1fdmFsdWVzLmF0KGkpOyB9CiAgICAgCiAgICAgLy8gSW5zZXJ0LCBzb3J0ZWQgYnkga2V5VGlt
ZS4KLSAgICB2b2lkIGluc2VydChQYXNzT3duUHRyPGNvbnN0IEFuaW1hdGlvblZhbHVlPik7Cisg
ICAgdm9pZCBpbnNlcnQoc3RkOjp1bmlxdWVfcHRyPGNvbnN0IEFuaW1hdGlvblZhbHVlPik7CiAg
ICAgCiBwcm90ZWN0ZWQ6Ci0gICAgVmVjdG9yPE93blB0cjxjb25zdCBBbmltYXRpb25WYWx1ZT4+
IG1fdmFsdWVzOworICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgQW5pbWF0aW9uVmFs
dWU+PiBtX3ZhbHVlczsKICAgICBBbmltYXRlZFByb3BlcnR5SUQgbV9wcm9wZXJ0eTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5k
ZXggYjQyYmY1MTY0NjAxNzRiY2NhZDcwY2M4ZTkyMTNkOWJiOTU3NDQwOS4uMDkzODhkNDU1NTEy
NzExNWQ0ZDNiNWIxY2Y2ZDVlMzBkN2MzMjlkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTIzNTAsMTMgKzIzNTAsMTMgQEAgYm9v
bCBSZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0QW5pbWF0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0LCBj
b25zdCBBbmltYXRpb24qIGFuaW0KICAgICAgICAgCiAgICAgICAgIGJvb2wgaXNGaXJzdE9yTGFz
dEtleWZyYW1lID0ga2V5ID09IDAgfHwga2V5ID09IDE7CiAgICAgICAgIGlmICgoaGFzVHJhbnNm
b3JtICYmIGlzRmlyc3RPckxhc3RLZXlmcmFtZSkgfHwgY3VycmVudEtleWZyYW1lLmNvbnRhaW5z
UHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pKQotICAgICAgICAgICAgdHJhbnNm
b3JtVmVjdG9yLmluc2VydChUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZTo6Y3JlYXRlKGtleSwga2V5
ZnJhbWVTdHlsZS0+dHJhbnNmb3JtKCksIHRmKSk7CisgICAgICAgICAgICB0cmFuc2Zvcm1WZWN0
b3IuaW5zZXJ0KHN0ZDo6bWFrZV91bmlxdWU8VHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU+KGtleSwg
a2V5ZnJhbWVTdHlsZS0+dHJhbnNmb3JtKCksIHRmKSk7CiAKICAgICAgICAgaWYgKChoYXNPcGFj
aXR5ICYmIGlzRmlyc3RPckxhc3RLZXlmcmFtZSkgfHwgY3VycmVudEtleWZyYW1lLmNvbnRhaW5z
UHJvcGVydHkoQ1NTUHJvcGVydHlPcGFjaXR5KSkKLSAgICAgICAgICAgIG9wYWNpdHlWZWN0b3Iu
aW5zZXJ0KEZsb2F0QW5pbWF0aW9uVmFsdWU6OmNyZWF0ZShrZXksIGtleWZyYW1lU3R5bGUtPm9w
YWNpdHkoKSwgdGYpKTsKKyAgICAgICAgICAgIG9wYWNpdHlWZWN0b3IuaW5zZXJ0KHN0ZDo6bWFr
ZV91bmlxdWU8RmxvYXRBbmltYXRpb25WYWx1ZT4oa2V5LCBrZXlmcmFtZVN0eWxlLT5vcGFjaXR5
KCksIHRmKSk7CiAKICAgICAgICAgaWYgKChoYXNGaWx0ZXIgJiYgaXNGaXJzdE9yTGFzdEtleWZy
YW1lKSB8fCBjdXJyZW50S2V5ZnJhbWUuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtp
dEZpbHRlcikpCi0gICAgICAgICAgICBmaWx0ZXJWZWN0b3IuaW5zZXJ0KEZpbHRlckFuaW1hdGlv
blZhbHVlOjpjcmVhdGUoa2V5LCBrZXlmcmFtZVN0eWxlLT5maWx0ZXIoKSwgdGYpKTsKKyAgICAg
ICAgICAgIGZpbHRlclZlY3Rvci5pbnNlcnQoc3RkOjptYWtlX3VuaXF1ZTxGaWx0ZXJBbmltYXRp
b25WYWx1ZT4oa2V5LCBrZXlmcmFtZVN0eWxlLT5maWx0ZXIoKSwgdGYpKTsKICAgICB9CiAKICAg
ICBpZiAocmVuZGVyZXIoKS5mcmFtZSgpLnBhZ2UoKSAmJiAhcmVuZGVyZXIoKS5mcmFtZSgpLnBh
Z2UoKS0+c2V0dGluZ3MoKS5hY2NlbGVyYXRlZENvbXBvc2l0ZWRBbmltYXRpb25zRW5hYmxlZCgp
KQpAQCAtMjM5Niw4ICsyMzk2LDggQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0VHJh
bnNpdGlvbihkb3VibGUgdGltZU9mZnNldCwgQ1NTUHJvcGVydHlJRCBwcm9wZXIKICAgICAgICAg
Y29uc3QgQW5pbWF0aW9uKiBvcGFjaXR5QW5pbSA9IHRvU3R5bGUtPnRyYW5zaXRpb25Gb3JQcm9w
ZXJ0eShDU1NQcm9wZXJ0eU9wYWNpdHkpOwogICAgICAgICBpZiAob3BhY2l0eUFuaW0gJiYgIW9w
YWNpdHlBbmltLT5pc0VtcHR5T3JaZXJvRHVyYXRpb24oKSkgewogICAgICAgICAgICAgS2V5ZnJh
bWVWYWx1ZUxpc3Qgb3BhY2l0eVZlY3RvcihBbmltYXRlZFByb3BlcnR5T3BhY2l0eSk7Ci0gICAg
ICAgICAgICBvcGFjaXR5VmVjdG9yLmluc2VydChGbG9hdEFuaW1hdGlvblZhbHVlOjpjcmVhdGUo
MCwgY29tcG9zaXRpbmdPcGFjaXR5KGZyb21TdHlsZS0+b3BhY2l0eSgpKSkpOwotICAgICAgICAg
ICAgb3BhY2l0eVZlY3Rvci5pbnNlcnQoRmxvYXRBbmltYXRpb25WYWx1ZTo6Y3JlYXRlKDEsIGNv
bXBvc2l0aW5nT3BhY2l0eSh0b1N0eWxlLT5vcGFjaXR5KCkpKSk7CisgICAgICAgICAgICBvcGFj
aXR5VmVjdG9yLmluc2VydChzdGQ6Om1ha2VfdW5pcXVlPEZsb2F0QW5pbWF0aW9uVmFsdWU+KDAs
IGNvbXBvc2l0aW5nT3BhY2l0eShmcm9tU3R5bGUtPm9wYWNpdHkoKSkpKTsKKyAgICAgICAgICAg
IG9wYWNpdHlWZWN0b3IuaW5zZXJ0KHN0ZDo6bWFrZV91bmlxdWU8RmxvYXRBbmltYXRpb25WYWx1
ZT4oMSwgY29tcG9zaXRpbmdPcGFjaXR5KHRvU3R5bGUtPm9wYWNpdHkoKSkpKTsKICAgICAgICAg
ICAgIC8vIFRoZSBib3hTaXplIHBhcmFtIGlzIG9ubHkgdXNlZCBmb3IgdHJhbnNmb3JtIGFuaW1h
dGlvbnMgKHdoaWNoIGNhbiBvbmx5IHJ1biBvbiBSZW5kZXJCb3hlcyksIHNvIHdlIHBhc3MgYW4g
ZW1wdHkgc2l6ZSBoZXJlLgogICAgICAgICAgICAgaWYgKG1fZ3JhcGhpY3NMYXllci0+YWRkQW5p
bWF0aW9uKG9wYWNpdHlWZWN0b3IsIEZsb2F0U2l6ZSgpLCBvcGFjaXR5QW5pbSwgR3JhcGhpY3NM
YXllcjo6YW5pbWF0aW9uTmFtZUZvclRyYW5zaXRpb24oQW5pbWF0ZWRQcm9wZXJ0eU9wYWNpdHkp
LCB0aW1lT2Zmc2V0KSkgewogICAgICAgICAgICAgICAgIC8vIFRvIGVuc3VyZSB0aGF0IHRoZSBj
b3JyZWN0IG9wYWNpdHkgaXMgdmlzaWJsZSB3aGVuIHRoZSBhbmltYXRpb24gZW5kcywgYWxzbyBz
ZXQgdGhlIGZpbmFsIG9wYWNpdHkuCkBAIC0yNDExLDggKzI0MTEsOCBAQCBib29sIFJlbmRlckxh
eWVyQmFja2luZzo6c3RhcnRUcmFuc2l0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0LCBDU1NQcm9wZXJ0
eUlEIHByb3BlcgogICAgICAgICBjb25zdCBBbmltYXRpb24qIHRyYW5zZm9ybUFuaW0gPSB0b1N0
eWxlLT50cmFuc2l0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pOwog
ICAgICAgICBpZiAodHJhbnNmb3JtQW5pbSAmJiAhdHJhbnNmb3JtQW5pbS0+aXNFbXB0eU9yWmVy
b0R1cmF0aW9uKCkpIHsKICAgICAgICAgICAgIEtleWZyYW1lVmFsdWVMaXN0IHRyYW5zZm9ybVZl
Y3RvcihBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3JtKTsKLSAgICAgICAgICAgIHRyYW5z
Zm9ybVZlY3Rvci5pbnNlcnQoVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU6OmNyZWF0ZSgwLCBmcm9t
U3R5bGUtPnRyYW5zZm9ybSgpKSk7Ci0gICAgICAgICAgICB0cmFuc2Zvcm1WZWN0b3IuaW5zZXJ0
KFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlOjpjcmVhdGUoMSwgdG9TdHlsZS0+dHJhbnNmb3JtKCkp
KTsKKyAgICAgICAgICAgIHRyYW5zZm9ybVZlY3Rvci5pbnNlcnQoc3RkOjptYWtlX3VuaXF1ZTxU
cmFuc2Zvcm1BbmltYXRpb25WYWx1ZT4oMCwgZnJvbVN0eWxlLT50cmFuc2Zvcm0oKSkpOworICAg
ICAgICAgICAgdHJhbnNmb3JtVmVjdG9yLmluc2VydChzdGQ6Om1ha2VfdW5pcXVlPFRyYW5zZm9y
bUFuaW1hdGlvblZhbHVlPigxLCB0b1N0eWxlLT50cmFuc2Zvcm0oKSkpOwogICAgICAgICAgICAg
aWYgKG1fZ3JhcGhpY3NMYXllci0+YWRkQW5pbWF0aW9uKHRyYW5zZm9ybVZlY3RvciwgZG93bmNh
c3Q8UmVuZGVyQm94PihyZW5kZXJlcigpKS5waXhlbFNuYXBwZWRCb3JkZXJCb3hSZWN0KCkuc2l6
ZSgpLCB0cmFuc2Zvcm1BbmltLCBHcmFwaGljc0xheWVyOjphbmltYXRpb25OYW1lRm9yVHJhbnNp
dGlvbihBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3JtKSwgdGltZU9mZnNldCkpIHsKICAg
ICAgICAgICAgICAgICAvLyBUbyBlbnN1cmUgdGhhdCB0aGUgY29ycmVjdCB0cmFuc2Zvcm0gaXMg
dmlzaWJsZSB3aGVuIHRoZSBhbmltYXRpb24gZW5kcywgYWxzbyBzZXQgdGhlIGZpbmFsIHRyYW5z
Zm9ybS4KICAgICAgICAgICAgICAgICB1cGRhdGVUcmFuc2Zvcm0oKnRvU3R5bGUpOwpAQCAtMjQy
NSw4ICsyNDI1LDggQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0VHJhbnNpdGlvbihk
b3VibGUgdGltZU9mZnNldCwgQ1NTUHJvcGVydHlJRCBwcm9wZXIKICAgICAgICAgY29uc3QgQW5p
bWF0aW9uKiBmaWx0ZXJBbmltID0gdG9TdHlsZS0+dHJhbnNpdGlvbkZvclByb3BlcnR5KENTU1By
b3BlcnR5V2Via2l0RmlsdGVyKTsKICAgICAgICAgaWYgKGZpbHRlckFuaW0gJiYgIWZpbHRlckFu
aW0tPmlzRW1wdHlPclplcm9EdXJhdGlvbigpKSB7CiAgICAgICAgICAgICBLZXlmcmFtZVZhbHVl
TGlzdCBmaWx0ZXJWZWN0b3IoQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEZpbHRlcik7Ci0gICAgICAg
ICAgICBmaWx0ZXJWZWN0b3IuaW5zZXJ0KEZpbHRlckFuaW1hdGlvblZhbHVlOjpjcmVhdGUoMCwg
ZnJvbVN0eWxlLT5maWx0ZXIoKSkpOwotICAgICAgICAgICAgZmlsdGVyVmVjdG9yLmluc2VydChG
aWx0ZXJBbmltYXRpb25WYWx1ZTo6Y3JlYXRlKDEsIHRvU3R5bGUtPmZpbHRlcigpKSk7CisgICAg
ICAgICAgICBmaWx0ZXJWZWN0b3IuaW5zZXJ0KHN0ZDo6bWFrZV91bmlxdWU8RmlsdGVyQW5pbWF0
aW9uVmFsdWU+KDAsIGZyb21TdHlsZS0+ZmlsdGVyKCkpKTsKKyAgICAgICAgICAgIGZpbHRlclZl
Y3Rvci5pbnNlcnQoc3RkOjptYWtlX3VuaXF1ZTxGaWx0ZXJBbmltYXRpb25WYWx1ZT4oMSwgdG9T
dHlsZS0+ZmlsdGVyKCkpKTsKICAgICAgICAgICAgIGlmIChtX2dyYXBoaWNzTGF5ZXItPmFkZEFu
aW1hdGlvbihmaWx0ZXJWZWN0b3IsIEZsb2F0U2l6ZSgpLCBmaWx0ZXJBbmltLCBHcmFwaGljc0xh
eWVyOjphbmltYXRpb25OYW1lRm9yVHJhbnNpdGlvbihBbmltYXRlZFByb3BlcnR5V2Via2l0Rmls
dGVyKSwgdGltZU9mZnNldCkpIHsKICAgICAgICAgICAgICAgICAvLyBUbyBlbnN1cmUgdGhhdCB0
aGUgY29ycmVjdCBmaWx0ZXIgaXMgdmlzaWJsZSB3aGVuIHRoZSBhbmltYXRpb24gZW5kcywgYWxz
byBzZXQgdGhlIGZpbmFsIGZpbHRlci4KICAgICAgICAgICAgICAgICB1cGRhdGVGaWx0ZXJzKCp0
b1N0eWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1l
bnRDb2RlcnMuY3BwCmluZGV4IGNmNmU0YTdiYWUzZWIyOWVkYjY1ODEzZTYwMjc0ZWI3ZDQ5ZTJh
MmYuLjQwNWQzMTU1NDBkMGJkZGNiMjc4ZjkxNGUzYTBiOTRkZGVlYzJlMTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3Jh
cGhpY3NBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcApAQCAt
NTI0LDIxICs1MjQsMjEgQEAgYm9vbCBBcmd1bWVudENvZGVyPEdyYXBoaWNzTGF5ZXJBbmltYXRp
b24+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBHcmEKICAgICAgICAgICAgIGZs
b2F0IHZhbHVlOwogICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh2YWx1ZSkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAga2V5ZnJhbWVzLmluc2VydChG
bG9hdEFuaW1hdGlvblZhbHVlOjpjcmVhdGUoa2V5VGltZSwgdmFsdWUsIHRpbWluZ0Z1bmN0aW9u
LmdldCgpKSk7CisgICAgICAgICAgICBrZXlmcmFtZXMuaW5zZXJ0KHN0ZDo6bWFrZV91bmlxdWU8
RmxvYXRBbmltYXRpb25WYWx1ZT4oa2V5VGltZSwgdmFsdWUsIHRpbWluZ0Z1bmN0aW9uLmdldCgp
KSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFuaW1hdGVk
UHJvcGVydHlXZWJraXRUcmFuc2Zvcm06IHsKICAgICAgICAgICAgIFRyYW5zZm9ybU9wZXJhdGlv
bnMgdHJhbnNmb3JtOwogICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZSh0cmFuc2Zvcm0p
KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGtleWZyYW1lcy5p
bnNlcnQoVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU6OmNyZWF0ZShrZXlUaW1lLCB0cmFuc2Zvcm0s
IHRpbWluZ0Z1bmN0aW9uLmdldCgpKSk7CisgICAgICAgICAgICBrZXlmcmFtZXMuaW5zZXJ0KHN0
ZDo6bWFrZV91bmlxdWU8VHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU+KGtleVRpbWUsIHRyYW5zZm9y
bSwgdGltaW5nRnVuY3Rpb24uZ2V0KCkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9
CiAgICAgICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEZpbHRlcjogewogICAgICAgICAg
ICAgRmlsdGVyT3BlcmF0aW9ucyBmaWx0ZXI7CiAgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGZpbHRlcikpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAg
a2V5ZnJhbWVzLmluc2VydChGaWx0ZXJBbmltYXRpb25WYWx1ZTo6Y3JlYXRlKGtleVRpbWUsIGZp
bHRlciwgdGltaW5nRnVuY3Rpb24uZ2V0KCkpKTsKKyAgICAgICAgICAgIGtleWZyYW1lcy5pbnNl
cnQoc3RkOjptYWtlX3VuaXF1ZTxGaWx0ZXJBbmltYXRpb25WYWx1ZT4oa2V5VGltZSwgZmlsdGVy
LCB0aW1pbmdGdW5jdGlvbi5nZXQoKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAppbmRleCAwNDM4
ZmNiMTg0MWZlMWI2YWUzMjA0NDJkODBlODgwMDJhZDhiMjhjLi42ZjQ2Y2ZjOGVhMWFlNDNlODJj
NjQyMWQzYTlkNDMxYWYzMzNmYmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCkBA
IC0xNTYsMTEgKzE1NiwxMSBAQCB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6c2hvd1BhaW50UmVj
dChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAgICAgcGFpbnRMYXllci0+c2V0QmFja2dyb3VuZENv
bG9yKENvbG9yKDEuMGYsIDAuMGYsIDAuMGYsIDAuMmYpKTsKIAogICAgIEtleWZyYW1lVmFsdWVM
aXN0IGZhZGVLZXlmcmFtZXMoQW5pbWF0ZWRQcm9wZXJ0eU9wYWNpdHkpOwotICAgIE93blB0cjxB
bmltYXRpb25WYWx1ZT4gaW50aWFsVmFsdWUgPSBGbG9hdEFuaW1hdGlvblZhbHVlOjpjcmVhdGUo
MCwgMSk7Ci0gICAgZmFkZUtleWZyYW1lcy5pbnNlcnQoaW50aWFsVmFsdWUucmVsZWFzZSgpKTsK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8QW5pbWF0aW9uVmFsdWU+IGludGlhbFZhbHVlID0gc3RkOjpt
YWtlX3VuaXF1ZTxGbG9hdEFuaW1hdGlvblZhbHVlPigwLCAxKTsKKyAgICBmYWRlS2V5ZnJhbWVz
Lmluc2VydChXVEY6Om1vdmUoaW50aWFsVmFsdWUpKTsKIAotICAgIE93blB0cjxBbmltYXRpb25W
YWx1ZT4gZmluYWxWYWx1ZSA9IEZsb2F0QW5pbWF0aW9uVmFsdWU6OmNyZWF0ZSgwLjI1LCAwKTsK
LSAgICBmYWRlS2V5ZnJhbWVzLmluc2VydChmaW5hbFZhbHVlLnJlbGVhc2UoKSk7CisgICAgc3Rk
Ojp1bmlxdWVfcHRyPEFuaW1hdGlvblZhbHVlPiBmaW5hbFZhbHVlID0gc3RkOjptYWtlX3VuaXF1
ZTxGbG9hdEFuaW1hdGlvblZhbHVlPigwLjI1LCAwKTsKKyAgICBmYWRlS2V5ZnJhbWVzLmluc2Vy
dChXVEY6Om1vdmUoZmluYWxWYWx1ZSkpOwogICAgIAogICAgIFJlZlB0cjxBbmltYXRpb24+IG9w
YWNpdHlBbmltYXRpb24gPSBBbmltYXRpb246OmNyZWF0ZSgpOwogICAgIG9wYWNpdHlBbmltYXRp
b24tPnNldER1cmF0aW9uKDAuMjUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240719</attachid>
            <date>2014-10-30 18:46:23 -0700</date>
            <delta_ts>2014-10-30 21:42:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138206-20141031104617.patch</filename>
            <type>text/plain</type>
            <size>17311</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1NDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzIxMjcwYWYzZGU4NmJj
NTNjMWUwZDhhNmQ1ZDQzYWFmMDM4MDdlOS4uOGJhOGE3N2ZjMjQxMjk3NTFhMmM5MWQ3NzJhNzU3
OGE2YTcwODdiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTEwLTMwICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmVtb3ZlIGNy
ZWF0ZSgpIGZhY3RvcnkgZnVuY3Rpb24gaW4gRm9vQW5pbWF0aW9uVmFsdWUgY2xhc3NlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4MjA2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgYSBzdGVwIHRv
IHVzZSBzdGQ6OnVuaXF1ZV9wdHIgYW5kIHN0ZDo6bWFrZV91bmlxdWUsIHRoaXMgcGF0Y2ggcmVt
b3ZlcyBjcmVhdGUoKQorICAgICAgICBmYWN0b3J5IGZ1bmN0aW9uIGluIEZvb0FuaW1hdGlvblZh
bHVlIGNsYXNzZXMuIEFzIHRoaXMgY2hhbmdlcywgRm9vQW5pbWF0aW9uVmFsdWU6OmNyZWF0ZSgp
CisgICAgICAgIGFyZSBjaGFuZ2VkIHRvIHN0ZDo6bWFrZV91bmlxdWU8Pi4KKworICAgICAgICBO
byBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lVmFs
dWVMaXN0OjppbnNlcnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0QW5pbWF0aW9uVmFsdWU6OkZsb2F0QW5pbWF0
aW9uVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU6OlRy
YW5zZm9ybUFuaW1hdGlvblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckFuaW1hdGlv
blZhbHVlOjpGaWx0ZXJBbmltYXRpb25WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdEFu
aW1hdGlvblZhbHVlOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNm
b3JtQW5pbWF0aW9uVmFsdWU6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpG
aWx0ZXJBbmltYXRpb25WYWx1ZTo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
QmFja2luZzo6c3RhcnRBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJC
YWNraW5nOjpzdGFydFRyYW5zaXRpb24pOgorCiAyMDE0LTEwLTMwICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtFTUVdIEFkZCBTZXR0aW5nIGZvciBhY2Nlc3Np
bmcgc3RvcmFnZSBsb2NhdGlvbiBmb3IgTWVkaWFLZXlzIGRhdGEKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBjYzNj
YmNiM2MwMDU1NzZjZGY3ZDZiYTJiZTIwYmIyNjljODllMTY5Li5mYmFhMmE1NmI2MWI4M2Y3ODEw
YTQzOWFiODAwOWM4ODEzYTA1NWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTQt
MTAtMzAgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KKworICAgICAg
ICBSZW1vdmUgY3JlYXRlKCkgZmFjdG9yeSBmdW5jdGlvbiBpbiBGb29BbmltYXRpb25WYWx1ZSBj
bGFzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MzgyMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
cyBhIHN0ZXAgdG8gdXNlIHN0ZDo6dW5pcXVlX3B0ciBhbmQgc3RkOjptYWtlX3VuaXF1ZSwgdGhp
cyBwYXRjaCByZW1vdmVzIGNyZWF0ZSgpCisgICAgICAgIGZhY3RvcnkgZnVuY3Rpb24gaW4gRm9v
QW5pbWF0aW9uVmFsdWUgY2xhc3Nlcy4gQXMgdGhpcyBjaGFuZ2VzLCBGb29BbmltYXRpb25WYWx1
ZTo6Y3JlYXRlKCkKKyAgICAgICAgYXJlIGNoYW5nZWQgdG8gc3RkOjptYWtlX3VuaXF1ZTw+Lgor
CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGlj
c0FyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxHcmFwaGlj
c0xheWVyQW5pbWF0aW9uPjo6ZGVjb2RlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3Bl
Y3RvckNsaWVudDo6c2hvd1BhaW50UmVjdCk6CisKIDIwMTQtMTAtMzAgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0VNRV0gQWRkIFNldHRpbmcgZm9yIGFjY2Vz
c2luZyBzdG9yYWdlIGxvY2F0aW9uIGZvciBNZWRpYUtleXMgZGF0YQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgppbmRleCAxOWEwNjVmMmQ1ZjE3YTRmM2NiOWYzYzJlNzkwMjY0OWU2MTAxOThiLi4zZWQwMjIw
NGUzZDY1MWU5OTIwYWQwZTRlOTI1NDVkNTdiMzAyN2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpA
QCAtNzY0LDcgKzc2NCw3IEBAIF9fWk43V2ViQ29yZTE3SFRNTFNlbGVjdEVsZW1lbnQyMG9wdGlv
blNlbGVjdGVkQnlVc2VyRWliYgogX19aTjdXZWJDb3JlMTdIaXN0b3J5Q29udHJvbGxlcjI2c2F2
ZURvY3VtZW50QW5kU2Nyb2xsU3RhdGVFdgogX19aTjdXZWJDb3JlMTdIaXN0b3J5Q29udHJvbGxl
cjMzcmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlRXYKIF9fWk43V2ViQ29yZTE3SlNE
T01HbG9iYWxPYmplY3Q2c19pbmZvRQotX19aTjdXZWJDb3JlMTdLZXlmcmFtZVZhbHVlTGlzdDZp
bnNlcnRFTjNXVEYxMFBhc3NPd25QdHJJS05TXzE0QW5pbWF0aW9uVmFsdWVFRUUKK19fWk43V2Vi
Q29yZTE3S2V5ZnJhbWVWYWx1ZUxpc3Q2aW5zZXJ0RU5TdDNfXzExMHVuaXF1ZV9wdHJJS05TXzE0
QW5pbWF0aW9uVmFsdWVFTlMxXzE0ZGVmYXVsdF9kZWxldGVJUzRfRUVFRQogX19aTjdXZWJDb3Jl
MTdNb3VzZVJlbGF0ZWRFdmVudDdvZmZzZXRYRXYKIF9fWk43V2ViQ29yZTE3TW91c2VSZWxhdGVk
RXZlbnQ3b2Zmc2V0WUV2CiBfX1pON1dlYkNvcmUxN1BhZ2VDb25zb2xlQ2xpZW50MjFzaG91bGRQ
cmludEV4Y2VwdGlvbnNFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0xheWVyLmNwcAppbmRleCAzZDdjZDg1MjcxYjI5ODY0M2NkNjU1ZjY5MTgxMmJi
ZTU4MmRiNzFkLi44YWQ1YmJiN2UyMjFhNzIwZmQyZTgwZWE3ZjZmZTBiMWY2NjdjYjc0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNw
cApAQCAtNTEsMjQgKzUxLDI0IEBAIHN0YXRpYyBSZXBhaW50TWFwJiByZXBhaW50UmVjdE1hcCgp
CiAgICAgcmV0dXJuIG1hcDsKIH0KIAotdm9pZCBLZXlmcmFtZVZhbHVlTGlzdDo6aW5zZXJ0KFBh
c3NPd25QdHI8Y29uc3QgQW5pbWF0aW9uVmFsdWU+IHZhbHVlKQordm9pZCBLZXlmcmFtZVZhbHVl
TGlzdDo6aW5zZXJ0KHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBBbmltYXRpb25WYWx1ZT4gdmFsdWUp
CiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3ZhbHVlcy5zaXplKCk7ICsraSkgewog
ICAgICAgICBjb25zdCBBbmltYXRpb25WYWx1ZSogY3VyVmFsdWUgPSBtX3ZhbHVlc1tpXS5nZXQo
KTsKICAgICAgICAgaWYgKGN1clZhbHVlLT5rZXlUaW1lKCkgPT0gdmFsdWUtPmtleVRpbWUoKSkg
ewogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICAvLyBpbnNl
cnQgYWZ0ZXIKLSAgICAgICAgICAgIG1fdmFsdWVzLmluc2VydChpICsgMSwgdmFsdWUpOworICAg
ICAgICAgICAgbV92YWx1ZXMuaW5zZXJ0KGkgKyAxLCBXVEY6Om1vdmUodmFsdWUpKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAoY3VyVmFsdWUtPmtleVRpbWUo
KSA+IHZhbHVlLT5rZXlUaW1lKCkpIHsKICAgICAgICAgICAgIC8vIGluc2VydCBiZWZvcmUKLSAg
ICAgICAgICAgIG1fdmFsdWVzLmluc2VydChpLCB2YWx1ZSk7CisgICAgICAgICAgICBtX3ZhbHVl
cy5pbnNlcnQoaSwgV1RGOjptb3ZlKHZhbHVlKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICB9CiAgICAgCi0gICAgbV92YWx1ZXMuYXBwZW5kKHZhbHVlKTsKKyAgICBtX3Zh
bHVlcy5hcHBlbmQoV1RGOjptb3ZlKHZhbHVlKSk7CiB9CiAKIEdyYXBoaWNzTGF5ZXI6OkdyYXBo
aWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCmluZGV4IDFlNzRjYWUwNzJjMWE2
YjkyZDIwZmUzNGI5YTY2YjEzYTViOGZlNWQuLjQwMDFhYTg5NWU2ZjdhNThmY2I2Yzk5ZWUxNDgw
NzkyYmYyNDZkNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyLmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogCiAgICAgZG91YmxlIGtl
eVRpbWUoKSBjb25zdCB7IHJldHVybiBtX2tleVRpbWU7IH0KICAgICBjb25zdCBUaW1pbmdGdW5j
dGlvbiogdGltaW5nRnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3RpbWluZ0Z1bmN0aW9uLmdl
dCgpOyB9Ci0gICAgdmlydHVhbCBQYXNzT3duUHRyPEFuaW1hdGlvblZhbHVlPiBjbG9uZSgpIGNv
bnN0ID0gMDsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxBbmltYXRpb25WYWx1ZT4gY2xv
bmUoKSBjb25zdCA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBBbmltYXRpb25WYWx1ZShkb3VibGUg
a2V5VGltZSwgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gbnVsbHB0cikKQEAgLTg0
LDI1ICs4NCwyMCBAQCBwcml2YXRlOgogLy8gRklYTUU6IFNob3VsZCBiZSBtb3ZlZCB0byBpdHMg
b3duIGhlYWRlciBmaWxlLgogY2xhc3MgRmxvYXRBbmltYXRpb25WYWx1ZSA6IHB1YmxpYyBBbmlt
YXRpb25WYWx1ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8RmxvYXRBbmltYXRp
b25WYWx1ZT4gY3JlYXRlKGRvdWJsZSBrZXlUaW1lLCBmbG9hdCB2YWx1ZSwgVGltaW5nRnVuY3Rp
b24qIHRpbWluZ0Z1bmN0aW9uID0gbnVsbHB0cikKKyAgICBGbG9hdEFuaW1hdGlvblZhbHVlKGRv
dWJsZSBrZXlUaW1lLCBmbG9hdCB2YWx1ZSwgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9u
ID0gbnVsbHB0cikKKyAgICAgICAgOiBBbmltYXRpb25WYWx1ZShrZXlUaW1lLCB0aW1pbmdGdW5j
dGlvbikKKyAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBGbG9hdEFuaW1hdGlvblZhbHVlKGtleVRpbWUsIHZhbHVlLCB0aW1pbmdGdW5j
dGlvbikpOwogICAgIH0KIAotICAgIHZpcnR1YWwgUGFzc093blB0cjxBbmltYXRpb25WYWx1ZT4g
Y2xvbmUoKSBjb25zdCBvdmVycmlkZQorICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEFuaW1h
dGlvblZhbHVlPiBjbG9uZSgpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRQdHIobmV3IEZsb2F0QW5pbWF0aW9uVmFsdWUoKnRoaXMpKTsKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8RmxvYXRBbmltYXRpb25WYWx1ZT4oKnRoaXMpOwogICAgIH0KIAog
ICAgIGZsb2F0IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQogCiBwcml2YXRlOgot
ICAgIEZsb2F0QW5pbWF0aW9uVmFsdWUoZG91YmxlIGtleVRpbWUsIGZsb2F0IHZhbHVlLCBUaW1p
bmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24pCi0gICAgICAgIDogQW5pbWF0aW9uVmFsdWUoa2V5
VGltZSwgdGltaW5nRnVuY3Rpb24pCi0gICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKLSAgICB7Ci0g
ICAgfQotCiAgICAgZmxvYXQgbV92YWx1ZTsKIH07CiAKQEAgLTExMCwyNSArMTA1LDIwIEBAIHBy
aXZhdGU6CiAvLyBGSVhNRTogU2hvdWxkIGJlIG1vdmVkIHRvIGl0cyBvd24gaGVhZGVyIGZpbGUu
CiBjbGFzcyBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSA6IHB1YmxpYyBBbmltYXRpb25WYWx1ZSB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8VHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU+
IGNyZWF0ZShkb3VibGUga2V5VGltZSwgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyYgdmFsdWUs
IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IG51bGxwdHIpCisgICAgVHJhbnNmb3Jt
QW5pbWF0aW9uVmFsdWUoZG91YmxlIGtleVRpbWUsIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMm
IHZhbHVlLCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24gPSBudWxscHRyKQorICAgICAg
ICA6IEFuaW1hdGlvblZhbHVlKGtleVRpbWUsIHRpbWluZ0Z1bmN0aW9uKQorICAgICAgICAsIG1f
dmFsdWUodmFsdWUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRyYW5zZm9y
bUFuaW1hdGlvblZhbHVlKGtleVRpbWUsIHZhbHVlLCB0aW1pbmdGdW5jdGlvbikpOwogICAgIH0K
IAotICAgIHZpcnR1YWwgUGFzc093blB0cjxBbmltYXRpb25WYWx1ZT4gY2xvbmUoKSBjb25zdCBv
dmVycmlkZQorICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEFuaW1hdGlvblZhbHVlPiBjbG9u
ZSgpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRy
YW5zZm9ybUFuaW1hdGlvblZhbHVlKCp0aGlzKSk7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2Vf
dW5pcXVlPFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlPigqdGhpcyk7CiAgICAgfQogCiAgICAgY29u
c3QgVHJhbnNmb3JtT3BlcmF0aW9ucyYgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9
CiAKIHByaXZhdGU6Ci0gICAgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUoZG91YmxlIGtleVRpbWUs
IGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIHZhbHVlLCBUaW1pbmdGdW5jdGlvbiogdGltaW5n
RnVuY3Rpb24pCi0gICAgICAgIDogQW5pbWF0aW9uVmFsdWUoa2V5VGltZSwgdGltaW5nRnVuY3Rp
b24pCi0gICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKLSAgICB7Ci0gICAgfQotCiAgICAgVHJhbnNm
b3JtT3BlcmF0aW9ucyBtX3ZhbHVlOwogfTsKIApAQCAtMTM2LDI1ICsxMjYsMjAgQEAgcHJpdmF0
ZToKIC8vIEZJWE1FOiBTaG91bGQgYmUgbW92ZWQgdG8gaXRzIG93biBoZWFkZXIgZmlsZS4KIGNs
YXNzIEZpbHRlckFuaW1hdGlvblZhbHVlIDogcHVibGljIEFuaW1hdGlvblZhbHVlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxGaWx0ZXJBbmltYXRpb25WYWx1ZT4gY3JlYXRlKGRv
dWJsZSBrZXlUaW1lLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiB2YWx1ZSwgVGltaW5nRnVuY3Rp
b24qIHRpbWluZ0Z1bmN0aW9uID0gbnVsbHB0cikKKyAgICBGaWx0ZXJBbmltYXRpb25WYWx1ZShk
b3VibGUga2V5VGltZSwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgdmFsdWUsIFRpbWluZ0Z1bmN0
aW9uKiB0aW1pbmdGdW5jdGlvbiA9IG51bGxwdHIpCisgICAgICAgIDogQW5pbWF0aW9uVmFsdWUo
a2V5VGltZSwgdGltaW5nRnVuY3Rpb24pCisgICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKICAgICB7
Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRmlsdGVyQW5pbWF0aW9uVmFsdWUoa2V5VGlt
ZSwgdmFsdWUsIHRpbWluZ0Z1bmN0aW9uKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBQYXNzT3du
UHRyPEFuaW1hdGlvblZhbHVlPiBjbG9uZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgdmlydHVhbCBz
dGQ6OnVuaXF1ZV9wdHI8QW5pbWF0aW9uVmFsdWU+IGNsb25lKCkgY29uc3Qgb3ZlcnJpZGUKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRmlsdGVyQW5pbWF0aW9uVmFsdWUoKnRo
aXMpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8RmlsdGVyQW5pbWF0aW9uVmFs
dWU+KCp0aGlzKTsKICAgICB9CiAKICAgICBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiB2YWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KIAogcHJpdmF0ZToKLSAgICBGaWx0ZXJBbmltYXRp
b25WYWx1ZShkb3VibGUga2V5VGltZSwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgdmFsdWUsIFRp
bWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbikKLSAgICAgICAgOiBBbmltYXRpb25WYWx1ZShr
ZXlUaW1lLCB0aW1pbmdGdW5jdGlvbikKLSAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQotICAgIHsK
LSAgICB9Ci0KICAgICBGaWx0ZXJPcGVyYXRpb25zIG1fdmFsdWU7CiB9OwogCkBAIC0xOTgsMTAg
KzE4MywxMCBAQCBwdWJsaWM6CiAgICAgY29uc3QgQW5pbWF0aW9uVmFsdWUmIGF0KHNpemVfdCBp
KSBjb25zdCB7IHJldHVybiAqbV92YWx1ZXMuYXQoaSk7IH0KICAgICAKICAgICAvLyBJbnNlcnQs
IHNvcnRlZCBieSBrZXlUaW1lLgotICAgIHZvaWQgaW5zZXJ0KFBhc3NPd25QdHI8Y29uc3QgQW5p
bWF0aW9uVmFsdWU+KTsKKyAgICB2b2lkIGluc2VydChzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgQW5p
bWF0aW9uVmFsdWU+KTsKICAgICAKIHByb3RlY3RlZDoKLSAgICBWZWN0b3I8T3duUHRyPGNvbnN0
IEFuaW1hdGlvblZhbHVlPj4gbV92YWx1ZXM7CisgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxj
b25zdCBBbmltYXRpb25WYWx1ZT4+IG1fdmFsdWVzOwogICAgIEFuaW1hdGVkUHJvcGVydHlJRCBt
X3Byb3BlcnR5OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcAppbmRleCBiNDJiZjUxNjQ2MDE3NGJjY2FkNzBjYzhlOTIxM2Q5YmI5NTc0
NDA5Li4wOTM4OGQ0NTU1MTI3MTE1ZDRkM2I1YjFjZjZkNWUzMGQ3YzMyOWQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMjM1MCwx
MyArMjM1MCwxMyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRBbmltYXRpb24oZG91
YmxlIHRpbWVPZmZzZXQsIGNvbnN0IEFuaW1hdGlvbiogYW5pbQogICAgICAgICAKICAgICAgICAg
Ym9vbCBpc0ZpcnN0T3JMYXN0S2V5ZnJhbWUgPSBrZXkgPT0gMCB8fCBrZXkgPT0gMTsKICAgICAg
ICAgaWYgKChoYXNUcmFuc2Zvcm0gJiYgaXNGaXJzdE9yTGFzdEtleWZyYW1lKSB8fCBjdXJyZW50
S2V5ZnJhbWUuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSkpCi0g
ICAgICAgICAgICB0cmFuc2Zvcm1WZWN0b3IuaW5zZXJ0KFRyYW5zZm9ybUFuaW1hdGlvblZhbHVl
OjpjcmVhdGUoa2V5LCBrZXlmcmFtZVN0eWxlLT50cmFuc2Zvcm0oKSwgdGYpKTsKKyAgICAgICAg
ICAgIHRyYW5zZm9ybVZlY3Rvci5pbnNlcnQoc3RkOjptYWtlX3VuaXF1ZTxUcmFuc2Zvcm1Bbmlt
YXRpb25WYWx1ZT4oa2V5LCBrZXlmcmFtZVN0eWxlLT50cmFuc2Zvcm0oKSwgdGYpKTsKIAogICAg
ICAgICBpZiAoKGhhc09wYWNpdHkgJiYgaXNGaXJzdE9yTGFzdEtleWZyYW1lKSB8fCBjdXJyZW50
S2V5ZnJhbWUuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9wZXJ0eU9wYWNpdHkpKQotICAgICAgICAg
ICAgb3BhY2l0eVZlY3Rvci5pbnNlcnQoRmxvYXRBbmltYXRpb25WYWx1ZTo6Y3JlYXRlKGtleSwg
a2V5ZnJhbWVTdHlsZS0+b3BhY2l0eSgpLCB0ZikpOworICAgICAgICAgICAgb3BhY2l0eVZlY3Rv
ci5pbnNlcnQoc3RkOjptYWtlX3VuaXF1ZTxGbG9hdEFuaW1hdGlvblZhbHVlPihrZXksIGtleWZy
YW1lU3R5bGUtPm9wYWNpdHkoKSwgdGYpKTsKIAogICAgICAgICBpZiAoKGhhc0ZpbHRlciAmJiBp
c0ZpcnN0T3JMYXN0S2V5ZnJhbWUpIHx8IGN1cnJlbnRLZXlmcmFtZS5jb250YWluc1Byb3BlcnR5
KENTU1Byb3BlcnR5V2Via2l0RmlsdGVyKSkKLSAgICAgICAgICAgIGZpbHRlclZlY3Rvci5pbnNl
cnQoRmlsdGVyQW5pbWF0aW9uVmFsdWU6OmNyZWF0ZShrZXksIGtleWZyYW1lU3R5bGUtPmZpbHRl
cigpLCB0ZikpOworICAgICAgICAgICAgZmlsdGVyVmVjdG9yLmluc2VydChzdGQ6Om1ha2VfdW5p
cXVlPEZpbHRlckFuaW1hdGlvblZhbHVlPihrZXksIGtleWZyYW1lU3R5bGUtPmZpbHRlcigpLCB0
ZikpOwogICAgIH0KIAogICAgIGlmIChyZW5kZXJlcigpLmZyYW1lKCkucGFnZSgpICYmICFyZW5k
ZXJlcigpLmZyYW1lKCkucGFnZSgpLT5zZXR0aW5ncygpLmFjY2VsZXJhdGVkQ29tcG9zaXRlZEFu
aW1hdGlvbnNFbmFibGVkKCkpCkBAIC0yMzk2LDggKzIzOTYsOCBAQCBib29sIFJlbmRlckxheWVy
QmFja2luZzo6c3RhcnRUcmFuc2l0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0LCBDU1NQcm9wZXJ0eUlE
IHByb3BlcgogICAgICAgICBjb25zdCBBbmltYXRpb24qIG9wYWNpdHlBbmltID0gdG9TdHlsZS0+
dHJhbnNpdGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5T3BhY2l0eSk7CiAgICAgICAgIGlmIChv
cGFjaXR5QW5pbSAmJiAhb3BhY2l0eUFuaW0tPmlzRW1wdHlPclplcm9EdXJhdGlvbigpKSB7CiAg
ICAgICAgICAgICBLZXlmcmFtZVZhbHVlTGlzdCBvcGFjaXR5VmVjdG9yKEFuaW1hdGVkUHJvcGVy
dHlPcGFjaXR5KTsKLSAgICAgICAgICAgIG9wYWNpdHlWZWN0b3IuaW5zZXJ0KEZsb2F0QW5pbWF0
aW9uVmFsdWU6OmNyZWF0ZSgwLCBjb21wb3NpdGluZ09wYWNpdHkoZnJvbVN0eWxlLT5vcGFjaXR5
KCkpKSk7Ci0gICAgICAgICAgICBvcGFjaXR5VmVjdG9yLmluc2VydChGbG9hdEFuaW1hdGlvblZh
bHVlOjpjcmVhdGUoMSwgY29tcG9zaXRpbmdPcGFjaXR5KHRvU3R5bGUtPm9wYWNpdHkoKSkpKTsK
KyAgICAgICAgICAgIG9wYWNpdHlWZWN0b3IuaW5zZXJ0KHN0ZDo6bWFrZV91bmlxdWU8RmxvYXRB
bmltYXRpb25WYWx1ZT4oMCwgY29tcG9zaXRpbmdPcGFjaXR5KGZyb21TdHlsZS0+b3BhY2l0eSgp
KSkpOworICAgICAgICAgICAgb3BhY2l0eVZlY3Rvci5pbnNlcnQoc3RkOjptYWtlX3VuaXF1ZTxG
bG9hdEFuaW1hdGlvblZhbHVlPigxLCBjb21wb3NpdGluZ09wYWNpdHkodG9TdHlsZS0+b3BhY2l0
eSgpKSkpOwogICAgICAgICAgICAgLy8gVGhlIGJveFNpemUgcGFyYW0gaXMgb25seSB1c2VkIGZv
ciB0cmFuc2Zvcm0gYW5pbWF0aW9ucyAod2hpY2ggY2FuIG9ubHkgcnVuIG9uIFJlbmRlckJveGVz
KSwgc28gd2UgcGFzcyBhbiBlbXB0eSBzaXplIGhlcmUuCiAgICAgICAgICAgICBpZiAobV9ncmFw
aGljc0xheWVyLT5hZGRBbmltYXRpb24ob3BhY2l0eVZlY3RvciwgRmxvYXRTaXplKCksIG9wYWNp
dHlBbmltLCBHcmFwaGljc0xheWVyOjphbmltYXRpb25OYW1lRm9yVHJhbnNpdGlvbihBbmltYXRl
ZFByb3BlcnR5T3BhY2l0eSksIHRpbWVPZmZzZXQpKSB7CiAgICAgICAgICAgICAgICAgLy8gVG8g
ZW5zdXJlIHRoYXQgdGhlIGNvcnJlY3Qgb3BhY2l0eSBpcyB2aXNpYmxlIHdoZW4gdGhlIGFuaW1h
dGlvbiBlbmRzLCBhbHNvIHNldCB0aGUgZmluYWwgb3BhY2l0eS4KQEAgLTI0MTEsOCArMjQxMSw4
IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydFRyYW5zaXRpb24oZG91YmxlIHRpbWVP
ZmZzZXQsIENTU1Byb3BlcnR5SUQgcHJvcGVyCiAgICAgICAgIGNvbnN0IEFuaW1hdGlvbiogdHJh
bnNmb3JtQW5pbSA9IHRvU3R5bGUtPnRyYW5zaXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eVdl
YmtpdFRyYW5zZm9ybSk7CiAgICAgICAgIGlmICh0cmFuc2Zvcm1BbmltICYmICF0cmFuc2Zvcm1B
bmltLT5pc0VtcHR5T3JaZXJvRHVyYXRpb24oKSkgewogICAgICAgICAgICAgS2V5ZnJhbWVWYWx1
ZUxpc3QgdHJhbnNmb3JtVmVjdG9yKEFuaW1hdGVkUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pOwot
ICAgICAgICAgICAgdHJhbnNmb3JtVmVjdG9yLmluc2VydChUcmFuc2Zvcm1BbmltYXRpb25WYWx1
ZTo6Y3JlYXRlKDAsIGZyb21TdHlsZS0+dHJhbnNmb3JtKCkpKTsKLSAgICAgICAgICAgIHRyYW5z
Zm9ybVZlY3Rvci5pbnNlcnQoVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU6OmNyZWF0ZSgxLCB0b1N0
eWxlLT50cmFuc2Zvcm0oKSkpOworICAgICAgICAgICAgdHJhbnNmb3JtVmVjdG9yLmluc2VydChz
dGQ6Om1ha2VfdW5pcXVlPFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlPigwLCBmcm9tU3R5bGUtPnRy
YW5zZm9ybSgpKSk7CisgICAgICAgICAgICB0cmFuc2Zvcm1WZWN0b3IuaW5zZXJ0KHN0ZDo6bWFr
ZV91bmlxdWU8VHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU+KDEsIHRvU3R5bGUtPnRyYW5zZm9ybSgp
KSk7CiAgICAgICAgICAgICBpZiAobV9ncmFwaGljc0xheWVyLT5hZGRBbmltYXRpb24odHJhbnNm
b3JtVmVjdG9yLCBkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKCkpLnBpeGVsU25hcHBlZEJv
cmRlckJveFJlY3QoKS5zaXplKCksIHRyYW5zZm9ybUFuaW0sIEdyYXBoaWNzTGF5ZXI6OmFuaW1h
dGlvbk5hbWVGb3JUcmFuc2l0aW9uKEFuaW1hdGVkUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pLCB0
aW1lT2Zmc2V0KSkgewogICAgICAgICAgICAgICAgIC8vIFRvIGVuc3VyZSB0aGF0IHRoZSBjb3Jy
ZWN0IHRyYW5zZm9ybSBpcyB2aXNpYmxlIHdoZW4gdGhlIGFuaW1hdGlvbiBlbmRzLCBhbHNvIHNl
dCB0aGUgZmluYWwgdHJhbnNmb3JtLgogICAgICAgICAgICAgICAgIHVwZGF0ZVRyYW5zZm9ybSgq
dG9TdHlsZSk7CkBAIC0yNDI1LDggKzI0MjUsOCBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6
c3RhcnRUcmFuc2l0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0LCBDU1NQcm9wZXJ0eUlEIHByb3Blcgog
ICAgICAgICBjb25zdCBBbmltYXRpb24qIGZpbHRlckFuaW0gPSB0b1N0eWxlLT50cmFuc2l0aW9u
Rm9yUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRGaWx0ZXIpOwogICAgICAgICBpZiAoZmlsdGVy
QW5pbSAmJiAhZmlsdGVyQW5pbS0+aXNFbXB0eU9yWmVyb0R1cmF0aW9uKCkpIHsKICAgICAgICAg
ICAgIEtleWZyYW1lVmFsdWVMaXN0IGZpbHRlclZlY3RvcihBbmltYXRlZFByb3BlcnR5V2Via2l0
RmlsdGVyKTsKLSAgICAgICAgICAgIGZpbHRlclZlY3Rvci5pbnNlcnQoRmlsdGVyQW5pbWF0aW9u
VmFsdWU6OmNyZWF0ZSgwLCBmcm9tU3R5bGUtPmZpbHRlcigpKSk7Ci0gICAgICAgICAgICBmaWx0
ZXJWZWN0b3IuaW5zZXJ0KEZpbHRlckFuaW1hdGlvblZhbHVlOjpjcmVhdGUoMSwgdG9TdHlsZS0+
ZmlsdGVyKCkpKTsKKyAgICAgICAgICAgIGZpbHRlclZlY3Rvci5pbnNlcnQoc3RkOjptYWtlX3Vu
aXF1ZTxGaWx0ZXJBbmltYXRpb25WYWx1ZT4oMCwgZnJvbVN0eWxlLT5maWx0ZXIoKSkpOworICAg
ICAgICAgICAgZmlsdGVyVmVjdG9yLmluc2VydChzdGQ6Om1ha2VfdW5pcXVlPEZpbHRlckFuaW1h
dGlvblZhbHVlPigxLCB0b1N0eWxlLT5maWx0ZXIoKSkpOwogICAgICAgICAgICAgaWYgKG1fZ3Jh
cGhpY3NMYXllci0+YWRkQW5pbWF0aW9uKGZpbHRlclZlY3RvciwgRmxvYXRTaXplKCksIGZpbHRl
ckFuaW0sIEdyYXBoaWNzTGF5ZXI6OmFuaW1hdGlvbk5hbWVGb3JUcmFuc2l0aW9uKEFuaW1hdGVk
UHJvcGVydHlXZWJraXRGaWx0ZXIpLCB0aW1lT2Zmc2V0KSkgewogICAgICAgICAgICAgICAgIC8v
IFRvIGVuc3VyZSB0aGF0IHRoZSBjb3JyZWN0IGZpbHRlciBpcyB2aXNpYmxlIHdoZW4gdGhlIGFu
aW1hdGlvbiBlbmRzLCBhbHNvIHNldCB0aGUgZmluYWwgZmlsdGVyLgogICAgICAgICAgICAgICAg
IHVwZGF0ZUZpbHRlcnMoKnRvU3R5bGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJz
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5h
dGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKaW5kZXggY2Y2ZTRhN2JhZTNlYjI5ZWRiNjU4
MTNlNjAyNzRlYjdkNDllMmEyZi4uNDA1ZDMxNTU0MGQwYmRkY2IyNzhmOTE0ZTNhMGI5NGRkZWVj
MmUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1l
bnRDb2RlcnMuY3BwCkBAIC01MjQsMjEgKzUyNCwyMSBAQCBib29sIEFyZ3VtZW50Q29kZXI8R3Jh
cGhpY3NMYXllckFuaW1hdGlvbj46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEdy
YQogICAgICAgICAgICAgZmxvYXQgdmFsdWU7CiAgICAgICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBr
ZXlmcmFtZXMuaW5zZXJ0KEZsb2F0QW5pbWF0aW9uVmFsdWU6OmNyZWF0ZShrZXlUaW1lLCB2YWx1
ZSwgdGltaW5nRnVuY3Rpb24uZ2V0KCkpKTsKKyAgICAgICAgICAgIGtleWZyYW1lcy5pbnNlcnQo
c3RkOjptYWtlX3VuaXF1ZTxGbG9hdEFuaW1hdGlvblZhbHVlPihrZXlUaW1lLCB2YWx1ZSwgdGlt
aW5nRnVuY3Rpb24uZ2V0KCkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAg
ICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybTogewogICAgICAgICAgICAg
VHJhbnNmb3JtT3BlcmF0aW9ucyB0cmFuc2Zvcm07CiAgICAgICAgICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHRyYW5zZm9ybSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAg
ICAgICAga2V5ZnJhbWVzLmluc2VydChUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZTo6Y3JlYXRlKGtl
eVRpbWUsIHRyYW5zZm9ybSwgdGltaW5nRnVuY3Rpb24uZ2V0KCkpKTsKKyAgICAgICAgICAgIGtl
eWZyYW1lcy5pbnNlcnQoc3RkOjptYWtlX3VuaXF1ZTxUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZT4o
a2V5VGltZSwgdHJhbnNmb3JtLCB0aW1pbmdGdW5jdGlvbi5nZXQoKSkpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBbmltYXRlZFByb3BlcnR5V2Via2l0Rmls
dGVyOiB7CiAgICAgICAgICAgICBGaWx0ZXJPcGVyYXRpb25zIGZpbHRlcjsKICAgICAgICAgICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoZmlsdGVyKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgICAgICBrZXlmcmFtZXMuaW5zZXJ0KEZpbHRlckFuaW1hdGlvblZhbHVlOjpj
cmVhdGUoa2V5VGltZSwgZmlsdGVyLCB0aW1pbmdGdW5jdGlvbi5nZXQoKSkpOworICAgICAgICAg
ICAga2V5ZnJhbWVzLmluc2VydChzdGQ6Om1ha2VfdW5pcXVlPEZpbHRlckFuaW1hdGlvblZhbHVl
PihrZXlUaW1lLCBmaWx0ZXIsIHRpbWluZ0Z1bmN0aW9uLmdldCgpKSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGll
bnQuY3BwCmluZGV4IDA0MzhmY2IxODQxZmUxYjZhZTMyMDQ0MmQ4MGU4ODAwMmFkOGIyOGMuLjZm
NDZjZmM4ZWExYWU0M2U4MmM2NDIxZDNhOWQ0MzFhZjMzM2ZiZmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3Bl
Y3RvckNsaWVudC5jcHAKQEAgLTE1NiwxMSArMTU2LDExIEBAIHZvaWQgV2ViSW5zcGVjdG9yQ2xp
ZW50OjpzaG93UGFpbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKICAgICBwYWludExheWVy
LT5zZXRCYWNrZ3JvdW5kQ29sb3IoQ29sb3IoMS4wZiwgMC4wZiwgMC4wZiwgMC4yZikpOwogCiAg
ICAgS2V5ZnJhbWVWYWx1ZUxpc3QgZmFkZUtleWZyYW1lcyhBbmltYXRlZFByb3BlcnR5T3BhY2l0
eSk7Ci0gICAgT3duUHRyPEFuaW1hdGlvblZhbHVlPiBpbnRpYWxWYWx1ZSA9IEZsb2F0QW5pbWF0
aW9uVmFsdWU6OmNyZWF0ZSgwLCAxKTsKLSAgICBmYWRlS2V5ZnJhbWVzLmluc2VydChpbnRpYWxW
YWx1ZS5yZWxlYXNlKCkpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxBbmltYXRpb25WYWx1ZT4gaW50
aWFsVmFsdWUgPSBzdGQ6Om1ha2VfdW5pcXVlPEZsb2F0QW5pbWF0aW9uVmFsdWU+KDAsIDEpOwor
ICAgIGZhZGVLZXlmcmFtZXMuaW5zZXJ0KFdURjo6bW92ZShpbnRpYWxWYWx1ZSkpOwogCi0gICAg
T3duUHRyPEFuaW1hdGlvblZhbHVlPiBmaW5hbFZhbHVlID0gRmxvYXRBbmltYXRpb25WYWx1ZTo6
Y3JlYXRlKDAuMjUsIDApOwotICAgIGZhZGVLZXlmcmFtZXMuaW5zZXJ0KGZpbmFsVmFsdWUucmVs
ZWFzZSgpKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QW5pbWF0aW9uVmFsdWU+IGZpbmFsVmFsdWUg
PSBzdGQ6Om1ha2VfdW5pcXVlPEZsb2F0QW5pbWF0aW9uVmFsdWU+KDAuMjUsIDApOworICAgIGZh
ZGVLZXlmcmFtZXMuaW5zZXJ0KFdURjo6bW92ZShmaW5hbFZhbHVlKSk7CiAgICAgCiAgICAgUmVm
UHRyPEFuaW1hdGlvbj4gb3BhY2l0eUFuaW1hdGlvbiA9IEFuaW1hdGlvbjo6Y3JlYXRlKCk7CiAg
ICAgb3BhY2l0eUFuaW1hdGlvbi0+c2V0RHVyYXRpb24oMC4yNSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>240724</attachid>
            <date>2014-10-30 21:42:27 -0700</date>
            <delta_ts>2014-11-09 18:27:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138206-20141031134234.patch</filename>
            <type>text/plain</type>
            <size>17323</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1NDA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmNjNTg2MWY1MzRjNTNi
YTIyNDI3NmYyYjc5NDMxMjViNjQ5MTMzZC4uZjk1OGY3OTc0MWE3MDg2ZmM2ZGM4ZWYzMWQ4MmM5
ODFhZWFlYzQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTEwLTMwICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmVtb3ZlIGNy
ZWF0ZSgpIGZhY3RvcnkgZnVuY3Rpb24gaW4gRm9vQW5pbWF0aW9uVmFsdWUgY2xhc3NlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4MjA2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgYSBzdGVwIHRv
IHVzZSBzdGQ6OnVuaXF1ZV9wdHIgYW5kIHN0ZDo6bWFrZV91bmlxdWUsIHRoaXMgcGF0Y2ggcmVt
b3ZlcyBjcmVhdGUoKQorICAgICAgICBmYWN0b3J5IGZ1bmN0aW9uIGluIEZvb0FuaW1hdGlvblZh
bHVlIGNsYXNzZXMuIEFzIHRoaXMgY2hhbmdlcywgRm9vQW5pbWF0aW9uVmFsdWU6OmNyZWF0ZSgp
CisgICAgICAgIGFyZSBjaGFuZ2VkIHRvIHN0ZDo6bWFrZV91bmlxdWU8Pi4KKworICAgICAgICBO
byBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lVmFs
dWVMaXN0OjppbnNlcnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0QW5pbWF0aW9uVmFsdWU6OkZsb2F0QW5pbWF0
aW9uVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU6OlRy
YW5zZm9ybUFuaW1hdGlvblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckFuaW1hdGlv
blZhbHVlOjpGaWx0ZXJBbmltYXRpb25WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdEFu
aW1hdGlvblZhbHVlOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNm
b3JtQW5pbWF0aW9uVmFsdWU6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpG
aWx0ZXJBbmltYXRpb25WYWx1ZTo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
QmFja2luZzo6c3RhcnRBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJC
YWNraW5nOjpzdGFydFRyYW5zaXRpb24pOgorCiAyMDE0LTEwLTMwICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBib3JkZXItaW1hZ2Utc291cmNlIC8gLXdl
YmtpdC1tYXNrLWJveC1pbWFnZS1zb3VyY2UgdG8gdGhlIG5ldyBTdHlsZUJ1aWxkZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCBjYzNjYmNiM2MwMDU1NzZjZGY3ZDZiYTJiZTIwYmIyNjljODllMTY5Li5mYmFhMmE1
NmI2MWI4M2Y3ODEwYTQzOWFiODAwOWM4ODEzYTA1NWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTkgQEAKKzIwMTQtMTAtMzAgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNv
bT4KKworICAgICAgICBSZW1vdmUgY3JlYXRlKCkgZmFjdG9yeSBmdW5jdGlvbiBpbiBGb29Bbmlt
YXRpb25WYWx1ZSBjbGFzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzgyMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBcyBhIHN0ZXAgdG8gdXNlIHN0ZDo6dW5pcXVlX3B0ciBhbmQgc3RkOjptYWtl
X3VuaXF1ZSwgdGhpcyBwYXRjaCByZW1vdmVzIGNyZWF0ZSgpCisgICAgICAgIGZhY3RvcnkgZnVu
Y3Rpb24gaW4gRm9vQW5pbWF0aW9uVmFsdWUgY2xhc3Nlcy4gQXMgdGhpcyBjaGFuZ2VzLCBGb29B
bmltYXRpb25WYWx1ZTo6Y3JlYXRlKCkKKyAgICAgICAgYXJlIGNoYW5nZWQgdG8gc3RkOjptYWtl
X3VuaXF1ZTw+LgorCisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxHcmFwaGljc0xheWVyQW5pbWF0aW9uPjo6ZGVjb2RlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkluc3BlY3RvckNsaWVudDo6c2hvd1BhaW50UmVjdCk6CisKIDIwMTQtMTAtMzAgIEpl
ciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW0VNRV0gQWRkIFNldHRp
bmcgZm9yIGFjY2Vzc2luZyBzdG9yYWdlIGxvY2F0aW9uIGZvciBNZWRpYUtleXMgZGF0YQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbgppbmRleCAxOWEwNjVmMmQ1ZjE3YTRmM2NiOWYzYzJlNzkwMjY0OWU2MTAx
OThiLi4zZWQwMjIwNGUzZDY1MWU5OTIwYWQwZTRlOTI1NDVkNTdiMzAyN2VlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgpAQCAtNzY0LDcgKzc2NCw3IEBAIF9fWk43V2ViQ29yZTE3SFRNTFNlbGVjdEVs
ZW1lbnQyMG9wdGlvblNlbGVjdGVkQnlVc2VyRWliYgogX19aTjdXZWJDb3JlMTdIaXN0b3J5Q29u
dHJvbGxlcjI2c2F2ZURvY3VtZW50QW5kU2Nyb2xsU3RhdGVFdgogX19aTjdXZWJDb3JlMTdIaXN0
b3J5Q29udHJvbGxlcjMzcmVzdG9yZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlRXYKIF9fWk43
V2ViQ29yZTE3SlNET01HbG9iYWxPYmplY3Q2c19pbmZvRQotX19aTjdXZWJDb3JlMTdLZXlmcmFt
ZVZhbHVlTGlzdDZpbnNlcnRFTjNXVEYxMFBhc3NPd25QdHJJS05TXzE0QW5pbWF0aW9uVmFsdWVF
RUUKK19fWk43V2ViQ29yZTE3S2V5ZnJhbWVWYWx1ZUxpc3Q2aW5zZXJ0RU5TdDNfXzExMHVuaXF1
ZV9wdHJJS05TXzE0QW5pbWF0aW9uVmFsdWVFTlMxXzE0ZGVmYXVsdF9kZWxldGVJUzRfRUVFRQog
X19aTjdXZWJDb3JlMTdNb3VzZVJlbGF0ZWRFdmVudDdvZmZzZXRYRXYKIF9fWk43V2ViQ29yZTE3
TW91c2VSZWxhdGVkRXZlbnQ3b2Zmc2V0WUV2CiBfX1pON1dlYkNvcmUxN1BhZ2VDb25zb2xlQ2xp
ZW50MjFzaG91bGRQcmludEV4Y2VwdGlvbnNFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcAppbmRleCAzZDdjZDg1MjcxYjI5ODY0M2Nk
NjU1ZjY5MTgxMmJiZTU4MmRiNzFkLi44YWQ1YmJiN2UyMjFhNzIwZmQyZTgwZWE3ZjZmZTBiMWY2
NjdjYjc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyLmNwcApAQCAtNTEsMjQgKzUxLDI0IEBAIHN0YXRpYyBSZXBhaW50TWFwJiByZXBh
aW50UmVjdE1hcCgpCiAgICAgcmV0dXJuIG1hcDsKIH0KIAotdm9pZCBLZXlmcmFtZVZhbHVlTGlz
dDo6aW5zZXJ0KFBhc3NPd25QdHI8Y29uc3QgQW5pbWF0aW9uVmFsdWU+IHZhbHVlKQordm9pZCBL
ZXlmcmFtZVZhbHVlTGlzdDo6aW5zZXJ0KHN0ZDo6dW5pcXVlX3B0cjxjb25zdCBBbmltYXRpb25W
YWx1ZT4gdmFsdWUpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3ZhbHVlcy5zaXpl
KCk7ICsraSkgewogICAgICAgICBjb25zdCBBbmltYXRpb25WYWx1ZSogY3VyVmFsdWUgPSBtX3Zh
bHVlc1tpXS5nZXQoKTsKICAgICAgICAgaWYgKGN1clZhbHVlLT5rZXlUaW1lKCkgPT0gdmFsdWUt
PmtleVRpbWUoKSkgewogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAg
ICAgICAvLyBpbnNlcnQgYWZ0ZXIKLSAgICAgICAgICAgIG1fdmFsdWVzLmluc2VydChpICsgMSwg
dmFsdWUpOworICAgICAgICAgICAgbV92YWx1ZXMuaW5zZXJ0KGkgKyAxLCBXVEY6Om1vdmUodmFs
dWUpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICBpZiAoY3VyVmFs
dWUtPmtleVRpbWUoKSA+IHZhbHVlLT5rZXlUaW1lKCkpIHsKICAgICAgICAgICAgIC8vIGluc2Vy
dCBiZWZvcmUKLSAgICAgICAgICAgIG1fdmFsdWVzLmluc2VydChpLCB2YWx1ZSk7CisgICAgICAg
ICAgICBtX3ZhbHVlcy5pbnNlcnQoaSwgV1RGOjptb3ZlKHZhbHVlKSk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAgICAgCi0gICAgbV92YWx1ZXMuYXBwZW5kKHZhbHVl
KTsKKyAgICBtX3ZhbHVlcy5hcHBlbmQoV1RGOjptb3ZlKHZhbHVlKSk7CiB9CiAKIEdyYXBoaWNz
TGF5ZXI6OkdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllckNsaWVudCYgY2xpZW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCmluZGV4IDFl
NzRjYWUwNzJjMWE2YjkyZDIwZmUzNGI5YTY2YjEzYTViOGZlNWQuLjQwMDFhYTg5NWU2ZjdhNThm
Y2I2Yzk5ZWUxNDgwNzkyYmYyNDZkNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogCiAg
ICAgZG91YmxlIGtleVRpbWUoKSBjb25zdCB7IHJldHVybiBtX2tleVRpbWU7IH0KICAgICBjb25z
dCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX3RpbWlu
Z0Z1bmN0aW9uLmdldCgpOyB9Ci0gICAgdmlydHVhbCBQYXNzT3duUHRyPEFuaW1hdGlvblZhbHVl
PiBjbG9uZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxBbmltYXRp
b25WYWx1ZT4gY2xvbmUoKSBjb25zdCA9IDA7CiAKIHByb3RlY3RlZDoKICAgICBBbmltYXRpb25W
YWx1ZShkb3VibGUga2V5VGltZSwgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gbnVs
bHB0cikKQEAgLTg0LDI1ICs4NCwyMCBAQCBwcml2YXRlOgogLy8gRklYTUU6IFNob3VsZCBiZSBt
b3ZlZCB0byBpdHMgb3duIGhlYWRlciBmaWxlLgogY2xhc3MgRmxvYXRBbmltYXRpb25WYWx1ZSA6
IHB1YmxpYyBBbmltYXRpb25WYWx1ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8
RmxvYXRBbmltYXRpb25WYWx1ZT4gY3JlYXRlKGRvdWJsZSBrZXlUaW1lLCBmbG9hdCB2YWx1ZSwg
VGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gbnVsbHB0cikKKyAgICBGbG9hdEFuaW1h
dGlvblZhbHVlKGRvdWJsZSBrZXlUaW1lLCBmbG9hdCB2YWx1ZSwgVGltaW5nRnVuY3Rpb24qIHRp
bWluZ0Z1bmN0aW9uID0gbnVsbHB0cikKKyAgICAgICAgOiBBbmltYXRpb25WYWx1ZShrZXlUaW1l
LCB0aW1pbmdGdW5jdGlvbikKKyAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBGbG9hdEFuaW1hdGlvblZhbHVlKGtleVRpbWUsIHZhbHVl
LCB0aW1pbmdGdW5jdGlvbikpOwogICAgIH0KIAotICAgIHZpcnR1YWwgUGFzc093blB0cjxBbmlt
YXRpb25WYWx1ZT4gY2xvbmUoKSBjb25zdCBvdmVycmlkZQorICAgIHZpcnR1YWwgc3RkOjp1bmlx
dWVfcHRyPEFuaW1hdGlvblZhbHVlPiBjbG9uZSgpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEZsb2F0QW5pbWF0aW9uVmFsdWUoKnRoaXMpKTsKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8RmxvYXRBbmltYXRpb25WYWx1ZT4oKnRoaXMp
OwogICAgIH0KIAogICAgIGZsb2F0IHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQog
CiBwcml2YXRlOgotICAgIEZsb2F0QW5pbWF0aW9uVmFsdWUoZG91YmxlIGtleVRpbWUsIGZsb2F0
IHZhbHVlLCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24pCi0gICAgICAgIDogQW5pbWF0
aW9uVmFsdWUoa2V5VGltZSwgdGltaW5nRnVuY3Rpb24pCi0gICAgICAgICwgbV92YWx1ZSh2YWx1
ZSkKLSAgICB7Ci0gICAgfQotCiAgICAgZmxvYXQgbV92YWx1ZTsKIH07CiAKQEAgLTExMCwyNSAr
MTA1LDIwIEBAIHByaXZhdGU6CiAvLyBGSVhNRTogU2hvdWxkIGJlIG1vdmVkIHRvIGl0cyBvd24g
aGVhZGVyIGZpbGUuCiBjbGFzcyBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZSA6IHB1YmxpYyBBbmlt
YXRpb25WYWx1ZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8VHJhbnNmb3JtQW5p
bWF0aW9uVmFsdWU+IGNyZWF0ZShkb3VibGUga2V5VGltZSwgY29uc3QgVHJhbnNmb3JtT3BlcmF0
aW9ucyYgdmFsdWUsIFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IG51bGxwdHIpCisg
ICAgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUoZG91YmxlIGtleVRpbWUsIGNvbnN0IFRyYW5zZm9y
bU9wZXJhdGlvbnMmIHZhbHVlLCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24gPSBudWxs
cHRyKQorICAgICAgICA6IEFuaW1hdGlvblZhbHVlKGtleVRpbWUsIHRpbWluZ0Z1bmN0aW9uKQor
ICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKGtleVRpbWUsIHZhbHVlLCB0aW1pbmdGdW5jdGlv
bikpOwogICAgIH0KIAotICAgIHZpcnR1YWwgUGFzc093blB0cjxBbmltYXRpb25WYWx1ZT4gY2xv
bmUoKSBjb25zdCBvdmVycmlkZQorICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEFuaW1hdGlv
blZhbHVlPiBjbG9uZSgpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKCp0aGlzKSk7CisgICAgICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlPigqdGhpcyk7CiAgICAg
fQogCiAgICAgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyYgdmFsdWUoKSBjb25zdCB7IHJldHVy
biBtX3ZhbHVlOyB9CiAKIHByaXZhdGU6Ci0gICAgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUoZG91
YmxlIGtleVRpbWUsIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIHZhbHVlLCBUaW1pbmdGdW5j
dGlvbiogdGltaW5nRnVuY3Rpb24pCi0gICAgICAgIDogQW5pbWF0aW9uVmFsdWUoa2V5VGltZSwg
dGltaW5nRnVuY3Rpb24pCi0gICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKLSAgICB7Ci0gICAgfQot
CiAgICAgVHJhbnNmb3JtT3BlcmF0aW9ucyBtX3ZhbHVlOwogfTsKIApAQCAtMTM2LDI1ICsxMjYs
MjAgQEAgcHJpdmF0ZToKIC8vIEZJWE1FOiBTaG91bGQgYmUgbW92ZWQgdG8gaXRzIG93biBoZWFk
ZXIgZmlsZS4KIGNsYXNzIEZpbHRlckFuaW1hdGlvblZhbHVlIDogcHVibGljIEFuaW1hdGlvblZh
bHVlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxGaWx0ZXJBbmltYXRpb25WYWx1
ZT4gY3JlYXRlKGRvdWJsZSBrZXlUaW1lLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiB2YWx1ZSwg
VGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gbnVsbHB0cikKKyAgICBGaWx0ZXJBbmlt
YXRpb25WYWx1ZShkb3VibGUga2V5VGltZSwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgdmFsdWUs
IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IG51bGxwdHIpCisgICAgICAgIDogQW5p
bWF0aW9uVmFsdWUoa2V5VGltZSwgdGltaW5nRnVuY3Rpb24pCisgICAgICAgICwgbV92YWx1ZSh2
YWx1ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRmlsdGVyQW5pbWF0aW9u
VmFsdWUoa2V5VGltZSwgdmFsdWUsIHRpbWluZ0Z1bmN0aW9uKSk7CiAgICAgfQogCi0gICAgdmly
dHVhbCBQYXNzT3duUHRyPEFuaW1hdGlvblZhbHVlPiBjbG9uZSgpIGNvbnN0IG92ZXJyaWRlCisg
ICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8QW5pbWF0aW9uVmFsdWU+IGNsb25lKCkgY29uc3Qg
b3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRmlsdGVyQW5pbWF0
aW9uVmFsdWUoKnRoaXMpKTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8RmlsdGVy
QW5pbWF0aW9uVmFsdWU+KCp0aGlzKTsKICAgICB9CiAKICAgICBjb25zdCBGaWx0ZXJPcGVyYXRp
b25zJiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KIAogcHJpdmF0ZToKLSAgICBG
aWx0ZXJBbmltYXRpb25WYWx1ZShkb3VibGUga2V5VGltZSwgY29uc3QgRmlsdGVyT3BlcmF0aW9u
cyYgdmFsdWUsIFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbikKLSAgICAgICAgOiBBbmlt
YXRpb25WYWx1ZShrZXlUaW1lLCB0aW1pbmdGdW5jdGlvbikKLSAgICAgICAgLCBtX3ZhbHVlKHZh
bHVlKQotICAgIHsKLSAgICB9Ci0KICAgICBGaWx0ZXJPcGVyYXRpb25zIG1fdmFsdWU7CiB9Owog
CkBAIC0xOTgsMTAgKzE4MywxMCBAQCBwdWJsaWM6CiAgICAgY29uc3QgQW5pbWF0aW9uVmFsdWUm
IGF0KHNpemVfdCBpKSBjb25zdCB7IHJldHVybiAqbV92YWx1ZXMuYXQoaSk7IH0KICAgICAKICAg
ICAvLyBJbnNlcnQsIHNvcnRlZCBieSBrZXlUaW1lLgotICAgIHZvaWQgaW5zZXJ0KFBhc3NPd25Q
dHI8Y29uc3QgQW5pbWF0aW9uVmFsdWU+KTsKKyAgICB2b2lkIGluc2VydChzdGQ6OnVuaXF1ZV9w
dHI8Y29uc3QgQW5pbWF0aW9uVmFsdWU+KTsKICAgICAKIHByb3RlY3RlZDoKLSAgICBWZWN0b3I8
T3duUHRyPGNvbnN0IEFuaW1hdGlvblZhbHVlPj4gbV92YWx1ZXM7CisgICAgVmVjdG9yPHN0ZDo6
dW5pcXVlX3B0cjxjb25zdCBBbmltYXRpb25WYWx1ZT4+IG1fdmFsdWVzOwogICAgIEFuaW1hdGVk
UHJvcGVydHlJRCBtX3Byb3BlcnR5OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBiNDJiZjUxNjQ2MDE3NGJjY2FkNzBjYzhl
OTIxM2Q5YmI5NTc0NDA5Li4wOTM4OGQ0NTU1MTI3MTE1ZDRkM2I1YjFjZjZkNWUzMGQ3YzMyOWQw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cApAQCAtMjM1MCwxMyArMjM1MCwxMyBAQCBib29sIFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRB
bmltYXRpb24oZG91YmxlIHRpbWVPZmZzZXQsIGNvbnN0IEFuaW1hdGlvbiogYW5pbQogICAgICAg
ICAKICAgICAgICAgYm9vbCBpc0ZpcnN0T3JMYXN0S2V5ZnJhbWUgPSBrZXkgPT0gMCB8fCBrZXkg
PT0gMTsKICAgICAgICAgaWYgKChoYXNUcmFuc2Zvcm0gJiYgaXNGaXJzdE9yTGFzdEtleWZyYW1l
KSB8fCBjdXJyZW50S2V5ZnJhbWUuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdFRy
YW5zZm9ybSkpCi0gICAgICAgICAgICB0cmFuc2Zvcm1WZWN0b3IuaW5zZXJ0KFRyYW5zZm9ybUFu
aW1hdGlvblZhbHVlOjpjcmVhdGUoa2V5LCBrZXlmcmFtZVN0eWxlLT50cmFuc2Zvcm0oKSwgdGYp
KTsKKyAgICAgICAgICAgIHRyYW5zZm9ybVZlY3Rvci5pbnNlcnQoc3RkOjptYWtlX3VuaXF1ZTxU
cmFuc2Zvcm1BbmltYXRpb25WYWx1ZT4oa2V5LCBrZXlmcmFtZVN0eWxlLT50cmFuc2Zvcm0oKSwg
dGYpKTsKIAogICAgICAgICBpZiAoKGhhc09wYWNpdHkgJiYgaXNGaXJzdE9yTGFzdEtleWZyYW1l
KSB8fCBjdXJyZW50S2V5ZnJhbWUuY29udGFpbnNQcm9wZXJ0eShDU1NQcm9wZXJ0eU9wYWNpdHkp
KQotICAgICAgICAgICAgb3BhY2l0eVZlY3Rvci5pbnNlcnQoRmxvYXRBbmltYXRpb25WYWx1ZTo6
Y3JlYXRlKGtleSwga2V5ZnJhbWVTdHlsZS0+b3BhY2l0eSgpLCB0ZikpOworICAgICAgICAgICAg
b3BhY2l0eVZlY3Rvci5pbnNlcnQoc3RkOjptYWtlX3VuaXF1ZTxGbG9hdEFuaW1hdGlvblZhbHVl
PihrZXksIGtleWZyYW1lU3R5bGUtPm9wYWNpdHkoKSwgdGYpKTsKIAogICAgICAgICBpZiAoKGhh
c0ZpbHRlciAmJiBpc0ZpcnN0T3JMYXN0S2V5ZnJhbWUpIHx8IGN1cnJlbnRLZXlmcmFtZS5jb250
YWluc1Byb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0RmlsdGVyKSkKLSAgICAgICAgICAgIGZpbHRl
clZlY3Rvci5pbnNlcnQoRmlsdGVyQW5pbWF0aW9uVmFsdWU6OmNyZWF0ZShrZXksIGtleWZyYW1l
U3R5bGUtPmZpbHRlcigpLCB0ZikpOworICAgICAgICAgICAgZmlsdGVyVmVjdG9yLmluc2VydChz
dGQ6Om1ha2VfdW5pcXVlPEZpbHRlckFuaW1hdGlvblZhbHVlPihrZXksIGtleWZyYW1lU3R5bGUt
PmZpbHRlcigpLCB0ZikpOwogICAgIH0KIAogICAgIGlmIChyZW5kZXJlcigpLmZyYW1lKCkucGFn
ZSgpICYmICFyZW5kZXJlcigpLmZyYW1lKCkucGFnZSgpLT5zZXR0aW5ncygpLmFjY2VsZXJhdGVk
Q29tcG9zaXRlZEFuaW1hdGlvbnNFbmFibGVkKCkpCkBAIC0yMzk2LDggKzIzOTYsOCBAQCBib29s
IFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRUcmFuc2l0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0LCBD
U1NQcm9wZXJ0eUlEIHByb3BlcgogICAgICAgICBjb25zdCBBbmltYXRpb24qIG9wYWNpdHlBbmlt
ID0gdG9TdHlsZS0+dHJhbnNpdGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5T3BhY2l0eSk7CiAg
ICAgICAgIGlmIChvcGFjaXR5QW5pbSAmJiAhb3BhY2l0eUFuaW0tPmlzRW1wdHlPclplcm9EdXJh
dGlvbigpKSB7CiAgICAgICAgICAgICBLZXlmcmFtZVZhbHVlTGlzdCBvcGFjaXR5VmVjdG9yKEFu
aW1hdGVkUHJvcGVydHlPcGFjaXR5KTsKLSAgICAgICAgICAgIG9wYWNpdHlWZWN0b3IuaW5zZXJ0
KEZsb2F0QW5pbWF0aW9uVmFsdWU6OmNyZWF0ZSgwLCBjb21wb3NpdGluZ09wYWNpdHkoZnJvbVN0
eWxlLT5vcGFjaXR5KCkpKSk7Ci0gICAgICAgICAgICBvcGFjaXR5VmVjdG9yLmluc2VydChGbG9h
dEFuaW1hdGlvblZhbHVlOjpjcmVhdGUoMSwgY29tcG9zaXRpbmdPcGFjaXR5KHRvU3R5bGUtPm9w
YWNpdHkoKSkpKTsKKyAgICAgICAgICAgIG9wYWNpdHlWZWN0b3IuaW5zZXJ0KHN0ZDo6bWFrZV91
bmlxdWU8RmxvYXRBbmltYXRpb25WYWx1ZT4oMCwgY29tcG9zaXRpbmdPcGFjaXR5KGZyb21TdHls
ZS0+b3BhY2l0eSgpKSkpOworICAgICAgICAgICAgb3BhY2l0eVZlY3Rvci5pbnNlcnQoc3RkOjpt
YWtlX3VuaXF1ZTxGbG9hdEFuaW1hdGlvblZhbHVlPigxLCBjb21wb3NpdGluZ09wYWNpdHkodG9T
dHlsZS0+b3BhY2l0eSgpKSkpOwogICAgICAgICAgICAgLy8gVGhlIGJveFNpemUgcGFyYW0gaXMg
b25seSB1c2VkIGZvciB0cmFuc2Zvcm0gYW5pbWF0aW9ucyAod2hpY2ggY2FuIG9ubHkgcnVuIG9u
IFJlbmRlckJveGVzKSwgc28gd2UgcGFzcyBhbiBlbXB0eSBzaXplIGhlcmUuCiAgICAgICAgICAg
ICBpZiAobV9ncmFwaGljc0xheWVyLT5hZGRBbmltYXRpb24ob3BhY2l0eVZlY3RvciwgRmxvYXRT
aXplKCksIG9wYWNpdHlBbmltLCBHcmFwaGljc0xheWVyOjphbmltYXRpb25OYW1lRm9yVHJhbnNp
dGlvbihBbmltYXRlZFByb3BlcnR5T3BhY2l0eSksIHRpbWVPZmZzZXQpKSB7CiAgICAgICAgICAg
ICAgICAgLy8gVG8gZW5zdXJlIHRoYXQgdGhlIGNvcnJlY3Qgb3BhY2l0eSBpcyB2aXNpYmxlIHdo
ZW4gdGhlIGFuaW1hdGlvbiBlbmRzLCBhbHNvIHNldCB0aGUgZmluYWwgb3BhY2l0eS4KQEAgLTI0
MTEsOCArMjQxMSw4IEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydFRyYW5zaXRpb24o
ZG91YmxlIHRpbWVPZmZzZXQsIENTU1Byb3BlcnR5SUQgcHJvcGVyCiAgICAgICAgIGNvbnN0IEFu
aW1hdGlvbiogdHJhbnNmb3JtQW5pbSA9IHRvU3R5bGUtPnRyYW5zaXRpb25Gb3JQcm9wZXJ0eShD
U1NQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybSk7CiAgICAgICAgIGlmICh0cmFuc2Zvcm1BbmltICYm
ICF0cmFuc2Zvcm1BbmltLT5pc0VtcHR5T3JaZXJvRHVyYXRpb24oKSkgewogICAgICAgICAgICAg
S2V5ZnJhbWVWYWx1ZUxpc3QgdHJhbnNmb3JtVmVjdG9yKEFuaW1hdGVkUHJvcGVydHlXZWJraXRU
cmFuc2Zvcm0pOwotICAgICAgICAgICAgdHJhbnNmb3JtVmVjdG9yLmluc2VydChUcmFuc2Zvcm1B
bmltYXRpb25WYWx1ZTo6Y3JlYXRlKDAsIGZyb21TdHlsZS0+dHJhbnNmb3JtKCkpKTsKLSAgICAg
ICAgICAgIHRyYW5zZm9ybVZlY3Rvci5pbnNlcnQoVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU6OmNy
ZWF0ZSgxLCB0b1N0eWxlLT50cmFuc2Zvcm0oKSkpOworICAgICAgICAgICAgdHJhbnNmb3JtVmVj
dG9yLmluc2VydChzdGQ6Om1ha2VfdW5pcXVlPFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlPigwLCBm
cm9tU3R5bGUtPnRyYW5zZm9ybSgpKSk7CisgICAgICAgICAgICB0cmFuc2Zvcm1WZWN0b3IuaW5z
ZXJ0KHN0ZDo6bWFrZV91bmlxdWU8VHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU+KDEsIHRvU3R5bGUt
PnRyYW5zZm9ybSgpKSk7CiAgICAgICAgICAgICBpZiAobV9ncmFwaGljc0xheWVyLT5hZGRBbmlt
YXRpb24odHJhbnNmb3JtVmVjdG9yLCBkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKCkpLnBp
eGVsU25hcHBlZEJvcmRlckJveFJlY3QoKS5zaXplKCksIHRyYW5zZm9ybUFuaW0sIEdyYXBoaWNz
TGF5ZXI6OmFuaW1hdGlvbk5hbWVGb3JUcmFuc2l0aW9uKEFuaW1hdGVkUHJvcGVydHlXZWJraXRU
cmFuc2Zvcm0pLCB0aW1lT2Zmc2V0KSkgewogICAgICAgICAgICAgICAgIC8vIFRvIGVuc3VyZSB0
aGF0IHRoZSBjb3JyZWN0IHRyYW5zZm9ybSBpcyB2aXNpYmxlIHdoZW4gdGhlIGFuaW1hdGlvbiBl
bmRzLCBhbHNvIHNldCB0aGUgZmluYWwgdHJhbnNmb3JtLgogICAgICAgICAgICAgICAgIHVwZGF0
ZVRyYW5zZm9ybSgqdG9TdHlsZSk7CkBAIC0yNDI1LDggKzI0MjUsOCBAQCBib29sIFJlbmRlckxh
eWVyQmFja2luZzo6c3RhcnRUcmFuc2l0aW9uKGRvdWJsZSB0aW1lT2Zmc2V0LCBDU1NQcm9wZXJ0
eUlEIHByb3BlcgogICAgICAgICBjb25zdCBBbmltYXRpb24qIGZpbHRlckFuaW0gPSB0b1N0eWxl
LT50cmFuc2l0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRGaWx0ZXIpOwogICAgICAg
ICBpZiAoZmlsdGVyQW5pbSAmJiAhZmlsdGVyQW5pbS0+aXNFbXB0eU9yWmVyb0R1cmF0aW9uKCkp
IHsKICAgICAgICAgICAgIEtleWZyYW1lVmFsdWVMaXN0IGZpbHRlclZlY3RvcihBbmltYXRlZFBy
b3BlcnR5V2Via2l0RmlsdGVyKTsKLSAgICAgICAgICAgIGZpbHRlclZlY3Rvci5pbnNlcnQoRmls
dGVyQW5pbWF0aW9uVmFsdWU6OmNyZWF0ZSgwLCBmcm9tU3R5bGUtPmZpbHRlcigpKSk7Ci0gICAg
ICAgICAgICBmaWx0ZXJWZWN0b3IuaW5zZXJ0KEZpbHRlckFuaW1hdGlvblZhbHVlOjpjcmVhdGUo
MSwgdG9TdHlsZS0+ZmlsdGVyKCkpKTsKKyAgICAgICAgICAgIGZpbHRlclZlY3Rvci5pbnNlcnQo
c3RkOjptYWtlX3VuaXF1ZTxGaWx0ZXJBbmltYXRpb25WYWx1ZT4oMCwgZnJvbVN0eWxlLT5maWx0
ZXIoKSkpOworICAgICAgICAgICAgZmlsdGVyVmVjdG9yLmluc2VydChzdGQ6Om1ha2VfdW5pcXVl
PEZpbHRlckFuaW1hdGlvblZhbHVlPigxLCB0b1N0eWxlLT5maWx0ZXIoKSkpOwogICAgICAgICAg
ICAgaWYgKG1fZ3JhcGhpY3NMYXllci0+YWRkQW5pbWF0aW9uKGZpbHRlclZlY3RvciwgRmxvYXRT
aXplKCksIGZpbHRlckFuaW0sIEdyYXBoaWNzTGF5ZXI6OmFuaW1hdGlvbk5hbWVGb3JUcmFuc2l0
aW9uKEFuaW1hdGVkUHJvcGVydHlXZWJraXRGaWx0ZXIpLCB0aW1lT2Zmc2V0KSkgewogICAgICAg
ICAgICAgICAgIC8vIFRvIGVuc3VyZSB0aGF0IHRoZSBjb3JyZWN0IGZpbHRlciBpcyB2aXNpYmxl
IHdoZW4gdGhlIGFuaW1hdGlvbiBlbmRzLCBhbHNvIHNldCB0aGUgZmluYWwgZmlsdGVyLgogICAg
ICAgICAgICAgICAgIHVwZGF0ZUZpbHRlcnMoKnRvU3R5bGUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0Fy
Z3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKaW5kZXggY2Y2ZTRhN2Jh
ZTNlYjI5ZWRiNjU4MTNlNjAyNzRlYjdkNDllMmEyZi4uNDA1ZDMxNTU0MGQwYmRkY2IyNzhmOTE0
ZTNhMGI5NGRkZWVjMmUxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdy
YXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCkBAIC01MjQsMjEgKzUyNCwyMSBAQCBib29sIEFyZ3Vt
ZW50Q29kZXI8R3JhcGhpY3NMYXllckFuaW1hdGlvbj46OmRlY29kZShBcmd1bWVudERlY29kZXIm
IGRlY29kZXIsIEdyYQogICAgICAgICAgICAgZmxvYXQgdmFsdWU7CiAgICAgICAgICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHZhbHVlKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgICAgICAgICBrZXlmcmFtZXMuaW5zZXJ0KEZsb2F0QW5pbWF0aW9uVmFsdWU6OmNyZWF0ZShr
ZXlUaW1lLCB2YWx1ZSwgdGltaW5nRnVuY3Rpb24uZ2V0KCkpKTsKKyAgICAgICAgICAgIGtleWZy
YW1lcy5pbnNlcnQoc3RkOjptYWtlX3VuaXF1ZTxGbG9hdEFuaW1hdGlvblZhbHVlPihrZXlUaW1l
LCB2YWx1ZSwgdGltaW5nRnVuY3Rpb24uZ2V0KCkpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CiAgICAgICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdFRyYW5zZm9ybTogewog
ICAgICAgICAgICAgVHJhbnNmb3JtT3BlcmF0aW9ucyB0cmFuc2Zvcm07CiAgICAgICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHRyYW5zZm9ybSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICAgICAga2V5ZnJhbWVzLmluc2VydChUcmFuc2Zvcm1BbmltYXRpb25WYWx1
ZTo6Y3JlYXRlKGtleVRpbWUsIHRyYW5zZm9ybSwgdGltaW5nRnVuY3Rpb24uZ2V0KCkpKTsKKyAg
ICAgICAgICAgIGtleWZyYW1lcy5pbnNlcnQoc3RkOjptYWtlX3VuaXF1ZTxUcmFuc2Zvcm1Bbmlt
YXRpb25WYWx1ZT4oa2V5VGltZSwgdHJhbnNmb3JtLCB0aW1pbmdGdW5jdGlvbi5nZXQoKSkpOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBBbmltYXRlZFByb3Bl
cnR5V2Via2l0RmlsdGVyOiB7CiAgICAgICAgICAgICBGaWx0ZXJPcGVyYXRpb25zIGZpbHRlcjsK
ICAgICAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZmlsdGVyKSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICBrZXlmcmFtZXMuaW5zZXJ0KEZpbHRlckFuaW1h
dGlvblZhbHVlOjpjcmVhdGUoa2V5VGltZSwgZmlsdGVyLCB0aW1pbmdGdW5jdGlvbi5nZXQoKSkp
OworICAgICAgICAgICAga2V5ZnJhbWVzLmluc2VydChzdGQ6Om1ha2VfdW5pcXVlPEZpbHRlckFu
aW1hdGlvblZhbHVlPihrZXlUaW1lLCBmaWx0ZXIsIHRpbWluZ0Z1bmN0aW9uLmdldCgpKSk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnQuY3BwCmluZGV4IDA0MzhmY2IxODQxZmUxYjZhZTMyMDQ0MmQ4MGU4ODAw
MmFkOGIyOGMuLjZmNDZjZmM4ZWExYWU0M2U4MmM2NDIxZDNhOWQ0MzFhZjMzM2ZiZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKQEAgLTE1NiwxMSArMTU2LDExIEBAIHZvaWQgV2Vi
SW5zcGVjdG9yQ2xpZW50OjpzaG93UGFpbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKICAg
ICBwYWludExheWVyLT5zZXRCYWNrZ3JvdW5kQ29sb3IoQ29sb3IoMS4wZiwgMC4wZiwgMC4wZiwg
MC4yZikpOwogCiAgICAgS2V5ZnJhbWVWYWx1ZUxpc3QgZmFkZUtleWZyYW1lcyhBbmltYXRlZFBy
b3BlcnR5T3BhY2l0eSk7Ci0gICAgT3duUHRyPEFuaW1hdGlvblZhbHVlPiBpbnRpYWxWYWx1ZSA9
IEZsb2F0QW5pbWF0aW9uVmFsdWU6OmNyZWF0ZSgwLCAxKTsKLSAgICBmYWRlS2V5ZnJhbWVzLmlu
c2VydChpbnRpYWxWYWx1ZS5yZWxlYXNlKCkpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxBbmltYXRp
b25WYWx1ZT4gaW50aWFsVmFsdWUgPSBzdGQ6Om1ha2VfdW5pcXVlPEZsb2F0QW5pbWF0aW9uVmFs
dWU+KDAsIDEpOworICAgIGZhZGVLZXlmcmFtZXMuaW5zZXJ0KFdURjo6bW92ZShpbnRpYWxWYWx1
ZSkpOwogCi0gICAgT3duUHRyPEFuaW1hdGlvblZhbHVlPiBmaW5hbFZhbHVlID0gRmxvYXRBbmlt
YXRpb25WYWx1ZTo6Y3JlYXRlKDAuMjUsIDApOwotICAgIGZhZGVLZXlmcmFtZXMuaW5zZXJ0KGZp
bmFsVmFsdWUucmVsZWFzZSgpKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QW5pbWF0aW9uVmFsdWU+
IGZpbmFsVmFsdWUgPSBzdGQ6Om1ha2VfdW5pcXVlPEZsb2F0QW5pbWF0aW9uVmFsdWU+KDAuMjUs
IDApOworICAgIGZhZGVLZXlmcmFtZXMuaW5zZXJ0KFdURjo6bW92ZShmaW5hbFZhbHVlKSk7CiAg
ICAgCiAgICAgUmVmUHRyPEFuaW1hdGlvbj4gb3BhY2l0eUFuaW1hdGlvbiA9IEFuaW1hdGlvbjo6
Y3JlYXRlKCk7CiAgICAgb3BhY2l0eUFuaW1hdGlvbi0+c2V0RHVyYXRpb24oMC4yNSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241266</attachid>
            <date>2014-11-09 18:27:26 -0800</date>
            <delta_ts>2014-11-09 22:01:49 -0800</delta_ts>
            <desc>Rebased</desc>
            <filename>bug-138206-20141110112726.patch</filename>
            <type>text/plain</type>
            <size>17309</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzY2ZTM1NzA5N2VjYTlm
NzYxZGI3MGJkYTQ2MWY3ZTZmMTc5YjYwMS4uMmJiZDRhMWRhM2FjNzgyZTFjMmUyNjg2NTBmYmUy
NDE4ZWM2MzY0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTExLTA5ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmVtb3ZlIGNy
ZWF0ZSgpIGZhY3RvcnkgZnVuY3Rpb24gaW4gRm9vQW5pbWF0aW9uVmFsdWUgY2xhc3NlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4MjA2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQXMgYSBzdGVwIHRv
IHVzZSBzdGQ6OnVuaXF1ZV9wdHIgYW5kIHN0ZDo6bWFrZV91bmlxdWUsIHRoaXMgcGF0Y2ggcmVt
b3ZlcyBjcmVhdGUoKQorICAgICAgICBmYWN0b3J5IGZ1bmN0aW9uIGluIEZvb0FuaW1hdGlvblZh
bHVlIGNsYXNzZXMuIEFzIHRoaXMgY2hhbmdlcywgRm9vQW5pbWF0aW9uVmFsdWU6OmNyZWF0ZSgp
CisgICAgICAgIGFyZSBjaGFuZ2VkIHRvIHN0ZDo6bWFrZV91bmlxdWU8Pi4KKworICAgICAgICBO
byBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lVmFs
dWVMaXN0OjppbnNlcnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5
ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0QW5pbWF0aW9uVmFsdWU6OkZsb2F0QW5pbWF0
aW9uVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU6OlRy
YW5zZm9ybUFuaW1hdGlvblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckFuaW1hdGlv
blZhbHVlOjpGaWx0ZXJBbmltYXRpb25WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdEFu
aW1hdGlvblZhbHVlOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNm
b3JtQW5pbWF0aW9uVmFsdWU6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpG
aWx0ZXJBbmltYXRpb25WYWx1ZTo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVy
QmFja2luZzo6c3RhcnRBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJC
YWNraW5nOjpzdGFydFRyYW5zaXRpb24pOgorCiAyMDE0LTExLTA5ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgbW9yZSBjb3JyZWN0IHdheSB0byBjb21w
YXJlIGZsb2F0aW5nIHBvaW50IG51bWJlcnMgYW5kIHVzZSBpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDVhM2Zj
ZmQ1ZDkwNjM4YTVhZTQ1MzE2ZTI4MzVjMzRjYzJkMjMxM2YuLjk1MTI1MmFjNTRmZGViZDI5NDlj
ZjJiYThlOGIxNTUyMGU5NTM4MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNC0x
MS0wOSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAg
IFJlbW92ZSBjcmVhdGUoKSBmYWN0b3J5IGZ1bmN0aW9uIGluIEZvb0FuaW1hdGlvblZhbHVlIGNs
YXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
ODIwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFz
IGEgc3RlcCB0byB1c2Ugc3RkOjp1bmlxdWVfcHRyIGFuZCBzdGQ6Om1ha2VfdW5pcXVlLCB0aGlz
IHBhdGNoIHJlbW92ZXMgY3JlYXRlKCkKKyAgICAgICAgZmFjdG9yeSBmdW5jdGlvbiBpbiBGb29B
bmltYXRpb25WYWx1ZSBjbGFzc2VzLiBBcyB0aGlzIGNoYW5nZXMsIEZvb0FuaW1hdGlvblZhbHVl
OjpjcmVhdGUoKQorICAgICAgICBhcmUgY2hhbmdlZCB0byBzdGQ6Om1ha2VfdW5pcXVlPD4uCisK
KyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNz
QXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEdyYXBoaWNz
TGF5ZXJBbmltYXRpb24+OjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVj
dG9yQ2xpZW50OjpzaG93UGFpbnRSZWN0KToKKwogMjAxNC0xMS0wOSAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIG1vcmUgY29ycmVjdCB3YXkgdG8gY29t
cGFyZSBmbG9hdGluZyBwb2ludCBudW1iZXJzIGFuZCB1c2UgaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
aW5kZXggNWE0NjQxNmE2YjM5OWYyNzVjYTg5NGIwNGY4ZTU1NzBlZDhjZDBhOS4uYTQ0MzMxYTMx
MGE3ODI5OWRjYzViYzgwNGFlYTc4ZTJmOTdmYjU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAg
LTc2Myw3ICs3NjMsNyBAQCBfX1pON1dlYkNvcmUxN0hUTUxTZWxlY3RFbGVtZW50MjBvcHRpb25T
ZWxlY3RlZEJ5VXNlckVpYmIKIF9fWk43V2ViQ29yZTE3SGlzdG9yeUNvbnRyb2xsZXIyNnNhdmVE
b2N1bWVudEFuZFNjcm9sbFN0YXRlRXYKIF9fWk43V2ViQ29yZTE3SGlzdG9yeUNvbnRyb2xsZXIz
M3Jlc3RvcmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZUV2CiBfX1pON1dlYkNvcmUxN0pTRE9N
R2xvYmFsT2JqZWN0NnNfaW5mb0UKLV9fWk43V2ViQ29yZTE3S2V5ZnJhbWVWYWx1ZUxpc3Q2aW5z
ZXJ0RU4zV1RGMTBQYXNzT3duUHRySUtOU18xNEFuaW1hdGlvblZhbHVlRUVFCitfX1pON1dlYkNv
cmUxN0tleWZyYW1lVmFsdWVMaXN0Nmluc2VydEVOU3QzX18xMTB1bmlxdWVfcHRySUtOU18xNEFu
aW1hdGlvblZhbHVlRU5TMV8xNGRlZmF1bHRfZGVsZXRlSVM0X0VFRUUKIF9fWk43V2ViQ29yZTE3
TW91c2VSZWxhdGVkRXZlbnQ3b2Zmc2V0WEV2CiBfX1pON1dlYkNvcmUxN01vdXNlUmVsYXRlZEV2
ZW50N29mZnNldFlFdgogX19aTjdXZWJDb3JlMTdQYWdlQ29uc29sZUNsaWVudDIxc2hvdWxkUHJp
bnRFeGNlcHRpb25zRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5jcHAKaW5kZXggMzA3YTdjZmQ4NTVmMDZmM2JlMTg2MzIzMGY3MzRhNTRj
MDVhZWY4YS4uNjJkMjUxNjNkZDI5MGYyNjgzYTJiMzQ3OTZjOTkwOTI3ZWIzOWY5OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAK
QEAgLTUxLDI0ICs1MSwyNCBAQCBzdGF0aWMgUmVwYWludE1hcCYgcmVwYWludFJlY3RNYXAoKQog
ICAgIHJldHVybiBtYXA7CiB9CiAKLXZvaWQgS2V5ZnJhbWVWYWx1ZUxpc3Q6Omluc2VydChQYXNz
T3duUHRyPGNvbnN0IEFuaW1hdGlvblZhbHVlPiB2YWx1ZSkKK3ZvaWQgS2V5ZnJhbWVWYWx1ZUxp
c3Q6Omluc2VydChzdGQ6OnVuaXF1ZV9wdHI8Y29uc3QgQW5pbWF0aW9uVmFsdWU+IHZhbHVlKQog
ewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV92YWx1ZXMuc2l6ZSgpOyArK2kpIHsKICAg
ICAgICAgY29uc3QgQW5pbWF0aW9uVmFsdWUqIGN1clZhbHVlID0gbV92YWx1ZXNbaV0uZ2V0KCk7
CiAgICAgICAgIGlmIChjdXJWYWx1ZS0+a2V5VGltZSgpID09IHZhbHVlLT5rZXlUaW1lKCkpIHsK
ICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgLy8gaW5zZXJ0
IGFmdGVyCi0gICAgICAgICAgICBtX3ZhbHVlcy5pbnNlcnQoaSArIDEsIHZhbHVlKTsKKyAgICAg
ICAgICAgIG1fdmFsdWVzLmluc2VydChpICsgMSwgV1RGOjptb3ZlKHZhbHVlKSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKGN1clZhbHVlLT5rZXlUaW1lKCkg
PiB2YWx1ZS0+a2V5VGltZSgpKSB7CiAgICAgICAgICAgICAvLyBpbnNlcnQgYmVmb3JlCi0gICAg
ICAgICAgICBtX3ZhbHVlcy5pbnNlcnQoaSwgdmFsdWUpOworICAgICAgICAgICAgbV92YWx1ZXMu
aW5zZXJ0KGksIFdURjo6bW92ZSh2YWx1ZSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAgICAgfQogICAgIAotICAgIG1fdmFsdWVzLmFwcGVuZCh2YWx1ZSk7CisgICAgbV92YWx1
ZXMuYXBwZW5kKFdURjo6bW92ZSh2YWx1ZSkpOwogfQogCiBHcmFwaGljc0xheWVyOjpHcmFwaGlj
c0xheWVyKEdyYXBoaWNzTGF5ZXJDbGllbnQmIGNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaAppbmRleCBjZmExZjEwNTJmNDA4MTI5
MzQyNWM5YWFhMDgzYmJhZTZmNDE0M2NhLi5hMGMzM2U0YzBhZDQ4MDNiZmM2YjVjNGVhN2ZiNmVj
OWQ4NjlhOTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllci5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKIAogICAgIGRvdWJsZSBrZXlU
aW1lKCkgY29uc3QgeyByZXR1cm4gbV9rZXlUaW1lOyB9CiAgICAgY29uc3QgVGltaW5nRnVuY3Rp
b24qIHRpbWluZ0Z1bmN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90aW1pbmdGdW5jdGlvbi5nZXQo
KTsgfQotICAgIHZpcnR1YWwgUGFzc093blB0cjxBbmltYXRpb25WYWx1ZT4gY2xvbmUoKSBjb25z
dCA9IDA7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8QW5pbWF0aW9uVmFsdWU+IGNsb25l
KCkgY29uc3QgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgQW5pbWF0aW9uVmFsdWUoZG91YmxlIGtl
eVRpbWUsIFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IG51bGxwdHIpCkBAIC04NCwy
NSArODQsMjAgQEAgcHJpdmF0ZToKIC8vIEZJWE1FOiBTaG91bGQgYmUgbW92ZWQgdG8gaXRzIG93
biBoZWFkZXIgZmlsZS4KIGNsYXNzIEZsb2F0QW5pbWF0aW9uVmFsdWUgOiBwdWJsaWMgQW5pbWF0
aW9uVmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEZsb2F0QW5pbWF0aW9u
VmFsdWU+IGNyZWF0ZShkb3VibGUga2V5VGltZSwgZmxvYXQgdmFsdWUsIFRpbWluZ0Z1bmN0aW9u
KiB0aW1pbmdGdW5jdGlvbiA9IG51bGxwdHIpCisgICAgRmxvYXRBbmltYXRpb25WYWx1ZShkb3Vi
bGUga2V5VGltZSwgZmxvYXQgdmFsdWUsIFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9
IG51bGxwdHIpCisgICAgICAgIDogQW5pbWF0aW9uVmFsdWUoa2V5VGltZSwgdGltaW5nRnVuY3Rp
b24pCisgICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9w
dFB0cihuZXcgRmxvYXRBbmltYXRpb25WYWx1ZShrZXlUaW1lLCB2YWx1ZSwgdGltaW5nRnVuY3Rp
b24pKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8QW5pbWF0aW9uVmFsdWU+IGNs
b25lKCkgY29uc3Qgb3ZlcnJpZGUKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxBbmltYXRp
b25WYWx1ZT4gY2xvbmUoKSBjb25zdCBvdmVycmlkZQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBGbG9hdEFuaW1hdGlvblZhbHVlKCp0aGlzKSk7CisgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPEZsb2F0QW5pbWF0aW9uVmFsdWU+KCp0aGlzKTsKICAgICB9CiAKICAg
ICBmbG9hdCB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KIAogcHJpdmF0ZToKLSAg
ICBGbG9hdEFuaW1hdGlvblZhbHVlKGRvdWJsZSBrZXlUaW1lLCBmbG9hdCB2YWx1ZSwgVGltaW5n
RnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uKQotICAgICAgICA6IEFuaW1hdGlvblZhbHVlKGtleVRp
bWUsIHRpbWluZ0Z1bmN0aW9uKQotICAgICAgICAsIG1fdmFsdWUodmFsdWUpCi0gICAgewotICAg
IH0KLQogICAgIGZsb2F0IG1fdmFsdWU7CiB9OwogCkBAIC0xMTAsMjUgKzEwNSwyMCBAQCBwcml2
YXRlOgogLy8gRklYTUU6IFNob3VsZCBiZSBtb3ZlZCB0byBpdHMgb3duIGhlYWRlciBmaWxlLgog
Y2xhc3MgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUgOiBwdWJsaWMgQW5pbWF0aW9uVmFsdWUgewog
cHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlPiBj
cmVhdGUoZG91YmxlIGtleVRpbWUsIGNvbnN0IFRyYW5zZm9ybU9wZXJhdGlvbnMmIHZhbHVlLCBU
aW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24gPSBudWxscHRyKQorICAgIFRyYW5zZm9ybUFu
aW1hdGlvblZhbHVlKGRvdWJsZSBrZXlUaW1lLCBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zJiB2
YWx1ZSwgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gbnVsbHB0cikKKyAgICAgICAg
OiBBbmltYXRpb25WYWx1ZShrZXlUaW1lLCB0aW1pbmdGdW5jdGlvbikKKyAgICAgICAgLCBtX3Zh
bHVlKHZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBUcmFuc2Zvcm1B
bmltYXRpb25WYWx1ZShrZXlUaW1lLCB2YWx1ZSwgdGltaW5nRnVuY3Rpb24pKTsKICAgICB9CiAK
LSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8QW5pbWF0aW9uVmFsdWU+IGNsb25lKCkgY29uc3Qgb3Zl
cnJpZGUKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxBbmltYXRpb25WYWx1ZT4gY2xvbmUo
KSBjb25zdCBvdmVycmlkZQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBUcmFu
c2Zvcm1BbmltYXRpb25WYWx1ZSgqdGhpcykpOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZT4oKnRoaXMpOwogICAgIH0KIAogICAgIGNvbnN0
IFRyYW5zZm9ybU9wZXJhdGlvbnMmIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQog
CiBwcml2YXRlOgotICAgIFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlKGRvdWJsZSBrZXlUaW1lLCBj
b25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zJiB2YWx1ZSwgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1
bmN0aW9uKQotICAgICAgICA6IEFuaW1hdGlvblZhbHVlKGtleVRpbWUsIHRpbWluZ0Z1bmN0aW9u
KQotICAgICAgICAsIG1fdmFsdWUodmFsdWUpCi0gICAgewotICAgIH0KLQogICAgIFRyYW5zZm9y
bU9wZXJhdGlvbnMgbV92YWx1ZTsKIH07CiAKQEAgLTEzNiwyNSArMTI2LDIwIEBAIHByaXZhdGU6
CiAvLyBGSVhNRTogU2hvdWxkIGJlIG1vdmVkIHRvIGl0cyBvd24gaGVhZGVyIGZpbGUuCiBjbGFz
cyBGaWx0ZXJBbmltYXRpb25WYWx1ZSA6IHB1YmxpYyBBbmltYXRpb25WYWx1ZSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8RmlsdGVyQW5pbWF0aW9uVmFsdWU+IGNyZWF0ZShkb3Vi
bGUga2V5VGltZSwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgdmFsdWUsIFRpbWluZ0Z1bmN0aW9u
KiB0aW1pbmdGdW5jdGlvbiA9IG51bGxwdHIpCisgICAgRmlsdGVyQW5pbWF0aW9uVmFsdWUoZG91
YmxlIGtleVRpbWUsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIHZhbHVlLCBUaW1pbmdGdW5jdGlv
biogdGltaW5nRnVuY3Rpb24gPSBudWxscHRyKQorICAgICAgICA6IEFuaW1hdGlvblZhbHVlKGtl
eVRpbWUsIHRpbWluZ0Z1bmN0aW9uKQorICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgewot
ICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEZpbHRlckFuaW1hdGlvblZhbHVlKGtleVRpbWUs
IHZhbHVlLCB0aW1pbmdGdW5jdGlvbikpOwogICAgIH0KIAotICAgIHZpcnR1YWwgUGFzc093blB0
cjxBbmltYXRpb25WYWx1ZT4gY2xvbmUoKSBjb25zdCBvdmVycmlkZQorICAgIHZpcnR1YWwgc3Rk
Ojp1bmlxdWVfcHRyPEFuaW1hdGlvblZhbHVlPiBjbG9uZSgpIGNvbnN0IG92ZXJyaWRlCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEZpbHRlckFuaW1hdGlvblZhbHVlKCp0aGlz
KSk7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEZpbHRlckFuaW1hdGlvblZhbHVl
PigqdGhpcyk7CiAgICAgfQogCiAgICAgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgdmFsdWUoKSBj
b25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CiAKIHByaXZhdGU6Ci0gICAgRmlsdGVyQW5pbWF0aW9u
VmFsdWUoZG91YmxlIGtleVRpbWUsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIHZhbHVlLCBUaW1p
bmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24pCi0gICAgICAgIDogQW5pbWF0aW9uVmFsdWUoa2V5
VGltZSwgdGltaW5nRnVuY3Rpb24pCi0gICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKLSAgICB7Ci0g
ICAgfQotCiAgICAgRmlsdGVyT3BlcmF0aW9ucyBtX3ZhbHVlOwogfTsKIApAQCAtMTk4LDEwICsx
ODMsMTAgQEAgcHVibGljOgogICAgIGNvbnN0IEFuaW1hdGlvblZhbHVlJiBhdChzaXplX3QgaSkg
Y29uc3QgeyByZXR1cm4gKm1fdmFsdWVzLmF0KGkpOyB9CiAgICAgCiAgICAgLy8gSW5zZXJ0LCBz
b3J0ZWQgYnkga2V5VGltZS4KLSAgICB2b2lkIGluc2VydChQYXNzT3duUHRyPGNvbnN0IEFuaW1h
dGlvblZhbHVlPik7CisgICAgdm9pZCBpbnNlcnQoc3RkOjp1bmlxdWVfcHRyPGNvbnN0IEFuaW1h
dGlvblZhbHVlPik7CiAgICAgCiBwcm90ZWN0ZWQ6Ci0gICAgVmVjdG9yPE93blB0cjxjb25zdCBB
bmltYXRpb25WYWx1ZT4+IG1fdmFsdWVzOworICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Y29u
c3QgQW5pbWF0aW9uVmFsdWU+PiBtX3ZhbHVlczsKICAgICBBbmltYXRlZFByb3BlcnR5SUQgbV9w
cm9wZXJ0eTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKaW5kZXggZjNhZjNjOWE0OTkxYjA4ZjA3Yzg5YjI1OTQxNWIzYjU1MTJmOTI3
YS4uYTQ0N2Q5ZTUwZjIxYjlmY2Y3YTY0NDA2NTg1NmI3ZmEyYzI0ZmIzYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTIzNjYsMTMg
KzIzNjYsMTMgQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0QW5pbWF0aW9uKGRvdWJs
ZSB0aW1lT2Zmc2V0LCBjb25zdCBBbmltYXRpb24qIGFuaW0KICAgICAgICAgCiAgICAgICAgIGJv
b2wgaXNGaXJzdE9yTGFzdEtleWZyYW1lID0ga2V5ID09IDAgfHwga2V5ID09IDE7CiAgICAgICAg
IGlmICgoaGFzVHJhbnNmb3JtICYmIGlzRmlyc3RPckxhc3RLZXlmcmFtZSkgfHwgY3VycmVudEtl
eWZyYW1lLmNvbnRhaW5zUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRUcmFuc2Zvcm0pKQotICAg
ICAgICAgICAgdHJhbnNmb3JtVmVjdG9yLmluc2VydChUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZTo6
Y3JlYXRlKGtleSwga2V5ZnJhbWVTdHlsZS0+dHJhbnNmb3JtKCksIHRmKSk7CisgICAgICAgICAg
ICB0cmFuc2Zvcm1WZWN0b3IuaW5zZXJ0KHN0ZDo6bWFrZV91bmlxdWU8VHJhbnNmb3JtQW5pbWF0
aW9uVmFsdWU+KGtleSwga2V5ZnJhbWVTdHlsZS0+dHJhbnNmb3JtKCksIHRmKSk7CiAKICAgICAg
ICAgaWYgKChoYXNPcGFjaXR5ICYmIGlzRmlyc3RPckxhc3RLZXlmcmFtZSkgfHwgY3VycmVudEtl
eWZyYW1lLmNvbnRhaW5zUHJvcGVydHkoQ1NTUHJvcGVydHlPcGFjaXR5KSkKLSAgICAgICAgICAg
IG9wYWNpdHlWZWN0b3IuaW5zZXJ0KEZsb2F0QW5pbWF0aW9uVmFsdWU6OmNyZWF0ZShrZXksIGtl
eWZyYW1lU3R5bGUtPm9wYWNpdHkoKSwgdGYpKTsKKyAgICAgICAgICAgIG9wYWNpdHlWZWN0b3Iu
aW5zZXJ0KHN0ZDo6bWFrZV91bmlxdWU8RmxvYXRBbmltYXRpb25WYWx1ZT4oa2V5LCBrZXlmcmFt
ZVN0eWxlLT5vcGFjaXR5KCksIHRmKSk7CiAKICAgICAgICAgaWYgKChoYXNGaWx0ZXIgJiYgaXNG
aXJzdE9yTGFzdEtleWZyYW1lKSB8fCBjdXJyZW50S2V5ZnJhbWUuY29udGFpbnNQcm9wZXJ0eShD
U1NQcm9wZXJ0eVdlYmtpdEZpbHRlcikpCi0gICAgICAgICAgICBmaWx0ZXJWZWN0b3IuaW5zZXJ0
KEZpbHRlckFuaW1hdGlvblZhbHVlOjpjcmVhdGUoa2V5LCBrZXlmcmFtZVN0eWxlLT5maWx0ZXIo
KSwgdGYpKTsKKyAgICAgICAgICAgIGZpbHRlclZlY3Rvci5pbnNlcnQoc3RkOjptYWtlX3VuaXF1
ZTxGaWx0ZXJBbmltYXRpb25WYWx1ZT4oa2V5LCBrZXlmcmFtZVN0eWxlLT5maWx0ZXIoKSwgdGYp
KTsKICAgICB9CiAKICAgICBpZiAocmVuZGVyZXIoKS5mcmFtZSgpLnBhZ2UoKSAmJiAhcmVuZGVy
ZXIoKS5mcmFtZSgpLnBhZ2UoKS0+c2V0dGluZ3MoKS5hY2NlbGVyYXRlZENvbXBvc2l0ZWRBbmlt
YXRpb25zRW5hYmxlZCgpKQpAQCAtMjQxMiw4ICsyNDEyLDggQEAgYm9vbCBSZW5kZXJMYXllckJh
Y2tpbmc6OnN0YXJ0VHJhbnNpdGlvbihkb3VibGUgdGltZU9mZnNldCwgQ1NTUHJvcGVydHlJRCBw
cm9wZXIKICAgICAgICAgY29uc3QgQW5pbWF0aW9uKiBvcGFjaXR5QW5pbSA9IHRvU3R5bGUtPnRy
YW5zaXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eU9wYWNpdHkpOwogICAgICAgICBpZiAob3Bh
Y2l0eUFuaW0gJiYgIW9wYWNpdHlBbmltLT5pc0VtcHR5T3JaZXJvRHVyYXRpb24oKSkgewogICAg
ICAgICAgICAgS2V5ZnJhbWVWYWx1ZUxpc3Qgb3BhY2l0eVZlY3RvcihBbmltYXRlZFByb3BlcnR5
T3BhY2l0eSk7Ci0gICAgICAgICAgICBvcGFjaXR5VmVjdG9yLmluc2VydChGbG9hdEFuaW1hdGlv
blZhbHVlOjpjcmVhdGUoMCwgY29tcG9zaXRpbmdPcGFjaXR5KGZyb21TdHlsZS0+b3BhY2l0eSgp
KSkpOwotICAgICAgICAgICAgb3BhY2l0eVZlY3Rvci5pbnNlcnQoRmxvYXRBbmltYXRpb25WYWx1
ZTo6Y3JlYXRlKDEsIGNvbXBvc2l0aW5nT3BhY2l0eSh0b1N0eWxlLT5vcGFjaXR5KCkpKSk7Cisg
ICAgICAgICAgICBvcGFjaXR5VmVjdG9yLmluc2VydChzdGQ6Om1ha2VfdW5pcXVlPEZsb2F0QW5p
bWF0aW9uVmFsdWU+KDAsIGNvbXBvc2l0aW5nT3BhY2l0eShmcm9tU3R5bGUtPm9wYWNpdHkoKSkp
KTsKKyAgICAgICAgICAgIG9wYWNpdHlWZWN0b3IuaW5zZXJ0KHN0ZDo6bWFrZV91bmlxdWU8Rmxv
YXRBbmltYXRpb25WYWx1ZT4oMSwgY29tcG9zaXRpbmdPcGFjaXR5KHRvU3R5bGUtPm9wYWNpdHko
KSkpKTsKICAgICAgICAgICAgIC8vIFRoZSBib3hTaXplIHBhcmFtIGlzIG9ubHkgdXNlZCBmb3Ig
dHJhbnNmb3JtIGFuaW1hdGlvbnMgKHdoaWNoIGNhbiBvbmx5IHJ1biBvbiBSZW5kZXJCb3hlcyks
IHNvIHdlIHBhc3MgYW4gZW1wdHkgc2l6ZSBoZXJlLgogICAgICAgICAgICAgaWYgKG1fZ3JhcGhp
Y3NMYXllci0+YWRkQW5pbWF0aW9uKG9wYWNpdHlWZWN0b3IsIEZsb2F0U2l6ZSgpLCBvcGFjaXR5
QW5pbSwgR3JhcGhpY3NMYXllcjo6YW5pbWF0aW9uTmFtZUZvclRyYW5zaXRpb24oQW5pbWF0ZWRQ
cm9wZXJ0eU9wYWNpdHkpLCB0aW1lT2Zmc2V0KSkgewogICAgICAgICAgICAgICAgIC8vIFRvIGVu
c3VyZSB0aGF0IHRoZSBjb3JyZWN0IG9wYWNpdHkgaXMgdmlzaWJsZSB3aGVuIHRoZSBhbmltYXRp
b24gZW5kcywgYWxzbyBzZXQgdGhlIGZpbmFsIG9wYWNpdHkuCkBAIC0yNDI3LDggKzI0MjcsOCBA
QCBib29sIFJlbmRlckxheWVyQmFja2luZzo6c3RhcnRUcmFuc2l0aW9uKGRvdWJsZSB0aW1lT2Zm
c2V0LCBDU1NQcm9wZXJ0eUlEIHByb3BlcgogICAgICAgICBjb25zdCBBbmltYXRpb24qIHRyYW5z
Zm9ybUFuaW0gPSB0b1N0eWxlLT50cmFuc2l0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJr
aXRUcmFuc2Zvcm0pOwogICAgICAgICBpZiAodHJhbnNmb3JtQW5pbSAmJiAhdHJhbnNmb3JtQW5p
bS0+aXNFbXB0eU9yWmVyb0R1cmF0aW9uKCkpIHsKICAgICAgICAgICAgIEtleWZyYW1lVmFsdWVM
aXN0IHRyYW5zZm9ybVZlY3RvcihBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3JtKTsKLSAg
ICAgICAgICAgIHRyYW5zZm9ybVZlY3Rvci5pbnNlcnQoVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU6
OmNyZWF0ZSgwLCBmcm9tU3R5bGUtPnRyYW5zZm9ybSgpKSk7Ci0gICAgICAgICAgICB0cmFuc2Zv
cm1WZWN0b3IuaW5zZXJ0KFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlOjpjcmVhdGUoMSwgdG9TdHls
ZS0+dHJhbnNmb3JtKCkpKTsKKyAgICAgICAgICAgIHRyYW5zZm9ybVZlY3Rvci5pbnNlcnQoc3Rk
OjptYWtlX3VuaXF1ZTxUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZT4oMCwgZnJvbVN0eWxlLT50cmFu
c2Zvcm0oKSkpOworICAgICAgICAgICAgdHJhbnNmb3JtVmVjdG9yLmluc2VydChzdGQ6Om1ha2Vf
dW5pcXVlPFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlPigxLCB0b1N0eWxlLT50cmFuc2Zvcm0oKSkp
OwogICAgICAgICAgICAgaWYgKG1fZ3JhcGhpY3NMYXllci0+YWRkQW5pbWF0aW9uKHRyYW5zZm9y
bVZlY3RvciwgZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcigpKS5waXhlbFNuYXBwZWRCb3Jk
ZXJCb3hSZWN0KCkuc2l6ZSgpLCB0cmFuc2Zvcm1BbmltLCBHcmFwaGljc0xheWVyOjphbmltYXRp
b25OYW1lRm9yVHJhbnNpdGlvbihBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3JtKSwgdGlt
ZU9mZnNldCkpIHsKICAgICAgICAgICAgICAgICAvLyBUbyBlbnN1cmUgdGhhdCB0aGUgY29ycmVj
dCB0cmFuc2Zvcm0gaXMgdmlzaWJsZSB3aGVuIHRoZSBhbmltYXRpb24gZW5kcywgYWxzbyBzZXQg
dGhlIGZpbmFsIHRyYW5zZm9ybS4KICAgICAgICAgICAgICAgICB1cGRhdGVUcmFuc2Zvcm0oKnRv
U3R5bGUpOwpAQCAtMjQ0MSw4ICsyNDQxLDggQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnN0
YXJ0VHJhbnNpdGlvbihkb3VibGUgdGltZU9mZnNldCwgQ1NTUHJvcGVydHlJRCBwcm9wZXIKICAg
ICAgICAgY29uc3QgQW5pbWF0aW9uKiBmaWx0ZXJBbmltID0gdG9TdHlsZS0+dHJhbnNpdGlvbkZv
clByb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0RmlsdGVyKTsKICAgICAgICAgaWYgKGZpbHRlckFu
aW0gJiYgIWZpbHRlckFuaW0tPmlzRW1wdHlPclplcm9EdXJhdGlvbigpKSB7CiAgICAgICAgICAg
ICBLZXlmcmFtZVZhbHVlTGlzdCBmaWx0ZXJWZWN0b3IoQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEZp
bHRlcik7Ci0gICAgICAgICAgICBmaWx0ZXJWZWN0b3IuaW5zZXJ0KEZpbHRlckFuaW1hdGlvblZh
bHVlOjpjcmVhdGUoMCwgZnJvbVN0eWxlLT5maWx0ZXIoKSkpOwotICAgICAgICAgICAgZmlsdGVy
VmVjdG9yLmluc2VydChGaWx0ZXJBbmltYXRpb25WYWx1ZTo6Y3JlYXRlKDEsIHRvU3R5bGUtPmZp
bHRlcigpKSk7CisgICAgICAgICAgICBmaWx0ZXJWZWN0b3IuaW5zZXJ0KHN0ZDo6bWFrZV91bmlx
dWU8RmlsdGVyQW5pbWF0aW9uVmFsdWU+KDAsIGZyb21TdHlsZS0+ZmlsdGVyKCkpKTsKKyAgICAg
ICAgICAgIGZpbHRlclZlY3Rvci5pbnNlcnQoc3RkOjptYWtlX3VuaXF1ZTxGaWx0ZXJBbmltYXRp
b25WYWx1ZT4oMSwgdG9TdHlsZS0+ZmlsdGVyKCkpKTsKICAgICAgICAgICAgIGlmIChtX2dyYXBo
aWNzTGF5ZXItPmFkZEFuaW1hdGlvbihmaWx0ZXJWZWN0b3IsIEZsb2F0U2l6ZSgpLCBmaWx0ZXJB
bmltLCBHcmFwaGljc0xheWVyOjphbmltYXRpb25OYW1lRm9yVHJhbnNpdGlvbihBbmltYXRlZFBy
b3BlcnR5V2Via2l0RmlsdGVyKSwgdGltZU9mZnNldCkpIHsKICAgICAgICAgICAgICAgICAvLyBU
byBlbnN1cmUgdGhhdCB0aGUgY29ycmVjdCBmaWx0ZXIgaXMgdmlzaWJsZSB3aGVuIHRoZSBhbmlt
YXRpb24gZW5kcywgYWxzbyBzZXQgdGhlIGZpbmFsIGZpbHRlci4KICAgICAgICAgICAgICAgICB1
cGRhdGVGaWx0ZXJzKCp0b1N0eWxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGNmNmU0YTdiYWUzZWIyOWVkYjY1ODEz
ZTYwMjc0ZWI3ZDQ5ZTJhMmYuLjQwNWQzMTU1NDBkMGJkZGNiMjc4ZjkxNGUzYTBiOTRkZGVlYzJl
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50
Q29kZXJzLmNwcApAQCAtNTI0LDIxICs1MjQsMjEgQEAgYm9vbCBBcmd1bWVudENvZGVyPEdyYXBo
aWNzTGF5ZXJBbmltYXRpb24+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBHcmEK
ICAgICAgICAgICAgIGZsb2F0IHZhbHVlOwogICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZSh2YWx1ZSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAga2V5
ZnJhbWVzLmluc2VydChGbG9hdEFuaW1hdGlvblZhbHVlOjpjcmVhdGUoa2V5VGltZSwgdmFsdWUs
IHRpbWluZ0Z1bmN0aW9uLmdldCgpKSk7CisgICAgICAgICAgICBrZXlmcmFtZXMuaW5zZXJ0KHN0
ZDo6bWFrZV91bmlxdWU8RmxvYXRBbmltYXRpb25WYWx1ZT4oa2V5VGltZSwgdmFsdWUsIHRpbWlu
Z0Z1bmN0aW9uLmdldCgpKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAg
ICBjYXNlIEFuaW1hdGVkUHJvcGVydHlXZWJraXRUcmFuc2Zvcm06IHsKICAgICAgICAgICAgIFRy
YW5zZm9ybU9wZXJhdGlvbnMgdHJhbnNmb3JtOwogICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZSh0cmFuc2Zvcm0pKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAg
ICAgIGtleWZyYW1lcy5pbnNlcnQoVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU6OmNyZWF0ZShrZXlU
aW1lLCB0cmFuc2Zvcm0sIHRpbWluZ0Z1bmN0aW9uLmdldCgpKSk7CisgICAgICAgICAgICBrZXlm
cmFtZXMuaW5zZXJ0KHN0ZDo6bWFrZV91bmlxdWU8VHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU+KGtl
eVRpbWUsIHRyYW5zZm9ybSwgdGltaW5nRnVuY3Rpb24uZ2V0KCkpKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2UgQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEZpbHRl
cjogewogICAgICAgICAgICAgRmlsdGVyT3BlcmF0aW9ucyBmaWx0ZXI7CiAgICAgICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGZpbHRlcikpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICAgICAga2V5ZnJhbWVzLmluc2VydChGaWx0ZXJBbmltYXRpb25WYWx1ZTo6Y3Jl
YXRlKGtleVRpbWUsIGZpbHRlciwgdGltaW5nRnVuY3Rpb24uZ2V0KCkpKTsKKyAgICAgICAgICAg
IGtleWZyYW1lcy5pbnNlcnQoc3RkOjptYWtlX3VuaXF1ZTxGaWx0ZXJBbmltYXRpb25WYWx1ZT4o
a2V5VGltZSwgZmlsdGVyLCB0aW1pbmdGdW5jdGlvbi5nZXQoKSkpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgZGVmYXVsdDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50
LmNwcAppbmRleCAwNDM4ZmNiMTg0MWZlMWI2YWUzMjA0NDJkODBlODgwMDJhZDhiMjhjLi42ZjQ2
Y2ZjOGVhMWFlNDNlODJjNjQyMWQzYTlkNDMxYWYzMzNmYmZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0
b3JDbGllbnQuY3BwCkBAIC0xNTYsMTEgKzE1NiwxMSBAQCB2b2lkIFdlYkluc3BlY3RvckNsaWVu
dDo6c2hvd1BhaW50UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAgICAgcGFpbnRMYXllci0+
c2V0QmFja2dyb3VuZENvbG9yKENvbG9yKDEuMGYsIDAuMGYsIDAuMGYsIDAuMmYpKTsKIAogICAg
IEtleWZyYW1lVmFsdWVMaXN0IGZhZGVLZXlmcmFtZXMoQW5pbWF0ZWRQcm9wZXJ0eU9wYWNpdHkp
OwotICAgIE93blB0cjxBbmltYXRpb25WYWx1ZT4gaW50aWFsVmFsdWUgPSBGbG9hdEFuaW1hdGlv
blZhbHVlOjpjcmVhdGUoMCwgMSk7Ci0gICAgZmFkZUtleWZyYW1lcy5pbnNlcnQoaW50aWFsVmFs
dWUucmVsZWFzZSgpKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QW5pbWF0aW9uVmFsdWU+IGludGlh
bFZhbHVlID0gc3RkOjptYWtlX3VuaXF1ZTxGbG9hdEFuaW1hdGlvblZhbHVlPigwLCAxKTsKKyAg
ICBmYWRlS2V5ZnJhbWVzLmluc2VydChXVEY6Om1vdmUoaW50aWFsVmFsdWUpKTsKIAotICAgIE93
blB0cjxBbmltYXRpb25WYWx1ZT4gZmluYWxWYWx1ZSA9IEZsb2F0QW5pbWF0aW9uVmFsdWU6OmNy
ZWF0ZSgwLjI1LCAwKTsKLSAgICBmYWRlS2V5ZnJhbWVzLmluc2VydChmaW5hbFZhbHVlLnJlbGVh
c2UoKSk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEFuaW1hdGlvblZhbHVlPiBmaW5hbFZhbHVlID0g
c3RkOjptYWtlX3VuaXF1ZTxGbG9hdEFuaW1hdGlvblZhbHVlPigwLjI1LCAwKTsKKyAgICBmYWRl
S2V5ZnJhbWVzLmluc2VydChXVEY6Om1vdmUoZmluYWxWYWx1ZSkpOwogICAgIAogICAgIFJlZlB0
cjxBbmltYXRpb24+IG9wYWNpdHlBbmltYXRpb24gPSBBbmltYXRpb246OmNyZWF0ZSgpOwogICAg
IG9wYWNpdHlBbmltYXRpb24tPnNldER1cmF0aW9uKDAuMjUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241275</attachid>
            <date>2014-11-09 22:01:59 -0800</date>
            <delta_ts>2014-11-09 22:47:02 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-138206-20141110150200.patch</filename>
            <type>text/plain</type>
            <size>17119</size>
            <attacher name="Gyuyoung Kim">gyuyoung.kim</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc1Nzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzY2ZTM1NzA5N2VjYTlm
NzYxZGI3MGJkYTQ2MWY3ZTZmMTc5YjYwMS4uYmQyNGE5Zjk2NTc4ZDA0N2E3ZDg2ZGZkNjhmZThl
NjkwMmY4OGFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTExLTA5ICBHeXV5
b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmVtb3ZlIGNy
ZWF0ZSgpIGZhY3RvcnkgZnVuY3Rpb24gaW4gRm9vQW5pbWF0aW9uVmFsdWUgY2xhc3NlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4MjA2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgQXMgYSBzdGVwIHRvIHVz
ZSBzdGQ6OnVuaXF1ZV9wdHIgYW5kIHN0ZDo6bWFrZV91bmlxdWUsIHRoaXMgcGF0Y2ggcmVtb3Zl
cyBjcmVhdGUoKQorICAgICAgICBmYWN0b3J5IGZ1bmN0aW9uIGluIEZvb0FuaW1hdGlvblZhbHVl
IGNsYXNzZXMuIEFzIHRoaXMgY2hhbmdlcywgRm9vQW5pbWF0aW9uVmFsdWU6OmNyZWF0ZSgpCisg
ICAgICAgIGFyZSBjaGFuZ2VkIHRvIHN0ZDo6bWFrZV91bmlxdWU8Pi4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lVmFsdWVM
aXN0OjppbnNlcnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkZsb2F0QW5pbWF0aW9uVmFsdWU6OkZsb2F0QW5pbWF0aW9u
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU6OlRyYW5z
Zm9ybUFuaW1hdGlvblZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbHRlckFuaW1hdGlvblZh
bHVlOjpGaWx0ZXJBbmltYXRpb25WYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdEFuaW1h
dGlvblZhbHVlOjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VHJhbnNmb3Jt
QW5pbWF0aW9uVmFsdWU6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGaWx0
ZXJBbmltYXRpb25WYWx1ZTo6Y3JlYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFj
a2luZzo6c3RhcnRBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNr
aW5nOjpzdGFydFRyYW5zaXRpb24pOgorCiAyMDE0LTExLTA5ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgbW9yZSBjb3JyZWN0IHdheSB0byBjb21wYXJl
IGZsb2F0aW5nIHBvaW50IG51bWJlcnMgYW5kIHVzZSBpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDdhMzZiZjI5
MDBlYWY1ZGQ0YzY4MWNkZDFjOWY2ZjU4MzYyNDk4OWUuLmNjMjlkMTE0MjA2Mzc0YjIwODYzMjY1
ZGRhYTllNDNlMDJlNzRjZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNC0xMS0w
OSAgR3l1eW91bmcgS2ltICA8Z3l1eW91bmcua2ltQHNhbXN1bmcuY29tPgorCisgICAgICAgIFJl
bW92ZSBjcmVhdGUoKSBmYWN0b3J5IGZ1bmN0aW9uIGluIEZvb0FuaW1hdGlvblZhbHVlIGNsYXNz
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODIw
NgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEFzIGEgc3Rl
cCB0byB1c2Ugc3RkOjp1bmlxdWVfcHRyIGFuZCBzdGQ6Om1ha2VfdW5pcXVlLCB0aGlzIHBhdGNo
IHJlbW92ZXMgY3JlYXRlKCkKKyAgICAgICAgZmFjdG9yeSBmdW5jdGlvbiBpbiBGb29BbmltYXRp
b25WYWx1ZSBjbGFzc2VzLiBBcyB0aGlzIGNoYW5nZXMsIEZvb0FuaW1hdGlvblZhbHVlOjpjcmVh
dGUoKQorICAgICAgICBhcmUgY2hhbmdlZCB0byBzdGQ6Om1ha2VfdW5pcXVlPD4uCisKKyAgICAg
ICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1l
bnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEdyYXBoaWNzTGF5ZXJB
bmltYXRpb24+OjpkZWNvZGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViSW5zcGVjdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yQ2xp
ZW50OjpzaG93UGFpbnRSZWN0KToKKwogMjAxNC0xMS0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCB0eXBvIGluIHIxNzU3OTYuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCmluZGV4IDVhNDY0MTZhNmIzOTlmMjc1Y2E4OTRiMDRmOGU1NTcwZWQ4
Y2QwYTkuLmE0NDMzMWEzMTBhNzgyOTlkY2M1YmM4MDRhZWE3OGUyZjk3ZmI1NGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCkBAIC03NjMsNyArNzYzLDcgQEAgX19aTjdXZWJDb3JlMTdIVE1MU2VsZWN0
RWxlbWVudDIwb3B0aW9uU2VsZWN0ZWRCeVVzZXJFaWJiCiBfX1pON1dlYkNvcmUxN0hpc3RvcnlD
b250cm9sbGVyMjZzYXZlRG9jdW1lbnRBbmRTY3JvbGxTdGF0ZUV2CiBfX1pON1dlYkNvcmUxN0hp
c3RvcnlDb250cm9sbGVyMzNyZXN0b3JlU2Nyb2xsUG9zaXRpb25BbmRWaWV3U3RhdGVFdgogX19a
TjdXZWJDb3JlMTdKU0RPTUdsb2JhbE9iamVjdDZzX2luZm9FCi1fX1pON1dlYkNvcmUxN0tleWZy
YW1lVmFsdWVMaXN0Nmluc2VydEVOM1dURjEwUGFzc093blB0cklLTlNfMTRBbmltYXRpb25WYWx1
ZUVFRQorX19aTjdXZWJDb3JlMTdLZXlmcmFtZVZhbHVlTGlzdDZpbnNlcnRFTlN0M19fMTEwdW5p
cXVlX3B0cklLTlNfMTRBbmltYXRpb25WYWx1ZUVOUzFfMTRkZWZhdWx0X2RlbGV0ZUlTNF9FRUVF
CiBfX1pON1dlYkNvcmUxN01vdXNlUmVsYXRlZEV2ZW50N29mZnNldFhFdgogX19aTjdXZWJDb3Jl
MTdNb3VzZVJlbGF0ZWRFdmVudDdvZmZzZXRZRXYKIF9fWk43V2ViQ29yZTE3UGFnZUNvbnNvbGVD
bGllbnQyMXNob3VsZFByaW50RXhjZXB0aW9uc0V2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuY3BwCmluZGV4IDMwN2E3Y2ZkODU1ZjA2ZjNi
ZTE4NjMyMzBmNzM0YTU0YzA1YWVmOGEuLjYyZDI1MTYzZGQyOTBmMjY4M2EyYjM0Nzk2Yzk5MDky
N2ViMzlmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzTGF5ZXIuY3BwCkBAIC01MSwyNCArNTEsMjQgQEAgc3RhdGljIFJlcGFpbnRNYXAmIHJl
cGFpbnRSZWN0TWFwKCkKICAgICByZXR1cm4gbWFwOwogfQogCi12b2lkIEtleWZyYW1lVmFsdWVM
aXN0OjppbnNlcnQoUGFzc093blB0cjxjb25zdCBBbmltYXRpb25WYWx1ZT4gdmFsdWUpCit2b2lk
IEtleWZyYW1lVmFsdWVMaXN0OjppbnNlcnQoc3RkOjp1bmlxdWVfcHRyPGNvbnN0IEFuaW1hdGlv
blZhbHVlPiB2YWx1ZSkKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fdmFsdWVzLnNp
emUoKTsgKytpKSB7CiAgICAgICAgIGNvbnN0IEFuaW1hdGlvblZhbHVlKiBjdXJWYWx1ZSA9IG1f
dmFsdWVzW2ldLmdldCgpOwogICAgICAgICBpZiAoY3VyVmFsdWUtPmtleVRpbWUoKSA9PSB2YWx1
ZS0+a2V5VGltZSgpKSB7CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgICAgIC8vIGluc2VydCBhZnRlcgotICAgICAgICAgICAgbV92YWx1ZXMuaW5zZXJ0KGkgKyAx
LCB2YWx1ZSk7CisgICAgICAgICAgICBtX3ZhbHVlcy5pbnNlcnQoaSArIDEsIFdURjo6bW92ZSh2
YWx1ZSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmIChjdXJW
YWx1ZS0+a2V5VGltZSgpID4gdmFsdWUtPmtleVRpbWUoKSkgewogICAgICAgICAgICAgLy8gaW5z
ZXJ0IGJlZm9yZQotICAgICAgICAgICAgbV92YWx1ZXMuaW5zZXJ0KGksIHZhbHVlKTsKKyAgICAg
ICAgICAgIG1fdmFsdWVzLmluc2VydChpLCBXVEY6Om1vdmUodmFsdWUpKTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICBtX3ZhbHVlcy5hcHBlbmQodmFs
dWUpOworICAgIG1fdmFsdWVzLmFwcGVuZChXVEY6Om1vdmUodmFsdWUpKTsKIH0KIAogR3JhcGhp
Y3NMYXllcjo6R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyQ2xpZW50JiBjbGllbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXgg
Y2ZhMWYxMDUyZjQwODEyOTM0MjVjOWFhYTA4M2JiYWU2ZjQxNDNjYS4uYTBjMzNlNGMwYWQ0ODAz
YmZjNmI1YzRlYTdmYjZlYzlkODY5YTk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXIuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAK
ICAgICBkb3VibGUga2V5VGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fa2V5VGltZTsgfQogICAgIGNv
bnN0IFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdGlt
aW5nRnVuY3Rpb24uZ2V0KCk7IH0KLSAgICB2aXJ0dWFsIFBhc3NPd25QdHI8QW5pbWF0aW9uVmFs
dWU+IGNsb25lKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPEFuaW1h
dGlvblZhbHVlPiBjbG9uZSgpIGNvbnN0ID0gMDsKIAogcHJvdGVjdGVkOgogICAgIEFuaW1hdGlv
blZhbHVlKGRvdWJsZSBrZXlUaW1lLCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24gPSBu
dWxscHRyKQpAQCAtODQsMjUgKzg0LDIwIEBAIHByaXZhdGU6CiAvLyBGSVhNRTogU2hvdWxkIGJl
IG1vdmVkIHRvIGl0cyBvd24gaGVhZGVyIGZpbGUuCiBjbGFzcyBGbG9hdEFuaW1hdGlvblZhbHVl
IDogcHVibGljIEFuaW1hdGlvblZhbHVlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0
cjxGbG9hdEFuaW1hdGlvblZhbHVlPiBjcmVhdGUoZG91YmxlIGtleVRpbWUsIGZsb2F0IHZhbHVl
LCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24gPSBudWxscHRyKQorICAgIEZsb2F0QW5p
bWF0aW9uVmFsdWUoZG91YmxlIGtleVRpbWUsIGZsb2F0IHZhbHVlLCBUaW1pbmdGdW5jdGlvbiog
dGltaW5nRnVuY3Rpb24gPSBudWxscHRyKQorICAgICAgICA6IEFuaW1hdGlvblZhbHVlKGtleVRp
bWUsIHRpbWluZ0Z1bmN0aW9uKQorICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEZsb2F0QW5pbWF0aW9uVmFsdWUoa2V5VGltZSwgdmFs
dWUsIHRpbWluZ0Z1bmN0aW9uKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBQYXNzT3duUHRyPEFu
aW1hdGlvblZhbHVlPiBjbG9uZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgdmlydHVhbCBzdGQ6OnVu
aXF1ZV9wdHI8QW5pbWF0aW9uVmFsdWU+IGNsb25lKCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgRmxvYXRBbmltYXRpb25WYWx1ZSgqdGhpcykpOwor
ICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxGbG9hdEFuaW1hdGlvblZhbHVlPigqdGhp
cyk7CiAgICAgfQogCiAgICAgZmxvYXQgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9
CiAKIHByaXZhdGU6Ci0gICAgRmxvYXRBbmltYXRpb25WYWx1ZShkb3VibGUga2V5VGltZSwgZmxv
YXQgdmFsdWUsIFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbikKLSAgICAgICAgOiBBbmlt
YXRpb25WYWx1ZShrZXlUaW1lLCB0aW1pbmdGdW5jdGlvbikKLSAgICAgICAgLCBtX3ZhbHVlKHZh
bHVlKQotICAgIHsKLSAgICB9Ci0KICAgICBmbG9hdCBtX3ZhbHVlOwogfTsKIApAQCAtMTEwLDI1
ICsxMDUsMjAgQEAgcHJpdmF0ZToKIC8vIEZJWE1FOiBTaG91bGQgYmUgbW92ZWQgdG8gaXRzIG93
biBoZWFkZXIgZmlsZS4KIGNsYXNzIFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlIDogcHVibGljIEFu
aW1hdGlvblZhbHVlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxUcmFuc2Zvcm1B
bmltYXRpb25WYWx1ZT4gY3JlYXRlKGRvdWJsZSBrZXlUaW1lLCBjb25zdCBUcmFuc2Zvcm1PcGVy
YXRpb25zJiB2YWx1ZSwgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gbnVsbHB0cikK
KyAgICBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZShkb3VibGUga2V5VGltZSwgY29uc3QgVHJhbnNm
b3JtT3BlcmF0aW9ucyYgdmFsdWUsIFRpbWluZ0Z1bmN0aW9uKiB0aW1pbmdGdW5jdGlvbiA9IG51
bGxwdHIpCisgICAgICAgIDogQW5pbWF0aW9uVmFsdWUoa2V5VGltZSwgdGltaW5nRnVuY3Rpb24p
CisgICAgICAgICwgbV92YWx1ZSh2YWx1ZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFB0
cihuZXcgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUoa2V5VGltZSwgdmFsdWUsIHRpbWluZ0Z1bmN0
aW9uKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBQYXNzT3duUHRyPEFuaW1hdGlvblZhbHVlPiBj
bG9uZSgpIGNvbnN0IG92ZXJyaWRlCisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8QW5pbWF0
aW9uVmFsdWU+IGNsb25lKCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgVHJhbnNmb3JtQW5pbWF0aW9uVmFsdWUoKnRoaXMpKTsKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8VHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU+KCp0aGlzKTsKICAg
ICB9CiAKICAgICBjb25zdCBUcmFuc2Zvcm1PcGVyYXRpb25zJiB2YWx1ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdmFsdWU7IH0KIAogcHJpdmF0ZToKLSAgICBUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZShk
b3VibGUga2V5VGltZSwgY29uc3QgVHJhbnNmb3JtT3BlcmF0aW9ucyYgdmFsdWUsIFRpbWluZ0Z1
bmN0aW9uKiB0aW1pbmdGdW5jdGlvbikKLSAgICAgICAgOiBBbmltYXRpb25WYWx1ZShrZXlUaW1l
LCB0aW1pbmdGdW5jdGlvbikKLSAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQotICAgIHsKLSAgICB9
Ci0KICAgICBUcmFuc2Zvcm1PcGVyYXRpb25zIG1fdmFsdWU7CiB9OwogCkBAIC0xMzYsMjUgKzEy
NiwyMCBAQCBwcml2YXRlOgogLy8gRklYTUU6IFNob3VsZCBiZSBtb3ZlZCB0byBpdHMgb3duIGhl
YWRlciBmaWxlLgogY2xhc3MgRmlsdGVyQW5pbWF0aW9uVmFsdWUgOiBwdWJsaWMgQW5pbWF0aW9u
VmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEZpbHRlckFuaW1hdGlvblZh
bHVlPiBjcmVhdGUoZG91YmxlIGtleVRpbWUsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIHZhbHVl
LCBUaW1pbmdGdW5jdGlvbiogdGltaW5nRnVuY3Rpb24gPSBudWxscHRyKQorICAgIEZpbHRlckFu
aW1hdGlvblZhbHVlKGRvdWJsZSBrZXlUaW1lLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiB2YWx1
ZSwgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uID0gbnVsbHB0cikKKyAgICAgICAgOiBB
bmltYXRpb25WYWx1ZShrZXlUaW1lLCB0aW1pbmdGdW5jdGlvbikKKyAgICAgICAgLCBtX3ZhbHVl
KHZhbHVlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBGaWx0ZXJBbmltYXRp
b25WYWx1ZShrZXlUaW1lLCB2YWx1ZSwgdGltaW5nRnVuY3Rpb24pKTsKICAgICB9CiAKLSAgICB2
aXJ0dWFsIFBhc3NPd25QdHI8QW5pbWF0aW9uVmFsdWU+IGNsb25lKCkgY29uc3Qgb3ZlcnJpZGUK
KyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxBbmltYXRpb25WYWx1ZT4gY2xvbmUoKSBjb25z
dCBvdmVycmlkZQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBGaWx0ZXJBbmlt
YXRpb25WYWx1ZSgqdGhpcykpOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxGaWx0
ZXJBbmltYXRpb25WYWx1ZT4oKnRoaXMpOwogICAgIH0KIAogICAgIGNvbnN0IEZpbHRlck9wZXJh
dGlvbnMmIHZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV92YWx1ZTsgfQogCiBwcml2YXRlOgotICAg
IEZpbHRlckFuaW1hdGlvblZhbHVlKGRvdWJsZSBrZXlUaW1lLCBjb25zdCBGaWx0ZXJPcGVyYXRp
b25zJiB2YWx1ZSwgVGltaW5nRnVuY3Rpb24qIHRpbWluZ0Z1bmN0aW9uKQotICAgICAgICA6IEFu
aW1hdGlvblZhbHVlKGtleVRpbWUsIHRpbWluZ0Z1bmN0aW9uKQotICAgICAgICAsIG1fdmFsdWUo
dmFsdWUpCi0gICAgewotICAgIH0KLQogICAgIEZpbHRlck9wZXJhdGlvbnMgbV92YWx1ZTsKIH07
CiAKQEAgLTE5OCwxMCArMTgzLDEwIEBAIHB1YmxpYzoKICAgICBjb25zdCBBbmltYXRpb25WYWx1
ZSYgYXQoc2l6ZV90IGkpIGNvbnN0IHsgcmV0dXJuICptX3ZhbHVlcy5hdChpKTsgfQogICAgIAog
ICAgIC8vIEluc2VydCwgc29ydGVkIGJ5IGtleVRpbWUuCi0gICAgdm9pZCBpbnNlcnQoUGFzc093
blB0cjxjb25zdCBBbmltYXRpb25WYWx1ZT4pOworICAgIHZvaWQgaW5zZXJ0KHN0ZDo6dW5pcXVl
X3B0cjxjb25zdCBBbmltYXRpb25WYWx1ZT4pOwogICAgIAogcHJvdGVjdGVkOgotICAgIFZlY3Rv
cjxPd25QdHI8Y29uc3QgQW5pbWF0aW9uVmFsdWU+PiBtX3ZhbHVlczsKKyAgICBWZWN0b3I8c3Rk
Ojp1bmlxdWVfcHRyPGNvbnN0IEFuaW1hdGlvblZhbHVlPj4gbV92YWx1ZXM7CiAgICAgQW5pbWF0
ZWRQcm9wZXJ0eUlEIG1fcHJvcGVydHk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IGYzYWYzYzlhNDk5MWIwOGYwN2M4OWIy
NTk0MTViM2I1NTEyZjkyN2EuLmE0NDdkOWU1MGYyMWI5ZmNmN2E2NDQwNjU4NTZiN2ZhMmMyNGZi
M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCkBAIC0yMzY2LDEzICsyMzY2LDEzIEBAIGJvb2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFy
dEFuaW1hdGlvbihkb3VibGUgdGltZU9mZnNldCwgY29uc3QgQW5pbWF0aW9uKiBhbmltCiAgICAg
ICAgIAogICAgICAgICBib29sIGlzRmlyc3RPckxhc3RLZXlmcmFtZSA9IGtleSA9PSAwIHx8IGtl
eSA9PSAxOwogICAgICAgICBpZiAoKGhhc1RyYW5zZm9ybSAmJiBpc0ZpcnN0T3JMYXN0S2V5ZnJh
bWUpIHx8IGN1cnJlbnRLZXlmcmFtZS5jb250YWluc1Byb3BlcnR5KENTU1Byb3BlcnR5V2Via2l0
VHJhbnNmb3JtKSkKLSAgICAgICAgICAgIHRyYW5zZm9ybVZlY3Rvci5pbnNlcnQoVHJhbnNmb3Jt
QW5pbWF0aW9uVmFsdWU6OmNyZWF0ZShrZXksIGtleWZyYW1lU3R5bGUtPnRyYW5zZm9ybSgpLCB0
ZikpOworICAgICAgICAgICAgdHJhbnNmb3JtVmVjdG9yLmluc2VydChzdGQ6Om1ha2VfdW5pcXVl
PFRyYW5zZm9ybUFuaW1hdGlvblZhbHVlPihrZXksIGtleWZyYW1lU3R5bGUtPnRyYW5zZm9ybSgp
LCB0ZikpOwogCiAgICAgICAgIGlmICgoaGFzT3BhY2l0eSAmJiBpc0ZpcnN0T3JMYXN0S2V5ZnJh
bWUpIHx8IGN1cnJlbnRLZXlmcmFtZS5jb250YWluc1Byb3BlcnR5KENTU1Byb3BlcnR5T3BhY2l0
eSkpCi0gICAgICAgICAgICBvcGFjaXR5VmVjdG9yLmluc2VydChGbG9hdEFuaW1hdGlvblZhbHVl
OjpjcmVhdGUoa2V5LCBrZXlmcmFtZVN0eWxlLT5vcGFjaXR5KCksIHRmKSk7CisgICAgICAgICAg
ICBvcGFjaXR5VmVjdG9yLmluc2VydChzdGQ6Om1ha2VfdW5pcXVlPEZsb2F0QW5pbWF0aW9uVmFs
dWU+KGtleSwga2V5ZnJhbWVTdHlsZS0+b3BhY2l0eSgpLCB0ZikpOwogCiAgICAgICAgIGlmICgo
aGFzRmlsdGVyICYmIGlzRmlyc3RPckxhc3RLZXlmcmFtZSkgfHwgY3VycmVudEtleWZyYW1lLmNv
bnRhaW5zUHJvcGVydHkoQ1NTUHJvcGVydHlXZWJraXRGaWx0ZXIpKQotICAgICAgICAgICAgZmls
dGVyVmVjdG9yLmluc2VydChGaWx0ZXJBbmltYXRpb25WYWx1ZTo6Y3JlYXRlKGtleSwga2V5ZnJh
bWVTdHlsZS0+ZmlsdGVyKCksIHRmKSk7CisgICAgICAgICAgICBmaWx0ZXJWZWN0b3IuaW5zZXJ0
KHN0ZDo6bWFrZV91bmlxdWU8RmlsdGVyQW5pbWF0aW9uVmFsdWU+KGtleSwga2V5ZnJhbWVTdHls
ZS0+ZmlsdGVyKCksIHRmKSk7CiAgICAgfQogCiAgICAgaWYgKHJlbmRlcmVyKCkuZnJhbWUoKS5w
YWdlKCkgJiYgIXJlbmRlcmVyKCkuZnJhbWUoKS5wYWdlKCktPnNldHRpbmdzKCkuYWNjZWxlcmF0
ZWRDb21wb3NpdGVkQW5pbWF0aW9uc0VuYWJsZWQoKSkKQEAgLTI0MTIsOCArMjQxMiw4IEBAIGJv
b2wgUmVuZGVyTGF5ZXJCYWNraW5nOjpzdGFydFRyYW5zaXRpb24oZG91YmxlIHRpbWVPZmZzZXQs
IENTU1Byb3BlcnR5SUQgcHJvcGVyCiAgICAgICAgIGNvbnN0IEFuaW1hdGlvbiogb3BhY2l0eUFu
aW0gPSB0b1N0eWxlLT50cmFuc2l0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlPcGFjaXR5KTsK
ICAgICAgICAgaWYgKG9wYWNpdHlBbmltICYmICFvcGFjaXR5QW5pbS0+aXNFbXB0eU9yWmVyb0R1
cmF0aW9uKCkpIHsKICAgICAgICAgICAgIEtleWZyYW1lVmFsdWVMaXN0IG9wYWNpdHlWZWN0b3Io
QW5pbWF0ZWRQcm9wZXJ0eU9wYWNpdHkpOwotICAgICAgICAgICAgb3BhY2l0eVZlY3Rvci5pbnNl
cnQoRmxvYXRBbmltYXRpb25WYWx1ZTo6Y3JlYXRlKDAsIGNvbXBvc2l0aW5nT3BhY2l0eShmcm9t
U3R5bGUtPm9wYWNpdHkoKSkpKTsKLSAgICAgICAgICAgIG9wYWNpdHlWZWN0b3IuaW5zZXJ0KEZs
b2F0QW5pbWF0aW9uVmFsdWU6OmNyZWF0ZSgxLCBjb21wb3NpdGluZ09wYWNpdHkodG9TdHlsZS0+
b3BhY2l0eSgpKSkpOworICAgICAgICAgICAgb3BhY2l0eVZlY3Rvci5pbnNlcnQoc3RkOjptYWtl
X3VuaXF1ZTxGbG9hdEFuaW1hdGlvblZhbHVlPigwLCBjb21wb3NpdGluZ09wYWNpdHkoZnJvbVN0
eWxlLT5vcGFjaXR5KCkpKSk7CisgICAgICAgICAgICBvcGFjaXR5VmVjdG9yLmluc2VydChzdGQ6
Om1ha2VfdW5pcXVlPEZsb2F0QW5pbWF0aW9uVmFsdWU+KDEsIGNvbXBvc2l0aW5nT3BhY2l0eSh0
b1N0eWxlLT5vcGFjaXR5KCkpKSk7CiAgICAgICAgICAgICAvLyBUaGUgYm94U2l6ZSBwYXJhbSBp
cyBvbmx5IHVzZWQgZm9yIHRyYW5zZm9ybSBhbmltYXRpb25zICh3aGljaCBjYW4gb25seSBydW4g
b24gUmVuZGVyQm94ZXMpLCBzbyB3ZSBwYXNzIGFuIGVtcHR5IHNpemUgaGVyZS4KICAgICAgICAg
ICAgIGlmIChtX2dyYXBoaWNzTGF5ZXItPmFkZEFuaW1hdGlvbihvcGFjaXR5VmVjdG9yLCBGbG9h
dFNpemUoKSwgb3BhY2l0eUFuaW0sIEdyYXBoaWNzTGF5ZXI6OmFuaW1hdGlvbk5hbWVGb3JUcmFu
c2l0aW9uKEFuaW1hdGVkUHJvcGVydHlPcGFjaXR5KSwgdGltZU9mZnNldCkpIHsKICAgICAgICAg
ICAgICAgICAvLyBUbyBlbnN1cmUgdGhhdCB0aGUgY29ycmVjdCBvcGFjaXR5IGlzIHZpc2libGUg
d2hlbiB0aGUgYW5pbWF0aW9uIGVuZHMsIGFsc28gc2V0IHRoZSBmaW5hbCBvcGFjaXR5LgpAQCAt
MjQyNyw4ICsyNDI3LDggQEAgYm9vbCBSZW5kZXJMYXllckJhY2tpbmc6OnN0YXJ0VHJhbnNpdGlv
bihkb3VibGUgdGltZU9mZnNldCwgQ1NTUHJvcGVydHlJRCBwcm9wZXIKICAgICAgICAgY29uc3Qg
QW5pbWF0aW9uKiB0cmFuc2Zvcm1BbmltID0gdG9TdHlsZS0+dHJhbnNpdGlvbkZvclByb3BlcnR5
KENTU1Byb3BlcnR5V2Via2l0VHJhbnNmb3JtKTsKICAgICAgICAgaWYgKHRyYW5zZm9ybUFuaW0g
JiYgIXRyYW5zZm9ybUFuaW0tPmlzRW1wdHlPclplcm9EdXJhdGlvbigpKSB7CiAgICAgICAgICAg
ICBLZXlmcmFtZVZhbHVlTGlzdCB0cmFuc2Zvcm1WZWN0b3IoQW5pbWF0ZWRQcm9wZXJ0eVdlYmtp
dFRyYW5zZm9ybSk7Ci0gICAgICAgICAgICB0cmFuc2Zvcm1WZWN0b3IuaW5zZXJ0KFRyYW5zZm9y
bUFuaW1hdGlvblZhbHVlOjpjcmVhdGUoMCwgZnJvbVN0eWxlLT50cmFuc2Zvcm0oKSkpOwotICAg
ICAgICAgICAgdHJhbnNmb3JtVmVjdG9yLmluc2VydChUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZTo6
Y3JlYXRlKDEsIHRvU3R5bGUtPnRyYW5zZm9ybSgpKSk7CisgICAgICAgICAgICB0cmFuc2Zvcm1W
ZWN0b3IuaW5zZXJ0KHN0ZDo6bWFrZV91bmlxdWU8VHJhbnNmb3JtQW5pbWF0aW9uVmFsdWU+KDAs
IGZyb21TdHlsZS0+dHJhbnNmb3JtKCkpKTsKKyAgICAgICAgICAgIHRyYW5zZm9ybVZlY3Rvci5p
bnNlcnQoc3RkOjptYWtlX3VuaXF1ZTxUcmFuc2Zvcm1BbmltYXRpb25WYWx1ZT4oMSwgdG9TdHls
ZS0+dHJhbnNmb3JtKCkpKTsKICAgICAgICAgICAgIGlmIChtX2dyYXBoaWNzTGF5ZXItPmFkZEFu
aW1hdGlvbih0cmFuc2Zvcm1WZWN0b3IsIGRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIoKSku
cGl4ZWxTbmFwcGVkQm9yZGVyQm94UmVjdCgpLnNpemUoKSwgdHJhbnNmb3JtQW5pbSwgR3JhcGhp
Y3NMYXllcjo6YW5pbWF0aW9uTmFtZUZvclRyYW5zaXRpb24oQW5pbWF0ZWRQcm9wZXJ0eVdlYmtp
dFRyYW5zZm9ybSksIHRpbWVPZmZzZXQpKSB7CiAgICAgICAgICAgICAgICAgLy8gVG8gZW5zdXJl
IHRoYXQgdGhlIGNvcnJlY3QgdHJhbnNmb3JtIGlzIHZpc2libGUgd2hlbiB0aGUgYW5pbWF0aW9u
IGVuZHMsIGFsc28gc2V0IHRoZSBmaW5hbCB0cmFuc2Zvcm0uCiAgICAgICAgICAgICAgICAgdXBk
YXRlVHJhbnNmb3JtKCp0b1N0eWxlKTsKQEAgLTI0NDEsOCArMjQ0MSw4IEBAIGJvb2wgUmVuZGVy
TGF5ZXJCYWNraW5nOjpzdGFydFRyYW5zaXRpb24oZG91YmxlIHRpbWVPZmZzZXQsIENTU1Byb3Bl
cnR5SUQgcHJvcGVyCiAgICAgICAgIGNvbnN0IEFuaW1hdGlvbiogZmlsdGVyQW5pbSA9IHRvU3R5
bGUtPnRyYW5zaXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eVdlYmtpdEZpbHRlcik7CiAgICAg
ICAgIGlmIChmaWx0ZXJBbmltICYmICFmaWx0ZXJBbmltLT5pc0VtcHR5T3JaZXJvRHVyYXRpb24o
KSkgewogICAgICAgICAgICAgS2V5ZnJhbWVWYWx1ZUxpc3QgZmlsdGVyVmVjdG9yKEFuaW1hdGVk
UHJvcGVydHlXZWJraXRGaWx0ZXIpOwotICAgICAgICAgICAgZmlsdGVyVmVjdG9yLmluc2VydChG
aWx0ZXJBbmltYXRpb25WYWx1ZTo6Y3JlYXRlKDAsIGZyb21TdHlsZS0+ZmlsdGVyKCkpKTsKLSAg
ICAgICAgICAgIGZpbHRlclZlY3Rvci5pbnNlcnQoRmlsdGVyQW5pbWF0aW9uVmFsdWU6OmNyZWF0
ZSgxLCB0b1N0eWxlLT5maWx0ZXIoKSkpOworICAgICAgICAgICAgZmlsdGVyVmVjdG9yLmluc2Vy
dChzdGQ6Om1ha2VfdW5pcXVlPEZpbHRlckFuaW1hdGlvblZhbHVlPigwLCBmcm9tU3R5bGUtPmZp
bHRlcigpKSk7CisgICAgICAgICAgICBmaWx0ZXJWZWN0b3IuaW5zZXJ0KHN0ZDo6bWFrZV91bmlx
dWU8RmlsdGVyQW5pbWF0aW9uVmFsdWU+KDEsIHRvU3R5bGUtPmZpbHRlcigpKSk7CiAgICAgICAg
ICAgICBpZiAobV9ncmFwaGljc0xheWVyLT5hZGRBbmltYXRpb24oZmlsdGVyVmVjdG9yLCBGbG9h
dFNpemUoKSwgZmlsdGVyQW5pbSwgR3JhcGhpY3NMYXllcjo6YW5pbWF0aW9uTmFtZUZvclRyYW5z
aXRpb24oQW5pbWF0ZWRQcm9wZXJ0eVdlYmtpdEZpbHRlciksIHRpbWVPZmZzZXQpKSB7CiAgICAg
ICAgICAgICAgICAgLy8gVG8gZW5zdXJlIHRoYXQgdGhlIGNvcnJlY3QgZmlsdGVyIGlzIHZpc2li
bGUgd2hlbiB0aGUgYW5pbWF0aW9uIGVuZHMsIGFsc28gc2V0IHRoZSBmaW5hbCBmaWx0ZXIuCiAg
ICAgICAgICAgICAgICAgdXBkYXRlRmlsdGVycygqdG9TdHlsZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNz
QXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0FyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBjZjZlNGE3
YmFlM2ViMjllZGI2NTgxM2U2MDI3NGViN2Q0OWUyYTJmLi40MDVkMzE1NTQwZDBiZGRjYjI3OGY5
MTRlM2EwYjk0ZGRlZWMyZTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzQXJndW1lbnRDb2RlcnMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3NBcmd1bWVudENvZGVycy5jcHAKQEAgLTUyNCwyMSArNTI0LDIxIEBAIGJvb2wgQXJn
dW1lbnRDb2RlcjxHcmFwaGljc0xheWVyQW5pbWF0aW9uPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciYgZGVjb2RlciwgR3JhCiAgICAgICAgICAgICBmbG9hdCB2YWx1ZTsKICAgICAgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUodmFsdWUpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgICAgIGtleWZyYW1lcy5pbnNlcnQoRmxvYXRBbmltYXRpb25WYWx1ZTo6Y3JlYXRl
KGtleVRpbWUsIHZhbHVlLCB0aW1pbmdGdW5jdGlvbi5nZXQoKSkpOworICAgICAgICAgICAga2V5
ZnJhbWVzLmluc2VydChzdGQ6Om1ha2VfdW5pcXVlPEZsb2F0QW5pbWF0aW9uVmFsdWU+KGtleVRp
bWUsIHZhbHVlLCB0aW1pbmdGdW5jdGlvbi5nZXQoKSkpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KICAgICAgICAgY2FzZSBBbmltYXRlZFByb3BlcnR5V2Via2l0VHJhbnNmb3JtOiB7
CiAgICAgICAgICAgICBUcmFuc2Zvcm1PcGVyYXRpb25zIHRyYW5zZm9ybTsKICAgICAgICAgICAg
IGlmICghZGVjb2Rlci5kZWNvZGUodHJhbnNmb3JtKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgICAgICBrZXlmcmFtZXMuaW5zZXJ0KFRyYW5zZm9ybUFuaW1hdGlvblZh
bHVlOjpjcmVhdGUoa2V5VGltZSwgdHJhbnNmb3JtLCB0aW1pbmdGdW5jdGlvbi5nZXQoKSkpOwor
ICAgICAgICAgICAga2V5ZnJhbWVzLmluc2VydChzdGQ6Om1ha2VfdW5pcXVlPFRyYW5zZm9ybUFu
aW1hdGlvblZhbHVlPihrZXlUaW1lLCB0cmFuc2Zvcm0sIHRpbWluZ0Z1bmN0aW9uLmdldCgpKSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgICAgICBjYXNlIEFuaW1hdGVkUHJv
cGVydHlXZWJraXRGaWx0ZXI6IHsKICAgICAgICAgICAgIEZpbHRlck9wZXJhdGlvbnMgZmlsdGVy
OwogICAgICAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShmaWx0ZXIpKQogICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIGtleWZyYW1lcy5pbnNlcnQoRmlsdGVyQW5p
bWF0aW9uVmFsdWU6OmNyZWF0ZShrZXlUaW1lLCBmaWx0ZXIsIHRpbWluZ0Z1bmN0aW9uLmdldCgp
KSk7CisgICAgICAgICAgICBrZXlmcmFtZXMuaW5zZXJ0KHN0ZDo6bWFrZV91bmlxdWU8RmlsdGVy
QW5pbWF0aW9uVmFsdWU+KGtleVRpbWUsIGZpbHRlciwgdGltaW5nRnVuY3Rpb24uZ2V0KCkpKTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGRlZmF1bHQ6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3Rv
ckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Ykluc3BlY3RvckNsaWVudC5jcHAKaW5kZXggMDQzOGZjYjE4NDFmZTFiNmFlMzIwNDQyZDgwZTg4
MDAyYWQ4YjI4Yy4uNTExNmVhMDc3NWUxOTkzZmZlMGM4ODZjNGY1NDljYjZhOWIyNmYzYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNw
ZWN0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcApAQCAtMTU2LDExICsxNTYsOSBAQCB2b2lkIFdl
Ykluc3BlY3RvckNsaWVudDo6c2hvd1BhaW50UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiAg
ICAgcGFpbnRMYXllci0+c2V0QmFja2dyb3VuZENvbG9yKENvbG9yKDEuMGYsIDAuMGYsIDAuMGYs
IDAuMmYpKTsKIAogICAgIEtleWZyYW1lVmFsdWVMaXN0IGZhZGVLZXlmcmFtZXMoQW5pbWF0ZWRQ
cm9wZXJ0eU9wYWNpdHkpOwotICAgIE93blB0cjxBbmltYXRpb25WYWx1ZT4gaW50aWFsVmFsdWUg
PSBGbG9hdEFuaW1hdGlvblZhbHVlOjpjcmVhdGUoMCwgMSk7Ci0gICAgZmFkZUtleWZyYW1lcy5p
bnNlcnQoaW50aWFsVmFsdWUucmVsZWFzZSgpKTsKKyAgICBmYWRlS2V5ZnJhbWVzLmluc2VydChz
dGQ6Om1ha2VfdW5pcXVlPEZsb2F0QW5pbWF0aW9uVmFsdWU+KDAsIDEpKTsKIAotICAgIE93blB0
cjxBbmltYXRpb25WYWx1ZT4gZmluYWxWYWx1ZSA9IEZsb2F0QW5pbWF0aW9uVmFsdWU6OmNyZWF0
ZSgwLjI1LCAwKTsKLSAgICBmYWRlS2V5ZnJhbWVzLmluc2VydChmaW5hbFZhbHVlLnJlbGVhc2Uo
KSk7CisgICAgZmFkZUtleWZyYW1lcy5pbnNlcnQoc3RkOjptYWtlX3VuaXF1ZTxGbG9hdEFuaW1h
dGlvblZhbHVlPigwLjI1LCAwKSk7CiAgICAgCiAgICAgUmVmUHRyPEFuaW1hdGlvbj4gb3BhY2l0
eUFuaW1hdGlvbiA9IEFuaW1hdGlvbjo6Y3JlYXRlKCk7CiAgICAgb3BhY2l0eUFuaW1hdGlvbi0+
c2V0RHVyYXRpb24oMC4yNSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>