Executive Summary
The aim of this report is to investigate retail store performance by
exploring two key variables anticipated to influence monthly sales
revenue. Product Variety and store size were selected as predictor
factors and underwent a linear regression analysis. Based on the
strength of the models for both variables, significant correlations were
evident. These findings supported the hypothesis that bigger stores and
increased product variety drive greater sales. However, a limitation of
the model is the exclusion of external factors like economic conditions
that may contribute to revenue. Based on the findings, the
recommendations are that businesses should maximize store size and
product variety to optimize revenue. Future studies could integrate
additional conditions for better insights.
Initial Data Analysis
(IDA)
This data focuses on retail store performance indicators that
demonstrate business success. The dataset to be analysed is public data
from data.gov.au, the central source of Australian government data and a
credible site of trusted data collection. The data covers a large range
of businesses based in the US suitable for global and regional analyses.
There is adequate metadata provided, which provides sufficient
transparency. Thus, the data is valid. Exploration of the data made
clear the presence of all values, decreasing the possibility of
limitations around incomplete data sets. This retains data integrity and
provides a strong basis for analysis.
While comprehensive, potential limitations may exist in the dataset’s
geographical or industry-specific biases. This could limit
generalisability to all retail environments. In addition, external
factors like customer demographics or marketing efforts are not
included, which may also heavily influence revenue yet not explored in
this analysis. Finally, data accuracy is determined by how businesses
originally reported their performance, possibly introducing
inconsistencies.
The dataset consists of nine variables which make up various
indicators of retail store performance. The variables analysed in this
report are summarized below:
Store Size: The physical size of the store in square
meters.
Marketing Spend: Monthly expenditure on marketing activities,
measured in thousands of dollars.
Customer Footfall: The total number of customers visiting the
store each month.
Product Variety: The number of unique products available in the
store.
Employee Efficiency: Average efficiency score of employees,
scaled from 0 to 100.
Store Age: The number of years the store has been in
operation.
Competitor Distance: Distance to the nearest competitor in
kilometers.
Promotions Count: The number of promotional events conducted by
the store monthly.
Economic Indicator: A regional economic activity index reflecting
local market conditions.
Store Location: The city or region where the store is
located.
Store Category: The type of store (e.g., “Grocery,”
“Electronics,” or “Clothing”).
Monthly Sales Revenue: Total monthly sales revenue, measured in
thousands of dollars.
This analysis will produce actionable insights to shape business
approaches and help stakeholders optimize their revenue via informed
strategies. For the purpose of our investigation, Product Variety and
Store Size were selected as strong predictors of store success,
established through correlation analysis in the initial data exploration
against the alternative variables.
Data Analysis
Based on exploration, we established strongest correlation with
Product Variety, now code for scatter plot.
## `geom_smooth()` using formula = 'y ~ x'

##
## Call:
## lm(formula = MonthlySalesRevenue ~ ProductVariety, data = df)
##
## Residuals:
## Min 1Q Median 3Q Max
## -120.007 -35.165 -1.606 34.856 115.850
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.498e+02 4.207e+00 35.60 <2e-16 ***
## ProductVariety 2.984e-01 8.055e-03 37.05 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 48.43 on 1648 degrees of freedom
## Multiple R-squared: 0.4545, Adjusted R-squared: 0.4541
## F-statistic: 1373 on 1 and 1648 DF, p-value: < 2.2e-16
So p-value < 2.2e-16 < 0.05 = strong correlation
Based on data exploration, store size appears to also have a
relationship with revenue. Now to repeat scatter plot and regression
test with a new variable.
## `geom_smooth()` using formula = 'y ~ x'

##
## Call:
## lm(formula = MonthlySalesRevenue ~ StoreSize, data = df)
##
## Residuals:
## Min 1Q Median 3Q Max
## -151.528 -35.369 0.369 34.160 189.331
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 2.169e+02 2.976e+00 72.89 <2e-16 ***
## StoreSize 3.016e-01 9.828e-03 30.68 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 52.3 on 1648 degrees of freedom
## Multiple R-squared: 0.3636, Adjusted R-squared: 0.3632
## F-statistic: 941.6 on 1 and 1648 DF, p-value: < 2.2e-16
Hypothesis Test
Hypotheses
Q1:
Product Variety and Monthly Revenue
H0 (Null Hypothesis): There is no significant relationship
between product variety and monthly sales revenue.
H1 (Alternative Hypothesis): There is a significant relationship
between product variety and monthly sales revenue.
Q2: Store
Size and Monthly Revenue
H0 (Null Hypothesis): There is no significant relationship
between store size and monthly sales revenue.
H1 (Alternative Hypothesis): There is a significant relationship
between store size and monthly sales revenue.
Assumptions
For both models:
The variables are linearly related.
The errors are independent, homoscedastic (constant residual
variance) and normally distributed.
This study uses linear regression to model the relationship between
independent variables (product variety and store size) and the dependent
variable (monthly revenue). The model is specified as:
Y=β0+β0X
Y: dependent variable,
X: independent variable
β0: intercept
β1: regression coefficient
Thus, the models for each question are as follows:
Q1) y = 1.498e+02 + 2.984e-01x
Q2) y = 2.169e+02 + 3.016e-01x
P-value:
By extrapolating the data, the following findings are
demonstrated:
Q1) There is a statistically significant relationship between product
variety and monthly revenue (p < 0.05). We reject the null hypothesis
that they share no correlation.
Q2) There is a statistically significant relationship between store
size and monthly revenue (p < 0.05). We reject the null hypothesis
that they share no correlation.
Test Statistic:
Q1) t=37.05
Q2) t=30.68
Both t-values are large and their corresponding p-values are <
2.2e-16,
Significantly below 0.05, so we reject the null hypothesis in
both cases.
These findings demonstrate both product variety and store size’s
statistically significant and positive impact on monthly
revenue.
Recommendations
Based on our statistically significant results and current
literature, a number of recommendations can be made.
Research suggests that widening product variety can promote a
business’ capacity to meet diverse consumer needs, potentially resulting
in increased sales and profits.
It’s important to consider the balance of associated costs,
including greater inventory and supply chain complexity that comes with
a wider variety.
A study published in the European Journal of Operational
Research Research suggests that expansions in product
variety result in higher inventory levels (Thonemann & Bradley,
2002).
Research suggests a positive correlation between store size and
profitability.
A larger store size can potentially increase profitability
by allowing for a wider product selection, improved customer experience
and a larger customer base.
For example, a study examining the textile business in Pakistan
found that firm profitability was positively correlated with firm size
and sales growth (Azhar & Ahmad, 2019).
Overall, these studies support the notion that both product variety
and store size can significantly influence a company’s profitability,
aliging with the statistically signfiicant findings present in the
analysis. These variables are key promoters of retail store performance
and must be be taken into account by stakeholders and business owners to
strategically guide their economic success.
References
Azhar, K., & Ahmad, N. (2019). Relationship between firm size and
profitability: Investigation from textile sector of Pakistan.
Journal Name, 11(X), 63–73
Thonemann, U., & Bradley, J. (2002). The effect of product
variety on supply-chain performance. European Journal of Operational
Research, 143(3), 548–569. https://doi.org/10.1016/S0377- 2217(01)00343-5
LS0tDQp0aXRsZTogIlJlcG9ydDogUmV0YWlsIFN0b3JlIFBlcmZvcm1hbmNlIg0KYXV0aG9yOiAiU3R1ZGVudC9zIFNJRDo1MTAzNzgyMjIiDQpzdWJ0aXRsZTogIlByb2plY3QgMiINCmRhdGU6ICJVbml2ZXJzaXR5IG9mIFN5ZG5leSB8IE1BVEgxMTE1IHwgYHIgZm9ybWF0KFN5cy50aW1lKCksICclQiAlWScpYCINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDoNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUgICMgZG9uJ3QgY2hhbmdlIHRoaXMNCiAgICBjb2RlX2Rvd25sb2FkOiB0cnVlICMgZW1iZWQgLlJtZCBmaWxlDQogICAgdG9jOiB0cnVlICAjIHRhYmxlIG9mIGNvbnRlbnRzDQogICAgdG9jX2RlcHRoOiAzDQogICAgdG9jX2Zsb2F0OiB0cnVlICMgdG9jIGlzIGFsd2F5cyB2aXNpYmxlIHdoZW4gc2Nyb2xsZWQNCiAgICBudW1iZXJfc2VjdGlvbnM6IHRydWUgIyBhZGQgc2VjdGlvbiBudW1iZXJzIHRvIGhlYWRpbmdzIA0KICAgIGRmX3ByaW50OiBwYWdlZCAjIGZvcm1hdCBkYXRhIGZyYW1lIG91dHB1dHMgYXV0b21hdGljYWxseQ0KICAgIHRoZW1lOiBzYW5kc3RvbmUgIyB0aGVtZSB0aGUgZG9jDQogICAgaGlnaGxpZ2h0OiB0YW5nbyAjIHRoZW1lIHN5bnRheCBjb2xvdXJpbmcNCi0tLQ0KDQpgYGB7Y3NzIG5ld3N0eWxlcywgZWNobz1GQUxTRX0NCmJvZHkgew0KICBjb2xvcjogYmxhY2s7DQp9DQpgYGANCg0KIyBFeGVjdXRpdmUgU3VtbWFyeQ0KDQpUaGUgYWltIG9mIHRoaXMgcmVwb3J0IGlzIHRvIGludmVzdGlnYXRlIHJldGFpbCBzdG9yZSBwZXJmb3JtYW5jZSBieSBleHBsb3JpbmcgdHdvIGtleSB2YXJpYWJsZXMgYW50aWNpcGF0ZWQgdG8gaW5mbHVlbmNlIG1vbnRobHkgc2FsZXMgcmV2ZW51ZS4gUHJvZHVjdCBWYXJpZXR5IGFuZCBzdG9yZSBzaXplIHdlcmUgc2VsZWN0ZWQgYXMgcHJlZGljdG9yIGZhY3RvcnMgYW5kIHVuZGVyd2VudCBhIGxpbmVhciByZWdyZXNzaW9uIGFuYWx5c2lzLiBCYXNlZCBvbiB0aGUgc3RyZW5ndGggb2YgdGhlIG1vZGVscyBmb3IgYm90aCB2YXJpYWJsZXMsIHNpZ25pZmljYW50IGNvcnJlbGF0aW9ucyB3ZXJlIGV2aWRlbnQuIFRoZXNlIGZpbmRpbmdzIHN1cHBvcnRlZCB0aGUgaHlwb3RoZXNpcyB0aGF0IGJpZ2dlciBzdG9yZXMgYW5kIGluY3JlYXNlZCBwcm9kdWN0IHZhcmlldHkgZHJpdmUgZ3JlYXRlciBzYWxlcy4gSG93ZXZlciwgYSBsaW1pdGF0aW9uIG9mIHRoZSBtb2RlbCBpcyB0aGUgZXhjbHVzaW9uIG9mIGV4dGVybmFsIGZhY3RvcnMgbGlrZSBlY29ub21pYyBjb25kaXRpb25zIHRoYXQgbWF5IGNvbnRyaWJ1dGUgdG8gcmV2ZW51ZS4gQmFzZWQgb24gdGhlIGZpbmRpbmdzLCB0aGUgcmVjb21tZW5kYXRpb25zIGFyZSB0aGF0IGJ1c2luZXNzZXMgc2hvdWxkIG1heGltaXplIHN0b3JlIHNpemUgYW5kIHByb2R1Y3QgdmFyaWV0eSB0byBvcHRpbWl6ZSByZXZlbnVlLiBGdXR1cmUgc3R1ZGllcyBjb3VsZCBpbnRlZ3JhdGUgYWRkaXRpb25hbCBjb25kaXRpb25zIGZvciBiZXR0ZXIgaW5zaWdodHMuDQoNCiMgSW5pdGlhbCBEYXRhIEFuYWx5c2lzIChJREEpDQoNClRoaXMgZGF0YSBmb2N1c2VzIG9uIHJldGFpbCBzdG9yZSBwZXJmb3JtYW5jZSBpbmRpY2F0b3JzIHRoYXQgZGVtb25zdHJhdGUgYnVzaW5lc3Mgc3VjY2Vzcy4gVGhlIGRhdGFzZXQgdG8gYmUgYW5hbHlzZWQgaXMgcHVibGljIGRhdGEgZnJvbSBkYXRhLmdvdi5hdSwgdGhlIGNlbnRyYWwgc291cmNlIG9mIEF1c3RyYWxpYW4gZ292ZXJubWVudCBkYXRhIGFuZCBhIGNyZWRpYmxlIHNpdGUgb2YgdHJ1c3RlZCBkYXRhIGNvbGxlY3Rpb24uIFRoZSBkYXRhIGNvdmVycyBhIGxhcmdlIHJhbmdlIG9mIGJ1c2luZXNzZXMgYmFzZWQgaW4gdGhlIFVTIHN1aXRhYmxlIGZvciBnbG9iYWwgYW5kIHJlZ2lvbmFsIGFuYWx5c2VzLiBUaGVyZSBpcyBhZGVxdWF0ZSBtZXRhZGF0YSBwcm92aWRlZCwgd2hpY2ggcHJvdmlkZXMgc3VmZmljaWVudCB0cmFuc3BhcmVuY3kuIFRodXMsIHRoZSBkYXRhIGlzIHZhbGlkLsKgRXhwbG9yYXRpb24gb2YgdGhlIGRhdGEgbWFkZSBjbGVhciB0aGUgcHJlc2VuY2Ugb2YgYWxsIHZhbHVlcywgZGVjcmVhc2luZyB0aGUgcG9zc2liaWxpdHkgb2YgbGltaXRhdGlvbnMgYXJvdW5kIGluY29tcGxldGUgZGF0YSBzZXRzLiBUaGlzIHJldGFpbnMgZGF0YSBpbnRlZ3JpdHkgYW5kIHByb3ZpZGVzIGEgc3Ryb25nIGJhc2lzIGZvciBhbmFseXNpcy4NCg0KV2hpbGUgY29tcHJlaGVuc2l2ZSwgcG90ZW50aWFsIGxpbWl0YXRpb25zIG1heSBleGlzdCBpbiB0aGUgZGF0YXNldCdzIGdlb2dyYXBoaWNhbCBvciBpbmR1c3RyeS1zcGVjaWZpYyBiaWFzZXMuIFRoaXMgY291bGQgbGltaXQgZ2VuZXJhbGlzYWJpbGl0eSB0byBhbGwgcmV0YWlsIGVudmlyb25tZW50cy4gSW4gYWRkaXRpb24sIGV4dGVybmFsIGZhY3RvcnMgbGlrZSBjdXN0b21lciBkZW1vZ3JhcGhpY3Mgb3IgbWFya2V0aW5nIGVmZm9ydHMgYXJlIG5vdCBpbmNsdWRlZCwgd2hpY2ggbWF5IGFsc28gaGVhdmlseSBpbmZsdWVuY2UgcmV2ZW51ZSB5ZXQgbm90IGV4cGxvcmVkIGluIHRoaXMgYW5hbHlzaXMuIEZpbmFsbHksIGRhdGEgYWNjdXJhY3kgaXMgZGV0ZXJtaW5lZCBieSBob3cgYnVzaW5lc3NlcyBvcmlnaW5hbGx5IHJlcG9ydGVkIHRoZWlyIHBlcmZvcm1hbmNlLCBwb3NzaWJseSBpbnRyb2R1Y2luZyBpbmNvbnNpc3RlbmNpZXMuDQoNClRoZSBkYXRhc2V0IGNvbnNpc3RzIG9mIG5pbmUgdmFyaWFibGVzIHdoaWNoIG1ha2UgdXAgdmFyaW91cyBpbmRpY2F0b3JzIG9mIHJldGFpbCBzdG9yZSBwZXJmb3JtYW5jZS4gVGhlIHZhcmlhYmxlcyBhbmFseXNlZCBpbiB0aGlzIHJlcG9ydCBhcmUgc3VtbWFyaXplZCBiZWxvdzoNCg0KLSAgIFN0b3JlIFNpemU6IFRoZSBwaHlzaWNhbCBzaXplIG9mIHRoZSBzdG9yZSBpbiBzcXVhcmUgbWV0ZXJzLg0KDQotICAgTWFya2V0aW5nIFNwZW5kOiBNb250aGx5IGV4cGVuZGl0dXJlIG9uIG1hcmtldGluZyBhY3Rpdml0aWVzLCBtZWFzdXJlZCBpbiB0aG91c2FuZHMgb2YgZG9sbGFycy4NCg0KLSAgIEN1c3RvbWVyIEZvb3RmYWxsOiBUaGUgdG90YWwgbnVtYmVyIG9mIGN1c3RvbWVycyB2aXNpdGluZyB0aGUgc3RvcmUgZWFjaCBtb250aC4NCg0KLSAgIFByb2R1Y3QgVmFyaWV0eTogVGhlIG51bWJlciBvZiB1bmlxdWUgcHJvZHVjdHMgYXZhaWxhYmxlIGluIHRoZSBzdG9yZS4NCg0KLSAgIEVtcGxveWVlIEVmZmljaWVuY3k6IEF2ZXJhZ2UgZWZmaWNpZW5jeSBzY29yZSBvZiBlbXBsb3llZXMsIHNjYWxlZCBmcm9tIDAgdG8gMTAwLg0KDQotICAgU3RvcmUgQWdlOiBUaGUgbnVtYmVyIG9mIHllYXJzIHRoZSBzdG9yZSBoYXMgYmVlbiBpbiBvcGVyYXRpb24uDQoNCi0gICBDb21wZXRpdG9yIERpc3RhbmNlOiBEaXN0YW5jZSB0byB0aGUgbmVhcmVzdCBjb21wZXRpdG9yIGluIGtpbG9tZXRlcnMuDQoNCi0gICBQcm9tb3Rpb25zIENvdW50OiBUaGUgbnVtYmVyIG9mIHByb21vdGlvbmFsIGV2ZW50cyBjb25kdWN0ZWQgYnkgdGhlIHN0b3JlIG1vbnRobHkuDQoNCi0gICBFY29ub21pYyBJbmRpY2F0b3I6IEEgcmVnaW9uYWwgZWNvbm9taWMgYWN0aXZpdHkgaW5kZXggcmVmbGVjdGluZyBsb2NhbCBtYXJrZXQgY29uZGl0aW9ucy4NCg0KLSAgIFN0b3JlIExvY2F0aW9uOiBUaGUgY2l0eSBvciByZWdpb24gd2hlcmUgdGhlIHN0b3JlIGlzIGxvY2F0ZWQuDQoNCi0gICBTdG9yZSBDYXRlZ29yeTogVGhlIHR5cGUgb2Ygc3RvcmUgKGUuZy4sICJHcm9jZXJ5LCIgIkVsZWN0cm9uaWNzLCIgb3IgIkNsb3RoaW5nIikuDQoNCi0gICBNb250aGx5IFNhbGVzIFJldmVudWU6IFRvdGFsIG1vbnRobHkgc2FsZXMgcmV2ZW51ZSwgbWVhc3VyZWQgaW4gdGhvdXNhbmRzIG9mIGRvbGxhcnMuDQoNClRoaXMgYW5hbHlzaXMgd2lsbCBwcm9kdWNlIGFjdGlvbmFibGUgaW5zaWdodHMgdG8gc2hhcGUgYnVzaW5lc3MgYXBwcm9hY2hlcyBhbmQgaGVscCBzdGFrZWhvbGRlcnMgb3B0aW1pemUgdGhlaXIgcmV2ZW51ZSB2aWEgaW5mb3JtZWQgc3RyYXRlZ2llcy4gRm9yIHRoZSBwdXJwb3NlIG9mIG91ciBpbnZlc3RpZ2F0aW9uLCBQcm9kdWN0IFZhcmlldHkgYW5kIFN0b3JlIFNpemUgd2VyZSBzZWxlY3RlZCBhcyBzdHJvbmcgcHJlZGljdG9ycyBvZiBzdG9yZSBzdWNjZXNzLCBlc3RhYmxpc2hlZCB0aHJvdWdoIGNvcnJlbGF0aW9uIGFuYWx5c2lzIGluIHRoZSBpbml0aWFsIGRhdGEgZXhwbG9yYXRpb24gYWdhaW5zdCB0aGUgYWx0ZXJuYXRpdmUgdmFyaWFibGVzLg0KDQpgYGB7ciBzZXR1cCwgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkodGlkeXZlcnNlKQ0KZGYgPC0gcmVhZF9jc3YoIkM6L1VzZXJzL2F2YWxvL09uZURyaXZlL0RvY3VtZW50cy9NQVRIMTExNS9SZXRhaWwgU3RvcmUgUGVyZm9ybWFuY2UgRGF0YS5jc3YiKQ0KZGYgPC0gZGYgJT4lIGRyb3BfbmEoKQ0KY29yX21hdHJpeCA8LSBjb3IoZGYgJT4lIHNlbGVjdF9pZihpcy5udW1lcmljKSwgdXNlID0gImNvbXBsZXRlLm9icyIpDQoNCg0KYGBgDQoNCiMgRGF0YSBBbmFseXNpcw0KDQpCYXNlZCBvbiBleHBsb3JhdGlvbiwgd2UgZXN0YWJsaXNoZWQgc3Ryb25nZXN0IGNvcnJlbGF0aW9uIHdpdGggUHJvZHVjdCBWYXJpZXR5LCBub3cgY29kZSBmb3Igc2NhdHRlciBwbG90Lg0KDQpgYGB7ciBzY2F0dGVyX3Bsb3RfMSwgZWNobz1GQUxTRX0NCiMgRW5zdXJlIGxpYnJhcmllcyBhcmUgbG9hZGVkIGluIHNldHVwIGNodW5rDQpnZ3Bsb3QoZGYsIGFlcyh4ID0gUHJvZHVjdFZhcmlldHksIHkgPSBNb250aGx5U2FsZXNSZXZlbnVlKSkgKw0KICBnZW9tX3BvaW50KGFscGhhID0gMC41LCBjb2xvciA9ICJzdGVlbGJsdWUiKSArDQogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIsIHNlID0gRkFMU0UsIGNvbG9yID0gIm9yYW5nZSIpICsNCiAgbGFicyh0aXRsZSA9ICJQcm9kdWN0IFZhcmlldHkgdnMuIE1vbnRobHkgU2FsZXMgUmV2ZW51ZSIsDQogICAgICAgeCA9ICJQcm9kdWN0IFZhcmlldHkiLA0KICAgICAgIHkgPSAiTW9udGhseSBTYWxlcyBSZXZlbnVlIChUaG91c2FuZHMgb2YgRG9sbGFycykiKSArDQogIHRoZW1lX21pbmltYWwoKQ0KDQojIFJ1biB0aGUgbGluZWFyIHJlZ3Jlc3Npb24gYW5hbHlzaXMNCm1vZGVsIDwtIGxtKE1vbnRobHlTYWxlc1JldmVudWUgfiBQcm9kdWN0VmFyaWV0eSwgZGF0YSA9IGRmKQ0Kc3VtbWFyeShtb2RlbCkNCg0KYGBgDQoNClNvIHAtdmFsdWUgXDwgMi4yZS0xNiBcPCAwLjA1ID0gc3Ryb25nIGNvcnJlbGF0aW9uDQoNCkJhc2VkIG9uIGRhdGEgZXhwbG9yYXRpb24sIHN0b3JlIHNpemUgYXBwZWFycyB0byBhbHNvIGhhdmUgYSByZWxhdGlvbnNoaXAgd2l0aCByZXZlbnVlLiBOb3cgdG8gcmVwZWF0IHNjYXR0ZXIgcGxvdCBhbmQgcmVncmVzc2lvbiB0ZXN0IHdpdGggYSBuZXcgdmFyaWFibGUuDQoNCmBgYHtyIHN0b3JlX3NpemVfcGxvdF8yLCBlY2hvPUZBTFNFfQ0KZ2dwbG90KGRmLCBhZXMoeCA9IFN0b3JlU2l6ZSwgeSA9IE1vbnRobHlTYWxlc1JldmVudWUpKSArDQogIGdlb21fcG9pbnQoYWxwaGEgPSAwLjUsIGNvbG9yID0gInN0ZWVsYmx1ZSIpICsNCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIiwgc2UgPSBGQUxTRSwgY29sb3IgPSAicGluayIpICsNCiAgbGFicyh0aXRsZSA9ICJTdG9yZSBTaXplIHZzLiBNb250aGx5IFNhbGVzIFJldmVudWUiLA0KICAgICAgIHggPSAiU3RvcmUgU2l6ZSAoU3F1YXJlIE1ldGVycykiLA0KICAgICAgIHkgPSAiTW9udGhseSBTYWxlcyBSZXZlbnVlIChUaG91c2FuZHMgb2YgRG9sbGFycykiKSArDQogIHRoZW1lX21pbmltYWwoKQ0KDQojIFJ1biB0aGUgbGluZWFyIHJlZ3Jlc3Npb24gbW9kZWwNCm1vZGVsIDwtIGxtKE1vbnRobHlTYWxlc1JldmVudWUgfiBTdG9yZVNpemUsIGRhdGEgPSBkZikNCnN1bW1hcnkobW9kZWwpDQpgYGANCg0KIyBIeXBvdGhlc2lzIFRlc3QNCg0KKipIeXBvdGhlc2VzKioNCg0KIyMjIyAqKlExOiBQcm9kdWN0IFZhcmlldHkgYW5kIE1vbnRobHkgUmV2ZW51ZSoqDQoNCi0gICBIMCAoTnVsbCBIeXBvdGhlc2lzKTogVGhlcmUgaXMgbm8gc2lnbmlmaWNhbnQgcmVsYXRpb25zaGlwIGJldHdlZW4gcHJvZHVjdCB2YXJpZXR5IGFuZCBtb250aGx5IHNhbGVzIHJldmVudWUuDQoNCi0gICBIMSAoQWx0ZXJuYXRpdmUgSHlwb3RoZXNpcyk6IFRoZXJlIGlzIGEgc2lnbmlmaWNhbnQgcmVsYXRpb25zaGlwIGJldHdlZW4gcHJvZHVjdCB2YXJpZXR5IGFuZCBtb250aGx5IHNhbGVzIHJldmVudWUuDQoNCiMjIyMgKipRMjogU3RvcmUgU2l6ZSBhbmQgTW9udGhseSBSZXZlbnVlKioNCg0KLSAgIEgwIChOdWxsIEh5cG90aGVzaXMpOiBUaGVyZSBpcyBubyBzaWduaWZpY2FudCByZWxhdGlvbnNoaXAgYmV0d2VlbiBzdG9yZSBzaXplIGFuZCBtb250aGx5IHNhbGVzIHJldmVudWUuDQoNCi0gICBIMeKAiyAoQWx0ZXJuYXRpdmUgSHlwb3RoZXNpcyk6IFRoZXJlIGlzIGEgc2lnbmlmaWNhbnQgcmVsYXRpb25zaGlwIGJldHdlZW4gc3RvcmUgc2l6ZSBhbmQgbW9udGhseSBzYWxlcyByZXZlbnVlLg0KDQoqKkFzc3VtcHRpb25zKioNCg0KRm9yIGJvdGggbW9kZWxzOg0KDQotICAgVGhlIHZhcmlhYmxlcyBhcmUgbGluZWFybHkgcmVsYXRlZC4NCg0KLSAgIFRoZSBlcnJvcnMgYXJlIGluZGVwZW5kZW50LCBob21vc2NlZGFzdGljIChjb25zdGFudCByZXNpZHVhbCB2YXJpYW5jZSkgYW5kIG5vcm1hbGx5IGRpc3RyaWJ1dGVkLg0KDQpUaGlzIHN0dWR5IHVzZXMgbGluZWFyIHJlZ3Jlc3Npb24gdG8gbW9kZWwgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIGluZGVwZW5kZW50IHZhcmlhYmxlcyAocHJvZHVjdCB2YXJpZXR5IGFuZCBzdG9yZSBzaXplKSBhbmQgdGhlIGRlcGVuZGVudCB2YXJpYWJsZSAobW9udGhseSByZXZlbnVlKS4gVGhlIG1vZGVsIGlzIHNwZWNpZmllZCBhczoNCg0KWSoqPSoqzrIqKjArKirOsioqMOKAiyoqWA0KDQpZOiBkZXBlbmRlbnQgdmFyaWFibGUsDQoNClg6IGluZGVwZW5kZW50IHZhcmlhYmxlDQoNCs6yMDogaW50ZXJjZXB0DQoNCs6yMTogcmVncmVzc2lvbiBjb2VmZmljaWVudA0KDQpUaHVzLCB0aGUgbW9kZWxzIGZvciBlYWNoIHF1ZXN0aW9uIGFyZSBhcyBmb2xsb3dzOg0KDQpRMSkgeSA9IDEuNDk4ZSswMiArIDIuOTg0ZS0wMXgNCg0KUTIpIHkgPSAyLjE2OWUrMDIgKyAzLjAxNmUtMDF4DQoNCioqUC12YWx1ZToqKg0KDQpCeSBleHRyYXBvbGF0aW5nIHRoZSBkYXRhLCB0aGUgZm9sbG93aW5nIGZpbmRpbmdzIGFyZSBkZW1vbnN0cmF0ZWQ6DQoNClExKSBUaGVyZSBpcyBhIHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgcmVsYXRpb25zaGlwIGJldHdlZW4gcHJvZHVjdCB2YXJpZXR5IGFuZCBtb250aGx5IHJldmVudWUgKHAgXDwgMC4wNSkuIFdlIHJlamVjdCB0aGUgbnVsbCBoeXBvdGhlc2lzIHRoYXQgdGhleSBzaGFyZSBubyBjb3JyZWxhdGlvbi4NCg0KUTIpIFRoZXJlIGlzIGEgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCByZWxhdGlvbnNoaXAgYmV0d2VlbiBzdG9yZSBzaXplIGFuZCBtb250aGx5IHJldmVudWUgKHAgXDwgMC4wNSkuIFdlIHJlamVjdCB0aGUgbnVsbCBoeXBvdGhlc2lzIHRoYXQgdGhleSBzaGFyZSBubyBjb3JyZWxhdGlvbi4NCg0KKipUZXN0IFN0YXRpc3RpYyoqOg0KDQpRMSkgdD0zNy4wNQ0KDQpRMikgdD0zMC42OA0KDQotICAgQm90aCB0LXZhbHVlcyBhcmUgbGFyZ2UgYW5kIHRoZWlyIGNvcnJlc3BvbmRpbmcgcC12YWx1ZXMgYXJlIFw8IDIuMmUtMTYsDQoNCi0gICBTaWduaWZpY2FudGx5IGJlbG93IDAuMDUsIHNvIHdlIHJlamVjdCB0aGUgbnVsbCBoeXBvdGhlc2lzIGluIGJvdGggY2FzZXMuDQoNCi0gICBUaGVzZSBmaW5kaW5ncyBkZW1vbnN0cmF0ZSBib3RoIHByb2R1Y3QgdmFyaWV0eSBhbmQgc3RvcmUgc2l6ZSdzIHN0YXRpc3RpY2FsbHkgc2lnbmlmaWNhbnQgYW5kIHBvc2l0aXZlIGltcGFjdCBvbiBtb250aGx5IHJldmVudWUuDQoNCiMgUmVjb21tZW5kYXRpb25zDQoNCi0gICBCYXNlZCBvbiBvdXIgc3RhdGlzdGljYWxseSBzaWduaWZpY2FudCByZXN1bHRzIGFuZCBjdXJyZW50IGxpdGVyYXR1cmUsIGEgbnVtYmVyIG9mIHJlY29tbWVuZGF0aW9ucyBjYW4gYmUgbWFkZS4NCg0KLSAgIFJlc2VhcmNoIHN1Z2dlc3RzIHRoYXQgd2lkZW5pbmcgcHJvZHVjdCB2YXJpZXR5IGNhbiBwcm9tb3RlIGEgYnVzaW5lc3MnIGNhcGFjaXR5IHRvIG1lZXQgZGl2ZXJzZSBjb25zdW1lciBuZWVkcywgcG90ZW50aWFsbHkgcmVzdWx0aW5nIGluIGluY3JlYXNlZCBzYWxlcyBhbmQgcHJvZml0cy4NCg0KLSAgIEl0J3MgaW1wb3J0YW50IHRvIGNvbnNpZGVyIHRoZSBiYWxhbmNlIG9mIGFzc29jaWF0ZWQgY29zdHMsIGluY2x1ZGluZyBncmVhdGVyIGludmVudG9yeSBhbmQgc3VwcGx5IGNoYWluIGNvbXBsZXhpdHkgdGhhdCBjb21lcyB3aXRoIGEgd2lkZXIgdmFyaWV0eS4NCg0KLSAgIEEgc3R1ZHkgcHVibGlzaGVkIGluIHRoZSAqRXVyb3BlYW4gSm91cm5hbCBvZiBPcGVyYXRpb25hbCBSZXNlYXJjaCogKlJlc2VhcmNoKiBzdWdnZXN0cyB0aGF0IGV4cGFuc2lvbnMgaW4gcHJvZHVjdCB2YXJpZXR5IHJlc3VsdCBpbiBoaWdoZXIgaW52ZW50b3J5IGxldmVscyAoVGhvbmVtYW5uICYgQnJhZGxleSwgMjAwMikuDQoNCi0gICBSZXNlYXJjaCBzdWdnZXN0cyBhIHBvc2l0aXZlIGNvcnJlbGF0aW9uIGJldHdlZW4gc3RvcmUgc2l6ZSBhbmQgcHJvZml0YWJpbGl0eS4NCg0KLSAgIEEgbGFyZ2VyIHN0b3JlIHNpemUgY2FuIHBvdGVudGlhbGx5IGluY3JlYXNlIHByb2ZpdGFiaWxpdHkgYnnCoGFsbG93aW5nIGZvciBhIHdpZGVyIHByb2R1Y3Qgc2VsZWN0aW9uLCBpbXByb3ZlZCBjdXN0b21lciBleHBlcmllbmNlIGFuZCBhIGxhcmdlciBjdXN0b21lciBiYXNlLg0KDQotICAgRm9yIGV4YW1wbGUsIGEgc3R1ZHkgZXhhbWluaW5nIHRoZSB0ZXh0aWxlIGJ1c2luZXNzIGluIFBha2lzdGFuIGZvdW5kIHRoYXQgZmlybSBwcm9maXRhYmlsaXR5IHdhcyBwb3NpdGl2ZWx5IGNvcnJlbGF0ZWQgd2l0aCBmaXJtIHNpemUgYW5kIHNhbGVzIGdyb3d0aCAoQXpoYXIgJiBBaG1hZCwgMjAxOSkuDQoNCk92ZXJhbGwsIHRoZXNlIHN0dWRpZXMgc3VwcG9ydCB0aGUgbm90aW9uIHRoYXQgYm90aCBwcm9kdWN0IHZhcmlldHkgYW5kIHN0b3JlIHNpemUgY2FuIHNpZ25pZmljYW50bHkgaW5mbHVlbmNlIGEgY29tcGFueSdzIHByb2ZpdGFiaWxpdHksIGFsaWdpbmcgd2l0aCB0aGUgc3RhdGlzdGljYWxseSBzaWduZmlpY2FudCBmaW5kaW5ncyBwcmVzZW50IGluIHRoZSBhbmFseXNpcy4gVGhlc2UgdmFyaWFibGVzIGFyZSBrZXkgcHJvbW90ZXJzIG9mIHJldGFpbCBzdG9yZSBwZXJmb3JtYW5jZSBhbmQgbXVzdCBiZSBiZSB0YWtlbiBpbnRvIGFjY291bnQgYnkgc3Rha2Vob2xkZXJzIGFuZCBidXNpbmVzcyBvd25lcnMgdG8gc3RyYXRlZ2ljYWxseSBndWlkZSB0aGVpciBlY29ub21pYyBzdWNjZXNzLg0KDQojIFJlZmVyZW5jZXMNCg0KQXpoYXIsIEsuLCAmIEFobWFkLCBOLiAoMjAxOSkuIFJlbGF0aW9uc2hpcCBiZXR3ZWVuIGZpcm0gc2l6ZSBhbmQgcHJvZml0YWJpbGl0eTogSW52ZXN0aWdhdGlvbiBmcm9tIHRleHRpbGUgc2VjdG9yIG9mIFBha2lzdGFuLiAqSm91cm5hbCBOYW1lKiwgKjExKihYKSwgNjPigJM3Mw0KDQpUaG9uZW1hbm4sIFUuLCAmIEJyYWRsZXksIEouICgyMDAyKS4gVGhlIGVmZmVjdCBvZiBwcm9kdWN0IHZhcmlldHkgb24gc3VwcGx5LWNoYWluIHBlcmZvcm1hbmNlLiAqRXVyb3BlYW4gSm91cm5hbCBvZiBPcGVyYXRpb25hbCBSZXNlYXJjaCwgMTQzKigzKSwgNTQ44oCTNTY5LiBodHRwczovL2RvaS5vcmcvMTAuMTAxNi9TMDM3Ny0gMjIxNygwMSkwMDM0My01DQo=