<?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>85627</bug_id>
          
          <creation_ts>2012-05-04 08:13:49 -0700</creation_ts>
          <short_desc>Tie lifetime of SVGAnimateElement::m_animatedType to the duration of the animation</short_desc>
          <delta_ts>2012-05-08 12:43:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</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>
          
          <blocked>41761</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nikolas Zimmermann">zimmermann</reporter>
          <assigned_to name="Nikolas Zimmermann">zimmermann</assigned_to>
          <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>616237</commentid>
    <comment_count>0</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-04 08:13:49 -0700</bug_when>
    <thetext>Tie lifetime of SVGAnimateElement::m_animatedType to the duration of the animation.
For non-frozen animations, we still keep the animVal around and just reset it to the base val.
For CSS property animations we never remove a property if we animated it via SMIL, but only change it back to the base value.

This makes integration with CSS Animations/Transitions hard, and needs to be changed both for CSS &amp; XML animations.
Unfortunately that requires a precise knowledge of which animation is contributing to an animated value at any point in time. Patch upcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>616242</commentid>
    <comment_count>1</comment_count>
      <attachid>140236</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-04 08:20:01 -0700</bug_when>
    <thetext>Created attachment 140236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618675</commentid>
    <comment_count>2</comment_count>
      <attachid>140236</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-05-08 11:53:18 -0700</bug_when>
    <thetext>Comment on attachment 140236
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618723</commentid>
    <comment_count>3</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-05-08 12:43:43 -0700</bug_when>
    <thetext>Committed r116451: &lt;http://trac.webkit.org/changeset/116451&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140236</attachid>
            <date>2012-05-04 08:20:01 -0700</date>
            <delta_ts>2012-05-08 11:53:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85627-20120504172021.patch</filename>
            <type>text/plain</type>
            <size>39110</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2MTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjcyZDg3NWEyOGM1NjFi
YzY4NzRiZjIxZTZkYTJjNDA0MDU5NGZiNi4uNGJmNjRjOTZlMmYzNzc0MDFlMWM4MjMxOGUyZjk3
NDc5MTdkOGM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDEyLTA1LTA0ICBOaWtv
bGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgorCisgICAgICAgIFRpZSBsaWZl
dGltZSBvZiBTVkdBbmltYXRlRWxlbWVudDo6bV9hbmltYXRlZFR5cGUgdG8gdGhlIGR1cmF0aW9u
IG9mIHRoZSBhbmltYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg1NjI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRXhhbXBsZToKKyAgICAgICAgPHJlY3Qgd2lkdGg9IjEwIiBoZWlnaHQ9IjEwMCI+
CisgICAgICAgICAgICA8YW5pbWF0ZSBhdHRyaWJ1dGVOYW1lPSJ3aWR0aCIgZnJvbT0iMTAiIHRv
PSIxMDAiIGJlZ2luPSIycyIgZHVyPSI0cyIgZmlsbD0icmVtb3ZlIi8+CisgICAgICAgIDwvcmVj
dD4KKworICAgICAgICBBdCB0PTBzIHRoZSA8YW5pbWF0ZT4gZWxlbWVudCByZWNlaXZlcyBpdHMg
Zmlyc3QgaW50ZXJ2YWw6IGJlZ2luPTJzLCBlbmQ9NnMuCisgICAgICAgIEF0IHRoaXMgcG9pbnQg
d2UndmUgY3JlYXRlZCB0aGUgJ093blB0cjxTVkdBbmltYXRlZFR5cGU+IG1fYW5pbWF0ZWRUeXBl
JyBpbgorICAgICAgICBTVkdBbmltYXRlRWxlbWVudCwgd2hpY2ggaG9sZHMgdGhlIGN1cnJlbnQg
YW5pbWF0ZWQgdmFsdWUgb2YgdGhlIHRhcmdldCB0eXBlLgorICAgICAgICBJbiB0aGlzIGV4YW1w
bGUgaXQgY29udGFpbnMgYSBTVkdMZW5ndGggd2l0aCAnMTAnIGFzIHZhbHVlIGF0IHQ9MHMuCisK
KyAgICAgICAgQ2FsbGluZyAicmVjdC53aWR0aC5hbmltVmFsLnZhbHVlIiB3aWxsIHJldHVybiB0
aGUgdmFsdWUgY3VycmVudGx5IGNvbnRhaW5lZCBpbiB0aGUKKyAgICAgICAgbV9hbmltYXRlZFR5
cGUgZnJvbSB0aGUgU1ZHQW5pbWF0ZUVsZW1lbnQsIGV2ZW4gdGhvdWdoIHRoZSBhbmltYXRpb24g
ZGlkbid0IGJlZ2luCisgICAgICAgIHlldC4gVGhpcyBpcyBmaW5lLCBhcyB0aGUgYW5pbVZhbCBl
cXVhbHMgdG8gdGhlIGJhc2VWYWwsIGFzIGxvbmcgYXMgbm8gYW5pbWF0aW9uIGlzCisgICAgICAg
IHJ1bm5pbmcuCisKKyAgICAgICAgQXQgdD02cyB5b3UnZCBleHBlY3QgdGhhdCB0aGUgd2hvbGUg
J2FuaW1WYWwnIG9iamVjdCBpcyBkZXN0cnVjdGVkIGFnYWluLCBhcyBpdCdzIG5vCisgICAgICAg
IGxvbmdlciBuZWVkZWQsIGFzIGFuaW1WYWwgd2lsbCBiZSBlcXVhbCB0byBiYXNlVmFsIGFnYWlu
LCBidXQgdGhlIGN1cnJlbnQgY29kZSBrZWVwcworICAgICAgICB0aGUgYW5pbVZhbCBhbGl2ZSwg
YW5kIGp1c3QgcmVzZXRzIGl0IHRvIHRoZSBiYXNlVmFsLiBUaGUgYW5pbVZhbHMgd2lsbCBiZSBk
ZXN0cnVjdGVkCisgICAgICAgIG9uY2UgdGhlIGFuaW1hdGUgZWxlbWVudCBsZWF2ZXMgdGhlIHRy
ZWUuCisKKyAgICAgICAgQ1NTIGFuaW1hdGlvbnMgc3VmZmVyIGZyb20gdGhlIHNhbWUgcHJvYmxl
bSwgd2UgbmV2ZXIgcmVtb3ZlIHRoZSBhbmltYXRlZCBTTUlMIHByb3BlcnRpZXMKKyAgICAgICAg
YnV0IHdlIG9ubHkgcmVzZXQgdGhlbSB0byB0aGUgYmFzZSB2YWx1ZS4gVGhpcyBtYWtlcyBpbnRl
Z3JhdGlvbiB3aXRoIENTUyBBbmltYXRpb25zIGFuZAorICAgICAgICBDU1MgVHJhbnNpdGlvbnMg
aGFyZGVyLCBzbyB0aGlzIG5lZWRzIHRvIGJlIGNoYW5nZWQuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBzdGFydHMgdHJhY2tpbmcgdGhlIHN0YXJ0L2VuZCBvZiBhbiBhbmltYXRpb24gY2hhaW4gcHJv
cGVybHksIHRvIGRlc3RydWN0CisgICAgICAgIHRoZSBhbmltYXRpb24gZWZmZWN0IGZvciBub24t
ZnJvemVuIGFuaW1hdGlvbnMgYXQgdGhlIGVuZCBvZiB0aGVpciBkdXJhdGlvbi4gVGhpcyBoYXMg
dG8KKyAgICAgICAgd29yayBwcm9wZXJseSB0b2dldGhlciB3aXRoIHNlZWtpbmcgKFNWR1NWR0Vs
ZW1lbnQuc2V0Q3VycmVudFRpbWUpLCBhcyBvdXIgdGVzdGluZyByZWxpZXMKKyAgICAgICAgb24g
dGhlIGFiaWxpdHkgdG8gZHJpdmUgdGhlIFNNSUwgdGltZWxpbmUgZnJvbSBzY3JpcHQuCisKKyAg
ICAgICAgVGVzdHM6IHN2Zy9hbmltYXRpb25zL2xpc3Qtd3JhcHBlci1hc3NlcnRpb24tZXhwZWN0
ZWQuc3ZnCisgICAgICAgICAgICAgICBzdmcvYW5pbWF0aW9ucy9saXN0LXdyYXBwZXItYXNzZXJ0
aW9uLnN2ZworCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGVFbGVtZW50OjpyZXNldEFuaW1hdGVkVHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjphcHBseUNTU1Byb3BlcnR5VG9UYXJnZXQpOgorICAgICAgICAoV2ViQ29yZTo6
cmVtb3ZlQ1NTUHJvcGVydHlGcm9tVGFyZ2V0KToKKyAgICAgICAgKFdlYkNvcmU6OmFwcGx5Q1NT
UHJvcGVydHlUb1RhcmdldEFuZEluc3RhbmNlcyk6CisgICAgICAgIChXZWJDb3JlOjpyZW1vdmVD
U1NQcm9wZXJ0eUZyb21UYXJnZXRBbmRJbnN0YW5jZXMpOgorICAgICAgICAoV2ViQ29yZTo6bm90
aWZ5VGFyZ2V0QWJvdXRBbmltVmFsQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6Om5vdGlmeVRh
cmdldEFuZEluc3RhbmNlc0Fib3V0QW5pbVZhbENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdBbmltYXRlRWxlbWVudDo6Y2xlYXJBbmltYXRlZFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZUVsZW1lbnQ6OmFwcGx5UmVzdWx0c1RvVGFyZ2V0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVFbGVtZW50Ojp0YXJnZXRFbGVtZW50V2lsbENoYW5nZSk6CisgICAgICAg
ICogc3ZnL1NWR0FuaW1hdGVFbGVtZW50Lmg6CisgICAgICAgIChTVkdBbmltYXRlRWxlbWVudCk6
CisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpyZXNldEFuaW1hdGVkVHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6Y2xlYXJBbmltYXRlZFR5cGUp
OgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5oOgorICAgICAgICAoU1ZH
QW5pbWF0ZU1vdGlvbkVsZW1lbnQpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50
LmNwcDoKKyAgICAgICAgKiBzdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oOgorICAgICAgICAqIHN2
Zy9hbmltYXRpb24vU01JTFRpbWVDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U01J
TFRpbWVDb250YWluZXI6OnVwZGF0ZUFuaW1hdGlvbnMpOgorICAgICAgICAqIHN2Zy9hbmltYXRp
b24vU1ZHU01JTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6
OnJlc2V0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NNSUxFbGVtZW50Ojp0YXJnZXRFbGVtZW50
V2lsbENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdTTUlMRWxlbWVudDo6ZGV0ZXJtaW5l
QWN0aXZlU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6OnByb2dyZXNz
KToKKyAgICAgICAgKiBzdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50Lmg6CisgICAgICAgIChT
VkdTTUlMRWxlbWVudCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0
UHJvcGVydHlUZWFyT2ZmLmg6CisgICAgICAgICAgICBSZW1vdmUgc3ZnQXR0cmlidXRlQ2hhbmdl
ZCgpIGNhbGxzIGZyb20gYW5pbWF0aW9uRW5kZWQvYW5pbVZhbERpZENoYW5nZS4KKyAgICAgICAg
ICAgIENhbGxlcnMgYXJlIG5vdyByZXF1aXJlZCB0byBub3RpZnkgdGhlIHRhcmdldCBhYm91dCBj
aGFuZ2VzLiBUaGVyZSBhcmUgY2FzZXMKKyAgICAgICAgICAgIHdoZXJlIHdlIHdhbnQgdG8gY2Fs
bCBhbmltVmFsRGlkQ2hhbmdlIHdpdGhvdXQgaW52b2tpbmcgc3ZnQXR0cmlidXRlQ2hhbmdlZCgp
LgorICAgICAgICAgICAgVGhhdCBpcyBzdXBwb3J0ZWQgbm93LgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmOjphbmltYXRpb25FbmRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmY6OmFuaW1WYWxEaWRDaGFu
Z2UpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaDogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojpjb21taXRDaGFuZ2Up
OiBBZGQgc2FmZXR5IGd1YXJkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVk
UHJvcGVydHlUZWFyT2ZmLmg6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQ
cm9wZXJ0eVRlYXJPZmY6OmFuaW1hdGlvbkVuZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkUHJvcGVydHlUZWFyT2ZmOjphbmltVmFsRGlkQ2hhbmdlKToKKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5oOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmOjphbmltYXRp
b25FbmRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVh
ck9mZjo6YW5pbVZhbERpZENoYW5nZSk6CisKIDIwMTItMDUtMDQgIElseWEgVGlraG9ub3Zza3kg
IDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtjaHJvbWl1
bV0gU2NyaXB0R0NFdmVudCBzaG91bGQgbm90IGJlIHN0YXRpYy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZUVsZW1lbnQuY3BwCmluZGV4IDFhMzI1MGU0ZTNjNWZlNWFhMDE5NzBiZmNhZDM3
NDNlOTg3YThiY2UuLjM0ZGQ5YmNmMThhOTlkODVlYTU5MjU0Y2M3ZTRjNDZkMmM2MTUyM2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVFbGVtZW50LmNwcApAQCAtMTk2LDcgKzE5Niw3
IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBwcm9wZXJ0eVR5cGVzQXJlQ29uc2lzdGVudChBbmltYXRl
ZFByb3BlcnR5VHlwZSBleHBlY3RlZFByb3BlCiB9CiAjZW5kaWYKIAotdm9pZCBTVkdBbmltYXRl
RWxlbWVudDo6cmVzZXRUb0Jhc2VWYWx1ZSgpCit2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpyZXNl
dEFuaW1hdGVkVHlwZSgpCiB7CiAgICAgU1ZHQW5pbWF0ZWRUeXBlQW5pbWF0b3IqIGFuaW1hdG9y
ID0gZW5zdXJlQW5pbWF0b3IoKTsKICAgICBBU1NFUlQobV9hbmltYXRlZFByb3BlcnR5VHlwZSA9
PSBhbmltYXRvci0+dHlwZSgpKTsKQEAgLTIxMiw4ICsyMTIsMTAgQEAgdm9pZCBTVkdBbmltYXRl
RWxlbWVudDo6cmVzZXRUb0Jhc2VWYWx1ZSgpCiAgICAgICAgIEFTU0VSVChwcm9wZXJ0eVR5cGVz
QXJlQ29uc2lzdGVudChtX2FuaW1hdGVkUHJvcGVydHlUeXBlLCBtX2FuaW1hdGVkUHJvcGVydGll
cykpOwogICAgICAgICBpZiAoIW1fYW5pbWF0ZWRUeXBlKQogICAgICAgICAgICAgbV9hbmltYXRl
ZFR5cGUgPSBhbmltYXRvci0+c3RhcnRBbmltVmFsQW5pbWF0aW9uKG1fYW5pbWF0ZWRQcm9wZXJ0
aWVzKTsKLSAgICAgICAgZWxzZQorICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGFuaW1hdG9y
LT5yZXNldEFuaW1WYWxUb0Jhc2VWYWwobV9hbmltYXRlZFByb3BlcnRpZXMsIG1fYW5pbWF0ZWRU
eXBlLmdldCgpKTsKKyAgICAgICAgICAgIGFuaW1hdG9yLT5hbmltVmFsRGlkQ2hhbmdlKG1fYW5p
bWF0ZWRQcm9wZXJ0aWVzKTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQogCkBA
IC0yMzIsMjEgKzIzNCwxMzcgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6cmVzZXRUb0Jhc2VW
YWx1ZSgpCiAgICAgICAgIG1fYW5pbWF0ZWRUeXBlLT5zZXRWYWx1ZUFzU3RyaW5nKGF0dHJpYnV0
ZU5hbWUsIGJhc2VWYWx1ZSk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBhcHBseUNTU1Byb3Bl
cnR5VG9UYXJnZXQoU1ZHRWxlbWVudCogdGFyZ2V0RWxlbWVudCwgQ1NTUHJvcGVydHlJRCBpZCwg
Y29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBBU1NFUlQoIXRhcmdldEVsZW1lbnQtPm1fZGVs
ZXRpb25IYXNCZWd1bik7CisKKyAgICBTdHlsZVByb3BlcnR5U2V0KiBwcm9wZXJ0eVNldCA9IHRh
cmdldEVsZW1lbnQtPmVuc3VyZUFuaW1hdGVkU01JTFN0eWxlUHJvcGVydGllcygpOworICAgIGlm
ICghcHJvcGVydHlTZXQtPnNldFByb3BlcnR5KGlkLCB2YWx1ZSwgZmFsc2UsIDApKQorICAgICAg
ICByZXR1cm47CisKKyAgICB0YXJnZXRFbGVtZW50LT5zZXROZWVkc1N0eWxlUmVjYWxjKFN5bnRo
ZXRpY1N0eWxlQ2hhbmdlKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHJlbW92ZUNTU1Byb3Bl
cnR5RnJvbVRhcmdldChTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBDU1NQcm9wZXJ0eUlEIGlk
KQoreworICAgIEFTU0VSVCghdGFyZ2V0RWxlbWVudC0+bV9kZWxldGlvbkhhc0JlZ3VuKTsKKyAg
ICB0YXJnZXRFbGVtZW50LT5lbnN1cmVBbmltYXRlZFNNSUxTdHlsZVByb3BlcnRpZXMoKS0+cmVt
b3ZlUHJvcGVydHkoaWQpOworICAgIHRhcmdldEVsZW1lbnQtPnNldE5lZWRzU3R5bGVSZWNhbGMo
U3ludGhldGljU3R5bGVDaGFuZ2UpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgYXBwbHlDU1NQ
cm9wZXJ0eVRvVGFyZ2V0QW5kSW5zdGFuY2VzKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWVBc1N0
cmluZykKK3sKKyAgICBBU1NFUlQodGFyZ2V0RWxlbWVudCk7CisgICAgaWYgKGF0dHJpYnV0ZU5h
bWUgPT0gYW55UU5hbWUoKSB8fCAhdGFyZ2V0RWxlbWVudC0+aW5Eb2N1bWVudCgpIHx8ICF0YXJn
ZXRFbGVtZW50LT5wYXJlbnROb2RlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIENTU1Byb3Bl
cnR5SUQgaWQgPSBjc3NQcm9wZXJ0eUlEKGF0dHJpYnV0ZU5hbWUubG9jYWxOYW1lKCkpOworCisg
ICAgU1ZHRWxlbWVudEluc3RhbmNlOjpJbnN0YW5jZVVwZGF0ZUJsb2NrZXIgYmxvY2tlcih0YXJn
ZXRFbGVtZW50KTsKKyAgICBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXQodGFyZ2V0RWxlbWVudCwg
aWQsIHZhbHVlQXNTdHJpbmcpOworCisgICAgLy8gSWYgdGhlIHRhcmdldCBlbGVtZW50IGhhcyBp
bnN0YW5jZXMsIHVwZGF0ZSB0aGVtIGFzIHdlbGwsIHcvbyByZXF1aXJpbmcgdGhlIDx1c2U+IHRy
ZWUgdG8gYmUgcmVidWlsdC4KKyAgICBjb25zdCBIYXNoU2V0PFNWR0VsZW1lbnRJbnN0YW5jZSo+
JiBpbnN0YW5jZXMgPSB0YXJnZXRFbGVtZW50LT5pbnN0YW5jZXNGb3JFbGVtZW50KCk7CisgICAg
Y29uc3QgSGFzaFNldDxTVkdFbGVtZW50SW5zdGFuY2UqPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0g
aW5zdGFuY2VzLmVuZCgpOworICAgIGZvciAoSGFzaFNldDxTVkdFbGVtZW50SW5zdGFuY2UqPjo6
Y29uc3RfaXRlcmF0b3IgaXQgPSBpbnN0YW5jZXMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7
CisgICAgICAgIGlmIChTVkdFbGVtZW50KiBzaGFkb3dUcmVlRWxlbWVudCA9ICgqaXQpLT5zaGFk
b3dUcmVlRWxlbWVudCgpKQorICAgICAgICAgICAgYXBwbHlDU1NQcm9wZXJ0eVRvVGFyZ2V0KHNo
YWRvd1RyZWVFbGVtZW50LCBpZCwgdmFsdWVBc1N0cmluZyk7CisgICAgfQorfQorCitzdGF0aWMg
aW5saW5lIHZvaWQgcmVtb3ZlQ1NTUHJvcGVydHlGcm9tVGFyZ2V0QW5kSW5zdGFuY2VzKFNWR0Vs
ZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUp
Cit7CisgICAgQVNTRVJUKHRhcmdldEVsZW1lbnQpOworICAgIGlmIChhdHRyaWJ1dGVOYW1lID09
IGFueVFOYW1lKCkgfHwgIXRhcmdldEVsZW1lbnQtPmluRG9jdW1lbnQoKSB8fCAhdGFyZ2V0RWxl
bWVudC0+cGFyZW50Tm9kZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBDU1NQcm9wZXJ0eUlE
IGlkID0gY3NzUHJvcGVydHlJRChhdHRyaWJ1dGVOYW1lLmxvY2FsTmFtZSgpKTsKKworICAgIFNW
R0VsZW1lbnRJbnN0YW5jZTo6SW5zdGFuY2VVcGRhdGVCbG9ja2VyIGJsb2NrZXIodGFyZ2V0RWxl
bWVudCk7CisgICAgcmVtb3ZlQ1NTUHJvcGVydHlGcm9tVGFyZ2V0KHRhcmdldEVsZW1lbnQsIGlk
KTsKKworICAgIC8vIElmIHRoZSB0YXJnZXQgZWxlbWVudCBoYXMgaW5zdGFuY2VzLCB1cGRhdGUg
dGhlbSBhcyB3ZWxsLCB3L28gcmVxdWlyaW5nIHRoZSA8dXNlPiB0cmVlIHRvIGJlIHJlYnVpbHQu
CisgICAgY29uc3QgSGFzaFNldDxTVkdFbGVtZW50SW5zdGFuY2UqPiYgaW5zdGFuY2VzID0gdGFy
Z2V0RWxlbWVudC0+aW5zdGFuY2VzRm9yRWxlbWVudCgpOworICAgIGNvbnN0IEhhc2hTZXQ8U1ZH
RWxlbWVudEluc3RhbmNlKj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IGluc3RhbmNlcy5lbmQoKTsK
KyAgICBmb3IgKEhhc2hTZXQ8U1ZHRWxlbWVudEluc3RhbmNlKj46OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gaW5zdGFuY2VzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBpZiAoU1ZH
RWxlbWVudCogc2hhZG93VHJlZUVsZW1lbnQgPSAoKml0KS0+c2hhZG93VHJlZUVsZW1lbnQoKSkK
KyAgICAgICAgICAgIHJlbW92ZUNTU1Byb3BlcnR5RnJvbVRhcmdldChzaGFkb3dUcmVlRWxlbWVu
dCwgaWQpOworICAgIH0KK30KKworc3RhdGljIGlubGluZSB2b2lkIG5vdGlmeVRhcmdldEFib3V0
QW5pbVZhbENoYW5nZShTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lKQoreworICAgIEFTU0VSVCghdGFyZ2V0RWxlbWVudC0+bV9kZWxl
dGlvbkhhc0JlZ3VuKTsKKyAgICB0YXJnZXRFbGVtZW50LT5zdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0
dHJpYnV0ZU5hbWUpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgbm90aWZ5VGFyZ2V0QW5kSW5z
dGFuY2VzQWJvdXRBbmltVmFsQ2hhbmdlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQsIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCit7CisgICAgQVNTRVJUKHRhcmdldEVsZW1l
bnQpOworICAgIGlmIChhdHRyaWJ1dGVOYW1lID09IGFueVFOYW1lKCkgfHwgIXRhcmdldEVsZW1l
bnQtPmluRG9jdW1lbnQoKSB8fCAhdGFyZ2V0RWxlbWVudC0+cGFyZW50Tm9kZSgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBTVkdFbGVtZW50SW5zdGFuY2U6Okluc3RhbmNlVXBkYXRlQmxvY2tl
ciBibG9ja2VyKHRhcmdldEVsZW1lbnQpOworICAgIG5vdGlmeVRhcmdldEFib3V0QW5pbVZhbENo
YW5nZSh0YXJnZXRFbGVtZW50LCBhdHRyaWJ1dGVOYW1lKTsKKworICAgIC8vIElmIHRoZSB0YXJn
ZXQgZWxlbWVudCBoYXMgaW5zdGFuY2VzLCB1cGRhdGUgdGhlbSBhcyB3ZWxsLCB3L28gcmVxdWly
aW5nIHRoZSA8dXNlPiB0cmVlIHRvIGJlIHJlYnVpbHQuCisgICAgY29uc3QgSGFzaFNldDxTVkdF
bGVtZW50SW5zdGFuY2UqPiYgaW5zdGFuY2VzID0gdGFyZ2V0RWxlbWVudC0+aW5zdGFuY2VzRm9y
RWxlbWVudCgpOworICAgIGNvbnN0IEhhc2hTZXQ8U1ZHRWxlbWVudEluc3RhbmNlKj46OmNvbnN0
X2l0ZXJhdG9yIGVuZCA9IGluc3RhbmNlcy5lbmQoKTsKKyAgICBmb3IgKEhhc2hTZXQ8U1ZHRWxl
bWVudEluc3RhbmNlKj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gaW5zdGFuY2VzLmJlZ2luKCk7IGl0
ICE9IGVuZDsgKytpdCkgeworICAgICAgICBpZiAoU1ZHRWxlbWVudCogc2hhZG93VHJlZUVsZW1l
bnQgPSAoKml0KS0+c2hhZG93VHJlZUVsZW1lbnQoKSkKKyAgICAgICAgICAgIG5vdGlmeVRhcmdl
dEFib3V0QW5pbVZhbENoYW5nZShzaGFkb3dUcmVlRWxlbWVudCwgYXR0cmlidXRlTmFtZSk7Cisg
ICAgfQorfQorCit2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjpjbGVhckFuaW1hdGVkVHlwZShTVkdF
bGVtZW50KiB0YXJnZXRFbGVtZW50KQoreworICAgIGlmICghbV9hbmltYXRlZFR5cGUpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmICghdGFyZ2V0RWxlbWVudCkgeworICAgICAgICBtX2FuaW1h
dGVkVHlwZS5jbGVhcigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKG1fYW5p
bWF0ZWRQcm9wZXJ0aWVzLmlzRW1wdHkoKSkgeworICAgICAgICAvLyBDU1MgcHJvcGVydGllcyBh
bmltYXRpb24gY29kZS1wYXRoLgorICAgICAgICByZW1vdmVDU1NQcm9wZXJ0eUZyb21UYXJnZXRB
bmRJbnN0YW5jZXModGFyZ2V0RWxlbWVudCwgYXR0cmlidXRlTmFtZSgpKTsKKyAgICAgICAgbV9h
bmltYXRlZFR5cGUuY2xlYXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFNW
RyBET00gYW5pbVZhbCBhbmltYXRpb24gY29kZS1wYXRoLgorICAgIGlmIChtX2FuaW1hdG9yKSB7
CisgICAgICAgIG1fYW5pbWF0b3ItPnN0b3BBbmltVmFsQW5pbWF0aW9uKG1fYW5pbWF0ZWRQcm9w
ZXJ0aWVzKTsKKyAgICAgICAgbm90aWZ5VGFyZ2V0QW5kSW5zdGFuY2VzQWJvdXRBbmltVmFsQ2hh
bmdlKHRhcmdldEVsZW1lbnQsIGF0dHJpYnV0ZU5hbWUoKSk7CisgICAgfQorCisgICAgbV9hbmlt
YXRlZFByb3BlcnRpZXMuY2xlYXIoKTsKKyAgICBtX2FuaW1hdGVkVHlwZS5jbGVhcigpOworfQor
CiB2b2lkIFNWR0FuaW1hdGVFbGVtZW50OjphcHBseVJlc3VsdHNUb1RhcmdldCgpCiB7CiAgICAg
QVNTRVJUKG1fYW5pbWF0ZWRQcm9wZXJ0eVR5cGUgIT0gQW5pbWF0ZWRUcmFuc2Zvcm1MaXN0IHx8
IGhhc1RhZ05hbWUoU1ZHTmFtZXM6OmFuaW1hdGVUcmFuc2Zvcm1UYWcpKTsKICAgICBBU1NFUlQo
bV9hbmltYXRlZFByb3BlcnR5VHlwZSAhPSBBbmltYXRlZFVua25vd24pOwotICAgIEFTU0VSVCht
X2FuaW1hdGVkVHlwZSk7CiAgICAgQVNTRVJUKG1fYW5pbWF0b3IpOwogCisgICAgLy8gRWFybHkg
ZXhpdCBpZiBvdXIgYW5pbWF0ZWQgdHlwZSBnb3QgZGVzdHJ1Y3RlZCBieSBhIHByZXZpb3VzIGVu
ZGVkQWN0aXZlSW50ZXJ2YWwoKS4KKyAgICBpZiAoIW1fYW5pbWF0ZWRUeXBlKQorICAgICAgICBy
ZXR1cm47CisKICAgICBpZiAobV9hbmltYXRlZFByb3BlcnRpZXMuaXNFbXB0eSgpKSB7CiAgICAg
ICAgIC8vIENTUyBwcm9wZXJ0aWVzIGFuaW1hdGlvbiBjb2RlLXBhdGguCi0gICAgICAgIHNldFRh
cmdldEF0dHJpYnV0ZUFuaW1hdGVkQ1NTVmFsdWUobV9hbmltYXRlZFR5cGUuZ2V0KCkpOworICAg
ICAgICAvLyBDb252ZXJ0IHRoZSByZXN1bHQgb2YgdGhlIGFuaW1hdGlvbiB0byBhIFN0cmluZyBh
bmQgYXBwbHkgaXQgYXMgQ1NTIHByb3BlcnR5IG9uIHRoZSB0YXJnZXQgJiBhbGwgaW5zdGFuY2Vz
LgorICAgICAgICBhcHBseUNTU1Byb3BlcnR5VG9UYXJnZXRBbmRJbnN0YW5jZXModGFyZ2V0RWxl
bWVudCgpLCBhdHRyaWJ1dGVOYW1lKCksIG1fYW5pbWF0ZWRUeXBlLT52YWx1ZUFzU3RyaW5nKCkp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgLy8gU1ZHIERPTSBhbmltVmFsIGFuaW1h
dGlvbiBjb2RlLXBhdGguCisgICAgLy8gQXQgdGhpcyBwb2ludCB0aGUgU1ZHIERPTSB2YWx1ZXMg
YXJlIGFscmVhZHkgY2hhbmdlZCwgdW5saWtlIGZvciBDU1MuCisgICAgLy8gV2Ugb25seSBoYXZl
IHRvIHRyaWdnZXIgdXBkYXRlIG5vdGlmaWNhdGlvbnMgaGVyZS4KICAgICBtX2FuaW1hdG9yLT5h
bmltVmFsRGlkQ2hhbmdlKG1fYW5pbWF0ZWRQcm9wZXJ0aWVzKTsKKyAgICBub3RpZnlUYXJnZXRB
bmRJbnN0YW5jZXNBYm91dEFuaW1WYWxDaGFuZ2UodGFyZ2V0RWxlbWVudCgpLCBhdHRyaWJ1dGVO
YW1lKCkpOwogfQogCiBib29sIFNWR0FuaW1hdGVFbGVtZW50Ojppc0FkZGl0aXZlKCkgY29uc3QK
QEAgLTI4MiwxMiArNDAwLDcgQEAgdm9pZCBTVkdBbmltYXRlRWxlbWVudDo6dGFyZ2V0RWxlbWVu
dFdpbGxDaGFuZ2UoU1ZHRWxlbWVudCogY3VycmVudFRhcmdldCwgU1ZHRWwKIHsKICAgICBTVkdT
TUlMRWxlbWVudDo6dGFyZ2V0RWxlbWVudFdpbGxDaGFuZ2UoY3VycmVudFRhcmdldCwgbmV3VGFy
Z2V0KTsKIAotICAgIGlmICghbV9hbmltYXRlZFByb3BlcnRpZXMuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIGVuc3VyZUFuaW1hdG9yKCktPnN0b3BBbmltVmFsQW5pbWF0aW9uKG1fYW5pbWF0ZWRQcm9w
ZXJ0aWVzKTsKLSAgICAgICAgbV9hbmltYXRlZFByb3BlcnRpZXMuY2xlYXIoKTsKLSAgICB9Ci0K
LSAgICBtX2FuaW1hdGVkVHlwZS5jbGVhcigpOworICAgIEFTU0VSVCghbV9hbmltYXRlZFR5cGUp
OwogICAgIG1fZnJvbVR5cGUuY2xlYXIoKTsKICAgICBtX3RvVHlwZS5jbGVhcigpOwogICAgIG1f
dG9BdEVuZE9mRHVyYXRpb25UeXBlLmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRl
RWxlbWVudC5oCmluZGV4IDJjMTQxMDUyYmNiNjJjNjdkY2QxZmI4NTE0NGFkMDJkM2U2NWUxZTQu
LjFiODI5Mzc0MjgxMjA3OTQxNDIxOGJhMDQ4MzgyM2NiMGQzYzg3MTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlRWxlbWVudC5oCkBAIC00Myw3ICs0Myw4IEBAIHB1YmxpYzoKIHByb3Rl
Y3RlZDoKICAgICBTVkdBbmltYXRlRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1l
bnQqKTsKIAotICAgIHZpcnR1YWwgdm9pZCByZXNldFRvQmFzZVZhbHVlKCk7CisgICAgdmlydHVh
bCB2b2lkIHJlc2V0QW5pbWF0ZWRUeXBlKCk7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyQW5pbWF0
ZWRUeXBlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQpOwogICAgIHZpcnR1YWwgYm9vbCBjYWxj
dWxhdGVUb0F0RW5kT2ZEdXJhdGlvblZhbHVlKGNvbnN0IFN0cmluZyYgdG9BdEVuZE9mRHVyYXRp
b25TdHJpbmcpOwogICAgIHZpcnR1YWwgYm9vbCBjYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMoY29u
c3QgU3RyaW5nJiBmcm9tU3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKTsKICAgICB2aXJ0
dWFsIGJvb2wgY2FsY3VsYXRlRnJvbUFuZEJ5VmFsdWVzKGNvbnN0IFN0cmluZyYgZnJvbVN0cmlu
ZywgY29uc3QgU3RyaW5nJiBieVN0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVNb3Rpb25FbGVtZW50LmNwcAppbmRleCBiNzRkMmUxNWUwOThlYzczMmNmNTdkOTM0ODg5
NzkxYzU4ZDU2YzYyLi4zNDM5OWVlMjY3N2QwMmFjMDAzMGNlNGE3MjJkNGY3YWVkYjU4Y2EzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKQEAg
LTE2NCwxNCArMTY0LDIzIEBAIHN0YXRpYyBib29sIHBhcnNlUG9pbnQoY29uc3QgU3RyaW5nJiBz
LCBGbG9hdFBvaW50JiBwb2ludCkKICAgICByZXR1cm4gIXNraXBPcHRpb25hbFNWR1NwYWNlcyhj
dXIsIGVuZCk7CiB9CiAgICAgCi12b2lkIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50OjpyZXNldFRv
QmFzZVZhbHVlKCkKK3ZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6OnJlc2V0QW5pbWF0ZWRU
eXBlKCkKIHsKICAgICBpZiAoIWhhc1ZhbGlkQXR0cmlidXRlVHlwZSgpKQogICAgICAgICByZXR1
cm47Ci0gICAgQWZmaW5lVHJhbnNmb3JtKiB0cmFuc2Zvcm0gPSB0YXJnZXRFbGVtZW50KCktPnN1
cHBsZW1lbnRhbFRyYW5zZm9ybSgpOwotICAgIGlmICghdHJhbnNmb3JtKQorICAgIFNWR0VsZW1l
bnQqIHRhcmdldEVsZW1lbnQgPSB0aGlzLT50YXJnZXRFbGVtZW50KCk7CisgICAgaWYgKCF0YXJn
ZXRFbGVtZW50KQorICAgICAgICByZXR1cm47CisgICAgaWYgKEFmZmluZVRyYW5zZm9ybSogdHJh
bnNmb3JtID0gdGFyZ2V0RWxlbWVudC0+c3VwcGxlbWVudGFsVHJhbnNmb3JtKCkpCisgICAgICAg
IHRyYW5zZm9ybS0+bWFrZUlkZW50aXR5KCk7Cit9CisKK3ZvaWQgU1ZHQW5pbWF0ZU1vdGlvbkVs
ZW1lbnQ6OmNsZWFyQW5pbWF0ZWRUeXBlKFNWR0VsZW1lbnQqIHRhcmdldEVsZW1lbnQpCit7Cisg
ICAgaWYgKCF0YXJnZXRFbGVtZW50KQogICAgICAgICByZXR1cm47Ci0gICAgdHJhbnNmb3JtLT5t
YWtlSWRlbnRpdHkoKTsKKyAgICBpZiAoQWZmaW5lVHJhbnNmb3JtKiB0cmFuc2Zvcm0gPSB0YXJn
ZXRFbGVtZW50LT5zdXBwbGVtZW50YWxUcmFuc2Zvcm0oKSkKKyAgICAgICAgdHJhbnNmb3JtLT5t
YWtlSWRlbnRpdHkoKTsKIH0KIAogYm9vbCBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6Y2FsY3Vs
YXRlVG9BdEVuZE9mRHVyYXRpb25WYWx1ZShjb25zdCBTdHJpbmcmIHRvQXRFbmRPZkR1cmF0aW9u
U3RyaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25F
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaApp
bmRleCBlNTdlOGI3MWE0NzZjN2ZiMzhjMGEwYTVhNTYwNWNkMmYzYjhiM2YzLi45ZGVmNDczMDM2
MTQ4MjE5MGNlZDZlZTc2ZmUxNTYwNTZhNjQzYmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaApAQCAtMzksNyArMzksOCBAQCBwcml2YXRlOgogICAg
IGJvb2wgaXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogICAgIHZp
cnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShBdHRyaWJ1dGUqKSBPVkVSUklERTsKIAotICAgIHZp
cnR1YWwgdm9pZCByZXNldFRvQmFzZVZhbHVlKCk7CisgICAgdmlydHVhbCB2b2lkIHJlc2V0QW5p
bWF0ZWRUeXBlKCk7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyQW5pbWF0ZWRUeXBlKFNWR0VsZW1l
bnQqIHRhcmdldEVsZW1lbnQpOwogICAgIHZpcnR1YWwgYm9vbCBjYWxjdWxhdGVUb0F0RW5kT2ZE
dXJhdGlvblZhbHVlKGNvbnN0IFN0cmluZyYgdG9BdEVuZE9mRHVyYXRpb25TdHJpbmcpOwogICAg
IHZpcnR1YWwgYm9vbCBjYWxjdWxhdGVGcm9tQW5kVG9WYWx1ZXMoY29uc3QgU3RyaW5nJiBmcm9t
U3RyaW5nLCBjb25zdCBTdHJpbmcmIHRvU3RyaW5nKTsKICAgICB2aXJ0dWFsIGJvb2wgY2FsY3Vs
YXRlRnJvbUFuZEJ5VmFsdWVzKGNvbnN0IFN0cmluZyYgZnJvbVN0cmluZywgY29uc3QgU3RyaW5n
JiBieVN0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9u
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAK
aW5kZXggMDdlNGE5NDQ5NTc2OTYyNDAwOGZkM2UzNjIwOGQyOGNkYzYyY2EwZS4uMzE4NDljNzky
MmJmYmRlYTFjNDY2MjUzOTkxYTk4ZWFjZmE3NGZlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRpb25FbGVtZW50LmNwcApAQCAtMzEsMjQgKzMxLDE0IEBACiAjaW5jbHVkZSAiQ1NT
Q29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5j
bHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgotI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnQuaCIKLSNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkV2ZW50TGlzdGVuZXIu
aCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKLSNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
LSNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgog
I2luY2x1ZGUgIlNWR0FuaW1hdGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudEluc3Rh
bmNlLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdQYXJzZXJVdGlsaXRp
ZXMuaCIKICNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCi0jaW5jbHVkZSAiU1ZHVVJJUmVm
ZXJlbmNlLmgiCi0jaW5jbHVkZSAiU1ZHVXNlRWxlbWVudC5oIgotI2luY2x1ZGUgIlhMaW5rTmFt
ZXMuaCIKLSNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBz
dGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzQxLDM2ICszMzEsNiBAQCBib29sIFNW
R0FuaW1hdGlvbkVsZW1lbnQ6OmlzVGFyZ2V0QXR0cmlidXRlQ1NTUHJvcGVydHkoU1ZHRWxlbWVu
dCogdGFyZ2V0RWxlbWVudAogICAgIHJldHVybiBTVkdTdHlsZWRFbGVtZW50Ojppc0FuaW1hdGFi
bGVDU1NQcm9wZXJ0eShhdHRyaWJ1dGVOYW1lKTsKIH0KIAotc3RhdGljIGlubGluZSB2b2lkIGFw
cGx5Q1NTUHJvcGVydHlUb1RhcmdldChTVkdFbGVtZW50KiB0YXJnZXRFbGVtZW50LCBDU1NQcm9w
ZXJ0eUlEIGlkLCBjb25zdCBTdHJpbmcmIHZhbHVlKQotewotICAgIFN0eWxlUHJvcGVydHlTZXQq
IHByb3BlcnR5U2V0ID0gdGFyZ2V0RWxlbWVudC0+ZW5zdXJlQW5pbWF0ZWRTTUlMU3R5bGVQcm9w
ZXJ0aWVzKCk7Ci0gICAgaWYgKHByb3BlcnR5U2V0LT5zZXRQcm9wZXJ0eShpZCwgdmFsdWUsIGZh
bHNlLCAwKSkKLSAgICAgICAgdGFyZ2V0RWxlbWVudC0+c2V0TmVlZHNTdHlsZVJlY2FsYyhTeW50
aGV0aWNTdHlsZUNoYW5nZSk7Ci19Ci0KLXZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6c2V0VGFy
Z2V0QXR0cmlidXRlQW5pbWF0ZWRDU1NWYWx1ZShTVkdBbmltYXRlZFR5cGUqIGFuaW1hdGVkVHlw
ZSkKLXsKLSAgICBBU1NFUlQoYW5pbWF0ZWRUeXBlKTsKLSAgICBTVkdFbGVtZW50KiB0YXJnZXRF
bGVtZW50ID0gdGhpcy0+dGFyZ2V0RWxlbWVudCgpOwotICAgIEFTU0VSVCh0YXJnZXRFbGVtZW50
KTsKLQotICAgIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUgPSB0aGlzLT5hdHRy
aWJ1dGVOYW1lKCk7Ci0gICAgQVNTRVJUKGF0dHJpYnV0ZU5hbWUgIT0gYW55UU5hbWUoKSk7Ci0g
ICAgQ1NTUHJvcGVydHlJRCBpZCA9IGNzc1Byb3BlcnR5SUQoYXR0cmlidXRlTmFtZS5sb2NhbE5h
bWUoKSk7Ci0KLSAgICBjb25zdCBTdHJpbmcmIHZhbHVlQXNTdHJpbmcgPSBhbmltYXRlZFR5cGUt
PnZhbHVlQXNTdHJpbmcoKTsKLSAgICBTVkdFbGVtZW50SW5zdGFuY2U6Okluc3RhbmNlVXBkYXRl
QmxvY2tlciBibG9ja2VyKHRhcmdldEVsZW1lbnQpOwotICAgIGFwcGx5Q1NTUHJvcGVydHlUb1Rh
cmdldCh0YXJnZXRFbGVtZW50LCBpZCwgdmFsdWVBc1N0cmluZyk7Ci0KLSAgICAvLyBJZiB0aGUg
dGFyZ2V0IGVsZW1lbnQgaGFzIGluc3RhbmNlcywgdXBkYXRlIHRoZW0gYXMgd2VsbCwgdy9vIHJl
cXVpcmluZyB0aGUgPHVzZT4gdHJlZSB0byBiZSByZWJ1aWx0LgotICAgIGNvbnN0IEhhc2hTZXQ8
U1ZHRWxlbWVudEluc3RhbmNlKj4mIGluc3RhbmNlcyA9IHRhcmdldEVsZW1lbnQtPmluc3RhbmNl
c0ZvckVsZW1lbnQoKTsKLSAgICBjb25zdCBIYXNoU2V0PFNWR0VsZW1lbnRJbnN0YW5jZSo+Ojpj
b25zdF9pdGVyYXRvciBlbmQgPSBpbnN0YW5jZXMuZW5kKCk7Ci0gICAgZm9yIChIYXNoU2V0PFNW
R0VsZW1lbnRJbnN0YW5jZSo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IGluc3RhbmNlcy5iZWdpbigp
OyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgaWYgKFNWR0VsZW1lbnQqIHNoYWRvd1RyZWVF
bGVtZW50ID0gKCppdCktPnNoYWRvd1RyZWVFbGVtZW50KCkpCi0gICAgICAgICAgICBhcHBseUNT
U1Byb3BlcnR5VG9UYXJnZXQoc2hhZG93VHJlZUVsZW1lbnQsIGlkLCB2YWx1ZUFzU3RyaW5nKTsK
LSAgICB9Ci19Ci0KIFNWR0FuaW1hdGlvbkVsZW1lbnQ6OlNob3VsZEFwcGx5QW5pbWF0aW9uIFNW
R0FuaW1hdGlvbkVsZW1lbnQ6OnNob3VsZEFwcGx5QW5pbWF0aW9uKFNWR0VsZW1lbnQqIHRhcmdl
dEVsZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUpCiB7CiAgICAgaWYg
KCFoYXNWYWxpZEF0dHJpYnV0ZVR5cGUoKSB8fCAhdGFyZ2V0RWxlbWVudCB8fCBhdHRyaWJ1dGVO
YW1lID09IGFueVFOYW1lKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5p
bWF0aW9uRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQu
aAppbmRleCA1YzY0MjlkYTUxZDMzZTg3YzBkNTU4ZTE1ODM2ZDdhODkyOGEwMzJmLi44YTY2MmIz
M2Y1ZTE3ZjZjNDIzMzZmNTNlYWEzMzM1MzU2ZTg3NTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdBbmltYXRpb25FbGVtZW50LmgKQEAgLTE5MCwxMSArMTkwLDEwIEBAIHByb3RlY3RlZDoKICAg
ICBTdHJpbmcgZnJvbVZhbHVlKCkgY29uc3Q7CiAKICAgICBTdHJpbmcgdGFyZ2V0QXR0cmlidXRl
QmFzZVZhbHVlKCk7Ci0gICAgdm9pZCBzZXRUYXJnZXRBdHRyaWJ1dGVBbmltYXRlZENTU1ZhbHVl
KFNWR0FuaW1hdGVkVHlwZSopOwogCiAgICAgLy8gZnJvbSBTVkdTTUlMRWxlbWVudAotICAgIHZp
cnR1YWwgdm9pZCBzdGFydGVkQWN0aXZlSW50ZXJ2YWwoKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlQW5pbWF0aW9uKGZsb2F0IHBlcmNlbnQsIHVuc2lnbmVkIHJlcGVhdCwgU1ZHU01JTEVsZW1l
bnQqIHJlc3VsdEVsZW1lbnQpOworICAgIHZpcnR1YWwgdm9pZCBzdGFydGVkQWN0aXZlSW50ZXJ2
YWwoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9uKGZsb2F0IHBl
cmNlbnQsIHVuc2lnbmVkIHJlcGVhdCwgU1ZHU01JTEVsZW1lbnQqIHJlc3VsdEVsZW1lbnQpIE9W
RVJSSURFOwogCiAgICAgQW5pbWF0ZWRQcm9wZXJ0eVZhbHVlVHlwZSBtX2Zyb21Qcm9wZXJ0eVZh
bHVlVHlwZTsKICAgICBBbmltYXRlZFByb3BlcnR5VmFsdWVUeXBlIG1fdG9Qcm9wZXJ0eVZhbHVl
VHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU01JTFRpbWVD
b250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TTUlMVGltZUNvbnRh
aW5lci5jcHAKaW5kZXggOTA1NzgyODlhOGE0ZmI5NzU3ZTNjMTVhYzM2NzNjMmJkODVmZGFkZC4u
ZjQyMWM4YzQ3ODQ5ZDUxODNmNmUwMzMzYTdkNjNkYzFkMmEyYTA2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TTUlMVGltZUNvbnRhaW5lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TTUlMVGltZUNvbnRhaW5lci5jcHAKQEAgLTIyNCw2
ICsyMjQsNyBAQCB2b2lkIFNNSUxUaW1lQ29udGFpbmVyOjp1cGRhdGVBbmltYXRpb25zKFNNSUxU
aW1lIGVsYXBzZWQsIGJvb2wgc2Vla1RvVGltZSkKICAgICB0eXBlZGVmIHBhaXI8U1ZHRWxlbWVu
dCosIFF1YWxpZmllZE5hbWU+IEVsZW1lbnRBdHRyaWJ1dGVQYWlyOwogICAgIHR5cGVkZWYgSGFz
aE1hcDxFbGVtZW50QXR0cmlidXRlUGFpciwgUmVmUHRyPFNWR1NNSUxFbGVtZW50PiA+IFJlc3Vs
dEVsZW1lbnRNYXA7CiAgICAgUmVzdWx0RWxlbWVudE1hcCByZXN1bHRzRWxlbWVudHM7CisgICAg
SGFzaFNldDxTVkdTTUlMRWxlbWVudCo+IGNvbnRyaWJ1dGluZ0VsZW1lbnRzOwogICAgIGZvciAo
dW5zaWduZWQgbiA9IDA7IG4gPCB0b0FuaW1hdGUuc2l6ZSgpOyArK24pIHsKICAgICAgICAgU1ZH
U01JTEVsZW1lbnQqIGFuaW1hdGlvbiA9IHRvQW5pbWF0ZVtuXTsKICAgICAgICAgQVNTRVJUKGFu
aW1hdGlvbi0+dGltZUNvbnRhaW5lcigpID09IHRoaXMpOwpAQCAtMjQ3LDEyICsyNDgsMTIgQEAg
dm9pZCBTTUlMVGltZUNvbnRhaW5lcjo6dXBkYXRlQW5pbWF0aW9ucyhTTUlMVGltZSBlbGFwc2Vk
LCBib29sIHNlZWtUb1RpbWUpCiAgICAgICAgICAgICBpZiAoIWFuaW1hdGlvbi0+aGFzVmFsaWRB
dHRyaWJ1dGVUeXBlKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICBy
ZXN1bHRFbGVtZW50ID0gYW5pbWF0aW9uOwotICAgICAgICAgICAgcmVzdWx0RWxlbWVudC0+cmVz
ZXRUb0Jhc2VWYWx1ZSgpOwogICAgICAgICAgICAgcmVzdWx0c0VsZW1lbnRzLmFkZChrZXksIHJl
c3VsdEVsZW1lbnQpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gVGhpcyB3aWxsIGNhbGN1bGF0
ZSB0aGUgY29udHJpYnV0aW9uIGZyb20gdGhlIGFuaW1hdGlvbiBhbmQgYWRkIGl0IHRvIHRoZSBy
ZXN1bHRzRWxlbWVudC4KLSAgICAgICAgYW5pbWF0aW9uLT5wcm9ncmVzcyhlbGFwc2VkLCByZXN1
bHRFbGVtZW50LCBzZWVrVG9UaW1lKTsKKyAgICAgICAgaWYgKGFuaW1hdGlvbi0+cHJvZ3Jlc3Mo
ZWxhcHNlZCwgcmVzdWx0RWxlbWVudCwgc2Vla1RvVGltZSkpCisgICAgICAgICAgICBjb250cmli
dXRpbmdFbGVtZW50cy5hZGQocmVzdWx0RWxlbWVudCk7CiAKICAgICAgICAgU01JTFRpbWUgbmV4
dEZpcmVUaW1lID0gYW5pbWF0aW9uLT5uZXh0UHJvZ3Jlc3NUaW1lKCk7CiAgICAgICAgIGlmIChu
ZXh0RmlyZVRpbWUuaXNGaW5pdGUoKSkKQEAgLTI2MSwxOSArMjYyLDI3IEBAIHZvaWQgU01JTFRp
bWVDb250YWluZXI6OnVwZGF0ZUFuaW1hdGlvbnMoU01JTFRpbWUgZWxhcHNlZCwgYm9vbCBzZWVr
VG9UaW1lKQogICAgIAogICAgIFZlY3RvcjxTVkdTTUlMRWxlbWVudCo+IGFuaW1hdGlvbnNUb0Fw
cGx5OwogICAgIFJlc3VsdEVsZW1lbnRNYXA6Oml0ZXJhdG9yIGVuZCA9IHJlc3VsdHNFbGVtZW50
cy5lbmQoKTsKLSAgICBmb3IgKFJlc3VsdEVsZW1lbnRNYXA6Oml0ZXJhdG9yIGl0ID0gcmVzdWx0
c0VsZW1lbnRzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgYW5pbWF0aW9uc1Rv
QXBwbHkuYXBwZW5kKGl0LT5zZWNvbmQuZ2V0KCkpOworICAgIGZvciAoUmVzdWx0RWxlbWVudE1h
cDo6aXRlcmF0b3IgaXQgPSByZXN1bHRzRWxlbWVudHMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
KSB7CisgICAgICAgIFNWR1NNSUxFbGVtZW50KiBhbmltYXRpb24gPSBpdC0+c2Vjb25kLmdldCgp
OworICAgICAgICBpZiAoY29udHJpYnV0aW5nRWxlbWVudHMuY29udGFpbnMoYW5pbWF0aW9uKSkK
KyAgICAgICAgICAgIGFuaW1hdGlvbnNUb0FwcGx5LmFwcGVuZChhbmltYXRpb24pOworICAgIH0K
KworICAgIHVuc2lnbmVkIGFuaW1hdGlvbnNUb0FwcGx5U2l6ZSA9IGFuaW1hdGlvbnNUb0FwcGx5
LnNpemUoKTsKKyAgICBpZiAoIWFuaW1hdGlvbnNUb0FwcGx5U2l6ZSkgeworICAgICAgICBzdGFy
dFRpbWVyKGVhcmxpZXJzRmlyZVRpbWUsIGFuaW1hdGlvbkZyYW1lRGVsYXkpOworICAgICAgICBy
ZXR1cm47CisgICAgfQogCiAgICAgLy8gU29ydCA8YW5pbWF0ZVRyYW5mb3JtPiB0byBiZSB0aGUg
bGFzdCBvbmUgdG8gYmUgYXBwbGllZC4gPGFuaW1hdGU+IG1heSBjaGFuZ2UgdHJhbnNmb3JtIGF0
dHJpYnV0ZSBhcwogICAgIC8vIHdlbGwgKGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgYnkgbW9kaWZ5
aW5nIDx1c2U+IHgveSkgYW5kIHRoaXMgd2F5IHRyYW5zZm9ybXMgY29tYmluZSBwcm9wZXJseS4K
ICAgICBzb3J0QnlBcHBseU9yZGVyKGFuaW1hdGlvbnNUb0FwcGx5KTsKLSAgICAKKwogICAgIC8v
IEFwcGx5IHJlc3VsdHMgdG8gdGFyZ2V0IGVsZW1lbnRzLgotICAgIGZvciAodW5zaWduZWQgbiA9
IDA7IG4gPCBhbmltYXRpb25zVG9BcHBseS5zaXplKCk7ICsrbikKLSAgICAgICAgYW5pbWF0aW9u
c1RvQXBwbHlbbl0tPmFwcGx5UmVzdWx0c1RvVGFyZ2V0KCk7CisgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IGFuaW1hdGlvbnNUb0FwcGx5U2l6ZTsgKytpKQorICAgICAgICBhbmltYXRpb25z
VG9BcHBseVtpXS0+YXBwbHlSZXN1bHRzVG9UYXJnZXQoKTsKIAogICAgIHN0YXJ0VGltZXIoZWFy
bGllcnNGaXJlVGltZSwgYW5pbWF0aW9uRnJhbWVEZWxheSk7Ci0gICAgCiAgICAgRG9jdW1lbnQ6
OnVwZGF0ZVN0eWxlRm9yQWxsRG9jdW1lbnRzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKaW5kZXggZmY4MGYwNzE2OTgwMDRjZjlm
OTdjYjk0MDY3Mjk3MTYzNDEyNTcxYi4uZTc1ZDBmYTQxNzFlN2Y1MWQxYWViMTEyN2ZmNTdjMWZi
ZTMxNjhkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlM
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxl
bWVudC5jcHAKQEAgLTE3OCw2ICsxNzgsMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIGNsZWFyVGlt
ZXNXaXRoRHluYW1pY09yaWdpbnMoVmVjdG9yPFNNSUxUaW1lV2l0aE9yaWdpbj4mIHRpbWUKIAog
dm9pZCBTVkdTTUlMRWxlbWVudDo6cmVzZXQoKQogeworICAgIC8vIERvbid0IGNsZWFyIHRoZSBh
bmltYXRlZCB0eXBlIGlmIHdlJ3JlIGZyb3plbiwgb25seSB0YWtlIGFjdGlvbiBoZXJlIGlmIHdl
J3JlIGFjdGl2ZS4KKyAgICBpZiAobV9hY3RpdmVTdGF0ZSA9PSBBY3RpdmUpCisgICAgICAgIGNs
ZWFyQW5pbWF0ZWRUeXBlKG1fdGFyZ2V0RWxlbWVudCk7CisKICAgICBtX2FjdGl2ZVN0YXRlID0g
SW5hY3RpdmU7CiAgICAgbV9pc1dhaXRpbmdGb3JGaXJzdEludGVydmFsID0gdHJ1ZTsKICAgICBt
X2ludGVydmFsQmVnaW4gPSBTTUlMVGltZTo6dW5yZXNvbHZlZCgpOwpAQCAtNTYwLDEwICs1NjQs
MTQgQEAgU1ZHRWxlbWVudCogU1ZHU01JTEVsZW1lbnQ6OnRhcmdldEVsZW1lbnQoKQogICAgIHJl
dHVybiBtX3RhcmdldEVsZW1lbnQ7CiB9CiAKLXZvaWQgU1ZHU01JTEVsZW1lbnQ6OnRhcmdldEVs
ZW1lbnRXaWxsQ2hhbmdlKFNWR0VsZW1lbnQqLCBTVkdFbGVtZW50KikKK3ZvaWQgU1ZHU01JTEVs
ZW1lbnQ6OnRhcmdldEVsZW1lbnRXaWxsQ2hhbmdlKFNWR0VsZW1lbnQqIGN1cnJlbnRUYXJnZXQs
IFNWR0VsZW1lbnQqKQogewotICAgIC8vIElmIHRoZSBhbmltYXRpb24gc3RhdGUgaXMgQWN0aXZl
LCBhbHdheXMgcmVzZXQgdG8gYSBjbGVhciBzdGF0ZSBiZWZvcmUgbGVhdmluZyB0aGUgb2xkIHRh
cmdldCBlbGVtZW50LgotICAgIGlmIChtX2FjdGl2ZVN0YXRlID09IEFjdGl2ZSkKKyAgICAvLyBP
bmx5IGNsZWFyIHRoZSBhbmltYXRlZCB0eXBlLCBpZiB3ZSBoYWQgYSB0YXJnZXQgYmVmb3JlLgor
ICAgIGlmIChjdXJyZW50VGFyZ2V0KQorICAgICAgICBjbGVhckFuaW1hdGVkVHlwZShjdXJyZW50
VGFyZ2V0KTsKKworICAgIC8vIElmIHRoZSBhbmltYXRpb24gc3RhdGUgaXMgbm90IEluYWN0aXZl
LCBhbHdheXMgcmVzZXQgdG8gYSBjbGVhciBzdGF0ZSBiZWZvcmUgbGVhdmluZyB0aGUgb2xkIHRh
cmdldCBlbGVtZW50LgorICAgIGlmIChtX2FjdGl2ZVN0YXRlICE9IEluYWN0aXZlKQogICAgICAg
ICBlbmRlZEFjdGl2ZUludGVydmFsKCk7CiB9CiAKQEAgLTk5MCwxMCArOTk4LDcgQEAgU1ZHU01J
TEVsZW1lbnQ6OkFjdGl2ZVN0YXRlIFNWR1NNSUxFbGVtZW50OjpkZXRlcm1pbmVBY3RpdmVTdGF0
ZShTTUlMVGltZSBlbGFwc2UKICAgICBpZiAoZWxhcHNlZCA+PSBtX2ludGVydmFsQmVnaW4gJiYg
ZWxhcHNlZCA8IG1faW50ZXJ2YWxFbmQpCiAgICAgICAgIHJldHVybiBBY3RpdmU7CiAKLSAgICBp
ZiAobV9hY3RpdmVTdGF0ZSA9PSBBY3RpdmUpCi0gICAgICAgIHJldHVybiBmaWxsKCkgPT0gRmls
bEZyZWV6ZSA/IEZyb3plbiA6IEluYWN0aXZlOwotCi0gICAgcmV0dXJuIG1fYWN0aXZlU3RhdGU7
CisgICAgcmV0dXJuIGZpbGwoKSA9PSBGaWxsRnJlZXplID8gRnJvemVuIDogSW5hY3RpdmU7CiB9
CiAgICAgCiBib29sIFNWR1NNSUxFbGVtZW50Ojppc0NvbnRyaWJ1dGluZyhTTUlMVGltZSBlbGFw
c2VkKSBjb25zdCAKQEAgLTEwMDIsOCArMTAwNyw5IEBAIGJvb2wgU1ZHU01JTEVsZW1lbnQ6Omlz
Q29udHJpYnV0aW5nKFNNSUxUaW1lIGVsYXBzZWQpIGNvbnN0CiAgICAgcmV0dXJuIChtX2FjdGl2
ZVN0YXRlID09IEFjdGl2ZSAmJiAoZmlsbCgpID09IEZpbGxGcmVlemUgfHwgZWxhcHNlZCA8PSBt
X2ludGVydmFsQmVnaW4gKyByZXBlYXRpbmdEdXJhdGlvbigpKSkgfHwgbV9hY3RpdmVTdGF0ZSA9
PSBGcm96ZW47CiB9CiAgICAgCi12b2lkIFNWR1NNSUxFbGVtZW50Ojpwcm9ncmVzcyhTTUlMVGlt
ZSBlbGFwc2VkLCBTVkdTTUlMRWxlbWVudCogcmVzdWx0RWxlbWVudCwgYm9vbCBzZWVrVG9UaW1l
KQorYm9vbCBTVkdTTUlMRWxlbWVudDo6cHJvZ3Jlc3MoU01JTFRpbWUgZWxhcHNlZCwgU1ZHU01J
TEVsZW1lbnQqIHJlc3VsdEVsZW1lbnQsIGJvb2wgc2Vla1RvVGltZSkKIHsKKyAgICBBU1NFUlQo
cmVzdWx0RWxlbWVudCk7CiAgICAgQVNTRVJUKG1fdGltZUNvbnRhaW5lcik7CiAgICAgQVNTRVJU
KG1faXNXYWl0aW5nRm9yRmlyc3RJbnRlcnZhbCB8fCBtX2ludGVydmFsQmVnaW4uaXNGaW5pdGUo
KSk7CiAgICAgCkBAIC0xMDEzLDIzICsxMDE5LDIyIEBAIHZvaWQgU1ZHU01JTEVsZW1lbnQ6OnBy
b2dyZXNzKFNNSUxUaW1lIGVsYXBzZWQsIFNWR1NNSUxFbGVtZW50KiByZXN1bHRFbGVtZW50LCBi
CiAgICAgaWYgKCFtX2ludGVydmFsQmVnaW4uaXNGaW5pdGUoKSkgewogICAgICAgICBBU1NFUlQo
bV9hY3RpdmVTdGF0ZSA9PSBJbmFjdGl2ZSk7CiAgICAgICAgIG1fbmV4dFByb2dyZXNzVGltZSA9
IFNNSUxUaW1lOjp1bnJlc29sdmVkKCk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KLSAgICAKKwogICAgIGlmIChlbGFwc2VkIDwgbV9pbnRlcnZhbEJlZ2lu
KSB7CiAgICAgICAgIEFTU0VSVChtX2FjdGl2ZVN0YXRlICE9IEFjdGl2ZSk7Ci0gICAgICAgIGlm
IChtX2FjdGl2ZVN0YXRlID09IEZyb3plbiAmJiByZXN1bHRFbGVtZW50KQorICAgICAgICBpZiAo
bV9hY3RpdmVTdGF0ZSA9PSBGcm96ZW4pCiAgICAgICAgICAgICB1cGRhdGVBbmltYXRpb24obV9s
YXN0UGVyY2VudCwgbV9sYXN0UmVwZWF0LCByZXN1bHRFbGVtZW50KTsKICAgICAgICAgbV9uZXh0
UHJvZ3Jlc3NUaW1lID0gbV9pbnRlcnZhbEJlZ2luOwotICAgICAgICByZXR1cm47CisgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgCiAgICAgbV9wcmV2aW91c0ludGVydmFsQmVnaW4g
PSBtX2ludGVydmFsQmVnaW47Ci0gICAgCi0gICAgaWYgKG1fYWN0aXZlU3RhdGUgPT0gSW5hY3Rp
dmUpIHsKKworICAgIGlmIChtX2lzV2FpdGluZ0ZvckZpcnN0SW50ZXJ2YWwpIHsKICAgICAgICAg
bV9pc1dhaXRpbmdGb3JGaXJzdEludGVydmFsID0gZmFsc2U7Ci0gICAgICAgIG1fYWN0aXZlU3Rh
dGUgPSBBY3RpdmU7Ci0gICAgICAgIHN0YXJ0ZWRBY3RpdmVJbnRlcnZhbCgpOworICAgICAgICBy
ZXNvbHZlRmlyc3RJbnRlcnZhbCgpOwogICAgIH0KIAogICAgIC8vIFRoaXMgY2FsbCBtYXkgb2J0
YWluIGEgbmV3IGludGVydmFsIC0tIG5ldmVyIGNhbGwgY2FsY3VsYXRlQW5pbWF0aW9uUGVyY2Vu
dEFuZFJlcGVhdCgpIGJlZm9yZSEKQEAgLTEwNDQsMTcgKzEwNDksMjkgQEAgdm9pZCBTVkdTTUlM
RWxlbWVudDo6cHJvZ3Jlc3MoU01JTFRpbWUgZWxhcHNlZCwgU1ZHU01JTEVsZW1lbnQqIHJlc3Vs
dEVsZW1lbnQsIGIKIAogICAgIEFjdGl2ZVN0YXRlIG9sZEFjdGl2ZVN0YXRlID0gbV9hY3RpdmVT
dGF0ZTsKICAgICBtX2FjdGl2ZVN0YXRlID0gZGV0ZXJtaW5lQWN0aXZlU3RhdGUoZWxhcHNlZCk7
Ci0gICAgaWYgKGlzQ29udHJpYnV0aW5nKGVsYXBzZWQpKSB7Ci0gICAgICAgIGlmIChyZXN1bHRF
bGVtZW50KQotICAgICAgICAgICAgdXBkYXRlQW5pbWF0aW9uKHBlcmNlbnQsIHJlcGVhdCwgcmVz
dWx0RWxlbWVudCk7CisgICAgYm9vbCBhbmltYXRpb25Jc0NvbnRyaWJ1dGluZyA9IGlzQ29udHJp
YnV0aW5nKGVsYXBzZWQpOworCisgICAgLy8gT25seSByZXNldCB0aGUgYW5pbWF0ZWQgdHlwZSB0
byB0aGUgYmFzZSB2YWx1ZSBvbmNlIGZvciB0aGUgbG93ZXN0IHByaW9yaXR5IGFuaW1hdGlvbiB0
aGF0IGFuaW1hdGVzIGEgcGFydGljdWxhciBlbGVtZW50L2F0dHJpYnV0ZSBwYWlyLgorICAgIGlm
ICh0aGlzID09IHJlc3VsdEVsZW1lbnQpCisgICAgICAgIHJlc2V0QW5pbWF0ZWRUeXBlKCk7CisK
KyAgICBpZiAoYW5pbWF0aW9uSXNDb250cmlidXRpbmcpIHsKKyAgICAgICAgaWYgKG9sZEFjdGl2
ZVN0YXRlID09IEluYWN0aXZlKQorICAgICAgICAgICAgc3RhcnRlZEFjdGl2ZUludGVydmFsKCk7
CisKKyAgICAgICAgdXBkYXRlQW5pbWF0aW9uKHBlcmNlbnQsIHJlcGVhdCwgcmVzdWx0RWxlbWVu
dCk7CiAgICAgICAgIG1fbGFzdFBlcmNlbnQgPSBwZXJjZW50OwogICAgICAgICBtX2xhc3RSZXBl
YXQgPSByZXBlYXQ7CiAgICAgfQogCi0gICAgaWYgKG9sZEFjdGl2ZVN0YXRlID09IEFjdGl2ZSAm
JiBtX2FjdGl2ZVN0YXRlICE9IEFjdGl2ZSkKKyAgICBpZiAob2xkQWN0aXZlU3RhdGUgPT0gQWN0
aXZlICYmIG1fYWN0aXZlU3RhdGUgIT0gQWN0aXZlKSB7CiAgICAgICAgIGVuZGVkQWN0aXZlSW50
ZXJ2YWwoKTsKKyAgICAgICAgaWYgKG1fYWN0aXZlU3RhdGUgIT0gRnJvemVuKQorICAgICAgICAg
ICAgY2xlYXJBbmltYXRlZFR5cGUobV90YXJnZXRFbGVtZW50KTsKKyAgICB9CiAKICAgICBtX25l
eHRQcm9ncmVzc1RpbWUgPSBjYWxjdWxhdGVOZXh0UHJvZ3Jlc3NUaW1lKGVsYXBzZWQpOworICAg
IHJldHVybiBhbmltYXRpb25Jc0NvbnRyaWJ1dGluZzsKIH0KICAgICAKIHZvaWQgU1ZHU01JTEVs
ZW1lbnQ6Om5vdGlmeURlcGVuZGVudHNJbnRlcnZhbENoYW5nZWQoTmV3T3JFeGlzdGluZ0ludGVy
dmFsIG5ld09yRXhpc3RpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0
aW9uL1NWR1NNSUxFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NN
SUxFbGVtZW50LmgKaW5kZXggZmIzYjIxM2E3YjUxNzBiNGZjZGYxZGI1Y2IyYjkzNTdkNGUxYzU3
YS4uMGY3YzZhZTk1YTNkMWU2ZjJlZjJhNTk2MzU5NDc4ZjAwOGFhN2IwMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuaApAQCAtOTAsNyArOTAsNyBA
QCBwdWJsaWM6CiAgICAgU01JTFRpbWUgc2ltcGxlRHVyYXRpb24oKSBjb25zdDsKIAogICAgIHZv
aWQgc2Vla1RvSW50ZXJ2YWxDb3JyZXNwb25kaW5nVG9UaW1lKFNNSUxUaW1lIGVsYXBzZWQpOwot
ICAgIHZvaWQgcHJvZ3Jlc3MoU01JTFRpbWUgZWxhcHNlZCwgU1ZHU01JTEVsZW1lbnQqIHJlc3Vs
dHNFbGVtZW50LCBib29sIHNlZWtUb1RpbWUpOworICAgIGJvb2wgcHJvZ3Jlc3MoU01JTFRpbWUg
ZWxhcHNlZCwgU1ZHU01JTEVsZW1lbnQqIHJlc3VsdHNFbGVtZW50LCBib29sIHNlZWtUb1RpbWUp
OwogICAgIFNNSUxUaW1lIG5leHRQcm9ncmVzc1RpbWUoKSBjb25zdDsKIAogICAgIHZvaWQgcmVz
ZXQoKTsKQEAgLTEwNiw3ICsxMDYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREb2N1bWVudE9y
ZGVySW5kZXgodW5zaWduZWQgaW5kZXgpIHsgbV9kb2N1bWVudE9yZGVySW5kZXggPSBpbmRleDsg
fQogCiAgICAgdmlydHVhbCBib29sIGlzQWRkaXRpdmUoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIHJlc2V0VG9CYXNlVmFsdWUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlc2V0QW5p
bWF0ZWRUeXBlKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhckFuaW1hdGVkVHlwZShTVkdF
bGVtZW50KiB0YXJnZXRFbGVtZW50KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5UmVzdWx0
c1RvVGFyZ2V0KCkgPSAwOwogCiBwcm90ZWN0ZWQ6CkBAIC0xMTcsMTAgKzExOCwxMCBAQCBwcm90
ZWN0ZWQ6CiAKICAgICAvLyBTdWItY2xhc3NlcyBtYXkgbmVlZCB0byB0YWtlIGFjdGlvbiB3aGVu
IHRoZSB0YXJnZXQgaXMgY2hhbmdlZC4KICAgICB2aXJ0dWFsIHZvaWQgdGFyZ2V0RWxlbWVudFdp
bGxDaGFuZ2UoU1ZHRWxlbWVudCogY3VycmVudFRhcmdldCwgU1ZHRWxlbWVudCogbmV3VGFyZ2V0
KTsKLSAgICB2aXJ0dWFsIHZvaWQgZW5kZWRBY3RpdmVJbnRlcnZhbCgpOwogCiBwcml2YXRlOgog
ICAgIHZpcnR1YWwgdm9pZCBzdGFydGVkQWN0aXZlSW50ZXJ2YWwoKSA9IDA7CisgICAgdm9pZCBl
bmRlZEFjdGl2ZUludGVydmFsKCk7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlvbihm
bG9hdCBwZXJjZW50LCB1bnNpZ25lZCByZXBlYXQsIFNWR1NNSUxFbGVtZW50KiByZXN1bHRFbGVt
ZW50KSA9IDA7CiAKICAgICBlbnVtIEJlZ2luT3JFbmQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlUZWFyT2ZmLmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJP
ZmYuaAppbmRleCBmMTdkODU5M2E4MTk5MjI0NDNhYTE5YjJkNDgzOWQxMTAwMjE3N2MyLi44YjZk
YzY5OTIyNTkzN2UyYjU4MTdhMGUwMjE2OGY4NGQ1Y2U5MTE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0eVRlYXJPZmYuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZExpc3RQcm9wZXJ0
eVRlYXJPZmYuaApAQCAtMTE2LDkgKzExNiw2IEBAIHB1YmxpYzoKIAogICAgICAgICBtX2FuaW1h
dGVkV3JhcHBlcnMuY2xlYXIoKTsKICAgICAgICAgbV9pc0FuaW1hdGluZyA9IGZhbHNlOwotCi0g
ICAgICAgIEFTU0VSVChjb250ZXh0RWxlbWVudCgpKTsKLSAgICAgICAgY29udGV4dEVsZW1lbnQo
KS0+c3ZnQXR0cmlidXRlQ2hhbmdlZChhdHRyaWJ1dGVOYW1lKCkpOwogICAgIH0KIAogICAgIHZv
aWQgc3luY2hyb25pemVXcmFwcGVyc0lmTmVlZGVkKCkKQEAgLTE0OSw5ICsxNDYsNiBAQCBwdWJs
aWM6CiAgICAgICAgIEFTU0VSVChtX2FuaW1WYWwpOwogICAgICAgICBBU1NFUlQobV92YWx1ZXMu
c2l6ZSgpID09IG1fd3JhcHBlcnMuc2l6ZSgpKTsKICAgICAgICAgc3luY2hyb25pemVXcmFwcGVy
c0lmTmVlZGVkKCk7Ci0KLSAgICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KCkpOwotICAgICAg
ICBjb250ZXh0RWxlbWVudCgpLT5zdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJpYnV0ZU5hbWUoKSk7
CiAgICAgfQogCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZHQW5pbWF0ZWRMaXN0UHJvcGVydHlU
ZWFyT2ZmPFByb3BlcnR5VHlwZT4gPiBjcmVhdGUoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQs
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIEFuaW1hdGVkUHJvcGVydHlUeXBl
IGFuaW1hdGVkUHJvcGVydHlUeXBlLCBQcm9wZXJ0eVR5cGUmIHZhbHVlcykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaAppbmRleCBm
NzAxYTgyMzA3OWZkNWE0ZTM5ZGE1ZTU1Y2ZiNWQ1ZjA3ZTlmYjhjLi5jNjRiYWM1MzFjYmQ2MDU2
YzMzN2Q1Mjc0MDE0ZDNlNjMxNTI1N2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oCkBAIC00MCw2ICs0MCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGNvbW1pdENoYW5nZSgpCiAgICAgewogICAgICAgICBBU1NFUlQobV9jb250
ZXh0RWxlbWVudCk7CisgICAgICAgIEFTU0VSVCghbV9jb250ZXh0RWxlbWVudC0+bV9kZWxldGlv
bkhhc0JlZ3VuKTsKICAgICAgICAgbV9jb250ZXh0RWxlbWVudC0+aW52YWxpZGF0ZVNWR0F0dHJp
YnV0ZXMoKTsKICAgICAgICAgbV9jb250ZXh0RWxlbWVudC0+c3ZnQXR0cmlidXRlQ2hhbmdlZCht
X2F0dHJpYnV0ZU5hbWUpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5VGVhck9mZi5oCmluZGV4IDcxNDU3NDU3
YTI2NGUxNGM1NTAwN2MzY2ZlMjFmNTYyYmFjOGRiN2UuLjkxM2Y0MDFiMGVjZTdmYmE4ZDQzZDFh
YzIzNjgzYTg2OGQyYTcyOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlUZWFyT2ZmLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVRlYXJPZmYuaApAQCAtNzgsMTIgKzc4LDYg
QEAgcHVibGljOgogICAgICAgICBBU1NFUlQobV9hbmltVmFsKTsKICAgICAgICAgbV9hbmltVmFs
LT5zZXRWYWx1ZShtX3Byb3BlcnR5KTsKICAgICAgICAgbV9pc0FuaW1hdGluZyA9IGZhbHNlOwot
Ci0gICAgICAgIFNWR0VsZW1lbnQqIGVsZW1lbnQgPSBjb250ZXh0RWxlbWVudCgpOwotICAgICAg
ICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQtPmluRG9jdW1lbnQoKSB8fCAhZWxlbWVudC0+cGFy
ZW50Tm9kZSgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBBU1NFUlQoIWVsZW1lbnQt
Pm1fZGVsZXRpb25IYXNCZWd1bik7Ci0gICAgICAgIGVsZW1lbnQtPnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoYXR0cmlidXRlTmFtZSgpKTsKICAgICB9CiAKICAgICB2b2lkIGFuaW1WYWxXaWxsQ2hhbmdl
KCkKQEAgLTk1LDExICs4OSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYW5pbVZhbERpZENoYW5n
ZSgpCiAgICAgeworICAgICAgICAvLyBuby1vcCBmb3Igbm9uIGxpc3QgdHlwZXMuCiAgICAgICAg
IEFTU0VSVChtX2lzQW5pbWF0aW5nKTsKICAgICAgICAgQVNTRVJUKG1fYW5pbVZhbCk7Ci0KLSAg
ICAgICAgQVNTRVJUKGNvbnRleHRFbGVtZW50KCkpOwotICAgICAgICBjb250ZXh0RWxlbWVudCgp
LT5zdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJpYnV0ZU5hbWUoKSk7CiAgICAgfQogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRT
dGF0aWNQcm9wZXJ0eVRlYXJPZmYuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkU3RhdGljUHJvcGVydHlUZWFyT2ZmLmgKaW5kZXggNTlmY2Q4NTAwMjgzZTM1YmY4
NmFkMDYwYTI1Y2UyYjQxNWUyM2Q2Yy4uZTNlZmNkMDZhNmI5YjYzZGVkNmQxNzkzYjFkM2QzNmQ1
ZTY0MmU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5p
bWF0ZWRTdGF0aWNQcm9wZXJ0eVRlYXJPZmYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdBbmltYXRlZFN0YXRpY1Byb3BlcnR5VGVhck9mZi5oCkBAIC04MSwxMiArODEs
NiBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVChtX2FuaW1hdGVkUHJvcGVydHkpOwogICAgICAg
ICBtX2FuaW1hdGVkUHJvcGVydHkgPSAwOwogICAgICAgICBtX2lzQW5pbWF0aW5nID0gZmFsc2U7
Ci0KLSAgICAgICAgU1ZHRWxlbWVudCogZWxlbWVudCA9IGNvbnRleHRFbGVtZW50KCk7Ci0gICAg
ICAgIGlmICghZWxlbWVudCB8fCAhZWxlbWVudC0+aW5Eb2N1bWVudCgpIHx8ICFlbGVtZW50LT5w
YXJlbnROb2RlKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIEFTU0VSVCghZWxlbWVu
dC0+bV9kZWxldGlvbkhhc0JlZ3VuKTsKLSAgICAgICAgZWxlbWVudC0+c3ZnQXR0cmlidXRlQ2hh
bmdlZChhdHRyaWJ1dGVOYW1lKCkpOwogICAgIH0KIAogICAgIHZvaWQgYW5pbVZhbFdpbGxDaGFu
Z2UoKQpAQCAtOTgsMTEgKzkyLDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBhbmltVmFsRGlkQ2hh
bmdlKCkKICAgICB7CisgICAgICAgIC8vIG5vLW9wIGZvciBub24gbGlzdCB0eXBlcy4KICAgICAg
ICAgQVNTRVJUKG1faXNBbmltYXRpbmcpOwogICAgICAgICBBU1NFUlQobV9hbmltYXRlZFByb3Bl
cnR5KTsKLQotICAgICAgICBBU1NFUlQoY29udGV4dEVsZW1lbnQoKSk7Ci0gICAgICAgIGNvbnRl
eHRFbGVtZW50KCktPnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0cmlidXRlTmFtZSgpKTsKICAgICB9
CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmYzUxNjUyZmY4ZWVmYjE3MjEyNDNhMzMxY2Y5MzA3NjRi
ZGFmM2U3Li41OTQxOWViNGM0YmNjMzY0ZTgzOGVhYmM2MTcxNjRiY2Y4ODUwZmJhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTItMDUtMDQgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJt
YW5uQHJpbS5jb20+CisKKyAgICAgICAgVGllIGxpZmV0aW1lIG9mIFNWR0FuaW1hdGVFbGVtZW50
OjptX2FuaW1hdGVkVHlwZSB0byB0aGUgZHVyYXRpb24gb2YgdGhlIGFuaW1hdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU2MjcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgYW5pbWF0ZS10
YXJnZXQtaWQtY2hhbmdlZC5zdmcgdGVzdCB0byBtYXRjaCBGaXJlZm94IGJlaGF2aW9yLgorICAg
ICAgICBXaGVuIGFuIGFuaW1hdGlvbiBlbGVtZW50IHdpdGggZmlsbD0iZnJlZXplIiBpcyBjaGFu
Z2VkIHRvIGEgbmV3IHRhcmdldAorICAgICAgICBlZywgdmlhIGFuaW1hdGUuaHJlZiA9ICIjc29t
ZU90aGVySUQiLCB0aGUgYW5pbWF0aW9uIGVmZmVjdCBzaG91bGQgYmUgcmVtb3ZlZC4KKworICAg
ICAgICBBZGQgdGVzdHMgZm9yIGFzc2VydGlvbnMgSSByYW4gaW50byB3aGlsZSBkZXZlbG9waW5n
IHRoaXMgcGF0Y2guCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0
aW9ucy50eHQ6IFJlcXVpcmUgbmV3IHJlc3VsdHMgZm9yIGFuaW1hdGUtdGFyZ2V0LWlkLWNoYW5n
ZWQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3VzdG9tL2FuaW1h
dGUtdGFyZ2V0LWlkLWNoYW5nZWQtZXhwZWN0ZWQucG5nOgorICAgICAgICAqIHN2Zy9hbmltYXRp
b25zL2xpc3Qtd3JhcHBlci1hc3NlcnRpb24tZXhwZWN0ZWQuc3ZnOiBBZGRlZC4KKyAgICAgICAg
KiBzdmcvYW5pbWF0aW9ucy9saXN0LXdyYXBwZXItYXNzZXJ0aW9uLnN2ZzogQWRkZWQuCisgICAg
ICAgICogc3ZnL2N1c3RvbS9hbmltYXRlLXRhcmdldC1pZC1jaGFuZ2VkLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBzdmcvY3VzdG9tL2FuaW1hdGUtdGFyZ2V0LWlkLWNoYW5nZWQuc3ZnOgorCiAy
MDEyLTA1LTA0ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+
CiAKICAgICAgICAgW0VGTF0gTGF5b3V0VGVzdENvbnRyb2xsZXIgZG9lcyBub3Qgc3VwcG9ydCBv
dmVycmlkaW5nIFdlYktpdExvYWRTaXRlSWNvbnNLZXkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCAyZDBiOTU4YjQzZDgw
NmRlNTFmZDc4OTY5NWQyMzRhNGYxY2U0MzExLi40ZGI0MzY3NWVjZjI4ZWNjMzA2NzI5YjJjMGQ3
ZDgxNDEwMTMxZTI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90
ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
dGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC0xMTQ5LDYgKzExNDksOSBAQCBCVUdDUjYyNDMzIFdJ
TiA6IGZhc3QvaW1hZ2VzL2dpZi1sb29wLWNvdW50Lmh0bWwgPSBJTUFHRQogLy8gU1ZHIFRFU1RT
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCisvLyBOZWVkcyBhIHJlYmFzZWxpbmUsIHNob3VsZCBzdGlsbCBiZSBn
cmVlbi4KK0JVR1dLODU2MjcgOiBzdmcvY3VzdG9tL2FuaW1hdGUtdGFyZ2V0LWlkLWNoYW5nZWQu
c3ZnID0gSU1BR0UrVEVYVCBJTUFHRSBURVhUIFBBU1MKKwogLy8gTmVlZHMgYSByZWJhc2VsaW5l
LCBvbmx5IHR3byBjaXJjbGVzIHNob3VsZCBiZSB2aXNpYmxlIG5vdy4KIEJVR1dLODQ4NDYgOiBz
dmcvVzNDLVNWRy0xLjEvYW5pbWF0ZS1lbGVtLTMxLXQuc3ZnID0gSU1BR0UrVEVYVCBJTUFHRSBU
RVhUIFBBU1MKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0
b20vYW5pbWF0ZS10YXJnZXQtaWQtY2hhbmdlZC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS9hbmltYXRlLXRhcmdldC1pZC1jaGFuZ2VkLWV4cGVjdGVk
LnBuZwppbmRleCA5YzU1MGI5MjBmODEyODk2Nzc5OTI2ZjdhZDE2YmM5YTkzZjgyNmFjLi5hMzJi
ZGE0MDRmYzBlNTNhOTIwMzgwYzRjMzViNzgxNTMyOTdmYWMwIDEwMDY0NApHSVQgYmluYXJ5IHBh
dGNoCmxpdGVyYWwgMzMwNwp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVR
bFlicFJ6bmtCOWdDQ000NyQ9U3VGeGVUVnAKeiN6d301V35MQGFDWj5yZHJVb2c9aFVPYGppRH45
Wk13V0BtTW49Q0ZvbGkwX0BZSCZgSUVHWnJkMykyNXg1MHBjCno8KUc3dDI8c2cjZEBCO1g1QWAo
dCZkWmEyekpxPGY7cmc5Yk9iaVRyKCZCQV9fV2E7eTFhZVlYSTJhZnYybSlRPAp6O01NPlhsXmhp
dUs+PWQ8JXJyYjc4MCZTMW1gQnNYWGcoTSUxNGhmZyhGJFItRzh9Q1BqTWojdXdjJSlPTkwrM0IK
YWpGR0Y1KTdtR2ljc0g7bSQ+OGJnPWQjV3pwJFAhcHMqWEdXCgpsaXRlcmFsIDEwNTgxCnpjbWVB
U0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTFCJVFsWWJwUnpua0I5Z0NDTTQ3JD1TdUZ4
ZVRWcAp6I3p3fTVXfkxAYUNaPnJkclVvZz1oVU9gamlEfjlaTXdXQG1Nbj1DRm9saTBfQ0BeQHNJ
RUdYKHpQLTZJbSlUSygKeiNuQ0lFWitfcFY2cEo3aD5vOTRQdTRsUmk2O3JOMXhjPlY0KllCVHhP
RWY8SlRYU2FuNCpAMD80Z20jKzFfbmxeCnp0cTAwJkd4fnVIeFhBUGRoTWcmVWdkeCUoKEZ4b2Y2
WHNrfDcqI1NGRX5BTTduciVpaSQhTihpVDREfkdZVTA1OAp6JnZvbCZtbT99TTdMRnhNe30/P2pk
aiUybyphakFzNlBGNT0hUE9vKD9pNTQ/NmZ+Q2BCSSVtZXp6fUpiMmFpfmcKekROSEkpUDI0fj1C
fURYcWticntzQG1ASGVwKXRndlZhYzNodT0qNkpEdVJoQTw+ZHx9aXpqZSNPcWc8NjAlaW5JCnp1
ZVU+a2o7dU03I1gqZFdsWnZFfSs/SyR9Rj02UnJCI1J4aTZkWiM1bDlBa3whXnBVKTxQTVU+OTtf
QExyIXNxeAp6K0BgQUZGcylBLSQ+Tm1fNDVOV0U4WXJWRmdAdDFAYCF0TX1ER0NtdzF1WVpIWHpl
cHZDNClOcHF3U1FAIyNfVF4Keml4JHtyNztXWntfSSpKOHNMPjlnISlQeUFLdykmfmZSU2wqPXp5
VmRiVWEwMWJtKEFvPW02TTI4WFk8cTlYYkZ0CnprVmMwTjJFb3ZRVnVOPSowfFVveCZ7X2NhXnV9
bkxXd2d4I09ibnhLN0xMKDIzdml9IWJoPX0tJT5yRCFHQ0pLYwprK0dZVypXKkF5NDVEd1VMNj4/
Z0N4fnI9S1RxbnVrPkZWZFEmTUJiQDA1RlZwQj4oXmIKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdmcvYW5pbWF0aW9ucy9saXN0LXdyYXBwZXItYXNzZXJ0aW9uLWV4cGVjdGVkLnN2ZyBiL0xh
eW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2xpc3Qtd3JhcHBlci1hc3NlcnRpb24tZXhwZWN0ZWQu
c3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmJiYmNhNmRmOGI5M2RmNDc1NjkxOGNhMzA0YzNmODBjN2MzZDEzNTMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9saXN0LXdyYXBw
ZXItYXNzZXJ0aW9uLWV4cGVjdGVkLnN2ZwpAQCAtMCwwICsxLDQgQEAKKzw/eG1sIHZlcnNpb249
IjEuMCI/PgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICAgIDxy
ZWN0IHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJncmVlbiIvPgorPC9zdmc+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9saXN0LXdyYXBwZXItYXNzZXJ0aW9u
LnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9hbmltYXRpb25zL2xpc3Qtd3JhcHBlci1hc3NlcnRpb24u
c3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjEyYmFhZWVjMThkYjg4NjVjNGQ2ZjlkZDEzODYzM2IxZGJmOTc5MzQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvYW5pbWF0aW9ucy9saXN0LXdyYXBw
ZXItYXNzZXJ0aW9uLnN2ZwpAQCAtMCwwICsxLDE4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVu
Y29kaW5nPSJVVEYtOCI/PgorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmci
IG9ubG9hZD0ibG9hZGVkKCkiPgorICAgIDxyZWN0IGZpbGw9ImdyZWVuIiB3aWR0aD0iMTAwIiBo
ZWlnaHQ9IjEwMCI+CisgICAgICAgIDxhbmltYXRlVHJhbnNmb3JtIGF0dHJpYnV0ZU5hbWU9InRy
YW5zZm9ybSIgdHlwZT0ic2NhbGUiIHZhbHVlcz0iMTswLjI7MS41OzEiIGR1cj0iM3MiLz4KKyAg
ICA8L3JlY3Q+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKK2Z1bmN0aW9uIGxvYWRl
ZCgpIHsKKyAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2V0Q3VycmVudFRpbWUoMi45OTkp
OworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgfSwgMTAwKTsKK30KKzwvc2NyaXB0PgorPC9zdmc+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL2FuaW1hdGUtdGFyZ2V0LWlkLWNoYW5nZWQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9hbmltYXRlLXRhcmdldC1pZC1jaGFuZ2VkLWV4
cGVjdGVkLnR4dAppbmRleCBmNTVjODM5MmVmNzQzMzdkZDAyMjNkMWM5OWZmYTUyZDQzNGFmOWQw
Li5hODE3ODY0NTBiZjRlZjJhNTc3NDNjZjc5ZTQ4NTg4MjY2YzMzNzljIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL2FuaW1hdGUtdGFyZ2V0LWlkLWNoYW5nZWQtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vYW5pbWF0ZS10YXJnZXQtaWQtY2hhbmdl
ZC1leHBlY3RlZC50eHQKQEAgLTMsNCArMywzIEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MAogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiAgIFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQg
KDAsMCkgc2l6ZSAxMDB4MTAwCiAgICAgUmVuZGVyU1ZHUmVjdCB7cmVjdH0gYXQgKDAsMCkgc2l6
ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0g
W3k9MC4wMF0gW3dpZHRoPTEwMC4wMF0gW2hlaWdodD0xMDAuMDBdCi0gICAgUmVuZGVyU1ZHUmVj
dCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAxMDB4MTAwIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9y
PSMwMDgwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTEwMC4wMF0gW2hlaWdodD0xMDAu
MDBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2FuaW1hdGUtdGFyZ2V0LWlk
LWNoYW5nZWQuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9hbmltYXRlLXRhcmdldC1pZC1j
aGFuZ2VkLnN2ZwppbmRleCAzOTc1N2Q5ZjI1NzNhZTllZTI0NDM1NTI3YjVhZjhiNjRmN2Q2Yjcz
Li44OTk2ZThhODQyNGExYTNjNzgwNzE2YjBmZDMxMTBjODExMjgyZmIxIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL2FuaW1hdGUtdGFyZ2V0LWlkLWNoYW5nZWQuc3ZnCisrKyBi
L0xheW91dFRlc3RzL3N2Zy9jdXN0b20vYW5pbWF0ZS10YXJnZXQtaWQtY2hhbmdlZC5zdmcKQEAg
LTIsOSArMiw4IEBACiA8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8v
RU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiPgog
PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiBvbmxvYWQ9InJ1blJlcGFpbnRUZXN0KCkiPgogPHNj
cmlwdCB4bGluazpocmVmPSIuLi8uLi9mYXN0L3JlcGFpbnQvcmVzb3VyY2VzL3JlcGFpbnQuanMi
Lz4KLTxyZWN0IHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJncmVlbiIvPgotPHJlY3Qg
aWQ9InRhcmdldCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9InJlZCIvPgotPGFuaW1h
dGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgeGxpbms6aHJlZj0iI3RhcmdldCIgZnJvbT0iZ3JlZW4i
IHRvPSJncmVlbiIgYmVnaW49IjBzIiBkdXI9IjFzIiBmaWxsPSJmcmVlemUiLz4KKzxyZWN0IGlk
PSJ0YXJnZXQiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSJncmVlbiIvPgorPGFuaW1h
dGUgYXR0cmlidXRlTmFtZT0iZmlsbCIgeGxpbms6aHJlZj0iI3RhcmdldCIgZnJvbT0icmVkIiB0
bz0icmVkIiBiZWdpbj0iMHMiIGR1cj0iMXMiIGZpbGw9ImZyZWV6ZSIvPgogPHNjcmlwdCB0eXBl
PSJ0ZXh0L2VjbWFzY3JpcHQiPgogPCFbQ0RBVEFbCiBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQo=
</data>
<flag name="review"
          id="146038"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>