<?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>116791</bug_id>
          
          <creation_ts>2013-05-26 09:57:17 -0700</creation_ts>
          <short_desc>Layering violations in ThreadGlobalData</short_desc>
          <delta_ts>2013-10-02 12:29:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>117065</dependson>
    
    <dependson>116861</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>893783</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-05-26 09:57:17 -0700</bug_when>
    <thetext>Layering violations in ThreadGlobalData</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893785</commentid>
    <comment_count>1</comment_count>
      <attachid>202926</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-05-26 10:33:22 -0700</bug_when>
    <thetext>Created attachment 202926
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893786</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-05-26 10:35:32 -0700</bug_when>
    <thetext>Attachment 202926 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/dom/DOMImplementation.cpp&apos;, u&apos;Source/WebCore/dom/DOMImplementation.h&apos;, u&apos;Source/WebCore/dom/EventNames.h&apos;, u&apos;Source/WebCore/inspector/InspectorCounters.cpp&apos;, u&apos;Source/WebCore/inspector/InspectorCounters.h&apos;, u&apos;Source/WebCore/loader/cache/CachedResourceRequestInitiators.h&apos;, u&apos;Source/WebCore/platform/ThreadGlobalData.cpp&apos;, u&apos;Source/WebCore/platform/ThreadGlobalData.h&apos;, u&apos;Source/WebCore/platform/ThreadTimers.cpp&apos;, u&apos;Source/WebCore/platform/ThreadTimers.h&apos;, u&apos;Source/WebCore/platform/Timer.cpp&apos;, u&apos;Source/WebCore/platform/text/TextCodecICU.cpp&apos;, u&apos;Source/WebCore/platform/text/TextCodecICU.h&apos;, u&apos;Source/WebCore/platform/text/mac/TextCodecMac.cpp&apos;, u&apos;Source/WebCore/platform/text/mac/TextCodecMac.h&apos;, u&apos;Source/WebCore/workers/WorkerRunLoop.cpp&apos;]&quot; exit_code: 1
Source/WebCore/platform/ThreadGlobalData.h:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893788</commentid>
    <comment_count>3</comment_count>
      <attachid>202926</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-26 10:41:03 -0700</bug_when>
    <thetext>Comment on attachment 202926
Patch

Attachment 202926 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/739354</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893789</commentid>
    <comment_count>4</comment_count>
      <attachid>202926</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-26 10:42:18 -0700</bug_when>
    <thetext>Comment on attachment 202926
Patch

Attachment 202926 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/739356</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893790</commentid>
    <comment_count>5</comment_count>
      <attachid>202926</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-26 10:43:21 -0700</bug_when>
    <thetext>Comment on attachment 202926
Patch

Attachment 202926 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/686529</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893791</commentid>
    <comment_count>6</comment_count>
      <attachid>202926</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-26 10:52:59 -0700</bug_when>
    <thetext>Comment on attachment 202926
Patch

Attachment 202926 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/718216</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893792</commentid>
    <comment_count>7</comment_count>
      <attachid>202926</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-05-26 11:13:21 -0700</bug_when>
    <thetext>Comment on attachment 202926
Patch

Attachment 202926 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/686532</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893798</commentid>
    <comment_count>8</comment_count>
      <attachid>202926</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-05-26 11:29:32 -0700</bug_when>
    <thetext>Comment on attachment 202926
Patch

Attachment 202926 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/665221</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>893829</commentid>
    <comment_count>9</comment_count>
      <attachid>202926</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-05-26 16:25:38 -0700</bug_when>
    <thetext>Comment on attachment 202926
Patch

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

We need to find a way to solve this without introducing a new hash map lookup for every eventNames() access.

&gt; Source/WebCore/platform/ThreadGlobalData.h:-60
&gt; -        const CachedResourceRequestInitiators&amp; cachedResourceRequestInitiators() { return *m_cachedResourceRequestInitiators; }

Why was this ever needed? This looks like nearly dead code (only used by RESOURCE_TIMING), and never needed to use per-thread AtomicStrings anyway - it could use a simple plain enum.

&gt; Source/WebCore/platform/ThreadGlobalData.h:-61
&gt; -        EventNames&amp; eventNames() { return *m_eventNames; }

This one we probably need, to support event dispatch in workers. But if we can make AtomicStrings thread safe, then there will be no need to have them in thread local storage.

&gt; Source/WebCore/platform/ThreadGlobalData.h:-62
&gt; -        ThreadTimers&amp; threadTimers() { return *m_threadTimers; }

Timers are a platforms concept, and should be fine to keep.

&gt; Source/WebCore/platform/ThreadGlobalData.h:-63
&gt; -        XMLMIMETypeRegExp&amp; xmlTypeRegExp() { return *m_xmlTypeRegExp; }

This just seems completely useless. We shouldn&apos;t use regular expressions for parsing, and it&apos;s certainly not some kind of super hot code AFAICT.

&gt; Source/WebCore/platform/ThreadGlobalData.h:-66
&gt; -        ICUConverterWrapper&amp; cachedConverterICU() { return *m_cachedConverterICU; }

This is also part of platform.

&gt; Source/WebCore/platform/ThreadGlobalData.h:-70
&gt; -        TECConverterWrapper&amp; cachedConverterTEC() { return *m_cachedConverterTEC; }

Ditto.

&gt; Source/WebCore/platform/ThreadGlobalData.h:-74
&gt; -        ThreadLocalInspectorCounters&amp; inspectorCounters() { return *m_inspectorCounters; }

Unsure what this is. Does Inspector actually hook up to multiple threads?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>894301</commentid>
    <comment_count>10</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-05-28 04:16:35 -0700</bug_when>
    <thetext>Removing XMLMIMETypeRegExp in bug #116861.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202926</attachid>
            <date>2013-05-26 10:33:22 -0700</date>
            <delta_ts>2013-05-26 16:25:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116791-20130526193203.patch</filename>
            <type>text/plain</type>
            <size>23067</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjU4MmYyMDRmYmNjODcy
ZDIxNTM3MzA2MTg2MWI1ZTBmMWM1N2Q5ZS4uOTc0MDg0NzM4MTEzMDkyNDYwZmI3OTliYTYwMGU1
ZTlmZDlhYzczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEzLTA1LTI2ICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBMYXllcmluZyB2aW9s
YXRpb25zIGluIFRocmVhZEdsb2JhbERhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTExNjc5MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIE1lbWJlcnMgb2YgVGhyZWFkR2xvYmFsRGF0YSBzaG91bGQgaW5o
ZXJpdCBmcm9tIHRoZSBUaHJlYWRHbG9iYWxEYXRhTWVtYmVyIGludGVyZmFjZSBhbmQgaW1wbGVt
ZW50IHRoZQorICAgICAgICB0aHJlYWRHbG9iYWxEYXRhTWVtYmVyTmFtZSBtZXRob2QuIFRoZXkg
YXJlIGNyZWF0ZWQgb24gZGVtYW5kLCB3aGVuIGNhbGxpbmcgdGhlIG1lbWJlciBtZXRob2Qgb24g
YSBUaHJlYWRHbG9iYWxEYXRhCisgICAgICAgIG9iamVjdCBmb3IgdGhlIGZpcnN0IHRpbWUgd2l0
aCB0aGUgc3BlY2lmaWMgbWVtYmVyIHR5cGUgc3BlY2lmaWVkIGFzIHRoZSB0ZW1wbGF0ZSBhcmd1
bWVudC4gVGhlIG5ldyBtZW1iZXIKKyAgICAgICAgaXMgc3RvcmVkIGluIHRoYXQgVGhyZWFkR2xv
YmFsRGF0YSdzIEhhc2hNYXAsIHdpdGggdGhlIGtleSBiZWluZyB0aGUgdHlwZSBuYW1lIHJldHVy
bmVkIGJ5IHRoZSBzdGF0aWMKKyAgICAgICAgdGhyZWFkR2xvYmFsRGF0YU1lbWJlck5hbWUgbmFt
ZSB0aGF0J3MgZGVmaW5lZCBieSBlYWNoIHBvc3NpYmxlIG1lbWJlci4KKworICAgICAgICBObyBu
ZXcgdGVzdHMgLSBubyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIGRvbS9E
T01JbXBsZW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01JbXBsZW1lbnRhdGlv
bjo6aXNYTUxNSU1FVHlwZSk6IEFkanVzdCB0aGUgVGhyZWFkR2xvYmFsRGF0YSBtZW1iZXIgcmV0
cmlldmFsLgorICAgICAgICAqIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5oOgorICAgICAgICAoWE1M
TUlNRVR5cGVSZWdFeHApOiBJbmhlcml0IGZyb20gVGhyZWFkR2xvYmFsRGF0YU1lbWJlci4KKyAg
ICAgICAgKFdlYkNvcmU6OlhNTE1JTUVUeXBlUmVnRXhwOjp0aHJlYWRHbG9iYWxEYXRhTWVtYmVy
TmFtZSk6IERlZmluZSB0aGUgcmVxdWlyZWQgbWV0aG9kLCByZXR1cm5pbmcgdGhlIHR5cGUgbmFt
ZSBzdHJpbmcuCisgICAgICAgICogZG9tL0V2ZW50TmFtZXMuaDoKKyAgICAgICAgKEV2ZW50TmFt
ZXMpOiBJbmhlcml0IGZyb20gVGhyZWFkR2xvYmFsRGF0YU1lbWJlci4KKyAgICAgICAgKFdlYkNv
cmU6OkV2ZW50TmFtZXM6OnRocmVhZEdsb2JhbERhdGFNZW1iZXJOYW1lKTogRGVmaW5lIHRoZSBy
ZXF1aXJlZCBtZXRob2QsIHJldHVybmluZyB0aGUgdHlwZSBuYW1lIHN0cmluZy4KKyAgICAgICAg
KFdlYkNvcmU6OmV2ZW50TmFtZXMpOiBBZGp1c3QgdGhlIFRocmVhZEdsb2JhbERhdGEgbWVtYmVy
IHJldHJpZXZhbC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ291bnRlcnMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6VGhyZWFkTG9jYWxJbnNwZWN0b3JDb3VudGVyczo6Y3VycmVudCk6
IERpdHRvLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb3VudGVycy5oOgorICAgICAg
ICAoVGhyZWFkTG9jYWxJbnNwZWN0b3JDb3VudGVycyk6IEluaGVyaXQgZnJvbSBUaHJlYWRHbG9i
YWxEYXRhTWVtYmVyLgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkTG9jYWxJbnNwZWN0b3JDb3Vu
dGVyczo6dGhyZWFkR2xvYmFsRGF0YU1lbWJlck5hbWUpOiBEZWZpbmUgdGhlIHJlcXVpcmVkIG1l
dGhvZCwgcmV0dXJuaW5nIHRoZSB0eXBlIG5hbWUgc3RyaW5nLgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmg6CisgICAgICAgIChDYWNoZWRS
ZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKTogSW5oZXJpdCBmcm9tIFRocmVhZEdsb2JhbERhdGFN
ZW1iZXIuCisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
Ojp0aHJlYWRHbG9iYWxEYXRhTWVtYmVyTmFtZSk6IERlZmluZSB0aGUgcmVxdWlyZWQgbWV0aG9k
LCByZXR1cm5pbmcgdGhlIHR5cGUgbmFtZSBzdHJpbmcuCisgICAgICAgIChXZWJDb3JlOjpjYWNo
ZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKTogQWRqdXN0IHRoZSBUaHJlYWRHbG9iYWxEYXRh
IG1lbWJlciByZXRyaWV2YWwuCisgICAgICAgICogcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5j
cHA6IFJlbW92ZSB0aGUgcmVkdW5kYW50IGhlYWRlciBpbmNsdWRlcy4KKyAgICAgICAgKFdlYkNv
cmU6OlRocmVhZEdsb2JhbERhdGE6OlRocmVhZEdsb2JhbERhdGEpOiBTdG9wIGluaXRpYWxpemlu
ZyByZW1vdmVkIG1lbWJlciB2YXJpYWJsZXMuCisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRHbG9i
YWxEYXRhOjpkZXN0cm95KTogQ2xlYXIgdGhlIEhhc2hNYXAgd2hlbiBkZXN0cm95aW5nLgorICAg
ICAgICAqIHBsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuaDogUmVtb3ZlIHRoZSByZWR1bmRhbnQg
Zm9yd2FyZCBkZWNsYXJhdGlvbnMuCisgICAgICAgIChUaHJlYWRHbG9iYWxEYXRhTWVtYmVyKTog
RGVmaW5lIHRoZSBtZW1iZXIgY2xhc3MuCisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRHbG9iYWxE
YXRhTWVtYmVyOjp+VGhyZWFkR2xvYmFsRGF0YU1lbWJlcik6IFRoZSB2aXJ0dWFsIGRlc3RydWN0
b3IgaXMgcmVxdWlyZWQuCisgICAgICAgIChUaHJlYWRHbG9iYWxEYXRhKTogUmVtb3ZlIHRoZSBz
cGVjaWZpYyBtZW1iZXIgZ2V0dGVycywgdGhlIG1lbWJlciB2YXJpYWJsZXMgZGVjbGFyYXRpb25z
LiBUaGUgbWVtYmVycyBhcmUgbm93IHN0b3JlZCBpbiBhIEhhc2hNYXAuCisgICAgICAgIChXZWJD
b3JlOjpUaHJlYWRHbG9iYWxEYXRhOjptZW1iZXIpOiBSZXR1cm4gKGFuZCBmaXJzdCBjcmVhdGUg
aWYgcmVxdWlyZWQpIHRoZSBtZW1iZXIgdGhhdCB3YXMgc3BlY2lmaWVkIHRocm91Z2ggdGhlIHRl
bXBsYXRlIGFyZ3VtZW50LgorICAgICAgICAqIHBsYXRmb3JtL1RocmVhZFRpbWVycy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpUaHJlYWRUaW1lcnM6OnNoYXJlZFRpbWVyRmlyZWQpOiBBZGp1c3Qg
dGhlIFRocmVhZEdsb2JhbERhdGEgbWVtYmVyIHJldHJpZXZhbC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9UaHJlYWRUaW1lcnMuaDoKKyAgICAgICAgKFRocmVhZFRpbWVycyk6IEluaGVyaXQgZnJvbSBU
aHJlYWRHbG9iYWxEYXRhTWVtYmVyLgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkVGltZXJzOjp0
aHJlYWRHbG9iYWxEYXRhTWVtYmVyTmFtZSk6IERlZmluZSB0aGUgcmVxdWlyZWQgbWV0aG9kLCBy
ZXR1cm5pbmcgdGhlIHR5cGUgbmFtZSBzdHJpbmcuCisgICAgICAgICogcGxhdGZvcm0vVGltZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6dGhyZWFkR2xvYmFsVGltZXJIZWFwKTogQWRqdXN0IHRo
ZSBUaHJlYWRHbG9iYWxEYXRhIG1lbWJlciByZXRyaWV2YWwuCisgICAgICAgIChXZWJDb3JlOjpU
aW1lckJhc2U6OnNldE5leHRGaXJlVGltZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6VGlt
ZXJCYXNlOjpmaXJlVGltZXJzSW5OZXN0ZWRFdmVudExvb3ApOiBEaXR0by4KKyAgICAgICAgKiBw
bGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRD
b252ZXJ0ZXJJQ1UpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lD
VS5oOgorICAgICAgICAoSUNVQ29udmVydGVyV3JhcHBlcik6IEluaGVyaXQgZnJvbSBUaHJlYWRH
bG9iYWxEYXRhTWVtYmVyLgorICAgICAgICAoV2ViQ29yZTo6SUNVQ29udmVydGVyV3JhcHBlcjo6
dGhyZWFkR2xvYmFsRGF0YU1lbWJlck5hbWUpOiBEZWZpbmUgdGhlIHJlcXVpcmVkIG1ldGhvZCwg
cmV0dXJuaW5nIHRoZSB0eXBlIG5hbWUgc3RyaW5nLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQv
bWFjL1RleHRDb2RlY01hYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjYWNoZWRDb252ZXJ0ZXJU
RUMpOiBBZGp1c3QgdGhlIFRocmVhZEdsb2JhbERhdGEgbWVtYmVyIHJldHJpZXZhbC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS90ZXh0L21hYy9UZXh0Q29kZWNNYWMuaDoKKyAgICAgICAgKFRFQ0NvbnZl
cnRlcldyYXBwZXIpOiBJbmhlcml0IGZyb20gVGhyZWFkR2xvYmFsRGF0YU1lbWJlci4KKyAgICAg
ICAgKFdlYkNvcmU6OlRFQ0NvbnZlcnRlcldyYXBwZXI6OnRocmVhZEdsb2JhbERhdGFNZW1iZXJO
YW1lKTogRGVmaW5lIHRoZSByZXF1aXJlZCBtZXRob2QsIHJldHVybmluZyB0aGUgdHlwZSBuYW1l
IHN0cmluZy4KKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclJ1bkxvb3AuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UnVuTG9vcFNldHVwOjpSdW5Mb29wU2V0dXApOiBBZGp1c3QgdGhlIFRocmVhZEds
b2JhbERhdGEgbWVtYmVyIHJldHJpZXZhbC4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bkxvb3BTZXR1
cDo6flJ1bkxvb3BTZXR1cCk6IERpdHRvLgorCiAyMDEzLTA1LTI2ICBBbnR0aSBLb2l2aXN0byAg
PGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgVmVjdG9yIGluc3RlYWQgb2YgY3VzdG9t
IGxpbmtlZCBsaXN0IGZvciBmb250IGZhbWlsaWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxl
bWVudGF0aW9uLmNwcAppbmRleCA3YTFkMzNjNTQ0NTFjNWZmZjhlOGI1NzA0Mjk5ZTUyYzRlMjM2
ZWRjLi5mODVlZDc5MmM2MzQ1NWU1NDc3NGEwMDI4M2ZhZDU1YjAxYWNmMzhiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9ET01JbXBsZW1lbnRhdGlvbi5jcHAKQEAgLTUyLDcgKzUyLDYgQEAKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5oIgogI2luY2x1
ZGUgIlRleHREb2N1bWVudC5oIgotI2luY2x1ZGUgIlRocmVhZEdsb2JhbERhdGEuaCIKICNpbmNs
dWRlICJYTUxOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIApAQCAtMzUz
LDcgKzM1Miw3IEBAIGJvb2wgRE9NSW1wbGVtZW50YXRpb246OmlzWE1MTUlNRVR5cGUoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSkKIHsKICAgICBpZiAobWltZVR5cGUgPT0gInRleHQveG1sIiB8fCBt
aW1lVHlwZSA9PSAiYXBwbGljYXRpb24veG1sIiB8fCBtaW1lVHlwZSA9PSAidGV4dC94c2wiKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gdGhyZWFkR2xvYmFsRGF0YSgpLnhtbFR5
cGVSZWdFeHAoKS5pc1hNTE1JTUVUeXBlKG1pbWVUeXBlKTsKKyAgICByZXR1cm4gdGhyZWFkR2xv
YmFsRGF0YSgpLm1lbWJlcjxYTUxNSU1FVHlwZVJlZ0V4cD4oKS5pc1hNTE1JTUVUeXBlKG1pbWVU
eXBlKTsKIH0KIAogYm9vbCBET01JbXBsZW1lbnRhdGlvbjo6aXNUZXh0TUlNRVR5cGUoY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01JbXBs
ZW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxlbWVudGF0aW9uLmgKaW5k
ZXggZGZmYjU0OWUzZmJlN2ZhYTkwYzU5MTg3NWI5MzVjMGVlZmM1M2RiMi4uOTBlZjIwNThiYzMw
MzFiNjllNTFjZDIxNzM3MjA3Y2M0YTc3MTI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTUltcGxlbWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUltcGxl
bWVudGF0aW9uLmgKQEAgLTI2LDYgKzI2LDcgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAj
aW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKKyNpbmNsdWRlICJUaHJlYWRHbG9iYWxEYXRhLmgiCiAj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC03NiwxMiArNzcsMTYgQEAgcHJpdmF0ZToKICAg
ICBEb2N1bWVudCogbV9kb2N1bWVudDsKIH07CiAKLWNsYXNzIFhNTE1JTUVUeXBlUmVnRXhwIHsK
K2NsYXNzIFhNTE1JTUVUeXBlUmVnRXhwIDogcHVibGljIFRocmVhZEdsb2JhbERhdGFNZW1iZXIg
ewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFhNTE1JTUVUeXBlUmVnRXhwKTsgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgWE1MTUlNRVR5cGVSZWdFeHAoKTsKICAgICB+
WE1MTUlNRVR5cGVSZWdFeHAoKTsKKwogICAgIGJvb2wgaXNYTUxNSU1FVHlwZShjb25zdCBTdHJp
bmcmIG1pbWVUeXBlKTsKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiB0aHJlYWRHbG9iYWxEYXRh
TWVtYmVyTmFtZSgpIHsgcmV0dXJuICJYTUxNSU1FVHlwZVJlZ0V4cCI7IH0KKwogcHJpdmF0ZToK
ICAgICBPd25QdHI8UmVndWxhckV4cHJlc3Npb24+IG1fcmVnZXg7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FdmVu
dE5hbWVzLmgKaW5kZXggODA2NGRmMmNjZmFmMGM5NWRjZWM1ZmUxYjhmZGIxMDU3NjJiNjA0NS4u
MjA5YjgzYzQ2NDE1ZjIyYjU5MDNhNWRkZDBhN2U5ZmI1NWFjZmRiYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0V2ZW50TmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXZl
bnROYW1lcy5oCkBAIC0yNTcsNyArMjU3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBl
bmQgb2YgRE9NX0VWRU5UX05BTUVTX0ZPUl9FQUNICiAKLSAgICBjbGFzcyBFdmVudE5hbWVzIHsK
KyAgICBjbGFzcyBFdmVudE5hbWVzIDogcHVibGljIFRocmVhZEdsb2JhbERhdGFNZW1iZXIgewog
ICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFdmVudE5hbWVzKTsgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiAgICAgICAgIGludCBkdW1teTsgLy8gTmVlZGVkIHRvIG1ha2UgaW5pdGlhbGl6
YXRpb24gbWFjcm8gd29yay4KICAgICAgICAgLy8gUHJpdmF0ZSB0byBwcmV2ZW50IGFjY2lkZW50
YWwgY2FsbCB0byBFdmVudE5hbWVzKCkgaW5zdGVhZCBvZiBldmVudE5hbWVzKCkKQEAgLTMwMSwx
MSArMzAxLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIG5hbWVzLmFwcGVu
ZCh0b3VjaGNhbmNlbEV2ZW50KTsKICAgICAgICAgICAgIHJldHVybiBuYW1lczsKICAgICAgICAg
fQorCisgICAgICAgIHN0YXRpYyBjb25zdCBjaGFyKiB0aHJlYWRHbG9iYWxEYXRhTWVtYmVyTmFt
ZSgpIHsgcmV0dXJuICJFdmVudE5hbWVzIjsgfQogICAgIH07CiAKICAgICBpbmxpbmUgRXZlbnRO
YW1lcyYgZXZlbnROYW1lcygpCiAgICAgewotICAgICAgICByZXR1cm4gdGhyZWFkR2xvYmFsRGF0
YSgpLmV2ZW50TmFtZXMoKTsKKyAgICAgICAgcmV0dXJuIHRocmVhZEdsb2JhbERhdGEoKS5tZW1i
ZXI8RXZlbnROYW1lcz4oKTsKICAgICB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDb3VudGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ291bnRlcnMuY3BwCmluZGV4IDZmODVmODc2MjQxZDFkOWZmMzUwMmI5MjNi
YmFhNGNhYjU2ODIxYmEuLjk0MGQ5MmJjOTdhZDI4MTc4NmI2OWE0Mzg4NDBlYjBiNTFiNjRkYzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb3VudGVycy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvdW50ZXJzLmNwcApA
QCAtNTgsNyArNTgsNyBAQCBpbnQgVGhyZWFkTG9jYWxJbnNwZWN0b3JDb3VudGVyczo6Y291bnRl
clZhbHVlKENvdW50ZXJUeXBlIHR5cGUpCiAKIFRocmVhZExvY2FsSW5zcGVjdG9yQ291bnRlcnMm
IFRocmVhZExvY2FsSW5zcGVjdG9yQ291bnRlcnM6OmN1cnJlbnQoKQogewotICAgIHJldHVybiB0
aHJlYWRHbG9iYWxEYXRhKCkuaW5zcGVjdG9yQ291bnRlcnMoKTsKKyAgICByZXR1cm4gdGhyZWFk
R2xvYmFsRGF0YSgpLm1lbWJlcjxUaHJlYWRMb2NhbEluc3BlY3RvckNvdW50ZXJzPigpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ291bnRlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JDb3VudGVycy5oCmluZGV4IDE4YjlmYjg3MDU2NTZhMGY5NzEwNWZmMTg4NDBhNmRlMjcy
MWI0ZjguLjA1N2Q4NzRiN2UzNWJiNTBhZWRjMzlkMmE0ZjJhYTRjNTEyYjdlODUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb3VudGVycy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb3VudGVycy5oCkBAIC0zMSw2ICszMSw3
IEBACiAjaWZuZGVmIEluc3BlY3RvckNvdW50ZXJzX2gKICNkZWZpbmUgSW5zcGVjdG9yQ291bnRl
cnNfaAogCisjaW5jbHVkZSAiVGhyZWFkR2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9GYXN0
QWxsb2NCYXNlLmg+CiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECkBAIC04Miw3ICs4Myw3IEBAIHBy
aXZhdGU6CiAKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi1jbGFzcyBUaHJlYWRMb2NhbEluc3Bl
Y3RvckNvdW50ZXJzIHsKK2NsYXNzIFRocmVhZExvY2FsSW5zcGVjdG9yQ291bnRlcnMgOiBwdWJs
aWMgVGhyZWFkR2xvYmFsRGF0YU1lbWJlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CiAgICAgZW51bSBDb3VudGVyVHlwZSB7CkBAIC0xMDUsNiArMTA2LDggQEAgcHVi
bGljOgogCiAgICAgc3RhdGljIFRocmVhZExvY2FsSW5zcGVjdG9yQ291bnRlcnMmIGN1cnJlbnQo
KTsKIAorICAgIHN0YXRpYyBjb25zdCBjaGFyKiB0aHJlYWRHbG9iYWxEYXRhTWVtYmVyTmFtZSgp
IHsgcmV0dXJuICJUaHJlYWRMb2NhbEluc3BlY3RvckNvdW50ZXJzIjsgfQorCiBwcml2YXRlOgog
ICAgIGludCBtX2NvdW50ZXJzW0NvdW50ZXJUeXBlTGVuZ3RoXTsKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdElu
aXRpYXRvcnMuaAppbmRleCAyNGFjMjM4N2RiNGE0Y2EzMWQ4MzEwMDFmZTQxYzM1MzgxNzVlZDYy
Li4wMTBmZjQyOGM4MTJkYzA5M2U1Y2IzZDYyYWM0ZjA5NzhjOTlhOTY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVl
c3RJbml0aWF0b3JzLmgKQEAgLTMxLDExICszMSwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKLXN0cnVjdCBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzIHsKK3N0cnVjdCBDYWNo
ZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzIDogcHVibGljIFRocmVhZEdsb2JhbERhdGFNZW1i
ZXIgewogICAgIGNvbnN0IEF0b21pY1N0cmluZyBjc3M7CiAgICAgY29uc3QgQXRvbWljU3RyaW5n
IGljb247CiAgICAgY29uc3QgQXRvbWljU3RyaW5nIHhtbGh0dHByZXF1ZXN0OwogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMpOyBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiB0aHJlYWRHbG9iYWxE
YXRhTWVtYmVyTmFtZSgpIHsgcmV0dXJuICJDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3Jz
IjsgfQorCiBwcml2YXRlOgogICAgIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKTsK
ICAgICBmcmllbmQgY2xhc3MgVGhyZWFkR2xvYmFsRGF0YTsKQEAgLTQzLDcgKzQ2LDcgQEAgcHJp
dmF0ZToKIAogaW5saW5lIGNvbnN0IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMmIGNh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKQogewotICAgIHJldHVybiB0aHJlYWRHbG9i
YWxEYXRhKCkuY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpOworICAgIHJldHVybiB0
aHJlYWRHbG9iYWxEYXRhKCkubWVtYmVyPENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnM+
KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1RocmVhZEdsb2JhbERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAKaW5kZXggZjRkNTlkZDllNTE5NTU1ZWZkZmJmZGRiYTA1
Njk5M2M2NjBiYWM2Yi4uY2MwYTIwY2MyNTI1ZDYzMTg3ZDllYzRjMzZjNGI4Y2U4NzhlYTFkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5jcHAKQEAgLTI3
LDIzICsyNywxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRocmVhZEdsb2Jh
bERhdGEuaCIKIAotI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIK
LSNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgotI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIK
LSNpbmNsdWRlICJJbnNwZWN0b3JDb3VudGVycy5oIgotI2luY2x1ZGUgIlRocmVhZFRpbWVycy5o
IgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1dURlRocmVhZERh
dGEuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdJbXBsLmg+CiAKLSNpZiBVU0UoSUNVX1VO
SUNPREUpCi0jaW5jbHVkZSAiVGV4dENvZGVjSUNVLmgiCi0jZW5kaWYKLQotI2lmIFBMQVRGT1JN
KE1BQykKLSNpbmNsdWRlICJUZXh0Q29kZWNNYWMuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKFdP
UktFUlMpCiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRT
cGVjaWZpYy5oPgpAQCAtNTksMjEgKzQ2LDggQEAgVGhyZWFkR2xvYmFsRGF0YSogVGhyZWFkR2xv
YmFsRGF0YTo6c3RhdGljRGF0YTsKICNlbmRpZgogCiBUaHJlYWRHbG9iYWxEYXRhOjpUaHJlYWRH
bG9iYWxEYXRhKCkKLSAgICA6IG1fY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyhhZG9w
dFB0cihuZXcgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycykpCi0gICAgLCBtX2V2ZW50
TmFtZXMoYWRvcHRQdHIobmV3IEV2ZW50TmFtZXMpKQotICAgICwgbV90aHJlYWRUaW1lcnMoYWRv
cHRQdHIobmV3IFRocmVhZFRpbWVycykpCi0gICAgLCBtX3htbFR5cGVSZWdFeHAoYWRvcHRQdHIo
bmV3IFhNTE1JTUVUeXBlUmVnRXhwKSkKICNpZm5kZWYgTkRFQlVHCi0gICAgLCBtX2lzTWFpblRo
cmVhZChpc01haW5UaHJlYWQoKSkKLSNlbmRpZgotI2lmIFVTRShJQ1VfVU5JQ09ERSkKLSAgICAs
IG1fY2FjaGVkQ29udmVydGVySUNVKGFkb3B0UHRyKG5ldyBJQ1VDb252ZXJ0ZXJXcmFwcGVyKSkK
LSNlbmRpZgotI2lmIFBMQVRGT1JNKE1BQykKLSAgICAsIG1fY2FjaGVkQ29udmVydGVyVEVDKGFk
b3B0UHRyKG5ldyBURUNDb252ZXJ0ZXJXcmFwcGVyKSkKLSNlbmRpZgotI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCi0gICAgLCBtX2luc3BlY3RvckNvdW50ZXJzKGFkb3B0UHRyKG5ldyBUaHJlYWRMb2Nh
bEluc3BlY3RvckNvdW50ZXJzKCkpKQorICAgIDogbV9pc01haW5UaHJlYWQoaXNNYWluVGhyZWFk
KCkpCiAjZW5kaWYKIHsKICAgICAvLyBUaGlzIGNvbnN0cnVjdG9yIHdpbGwgaGF2ZSBiZWVuIGNh
bGxlZCBvbiB0aGUgbWFpbiB0aHJlYWQgYmVmb3JlIGJlaW5nIGNhbGxlZCBvbgpAQCAtOTAsMjEg
KzY0LDcgQEAgVGhyZWFkR2xvYmFsRGF0YTo6flRocmVhZEdsb2JhbERhdGEoKQogCiB2b2lkIFRo
cmVhZEdsb2JhbERhdGE6OmRlc3Ryb3koKQogewotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBtX2Nh
Y2hlZENvbnZlcnRlclRFQy5jbGVhcigpOwotI2VuZGlmCi0KLSNpZiBVU0UoSUNVX1VOSUNPREUp
Ci0gICAgbV9jYWNoZWRDb252ZXJ0ZXJJQ1UuY2xlYXIoKTsKLSNlbmRpZgotCi0jaWYgRU5BQkxF
KElOU1BFQ1RPUikKLSAgICBtX2luc3BlY3RvckNvdW50ZXJzLmNsZWFyKCk7Ci0jZW5kaWYKLQot
ICAgIG1fZXZlbnROYW1lcy5jbGVhcigpOwotICAgIG1fdGhyZWFkVGltZXJzLmNsZWFyKCk7Ci0g
ICAgbV94bWxUeXBlUmVnRXhwLmNsZWFyKCk7CisgICAgbV9tZW1iZXJzLmNsZWFyKCk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1RocmVhZEdsb2JhbERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZEds
b2JhbERhdGEuaAppbmRleCBjZGJmNDVmOGNiZDc4YTU2NTMyZWVhM2E5MGQwNDNmMjZkMDc5OTE3
Li43OGNlMmNmNzM4NmFmNzgyZWM0ZjBjNDM1OTExNzlhYzFlMTQ0YmVmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRHbG9iYWxEYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vVGhyZWFkR2xvYmFsRGF0YS5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKICNpZiBFTkFCTEUoV09SS0VSUykKQEAgLTQxLDYx
ICs0MiwzNyBAQCB1c2luZyBXVEY6OlRocmVhZFNwZWNpZmljOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLSAgICBjbGFzcyBFdmVudE5hbWVzOwotICAgIGNsYXNzIFRocmVhZExvY2FsSW5zcGVj
dG9yQ291bnRlcnM7Ci0gICAgY2xhc3MgVGhyZWFkVGltZXJzOwotICAgIGNsYXNzIFhNTE1JTUVU
eXBlUmVnRXhwOwotCi0gICAgc3RydWN0IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnM7
Ci0gICAgc3RydWN0IElDVUNvbnZlcnRlcldyYXBwZXI7Ci0gICAgc3RydWN0IFRFQ0NvbnZlcnRl
cldyYXBwZXI7CisgICAgY2xhc3MgVGhyZWFkR2xvYmFsRGF0YU1lbWJlciB7CisgICAgcHVibGlj
OgorICAgICAgICB2aXJ0dWFsIH5UaHJlYWRHbG9iYWxEYXRhTWVtYmVyKCkgeyB9CisgICAgfTsK
IAogICAgIGNsYXNzIFRocmVhZEdsb2JhbERhdGEgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShUaHJlYWRHbG9iYWxEYXRhKTsKICAgICBwdWJsaWM6CiAgICAgICAgIFRocmVhZEdsb2Jh
bERhdGEoKTsKICAgICAgICAgflRocmVhZEdsb2JhbERhdGEoKTsKLSAgICAgICAgdm9pZCBkZXN0
cm95KCk7IC8vIGNhbGxlZCBvbiB3b3JrZXJzIHRvIGNsZWFuIHVwIHRoZSBUaHJlYWRHbG9iYWxE
YXRhIGJlZm9yZSB0aGUgdGhyZWFkIGV4aXRzLgogCi0gICAgICAgIGNvbnN0IENhY2hlZFJlc291
cmNlUmVxdWVzdEluaXRpYXRvcnMmIGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKSB7
IHJldHVybiAqbV9jYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzOyB9Ci0gICAgICAgIEV2
ZW50TmFtZXMmIGV2ZW50TmFtZXMoKSB7IHJldHVybiAqbV9ldmVudE5hbWVzOyB9Ci0gICAgICAg
IFRocmVhZFRpbWVycyYgdGhyZWFkVGltZXJzKCkgeyByZXR1cm4gKm1fdGhyZWFkVGltZXJzOyB9
Ci0gICAgICAgIFhNTE1JTUVUeXBlUmVnRXhwJiB4bWxUeXBlUmVnRXhwKCkgeyByZXR1cm4gKm1f
eG1sVHlwZVJlZ0V4cDsgfQorICAgICAgICAvLyBDYWxsZWQgb24gd29ya2VycyB0byBjbGVhbiB1
cCB0aGUgVGhyZWFkR2xvYmFsRGF0YSBiZWZvcmUgdGhlIHRocmVhZCBleGl0cy4KKyAgICAgICAg
dm9pZCBkZXN0cm95KCk7CiAKLSNpZiBVU0UoSUNVX1VOSUNPREUpCi0gICAgICAgIElDVUNvbnZl
cnRlcldyYXBwZXImIGNhY2hlZENvbnZlcnRlcklDVSgpIHsgcmV0dXJuICptX2NhY2hlZENvbnZl
cnRlcklDVTsgfQotI2VuZGlmCisgICAgICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgorICAgICAg
ICBUJiBtZW1iZXIoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIW1fbWVtYmVycy5jb250
YWlucyhUOjp0aHJlYWRHbG9iYWxEYXRhTWVtYmVyTmFtZSgpKSkKKyAgICAgICAgICAgICAgICBt
X21lbWJlcnMuYWRkKFQ6OnRocmVhZEdsb2JhbERhdGFNZW1iZXJOYW1lKCksIGFkb3B0UHRyKG5l
dyBUKSk7CiAKLSNpZiBQTEFURk9STShNQUMpCi0gICAgICAgIFRFQ0NvbnZlcnRlcldyYXBwZXIm
IGNhY2hlZENvbnZlcnRlclRFQygpIHsgcmV0dXJuICptX2NhY2hlZENvbnZlcnRlclRFQzsgfQot
I2VuZGlmCi0KLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgICAgICBUaHJlYWRMb2NhbEluc3Bl
Y3RvckNvdW50ZXJzJiBpbnNwZWN0b3JDb3VudGVycygpIHsgcmV0dXJuICptX2luc3BlY3RvckNv
dW50ZXJzOyB9Ci0jZW5kaWYKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxUJj4oKm1f
bWVtYmVycy5nZXQoVDo6dGhyZWFkR2xvYmFsRGF0YU1lbWJlck5hbWUoKSkpOworICAgICAgICB9
CiAKICAgICBwcml2YXRlOgotICAgICAgICBPd25QdHI8Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5p
dGlhdG9ycz4gbV9jYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzOwotICAgICAgICBPd25Q
dHI8RXZlbnROYW1lcz4gbV9ldmVudE5hbWVzOwotICAgICAgICBPd25QdHI8VGhyZWFkVGltZXJz
PiBtX3RocmVhZFRpbWVyczsKLSAgICAgICAgT3duUHRyPFhNTE1JTUVUeXBlUmVnRXhwPiBtX3ht
bFR5cGVSZWdFeHA7CisgICAgICAgIHR5cGVkZWYgSGFzaE1hcDxjb25zdCBjaGFyKiwgT3duUHRy
PFRocmVhZEdsb2JhbERhdGFNZW1iZXI+LCBQdHJIYXNoPGNvbnN0IGNoYXIqPj4gTWVtYmVyc01h
cDsKKyAgICAgICAgTWVtYmVyc01hcCBtX21lbWJlcnM7CiAKICNpZm5kZWYgTkRFQlVHCiAgICAg
ICAgIGJvb2wgbV9pc01haW5UaHJlYWQ7CiAjZW5kaWYKIAotI2lmIFVTRShJQ1VfVU5JQ09ERSkK
LSAgICAgICAgT3duUHRyPElDVUNvbnZlcnRlcldyYXBwZXI+IG1fY2FjaGVkQ29udmVydGVySUNV
OwotI2VuZGlmCi0KLSNpZiBQTEFURk9STShNQUMpCi0gICAgICAgIE93blB0cjxURUNDb252ZXJ0
ZXJXcmFwcGVyPiBtX2NhY2hlZENvbnZlcnRlclRFQzsKLSNlbmRpZgotCi0jaWYgRU5BQkxFKElO
U1BFQ1RPUikKLSAgICAgICAgT3duUHRyPFRocmVhZExvY2FsSW5zcGVjdG9yQ291bnRlcnM+IG1f
aW5zcGVjdG9yQ291bnRlcnM7Ci0jZW5kaWYKLQogI2lmIEVOQUJMRShXT1JLRVJTKQogICAgICAg
ICBzdGF0aWMgVGhyZWFkU3BlY2lmaWM8VGhyZWFkR2xvYmFsRGF0YT4qIHN0YXRpY0RhdGE7CiAj
ZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkVGltZXJzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RocmVhZFRpbWVycy5jcHAKaW5kZXggODUyMGQ3
NzkxZWVmMzRmN2M1YmZjZDc2ODc2NzAwZTY3Mzg2Yzg4MS4uYjI3Mzg3YjA4YmIzNmQ4ZWRkZjc2
NDY1MTZiNDFmMjFjN2ZmMTY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
VGhyZWFkVGltZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRUaW1l
cnMuY3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgdm9pZCBUaHJlYWRUaW1lcnM6OnVwZGF0ZVNoYXJl
ZFRpbWVyKCkKIHZvaWQgVGhyZWFkVGltZXJzOjpzaGFyZWRUaW1lckZpcmVkKCkKIHsKICAgICAv
LyBSZWRpcmVjdCB0byBub24tc3RhdGljIG1ldGhvZC4KLSAgICB0aHJlYWRHbG9iYWxEYXRhKCku
dGhyZWFkVGltZXJzKCkuc2hhcmVkVGltZXJGaXJlZEludGVybmFsKCk7CisgICAgdGhyZWFkR2xv
YmFsRGF0YSgpLm1lbWJlcjxUaHJlYWRUaW1lcnM+KCkuc2hhcmVkVGltZXJGaXJlZEludGVybmFs
KCk7CiB9CiAKIHZvaWQgVGhyZWFkVGltZXJzOjpzaGFyZWRUaW1lckZpcmVkSW50ZXJuYWwoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhyZWFkVGltZXJzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRUaW1lcnMuaAppbmRleCA5MDg3N2VkMDU3ODYyNjM0
OTAyZDI1YzU1YzY0MWM2MzRmZmQ0OGI0Li41MGVjZGM2OTBmNmZjYTRiMjMzYWJjNzZhZTFlOTBh
MDQ5YzU0M2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRUaW1l
cnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaHJlYWRUaW1lcnMuaApAQCAtMjcs
NiArMjcsNyBAQAogI2lmbmRlZiBUaHJlYWRUaW1lcnNfaAogI2RlZmluZSBUaHJlYWRUaW1lcnNf
aAogCisjaW5jbHVkZSAiVGhyZWFkR2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5
YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgpAQCAtMzcsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgVGltZXJC
YXNlOwogCiAgICAgLy8gQSBjb2xsZWN0aW9uIG9mIHRpbWVycyBwZXIgdGhyZWFkLiBLZXB0IGlu
IFRocmVhZEdsb2JhbERhdGEuCi0gICAgY2xhc3MgVGhyZWFkVGltZXJzIHsKKyAgICBjbGFzcyBU
aHJlYWRUaW1lcnMgOiBwdWJsaWMgVGhyZWFkR2xvYmFsRGF0YU1lbWJlciB7CiAgICAgICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKFRocmVhZFRpbWVycyk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogICAgIHB1YmxpYzoKICAgICAgICAgVGhyZWFkVGltZXJzKCk7CkBAIC01MCw2ICs1MSw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdm9pZCB1cGRhdGVTaGFyZWRUaW1lcigpOwog
ICAgICAgICB2b2lkIGZpcmVUaW1lcnNJbk5lc3RlZEV2ZW50TG9vcCgpOwogCisgICAgICAgIHN0
YXRpYyBjb25zdCBjaGFyKiB0aHJlYWRHbG9iYWxEYXRhTWVtYmVyTmFtZSgpIHsgcmV0dXJuICJU
aHJlYWRUaW1lcnMiOyB9CisKICAgICBwcml2YXRlOgogICAgICAgICBzdGF0aWMgdm9pZCBzaGFy
ZWRUaW1lckZpcmVkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Rp
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcAppbmRleCAyZDBjMmRh
M2FmMzcxZjY2MDQ1YTBlNjZhYmQ1NGYxMGQ1ZDgyZTdhLi42NTA4OWM0ZDJmMDYyYjRiMDJmMzBj
NmYzZTcwNWY3OGRiNThhZjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9U
aW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuY3BwCkBAIC01MCw3
ICs1MCw3IEBAIGNsYXNzIFRpbWVySGVhcFJlZmVyZW5jZTsKIC8vIFdoZW4gYSB0aW1lcidzICJu
ZXh0IGZpcmUgdGltZSIgY2hhbmdlcywgd2UgbmVlZCB0byBtb3ZlIGl0IGFyb3VuZCBpbiB0aGUg
cHJpb3JpdHkgcXVldWUuCiBzdGF0aWMgVmVjdG9yPFRpbWVyQmFzZSo+JiB0aHJlYWRHbG9iYWxU
aW1lckhlYXAoKQogewotICAgIHJldHVybiB0aHJlYWRHbG9iYWxEYXRhKCkudGhyZWFkVGltZXJz
KCkudGltZXJIZWFwKCk7CisgICAgcmV0dXJuIHRocmVhZEdsb2JhbERhdGEoKS5tZW1iZXI8VGhy
ZWFkVGltZXJzPigpLnRpbWVySGVhcCgpOwogfQogLy8gLS0tLS0tLS0tLS0tLS0tLQogCkBAIC0z
OTAsNyArMzkwLDcgQEAgdm9pZCBUaW1lckJhc2U6OnNldE5leHRGaXJlVGltZShkb3VibGUgbmV3
VW5hbGlnbmVkVGltZSkKICAgICAgICAgYm9vbCBpc0ZpcnN0VGltZXJJbkhlYXAgPSBtX2hlYXBJ
bmRleCA9PSAwOwogCiAgICAgICAgIGlmICh3YXNGaXJzdFRpbWVySW5IZWFwIHx8IGlzRmlyc3RU
aW1lckluSGVhcCkKLSAgICAgICAgICAgIHRocmVhZEdsb2JhbERhdGEoKS50aHJlYWRUaW1lcnMo
KS51cGRhdGVTaGFyZWRUaW1lcigpOworICAgICAgICAgICAgdGhyZWFkR2xvYmFsRGF0YSgpLm1l
bWJlcjxUaHJlYWRUaW1lcnM+KCkudXBkYXRlU2hhcmVkVGltZXIoKTsKICAgICB9CiAKICAgICBj
aGVja0NvbnNpc3RlbmN5KCk7CkBAIC0zOTksNyArMzk5LDcgQEAgdm9pZCBUaW1lckJhc2U6OnNl
dE5leHRGaXJlVGltZShkb3VibGUgbmV3VW5hbGlnbmVkVGltZSkKIHZvaWQgVGltZXJCYXNlOjpm
aXJlVGltZXJzSW5OZXN0ZWRFdmVudExvb3AoKQogewogICAgIC8vIFJlZGlyZWN0IHRvIFRocmVh
ZFRpbWVycy4KLSAgICB0aHJlYWRHbG9iYWxEYXRhKCkudGhyZWFkVGltZXJzKCkuZmlyZVRpbWVy
c0luTmVzdGVkRXZlbnRMb29wKCk7CisgICAgdGhyZWFkR2xvYmFsRGF0YSgpLm1lbWJlcjxUaHJl
YWRUaW1lcnM+KCkuZmlyZVRpbWVyc0luTmVzdGVkRXZlbnRMb29wKCk7CiB9CiAKIHZvaWQgVGlt
ZXJCYXNlOjpkaWRDaGFuZ2VBbGlnbm1lbnRJbnRlcnZhbCgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5jcHAKaW5kZXggODZkNGVhMTcyNjU0MjNkNDNjZjNm
Y2E2MDMwM2RlNDI2NDM5OWJjYS4uMTcwNjQxYTU5NjIzYjAyMTI1ODE0YjRjYmFmZTBhZTU5Nzc2
MDFkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJ
Q1UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNw
cApAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCiAjaW5jbHVk
ZSAiVGV4dEVuY29kaW5nUmVnaXN0cnkuaCIKLSNpbmNsdWRlICJUaHJlYWRHbG9iYWxEYXRhLmgi
CiAjaW5jbHVkZSA8dW5pY29kZS91Y252Lmg+CiAjaW5jbHVkZSA8dW5pY29kZS91Y252X2NiLmg+
CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KQEAgLTU0LDcgKzUzLDcgQEAgSUNVQ29udmVy
dGVyV3JhcHBlcjo6fklDVUNvbnZlcnRlcldyYXBwZXIoKQogCiBzdGF0aWMgVUNvbnZlcnRlciom
IGNhY2hlZENvbnZlcnRlcklDVSgpCiB7Ci0gICAgcmV0dXJuIHRocmVhZEdsb2JhbERhdGEoKS5j
YWNoZWRDb252ZXJ0ZXJJQ1UoKS5jb252ZXJ0ZXI7CisgICAgcmV0dXJuIHRocmVhZEdsb2JhbERh
dGEoKS5tZW1iZXI8SUNVQ29udmVydGVyV3JhcHBlcj4oKS5jb252ZXJ0ZXI7CiB9CiAKIFBhc3NP
d25QdHI8VGV4dENvZGVjPiBUZXh0Q29kZWNJQ1U6OmNyZWF0ZShjb25zdCBUZXh0RW5jb2Rpbmcm
IGVuY29kaW5nLCBjb25zdCB2b2lkKiBhZGRpdGlvbmFsRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L1RleHRDb2RlY0lDVS5oCmluZGV4IDM4MDNkZjFhNzQwYTUxM2I4NGEzNzYy
ZDE0ZDMwMzM2YzM2ZmQ1ODAuLjdmOTNhMThkMzJhYTViNTU3N2I1ZDk5Yjg3Y2E3NzdmMWUxNjBl
ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNV
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Q29kZWNJQ1UuaApAQCAt
MjgsNiArMjgsNyBAQAogI2RlZmluZSBUZXh0Q29kZWNJQ1VfaAogCiAjaW5jbHVkZSAiVGV4dENv
ZGVjLmgiCisjaW5jbHVkZSAiVGhyZWFkR2xvYmFsRGF0YS5oIgogI2luY2x1ZGUgPHVuaWNvZGUv
dXR5cGVzLmg+CiAKIHR5cGVkZWYgc3RydWN0IFVDb252ZXJ0ZXIgVUNvbnZlcnRlcjsKQEAgLTYy
LDEzICs2MywxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIG11dGFibGUgYm9vbCBt
X25lZWRzR0JLRmFsbGJhY2tzOwogICAgIH07CiAKLSAgICBzdHJ1Y3QgSUNVQ29udmVydGVyV3Jh
cHBlciB7CisgICAgc3RydWN0IElDVUNvbnZlcnRlcldyYXBwZXIgOiBwdWJsaWMgVGhyZWFkR2xv
YmFsRGF0YU1lbWJlciB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKElDVUNvbnZlcnRl
cldyYXBwZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6CiAgICAgICAg
IElDVUNvbnZlcnRlcldyYXBwZXIoKSA6IGNvbnZlcnRlcigwKSB7IH0KICAgICAgICAgfklDVUNv
bnZlcnRlcldyYXBwZXIoKTsKIAogICAgICAgICBVQ29udmVydGVyKiBjb252ZXJ0ZXI7CisKKyAg
ICAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHRocmVhZEdsb2JhbERhdGFNZW1iZXJOYW1lKCkgeyBy
ZXR1cm4gIklDVUNvbnZlcnRlcldyYXBwZXIiOyB9CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvVGV4
dENvZGVjTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL1RleHRDb2Rl
Y01hYy5jcHAKaW5kZXggOGQ4NjIwNDZhMWM1M2MxMTkxNmM2M2E1NWJmYzQwOWRkNGNiOTIzNi4u
MjExY2ZkMGI1OGFlMGE3NWNmYjViNmYwODI1Zjg0NWI2NWJhMzc3MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvVGV4dENvZGVjTWFjLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9UZXh0Q29kZWNNYWMuY3BwCkBAIC00OCw3ICs0
OCw3IEBAIGNvbnN0IHNpemVfdCBDb252ZXJzaW9uQnVmZmVyU2l6ZSA9IDE2Mzg0OwogCiBzdGF0
aWMgVEVDQ29udmVydGVyV3JhcHBlciYgY2FjaGVkQ29udmVydGVyVEVDKCkKIHsKLSAgICByZXR1
cm4gdGhyZWFkR2xvYmFsRGF0YSgpLmNhY2hlZENvbnZlcnRlclRFQygpOworICAgIHJldHVybiB0
aHJlYWRHbG9iYWxEYXRhKCkubWVtYmVyPFRFQ0NvbnZlcnRlcldyYXBwZXI+KCk7CiB9CiAKIHZv
aWQgVGV4dENvZGVjTWFjOjpyZWdpc3RlckVuY29kaW5nTmFtZXMoRW5jb2RpbmdOYW1lUmVnaXN0
cmFyIHJlZ2lzdHJhcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
bWFjL1RleHRDb2RlY01hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvVGV4
dENvZGVjTWFjLmgKaW5kZXggM2U3YTIzN2MxMzdlOTk3MDAzNGE3YThmYWUxYmZlMDg3NDVlMjkx
My4uZWRiODk3NDM4NmNmNWQ5YjJkZGQ5YmI3MGE0MzhhMzk1ZWI4YWI5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvVGV4dENvZGVjTWFjLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvVGV4dENvZGVjTWFjLmgKQEAgLTI4LDYgKzI4
LDcgQEAKICNkZWZpbmUgVGV4dENvZGVjTWFjX2gKIAogI2luY2x1ZGUgIlRleHRDb2RlYy5oIgor
I2luY2x1ZGUgIlRocmVhZEdsb2JhbERhdGEuaCIKICNpbmNsdWRlIDxDb3JlU2VydmljZXMvQ29y
ZVNlcnZpY2VzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTYwLDEyICs2MSwxNCBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIG11dGFibGUgVEVDT2JqZWN0UmVmIG1fY29udmVy
dGVyVEVDOwogICAgIH07CiAKLSAgICBzdHJ1Y3QgVEVDQ29udmVydGVyV3JhcHBlciB7CisgICAg
c3RydWN0IFRFQ0NvbnZlcnRlcldyYXBwZXIgOiBwdWJsaWMgVGhyZWFkR2xvYmFsRGF0YU1lbWJl
ciB7CiAgICAgICAgIFRFQ0NvbnZlcnRlcldyYXBwZXIoKSA6IGNvbnZlcnRlcigwKSwgZW5jb2Rp
bmcoaW52YWxpZEVuY29kaW5nKSB7IH0KICAgICAgICAgflRFQ0NvbnZlcnRlcldyYXBwZXIoKSB7
IGlmIChjb252ZXJ0ZXIpIFRFQ0Rpc3Bvc2VDb252ZXJ0ZXIoY29udmVydGVyKTsgfQogCiAgICAg
ICAgIFRFQ09iamVjdFJlZiBjb252ZXJ0ZXI7CiAgICAgICAgIFRFQ1RleHRFbmNvZGluZ0lEIGVu
Y29kaW5nOworCisgICAgICAgIHN0YXRpYyBjb25zdCBjaGFyKiB0aHJlYWRHbG9iYWxEYXRhTWVt
YmVyTmFtZSgpIHsgcmV0dXJuICJURUNDb252ZXJ0ZXJXcmFwcGVyIjsgfQogICAgIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
V29ya2VyUnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJ1bkxvb3Au
Y3BwCmluZGV4IDZlZTBmYTczMmFhNjdjNGQ0OGM4NTM2MWU0ZGY2Y2U4YjcyYjk5NmIuLmJlNzcx
ODc1ZDk3M2E1Mzg5YjJhNTg4YmRmNDQ2ODc5ZTVmYThmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJSdW5Mb29wLmNwcApAQCAtMTEyLDcgKzExMiw3IEBAIHB1YmxpYzoKICAgICAg
ICAgOiBtX3J1bkxvb3AocnVuTG9vcCkKICAgICB7CiAgICAgICAgIGlmICghbV9ydW5Mb29wLm1f
bmVzdGVkQ291bnQpCi0gICAgICAgICAgICB0aHJlYWRHbG9iYWxEYXRhKCkudGhyZWFkVGltZXJz
KCkuc2V0U2hhcmVkVGltZXIobV9ydW5Mb29wLm1fc2hhcmVkVGltZXIuZ2V0KCkpOworICAgICAg
ICAgICAgdGhyZWFkR2xvYmFsRGF0YSgpLm1lbWJlcjxUaHJlYWRUaW1lcnM+KCkuc2V0U2hhcmVk
VGltZXIobV9ydW5Mb29wLm1fc2hhcmVkVGltZXIuZ2V0KCkpOwogICAgICAgICBtX3J1bkxvb3Au
bV9uZXN0ZWRDb3VudCsrOwogICAgIH0KIApAQCAtMTIwLDcgKzEyMCw3IEBAIHB1YmxpYzoKICAg
ICB7CiAgICAgICAgIG1fcnVuTG9vcC5tX25lc3RlZENvdW50LS07CiAgICAgICAgIGlmICghbV9y
dW5Mb29wLm1fbmVzdGVkQ291bnQpCi0gICAgICAgICAgICB0aHJlYWRHbG9iYWxEYXRhKCkudGhy
ZWFkVGltZXJzKCkuc2V0U2hhcmVkVGltZXIoMCk7CisgICAgICAgICAgICB0aHJlYWRHbG9iYWxE
YXRhKCkubWVtYmVyPFRocmVhZFRpbWVycz4oKS5zZXRTaGFyZWRUaW1lcigwKTsKICAgICB9CiBw
cml2YXRlOgogICAgIFdvcmtlclJ1bkxvb3AmIG1fcnVuTG9vcDsK
</data>
<flag name="review"
          id="224352"
          type_id="1"
          status="-"
          setter="ap"
    />
    <flag name="commit-queue"
          id="224353"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>