<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "http://sourceware.org/bugzilla/bugzilla.dtd">

<bugzilla version="4.0.10"
          urlbase="http://sourceware.org/bugzilla/"
          
          maintainer="overseers@sourceware.org"
>

    <bug>
          <bug_id>11588</bug_id>
          
          <creation_ts>2010-05-11 18:45:00 +0000</creation_ts>
          <short_desc>pthread condvars are not priority inheritance aware</short_desc>
          <delta_ts>2013-04-06 09:15:38 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>glibc</product>
          <component>nptl</component>
          <version>2.12</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darren Hart">dvhltc</reporter>
          <assigned_to name="Not yet assigned to anyone">unassigned</assigned_to>
          <cc>davidh</cc>
    
    <cc>dino</cc>
    
    <cc>dvhart</cc>
    
    <cc>dvhltc</cc>
    
    <cc>glibc-bugs</cc>
    
    <cc>jan.kiszka</cc>
    
    <cc>pasky</cc>
    
    <cc>scot4spam</cc>
    
    <cc>stano</cc>
    
    <cc>triegel</cc>
          <cf_gcchost></cf_gcchost>
          <cf_gcctarget></cf_gcctarget>
          <cf_gccbuild></cf_gccbuild>
          

      

      

      

          <long_desc isprivate="0">
            <commentid>43091</commentid>
            <who name="Darren Hart">dvhltc</who>
            <bug_when>2010-05-11 18:45:58 +0000</bug_when>
            <thetext>When using a PTHREAD_PRIO_INHERIT mutex with a condvar, the pthread_cond* calls 
can still cause an unbounded priority inversion via the internal condvar lock. 
The POSIX specification doesn&apos;t provide a mechanism to specify the protocol of 
the condvar. We would like to do this at runtime, but unfortunately it is legal 
to call pthread_cond_signal() or pthread_cond_broadcast() without first waiting 
on the lock, so the mutex type may not be known the first time the condvar is 
used. A new API, pthread_condattr_setprotocol_np() and 
pthread_condattr_getprotocol_np(), would allow the user to create a 
PTHREAD_PRIO_INHERIT condvar. This would use a PTHREAD_PRIO_INHERIT mutex for 
the internal condvar lock, eliminating the potential for hitting an unbounded 
priority inversion on that lock.

This topic was initially discussed here:
http://sources.redhat.com/ml/libc-alpha/2010-01/msg00011.html

And again here:
http://sources.redhat.com/ml/libc-alpha/2010-02/msg00089.html

Test cases and patches for evaluation will be attached.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>43092</commentid>
              <attachid>4779</attachid>
            <who name="Darren Hart">dvhltc</who>
            <bug_when>2010-05-11 18:48:14 +0000</bug_when>
            <thetext>Created attachment 4779
Unbounded priority inversion testcase pthread_cond_hang.c

Using vanilla cond vars results in a pthread_cond_wait priority inversion
deadlock. With PI cond vars it works fine. This test uses dlsym to use the new
API if it exists.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>43093</commentid>
              <attachid>4780</attachid>
            <who name="Darren Hart">dvhltc</who>
            <bug_when>2010-05-11 18:50:02 +0000</bug_when>
            <thetext>Created attachment 4780
pi condvar: pthread_condattr_setprotocol_np 2.12 port</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>43094</commentid>
              <attachid>4781</attachid>
            <who name="Darren Hart">dvhltc</who>
            <bug_when>2010-05-11 18:50:55 +0000</bug_when>
            <thetext>Created attachment 4781
pi condvar: add tst-condpi1.c basic API test</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>43095</commentid>
              <attachid>4782</attachid>
            <who name="Darren Hart">dvhltc</who>
            <bug_when>2010-05-11 18:55:41 +0000</bug_when>
            <thetext>Created attachment 4782
pi condvar patch impact on normal path testcase

This test is designed to test the efficiency of the pthread_cond_wait() and
pthread_cond_signal() code paths within glibc. Ulrich has expressed concern
about these patches negatively impacting the non-pi condvar paths. I felt the
changes to the common case (when PI is not involved) were pretty minimal.
Certainly any significant regression there would be unacceptable.

I built three versions of glibc 2.11.1 from git:
1)	  git: unmodified git sources
2)     c_only: pthread_cond*.S files deleted
3) pi_condvar: same as c_only with the pi_condvar patches applied

Comparing #3 against #2 allows us to eliminate any gains #1 would have solely
from the hand written asm. 3 will eventually contain hand written asm, but
until the non-posix API is agreed upon, it doesn&apos;t make sense to expend the
effort of writing the asm code in my opinion.

I then ran 10 runs of 10M iterations each at SCHED_FIFO 1 priority on each of
the three glibcs, the results (following) suggest no significant change in the
non PI condvar performance, sitting right at ~270k (avg) cycles/sec for each
glibc.

build-x86_64-2.11.1-git
Cycles/Second: 279831.187500
Cycles/Second: 261911.421875
Cycles/Second: 277664.125000
Cycles/Second: 284847.718750
Cycles/Second: 285067.281250
Cycles/Second: 267918.718750
Cycles/Second: 284785.656250
Cycles/Second: 277402.843750
Cycles/Second: 202379.703125
Cycles/Second: 266421.718750

Min:  202379.703125  us
Max:  285067.28125  us
Avg:  268823.0375  us


build-x86_64-2.11.1-c_only
Cycles/Second: 277931.781250
Cycles/Second: 275614.093750
Cycles/Second: 271194.125000
Cycles/Second: 280155.093750
Cycles/Second: 284708.156250
Cycles/Second: 190936.031250
Cycles/Second: 264253.468750
Cycles/Second: 281354.281250
Cycles/Second: 290366.218750
Cycles/Second: 279962.000000

Min:  190936.03125  us
Max:  290366.21875  us
Avg:  269647.525  us


build-x86_64-2.11.1-pi_condvar
Cycles/Second: 263975.937500
Cycles/Second: 279577.281250
Cycles/Second: 276504.531250
Cycles/Second: 266163.562500
Cycles/Second: 262115.796875
Cycles/Second: 279219.406250
Cycles/Second: 265263.812500
Cycles/Second: 262226.468750
Cycles/Second: 284592.687500
Cycles/Second: 278975.875000

Min:  262115.796875  us
Max:  284592.6875  us
Avg:  271861.535938  us


This is only the cond_signal case, and doesn&apos;t account for cond_timedwait or
cond_broadcast, but I wouldn&apos;t expect those to experience any additional impact
from this patch. Are there scenarios you can think of that are likely to suffer
greater impact that are not covered by this rather simple test case?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>43125</commentid>
            <who name="Darren Hart">dvhltc</who>
            <bug_when>2010-05-13 01:55:07 +0000</bug_when>
            <thetext>While working up tst-condpi2.c (make check version of pthread_cond_hang.c), I 
found something went wrong with my port attached as &quot;0001-pi-condvar-
pthread_condattr_setprotocol_np-2.12-port.patch&quot; and the test case still hangs 
when affined to CPU 0. I&apos;ll look into why and get an updated patch posted as soon 
as possible.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>43127</commentid>
            <who name="Darren Hart">dvhltc</who>
            <bug_when>2010-05-13 08:02:54 +0000</bug_when>
            <thetext>Turns out the trouble in comment 5 was due to my forgetting to remove the 
nptl/pthread_cond*.S files before building the library this time around. The 
original 0001 patch did indeed function correctly. I have reworked the patches, 
improved the patch headers and naming as well as added a new tst-condpi2.c 
testcase which tests for priority inversion avoidance. A follow-on patch detects 
an unbounded inversion and exits gracefully. Without the last patch, the glibc 
test framework will kill the test after the 2 second timeout - which may be the 
preferred approach. I&apos;ll attach the updated patches now.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>43128</commentid>
              <attachid>4785</attachid>
            <who name="Darren Hart">dvhltc</who>
            <bug_when>2010-05-13 08:05:03 +0000</bug_when>
            <thetext>Created attachment 4785
Unbounded priority inversion test case

The first version (attachment 4779) was missing the &quot;_np&quot; in the dl lookup.
This fixes that.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>43129</commentid>
              <attachid>4786</attachid>
            <who name="Darren Hart">dvhltc</who>
            <bug_when>2010-05-13 08:07:07 +0000</bug_when>
            <thetext>Created attachment 4786
[PATCH 1/4 V2] pi-condvars: add protocol support to pthread_condattr_t 

Updated patch header. Functionally equivalent to attachment 4780.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>43130</commentid>
              <attachid>4787</attachid>
            <who name="Darren Hart">dvhltc</who>
            <bug_when>2010-05-13 08:08:18 +0000</bug_when>
            <thetext>Created attachment 4787
[PATCH 2/4 V2] pi-condvars: add tst-condpi1.c, basic API test 

Updated patch header.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>43131</commentid>
              <attachid>4788</attachid>
            <who name="Darren Hart">dvhltc</who>
            <bug_when>2010-05-13 08:10:40 +0000</bug_when>
            <thetext>Created attachment 4788
[PATCH 3/4 V2] pi-condvars: add tst-condpi2.c, priority inversion avoidance test 

New &quot;make check&quot; test, tst-condpi2.c, to test priority inversion avoidance.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>43132</commentid>
              <attachid>4789</attachid>
            <who name="Darren Hart">dvhltc</who>
            <bug_when>2010-05-13 08:13:15 +0000</bug_when>
            <thetext>Created attachment 4789
[PATCH 4/4 V2] pi-condvars: tst-condpi2.c, detect priority inversion 

Optional patch. This goes beyond relying on the glibc 2 second timeout to abort
the test. Instead, it detects the unbounded priority inversion and exits
gracefully. Depending on the preferred approach, this patch can be ignored
without a problem.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>43149</commentid>
            <who name="Darren Hart">dvhltc</who>
            <bug_when>2010-05-13 18:44:41 +0000</bug_when>
            <thetext>It was brought to my attention that the Signed-off-by&apos;s in the patches attached 
and sent to libc-alpha are not appropriate for glibc development. This was just 
an artifact of my git usage, and I will correct in subsequent versions. May we 
discuss these as is, as we our foremost concern is agreeing on the proposed new 
condattr protocol APIs?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>43351</commentid>
            <who name="Darren Hart">dvhltc</who>
            <bug_when>2010-05-27 23:18:55 +0000</bug_when>
            <thetext>I have posted V3 of the patches to libc-alpha. Rather than bog bugzilla down with 
additional attachments, I&apos;ll wait until an agreement has been made on libc-alpha. 
These patches have proper ChangeLogs and have removed the requeue-pi C 
implementation which the previous versions were carrying along.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>43362</commentid>
              <attachid>4821</attachid>
            <who name="Darren Hart">dvhltc</who>
            <bug_when>2010-05-28 20:34:43 +0000</bug_when>
            <thetext>Created attachment 4821
pi condvar patch impact on normal path testcase

Updated condvar_perf testcase which runs the previous test multiple times and
calculates various statistics to aid in determining the impact of the
pi_condvar patches.</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>43695</commentid>
            <who name="Darren Hart">dvhltc</who>
            <bug_when>2010-06-17 20:59:45 +0000</bug_when>
            <thetext>Ulrich, before I spend more time on the test cases and possibly trying to 
optimize the current implementation, can you comment on if you have any objection 
to the proposed API changes themselves?</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>43696</commentid>
            <who name="Thomas Gleixner">tglx</who>
            <bug_when>2010-06-17 22:17:01 +0000</bug_when>
            <thetext>(In reply to comment #15)
&gt; Ulrich, before I spend more time on the test cases and possibly trying to 
&gt; optimize the current implementation, can you comment on if you have any objection 
&gt; to the proposed API changes themselves?

Is there any chance that this issue is going to make any progress ? It affects
real users and we have a working solution for it.

Are there any issues with the approach itself ? If not, what needs to be done to
get this resolved ?

Thanks,

      tglx

</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>47068</commentid>
            <who name="Jan Kiszka">jan.kiszka</who>
            <bug_when>2011-02-14 17:28:26 +0000</bug_when>
            <thetext>(In reply to comment #16)
&gt; Is there any chance that this issue is going to make any progress ? It affects
&gt; real users and we have a working solution for it.

I can only confirm this. We just saw that unfortunate deadlock again in real application (something to be shipped in products). We ran into it before, but this time we finally realized that it&apos;s not due to an outdated glibc but rather a still unfixed bug.

Our applications consist of dozens of real-time threads at different prio levels and practically can&apos;t be reworked to avoid cond variables in RT threads. So we really need a solution, and that preferably without having to carry our own patched glibc versions.

Thanks,
Jan</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>55584</commentid>
            <who name="Jan Kiszka">jan.kiszka</who>
            <bug_when>2012-06-05 16:36:45 +0000</bug_when>
            <thetext>Ping on this unfixed bug. Is there a chance to reconsider the extension Darren proposed? We are stuck with unhandy and inefficient PRIO_PROTECT here due to this issue. And I&apos;m sure we aren&apos;t alone...</thetext>
          </long_desc>
          <long_desc isprivate="0">
            <commentid>58205</commentid>
            <who name="Torvald Riegel">triegel</who>
            <bug_when>2012-10-25 11:03:02 +0000</bug_when>
            <thetext>Note that the condvar implementation will have to change due to a recent POSIX change (see bug 13165).  That means that how to solve this bug might also depend on how we fix bug 13165.  It would be good to fix both in one go.</thetext>
          </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
              isurl="0"
          >
            <attachid>4779</attachid>
            <date>2010-05-11 18:48:00 +0000</date>
            <delta_ts>2010-05-13 08:05:03 +0000</delta_ts>
            <desc>Unbounded priority inversion testcase pthread_cond_hang.c</desc>
            <filename>pthread_cond_hang.c</filename>
            <type>text/x-csrc</type>
            <size>6625</size>
            <attacher>dvhltc</attacher>
            
              <data encoding="base64">LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgogKgogKiAgIENvcHlyaWdodCDCqSBJbnRlcm5hdGlvbmFs
IEJ1c2luZXNzIE1hY2hpbmVzICBDb3JwLiwgMjAwOQogKgogKiAgIFRoaXMgcHJvZ3JhbSBpcyBm
cmVlIHNvZnR3YXJlOyAgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogKiAg
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5CiAqICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKICogICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgogKgogKiAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiAgIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZQogKiAgIHRoZSBHTlUg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiAgIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CiAqICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07ICBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCiAqICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAz
MzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKICoKICogTkFNRQogKiAgICAgIHB0aHJlYWRf
Y29uZF9oYW5nLmMKICoKICogREVTQ1JJUFRJT04KICogICAgICBVc2luZyB2YW5pbGxhIGNvbmQg
dmFycyByZXN1bHRzIGluIGEgcHRocmVhZF9jb25kX3dhaXQgcHJpb3JpdHkKICogICAgICBpbnZl
cnNpb24gZGVhZGxvY2suIFdpdGggUEkgY29uZCB2YXJzIGl0IHdvcmtzIGZpbmUuCiAqCiAqIFVT
QUdFOgogKiAgICAgIGdjYyAtRF9HTlVfU09VUkNFIC1scHRocmVhZCAtbHJ0IC1sZGwgcHRocmVh
ZF9jb25kX2hhbmcuYyBcCiAqICAgICAgLW8gcHRocmVhZF9jb25kX2hhbmcKICoKICogICAgICBl
eHBvcnQgTERfTElCUkFSWV9QQVRIPXBhdGhfdG9fbGlicHRocmVhZC5zb193aXRoX3BpX2NvbmRf
YXBpCiAqICAgICAgLi9wdGhyZWFkX2NvbmRfaGFuZyA9PiBXSUxMIFBBU1MgKG9uIFNNUCkKICog
ICAgICB0YXNrc2V0IC1jIDAgLi9wdGhyZWFkX2NvbmRfaGFuZyAtcDAgPT4gV0lMTCBIQU5HCiAq
ICAgICAgdGFza3NldCAtYyAwIC4vcHRocmVhZF9jb25kX2hhbmcgLXAxID0+IFdJTEwgUEFTUwog
KgogKiBBVVRIT1IKICogICAgICBEaW5ha2FyIEd1bmlndW50YWxhIDxkaW5vQGluLmlibS5jb20+
CiAqCiAqIEhJU1RPUlkKICogICAgICAyMDA5LU5vdi0wNDogQ3JlYXRlZCBiYXNlZCBvbiBKb2hu
IFN0dWx0eidzIHRlc3RjYXNlCiAqICAgICAgMjAwOS1Ob3YtMTI6IEFkZGVkIGRsc3ltIHN1cHBv
cnQgYnkgRGFycmVuIEhhcnQgPGR2aGx0Y0B1cy5pYm0uY29tPgogKgogKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKiovCgojaW5jbHVkZSA8ZGxmY24uaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxz
Y2hlZC5oPgojaW5jbHVkZSA8cHRocmVhZC5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRl
IDx1bmlzdGQuaD4KI2luY2x1ZGUgPGdldG9wdC5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CgojZGVm
aW5lIE5VTV9USFJFQURTCTEKI2RlZmluZSBMT1dfUFJJTwkzMAojZGVmaW5lIE1FRF9QUklPCTUw
CiNkZWZpbmUgSElHSF9QUklPCTcwCgpwdGhyZWFkX2NvbmRfdCByYWNlX3ZhcjsKcHRocmVhZF9t
dXRleF90IHJhY2VfbXV0OwoKcHRocmVhZF9jb25kX3Qgc2lnMSwgc2lnMiwgc2lnMzsKcHRocmVh
ZF9tdXRleF90IG0xLCBtMiwgbTM7Cgp1bnNpZ25lZCBpbnQgdXNlX3BpID0gMDsKdW5zaWduZWQg
aW50IGRvbmUgPSAwOwoKaW50ICgqZGxfcHRocmVhZF9jb25kYXR0cl9zZXRwcm90b2NvbCkocHRo
cmVhZF9jb25kYXR0cl90ICphdHRyLCBpbnQgcHJvdG9jb2wpID0gTlVMTDsKCnZvaWQgdXNhZ2Uo
dm9pZCkKewoJcHJpbnRmKCJwdGhyZWFkX2NvbmRfaGFuZyBvcHRpb25zXG4iKTsKCXByaW50Zigi
ICAtcCgwLDEpCTA6IGRvbid0IHVzZSBwaSBjb25kLCAxOiB1c2UgcGkgY29uZCAoZGVmYXVsdCAw
KVxuIik7Cn0KCmludCBkbF9mdW5jdGlvbl9pbml0KCkKewoJY2hhciAqbGliID0gImxpYnB0aHJl
YWQuc28uMCI7CgljaGFyICplcnJvcjsKCWludCByZXQgPSAwOwoKCXZvaWQgKmRsX2xpYnB0aHJl
YWQgPSBkbG9wZW4obGliLCBSVExEX0xBWlkpOwoJaWYgKGRsX2xpYnB0aHJlYWQpIHsKCQlkbGVy
cm9yKCk7CgkJKih2b2lkICoqKSgmZGxfcHRocmVhZF9jb25kYXR0cl9zZXRwcm90b2NvbCkgPSAK
CQkJZGxzeW0oZGxfbGlicHRocmVhZCwgInB0aHJlYWRfY29uZGF0dHJfc2V0cHJvdG9jb2wiKTsK
CQllcnJvciA9IGRsZXJyb3IoKTsKCQlpZiAoZXJyb3IpCgkJCWZwcmludGYoc3RkZXJyLCAiJXNc
biIsIGVycm9yKTsKCQlkbGNsb3NlKGRsX2xpYnB0aHJlYWQpOwoKCX0gZWxzZSB7CgkJZXJyb3Ig
PSBkbGVycm9yKCk7CgkJZnByaW50ZihzdGRlcnIsICJkbG9wZW4gZmFpbGVkOiAlc1xuIiwgZXJy
b3IpOwoJCXJldCA9IC0xOwoJfQoJcmV0dXJuIHJldDsKfQoKaW50IHBhcnNlX2FyZ3MoaW50IGMs
IGNoYXIgKnZbXSkKewoJY2hhciBvcHRpb25zW10gPSAicDpoIjsKCWludCBvcDsKCgl3aGlsZSAo
KG9wID0gZ2V0b3B0KGMsIHYsIG9wdGlvbnMpKSAhPSAtMSkgewoJCXN3aXRjaCAob3ApIHsKCQkJ
Y2FzZSAncCc6CgkJCQl1c2VfcGkgPSBhdG9pKG9wdGFyZyk7CgkJCQlicmVhazsKCgkJCWNhc2Ug
J2gnOgoJCQlkZWZhdWx0OgoJCQkJdXNhZ2UoKTsKCQkJCWV4aXQoMCk7CgkJfQoJfQoJcmV0dXJu
IDA7Cn0KCnZvaWQqIGxvd190aHJlYWQodm9pZCogYXJnKQp7CgkvKnNpZ25hbCBibG9jayovCglw
dGhyZWFkX211dGV4X2xvY2soJm0xKTsKCXB0aHJlYWRfY29uZF93YWl0KCZzaWcxLCAmbTEpOwoK
CS8qcmFjZSBibG9jayovCglwdGhyZWFkX211dGV4X2xvY2soJnJhY2VfbXV0KTsKCXByaW50Zigi
TG93IHByaW8gdGhyZWFkOiBsb2NrZWRcbiIpOwoJcHRocmVhZF9jb25kX3NpZ25hbCgmc2lnMik7
CgoJcHRocmVhZF9jb25kX3dhaXQoJnJhY2VfdmFyLCAmcmFjZV9tdXQpOwoJcHJpbnRmKCJMb3cg
cHJpbyB0aHJlYWQ6IGRvbmUgd2FpdGluZ1xuIik7CglwdGhyZWFkX211dGV4X3VubG9jaygmcmFj
ZV9tdXQpOwoKCXJldHVybiBOVUxMOwp9CgoKdm9pZCogaGlnaF90aHJlYWQodm9pZCogYXJnKQp7
CgkvKnNpZ25hbCBibG9jayovCglwdGhyZWFkX211dGV4X2xvY2soJm0yKTsKCXB0aHJlYWRfY29u
ZF93YWl0KCZzaWcyLCAmbTIpOwoKCS8qcmFjZSBibG9jayovCglwdGhyZWFkX211dGV4X2xvY2so
JnJhY2VfbXV0KTsKCXByaW50ZigiSGkgIHByaW8gdGhyZWFkOiBsb2NrZWRcbiIpOwoKCXB0aHJl
YWRfY29uZF9zaWduYWwoJnNpZzMpOwoKCXB0aHJlYWRfY29uZF93YWl0KCZyYWNlX3ZhciwgJnJh
Y2VfbXV0KTsKCXByaW50ZigiSGkgIHByaW8gdGhyZWFkOiBkb25lIHdhaXRpbmdcbiIpOwoJcHRo
cmVhZF9tdXRleF91bmxvY2soJnJhY2VfbXV0KTsKCglkb25lID0gMTsKCXJldHVybiBOVUxMOwp9
CgoKdm9pZCogbWVkaXVtX3RocmVhZCh2b2lkKiBhcmcpCnsKCS8qc2lnbmFsIGJsb2NrKi8KCXB0
aHJlYWRfbXV0ZXhfbG9jaygmbTMpOwoJcHRocmVhZF9jb25kX3dhaXQoJnNpZzMsICZtMyk7CgoJ
cHJpbnRmKCJNZWQgcHJpbyB0aHJlYWQ6IHNwaW5uaW5nXG4iKTsKCgkvKnJhY2UgYmxvY2sqLwoJ
d2hpbGUoIWRvbmUpCgkJLypidXN5IHdhaXQgdG8gYmxvY2sgbG93IHRocmVhZHMqLzsKCXJldHVy
biBOVUxMOwp9CgoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKewoJcHRocmVhZF90
IGxvd190aHJlYWRzW05VTV9USFJFQURTXTsKCXB0aHJlYWRfdCBtZWRfdGhyZWFkc1tOVU1fVEhS
RUFEU107CglwdGhyZWFkX3QgaGlfdGhyZWFkc1tOVU1fVEhSRUFEU107CglzdHJ1Y3Qgc2NoZWRf
cGFyYW0gcGFyYW07CglwdGhyZWFkX2F0dHJfdCBhdHRyOwoJcHRocmVhZF9tdXRleGF0dHJfdCBt
X2F0dHI7CglwdGhyZWFkX2NvbmRhdHRyX3QgY19hdHRyOwoKCWludCBpLCByZXQ7CgoJcGFyc2Vf
YXJncyhhcmdjLCBhcmd2KTsKCglpZiAodXNlX3BpICYmIChyZXQgPSBkbF9mdW5jdGlvbl9pbml0
KCkpICE9IDApCgkJcmV0dXJuIHJldDsKCglwdGhyZWFkX2F0dHJfaW5pdCgmYXR0cik7CiAgICAg
ICAgcHRocmVhZF9hdHRyX3NldGluaGVyaXRzY2hlZCgmYXR0ciwgUFRIUkVBRF9FWFBMSUNJVF9T
Q0hFRCk7CiAgICAgICAgcHRocmVhZF9hdHRyX3NldHNjaGVkcG9saWN5KCZhdHRyLCBTQ0hFRF9G
SUZPKTsKCglwdGhyZWFkX2NvbmRhdHRyX2luaXQoJmNfYXR0cik7CgoJaWYgKHVzZV9waSkgewoJ
CWlmIChkbF9wdGhyZWFkX2NvbmRhdHRyX3NldHByb3RvY29sKSB7CgkJCWRsX3B0aHJlYWRfY29u
ZGF0dHJfc2V0cHJvdG9jb2woJmNfYXR0ciwgUFRIUkVBRF9QUklPX0lOSEVSSVQpOwoJCX0gZWxz
ZSB7CgkJCWZwcmludGYoc3RkZXJyLCAiUEkgQ29uZHZhcnMgdW5hdmFpbGFibGUsIGFib3J0aW5n
XG4iKTsKCQkJcmV0dXJuIC0xOwoJCX0KCX0KCglpZiAoKHJldCA9IHB0aHJlYWRfY29uZF9pbml0
KCZzaWcxLCAmY19hdHRyKSkgIT0gMCkKCQlwZXJyb3IoIkZhaWxlZCB0byBpbml0IGNvbmQgc2ln
MSIpOwoJaWYgKChyZXQgPSBwdGhyZWFkX2NvbmRfaW5pdCgmc2lnMiwgJmNfYXR0cikpICE9IDAp
CgkJcGVycm9yKCJGYWlsZWQgdG8gaW5pdCBjb25kIHNpZzIiKTsKCWlmICgocmV0ID0gcHRocmVh
ZF9jb25kX2luaXQoJnNpZzMsICZjX2F0dHIpKSAhPSAwKQoJCXBlcnJvcigiRmFpbGVkIHRvIGlu
aXQgY29uZCBzaWczIik7CglpZiAoKHJldCA9IHB0aHJlYWRfY29uZF9pbml0KCZyYWNlX3Zhciwg
JmNfYXR0cikpICE9IDApCgkJcGVycm9yKCJGYWlsZWQgdG8gaW5pdCBjb25kIHJhY2VfdmFyIik7
CgoJcHRocmVhZF9tdXRleGF0dHJfaW5pdCgmbV9hdHRyKTsKCXB0aHJlYWRfbXV0ZXhhdHRyX3Nl
dHByb3RvY29sKCZtX2F0dHIsIFBUSFJFQURfUFJJT19JTkhFUklUKTsKCWlmICgocmV0ID0gcHRo
cmVhZF9tdXRleF9pbml0KCZtMSwgJm1fYXR0cikpICE9IDApCgkJcGVycm9yKCJGYWlsZWQgdG8g
aW5pdCBtdXRleCBtMSIpOwoJaWYgKChyZXQgPSBwdGhyZWFkX211dGV4X2luaXQoJm0yLCAmbV9h
dHRyKSkgIT0gMCkKCQlwZXJyb3IoIkZhaWxlZCB0byBpbml0IG11dGV4IG0yIik7CglpZiAoKHJl
dCA9IHB0aHJlYWRfbXV0ZXhfaW5pdCgmbTMsICZtX2F0dHIpKSAhPSAwKQoJCXBlcnJvcigiRmFp
bGVkIHRvIGluaXQgbXV0ZXggbTMiKTsKCWlmICgocmV0ID0gcHRocmVhZF9tdXRleF9pbml0KCZy
YWNlX211dCwgJm1fYXR0cikpICE9IDApCgkJcGVycm9yKCJGYWlsZWQgdG8gaW5pdCBtdXRleCBy
YWNlX211dCIpOwoKCXBhcmFtLnNjaGVkX3ByaW9yaXR5ID0gOTA7CiAgICAgICAgc2NoZWRfc2V0
c2NoZWR1bGVyKDAsIFNDSEVEX0ZJRk8sICZwYXJhbSk7CgoJcGFyYW0uc2NoZWRfcHJpb3JpdHkg
PSBMT1dfUFJJTzsKICAgICAgICBwdGhyZWFkX2F0dHJfc2V0c2NoZWRwYXJhbSgmYXR0ciwgJnBh
cmFtKTsKCWZvcihpPTA7IGk8TlVNX1RIUkVBRFM7IGkrKykKCQlwdGhyZWFkX2NyZWF0ZSgmbG93
X3RocmVhZHNbaV0sICZhdHRyLCBsb3dfdGhyZWFkLCh2b2lkKilOVUxMKTsKCglwYXJhbS5zY2hl
ZF9wcmlvcml0eSA9IE1FRF9QUklPOwogICAgICAgIHB0aHJlYWRfYXR0cl9zZXRzY2hlZHBhcmFt
KCZhdHRyLCAmcGFyYW0pOwoJZm9yKGk9MDsgaTxOVU1fVEhSRUFEUzsgaSsrKQoJCXB0aHJlYWRf
Y3JlYXRlKCZtZWRfdGhyZWFkc1tpXSwgJmF0dHIsIG1lZGl1bV90aHJlYWQsKHZvaWQqKU5VTEwp
OwoKCXBhcmFtLnNjaGVkX3ByaW9yaXR5ID0gSElHSF9QUklPOwogICAgICAgIHB0aHJlYWRfYXR0
cl9zZXRzY2hlZHBhcmFtKCZhdHRyLCAmcGFyYW0pOwoJZm9yKGk9MDsgaTxOVU1fVEhSRUFEUzsg
aSsrKQoJCXB0aHJlYWRfY3JlYXRlKCZoaV90aHJlYWRzW2ldLCAmYXR0ciwgaGlnaF90aHJlYWQs
KHZvaWQqKU5VTEwpOwoKCXVzbGVlcCgxMDAwKTsKCXB0aHJlYWRfY29uZF9zaWduYWwoJnNpZzEp
OwoJdXNsZWVwKDEwMDApOwoJcHRocmVhZF9jb25kX2Jyb2FkY2FzdCgmcmFjZV92YXIpOwoKCWZv
cihpPTA7IGk8TlVNX1RIUkVBRFM7IGkrKykKCQlwdGhyZWFkX2pvaW4obG93X3RocmVhZHNbaV0s
ICh2b2lkKiopIE5VTEwpOwoJZm9yKGk9MDsgaTxOVU1fVEhSRUFEUzsgaSsrKQoJCXB0aHJlYWRf
am9pbihtZWRfdGhyZWFkc1tpXSwgKHZvaWQqKikgTlVMTCk7Cglmb3IoaT0wOyBpPE5VTV9USFJF
QURTOyBpKyspCgkJcHRocmVhZF9qb2luKGhpX3RocmVhZHNbaV0sICh2b2lkKiopIE5VTEwpOwoK
CXJldHVybiAwOwp9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
              isurl="0"
          >
            <attachid>4780</attachid>
            <date>2010-05-11 18:50:00 +0000</date>
            <delta_ts>2010-05-13 08:07:07 +0000</delta_ts>
            <desc>pi condvar: pthread_condattr_setprotocol_np 2.12 port</desc>
            <filename>0001-pi-condvar-pthread_condattr_setprotocol_np-2.12-port.patch</filename>
            <type>text/plain</type>
            <size>37894</size>
            <attacher>dvhltc</attacher>
            
              <data encoding="base64">RnJvbSA0OTBkYjQ3NTNhMmFmODkxMDhkOTYyZDkwOTRlOTg3MzkxZjhmMzRkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXJyZW4gSGFydCA8ZHZobHRjQHVzLmlibS5jb20+CkRhdGU6
IE1vbiwgMTAgTWF5IDIwMTAgMjA6MzU6NDQgLTA0MDAKU3ViamVjdDogW1BBVENIIDEvMl0gcGkg
Y29uZHZhcjogcHRocmVhZF9jb25kYXR0cl9zZXRwcm90b2NvbF9ucCAyLjEyIHBvcnQKClRoaXMg
aXMgYW4gUkZDIGZvciBjb252ZXJ0aW5nIHRoZSBpbnRlcm5hbCBjb25kdmFyIGxvY2sgdG8gYmUg
UEktYXdhcmUuClRoZSBwYXRjaCBvbmx5IHVwZGF0ZXMgdGhlIGdlbmVyaWMgJ2MnIGNvZGUgYW5k
IG5vdCB0aGUgYXJjaCBzcGVjaWZpYwpjb2RlIGFzIEkgd2FudGVkIHRvIGdldCBmZWVkYmFjayBi
ZWZvcmUgZGVsdmluZyBpbnRvIHRoZSBhY3R1YWwKaW1wbGVtZW50YXRpb24gKGFuZCBhbGwgb2Yg
dGhlIGFzc2VtYmx5ISkKKFRoZSBwYXRjaCBoYXMgc29tZSB1Z2x5IGlubGluZSBhc20gdG8gYmUg
YWJsZSB0byB0ZXN0IHRoZSBnZW5lcmljCiBpbXBsZW1lbnRhdGlvbikKClRoZSBwYXRjaCBjb250
YWlucyB0aGUgZm9sbG93aW5nCgoxLiBBZGQgdHdvIG5ldyBBUElzIHRvIGV4cGxpY2l0bHkgc2V0
IHRoZSBjb25kdmFyIHRvIGJlIFBJIGF3YXJlLAogICBwdGhyZWFkX2NvbmRhdHRyX2dldHByb3Rv
Y29sX25wIGFuZCBwdGhyZWFkX2NvbmRhdHRyX3NldHByb3RvY29sX25wLgogICBUaGVzZSB0d28g
QVBJcyBhcmUgZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQgdG8gdGhlCiAgIHB0aHJlYWRfbXV0ZXhh
dHRyX2cocylldHByb3RvY29sIGZ1bmN0aW9ucyBhbmQgYWNjZXB0IHRoZSBzYW1lIHNldCBvZgog
ICBhcmd1bWVudHMuIChQVEhSRUFEX1BSSU9fTk9ORSwgUFRIUkVBRF9QUklPX0lOSEVSSVQgYW5k
CiAgIFBUSFJFQURfUFJJT19QUk9URUNUKS4gVGhvdWdoIFBUSFJFQURfUFJJT19QUk9URUNUIGlz
IGN1cnJlbnRseSBub3QKICAgc3VwcG9ydGVkLgogICBUaGUgaW5pdGlhbCBhcHByb2FjaCB0cmll
ZCB0byBhdm9pZCBjcmVhdGluZyB0aGVzZSB0d28gbmV3IEFQSXMgYW5kCiAgIGluc3RlYWQgY2hl
Y2tlZCB0byBzZWUgaWYgdGhlIG11dGV4IGFzc29jaWF0ZWQgd2l0aCB0aGUgY29uZHZhcgogICB3
YXMgUEkuIElmIHNvIGl0IHRoZW4gdXNlZCB0aGUgUEkga2VybmVsIHByaW1pdGl2ZXMgZm9yIHRo
ZSBjb25kIGxvY2suCiAgIEhvd2V2ZXIgdGhlIHNpZ25hbGxpbmcgdGhyZWFkIChwdGhyZWFkX2Nv
bmRfYnJvYWRjYXN0L3NpZ25hbCkgY2FuCiAgIHJhY2Ugd2l0aCB0aGUgd2FpdGVyIHRocmVhZCAo
cHRocmVhZF9jb25kXyh0aW1lZCl3YWl0KSBhbmQgc28gaXQgaXMKICAgbm90IGFsd2F5cyBwb3Nz
aWJsZSB0byBkZXRlcm1pbmUgd2hhdCBraW5kIG9mIGEgbXV0ZXggaXMgYXNzb2NpYXRlZAogICB3
aXRoIHRoZSBjb25kdmFyIGF0IHNpZ25hbCB0aW1lLCB3aGljaCBpcyB3aGF0IGxlZCB0byB0aGVz
ZSAyIG5ldyBBUElzLgoKMi4gVGhlIGltcGxlbWVudGF0aW9uIHVzZXMgMiBiaXRzIG9mIHRoZSBf
X253YWl0ZXJzIGZpZWxkIHRvIHJlcHJlc2VudCB0aGUKICAgY29uZCBwcm90b2NvbCAoT25lIG9m
IFBUSFJFQURfUFJJT19OT05FLCBQVEhSRUFEX1BSSU9fSU5IRVJJVCBvcgogICBQVEhSRUFEX1BS
SU9fUFJPVEVDVCkuIFRoaXMgbGVhdmVzIDI5IGJpdHMgZm9yIHRoZSBfX253YWl0ZXJzIGZpZWxk
LAogICB3aGljaCBpcyBzdGlsbCBwcmV0dHkgbGFyZ2UgSU1PIGFzIGl0IGlzIG9ubHkgdXNlZCB0
byBrZWVwIHRyYWNrIG9mIHRoZQogICBsYXN0IHdhaXRlciBmb3IgY2xlYW51cCBwdXJwb3Nlcy4g
KEhvcGVmdWxseSB0aGVyZSB3b250IGJlIG1vcmUgdGhhbgogICA1MTJNIHdhaXRlcnMhKQoKVGhl
IHBhdGNoIGlzIGFnYWluc3QgbGF0ZXN0IGdpdAoKSSBoYXZlIGRvbmUgYSBzYW5pdHkgdGVzdCB3
aXRoIHRoZSBhYm92ZSBwYXRjaCB0byBzZWUgaWYgaXQgc29sdmVzIHRoZQpwcmlvcml0eSBpbnZl
cnNpb24gcHJvYmxlbSB0aGF0IHdlIHdlcmUgc2VlaW5nIGVhcmxpZXIgd2l0aG91dCB0aGlzIGNo
YW5nZS4KSSdsbCBhdHRhY2ggdGhlIHRlc3RjYXNlIGluIHRoZSBmb2xsb3dpbmcgbWFpbC4KClRo
aXMgcGF0Y2ggaGFzIGJlZW4gZm9yd2FyZCBwb3J0ZWQgdG8gdGhlIDIuMTIgcmVsZWFzZSBieSBE
YXJyZW4gSGFydC4KClNpZ25lZC1vZmYtYnk6IERpbmFrYXIgR3VuaWd1bnRhbGEgPGRpbm9AaW4u
aWJtLmNvbT4KU2lnbmVkLW9mZi1ieTogRGFycmVuIEhhcnQgPGR2aGx0Y0B1cy5pYm0uY29tPgot
LS0KIFZlcnNpb25zLmRlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMSArCiBucHRsL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgIDEgKwogbnB0bC9WZXJzaW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICA0ICsKIG5wdGwvcHRocmVhZF9jb25kX2Jyb2FkY2FzdC5jICAgICAgICAgICAg
ICAgICAgICAgIHwgICA1OSArKysrKysrKy0tLS0tCiBucHRsL3B0aHJlYWRfY29uZF9pbml0LmMg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMjMgKysrKystCiBucHRsL3B0aHJlYWRfY29u
ZF9zaWduYWwuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzcgKysrKysrKy0tCiBucHRs
L3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYyAgICAgICAgICAgICAgICAgICAgICB8ICAgNDAgKysr
KysrKy0tCiBucHRsL3B0aHJlYWRfY29uZF93YWl0LmMgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgODkgKysrKysrKysrKysrKysrKystLS0KIG5wdGwvcHRocmVhZF9jb25kYXR0cl9nZXRj
bG9jay5jICAgICAgICAgICAgICAgICAgIHwgICAgNyArLQogbnB0bC9wdGhyZWFkX2NvbmRhdHRy
X2dldHByb3RvY29sX25wLmMgICAgICAgICAgICAgfCAgIDM0ICsrKysrKysrCiBucHRsL3B0aHJl
YWRfY29uZGF0dHJfc2V0Y2xvY2suYyAgICAgICAgICAgICAgICAgICB8ICAgIDYgKy0KIG5wdGwv
cHRocmVhZF9jb25kYXR0cl9zZXRwcm90b2NvbF9ucC5jICAgICAgICAgICAgIHwgICAzOSArKysr
KysrKysKIG5wdGwvc3lzZGVwcy9wdGhyZWFkL2NvbmQtbG9jay5oICAgICAgICAgICAgICAgICAg
IHwgICA1OCArKysrKysrKysrKysrCiBucHRsL3N5c2RlcHMvcHRocmVhZC9wdGhyZWFkLmggICAg
ICAgICAgICAgICAgICAgICB8ICAgMTIgKysrCiBucHRsL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4
L2kzODYvbG93bGV2ZWxsb2NrLmggICB8ICAgODggKysrKysrKysrKysrKysrKysrKy0KIG5wdGwv
c3lzZGVwcy91bml4L3N5c3YvbGludXgvaW50ZXJuYWx0eXBlcy5oICAgICAgIHwgICAzMCArKysr
Ky0tCiBucHRsL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82NC9sb3dsZXZlbGxvY2suaCB8
ICAgNDAgKysrKysrKysrCiAxNyBmaWxlcyBjaGFuZ2VkLCA1MDIgaW5zZXJ0aW9ucygrKSwgNjYg
ZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbnB0bC9wdGhyZWFkX2NvbmRhdHRyX2dl
dHByb3RvY29sX25wLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBucHRsL3B0aHJlYWRfY29uZGF0dHJf
c2V0cHJvdG9jb2xfbnAuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IG5wdGwvc3lzZGVwcy9wdGhyZWFk
L2NvbmQtbG9jay5oCgpkaWZmIC0tZ2l0IGEvVmVyc2lvbnMuZGVmIGIvVmVyc2lvbnMuZGVmCmlu
ZGV4IGVhYjAwNmIuLjI2NTM1YjUgMTAwNjQ0Ci0tLSBhL1ZlcnNpb25zLmRlZgorKysgYi9WZXJz
aW9ucy5kZWYKQEAgLTkyLDYgKzkyLDcgQEAgbGlicHRocmVhZCB7CiAgIEdMSUJDXzIuNgogICBH
TElCQ18yLjExCiAgIEdMSUJDXzIuMTIKKyAgR0xJQkNfMi4xMwogICBHTElCQ19QUklWQVRFCiB9
CiBsaWJyZXNvbHYgewpkaWZmIC0tZ2l0IGEvbnB0bC9NYWtlZmlsZSBiL25wdGwvTWFrZWZpbGUK
aW5kZXggOTgyZGI4ZS4uNmQxOTEzZSAxMDA2NDQKLS0tIGEvbnB0bC9NYWtlZmlsZQorKysgYi9u
cHRsL01ha2VmaWxlCkBAIC03NSw2ICs3NSw3IEBAIGxpYnB0aHJlYWQtcm91dGluZXMgPSBucHRs
LWluaXQgdmFycyBldmVudHMgdmVyc2lvbiBcCiAJCSAgICAgIG9sZF9wdGhyZWFkX2NvbmRfc2ln
bmFsIG9sZF9wdGhyZWFkX2NvbmRfYnJvYWRjYXN0IFwKIAkJICAgICAgcHRocmVhZF9jb25kYXR0
cl9pbml0IHB0aHJlYWRfY29uZGF0dHJfZGVzdHJveSBcCiAJCSAgICAgIHB0aHJlYWRfY29uZGF0
dHJfZ2V0cHNoYXJlZCBwdGhyZWFkX2NvbmRhdHRyX3NldHBzaGFyZWQgXAorCQkgICAgICBwdGhy
ZWFkX2NvbmRhdHRyX2dldHByb3RvY29sX25wIHB0aHJlYWRfY29uZGF0dHJfc2V0cHJvdG9jb2xf
bnAgXAogCQkgICAgICBwdGhyZWFkX2NvbmRhdHRyX2dldGNsb2NrIHB0aHJlYWRfY29uZGF0dHJf
c2V0Y2xvY2sgXAogCQkgICAgICBwdGhyZWFkX3NwaW5faW5pdCBwdGhyZWFkX3NwaW5fZGVzdHJv
eSBcCiAJCSAgICAgIHB0aHJlYWRfc3Bpbl9sb2NrIHB0aHJlYWRfc3Bpbl90cnlsb2NrIFwKZGlm
ZiAtLWdpdCBhL25wdGwvVmVyc2lvbnMgYi9ucHRsL1ZlcnNpb25zCmluZGV4IGY3NDk0MWYuLjQ5
YTg5ZTggMTAwNjQ0Ci0tLSBhL25wdGwvVmVyc2lvbnMKKysrIGIvbnB0bC9WZXJzaW9ucwpAQCAt
MjUxLDYgKzI1MSwxMCBAQCBsaWJwdGhyZWFkIHsKICAgICBwdGhyZWFkX3NldG5hbWVfbnA7IHB0
aHJlYWRfZ2V0bmFtZV9ucDsKICAgfTsKIAorICBHTElCQ18yLjEzIHsKKyAgICBwdGhyZWFkX2Nv
bmRhdHRyX2dldHByb3RvY29sX25wOyBwdGhyZWFkX2NvbmRhdHRyX3NldHByb3RvY29sX25wOwor
ICB9CisKICAgR0xJQkNfUFJJVkFURSB7CiAgICAgX19wdGhyZWFkX2luaXRpYWxpemVfbWluaW1h
bDsKICAgICBfX3B0aHJlYWRfY2xvY2tfZ2V0dGltZTsgX19wdGhyZWFkX2Nsb2NrX3NldHRpbWU7
CmRpZmYgLS1naXQgYS9ucHRsL3B0aHJlYWRfY29uZF9icm9hZGNhc3QuYyBiL25wdGwvcHRocmVh
ZF9jb25kX2Jyb2FkY2FzdC5jCmluZGV4IDIyNTIzYzIuLmQ1ZDQzNDggMTAwNjQ0Ci0tLSBhL25w
dGwvcHRocmVhZF9jb25kX2Jyb2FkY2FzdC5jCisrKyBiL25wdGwvcHRocmVhZF9jb25kX2Jyb2Fk
Y2FzdC5jCkBAIC0xLDQgKzEsNCBAQAotLyogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA2
LCAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorLyogQ29weXJpZ2h0IChDKSAy
MDAzLCAyMDA0LCAyMDA2LCAyMDA3LCAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LgogICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCiAgICBDb250cmli
dXRlZCBieSBNYXJ0aW4gU2Nod2lkZWZza3kgPHNjaHdpZGVmc2t5QGRlLmlibS5jb20+LCAyMDAz
LgogCkBAIC0yNyw2ICsyNyw4IEBACiAjaW5jbHVkZSA8c2hsaWItY29tcGF0Lmg+CiAjaW5jbHVk
ZSA8a2VybmVsLWZlYXR1cmVzLmg+CiAKKyNpbmNsdWRlICJjb25kLWxvY2suaCIKKyAKIAogaW50
CiBfX3B0aHJlYWRfY29uZF9icm9hZGNhc3QgKGNvbmQpCkBAIC0zNCw4ICszNiw5IEBAIF9fcHRo
cmVhZF9jb25kX2Jyb2FkY2FzdCAoY29uZCkKIHsKICAgaW50IHBzaGFyZWQgPSAoY29uZC0+X19k
YXRhLl9fbXV0ZXggPT0gKHZvaWQgKikgfjBsKQogCQk/IExMTF9TSEFSRUQgOiBMTExfUFJJVkFU
RTsKKwogICAvKiBNYWtlIHN1cmUgd2UgYXJlIGFsb25lLiAgKi8KLSAgbGxsX2xvY2sgKGNvbmQt
Pl9fZGF0YS5fX2xvY2ssIHBzaGFyZWQpOworICBjb25kX2xvY2soY29uZCwgcHNoYXJlZCk7CiAK
ICAgLyogQXJlIHRoZXJlIGFueSB3YWl0ZXJzIHRvIGJlIHdva2VuPyAgKi8KICAgaWYgKGNvbmQt
Pl9fZGF0YS5fX3RvdGFsX3NlcSA+IGNvbmQtPl9fZGF0YS5fX3dha2V1cF9zZXEpCkBAIC00NSwz
NiArNDgsNDggQEAgX19wdGhyZWFkX2NvbmRfYnJvYWRjYXN0IChjb25kKQogICAgICAgY29uZC0+
X19kYXRhLl9fd29rZW5fc2VxID0gY29uZC0+X19kYXRhLl9fdG90YWxfc2VxOwogICAgICAgY29u
ZC0+X19kYXRhLl9fZnV0ZXggPSAodW5zaWduZWQgaW50KSBjb25kLT5fX2RhdGEuX190b3RhbF9z
ZXEgKiAyOwogICAgICAgaW50IGZ1dGV4X3ZhbCA9IGNvbmQtPl9fZGF0YS5fX2Z1dGV4OworICAg
ICAgcHRocmVhZF9tdXRleF90ICptdXQgPSAocHRocmVhZF9tdXRleF90ICopIGNvbmQtPl9fZGF0
YS5fX211dGV4OworICAgICAgaW50IGVycjsKICAgICAgIC8qIFNpZ25hbCB0aGF0IGEgYnJvYWRj
YXN0IGhhcHBlbmVkLiAgKi8KICAgICAgICsrY29uZC0+X19kYXRhLl9fYnJvYWRjYXN0X3NlcTsK
IAogICAgICAgLyogV2UgYXJlIGRvbmUuICAqLwotICAgICAgbGxsX3VubG9jayAoY29uZC0+X19k
YXRhLl9fbG9jaywgcHNoYXJlZCk7CisgICAgICBjb25kX3VubG9jayhjb25kLCBwc2hhcmVkKTsK
IAogICAgICAgLyogRG8gbm90IHVzZSByZXF1ZXVlIGZvciBwc2hhcmVkIGNvbmR2YXJzLiAgKi8K
ICAgICAgIGlmIChjb25kLT5fX2RhdGEuX19tdXRleCA9PSAodm9pZCAqKSB+MGwpCiAJZ290byB3
YWtlX2FsbDsKIAotICAgICAgLyogV2FrZSBldmVyeWJvZHkuICAqLwotICAgICAgcHRocmVhZF9t
dXRleF90ICptdXQgPSAocHRocmVhZF9tdXRleF90ICopIGNvbmQtPl9fZGF0YS5fX211dGV4Owot
Ci0gICAgICAvKiBYWFg6IEtlcm5lbCBzbyBmYXIgZG9lc24ndCBzdXBwb3J0IHJlcXVldWUgdG8g
UEkgZnV0ZXguICAqLwotICAgICAgLyogWFhYOiBLZXJuZWwgc28gZmFyIGNhbiBvbmx5IHJlcXVl
dWUgdG8gdGhlIHNhbWUgdHlwZSBvZiBmdXRleCwKLQkgaW4gdGhpcyBjYXNlIHByaXZhdGUgKHdl
IGRvbid0IHJlcXVldWUgZm9yIHBzaGFyZWQgY29uZHZhcnMpLiAgKi8KKyAgICAgIC8qIFdlIGRv
bid0IHJlcXVldWUgZm9yIHBzaGFyZWQgY29uZHZhcnMgICovCiAgICAgICBpZiAoX19idWlsdGlu
X2V4cGVjdCAobXV0LT5fX2RhdGEuX19raW5kCi0JCQkgICAgJiAoUFRIUkVBRF9NVVRFWF9QUklP
X0lOSEVSSVRfTlAKLQkJCSAgICAgICB8IFBUSFJFQURfTVVURVhfUFNIQVJFRF9CSVQpLCAwKSkK
LQlnb3RvIHdha2VfYWxsOwotCi0gICAgICAvKiBsbGxfZnV0ZXhfcmVxdWV1ZSByZXR1cm5zIDAg
Zm9yIHN1Y2Nlc3MgYW5kIG5vbi16ZXJvCi0JIGZvciBlcnJvcnMuICAqLwotICAgICAgaWYgKF9f
YnVpbHRpbl9leHBlY3QgKGxsbF9mdXRleF9yZXF1ZXVlICgmY29uZC0+X19kYXRhLl9fZnV0ZXgs
IDEsCi0JCQkJCSAgICAgICBJTlRfTUFYLCAmbXV0LT5fX2RhdGEuX19sb2NrLAotCQkJCQkgICAg
ICAgZnV0ZXhfdmFsLCBMTExfUFJJVkFURSksIDApKQorCQkJICAgICYgUFRIUkVBRF9NVVRFWF9Q
U0hBUkVEX0JJVCwgMCkpCisgCWdvdG8gd2FrZV9hbGw7CisgCisgICAgICBpZiAoX19idWlsdGlu
X2V4cGVjdCAobXV0LT5fX2RhdGEuX19raW5kCisgCQkJICAgICYgUFRIUkVBRF9NVVRFWF9QUklP
X0lOSEVSSVRfTlAsIDApKQorCXsKKwkgLyogbGxsX2Z1dGV4X3JlcXVldWVfcGkgcmV0dXJucyB0
aGUgbnVtYmVyIG9mIHRhc2tzIHJlcXVldWUnZCBvbgorCSAgICBzdWNjZXNzIGFuZCBuZWdhdGl2
ZSBmb3IgZXJyb3JzLiAgKi8KKyAgICAgICAgIGVyciA9IGxsbF9mdXRleF9yZXF1ZXVlX3BpICgm
Y29uZC0+X19kYXRhLl9fZnV0ZXgsIDEsIElOVF9NQVgsIAorCQkJCSAgICAgJm11dC0+X19kYXRh
Ll9fbG9jaywgZnV0ZXhfdmFsLAorCQkJCSAgICAgTExMX1BSSVZBVEUpOworCSAvKiBUaGUgcmVx
dWV1ZV9waSBmdW5jdGlvbmFsaXR5IGlzIG5vdCBhdmFpbGFibGUuICAqLworCSBpZiAoX19idWls
dGluX2V4cGVjdCAoZXJyID09IC1FTk9TWVMsIDApKQorCSAgIGdvdG8gd2FrZV9hbGw7CisJfQor
ICAgICAgZWxzZQogCXsKLQkgIC8qIFRoZSByZXF1ZXVlIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGF2
YWlsYWJsZS4gICovCi0Jd2FrZV9hbGw6Ci0JICBsbGxfZnV0ZXhfd2FrZSAoJmNvbmQtPl9fZGF0
YS5fX2Z1dGV4LCBJTlRfTUFYLCBwc2hhcmVkKTsKKwkgLyogbGxsX2Z1dGV4X3JlcXVldWVfcGkg
cmV0dXJucyB0aGUgbnVtYmVyIG9mIHRhc2tzIHJlcXVldWUnZCBvbgorCSAgICBzdWNjZXNzIGFu
ZCBuZWdhdGl2ZSBmb3IgZXJyb3JzLiAgKi8KKwkgZXJyID0gbGxsX2Z1dGV4X3JlcXVldWUgKCZj
b25kLT5fX2RhdGEuX19mdXRleCwgMSwgSU5UX01BWCwKKwkJCQkgICZtdXQtPl9fZGF0YS5fX2xv
Y2ssIGZ1dGV4X3ZhbCwKKwkJCQkgIExMTF9QUklWQVRFKTsKKwkgaWYgKF9fYnVpbHRpbl9leHBl
Y3QgKGVyciA9PSAtRU5PU1lTLCAwKSkKKwkgICB7CisJICAgIC8qIFRoZSByZXF1ZXVlIGZ1bmN0
aW9uYWxpdHkgaXMgbm90IGF2YWlsYWJsZS4gICovCisJICAgd2FrZV9hbGw6CisJICAgIGxsbF9m
dXRleF93YWtlICgmY29uZC0+X19kYXRhLl9fZnV0ZXgsIElOVF9NQVgsIHBzaGFyZWQpOworCSAg
IH0KIAl9CiAKICAgICAgIC8qIFRoYXQncyBhbGwuICAqLwpAQCAtODIsNyArOTcsNyBAQCBfX3B0
aHJlYWRfY29uZF9icm9hZGNhc3QgKGNvbmQpCiAgICAgfQogCiAgIC8qIFdlIGFyZSBkb25lLiAg
Ki8KLSAgbGxsX3VubG9jayAoY29uZC0+X19kYXRhLl9fbG9jaywgcHNoYXJlZCk7CisgIGNvbmRf
dW5sb2NrKGNvbmQsIHBzaGFyZWQpOwogCiAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvbnB0
bC9wdGhyZWFkX2NvbmRfaW5pdC5jIGIvbnB0bC9wdGhyZWFkX2NvbmRfaW5pdC5jCmluZGV4IDY1
YzAxYjEuLjMzYmI2YmIgMTAwNjQ0Ci0tLSBhL25wdGwvcHRocmVhZF9jb25kX2luaXQuYworKysg
Yi9ucHRsL3B0aHJlYWRfY29uZF9pbml0LmMKQEAgLTEsNCArMSw0IEBACi0vKiBDb3B5cmlnaHQg
KEMpIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDcsIDIwMDgKKy8qIENvcHlyaWdodCAoQykg
MjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNywgMjAwOCwgMjAxMAogICAgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuCiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGli
cmFyeS4KICAgIENvbnRyaWJ1dGVkIGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5j
b20+LCAyMDAyLgpAQCAtMzIsOSArMzIsMjYgQEAgX19wdGhyZWFkX2NvbmRfaW5pdCAoY29uZCwg
Y29uZF9hdHRyKQogICBjb25kLT5fX2RhdGEuX19sb2NrID0gTExMX0xPQ0tfSU5JVElBTElaRVI7
CiAgIGNvbmQtPl9fZGF0YS5fX2Z1dGV4ID0gMDsKICAgY29uZC0+X19kYXRhLl9fbndhaXRlcnMg
PSAoaWNvbmRfYXR0ciAhPSBOVUxMCi0JCQkgICAgID8gKChpY29uZF9hdHRyLT52YWx1ZSA+PiAx
KQotCQkJCSYgKCgxIDw8IENPTkRfTldBSVRFUlNfU0hJRlQpIC0gMSkpCisJCQkgICAgID8gKChp
Y29uZF9hdHRyLT52YWx1ZSA+PiBDT05EQVRUUl9DTE9DS0lEX1NISUZUKQorCQkJCSYgKCgxIDw8
IENPTkRfUFJPVE9DT0xfU0hJRlQpIC0gMSkpCiAJCQkgICAgIDogQ0xPQ0tfUkVBTFRJTUUpOwor
ICBpZiAoaWNvbmRfYXR0ciAhPSBOVUxMKQorICAgeworICAgIHN3aXRjaCAoaWNvbmRfYXR0ci0+
dmFsdWUgJiBDT05EQVRUUl9QUk9UT0NPTF9NQVNLKQorICAgICB7CisgICAgIGNhc2UgUFRIUkVB
RF9QUklPX0lOSEVSSVQgPDwgQ09OREFUVFJfUFJPVE9DT0xfU0hJRlQ6CisgICAgICAgY29uZC0+
X19kYXRhLl9fbndhaXRlcnMgfD0gQ09ORF9QUklPX0lOSEVSSVQ7CisgICAgICAgYnJlYWs7CisK
KyAgICAgY2FzZSBQVEhSRUFEX1BSSU9fUFJPVEVDVCA8PCBDT05EQVRUUl9QUk9UT0NPTF9TSElG
VDoKKyAgICAgICBjb25kLT5fX2RhdGEuX19ud2FpdGVycyB8PSBDT05EX1BSSU9fUFJPVEVDVDsK
KyAgICAgICBicmVhazsKKworICAgICBkZWZhdWx0OgorICAgICAgIGJyZWFrOworICAgICB9Cisg
ICB9CisKICAgY29uZC0+X19kYXRhLl9fdG90YWxfc2VxID0gMDsKICAgY29uZC0+X19kYXRhLl9f
d2FrZXVwX3NlcSA9IDA7CiAgIGNvbmQtPl9fZGF0YS5fX3dva2VuX3NlcSA9IDA7CmRpZmYgLS1n
aXQgYS9ucHRsL3B0aHJlYWRfY29uZF9zaWduYWwuYyBiL25wdGwvcHRocmVhZF9jb25kX3NpZ25h
bC5jCmluZGV4IDAyM2JiYjUuLjUzZTg4M2QgMTAwNjQ0Ci0tLSBhL25wdGwvcHRocmVhZF9jb25k
X3NpZ25hbC5jCisrKyBiL25wdGwvcHRocmVhZF9jb25kX3NpZ25hbC5jCkBAIC0yNywxNiArMjcs
MTkgQEAKICNpbmNsdWRlIDxzaGxpYi1jb21wYXQuaD4KICNpbmNsdWRlIDxrZXJuZWwtZmVhdHVy
ZXMuaD4KIAorI2luY2x1ZGUgImNvbmQtbG9jay5oIgorCiAKIGludAogX19wdGhyZWFkX2NvbmRf
c2lnbmFsIChjb25kKQogICAgICBwdGhyZWFkX2NvbmRfdCAqY29uZDsKIHsKLSAgaW50IHBzaGFy
ZWQgPSAoY29uZC0+X19kYXRhLl9fbXV0ZXggPT0gKHZvaWQgKikgfjBsKQotCQk/IExMTF9TSEFS
RUQgOiBMTExfUFJJVkFURTsKKyAgaW50IGVyciwgZnV0ZXhfdmFsOworICBwdGhyZWFkX211dGV4
X3QgKm11dGV4ID0gKHB0aHJlYWRfbXV0ZXhfdCAqKSBjb25kLT5fX2RhdGEuX19tdXRleDsKKyAg
aW50IHBzaGFyZWQgPSAobXV0ZXggPT0gKHZvaWQgKikgfjBsKSA/IExMTF9TSEFSRUQgOiBMTExf
UFJJVkFURTsKIAogICAvKiBNYWtlIHN1cmUgd2UgYXJlIGFsb25lLiAgKi8KLSAgbGxsX2xvY2sg
KGNvbmQtPl9fZGF0YS5fX2xvY2ssIHBzaGFyZWQpOworICBjb25kX2xvY2soY29uZCwgcHNoYXJl
ZCk7CiAKICAgLyogQXJlIHRoZXJlIGFueSB3YWl0ZXJzIHRvIGJlIHdva2VuPyAgKi8KICAgaWYg
KGNvbmQtPl9fZGF0YS5fX3RvdGFsX3NlcSA+IGNvbmQtPl9fZGF0YS5fX3dha2V1cF9zZXEpCkBA
IC00NCwxOCArNDcsMzggQEAgX19wdGhyZWFkX2NvbmRfc2lnbmFsIChjb25kKQogICAgICAgLyog
WWVzLiAgTWFyayBvbmUgb2YgdGhlbSBhcyB3b2tlbi4gICovCiAgICAgICArK2NvbmQtPl9fZGF0
YS5fX3dha2V1cF9zZXE7CiAgICAgICArK2NvbmQtPl9fZGF0YS5fX2Z1dGV4OworICAgICAgZnV0
ZXhfdmFsID0gY29uZC0+X19kYXRhLl9fZnV0ZXg7CisgICAgICBwdGhyZWFkX211dGV4X3QgKm11
dCA9IChwdGhyZWFkX211dGV4X3QgKikgY29uZC0+X19kYXRhLl9fbXV0ZXg7CiAKKyAgICAgIC8q
IFdlIGRvbnQgZG8gcmVxdWV1ZS1waSBmb3IgcHNoYXJlZCBtdXRleGVzICovCisgICAgICBpZiAo
cHNoYXJlZCA9PSBMTExfUFJJVkFURSAmJgorCSAgbXV0LT5fX2RhdGEuX19raW5kICYgUFRIUkVB
RF9NVVRFWF9QUklPX0lOSEVSSVRfTlApCisgICAgICAgIHsKKwkgLyogbGxsX2Z1dGV4X3JlcXVl
dWVfcGkgcmV0dXJucyB0aGUgbnVtYmVyIG9mIHRhc2tzIHJlcXVldWUnZCBvbgorCSAgICBzdWNj
ZXNzIGFuZCBuZWdhdGl2ZSBmb3IgZXJyb3JzLiAgKi8KKyAgICAgICAgIGVyciA9IGxsbF9mdXRl
eF9yZXF1ZXVlX3BpICgmY29uZC0+X19kYXRhLl9fZnV0ZXgsIDEsIDAsIAorCQkJCSAgICAgJm11
dC0+X19kYXRhLl9fbG9jaywgZnV0ZXhfdmFsLAorCQkJCSAgICAgcHNoYXJlZCk7CisJIC8qIFRo
ZSByZXF1ZXVlX3BpIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGF2YWlsYWJsZS4gICovCisJIGlmIChf
X2J1aWx0aW5fZXhwZWN0IChlcnIgIT0gLUVOT1NZUywgMCkpCisgICAgICAgICAgIGdvdG8gZG9u
ZTsKKyAgICAgICAgfQorI2lmIDAKKyAgICAgIC8qIFRoaXMgaXMgbm90IG5lZWRlZCBmb3IgdGhl
IHg4Nl82NCBvciBpNjg2IGFyY2hlcyAqLwogICAgICAgLyogV2FrZSBvbmUuICAqLwotICAgICAg
aWYgKCEgX19idWlsdGluX2V4cGVjdCAobGxsX2Z1dGV4X3dha2VfdW5sb2NrICgmY29uZC0+X19k
YXRhLl9fZnV0ZXgsIDEsCi0JCQkJCQkgICAgIDEsICZjb25kLT5fX2RhdGEuX19sb2NrLAotCQkJ
CQkJICAgICBwc2hhcmVkKSwgMCkpCisgICAgICBlbHNlIGlmICghIF9fYnVpbHRpbl9leHBlY3Qg
KGxsbF9mdXRleF93YWtlX3VubG9jayAoJmNvbmQtPl9fZGF0YS5fX2Z1dGV4LAorCQkJCQkJCSAg
MSwgMSwKKwkJCQkJCQkgICZjb25kLT5fX2RhdGEuX19sb2NrLAorCQkJCQkJICAgICAgICAgIHBz
aGFyZWQpLCAwKSkKIAlyZXR1cm4gMDsKKyNlbmRpZgogCiAgICAgICBsbGxfZnV0ZXhfd2FrZSAo
JmNvbmQtPl9fZGF0YS5fX2Z1dGV4LCAxLCBwc2hhcmVkKTsKICAgICB9CiAKK2RvbmU6CiAgIC8q
IFdlIGFyZSBkb25lLiAgKi8KLSAgbGxsX3VubG9jayAoY29uZC0+X19kYXRhLl9fbG9jaywgcHNo
YXJlZCk7CisgIGNvbmRfdW5sb2NrKGNvbmQsIHBzaGFyZWQpOwogCiAgIHJldHVybiAwOwogfQpk
aWZmIC0tZ2l0IGEvbnB0bC9wdGhyZWFkX2NvbmRfdGltZWR3YWl0LmMgYi9ucHRsL3B0aHJlYWRf
Y29uZF90aW1lZHdhaXQuYwppbmRleCA3Mjc4ZWM0Li42NDgxNjJhIDEwMDY0NAotLS0gYS9ucHRs
L3B0aHJlYWRfY29uZF90aW1lZHdhaXQuYworKysgYi9ucHRsL3B0aHJlYWRfY29uZF90aW1lZHdh
aXQuYwpAQCAtMjcsNiArMjcsOCBAQAogCiAjaW5jbHVkZSA8c2hsaWItY29tcGF0Lmg+CiAKKyNp
bmNsdWRlICJjb25kLWxvY2suaCIKKwogI2lmbmRlZiBIQVZFX0NMT0NLX0dFVFRJTUVfVlNZU0NB
TEwKICMgdW5kZWYgSU5URVJOQUxfVlNZU0NBTEwKICMgZGVmaW5lIElOVEVSTkFMX1ZTWVNDQUxM
IElOVEVSTkFMX1NZU0NBTEwKQEAgLTU3LDYgKzU5LDcgQEAgX19wdGhyZWFkX2NvbmRfdGltZWR3
YWl0IChjb25kLCBtdXRleCwgYWJzdGltZSkKICAgc3RydWN0IF9wdGhyZWFkX2NsZWFudXBfYnVm
ZmVyIGJ1ZmZlcjsKICAgc3RydWN0IF9jb25kdmFyX2NsZWFudXBfYnVmZmVyIGNidWZmZXI7CiAg
IGludCByZXN1bHQgPSAwOworICBpbnQgcGlfcmVxdWV1ZWQ7CiAKICAgLyogQ2F0Y2ggaW52YWxp
ZCBwYXJhbWV0ZXJzLiAgKi8KICAgaWYgKGFic3RpbWUtPnR2X25zZWMgPCAwIHx8IGFic3RpbWUt
PnR2X25zZWMgPj0gMTAwMDAwMDAwMCkKQEAgLTY1LDE0ICs2OCwxNCBAQCBfX3B0aHJlYWRfY29u
ZF90aW1lZHdhaXQgKGNvbmQsIG11dGV4LCBhYnN0aW1lKQogICBpbnQgcHNoYXJlZCA9IChjb25k
LT5fX2RhdGEuX19tdXRleCA9PSAodm9pZCAqKSB+MGwpCiAJCT8gTExMX1NIQVJFRCA6IExMTF9Q
UklWQVRFOwogCi0gIC8qIE1ha2Ugc3VyZSB3ZSBhcmUgYWxvbmcuICAqLwotICBsbGxfbG9jayAo
Y29uZC0+X19kYXRhLl9fbG9jaywgcHNoYXJlZCk7CisgIC8qIE1ha2Ugc3VyZSB3ZSBhcmUgYWxv
bmUuICAqLworICBjb25kX2xvY2soY29uZCwgcHNoYXJlZCk7CiAKICAgLyogTm93IHdlIGNhbiBy
ZWxlYXNlIHRoZSBtdXRleC4gICovCiAgIGludCBlcnIgPSBfX3B0aHJlYWRfbXV0ZXhfdW5sb2Nr
X3VzZXJjbnQgKG11dGV4LCAwKTsKICAgaWYgKGVycikKICAgICB7Ci0gICAgICBsbGxfdW5sb2Nr
IChjb25kLT5fX2RhdGEuX19sb2NrLCBwc2hhcmVkKTsKKyAgICAgIGNvbmRfdW5sb2NrKGNvbmQs
IHBzaGFyZWQpOwogICAgICAgcmV0dXJuIGVycjsKICAgICB9CiAKQEAgLTEwNSw2ICsxMDgsNyBA
QCBfX3B0aHJlYWRfY29uZF90aW1lZHdhaXQgKGNvbmQsIG11dGV4LCBhYnN0aW1lKQogCiAgIHdo
aWxlICgxKQogICAgIHsKKyAgICAgIHBpX3JlcXVldWVkID0gMDsKICAgICAgIHN0cnVjdCB0aW1l
c3BlYyBydDsKICAgICAgIHsKICNpZmRlZiBfX05SX2Nsb2NrX2dldHRpbWUKQEAgLTExMiw3ICsx
MTYsNyBAQCBfX3B0aHJlYWRfY29uZF90aW1lZHdhaXQgKGNvbmQsIG11dGV4LCBhYnN0aW1lKQog
CWludCByZXQ7CiAJcmV0ID0gSU5URVJOQUxfVlNZU0NBTEwgKGNsb2NrX2dldHRpbWUsIGVyciwg
MiwKIAkJCQkoY29uZC0+X19kYXRhLl9fbndhaXRlcnMKLQkJCQkgJiAoKDEgPDwgQ09ORF9OV0FJ
VEVSU19TSElGVCkgLSAxKSksCisJCQkJICYgKCgxIDw8IENPTkRfUFJPVE9DT0xfU0hJRlQpIC0g
MSkpLAogCQkJCSZydCk7CiAjIGlmbmRlZiBfX0FTU1VNRV9QT1NJWF9USU1FUlMKIAlpZiAoX19i
dWlsdGluX2V4cGVjdCAoSU5URVJOQUxfU1lTQ0FMTF9FUlJPUl9QIChyZXQsIGVyciksIDApKQpA
QCAtMTU4LDIwICsxNjIsMzQgQEAgX19wdGhyZWFkX2NvbmRfdGltZWR3YWl0IChjb25kLCBtdXRl
eCwgYWJzdGltZSkKICAgICAgIHVuc2lnbmVkIGludCBmdXRleF92YWwgPSBjb25kLT5fX2RhdGEu
X19mdXRleDsKIAogICAgICAgLyogUHJlcGFyZSB0byB3YWl0LiAgUmVsZWFzZSB0aGUgY29uZHZh
ciBmdXRleC4gICovCi0gICAgICBsbGxfdW5sb2NrIChjb25kLT5fX2RhdGEuX19sb2NrLCBwc2hh
cmVkKTsKKyAgICAgIGNvbmRfdW5sb2NrKGNvbmQsIHBzaGFyZWQpOwogCiAgICAgICAvKiBFbmFi
bGUgYXN5bmNocm9ub3VzIGNhbmNlbGxhdGlvbi4gIFJlcXVpcmVkIGJ5IHRoZSBzdGFuZGFyZC4g
ICovCiAgICAgICBjYnVmZmVyLm9sZHR5cGUgPSBfX3B0aHJlYWRfZW5hYmxlX2FzeW5jY2FuY2Vs
ICgpOwogCisgICAgICBpZiAobXV0ZXgtPl9fZGF0YS5fX2tpbmQgJiBQVEhSRUFEX01VVEVYX1BS
SU9fSU5IRVJJVF9OUCkKKyAgICAgICAgeworCSAgLyogVHJ5IHJlcXVldWVpbmcgdG8gdGhlIFBJ
IG11dGV4LCBpZiBubyBzdXBwb3J0IGluIHRoZSBrZXJuZWwKKwkgICAgIHRyeSB0aGUgbm9uLXJl
cXVldWUgc3lzY2FsbC4gICovCisgICAgICAgICAgZXJyID0gbGxsX2Z1dGV4X3RpbWVkX3dhaXRf
cmVxdWV1ZV9waSAoY29uZCwgZnV0ZXhfdmFsLCBhYnN0aW1lLAorCQkJCQkJICZtdXRleC0+X19k
YXRhLl9fbG9jaywKKwkJCQkJCSBwc2hhcmVkKTsKKyAgICAgICAgICBpZiAoX19idWlsdGluX2V4
cGVjdCAoIWVyciwgMSkpCisJICAgICAgIHBpX3JlcXVldWVkID0gMTsKKyAgICAgICAgICBpZiAo
X19idWlsdGluX2V4cGVjdCAoZXJyICE9IC1FTk9TWVMsIDApKQorCSAgICAgICBnb3RvIHdva2Vu
OworCX0KKwogICAgICAgLyogV2FpdCB1bnRpbCB3b2tlbiBieSBzaWduYWwgb3IgYnJvYWRjYXN0
LiAgKi8KICAgICAgIGVyciA9IGxsbF9mdXRleF90aW1lZF93YWl0ICgmY29uZC0+X19kYXRhLl9f
ZnV0ZXgsCiAJCQkJICBmdXRleF92YWwsICZydCwgcHNoYXJlZCk7CiAKK3dva2VuOgogICAgICAg
LyogRGlzYWJsZSBhc3luY2hyb25vdXMgY2FuY2VsbGF0aW9uLiAgKi8KICAgICAgIF9fcHRocmVh
ZF9kaXNhYmxlX2FzeW5jY2FuY2VsIChjYnVmZmVyLm9sZHR5cGUpOwogCiAgICAgICAvKiBXZSBh
cmUgZ29pbmcgdG8gbG9vayBhdCBzaGFyZWQgZGF0YSBhZ2Fpbiwgc28gZ2V0IHRoZSBsb2NrLiAg
Ki8KLSAgICAgIGxsbF9sb2NrIChjb25kLT5fX2RhdGEuX19sb2NrLCBwc2hhcmVkKTsKKyAgICAg
IGNvbmRfbG9jayhjb25kLCBwc2hhcmVkKTsKIAogICAgICAgLyogSWYgYSBicm9hZGNhc3QgaGFw
cGVuZWQsIHdlIGFyZSBkb25lLiAgKi8KICAgICAgIGlmIChjYnVmZmVyLmJjX3NlcSAhPSBjb25k
LT5fX2RhdGEuX19icm9hZGNhc3Rfc2VxKQpAQCAtMjExLDEzICsyMjksMTcgQEAgX19wdGhyZWFk
X2NvbmRfdGltZWR3YWl0IChjb25kLCBtdXRleCwgYWJzdGltZSkKICAgICBsbGxfZnV0ZXhfd2Fr
ZSAoJmNvbmQtPl9fZGF0YS5fX253YWl0ZXJzLCAxLCBwc2hhcmVkKTsKIAogICAvKiBXZSBhcmUg
ZG9uZSB3aXRoIHRoZSBjb25kdmFyLiAgKi8KLSAgbGxsX3VubG9jayAoY29uZC0+X19kYXRhLl9f
bG9jaywgcHNoYXJlZCk7CisgIGNvbmRfdW5sb2NrKGNvbmQsIHBzaGFyZWQpOwogCiAgIC8qIFRo
ZSBjYW5jZWxsYXRpb24gaGFuZGxpbmcgaXMgYmFjayB0byBub3JtYWwsIHJlbW92ZSB0aGUgaGFu
ZGxlci4gICovCiAgIF9fcHRocmVhZF9jbGVhbnVwX3BvcCAoJmJ1ZmZlciwgMCk7CiAKLSAgLyog
R2V0IHRoZSBtdXRleCBiZWZvcmUgcmV0dXJuaW5nLiAgKi8KLSAgZXJyID0gX19wdGhyZWFkX211
dGV4X2NvbmRfbG9jayAobXV0ZXgpOworICAvKiBHZXQgdGhlIG11dGV4IGJlZm9yZSByZXR1cm5p
bmcuIElmIHRoZSByZXF1ZXVlX3BpIGNhbGwgYWJvdmUgd2FzIHN1Y2Nlc3NmdWwsCisgICAgIHRo
ZSBsb2NrIGlzIGFscmVhZHkgaGVsZCBpbiB0aGUga2VybmVsLCBzbyBqdXN0IHJldHVybiB0byB0
aGUgYXBwbGljYXRpb24uICAqLworICBpZiAocGlfcmVxdWV1ZWQpCisgICAgX19wdGhyZWFkX211
dGV4X2NvbmRfbG9ja19hZGp1c3QgKG11dGV4KTsKKyAgZWxzZQorICAgIGVyciA9IF9fcHRocmVh
ZF9tdXRleF9jb25kX2xvY2sgKG11dGV4KTsKIAogICByZXR1cm4gZXJyID86IHJlc3VsdDsKIH0K
ZGlmZiAtLWdpdCBhL25wdGwvcHRocmVhZF9jb25kX3dhaXQuYyBiL25wdGwvcHRocmVhZF9jb25k
X3dhaXQuYwppbmRleCA2NzBmYmE1Li40YWZhMDI4IDEwMDY0NAotLS0gYS9ucHRsL3B0aHJlYWRf
Y29uZF93YWl0LmMKKysrIGIvbnB0bC9wdGhyZWFkX2NvbmRfd2FpdC5jCkBAIC0xNywxNSArMTcs
MTkgQEAKICAgIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3Vp
dGUgMzMwLCBCb3N0b24sIE1BCiAgICAwMjExMS0xMzA3IFVTQS4gICovCiAKKyNpbmNsdWRlIDxh
c3NlcnQuaD4KICNpbmNsdWRlIDxlbmRpYW4uaD4KICNpbmNsdWRlIDxlcnJuby5oPgogI2luY2x1
ZGUgPHN5c2RlcC5oPgogI2luY2x1ZGUgPGxvd2xldmVsbG9jay5oPgorI2luY2x1ZGUgPG5vdC1j
YW5jZWwuaD4KICNpbmNsdWRlIDxwdGhyZWFkLmg+CiAjaW5jbHVkZSA8cHRocmVhZFAuaD4KIAog
I2luY2x1ZGUgPHNobGliLWNvbXBhdC5oPgogCisjaW5jbHVkZSAiY29uZC1sb2NrLmgiCisgCiAK
IHN0cnVjdCBfY29uZHZhcl9jbGVhbnVwX2J1ZmZlcgogewpAQCAtMzgsMTYgKzQyLDU1IEBAIHN0
cnVjdCBfY29uZHZhcl9jbGVhbnVwX2J1ZmZlcgogCiB2b2lkCiBfX2F0dHJpYnV0ZV9fICgodmlz
aWJpbGl0eSAoImhpZGRlbiIpKSkKK2xsbF9waV9sb2NrKGludCAqZnV0ZXhwLCBpbnQgcHJpdmF0
ZSkKK3sKKyAgcGlkX3QgaWQgPSBUSFJFQURfR0VUTUVNIChUSFJFQURfU0VMRiwgdGlkKTsKKyAg
aW50IG5ld3ZhbCA9IGlkOworICBpbnQgcmV0OworCisgIG5ld3ZhbCB8PSBGVVRFWF9XQUlURVJT
OyAKKyAgcmV0ID0gYXRvbWljX2NvbXBhcmVfYW5kX2V4Y2hhbmdlX3ZhbF9hY3EgKGZ1dGV4cCwg
bmV3dmFsLCAwKTsKKworICBpZiAocmV0ICE9IDApCisgICAgeworICAgICAgLyogVGhlIG11dGV4
IGlzIGxvY2tlZC4gIFRoZSBrZXJuZWwgd2lsbCBub3cgdGFrZSBjYXJlIG9mCisJIGV2ZXJ5dGhp
bmcuICAqLworICAgICAgSU5URVJOQUxfU1lTQ0FMTF9ERUNMIChfX2Vycik7CisgICAgICBpbnQg
ZSA9IElOVEVSTkFMX1NZU0NBTEwgKGZ1dGV4LCBfX2VyciwgNCwgZnV0ZXhwLAorCQkJCV9fbGxs
X3ByaXZhdGVfZmxhZyAoRlVURVhfTE9DS19QSSwgcHJpdmF0ZSksCisJCQkJMSwgMCk7CisgICAg
fQorfQorCisKK3ZvaWQKK19fYXR0cmlidXRlX18gKCh2aXNpYmlsaXR5ICgiaGlkZGVuIikpKQor
bGxsX3BpX3VubG9jayhpbnQgKmZ1dGV4cCwgaW50IHByaXZhdGUpCit7CisKKyAgaWYgKCgqZnV0
ZXhwICYgRlVURVhfV0FJVEVSUykgIT0gMAorICAgICAgfHwgYXRvbWljX2NvbXBhcmVfYW5kX2V4
Y2hhbmdlX2Jvb2xfYWNxIChmdXRleHAsIDAsCisJCQkJCSAgICAgICBUSFJFQURfR0VUTUVNIChU
SFJFQURfU0VMRiwKKwkJCQkJCQkgICAgICB0aWQpKSkKKyAgICB7CisgICAgICBJTlRFUk5BTF9T
WVNDQUxMX0RFQ0wgKF9fZXJyKTsKKyAgICAgIElOVEVSTkFMX1NZU0NBTEwgKGZ1dGV4LCBfX2Vy
ciwgMiwgZnV0ZXhwLAorCQkJX19sbGxfcHJpdmF0ZV9mbGFnIChGVVRFWF9VTkxPQ0tfUEksIHBy
aXZhdGUpKTsKKyAgICB9Cit9CisKKyAKK3ZvaWQKK19fYXR0cmlidXRlX18gKCh2aXNpYmlsaXR5
ICgiaGlkZGVuIikpKQogX19jb25kdmFyX2NsZWFudXAgKHZvaWQgKmFyZykKIHsKICAgc3RydWN0
IF9jb25kdmFyX2NsZWFudXBfYnVmZmVyICpjYnVmZmVyID0KICAgICAoc3RydWN0IF9jb25kdmFy
X2NsZWFudXBfYnVmZmVyICopIGFyZzsKICAgdW5zaWduZWQgaW50IGRlc3Ryb3lpbmc7Ci0gIGlu
dCBwc2hhcmVkID0gKGNidWZmZXItPmNvbmQtPl9fZGF0YS5fX211dGV4ID09ICh2b2lkICopIH4w
bCkKLSAgCQk/IExMTF9TSEFSRUQgOiBMTExfUFJJVkFURTsKKyAgaW50IHBzaGFyZWQgPSAoY2J1
ZmZlci0+bXV0ZXggPT0gKHZvaWQgKikgfjBsKSA/IExMTF9TSEFSRUQgOiBMTExfUFJJVkFURTsK
IAogICAvKiBXZSBhcmUgZ29pbmcgdG8gbW9kaWZ5IHNoYXJlZCBkYXRhLiAgKi8KLSAgbGxsX2xv
Y2sgKGNidWZmZXItPmNvbmQtPl9fZGF0YS5fX2xvY2ssIHBzaGFyZWQpOworICBjb25kX2xvY2so
Y2J1ZmZlci0+Y29uZCwgcHNoYXJlZCk7CiAKICAgaWYgKGNidWZmZXItPmJjX3NlcSA9PSBjYnVm
ZmVyLT5jb25kLT5fX2RhdGEuX19icm9hZGNhc3Rfc2VxKQogICAgIHsKQEAgLTc4LDcgKzEyMSw3
IEBAIF9fY29uZHZhcl9jbGVhbnVwICh2b2lkICphcmcpCiAgICAgfQogCiAgIC8qIFdlIGFyZSBk
b25lLiAgKi8KLSAgbGxsX3VubG9jayAoY2J1ZmZlci0+Y29uZC0+X19kYXRhLl9fbG9jaywgcHNo
YXJlZCk7CisgIGNvbmRfdW5sb2NrKGNidWZmZXItPmNvbmQsIHBzaGFyZWQpOwogCiAgIC8qIFdh
a2UgZXZlcnlib2R5IHRvIG1ha2Ugc3VyZSBubyBjb25kdmFyIHNpZ25hbCBnZXRzIGxvc3QuICAq
LwogICBpZiAoISBkZXN0cm95aW5nKQpAQCAtOTcsMTggKzE0MCwxOSBAQCBfX3B0aHJlYWRfY29u
ZF93YWl0IChjb25kLCBtdXRleCkKIHsKICAgc3RydWN0IF9wdGhyZWFkX2NsZWFudXBfYnVmZmVy
IGJ1ZmZlcjsKICAgc3RydWN0IF9jb25kdmFyX2NsZWFudXBfYnVmZmVyIGNidWZmZXI7Ci0gIGlu
dCBlcnI7CiAgIGludCBwc2hhcmVkID0gKGNvbmQtPl9fZGF0YS5fX211dGV4ID09ICh2b2lkICop
IH4wbCkKICAgCQk/IExMTF9TSEFSRUQgOiBMTExfUFJJVkFURTsKKyAgaW50IHBpX3JlcXVldWVk
OworICBpbnQgZXJyOwogCiAgIC8qIE1ha2Ugc3VyZSB3ZSBhcmUgYWxvbmcuICAqLwotICBsbGxf
bG9jayAoY29uZC0+X19kYXRhLl9fbG9jaywgcHNoYXJlZCk7CisgIGNvbmRfbG9jayhjb25kLCBw
c2hhcmVkKTsKIAogICAvKiBOb3cgd2UgY2FuIHJlbGVhc2UgdGhlIG11dGV4LiAgKi8KICAgZXJy
ID0gX19wdGhyZWFkX211dGV4X3VubG9ja191c2VyY250IChtdXRleCwgMCk7CiAgIGlmIChfX2J1
aWx0aW5fZXhwZWN0IChlcnIsIDApKQogICAgIHsKLSAgICAgIGxsbF91bmxvY2sgKGNvbmQtPl9f
ZGF0YS5fX2xvY2ssIHBzaGFyZWQpOworICAgICAgY29uZF91bmxvY2soY29uZCwgcHNoYXJlZCk7
CiAgICAgICByZXR1cm4gZXJyOwogICAgIH0KIApAQCAtMTQyLDIxICsxODYsMzUgQEAgX19wdGhy
ZWFkX2NvbmRfd2FpdCAoY29uZCwgbXV0ZXgpCiAgIGRvCiAgICAgewogICAgICAgdW5zaWduZWQg
aW50IGZ1dGV4X3ZhbCA9IGNvbmQtPl9fZGF0YS5fX2Z1dGV4OworICAgICAgcGlfcmVxdWV1ZWQg
PSAwOwogCiAgICAgICAvKiBQcmVwYXJlIHRvIHdhaXQuICBSZWxlYXNlIHRoZSBjb25kdmFyIGZ1
dGV4LiAgKi8KLSAgICAgIGxsbF91bmxvY2sgKGNvbmQtPl9fZGF0YS5fX2xvY2ssIHBzaGFyZWQp
OworICAgICAgY29uZF91bmxvY2soY29uZCwgcHNoYXJlZCk7CiAKICAgICAgIC8qIEVuYWJsZSBh
c3luY2hyb25vdXMgY2FuY2VsbGF0aW9uLiAgUmVxdWlyZWQgYnkgdGhlIHN0YW5kYXJkLiAgKi8K
ICAgICAgIGNidWZmZXIub2xkdHlwZSA9IF9fcHRocmVhZF9lbmFibGVfYXN5bmNjYW5jZWwgKCk7
CiAKKyAgICAgIGlmIChtdXRleC0+X19kYXRhLl9fa2luZCAmIFBUSFJFQURfTVVURVhfUFJJT19J
TkhFUklUX05QKQorCXsKKwkgIC8qIFRyeSByZXF1ZXVlaW5nIHRvIHRoZSBQSSBtdXRleCwgaWYg
bm8gc3VwcG9ydCBpbiB0aGUga2VybmVsCisgICAgICAgICAgICAgdHJ5IHRoZSBub24tcmVxdWV1
ZSBzeXNjYWxsLiAgKi8KKyAgICAgICAgICBlcnIgPSBsbGxfZnV0ZXhfd2FpdF9yZXF1ZXVlX3Bp
IChjb25kLCBmdXRleF92YWwsIAorCQkJCQkgICAmbXV0ZXgtPl9fZGF0YS5fX2xvY2ssIHBzaGFy
ZWQpOworICAgICAgICAgIGlmIChfX2J1aWx0aW5fZXhwZWN0ICghZXJyLCAxKSkKKwkgICAgICAg
cGlfcmVxdWV1ZWQgPSAxOworICAgICAgICAgIGlmIChfX2J1aWx0aW5fZXhwZWN0IChlcnIgIT0g
LUVOT1NZUywgMCkpCisJICAgICAgIGdvdG8gd29rZW47CisJfQorICAgICAgICAgIAogICAgICAg
LyogV2FpdCB1bnRpbCB3b2tlbiBieSBzaWduYWwgb3IgYnJvYWRjYXN0LiAgKi8KICAgICAgIGxs
bF9mdXRleF93YWl0ICgmY29uZC0+X19kYXRhLl9fZnV0ZXgsIGZ1dGV4X3ZhbCwgcHNoYXJlZCk7
CiAKK3dva2VuOgogICAgICAgLyogRGlzYWJsZSBhc3luY2hyb25vdXMgY2FuY2VsbGF0aW9uLiAg
Ki8KICAgICAgIF9fcHRocmVhZF9kaXNhYmxlX2FzeW5jY2FuY2VsIChjYnVmZmVyLm9sZHR5cGUp
OwogCiAgICAgICAvKiBXZSBhcmUgZ29pbmcgdG8gbG9vayBhdCBzaGFyZWQgZGF0YSBhZ2Fpbiwg
c28gZ2V0IHRoZSBsb2NrLiAgKi8KLSAgICAgIGxsbF9sb2NrIChjb25kLT5fX2RhdGEuX19sb2Nr
LCBwc2hhcmVkKTsKKyAgICAgIGNvbmRfbG9jayhjb25kLCBwc2hhcmVkKTsKIAogICAgICAgLyog
SWYgYSBicm9hZGNhc3QgaGFwcGVuZWQsIHdlIGFyZSBkb25lLiAgKi8KICAgICAgIGlmIChjYnVm
ZmVyLmJjX3NlcSAhPSBjb25kLT5fX2RhdGEuX19icm9hZGNhc3Rfc2VxKQpAQCAtMTgyLDEzICsy
NDAsMjAgQEAgX19wdGhyZWFkX2NvbmRfd2FpdCAoY29uZCwgbXV0ZXgpCiAgICAgbGxsX2Z1dGV4
X3dha2UgKCZjb25kLT5fX2RhdGEuX19ud2FpdGVycywgMSwgcHNoYXJlZCk7CiAKICAgLyogV2Ug
YXJlIGRvbmUgd2l0aCB0aGUgY29uZHZhci4gICovCi0gIGxsbF91bmxvY2sgKGNvbmQtPl9fZGF0
YS5fX2xvY2ssIHBzaGFyZWQpOworICBjb25kX3VubG9jayhjb25kLCBwc2hhcmVkKTsKIAogICAv
KiBUaGUgY2FuY2VsbGF0aW9uIGhhbmRsaW5nIGlzIGJhY2sgdG8gbm9ybWFsLCByZW1vdmUgdGhl
IGhhbmRsZXIuICAqLwogICBfX3B0aHJlYWRfY2xlYW51cF9wb3AgKCZidWZmZXIsIDApOwogCi0g
IC8qIEdldCB0aGUgbXV0ZXggYmVmb3JlIHJldHVybmluZy4gICovCi0gIHJldHVybiBfX3B0aHJl
YWRfbXV0ZXhfY29uZF9sb2NrIChtdXRleCk7CisgIC8qIEdldCB0aGUgbXV0ZXggYmVmb3JlIHJl
dHVybmluZy4gSWYgdGhlIHJlcXVldWVfcGkgY2FsbCBhYm92ZSB3YXMgc3VjY2Vzc2Z1bCwKKyAg
ICAgdGhlIGxvY2sgaXMgYWxyZWFkeSBoZWxkIGluIHRoZSBrZXJuZWwsIHNvIGp1c3QgcmV0dXJu
IDAgdG8gYXBwbGljYXRpb24uICAqLworICBpZiAocGlfcmVxdWV1ZWQpCisgICAgeworICAgICAg
X19wdGhyZWFkX211dGV4X2NvbmRfbG9ja19hZGp1c3QgKG11dGV4KTsKKyAgICAgIHJldHVybiAw
OworICAgIH0KKyAgZWxzZQorICAgIHJldHVybiBfX3B0aHJlYWRfbXV0ZXhfY29uZF9sb2NrICht
dXRleCk7CiB9CiAKIHZlcnNpb25lZF9zeW1ib2wgKGxpYnB0aHJlYWQsIF9fcHRocmVhZF9jb25k
X3dhaXQsIHB0aHJlYWRfY29uZF93YWl0LApkaWZmIC0tZ2l0IGEvbnB0bC9wdGhyZWFkX2NvbmRh
dHRyX2dldGNsb2NrLmMgYi9ucHRsL3B0aHJlYWRfY29uZGF0dHJfZ2V0Y2xvY2suYwppbmRleCAz
ZWVkZWIxLi45ZjAzNGIzIDEwMDY0NAotLS0gYS9ucHRsL3B0aHJlYWRfY29uZGF0dHJfZ2V0Y2xv
Y2suYworKysgYi9ucHRsL3B0aHJlYWRfY29uZGF0dHJfZ2V0Y2xvY2suYwpAQCAtMSw0ICsxLDQg
QEAKLS8qIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNyBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb24sIEluYy4KKy8qIENvcHlyaWdodCAoQykgMjAwMywyMDA0LDIwMDcsMjAxMCBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUg
QyBMaWJyYXJ5LgogICAgQ29udHJpYnV0ZWQgYnkgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVk
aGF0LmNvbT4sIDIwMDMuCiAKQEAgLTI1LDcgKzI1LDggQEAgcHRocmVhZF9jb25kYXR0cl9nZXRj
bG9jayAoYXR0ciwgY2xvY2tfaWQpCiAgICAgIGNvbnN0IHB0aHJlYWRfY29uZGF0dHJfdCAqYXR0
cjsKICAgICAgY2xvY2tpZF90ICpjbG9ja19pZDsKIHsKLSAgKmNsb2NrX2lkID0gKCgoKChjb25z
dCBzdHJ1Y3QgcHRocmVhZF9jb25kYXR0ciAqKSBhdHRyKS0+dmFsdWUpID4+IDEpCi0JICAgICAg
ICYgKCgxIDw8IENPTkRfTldBSVRFUlNfU0hJRlQpIC0gMSkpOworICAqY2xvY2tfaWQgPSAoKCgo
KGNvbnN0IHN0cnVjdCBwdGhyZWFkX2NvbmRhdHRyICopIGF0dHIpLT52YWx1ZSkKKwkgICAgICAg
Pj4gQ09OREFUVFJfQ0xPQ0tJRF9TSElGVCkKKwkgICAgICAgJiAoKDEgPDwgQ09ORF9QUk9UT0NP
TF9TSElGVCkgLSAxKSk7CiAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvbnB0bC9wdGhyZWFk
X2NvbmRhdHRyX2dldHByb3RvY29sX25wLmMgYi9ucHRsL3B0aHJlYWRfY29uZGF0dHJfZ2V0cHJv
dG9jb2xfbnAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjgxZjJhCi0t
LSAvZGV2L251bGwKKysrIGIvbnB0bC9wdGhyZWFkX2NvbmRhdHRyX2dldHByb3RvY29sX25wLmMK
QEAgLTAsMCArMSwzNCBAQAorLyogQ29weXJpZ2h0IChDKSAyMDEwIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnku
CisgICBDb250cmlidXRlZCBieSBEaW5ha2FyIEd1bmlndW50YWxhIDxkaW5vQGluLmlibS5jb20+
LCAyMDEwLgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAg
IFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2Ug
YWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZQor
ICAgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAs
IEJvc3RvbiwgTUEKKyAgIDAyMTExLTEzMDcgVVNBLiAgKi8KKworI2luY2x1ZGUgInB0aHJlYWRQ
LmgiCisKKworaW50CitwdGhyZWFkX2NvbmRhdHRyX2dldHByb3RvY29sX25wIChhdHRyLCBwcm90
b2NvbCkKKyAgICAgY29uc3QgcHRocmVhZF9jb25kYXR0cl90ICphdHRyOworICAgICBpbnQgKnBy
b3RvY29sOworeworICAqcHJvdG9jb2wgPSAoKGNvbnN0IHN0cnVjdCBwdGhyZWFkX2NvbmRhdHRy
ICopIGF0dHIpLT52YWx1ZTsKKworICAqcHJvdG9jb2wgPSAoKCpwcm90b2NvbCAmIENPTkRBVFRS
X1BST1RPQ09MX01BU0spCisJICAgICAgID4+IENPTkRBVFRSX1BST1RPQ09MX1NISUZUKTsKKwor
ICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL25wdGwvcHRocmVhZF9jb25kYXR0cl9zZXRjbG9j
ay5jIGIvbnB0bC9wdGhyZWFkX2NvbmRhdHRyX3NldGNsb2NrLmMKaW5kZXggNWM1NGY3Ni4uOTdl
OTU5NSAxMDA2NDQKLS0tIGEvbnB0bC9wdGhyZWFkX2NvbmRhdHRyX3NldGNsb2NrLmMKKysrIGIv
bnB0bC9wdGhyZWFkX2NvbmRhdHRyX3NldGNsb2NrLmMKQEAgLTEsNCArMSw0IEBACi0vKiBDb3B5
cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDcsIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuCisvKiBDb3B5cmlnaHQgKEMpIDIwMDMsMjAwNCwyMDA3LDIwMDgsMjAxMCBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUg
QyBMaWJyYXJ5LgogICAgQ29udHJpYnV0ZWQgYnkgVWxyaWNoIERyZXBwZXIgPGRyZXBwZXJAcmVk
aGF0LmNvbT4sIDIwMDMuCiAKQEAgLTYyLDExICs2MiwxMSBAQCBwdGhyZWFkX2NvbmRhdHRyX3Nl
dGNsb2NrIChhdHRyLCBjbG9ja19pZCkKICAgICByZXR1cm4gRUlOVkFMOwogCiAgIC8qIE1ha2Ug
c3VyZSB0aGUgdmFsdWUgZml0cyBpbiB0aGUgYml0cyB3ZSByZXNlcnZlZC4gICovCi0gIGFzc2Vy
dCAoY2xvY2tfaWQgPCAoMSA8PCBDT05EX05XQUlURVJTX1NISUZUKSk7CisgIGFzc2VydCAoY2xv
Y2tfaWQgPCAoMSA8PCBDT05EX1BST1RPQ09MX1NISUZUKSk7CiAKICAgaW50ICp2YWx1ZXAgPSAm
KChzdHJ1Y3QgcHRocmVhZF9jb25kYXR0ciAqKSBhdHRyKS0+dmFsdWU7CiAKLSAgKnZhbHVlcCA9
ICgoKnZhbHVlcCAmIH4oKCgxIDw8IENPTkRfTldBSVRFUlNfU0hJRlQpIC0gMSkgPDwgMSkpCisg
ICp2YWx1ZXAgPSAoKCp2YWx1ZXAgJiB+KCgoMSA8PCBDT05EX1BST1RPQ09MX1NISUZUKSAtIDEp
IDw8IDEpKQogCSAgICAgfCAoY2xvY2tfaWQgPDwgMSkpOwogCiAgIHJldHVybiAwOwpkaWZmIC0t
Z2l0IGEvbnB0bC9wdGhyZWFkX2NvbmRhdHRyX3NldHByb3RvY29sX25wLmMgYi9ucHRsL3B0aHJl
YWRfY29uZGF0dHJfc2V0cHJvdG9jb2xfbnAuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi41ODU5YTI3Ci0tLSAvZGV2L251bGwKKysrIGIvbnB0bC9wdGhyZWFkX2NvbmRhdHRy
X3NldHByb3RvY29sX25wLmMKQEAgLTAsMCArMSwzOSBAQAorLyogQ29weXJpZ2h0IChDKSAyMDEw
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg
dGhlIEdOVSBDIExpYnJhcnkuCisgICBDb250cmlidXRlZCBieSBEaW5ha2FyIEd1bmlndW50YWxh
IDxkaW5vQGluLmlibS5jb20+LCAyMDEwLgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
ICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAg
IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCB3
cml0ZSB0byB0aGUgRnJlZQorICAgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxl
IFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEKKyAgIDAyMTExLTEzMDcgVVNBLiAgKi8KKwor
I2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8cHRocmVhZFAuaD4KKworaW50CitwdGhyZWFk
X2NvbmRhdHRyX3NldHByb3RvY29sX25wIChhdHRyLCBwcm90b2NvbCkKKyAgICAgcHRocmVhZF9j
b25kYXR0cl90ICphdHRyOworICAgICBpbnQgcHJvdG9jb2w7Cit7CisgIGlmIChwcm90b2NvbCAh
PSBQVEhSRUFEX1BSSU9fTk9ORQorICAgICAgJiYgcHJvdG9jb2wgIT0gUFRIUkVBRF9QUklPX0lO
SEVSSVQKKyAgICAgICYmIF9fYnVpbHRpbl9leHBlY3QgKHByb3RvY29sICE9IFBUSFJFQURfUFJJ
T19QUk9URUNULCAwKSkKKyAgICByZXR1cm4gRUlOVkFMOworCisgIGludCAqdmFsdWVwID0gJigo
c3RydWN0IHB0aHJlYWRfY29uZGF0dHIgKikgYXR0ciktPnZhbHVlOworCisgICp2YWx1ZXAgPSAo
KCp2YWx1ZXAgJiB+Q09OREFUVFJfUFJPVE9DT0xfTUFTSykKKwkgICAgIHwgKHByb3RvY29sIDw8
IENPTkRBVFRSX1BST1RPQ09MX1NISUZUKSk7CisKKyAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQg
YS9ucHRsL3N5c2RlcHMvcHRocmVhZC9jb25kLWxvY2suaCBiL25wdGwvc3lzZGVwcy9wdGhyZWFk
L2NvbmQtbG9jay5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFjZjNmNmQK
LS0tIC9kZXYvbnVsbAorKysgYi9ucHRsL3N5c2RlcHMvcHRocmVhZC9jb25kLWxvY2suaApAQCAt
MCwwICsxLDU4IEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKwor
ICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMg
TGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGgg
dGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUKKyAgIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1B
CisgICAwMjExMS0xMzA3IFVTQS4gICovCisKKyNpZm5kZWYgX0NPTkRfTE9DS19ICisjZGVmaW5l
IF9DT05EX0xPQ0tfSCAxCisKKworZXh0ZXJuIHZvaWQgbGxsX3BpX2xvY2sgKGludCAqZnV0ZXgs
IGludCBwc2hhcmVkKQorICAgICBfX2F0dHJpYnV0ZV9fICgodmlzaWJpbGl0eSAoImhpZGRlbiIp
KSk7CitleHRlcm4gdm9pZCBsbGxfcGlfdW5sb2NrIChpbnQgKmZ1dGV4LCBpbnQgcHNoYXJlZCkK
KyAgICAgX19hdHRyaWJ1dGVfXyAoKHZpc2liaWxpdHkgKCJoaWRkZW4iKSkpOworCitzdGF0aWMg
aW5saW5lIHZvaWQgY29uZF9sb2NrKHB0aHJlYWRfY29uZF90ICpjb25kLAorCQkJICAgICBpbnQg
cHNoYXJlZCk7CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBjb25kX3VubG9jayhwdGhyZWFkX2NvbmRf
dCAqY29uZCwKKwkJCSAgICAgICBpbnQgcHNoYXJlZCk7CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBj
b25kX2xvY2soY29uZCwgcHNoYXJlZCkKKyAgICAgcHRocmVhZF9jb25kX3QgKmNvbmQ7CisgICAg
IGludCBwc2hhcmVkOworeworICBpZiAocHNoYXJlZCA9PSBMTExfUFJJVkFURQorICAgICAgJiYg
KChjb25kLT5fX2RhdGEuX19ud2FpdGVycyAmIENPTkRfUFJPVE9DT0xfTUFTSykKKwkgID09IENP
TkRfUFJJT19JTkhFUklUKSkKKyAgICBsbGxfcGlfbG9jayAoJmNvbmQtPl9fZGF0YS5fX2xvY2ss
IHBzaGFyZWQpOworICBlbHNlCisgICAgbGxsX2xvY2sgKGNvbmQtPl9fZGF0YS5fX2xvY2ssIHBz
aGFyZWQpOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgY29uZF91bmxvY2soY29uZCwgcHNoYXJl
ZCkKKyAgICAgcHRocmVhZF9jb25kX3QgKmNvbmQ7CisgICAgIGludCBwc2hhcmVkOworeworICBp
ZiAocHNoYXJlZCA9PSBMTExfUFJJVkFURQorICAgICAgJiYgKChjb25kLT5fX2RhdGEuX19ud2Fp
dGVycyAmIENPTkRfUFJPVE9DT0xfTUFTSykKKwkgID09IENPTkRfUFJJT19JTkhFUklUKSkKKyAg
ICBsbGxfcGlfdW5sb2NrICgmY29uZC0+X19kYXRhLl9fbG9jaywgcHNoYXJlZCk7CisgIGVsc2UK
KyAgICBsbGxfdW5sb2NrIChjb25kLT5fX2RhdGEuX19sb2NrLCBwc2hhcmVkKTsKK30KKyAKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvbnB0bC9zeXNkZXBzL3B0aHJlYWQvcHRocmVhZC5oIGIvbnB0bC9z
eXNkZXBzL3B0aHJlYWQvcHRocmVhZC5oCmluZGV4IDQ0Y2Y5ZjAuLmVmNWUwOTMgMTAwNjQ0Ci0t
LSBhL25wdGwvc3lzZGVwcy9wdGhyZWFkL3B0aHJlYWQuaAorKysgYi9ucHRsL3N5c2RlcHMvcHRo
cmVhZC9wdGhyZWFkLmgKQEAgLTEwMDYsNiArMTAwNiwxOCBAQCBleHRlcm4gaW50IHB0aHJlYWRf
Y29uZGF0dHJfZ2V0cHNoYXJlZCAoX19jb25zdCBwdGhyZWFkX2NvbmRhdHRyX3QgKgogZXh0ZXJu
IGludCBwdGhyZWFkX2NvbmRhdHRyX3NldHBzaGFyZWQgKHB0aHJlYWRfY29uZGF0dHJfdCAqX19h
dHRyLAogCQkJCQlpbnQgX19wc2hhcmVkKSBfX1RIUk9XIF9fbm9ubnVsbCAoKDEpKTsKIAorLyog
R2V0IHRoZSBwcm90b2NvbCBmbGFnIG9mIHRoZSBjb25kaXRpb24gdmFyaWFibGUgYXR0cmlidXRl
IEFUVFIuICAqLworZXh0ZXJuIGludCBwdGhyZWFkX2NvbmRhdHRyX2dldHByb3RvY29sX25wIChf
X2NvbnN0IHB0aHJlYWRfY29uZGF0dHJfdCAqCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF9fcmVzdHJpY3QgX19hdHRyLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQgKl9fcmVzdHJpY3QgX19wcm90b2NvbCkKKyAgICAg
X19USFJPVyBfX25vbm51bGwgKCgxLCAyKSk7CisKKy8qIFNldCB0aGUgY29uZCBwcm90b2NvbCBh
dHRyaWJ1dGUgaW4gQVRUUiB0byBwcm90b2NvbCAob25lIG9mCisgICBQVEhSRUFEX1BSSU9fTk9O
RSwgUFRIUkVBRF9QUklPX0lOSEVSSVQgb3IgUFRIUkVBRF9QUklPX1BST1RFQ1QpLiAgKi8KK2V4
dGVybiBpbnQgcHRocmVhZF9jb25kYXR0cl9zZXRwcm90b2NvbF9ucCAocHRocmVhZF9jb25kYXR0
cl90ICpfX2F0dHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGludCBfX3Byb3RvY29sKQorICAgICBfX1RIUk9XIF9fbm9ubnVsbCAoKDEpKTsKKwogI2lmZGVm
IF9fVVNFX1hPUEVOMksKIC8qIEdldCB0aGUgY2xvY2sgc2VsZWN0ZWQgZm9yIHRoZSBjb25kaXRv
biB2YXJpYWJsZSBhdHRyaWJ1dGUgQVRUUi4gICovCiBleHRlcm4gaW50IHB0aHJlYWRfY29uZGF0
dHJfZ2V0Y2xvY2sgKF9fY29uc3QgcHRocmVhZF9jb25kYXR0cl90ICoKZGlmZiAtLWdpdCBhL25w
dGwvc3lzZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9sb3dsZXZlbGxvY2suaCBiL25wdGwvc3lz
ZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9sb3dsZXZlbGxvY2suaAppbmRleCA0YmI1ODVhLi4z
MTQ0ZDZmIDEwMDY0NAotLS0gYS9ucHRsL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2kzODYvbG93
bGV2ZWxsb2NrLmgKKysrIGIvbnB0bC9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L2xvd2xl
dmVsbG9jay5oCkBAIC0xLDQgKzEsNSBAQAotLyogQ29weXJpZ2h0IChDKSAyMDAyLTIwMDQsIDIw
MDYtMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKy8qIENvcHlyaWdo
dCAoQykgMjAwMiwyMDAzLDIwMDQsMjAwNiwyMDA3LDIwMDgsMjAxMAorICAgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuCiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGli
cmFyeS4KICAgIENvbnRyaWJ1dGVkIGJ5IFVscmljaCBEcmVwcGVyIDxkcmVwcGVyQHJlZGhhdC5j
b20+LCAyMDAyLgogCkBAIC0yMzgsNiArMjM5LDkxIEBAIExMTF9TVFVCX1VOV0lORF9JTkZPX0VO
RAogICB9IHdoaWxlICgwKQogCiAKKyNkZWZpbmUgbGxsX2Z1dGV4X3dhaXRfcmVxdWV1ZV9waShj
b25kLCB2YWwsIG11dGV4LCBwcml2YXRlKSBcCisgIGxsbF9mdXRleF90aW1lZF93YWl0X3JlcXVl
dWVfcGkgKGNvbmQsIHZhbCwgTlVMTCwgbXV0ZXgsIHByaXZhdGUpCisKKworI2RlZmluZSBsbGxf
ZnV0ZXhfdGltZWRfd2FpdF9yZXF1ZXVlX3BpKGNvbmQsIHZhbCwgdGltZSwgbXV0ZXgsIHByaXZh
dGUpIFwKKyAgKHsJCQkJCQkJCQkgICAgICBcCisgICAgSU5URVJOQUxfU1lTQ0FMTF9ERUNMIChf
X2Vycik7CQkJCQkgICAgICBcCisgICAgbG9uZyBpbnQgX19yZXQ7CQkJCQkJCSAgICAgIFwKKyAg
ICB1bnNpZ25lZCBpbnQgKl9fZnV0ZXhwID0gJmNvbmQtPl9fZGF0YS5fX2Z1dGV4OwkJCSAgICAg
IFwKKyAgICBpbnQgX19mbGFnID0gRlVURVhfV0FJVF9SRVFVRVVFX1BJOwkJCQkJICAgICAgXAor
ICAgIF9fZmxhZyA9IChjb25kLT5fX2RhdGEuX19ud2FpdGVycyAmIENPTkRfQ0xPQ0tfTUFTSykg
PwkJICAgICAgXAorCSAgICAgIF9fZmxhZyAgOiBfX2ZsYWcgfCBGVVRFWF9DTE9DS19SRUFMVElN
RTsJCQkgICAgICBcCisgICAgX19yZXQgPSBJTlRFUk5BTF9TWVNDQUxMIChmdXRleCwgX19lcnIs
IDUsCQkJCSAgICAgIFwKKwkJCSAgICAgIChfX2Z1dGV4cCksCQkJCSAgICAgIFwKKwkJCSAgICAg
IF9fbGxsX3ByaXZhdGVfZmxhZyAoX19mbGFnLCBwcml2YXRlKSwJICAgICAgXAorCQkJICAgICAg
KHZhbCksIHRpbWUsCQkJCSAgICAgIFwKKwkJCSAgICAgIChtdXRleCkpOwkJCQkJICAgICAgXAor
ICAgIElOVEVSTkFMX1NZU0NBTExfRVJST1JfUCAoX19yZXQsIF9fZXJyKT8gLV9fcmV0IDogX19y
ZXQ7CQkgICAgICBcCisgIH0pCisKKworI2RlZmluZSBsbGxfZnV0ZXhfcmVxdWV1ZShmdXRleCwg
bnJfd2FrZSwgbnJfbW92ZSwgbXV0ZXgsIHZhbCwgcHJpdmF0ZSkgXAorICAoewkJCQkJCQkJCSAg
ICAgIFwKKyAgICBpbnQgX19zdGF0dXM7CQkJCQkJCSAgICAgIFwKKyAgICBpbnQgX19zYXZlX2Vi
eDsJCQkJCQkJICAgICAgXAorICAgIGludCBfX2R1bW15OwkJCQkJCQkgICAgICBcCisgICAgaW50
IF9fZmxhZyA9IEZVVEVYX0NNUF9SRVFVRVVFOwkJCQkJICAgICAgXAorICAgIHJlZ2lzdGVyIF9f
dHlwZW9mIChucl9tb3ZlKSBfbnJfbW92ZSBhc20gKCJlc2kiKSA9IChucl9tb3ZlKTsJICAgICAg
XAorICAgIF9fYXNtIF9fdm9sYXRpbGUgKCJtb3YgJSVlYngsICUwXG5cdCIJCQkJICAgICAgXAor
CQkgICAgICAibW92ICUxLCAlJWVieFxuXHQiCQkJCSAgICAgIFwKKwkJICAgICAgTExMX0VCWF9M
T0FECQkJCQkgICAgICBcCisJCSAgICAgICJwdXNobCAlJWVicFxuXHQiCQkJCQkgICAgICBcCisJ
CSAgICAgICJtb3YgJTMsICUlZWJwXG5cdCIJCQkJICAgICAgXAorCQkgICAgICA6ICI9bSIgKF9f
c2F2ZV9lYngpCQkJCSAgICAgIFwKKwkJICAgICAgOiAiYyIgKG11dGV4KSwgTExMX0VCWF9SRUcg
KGZ1dGV4KSwJCSAgICAgIFwKKwkJICAgICAgICAiYSIgKHZhbCkpOwkJCQkJICAgICAgXAorICAg
IF9fYXNtIF9fdm9sYXRpbGUgKExMTF9FTlRFUl9LRVJORUwJCQkJCSAgICAgIFwKKwkJICAgICAg
InBvcGwgJSVlYnBcblx0IgkJCQkJICAgICAgXAorCQkgICAgICA6ICI9YSIgKF9fc3RhdHVzKQkJ
CQkJICAgICAgXAorCQkgICAgICA6ICIwIiAoU1lTX2Z1dGV4KSwgCQkJCSAgICAgIFwKKwkJCSJj
IiAoX19sbGxfcHJpdmF0ZV9mbGFnIChfX2ZsYWcsIHByaXZhdGUpKSwJICAgICAgXAorCQkJImQi
IChucl93YWtlKSwgIlMiIChfbnJfbW92ZSksCQkJICAgICAgXAorCQkJImkiICgwKSAvKiBwaG9u
eSwgdG8gYWxpZ24gbmV4dCBhcmcncyBudW1iZXIgKi8sICAgICAgXAorCQkJImkiIChvZmZzZXRv
ZiAodGNiaGVhZF90LCBzeXNpbmZvKSkJCSAgICAgIFwKKwkJICAgICAgOiAibWVtb3J5Iik7CQkJ
CQkgICAgICBcCisgICAgX19hc20gX192b2xhdGlsZSAoTExMX0VCWF9MT0FECQkJCQkgICAgICBc
CisJCSAgICAgICJtb3YgJTEsICUlZWJ4XG5cdCIJCQkJICAgICAgXAorCQkgICAgICA6ICI9bSIg
KF9fZHVtbXkpCQkJCQkgICAgICBcCisJCSAgICAgIDogIm0iIChfX3NhdmVfZWJ4KSwgTExMX0VC
WF9SRUcgKGZ1dGV4KSk7CQkgICAgICBcCisgICAgX19zdGF0dXM7CQkJCQkJCQkgICAgICBcCisg
IH0pCisKKworI2RlZmluZSBsbGxfZnV0ZXhfcmVxdWV1ZV9waShmdXRleCwgbnJfd2FrZSwgbnJf
bW92ZSwgbXV0ZXgsIHZhbCwgcHJpdmF0ZSkgXAorICAoewkJCQkJCQkJCSAgICAgIFwKKyAgICBp
bnQgX19zdGF0dXM7CQkJCQkJCSAgICAgIFwKKyAgICBpbnQgX19zYXZlX2VieDsJCQkJCQkJICAg
ICAgXAorICAgIGludCBfX2R1bW15OwkJCQkJCQkgICAgICBcCisgICAgaW50IF9fZmxhZyA9IEZV
VEVYX0NNUF9SRVFVRVVFX1BJOwkJCQkJICAgICAgXAorICAgIHJlZ2lzdGVyIF9fdHlwZW9mIChu
cl9tb3ZlKSBfbnJfbW92ZSBhc20gKCJlc2kiKSA9IChucl9tb3ZlKTsJICAgICAgXAorICAgIF9f
YXNtIF9fdm9sYXRpbGUgKCJtb3YgJSVlYngsICUwXG5cdCIJCQkJICAgICAgXAorCQkgICAgICAi
bW92ICUxLCAlJWVieFxuXHQiCQkJCSAgICAgIFwKKwkJICAgICAgTExMX0VCWF9MT0FECQkJCQkg
ICAgICBcCisJCSAgICAgICJwdXNobCAlJWVicFxuXHQiCQkJCQkgICAgICBcCisJCSAgICAgICJt
b3YgJTMsICUlZWJwXG5cdCIJCQkJICAgICAgXAorCQkgICAgICA6ICI9bSIgKF9fc2F2ZV9lYngp
CQkJCSAgICAgIFwKKwkJICAgICAgOiAiYyIgKG11dGV4KSwgTExMX0VCWF9SRUcgKGZ1dGV4KSwJ
CSAgICAgIFwKKwkJICAgICAgICAiYSIgKHZhbCkpOwkJCQkJICAgICAgXAorICAgIF9fYXNtIF9f
dm9sYXRpbGUgKExMTF9FTlRFUl9LRVJORUwJCQkJCSAgICAgIFwKKwkJICAgICAgInBvcGwgJSVl
YnBcblx0IgkJCQkJICAgICAgXAorCQkgICAgICA6ICI9YSIgKF9fc3RhdHVzKQkJCQkJICAgICAg
XAorCQkgICAgICA6ICIwIiAoU1lTX2Z1dGV4KSwgCQkJCSAgICAgIFwKKwkJCSJjIiAoX19sbGxf
cHJpdmF0ZV9mbGFnIChfX2ZsYWcsIHByaXZhdGUpKSwJICAgICAgXAorCQkJImQiIChucl93YWtl
KSwgIlMiIChfbnJfbW92ZSksCQkJICAgICAgXAorCQkJImkiICgwKSAvKiBwaG9ueSwgdG8gYWxp
Z24gbmV4dCBhcmcncyBudW1iZXIgKi8sICAgICAgXAorCQkJImkiIChvZmZzZXRvZiAodGNiaGVh
ZF90LCBzeXNpbmZvKSkJCSAgICAgIFwKKwkJICAgICAgOiAibWVtb3J5Iik7CQkJCQkgICAgICBc
CisgICAgX19hc20gX192b2xhdGlsZSAoTExMX0VCWF9MT0FECQkJCQkgICAgICBcCisJCSAgICAg
ICJtb3YgJTEsICUlZWJ4XG5cdCIJCQkJICAgICAgXAorCQkgICAgICA6ICI9bSIgKF9fZHVtbXkp
CQkJCQkgICAgICBcCisJCSAgICAgIDogIm0iIChfX3NhdmVfZWJ4KSwgTExMX0VCWF9SRUcgKGZ1
dGV4KSk7CQkgICAgICBcCisgICAgX19zdGF0dXM7CQkJCQkJCQkgICAgICBcCisgIH0pCisKKwog
LyogTkI6IGluIHRoZSBsbGxfdHJ5bG9jayBtYWNybyB3ZSBzaW1wbHkgcmV0dXJuIHRoZSB2YWx1
ZSBpbiAlZWF4CiAgICBhZnRlciB0aGUgY21weGNoZyBpbnN0cnVjdGlvbi4gIEluIGNhc2UgdGhl
IG9wZXJhdGlvbiBzdWNjZWRlZCB0aGlzCiAgICB2YWx1ZSBpcyB6ZXJvLiAgSW4gY2FzZSB0aGUg
b3BlcmF0aW9uIGZhaWxlZCwgdGhlIGNtcHhjaGcgaW5zdHJ1Y3Rpb24KZGlmZiAtLWdpdCBhL25w
dGwvc3lzZGVwcy91bml4L3N5c3YvbGludXgvaW50ZXJuYWx0eXBlcy5oIGIvbnB0bC9zeXNkZXBz
L3VuaXgvc3lzdi9saW51eC9pbnRlcm5hbHR5cGVzLmgKaW5kZXggYWRkMjBiNi4uODc2Y2E3OSAx
MDA2NDQKLS0tIGEvbnB0bC9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pbnRlcm5hbHR5cGVzLmgK
KysrIGIvbnB0bC9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pbnRlcm5hbHR5cGVzLmgKQEAgLTY3
LDIwICs2NywzOCBAQCBzdHJ1Y3QgcHRocmVhZF9jb25kYXR0cgogewogICAvKiBDb21iaW5hdGlv
biBvZiB2YWx1ZXM6CiAKLSAgICAgQml0IDAgIDogZmxhZyB3aGV0aGVyIGNvZGl0aW9uYWwgdmFy
aWFibGUgd2lsbCBiZSBzaGFyZWFibGUgYmV0d2VlbgorICAgICBCaXQgMCAgOiBmbGFnIHdoZXRo
ZXIgY29uZGl0aW9uYWwgdmFyaWFibGUgd2lsbCBiZSBzaGFyZWFibGUgYmV0d2VlbgogCSAgICAg
IHByb2Nlc3Nlcy4KIAotICAgICBCaXQgMS03OiBjbG9jayBJRC4gICovCisgICAgIEJpdCAxLTc6
IGNsb2NrIElELgorICAgICBCaXQgOC05OiBwcm90b2NvbC4gT25lIG9mIFBUSFJFQURfUFJJT19O
T05FLCBQVEhSRUFEX1BSSU9fSU5IRVJJVAorICAgICAgICAgICAgICBvciBQVEhSRUFEX1BSSU9f
UFJPVEVDVC4gICovCiAgIGludCB2YWx1ZTsKIH07CiAKIAorI2RlZmluZSBDT05EQVRUUl9QU0hB
UkVEX01BU0sJMHgwMDAwMDAwMQorI2RlZmluZSBDT05EQVRUUl9DTE9DS0lEX01BU0sJMHgwMDAw
MDBGRQorI2RlZmluZSBDT05EQVRUUl9DTE9DS0lEX1NISUZUCTEKKyNkZWZpbmUgQ09OREFUVFJf
UFJPVE9DT0xfTUFTSwkweDAwMDAwMzAwCisjZGVmaW5lIENPTkRBVFRSX1BST1RPQ09MX1NISUZU
CTgKKworCitlbnVtIHsKKyAgQ09ORF9QUklPX0lOSEVSSVQgPSAyLAorICBDT05EX1BSSU9fUFJP
VEVDVAorfTsKKworCiAvKiBUaGUgX19OV0FJVEVSUyBmaWVsZCBpcyB1c2VkIGFzIGEgY291bnRl
ciBhbmQgdG8gaG91c2UgdGhlIG51bWJlcgotICAgb2YgYml0cyBmb3Igb3RoZXIgcHVycG9zZXMu
ICBDT05EX0NMT0NLX0JJVFMgaXMgdGhlIG51bWJlcgotICAgb2YgYml0cyBuZWVkZWQgdG8gcmVw
cmVzZW50IHRoZSBJRCBvZiB0aGUgY2xvY2suICBDT05EX05XQUlURVJTX1NISUZUCisgICBvZiBi
aXRzIGZvciBvdGhlciBwdXJwb3Nlcy4gIENPTkRfQ0xPQ0tfTUFTSyBkZWZpbmVzIHRoZSBiaXRz
IHVzZWQKKyAgIHRvIHJlcHJlc2VudCB0aGUgSUQgb2YgdGhlIGNsb2NrLiAgQ09ORF9QUk9UT0NP
TF9NQVNLIGRlZmluZXMgdGhlCisgICBiaXRzIHVzZWQgdG8gcmVwcmVzZW50IGNvbmQgcHJvdG9j
b2wgYXR0cmJ1dGVzLiBDT05EX05XQUlURVJTX1NISUZUCiAgICBpcyB0aGUgbnVtYmVyIG9mIGJp
dHMgcmVzZXJ2ZWQgZm9yIG90aGVyIHB1cnBvc2VzIGxpa2UgdGhlIGNsb2NrLiAgKi8KLSNkZWZp
bmUgQ09ORF9DTE9DS19CSVRTCQkxCi0jZGVmaW5lIENPTkRfTldBSVRFUlNfU0hJRlQJMQorI2Rl
ZmluZSBDT05EX0NMT0NLX01BU0sJCTB4MDAwMDAwMDEKKyNkZWZpbmUgQ09ORF9QUk9UT0NPTF9T
SElGVAkxCisjZGVmaW5lIENPTkRfUFJPVE9DT0xfTUFTSwkweDAwMDAwMDA2CisjZGVmaW5lIENP
TkRfTldBSVRFUlNfU0hJRlQJMwogCiAKIC8qIFJlYWQtd3JpdGUgbG9jayB2YXJpYWJsZSBhdHRy
aWJ1dGUgZGF0YSBzdHJ1Y3R1cmUuICAqLwpkaWZmIC0tZ2l0IGEvbnB0bC9zeXNkZXBzL3VuaXgv
c3lzdi9saW51eC94ODZfNjQvbG93bGV2ZWxsb2NrLmggYi9ucHRsL3N5c2RlcHMvdW5peC9zeXN2
L2xpbnV4L3g4Nl82NC9sb3dsZXZlbGxvY2suaAppbmRleCA5YjE1YmZiLi41MTFkZTA2IDEwMDY0
NAotLS0gYS9ucHRsL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82NC9sb3dsZXZlbGxvY2su
aAorKysgYi9ucHRsL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82NC9sb3dsZXZlbGxvY2su
aApAQCAtMjIzLDYgKzIyMywzMSBAQCBMTExfU1RVQl9VTldJTkRfSU5GT19FTkQKICAgfSkKIAog
CisjZGVmaW5lIGxsbF9mdXRleF93YWl0X3JlcXVldWVfcGkoY29uZCwgdmFsLCBtdXRleCwgcHJp
dmF0ZSkgXAorICBsbGxfZnV0ZXhfdGltZWRfd2FpdF9yZXF1ZXVlX3BpKGNvbmQsIHZhbCwgTlVM
TCwgbXV0ZXgsIHByaXZhdGUpCisKKworI2RlZmluZSBsbGxfZnV0ZXhfdGltZWRfd2FpdF9yZXF1
ZXVlX3BpKGNvbmQsIHZhbCwgdGltZW91dCwgbXV0ZXgsIHByaXZhdGUpIFwKKyAgKHsJCQkJCQkJ
CQkgICAgICBcCisgICAgcmVnaXN0ZXIgY29uc3Qgc3RydWN0IHRpbWVzcGVjICpfX3RvIF9fYXNt
ICgicjEwIikgPSB0aW1lb3V0OwkgICAgICBcCisgICAgcmVnaXN0ZXIgdm9pZCAqX19tdXRleCBf
X2FzbSAgKCJyOCIpID0gbXV0ZXg7CQkJICAgICAgXAorICAgIHVuc2lnbmVkIGludCAqX19mdXRl
eHAgPSAmY29uZC0+X19kYXRhLl9fZnV0ZXg7CQkJICAgICAgXAorICAgIGludCBfX2ZsYWcgPSBG
VVRFWF9XQUlUX1JFUVVFVUVfUEk7CQkJCQkgICAgICBcCisgICAgX19mbGFnID0gKGNvbmQtPl9f
ZGF0YS5fX253YWl0ZXJzICYgQ09ORF9DTE9DS19NQVNLKSA/CQkgICAgICBcCisJCSAgICAgIF9f
ZmxhZyAgOiBfX2ZsYWcgfCBGVVRFWF9DTE9DS19SRUFMVElNRTsJCSAgICAgIFwKKyAgICBpbnQg
X19zdGF0dXM7CQkJCQkJCSAgICAgIFwKKyAgICByZWdpc3RlciBfX3R5cGVvZiAodmFsKSBfdmFs
IF9fYXNtICgiZWR4IikgPSAodmFsKTsJCQkgICAgICBcCisgICAgX19hc20gX192b2xhdGlsZSAo
InN5c2NhbGwiCQkJCQkJICAgICAgXAorCQkgICAgICA6ICI9YSIgKF9fc3RhdHVzKQkJCQkJICAg
ICAgXAorCQkgICAgICA6ICIwIiAoU1lTX2Z1dGV4KSwgIkQiIChfX2Z1dGV4cCksCQkgICAgICBc
CisJCQkiUyIgKF9fbGxsX3ByaXZhdGVfZmxhZyAoX19mbGFnLCBwcml2YXRlKSksCSAgICAgIFwK
KwkJCSJkIiAoX3ZhbCksICJyIiAoX190byksCQkJCSAgICAgIFwKKwkJCSJyIiAoX19tdXRleCkJ
CQkJCSAgICAgIFwKKwkJICAgICAgOiAibWVtb3J5IiwgImNjIiwgInIxMSIsICJjeCIpOwkJCSAg
ICAgIFwKKyAgICBfX3N0YXR1czsJCQkJCQkJCSAgICAgIFwKKyAgfSkKKworCiAjZGVmaW5lIGxs
bF9mdXRleF93YWtlKGZ1dGV4LCBuciwgcHJpdmF0ZSkgXAogICBkbyB7CQkJCQkJCQkJICAgICAg
XAogICAgIGludCBfX2lnbm9yZTsJCQkJCQkJICAgICAgXApAQCAtNTU0LDYgKzU3OSwyMSBAQCBM
TExfU1RVQl9VTldJTkRfSU5GT19FTkQKIAkJICAgICAgIDogImN4IiwgInIxMSIsICJjYyIsICJt
ZW1vcnkiKTsJCQkgICAgICBcCiAgICAgIF9fcmVzIDwgMDsgfSkKIAorLyogUmV0dXJucyBub24t
emVybyBpZiBlcnJvciBoYXBwZW5lZCwgemVybyBpZiBzdWNjZXNzLiAgKi8KKyNkZWZpbmUgbGxs
X2Z1dGV4X3JlcXVldWVfcGkoZnR4LCBucl93YWtlLCBucl9tb3ZlLCBtdXRleCwgdmFsLCBwcml2
YXRlKSBcCisgICh7IGludCBfX3JlczsJCQkJCQkJCSAgICAgIFwKKyAgICAgcmVnaXN0ZXIgaW50
IF9fbnJfbW92ZSBfX2FzbSAoInIxMCIpID0gbnJfbW92ZTsJCQkgICAgICBcCisgICAgIHJlZ2lz
dGVyIHZvaWQgKl9fbXV0ZXggX19hc20gKCJyOCIpID0gbXV0ZXg7CQkJICAgICAgXAorICAgICBy
ZWdpc3RlciBpbnQgX192YWwgX19hc20gKCJyOSIpID0gdmFsOwkJCQkgICAgICBcCisgICAgIF9f
YXNtIF9fdm9sYXRpbGUgKCJzeXNjYWxsIgkJCQkJICAgICAgXAorCQkgICAgICAgOiAiPWEiIChf
X3JlcykJCQkJCSAgICAgIFwKKwkJICAgICAgIDogIjAiIChfX05SX2Z1dGV4KSwgIkQiICgodm9p
ZCAqKSBmdHgpLAkJICAgICAgXAorCQkJICJTIiAoX19sbGxfcHJpdmF0ZV9mbGFnIChGVVRFWF9D
TVBfUkVRVUVVRV9QSSwJICAgICAgXAorCQkJCQkJICBwcml2YXRlKSksICJkIiAobnJfd2FrZSks
ICAgXAorCQkJICJyIiAoX19ucl9tb3ZlKSwgInIiIChfX211dGV4KSwgInIiIChfX3ZhbCkJICAg
ICAgXAorCQkgICAgICAgOiAiY3giLCAicjExIiwgImNjIiwgIm1lbW9yeSIpOwkJCSAgICAgIFwK
KyAgICAgX19yZXMgPCAwOyB9KQorCiAjZGVmaW5lIGxsbF9pc2xvY2tlZChmdXRleCkgXAogICAo
ZnV0ZXggIT0gTExMX0xPQ0tfSU5JVElBTElaRVIpCiAKLS0gCjEuNi4zLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
              isurl="0"
          >
            <attachid>4781</attachid>
            <date>2010-05-11 18:50:00 +0000</date>
            <delta_ts>2010-05-13 08:08:18 +0000</delta_ts>
            <desc>pi condvar: add tst-condpi1.c basic API test</desc>
            <filename>0002-pi-condvar-add-tst-condpi1.c-basic-API-test.patch</filename>
            <type>text/plain</type>
            <size>4747</size>
            <attacher>dvhltc</attacher>
            
              <data encoding="base64">RnJvbSA2YzNkZjM2NTlmNmZmZjhjZDg1MDgwYWMzNWZhYjU4ZjAxYjJkZjg2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXJyZW4gSGFydCA8ZHZobHRjQHVzLmlibS5jb20+CkRhdGU6
IE1vbiwgMTAgTWF5IDIwMTAgMjA6MTc6NTEgLTA0MDAKU3ViamVjdDogW1BBVENIIDIvMl0gcGkg
Y29uZHZhcjogYWRkIHRzdC1jb25kcGkxLmMsIGJhc2ljIEFQSSB0ZXN0CgpBZGQgYSB2ZXJ5IGJh
c2ljICJtYWtlIGNoZWNrIiB0ZXN0IGNhc2UgZm9yIHRoZSBjb25kdmFyIHNldHByb3RvY29sCkFQ
SS4gVGhpcyB0ZXN0Y2FzZSBpcyBhIGJhc2ljIG1vZGlmaWNhdGlvbiBvZiBucHRsL3RzdC1jb25k
MS5jLgoKU2lnbmVkLW9mZi1ieTogRGFycmVuIEhhcnQgPGR2aGx0Y0B1cy5pYm0uY29tPgotLS0K
IG5wdGwvTWFrZWZpbGUgICAgICB8ICAgIDEgKwogbnB0bC90c3QtY29uZHBpMS5jIHwgIDEyMyAr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZp
bGVzIGNoYW5nZWQsIDEyNCBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1v
ZGUgMTAwNjQ0IG5wdGwvdHN0LWNvbmRwaTEuYwoKZGlmZiAtLWdpdCBhL25wdGwvTWFrZWZpbGUg
Yi9ucHRsL01ha2VmaWxlCmluZGV4IDZkMTkxM2UuLjk2OTVlYzcgMTAwNjQ0Ci0tLSBhL25wdGwv
TWFrZWZpbGUKKysrIGIvbnB0bC9NYWtlZmlsZQpAQCAtMjA5LDYgKzIwOSw3IEBAIHRlc3RzID0g
dHN0LXR5cGVzaXplcyBcCiAJdHN0LWNvbmQ4IHRzdC1jb25kOSB0c3QtY29uZDEwIHRzdC1jb25k
MTEgdHN0LWNvbmQxMiB0c3QtY29uZDEzIFwKIAl0c3QtY29uZDE0IHRzdC1jb25kMTUgdHN0LWNv
bmQxNiB0c3QtY29uZDE3IHRzdC1jb25kMTggdHN0LWNvbmQxOSBcCiAJdHN0LWNvbmQyMCB0c3Qt
Y29uZDIxIHRzdC1jb25kMjIgdHN0LWNvbmQyMyBcCisJdHN0LWNvbmRwaTEgXAogCXRzdC1yb2J1
c3QxIHRzdC1yb2J1c3QyIHRzdC1yb2J1c3QzIHRzdC1yb2J1c3Q0IHRzdC1yb2J1c3Q1IFwKIAl0
c3Qtcm9idXN0NiB0c3Qtcm9idXN0NyB0c3Qtcm9idXN0OCB0c3Qtcm9idXN0OSBcCiAJdHN0LXJv
YnVzdHBpMSB0c3Qtcm9idXN0cGkyIHRzdC1yb2J1c3RwaTMgdHN0LXJvYnVzdHBpNCB0c3Qtcm9i
dXN0cGk1IFwKZGlmZiAtLWdpdCBhL25wdGwvdHN0LWNvbmRwaTEuYyBiL25wdGwvdHN0LWNvbmRw
aTEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjZjZjZiCi0tLSAvZGV2
L251bGwKKysrIGIvbnB0bC90c3QtY29uZHBpMS5jCkBAIC0wLDAgKzEsMTIzIEBACisvKiBDb3B5
cmlnaHQgKEMpIDIwMDIgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBDb3B5cmln
aHQgKEMpIEludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMgIENvcnAuLCAyMDEwCisgICBU
aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKyAgIENvbnRyaWJ1dGVkIGJ5
IERhcnJlbiBIYXJ0IDxkdmhsdGNAdXMuaWJtLmNvbT4sIDIwMTAKKyAgIEJhc2VkIG9uIHRlc3Qt
Y29uZDEuYyBieSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPiwgMjAwMi4KKwor
ICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUgR05VIEMg
TGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGgg
dGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUKKyAgIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1B
CisgICAwMjExMS0xMzA3IFVTQS4gICovCisKKyNpbmNsdWRlIDxlcnJvci5oPgorI2luY2x1ZGUg
PHB0aHJlYWQuaD4KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHN0ZGxpYi5oPgorCisK
K3N0YXRpYyBwdGhyZWFkX2NvbmRfdCBjb25kOworc3RhdGljIHB0aHJlYWRfbXV0ZXhfdCBtdXQ7
CisKKworc3RhdGljIHZvaWQgKgordGYgKHZvaWQgKnApCit7CisgIGludCBlcnI7CisKKyAgZXJy
ID0gcHRocmVhZF9tdXRleF9sb2NrICgmbXV0KTsKKyAgaWYgKGVyciAhPSAwKQorICAgIGVycm9y
IChFWElUX0ZBSUxVUkUsIGVyciwgImNoaWxkOiBjYW5ub3QgZ2V0IG11dGV4Iik7CisKKyAgcHV0
cyAoImNoaWxkOiBnb3QgbXV0ZXg7IHNpZ25hbGxpbmciKTsKKworICBwdGhyZWFkX2NvbmRfc2ln
bmFsICgmY29uZCk7CisKKyAgcHV0cyAoImNoaWxkOiB1bmxvY2siKTsKKworICBlcnIgPSBwdGhy
ZWFkX211dGV4X3VubG9jayAoJm11dCk7CisgIGlmIChlcnIgIT0gMCkKKyAgICBlcnJvciAoRVhJ
VF9GQUlMVVJFLCBlcnIsICJjaGlsZDogY2Fubm90IHVubG9jayIpOworCisgIHB1dHMgKCJjaGls
ZDogZG9uZSIpOworCisgIHJldHVybiBOVUxMOworfQorCisKK3N0YXRpYyBpbnQKK2RvX3Rlc3Qg
KHZvaWQpCit7CisgIHB0aHJlYWRfdCB0aDsKKyAgaW50IGVycjsKKworICBwdGhyZWFkX211dGV4
YXR0cl90IG1hOworICBwdGhyZWFkX2NvbmRhdHRyX3QgY2E7CisKKyAgcHJpbnRmICgiJmNvbmQg
PSAlcFxuJm11dCA9ICVwXG4iLCAmY29uZCwgJm11dCk7CisKKyAgcHV0cyAoInBhcmVudDogc2V0
dXAgY29uZHZhciIpOworCisgIGVyciA9IHB0aHJlYWRfY29uZGF0dHJfaW5pdCgmY2EpOworICBp
ZiAoZXJyICE9IDApCisgICAgZXJyb3IgKEVYSVRfRkFJTFVSRSwgZXJyLCAicGFyZW50OiBmYWls
ZWQgdG8gaW5pdCBjb25kYXR0ciIpOworICBlcnIgPSBwdGhyZWFkX2NvbmRhdHRyX3NldHByb3Rv
Y29sX25wKCZjYSwgUFRIUkVBRF9QUklPX0lOSEVSSVQpOworICBpZiAoZXJyICE9IDApCisgICAg
ZXJyb3IgKEVYSVRfRkFJTFVSRSwgZXJyLCAicGFyZW50OiBmYWlsZWQgdG8gc2V0IGNvbmRhdHRy
IHByb3RvY29sIik7CisgIGVyciA9IHB0aHJlYWRfY29uZF9pbml0KCZjb25kLCAmY2EpOworICBp
ZiAoZXJyICE9IDApCisgICAgZXJyb3IgKEVYSVRfRkFJTFVSRSwgZXJyLCAicGFyZW50OiBmYWls
ZWQgdG8gaW5pdCBjb25kdmFyIik7CisKKyAgcHV0cyAoInBhcmVudDogc2V0dXAgbXV0ZXgiKTsK
KyAgCisgIGVyciA9IHB0aHJlYWRfbXV0ZXhhdHRyX2luaXQoJm1hKTsKKyAgaWYgKGVyciAhPSAw
KQorICAgIGVycm9yIChFWElUX0ZBSUxVUkUsIGVyciwgInBhcmVudDogZmFpbGVkIHRvIGluaXQg
bXV0ZXhhdHRyIik7CisgIGVyciA9IHB0aHJlYWRfbXV0ZXhhdHRyX3NldHByb3RvY29sKCZtYSwg
UFRIUkVBRF9QUklPX0lOSEVSSVQpOworICBpZiAoZXJyICE9IDApCisgICAgZXJyb3IgKEVYSVRf
RkFJTFVSRSwgZXJyLCAicGFyZW50OiBmYWlsZWQgdG8gc2V0IG11dGV4YXR0ciBwcm90b2NvbCIp
OworICBlcnIgPSBwdGhyZWFkX211dGV4X2luaXQoJm11dCwgJm1hKTsKKyAgaWYgKGVyciAhPSAw
KQorICAgIGVycm9yIChFWElUX0ZBSUxVUkUsIGVyciwgInBhcmVudDogZmFpbGVkIHRvIGluaXQg
bXV0ZXgiKTsKKworICBwdXRzICgicGFyZW50OiBnZXQgbXV0ZXgiKTsKKworICBlcnIgPSBwdGhy
ZWFkX211dGV4X2xvY2sgKCZtdXQpOworICBpZiAoZXJyICE9IDApCisgICAgZXJyb3IgKEVYSVRf
RkFJTFVSRSwgZXJyLCAicGFyZW50OiBjYW5ub3QgZ2V0IG11dGV4Iik7CisKKyAgcHV0cyAoInBh
cmVudDogY3JlYXRlIGNoaWxkIik7CisKKyAgZXJyID0gcHRocmVhZF9jcmVhdGUgKCZ0aCwgTlVM
TCwgdGYsIE5VTEwpOworICBpZiAoZXJyICE9IDApCisgICAgZXJyb3IgKEVYSVRfRkFJTFVSRSwg
ZXJyLCAicGFyZW50OiBjYW5ub3QgY3JlYXRlIHRocmVhZCIpOworCisgIHB1dHMgKCJwYXJlbnQ6
IHdhaXQgZm9yIGNvbmRpdGlvbiIpOworCisgIGVyciA9IHB0aHJlYWRfY29uZF93YWl0ICgmY29u
ZCwgJm11dCk7CisgIGlmIChlcnIgIT0gMCkKKyAgICBlcnJvciAoRVhJVF9GQUlMVVJFLCBlcnIs
ICJwYXJlbnQ6IGNhbm5vdCB3YWl0IGZpciBzaWduYWwiKTsKKworICBwdXRzICgicGFyZW50OiBn
b3Qgc2lnbmFsIik7CisKKyAgZXJyID0gcHRocmVhZF9qb2luICh0aCwgTlVMTCk7CisgIGlmIChl
cnIgIT0gMCkKKyAgICBlcnJvciAoRVhJVF9GQUlMVVJFLCBlcnIsICJwYXJlbnQ6IGZhaWxlZCB0
byBqb2luIik7CisKKyAgcHV0cyAoImRvbmUiKTsKKworICByZXR1cm4gMDsKK30KKworCisjZGVm
aW5lIFRFU1RfRlVOQ1RJT04gZG9fdGVzdCAoKQorI2luY2x1ZGUgIi4uL3Rlc3Qtc2tlbGV0b24u
YyIKLS0gCjEuNi4zLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
              isurl="0"
          >
            <attachid>4782</attachid>
            <date>2010-05-11 18:55:00 +0000</date>
            <delta_ts>2010-05-28 20:34:44 +0000</delta_ts>
            <desc>pi condvar patch impact on normal path testcase</desc>
            <filename>condvar_perf.c</filename>
            <type>text/x-csrc</type>
            <size>3651</size>
            <attacher>dvhltc</attacher>
            
              <data encoding="base64">LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgogKgogKiAgIENvcHlyaWdodCDCqSBJbnRlcm5hdGlvbmFs
IEJ1c2luZXNzIE1hY2hpbmVzICBDb3JwLiwgMjAxMAogKgogKiAgIFRoaXMgcHJvZ3JhbSBpcyBm
cmVlIHNvZnR3YXJlOyAgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogKiAg
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5CiAqICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKICogICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgogKgogKiAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiAgIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZQogKiAgIHRoZSBHTlUg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiAgIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CiAqICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07ICBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCiAqICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAz
MzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKICoKICogTkFNRQogKiAgICAgIGNvbmR2YXJf
cGVyZi5jCiAqCiAqIERFU0NSSVBUSU9OCiAqICAgICAgVGhpcyB0ZXN0IGlzIGRlc2lnbmVkIHRv
IHRlc3QgdGhlIGVmZmljaWVuY3kgb2YgdGhlIHB0aHJlYWRfY29uZF93YWl0CiAqICAgICAgYW5k
IHB0aHJlYWRfY29uZF9zaWduYWwgY29kZSBwYXRocyB3aXRoaW4gZ2xpYmMuCiAqCiAqIEFVVEhP
UgogKiAgICAgIERhcnJlbiBIYXJ0IDxkdmhsdGNAdXMuaWJtLmNvbT4KICoKICogSElTVE9SWQog
KiAgICAgIDIwMTAtRmViLTIzOiBJbml0aWFsIHZlcnNpb24gYnkgRGFycmVuIEhhcnQgPGR2aGx0
Y0B1cy5pYm0uY29tPgogKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgojaW5jbHVkZSA8dGltZS5o
PgojaW5jbHVkZSA8dW5pc3RkLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHNjaGVk
Lmg+CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8cHRocmVhZC5oPgojaW5jbHVkZSA8Z2V0
b3B0Lmg+CgojZGVmaW5lIFVTRUNfUEVSX1NFQyAxMDAwMDAwCiNkZWZpbmUgTlNFQ19QRVJfVVNF
QyAxMDAwCiNkZWZpbmUgREVGQVVMVF9JVEVSUyAxMDAwMDAwCgpzdGF0aWMgaW50IHNjaGVkX2Zp
Zm9fcHJpbyA9IDA7CnN0YXRpYyBpbnQgaXRlcmF0aW9uczsKc3RhdGljIGludCBzeW5jaCA9IDA7
CgpzdGF0aWMgcHRocmVhZF9jb25kX3QgY29uZCA9IFBUSFJFQURfQ09ORF9JTklUSUFMSVpFUjsK
c3RhdGljIHB0aHJlYWRfbXV0ZXhfdCBtdXRleCA9IFBUSFJFQURfTVVURVhfSU5JVElBTElaRVI7
Cgp2b2lkIHVzYWdlKGNoYXIgKnByb2cpCnsKCXByaW50ZigiVXNhZ2U6ICVzXG4iLCBwcm9nKTsK
CXByaW50ZigiICAtZiAjICBSdW4gYXMgU0NIRURfRklGTyBwcmlvICMgKGRlZmF1bHQgU0NIRURf
T1RIRVIpXG4iKTsKCXByaW50ZigiICAtaAlEaXNwbGF5IHRoaXMgaGVscCBtZXNzYWdlXG4iKTsK
CXByaW50ZigiICAtaSAjCU51bWJlciBvZiBpdGVyYXRpb25zIChkZWZhdWx0ICVkKVxuIiwgREVG
QVVMVF9JVEVSUyk7CglwcmludGYoIiAgLXMgCVN5bmNocm9ub3VzIHNpZ25hbGluZyAobG9jayBt
dXRleClcbiIpOwp9Cgp2b2lkICogd2FpdGVyKHZvaWQgKmFyZykKewoJd2hpbGUgKGl0ZXJhdGlv
bnMpIHsKCQlwdGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsKCQlwdGhyZWFkX2NvbmRfd2FpdCgm
Y29uZCwgJm11dGV4KTsKCQlpdGVyYXRpb25zLS07CgkJcHRocmVhZF9tdXRleF91bmxvY2soJm11
dGV4KTsKCX0KCXJldHVybiBOVUxMOwp9CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltd
KQp7CglzdHJ1Y3QgdGltZXNwZWMgc3RhcnRfdHMsIGVuZF90czsKCWludCBjb25mX2l0ZXJzID0g
REVGQVVMVF9JVEVSUzsKCWxvbmcgbG9uZyBkZWx0YV91czsKCXB0aHJlYWRfdCBjaGlsZF9pZDsK
CWludCByZXQgPSAwOwoJaW50IGM7CgoJd2hpbGUgKChjID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJm
OmhpOnMiKSkgIT0gLTEpIHsKCQlzd2l0Y2goYykgewoJCWNhc2UgJ2YnOgoJCQlzY2hlZF9maWZv
X3ByaW8gPSBhdG9pKG9wdGFyZyk7CgkJCWJyZWFrOwoJCWNhc2UgJ2gnOgoJCQl1c2FnZShhcmd2
WzBdKTsKCQkJZXhpdCgwKTsKCQljYXNlICdpJzoKCQkJY29uZl9pdGVycyA9IGF0b2kob3B0YXJn
KTsKCQkJYnJlYWs7CgkJY2FzZSAncyc6CgkJCXN5bmNoID0gMTsKCQkJYnJlYWs7CgkJZGVmYXVs
dDoKCQkJdXNhZ2UoYXJndlswXSk7CgkJCWV4aXQoMSk7CgkJfQoJfQoJaXRlcmF0aW9ucyA9IGNv
bmZfaXRlcnM7CgoJaWYgKHNjaGVkX2ZpZm9fcHJpbykgewoJCXN0cnVjdCBzY2hlZF9wYXJhbSBz
cDsKCQlzcC5zY2hlZF9wcmlvcml0eSA9IHNjaGVkX2ZpZm9fcHJpbzsKCQlpZiAoKHJldCA9IHNj
aGVkX3NldHNjaGVkdWxlcigwLCBTQ0hFRF9GSUZPLCAmc3ApKSkgewoJCQlwZXJyb3IoInNjaGVk
X3NldHNjaGVkdWxlciIpOwoJCQlnb3RvIG91dDsKCQl9Cgl9CgoJaWYgKChyZXQgPSBwdGhyZWFk
X2NyZWF0ZSgmY2hpbGRfaWQsIE5VTEwsIHdhaXRlciwgTlVMTCkpKSB7CgkJcGVycm9yKCJwdGhy
ZWFkX2NyZWF0ZSBmYWlsZWQiKTsKCQlnb3RvIG91dDsKCX0KCgljbG9ja19nZXR0aW1lKENMT0NL
X1JFQUxUSU1FLCAmc3RhcnRfdHMpOwoKCXdoaWxlIChpdGVyYXRpb25zKSB7CgkJaWYgKHN5bmNo
KSBwdGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsKCQlwdGhyZWFkX2NvbmRfc2lnbmFsKCZjb25k
KTsKCQlpZiAoc3luY2gpIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtdXRleCk7Cgl9CgoJY2xvY2tf
Z2V0dGltZShDTE9DS19SRUFMVElNRSwgJmVuZF90cyk7CglkZWx0YV91cyA9IChlbmRfdHMudHZf
c2VjIC0gc3RhcnRfdHMudHZfc2VjKSAqIFVTRUNfUEVSX1NFQzsKCWRlbHRhX3VzICs9IChlbmRf
dHMudHZfbnNlYyAtIHN0YXJ0X3RzLnR2X25zZWMpIC8gTlNFQ19QRVJfVVNFQzsKCglwcmludGYo
IlNjaGVkdWxpbmc6ICVzICVkXG4iLCBzY2hlZF9maWZvX3ByaW8gPyAiU0NIRURfRklGTyIgOiAi
U0NIRURfT1RIRVIiLAoJCQkJICAgICAgc2NoZWRfZmlmb19wcmlvKTsKCXByaW50ZigiSXRlcmF0
aW9uczogJWQgdXNcbiIsIGNvbmZfaXRlcnMpOwoJcHJpbnRmKCJSdW50aW1lOiAlbGxkIHVzXG4i
LCBkZWx0YV91cyk7CglwcmludGYoIkN5Y2xlcy9TZWNvbmQ6ICVmXG4iLCAoZmxvYXQpY29uZl9p
dGVycy8oKGZsb2F0KWRlbHRhX3VzL1VTRUNfUEVSX1NFQykpOwoKIG91dDoKCXJldHVybiByZXQ7
Cn0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
              isurl="0"
          >
            <attachid>4785</attachid>
            <date>2010-05-13 08:05:00 +0000</date>
            <delta_ts>2010-05-13 08:05:03 +0000</delta_ts>
            <desc>Unbounded priority inversion test case</desc>
            <filename>pthread_cond_hang.c</filename>
            <type>text/x-csrc</type>
            <size>6628</size>
            <attacher>dvhltc</attacher>
            
              <data encoding="base64">LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgogKgogKiAgIENvcHlyaWdodCDCqSBJbnRlcm5hdGlvbmFs
IEJ1c2luZXNzIE1hY2hpbmVzICBDb3JwLiwgMjAwOQogKgogKiAgIFRoaXMgcHJvZ3JhbSBpcyBm
cmVlIHNvZnR3YXJlOyAgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogKiAg
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5CiAqICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKICogICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgogKgogKiAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiAgIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZQogKiAgIHRoZSBHTlUg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiAgIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CiAqICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07ICBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCiAqICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAz
MzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKICoKICogTkFNRQogKiAgICAgIHB0aHJlYWRf
Y29uZF9oYW5nLmMKICoKICogREVTQ1JJUFRJT04KICogICAgICBVc2luZyB2YW5pbGxhIGNvbmQg
dmFycyByZXN1bHRzIGluIGEgcHRocmVhZF9jb25kX3dhaXQgcHJpb3JpdHkKICogICAgICBpbnZl
cnNpb24gZGVhZGxvY2suIFdpdGggUEkgY29uZCB2YXJzIGl0IHdvcmtzIGZpbmUuCiAqCiAqIFVT
QUdFOgogKiAgICAgIGdjYyAtRF9HTlVfU09VUkNFIC1scHRocmVhZCAtbHJ0IC1sZGwgcHRocmVh
ZF9jb25kX2hhbmcuYyBcCiAqICAgICAgLW8gcHRocmVhZF9jb25kX2hhbmcKICoKICogICAgICBl
eHBvcnQgTERfTElCUkFSWV9QQVRIPXBhdGhfdG9fbGlicHRocmVhZC5zb193aXRoX3BpX2NvbmRf
YXBpCiAqICAgICAgLi9wdGhyZWFkX2NvbmRfaGFuZyA9PiBXSUxMIFBBU1MgKG9uIFNNUCkKICog
ICAgICB0YXNrc2V0IC1jIDAgLi9wdGhyZWFkX2NvbmRfaGFuZyAtcDAgPT4gV0lMTCBIQU5HCiAq
ICAgICAgdGFza3NldCAtYyAwIC4vcHRocmVhZF9jb25kX2hhbmcgLXAxID0+IFdJTEwgUEFTUwog
KgogKiBBVVRIT1IKICogICAgICBEaW5ha2FyIEd1bmlndW50YWxhIDxkaW5vQGluLmlibS5jb20+
CiAqCiAqIEhJU1RPUlkKICogICAgICAyMDA5LU5vdi0wNDogQ3JlYXRlZCBiYXNlZCBvbiBKb2hu
IFN0dWx0eidzIHRlc3RjYXNlCiAqICAgICAgMjAwOS1Ob3YtMTI6IEFkZGVkIGRsc3ltIHN1cHBv
cnQgYnkgRGFycmVuIEhhcnQgPGR2aGx0Y0B1cy5pYm0uY29tPgogKgogKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKiovCgojaW5jbHVkZSA8ZGxmY24uaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxz
Y2hlZC5oPgojaW5jbHVkZSA8cHRocmVhZC5oPgojaW5jbHVkZSA8c3RkbGliLmg+CiNpbmNsdWRl
IDx1bmlzdGQuaD4KI2luY2x1ZGUgPGdldG9wdC5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CgojZGVm
aW5lIE5VTV9USFJFQURTCTEKI2RlZmluZSBMT1dfUFJJTwkzMAojZGVmaW5lIE1FRF9QUklPCTUw
CiNkZWZpbmUgSElHSF9QUklPCTcwCgpwdGhyZWFkX2NvbmRfdCByYWNlX3ZhcjsKcHRocmVhZF9t
dXRleF90IHJhY2VfbXV0OwoKcHRocmVhZF9jb25kX3Qgc2lnMSwgc2lnMiwgc2lnMzsKcHRocmVh
ZF9tdXRleF90IG0xLCBtMiwgbTM7Cgp1bnNpZ25lZCBpbnQgdXNlX3BpID0gMDsKdW5zaWduZWQg
aW50IGRvbmUgPSAwOwoKaW50ICgqZGxfcHRocmVhZF9jb25kYXR0cl9zZXRwcm90b2NvbCkocHRo
cmVhZF9jb25kYXR0cl90ICphdHRyLCBpbnQgcHJvdG9jb2wpID0gTlVMTDsKCnZvaWQgdXNhZ2Uo
dm9pZCkKewoJcHJpbnRmKCJwdGhyZWFkX2NvbmRfaGFuZyBvcHRpb25zXG4iKTsKCXByaW50Zigi
ICAtcCgwLDEpCTA6IGRvbid0IHVzZSBwaSBjb25kLCAxOiB1c2UgcGkgY29uZCAoZGVmYXVsdCAw
KVxuIik7Cn0KCmludCBkbF9mdW5jdGlvbl9pbml0KCkKewoJY2hhciAqbGliID0gImxpYnB0aHJl
YWQuc28uMCI7CgljaGFyICplcnJvcjsKCWludCByZXQgPSAwOwoKCXZvaWQgKmRsX2xpYnB0aHJl
YWQgPSBkbG9wZW4obGliLCBSVExEX0xBWlkpOwoJaWYgKGRsX2xpYnB0aHJlYWQpIHsKCQlkbGVy
cm9yKCk7CgkJKih2b2lkICoqKSgmZGxfcHRocmVhZF9jb25kYXR0cl9zZXRwcm90b2NvbCkgPSAK
CQkJZGxzeW0oZGxfbGlicHRocmVhZCwgInB0aHJlYWRfY29uZGF0dHJfc2V0cHJvdG9jb2xfbnAi
KTsKCQllcnJvciA9IGRsZXJyb3IoKTsKCQlpZiAoZXJyb3IpCgkJCWZwcmludGYoc3RkZXJyLCAi
JXNcbiIsIGVycm9yKTsKCQlkbGNsb3NlKGRsX2xpYnB0aHJlYWQpOwoKCX0gZWxzZSB7CgkJZXJy
b3IgPSBkbGVycm9yKCk7CgkJZnByaW50ZihzdGRlcnIsICJkbG9wZW4gZmFpbGVkOiAlc1xuIiwg
ZXJyb3IpOwoJCXJldCA9IC0xOwoJfQoJcmV0dXJuIHJldDsKfQoKaW50IHBhcnNlX2FyZ3MoaW50
IGMsIGNoYXIgKnZbXSkKewoJY2hhciBvcHRpb25zW10gPSAicDpoIjsKCWludCBvcDsKCgl3aGls
ZSAoKG9wID0gZ2V0b3B0KGMsIHYsIG9wdGlvbnMpKSAhPSAtMSkgewoJCXN3aXRjaCAob3ApIHsK
CQkJY2FzZSAncCc6CgkJCQl1c2VfcGkgPSBhdG9pKG9wdGFyZyk7CgkJCQlicmVhazsKCgkJCWNh
c2UgJ2gnOgoJCQlkZWZhdWx0OgoJCQkJdXNhZ2UoKTsKCQkJCWV4aXQoMCk7CgkJfQoJfQoJcmV0
dXJuIDA7Cn0KCnZvaWQqIGxvd190aHJlYWQodm9pZCogYXJnKQp7CgkvKnNpZ25hbCBibG9jayov
CglwdGhyZWFkX211dGV4X2xvY2soJm0xKTsKCXB0aHJlYWRfY29uZF93YWl0KCZzaWcxLCAmbTEp
OwoKCS8qcmFjZSBibG9jayovCglwdGhyZWFkX211dGV4X2xvY2soJnJhY2VfbXV0KTsKCXByaW50
ZigiTG93IHByaW8gdGhyZWFkOiBsb2NrZWRcbiIpOwoJcHRocmVhZF9jb25kX3NpZ25hbCgmc2ln
Mik7CgoJcHRocmVhZF9jb25kX3dhaXQoJnJhY2VfdmFyLCAmcmFjZV9tdXQpOwoJcHJpbnRmKCJM
b3cgcHJpbyB0aHJlYWQ6IGRvbmUgd2FpdGluZ1xuIik7CglwdGhyZWFkX211dGV4X3VubG9jaygm
cmFjZV9tdXQpOwoKCXJldHVybiBOVUxMOwp9CgoKdm9pZCogaGlnaF90aHJlYWQodm9pZCogYXJn
KQp7CgkvKnNpZ25hbCBibG9jayovCglwdGhyZWFkX211dGV4X2xvY2soJm0yKTsKCXB0aHJlYWRf
Y29uZF93YWl0KCZzaWcyLCAmbTIpOwoKCS8qcmFjZSBibG9jayovCglwdGhyZWFkX211dGV4X2xv
Y2soJnJhY2VfbXV0KTsKCXByaW50ZigiSGkgIHByaW8gdGhyZWFkOiBsb2NrZWRcbiIpOwoKCXB0
aHJlYWRfY29uZF9zaWduYWwoJnNpZzMpOwoKCXB0aHJlYWRfY29uZF93YWl0KCZyYWNlX3Zhciwg
JnJhY2VfbXV0KTsKCXByaW50ZigiSGkgIHByaW8gdGhyZWFkOiBkb25lIHdhaXRpbmdcbiIpOwoJ
cHRocmVhZF9tdXRleF91bmxvY2soJnJhY2VfbXV0KTsKCglkb25lID0gMTsKCXJldHVybiBOVUxM
Owp9CgoKdm9pZCogbWVkaXVtX3RocmVhZCh2b2lkKiBhcmcpCnsKCS8qc2lnbmFsIGJsb2NrKi8K
CXB0aHJlYWRfbXV0ZXhfbG9jaygmbTMpOwoJcHRocmVhZF9jb25kX3dhaXQoJnNpZzMsICZtMyk7
CgoJcHJpbnRmKCJNZWQgcHJpbyB0aHJlYWQ6IHNwaW5uaW5nXG4iKTsKCgkvKnJhY2UgYmxvY2sq
LwoJd2hpbGUoIWRvbmUpCgkJLypidXN5IHdhaXQgdG8gYmxvY2sgbG93IHRocmVhZHMqLzsKCXJl
dHVybiBOVUxMOwp9CgoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKewoJcHRocmVh
ZF90IGxvd190aHJlYWRzW05VTV9USFJFQURTXTsKCXB0aHJlYWRfdCBtZWRfdGhyZWFkc1tOVU1f
VEhSRUFEU107CglwdGhyZWFkX3QgaGlfdGhyZWFkc1tOVU1fVEhSRUFEU107CglzdHJ1Y3Qgc2No
ZWRfcGFyYW0gcGFyYW07CglwdGhyZWFkX2F0dHJfdCBhdHRyOwoJcHRocmVhZF9tdXRleGF0dHJf
dCBtX2F0dHI7CglwdGhyZWFkX2NvbmRhdHRyX3QgY19hdHRyOwoKCWludCBpLCByZXQ7CgoJcGFy
c2VfYXJncyhhcmdjLCBhcmd2KTsKCglpZiAodXNlX3BpICYmIChyZXQgPSBkbF9mdW5jdGlvbl9p
bml0KCkpICE9IDApCgkJcmV0dXJuIHJldDsKCglwdGhyZWFkX2F0dHJfaW5pdCgmYXR0cik7CiAg
ICAgICAgcHRocmVhZF9hdHRyX3NldGluaGVyaXRzY2hlZCgmYXR0ciwgUFRIUkVBRF9FWFBMSUNJ
VF9TQ0hFRCk7CiAgICAgICAgcHRocmVhZF9hdHRyX3NldHNjaGVkcG9saWN5KCZhdHRyLCBTQ0hF
RF9GSUZPKTsKCglwdGhyZWFkX2NvbmRhdHRyX2luaXQoJmNfYXR0cik7CgoJaWYgKHVzZV9waSkg
ewoJCWlmIChkbF9wdGhyZWFkX2NvbmRhdHRyX3NldHByb3RvY29sKSB7CgkJCWRsX3B0aHJlYWRf
Y29uZGF0dHJfc2V0cHJvdG9jb2woJmNfYXR0ciwgUFRIUkVBRF9QUklPX0lOSEVSSVQpOwoJCX0g
ZWxzZSB7CgkJCWZwcmludGYoc3RkZXJyLCAiUEkgQ29uZHZhcnMgdW5hdmFpbGFibGUsIGFib3J0
aW5nXG4iKTsKCQkJcmV0dXJuIC0xOwoJCX0KCX0KCglpZiAoKHJldCA9IHB0aHJlYWRfY29uZF9p
bml0KCZzaWcxLCAmY19hdHRyKSkgIT0gMCkKCQlwZXJyb3IoIkZhaWxlZCB0byBpbml0IGNvbmQg
c2lnMSIpOwoJaWYgKChyZXQgPSBwdGhyZWFkX2NvbmRfaW5pdCgmc2lnMiwgJmNfYXR0cikpICE9
IDApCgkJcGVycm9yKCJGYWlsZWQgdG8gaW5pdCBjb25kIHNpZzIiKTsKCWlmICgocmV0ID0gcHRo
cmVhZF9jb25kX2luaXQoJnNpZzMsICZjX2F0dHIpKSAhPSAwKQoJCXBlcnJvcigiRmFpbGVkIHRv
IGluaXQgY29uZCBzaWczIik7CglpZiAoKHJldCA9IHB0aHJlYWRfY29uZF9pbml0KCZyYWNlX3Zh
ciwgJmNfYXR0cikpICE9IDApCgkJcGVycm9yKCJGYWlsZWQgdG8gaW5pdCBjb25kIHJhY2VfdmFy
Iik7CgoJcHRocmVhZF9tdXRleGF0dHJfaW5pdCgmbV9hdHRyKTsKCXB0aHJlYWRfbXV0ZXhhdHRy
X3NldHByb3RvY29sKCZtX2F0dHIsIFBUSFJFQURfUFJJT19JTkhFUklUKTsKCWlmICgocmV0ID0g
cHRocmVhZF9tdXRleF9pbml0KCZtMSwgJm1fYXR0cikpICE9IDApCgkJcGVycm9yKCJGYWlsZWQg
dG8gaW5pdCBtdXRleCBtMSIpOwoJaWYgKChyZXQgPSBwdGhyZWFkX211dGV4X2luaXQoJm0yLCAm
bV9hdHRyKSkgIT0gMCkKCQlwZXJyb3IoIkZhaWxlZCB0byBpbml0IG11dGV4IG0yIik7CglpZiAo
KHJldCA9IHB0aHJlYWRfbXV0ZXhfaW5pdCgmbTMsICZtX2F0dHIpKSAhPSAwKQoJCXBlcnJvcigi
RmFpbGVkIHRvIGluaXQgbXV0ZXggbTMiKTsKCWlmICgocmV0ID0gcHRocmVhZF9tdXRleF9pbml0
KCZyYWNlX211dCwgJm1fYXR0cikpICE9IDApCgkJcGVycm9yKCJGYWlsZWQgdG8gaW5pdCBtdXRl
eCByYWNlX211dCIpOwoKCXBhcmFtLnNjaGVkX3ByaW9yaXR5ID0gOTA7CiAgICAgICAgc2NoZWRf
c2V0c2NoZWR1bGVyKDAsIFNDSEVEX0ZJRk8sICZwYXJhbSk7CgoJcGFyYW0uc2NoZWRfcHJpb3Jp
dHkgPSBMT1dfUFJJTzsKICAgICAgICBwdGhyZWFkX2F0dHJfc2V0c2NoZWRwYXJhbSgmYXR0ciwg
JnBhcmFtKTsKCWZvcihpPTA7IGk8TlVNX1RIUkVBRFM7IGkrKykKCQlwdGhyZWFkX2NyZWF0ZSgm
bG93X3RocmVhZHNbaV0sICZhdHRyLCBsb3dfdGhyZWFkLCh2b2lkKilOVUxMKTsKCglwYXJhbS5z
Y2hlZF9wcmlvcml0eSA9IE1FRF9QUklPOwogICAgICAgIHB0aHJlYWRfYXR0cl9zZXRzY2hlZHBh
cmFtKCZhdHRyLCAmcGFyYW0pOwoJZm9yKGk9MDsgaTxOVU1fVEhSRUFEUzsgaSsrKQoJCXB0aHJl
YWRfY3JlYXRlKCZtZWRfdGhyZWFkc1tpXSwgJmF0dHIsIG1lZGl1bV90aHJlYWQsKHZvaWQqKU5V
TEwpOwoKCXBhcmFtLnNjaGVkX3ByaW9yaXR5ID0gSElHSF9QUklPOwogICAgICAgIHB0aHJlYWRf
YXR0cl9zZXRzY2hlZHBhcmFtKCZhdHRyLCAmcGFyYW0pOwoJZm9yKGk9MDsgaTxOVU1fVEhSRUFE
UzsgaSsrKQoJCXB0aHJlYWRfY3JlYXRlKCZoaV90aHJlYWRzW2ldLCAmYXR0ciwgaGlnaF90aHJl
YWQsKHZvaWQqKU5VTEwpOwoKCXVzbGVlcCgxMDAwKTsKCXB0aHJlYWRfY29uZF9zaWduYWwoJnNp
ZzEpOwoJdXNsZWVwKDEwMDApOwoJcHRocmVhZF9jb25kX2Jyb2FkY2FzdCgmcmFjZV92YXIpOwoK
CWZvcihpPTA7IGk8TlVNX1RIUkVBRFM7IGkrKykKCQlwdGhyZWFkX2pvaW4obG93X3RocmVhZHNb
aV0sICh2b2lkKiopIE5VTEwpOwoJZm9yKGk9MDsgaTxOVU1fVEhSRUFEUzsgaSsrKQoJCXB0aHJl
YWRfam9pbihtZWRfdGhyZWFkc1tpXSwgKHZvaWQqKikgTlVMTCk7Cglmb3IoaT0wOyBpPE5VTV9U
SFJFQURTOyBpKyspCgkJcHRocmVhZF9qb2luKGhpX3RocmVhZHNbaV0sICh2b2lkKiopIE5VTEwp
OwoKCXJldHVybiAwOwp9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
              isurl="0"
          >
            <attachid>4786</attachid>
            <date>2010-05-13 08:07:00 +0000</date>
            <delta_ts>2010-05-13 08:07:07 +0000</delta_ts>
            <desc>[PATCH 1/4 V2] pi-condvars: add protocol support to pthread_condattr_t </desc>
            <filename>0001-pi-condvars-add-protocol-support-to-pthread_condattr.patch</filename>
            <type>text/plain</type>
            <size>36717</size>
            <attacher>dvhltc</attacher>
            
              <data encoding="base64">RnJvbSA5N2UzODUxNGJhMjRkZmFjYjVhMjAwMzZjMDExMmI0MDFkZTdmY2M3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXJyZW4gSGFydCA8ZHZobHRjQHVzLmlibS5jb20+CkRhdGU6
IE1vbiwgMTAgTWF5IDIwMTAgMjA6MzU6NDQgLTA0MDAKU3ViamVjdDogW1BBVENIIDEvNF0gcGkt
Y29uZHZhcnM6IGFkZCBwcm90b2NvbCBzdXBwb3J0IHRvIHB0aHJlYWRfY29uZGF0dHJfdAoKV2hl
biB1c2luZyBhIFBUSFJFQURfUFJJT19JTkhFUklUIG11dGV4IHdpdGggYSBjb25kdmFyLCB0aGUg
cHRocmVhZF9jb25kKiBjYWxscwpjYW4gc3RpbGwgY2F1c2UgYW4gdW5ib3VuZGVkIHByaW9yaXR5
IGludmVyc2lvbiB2aWEgdGhlIGludGVybmFsIGNvbmR2YXIgbG9jay4KVGhlIFBPU0lYIHNwZWNp
ZmljYXRpb24gZG9lc24ndCBwcm92aWRlIGEgbWVjaGFuaXNtIHRvIHNwZWNpZnkgdGhlIHByb3Rv
Y29sIG9mCnRoZSBjb25kdmFyLiBXZSB3b3VsZCBsaWtlIHRvIGRvIHRoaXMgYXQgcnVudGltZSwg
YnV0IHVuZm9ydHVuYXRlbHkgaXQgaXMgbGVnYWwKdG8gY2FsbCBwdGhyZWFkX2NvbmRfc2lnbmFs
KCkgb3IgcHRocmVhZF9jb25kX2Jyb2FkY2FzdCgpIHdpdGhvdXQgZmlyc3Qgd2FpdGluZwpvbiB0
aGUgbG9jaywgc28gdGhlIG11dGV4IHR5cGUgbWF5IG5vdCBiZSBrbm93biB0aGUgZmlyc3QgdGlt
ZSB0aGUgY29uZHZhciBpcwp1c2VkLiBBIG5ldyBBUEksIHB0aHJlYWRfY29uZGF0dHJfc2V0cHJv
dG9jb2xfbnAoKSBhbmQKcHRocmVhZF9jb25kYXR0cl9nZXRwcm90b2NvbF9ucCgpIGFsbG93IHRo
ZSB1c2VyIHRvIGNyZWF0ZSBhClBUSFJFQURfUFJJT19JTkhFUklUIGNvbmR2YXIuIFRoaXMgdXNl
cyBhIFBUSFJFQURfUFJJT19JTkhFUklUIG11dGV4IGZvciB0aGUKaW50ZXJuYWwgY29uZHZhciBs
b2NrLCBlbGltaW5hdGluZyB0aGUgcG90ZW50aWFsIGZvciBoaXR0aW5nIGFuIHVuYm91bmRlZApw
cmlvcml0eSBpbnZlcnNpb24gb24gdGhhdCBsb2NrLgoKU2lnbmVkLW9mZi1ieTogRGluYWthciBH
dW5pZ3VudGFsYSA8ZGlub0Bpbi5pYm0uY29tPgpTaWduZWQtb2ZmLWJ5OiBEYXJyZW4gSGFydCA8
ZHZobHRjQHVzLmlibS5jb20+Ci0tLQogVmVyc2lvbnMuZGVmICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgICAxICsKIG5wdGwvTWFrZWZpbGUgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBucHRsL1ZlcnNpb25zICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKwogbnB0bC9wdGhyZWFkX2NvbmRfYnJv
YWRjYXN0LmMgICAgICAgICAgICAgICAgICAgICAgfCAgIDU5ICsrKysrKysrLS0tLS0KIG5wdGwv
cHRocmVhZF9jb25kX2luaXQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMyArKysr
Ky0KIG5wdGwvcHRocmVhZF9jb25kX3NpZ25hbC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAzNyArKysrKysrLS0KIG5wdGwvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jICAgICAgICAgICAg
ICAgICAgICAgIHwgICA0MCArKysrKysrLS0KIG5wdGwvcHRocmVhZF9jb25kX3dhaXQuYyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICA4OSArKysrKysrKysrKysrKysrKy0tLQogbnB0bC9w
dGhyZWFkX2NvbmRhdHRyX2dldGNsb2NrLmMgICAgICAgICAgICAgICAgICAgfCAgICA3ICstCiBu
cHRsL3B0aHJlYWRfY29uZGF0dHJfZ2V0cHJvdG9jb2xfbnAuYyAgICAgICAgICAgICB8ICAgMzQg
KysrKysrKysKIG5wdGwvcHRocmVhZF9jb25kYXR0cl9zZXRjbG9jay5jICAgICAgICAgICAgICAg
ICAgIHwgICAgNiArLQogbnB0bC9wdGhyZWFkX2NvbmRhdHRyX3NldHByb3RvY29sX25wLmMgICAg
ICAgICAgICAgfCAgIDM5ICsrKysrKysrKwogbnB0bC9zeXNkZXBzL3B0aHJlYWQvY29uZC1sb2Nr
LmggICAgICAgICAgICAgICAgICAgfCAgIDU4ICsrKysrKysrKysrKysKIG5wdGwvc3lzZGVwcy9w
dGhyZWFkL3B0aHJlYWQuaCAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKysKIG5wdGwvc3lz
ZGVwcy91bml4L3N5c3YvbGludXgvaTM4Ni9sb3dsZXZlbGxvY2suaCAgIHwgICA4OCArKysrKysr
KysrKysrKysrKysrLQogbnB0bC9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pbnRlcm5hbHR5cGVz
LmggICAgICAgfCAgIDMwICsrKysrLS0KIG5wdGwvc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2
XzY0L2xvd2xldmVsbG9jay5oIHwgICA0MCArKysrKysrKysKIDE3IGZpbGVzIGNoYW5nZWQsIDUw
MiBpbnNlcnRpb25zKCspLCA2NiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBucHRs
L3B0aHJlYWRfY29uZGF0dHJfZ2V0cHJvdG9jb2xfbnAuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IG5w
dGwvcHRocmVhZF9jb25kYXR0cl9zZXRwcm90b2NvbF9ucC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQg
bnB0bC9zeXNkZXBzL3B0aHJlYWQvY29uZC1sb2NrLmgKCmRpZmYgLS1naXQgYS9WZXJzaW9ucy5k
ZWYgYi9WZXJzaW9ucy5kZWYKaW5kZXggZWFiMDA2Yi4uMjY1MzViNSAxMDA2NDQKLS0tIGEvVmVy
c2lvbnMuZGVmCisrKyBiL1ZlcnNpb25zLmRlZgpAQCAtOTIsNiArOTIsNyBAQCBsaWJwdGhyZWFk
IHsKICAgR0xJQkNfMi42CiAgIEdMSUJDXzIuMTEKICAgR0xJQkNfMi4xMgorICBHTElCQ18yLjEz
CiAgIEdMSUJDX1BSSVZBVEUKIH0KIGxpYnJlc29sdiB7CmRpZmYgLS1naXQgYS9ucHRsL01ha2Vm
aWxlIGIvbnB0bC9NYWtlZmlsZQppbmRleCA5ODJkYjhlLi42ZDE5MTNlIDEwMDY0NAotLS0gYS9u
cHRsL01ha2VmaWxlCisrKyBiL25wdGwvTWFrZWZpbGUKQEAgLTc1LDYgKzc1LDcgQEAgbGlicHRo
cmVhZC1yb3V0aW5lcyA9IG5wdGwtaW5pdCB2YXJzIGV2ZW50cyB2ZXJzaW9uIFwKIAkJICAgICAg
b2xkX3B0aHJlYWRfY29uZF9zaWduYWwgb2xkX3B0aHJlYWRfY29uZF9icm9hZGNhc3QgXAogCQkg
ICAgICBwdGhyZWFkX2NvbmRhdHRyX2luaXQgcHRocmVhZF9jb25kYXR0cl9kZXN0cm95IFwKIAkJ
ICAgICAgcHRocmVhZF9jb25kYXR0cl9nZXRwc2hhcmVkIHB0aHJlYWRfY29uZGF0dHJfc2V0cHNo
YXJlZCBcCisJCSAgICAgIHB0aHJlYWRfY29uZGF0dHJfZ2V0cHJvdG9jb2xfbnAgcHRocmVhZF9j
b25kYXR0cl9zZXRwcm90b2NvbF9ucCBcCiAJCSAgICAgIHB0aHJlYWRfY29uZGF0dHJfZ2V0Y2xv
Y2sgcHRocmVhZF9jb25kYXR0cl9zZXRjbG9jayBcCiAJCSAgICAgIHB0aHJlYWRfc3Bpbl9pbml0
IHB0aHJlYWRfc3Bpbl9kZXN0cm95IFwKIAkJICAgICAgcHRocmVhZF9zcGluX2xvY2sgcHRocmVh
ZF9zcGluX3RyeWxvY2sgXApkaWZmIC0tZ2l0IGEvbnB0bC9WZXJzaW9ucyBiL25wdGwvVmVyc2lv
bnMKaW5kZXggZjc0OTQxZi4uNDlhODllOCAxMDA2NDQKLS0tIGEvbnB0bC9WZXJzaW9ucworKysg
Yi9ucHRsL1ZlcnNpb25zCkBAIC0yNTEsNiArMjUxLDEwIEBAIGxpYnB0aHJlYWQgewogICAgIHB0
aHJlYWRfc2V0bmFtZV9ucDsgcHRocmVhZF9nZXRuYW1lX25wOwogICB9OwogCisgIEdMSUJDXzIu
MTMgeworICAgIHB0aHJlYWRfY29uZGF0dHJfZ2V0cHJvdG9jb2xfbnA7IHB0aHJlYWRfY29uZGF0
dHJfc2V0cHJvdG9jb2xfbnA7CisgIH0KKwogICBHTElCQ19QUklWQVRFIHsKICAgICBfX3B0aHJl
YWRfaW5pdGlhbGl6ZV9taW5pbWFsOwogICAgIF9fcHRocmVhZF9jbG9ja19nZXR0aW1lOyBfX3B0
aHJlYWRfY2xvY2tfc2V0dGltZTsKZGlmZiAtLWdpdCBhL25wdGwvcHRocmVhZF9jb25kX2Jyb2Fk
Y2FzdC5jIGIvbnB0bC9wdGhyZWFkX2NvbmRfYnJvYWRjYXN0LmMKaW5kZXggMjI1MjNjMi4uZDVk
NDM0OCAxMDA2NDQKLS0tIGEvbnB0bC9wdGhyZWFkX2NvbmRfYnJvYWRjYXN0LmMKKysrIGIvbnB0
bC9wdGhyZWFkX2NvbmRfYnJvYWRjYXN0LmMKQEAgLTEsNCArMSw0IEBACi0vKiBDb3B5cmlnaHQg
KEMpIDIwMDMsIDIwMDQsIDIwMDYsIDIwMDcgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
CisvKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDYsIDIwMDcsIDIwMTAgRnJlZSBTb2Z0
d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMg
TGlicmFyeS4KICAgIENvbnRyaWJ1dGVkIGJ5IE1hcnRpbiBTY2h3aWRlZnNreSA8c2Nod2lkZWZz
a3lAZGUuaWJtLmNvbT4sIDIwMDMuCiAKQEAgLTI3LDYgKzI3LDggQEAKICNpbmNsdWRlIDxzaGxp
Yi1jb21wYXQuaD4KICNpbmNsdWRlIDxrZXJuZWwtZmVhdHVyZXMuaD4KIAorI2luY2x1ZGUgImNv
bmQtbG9jay5oIgorIAogCiBpbnQKIF9fcHRocmVhZF9jb25kX2Jyb2FkY2FzdCAoY29uZCkKQEAg
LTM0LDggKzM2LDkgQEAgX19wdGhyZWFkX2NvbmRfYnJvYWRjYXN0IChjb25kKQogewogICBpbnQg
cHNoYXJlZCA9IChjb25kLT5fX2RhdGEuX19tdXRleCA9PSAodm9pZCAqKSB+MGwpCiAJCT8gTExM
X1NIQVJFRCA6IExMTF9QUklWQVRFOworCiAgIC8qIE1ha2Ugc3VyZSB3ZSBhcmUgYWxvbmUuICAq
LwotICBsbGxfbG9jayAoY29uZC0+X19kYXRhLl9fbG9jaywgcHNoYXJlZCk7CisgIGNvbmRfbG9j
ayhjb25kLCBwc2hhcmVkKTsKIAogICAvKiBBcmUgdGhlcmUgYW55IHdhaXRlcnMgdG8gYmUgd29r
ZW4/ICAqLwogICBpZiAoY29uZC0+X19kYXRhLl9fdG90YWxfc2VxID4gY29uZC0+X19kYXRhLl9f
d2FrZXVwX3NlcSkKQEAgLTQ1LDM2ICs0OCw0OCBAQCBfX3B0aHJlYWRfY29uZF9icm9hZGNhc3Qg
KGNvbmQpCiAgICAgICBjb25kLT5fX2RhdGEuX193b2tlbl9zZXEgPSBjb25kLT5fX2RhdGEuX190
b3RhbF9zZXE7CiAgICAgICBjb25kLT5fX2RhdGEuX19mdXRleCA9ICh1bnNpZ25lZCBpbnQpIGNv
bmQtPl9fZGF0YS5fX3RvdGFsX3NlcSAqIDI7CiAgICAgICBpbnQgZnV0ZXhfdmFsID0gY29uZC0+
X19kYXRhLl9fZnV0ZXg7CisgICAgICBwdGhyZWFkX211dGV4X3QgKm11dCA9IChwdGhyZWFkX211
dGV4X3QgKikgY29uZC0+X19kYXRhLl9fbXV0ZXg7CisgICAgICBpbnQgZXJyOwogICAgICAgLyog
U2lnbmFsIHRoYXQgYSBicm9hZGNhc3QgaGFwcGVuZWQuICAqLwogICAgICAgKytjb25kLT5fX2Rh
dGEuX19icm9hZGNhc3Rfc2VxOwogCiAgICAgICAvKiBXZSBhcmUgZG9uZS4gICovCi0gICAgICBs
bGxfdW5sb2NrIChjb25kLT5fX2RhdGEuX19sb2NrLCBwc2hhcmVkKTsKKyAgICAgIGNvbmRfdW5s
b2NrKGNvbmQsIHBzaGFyZWQpOwogCiAgICAgICAvKiBEbyBub3QgdXNlIHJlcXVldWUgZm9yIHBz
aGFyZWQgY29uZHZhcnMuICAqLwogICAgICAgaWYgKGNvbmQtPl9fZGF0YS5fX211dGV4ID09ICh2
b2lkICopIH4wbCkKIAlnb3RvIHdha2VfYWxsOwogCi0gICAgICAvKiBXYWtlIGV2ZXJ5Ym9keS4g
ICovCi0gICAgICBwdGhyZWFkX211dGV4X3QgKm11dCA9IChwdGhyZWFkX211dGV4X3QgKikgY29u
ZC0+X19kYXRhLl9fbXV0ZXg7Ci0KLSAgICAgIC8qIFhYWDogS2VybmVsIHNvIGZhciBkb2Vzbid0
IHN1cHBvcnQgcmVxdWV1ZSB0byBQSSBmdXRleC4gICovCi0gICAgICAvKiBYWFg6IEtlcm5lbCBz
byBmYXIgY2FuIG9ubHkgcmVxdWV1ZSB0byB0aGUgc2FtZSB0eXBlIG9mIGZ1dGV4LAotCSBpbiB0
aGlzIGNhc2UgcHJpdmF0ZSAod2UgZG9uJ3QgcmVxdWV1ZSBmb3IgcHNoYXJlZCBjb25kdmFycyku
ICAqLworICAgICAgLyogV2UgZG9uJ3QgcmVxdWV1ZSBmb3IgcHNoYXJlZCBjb25kdmFycyAgKi8K
ICAgICAgIGlmIChfX2J1aWx0aW5fZXhwZWN0IChtdXQtPl9fZGF0YS5fX2tpbmQKLQkJCSAgICAm
IChQVEhSRUFEX01VVEVYX1BSSU9fSU5IRVJJVF9OUAotCQkJICAgICAgIHwgUFRIUkVBRF9NVVRF
WF9QU0hBUkVEX0JJVCksIDApKQotCWdvdG8gd2FrZV9hbGw7Ci0KLSAgICAgIC8qIGxsbF9mdXRl
eF9yZXF1ZXVlIHJldHVybnMgMCBmb3Igc3VjY2VzcyBhbmQgbm9uLXplcm8KLQkgZm9yIGVycm9y
cy4gICovCi0gICAgICBpZiAoX19idWlsdGluX2V4cGVjdCAobGxsX2Z1dGV4X3JlcXVldWUgKCZj
b25kLT5fX2RhdGEuX19mdXRleCwgMSwKLQkJCQkJICAgICAgIElOVF9NQVgsICZtdXQtPl9fZGF0
YS5fX2xvY2ssCi0JCQkJCSAgICAgICBmdXRleF92YWwsIExMTF9QUklWQVRFKSwgMCkpCisJCQkg
ICAgJiBQVEhSRUFEX01VVEVYX1BTSEFSRURfQklULCAwKSkKKyAJZ290byB3YWtlX2FsbDsKKyAK
KyAgICAgIGlmIChfX2J1aWx0aW5fZXhwZWN0IChtdXQtPl9fZGF0YS5fX2tpbmQKKyAJCQkgICAg
JiBQVEhSRUFEX01VVEVYX1BSSU9fSU5IRVJJVF9OUCwgMCkpCisJeworCSAvKiBsbGxfZnV0ZXhf
cmVxdWV1ZV9waSByZXR1cm5zIHRoZSBudW1iZXIgb2YgdGFza3MgcmVxdWV1ZSdkIG9uCisJICAg
IHN1Y2Nlc3MgYW5kIG5lZ2F0aXZlIGZvciBlcnJvcnMuICAqLworICAgICAgICAgZXJyID0gbGxs
X2Z1dGV4X3JlcXVldWVfcGkgKCZjb25kLT5fX2RhdGEuX19mdXRleCwgMSwgSU5UX01BWCwgCisJ
CQkJICAgICAmbXV0LT5fX2RhdGEuX19sb2NrLCBmdXRleF92YWwsCisJCQkJICAgICBMTExfUFJJ
VkFURSk7CisJIC8qIFRoZSByZXF1ZXVlX3BpIGZ1bmN0aW9uYWxpdHkgaXMgbm90IGF2YWlsYWJs
ZS4gICovCisJIGlmIChfX2J1aWx0aW5fZXhwZWN0IChlcnIgPT0gLUVOT1NZUywgMCkpCisJICAg
Z290byB3YWtlX2FsbDsKKwl9CisgICAgICBlbHNlCiAJewotCSAgLyogVGhlIHJlcXVldWUgZnVu
Y3Rpb25hbGl0eSBpcyBub3QgYXZhaWxhYmxlLiAgKi8KLQl3YWtlX2FsbDoKLQkgIGxsbF9mdXRl
eF93YWtlICgmY29uZC0+X19kYXRhLl9fZnV0ZXgsIElOVF9NQVgsIHBzaGFyZWQpOworCSAvKiBs
bGxfZnV0ZXhfcmVxdWV1ZV9waSByZXR1cm5zIHRoZSBudW1iZXIgb2YgdGFza3MgcmVxdWV1ZSdk
IG9uCisJICAgIHN1Y2Nlc3MgYW5kIG5lZ2F0aXZlIGZvciBlcnJvcnMuICAqLworCSBlcnIgPSBs
bGxfZnV0ZXhfcmVxdWV1ZSAoJmNvbmQtPl9fZGF0YS5fX2Z1dGV4LCAxLCBJTlRfTUFYLAorCQkJ
CSAgJm11dC0+X19kYXRhLl9fbG9jaywgZnV0ZXhfdmFsLAorCQkJCSAgTExMX1BSSVZBVEUpOwor
CSBpZiAoX19idWlsdGluX2V4cGVjdCAoZXJyID09IC1FTk9TWVMsIDApKQorCSAgIHsKKwkgICAg
LyogVGhlIHJlcXVldWUgZnVuY3Rpb25hbGl0eSBpcyBub3QgYXZhaWxhYmxlLiAgKi8KKwkgICB3
YWtlX2FsbDoKKwkgICAgbGxsX2Z1dGV4X3dha2UgKCZjb25kLT5fX2RhdGEuX19mdXRleCwgSU5U
X01BWCwgcHNoYXJlZCk7CisJICAgfQogCX0KIAogICAgICAgLyogVGhhdCdzIGFsbC4gICovCkBA
IC04Miw3ICs5Nyw3IEBAIF9fcHRocmVhZF9jb25kX2Jyb2FkY2FzdCAoY29uZCkKICAgICB9CiAK
ICAgLyogV2UgYXJlIGRvbmUuICAqLwotICBsbGxfdW5sb2NrIChjb25kLT5fX2RhdGEuX19sb2Nr
LCBwc2hhcmVkKTsKKyAgY29uZF91bmxvY2soY29uZCwgcHNoYXJlZCk7CiAKICAgcmV0dXJuIDA7
CiB9CmRpZmYgLS1naXQgYS9ucHRsL3B0aHJlYWRfY29uZF9pbml0LmMgYi9ucHRsL3B0aHJlYWRf
Y29uZF9pbml0LmMKaW5kZXggNjVjMDFiMS4uMzNiYjZiYiAxMDA2NDQKLS0tIGEvbnB0bC9wdGhy
ZWFkX2NvbmRfaW5pdC5jCisrKyBiL25wdGwvcHRocmVhZF9jb25kX2luaXQuYwpAQCAtMSw0ICsx
LDQgQEAKLS8qIENvcHlyaWdodCAoQykgMjAwMiwgMjAwMywgMjAwNCwgMjAwNSwgMjAwNywgMjAw
OAorLyogQ29weXJpZ2h0IChDKSAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA3LCAyMDA4LCAy
MDEwCiAgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgIFRoaXMgZmlsZSBpcyBw
YXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgogICAgQ29udHJpYnV0ZWQgYnkgVWxyaWNoIERyZXBw
ZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4sIDIwMDIuCkBAIC0zMiw5ICszMiwyNiBAQCBfX3B0aHJl
YWRfY29uZF9pbml0IChjb25kLCBjb25kX2F0dHIpCiAgIGNvbmQtPl9fZGF0YS5fX2xvY2sgPSBM
TExfTE9DS19JTklUSUFMSVpFUjsKICAgY29uZC0+X19kYXRhLl9fZnV0ZXggPSAwOwogICBjb25k
LT5fX2RhdGEuX19ud2FpdGVycyA9IChpY29uZF9hdHRyICE9IE5VTEwKLQkJCSAgICAgPyAoKGlj
b25kX2F0dHItPnZhbHVlID4+IDEpCi0JCQkJJiAoKDEgPDwgQ09ORF9OV0FJVEVSU19TSElGVCkg
LSAxKSkKKwkJCSAgICAgPyAoKGljb25kX2F0dHItPnZhbHVlID4+IENPTkRBVFRSX0NMT0NLSURf
U0hJRlQpCisJCQkJJiAoKDEgPDwgQ09ORF9QUk9UT0NPTF9TSElGVCkgLSAxKSkKIAkJCSAgICAg
OiBDTE9DS19SRUFMVElNRSk7CisgIGlmIChpY29uZF9hdHRyICE9IE5VTEwpCisgICB7CisgICAg
c3dpdGNoIChpY29uZF9hdHRyLT52YWx1ZSAmIENPTkRBVFRSX1BST1RPQ09MX01BU0spCisgICAg
IHsKKyAgICAgY2FzZSBQVEhSRUFEX1BSSU9fSU5IRVJJVCA8PCBDT05EQVRUUl9QUk9UT0NPTF9T
SElGVDoKKyAgICAgICBjb25kLT5fX2RhdGEuX19ud2FpdGVycyB8PSBDT05EX1BSSU9fSU5IRVJJ
VDsKKyAgICAgICBicmVhazsKKworICAgICBjYXNlIFBUSFJFQURfUFJJT19QUk9URUNUIDw8IENP
TkRBVFRSX1BST1RPQ09MX1NISUZUOgorICAgICAgIGNvbmQtPl9fZGF0YS5fX253YWl0ZXJzIHw9
IENPTkRfUFJJT19QUk9URUNUOworICAgICAgIGJyZWFrOworCisgICAgIGRlZmF1bHQ6CisgICAg
ICAgYnJlYWs7CisgICAgIH0KKyAgIH0KKwogICBjb25kLT5fX2RhdGEuX190b3RhbF9zZXEgPSAw
OwogICBjb25kLT5fX2RhdGEuX193YWtldXBfc2VxID0gMDsKICAgY29uZC0+X19kYXRhLl9fd29r
ZW5fc2VxID0gMDsKZGlmZiAtLWdpdCBhL25wdGwvcHRocmVhZF9jb25kX3NpZ25hbC5jIGIvbnB0
bC9wdGhyZWFkX2NvbmRfc2lnbmFsLmMKaW5kZXggMDIzYmJiNS4uNTNlODgzZCAxMDA2NDQKLS0t
IGEvbnB0bC9wdGhyZWFkX2NvbmRfc2lnbmFsLmMKKysrIGIvbnB0bC9wdGhyZWFkX2NvbmRfc2ln
bmFsLmMKQEAgLTI3LDE2ICsyNywxOSBAQAogI2luY2x1ZGUgPHNobGliLWNvbXBhdC5oPgogI2lu
Y2x1ZGUgPGtlcm5lbC1mZWF0dXJlcy5oPgogCisjaW5jbHVkZSAiY29uZC1sb2NrLmgiCisKIAog
aW50CiBfX3B0aHJlYWRfY29uZF9zaWduYWwgKGNvbmQpCiAgICAgIHB0aHJlYWRfY29uZF90ICpj
b25kOwogewotICBpbnQgcHNoYXJlZCA9IChjb25kLT5fX2RhdGEuX19tdXRleCA9PSAodm9pZCAq
KSB+MGwpCi0JCT8gTExMX1NIQVJFRCA6IExMTF9QUklWQVRFOworICBpbnQgZXJyLCBmdXRleF92
YWw7CisgIHB0aHJlYWRfbXV0ZXhfdCAqbXV0ZXggPSAocHRocmVhZF9tdXRleF90ICopIGNvbmQt
Pl9fZGF0YS5fX211dGV4OworICBpbnQgcHNoYXJlZCA9IChtdXRleCA9PSAodm9pZCAqKSB+MGwp
ID8gTExMX1NIQVJFRCA6IExMTF9QUklWQVRFOwogCiAgIC8qIE1ha2Ugc3VyZSB3ZSBhcmUgYWxv
bmUuICAqLwotICBsbGxfbG9jayAoY29uZC0+X19kYXRhLl9fbG9jaywgcHNoYXJlZCk7CisgIGNv
bmRfbG9jayhjb25kLCBwc2hhcmVkKTsKIAogICAvKiBBcmUgdGhlcmUgYW55IHdhaXRlcnMgdG8g
YmUgd29rZW4/ICAqLwogICBpZiAoY29uZC0+X19kYXRhLl9fdG90YWxfc2VxID4gY29uZC0+X19k
YXRhLl9fd2FrZXVwX3NlcSkKQEAgLTQ0LDE4ICs0NywzOCBAQCBfX3B0aHJlYWRfY29uZF9zaWdu
YWwgKGNvbmQpCiAgICAgICAvKiBZZXMuICBNYXJrIG9uZSBvZiB0aGVtIGFzIHdva2VuLiAgKi8K
ICAgICAgICsrY29uZC0+X19kYXRhLl9fd2FrZXVwX3NlcTsKICAgICAgICsrY29uZC0+X19kYXRh
Ll9fZnV0ZXg7CisgICAgICBmdXRleF92YWwgPSBjb25kLT5fX2RhdGEuX19mdXRleDsKKyAgICAg
IHB0aHJlYWRfbXV0ZXhfdCAqbXV0ID0gKHB0aHJlYWRfbXV0ZXhfdCAqKSBjb25kLT5fX2RhdGEu
X19tdXRleDsKIAorICAgICAgLyogV2UgZG9udCBkbyByZXF1ZXVlLXBpIGZvciBwc2hhcmVkIG11
dGV4ZXMgKi8KKyAgICAgIGlmIChwc2hhcmVkID09IExMTF9QUklWQVRFICYmCisJICBtdXQtPl9f
ZGF0YS5fX2tpbmQgJiBQVEhSRUFEX01VVEVYX1BSSU9fSU5IRVJJVF9OUCkKKyAgICAgICAgewor
CSAvKiBsbGxfZnV0ZXhfcmVxdWV1ZV9waSByZXR1cm5zIHRoZSBudW1iZXIgb2YgdGFza3MgcmVx
dWV1ZSdkIG9uCisJICAgIHN1Y2Nlc3MgYW5kIG5lZ2F0aXZlIGZvciBlcnJvcnMuICAqLworICAg
ICAgICAgZXJyID0gbGxsX2Z1dGV4X3JlcXVldWVfcGkgKCZjb25kLT5fX2RhdGEuX19mdXRleCwg
MSwgMCwgCisJCQkJICAgICAmbXV0LT5fX2RhdGEuX19sb2NrLCBmdXRleF92YWwsCisJCQkJICAg
ICBwc2hhcmVkKTsKKwkgLyogVGhlIHJlcXVldWVfcGkgZnVuY3Rpb25hbGl0eSBpcyBub3QgYXZh
aWxhYmxlLiAgKi8KKwkgaWYgKF9fYnVpbHRpbl9leHBlY3QgKGVyciAhPSAtRU5PU1lTLCAwKSkK
KyAgICAgICAgICAgZ290byBkb25lOworICAgICAgICB9CisjaWYgMAorICAgICAgLyogVGhpcyBp
cyBub3QgbmVlZGVkIGZvciB0aGUgeDg2XzY0IG9yIGk2ODYgYXJjaGVzICovCiAgICAgICAvKiBX
YWtlIG9uZS4gICovCi0gICAgICBpZiAoISBfX2J1aWx0aW5fZXhwZWN0IChsbGxfZnV0ZXhfd2Fr
ZV91bmxvY2sgKCZjb25kLT5fX2RhdGEuX19mdXRleCwgMSwKLQkJCQkJCSAgICAgMSwgJmNvbmQt
Pl9fZGF0YS5fX2xvY2ssCi0JCQkJCQkgICAgIHBzaGFyZWQpLCAwKSkKKyAgICAgIGVsc2UgaWYg
KCEgX19idWlsdGluX2V4cGVjdCAobGxsX2Z1dGV4X3dha2VfdW5sb2NrICgmY29uZC0+X19kYXRh
Ll9fZnV0ZXgsCisJCQkJCQkJICAxLCAxLAorCQkJCQkJCSAgJmNvbmQtPl9fZGF0YS5fX2xvY2ss
CisJCQkJCQkgICAgICAgICAgcHNoYXJlZCksIDApKQogCXJldHVybiAwOworI2VuZGlmCiAKICAg
ICAgIGxsbF9mdXRleF93YWtlICgmY29uZC0+X19kYXRhLl9fZnV0ZXgsIDEsIHBzaGFyZWQpOwog
ICAgIH0KIAorZG9uZToKICAgLyogV2UgYXJlIGRvbmUuICAqLwotICBsbGxfdW5sb2NrIChjb25k
LT5fX2RhdGEuX19sb2NrLCBwc2hhcmVkKTsKKyAgY29uZF91bmxvY2soY29uZCwgcHNoYXJlZCk7
CiAKICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9ucHRsL3B0aHJlYWRfY29uZF90aW1lZHdh
aXQuYyBiL25wdGwvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jCmluZGV4IDcyNzhlYzQuLjY0ODE2
MmEgMTAwNjQ0Ci0tLSBhL25wdGwvcHRocmVhZF9jb25kX3RpbWVkd2FpdC5jCisrKyBiL25wdGwv
cHRocmVhZF9jb25kX3RpbWVkd2FpdC5jCkBAIC0yNyw2ICsyNyw4IEBACiAKICNpbmNsdWRlIDxz
aGxpYi1jb21wYXQuaD4KIAorI2luY2x1ZGUgImNvbmQtbG9jay5oIgorCiAjaWZuZGVmIEhBVkVf
Q0xPQ0tfR0VUVElNRV9WU1lTQ0FMTAogIyB1bmRlZiBJTlRFUk5BTF9WU1lTQ0FMTAogIyBkZWZp
bmUgSU5URVJOQUxfVlNZU0NBTEwgSU5URVJOQUxfU1lTQ0FMTApAQCAtNTcsNiArNTksNyBAQCBf
X3B0aHJlYWRfY29uZF90aW1lZHdhaXQgKGNvbmQsIG11dGV4LCBhYnN0aW1lKQogICBzdHJ1Y3Qg
X3B0aHJlYWRfY2xlYW51cF9idWZmZXIgYnVmZmVyOwogICBzdHJ1Y3QgX2NvbmR2YXJfY2xlYW51
cF9idWZmZXIgY2J1ZmZlcjsKICAgaW50IHJlc3VsdCA9IDA7CisgIGludCBwaV9yZXF1ZXVlZDsK
IAogICAvKiBDYXRjaCBpbnZhbGlkIHBhcmFtZXRlcnMuICAqLwogICBpZiAoYWJzdGltZS0+dHZf
bnNlYyA8IDAgfHwgYWJzdGltZS0+dHZfbnNlYyA+PSAxMDAwMDAwMDAwKQpAQCAtNjUsMTQgKzY4
LDE0IEBAIF9fcHRocmVhZF9jb25kX3RpbWVkd2FpdCAoY29uZCwgbXV0ZXgsIGFic3RpbWUpCiAg
IGludCBwc2hhcmVkID0gKGNvbmQtPl9fZGF0YS5fX211dGV4ID09ICh2b2lkICopIH4wbCkKIAkJ
PyBMTExfU0hBUkVEIDogTExMX1BSSVZBVEU7CiAKLSAgLyogTWFrZSBzdXJlIHdlIGFyZSBhbG9u
Zy4gICovCi0gIGxsbF9sb2NrIChjb25kLT5fX2RhdGEuX19sb2NrLCBwc2hhcmVkKTsKKyAgLyog
TWFrZSBzdXJlIHdlIGFyZSBhbG9uZS4gICovCisgIGNvbmRfbG9jayhjb25kLCBwc2hhcmVkKTsK
IAogICAvKiBOb3cgd2UgY2FuIHJlbGVhc2UgdGhlIG11dGV4LiAgKi8KICAgaW50IGVyciA9IF9f
cHRocmVhZF9tdXRleF91bmxvY2tfdXNlcmNudCAobXV0ZXgsIDApOwogICBpZiAoZXJyKQogICAg
IHsKLSAgICAgIGxsbF91bmxvY2sgKGNvbmQtPl9fZGF0YS5fX2xvY2ssIHBzaGFyZWQpOworICAg
ICAgY29uZF91bmxvY2soY29uZCwgcHNoYXJlZCk7CiAgICAgICByZXR1cm4gZXJyOwogICAgIH0K
IApAQCAtMTA1LDYgKzEwOCw3IEBAIF9fcHRocmVhZF9jb25kX3RpbWVkd2FpdCAoY29uZCwgbXV0
ZXgsIGFic3RpbWUpCiAKICAgd2hpbGUgKDEpCiAgICAgeworICAgICAgcGlfcmVxdWV1ZWQgPSAw
OwogICAgICAgc3RydWN0IHRpbWVzcGVjIHJ0OwogICAgICAgewogI2lmZGVmIF9fTlJfY2xvY2tf
Z2V0dGltZQpAQCAtMTEyLDcgKzExNiw3IEBAIF9fcHRocmVhZF9jb25kX3RpbWVkd2FpdCAoY29u
ZCwgbXV0ZXgsIGFic3RpbWUpCiAJaW50IHJldDsKIAlyZXQgPSBJTlRFUk5BTF9WU1lTQ0FMTCAo
Y2xvY2tfZ2V0dGltZSwgZXJyLCAyLAogCQkJCShjb25kLT5fX2RhdGEuX19ud2FpdGVycwotCQkJ
CSAmICgoMSA8PCBDT05EX05XQUlURVJTX1NISUZUKSAtIDEpKSwKKwkJCQkgJiAoKDEgPDwgQ09O
RF9QUk9UT0NPTF9TSElGVCkgLSAxKSksCiAJCQkJJnJ0KTsKICMgaWZuZGVmIF9fQVNTVU1FX1BP
U0lYX1RJTUVSUwogCWlmIChfX2J1aWx0aW5fZXhwZWN0IChJTlRFUk5BTF9TWVNDQUxMX0VSUk9S
X1AgKHJldCwgZXJyKSwgMCkpCkBAIC0xNTgsMjAgKzE2MiwzNCBAQCBfX3B0aHJlYWRfY29uZF90
aW1lZHdhaXQgKGNvbmQsIG11dGV4LCBhYnN0aW1lKQogICAgICAgdW5zaWduZWQgaW50IGZ1dGV4
X3ZhbCA9IGNvbmQtPl9fZGF0YS5fX2Z1dGV4OwogCiAgICAgICAvKiBQcmVwYXJlIHRvIHdhaXQu
ICBSZWxlYXNlIHRoZSBjb25kdmFyIGZ1dGV4LiAgKi8KLSAgICAgIGxsbF91bmxvY2sgKGNvbmQt
Pl9fZGF0YS5fX2xvY2ssIHBzaGFyZWQpOworICAgICAgY29uZF91bmxvY2soY29uZCwgcHNoYXJl
ZCk7CiAKICAgICAgIC8qIEVuYWJsZSBhc3luY2hyb25vdXMgY2FuY2VsbGF0aW9uLiAgUmVxdWly
ZWQgYnkgdGhlIHN0YW5kYXJkLiAgKi8KICAgICAgIGNidWZmZXIub2xkdHlwZSA9IF9fcHRocmVh
ZF9lbmFibGVfYXN5bmNjYW5jZWwgKCk7CiAKKyAgICAgIGlmIChtdXRleC0+X19kYXRhLl9fa2lu
ZCAmIFBUSFJFQURfTVVURVhfUFJJT19JTkhFUklUX05QKQorICAgICAgICB7CisJICAvKiBUcnkg
cmVxdWV1ZWluZyB0byB0aGUgUEkgbXV0ZXgsIGlmIG5vIHN1cHBvcnQgaW4gdGhlIGtlcm5lbAor
CSAgICAgdHJ5IHRoZSBub24tcmVxdWV1ZSBzeXNjYWxsLiAgKi8KKyAgICAgICAgICBlcnIgPSBs
bGxfZnV0ZXhfdGltZWRfd2FpdF9yZXF1ZXVlX3BpIChjb25kLCBmdXRleF92YWwsIGFic3RpbWUs
CisJCQkJCQkgJm11dGV4LT5fX2RhdGEuX19sb2NrLAorCQkJCQkJIHBzaGFyZWQpOworICAgICAg
ICAgIGlmIChfX2J1aWx0aW5fZXhwZWN0ICghZXJyLCAxKSkKKwkgICAgICAgcGlfcmVxdWV1ZWQg
PSAxOworICAgICAgICAgIGlmIChfX2J1aWx0aW5fZXhwZWN0IChlcnIgIT0gLUVOT1NZUywgMCkp
CisJICAgICAgIGdvdG8gd29rZW47CisJfQorCiAgICAgICAvKiBXYWl0IHVudGlsIHdva2VuIGJ5
IHNpZ25hbCBvciBicm9hZGNhc3QuICAqLwogICAgICAgZXJyID0gbGxsX2Z1dGV4X3RpbWVkX3dh
aXQgKCZjb25kLT5fX2RhdGEuX19mdXRleCwKIAkJCQkgIGZ1dGV4X3ZhbCwgJnJ0LCBwc2hhcmVk
KTsKIAord29rZW46CiAgICAgICAvKiBEaXNhYmxlIGFzeW5jaHJvbm91cyBjYW5jZWxsYXRpb24u
ICAqLwogICAgICAgX19wdGhyZWFkX2Rpc2FibGVfYXN5bmNjYW5jZWwgKGNidWZmZXIub2xkdHlw
ZSk7CiAKICAgICAgIC8qIFdlIGFyZSBnb2luZyB0byBsb29rIGF0IHNoYXJlZCBkYXRhIGFnYWlu
LCBzbyBnZXQgdGhlIGxvY2suICAqLwotICAgICAgbGxsX2xvY2sgKGNvbmQtPl9fZGF0YS5fX2xv
Y2ssIHBzaGFyZWQpOworICAgICAgY29uZF9sb2NrKGNvbmQsIHBzaGFyZWQpOwogCiAgICAgICAv
KiBJZiBhIGJyb2FkY2FzdCBoYXBwZW5lZCwgd2UgYXJlIGRvbmUuICAqLwogICAgICAgaWYgKGNi
dWZmZXIuYmNfc2VxICE9IGNvbmQtPl9fZGF0YS5fX2Jyb2FkY2FzdF9zZXEpCkBAIC0yMTEsMTMg
KzIyOSwxNyBAQCBfX3B0aHJlYWRfY29uZF90aW1lZHdhaXQgKGNvbmQsIG11dGV4LCBhYnN0aW1l
KQogICAgIGxsbF9mdXRleF93YWtlICgmY29uZC0+X19kYXRhLl9fbndhaXRlcnMsIDEsIHBzaGFy
ZWQpOwogCiAgIC8qIFdlIGFyZSBkb25lIHdpdGggdGhlIGNvbmR2YXIuICAqLwotICBsbGxfdW5s
b2NrIChjb25kLT5fX2RhdGEuX19sb2NrLCBwc2hhcmVkKTsKKyAgY29uZF91bmxvY2soY29uZCwg
cHNoYXJlZCk7CiAKICAgLyogVGhlIGNhbmNlbGxhdGlvbiBoYW5kbGluZyBpcyBiYWNrIHRvIG5v
cm1hbCwgcmVtb3ZlIHRoZSBoYW5kbGVyLiAgKi8KICAgX19wdGhyZWFkX2NsZWFudXBfcG9wICgm
YnVmZmVyLCAwKTsKIAotICAvKiBHZXQgdGhlIG11dGV4IGJlZm9yZSByZXR1cm5pbmcuICAqLwot
ICBlcnIgPSBfX3B0aHJlYWRfbXV0ZXhfY29uZF9sb2NrIChtdXRleCk7CisgIC8qIEdldCB0aGUg
bXV0ZXggYmVmb3JlIHJldHVybmluZy4gSWYgdGhlIHJlcXVldWVfcGkgY2FsbCBhYm92ZSB3YXMg
c3VjY2Vzc2Z1bCwKKyAgICAgdGhlIGxvY2sgaXMgYWxyZWFkeSBoZWxkIGluIHRoZSBrZXJuZWws
IHNvIGp1c3QgcmV0dXJuIHRvIHRoZSBhcHBsaWNhdGlvbi4gICovCisgIGlmIChwaV9yZXF1ZXVl
ZCkKKyAgICBfX3B0aHJlYWRfbXV0ZXhfY29uZF9sb2NrX2FkanVzdCAobXV0ZXgpOworICBlbHNl
CisgICAgZXJyID0gX19wdGhyZWFkX211dGV4X2NvbmRfbG9jayAobXV0ZXgpOwogCiAgIHJldHVy
biBlcnIgPzogcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvbnB0bC9wdGhyZWFkX2NvbmRfd2FpdC5j
IGIvbnB0bC9wdGhyZWFkX2NvbmRfd2FpdC5jCmluZGV4IDY3MGZiYTUuLjRhZmEwMjggMTAwNjQ0
Ci0tLSBhL25wdGwvcHRocmVhZF9jb25kX3dhaXQuYworKysgYi9ucHRsL3B0aHJlYWRfY29uZF93
YWl0LmMKQEAgLTE3LDE1ICsxNywxOSBAQAogICAgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEKICAgIDAyMTExLTEzMDcgVVNB
LiAgKi8KIAorI2luY2x1ZGUgPGFzc2VydC5oPgogI2luY2x1ZGUgPGVuZGlhbi5oPgogI2luY2x1
ZGUgPGVycm5vLmg+CiAjaW5jbHVkZSA8c3lzZGVwLmg+CiAjaW5jbHVkZSA8bG93bGV2ZWxsb2Nr
Lmg+CisjaW5jbHVkZSA8bm90LWNhbmNlbC5oPgogI2luY2x1ZGUgPHB0aHJlYWQuaD4KICNpbmNs
dWRlIDxwdGhyZWFkUC5oPgogCiAjaW5jbHVkZSA8c2hsaWItY29tcGF0Lmg+CiAKKyNpbmNsdWRl
ICJjb25kLWxvY2suaCIKKyAKIAogc3RydWN0IF9jb25kdmFyX2NsZWFudXBfYnVmZmVyCiB7CkBA
IC0zOCwxNiArNDIsNTUgQEAgc3RydWN0IF9jb25kdmFyX2NsZWFudXBfYnVmZmVyCiAKIHZvaWQK
IF9fYXR0cmlidXRlX18gKCh2aXNpYmlsaXR5ICgiaGlkZGVuIikpKQorbGxsX3BpX2xvY2soaW50
ICpmdXRleHAsIGludCBwcml2YXRlKQoreworICBwaWRfdCBpZCA9IFRIUkVBRF9HRVRNRU0gKFRI
UkVBRF9TRUxGLCB0aWQpOworICBpbnQgbmV3dmFsID0gaWQ7CisgIGludCByZXQ7CisKKyAgbmV3
dmFsIHw9IEZVVEVYX1dBSVRFUlM7IAorICByZXQgPSBhdG9taWNfY29tcGFyZV9hbmRfZXhjaGFu
Z2VfdmFsX2FjcSAoZnV0ZXhwLCBuZXd2YWwsIDApOworCisgIGlmIChyZXQgIT0gMCkKKyAgICB7
CisgICAgICAvKiBUaGUgbXV0ZXggaXMgbG9ja2VkLiAgVGhlIGtlcm5lbCB3aWxsIG5vdyB0YWtl
IGNhcmUgb2YKKwkgZXZlcnl0aGluZy4gICovCisgICAgICBJTlRFUk5BTF9TWVNDQUxMX0RFQ0wg
KF9fZXJyKTsKKyAgICAgIGludCBlID0gSU5URVJOQUxfU1lTQ0FMTCAoZnV0ZXgsIF9fZXJyLCA0
LCBmdXRleHAsCisJCQkJX19sbGxfcHJpdmF0ZV9mbGFnIChGVVRFWF9MT0NLX1BJLCBwcml2YXRl
KSwKKwkJCQkxLCAwKTsKKyAgICB9Cit9CisKKwordm9pZAorX19hdHRyaWJ1dGVfXyAoKHZpc2li
aWxpdHkgKCJoaWRkZW4iKSkpCitsbGxfcGlfdW5sb2NrKGludCAqZnV0ZXhwLCBpbnQgcHJpdmF0
ZSkKK3sKKworICBpZiAoKCpmdXRleHAgJiBGVVRFWF9XQUlURVJTKSAhPSAwCisgICAgICB8fCBh
dG9taWNfY29tcGFyZV9hbmRfZXhjaGFuZ2VfYm9vbF9hY3EgKGZ1dGV4cCwgMCwKKwkJCQkJICAg
ICAgIFRIUkVBRF9HRVRNRU0gKFRIUkVBRF9TRUxGLAorCQkJCQkJCSAgICAgIHRpZCkpKQorICAg
IHsKKyAgICAgIElOVEVSTkFMX1NZU0NBTExfREVDTCAoX19lcnIpOworICAgICAgSU5URVJOQUxf
U1lTQ0FMTCAoZnV0ZXgsIF9fZXJyLCAyLCBmdXRleHAsCisJCQlfX2xsbF9wcml2YXRlX2ZsYWcg
KEZVVEVYX1VOTE9DS19QSSwgcHJpdmF0ZSkpOworICAgIH0KK30KKworIAordm9pZAorX19hdHRy
aWJ1dGVfXyAoKHZpc2liaWxpdHkgKCJoaWRkZW4iKSkpCiBfX2NvbmR2YXJfY2xlYW51cCAodm9p
ZCAqYXJnKQogewogICBzdHJ1Y3QgX2NvbmR2YXJfY2xlYW51cF9idWZmZXIgKmNidWZmZXIgPQog
ICAgIChzdHJ1Y3QgX2NvbmR2YXJfY2xlYW51cF9idWZmZXIgKikgYXJnOwogICB1bnNpZ25lZCBp
bnQgZGVzdHJveWluZzsKLSAgaW50IHBzaGFyZWQgPSAoY2J1ZmZlci0+Y29uZC0+X19kYXRhLl9f
bXV0ZXggPT0gKHZvaWQgKikgfjBsKQotICAJCT8gTExMX1NIQVJFRCA6IExMTF9QUklWQVRFOwor
ICBpbnQgcHNoYXJlZCA9IChjYnVmZmVyLT5tdXRleCA9PSAodm9pZCAqKSB+MGwpID8gTExMX1NI
QVJFRCA6IExMTF9QUklWQVRFOwogCiAgIC8qIFdlIGFyZSBnb2luZyB0byBtb2RpZnkgc2hhcmVk
IGRhdGEuICAqLwotICBsbGxfbG9jayAoY2J1ZmZlci0+Y29uZC0+X19kYXRhLl9fbG9jaywgcHNo
YXJlZCk7CisgIGNvbmRfbG9jayhjYnVmZmVyLT5jb25kLCBwc2hhcmVkKTsKIAogICBpZiAoY2J1
ZmZlci0+YmNfc2VxID09IGNidWZmZXItPmNvbmQtPl9fZGF0YS5fX2Jyb2FkY2FzdF9zZXEpCiAg
ICAgewpAQCAtNzgsNyArMTIxLDcgQEAgX19jb25kdmFyX2NsZWFudXAgKHZvaWQgKmFyZykKICAg
ICB9CiAKICAgLyogV2UgYXJlIGRvbmUuICAqLwotICBsbGxfdW5sb2NrIChjYnVmZmVyLT5jb25k
LT5fX2RhdGEuX19sb2NrLCBwc2hhcmVkKTsKKyAgY29uZF91bmxvY2soY2J1ZmZlci0+Y29uZCwg
cHNoYXJlZCk7CiAKICAgLyogV2FrZSBldmVyeWJvZHkgdG8gbWFrZSBzdXJlIG5vIGNvbmR2YXIg
c2lnbmFsIGdldHMgbG9zdC4gICovCiAgIGlmICghIGRlc3Ryb3lpbmcpCkBAIC05NywxOCArMTQw
LDE5IEBAIF9fcHRocmVhZF9jb25kX3dhaXQgKGNvbmQsIG11dGV4KQogewogICBzdHJ1Y3QgX3B0
aHJlYWRfY2xlYW51cF9idWZmZXIgYnVmZmVyOwogICBzdHJ1Y3QgX2NvbmR2YXJfY2xlYW51cF9i
dWZmZXIgY2J1ZmZlcjsKLSAgaW50IGVycjsKICAgaW50IHBzaGFyZWQgPSAoY29uZC0+X19kYXRh
Ll9fbXV0ZXggPT0gKHZvaWQgKikgfjBsKQogICAJCT8gTExMX1NIQVJFRCA6IExMTF9QUklWQVRF
OworICBpbnQgcGlfcmVxdWV1ZWQ7CisgIGludCBlcnI7CiAKICAgLyogTWFrZSBzdXJlIHdlIGFy
ZSBhbG9uZy4gICovCi0gIGxsbF9sb2NrIChjb25kLT5fX2RhdGEuX19sb2NrLCBwc2hhcmVkKTsK
KyAgY29uZF9sb2NrKGNvbmQsIHBzaGFyZWQpOwogCiAgIC8qIE5vdyB3ZSBjYW4gcmVsZWFzZSB0
aGUgbXV0ZXguICAqLwogICBlcnIgPSBfX3B0aHJlYWRfbXV0ZXhfdW5sb2NrX3VzZXJjbnQgKG11
dGV4LCAwKTsKICAgaWYgKF9fYnVpbHRpbl9leHBlY3QgKGVyciwgMCkpCiAgICAgewotICAgICAg
bGxsX3VubG9jayAoY29uZC0+X19kYXRhLl9fbG9jaywgcHNoYXJlZCk7CisgICAgICBjb25kX3Vu
bG9jayhjb25kLCBwc2hhcmVkKTsKICAgICAgIHJldHVybiBlcnI7CiAgICAgfQogCkBAIC0xNDIs
MjEgKzE4NiwzNSBAQCBfX3B0aHJlYWRfY29uZF93YWl0IChjb25kLCBtdXRleCkKICAgZG8KICAg
ICB7CiAgICAgICB1bnNpZ25lZCBpbnQgZnV0ZXhfdmFsID0gY29uZC0+X19kYXRhLl9fZnV0ZXg7
CisgICAgICBwaV9yZXF1ZXVlZCA9IDA7CiAKICAgICAgIC8qIFByZXBhcmUgdG8gd2FpdC4gIFJl
bGVhc2UgdGhlIGNvbmR2YXIgZnV0ZXguICAqLwotICAgICAgbGxsX3VubG9jayAoY29uZC0+X19k
YXRhLl9fbG9jaywgcHNoYXJlZCk7CisgICAgICBjb25kX3VubG9jayhjb25kLCBwc2hhcmVkKTsK
IAogICAgICAgLyogRW5hYmxlIGFzeW5jaHJvbm91cyBjYW5jZWxsYXRpb24uICBSZXF1aXJlZCBi
eSB0aGUgc3RhbmRhcmQuICAqLwogICAgICAgY2J1ZmZlci5vbGR0eXBlID0gX19wdGhyZWFkX2Vu
YWJsZV9hc3luY2NhbmNlbCAoKTsKIAorICAgICAgaWYgKG11dGV4LT5fX2RhdGEuX19raW5kICYg
UFRIUkVBRF9NVVRFWF9QUklPX0lOSEVSSVRfTlApCisJeworCSAgLyogVHJ5IHJlcXVldWVpbmcg
dG8gdGhlIFBJIG11dGV4LCBpZiBubyBzdXBwb3J0IGluIHRoZSBrZXJuZWwKKyAgICAgICAgICAg
ICB0cnkgdGhlIG5vbi1yZXF1ZXVlIHN5c2NhbGwuICAqLworICAgICAgICAgIGVyciA9IGxsbF9m
dXRleF93YWl0X3JlcXVldWVfcGkgKGNvbmQsIGZ1dGV4X3ZhbCwgCisJCQkJCSAgICZtdXRleC0+
X19kYXRhLl9fbG9jaywgcHNoYXJlZCk7CisgICAgICAgICAgaWYgKF9fYnVpbHRpbl9leHBlY3Qg
KCFlcnIsIDEpKQorCSAgICAgICBwaV9yZXF1ZXVlZCA9IDE7CisgICAgICAgICAgaWYgKF9fYnVp
bHRpbl9leHBlY3QgKGVyciAhPSAtRU5PU1lTLCAwKSkKKwkgICAgICAgZ290byB3b2tlbjsKKwl9
CisgICAgICAgICAgCiAgICAgICAvKiBXYWl0IHVudGlsIHdva2VuIGJ5IHNpZ25hbCBvciBicm9h
ZGNhc3QuICAqLwogICAgICAgbGxsX2Z1dGV4X3dhaXQgKCZjb25kLT5fX2RhdGEuX19mdXRleCwg
ZnV0ZXhfdmFsLCBwc2hhcmVkKTsKIAord29rZW46CiAgICAgICAvKiBEaXNhYmxlIGFzeW5jaHJv
bm91cyBjYW5jZWxsYXRpb24uICAqLwogICAgICAgX19wdGhyZWFkX2Rpc2FibGVfYXN5bmNjYW5j
ZWwgKGNidWZmZXIub2xkdHlwZSk7CiAKICAgICAgIC8qIFdlIGFyZSBnb2luZyB0byBsb29rIGF0
IHNoYXJlZCBkYXRhIGFnYWluLCBzbyBnZXQgdGhlIGxvY2suICAqLwotICAgICAgbGxsX2xvY2sg
KGNvbmQtPl9fZGF0YS5fX2xvY2ssIHBzaGFyZWQpOworICAgICAgY29uZF9sb2NrKGNvbmQsIHBz
aGFyZWQpOwogCiAgICAgICAvKiBJZiBhIGJyb2FkY2FzdCBoYXBwZW5lZCwgd2UgYXJlIGRvbmUu
ICAqLwogICAgICAgaWYgKGNidWZmZXIuYmNfc2VxICE9IGNvbmQtPl9fZGF0YS5fX2Jyb2FkY2Fz
dF9zZXEpCkBAIC0xODIsMTMgKzI0MCwyMCBAQCBfX3B0aHJlYWRfY29uZF93YWl0IChjb25kLCBt
dXRleCkKICAgICBsbGxfZnV0ZXhfd2FrZSAoJmNvbmQtPl9fZGF0YS5fX253YWl0ZXJzLCAxLCBw
c2hhcmVkKTsKIAogICAvKiBXZSBhcmUgZG9uZSB3aXRoIHRoZSBjb25kdmFyLiAgKi8KLSAgbGxs
X3VubG9jayAoY29uZC0+X19kYXRhLl9fbG9jaywgcHNoYXJlZCk7CisgIGNvbmRfdW5sb2NrKGNv
bmQsIHBzaGFyZWQpOwogCiAgIC8qIFRoZSBjYW5jZWxsYXRpb24gaGFuZGxpbmcgaXMgYmFjayB0
byBub3JtYWwsIHJlbW92ZSB0aGUgaGFuZGxlci4gICovCiAgIF9fcHRocmVhZF9jbGVhbnVwX3Bv
cCAoJmJ1ZmZlciwgMCk7CiAKLSAgLyogR2V0IHRoZSBtdXRleCBiZWZvcmUgcmV0dXJuaW5nLiAg
Ki8KLSAgcmV0dXJuIF9fcHRocmVhZF9tdXRleF9jb25kX2xvY2sgKG11dGV4KTsKKyAgLyogR2V0
IHRoZSBtdXRleCBiZWZvcmUgcmV0dXJuaW5nLiBJZiB0aGUgcmVxdWV1ZV9waSBjYWxsIGFib3Zl
IHdhcyBzdWNjZXNzZnVsLAorICAgICB0aGUgbG9jayBpcyBhbHJlYWR5IGhlbGQgaW4gdGhlIGtl
cm5lbCwgc28ganVzdCByZXR1cm4gMCB0byBhcHBsaWNhdGlvbi4gICovCisgIGlmIChwaV9yZXF1
ZXVlZCkKKyAgICB7CisgICAgICBfX3B0aHJlYWRfbXV0ZXhfY29uZF9sb2NrX2FkanVzdCAobXV0
ZXgpOworICAgICAgcmV0dXJuIDA7CisgICAgfQorICBlbHNlCisgICAgcmV0dXJuIF9fcHRocmVh
ZF9tdXRleF9jb25kX2xvY2sgKG11dGV4KTsKIH0KIAogdmVyc2lvbmVkX3N5bWJvbCAobGlicHRo
cmVhZCwgX19wdGhyZWFkX2NvbmRfd2FpdCwgcHRocmVhZF9jb25kX3dhaXQsCmRpZmYgLS1naXQg
YS9ucHRsL3B0aHJlYWRfY29uZGF0dHJfZ2V0Y2xvY2suYyBiL25wdGwvcHRocmVhZF9jb25kYXR0
cl9nZXRjbG9jay5jCmluZGV4IDNlZWRlYjEuLjlmMDM0YjMgMTAwNjQ0Ci0tLSBhL25wdGwvcHRo
cmVhZF9jb25kYXR0cl9nZXRjbG9jay5jCisrKyBiL25wdGwvcHRocmVhZF9jb25kYXR0cl9nZXRj
bG9jay5jCkBAIC0xLDQgKzEsNCBAQAotLyogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA3
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorLyogQ29weXJpZ2h0IChDKSAyMDAzLDIw
MDQsMjAwNywyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICAgVGhpcyBmaWxl
IGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCiAgICBDb250cmlidXRlZCBieSBVbHJpY2gg
RHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPiwgMjAwMy4KIApAQCAtMjUsNyArMjUsOCBAQCBw
dGhyZWFkX2NvbmRhdHRyX2dldGNsb2NrIChhdHRyLCBjbG9ja19pZCkKICAgICAgY29uc3QgcHRo
cmVhZF9jb25kYXR0cl90ICphdHRyOwogICAgICBjbG9ja2lkX3QgKmNsb2NrX2lkOwogewotICAq
Y2xvY2tfaWQgPSAoKCgoKGNvbnN0IHN0cnVjdCBwdGhyZWFkX2NvbmRhdHRyICopIGF0dHIpLT52
YWx1ZSkgPj4gMSkKLQkgICAgICAgJiAoKDEgPDwgQ09ORF9OV0FJVEVSU19TSElGVCkgLSAxKSk7
CisgICpjbG9ja19pZCA9ICgoKCgoY29uc3Qgc3RydWN0IHB0aHJlYWRfY29uZGF0dHIgKikgYXR0
ciktPnZhbHVlKQorCSAgICAgICA+PiBDT05EQVRUUl9DTE9DS0lEX1NISUZUKQorCSAgICAgICAm
ICgoMSA8PCBDT05EX1BST1RPQ09MX1NISUZUKSAtIDEpKTsKICAgcmV0dXJuIDA7CiB9CmRpZmYg
LS1naXQgYS9ucHRsL3B0aHJlYWRfY29uZGF0dHJfZ2V0cHJvdG9jb2xfbnAuYyBiL25wdGwvcHRo
cmVhZF9jb25kYXR0cl9nZXRwcm90b2NvbF9ucC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjYyODFmMmEKLS0tIC9kZXYvbnVsbAorKysgYi9ucHRsL3B0aHJlYWRfY29uZGF0
dHJfZ2V0cHJvdG9jb2xfbnAuYwpAQCAtMCwwICsxLDM0IEBACisvKiBDb3B5cmlnaHQgKEMpIDIw
MTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBUaGlzIGZpbGUgaXMgcGFydCBv
ZiB0aGUgR05VIEMgTGlicmFyeS4KKyAgIENvbnRyaWJ1dGVkIGJ5IERpbmFrYXIgR3VuaWd1bnRh
bGEgPGRpbm9AaW4uaWJtLmNvbT4sIDIwMTAuCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICAgbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
CisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgICBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQor
ICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAg
WW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3Qs
IHdyaXRlIHRvIHRoZSBGcmVlCisgICBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1w
bGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorICAgMDIxMTEtMTMwNyBVU0EuICAqLwor
CisjaW5jbHVkZSAicHRocmVhZFAuaCIKKworCitpbnQKK3B0aHJlYWRfY29uZGF0dHJfZ2V0cHJv
dG9jb2xfbnAgKGF0dHIsIHByb3RvY29sKQorICAgICBjb25zdCBwdGhyZWFkX2NvbmRhdHRyX3Qg
KmF0dHI7CisgICAgIGludCAqcHJvdG9jb2w7Cit7CisgICpwcm90b2NvbCA9ICgoY29uc3Qgc3Ry
dWN0IHB0aHJlYWRfY29uZGF0dHIgKikgYXR0ciktPnZhbHVlOworCisgICpwcm90b2NvbCA9ICgo
KnByb3RvY29sICYgQ09OREFUVFJfUFJPVE9DT0xfTUFTSykKKwkgICAgICAgPj4gQ09OREFUVFJf
UFJPVE9DT0xfU0hJRlQpOworCisgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvbnB0bC9wdGhy
ZWFkX2NvbmRhdHRyX3NldGNsb2NrLmMgYi9ucHRsL3B0aHJlYWRfY29uZGF0dHJfc2V0Y2xvY2su
YwppbmRleCA1YzU0Zjc2Li45N2U5NTk1IDEwMDY0NAotLS0gYS9ucHRsL3B0aHJlYWRfY29uZGF0
dHJfc2V0Y2xvY2suYworKysgYi9ucHRsL3B0aHJlYWRfY29uZGF0dHJfc2V0Y2xvY2suYwpAQCAt
MSw0ICsxLDQgQEAKLS8qIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNywgMjAwOCBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKy8qIENvcHlyaWdodCAoQykgMjAwMywyMDA0LDIw
MDcsMjAwOCwyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogICAgVGhpcyBmaWxl
IGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCiAgICBDb250cmlidXRlZCBieSBVbHJpY2gg
RHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPiwgMjAwMy4KIApAQCAtNjIsMTEgKzYyLDExIEBA
IHB0aHJlYWRfY29uZGF0dHJfc2V0Y2xvY2sgKGF0dHIsIGNsb2NrX2lkKQogICAgIHJldHVybiBF
SU5WQUw7CiAKICAgLyogTWFrZSBzdXJlIHRoZSB2YWx1ZSBmaXRzIGluIHRoZSBiaXRzIHdlIHJl
c2VydmVkLiAgKi8KLSAgYXNzZXJ0IChjbG9ja19pZCA8ICgxIDw8IENPTkRfTldBSVRFUlNfU0hJ
RlQpKTsKKyAgYXNzZXJ0IChjbG9ja19pZCA8ICgxIDw8IENPTkRfUFJPVE9DT0xfU0hJRlQpKTsK
IAogICBpbnQgKnZhbHVlcCA9ICYoKHN0cnVjdCBwdGhyZWFkX2NvbmRhdHRyICopIGF0dHIpLT52
YWx1ZTsKIAotICAqdmFsdWVwID0gKCgqdmFsdWVwICYgfigoKDEgPDwgQ09ORF9OV0FJVEVSU19T
SElGVCkgLSAxKSA8PCAxKSkKKyAgKnZhbHVlcCA9ICgoKnZhbHVlcCAmIH4oKCgxIDw8IENPTkRf
UFJPVE9DT0xfU0hJRlQpIC0gMSkgPDwgMSkpCiAJICAgICB8IChjbG9ja19pZCA8PCAxKSk7CiAK
ICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9ucHRsL3B0aHJlYWRfY29uZGF0dHJfc2V0cHJvdG9j
b2xfbnAuYyBiL25wdGwvcHRocmVhZF9jb25kYXR0cl9zZXRwcm90b2NvbF9ucC5jCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU4NTlhMjcKLS0tIC9kZXYvbnVsbAorKysgYi9u
cHRsL3B0aHJlYWRfY29uZGF0dHJfc2V0cHJvdG9jb2xfbnAuYwpAQCAtMCwwICsxLDM5IEBACisv
KiBDb3B5cmlnaHQgKEMpIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBU
aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKyAgIENvbnRyaWJ1dGVkIGJ5
IERpbmFrYXIgR3VuaWd1bnRhbGEgPGRpbm9AaW4uaWJtLmNvbT4sIDIwMTAuCisKKyAgIFRoZSBH
TlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKworICAgVGhlIEdOVSBDIExpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUg
QyBMaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlCisgICBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQQorICAgMDIx
MTEtMTMwNyBVU0EuICAqLworCisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRlIDxwdGhyZWFk
UC5oPgorCitpbnQKK3B0aHJlYWRfY29uZGF0dHJfc2V0cHJvdG9jb2xfbnAgKGF0dHIsIHByb3Rv
Y29sKQorICAgICBwdGhyZWFkX2NvbmRhdHRyX3QgKmF0dHI7CisgICAgIGludCBwcm90b2NvbDsK
K3sKKyAgaWYgKHByb3RvY29sICE9IFBUSFJFQURfUFJJT19OT05FCisgICAgICAmJiBwcm90b2Nv
bCAhPSBQVEhSRUFEX1BSSU9fSU5IRVJJVAorICAgICAgJiYgX19idWlsdGluX2V4cGVjdCAocHJv
dG9jb2wgIT0gUFRIUkVBRF9QUklPX1BST1RFQ1QsIDApKQorICAgIHJldHVybiBFSU5WQUw7CisK
KyAgaW50ICp2YWx1ZXAgPSAmKChzdHJ1Y3QgcHRocmVhZF9jb25kYXR0ciAqKSBhdHRyKS0+dmFs
dWU7CisKKyAgKnZhbHVlcCA9ICgoKnZhbHVlcCAmIH5DT05EQVRUUl9QUk9UT0NPTF9NQVNLKQor
CSAgICAgfCAocHJvdG9jb2wgPDwgQ09OREFUVFJfUFJPVE9DT0xfU0hJRlQpKTsKKworICByZXR1
cm4gMDsKK30KZGlmZiAtLWdpdCBhL25wdGwvc3lzZGVwcy9wdGhyZWFkL2NvbmQtbG9jay5oIGIv
bnB0bC9zeXNkZXBzL3B0aHJlYWQvY29uZC1sb2NrLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYWNmM2Y2ZAotLS0gL2Rldi9udWxsCisrKyBiL25wdGwvc3lzZGVwcy9wdGhy
ZWFkL2NvbmQtbG9jay5oCkBAIC0wLDAgKzEsNTggQEAKKy8qIENvcHlyaWdodCAoQykgMjAxMCBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo
ZSBHTlUgQyBMaWJyYXJ5LgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICAgdmVyc2lv
biAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAgIExlc3NlciBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAg
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0
aGUgRnJlZQorICAgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBT
dWl0ZSAzMzAsIEJvc3RvbiwgTUEKKyAgIDAyMTExLTEzMDcgVVNBLiAgKi8KKworI2lmbmRlZiBf
Q09ORF9MT0NLX0gKKyNkZWZpbmUgX0NPTkRfTE9DS19IIDEKKworCitleHRlcm4gdm9pZCBsbGxf
cGlfbG9jayAoaW50ICpmdXRleCwgaW50IHBzaGFyZWQpCisgICAgIF9fYXR0cmlidXRlX18gKCh2
aXNpYmlsaXR5ICgiaGlkZGVuIikpKTsKK2V4dGVybiB2b2lkIGxsbF9waV91bmxvY2sgKGludCAq
ZnV0ZXgsIGludCBwc2hhcmVkKQorICAgICBfX2F0dHJpYnV0ZV9fICgodmlzaWJpbGl0eSAoImhp
ZGRlbiIpKSk7CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBjb25kX2xvY2socHRocmVhZF9jb25kX3Qg
KmNvbmQsCisJCQkgICAgIGludCBwc2hhcmVkKTsKKworc3RhdGljIGlubGluZSB2b2lkIGNvbmRf
dW5sb2NrKHB0aHJlYWRfY29uZF90ICpjb25kLAorCQkJICAgICAgIGludCBwc2hhcmVkKTsKKwor
c3RhdGljIGlubGluZSB2b2lkIGNvbmRfbG9jayhjb25kLCBwc2hhcmVkKQorICAgICBwdGhyZWFk
X2NvbmRfdCAqY29uZDsKKyAgICAgaW50IHBzaGFyZWQ7Cit7CisgIGlmIChwc2hhcmVkID09IExM
TF9QUklWQVRFCisgICAgICAmJiAoKGNvbmQtPl9fZGF0YS5fX253YWl0ZXJzICYgQ09ORF9QUk9U
T0NPTF9NQVNLKQorCSAgPT0gQ09ORF9QUklPX0lOSEVSSVQpKQorICAgIGxsbF9waV9sb2NrICgm
Y29uZC0+X19kYXRhLl9fbG9jaywgcHNoYXJlZCk7CisgIGVsc2UKKyAgICBsbGxfbG9jayAoY29u
ZC0+X19kYXRhLl9fbG9jaywgcHNoYXJlZCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBjb25k
X3VubG9jayhjb25kLCBwc2hhcmVkKQorICAgICBwdGhyZWFkX2NvbmRfdCAqY29uZDsKKyAgICAg
aW50IHBzaGFyZWQ7Cit7CisgIGlmIChwc2hhcmVkID09IExMTF9QUklWQVRFCisgICAgICAmJiAo
KGNvbmQtPl9fZGF0YS5fX253YWl0ZXJzICYgQ09ORF9QUk9UT0NPTF9NQVNLKQorCSAgPT0gQ09O
RF9QUklPX0lOSEVSSVQpKQorICAgIGxsbF9waV91bmxvY2sgKCZjb25kLT5fX2RhdGEuX19sb2Nr
LCBwc2hhcmVkKTsKKyAgZWxzZQorICAgIGxsbF91bmxvY2sgKGNvbmQtPl9fZGF0YS5fX2xvY2ss
IHBzaGFyZWQpOworfQorIAorI2VuZGlmCmRpZmYgLS1naXQgYS9ucHRsL3N5c2RlcHMvcHRocmVh
ZC9wdGhyZWFkLmggYi9ucHRsL3N5c2RlcHMvcHRocmVhZC9wdGhyZWFkLmgKaW5kZXggNDRjZjlm
MC4uZWY1ZTA5MyAxMDA2NDQKLS0tIGEvbnB0bC9zeXNkZXBzL3B0aHJlYWQvcHRocmVhZC5oCisr
KyBiL25wdGwvc3lzZGVwcy9wdGhyZWFkL3B0aHJlYWQuaApAQCAtMTAwNiw2ICsxMDA2LDE4IEBA
IGV4dGVybiBpbnQgcHRocmVhZF9jb25kYXR0cl9nZXRwc2hhcmVkIChfX2NvbnN0IHB0aHJlYWRf
Y29uZGF0dHJfdCAqCiBleHRlcm4gaW50IHB0aHJlYWRfY29uZGF0dHJfc2V0cHNoYXJlZCAocHRo
cmVhZF9jb25kYXR0cl90ICpfX2F0dHIsCiAJCQkJCWludCBfX3BzaGFyZWQpIF9fVEhST1cgX19u
b25udWxsICgoMSkpOwogCisvKiBHZXQgdGhlIHByb3RvY29sIGZsYWcgb2YgdGhlIGNvbmRpdGlv
biB2YXJpYWJsZSBhdHRyaWJ1dGUgQVRUUi4gICovCitleHRlcm4gaW50IHB0aHJlYWRfY29uZGF0
dHJfZ2V0cHJvdG9jb2xfbnAgKF9fY29uc3QgcHRocmVhZF9jb25kYXR0cl90ICoKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19yZXN0cmljdCBfX2F0dHIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqX19yZXN0cmlj
dCBfX3Byb3RvY29sKQorICAgICBfX1RIUk9XIF9fbm9ubnVsbCAoKDEsIDIpKTsKKworLyogU2V0
IHRoZSBjb25kIHByb3RvY29sIGF0dHJpYnV0ZSBpbiBBVFRSIHRvIHByb3RvY29sIChvbmUgb2YK
KyAgIFBUSFJFQURfUFJJT19OT05FLCBQVEhSRUFEX1BSSU9fSU5IRVJJVCBvciBQVEhSRUFEX1BS
SU9fUFJPVEVDVCkuICAqLworZXh0ZXJuIGludCBwdGhyZWFkX2NvbmRhdHRyX3NldHByb3RvY29s
X25wIChwdGhyZWFkX2NvbmRhdHRyX3QgKl9fYXR0ciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW50IF9fcHJvdG9jb2wpCisgICAgIF9fVEhST1cgX19ub25u
dWxsICgoMSkpOworCiAjaWZkZWYgX19VU0VfWE9QRU4ySwogLyogR2V0IHRoZSBjbG9jayBzZWxl
Y3RlZCBmb3IgdGhlIGNvbmRpdG9uIHZhcmlhYmxlIGF0dHJpYnV0ZSBBVFRSLiAgKi8KIGV4dGVy
biBpbnQgcHRocmVhZF9jb25kYXR0cl9nZXRjbG9jayAoX19jb25zdCBwdGhyZWFkX2NvbmRhdHRy
X3QgKgpkaWZmIC0tZ2l0IGEvbnB0bC9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L2xvd2xl
dmVsbG9jay5oIGIvbnB0bC9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pMzg2L2xvd2xldmVsbG9j
ay5oCmluZGV4IDRiYjU4NWEuLjMxNDRkNmYgMTAwNjQ0Ci0tLSBhL25wdGwvc3lzZGVwcy91bml4
L3N5c3YvbGludXgvaTM4Ni9sb3dsZXZlbGxvY2suaAorKysgYi9ucHRsL3N5c2RlcHMvdW5peC9z
eXN2L2xpbnV4L2kzODYvbG93bGV2ZWxsb2NrLmgKQEAgLTEsNCArMSw1IEBACi0vKiBDb3B5cmln
aHQgKEMpIDIwMDItMjAwNCwgMjAwNi0yMDA4LCAyMDA5IEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLgorLyogQ29weXJpZ2h0IChDKSAyMDAyLDIwMDMsMjAwNCwyMDA2LDIwMDcsMjAwOCwy
MDEwCisgICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgIFRoaXMgZmlsZSBpcyBw
YXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgogICAgQ29udHJpYnV0ZWQgYnkgVWxyaWNoIERyZXBw
ZXIgPGRyZXBwZXJAcmVkaGF0LmNvbT4sIDIwMDIuCiAKQEAgLTIzOCw2ICsyMzksOTEgQEAgTExM
X1NUVUJfVU5XSU5EX0lORk9fRU5ECiAgIH0gd2hpbGUgKDApCiAKIAorI2RlZmluZSBsbGxfZnV0
ZXhfd2FpdF9yZXF1ZXVlX3BpKGNvbmQsIHZhbCwgbXV0ZXgsIHByaXZhdGUpIFwKKyAgbGxsX2Z1
dGV4X3RpbWVkX3dhaXRfcmVxdWV1ZV9waSAoY29uZCwgdmFsLCBOVUxMLCBtdXRleCwgcHJpdmF0
ZSkKKworCisjZGVmaW5lIGxsbF9mdXRleF90aW1lZF93YWl0X3JlcXVldWVfcGkoY29uZCwgdmFs
LCB0aW1lLCBtdXRleCwgcHJpdmF0ZSkgXAorICAoewkJCQkJCQkJCSAgICAgIFwKKyAgICBJTlRF
Uk5BTF9TWVNDQUxMX0RFQ0wgKF9fZXJyKTsJCQkJCSAgICAgIFwKKyAgICBsb25nIGludCBfX3Jl
dDsJCQkJCQkJICAgICAgXAorICAgIHVuc2lnbmVkIGludCAqX19mdXRleHAgPSAmY29uZC0+X19k
YXRhLl9fZnV0ZXg7CQkJICAgICAgXAorICAgIGludCBfX2ZsYWcgPSBGVVRFWF9XQUlUX1JFUVVF
VUVfUEk7CQkJCQkgICAgICBcCisgICAgX19mbGFnID0gKGNvbmQtPl9fZGF0YS5fX253YWl0ZXJz
ICYgQ09ORF9DTE9DS19NQVNLKSA/CQkgICAgICBcCisJICAgICAgX19mbGFnICA6IF9fZmxhZyB8
IEZVVEVYX0NMT0NLX1JFQUxUSU1FOwkJCSAgICAgIFwKKyAgICBfX3JldCA9IElOVEVSTkFMX1NZ
U0NBTEwgKGZ1dGV4LCBfX2VyciwgNSwJCQkJICAgICAgXAorCQkJICAgICAgKF9fZnV0ZXhwKSwJ
CQkJICAgICAgXAorCQkJICAgICAgX19sbGxfcHJpdmF0ZV9mbGFnIChfX2ZsYWcsIHByaXZhdGUp
LAkgICAgICBcCisJCQkgICAgICAodmFsKSwgdGltZSwJCQkJICAgICAgXAorCQkJICAgICAgKG11
dGV4KSk7CQkJCQkgICAgICBcCisgICAgSU5URVJOQUxfU1lTQ0FMTF9FUlJPUl9QIChfX3JldCwg
X19lcnIpPyAtX19yZXQgOiBfX3JldDsJCSAgICAgIFwKKyAgfSkKKworCisjZGVmaW5lIGxsbF9m
dXRleF9yZXF1ZXVlKGZ1dGV4LCBucl93YWtlLCBucl9tb3ZlLCBtdXRleCwgdmFsLCBwcml2YXRl
KSBcCisgICh7CQkJCQkJCQkJICAgICAgXAorICAgIGludCBfX3N0YXR1czsJCQkJCQkJICAgICAg
XAorICAgIGludCBfX3NhdmVfZWJ4OwkJCQkJCQkgICAgICBcCisgICAgaW50IF9fZHVtbXk7CQkJ
CQkJCSAgICAgIFwKKyAgICBpbnQgX19mbGFnID0gRlVURVhfQ01QX1JFUVVFVUU7CQkJCQkgICAg
ICBcCisgICAgcmVnaXN0ZXIgX190eXBlb2YgKG5yX21vdmUpIF9ucl9tb3ZlIGFzbSAoImVzaSIp
ID0gKG5yX21vdmUpOwkgICAgICBcCisgICAgX19hc20gX192b2xhdGlsZSAoIm1vdiAlJWVieCwg
JTBcblx0IgkJCQkgICAgICBcCisJCSAgICAgICJtb3YgJTEsICUlZWJ4XG5cdCIJCQkJICAgICAg
XAorCQkgICAgICBMTExfRUJYX0xPQUQJCQkJCSAgICAgIFwKKwkJICAgICAgInB1c2hsICUlZWJw
XG5cdCIJCQkJCSAgICAgIFwKKwkJICAgICAgIm1vdiAlMywgJSVlYnBcblx0IgkJCQkgICAgICBc
CisJCSAgICAgIDogIj1tIiAoX19zYXZlX2VieCkJCQkJICAgICAgXAorCQkgICAgICA6ICJjIiAo
bXV0ZXgpLCBMTExfRUJYX1JFRyAoZnV0ZXgpLAkJICAgICAgXAorCQkgICAgICAgICJhIiAodmFs
KSk7CQkJCQkgICAgICBcCisgICAgX19hc20gX192b2xhdGlsZSAoTExMX0VOVEVSX0tFUk5FTAkJ
CQkJICAgICAgXAorCQkgICAgICAicG9wbCAlJWVicFxuXHQiCQkJCQkgICAgICBcCisJCSAgICAg
IDogIj1hIiAoX19zdGF0dXMpCQkJCQkgICAgICBcCisJCSAgICAgIDogIjAiIChTWVNfZnV0ZXgp
LCAJCQkJICAgICAgXAorCQkJImMiIChfX2xsbF9wcml2YXRlX2ZsYWcgKF9fZmxhZywgcHJpdmF0
ZSkpLAkgICAgICBcCisJCQkiZCIgKG5yX3dha2UpLCAiUyIgKF9ucl9tb3ZlKSwJCQkgICAgICBc
CisJCQkiaSIgKDApIC8qIHBob255LCB0byBhbGlnbiBuZXh0IGFyZydzIG51bWJlciAqLywgICAg
ICBcCisJCQkiaSIgKG9mZnNldG9mICh0Y2JoZWFkX3QsIHN5c2luZm8pKQkJICAgICAgXAorCQkg
ICAgICA6ICJtZW1vcnkiKTsJCQkJCSAgICAgIFwKKyAgICBfX2FzbSBfX3ZvbGF0aWxlIChMTExf
RUJYX0xPQUQJCQkJCSAgICAgIFwKKwkJICAgICAgIm1vdiAlMSwgJSVlYnhcblx0IgkJCQkgICAg
ICBcCisJCSAgICAgIDogIj1tIiAoX19kdW1teSkJCQkJCSAgICAgIFwKKwkJICAgICAgOiAibSIg
KF9fc2F2ZV9lYngpLCBMTExfRUJYX1JFRyAoZnV0ZXgpKTsJCSAgICAgIFwKKyAgICBfX3N0YXR1
czsJCQkJCQkJCSAgICAgIFwKKyAgfSkKKworCisjZGVmaW5lIGxsbF9mdXRleF9yZXF1ZXVlX3Bp
KGZ1dGV4LCBucl93YWtlLCBucl9tb3ZlLCBtdXRleCwgdmFsLCBwcml2YXRlKSBcCisgICh7CQkJ
CQkJCQkJICAgICAgXAorICAgIGludCBfX3N0YXR1czsJCQkJCQkJICAgICAgXAorICAgIGludCBf
X3NhdmVfZWJ4OwkJCQkJCQkgICAgICBcCisgICAgaW50IF9fZHVtbXk7CQkJCQkJCSAgICAgIFwK
KyAgICBpbnQgX19mbGFnID0gRlVURVhfQ01QX1JFUVVFVUVfUEk7CQkJCQkgICAgICBcCisgICAg
cmVnaXN0ZXIgX190eXBlb2YgKG5yX21vdmUpIF9ucl9tb3ZlIGFzbSAoImVzaSIpID0gKG5yX21v
dmUpOwkgICAgICBcCisgICAgX19hc20gX192b2xhdGlsZSAoIm1vdiAlJWVieCwgJTBcblx0IgkJ
CQkgICAgICBcCisJCSAgICAgICJtb3YgJTEsICUlZWJ4XG5cdCIJCQkJICAgICAgXAorCQkgICAg
ICBMTExfRUJYX0xPQUQJCQkJCSAgICAgIFwKKwkJICAgICAgInB1c2hsICUlZWJwXG5cdCIJCQkJ
CSAgICAgIFwKKwkJICAgICAgIm1vdiAlMywgJSVlYnBcblx0IgkJCQkgICAgICBcCisJCSAgICAg
IDogIj1tIiAoX19zYXZlX2VieCkJCQkJICAgICAgXAorCQkgICAgICA6ICJjIiAobXV0ZXgpLCBM
TExfRUJYX1JFRyAoZnV0ZXgpLAkJICAgICAgXAorCQkgICAgICAgICJhIiAodmFsKSk7CQkJCQkg
ICAgICBcCisgICAgX19hc20gX192b2xhdGlsZSAoTExMX0VOVEVSX0tFUk5FTAkJCQkJICAgICAg
XAorCQkgICAgICAicG9wbCAlJWVicFxuXHQiCQkJCQkgICAgICBcCisJCSAgICAgIDogIj1hIiAo
X19zdGF0dXMpCQkJCQkgICAgICBcCisJCSAgICAgIDogIjAiIChTWVNfZnV0ZXgpLCAJCQkJICAg
ICAgXAorCQkJImMiIChfX2xsbF9wcml2YXRlX2ZsYWcgKF9fZmxhZywgcHJpdmF0ZSkpLAkgICAg
ICBcCisJCQkiZCIgKG5yX3dha2UpLCAiUyIgKF9ucl9tb3ZlKSwJCQkgICAgICBcCisJCQkiaSIg
KDApIC8qIHBob255LCB0byBhbGlnbiBuZXh0IGFyZydzIG51bWJlciAqLywgICAgICBcCisJCQki
aSIgKG9mZnNldG9mICh0Y2JoZWFkX3QsIHN5c2luZm8pKQkJICAgICAgXAorCQkgICAgICA6ICJt
ZW1vcnkiKTsJCQkJCSAgICAgIFwKKyAgICBfX2FzbSBfX3ZvbGF0aWxlIChMTExfRUJYX0xPQUQJ
CQkJCSAgICAgIFwKKwkJICAgICAgIm1vdiAlMSwgJSVlYnhcblx0IgkJCQkgICAgICBcCisJCSAg
ICAgIDogIj1tIiAoX19kdW1teSkJCQkJCSAgICAgIFwKKwkJICAgICAgOiAibSIgKF9fc2F2ZV9l
YngpLCBMTExfRUJYX1JFRyAoZnV0ZXgpKTsJCSAgICAgIFwKKyAgICBfX3N0YXR1czsJCQkJCQkJ
CSAgICAgIFwKKyAgfSkKKworCiAvKiBOQjogaW4gdGhlIGxsbF90cnlsb2NrIG1hY3JvIHdlIHNp
bXBseSByZXR1cm4gdGhlIHZhbHVlIGluICVlYXgKICAgIGFmdGVyIHRoZSBjbXB4Y2hnIGluc3Ry
dWN0aW9uLiAgSW4gY2FzZSB0aGUgb3BlcmF0aW9uIHN1Y2NlZGVkIHRoaXMKICAgIHZhbHVlIGlz
IHplcm8uICBJbiBjYXNlIHRoZSBvcGVyYXRpb24gZmFpbGVkLCB0aGUgY21weGNoZyBpbnN0cnVj
dGlvbgpkaWZmIC0tZ2l0IGEvbnB0bC9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9pbnRlcm5hbHR5
cGVzLmggYi9ucHRsL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2ludGVybmFsdHlwZXMuaAppbmRl
eCBhZGQyMGI2Li44NzZjYTc5IDEwMDY0NAotLS0gYS9ucHRsL3N5c2RlcHMvdW5peC9zeXN2L2xp
bnV4L2ludGVybmFsdHlwZXMuaAorKysgYi9ucHRsL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2lu
dGVybmFsdHlwZXMuaApAQCAtNjcsMjAgKzY3LDM4IEBAIHN0cnVjdCBwdGhyZWFkX2NvbmRhdHRy
CiB7CiAgIC8qIENvbWJpbmF0aW9uIG9mIHZhbHVlczoKIAotICAgICBCaXQgMCAgOiBmbGFnIHdo
ZXRoZXIgY29kaXRpb25hbCB2YXJpYWJsZSB3aWxsIGJlIHNoYXJlYWJsZSBiZXR3ZWVuCisgICAg
IEJpdCAwICA6IGZsYWcgd2hldGhlciBjb25kaXRpb25hbCB2YXJpYWJsZSB3aWxsIGJlIHNoYXJl
YWJsZSBiZXR3ZWVuCiAJICAgICAgcHJvY2Vzc2VzLgogCi0gICAgIEJpdCAxLTc6IGNsb2NrIElE
LiAgKi8KKyAgICAgQml0IDEtNzogY2xvY2sgSUQuCisgICAgIEJpdCA4LTk6IHByb3RvY29sLiBP
bmUgb2YgUFRIUkVBRF9QUklPX05PTkUsIFBUSFJFQURfUFJJT19JTkhFUklUCisgICAgICAgICAg
ICAgIG9yIFBUSFJFQURfUFJJT19QUk9URUNULiAgKi8KICAgaW50IHZhbHVlOwogfTsKIAogCisj
ZGVmaW5lIENPTkRBVFRSX1BTSEFSRURfTUFTSwkweDAwMDAwMDAxCisjZGVmaW5lIENPTkRBVFRS
X0NMT0NLSURfTUFTSwkweDAwMDAwMEZFCisjZGVmaW5lIENPTkRBVFRSX0NMT0NLSURfU0hJRlQJ
MQorI2RlZmluZSBDT05EQVRUUl9QUk9UT0NPTF9NQVNLCTB4MDAwMDAzMDAKKyNkZWZpbmUgQ09O
REFUVFJfUFJPVE9DT0xfU0hJRlQJOAorCisKK2VudW0geworICBDT05EX1BSSU9fSU5IRVJJVCA9
IDIsCisgIENPTkRfUFJJT19QUk9URUNUCit9OworCisKIC8qIFRoZSBfX05XQUlURVJTIGZpZWxk
IGlzIHVzZWQgYXMgYSBjb3VudGVyIGFuZCB0byBob3VzZSB0aGUgbnVtYmVyCi0gICBvZiBiaXRz
IGZvciBvdGhlciBwdXJwb3Nlcy4gIENPTkRfQ0xPQ0tfQklUUyBpcyB0aGUgbnVtYmVyCi0gICBv
ZiBiaXRzIG5lZWRlZCB0byByZXByZXNlbnQgdGhlIElEIG9mIHRoZSBjbG9jay4gIENPTkRfTldB
SVRFUlNfU0hJRlQKKyAgIG9mIGJpdHMgZm9yIG90aGVyIHB1cnBvc2VzLiAgQ09ORF9DTE9DS19N
QVNLIGRlZmluZXMgdGhlIGJpdHMgdXNlZAorICAgdG8gcmVwcmVzZW50IHRoZSBJRCBvZiB0aGUg
Y2xvY2suICBDT05EX1BST1RPQ09MX01BU0sgZGVmaW5lcyB0aGUKKyAgIGJpdHMgdXNlZCB0byBy
ZXByZXNlbnQgY29uZCBwcm90b2NvbCBhdHRyYnV0ZXMuIENPTkRfTldBSVRFUlNfU0hJRlQKICAg
IGlzIHRoZSBudW1iZXIgb2YgYml0cyByZXNlcnZlZCBmb3Igb3RoZXIgcHVycG9zZXMgbGlrZSB0
aGUgY2xvY2suICAqLwotI2RlZmluZSBDT05EX0NMT0NLX0JJVFMJCTEKLSNkZWZpbmUgQ09ORF9O
V0FJVEVSU19TSElGVAkxCisjZGVmaW5lIENPTkRfQ0xPQ0tfTUFTSwkJMHgwMDAwMDAwMQorI2Rl
ZmluZSBDT05EX1BST1RPQ09MX1NISUZUCTEKKyNkZWZpbmUgQ09ORF9QUk9UT0NPTF9NQVNLCTB4
MDAwMDAwMDYKKyNkZWZpbmUgQ09ORF9OV0FJVEVSU19TSElGVAkzCiAKIAogLyogUmVhZC13cml0
ZSBsb2NrIHZhcmlhYmxlIGF0dHJpYnV0ZSBkYXRhIHN0cnVjdHVyZS4gICovCmRpZmYgLS1naXQg
YS9ucHRsL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L3g4Nl82NC9sb3dsZXZlbGxvY2suaCBiL25w
dGwvc3lzZGVwcy91bml4L3N5c3YvbGludXgveDg2XzY0L2xvd2xldmVsbG9jay5oCmluZGV4IDli
MTViZmIuLjUxMWRlMDYgMTAwNjQ0Ci0tLSBhL25wdGwvc3lzZGVwcy91bml4L3N5c3YvbGludXgv
eDg2XzY0L2xvd2xldmVsbG9jay5oCisrKyBiL25wdGwvc3lzZGVwcy91bml4L3N5c3YvbGludXgv
eDg2XzY0L2xvd2xldmVsbG9jay5oCkBAIC0yMjMsNiArMjIzLDMxIEBAIExMTF9TVFVCX1VOV0lO
RF9JTkZPX0VORAogICB9KQogCiAKKyNkZWZpbmUgbGxsX2Z1dGV4X3dhaXRfcmVxdWV1ZV9waShj
b25kLCB2YWwsIG11dGV4LCBwcml2YXRlKSBcCisgIGxsbF9mdXRleF90aW1lZF93YWl0X3JlcXVl
dWVfcGkoY29uZCwgdmFsLCBOVUxMLCBtdXRleCwgcHJpdmF0ZSkKKworCisjZGVmaW5lIGxsbF9m
dXRleF90aW1lZF93YWl0X3JlcXVldWVfcGkoY29uZCwgdmFsLCB0aW1lb3V0LCBtdXRleCwgcHJp
dmF0ZSkgXAorICAoewkJCQkJCQkJCSAgICAgIFwKKyAgICByZWdpc3RlciBjb25zdCBzdHJ1Y3Qg
dGltZXNwZWMgKl9fdG8gX19hc20gKCJyMTAiKSA9IHRpbWVvdXQ7CSAgICAgIFwKKyAgICByZWdp
c3RlciB2b2lkICpfX211dGV4IF9fYXNtICAoInI4IikgPSBtdXRleDsJCQkgICAgICBcCisgICAg
dW5zaWduZWQgaW50ICpfX2Z1dGV4cCA9ICZjb25kLT5fX2RhdGEuX19mdXRleDsJCQkgICAgICBc
CisgICAgaW50IF9fZmxhZyA9IEZVVEVYX1dBSVRfUkVRVUVVRV9QSTsJCQkJCSAgICAgIFwKKyAg
ICBfX2ZsYWcgPSAoY29uZC0+X19kYXRhLl9fbndhaXRlcnMgJiBDT05EX0NMT0NLX01BU0spID8J
CSAgICAgIFwKKwkJICAgICAgX19mbGFnICA6IF9fZmxhZyB8IEZVVEVYX0NMT0NLX1JFQUxUSU1F
OwkJICAgICAgXAorICAgIGludCBfX3N0YXR1czsJCQkJCQkJICAgICAgXAorICAgIHJlZ2lzdGVy
IF9fdHlwZW9mICh2YWwpIF92YWwgX19hc20gKCJlZHgiKSA9ICh2YWwpOwkJCSAgICAgIFwKKyAg
ICBfX2FzbSBfX3ZvbGF0aWxlICgic3lzY2FsbCIJCQkJCQkgICAgICBcCisJCSAgICAgIDogIj1h
IiAoX19zdGF0dXMpCQkJCQkgICAgICBcCisJCSAgICAgIDogIjAiIChTWVNfZnV0ZXgpLCAiRCIg
KF9fZnV0ZXhwKSwJCSAgICAgIFwKKwkJCSJTIiAoX19sbGxfcHJpdmF0ZV9mbGFnIChfX2ZsYWcs
IHByaXZhdGUpKSwJICAgICAgXAorCQkJImQiIChfdmFsKSwgInIiIChfX3RvKSwJCQkJICAgICAg
XAorCQkJInIiIChfX211dGV4KQkJCQkJICAgICAgXAorCQkgICAgICA6ICJtZW1vcnkiLCAiY2Mi
LCAicjExIiwgImN4Iik7CQkJICAgICAgXAorICAgIF9fc3RhdHVzOwkJCQkJCQkJICAgICAgXAor
ICB9KQorCisKICNkZWZpbmUgbGxsX2Z1dGV4X3dha2UoZnV0ZXgsIG5yLCBwcml2YXRlKSBcCiAg
IGRvIHsJCQkJCQkJCQkgICAgICBcCiAgICAgaW50IF9faWdub3JlOwkJCQkJCQkgICAgICBcCkBA
IC01NTQsNiArNTc5LDIxIEBAIExMTF9TVFVCX1VOV0lORF9JTkZPX0VORAogCQkgICAgICAgOiAi
Y3giLCAicjExIiwgImNjIiwgIm1lbW9yeSIpOwkJCSAgICAgIFwKICAgICAgX19yZXMgPCAwOyB9
KQogCisvKiBSZXR1cm5zIG5vbi16ZXJvIGlmIGVycm9yIGhhcHBlbmVkLCB6ZXJvIGlmIHN1Y2Nl
c3MuICAqLworI2RlZmluZSBsbGxfZnV0ZXhfcmVxdWV1ZV9waShmdHgsIG5yX3dha2UsIG5yX21v
dmUsIG11dGV4LCB2YWwsIHByaXZhdGUpIFwKKyAgKHsgaW50IF9fcmVzOwkJCQkJCQkJICAgICAg
XAorICAgICByZWdpc3RlciBpbnQgX19ucl9tb3ZlIF9fYXNtICgicjEwIikgPSBucl9tb3ZlOwkJ
CSAgICAgIFwKKyAgICAgcmVnaXN0ZXIgdm9pZCAqX19tdXRleCBfX2FzbSAoInI4IikgPSBtdXRl
eDsJCQkgICAgICBcCisgICAgIHJlZ2lzdGVyIGludCBfX3ZhbCBfX2FzbSAoInI5IikgPSB2YWw7
CQkJCSAgICAgIFwKKyAgICAgX19hc20gX192b2xhdGlsZSAoInN5c2NhbGwiCQkJCQkgICAgICBc
CisJCSAgICAgICA6ICI9YSIgKF9fcmVzKQkJCQkJICAgICAgXAorCQkgICAgICAgOiAiMCIgKF9f
TlJfZnV0ZXgpLCAiRCIgKCh2b2lkICopIGZ0eCksCQkgICAgICBcCisJCQkgIlMiIChfX2xsbF9w
cml2YXRlX2ZsYWcgKEZVVEVYX0NNUF9SRVFVRVVFX1BJLAkgICAgICBcCisJCQkJCQkgIHByaXZh
dGUpKSwgImQiIChucl93YWtlKSwgICBcCisJCQkgInIiIChfX25yX21vdmUpLCAiciIgKF9fbXV0
ZXgpLCAiciIgKF9fdmFsKQkgICAgICBcCisJCSAgICAgICA6ICJjeCIsICJyMTEiLCAiY2MiLCAi
bWVtb3J5Iik7CQkJICAgICAgXAorICAgICBfX3JlcyA8IDA7IH0pCisKICNkZWZpbmUgbGxsX2lz
bG9ja2VkKGZ1dGV4KSBcCiAgIChmdXRleCAhPSBMTExfTE9DS19JTklUSUFMSVpFUikKIAotLSAK
MS43LjAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
              isurl="0"
          >
            <attachid>4787</attachid>
            <date>2010-05-13 08:08:00 +0000</date>
            <delta_ts>2010-05-13 08:08:18 +0000</delta_ts>
            <desc>[PATCH 2/4 V2] pi-condvars: add tst-condpi1.c, basic API test </desc>
            <filename>0002-pi-condvars-add-tst-condpi1.c-basic-API-test.patch</filename>
            <type>text/plain</type>
            <size>4734</size>
            <attacher>dvhltc</attacher>
            
              <data encoding="base64">RnJvbSBjN2NkOTkwZWIyYzMzOTZkNDM2MjBhODk3NGMzODMzNjQxNzVlMWU3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXJyZW4gSGFydCA8ZHZobHRjQHVzLmlibS5jb20+CkRhdGU6
IE1vbiwgMTAgTWF5IDIwMTAgMjA6MTc6NTEgLTA0MDAKU3ViamVjdDogW1BBVENIIDIvNF0gcGkt
Y29uZHZhcnM6IGFkZCB0c3QtY29uZHBpMS5jLCBiYXNpYyBBUEkgdGVzdAoKQSBzaW1wbGUgdGVz
dCB0aGF0IGp1c3QgY29uZmlybXMgdGhlIG5ldyBwdGhyZWFkX2NvbmRhdHRyX3NldHByb3RvY29s
X25wKCkgQVBJCnJldHVybnMgY29ycmVjdGx5LiBObyBwcmlvcml0eSBpbnZlcnNpb24gYXZvaWRh
bmNlIHRlc3RpbmcgaXMgZG9uZSBoZXJlLgoKVjI6IEZpeCBjb3B5cmlnaHQgaW4gdHN0LWNvbmRw
aTEuYwoKU2lnbmVkLW9mZi1ieTogRGFycmVuIEhhcnQgPGR2aGx0Y0B1cy5pYm0uY29tPgotLS0K
IG5wdGwvTWFrZWZpbGUgICAgICB8ICAgIDEgKwogbnB0bC90c3QtY29uZHBpMS5jIHwgIDEyMiAr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiAyIGZp
bGVzIGNoYW5nZWQsIDEyMyBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1v
ZGUgMTAwNjQ0IG5wdGwvdHN0LWNvbmRwaTEuYwoKZGlmZiAtLWdpdCBhL25wdGwvTWFrZWZpbGUg
Yi9ucHRsL01ha2VmaWxlCmluZGV4IDZkMTkxM2UuLjk2OTVlYzcgMTAwNjQ0Ci0tLSBhL25wdGwv
TWFrZWZpbGUKKysrIGIvbnB0bC9NYWtlZmlsZQpAQCAtMjA5LDYgKzIwOSw3IEBAIHRlc3RzID0g
dHN0LXR5cGVzaXplcyBcCiAJdHN0LWNvbmQ4IHRzdC1jb25kOSB0c3QtY29uZDEwIHRzdC1jb25k
MTEgdHN0LWNvbmQxMiB0c3QtY29uZDEzIFwKIAl0c3QtY29uZDE0IHRzdC1jb25kMTUgdHN0LWNv
bmQxNiB0c3QtY29uZDE3IHRzdC1jb25kMTggdHN0LWNvbmQxOSBcCiAJdHN0LWNvbmQyMCB0c3Qt
Y29uZDIxIHRzdC1jb25kMjIgdHN0LWNvbmQyMyBcCisJdHN0LWNvbmRwaTEgXAogCXRzdC1yb2J1
c3QxIHRzdC1yb2J1c3QyIHRzdC1yb2J1c3QzIHRzdC1yb2J1c3Q0IHRzdC1yb2J1c3Q1IFwKIAl0
c3Qtcm9idXN0NiB0c3Qtcm9idXN0NyB0c3Qtcm9idXN0OCB0c3Qtcm9idXN0OSBcCiAJdHN0LXJv
YnVzdHBpMSB0c3Qtcm9idXN0cGkyIHRzdC1yb2J1c3RwaTMgdHN0LXJvYnVzdHBpNCB0c3Qtcm9i
dXN0cGk1IFwKZGlmZiAtLWdpdCBhL25wdGwvdHN0LWNvbmRwaTEuYyBiL25wdGwvdHN0LWNvbmRw
aTEuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNGI4NTljCi0tLSAvZGV2
L251bGwKKysrIGIvbnB0bC90c3QtY29uZHBpMS5jCkBAIC0wLDAgKzEsMTIyIEBACisvKiBDb3B5
cmlnaHQgKEMpIDIwMDIsIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBU
aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKyAgIENvbnRyaWJ1dGVkIGJ5
IERhcnJlbiBIYXJ0IDxkdmhsdGNAdXMuaWJtLmNvbT4KKyAgIEJhc2VkIG9uIHRlc3QtY29uZDEu
YyBieSBVbHJpY2ggRHJlcHBlciA8ZHJlcHBlckByZWRoYXQuY29tPgorCisgICBUaGUgR05VIEMg
TGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGli
cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZQorICAgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEKKyAgIDAyMTExLTEz
MDcgVVNBLiAgKi8KKworI2luY2x1ZGUgPGVycm9yLmg+CisjaW5jbHVkZSA8cHRocmVhZC5oPgor
I2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8c3RkbGliLmg+CisKKworc3RhdGljIHB0aHJl
YWRfY29uZF90IGNvbmQ7CitzdGF0aWMgcHRocmVhZF9tdXRleF90IG11dDsKKworCitzdGF0aWMg
dm9pZCAqCit0ZiAodm9pZCAqcCkKK3sKKyAgaW50IGVycjsKKworICBlcnIgPSBwdGhyZWFkX211
dGV4X2xvY2sgKCZtdXQpOworICBpZiAoZXJyICE9IDApCisgICAgZXJyb3IgKEVYSVRfRkFJTFVS
RSwgZXJyLCAiY2hpbGQ6IGNhbm5vdCBnZXQgbXV0ZXgiKTsKKworICBwdXRzICgiY2hpbGQ6IGdv
dCBtdXRleDsgc2lnbmFsbGluZyIpOworCisgIHB0aHJlYWRfY29uZF9zaWduYWwgKCZjb25kKTsK
KworICBwdXRzICgiY2hpbGQ6IHVubG9jayIpOworCisgIGVyciA9IHB0aHJlYWRfbXV0ZXhfdW5s
b2NrICgmbXV0KTsKKyAgaWYgKGVyciAhPSAwKQorICAgIGVycm9yIChFWElUX0ZBSUxVUkUsIGVy
ciwgImNoaWxkOiBjYW5ub3QgdW5sb2NrIik7CisKKyAgcHV0cyAoImNoaWxkOiBkb25lIik7CisK
KyAgcmV0dXJuIE5VTEw7Cit9CisKKworc3RhdGljIGludAorZG9fdGVzdCAodm9pZCkKK3sKKyAg
cHRocmVhZF90IHRoOworICBpbnQgZXJyOworCisgIHB0aHJlYWRfbXV0ZXhhdHRyX3QgbWE7Cisg
IHB0aHJlYWRfY29uZGF0dHJfdCBjYTsKKworICBwcmludGYgKCImY29uZCA9ICVwXG4mbXV0ID0g
JXBcbiIsICZjb25kLCAmbXV0KTsKKworICBwdXRzICgicGFyZW50OiBzZXR1cCBjb25kdmFyIik7
CisKKyAgZXJyID0gcHRocmVhZF9jb25kYXR0cl9pbml0KCZjYSk7CisgIGlmIChlcnIgIT0gMCkK
KyAgICBlcnJvciAoRVhJVF9GQUlMVVJFLCBlcnIsICJwYXJlbnQ6IGZhaWxlZCB0byBpbml0IGNv
bmRhdHRyIik7CisgIGVyciA9IHB0aHJlYWRfY29uZGF0dHJfc2V0cHJvdG9jb2xfbnAoJmNhLCBQ
VEhSRUFEX1BSSU9fSU5IRVJJVCk7CisgIGlmIChlcnIgIT0gMCkKKyAgICBlcnJvciAoRVhJVF9G
QUlMVVJFLCBlcnIsICJwYXJlbnQ6IGZhaWxlZCB0byBzZXQgY29uZGF0dHIgcHJvdG9jb2wiKTsK
KyAgZXJyID0gcHRocmVhZF9jb25kX2luaXQoJmNvbmQsICZjYSk7CisgIGlmIChlcnIgIT0gMCkK
KyAgICBlcnJvciAoRVhJVF9GQUlMVVJFLCBlcnIsICJwYXJlbnQ6IGZhaWxlZCB0byBpbml0IGNv
bmR2YXIiKTsKKworICBwdXRzICgicGFyZW50OiBzZXR1cCBtdXRleCIpOworICAKKyAgZXJyID0g
cHRocmVhZF9tdXRleGF0dHJfaW5pdCgmbWEpOworICBpZiAoZXJyICE9IDApCisgICAgZXJyb3Ig
KEVYSVRfRkFJTFVSRSwgZXJyLCAicGFyZW50OiBmYWlsZWQgdG8gaW5pdCBtdXRleGF0dHIiKTsK
KyAgZXJyID0gcHRocmVhZF9tdXRleGF0dHJfc2V0cHJvdG9jb2woJm1hLCBQVEhSRUFEX1BSSU9f
SU5IRVJJVCk7CisgIGlmIChlcnIgIT0gMCkKKyAgICBlcnJvciAoRVhJVF9GQUlMVVJFLCBlcnIs
ICJwYXJlbnQ6IGZhaWxlZCB0byBzZXQgbXV0ZXhhdHRyIHByb3RvY29sIik7CisgIGVyciA9IHB0
aHJlYWRfbXV0ZXhfaW5pdCgmbXV0LCAmbWEpOworICBpZiAoZXJyICE9IDApCisgICAgZXJyb3Ig
KEVYSVRfRkFJTFVSRSwgZXJyLCAicGFyZW50OiBmYWlsZWQgdG8gaW5pdCBtdXRleCIpOworCisg
IHB1dHMgKCJwYXJlbnQ6IGdldCBtdXRleCIpOworCisgIGVyciA9IHB0aHJlYWRfbXV0ZXhfbG9j
ayAoJm11dCk7CisgIGlmIChlcnIgIT0gMCkKKyAgICBlcnJvciAoRVhJVF9GQUlMVVJFLCBlcnIs
ICJwYXJlbnQ6IGNhbm5vdCBnZXQgbXV0ZXgiKTsKKworICBwdXRzICgicGFyZW50OiBjcmVhdGUg
Y2hpbGQiKTsKKworICBlcnIgPSBwdGhyZWFkX2NyZWF0ZSAoJnRoLCBOVUxMLCB0ZiwgTlVMTCk7
CisgIGlmIChlcnIgIT0gMCkKKyAgICBlcnJvciAoRVhJVF9GQUlMVVJFLCBlcnIsICJwYXJlbnQ6
IGNhbm5vdCBjcmVhdGUgdGhyZWFkIik7CisKKyAgcHV0cyAoInBhcmVudDogd2FpdCBmb3IgY29u
ZGl0aW9uIik7CisKKyAgZXJyID0gcHRocmVhZF9jb25kX3dhaXQgKCZjb25kLCAmbXV0KTsKKyAg
aWYgKGVyciAhPSAwKQorICAgIGVycm9yIChFWElUX0ZBSUxVUkUsIGVyciwgInBhcmVudDogY2Fu
bm90IHdhaXQgZmlyIHNpZ25hbCIpOworCisgIHB1dHMgKCJwYXJlbnQ6IGdvdCBzaWduYWwiKTsK
KworICBlcnIgPSBwdGhyZWFkX2pvaW4gKHRoLCBOVUxMKTsKKyAgaWYgKGVyciAhPSAwKQorICAg
IGVycm9yIChFWElUX0ZBSUxVUkUsIGVyciwgInBhcmVudDogZmFpbGVkIHRvIGpvaW4iKTsKKwor
ICBwdXRzICgiZG9uZSIpOworCisgIHJldHVybiAwOworfQorCisKKyNkZWZpbmUgVEVTVF9GVU5D
VElPTiBkb190ZXN0ICgpCisjaW5jbHVkZSAiLi4vdGVzdC1za2VsZXRvbi5jIgotLSAKMS43LjAu
NAoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
              isurl="0"
          >
            <attachid>4788</attachid>
            <date>2010-05-13 08:10:00 +0000</date>
            <delta_ts>2010-05-13 08:10:40 +0000</delta_ts>
            <desc>[PATCH 3/4 V2] pi-condvars: add tst-condpi2.c, priority inversion avoidance test </desc>
            <filename>0003-pi-condvars-add-tst-condpi2.c-priority-inversion-avo.patch</filename>
            <type>text/plain</type>
            <size>11234</size>
            <attacher>dvhltc</attacher>
            
              <data encoding="base64">RnJvbSBmYzY3YzA4NTFhNjI5ODU2ZGU4OTJhMWVjZDFlYzUwNDc3ZjhjYTk3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXJyZW4gSGFydCA8ZHZobHRjQHVzLmlibS5jb20+CkRhdGU6
IFdlZCwgMTIgTWF5IDIwMTAgMTI6MzM6MzIgLTA3MDAKU3ViamVjdDogW1BBVENIIDMvNF0gcGkt
Y29uZHZhcnM6IGFkZCB0c3QtY29uZHBpMi5jLCBwcmlvcml0eSBpbnZlcnNpb24gYXZvaWRhbmNl
IHRlc3QKCkNyZWF0ZSBhIHByaW9yaXR5IGludmVyc2lvbiBvbiBhIGNvbmR2YXIncyBpbnRlcm5h
bCBsb2NrLiBJZgp0aGUgbmV3IHBpIGNvbmR2YXJzIGFyZSB3b3JraW5nIGNvcnJlY3RseSwgdGhl
IGxvdyBwcmlvcml0eQp0aHJlYWRzIHdpbGwgYmUgcHJpb3JpdHkgYm9vc3RlZCBhbmQgdGhlIGlu
dmVyc2lvbiBpcyBxdWlja2x5CnJlY3RpZmllZCAoYm91bmRlZCkuIEluIHRoZSBldmVudCB0aGF0
IHRoZSBwaSBjb25kdmFycyBkbyBub3QKd29yayBwcm9wZXJseSwgdGhlIHRlc3Qgd2lsbCB0aW1l
b3V0IGluIDIgc2Vjb25kcy4KClNpZ25lZC1vZmYtYnk6IERhcnJlbiBIYXJ0IDxkdmhsdGNAdXMu
aWJtLmNvbT4KLS0tCiBucHRsL01ha2VmaWxlICAgICAgfCAgICAyICstCiBucHRsL3RzdC1jb25k
cGkyLmMgfCAgMjkyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMjkzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb25z
KC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgbnB0bC90c3QtY29uZHBpMi5jCgpkaWZmIC0tZ2l0IGEv
bnB0bC9NYWtlZmlsZSBiL25wdGwvTWFrZWZpbGUKaW5kZXggOTY5NWVjNy4uOGI5ZjY4MSAxMDA2
NDQKLS0tIGEvbnB0bC9NYWtlZmlsZQorKysgYi9ucHRsL01ha2VmaWxlCkBAIC0yMDksNyArMjA5
LDcgQEAgdGVzdHMgPSB0c3QtdHlwZXNpemVzIFwKIAl0c3QtY29uZDggdHN0LWNvbmQ5IHRzdC1j
b25kMTAgdHN0LWNvbmQxMSB0c3QtY29uZDEyIHRzdC1jb25kMTMgXAogCXRzdC1jb25kMTQgdHN0
LWNvbmQxNSB0c3QtY29uZDE2IHRzdC1jb25kMTcgdHN0LWNvbmQxOCB0c3QtY29uZDE5IFwKIAl0
c3QtY29uZDIwIHRzdC1jb25kMjEgdHN0LWNvbmQyMiB0c3QtY29uZDIzIFwKLQl0c3QtY29uZHBp
MSBcCisJdHN0LWNvbmRwaTEgdHN0LWNvbmRwaTIgXAogCXRzdC1yb2J1c3QxIHRzdC1yb2J1c3Qy
IHRzdC1yb2J1c3QzIHRzdC1yb2J1c3Q0IHRzdC1yb2J1c3Q1IFwKIAl0c3Qtcm9idXN0NiB0c3Qt
cm9idXN0NyB0c3Qtcm9idXN0OCB0c3Qtcm9idXN0OSBcCiAJdHN0LXJvYnVzdHBpMSB0c3Qtcm9i
dXN0cGkyIHRzdC1yb2J1c3RwaTMgdHN0LXJvYnVzdHBpNCB0c3Qtcm9idXN0cGk1IFwKZGlmZiAt
LWdpdCBhL25wdGwvdHN0LWNvbmRwaTIuYyBiL25wdGwvdHN0LWNvbmRwaTIuYwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTRlMGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvbnB0
bC90c3QtY29uZHBpMi5jCkBAIC0wLDAgKzEsMjkyIEBACisvKiBDb3B5cmlnaHQgKEMpIDIwMDIg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0
aGUgR05VIEMgTGlicmFyeS4KKyAgIENvbnRyaWJ1dGVkIGJ5IERhcnJlbiBIYXJ0IDxkdmhsdGNA
dXMuaWJtLmNvbT4KKyAgIEJhc2VkIG9uIHB0aHJlYWRfY29uZF9oYW5nLmMgYnkgRGluYWthciBH
dW5pZ3VudGFsYSA8ZGlub0Bpbi5pYm0uY29tPgorCisgICBUaGUgR05VIEMgTGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAgIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAgIExp
Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl
cgorICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisKKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAg
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZQorICAgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVt
cGxlIFBsYWNlLCBTdWl0ZSAzMzAsIEJvc3RvbiwgTUEKKyAgIDAyMTExLTEzMDcgVVNBLiAgKi8K
KworCisjaW5jbHVkZSA8ZXJyb3IuaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPHB0
aHJlYWQuaD4KKyNpbmNsdWRlIDxzY2hlZC5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisjaW5jbHVk
ZSA8c3RkbGliLmg+CisjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8dGltZS5oPgorI2lu
Y2x1ZGUgPHN5cy90aW1lLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKyNkZWZpbmUgTE9XX1BS
SU8gIDEKKyNkZWZpbmUgTUVEX1BSSU8gIDIKKyNkZWZpbmUgSElHSF9QUklPIDMKKyNkZWZpbmUg
TUFJTl9QUklPIDQKKworc3RhdGljIHB0aHJlYWRfY29uZF90IHJhY2VfdmFyOworc3RhdGljIHB0
aHJlYWRfbXV0ZXhfdCByYWNlX211dDsKKworc3RhdGljIHB0aHJlYWRfY29uZF90IHNpZzEsIHNp
ZzIsIHNpZzM7CitzdGF0aWMgcHRocmVhZF9tdXRleF90IG0xLCBtMiwgbTM7CisKK3N0YXRpYyB2
b2xhdGlsZSB1bnNpZ25lZCBpbnQgZG9uZSA9IDA7CisKK3N0YXRpYyB2b2lkICoKK2xvd190ZiAo
dm9pZCAqcCkKK3sKKyAgaW50IGVycjsKKyAgCisgIC8qIFdhaXQgZm9yIGRvX3Rlc3QgdG8gc3Rh
cnQgYWxsIHRoZSB0aHJlYWRzLiAgKi8KKyAgZXJyID0gcHRocmVhZF9tdXRleF9sb2NrICgmbTEp
OworICBpZiAoZXJyICE9IDApCisgICAgZXJyb3IgKEVYSVRfRkFJTFVSRSwgZXJyLCAibG93X3Rm
OiBmYWlsZWQgdG8gbG9jayBtMSIpOworICBlcnIgPSBwdGhyZWFkX2NvbmRfd2FpdCAoJnNpZzEs
ICZtMSk7CisgIGlmIChlcnIgIT0gMCkKKyAgICBlcnJvciAoRVhJVF9GQUlMVVJFLCBlcnIsICJs
b3dfdGY6IGNvbmRfd2FpdCBmYWlsZWQgb24gc2lnMSIpOworCisgIGVyciA9IHB0aHJlYWRfbXV0
ZXhfbG9jayAoJnJhY2VfbXV0KTsKKyAgaWYgKGVyciAhPSAwKQorICAgIGVycm9yIChFWElUX0ZB
SUxVUkUsIGVyciwgImxvd190ZjogZmFpbGVkIHRvIGxvY2sgcmFjZV9tdXQiKTsKKworICBwdXRz
ICgibG93X3RmOiBsb2NrZWQiKTsKKworICAvKiBTaWduYWwgdGhlIGhpZ2hfdGYgdGhhdCB3ZSBo
YXZlIHRoZSByYWNlX211dCwgaXQgd2lsbCBwcmVlbXB0IHVzIHVudGlsIGl0CisgICAqIGJsb2Nr
cyBvbiByYWNlX211dC4gICovCisgIGVyciA9IHB0aHJlYWRfY29uZF9zaWduYWwgKCZzaWcyKTsK
KyAgaWYgKGVyciAhPSAwKQorICAgIGVycm9yIChFWElUX0ZBSUxVUkUsIGVyciwgImxvd190Zjog
ZmFpbGVkIHRvIHNpZ25hbCBzaWcyIik7CisKKyAgLyogcHRocmVhZF9jb25kX3dhaXQoKSBob2xk
cyB0aGUgY29uZF9sb2NrIHdoZW4gaXQgdW5sb2NrcyByYWNlX211dC4gIGhpZ2hfdGYKKyAgICAg
d2lsbCBwcmVlbXB0IHVzIGJlZm9yZSB3ZSBjYW4gcmVsZWFzZSB0aGUgY29uZF9sb2NrLiAgSXQg
d2lsbCBzaWduYWwgbWVkX3RmCisgICAgIHdoaWNoIHdpbGwgY29udGludWUgdG8gYmxvY2sgdXMg
YWZ0ZXIgaGlnaF90ZiB0cmllcyB0byBibG9jayBvbiByYWNlX3ZhciBpZgorICAgICBpdCBpc24n
dCBQVEhSRUFEX1BSSU9fSU5IRVJJVCwgYW5kIHRoZSBjb25kX2xvY2sgd2lsbCBuZXZlciBiZSBy
ZWxlYXNlZC4gICovCisgIGVyciA9IHB0aHJlYWRfY29uZF93YWl0ICgmcmFjZV92YXIsICZyYWNl
X211dCk7CisgIGlmIChlcnIgIT0gMCkKKyAgICBlcnJvciAoRVhJVF9GQUlMVVJFLCBlcnIsICJs
b3dfdGY6IGNvbmRfd2FpdCBmYWlsZWQgb24gcmFjZV92YXIiKTsKKworICBwdXRzICgibG93X3Rm
OiBkb25lIHdhaXRpbmciKTsKKworICBlcnIgPSBwdGhyZWFkX211dGV4X3VubG9jayAoJnJhY2Vf
bXV0KTsKKyAgaWYgKGVyciAhPSAwKQorICAgIGVycm9yIChFWElUX0ZBSUxVUkUsIGVyciwgImxv
d190ZjogZmFpbGVkIHRvIHVubG9jayByYWNlX211dCIpOworCisgIHJldHVybiBOVUxMOworfQor
CitzdGF0aWMgdm9pZCAqCitoaWdoX3RmICh2b2lkICpwKQoreworICBpbnQgZXJyOworCisgIGVy
ciA9IHB0aHJlYWRfbXV0ZXhfbG9jayAoJm0yKTsKKyAgaWYgKGVyciAhPSAwKQorICAgIGVycm9y
IChFWElUX0ZBSUxVUkUsIGVyciwgImhpZ2hfdGY6IGZhaWxlZCB0byBsb2NrIG0yIik7CisKKyAg
LyogV2FpdCBmb3IgbG93X3RmIHRvIHRha2UgcmFjZV9tdXQgYW5kIHNpZ25hbCB1cy4gIFdlIHdp
bGwgcHJlZW1wdCBsb3dfdGYKKyAgICogdW50aWwgd2UgYmxvY2sgb24gcmFjZV9tdXQgYmVsb3cu
ICAqLworICBlcnIgPSBwdGhyZWFkX2NvbmRfd2FpdCAoJnNpZzIsICZtMik7CisgIGlmIChlcnIg
IT0gMCkKKyAgICBlcnJvciAoRVhJVF9GQUlMVVJFLCBlcnIsICJoaWdoX3RmOiBjb25kX3dhaXQg
ZmFpbGVkIG9uIHNpZzIiKTsKKworICAvKiBXYWl0IGZvciBsb3dfdGYgdG8gcmVsZWFzZSB0aGUg
bG9jayBhcyBpdCB3YWl0cyBvbiByYWNlX3Zhci4gICovCisgIGVyciA9IHB0aHJlYWRfbXV0ZXhf
bG9jayAoJnJhY2VfbXV0KTsKKyAgaWYgKGVyciAhPSAwKQorICAgIGVycm9yIChFWElUX0ZBSUxV
UkUsIGVyciwgImhpZ2hfdGY6IGZhaWxlZCB0byBsb2NrIHJhY2VfbXV0Iik7CisKKyAgcHV0cyAo
ImhpZ2hfdGY6IGxvY2tlZCIpOworCisgIC8qIFNpZ25hbCB0aGUgbWVkX3RmIHRvIHN0YXJ0IHNw
aW5uaW5nLiAgKi8KKyAgZXJyID0gcHRocmVhZF9jb25kX3NpZ25hbCAoJnNpZzMpOworICBpZiAo
ZXJyICE9IDApCisgICAgZXJyb3IgKEVYSVRfRkFJTFVSRSwgZXJyLCAiaGlnaF90ZjogZmFpbGVk
IHRvIHNpZ25hbCBzaWczIik7CisKKyAgLyogSWYgdGhlIHJhY2VfdmFyIGlzbid0IFBUSFJFQURf
UFJJT19JTkhFUklULCB3ZSB3aWxsIGJsb2NrIG9uIHRoZQorICAgICByYWNlX3ZhciBjb25kX2xv
Y2sgd2FpdGluZyBmb3IgdGhlIGxvd190ZiB0byByZWxlYXNlIGl0IGluIGl0J3MKKyAgICAgcHRo
cmVhZF9jb25kX3dhaXQoJnJhY2VfdmFyLCAmcmFjZV9tdXQpIGNhbGwuICAqLworICBlcnIgPSBw
dGhyZWFkX2NvbmRfd2FpdCAoJnJhY2VfdmFyLCAmcmFjZV9tdXQpOworICBpZiAoZXJyICE9IDAp
CisgICAgZXJyb3IgKEVYSVRfRkFJTFVSRSwgZXJyLCAiaGlnaF90ZjogY29uZF93YWl0IGZhaWxl
ZCBvbiByYWNlX3ZhciIpOworCisgIHB1dHMgKCJoaWdoX3RmOiBkb25lIHdhaXRpbmciKTsKKwor
ICBlcnIgPSBwdGhyZWFkX211dGV4X3VubG9jayAoJnJhY2VfbXV0KTsKKyAgaWYgKGVyciAhPSAw
KQorICAgIGVycm9yIChFWElUX0ZBSUxVUkUsIGVyciwgImhpZ2hfdGY6IGZhaWxlZCB0byB1bmxv
Y2sgcmFjZV9tdXQiKTsKKworICBkb25lID0gMTsKKyAgcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRp
YyB2b2lkICoKK21lZF90ZiAodm9pZCAqcCkKK3sKKyAgaW50IGVycjsKKworICBlcnIgPSBwdGhy
ZWFkX211dGV4X2xvY2sgKCZtMyk7CisgIGlmIChlcnIgIT0gMCkKKyAgICBlcnJvciAoRVhJVF9G
QUlMVVJFLCBlcnIsICJtZWRfdGY6IGZhaWxlZCB0byBsb2NrIG0zIik7CisKKyAgLyogV2FpdCBm
b3IgaGlnaF90ZiB0byBzaWduYWwgdXMuICAqLworICBlcnIgPSBwdGhyZWFkX2NvbmRfd2FpdCAo
JnNpZzMsICZtMyk7CisgIGlmIChlcnIgIT0gMCkKKyAgICBlcnJvciAoRVhJVF9GQUlMVVJFLCBl
cnIsICJtZWRfdGY6IGNvbmRfd2FpdCBmYWlsZWQgb24gc2lnMyIpOworCisgIHB1dHMgKCJtZWRf
dGY6IHNwaW5uaW5nIik7CisKKyAgd2hpbGUgKCFkb25lKQorICAgICAgICAgIC8qIEJ1c3kgd2Fp
dCB0byBibG9jayBsb3cgdGhyZWFkcy4gICovOworCisgIHB1dHMgKCJtZWRfdGY6IGRvbmUgc3Bp
bm5pbmciKTsKKworICByZXR1cm4gTlVMTDsKK30KKworc3RhdGljIGludAorZG9fdGVzdCAodm9p
ZCkKK3sKKyAgcHRocmVhZF90IGxvd190aHJlYWQ7CisgIHB0aHJlYWRfdCBtZWRfdGhyZWFkOwor
ICBwdGhyZWFkX3QgaGlnaF90aHJlYWQ7CisgIHN0cnVjdCBzY2hlZF9wYXJhbSBwYXJhbTsKKyAg
cHRocmVhZF9hdHRyX3QgYXR0cjsKKyAgcHRocmVhZF9tdXRleGF0dHJfdCBtX2F0dHI7CisgIHB0
aHJlYWRfY29uZGF0dHJfdCBjX2F0dHI7CisgIGNwdV9zZXRfdCBjc2V0OworCisgIGludCBlcnI7
CisKKworICAvKiBJbml0aWFsaXplIG11dGV4ZXMgYW5kIGNvbmR2YXJzLiAgKi8KKworICBlcnIg
PSBwdGhyZWFkX2F0dHJfaW5pdCAoJmF0dHIpOworICBpZiAoZXJyICE9IDApCisgICAgZXJyb3Ig
KEVYSVRfRkFJTFVSRSwgZXJyLCAicGFyZW50OiBmYWlsZWQgdG8gaW5pdCBwdGhyZWFkX2F0dHIi
KTsKKyAgZXJyID0gcHRocmVhZF9hdHRyX3NldGluaGVyaXRzY2hlZCAoJmF0dHIsIFBUSFJFQURf
RVhQTElDSVRfU0NIRUQpOworICBpZiAoZXJyICE9IDApCisgICAgZXJyb3IgKEVYSVRfRkFJTFVS
RSwgZXJyLCAicGFyZW50OiBmYWlsZWQgdG8gc2V0IGF0dHIgaW5oZXJpdHNjaGVkIik7CisgIGVy
ciA9IHB0aHJlYWRfYXR0cl9zZXRzY2hlZHBvbGljeSAoJmF0dHIsIFNDSEVEX0ZJRk8pOworICBp
ZiAoZXJyICE9IDApCisgICAgZXJyb3IgKEVYSVRfRkFJTFVSRSwgZXJyLCAicGFyZW50OiBmYWls
ZWQgdG8gc2V0IGF0dHIgc2NoZWRwb2xpY3kiKTsKKworICBlcnIgPSBwdGhyZWFkX2NvbmRhdHRy
X2luaXQgKCZjX2F0dHIpOworICBpZiAoZXJyICE9IDApCisgICAgZXJyb3IgKEVYSVRfRkFJTFVS
RSwgZXJyLCAicGFyZW50OiBmYWlsZWQgdG8gaW5pdCBjb25kYXR0ciIpOworCisgIGVyciA9IHB0
aHJlYWRfY29uZGF0dHJfc2V0cHJvdG9jb2xfbnAgKCZjX2F0dHIsIFBUSFJFQURfUFJJT19JTkhF
UklUKTsKKyAgaWYgKGVyciAhPSAwKQorICAgIGVycm9yIChFWElUX0ZBSUxVUkUsIGVyciwgInBh
cmVudDogZmFpbGVkIHRvIHNldCBjb25kYXR0ciBwcm90b2NvbCIpOworCisgIGVyciA9IHB0aHJl
YWRfY29uZF9pbml0ICgmc2lnMSwgJmNfYXR0cik7CisgIGlmIChlcnIgIT0gMCkKKyAgICBlcnJv
ciAoRVhJVF9GQUlMVVJFLCBlcnIsICJwYXJlbnQ6IGZhaWxlZCB0byBpbml0IGNvbmQgc2lnMSIp
OworICBlcnIgPSBwdGhyZWFkX2NvbmRfaW5pdCAoJnNpZzIsICZjX2F0dHIpOworICBpZiAoZXJy
ICE9IDApCisgICAgZXJyb3IgKEVYSVRfRkFJTFVSRSwgZXJyLCAicGFyZW50OiBmYWlsZWQgdG8g
aW5pdCBjb25kIHNpZzIiKTsKKyAgZXJyID0gcHRocmVhZF9jb25kX2luaXQgKCZzaWczLCAmY19h
dHRyKTsKKyAgaWYgKGVyciAhPSAwKQorICAgIGVycm9yIChFWElUX0ZBSUxVUkUsIGVyciwgInBh
cmVudDogZmFpbGVkIHRvIGluaXQgY29uZCBzaWczIik7CisgIGVyciA9IHB0aHJlYWRfY29uZF9p
bml0ICgmcmFjZV92YXIsICZjX2F0dHIpOworICBpZiAoZXJyICE9IDApCisgICAgZXJyb3IgKEVY
SVRfRkFJTFVSRSwgZXJyLCAicGFyZW50OiBmYWlsZWQgdG8gaW5pdCBjb25kIHJhY2VfdmFyIik7
CisKKyAgZXJyID0gcHRocmVhZF9tdXRleGF0dHJfaW5pdCAoJm1fYXR0cik7CisgIGlmIChlcnIg
IT0gMCkKKyAgICBlcnJvciAoRVhJVF9GQUlMVVJFLCBlcnIsICJwYXJlbnQ6IGZhaWxlZCB0byBp
bml0IG11dGV4YXR0ciIpOworICBlcnIgPSBwdGhyZWFkX211dGV4YXR0cl9zZXRwcm90b2NvbCAo
Jm1fYXR0ciwgUFRIUkVBRF9QUklPX0lOSEVSSVQpOworICBpZiAoZXJyICE9IDApCisgICAgZXJy
b3IgKEVYSVRfRkFJTFVSRSwgZXJyLCAicGFyZW50OiBmYWlsZWQgdG8gc2V0IG11dGV4YXR0ciBw
cm90b2NvbCIpOworICBlcnIgPSBwdGhyZWFkX211dGV4X2luaXQgKCZtMSwgJm1fYXR0cik7Cisg
IGlmIChlcnIgIT0gMCkKKyAgICBlcnJvciAoRVhJVF9GQUlMVVJFLCBlcnIsICJwYXJlbnQ6IGZh
aWxlZCB0byBpbml0IG11dGV4IG0xIik7CisgIGVyciA9IHB0aHJlYWRfbXV0ZXhfaW5pdCAoJm0y
LCAmbV9hdHRyKTsKKyAgaWYgKGVyciAhPSAwKQorICAgIGVycm9yIChFWElUX0ZBSUxVUkUsIGVy
ciwgInBhcmVudDogZmFpbGVkIHRvIGluaXQgbXV0ZXggbTIiKTsKKyAgZXJyID0gcHRocmVhZF9t
dXRleF9pbml0ICgmbTMsICZtX2F0dHIpOworICBpZiAoZXJyICE9IDApCisgICAgZXJyb3IgKEVY
SVRfRkFJTFVSRSwgZXJyLCAicGFyZW50OiBmYWlsZWQgdG8gaW5pdCBtdXRleCBtMyIpOworICBl
cnIgPSBwdGhyZWFkX211dGV4X2luaXQgKCZyYWNlX211dCwgJm1fYXR0cik7CisgIGlmIChlcnIg
IT0gMCkKKyAgICBlcnJvciAoRVhJVF9GQUlMVVJFLCBlcnIsICJwYXJlbnQ6IGZhaWxlZCB0byBp
bml0IG11dGV4IHJhY2VfbXV0Iik7CisKKyAgLyogU2V0dXAgc2NoZWR1bGluZyBwYXJhbWV0ZXJz
IGFuZCBjcmVhdGUgdGhyZWFkcy4gICovCisgIHBhcmFtLnNjaGVkX3ByaW9yaXR5ID0gTUFJTl9Q
UklPOworICBlcnIgPSBzY2hlZF9zZXRzY2hlZHVsZXIgKDAsIFNDSEVEX0ZJRk8sICZwYXJhbSk7
CisgIGlmIChlcnIgIT0gMCkKKyAgICBlcnJvciAoRVhJVF9GQUlMVVJFLCBlcnIsICJwYXJlbnQ6
IGZhaWxlZCB0byBzZXQgc2NoZWR1bGVyIHBvbGljeSIpOworCisgIENQVV9aRVJPICgmY3NldCk7
CisgIENQVV9TRVQgKDAsICZjc2V0KTsKKyAgZXJyID0gc2NoZWRfc2V0YWZmaW5pdHkgKDAsIHNp
emVvZiAoY3B1X3NldF90KSwgJmNzZXQpOworICBpZiAoZXJyICE9IDApCisgICAgZXJyb3IgKEVY
SVRfRkFJTFVSRSwgZXJyLCAicGFyZW50OiBmYWlsZWQgdG8gc2V0IENQVSBhZmZpbml0eSIpOwor
CisgIHBhcmFtLnNjaGVkX3ByaW9yaXR5ID0gTE9XX1BSSU87CisgIGVyciA9IHB0aHJlYWRfYXR0
cl9zZXRzY2hlZHBhcmFtICgmYXR0ciwgJnBhcmFtKTsKKyAgaWYgKGVyciAhPSAwKQorICAgIGVy
cm9yIChFWElUX0ZBSUxVUkUsIGVyciwgInBhcmVudDogZmFpbGVkIHRvIHNldCBzY2hlZCBwYXJh
bSBmb3IgbG93X3RmIik7CisgIGVyciA9IHB0aHJlYWRfY3JlYXRlICgmbG93X3RocmVhZCwgJmF0
dHIsIGxvd190ZiwgKHZvaWQqKU5VTEwpOworICBpZiAoZXJyICE9IDApCisgICAgZXJyb3IgKEVY
SVRfRkFJTFVSRSwgZXJyLCAicGFyZW50OiBmYWlsZWQgdG8gY3JlYXRlIGxvd190ZiIpOworCisg
IHBhcmFtLnNjaGVkX3ByaW9yaXR5ID0gTUVEX1BSSU87CisgIGVyciA9IHB0aHJlYWRfYXR0cl9z
ZXRzY2hlZHBhcmFtICgmYXR0ciwgJnBhcmFtKTsKKyAgaWYgKGVyciAhPSAwKQorICAgIGVycm9y
IChFWElUX0ZBSUxVUkUsIGVyciwgInBhcmVudDogZmFpbGVkIHRvIHNldCBzY2hlZCBwYXJhbSBm
b3IgbWVkX3RmIik7CisgIHB0aHJlYWRfY3JlYXRlICgmbWVkX3RocmVhZCwgJmF0dHIsIG1lZF90
ZiwgKHZvaWQqKU5VTEwpOworICBpZiAoZXJyICE9IDApCisgICAgZXJyb3IgKEVYSVRfRkFJTFVS
RSwgZXJyLCAicGFyZW50OiBmYWlsZWQgdG8gY3JlYXRlIG1lZF90ZiIpOworCisgIHBhcmFtLnNj
aGVkX3ByaW9yaXR5ID0gSElHSF9QUklPOworICBlcnIgPSBwdGhyZWFkX2F0dHJfc2V0c2NoZWRw
YXJhbSAoJmF0dHIsICZwYXJhbSk7CisgIGlmIChlcnIgIT0gMCkKKyAgICBlcnJvciAoRVhJVF9G
QUlMVVJFLCBlcnIsICJwYXJlbnQ6IGZhaWxlZCB0byBzZXQgc2NoZWQgcGFyYW0gZm9yIGhpZ2hf
dGYiKTsKKyAgZXJyID0gcHRocmVhZF9jcmVhdGUgKCZoaWdoX3RocmVhZCwgJmF0dHIsIGhpZ2hf
dGYsICh2b2lkKilOVUxMKTsKKyAgaWYgKGVyciAhPSAwKQorICAgIGVycm9yIChFWElUX0ZBSUxV
UkUsIGVyciwgInBhcmVudDogZmFpbGVkIHRvIGNyZWF0ZSBoaWdoX3RmIik7CisKKyAgLyogV2Fp
dCBmb3IgdGhlIHRocmVhZHMgdG8gc3RhcnQgYW5kIGJsb2NrIG9uIHRoZWlyIHJlc3BlY3RpdmUg
Y29uZHZhcnMuICAqLworICB1c2xlZXAgKDEwMDApOworICBlcnIgPSBwdGhyZWFkX2NvbmRfc2ln
bmFsICgmc2lnMSk7CisgIGlmIChlcnIgIT0gMCkKKyAgICBlcnJvciAoRVhJVF9GQUlMVVJFLCBl
cnIsICJwYXJlbnQ6IGZhaWxlZCB0byBzaWduYWwgY29uZGl0aW9uIik7CisKKyAgLyogV2FrZSBs
b3dfdGYgYW5kIGhpZ2hfdGYsIGFsbG93aW5nIHRoZW0gdG8gY29tcGxldGUuICBJZiByYWNlX3Zh
ciBpcyBub3QKKyAgICAgUFRIUkVBRF9QUklPX0lOSEVSSVQsIGxvd190ZiB3aWxsIG5vdCBoYXZl
IHJlbGVhc2VkIHRoZSByYWNlX3ZhciBjb25kX2xvY2sKKyAgICAgYW5kIG5laXRoZXIgdGhyZWFk
IHdpbGwgaGF2ZSB3YWl0ZWQgb24gcmFjZV92YXIuICAqLworICB1c2xlZXAgKDEwMDApOworICBl
cnIgPSBwdGhyZWFkX2NvbmRfYnJvYWRjYXN0ICgmcmFjZV92YXIpOworICBpZiAoZXJyICE9IDAp
CisgICAgZXJyb3IgKEVYSVRfRkFJTFVSRSwgZXJyLCAicGFyZW50OiBmYWlsZWQgdG8gYnJvYWRj
YXN0IGNvbmRpdGlvbiIpOworCisgIC8qIFdhaXQgZm9yIHRocmVhZHMgdG8gY29tcGxldGUuICAq
LworICBlcnIgPSBwdGhyZWFkX2pvaW4gKGxvd190aHJlYWQsICh2b2lkKiopIE5VTEwpOworICBp
ZiAoZXJyICE9IDApCisgICAgZXJyb3IgKEVYSVRfRkFJTFVSRSwgZXJyLCAiam9pbiBvZiBsb3df
dGYgZmFpbGVkIik7CisgIGVyciA9IHB0aHJlYWRfam9pbiAobWVkX3RocmVhZCwgKHZvaWQqKikg
TlVMTCk7CisgIGlmIChlcnIgIT0gMCkKKyAgICBlcnJvciAoRVhJVF9GQUlMVVJFLCBlcnIsICJq
b2luIG9mIG1lZF90ZiBmYWlsZWQiKTsKKyAgZXJyID0gcHRocmVhZF9qb2luIChoaWdoX3RocmVh
ZCwgKHZvaWQqKikgTlVMTCk7CisgIGlmIChlcnIgIT0gMCkKKyAgICBlcnJvciAoRVhJVF9GQUlM
VVJFLCBlcnIsICJqb2luIG9mIGhpZ2hfdGYgZmFpbGVkIik7CisKKyAgcHV0cyAoImRvbmUiKTsK
KworICByZXR1cm4gMDsKK30KKworCisjZGVmaW5lIFRJTUVPVVQgMgorI2RlZmluZSBURVNUX0ZV
TkNUSU9OIGRvX3Rlc3QgKCkKKyNpbmNsdWRlICIuLi90ZXN0LXNrZWxldG9uLmMiCi0tIAoxLjcu
MC40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
              isurl="0"
          >
            <attachid>4789</attachid>
            <date>2010-05-13 08:13:00 +0000</date>
            <delta_ts>2010-05-13 08:13:15 +0000</delta_ts>
            <desc>[PATCH 4/4 V2] pi-condvars: tst-condpi2.c, detect priority inversion </desc>
            <filename>0004-pi-condvars-tst-condpi2.c-detect-priority-inversion.patch</filename>
            <type>text/plain</type>
            <size>4526</size>
            <attacher>dvhltc</attacher>
            
              <data encoding="base64">RnJvbSBjM2E5MDM5MDcxMDJjNmQ2NjZiZTMwODY2YmMxZDBiMDk3NzA5MTQ3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYXJyZW4gSGFydCA8ZHZobHRjQHVzLmlibS5jb20+CkRhdGU6
IFRodSwgMTMgTWF5IDIwMTAgMDE6NDY6NDYgLTA0MDAKU3ViamVjdDogW1BBVENIIDQvNF0gcGkt
Y29uZHZhcnM6IHRzdC1jb25kcGkyLmMsIGRldGVjdCBwcmlvcml0eSBpbnZlcnNpb24KClRoZSB0
ZXN0IGZyYW1ld29yayB3aWxsIGFib3J0IHRoZSB0ZXN0IGFmdGVyIDIgc2Vjb25kcyBhbmQgc3Rv
cCBhIG1ha2UgY2hlY2sKcnVuLiBJIGhhZCBvcmlnaW5hbGx5IHRob3VnaHQgdG8gZGV0ZWN0IHRo
ZSBpbnZlcnNpb24gYW5kIGdyYWNlZnVsbHkgZXhpdC4gSSdtCm5vdCBzdXJlIHdoaWNoIGFwcHJv
YWNoIGlzIHByZWZlcnJlZCwgc28gdGhpcyBwYXRjaCBhZGRzIHRoZSBkZXRlY3Rpb24Kc2VwYXJh
dGVseSBhbmQgY2FuIGJlIHNhZmVseSBkaXNjYXJkZWQgaWYgbm90IGRlc2lyZWQuCgpTaWduZWQt
b2ZmLWJ5OiBEYXJyZW4gSGFydCA8ZHZobHRjQHVzLmlibS5jb20+Ci0tLQogbnB0bC90c3QtY29u
ZHBpMi5jIHwgICA2NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKy0KIDEgZmlsZXMgY2hhbmdlZCwgNjMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMo
LSkKCmRpZmYgLS1naXQgYS9ucHRsL3RzdC1jb25kcGkyLmMgYi9ucHRsL3RzdC1jb25kcGkyLmMK
aW5kZXggYTk0ZTBkNi4uOWY0NTE1ZSAxMDA2NDQKLS0tIGEvbnB0bC90c3QtY29uZHBpMi5jCisr
KyBiL25wdGwvdHN0LWNvbmRwaTIuYwpAQCAtNDEsNyArNDEsMzEgQEAgc3RhdGljIHB0aHJlYWRf
bXV0ZXhfdCByYWNlX211dDsKIHN0YXRpYyBwdGhyZWFkX2NvbmRfdCBzaWcxLCBzaWcyLCBzaWcz
Owogc3RhdGljIHB0aHJlYWRfbXV0ZXhfdCBtMSwgbTIsIG0zOwogCitzdGF0aWMgcHRocmVhZF9i
YXJyaWVyX3QgYmFyOworCiBzdGF0aWMgdm9sYXRpbGUgdW5zaWduZWQgaW50IGRvbmUgPSAwOwor
c3RhdGljIHVuc2lnbmVkIGludCB0ZXN0X3Jlc3VsdCA9IDA7CisKK3N0YXRpYyB2b2lkICoKK3dh
dGNoZG9nX3RmICh2b2lkICpwKQoreworICBpbnQgZXJyOworCisgIGVyciA9IHB0aHJlYWRfYmFy
cmllcl93YWl0ICgmYmFyKTsKKyAgaWYgKGVyciAhPSAwICYmIGVyciAhPSBQVEhSRUFEX0JBUlJJ
RVJfU0VSSUFMX1RIUkVBRCkKKyAgICBlcnJvciAoRVhJVF9GQUlMVVJFLCBlcnIsICJ3YXRjaGRv
Z190ZjogYmFycmllciB3YWl0IGZhaWxlZCIpOworCisgIC8qIEFsbG93IHRpbWUgZm9yIGhpZ2hf
dGYgdG8gc2V0IGRvbmU9MSBpbmRpY2F0aW5nIGEgc3VjY2Vzc2Z1bCBydW4uICBJZgorICAgICBp
dCBpcyBodW5nIHdhaXRpbmcgb24gcmFjZV92YXIsIHdlIHNldCBkb25lPTIgaW5kaWNhdGluZyBm
YWlsdXJlLiAgbWVkX3RmCisgICAgIHdpbGwgZGV0ZWN0IHRoZSAyIGFuZCBpbmRpY2F0ZSBhIGZh
aWx1cmUgaW4gdGVzdF9yZXN1bHQuICAqLworICB1c2xlZXAgKDEwMDApOworICBpZiAoZG9uZSAh
PSAxKQorICAgIHsKKyAgICAgIHVzbGVlcCAoNTAwMDAwKTsKKyAgICAgIGRvbmUgPSAyOworICAg
IH0KKyAgcmV0dXJuIE5VTEw7Cit9CiAKIHN0YXRpYyB2b2lkICoKIGxvd190ZiAodm9pZCAqcCkK
QEAgLTE0OCw2ICsxNzIsMjggQEAgbWVkX3RmICh2b2lkICpwKQogICB3aGlsZSAoIWRvbmUpCiAg
ICAgICAgICAgLyogQnVzeSB3YWl0IHRvIGJsb2NrIGxvdyB0aHJlYWRzLiAgKi87CiAKKyAgLyog
SWYgd2F0Y2hkb2dfdGYgaGFzIHNldCBkb25lIHRvIDIgYmVmb3JlIGhpZ2hfdGYgaGFzIHNldCBp
dCB0byAxLAorICAgICB0aGVuIHRoZSB0ZXN0IGhhcyBmYWlsZWQuICAqLworICBpZiAoZG9uZSA9
PSAyKQorICAgIHsKKyAgICAgIHB1dHMgKCJtZWRfdGY6IHVuYm91bmRlZCBwcmlvcml0eSBpbnZl
cnNpb24gZGV0ZWN0ZWQuIik7CisgICAgICAKKyAgICAgIC8qIGxvd190ZiBhbmQgaGlnaF90ZiBh
cmUgbm93IHdhaXRpbmcgb24gcmFjZV92YXIsIGhhdmluZyBtaXNzZWQKKyAgICAgICAgIHRoZSBi
cm9hZGNhc3QgaXNzdWVkIGluIGRvX3Rlc3QoKS4gV2FrZSB0aGVtIHVwIG5vdyBhbmQgZXhpdAor
ICAgICAgICAgZ3JhY2VmdWxseS4gICovCisgICAgICBlcnIgPSBwdGhyZWFkX211dGV4X2xvY2sg
KCZyYWNlX211dCk7CisgICAgICBpZiAoZXJyICE9IDApCisgICAgICAgIGVycm9yIChFWElUX0ZB
SUxVUkUsIGVyciwgIm1lZF90ZjogZmFpbGVkIHRvIGxvY2sgcmFjZV9tdXQiKTsgICAgICAKKyAg
ICAgIGVyciA9IHB0aHJlYWRfY29uZF9icm9hZGNhc3QgKCZyYWNlX3Zhcik7CisgICAgICBpZiAo
ZXJyICE9IDApCisgICAgICAgIGVycm9yIChFWElUX0ZBSUxVUkUsIGVyciwgIm1lZF90ZjogYnJv
YWRjYXN0IHRvIHJhY2VfdmFyIGZhaWxlZCIpOyAgICAgIAorICAgICAgZXJyID0gcHRocmVhZF9t
dXRleF91bmxvY2sgKCZyYWNlX211dCk7CisgICAgICBpZiAoZXJyICE9IDApCisgICAgICAgIGVy
cm9yIChFWElUX0ZBSUxVUkUsIGVyciwgIm1lZF90ZjogZmFpbGVkIHRvIHVubG9jayByYWNlX211
dCIpOyAgICAgIAorCisgICAgICB0ZXN0X3Jlc3VsdCA9IDE7CisgICAgfQorCiAgIHB1dHMgKCJt
ZWRfdGY6IGRvbmUgc3Bpbm5pbmciKTsKIAogICByZXR1cm4gTlVMTDsKQEAgLTE1OSw2ICsyMDUs
NyBAQCBkb190ZXN0ICh2b2lkKQogICBwdGhyZWFkX3QgbG93X3RocmVhZDsKICAgcHRocmVhZF90
IG1lZF90aHJlYWQ7CiAgIHB0aHJlYWRfdCBoaWdoX3RocmVhZDsKKyAgcHRocmVhZF90IHdhdGNo
ZG9nX3RocmVhZDsKICAgc3RydWN0IHNjaGVkX3BhcmFtIHBhcmFtOwogICBwdGhyZWFkX2F0dHJf
dCBhdHRyOwogICBwdGhyZWFkX211dGV4YXR0cl90IG1fYXR0cjsKQEAgLTE2OCw3ICsyMTUsMTAg
QEAgZG9fdGVzdCAodm9pZCkKICAgaW50IGVycjsKIAogCi0gIC8qIEluaXRpYWxpemUgbXV0ZXhl
cyBhbmQgY29uZHZhcnMuICAqLworICAvKiBJbml0aWFsaXplIGJhcnJpZXIsIG11dGV4ZXMsIGFu
ZCBjb25kdmFycy4gICovCisgIGVyciA9IHB0aHJlYWRfYmFycmllcl9pbml0ICgmYmFyLCBOVUxM
LCAyKTsKKyAgaWYgKGVyciAhPSAwKQorICAgIGVycm9yIChFWElUX0ZBSUxVUkUsIGVyciwgInBh
cmVudDogZmFpbGVkIHRvIGluaXQgYmFycmllciIpOwogCiAgIGVyciA9IHB0aHJlYWRfYXR0cl9p
bml0ICgmYXR0cik7CiAgIGlmIChlcnIgIT0gMCkKQEAgLTIzMiw2ICsyODIsMTAgQEAgZG9fdGVz
dCAodm9pZCkKICAgaWYgKGVyciAhPSAwKQogICAgIGVycm9yIChFWElUX0ZBSUxVUkUsIGVyciwg
InBhcmVudDogZmFpbGVkIHRvIHNldCBDUFUgYWZmaW5pdHkiKTsKIAorICBlcnIgPSBwdGhyZWFk
X2NyZWF0ZSAoJndhdGNoZG9nX3RocmVhZCwgJmF0dHIsIHdhdGNoZG9nX3RmLCAodm9pZCopTlVM
TCk7CisgIGlmIChlcnIgIT0gMCkKKyAgICBlcnJvciAoRVhJVF9GQUlMVVJFLCBlcnIsICJwYXJl
bnQ6IGZhaWxlZCB0byBjcmVhdGUgd2F0Y2hkb2dfdGYiKTsKKwogICBwYXJhbS5zY2hlZF9wcmlv
cml0eSA9IExPV19QUklPOwogICBlcnIgPSBwdGhyZWFkX2F0dHJfc2V0c2NoZWRwYXJhbSAoJmF0
dHIsICZwYXJhbSk7CiAgIGlmIChlcnIgIT0gMCkKQEAgLTI2NiwxMSArMzIwLDE4IEBAIGRvX3Rl
c3QgKHZvaWQpCiAgICAgIFBUSFJFQURfUFJJT19JTkhFUklULCBsb3dfdGYgd2lsbCBub3QgaGF2
ZSByZWxlYXNlZCB0aGUgcmFjZV92YXIgY29uZF9sb2NrCiAgICAgIGFuZCBuZWl0aGVyIHRocmVh
ZCB3aWxsIGhhdmUgd2FpdGVkIG9uIHJhY2VfdmFyLiAgKi8KICAgdXNsZWVwICgxMDAwKTsKKwor
ICBlcnIgPSBwdGhyZWFkX2JhcnJpZXJfd2FpdCAoJmJhcik7CisgIGlmIChlcnIgIT0gMCAmJiBl
cnIgIT0gUFRIUkVBRF9CQVJSSUVSX1NFUklBTF9USFJFQUQpCisgICAgZXJyb3IgKEVYSVRfRkFJ
TFVSRSwgZXJyLCAicGFyZW50OiBiYXJyaWVyIHdhaXQgZmFpbGVkIik7CiAgIGVyciA9IHB0aHJl
YWRfY29uZF9icm9hZGNhc3QgKCZyYWNlX3Zhcik7CiAgIGlmIChlcnIgIT0gMCkKICAgICBlcnJv
ciAoRVhJVF9GQUlMVVJFLCBlcnIsICJwYXJlbnQ6IGZhaWxlZCB0byBicm9hZGNhc3QgY29uZGl0
aW9uIik7CiAKICAgLyogV2FpdCBmb3IgdGhyZWFkcyB0byBjb21wbGV0ZS4gICovCisgIGVyciA9
IHB0aHJlYWRfam9pbiAod2F0Y2hkb2dfdGhyZWFkLCAodm9pZCoqKSBOVUxMKTsKKyAgaWYgKGVy
ciAhPSAwKQorICAgIGVycm9yIChFWElUX0ZBSUxVUkUsIGVyciwgImpvaW4gb2Ygd2F0Y2hkb2df
dGYgZmFpbGVkIik7CiAgIGVyciA9IHB0aHJlYWRfam9pbiAobG93X3RocmVhZCwgKHZvaWQqKikg
TlVMTCk7CiAgIGlmIChlcnIgIT0gMCkKICAgICBlcnJvciAoRVhJVF9GQUlMVVJFLCBlcnIsICJq
b2luIG9mIGxvd190ZiBmYWlsZWQiKTsKQEAgLTI4Myw3ICszNDQsNyBAQCBkb190ZXN0ICh2b2lk
KQogCiAgIHB1dHMgKCJkb25lIik7CiAKLSAgcmV0dXJuIDA7CisgIHJldHVybiB0ZXN0X3Jlc3Vs
dDsKIH0KIAogCi0tIAoxLjcuMC40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
              isurl="0"
          >
            <attachid>4821</attachid>
            <date>2010-05-28 20:34:00 +0000</date>
            <delta_ts>2010-05-28 20:34:42 +0000</delta_ts>
            <desc>pi condvar patch impact on normal path testcase</desc>
            <filename>condvar_perf.c</filename>
            <type>text/x-csrc</type>
            <size>4556</size>
            <attacher>dvhltc</attacher>
            
              <data encoding="base64">LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgogKgogKiAgIENvcHlyaWdodCDCqSBJbnRlcm5hdGlvbmFs
IEJ1c2luZXNzIE1hY2hpbmVzICBDb3JwLiwgMjAxMAogKgogKiAgIFRoaXMgcHJvZ3JhbSBpcyBm
cmVlIHNvZnR3YXJlOyAgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogKiAg
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5CiAqICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKICogICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgogKgogKiAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiAgIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZQogKiAgIHRoZSBHTlUg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiAgIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
CiAqICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07ICBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCiAqICAgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxlIFBsYWNlLCBTdWl0ZSAz
MzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNyBVU0EKICoKICogTkFNRQogKiAgICAgIGNvbmR2YXJf
cGVyZi5jCiAqCiAqIERFU0NSSVBUSU9OCiAqICAgICAgVGhpcyB0ZXN0IGlzIGRlc2lnbmVkIHRv
IHRlc3QgdGhlIGVmZmljaWVuY3kgb2YgdGhlIHB0aHJlYWRfY29uZF93YWl0CiAqICAgICAgYW5k
IHB0aHJlYWRfY29uZF9zaWduYWwgY29kZSBwYXRocyB3aXRoaW4gZ2xpYmMuCiAqCiAqIEFVVEhP
UgogKiAgICAgIERhcnJlbiBIYXJ0IDxkdmhsdGNAdXMuaWJtLmNvbT4KICoKICogSElTVE9SWQog
KiAgICAgIDIwMTAtRmViLTIzOiBJbml0aWFsIHZlcnNpb24gYnkgRGFycmVuIEhhcnQgPGR2aGx0
Y0B1cy5pYm0uY29tPgogKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCgojaW5jbHVkZSA8dGltZS5o
PgojaW5jbHVkZSA8dW5pc3RkLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHNjaGVk
Lmg+CiNpbmNsdWRlIDxzdGRpby5oPgojaW5jbHVkZSA8cHRocmVhZC5oPgojaW5jbHVkZSA8Z2V0
b3B0Lmg+CiNpbmNsdWRlIDxtYXRoLmg+CgojZGVmaW5lIFVTRUNfUEVSX1NFQyAxMDAwMDAwCiNk
ZWZpbmUgTlNFQ19QRVJfVVNFQyAxMDAwCiNkZWZpbmUgREVGQVVMVF9JVEVSUyAxMDAwMAojZGVm
aW5lIERFRkFVTFRfUE9QVUxBVElPTiAxMDAwMAoKI2RlZmluZSBNSU4oQSxCKSAoKEEpPChCKT8o
QSk6KEIpKQojZGVmaW5lIE1BWChBLEIpICgoQSk+KEIpPyhBKTooQikpCgpzdGF0aWMgaW50IGl0
ZXJzID0gREVGQVVMVF9JVEVSUzsKc3RhdGljIGludCBzY2hlZF9maWZvX3ByaW8gPSAwOwpzdGF0
aWMgaW50IHN5bmNoID0gMDsKc3RhdGljIGludCBjdXJfaXRlcjsKCnN0YXRpYyBwdGhyZWFkX2Nv
bmRfdCBjb25kID0gUFRIUkVBRF9DT05EX0lOSVRJQUxJWkVSOwpzdGF0aWMgcHRocmVhZF9tdXRl
eF90IG11dGV4ID0gUFRIUkVBRF9NVVRFWF9JTklUSUFMSVpFUjsKCnZvaWQgdXNhZ2UoY2hhciAq
cHJvZykKewoJcHJpbnRmKCJVc2FnZTogJXNcbiIsIHByb2cpOwoJcHJpbnRmKCIgIC1mICMgIFJ1
biBhcyBTQ0hFRF9GSUZPIHByaW8gIyAoZGVmYXVsdCBTQ0hFRF9PVEhFUilcbiIpOwoJcHJpbnRm
KCIgIC1oCURpc3BsYXkgdGhpcyBoZWxwIG1lc3NhZ2VcbiIpOwoJcHJpbnRmKCIgIC1pICMJTnVt
YmVyIG9mIGl0ZXJhdGlvbnMgKGRlZmF1bHQgJWQpXG4iLCBERUZBVUxUX0lURVJTKTsKCXByaW50
ZigiICAtcCAjCVBvcHVsYXRpb24gc2l6ZSBwZXIgZGF0YXBvaW50IChkZWZhdWx0ICVkKVxuIiwg
REVGQVVMVF9QT1BVTEFUSU9OKTsKCXByaW50ZigiICAtcyAJU3luY2hyb25vdXMgc2lnbmFsaW5n
IChsb2NrIG11dGV4KVxuIik7Cn0KCnZvaWQgKiB3YWl0ZXIodm9pZCAqYXJnKQp7Cgl3aGlsZSAo
Y3VyX2l0ZXIpIHsKCQlwdGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsKCQlwdGhyZWFkX2NvbmRf
d2FpdCgmY29uZCwgJm11dGV4KTsKCQljdXJfaXRlci0tOwoJCXB0aHJlYWRfbXV0ZXhfdW5sb2Nr
KCZtdXRleCk7Cgl9CglyZXR1cm4gTlVMTDsKfQoKZmxvYXQgY29uZF9wZXJmKHZvaWQpCnsKCXN0
cnVjdCB0aW1lc3BlYyBzdGFydF90cywgZW5kX3RzOwoJbG9uZyBsb25nIGRlbHRhX3VzOwoJZmxv
YXQgcmVzdWx0ID0gMC4wOwoJcHRocmVhZF90IGNoaWxkX2lkOwoKCWN1cl9pdGVyID0gaXRlcnM7
CgoJaWYgKChwdGhyZWFkX2NyZWF0ZSgmY2hpbGRfaWQsIE5VTEwsIHdhaXRlciwgTlVMTCkpKSB7
CgkJcGVycm9yKCJwdGhyZWFkX2NyZWF0ZSBmYWlsZWQiKTsKCQlleGl0KDEpOwoJfQoKCWNsb2Nr
X2dldHRpbWUoQ0xPQ0tfUkVBTFRJTUUsICZzdGFydF90cyk7CgoJd2hpbGUgKGN1cl9pdGVyKSB7
CgkJaWYgKHN5bmNoKSBwdGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsKCQlwdGhyZWFkX2NvbmRf
c2lnbmFsKCZjb25kKTsKCQlpZiAoc3luY2gpIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtdXRleCk7
Cgl9CgoJY2xvY2tfZ2V0dGltZShDTE9DS19SRUFMVElNRSwgJmVuZF90cyk7CgoJcHRocmVhZF9q
b2luKGNoaWxkX2lkLCBOVUxMKTsKCglkZWx0YV91cyA9IChlbmRfdHMudHZfc2VjIC0gc3RhcnRf
dHMudHZfc2VjKSAqIFVTRUNfUEVSX1NFQzsKCWRlbHRhX3VzICs9IChlbmRfdHMudHZfbnNlYyAt
IHN0YXJ0X3RzLnR2X25zZWMpIC8gTlNFQ19QRVJfVVNFQzsKCXJlc3VsdCA9IChmbG9hdClpdGVy
cy8oKGZsb2F0KWRlbHRhX3VzL1VTRUNfUEVSX1NFQyk7CgoJcmV0dXJuIHJlc3VsdDsKfQoKc3Rh
dGljIGludCBuID0gMDsKc3RhdGljIGZsb2F0IG1lYW4gPSAwLjA7CnN0YXRpYyBmbG9hdCBtMiA9
IDAuMDsKc3RhdGljIGZsb2F0IHZhciA9IDAuMDsKc3RhdGljIGZsb2F0IG1pbiA9IDAuMDsKc3Rh
dGljIGZsb2F0IG1heCA9IDAuMDsKdm9pZCBvbmxpbmVfdmFyaWFuY2UoZmxvYXQgeCkKewoJZmxv
YXQgZGVsdGE7CglpZiAobisrID09IDApCgkJbWluID0geDsKCW1pbiA9IE1JTihtaW4sIHgpOwoJ
bWF4ID0gTUFYKG1heCwgeCk7CglkZWx0YSA9IHggLSBtZWFuOwoJbWVhbiA9IG1lYW4gKyBkZWx0
YS9uOwoJbTIgPSBtMiArIGRlbHRhKih4IC0gbWVhbik7Cgl2YXIgPSBtMi9uOyAvKiBwb3B1bGF0
aW9uIHZhcmlhbmNlICovCn0KCmludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCnsKCWlu
dCBwb3B1bGF0aW9uID0gREVGQVVMVF9QT1BVTEFUSU9OOwoJaW50IGMsIGksIHJldCA9IDA7CgoJ
d2hpbGUgKChjID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJmOmhpOnA6cyIpKSAhPSAtMSkgewoJCXN3
aXRjaChjKSB7CgkJY2FzZSAnZic6CgkJCXNjaGVkX2ZpZm9fcHJpbyA9IGF0b2kob3B0YXJnKTsK
CQkJYnJlYWs7CgkJY2FzZSAnaCc6CgkJCXVzYWdlKGFyZ3ZbMF0pOwoJCQlleGl0KDApOwoJCWNh
c2UgJ2knOgoJCQlpdGVycyA9IGF0b2kob3B0YXJnKTsKCQkJYnJlYWs7CgkJY2FzZSAncCc6CgkJ
CXBvcHVsYXRpb24gPSBhdG9pKG9wdGFyZyk7CgkJCWJyZWFrOwoJCWNhc2UgJ3MnOgoJCQlzeW5j
aCA9IDE7CgkJCWJyZWFrOwoJCWRlZmF1bHQ6CgkJCXVzYWdlKGFyZ3ZbMF0pOwoJCQlleGl0KDEp
OwoJCX0KCX0KCglwcmludGYoIlNjaGVkdWxpbmc6ICVzICVkXG4iLCBzY2hlZF9maWZvX3ByaW8g
PyAiU0NIRURfRklGTyIgOiAiU0NIRURfT1RIRVIiLAoJCQkJICAgICAgc2NoZWRfZmlmb19wcmlv
KTsKCXByaW50ZigiSXRlcmF0aW9uczogJWRcbiIsIGl0ZXJzKTsKCXByaW50ZigiUG9wdWxhdGlv
bjogJWRcbiIsIHBvcHVsYXRpb24pOwoKCWlmIChzY2hlZF9maWZvX3ByaW8pIHsKCQlzdHJ1Y3Qg
c2NoZWRfcGFyYW0gc3A7CgkJc3Auc2NoZWRfcHJpb3JpdHkgPSBzY2hlZF9maWZvX3ByaW87CgkJ
aWYgKChyZXQgPSBzY2hlZF9zZXRzY2hlZHVsZXIoMCwgU0NIRURfRklGTywgJnNwKSkpIHsKCQkJ
cGVycm9yKCJzY2hlZF9zZXRzY2hlZHVsZXIiKTsKCQkJZ290byBvdXQ7CgkJfQoJfQoKCWZvciAo
aSA9IDA7IGkgPCBwb3B1bGF0aW9uOyBpKyspCgkJb25saW5lX3ZhcmlhbmNlKGNvbmRfcGVyZigp
KTsKCglwcmludGYoIk1pbjogJWZcbiIsIG1pbik7CglwcmludGYoIk1heDogJWZcbiIsIG1heCk7
CglwcmludGYoIkF2ZzogJWZcbiIsIG1lYW4pOwoJcHJpbnRmKCJWYXI6ICVmXG4iLCB2YXIpOwoJ
cHJpbnRmKCJTdGQ6ICVmXG4iLCBzcXJ0KHZhcikpOwogb3V0OgoJcmV0dXJuIHJldDsKfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>