OppLoans Personal Loans Review

By Mentor Staff | Edited By Mentor Staff

Updated On December 18, 2021

Editorial Note: This content is based solely on the author's opinions and is not provided, approved, endorsed or reviewed by any financial institution or partner.

How do we make money? The products featured on this website are from our partners who compensate us. This may impact which companies we review, the products we evaluate, and where and how a product appears on a page. We receive compensation from a partner when you apply for and receive a product through Mentor. This helps us to support our website, offer free content, tools and calculators, and continue to be one of the leading sources on personal finance.

Company Overview: OppLoans

Opportunity Loans, or OppLoans, is a lender based in Chicago that helps people get personal loans to build their credit.OppLoans is focused on bad credit personal loans and its personal loans are unsecured loans, which means there is no collateral required. OppLoans positions itself as a safer and trusted alternative to pay day loans – at a lower rate. OppLoans has funded over 100,000 customers, and has a 4.8 out of 5 stars rating on Google.

How OppLoans Compares: Key Benefits Of OppLoans's Personal loan

Here are some of the reasons that OppLoans borrowers love OppLoans personal loans:

  • Lower Rates: OppLoans offers lower rates for poor credit personal loans compared with payday loans.
  • Focused on Bad Credit: OppLoans focuses on solutions for personal loans for poor credit.
  • Easy Online Application: You can apply for an OppLoans personal loan completely online.
  • Quick Disbursement: Funds are disbursed directly to your bank account in as little as 1 day.
  • Customer Service: OppLoans offers live customer support 7 days a week

Eligibility Criteria

To apply for an OppLoans personal loan, you need to meet the following eligibility criteria:

Requirements To Apply For OppLoans Personal loan

Minimum Age: 18 years old

Citizenship/Residency: U.S. citizen or permanent resident (applies to co-signer too, if any)

Employment: You are currently employed

Bank Account: Bank account in your name with 90 days history

Paycheck: You receive your paycheck through direct deposit, except if you are a resident of New Mexico

Loan eligibility depends on a number of additional factors, which may include your credit profile, income and total debt payments.

Bottom Line: Is OppLoans right for you?

OppLoans has a top reputation for personal loans for bad credit, and has an A+ rating from the Better Business Bureau.

Remember, OppLoans caters to borrowers for personal loans for bad credit. OppLoans personal loans borrowers tend to have a credit score below 600. Compared with other personal loans for people with bad credit such as payday loans, OppLoans may have lower rates. However, OppLoans has much higher rates than traditional personal loans, which are for borrowers with good to excellent credit.

Currently, OppLoans is not available in every state, so you can check online to see if your state is eligible for OppLoans personal loans.OppLoans are available to military veterans, but you cannot be an active member of the military.

The good news about OppLoans personal loans is that OppLoans reports credit data to all three major credit bureaus, including Equifax, Experian and TransUnion. Therefore, when you make monthly, on-time payments in full, it can help build credit and improve your credit score.

If you have a poor credit score or want to build credit, are employed and want funds fast, then an OppLoans personal loan for bad credit may be right for you. You can use an OppLoans personal loan for any purpose such as car repair, medical expenses, household bills, rent, pay off other loans, medical expenses, major purchases, engagement ring, wedding, honeymoon or new baby expenses.

Next Steps: How To Apply To OppLoans

You can apply for an OppLoans personal loan in 3 easy steps.

Step 1: Check your personalized personal loan rate in just 2 minutes.

Step 2: Complete application and upload documents.

Step 3: Accept loan terms and get funded.

The good news is that you can check your new personal loan rate online with OppLoans before you complete the full application. This way, you’ll know whether you can be approved for OppLoans personal loan. Therefore, OppLoans will provide you with an estimated personal loan rate. The pre-approval is only a soft credit pull so there is no impact to your credit.

If you have been pre-approved, you’ll need at least the following documents to complete the online application (which takes about 10-15 minutes):

  • Your most recent pay stubs or proof of income
  • Driver’s license or passport (or other form of government-issued identification)

Funding for your personal loan is quick and can occur as soon as 1 day.

Applying is super easy – get your personalized rate in 2 minutes

Top Picks For Personal Loans

PD9waHAKCWVjaG8gZGF0ZSgnRicpIC4gIiAiIC4gZGF0ZSgiWSIpOwo/Pg==

PGRpdiBjbGFzcz0ibGVuZGVycy10YWJsZS1oZWFkZXItcm93LXdyYXBwZXIiPgoJPGRpdiBjbGFzcz0ibGVuZGVycy10YWJsZS1oZWFkZXItcm93Ij4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItbG9nby1oZWFkZXIgbGVuZGVycy10YWJsZS1oZWFkZXItY2VsbCI+CgkJPC9kaXY+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWFwci1oZWFkZXIgbGVuZGVycy10YWJsZS1oZWFkZXItY2VsbCI+CgkJCUFQUiA8c3BhbiBjbGFzcz0ibW9yZS1pbmZvLXRvb2x0aXAtdHJpZ2dlciI+PzxzcGFuIGNsYXNzPSJtb3JlLWluZm8tdG9vbHRpcC10ZXh0Ij5BUFIsIG9yIEFubnVhbCBQZXJjZW50YWdlIFJhdGUsIGlzIHRoZSBwcmljZSB5b3UgcGF5IHRvIGJvcnJvdyBtb25leS4gVmFyaWFibGUgQVBSIG1lYW5zIHRoYXQgeW91ciBpbnRlcmVzdCBjYW4gZmx1Y3R1YXRlIG92ZXIgdGltZSwgd2hpY2ggY2FuIGluY3JlYXNlIG9yIGRlY3JlYXNlIHlvdXIgbW9udGhseSBwYXltZW50LiBGaXhlZCBBUFIgbWVhbnMgdGhhdCB5b3VyIGludGVyZXN0IHdpbGwgYWx3YXlzIHN0YXkgdGhlIHNhbWUuIEV2ZW4gaWYgaW50ZXJlc3QgcmF0ZXMgY2hhbmdlLCB5b3VyIGludGVyZXN0IHJhdGUgb3IgbW9udGhseSBwYXltZW50IHdpbGwgbm90LiBBUFIgaW5jbHVkZXMgYSAwLjI1JSBkaXNjb3VudCB3aGVuIHlvdSBlbnJvbGwgaW4gYXV0b3BheS48L3NwYW4+PC9zcGFuPgoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImxlbmRlci1hZmZpbGlhdGUtYnV0dG9uLWhlYWRlciBsZW5kZXJzLXRhYmxlLWhlYWRlci1jZWxsIj4KCQk8L2Rpdj4KCTwvZGl2Pgo8L2Rpdj4=
PGRpdiBjbGFzcz0ibGVuZGVyLXJvdy13cmFwcGVyIj4KCTxkaXYgY2xhc3M9ImxlbmRlci1wcmltYXJ5LXJvdyI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWxvZ28td3JhcHBlciBsZW5kZXItcHJpbWFyeS1yb3ctY2VsbCI+CgkJCTxhIGRhdGEtZXZlbnQtbGFiZWw9Ijw/cGhwIGVjaG8gJ1BMIC0gJyAuIGdldF90aGVfdGl0bGUoKTsgPz4iIGhyZWY9Ijw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX2FmZmlsaWF0ZV9saW5rJyApOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJsZW5kZXItbG9nby1saW5rIj4KCQkJCTxpbWcgc3JjPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9sb2dvJyApWyd1cmwnXTsgPz4iIGFsdD0iPD9waHAgdGhlX3RpdGxlKCk7ID8+IiBjbGFzcz0ibGVuZGVyLWxvZ28iIC8+CgkJCTwvYT4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYXByIGxlbmRlci1wcmltYXJ5LXJvdy1jZWxsIj4KCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfYXByX2xvd2VyX2xpbWl0JyApOyA/PiUgLSA8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9hcHJfdXBwZXJfbGltaXQnICk7ID8+JQoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImxlbmRlci1hZmZpbGlhdGUtYnV0dG9uLXdyYXBwZXIgbGVuZGVyLXByaW1hcnktcm93LWNlbGwiPgoJCQk8YSBkYXRhLWV2ZW50LWxhYmVsPSI8P3BocCBlY2hvICdQTCAtICcgLiBnZXRfdGhlX3RpdGxlKCk7ID8+IiBocmVmPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9hZmZpbGlhdGVfbGluaycgKTsgPz4iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93IiBjbGFzcz0ibGVuZGVyLWFmZmlsaWF0ZS1idXR0b24iPgoJCQkJR2V0IE15IFJhdGUKCQkJPC9hPgoJCTwvZGl2PgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJsZW5kZXItc2Vjb25kYXJ5LXJvdyI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWxvZ28tc2Vjb25kYXJ5LXJvdy1jZWxsIGxlbmRlci1zZWNvbmRhcnktcm93LWNlbGwiPgoJCQk8cCBjbGFzcz0ibGVuZGVyLXZpZXctZGV0YWlscy10cmlnZ2VyIj4KCQkJCTxzcGFuIGNsYXNzPSJsZW5kZXItdmlldy1kZXRhaWxzLWxpbmsgbGVuZGVyLXZpZXctZGV0YWlscy1saW5rLTw/cGhwIHRoZV9JRCgpOyA/PiI+CgkJCQkJPHNwYW4gY2xhc3M9ImxlbmRlci12aWV3LWRldGFpbHMtbGluay1hcnJvdyI+PC9zcGFuPlZpZXcgRGV0YWlscwoJCQkJPHNwYW4+CgkJCTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYXByLXNlY29uZGFyeS1yb3ctY2VsbCBsZW5kZXItc2Vjb25kYXJ5LXJvdy1jZWxsIj4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbi1zZWNvbmRhcnktcm93LWNlbGwgbGVuZGVyLXNlY29uZGFyeS1yb3ctY2VsbCI+CgkJCTxwIGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbi1oZWxwZXItdGV4dCI+CgkJCQk8P3BocAoJCQkJCWlmKCBzdHJfZW5kc193aXRoKCBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICksICdzJyApICkKCQkJCQl7CgkJCQkJCWVjaG8gJ29uICcgLiBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICkgLiAnXCcgd2Vic2l0ZSc7CgkJCQkJfQoJCQkJCWVsc2UKCQkJCQl7CgkJCQkJCWVjaG8gJ29uICcgLiBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICkgLiAnXCdzIHdlYnNpdGUnOwoJCQkJCX0KCQkJCT8+CgkJCTwvcD4KCQk8L2Rpdj4KCTwvZGl2PgoJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdyBsZW5kZXItY29sbGFwc2libGUtcm93LTw/cGhwIHRoZV9JRCgpOyA/PiI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2xzIj4KCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtMSI+CgkJCQk8aDMgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctY29sLWhlYWRlciI+CgkJCQkJT3ZlcnZpZXcKCQkJCTwvaDM+CgkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC1jb250ZW50Ij4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTWluaW11bSBDcmVkaXQgU2NvcmU6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9taW5pbXVtX2NyZWRpdF9zY29yZScgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU1pbmltdW0gTG9hbiBBbW91bnQ6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9taW5pbXVtX2xvYW5fYW1vdW50JyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTWF4aW11bSBMb2FuIEFtb3VudDoKCQkJCQkJPC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctdmFsdWUtY29sIj4KCQkJCQkJCTw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX21heGltdW1fbG9hbl9hbW91bnQnICk7ID8+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LXZhbHVlLXJvdyI+CgkJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LWNvbCI+CgkJCQkJCQlMb2FuIFRlcm1zOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbG9hbl90ZXJtcycgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU1pbmltdW0gSW5jb21lOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbWluaW11bV9pbmNvbWUnICk7ID8+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC0yIj4KCQkJCTxoMyBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtaGVhZGVyIj4KCQkJCQlEZXRhaWxzCgkJCQk8L2gzPgoJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtY29udGVudCI+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU9yaWdpbmF0aW9uIEZlZXM6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9vcmlnaW5hdGlvbl9mZWVzJyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTGF0ZSBGZWVzOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbGF0ZV9mZWVzJyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJUHJlcGF5bWVudCBQZW5hbHR5OgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfcHJlcGF5bWVudF9wZW5hbHR5JyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJU29mdCBDcmVkaXQgQ2hlY2s6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9zb2Z0X2NyZWRpdF9jaGVjaycgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+CgkJPD9waHAgaWYgKCBnZXRfZmllbGQoICdwbF9sZW5kZXJfcmV2aWV3X3VybCcgKSApOiA/PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXJldmlldyI+CgkJCQk8cCBjbGFzcz0ibGVuZGVyLXJldmlldy1oZWFkaW5nIj4KCQkJCQlSZXZpZXc6CgkJCQk8L3A+CgkJCQk8cD4KCQkJCQk8YSBocmVmPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9yZXZpZXdfdXJsJyApOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJsZW5kZXItcmV2aWV3LWxpbmsiPjw/cGhwIHRoZV90aXRsZSgpOyA/PiBQZXJzb25hbCBMb2FuIFJldmlldzwvYT4KCQkJCTwvcD4KCQkJPC9kaXY+CgkJPD9waHAgZW5kaWY7ID8+Cgk8L2Rpdj4KPC9kaXY+Cjw/cGhwCgllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JzsKCSRsZW5kZXJfdmlld19kZXRhaWxzX2xpbmtfanNfdmFyID0gJ2xlbmRlcl92aWV3X2RldGFpbHNfbGlua18nIC4gZ2V0X3RoZV9pZCgpOwoJJGxlbmRlcl9jb2xsYXBzaWJsZV9yb3dfanNfdmFyID0gJ2xlbmRlcl9jb2xsYXBzaWJsZV9yb3dfJyAuIGdldF90aGVfaWQoKTsKCWVjaG8gJ3ZhciAnIC4gJGxlbmRlcl92aWV3X2RldGFpbHNfbGlua19qc192YXIgLiAnID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibGVuZGVyLXZpZXctZGV0YWlscy1saW5rLScgLiBnZXRfdGhlX2lkKCkgLiAnIilbMF07JzsKCWVjaG8gJGxlbmRlcl92aWV3X2RldGFpbHNfbGlua19qc192YXIgLiAnLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7JzsKCWVjaG8gJ3RoaXMuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIik7JzsKCWVjaG8gJ3ZhciAnIC4gJGxlbmRlcl9jb2xsYXBzaWJsZV9yb3dfanNfdmFyIC4gJyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctJyAuIGdldF90aGVfaWQoKSAuICciKVswXTsnOwoJZWNobyAnaWYgKCcgLiAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnN0eWxlLm1heEhlaWdodCkgeyc7CgllY2hvICRsZW5kZXJfY29sbGFwc2libGVfcm93X2pzX3ZhciAuICcuc3R5bGUubWF4SGVpZ2h0ID0gbnVsbDsnOwoJZWNobyAnfSBlbHNlIHsnOwoJZWNobyAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnN0eWxlLm1heEhlaWdodCA9ICcgLiAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnNjcm9sbEhlaWdodCArICJweCI7JzsKCWVjaG8gJ30nOwoJZWNobyAnfSk7JzsKCWVjaG8gJzwvc2NyaXB0Pic7Cj8+ PGRpdiBjbGFzcz0ibGVuZGVyLXJvdy13cmFwcGVyIj4KCTxkaXYgY2xhc3M9ImxlbmRlci1wcmltYXJ5LXJvdyI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWxvZ28td3JhcHBlciBsZW5kZXItcHJpbWFyeS1yb3ctY2VsbCI+CgkJCTxhIGRhdGEtZXZlbnQtbGFiZWw9Ijw/cGhwIGVjaG8gJ1BMIC0gJyAuIGdldF90aGVfdGl0bGUoKTsgPz4iIGhyZWY9Ijw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX2FmZmlsaWF0ZV9saW5rJyApOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJsZW5kZXItbG9nby1saW5rIj4KCQkJCTxpbWcgc3JjPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9sb2dvJyApWyd1cmwnXTsgPz4iIGFsdD0iPD9waHAgdGhlX3RpdGxlKCk7ID8+IiBjbGFzcz0ibGVuZGVyLWxvZ28iIC8+CgkJCTwvYT4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYXByIGxlbmRlci1wcmltYXJ5LXJvdy1jZWxsIj4KCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfYXByX2xvd2VyX2xpbWl0JyApOyA/PiUgLSA8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9hcHJfdXBwZXJfbGltaXQnICk7ID8+JQoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImxlbmRlci1hZmZpbGlhdGUtYnV0dG9uLXdyYXBwZXIgbGVuZGVyLXByaW1hcnktcm93LWNlbGwiPgoJCQk8YSBkYXRhLWV2ZW50LWxhYmVsPSI8P3BocCBlY2hvICdQTCAtICcgLiBnZXRfdGhlX3RpdGxlKCk7ID8+IiBocmVmPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9hZmZpbGlhdGVfbGluaycgKTsgPz4iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93IiBjbGFzcz0ibGVuZGVyLWFmZmlsaWF0ZS1idXR0b24iPgoJCQkJR2V0IE15IFJhdGUKCQkJPC9hPgoJCTwvZGl2PgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJsZW5kZXItc2Vjb25kYXJ5LXJvdyI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWxvZ28tc2Vjb25kYXJ5LXJvdy1jZWxsIGxlbmRlci1zZWNvbmRhcnktcm93LWNlbGwiPgoJCQk8cCBjbGFzcz0ibGVuZGVyLXZpZXctZGV0YWlscy10cmlnZ2VyIj4KCQkJCTxzcGFuIGNsYXNzPSJsZW5kZXItdmlldy1kZXRhaWxzLWxpbmsgbGVuZGVyLXZpZXctZGV0YWlscy1saW5rLTw/cGhwIHRoZV9JRCgpOyA/PiI+CgkJCQkJPHNwYW4gY2xhc3M9ImxlbmRlci12aWV3LWRldGFpbHMtbGluay1hcnJvdyI+PC9zcGFuPlZpZXcgRGV0YWlscwoJCQkJPHNwYW4+CgkJCTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYXByLXNlY29uZGFyeS1yb3ctY2VsbCBsZW5kZXItc2Vjb25kYXJ5LXJvdy1jZWxsIj4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbi1zZWNvbmRhcnktcm93LWNlbGwgbGVuZGVyLXNlY29uZGFyeS1yb3ctY2VsbCI+CgkJCTxwIGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbi1oZWxwZXItdGV4dCI+CgkJCQk8P3BocAoJCQkJCWlmKCBzdHJfZW5kc193aXRoKCBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICksICdzJyApICkKCQkJCQl7CgkJCQkJCWVjaG8gJ29uICcgLiBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICkgLiAnXCcgd2Vic2l0ZSc7CgkJCQkJfQoJCQkJCWVsc2UKCQkJCQl7CgkJCQkJCWVjaG8gJ29uICcgLiBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICkgLiAnXCdzIHdlYnNpdGUnOwoJCQkJCX0KCQkJCT8+CgkJCTwvcD4KCQk8L2Rpdj4KCTwvZGl2PgoJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdyBsZW5kZXItY29sbGFwc2libGUtcm93LTw/cGhwIHRoZV9JRCgpOyA/PiI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2xzIj4KCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtMSI+CgkJCQk8aDMgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctY29sLWhlYWRlciI+CgkJCQkJT3ZlcnZpZXcKCQkJCTwvaDM+CgkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC1jb250ZW50Ij4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTWluaW11bSBDcmVkaXQgU2NvcmU6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9taW5pbXVtX2NyZWRpdF9zY29yZScgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU1pbmltdW0gTG9hbiBBbW91bnQ6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9taW5pbXVtX2xvYW5fYW1vdW50JyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTWF4aW11bSBMb2FuIEFtb3VudDoKCQkJCQkJPC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctdmFsdWUtY29sIj4KCQkJCQkJCTw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX21heGltdW1fbG9hbl9hbW91bnQnICk7ID8+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LXZhbHVlLXJvdyI+CgkJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LWNvbCI+CgkJCQkJCQlMb2FuIFRlcm1zOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbG9hbl90ZXJtcycgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU1pbmltdW0gSW5jb21lOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbWluaW11bV9pbmNvbWUnICk7ID8+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC0yIj4KCQkJCTxoMyBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtaGVhZGVyIj4KCQkJCQlEZXRhaWxzCgkJCQk8L2gzPgoJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtY29udGVudCI+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU9yaWdpbmF0aW9uIEZlZXM6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9vcmlnaW5hdGlvbl9mZWVzJyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTGF0ZSBGZWVzOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbGF0ZV9mZWVzJyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJUHJlcGF5bWVudCBQZW5hbHR5OgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfcHJlcGF5bWVudF9wZW5hbHR5JyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJU29mdCBDcmVkaXQgQ2hlY2s6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9zb2Z0X2NyZWRpdF9jaGVjaycgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+CgkJPD9waHAgaWYgKCBnZXRfZmllbGQoICdwbF9sZW5kZXJfcmV2aWV3X3VybCcgKSApOiA/PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXJldmlldyI+CgkJCQk8cCBjbGFzcz0ibGVuZGVyLXJldmlldy1oZWFkaW5nIj4KCQkJCQlSZXZpZXc6CgkJCQk8L3A+CgkJCQk8cD4KCQkJCQk8YSBocmVmPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9yZXZpZXdfdXJsJyApOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJsZW5kZXItcmV2aWV3LWxpbmsiPjw/cGhwIHRoZV90aXRsZSgpOyA/PiBQZXJzb25hbCBMb2FuIFJldmlldzwvYT4KCQkJCTwvcD4KCQkJPC9kaXY+CgkJPD9waHAgZW5kaWY7ID8+Cgk8L2Rpdj4KPC9kaXY+Cjw/cGhwCgllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JzsKCSRsZW5kZXJfdmlld19kZXRhaWxzX2xpbmtfanNfdmFyID0gJ2xlbmRlcl92aWV3X2RldGFpbHNfbGlua18nIC4gZ2V0X3RoZV9pZCgpOwoJJGxlbmRlcl9jb2xsYXBzaWJsZV9yb3dfanNfdmFyID0gJ2xlbmRlcl9jb2xsYXBzaWJsZV9yb3dfJyAuIGdldF90aGVfaWQoKTsKCWVjaG8gJ3ZhciAnIC4gJGxlbmRlcl92aWV3X2RldGFpbHNfbGlua19qc192YXIgLiAnID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibGVuZGVyLXZpZXctZGV0YWlscy1saW5rLScgLiBnZXRfdGhlX2lkKCkgLiAnIilbMF07JzsKCWVjaG8gJGxlbmRlcl92aWV3X2RldGFpbHNfbGlua19qc192YXIgLiAnLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7JzsKCWVjaG8gJ3RoaXMuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIik7JzsKCWVjaG8gJ3ZhciAnIC4gJGxlbmRlcl9jb2xsYXBzaWJsZV9yb3dfanNfdmFyIC4gJyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctJyAuIGdldF90aGVfaWQoKSAuICciKVswXTsnOwoJZWNobyAnaWYgKCcgLiAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnN0eWxlLm1heEhlaWdodCkgeyc7CgllY2hvICRsZW5kZXJfY29sbGFwc2libGVfcm93X2pzX3ZhciAuICcuc3R5bGUubWF4SGVpZ2h0ID0gbnVsbDsnOwoJZWNobyAnfSBlbHNlIHsnOwoJZWNobyAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnN0eWxlLm1heEhlaWdodCA9ICcgLiAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnNjcm9sbEhlaWdodCArICJweCI7JzsKCWVjaG8gJ30nOwoJZWNobyAnfSk7JzsKCWVjaG8gJzwvc2NyaXB0Pic7Cj8+ PGRpdiBjbGFzcz0ibGVuZGVyLXJvdy13cmFwcGVyIj4KCTxkaXYgY2xhc3M9ImxlbmRlci1wcmltYXJ5LXJvdyI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWxvZ28td3JhcHBlciBsZW5kZXItcHJpbWFyeS1yb3ctY2VsbCI+CgkJCTxhIGRhdGEtZXZlbnQtbGFiZWw9Ijw/cGhwIGVjaG8gJ1BMIC0gJyAuIGdldF90aGVfdGl0bGUoKTsgPz4iIGhyZWY9Ijw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX2FmZmlsaWF0ZV9saW5rJyApOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJsZW5kZXItbG9nby1saW5rIj4KCQkJCTxpbWcgc3JjPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9sb2dvJyApWyd1cmwnXTsgPz4iIGFsdD0iPD9waHAgdGhlX3RpdGxlKCk7ID8+IiBjbGFzcz0ibGVuZGVyLWxvZ28iIC8+CgkJCTwvYT4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYXByIGxlbmRlci1wcmltYXJ5LXJvdy1jZWxsIj4KCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfYXByX2xvd2VyX2xpbWl0JyApOyA/PiUgLSA8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9hcHJfdXBwZXJfbGltaXQnICk7ID8+JQoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImxlbmRlci1hZmZpbGlhdGUtYnV0dG9uLXdyYXBwZXIgbGVuZGVyLXByaW1hcnktcm93LWNlbGwiPgoJCQk8YSBkYXRhLWV2ZW50LWxhYmVsPSI8P3BocCBlY2hvICdQTCAtICcgLiBnZXRfdGhlX3RpdGxlKCk7ID8+IiBocmVmPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9hZmZpbGlhdGVfbGluaycgKTsgPz4iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93IiBjbGFzcz0ibGVuZGVyLWFmZmlsaWF0ZS1idXR0b24iPgoJCQkJR2V0IE15IFJhdGUKCQkJPC9hPgoJCTwvZGl2PgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJsZW5kZXItc2Vjb25kYXJ5LXJvdyI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWxvZ28tc2Vjb25kYXJ5LXJvdy1jZWxsIGxlbmRlci1zZWNvbmRhcnktcm93LWNlbGwiPgoJCQk8cCBjbGFzcz0ibGVuZGVyLXZpZXctZGV0YWlscy10cmlnZ2VyIj4KCQkJCTxzcGFuIGNsYXNzPSJsZW5kZXItdmlldy1kZXRhaWxzLWxpbmsgbGVuZGVyLXZpZXctZGV0YWlscy1saW5rLTw/cGhwIHRoZV9JRCgpOyA/PiI+CgkJCQkJPHNwYW4gY2xhc3M9ImxlbmRlci12aWV3LWRldGFpbHMtbGluay1hcnJvdyI+PC9zcGFuPlZpZXcgRGV0YWlscwoJCQkJPHNwYW4+CgkJCTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYXByLXNlY29uZGFyeS1yb3ctY2VsbCBsZW5kZXItc2Vjb25kYXJ5LXJvdy1jZWxsIj4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbi1zZWNvbmRhcnktcm93LWNlbGwgbGVuZGVyLXNlY29uZGFyeS1yb3ctY2VsbCI+CgkJCTxwIGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbi1oZWxwZXItdGV4dCI+CgkJCQk8P3BocAoJCQkJCWlmKCBzdHJfZW5kc193aXRoKCBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICksICdzJyApICkKCQkJCQl7CgkJCQkJCWVjaG8gJ29uICcgLiBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICkgLiAnXCcgd2Vic2l0ZSc7CgkJCQkJfQoJCQkJCWVsc2UKCQkJCQl7CgkJCQkJCWVjaG8gJ29uICcgLiBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICkgLiAnXCdzIHdlYnNpdGUnOwoJCQkJCX0KCQkJCT8+CgkJCTwvcD4KCQk8L2Rpdj4KCTwvZGl2PgoJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdyBsZW5kZXItY29sbGFwc2libGUtcm93LTw/cGhwIHRoZV9JRCgpOyA/PiI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2xzIj4KCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtMSI+CgkJCQk8aDMgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctY29sLWhlYWRlciI+CgkJCQkJT3ZlcnZpZXcKCQkJCTwvaDM+CgkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC1jb250ZW50Ij4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTWluaW11bSBDcmVkaXQgU2NvcmU6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9taW5pbXVtX2NyZWRpdF9zY29yZScgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU1pbmltdW0gTG9hbiBBbW91bnQ6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9taW5pbXVtX2xvYW5fYW1vdW50JyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTWF4aW11bSBMb2FuIEFtb3VudDoKCQkJCQkJPC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctdmFsdWUtY29sIj4KCQkJCQkJCTw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX21heGltdW1fbG9hbl9hbW91bnQnICk7ID8+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LXZhbHVlLXJvdyI+CgkJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LWNvbCI+CgkJCQkJCQlMb2FuIFRlcm1zOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbG9hbl90ZXJtcycgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU1pbmltdW0gSW5jb21lOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbWluaW11bV9pbmNvbWUnICk7ID8+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC0yIj4KCQkJCTxoMyBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtaGVhZGVyIj4KCQkJCQlEZXRhaWxzCgkJCQk8L2gzPgoJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtY29udGVudCI+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU9yaWdpbmF0aW9uIEZlZXM6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9vcmlnaW5hdGlvbl9mZWVzJyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTGF0ZSBGZWVzOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbGF0ZV9mZWVzJyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJUHJlcGF5bWVudCBQZW5hbHR5OgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfcHJlcGF5bWVudF9wZW5hbHR5JyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJU29mdCBDcmVkaXQgQ2hlY2s6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9zb2Z0X2NyZWRpdF9jaGVjaycgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+CgkJPD9waHAgaWYgKCBnZXRfZmllbGQoICdwbF9sZW5kZXJfcmV2aWV3X3VybCcgKSApOiA/PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXJldmlldyI+CgkJCQk8cCBjbGFzcz0ibGVuZGVyLXJldmlldy1oZWFkaW5nIj4KCQkJCQlSZXZpZXc6CgkJCQk8L3A+CgkJCQk8cD4KCQkJCQk8YSBocmVmPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9yZXZpZXdfdXJsJyApOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJsZW5kZXItcmV2aWV3LWxpbmsiPjw/cGhwIHRoZV90aXRsZSgpOyA/PiBQZXJzb25hbCBMb2FuIFJldmlldzwvYT4KCQkJCTwvcD4KCQkJPC9kaXY+CgkJPD9waHAgZW5kaWY7ID8+Cgk8L2Rpdj4KPC9kaXY+Cjw/cGhwCgllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JzsKCSRsZW5kZXJfdmlld19kZXRhaWxzX2xpbmtfanNfdmFyID0gJ2xlbmRlcl92aWV3X2RldGFpbHNfbGlua18nIC4gZ2V0X3RoZV9pZCgpOwoJJGxlbmRlcl9jb2xsYXBzaWJsZV9yb3dfanNfdmFyID0gJ2xlbmRlcl9jb2xsYXBzaWJsZV9yb3dfJyAuIGdldF90aGVfaWQoKTsKCWVjaG8gJ3ZhciAnIC4gJGxlbmRlcl92aWV3X2RldGFpbHNfbGlua19qc192YXIgLiAnID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibGVuZGVyLXZpZXctZGV0YWlscy1saW5rLScgLiBnZXRfdGhlX2lkKCkgLiAnIilbMF07JzsKCWVjaG8gJGxlbmRlcl92aWV3X2RldGFpbHNfbGlua19qc192YXIgLiAnLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7JzsKCWVjaG8gJ3RoaXMuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIik7JzsKCWVjaG8gJ3ZhciAnIC4gJGxlbmRlcl9jb2xsYXBzaWJsZV9yb3dfanNfdmFyIC4gJyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctJyAuIGdldF90aGVfaWQoKSAuICciKVswXTsnOwoJZWNobyAnaWYgKCcgLiAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnN0eWxlLm1heEhlaWdodCkgeyc7CgllY2hvICRsZW5kZXJfY29sbGFwc2libGVfcm93X2pzX3ZhciAuICcuc3R5bGUubWF4SGVpZ2h0ID0gbnVsbDsnOwoJZWNobyAnfSBlbHNlIHsnOwoJZWNobyAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnN0eWxlLm1heEhlaWdodCA9ICcgLiAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnNjcm9sbEhlaWdodCArICJweCI7JzsKCWVjaG8gJ30nOwoJZWNobyAnfSk7JzsKCWVjaG8gJzwvc2NyaXB0Pic7Cj8+ PGRpdiBjbGFzcz0ibGVuZGVyLXJvdy13cmFwcGVyIj4KCTxkaXYgY2xhc3M9ImxlbmRlci1wcmltYXJ5LXJvdyI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWxvZ28td3JhcHBlciBsZW5kZXItcHJpbWFyeS1yb3ctY2VsbCI+CgkJCTxhIGRhdGEtZXZlbnQtbGFiZWw9Ijw/cGhwIGVjaG8gJ1BMIC0gJyAuIGdldF90aGVfdGl0bGUoKTsgPz4iIGhyZWY9Ijw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX2FmZmlsaWF0ZV9saW5rJyApOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJsZW5kZXItbG9nby1saW5rIj4KCQkJCTxpbWcgc3JjPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9sb2dvJyApWyd1cmwnXTsgPz4iIGFsdD0iPD9waHAgdGhlX3RpdGxlKCk7ID8+IiBjbGFzcz0ibGVuZGVyLWxvZ28iIC8+CgkJCTwvYT4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYXByIGxlbmRlci1wcmltYXJ5LXJvdy1jZWxsIj4KCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfYXByX2xvd2VyX2xpbWl0JyApOyA/PiUgLSA8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9hcHJfdXBwZXJfbGltaXQnICk7ID8+JQoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImxlbmRlci1hZmZpbGlhdGUtYnV0dG9uLXdyYXBwZXIgbGVuZGVyLXByaW1hcnktcm93LWNlbGwiPgoJCQk8YSBkYXRhLWV2ZW50LWxhYmVsPSI8P3BocCBlY2hvICdQTCAtICcgLiBnZXRfdGhlX3RpdGxlKCk7ID8+IiBocmVmPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9hZmZpbGlhdGVfbGluaycgKTsgPz4iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93IiBjbGFzcz0ibGVuZGVyLWFmZmlsaWF0ZS1idXR0b24iPgoJCQkJR2V0IE15IFJhdGUKCQkJPC9hPgoJCTwvZGl2PgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJsZW5kZXItc2Vjb25kYXJ5LXJvdyI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWxvZ28tc2Vjb25kYXJ5LXJvdy1jZWxsIGxlbmRlci1zZWNvbmRhcnktcm93LWNlbGwiPgoJCQk8cCBjbGFzcz0ibGVuZGVyLXZpZXctZGV0YWlscy10cmlnZ2VyIj4KCQkJCTxzcGFuIGNsYXNzPSJsZW5kZXItdmlldy1kZXRhaWxzLWxpbmsgbGVuZGVyLXZpZXctZGV0YWlscy1saW5rLTw/cGhwIHRoZV9JRCgpOyA/PiI+CgkJCQkJPHNwYW4gY2xhc3M9ImxlbmRlci12aWV3LWRldGFpbHMtbGluay1hcnJvdyI+PC9zcGFuPlZpZXcgRGV0YWlscwoJCQkJPHNwYW4+CgkJCTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYXByLXNlY29uZGFyeS1yb3ctY2VsbCBsZW5kZXItc2Vjb25kYXJ5LXJvdy1jZWxsIj4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbi1zZWNvbmRhcnktcm93LWNlbGwgbGVuZGVyLXNlY29uZGFyeS1yb3ctY2VsbCI+CgkJCTxwIGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbi1oZWxwZXItdGV4dCI+CgkJCQk8P3BocAoJCQkJCWlmKCBzdHJfZW5kc193aXRoKCBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICksICdzJyApICkKCQkJCQl7CgkJCQkJCWVjaG8gJ29uICcgLiBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICkgLiAnXCcgd2Vic2l0ZSc7CgkJCQkJfQoJCQkJCWVsc2UKCQkJCQl7CgkJCQkJCWVjaG8gJ29uICcgLiBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICkgLiAnXCdzIHdlYnNpdGUnOwoJCQkJCX0KCQkJCT8+CgkJCTwvcD4KCQk8L2Rpdj4KCTwvZGl2PgoJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdyBsZW5kZXItY29sbGFwc2libGUtcm93LTw/cGhwIHRoZV9JRCgpOyA/PiI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2xzIj4KCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtMSI+CgkJCQk8aDMgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctY29sLWhlYWRlciI+CgkJCQkJT3ZlcnZpZXcKCQkJCTwvaDM+CgkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC1jb250ZW50Ij4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTWluaW11bSBDcmVkaXQgU2NvcmU6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9taW5pbXVtX2NyZWRpdF9zY29yZScgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU1pbmltdW0gTG9hbiBBbW91bnQ6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9taW5pbXVtX2xvYW5fYW1vdW50JyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTWF4aW11bSBMb2FuIEFtb3VudDoKCQkJCQkJPC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctdmFsdWUtY29sIj4KCQkJCQkJCTw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX21heGltdW1fbG9hbl9hbW91bnQnICk7ID8+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LXZhbHVlLXJvdyI+CgkJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LWNvbCI+CgkJCQkJCQlMb2FuIFRlcm1zOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbG9hbl90ZXJtcycgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU1pbmltdW0gSW5jb21lOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbWluaW11bV9pbmNvbWUnICk7ID8+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC0yIj4KCQkJCTxoMyBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtaGVhZGVyIj4KCQkJCQlEZXRhaWxzCgkJCQk8L2gzPgoJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtY29udGVudCI+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU9yaWdpbmF0aW9uIEZlZXM6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9vcmlnaW5hdGlvbl9mZWVzJyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTGF0ZSBGZWVzOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbGF0ZV9mZWVzJyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJUHJlcGF5bWVudCBQZW5hbHR5OgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfcHJlcGF5bWVudF9wZW5hbHR5JyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJU29mdCBDcmVkaXQgQ2hlY2s6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9zb2Z0X2NyZWRpdF9jaGVjaycgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+CgkJPD9waHAgaWYgKCBnZXRfZmllbGQoICdwbF9sZW5kZXJfcmV2aWV3X3VybCcgKSApOiA/PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXJldmlldyI+CgkJCQk8cCBjbGFzcz0ibGVuZGVyLXJldmlldy1oZWFkaW5nIj4KCQkJCQlSZXZpZXc6CgkJCQk8L3A+CgkJCQk8cD4KCQkJCQk8YSBocmVmPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9yZXZpZXdfdXJsJyApOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJsZW5kZXItcmV2aWV3LWxpbmsiPjw/cGhwIHRoZV90aXRsZSgpOyA/PiBQZXJzb25hbCBMb2FuIFJldmlldzwvYT4KCQkJCTwvcD4KCQkJPC9kaXY+CgkJPD9waHAgZW5kaWY7ID8+Cgk8L2Rpdj4KPC9kaXY+Cjw/cGhwCgllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JzsKCSRsZW5kZXJfdmlld19kZXRhaWxzX2xpbmtfanNfdmFyID0gJ2xlbmRlcl92aWV3X2RldGFpbHNfbGlua18nIC4gZ2V0X3RoZV9pZCgpOwoJJGxlbmRlcl9jb2xsYXBzaWJsZV9yb3dfanNfdmFyID0gJ2xlbmRlcl9jb2xsYXBzaWJsZV9yb3dfJyAuIGdldF90aGVfaWQoKTsKCWVjaG8gJ3ZhciAnIC4gJGxlbmRlcl92aWV3X2RldGFpbHNfbGlua19qc192YXIgLiAnID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibGVuZGVyLXZpZXctZGV0YWlscy1saW5rLScgLiBnZXRfdGhlX2lkKCkgLiAnIilbMF07JzsKCWVjaG8gJGxlbmRlcl92aWV3X2RldGFpbHNfbGlua19qc192YXIgLiAnLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7JzsKCWVjaG8gJ3RoaXMuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIik7JzsKCWVjaG8gJ3ZhciAnIC4gJGxlbmRlcl9jb2xsYXBzaWJsZV9yb3dfanNfdmFyIC4gJyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctJyAuIGdldF90aGVfaWQoKSAuICciKVswXTsnOwoJZWNobyAnaWYgKCcgLiAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnN0eWxlLm1heEhlaWdodCkgeyc7CgllY2hvICRsZW5kZXJfY29sbGFwc2libGVfcm93X2pzX3ZhciAuICcuc3R5bGUubWF4SGVpZ2h0ID0gbnVsbDsnOwoJZWNobyAnfSBlbHNlIHsnOwoJZWNobyAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnN0eWxlLm1heEhlaWdodCA9ICcgLiAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnNjcm9sbEhlaWdodCArICJweCI7JzsKCWVjaG8gJ30nOwoJZWNobyAnfSk7JzsKCWVjaG8gJzwvc2NyaXB0Pic7Cj8+ PGRpdiBjbGFzcz0ibGVuZGVyLXJvdy13cmFwcGVyIj4KCTxkaXYgY2xhc3M9ImxlbmRlci1wcmltYXJ5LXJvdyI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWxvZ28td3JhcHBlciBsZW5kZXItcHJpbWFyeS1yb3ctY2VsbCI+CgkJCTxhIGRhdGEtZXZlbnQtbGFiZWw9Ijw/cGhwIGVjaG8gJ1BMIC0gJyAuIGdldF90aGVfdGl0bGUoKTsgPz4iIGhyZWY9Ijw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX2FmZmlsaWF0ZV9saW5rJyApOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9mb2xsb3ciIGNsYXNzPSJsZW5kZXItbG9nby1saW5rIj4KCQkJCTxpbWcgc3JjPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9sb2dvJyApWyd1cmwnXTsgPz4iIGFsdD0iPD9waHAgdGhlX3RpdGxlKCk7ID8+IiBjbGFzcz0ibGVuZGVyLWxvZ28iIC8+CgkJCTwvYT4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYXByIGxlbmRlci1wcmltYXJ5LXJvdy1jZWxsIj4KCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfYXByX2xvd2VyX2xpbWl0JyApOyA/PiUgLSA8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9hcHJfdXBwZXJfbGltaXQnICk7ID8+JQoJCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImxlbmRlci1hZmZpbGlhdGUtYnV0dG9uLXdyYXBwZXIgbGVuZGVyLXByaW1hcnktcm93LWNlbGwiPgoJCQk8YSBkYXRhLWV2ZW50LWxhYmVsPSI8P3BocCBlY2hvICdQTCAtICcgLiBnZXRfdGhlX3RpdGxlKCk7ID8+IiBocmVmPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9hZmZpbGlhdGVfbGluaycgKTsgPz4iIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93IiBjbGFzcz0ibGVuZGVyLWFmZmlsaWF0ZS1idXR0b24iPgoJCQkJR2V0IE15IFJhdGUKCQkJPC9hPgoJCTwvZGl2PgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJsZW5kZXItc2Vjb25kYXJ5LXJvdyI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWxvZ28tc2Vjb25kYXJ5LXJvdy1jZWxsIGxlbmRlci1zZWNvbmRhcnktcm93LWNlbGwiPgoJCQk8cCBjbGFzcz0ibGVuZGVyLXZpZXctZGV0YWlscy10cmlnZ2VyIj4KCQkJCTxzcGFuIGNsYXNzPSJsZW5kZXItdmlldy1kZXRhaWxzLWxpbmsgbGVuZGVyLXZpZXctZGV0YWlscy1saW5rLTw/cGhwIHRoZV9JRCgpOyA/PiI+CgkJCQkJPHNwYW4gY2xhc3M9ImxlbmRlci12aWV3LWRldGFpbHMtbGluay1hcnJvdyI+PC9zcGFuPlZpZXcgRGV0YWlscwoJCQkJPHNwYW4+CgkJCTwvcD4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYXByLXNlY29uZGFyeS1yb3ctY2VsbCBsZW5kZXItc2Vjb25kYXJ5LXJvdy1jZWxsIj4KCQk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbi1zZWNvbmRhcnktcm93LWNlbGwgbGVuZGVyLXNlY29uZGFyeS1yb3ctY2VsbCI+CgkJCTxwIGNsYXNzPSJsZW5kZXItYWZmaWxpYXRlLWJ1dHRvbi1oZWxwZXItdGV4dCI+CgkJCQk8P3BocAoJCQkJCWlmKCBzdHJfZW5kc193aXRoKCBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICksICdzJyApICkKCQkJCQl7CgkJCQkJCWVjaG8gJ29uICcgLiBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICkgLiAnXCcgd2Vic2l0ZSc7CgkJCQkJfQoJCQkJCWVsc2UKCQkJCQl7CgkJCQkJCWVjaG8gJ29uICcgLiBnZXRfZmllbGQoICdwbF9sZW5kZXJfbmFtZV9iZWxvd19idXR0b24nICkgLiAnXCdzIHdlYnNpdGUnOwoJCQkJCX0KCQkJCT8+CgkJCTwvcD4KCQk8L2Rpdj4KCTwvZGl2PgoJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdyBsZW5kZXItY29sbGFwc2libGUtcm93LTw/cGhwIHRoZV9JRCgpOyA/PiI+CgkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2xzIj4KCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtMSI+CgkJCQk8aDMgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctY29sLWhlYWRlciI+CgkJCQkJT3ZlcnZpZXcKCQkJCTwvaDM+CgkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC1jb250ZW50Ij4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTWluaW11bSBDcmVkaXQgU2NvcmU6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9taW5pbXVtX2NyZWRpdF9zY29yZScgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU1pbmltdW0gTG9hbiBBbW91bnQ6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9taW5pbXVtX2xvYW5fYW1vdW50JyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTWF4aW11bSBMb2FuIEFtb3VudDoKCQkJCQkJPC9kaXY+CgkJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctdmFsdWUtY29sIj4KCQkJCQkJCTw/cGhwIGVjaG8gZ2V0X2ZpZWxkKCAncGxfbGVuZGVyX21heGltdW1fbG9hbl9hbW91bnQnICk7ID8+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LXZhbHVlLXJvdyI+CgkJCQkJCTxkaXYgY2xhc3M9ImxlbmRlci1jb2xsYXBzaWJsZS1yb3cta2V5LWNvbCI+CgkJCQkJCQlMb2FuIFRlcm1zOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbG9hbl90ZXJtcycgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU1pbmltdW0gSW5jb21lOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbWluaW11bV9pbmNvbWUnICk7ID8+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWNvbC0yIj4KCQkJCTxoMyBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtaGVhZGVyIj4KCQkJCQlEZXRhaWxzCgkJCQk8L2gzPgoJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1jb2wtY29udGVudCI+CgkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktdmFsdWUtcm93Ij4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy1rZXktY29sIj4KCQkJCQkJCU9yaWdpbmF0aW9uIEZlZXM6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9vcmlnaW5hdGlvbl9mZWVzJyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJTGF0ZSBGZWVzOgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfbGF0ZV9mZWVzJyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJUHJlcGF5bWVudCBQZW5hbHR5OgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0ibGVuZGVyLWNvbGxhcHNpYmxlLXJvdy12YWx1ZS1jb2wiPgoJCQkJCQkJPD9waHAgZWNobyBnZXRfZmllbGQoICdwbF9sZW5kZXJfcHJlcGF5bWVudF9wZW5hbHR5JyApOyA/PgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS12YWx1ZS1yb3ciPgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LWtleS1jb2wiPgoJCQkJCQkJU29mdCBDcmVkaXQgQ2hlY2s6CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXZhbHVlLWNvbCI+CgkJCQkJCQk8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9zb2Z0X2NyZWRpdF9jaGVjaycgKTsgPz4KCQkJCQkJPC9kaXY+CgkJCQkJPC9kaXY+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJPC9kaXY+CgkJPD9waHAgaWYgKCBnZXRfZmllbGQoICdwbF9sZW5kZXJfcmV2aWV3X3VybCcgKSApOiA/PgoJCQk8ZGl2IGNsYXNzPSJsZW5kZXItY29sbGFwc2libGUtcm93LXJldmlldyI+CgkJCQk8cCBjbGFzcz0ibGVuZGVyLXJldmlldy1oZWFkaW5nIj4KCQkJCQlSZXZpZXc6CgkJCQk8L3A+CgkJCQk8cD4KCQkJCQk8YSBocmVmPSI8P3BocCBlY2hvIGdldF9maWVsZCggJ3BsX2xlbmRlcl9yZXZpZXdfdXJsJyApOyA/PiIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJsZW5kZXItcmV2aWV3LWxpbmsiPjw/cGhwIHRoZV90aXRsZSgpOyA/PiBQZXJzb25hbCBMb2FuIFJldmlldzwvYT4KCQkJCTwvcD4KCQkJPC9kaXY+CgkJPD9waHAgZW5kaWY7ID8+Cgk8L2Rpdj4KPC9kaXY+Cjw/cGhwCgllY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+JzsKCSRsZW5kZXJfdmlld19kZXRhaWxzX2xpbmtfanNfdmFyID0gJ2xlbmRlcl92aWV3X2RldGFpbHNfbGlua18nIC4gZ2V0X3RoZV9pZCgpOwoJJGxlbmRlcl9jb2xsYXBzaWJsZV9yb3dfanNfdmFyID0gJ2xlbmRlcl9jb2xsYXBzaWJsZV9yb3dfJyAuIGdldF90aGVfaWQoKTsKCWVjaG8gJ3ZhciAnIC4gJGxlbmRlcl92aWV3X2RldGFpbHNfbGlua19qc192YXIgLiAnID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgibGVuZGVyLXZpZXctZGV0YWlscy1saW5rLScgLiBnZXRfdGhlX2lkKCkgLiAnIilbMF07JzsKCWVjaG8gJGxlbmRlcl92aWV3X2RldGFpbHNfbGlua19qc192YXIgLiAnLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7JzsKCWVjaG8gJ3RoaXMuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIik7JzsKCWVjaG8gJ3ZhciAnIC4gJGxlbmRlcl9jb2xsYXBzaWJsZV9yb3dfanNfdmFyIC4gJyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImxlbmRlci1jb2xsYXBzaWJsZS1yb3ctJyAuIGdldF90aGVfaWQoKSAuICciKVswXTsnOwoJZWNobyAnaWYgKCcgLiAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnN0eWxlLm1heEhlaWdodCkgeyc7CgllY2hvICRsZW5kZXJfY29sbGFwc2libGVfcm93X2pzX3ZhciAuICcuc3R5bGUubWF4SGVpZ2h0ID0gbnVsbDsnOwoJZWNobyAnfSBlbHNlIHsnOwoJZWNobyAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnN0eWxlLm1heEhlaWdodCA9ICcgLiAkbGVuZGVyX2NvbGxhcHNpYmxlX3Jvd19qc192YXIgLiAnLnNjcm9sbEhlaWdodCArICJweCI7JzsKCWVjaG8gJ30nOwoJZWNobyAnfSk7JzsKCWVjaG8gJzwvc2NyaXB0Pic7Cj8+

PD9waHAKCSRvdXRwdXQgPSAnJzsKCQoJJGFyZ3MgPSBhcnJheSgKICAgICAgICAncG9zdF90eXBlJyA9PiAncGxfbGVuZGVyJywKICAgICAgICAncG9zdHNfcGVyX3BhZ2UnID0+IC0xLAoJCSdtZXRhX3F1ZXJ5JyA9PiBhcnJheSgKCQkJCQkJCSdyZWxhdGlvbicgPT4gJ0FORCcsCgkJCQkJCQlhcnJheSgKCQkJCQkJCQkna2V5JyA9PiAncGxfbGVuZGVyX3Zpc2libGUnLAoJCQkJCQkJCSd2YWx1ZScgPT4gJzEnLAoJCQkJCQkJCSdjb21wYXJlJyA9PiAnPScsCgkJCQkJCQkpLAoJCQkJCQkJYXJyYXkoCgkJCQkJCQkJJ2tleScgPT4gJ3BsX2xlbmRlcl9kaXNjbG9zdXJlX3VybCcsCgkJCQkJCQkJJ2NvbXBhcmUnID0+ICdFWElTVFMnLAoJCQkJCQkJKSwKCQkJCQkJKSwKCQknbWV0YV9rZXknID0+ICdwbF9sZW5kZXJfcG9zaXRpb24nLAoJCSdvcmRlcmJ5JyA9PiAnbWV0YV92YWx1ZV9udW0nLAoJCSdvcmRlcicgPT4gJ0FTQycsCiAgICApOwoKCSRsb29wID0gbmV3IFdQX1F1ZXJ5KCAkYXJncyApOwoKCWlmICggJGxvb3AgLT4gaGF2ZV9wb3N0cygpICkgewoJCQoJCSRvdXRwdXQgPSAnRGlzY2xvc3VyZXM6ICc7CgkJCgkJd2hpbGUgKCAkbG9vcCAtPiBoYXZlX3Bvc3RzKCkgKSB7CgkJCQoJCQkkbG9vcCAtPiB0aGVfcG9zdCgpOwoJCQkKCQkJJG91dHB1dCAuPSAnPGEgaHJlZj0iJyAuIGdldF9maWVsZCggJ3BsX2xlbmRlcl9kaXNjbG9zdXJlX3VybCcgKSAuICciIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vZm9sbG93Ij4nIC4gZ2V0X3RoZV90aXRsZSgpIC4gJzwvYT4gfCAnOwoJCQkKCQl9CgkJCgl9CgoJd3BfcmVzZXRfcG9zdGRhdGEoKTsKCgkkb3V0cHV0ID0gc3Vic3RyKCAkb3V0cHV0LCAwLCBzdHJsZW4oICRvdXRwdXQgKSAtIDMgKTsKCgllY2hvICRvdXRwdXQ7Cj8+

Let's mentor your money

Get the latest personal finance advice delivered directly to your inbox.