Sample characteristics
Data collection began on 5/10 and ended on 5/22. A total of N = 454 subjects participated in the study. Sixty-nine subjects missed attention check questions and 8 subjects took longer than 60 minutes to complete the study (median completion time was under 25 minutes). In the final sample, N=297 subjects were fasting while taking they survey and 157 were not fasting.
Age

Country of birth (%)
| United Kingdom |
39.30 |
| United States |
11.65 |
| Pakistan |
9.21 |
| Bangladesh |
3.25 |
Current country of residence (%)
| United Kingdom |
52.57 |
| United States |
14.09 |
| Canada |
6.23 |
| France |
3.52 |
Nationality (%)
| United Kingdom |
45.80 |
| United States |
11.11 |
| Pakistan |
6.23 |
| Canada |
4.88 |
Education (%)
| undergraduate |
40.65 |
| masters |
17.62 |
| some college |
14.63 |
| high school graduate |
13.01 |
Living area (%)
| Large city (population over 1 million) |
42.82 |
| Small city (population under 1 million) |
37.13 |
| Suburban |
18.70 |
| Rural |
1.36 |
Social Dilemma
All subjects responded to the following task, designed to measure demand on common pools of varying size:
In this first task, you are randomly grouped with 4 other participants in this study. Your group is given some bonus points to share. You each privately request some of these points. You will not know how much the others are requesting and you cannot communicate with each other.
There are 500 points available.
We will add up the requests from all of you. If the total is less than the number of bonus points available, then you each receive the bonus points you requested. But if the sum of requests is more than the available points, none of you gets anything.
So larger requests could get you more bonus points, but you might also end up with nothing if everyone makes large requests. How many points do you request?",
The number of points were only fixed in the first round. In the follow up rounds, they pool size becasme increasingly uncertain but the mean stays the same ($500):
- $425-$575
- $350-$650
- $275-$775
- $200-$850
- $125-$925

As expected, demanded amounts increase as uncertainty about the pool size increases. The six values obtained from each participant showed high reliability (\(\alpha\) = 0.96) and were averaged into one scores (M = 177.5, SD = 147.54).
Previous work shows tow mdoerators of the amount s demanded on tihs task:
- risk taking: risk takers demand larger amount on this task whereas risk-averse people demand smaller amounts. In owrds of Budescu, Rappaport & Sulaiman, 1990:
“When subjects were classified according to their attitude towards risk, we found a consistent pattern of overdemand by risk-seekers and more modest requests by risk-avoiders. This is an impressive result if one recalls that the classification in terms of risk was independent of the dilemma task.”
- social value orientation: people higher in social value orientation have been shown to demand
Risk taking
We used three items to measure risk-taking:
- Single item on financial risk taking (we used this in previous studies):
How much financial risk you are willing to take when you make a financial investment?
- Five items from Falk et al on risk taking in different domains of life (not at all (0) - very much (11)). These items were relliably correated (\(\alpha\) = 0.96) and combined into a single item (M = 4.52, SD = 1.75).
- Do you see yourself generally as a person who is fully prepared to take risks or do you try to avoid taking risks?
- When driving a car, are you a person who takes risks or do you try to avoid taking risks as a driver?
- In financial matters, are you a person who takes risks with money (for example, investing in speculative stocks)?
- How about in sports/leisure choices, are you a person who participates in risky sports and activities (for example skiing, skydiving, camping in the wilderness, etc.)?
- In your career and social life, are you a person who takes risks (for example, switching jobs mid-career, disagreeing with your boss, moving to a city far from your family, etc.)?
- Are you a person who takes risks with their safety and health (Walk alone at night in an unsafe part of town, not wear a seatbelt in a car or a helmet on a bike, etc.)?
- All subjects compeleted 25 round of the BART (Balloon Analogue Risk Task). The number of pumps in the rounds that they cashed in their points indicates their risk tolerance. Lower number mean the subject swas more risk-averse and on average chose to cash in their points earlier. Table below shows Spearman correlations of these three measures of risk.
| single.item |
|
|
| falk.avg |
0.43**** |
|
| pump.cashed |
-0.17*** |
-0.11* |
The combined reliability of these three items is acceptable (\(\alpha\) = 0.75) and they are average into a single composite score ((M = 5.75, SD = 1.39).
Social Value Orientation (SVO)
SVO is a 9 item task where subjects indicate their preferred choice among three possible distributions. In each set of three chocies, one is prosocial, another is self-focused, and one competiative. In words of Mill & Theelen:
Within this construct, people can be categorized into prosocials (individuals who are concerned with their own and others’ welfare or solely others welfare) and proselfs (individuals who try to solely maximize their own welfare or maximize differences). In the past few decades, SVO has shown to be a valuable construct for understanding and predicting people’s decision-making in social dilemmas across different disciplines like psychology."
The instruction and the choices of the task are as follows:
So the next task is another point allocation task. You get to decide how to split some money between yourself and another person. This person will be randomly selected from other participants in this experiment.
Your shares will be converted to bonus points that determine your chances in a $50 raffle. So, every choice has value: the more points you receive, the better for you, and the more points the ‘Other’ receives, the better for him/her.
There are no right or wrong answers – choose the option that you, for whatever reason, prefer most. You’ll play 9 rounds. Press ‘Next’ to begin."
| 1 |
$480 for me, $80 for Other |
$540 for me, $280 for Other |
$480 for me, $480 for Other |
| 2 |
$560 for me, $300 for Other |
$500 for me, $500 for Other |
$500 for me, $100 for Other |
| 3 |
$520 for me, $520 for Other |
$520 for me, $120 for Other |
$580 for me, $320 for Other |
| 4 |
$500 for me, $100 for Other |
$560 for me, $300 for Other |
$490 for me, $490 for Other |
| 5 |
$560 for me, $300 for Other |
$500 for me, $500 for Other |
$490 for me, $90 for Other |
| 6 |
$500 for me, $500 for Other |
$500 for me, $100 for Other |
$570 for me, $300 for Other |
| 7 |
$510 for me, $510 for Other |
$560 for me, $300 for Other |
$510 for me, $110 for Other |
| 8 |
$550 for me, $300 for Other |
$500 for me, $100 for Other |
$500 for me, $500 for Other |
| 9 |
$480 for me, $100 for Other |
$490 for me, $490 for Other |
$540 for me, $300 for Other |
In the table above, choices are categorized as follows:
- prosocial choices: 1c 2b 3a 4c 5b 6a 7a 8c 9b
- individualistic choices: 1b 2a 3c 4b 5a 6c 7b 8a 9c
- competitive choices: 1a 2c 3b 4a 5c 6b 7c 8b 9a
People belong to categories that they score 5 or above on. Sometimes, the individiualistic and competitive items are added up to create a sproself category. The table below shows the distribution of responses in percentages. Becasue the sample is skedwed toward prosociality, I tried two way of coding: One simply based on numebr of prosocial choice people made (1-9), and another where I dichotmized 9 vs. <9 on prosocial choices.
| 0 |
0.1497797 |
0.5660793 |
0.8325991 |
| 1 |
0.0330396 |
0.0770925 |
0.0440529 |
| 2 |
0.0418502 |
0.0859031 |
0.0352423 |
| 3 |
0.0242291 |
0.0484581 |
0.0132159 |
| 4 |
0.0286344 |
0.0418502 |
0.0110132 |
| 5 |
0.0352423 |
0.0264317 |
0.0176211 |
| 6 |
0.0286344 |
0.0198238 |
0.0022026 |
| 7 |
0.0572687 |
0.0242291 |
0.0110132 |
| 8 |
0.0704846 |
0.0308370 |
0.0110132 |
| 9 |
0.5308370 |
0.0792952 |
0.0220264 |
The table below shows the Spearman correlations between social dilemma demand, risk taking, and prosocial sovial value orientation. In sum, higher risk seeking is associated with increase demands on common pool, wheras higher social value oreinetation is associate with smaller dmands on the commond pools.
| social.dilemma.1 |
|
|
|
|
|
|
|
|
| social.dilemma.2 |
0.64**** |
|
|
|
|
|
|
|
| social.dilemma.3 |
0.59**** |
0.85**** |
|
|
|
|
|
|
| social.dilemma.4 |
0.57**** |
0.76**** |
0.85**** |
|
|
|
|
|
| social.dilemma.5 |
0.56**** |
0.75**** |
0.82**** |
0.89**** |
|
|
|
|
| social.dilemma.6 |
0.57**** |
0.72**** |
0.78**** |
0.84**** |
0.92**** |
|
|
|
| svo.prosocial |
-0.10* |
-0.10* |
-0.12** |
-0.14** |
-0.17*** |
-0.17*** |
|
|
| social.dilemma.avg |
0.66**** |
0.86**** |
0.91**** |
0.92**** |
0.95**** |
0.93**** |
-0.16*** |
|
| risk.all |
0.13** |
0.17*** |
0.19**** |
0.14** |
0.17*** |
0.15** |
-0.03 |
0.18*** |
Models
I then tested the following models. First, a basic model looking at centered means.
\(\ Mean.Demanded.Amount.Social.Dilemma\) ~ \(\ svo.prosocial + risk.all\)
| (Intercept) |
0.001 |
0.052 |
0.013 |
0.990 |
| scale(svo.prosocial) |
-0.155 |
0.052 |
-2.998 |
0.003 |
| scale(risk.all) |
0.117 |
0.052 |
2.253 |
0.025 |
Then I tested a model using dichotomized SVO and using the six dilemmas as repeated measures:
\(\ Demanded.Amount.Social.Dilemma\) ~ \(\ svo.prosocial.dichotmous * risk.all * dilemma.type\)
| dilemma.type |
18708.70 |
3741.74 |
5 |
1784.027 |
0.598 |
0.702 |
| risk.all |
30765.67 |
30765.67 |
1 |
357.003 |
4.914 |
0.027 |
| svo.prosocial.dic |
39638.54 |
39638.54 |
1 |
357.016 |
6.331 |
0.012 |
| dilemma.type:risk.all |
54746.36 |
10949.27 |
5 |
1784.023 |
1.749 |
0.120 |
| dilemma.type:svo.prosocial.dic |
173337.00 |
34667.40 |
5 |
1784.036 |
5.537 |
0.000 |
Then I seperately looked at how fasting influences the extent to which demands on each common pool is related to SVO and risk:
\(\ Demanded.Amount.Social.Dilemma\) ~ \(\ svo.prosocial * dilemma.type * fasting\)
| fasting |
9041.74 |
9041.740 |
1 |
355.000 |
1.450 |
0.229 |
| dilemma.type |
500288.14 |
100057.628 |
5 |
1779.020 |
16.043 |
0.000 |
| svo.prosocial |
32905.77 |
32905.767 |
1 |
355.005 |
5.276 |
0.022 |
| risk.all |
30898.35 |
30898.347 |
1 |
355.004 |
4.954 |
0.027 |
| fasting:dilemma.type |
40591.80 |
8118.361 |
5 |
1779.020 |
1.302 |
0.260 |
| fasting:svo.prosocial |
27092.79 |
27092.786 |
1 |
355.005 |
4.344 |
0.038 |
| dilemma.type:svo.prosocial |
198704.34 |
39740.868 |
5 |
1779.025 |
6.372 |
0.000 |
| fasting:dilemma.type:svo.prosocial |
63781.74 |
12756.348 |
5 |
1779.025 |
2.045 |
0.070 |
\(\ Demanded.Amount.Social.Dilemma\) ~ \(\ risk.all * dilemma.type * fasting\)
| fasting |
448.534 |
448.534 |
1 |
355.002 |
0.071 |
0.791 |
| dilemma.type |
25807.199 |
5161.440 |
5 |
1779.023 |
0.812 |
0.541 |
| risk.all |
25627.343 |
25627.343 |
1 |
355.001 |
4.031 |
0.045 |
| svo.prosocial |
51018.700 |
51018.700 |
1 |
355.008 |
8.025 |
0.005 |
| fasting:dilemma.type |
22868.484 |
4573.697 |
5 |
1779.023 |
0.719 |
0.609 |
| fasting:risk.all |
1.652 |
1.652 |
1 |
355.001 |
0.000 |
0.987 |
| dilemma.type:risk.all |
54581.166 |
10916.233 |
5 |
1779.021 |
1.717 |
0.127 |
| fasting:dilemma.type:risk.all |
23485.380 |
4697.076 |
5 |
1779.021 |
0.739 |
0.594 |
In sum, svo and risk taking both predict demands on common pools. Fasting influence the relationship between svo and demands, but not the relationship between risk adn demand. The plot below demostrate the moderatin grole of fasting on the relationship between svo and demands:

Looking at post hoc contrasts with bonferroni correction, we find that fasters high in social value orientation to demnad significantly less amounts form the common po0ls thantthe fasters who are not always prosocial in the decisions:
| always - sometimes |
Yes |
-56.52223 |
18.81999 |
355.0023 |
-3.0033079 |
0.0028601 |
| always - sometimes |
No |
2.64118 |
26.82282 |
354.9805 |
0.0984677 |
0.9216165 |
Trust
We also measured trust using multiple sclaes and tasks:
- Yamagishi et al (strongly disagree (1) - strongly agree (7)):
Using the following scale, please indicate how much you agree or disagree with the following statements:
- Most people tell a lie when they can benefit by doing so.
- Those devoted to unselfish causes are often exploited by others.
- Some people do not cooperate because they pursue only their own short-term self-interest. Thus, things that can be done well if people cooperate often fail because of these people.
- Most people are basically honest (R).
- There will be more people who will not work if the social security system is developed further.
- Fehr et al (never (1) - always (5)):
- How often do you lend personal possessions to your friends (books, your car, bicycle etc.)?
- How often do you lend money to your friends?
- How often do you leave your door unlocked?
- Falk et al. (strongly disagree (1) - strongly agree (7)):
I assume that people have only the best intentions.
- Trust game ($0 - $1000):
In this task, we are giving you 1000 bonus points. They are yours to keep.
We are also giving you a choice: Give some or all of these points back, we multiply it by 3, and give it to another participant in this study. They can then decide to return some or all of the points back to you (They know we gave you 1000 points and you decided to send some points over to them).
It’s entirely up to them to return anything. But it’s entirely up to you to take this chance and send some bonus points over. You can keep all the points, give some, or all. What they return will be added to the points you decided to keep.
How much would you like to send?
Reliability of both Yamigishi General Trust scale (\(\alpha\) = 0.54) and Fehr’s three item scale (\(\alpha\) = 0.54) are both low. The first two items are correlated in the Fehr scale (\(\rho\) = 0.47), but not with the third item (\(\rho\)s = 0.16 - 0.19).
All items on the Yamagishi scale and the first two of Fehr items (\(\alpha\) = 0.65) were combined into single composite scores. Table below shows Spearman correlation between these and other measures of trust (Falk’s single item trust measure and the amounts sent on the trust game), as well as risk-taking, social value orientation (svo), and mean amounts demnanded on social dilemmas.
| trust.game |
|
|
|
|
|
|
| svo.prosocial |
0.22**** |
|
|
|
|
|
| trust.fehr.avg |
0.19**** |
0.17*** |
|
|
|
|
| trust.yamagishi.avg |
-0.12* |
0.00 |
-0.01 |
|
|
|
| trust.falk |
0.20**** |
0.12* |
0.19**** |
-0.29**** |
|
|
| social.dilemma.avg |
0.05 |
-0.16*** |
0.01 |
-0.01 |
0.04 |
|
| risk.all |
0.11* |
-0.03 |
0.23**** |
0.07 |
-0.03 |
0.18*** |
Interestingly, none of the trust measures are related to responses on social dilemma questions. Some measures of trust are correlated with risk-taking and social value orientation.
I tested the model below to comapre fasters and non-fasters on the four indices of trust:
\(\ trust.score\) ~ \(\ trust.type * fasting\)
| trust.type |
0.286 |
0.095 |
3 |
1353.304 |
0.097 |
0.962 |
| fasting |
0.347 |
0.347 |
1 |
451.932 |
0.353 |
0.553 |
| trust.type:fasting |
3.003 |
1.001 |
3 |
1353.304 |
1.017 |
0.384 |
Post hoc test with Bonferroni correction showed no significant difference between fasters and non-fasters on any of the trust items:
| Yes - No |
trust.game |
0.0487810 |
0.0986906 |
1801.550 |
0.4942823 |
0.6211671 |
| Yes - No |
trust.fehr.avg |
0.0315970 |
0.0986906 |
1801.550 |
0.3201623 |
0.7488825 |
| Yes - No |
trust.yamagishi.avg |
-0.1001536 |
0.0988976 |
1801.573 |
-1.0126993 |
0.3113398 |
| Yes - No |
trust.falk |
0.1400259 |
0.0990715 |
1801.593 |
1.4133827 |
0.1577160 |
# fasting -(+)-> svo.prosocial -(-)-> social.dilemma <-(+)- risk:
# Estimate Std. Error t value Pr(>|t|)
# fasting -(+)-> svo.prosocial: #fastingNo -0.837 0.388 -2.154 0.0319 *
# svo.prosociality -(-)-> social.dilemma: #svo.prosocial -7.060 2.156 -3.274 0.00116 **
# social.dilemma <-(+)- risk: #risk.all 12.147 5.561 2.184 0.02959 *
Fasting
summary(with(ramadan2020.time1[ramadan2020.time1$PROLIFIC_PID %in% checked.ID.1.5,], lm(scale(social.dilemma.avg)~fasting)))
Call:
lm(formula = scale(social.dilemma.avg) ~ fasting)
Residuals:
Min 1Q Median 3Q Max
-1.1541 -0.6526 -0.4266 0.2999 3.3724
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.04211 0.06373 -0.661 0.509
fastingNo 0.12633 0.11039 1.144 0.253
Residual standard error: 0.9996 on 367 degrees of freedom
Multiple R-squared: 0.003556, Adjusted R-squared: 0.0008411
F-statistic: 1.31 on 1 and 367 DF, p-value: 0.2532
summary(with(ramadan2020.time1[ramadan2020.time1$PROLIFIC_PID %in% checked.ID.1.5,], lm(scale(svo.prosocial)~fasting)))
Call:
lm(formula = scale(svo.prosocial) ~ fasting)
Residuals:
Min 1Q Median 3Q Max
-1.8866 -0.7560 0.6572 0.6572 0.8939
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.07890 0.06344 1.244 0.2145
fastingNo -0.23669 0.10989 -2.154 0.0319 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.9951 on 367 degrees of freedom
Multiple R-squared: 0.01248, Adjusted R-squared: 0.009793
F-statistic: 4.639 on 1 and 367 DF, p-value: 0.0319
summary(with(ramadan2020.time1[ramadan2020.time1$PROLIFIC_PID %in% checked.ID.1.5,], lm(scale(risk.all)~fasting)))
Call:
lm(formula = scale(risk.all) ~ fasting)
Residuals:
Min 1Q Median 3Q Max
-2.0064 -0.6609 -0.1161 0.6879 2.8374
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.03374 0.06430 0.525 0.60
fastingNo -0.10292 0.11231 -0.916 0.36
Residual standard error: 1 on 358 degrees of freedom
(9 observations deleted due to missingness)
Multiple R-squared: 0.002341, Adjusted R-squared: -0.0004462
F-statistic: 0.8399 on 1 and 358 DF, p-value: 0.36
Last meal
summary(with(ramadan2020.time1[ramadan2020.time1$PROLIFIC_PID %in% checked.ID.1.5,], lm(scale(social.dilemma.avg)~fasting*as.numeric(food.reminder.time))))
Call:
lm(formula = scale(social.dilemma.avg) ~ fasting * as.numeric(food.reminder.time))
Residuals:
Min 1Q Median 3Q Max
-1.2315 -0.6493 -0.4007 0.2992 3.3309
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.26986 0.18801 1.435 0.1521
fastingNo -0.23491 0.24618 -0.954 0.3406
as.numeric(food.reminder.time) -0.05635 0.03195 -1.763 0.0787 .
fastingNo:as.numeric(food.reminder.time) 0.07904 0.06829 1.158 0.2478
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.9979 on 365 degrees of freedom
Multiple R-squared: 0.01235, Adjusted R-squared: 0.004235
F-statistic: 1.522 on 3 and 365 DF, p-value: 0.2085
summary(with(ramadan2020.time1[ramadan2020.time1$PROLIFIC_PID %in% checked.ID.1.5,], lm(scale(svo.prosocial)~fasting*as.numeric(food.reminder.time))))
Call:
lm(formula = scale(svo.prosocial) ~ fasting * as.numeric(food.reminder.time))
Residuals:
Min 1Q Median 3Q Max
-2.0280 -0.7826 0.5159 0.7454 0.9175
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -0.23873 0.18717 -1.275 0.2029
fastingNo 0.09122 0.24507 0.372 0.7099
as.numeric(food.reminder.time) 0.05737 0.03181 1.803 0.0721 .
fastingNo:as.numeric(food.reminder.time) -0.06211 0.06798 -0.914 0.3615
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.9934 on 365 degrees of freedom
Multiple R-squared: 0.02122, Adjusted R-squared: 0.01318
F-statistic: 2.638 on 3 and 365 DF, p-value: 0.04944
summary(with(ramadan2020.time1[ramadan2020.time1$PROLIFIC_PID %in% checked.ID.1.5,], lm(scale(risk.all)~fasting*as.numeric(food.reminder.time))))
Call:
lm(formula = scale(risk.all) ~ fasting * as.numeric(food.reminder.time))
Residuals:
Min 1Q Median 3Q Max
-2.14067 -0.68008 -0.09159 0.71920 2.90632
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.38528 0.18849 2.044 0.0417 *
fastingNo -0.23788 0.24811 -0.959 0.3383
as.numeric(food.reminder.time) -0.06377 0.03217 -1.982 0.0482 *
fastingNo:as.numeric(food.reminder.time) -0.03805 0.07027 -0.541 0.5885
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 0.9939 on 356 degrees of freedom
(9 observations deleted due to missingness)
Multiple R-squared: 0.02046, Adjusted R-squared: 0.01221
F-statistic: 2.479 on 3 and 356 DF, p-value: 0.06097
Perceived control
Reciprocity (Negative)
Reciprocity (Positive)
Altruism
Correlations
with(ramadan2020.time1[ramadan2020.time1$PROLIFIC_PID %in% checked.ID.1.5,], corstarsl(data.frame("fasting"=as.numeric(fasting), "soc.dil.avg"=social.dilemma.avg, risk.all, svo.prosocial, trust.falk, trust.fehr.avg, trust.game, hunger, "last.meal"=as.numeric(food.reminder.time), "control"=control.self-control.outside, neg.recip.avg, pos.recip, altruism), "pearson"))
NA
LS0tCnRpdGxlOiAiUmFtYWRhbjIwMjAiCm91dHB1dDoKICBodG1sX25vdGVib29rOgogICAgdGhlbWU6IHVuaXRlZAogICAgdG9jOiB5ZXMKICAgIHRvY19mbG9hdDogeWVzCiAgICB0b2NfZGVwdGg6IDYgIAogICAgICAKLS0tClwKCiMjIyMgKipTYW1wbGUgY2hhcmFjdGVyaXN0aWNzKioKRGF0YSBjb2xsZWN0aW9uIGJlZ2FuIG9uIDUvMTAgYW5kIGVuZGVkIG9uIDUvMjIuIEEgdG90YWwgb2YgTiA9IDQ1NCBzdWJqZWN0cyBwYXJ0aWNpcGF0ZWQgaW4gdGhlIHN0dWR5LiBTaXh0eS1uaW5lIHN1YmplY3RzIG1pc3NlZCBhdHRlbnRpb24gY2hlY2sgcXVlc3Rpb25zIGFuZCA4IHN1YmplY3RzIHRvb2sgbG9uZ2VyIHRoYW4gNjAgbWludXRlcyB0byBjb21wbGV0ZSB0aGUgc3R1ZHkgKG1lZGlhbiBjb21wbGV0aW9uIHRpbWUgd2FzIHVuZGVyIDI1IG1pbnV0ZXMpLiBJbiB0aGUgZmluYWwgc2FtcGxlLCBOPTI5NyBzdWJqZWN0cyB3ZXJlIGZhc3Rpbmcgd2hpbGUgdGFraW5nIHRoZXkgc3VydmV5IGFuZCAxNTcgd2VyZSBub3QgZmFzdGluZy4gCgpcCgpgYGB7ciwgZWNobz1GfQpsaWJyYXJ5KGtuaXRyKQpsaWJyYXJ5KHh0YWJsZSkKbGlicmFyeShyZXNoYXBlMikKbGlicmFyeShsc21lYW5zKQpsaWJyYXJ5KGdncGxvdDIpCmxpYnJhcnkocHN5Y2gpCmxpYnJhcnkobmxtZSkKbGlicmFyeShsbWVyVGVzdCkKbGlicmFyeShmb3JtYXRSKQoKYGBgClwKCiMjIyMjIEFnZSAKYGBge3IsIGVjaG89Rn0KcXBsb3QocmFtYWRhbjIwMjAudGltZTEkYWdlLngsIGdlb20gPSAiZGVuc2l0eSIpICsgdGhlbWVfbWluaW1hbCgpCmBgYApcCgojIyMjIyBDb3VudHJ5IG9mIGJpcnRoICAoJSkKYGBge3IsIGVjaG89RiwgdGlkeSA9IFRSVUV9CmthYmxlKHJvdW5kKDEwMCpwcm9wLnRhYmxlKHNvcnQodGFibGUocmFtYWRhbjIwMjAudGltZTEkQ291bnRyeS5vZi5CaXJ0aFtyYW1hZGFuMjAyMC50aW1lMSRQUk9MSUZJQ19QSUQgJWluJSBjaGVja2VkLklELjEuNV0pLCBkZWNyZWFzaW5nID0gVCkpWzE6NF0sIDIpLCBjb2wubmFtZXMgPSBjKCIiLCAiJSIpKQpgYGAKXAoKIyMjIyMgQ3VycmVudCBjb3VudHJ5IG9mIHJlc2lkZW5jZSAoJSkKYGBge3IsIGVjaG89RkFMU0V9CmthYmxlKHJvdW5kKDEwMCpwcm9wLnRhYmxlKHNvcnQodGFibGUocmFtYWRhbjIwMjAudGltZTEkQ3VycmVudC5Db3VudHJ5Lm9mLlJlc2lkZW5jZVtyYW1hZGFuMjAyMC50aW1lMSRQUk9MSUZJQ19QSUQgJWluJSBjaGVja2VkLklELjEuNV0pLCBkZWNyZWFzaW5nID0gVCkpWzE6NF0sIDIpLCBjb2wubmFtZXMgPSBjKCIiLCAiJSIpKQoKYGBgClwKCiMjIyMjIE5hdGlvbmFsaXR5ICglKQpgYGB7ciwgZWNobz1GQUxTRX0Ka2FibGUocm91bmQoMTAwKnByb3AudGFibGUoc29ydCh0YWJsZShyYW1hZGFuMjAyMC50aW1lMSROYXRpb25hbGl0eVtyYW1hZGFuMjAyMC50aW1lMSRQUk9MSUZJQ19QSUQgJWluJSBjaGVja2VkLklELjEuNV0pLCBkZWNyZWFzaW5nID0gVCkpWzE6NF0sIDIpLCBjb2wubmFtZXMgPSBjKCIiLCAiJSIpKQpgYGAKXAoKIyMjIyMgU2V4CmBgYHtyLCBlY2hvPUZBTFNFfQprYWJsZSh0YWJsZShyYW1hZGFuMjAyMC50aW1lMSRzZXgpLCBjb2wubmFtZXMgPSBjKCIiLCAiJSIpKQpgYGAKXAoKIyMjIyMgRWR1Y2F0aW9uICglKQpgYGB7ciwgZWNobz1GQUxTRX0Ka2FibGUocm91bmQoMTAwKnByb3AudGFibGUoc29ydCh0YWJsZShyYW1hZGFuMjAyMC50aW1lMSRlZHVjYXRpb25bcmFtYWRhbjIwMjAudGltZTEkUFJPTElGSUNfUElEICVpbiUgY2hlY2tlZC5JRC4xLjVdKSwgZGVjcmVhc2luZyA9IFQpKVsxOjRdLCAyKSwgY29sLm5hbWVzID0gYygiIiwgIiUiKSkKYGBgClwKCiMjIyMjIExpdmluZyBhcmVhICglKQpgYGB7ciwgZWNobz1GQUxTRX0Ka2FibGUocm91bmQoMTAwKnByb3AudGFibGUoc29ydCh0YWJsZShyYW1hZGFuMjAyMC50aW1lMSRsaXZpbmdbcmFtYWRhbjIwMjAudGltZTEkUFJPTElGSUNfUElEICVpbiUgY2hlY2tlZC5JRC4xLjVdKSwgZGVjcmVhc2luZyA9IFQpKSwgMiksIGNvbC5uYW1lcyA9IGMoIiIsICIlIikpCmBgYApcCgpcCgojIyMjICoqU29jaWFsIERpbGVtbWEqKgpBbGwgc3ViamVjdHMgcmVzcG9uZGVkIHRvIHRoZSBmb2xsb3dpbmcgdGFzaywgZGVzaWduZWQgdG8gbWVhc3VyZSBkZW1hbmQgb24gY29tbW9uIHBvb2xzIG9mIHZhcnlpbmcgc2l6ZToKClwKCj4gSW4gdGhpcyBmaXJzdCB0YXNrLCB5b3UgYXJlIHJhbmRvbWx5IGdyb3VwZWQgd2l0aCAqKjQqKiBvdGhlciBwYXJ0aWNpcGFudHMgaW4gdGhpcyBzdHVkeS4gWW91ciBncm91cCBpcyBnaXZlbiBzb21lIGJvbnVzIHBvaW50cyB0byBzaGFyZS4gWW91IGVhY2ggcHJpdmF0ZWx5IHJlcXVlc3Qgc29tZSBvZiB0aGVzZSBwb2ludHMuIFlvdSB3aWxsIG5vdCBrbm93IGhvdyBtdWNoIHRoZSBvdGhlcnMgYXJlIHJlcXVlc3RpbmcgYW5kIHlvdSBjYW5ub3QgY29tbXVuaWNhdGUgd2l0aCBlYWNoIG90aGVyLjxiciAvPjxiciAvPiBUaGVyZSBhcmUgKio1MDAgcG9pbnRzKiogYXZhaWxhYmxlLiA8YnIgLz48YnIgLz5XZSB3aWxsIGFkZCB1cCB0aGUgcmVxdWVzdHMgZnJvbSBhbGwgb2YgeW91LiBJZiB0aGUgdG90YWwgaXMgbGVzcyB0aGFuIHRoZSBudW1iZXIgb2YgYm9udXMgcG9pbnRzIGF2YWlsYWJsZSwgdGhlbiB5b3UgZWFjaCByZWNlaXZlIHRoZSBib251cyBwb2ludHMgeW91IHJlcXVlc3RlZC4gQnV0IGlmIHRoZSBzdW0gb2YgcmVxdWVzdHMgaXMgbW9yZSB0aGFuIHRoZSBhdmFpbGFibGUgcG9pbnRzLCBub25lIG9mIHlvdSBnZXRzIGFueXRoaW5nLjxiciAvPjxiciAvPlNvIGxhcmdlciByZXF1ZXN0cyBjb3VsZCBnZXQgeW91IG1vcmUgYm9udXMgcG9pbnRzLCBidXQgeW91IG1pZ2h0IGFsc28gZW5kIHVwIHdpdGggbm90aGluZyBpZiBldmVyeW9uZSBtYWtlcyBsYXJnZSByZXF1ZXN0cy4gSG93IG1hbnkgcG9pbnRzIGRvIHlvdSByZXF1ZXN0PyIsCgoKVGhlIG51bWJlciBvZiBwb2ludHMgd2VyZSBvbmx5IGZpeGVkIGluIHRoZSBmaXJzdCByb3VuZC4gSW4gdGhlIGZvbGxvdyB1cCByb3VuZHMsIHRoZXkgcG9vbCBzaXplIGJlY2FzbWUgaW5jcmVhc2luZ2x5IHVuY2VydGFpbiAgYnV0IHRoZSBtZWFuIHN0YXlzIHRoZSBzYW1lICgkNTAwKTogCiAgCiAgLSAqKiQ0MjUtJDU3NSoqCiAgLSAqKiQzNTAtJDY1MCoqCiAgLSAqKiQyNzUtJDc3NSoqCiAgLSAqKiQyMDAtJDg1MCoqCiAgLSAqKiQxMjUtJDkyNSoqCgpgYGB7ciwgZWNobz1GLCBtZXNzYWdlPUZ9CmRlbGV0ZS5tZTwtbWVsdChyYW1hZGFuMjAyMC50aW1lMVtyYW1hZGFuMjAyMC50aW1lMSRQUk9MSUZJQ19QSUQgJWluJSBjaGVja2VkLklELjEuNSwgZ3JlcCgic29jaWFsLmRpbGVtbWEiLCBuYW1lcyhyYW1hZGFuMjAyMC50aW1lMSkpWzE6Nl1dLCB2YXJpYWJsZS5uYW1lID0gImRpbGVtbWEudHlwZSIpCgpkZWxldGUubWUkZGlsZW1tYS50eXBlPC1jKCIkNTAwIiwgIiQ0MjUtJDU3NSIsICIkMzUwLSQ2NTAiLCAiJDI3NS0kNzc1IiwgIiQyMDAtJDg1MCIsICIkMTI1LSQ5MjUiKQoKZ2dwbG90KGRlbGV0ZS5tZSwgYWVzKHNvcnQoZGlsZW1tYS50eXBlKSwgeSA9IHZhbHVlKSkgKyBnZW9tX2JveHBsb3QoKSArIHlsYWIoImFtb3VudCBkZW1hbmRlZCAoJCkiKSArIHRoZW1lX21pbmltYWwoKSArIHhsYWIoIlxuZGlsZW1tYSB0eXBlIikKCmBgYAoKXAoKQXMgZXhwZWN0ZWQsIGRlbWFuZGVkIGFtb3VudHMgaW5jcmVhc2UgYXMgdW5jZXJ0YWludHkgYWJvdXQgdGhlIHBvb2wgc2l6ZSBpbmNyZWFzZXMuIFRoZSBzaXggdmFsdWVzIG9idGFpbmVkIGZyb20gZWFjaCBwYXJ0aWNpcGFudCBzaG93ZWQgaGlnaCByZWxpYWJpbGl0eSAoJFxhbHBoYSQgPSAwLjk2KSBhbmQgd2VyZSBhdmVyYWdlZCBpbnRvIG9uZSBzY29yZXMgKE0gPSBgciByb3VuZChtZWFuKHJhbWFkYW4yMDIwLnRpbWUxJHNvY2lhbC5kaWxlbW1hLmF2Z1tyYW1hZGFuMjAyMC50aW1lMSRQUk9MSUZJQ19QSUQgJWluJSBjaGVja2VkLklELjEuNV0sIG5hLnJtPUYpLCAyKWAsIFNEID0gYHIgcm91bmQoc2QocmFtYWRhbjIwMjAudGltZTEkc29jaWFsLmRpbGVtbWEuYXZnW3JhbWFkYW4yMDIwLnRpbWUxJFBST0xJRklDX1BJRCAlaW4lIGNoZWNrZWQuSUQuMS41XSwgbmEucm09RiksMilgKS4KClwKClByZXZpb3VzIHdvcmsgc2hvd3MgdG93IG1kb2VyYXRvcnMgb2YgdGhlIGFtb3VudCBzIGRlbWFuZGVkIG9uIHRpaHMgdGFzazoKCiAgMS4gKipyaXNrIHRha2luZyoqOiByaXNrIHRha2VycyBkZW1hbmQgbGFyZ2VyIGFtb3VudCBvbiB0aGlzIHRhc2sgd2hlcmVhcyByaXNrLWF2ZXJzZSBwZW9wbGUgZGVtYW5kIHNtYWxsZXIgYW1vdW50cy4gSW4gb3dyZHMgb2YgQnVkZXNjdSwgUmFwcGFwb3J0ICYgU3VsYWltYW4sIDE5OTA6IAogIAo+IF8iV2hlbiBzdWJqZWN0cyB3ZXJlIGNsYXNzaWZpZWQgYWNjb3JkaW5nIHRvIHRoZWlyIGF0dGl0dWRlIHRvd2FyZHMgcmlzaywgd2UgZm91bmQgYSBjb25zaXN0ZW50IHBhdHRlcm4gb2Ygb3ZlcmRlbWFuZCBieSByaXNrLXNlZWtlcnMgYW5kIG1vcmUgbW9kZXN0IHJlcXVlc3RzIGJ5IHJpc2stYXZvaWRlcnMuIFRoaXMgaXMgYW4gaW1wcmVzc2l2ZSByZXN1bHQgaWYgb25lIHJlY2FsbHMgdGhhdCB0aGUgY2xhc3NpZmljYXRpb24gaW4gdGVybXMgb2YgcmlzayB3YXMgaW5kZXBlbmRlbnQgb2YgdGhlIGRpbGVtbWEgdGFzay4iXwoKICAyLiAqKnNvY2lhbCB2YWx1ZSBvcmllbnRhdGlvbioqOiBwZW9wbGUgaGlnaGVyIGluIHNvY2lhbCB2YWx1ZSBvcmllbnRhdGlvbiBoYXZlIGJlZW4gc2hvd24gdG8gZGVtYW5kIAogIApcCgojIyMjICoqUmlzayB0YWtpbmcqKgpXZSB1c2VkIHRocmVlIGl0ZW1zIHRvIG1lYXN1cmUgcmlzay10YWtpbmc6CgooMSkgU2luZ2xlIGl0ZW0gb24gZmluYW5jaWFsIHJpc2sgdGFraW5nICh3ZSB1c2VkIHRoaXMgaW4gcHJldmlvdXMgc3R1ZGllcyk6IAoKPiBIb3cgbXVjaCBmaW5hbmNpYWwgcmlzayB5b3UgYXJlIHdpbGxpbmcgdG8gdGFrZSB3aGVuIHlvdSBtYWtlIGEgZmluYW5jaWFsIGludmVzdG1lbnQ/CgooMikgRml2ZSBpdGVtcyBmcm9tIEZhbGsgZXQgYWwgb24gcmlzayB0YWtpbmcgaW4gZGlmZmVyZW50IGRvbWFpbnMgb2YgbGlmZSAoX25vdCBhdCBhbGxfICgwKSAtIF92ZXJ5IG11Y2hfICgxMSkpLiBUaGVzZSBpdGVtcyB3ZXJlIHJlbGxpYWJseSBjb3JyZWF0ZWQgKCRcYWxwaGEkID0gMC45NikgYW5kIGNvbWJpbmVkIGludG8gYSBzaW5nbGUgaXRlbSAoTSA9IGByIHJvdW5kKG1lYW4ocmFtYWRhbjIwMjAudGltZTEkcmlzay5mYWxrLmF2Z1tyYW1hZGFuMjAyMC50aW1lMSRQUk9MSUZJQ19QSUQgJWluJSBjaGVja2VkLklELjEuNV0sIG5hLnJtPVQpLCAyKWAsIFNEID0gYHIgcm91bmQoc2QocmFtYWRhbjIwMjAudGltZTEkcmlzay5mYWxrLmF2Z1tyYW1hZGFuMjAyMC50aW1lMSRQUk9MSUZJQ19QSUQgJWluJSBjaGVja2VkLklELjEuNV0sIG5hLnJtPVQpLDIpYCkuCgo+IDEuIERvIHlvdSBzZWUgeW91cnNlbGYgZ2VuZXJhbGx5IGFzIGEgcGVyc29uIHdobyBpcyBmdWxseSBwcmVwYXJlZCB0byB0YWtlIHJpc2tzIG9yIGRvIHlvdSB0cnkgdG8gYXZvaWQgdGFraW5nIHJpc2tzPwo+IDIuIFdoZW4gZHJpdmluZyBhIGNhciwgYXJlIHlvdSBhIHBlcnNvbiB3aG8gdGFrZXMgcmlza3Mgb3IgZG8geW91IHRyeSB0byBhdm9pZCB0YWtpbmcgcmlza3MgYXMgYSBkcml2ZXI/Cj4gMy4gSW4gZmluYW5jaWFsIG1hdHRlcnMsIGFyZSB5b3UgYSBwZXJzb24gd2hvIHRha2VzIHJpc2tzIHdpdGggbW9uZXkgKGZvciBleGFtcGxlLCBpbnZlc3RpbmcgaW4gc3BlY3VsYXRpdmUgc3RvY2tzKT8KPiA0LiBIb3cgYWJvdXQgaW4gc3BvcnRzL2xlaXN1cmUgY2hvaWNlcywgYXJlIHlvdSBhIHBlcnNvbiB3aG8gcGFydGljaXBhdGVzIGluIHJpc2t5IHNwb3J0cyBhbmQgYWN0aXZpdGllcyAoZm9yIGV4YW1wbGUgc2tpaW5nLCBza3lkaXZpbmcsIGNhbXBpbmcgaW4gdGhlIHdpbGRlcm5lc3MsIGV0Yy4pPwo+IDUuIEluIHlvdXIgY2FyZWVyIGFuZCBzb2NpYWwgbGlmZSwgYXJlIHlvdSBhIHBlcnNvbiB3aG8gdGFrZXMgcmlza3MgKGZvciBleGFtcGxlLCBzd2l0Y2hpbmcgam9icyBtaWQtY2FyZWVyLCBkaXNhZ3JlZWluZyB3aXRoIHlvdXIgYm9zcywgbW92aW5nIHRvIGEgY2l0eSBmYXIgZnJvbSB5b3VyIGZhbWlseSwgZXRjLik/Cj4gNi4gQXJlIHlvdSBhIHBlcnNvbiB3aG8gdGFrZXMgcmlza3Mgd2l0aCB0aGVpciBzYWZldHkgYW5kIGhlYWx0aCAoV2FsayBhbG9uZSBhdCBuaWdodCBpbiBhbiB1bnNhZmUgcGFydCBvZiB0b3duLCBub3Qgd2VhciBhIHNlYXRiZWx0IGluIGEgY2FyIG9yIGEgaGVsbWV0IG9uIGEgYmlrZSwgZXRjLik/CgozLiBBbGwgc3ViamVjdHMgY29tcGVsZXRlZCAyNSByb3VuZCBvZiB0aGUgQkFSVCAoQmFsbG9vbiBBbmFsb2d1ZSBSaXNrIFRhc2spLiBUaGUgbnVtYmVyIG9mIHB1bXBzIGluIHRoZSByb3VuZHMgdGhhdCB0aGV5IGNhc2hlZCBpbiB0aGVpciBwb2ludHMgaW5kaWNhdGVzIHRoZWlyIHJpc2sgdG9sZXJhbmNlLiBMb3dlciBudW1iZXIgbWVhbiB0aGUgc3ViamVjdCBzd2FzIG1vcmUgcmlzay1hdmVyc2UgYW5kIG9uIGF2ZXJhZ2UgY2hvc2UgdG8gY2FzaCBpbiB0aGVpciBwb2ludHMgZWFybGllci4gVGFibGUgYmVsb3cgc2hvd3MgU3BlYXJtYW4gY29ycmVsYXRpb25zIG9mIHRoZXNlIHRocmVlIG1lYXN1cmVzIG9mIHJpc2suIApcCgpgYGB7ciwgcmVzdWx0cz0nYXNpcycsIGVjaG89Riwgd2FybmluZz1GQUxTRSwgY29tbWVudD1GfQprYWJsZShjb3JzdGFycyh3aXRoKHJhbWFkYW4yMDIwLnRpbWUxW3JhbWFkYW4yMDIwLnRpbWUxJFBST0xJRklDX1BJRCAlaW4lIHJhbWFkYW4yMDIwLnRpbWUxJFBST0xJRklDX1BJRCwgXSwgZGF0YS5mcmFtZSgic2luZ2xlLml0ZW0iPWFzLm51bWVyaWMocmlzay5xdWFsKSwgImZhbGsuYXZnIj1yaXNrLmZhbGsuYXZnLCAicHVtcC5jYXNoZWQiID0gYmFydC5jb3VudC5wdW1wKSksICJzcGVhcm1hbiIpKQpgYGAKCgpUaGUgY29tYmluZWQgcmVsaWFiaWxpdHkgb2YgdGhlc2UgdGhyZWUgaXRlbXMgaXMgYWNjZXB0YWJsZSAoJFxhbHBoYSQgPSAwLjc1KSBhbmQgdGhleSBhcmUgYXZlcmFnZSBpbnRvIGEgc2luZ2xlIGNvbXBvc2l0ZSBzY29yZSAoKE0gPSBgciByb3VuZChtZWFuKHJhbWFkYW4yMDIwLnRpbWUxJHJpc2suYWxsW3JhbWFkYW4yMDIwLnRpbWUxJFBST0xJRklDX1BJRCAlaW4lIGNoZWNrZWQuSUQuMS41XSwgbmEucm09VCksIDIpYCwgU0QgPSBgciByb3VuZChzZChyYW1hZGFuMjAyMC50aW1lMSRyaXNrLmFsbFtyYW1hZGFuMjAyMC50aW1lMSRQUk9MSUZJQ19QSUQgJWluJSBjaGVja2VkLklELjEuNV0sIG5hLnJtPVQpLDIpYCkuCgoKXAoKCiMjIyMgKipTb2NpYWwgVmFsdWUgT3JpZW50YXRpb24gKFNWTykqKgpTVk8gaXMgYSA5IGl0ZW0gdGFzayB3aGVyZSBzdWJqZWN0cyBpbmRpY2F0ZSB0aGVpciBwcmVmZXJyZWQgY2hvaWNlIGFtb25nIHRocmVlIHBvc3NpYmxlIGRpc3RyaWJ1dGlvbnMuIEluIGVhY2ggc2V0IG9mIHRocmVlIGNob2NpZXMsIG9uZSBpcyBwcm9zb2NpYWwsIGFub3RoZXIgaXMgc2VsZi1mb2N1c2VkLCBhbmQgb25lIGNvbXBldGlhdGl2ZS4gSW4gd29yZHMgb2YgTWlsbCAmIFRoZWVsZW46IAoKPiBfV2l0aGluIHRoaXMgY29uc3RydWN0LCBwZW9wbGUgY2FuIGJlIGNhdGVnb3JpemVkIGludG8gcHJvc29jaWFscyAoaW5kaXZpZHVhbHMgd2hvIGFyZSBjb25jZXJuZWQgd2l0aCB0aGVpciBvd24gYW5kIG90aGVyc+KAmSB3ZWxmYXJlIG9yIHNvbGVseSBvdGhlcnMgd2VsZmFyZSkgYW5kIHByb3NlbGZzIChpbmRpdmlkdWFscyB3aG8gdHJ5IHRvIHNvbGVseSBtYXhpbWl6ZSB0aGVpciBvd24gd2VsZmFyZSBvciBtYXhpbWl6ZSBkaWZmZXJlbmNlcykuIEluIHRoZSBwYXN0IGZldyBkZWNhZGVzLCBTVk8gaGFzIHNob3duIHRvIGJlIGEgdmFsdWFibGUgY29uc3RydWN0IGZvciB1bmRlcnN0YW5kaW5nIGFuZCBwcmVkaWN0aW5nIHBlb3BsZeKAmXMgZGVjaXNpb24tbWFraW5nIGluIHNvY2lhbCBkaWxlbW1hcyBhY3Jvc3MgZGlmZmVyZW50IGRpc2NpcGxpbmVzIGxpa2UgcHN5Y2hvbG9neS4iXwoKClRoZSBpbnN0cnVjdGlvbiBhbmQgdGhlIGNob2ljZXMgb2YgdGhlIHRhc2sgYXJlIGFzIGZvbGxvd3M6CgoKPiBTbyB0aGUgbmV4dCB0YXNrIGlzIGFub3RoZXIgcG9pbnQgYWxsb2NhdGlvbiB0YXNrLiBZb3UgZ2V0IHRvIGRlY2lkZSBob3cgdG8gc3BsaXQgc29tZSBtb25leSBiZXR3ZWVuIHlvdXJzZWxmIGFuZCBhbm90aGVyIHBlcnNvbi4gVGhpcyBwZXJzb24gd2lsbCBiZSByYW5kb21seSBzZWxlY3RlZCBmcm9tIG90aGVyIHBhcnRpY2lwYW50cyBpbiB0aGlzIGV4cGVyaW1lbnQuPGJyIC8+PGJyIC8+KipZb3VyIHNoYXJlcyB3aWxsIGJlIGNvbnZlcnRlZCB0byBib251cyBwb2ludHMgdGhhdCBkZXRlcm1pbmUgeW91ciBjaGFuY2VzIGluIGEgJDUwIHJhZmZsZSoqLiBTbywgZXZlcnkgY2hvaWNlIGhhcyB2YWx1ZTogdGhlIG1vcmUgcG9pbnRzIHlvdSByZWNlaXZlLCB0aGUgYmV0dGVyIGZvciB5b3UsIGFuZCB0aGUgbW9yZSBwb2ludHMgdGhlICdPdGhlcicgcmVjZWl2ZXMsIHRoZSBiZXR0ZXIgZm9yIGhpbS9oZXIuPGJyIC8+PGJyIC8+VGhlcmUgYXJlIG5vIHJpZ2h0IG9yIHdyb25nIGFuc3dlcnMgLS0gY2hvb3NlIHRoZSBvcHRpb24gdGhhdCB5b3UsIGZvciB3aGF0ZXZlciByZWFzb24sIHByZWZlciBtb3N0LiBZb3UnbGwgcGxheSA5IHJvdW5kcy4gUHJlc3MgJ05leHQnIHRvIGJlZ2luLiIKCgp8Y2hvaWNlfGF8YnxjfAp8LS0tfC0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLXwKfDF8XCQ0ODAgZm9yIG1lLCAkODAgZm9yIE90aGVyfFwkNTQwIGZvciBtZSwgXCQyODAgZm9yIE90aGVyfFwkNDgwIGZvciBtZSwgXCQ0ODAgZm9yIE90aGVyfAp8MnxcJDU2MCBmb3IgbWUsICQzMDAgZm9yIE90aGVyfFwkNTAwIGZvciBtZSwgXCQ1MDAgZm9yIE90aGVyfFwkNTAwIGZvciBtZSwgXCQxMDAgZm9yIE90aGVyfAp8M3xcJDUyMCBmb3IgbWUsICQ1MjAgZm9yIE90aGVyfFwkNTIwIGZvciBtZSwgXCQxMjAgZm9yIE90aGVyfFwkNTgwIGZvciBtZSwgXCQzMjAgZm9yIE90aGVyfAp8NHxcJDUwMCBmb3IgbWUsICQxMDAgZm9yIE90aGVyfFwkNTYwIGZvciBtZSwgXCQzMDAgZm9yIE90aGVyfFwkNDkwIGZvciBtZSwgXCQ0OTAgZm9yIE90aGVyfAp8NXxcJDU2MCBmb3IgbWUsICQzMDAgZm9yIE90aGVyfFwkNTAwIGZvciBtZSwgXCQ1MDAgZm9yIE90aGVyfFwkNDkwIGZvciBtZSwgXCQ5MCBmb3IgT3RoZXJ8Cnw2fFwkNTAwIGZvciBtZSwgJDUwMCBmb3IgT3RoZXJ8XCQ1MDAgZm9yIG1lLCBcJDEwMCBmb3IgT3RoZXJ8XCQ1NzAgZm9yIG1lLCBcJDMwMCBmb3IgT3RoZXJ8Cnw3fFwkNTEwIGZvciBtZSwgJDUxMCBmb3IgT3RoZXJ8XCQ1NjAgZm9yIG1lLCBcJDMwMCBmb3IgT3RoZXJ8XCQ1MTAgZm9yIG1lLCBcJDExMCBmb3IgT3RoZXJ8Cnw4fFwkNTUwIGZvciBtZSwgJDMwMCBmb3IgT3RoZXJ8XCQ1MDAgZm9yIG1lLCBcJDEwMCBmb3IgT3RoZXJ8XCQ1MDAgZm9yIG1lLCBcJDUwMCBmb3IgT3RoZXJ8Cnw5fFwkNDgwIGZvciBtZSwgJDEwMCBmb3IgT3RoZXJ8XCQ0OTAgZm9yIG1lLCBcJDQ5MCBmb3IgT3RoZXJ8XCQ1NDAgZm9yIG1lLCBcJDMwMCBmb3IgT3RoZXJ8CgpcCgpJbiB0aGUgdGFibGUgYWJvdmUsIGNob2ljZXMgYXJlIGNhdGVnb3JpemVkIGFzIGZvbGxvd3M6CgogLSAqKnByb3NvY2lhbCBjaG9pY2VzKio6ICAgICAgIDFjIDJiIDNhIDRjIDViIDZhIDdhIDhjIDliIAogLSAqKmluZGl2aWR1YWxpc3RpYyBjaG9pY2VzKio6IDFiIDJhIDNjIDRiIDVhIDZjIDdiIDhhIDljCiAtICoqY29tcGV0aXRpdmUgY2hvaWNlcyoqOiAgICAgMWEgMmMgM2IgNGEgNWMgNmIgN2MgOGIgOWEKClwKClBlb3BsZSBiZWxvbmcgdG8gY2F0ZWdvcmllcyB0aGF0IHRoZXkgc2NvcmUgNSBvciBhYm92ZSBvbi4gU29tZXRpbWVzLCB0aGUgaW5kaXZpZGl1YWxpc3RpYyBhbmQgY29tcGV0aXRpdmUgaXRlbXMgYXJlIGFkZGVkIHVwIHRvIGNyZWF0ZSBhIF9zcHJvc2VsZl8gY2F0ZWdvcnkuIFRoZSB0YWJsZSBiZWxvdyBzaG93cyB0aGUgZGlzdHJpYnV0aW9uIG9mIHJlc3BvbnNlcyBpbiBwZXJjZW50YWdlcy4gQmVjYXN1ZSB0aGUgc2FtcGxlIGlzIHNrZWR3ZWQgdG93YXJkIHByb3NvY2lhbGl0eSwgSSB0cmllZCB0d28gd2F5IG9mIGNvZGluZzogT25lIHNpbXBseSBiYXNlZCBvbiBudW1lYnIgb2YgcHJvc29jaWFsIGNob2ljZSBwZW9wbGUgbWFkZSAoMS05KSwgYW5kIGFub3RoZXIgd2hlcmUgSSBkaWNob3RtaXplZCA5IHZzLiA8OSBvbiBwcm9zb2NpYWwgY2hvaWNlcy4gCgpgYGB7ciwgZWNobz1GfQprYWJsZShjYmluZChkYXRhLmZyYW1lKHByb3AudGFibGUodGFibGUocmFtYWRhbjIwMjAudGltZTEkc3ZvLnByb3NvY2lhbCkpKSwgZGF0YS5mcmFtZShwcm9wLnRhYmxlKHRhYmxlKHJhbWFkYW4yMDIwLnRpbWUxJHN2by5pbmRpdmlkdWFsaXN0aWMpKSksIGRhdGEuZnJhbWUocHJvcC50YWJsZSh0YWJsZShyYW1hZGFuMjAyMC50aW1lMSRzdm8uY29tcGV0aXRpdmUpKSkpWy1jKDUsMyldLCBjb2wubmFtZXMgPSBjKCJjb3VudCIsICJwcm9zb2NpYWwiLCAiaW5kaXZpZHVhbGlzdGljIiwgImNvbXBldGl0aXZlIikpCmBgYAoKClRoZSB0YWJsZSBiZWxvdyBzaG93cyB0aGUgU3BlYXJtYW4gY29ycmVsYXRpb25zIGJldHdlZW4gc29jaWFsIGRpbGVtbWEgZGVtYW5kLCByaXNrIHRha2luZywgYW5kIHByb3NvY2lhbCBzb3ZpYWwgdmFsdWUgb3JpZW50YXRpb24uIEluIHN1bSwgaGlnaGVyIHJpc2sgc2Vla2luZyBpcyBhc3NvY2lhdGVkIHdpdGggaW5jcmVhc2UgZGVtYW5kcyBvbiBjb21tb24gcG9vbCwgd2hlcmFzIGhpZ2hlciBzb2NpYWwgdmFsdWUgb3JlaW5ldGF0aW9uIGlzIGFzc29jaWF0ZSB3aXRoIHNtYWxsZXIgZG1hbmRzIG9uIHRoZSBjb21tb25kIHBvb2xzLiAKCmBgYHtyLCByZXN1bHRzPSdhc2lzJywgZWNobz1GfQprYWJsZShjb3JzdGFycyhyYW1hZGFuMjAyMC50aW1lMVtyYW1hZGFuMjAyMC50aW1lMSRQUk9MSUZJQ19QSUQgJWluJSByYW1hZGFuMjAyMC50aW1lMSRQUk9MSUZJQ19QSUQsIG5hbWVzKHJhbWFkYW4yMDIwLnRpbWUxKSAlaW4lIGMoInJpc2suYWxsIiwgInNvY2lhbC5kaWxlbW1hLmF2ZyIsICJzdm8ucHJvc29jaWFsIiwgcGFzdGUwKCJzb2NpYWwuZGlsZW1tYS4iLCAxOjYpKV0sICJzcGVhcm1hbiIpLCBjb2wubmFtZXMgPSBjKCIkNTAwIiwgIiQ0MjUtJDU3NSIsICIkMzUwLSQ2NTAiLCAiJDI3NS0kNzc1IiwgIiQyMDAtJDg1MCIsICIkMTI1LSQ5MjUiLCAic3ZvLnByb3NvY2lhbCIsICJzb2NpYWwuZGlsZW1tYS5hdmciKSkKYGBgCgpcCgojIyMjICoqTW9kZWxzKioKXAoKSSB0aGVuIHRlc3RlZCB0aGUgZm9sbG93aW5nIG1vZGVscy4gRmlyc3QsIGEgYmFzaWMgbW9kZWwgbG9va2luZyBhdCBjZW50ZXJlZCBtZWFucy4KXAoKJFwgTWVhbi5EZW1hbmRlZC5BbW91bnQuU29jaWFsLkRpbGVtbWEkIH4gJFwgc3ZvLnByb3NvY2lhbCArIHJpc2suYWxsJFwKCmBgYHtyLCBlY2hvPUZ9CmthYmxlKHN1bW1hcnkod2l0aChkYXRhID0gcmFtYWRhbjIwMjAudGltZTFbcmFtYWRhbjIwMjAudGltZTEkUFJPTElGSUNfUElEICVpbiUgY2hlY2tlZC5JRC4xLjUsXSwgbG0oc2NhbGUoc29jaWFsLmRpbGVtbWEuYXZnKSB+IHNjYWxlKHN2by5wcm9zb2NpYWwpICsgc2NhbGUocmlzay5hbGwpKSkpJGNvZWZmaWNpZW50cywgZGlnaXRzID0gMykKYGBgCgpcCgpUaGVuIEkgdGVzdGVkIGEgbW9kZWwgdXNpbmcgZGljaG90b21pemVkIFNWTyBhbmQgdXNpbmcgdGhlIHNpeCBkaWxlbW1hcyBhcyByZXBlYXRlZCBtZWFzdXJlczoKXAoKJFwgRGVtYW5kZWQuQW1vdW50LlNvY2lhbC5EaWxlbW1hJCB+ICRcIHN2by5wcm9zb2NpYWwuZGljaG90bW91cyAqIHJpc2suYWxsICogZGlsZW1tYS50eXBlJFwKCmBgYHtyLCBlY2hvPUYsIHdhcm5pbmc9Rn0Ka2FibGUoYW5vdmEod2l0aChtZWx0KHJhbWFkYW4yMDIwLnRpbWUxW3JhbWFkYW4yMDIwLnRpbWUxJFBST0xJRklDX1BJRCAlaW4lIGNoZWNrZWQuSUQuMS41LCB3aGljaChuYW1lcyhyYW1hZGFuMjAyMC50aW1lMSkgJWluJSBjKCJQUk9MSUZJQ19QSUQiLCJmYXN0aW5nIiwic3ZvLnByb3NvY2lhbC5kaWMiLCAicmlzay5hbGwiLCBwYXN0ZTAoInNvY2lhbC5kaWxlbW1hLiIsIDE6NikpKV0sIHZhcmlhYmxlLm5hbWUgPSAiZGlsZW1tYS50eXBlIiwgaWQudmFycyA9IGMoIlBST0xJRklDX1BJRCIsICJyaXNrLmFsbCIsICJzdm8ucHJvc29jaWFsLmRpYyIpKSwgbG1lcihhcy5udW1lcmljKHZhbHVlKX5kaWxlbW1hLnR5cGUqcmlzay5hbGwgKyBkaWxlbW1hLnR5cGUqc3ZvLnByb3NvY2lhbC5kaWMgKyAoMXxQUk9MSUZJQ19QSUQpKSkpLCBkaWdpdHMgPSAzKQpgYGAKClwKClRoZW4gSSBzZXBlcmF0ZWx5IGxvb2tlZCBhdCBob3cgZmFzdGluZyBpbmZsdWVuY2VzIHRoZSBleHRlbnQgdG8gd2hpY2ggZGVtYW5kcyBvbiBlYWNoIGNvbW1vbiBwb29sIGlzIHJlbGF0ZWQgdG8gU1ZPIGFuZCByaXNrOgoKXAoKJFwgRGVtYW5kZWQuQW1vdW50LlNvY2lhbC5EaWxlbW1hJCB+ICRcIHN2by5wcm9zb2NpYWwgKiBkaWxlbW1hLnR5cGUgKiBmYXN0aW5nJFwKCgpgYGB7ciwgdGlkeT1ULCBlY2hvPUZ9CmthYmxlKGFub3ZhKHdpdGgobWVsdChyYW1hZGFuMjAyMC50aW1lMVtyYW1hZGFuMjAyMC50aW1lMSRQUk9MSUZJQ19QSUQgJWluJSBjaGVja2VkLklELjEuNSwgd2hpY2gobmFtZXMocmFtYWRhbjIwMjAudGltZTEpICVpbiUgYygiUFJPTElGSUNfUElEIiwiZmFzdGluZyIsInN2by5wcm9zb2NpYWwiLCAicmlzay5hbGwiLCJmYXN0aW5nIiwgcGFzdGUwKCJzb2NpYWwuZGlsZW1tYS4iLCAxOjYpKSldLCB2YXJpYWJsZS5uYW1lID0gImRpbGVtbWEudHlwZSIsIGlkLnZhcnMgPSBjKCJQUk9MSUZJQ19QSUQiLCAicmlzay5hbGwiLCAic3ZvLnByb3NvY2lhbCIsICJmYXN0aW5nIikpLCBsbWVyKGFzLm51bWVyaWModmFsdWUpfmZhc3RpbmcqZGlsZW1tYS50eXBlKnN2by5wcm9zb2NpYWwgKyByaXNrLmFsbCArICgxfFBST0xJRklDX1BJRCkpKSksIGRpZ2l0cyA9IDMpCmBgYAoKXAoKJFwgRGVtYW5kZWQuQW1vdW50LlNvY2lhbC5EaWxlbW1hJCB+ICRcIHJpc2suYWxsICogZGlsZW1tYS50eXBlICogZmFzdGluZyRcCgoKYGBge3IsIGVjaG89Rn0Ka2FibGUoYW5vdmEod2l0aChtZWx0KHJhbWFkYW4yMDIwLnRpbWUxW3JhbWFkYW4yMDIwLnRpbWUxJFBST0xJRklDX1BJRCAlaW4lIGNoZWNrZWQuSUQuMS41LCB3aGljaChuYW1lcyhyYW1hZGFuMjAyMC50aW1lMSkgJWluJSBjKCJQUk9MSUZJQ19QSUQiLCJmYXN0aW5nIiwic3ZvLnByb3NvY2lhbCIsICJyaXNrLmFsbCIsImZhc3RpbmciLCBwYXN0ZTAoInNvY2lhbC5kaWxlbW1hLiIsIDE6NikpKV0sIHZhcmlhYmxlLm5hbWUgPSAiZGlsZW1tYS50eXBlIiwgaWQudmFycyA9IGMoIlBST0xJRklDX1BJRCIsICJyaXNrLmFsbCIsICJzdm8ucHJvc29jaWFsIiwgImZhc3RpbmciKSksIGxtZXIoYXMubnVtZXJpYyh2YWx1ZSl+ZmFzdGluZypkaWxlbW1hLnR5cGUqcmlzay5hbGwgKyBzdm8ucHJvc29jaWFsICsgKDF8UFJPTElGSUNfUElEKSkpKSwgZGlnaXRzID0gMykKYGBgCgpcCgpJbiBzdW0sIHN2byBhbmQgcmlzayB0YWtpbmcgYm90aCBwcmVkaWN0IGRlbWFuZHMgb24gY29tbW9uIHBvb2xzLiBGYXN0aW5nIGluZmx1ZW5jZSB0aGUgcmVsYXRpb25zaGlwIGJldHdlZW4gc3ZvIGFuZCBkZW1hbmRzLCBidXQgbm90IHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiByaXNrIGFkbiBkZW1hbmQuIFRoZSBwbG90IGJlbG93IGRlbW9zdHJhdGUgdGhlIG1vZGVyYXRpbiBncm9sZSBvZiBmYXN0aW5nIG9uIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBzdm8gYW5kIGRlbWFuZHM6CgpgYGB7ciwgZWNobz1GLCBtZXNzYWdlPUYsIGNvbW1lbnQ9Rn0Kc29jaWFsLmRpbGVtbWEuc3ZvLmRpYy5mYXN0aW5nLm1vZGVsPC0od2l0aChtZWx0KHJhbWFkYW4yMDIwLnRpbWUxW3JhbWFkYW4yMDIwLnRpbWUxJFBST0xJRklDX1BJRCAlaW4lIGNoZWNrZWQuSUQuMS41LCB3aGljaChuYW1lcyhyYW1hZGFuMjAyMC50aW1lMSkgJWluJSBjKCJQUk9MSUZJQ19QSUQiLCJmYXN0aW5nIiwic3ZvLnByb3NvY2lhbC5kaWMiLCAicmlzay5hbGwiLCJmYXN0aW5nIiwgcGFzdGUwKCJzb2NpYWwuZGlsZW1tYS4iLCAxOjYpKSldLCB2YXJpYWJsZS5uYW1lID0gImRpbGVtbWEudHlwZSIsIGlkLnZhcnMgPSBjKCJQUk9MSUZJQ19QSUQiLCAicmlzay5hbGwiLCAic3ZvLnByb3NvY2lhbC5kaWMiLCAiZmFzdGluZyIpKSwgbG1lcihhcy5udW1lcmljKHZhbHVlKX5mYXN0aW5nKmRpbGVtbWEudHlwZSpzdm8ucHJvc29jaWFsLmRpYyArIHJpc2suYWxsICsgKDF8UFJPTElGSUNfUElEKSkpKSAKCnNvY2lhbC5kaWxlbW1hLnN2by5kaWMuZmFzdGluZy5tb2RlbC5scy5kZjwtZGF0YS5mcmFtZShsc21lYW5zKHNvY2lhbC5kaWxlbW1hLnN2by5kaWMuZmFzdGluZy5tb2RlbCwgcGFpcndpc2V+ZGlsZW1tYS50eXBlfGZhc3Rpbmd8c3ZvLnByb3NvY2lhbC5kaWMsIGFkanVzdD0iYm9uZmVycm9uaSIpJGxzbWVhbikKCmxldmVscyhzb2NpYWwuZGlsZW1tYS5zdm8uZGljLmZhc3RpbmcubW9kZWwubHMuZGYkZGlsZW1tYS50eXBlKTwtYygiJDUwMCIsICIkNDI1LSQ1NzUiLCAiJDM1MC0kNjUwIiwgIiQyNzUtJDc3NSIsICIkMjAwLSQ4NTAiLCAiJDEyNS0kOTI1IikKbGV2ZWxzKHNvY2lhbC5kaWxlbW1hLnN2by5kaWMuZmFzdGluZy5tb2RlbC5scy5kZiRmYXN0aW5nKTwtYygiZmFzdGluZyIsICJub3QgZmFzdGluZyIpCmBgYAoKCmBgYHtyLCBlY2hvPUYsIHdhcm5pbmc9RiwgbWVzc2FnZT1GfQpnZ3Bsb3Qoc29jaWFsLmRpbGVtbWEuc3ZvLmRpYy5mYXN0aW5nLm1vZGVsLmxzLmRmLCBhZXMoZGlsZW1tYS50eXBlLCBsc21lYW4sIGNvbD1zdm8ucHJvc29jaWFsLmRpYykpICsgZ2VvbV9lcnJvcmJhcihhZXMoeW1pbj1sc21lYW4tU0UsIHltYXg9bHNtZWFuK1NFKSwgd2lkdGg9MC4zLCBwb3NpdGlvbiA9ICJkb2RnZTIiKSArIGZhY2V0X2dyaWQoLn5mYXN0aW5nKSArIHhsYWIobGFiZWwgPSAicG9vbCBzaXplIikgKyB5bGFiKCJhbW91bnQgZGVtYW5kZWQiKSArIHRoZW1lX21pbmltYWwoKSArIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGZhY2UgPSAiYm9sZCIsIGNvbG9yID0gIiM5OTMzMzMiLCBzaXplID0gMTIsIGFuZ2xlID0gNDUpLCBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChmYWNlID0gImJvbGQiLCBjb2xvciA9ICJibHVlIiwgc2l6ZSA9IDEyLCBhbmdsZSA9IDQ1KSkKYGBgCgpMb29raW5nIGF0IHBvc3QgaG9jIGNvbnRyYXN0cyB3aXRoIGJvbmZlcnJvbmkgY29ycmVjdGlvbiwgd2UgZmluZCB0aGF0IGZhc3RlcnMgaGlnaCBpbiBzb2NpYWwgdmFsdWUgb3JpZW50YXRpb24gdG8gZGVtbmFkIHNpZ25pZmljYW50bHkgbGVzcyBhbW91bnRzIGZvcm0gdGhlIGNvbW1vbiBwbzBscyB0aGFudHRoZSBmYXN0ZXJzIHdobyBhcmUgbm90IGFsd2F5cyBwcm9zb2NpYWwgaW4gdGhlIGRlY2lzaW9uczoKCmBgYHtyLCB3YXJuaW5nPUYsIG1lc3NhZ2U9RiwgZWNobz1GfQprYWJsZShsc21lYW5zKHNvY2lhbC5kaWxlbW1hLnN2by5kaWMuZmFzdGluZy5tb2RlbCxwYWlyd2lzZX5zdm8ucHJvc29jaWFsLmRpY3xmYXN0aW5nLCBhZGp1c3Q9ImJvbmZlcnJvbmkiKSRjb250cmFzdHMpCmBgYAoKXAoKIyMjIyAqKlRydXN0KioKV2UgYWxzbyBtZWFzdXJlZCB0cnVzdCB1c2luZyBtdWx0aXBsZSBzY2xhZXMgYW5kIHRhc2tzOgoKICAoMSkgWWFtYWdpc2hpIGV0IGFsIChfc3Ryb25nbHkgZGlzYWdyZWVfICgxKSAtIF9zdHJvbmdseSBhZ3JlZV8gKDcpKTogCiAgCj4gVXNpbmcgdGhlIGZvbGxvd2luZyBzY2FsZSwgcGxlYXNlIGluZGljYXRlIGhvdyBtdWNoIHlvdSBhZ3JlZSBvciBkaXNhZ3JlZSB3aXRoIHRoZSBmb2xsb3dpbmcgc3RhdGVtZW50czoKCj4gMS4gTW9zdCBwZW9wbGUgdGVsbCBhIGxpZSB3aGVuIHRoZXkgY2FuIGJlbmVmaXQgYnkgZG9pbmcgc28uICAKPiAyLiBUaG9zZSBkZXZvdGVkIHRvIHVuc2VsZmlzaCBjYXVzZXMgYXJlIG9mdGVuIGV4cGxvaXRlZCBieSBvdGhlcnMuICAKPiAzLiBTb21lIHBlb3BsZSBkbyBub3QgY29vcGVyYXRlIGJlY2F1c2UgdGhleSBwdXJzdWUgb25seSB0aGVpciBvd24gc2hvcnQtdGVybSBzZWxmLWludGVyZXN0LiBUaHVzLCB0aGluZ3MgdGhhdCBjYW4gYmUgZG9uZSB3ZWxsIGlmIHBlb3BsZSBjb29wZXJhdGUgb2Z0ZW4gZmFpbCBiZWNhdXNlIG9mIHRoZXNlIHBlb3BsZS4gIAo+IDQuIE1vc3QgcGVvcGxlIGFyZSBiYXNpY2FsbHkgaG9uZXN0IChSKS4gIAo+IDUuIFRoZXJlIHdpbGwgYmUgbW9yZSBwZW9wbGUgd2hvIHdpbGwgbm90IHdvcmsgaWYgdGhlIHNvY2lhbCBzZWN1cml0eSBzeXN0ZW0gaXMgZGV2ZWxvcGVkIGZ1cnRoZXIuICAKCiAgKDIpIEZlaHIgZXQgYWwgKF9uZXZlcl8gKDEpIC0gX2Fsd2F5c18gKDUpKToKICAKPiAxLiBIb3cgb2Z0ZW4gZG8geW91IGxlbmQgcGVyc29uYWwgcG9zc2Vzc2lvbnMgdG8geW91ciBmcmllbmRzIChib29rcywgeW91ciBjYXIsIGJpY3ljbGUgZXRjLik/Cj4gMi4gSG93IG9mdGVuIGRvIHlvdSBsZW5kIG1vbmV5IHRvIHlvdXIgZnJpZW5kcz8KPiAzLiBIb3cgb2Z0ZW4gZG8geW91IGxlYXZlIHlvdXIgZG9vciB1bmxvY2tlZD8KCiAgCiAgKDMpIEZhbGsgZXQgYWwuIChfc3Ryb25nbHkgZGlzYWdyZWVfICgxKSAtIF9zdHJvbmdseSBhZ3JlZV8gKDcpKTogCiAgCiAgPkkgYXNzdW1lIHRoYXQgcGVvcGxlIGhhdmUgb25seSB0aGUgYmVzdCBpbnRlbnRpb25zLgoKICAKICAoNCkgVHJ1c3QgZ2FtZSAoXCQwIC0gXCQxMDAwKToKICAKPiBJbiB0aGlzIHRhc2ssIHdlIGFyZSBnaXZpbmcgeW91IDEwMDAgYm9udXMgcG9pbnRzLiBUaGV5IGFyZSB5b3VycyB0byBrZWVwLjxiciAvPjxiciAvPldlIGFyZSBhbHNvIGdpdmluZyB5b3UgYSBjaG9pY2U6IEdpdmUgc29tZSBvciBhbGwgb2YgdGhlc2UgcG9pbnRzIGJhY2ssIHdlIG11bHRpcGx5IGl0IGJ5ICoqMyoqLCBhbmQgZ2l2ZSBpdCB0byBhbm90aGVyIHBhcnRpY2lwYW50IGluIHRoaXMgc3R1ZHkuIFRoZXkgY2FuIHRoZW4gZGVjaWRlIHRvIHJldHVybiBzb21lIG9yIGFsbCBvZiB0aGUgcG9pbnRzIGJhY2sgdG8geW91IChUaGV5IGtub3cgd2UgZ2F2ZSB5b3UgMTAwMCBwb2ludHMgYW5kIHlvdSBkZWNpZGVkIHRvIHNlbmQgc29tZSBwb2ludHMgb3ZlciB0byB0aGVtKS48YnIgLz48YnIgLz5JdCdzIGVudGlyZWx5IHVwIHRvIHRoZW0gdG8gcmV0dXJuIGFueXRoaW5nLiBCdXQgaXQncyBlbnRpcmVseSB1cCB0byB5b3UgdG8gdGFrZSB0aGlzIGNoYW5jZSBhbmQgc2VuZCBzb21lIGJvbnVzIHBvaW50cyBvdmVyLiBZb3UgY2FuIGtlZXAgYWxsIHRoZSBwb2ludHMsIGdpdmUgc29tZSwgb3IgYWxsLiBXaGF0IHRoZXkgcmV0dXJuIHdpbGwgYmUgYWRkZWQgdG8gdGhlIHBvaW50cyB5b3UgZGVjaWRlZCB0byBrZWVwLjxiciAvPjxiciAvPkhvdyBtdWNoIHdvdWxkIHlvdSBsaWtlIHRvIHNlbmQ/CgogIApSZWxpYWJpbGl0eSBvZiBib3RoIFlhbWlnaXNoaSBHZW5lcmFsIFRydXN0IHNjYWxlICgkXGFscGhhJCA9IDAuNTQpIGFuZCBGZWhyJ3MgdGhyZWUgaXRlbSBzY2FsZSAoJFxhbHBoYSQgPSAwLjU0KSBhcmUgYm90aCBsb3cuIFRoZSBmaXJzdCB0d28gaXRlbXMgYXJlIGNvcnJlbGF0ZWQgaW4gdGhlIEZlaHIgc2NhbGUgKCRccmhvJCA9IDAuNDcpLCBidXQgbm90IHdpdGggdGhlIHRoaXJkIGl0ZW0gKCRccmhvJHMgPSAwLjE2IC0gMC4xOSkuCgpgYGB7ciwgaW5jbHVkZT1GLCB0aWR5PVQsIGVjaG89RkFMU0UsIHdhcm5pbmc9RkFMU0UsIGNvbW1lbnQ9Rn0KcHN5Y2g6OmFscGhhKHQoZGF0YS5mcmFtZShyYW1hZGFuMjAyMC50aW1lMSR0cnVzdC5mZWhyKSkpICNsb3cgYWxwaGEgKDAuNTQpCnJhbWFkYW4yMDIwLnRpbWUxJHRydXN0LmZlaHIuYXZnPC1zY2FsZShyb3dNZWFucyh0KGRhdGEuZnJhbWUocmFtYWRhbjIwMjAudGltZTEkdHJ1c3QuZmVocikpWywxOjJdKSkgIyBkcm9wIGl0ZW0gMyBsb3cgYWxwaGEgKDAuNTQpCgpwc3ljaDo6YWxwaGEodChkYXRhLmZyYW1lKHJhbWFkYW4yMDIwLnRpbWUxJHRydXN0KSlbLC02XSwgY2hlY2sua2V5cyA9IFQpCnJhbWFkYW4yMDIwLnRpbWUxJHRydXN0LnlhbWFnaXNoaS5hdmc8LXNjYWxlKHJvd01lYW5zKHJldmVyc2UuY29kZSh0KGRhdGEuZnJhbWUocmFtYWRhbjIwMjAudGltZTEkdHJ1c3QpKVssLTZdLCBrZXlzID0gYWxwaGEodChkYXRhLmZyYW1lKHJhbWFkYW4yMDIwLnRpbWUxJHRydXN0KSlbLC02XSwgY2hlY2sua2V5cyA9IFQpJGtleXMpKSkgI2xvdyBhbHBoYSAoMC41NCkKCnJhbWFkYW4yMDIwLnRpbWUxJHRydXN0LmZhbGs8LXNjYWxlKHQoZGF0YS5mcmFtZShyYW1hZGFuMjAyMC50aW1lMSR0cnVzdCkpWyw2XSkKcmFtYWRhbjIwMjAudGltZTEkdHJ1c3QuZ2FtZTwtc2NhbGUocmFtYWRhbjIwMjAudGltZTEkdHJ1c3QuZ2FtZSkKCmBgYAoKCkFsbCBpdGVtcyBvbiB0aGUgWWFtYWdpc2hpIHNjYWxlIGFuZCB0aGUgZmlyc3QgdHdvIG9mIEZlaHIgaXRlbXMgKCRcYWxwaGEkID0gMC42NSkgd2VyZSBjb21iaW5lZCBpbnRvIHNpbmdsZSBjb21wb3NpdGUgc2NvcmVzLiBUYWJsZSBiZWxvdyBzaG93cyBTcGVhcm1hbiBjb3JyZWxhdGlvbiBiZXR3ZWVuIHRoZXNlIGFuZCBvdGhlciBtZWFzdXJlcyBvZiB0cnVzdCAoRmFsaydzIHNpbmdsZSBpdGVtIHRydXN0IG1lYXN1cmUgYW5kIHRoZSBhbW91bnRzIHNlbnQgb24gdGhlIHRydXN0IGdhbWUpLCBhcyB3ZWxsIGFzIHJpc2stdGFraW5nLCBzb2NpYWwgdmFsdWUgb3JpZW50YXRpb24gKHN2byksIGFuZCBtZWFuIGFtb3VudHMgZGVtbmFuZGVkIG9uIHNvY2lhbCBkaWxlbW1hcy4gCgpgYGB7ciwgZWNobz1GLCBjb21tZW50PUYsIHRpZHk9VCwgd2FybmluZz1GQUxTRSwgY29tbWVudD1GfQprYWJsZShjb3JzdGFycyhyYW1hZGFuMjAyMC50aW1lMVtyYW1hZGFuMjAyMC50aW1lMSRQUk9MSUZJQ19QSUQgJWluJSByYW1hZGFuMjAyMC50aW1lMSRQUk9MSUZJQ19QSUQsIG5hbWVzKHJhbWFkYW4yMDIwLnRpbWUxKSAlaW4lIGMoInN2by5wcm9zb2NpYWwiLCAidHJ1c3QuZmFsayIsICJ0cnVzdC5nYW1lIiwgInRydXN0LnlhbWFnaXNoaS5hdmciLCAidHJ1c3QuZmVoci5hdmciLCAicmlzay5hbGwiLCAic29jaWFsLmRpbGVtbWEuYXZnIildLCAic3BlYXJtYW4iKSkKYGBgCgpcCgpJbnRlcmVzdGluZ2x5LCBub25lIG9mIHRoZSB0cnVzdCBtZWFzdXJlcyBhcmUgcmVsYXRlZCB0byByZXNwb25zZXMgb24gc29jaWFsIGRpbGVtbWEgcXVlc3Rpb25zLiBTb21lIG1lYXN1cmVzIG9mIHRydXN0IGFyZSBjb3JyZWxhdGVkIHdpdGggcmlzay10YWtpbmcgYW5kIHNvY2lhbCB2YWx1ZSBvcmllbnRhdGlvbi4gCgpJIHRlc3RlZCB0aGUgbW9kZWwgYmVsb3cgdG8gY29tYXByZSBmYXN0ZXJzIGFuZCBub24tZmFzdGVycyBvbiB0aGUgZm91ciBpbmRpY2VzIG9mIHRydXN0OgoKJFwgdHJ1c3Quc2NvcmUkIH4gJFwgdHJ1c3QudHlwZSAqIGZhc3RpbmckXAoKYGBge3IsIHRpZHk9VCwgZWNobz1GLCB3YXJuaW5nPUZBTFNFLCBjb21tZW50PUYsIG1lc3NhZ2U9Rn0Ka2FibGUoYW5vdmEod2l0aChtZWx0KHJhbWFkYW4yMDIwLnRpbWUxWyxncmVwKCJQUk9MSUZJQ19QSUR8dHJ1c3QuZ2FtZXx0cnVzdC5mZWhyLmF2Z3x0cnVzdC55YW1hZ2lzaGkuYXZnfHRydXN0LmZhbGt8ZmFzdGluZyIsIG5hbWVzKHJhbWFkYW4yMDIwLnRpbWUxKSldLCB2YXJpYWJsZS5uYW1lPSJ0cnVzdC50eXBlIiksIGxtZXIodmFsdWV+dHJ1c3QudHlwZSpmYXN0aW5nICsgKDF8UFJPTElGSUNfUElEKSkpKSwgZGlnaXRzID0gMykKYGBgCgpQb3N0IGhvYyB0ZXN0IHdpdGggQm9uZmVycm9uaSBjb3JyZWN0aW9uIHNob3dlZCBubyBzaWduaWZpY2FudCBkaWZmZXJlbmNlIGJldHdlZW4gZmFzdGVycyBhbmQgbm9uLWZhc3RlcnMgb24gYW55IG9mIHRoZSB0cnVzdCBpdGVtczoKCmBgYHtyLCB0aWR5PVQsd2FybmluZz1GQUxTRSwgZWNobz1GQUxTRSwgY29tbWVudD1GLCBtZXNzYWdlPUZ9CmthYmxlKGxzbWVhbnMod2l0aChtZWx0KHJhbWFkYW4yMDIwLnRpbWUxWyxncmVwKCJQUk9MSUZJQ19QSUR8dHJ1c3QuZ2FtZXx0cnVzdC5mZWhyLmF2Z3x0cnVzdC55YW1hZ2lzaGkuYXZnfHRydXN0LmZhbGt8ZmFzdGluZyIsIG5hbWVzKHJhbWFkYW4yMDIwLnRpbWUxKSldLCB2YXJpYWJsZS5uYW1lPSJ0cnVzdC50eXBlIiksIGxtZXIodmFsdWV+dHJ1c3QudHlwZSpmYXN0aW5nICsgKDF8UFJPTElGSUNfUElEKSkpLCBwYWlyd2lzZX5mYXN0aW5nfHRydXN0LnR5cGUsIGFkanVzdD0iYm9uZmVycm9uaSIpJGNvbnRyYXN0cykKYGBgCgpcCgpgYGB7cn0KIyBmYXN0aW5nIC0oKyktPiBzdm8ucHJvc29jaWFsIC0oLSktPiBzb2NpYWwuZGlsZW1tYSA8LSgrKS0gcmlzazoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc3RpbWF0ZSBTdGQuIEVycm9yIHQgdmFsdWUgUHIoPnx0fCkgICAgCiMgZmFzdGluZyAtKCspLT4gc3ZvLnByb3NvY2lhbDogICAgICAgICAgICNmYXN0aW5nTm8gICAgICAgLTAuODM3ICAgICAgMC4zODggIC0yLjE1NCAgMC4wMzE5ICogIAojIHN2by5wcm9zb2NpYWxpdHkgLSgtKS0+IHNvY2lhbC5kaWxlbW1hOiAjc3ZvLnByb3NvY2lhbCAgIC03LjA2MCAgICAgIDIuMTU2ICAtMy4yNzQgIDAuMDAxMTYgKiogCiMgc29jaWFsLmRpbGVtbWEgPC0oKyktIHJpc2s6ICAgICAgICAgICAgICNyaXNrLmFsbCAgICAgICAgMTIuMTQ3ICAgICAgNS41NjEgICAyLjE4NCAgMC4wMjk1OSAqIAoKYGBgCgoKIyMjIyBGYXN0aW5nCmBgYHtyfQpzdW1tYXJ5KHdpdGgocmFtYWRhbjIwMjAudGltZTFbcmFtYWRhbjIwMjAudGltZTEkUFJPTElGSUNfUElEICVpbiUgY2hlY2tlZC5JRC4xLjUsXSwgbG0oc2NhbGUoc29jaWFsLmRpbGVtbWEuYXZnKX5mYXN0aW5nKSkpCmBgYAoKCmBgYHtyfQpzdW1tYXJ5KHdpdGgocmFtYWRhbjIwMjAudGltZTFbcmFtYWRhbjIwMjAudGltZTEkUFJPTElGSUNfUElEICVpbiUgY2hlY2tlZC5JRC4xLjUsXSwgbG0oc2NhbGUoc3ZvLnByb3NvY2lhbCl+ZmFzdGluZykpKQpgYGAKCgpgYGB7cn0Kc3VtbWFyeSh3aXRoKHJhbWFkYW4yMDIwLnRpbWUxW3JhbWFkYW4yMDIwLnRpbWUxJFBST0xJRklDX1BJRCAlaW4lIGNoZWNrZWQuSUQuMS41LF0sIGxtKHNjYWxlKHJpc2suYWxsKX5mYXN0aW5nKSkpCmBgYAoKXAoKIyMjIyBMYXN0IG1lYWwKYGBge3J9CnN1bW1hcnkod2l0aChyYW1hZGFuMjAyMC50aW1lMVtyYW1hZGFuMjAyMC50aW1lMSRQUk9MSUZJQ19QSUQgJWluJSBjaGVja2VkLklELjEuNSxdLCBsbShzY2FsZShzb2NpYWwuZGlsZW1tYS5hdmcpfmZhc3RpbmcqYXMubnVtZXJpYyhmb29kLnJlbWluZGVyLnRpbWUpKSkpCgpzdW1tYXJ5KHdpdGgocmFtYWRhbjIwMjAudGltZTFbcmFtYWRhbjIwMjAudGltZTEkUFJPTElGSUNfUElEICVpbiUgY2hlY2tlZC5JRC4xLjUsXSwgbG0oc2NhbGUoc3ZvLnByb3NvY2lhbCl+ZmFzdGluZyphcy5udW1lcmljKGZvb2QucmVtaW5kZXIudGltZSkpKSkKCnN1bW1hcnkod2l0aChyYW1hZGFuMjAyMC50aW1lMVtyYW1hZGFuMjAyMC50aW1lMSRQUk9MSUZJQ19QSUQgJWluJSBjaGVja2VkLklELjEuNSxdLCBsbShzY2FsZShyaXNrLmFsbCl+ZmFzdGluZyphcy5udW1lcmljKGZvb2QucmVtaW5kZXIudGltZSkpKSkKCmBgYAoKCgoKIyMjIyBQZXJjZWl2ZWQgY29udHJvbAojIyMjIFJlY2lwcm9jaXR5IChOZWdhdGl2ZSkKIyMjIyBSZWNpcHJvY2l0eSAoUG9zaXRpdmUpCiMjIyMgQWx0cnVpc20KIyMjIyBDb3JyZWxhdGlvbnMKYGBge3J9CndpdGgocmFtYWRhbjIwMjAudGltZTFbcmFtYWRhbjIwMjAudGltZTEkUFJPTElGSUNfUElEICVpbiUgY2hlY2tlZC5JRC4xLjUsXSwgY29yc3RhcnNsKGRhdGEuZnJhbWUoImZhc3RpbmciPWFzLm51bWVyaWMoZmFzdGluZyksICJzb2MuZGlsLmF2ZyI9c29jaWFsLmRpbGVtbWEuYXZnLCByaXNrLmFsbCwgc3ZvLnByb3NvY2lhbCwgdHJ1c3QuZmFsaywgdHJ1c3QuZmVoci5hdmcsIHRydXN0LmdhbWUsIGh1bmdlciwgImxhc3QubWVhbCI9YXMubnVtZXJpYyhmb29kLnJlbWluZGVyLnRpbWUpLCAgImNvbnRyb2wiPWNvbnRyb2wuc2VsZi1jb250cm9sLm91dHNpZGUsIG5lZy5yZWNpcC5hdmcsIHBvcy5yZWNpcCwgYWx0cnVpc20pLCAicGVhcnNvbiIpKQoKYGBgCg==
Social Dilemma
All subjects responded to the following task, designed to measure demand on common pools of varying size:
The number of points were only fixed in the first round. In the follow up rounds, they pool size becasme increasingly uncertain but the mean stays the same ($500):
As expected, demanded amounts increase as uncertainty about the pool size increases. The six values obtained from each participant showed high reliability (\(\alpha\) = 0.96) and were averaged into one scores (M = 177.5, SD = 147.54).
Previous work shows tow mdoerators of the amount s demanded on tihs task: