Website: Fidelity Investments,Link:https://www.fidelity.com

Recommender System Type:

Fidelity uses a personalized investment recommender system, which combines rule-based filtering, collaborative filtering, and machine learning models.

How It Works:

  • Personalized Portfolio Recommendations: Based on a user’s financial goals, risk tolerance, time horizon, and investment preferences, Fidelity recommends mutual funds, ETFs, or managed portfolios.
  • Behavioral & Account Data: Uses account activity, past investment choices, and browsing behavior to tailor suggestions.
  • Educational Content Recommendations: Suggests relevant financial articles, webinars, and tools based on what the user has viewed or searched for.

Why It’s Notable:

Fidelity’s platform goes beyond basic recommendations—it integrates with robo-advisory tools like Fidelity Go and uses AI to help users make informed, personalized investment decisions. # Scenario Design Questions for Fidelity’s Recommender System

1. What is the user goal or task?

  • Goal: Users aim to make informed decisions regarding their investment choices, such as selecting mutual funds, stocks, or retirement plans. The recommender system’s goal is to provide personalized investment suggestions based on the user’s financial goals, risk tolerance, and investment history.
    • Example: A user looking to plan for retirement might be recommended a set of low-risk, long-term investment options, while someone looking for growth in the short-term might receive higher-risk investment suggestions.

2. What type of data is used to make recommendations?

  • Data Used: Fidelity’s recommender system uses a combination of financial data (such as account balances, investment types, and transaction history), user preferences (e.g., risk tolerance, investment goals, time horizon), and market data (e.g., performance of different asset classes, stocks, or mutual funds). The system may also analyze user behavior (such as how often they check their portfolio or the types of investments they’ve shown interest in) and demographic information (age, income, financial goals).
    • Example: A user’s risk profile and age would heavily influence the recommendations. If a user is young and willing to take on higher risk, the system may suggest growth-focused funds. If a user is nearing retirement, it would likely suggest more stable, income-generating investments like bonds or index funds.

3. How are recommendations delivered or presented to users?

  • Delivery Method: Recommendations are delivered in a personalized dashboard or on the homepage of the Fidelity platform. Users can view recommendations in various sections, such as “Recommended Funds for You,” “Portfolio Builder,” or “Suggested Investment Strategies.” Fidelity also provides interactive tools, such as retirement planning calculators or portfolio analysis, to help users evaluate the impact of different investment choices.
    • Example: A user logging into Fidelity might see a section titled “Recommended for You,” which includes curated investment options tailored to their profile. They could also receive suggestions through email or app notifications about new opportunities or adjustments to their portfolio based on market trends or their evolving financial goals.

Scenario Design for Fidelity Investments (the Organization)

1. Situation

Fidelity wants to help users find suitable investment options—such as mutual funds, ETFs, and retirement plans—without requiring deep financial expertise. Customers often feel overwhelmed by the large number of investment choices.

2. Motivation

By guiding users to appropriate investments, Fidelity improves customer satisfaction, increases product engagement, and boosts AUM (assets under management). Recommender systems help convert undecided visitors into loyal clients.

3. Expected Action

Fidelity expects users to engage with recommended products—view details, compare options, and eventually invest. It also expects that users will trust the system enough to rely on its guidance over time, leading to repeat visits and portfolio growth.


Scenario Design for Fidelity’s Customers (the Users)

1. Situation

A user logs into Fidelity’s website or app, looking to invest for retirement or diversify their portfolio. They have general goals but aren’t sure which investments fit their needs, and they’re overwhelmed by hundreds of options.

2. Motivation

The user wants to make informed financial decisions with minimal stress. They want recommendations that are aligned with their goals (e.g., retirement, saving for a home, maximizing returns while minimizing risk).

3. Expected Action

The user expects to see a curated list of investment products that match their risk profile, goals, and interests. Ideally, they’ll explore the suggestions, feel confident in the reasoning behind them, and make an investment decision.


Does it Make Sense to Do Both Scenario Designs?

Yes. - From Fidelity’s side, scenario design helps optimize the recommender engine to increase engagement, retention, and revenue. - From the user’s side, scenario design ensures the system actually meets customer needs, builds trust, and makes financial decision-making easier.

Understanding both perspectives ensures that the system is designed with empathy, strategy, and effectiveness.


Recommendations for the website

After logging in, users may see investment suggestions under categories like: - “Suggested for You” - “Top Picks Based on Your Portfolio” - “Funds to Consider”

Guided Tools and Quizzes

Tools such as: - “Find the Right Mutual Fund” or ETF screeners - “Investment Profile Questionnaire” to assess risk tolerance and goals (These tools likely feed into the recommendation engine.)

Portfolio Analysis Tools

  • The “Full View” dashboard integrates accounts and offers suggestions for asset allocation, diversification, and risk exposure.

Educational Content Recommendations

Fidelity also recommends blog posts, webinars, and tutorials personalized to the user’s investment level or recent searches.

Analysis of Scenario Design

Scenario Design
Scenario Design

This section explain the industry report.

Scenario Design
Scenario Design

Recommendations to Improve Fidelity’s Recommender System

  1. Enhance Transparency and Explainability
    • Why: Many users may be hesitant to trust financial recommendations without understanding why they’re being made.
      • ✅ Add “Why this was recommended” explanations next to suggestions.
      • ✅ Use plain language to describe key factors: e.g., “We suggested this ETF because it diversifies your tech-heavy portfolio.”
  2. Incorporate Real-Time Sentiment and News Data
    • Why: Investors increasingly react to financial news, social media sentiment, and global events.
      • ✅ Integrate news and social sentiment (e.g., from Twitter, Reddit, or financial blogs) into the recommendation algorithm.
      • ✅ Highlight trending funds with a sentiment score or recent news impact.
  3. Introduce Goal-Based Recommendation Tracks
    • Why: Not all investors think in terms of products — many think in terms of goals (e.g., buying a house, retirement, travel).
      • ✅ Let users choose or customize life goals, and deliver recommendation “tracks” that help meet those objectives.
      • ✅ Track progress visually and suggest adjustments when market conditions shift.
  4. Use Collaborative Filtering Across Similar Investors
    • Why: Investors may benefit from patterns among peers with similar goals or risk profiles.
      • ✅ Recommend portfolios or strategies that people with similar profiles have used successfully.
      • ✅ Offer “community insight” anonymized data: “80% of investors with your profile added X last quarter.”
  5. Improve Engagement with Adaptive Learning Systems
    • Why: Fidelity can better refine recommendations the more it learns from users.
      • ✅ Let users give feedback on recommendations: “Not interested,” “Too risky,” “Already own similar.”
      • ✅ Use this to train adaptive machine learning models and refine future suggestions.
  6. Personalize Educational Content More Deeply
    • Why: Many new investors want to learn before acting.
      • ✅ Tie content recommendations directly to user portfolios or missed opportunities.
      • For example: “You’re underinvested in international stocks — here’s a 3-minute read explaining the benefits.”
  7. Leverage Mobile Behavior for In-App Micro-Recommendations
    • Why: Many users check investments briefly on mobile — small, timely tips can boost engagement.
      • ✅ Show quick recommendations like: “Consider rebalancing — your tech exposure rose 12%.”
      • ✅ Enable “Swipe to Save” or “Remind Me Later” actions for low-friction engagement.

LS0tDQp0aXRsZTogIkRpc2N1c3Npb24gMTFfRmlkZWxpdHkgSW52ZXN0bWVudHMgUmVjb21tZW5kZXIgU3lzdGVtIEFuYWx5c2lzIg0KYXV0aG9yOiAiTWQuIFRhbnppbCBFaHNhbiINCm91dHB1dDoNCiAgb3BlbmludHJvOjpsYWJfcmVwb3J0OiBkZWZhdWx0DQogIGh0bWxfZG9jdW1lbnQ6IGRlZmF1bHQNCi0tLQ0KDQojIyBXZWJzaXRlOiBGaWRlbGl0eSBJbnZlc3RtZW50cyxMaW5rOmh0dHBzOi8vd3d3LmZpZGVsaXR5LmNvbQ0KDQojIyMgUmVjb21tZW5kZXIgU3lzdGVtIFR5cGU6DQpGaWRlbGl0eSB1c2VzIGEgcGVyc29uYWxpemVkIGludmVzdG1lbnQgcmVjb21tZW5kZXIgc3lzdGVtLCB3aGljaCBjb21iaW5lcyBydWxlLWJhc2VkIGZpbHRlcmluZywgY29sbGFib3JhdGl2ZSBmaWx0ZXJpbmcsIGFuZCBtYWNoaW5lIGxlYXJuaW5nIG1vZGVscy4NCg0KIyMjIEhvdyBJdCBXb3JrczoNCi0gKipQZXJzb25hbGl6ZWQgUG9ydGZvbGlvIFJlY29tbWVuZGF0aW9ucyoqOiBCYXNlZCBvbiBhIHVzZXLigJlzIGZpbmFuY2lhbCBnb2FscywgcmlzayB0b2xlcmFuY2UsIHRpbWUgaG9yaXpvbiwgYW5kIGludmVzdG1lbnQgcHJlZmVyZW5jZXMsIEZpZGVsaXR5IHJlY29tbWVuZHMgbXV0dWFsIGZ1bmRzLCBFVEZzLCBvciBtYW5hZ2VkIHBvcnRmb2xpb3MuDQotICoqQmVoYXZpb3JhbCAmIEFjY291bnQgRGF0YSoqOiBVc2VzIGFjY291bnQgYWN0aXZpdHksIHBhc3QgaW52ZXN0bWVudCBjaG9pY2VzLCBhbmQgYnJvd3NpbmcgYmVoYXZpb3IgdG8gdGFpbG9yIHN1Z2dlc3Rpb25zLg0KLSAqKkVkdWNhdGlvbmFsIENvbnRlbnQgUmVjb21tZW5kYXRpb25zKio6IFN1Z2dlc3RzIHJlbGV2YW50IGZpbmFuY2lhbCBhcnRpY2xlcywgd2ViaW5hcnMsIGFuZCB0b29scyBiYXNlZCBvbiB3aGF0IHRoZSB1c2VyIGhhcyB2aWV3ZWQgb3Igc2VhcmNoZWQgZm9yLg0KDQojIyMgV2h5IEl04oCZcyBOb3RhYmxlOg0KRmlkZWxpdHnigJlzIHBsYXRmb3JtIGdvZXMgYmV5b25kIGJhc2ljIHJlY29tbWVuZGF0aW9uc+KAlGl0IGludGVncmF0ZXMgd2l0aCByb2JvLWFkdmlzb3J5IHRvb2xzIGxpa2UgRmlkZWxpdHkgR28gYW5kIHVzZXMgQUkgdG8gaGVscCB1c2VycyBtYWtlIGluZm9ybWVkLCBwZXJzb25hbGl6ZWQgaW52ZXN0bWVudCBkZWNpc2lvbnMuDQojIFNjZW5hcmlvIERlc2lnbiBRdWVzdGlvbnMgZm9yIEZpZGVsaXR5J3MgUmVjb21tZW5kZXIgU3lzdGVtDQoNCiMjIyAxLiBXaGF0IGlzIHRoZSB1c2VyIGdvYWwgb3IgdGFzaz8NCi0gKipHb2FsKio6IFVzZXJzIGFpbSB0byBtYWtlIGluZm9ybWVkIGRlY2lzaW9ucyByZWdhcmRpbmcgdGhlaXIgaW52ZXN0bWVudCBjaG9pY2VzLCBzdWNoIGFzIHNlbGVjdGluZyBtdXR1YWwgZnVuZHMsIHN0b2Nrcywgb3IgcmV0aXJlbWVudCBwbGFucy4gVGhlIHJlY29tbWVuZGVyIHN5c3RlbeKAmXMgZ29hbCBpcyB0byBwcm92aWRlIHBlcnNvbmFsaXplZCBpbnZlc3RtZW50IHN1Z2dlc3Rpb25zIGJhc2VkIG9uIHRoZSB1c2VyJ3MgZmluYW5jaWFsIGdvYWxzLCByaXNrIHRvbGVyYW5jZSwgYW5kIGludmVzdG1lbnQgaGlzdG9yeS4NCiAgLSAqKkV4YW1wbGUqKjogQSB1c2VyIGxvb2tpbmcgdG8gcGxhbiBmb3IgcmV0aXJlbWVudCBtaWdodCBiZSByZWNvbW1lbmRlZCBhIHNldCBvZiBsb3ctcmlzaywgbG9uZy10ZXJtIGludmVzdG1lbnQgb3B0aW9ucywgd2hpbGUgc29tZW9uZSBsb29raW5nIGZvciBncm93dGggaW4gdGhlIHNob3J0LXRlcm0gbWlnaHQgcmVjZWl2ZSBoaWdoZXItcmlzayBpbnZlc3RtZW50IHN1Z2dlc3Rpb25zLg0KDQojIyMgMi4gV2hhdCB0eXBlIG9mIGRhdGEgaXMgdXNlZCB0byBtYWtlIHJlY29tbWVuZGF0aW9ucz8NCi0gKipEYXRhIFVzZWQqKjogRmlkZWxpdHnigJlzIHJlY29tbWVuZGVyIHN5c3RlbSB1c2VzIGEgY29tYmluYXRpb24gb2YgZmluYW5jaWFsIGRhdGEgKHN1Y2ggYXMgYWNjb3VudCBiYWxhbmNlcywgaW52ZXN0bWVudCB0eXBlcywgYW5kIHRyYW5zYWN0aW9uIGhpc3RvcnkpLCB1c2VyIHByZWZlcmVuY2VzIChlLmcuLCByaXNrIHRvbGVyYW5jZSwgaW52ZXN0bWVudCBnb2FscywgdGltZSBob3Jpem9uKSwgYW5kIG1hcmtldCBkYXRhIChlLmcuLCBwZXJmb3JtYW5jZSBvZiBkaWZmZXJlbnQgYXNzZXQgY2xhc3Nlcywgc3RvY2tzLCBvciBtdXR1YWwgZnVuZHMpLiBUaGUgc3lzdGVtIG1heSBhbHNvIGFuYWx5emUgdXNlciBiZWhhdmlvciAoc3VjaCBhcyBob3cgb2Z0ZW4gdGhleSBjaGVjayB0aGVpciBwb3J0Zm9saW8gb3IgdGhlIHR5cGVzIG9mIGludmVzdG1lbnRzIHRoZXnigJl2ZSBzaG93biBpbnRlcmVzdCBpbikgYW5kIGRlbW9ncmFwaGljIGluZm9ybWF0aW9uIChhZ2UsIGluY29tZSwgZmluYW5jaWFsIGdvYWxzKS4NCiAgLSAqKkV4YW1wbGUqKjogQSB1c2Vy4oCZcyByaXNrIHByb2ZpbGUgYW5kIGFnZSB3b3VsZCBoZWF2aWx5IGluZmx1ZW5jZSB0aGUgcmVjb21tZW5kYXRpb25zLiBJZiBhIHVzZXIgaXMgeW91bmcgYW5kIHdpbGxpbmcgdG8gdGFrZSBvbiBoaWdoZXIgcmlzaywgdGhlIHN5c3RlbSBtYXkgc3VnZ2VzdCBncm93dGgtZm9jdXNlZCBmdW5kcy4gSWYgYSB1c2VyIGlzIG5lYXJpbmcgcmV0aXJlbWVudCwgaXQgd291bGQgbGlrZWx5IHN1Z2dlc3QgbW9yZSBzdGFibGUsIGluY29tZS1nZW5lcmF0aW5nIGludmVzdG1lbnRzIGxpa2UgYm9uZHMgb3IgaW5kZXggZnVuZHMuDQoNCiMjIyAzLiBIb3cgYXJlIHJlY29tbWVuZGF0aW9ucyBkZWxpdmVyZWQgb3IgcHJlc2VudGVkIHRvIHVzZXJzPw0KLSAqKkRlbGl2ZXJ5IE1ldGhvZCoqOiBSZWNvbW1lbmRhdGlvbnMgYXJlIGRlbGl2ZXJlZCBpbiBhIHBlcnNvbmFsaXplZCBkYXNoYm9hcmQgb3Igb24gdGhlIGhvbWVwYWdlIG9mIHRoZSBGaWRlbGl0eSBwbGF0Zm9ybS4gVXNlcnMgY2FuIHZpZXcgcmVjb21tZW5kYXRpb25zIGluIHZhcmlvdXMgc2VjdGlvbnMsIHN1Y2ggYXMg4oCcUmVjb21tZW5kZWQgRnVuZHMgZm9yIFlvdSzigJ0g4oCcUG9ydGZvbGlvIEJ1aWxkZXIs4oCdIG9yIOKAnFN1Z2dlc3RlZCBJbnZlc3RtZW50IFN0cmF0ZWdpZXMu4oCdIEZpZGVsaXR5IGFsc28gcHJvdmlkZXMgaW50ZXJhY3RpdmUgdG9vbHMsIHN1Y2ggYXMgcmV0aXJlbWVudCBwbGFubmluZyBjYWxjdWxhdG9ycyBvciBwb3J0Zm9saW8gYW5hbHlzaXMsIHRvIGhlbHAgdXNlcnMgZXZhbHVhdGUgdGhlIGltcGFjdCBvZiBkaWZmZXJlbnQgaW52ZXN0bWVudCBjaG9pY2VzLg0KICAtICoqRXhhbXBsZSoqOiBBIHVzZXIgbG9nZ2luZyBpbnRvIEZpZGVsaXR5IG1pZ2h0IHNlZSBhIHNlY3Rpb24gdGl0bGVkIOKAnFJlY29tbWVuZGVkIGZvciBZb3Us4oCdIHdoaWNoIGluY2x1ZGVzIGN1cmF0ZWQgaW52ZXN0bWVudCBvcHRpb25zIHRhaWxvcmVkIHRvIHRoZWlyIHByb2ZpbGUuIFRoZXkgY291bGQgYWxzbyByZWNlaXZlIHN1Z2dlc3Rpb25zIHRocm91Z2ggZW1haWwgb3IgYXBwIG5vdGlmaWNhdGlvbnMgYWJvdXQgbmV3IG9wcG9ydHVuaXRpZXMgb3IgYWRqdXN0bWVudHMgdG8gdGhlaXIgcG9ydGZvbGlvIGJhc2VkIG9uIG1hcmtldCB0cmVuZHMgb3IgdGhlaXIgZXZvbHZpbmcgZmluYW5jaWFsIGdvYWxzLg0KDQotLS0NCg0KIyBTY2VuYXJpbyBEZXNpZ24gZm9yIEZpZGVsaXR5IEludmVzdG1lbnRzICh0aGUgT3JnYW5pemF0aW9uKQ0KDQojIyMgMS4gU2l0dWF0aW9uDQpGaWRlbGl0eSB3YW50cyB0byBoZWxwIHVzZXJzIGZpbmQgc3VpdGFibGUgaW52ZXN0bWVudCBvcHRpb25z4oCUc3VjaCBhcyBtdXR1YWwgZnVuZHMsIEVURnMsIGFuZCByZXRpcmVtZW50IHBsYW5z4oCUd2l0aG91dCByZXF1aXJpbmcgZGVlcCBmaW5hbmNpYWwgZXhwZXJ0aXNlLiBDdXN0b21lcnMgb2Z0ZW4gZmVlbCBvdmVyd2hlbG1lZCBieSB0aGUgbGFyZ2UgbnVtYmVyIG9mIGludmVzdG1lbnQgY2hvaWNlcy4NCg0KIyMjIDIuIE1vdGl2YXRpb24NCkJ5IGd1aWRpbmcgdXNlcnMgdG8gYXBwcm9wcmlhdGUgaW52ZXN0bWVudHMsIEZpZGVsaXR5IGltcHJvdmVzIGN1c3RvbWVyIHNhdGlzZmFjdGlvbiwgaW5jcmVhc2VzIHByb2R1Y3QgZW5nYWdlbWVudCwgYW5kIGJvb3N0cyBBVU0gKGFzc2V0cyB1bmRlciBtYW5hZ2VtZW50KS4gUmVjb21tZW5kZXIgc3lzdGVtcyBoZWxwIGNvbnZlcnQgdW5kZWNpZGVkIHZpc2l0b3JzIGludG8gbG95YWwgY2xpZW50cy4NCg0KIyMjIDMuIEV4cGVjdGVkIEFjdGlvbg0KRmlkZWxpdHkgZXhwZWN0cyB1c2VycyB0byBlbmdhZ2Ugd2l0aCByZWNvbW1lbmRlZCBwcm9kdWN0c+KAlHZpZXcgZGV0YWlscywgY29tcGFyZSBvcHRpb25zLCBhbmQgZXZlbnR1YWxseSBpbnZlc3QuIEl0IGFsc28gZXhwZWN0cyB0aGF0IHVzZXJzIHdpbGwgdHJ1c3QgdGhlIHN5c3RlbSBlbm91Z2ggdG8gcmVseSBvbiBpdHMgZ3VpZGFuY2Ugb3ZlciB0aW1lLCBsZWFkaW5nIHRvIHJlcGVhdCB2aXNpdHMgYW5kIHBvcnRmb2xpbyBncm93dGguDQoNCi0tLQ0KDQojIFNjZW5hcmlvIERlc2lnbiBmb3IgRmlkZWxpdHnigJlzIEN1c3RvbWVycyAodGhlIFVzZXJzKQ0KDQojIyMgMS4gU2l0dWF0aW9uDQpBIHVzZXIgbG9ncyBpbnRvIEZpZGVsaXR54oCZcyB3ZWJzaXRlIG9yIGFwcCwgbG9va2luZyB0byBpbnZlc3QgZm9yIHJldGlyZW1lbnQgb3IgZGl2ZXJzaWZ5IHRoZWlyIHBvcnRmb2xpby4gVGhleSBoYXZlIGdlbmVyYWwgZ29hbHMgYnV0IGFyZW4ndCBzdXJlIHdoaWNoIGludmVzdG1lbnRzIGZpdCB0aGVpciBuZWVkcywgYW5kIHRoZXnigJlyZSBvdmVyd2hlbG1lZCBieSBodW5kcmVkcyBvZiBvcHRpb25zLg0KDQojIyMgMi4gTW90aXZhdGlvbg0KVGhlIHVzZXIgd2FudHMgdG8gbWFrZSBpbmZvcm1lZCBmaW5hbmNpYWwgZGVjaXNpb25zIHdpdGggbWluaW1hbCBzdHJlc3MuIFRoZXkgd2FudCByZWNvbW1lbmRhdGlvbnMgdGhhdCBhcmUgYWxpZ25lZCB3aXRoIHRoZWlyIGdvYWxzIChlLmcuLCByZXRpcmVtZW50LCBzYXZpbmcgZm9yIGEgaG9tZSwgbWF4aW1pemluZyByZXR1cm5zIHdoaWxlIG1pbmltaXppbmcgcmlzaykuDQoNCiMjIyAzLiBFeHBlY3RlZCBBY3Rpb24NClRoZSB1c2VyIGV4cGVjdHMgdG8gc2VlIGEgY3VyYXRlZCBsaXN0IG9mIGludmVzdG1lbnQgcHJvZHVjdHMgdGhhdCBtYXRjaCB0aGVpciByaXNrIHByb2ZpbGUsIGdvYWxzLCBhbmQgaW50ZXJlc3RzLiBJZGVhbGx5LCB0aGV5J2xsIGV4cGxvcmUgdGhlIHN1Z2dlc3Rpb25zLCBmZWVsIGNvbmZpZGVudCBpbiB0aGUgcmVhc29uaW5nIGJlaGluZCB0aGVtLCBhbmQgbWFrZSBhbiBpbnZlc3RtZW50IGRlY2lzaW9uLg0KDQotLS0NCg0KIyBEb2VzIGl0IE1ha2UgU2Vuc2UgdG8gRG8gQm90aCBTY2VuYXJpbyBEZXNpZ25zPw0KDQpZZXMuDQotIEZyb20gRmlkZWxpdHnigJlzIHNpZGUsIHNjZW5hcmlvIGRlc2lnbiBoZWxwcyBvcHRpbWl6ZSB0aGUgcmVjb21tZW5kZXIgZW5naW5lIHRvIGluY3JlYXNlIGVuZ2FnZW1lbnQsIHJldGVudGlvbiwgYW5kIHJldmVudWUuDQotIEZyb20gdGhlIHVzZXLigJlzIHNpZGUsIHNjZW5hcmlvIGRlc2lnbiBlbnN1cmVzIHRoZSBzeXN0ZW0gYWN0dWFsbHkgbWVldHMgY3VzdG9tZXIgbmVlZHMsIGJ1aWxkcyB0cnVzdCwgYW5kIG1ha2VzIGZpbmFuY2lhbCBkZWNpc2lvbi1tYWtpbmcgZWFzaWVyLg0KDQpVbmRlcnN0YW5kaW5nIGJvdGggcGVyc3BlY3RpdmVzIGVuc3VyZXMgdGhhdCB0aGUgc3lzdGVtIGlzIGRlc2lnbmVkIHdpdGggZW1wYXRoeSwgc3RyYXRlZ3ksIGFuZCBlZmZlY3RpdmVuZXNzLg0KDQotLS0NCg0KIyAgUmVjb21tZW5kYXRpb25zIGZvciB0aGUgd2Vic2l0ZQ0KDQpBZnRlciBsb2dnaW5nIGluLCB1c2VycyBtYXkgc2VlIGludmVzdG1lbnQgc3VnZ2VzdGlvbnMgdW5kZXIgY2F0ZWdvcmllcyBsaWtlOg0KLSAqKuKAnFN1Z2dlc3RlZCBmb3IgWW914oCdKioNCi0gKirigJxUb3AgUGlja3MgQmFzZWQgb24gWW91ciBQb3J0Zm9saW/igJ0qKg0KLSAqKuKAnEZ1bmRzIHRvIENvbnNpZGVy4oCdKioNCg0KIyMjIEd1aWRlZCBUb29scyBhbmQgUXVpenplcw0KVG9vbHMgc3VjaCBhczoNCi0gKirigJxGaW5kIHRoZSBSaWdodCBNdXR1YWwgRnVuZOKAnSBvciBFVEYgc2NyZWVuZXJzKioNCi0gKirigJxJbnZlc3RtZW50IFByb2ZpbGUgUXVlc3Rpb25uYWlyZeKAnSB0byBhc3Nlc3MgcmlzayB0b2xlcmFuY2UgYW5kIGdvYWxzKiogKFRoZXNlIHRvb2xzIGxpa2VseSBmZWVkIGludG8gdGhlIHJlY29tbWVuZGF0aW9uIGVuZ2luZS4pDQoNCiMjIyBQb3J0Zm9saW8gQW5hbHlzaXMgVG9vbHMNCi0gVGhlIOKAnEZ1bGwgVmlld+KAnSBkYXNoYm9hcmQgaW50ZWdyYXRlcyBhY2NvdW50cyBhbmQgb2ZmZXJzIHN1Z2dlc3Rpb25zIGZvciBhc3NldCBhbGxvY2F0aW9uLCBkaXZlcnNpZmljYXRpb24sIGFuZCByaXNrIGV4cG9zdXJlLg0KDQojIyMgRWR1Y2F0aW9uYWwgQ29udGVudCBSZWNvbW1lbmRhdGlvbnMNCkZpZGVsaXR5IGFsc28gcmVjb21tZW5kcyBibG9nIHBvc3RzLCB3ZWJpbmFycywgYW5kIHR1dG9yaWFscyBwZXJzb25hbGl6ZWQgdG8gdGhlIHVzZXIncyBpbnZlc3RtZW50IGxldmVsIG9yIHJlY2VudCBzZWFyY2hlcy4NCg0KIyMgQW5hbHlzaXMgb2YgU2NlbmFyaW8gRGVzaWduDQoNCg0KDQohW1NjZW5hcmlvIERlc2lnbl0oQzovVXNlcnMvdGFuemkvT25lRHJpdmUvREFUQS82MDcvV2VlayAxMS9TY2VuYXJpb0Rlc2lnbi5wbmcpDQoNCiMjIFRoaXMgc2VjdGlvbiBleHBsYWluIHRoZSBpbmR1c3RyeSByZXBvcnQuDQoNCiFbU2NlbmFyaW8gRGVzaWduXShDOi9Vc2Vycy90YW56aS9PbmVEcml2ZS9EQVRBLzYwNy9XZWVrIDExL0luZHVzdHJ5cmVvcnQucG5nKQ0KDQoNCiMgUmVjb21tZW5kYXRpb25zIHRvIEltcHJvdmUgRmlkZWxpdHnigJlzIFJlY29tbWVuZGVyIFN5c3RlbQ0KDQoxLiAqKkVuaGFuY2UgVHJhbnNwYXJlbmN5IGFuZCBFeHBsYWluYWJpbGl0eSoqDQogICAtICoqV2h5Kio6IE1hbnkgdXNlcnMgbWF5IGJlIGhlc2l0YW50IHRvIHRydXN0IGZpbmFuY2lhbCByZWNvbW1lbmRhdGlvbnMgd2l0aG91dCB1bmRlcnN0YW5kaW5nIHdoeSB0aGV54oCZcmUgYmVpbmcgbWFkZS4NCiAgICAgLSAqKuKchSBBZGQg4oCcV2h5IHRoaXMgd2FzIHJlY29tbWVuZGVk4oCdIGV4cGxhbmF0aW9ucyBuZXh0IHRvIHN1Z2dlc3Rpb25zLioqDQogICAgIC0gKirinIUgVXNlIHBsYWluIGxhbmd1YWdlIHRvIGRlc2NyaWJlIGtleSBmYWN0b3JzOiBlLmcuLCDigJxXZSBzdWdnZXN0ZWQgdGhpcyBFVEYgYmVjYXVzZSBpdCBkaXZlcnNpZmllcyB5b3VyIHRlY2gtaGVhdnkgcG9ydGZvbGlvLuKAnSoqDQoNCjIuICoqSW5jb3Jwb3JhdGUgUmVhbC1UaW1lIFNlbnRpbWVudCBhbmQgTmV3cyBEYXRhKioNCiAgIC0gKipXaHkqKjogSW52ZXN0b3JzIGluY3JlYXNpbmdseSByZWFjdCB0byBmaW5hbmNpYWwgbmV3cywgc29jaWFsIG1lZGlhIHNlbnRpbWVudCwgYW5kIGdsb2JhbCBldmVudHMuDQogICAgIC0gKirinIUgSW50ZWdyYXRlIG5ld3MgYW5kIHNvY2lhbCBzZW50aW1lbnQgKGUuZy4sIGZyb20gVHdpdHRlciwgUmVkZGl0LCBvciBmaW5hbmNpYWwgYmxvZ3MpIGludG8gdGhlIHJlY29tbWVuZGF0aW9uIGFsZ29yaXRobS4qKg0KICAgICAtICoq4pyFIEhpZ2hsaWdodCB0cmVuZGluZyBmdW5kcyB3aXRoIGEgc2VudGltZW50IHNjb3JlIG9yIHJlY2VudCBuZXdzIGltcGFjdC4qKg0KDQozLiAqKkludHJvZHVjZSBHb2FsLUJhc2VkIFJlY29tbWVuZGF0aW9uIFRyYWNrcyoqDQogICAtICoqV2h5Kio6IE5vdCBhbGwgaW52ZXN0b3JzIHRoaW5rIGluIHRlcm1zIG9mIHByb2R1Y3RzIOKAlCBtYW55IHRoaW5rIGluIHRlcm1zIG9mIGdvYWxzIChlLmcuLCBidXlpbmcgYSBob3VzZSwgcmV0aXJlbWVudCwgdHJhdmVsKS4NCiAgICAgLSAqKuKchSBMZXQgdXNlcnMgY2hvb3NlIG9yIGN1c3RvbWl6ZSBsaWZlIGdvYWxzLCBhbmQgZGVsaXZlciByZWNvbW1lbmRhdGlvbiDigJx0cmFja3PigJ0gdGhhdCBoZWxwIG1lZXQgdGhvc2Ugb2JqZWN0aXZlcy4qKg0KICAgICAtICoq4pyFIFRyYWNrIHByb2dyZXNzIHZpc3VhbGx5IGFuZCBzdWdnZXN0IGFkanVzdG1lbnRzIHdoZW4gbWFya2V0IGNvbmRpdGlvbnMgc2hpZnQuKioNCg0KNC4gKipVc2UgQ29sbGFib3JhdGl2ZSBGaWx0ZXJpbmcgQWNyb3NzIFNpbWlsYXIgSW52ZXN0b3JzKioNCiAgIC0gKipXaHkqKjogSW52ZXN0b3JzIG1heSBiZW5lZml0IGZyb20gcGF0dGVybnMgYW1vbmcgcGVlcnMgd2l0aCBzaW1pbGFyIGdvYWxzIG9yIHJpc2sgcHJvZmlsZXMuDQogICAgIC0gKirinIUgUmVjb21tZW5kIHBvcnRmb2xpb3Mgb3Igc3RyYXRlZ2llcyB0aGF0IHBlb3BsZSB3aXRoIHNpbWlsYXIgcHJvZmlsZXMgaGF2ZSB1c2VkIHN1Y2Nlc3NmdWxseS4qKg0KICAgICAtICoq4pyFIE9mZmVyIOKAnGNvbW11bml0eSBpbnNpZ2h04oCdIGFub255bWl6ZWQgZGF0YTog4oCcODAlIG9mIGludmVzdG9ycyB3aXRoIHlvdXIgcHJvZmlsZSBhZGRlZCBYIGxhc3QgcXVhcnRlci7igJ0qKg0KDQo1LiAqKkltcHJvdmUgRW5nYWdlbWVudCB3aXRoIEFkYXB0aXZlIExlYXJuaW5nIFN5c3RlbXMqKg0KICAgLSAqKldoeSoqOiBGaWRlbGl0eSBjYW4gYmV0dGVyIHJlZmluZSByZWNvbW1lbmRhdGlvbnMgdGhlIG1vcmUgaXQgbGVhcm5zIGZyb20gdXNlcnMuDQogICAgIC0gKirinIUgTGV0IHVzZXJzIGdpdmUgZmVlZGJhY2sgb24gcmVjb21tZW5kYXRpb25zOiDigJxOb3QgaW50ZXJlc3RlZCzigJ0g4oCcVG9vIHJpc2t5LOKAnSDigJxBbHJlYWR5IG93biBzaW1pbGFyLuKAnSoqDQogICAgIC0gKirinIUgVXNlIHRoaXMgdG8gdHJhaW4gYWRhcHRpdmUgbWFjaGluZSBsZWFybmluZyBtb2RlbHMgYW5kIHJlZmluZSBmdXR1cmUgc3VnZ2VzdGlvbnMuKioNCg0KNi4gKipQZXJzb25hbGl6ZSBFZHVjYXRpb25hbCBDb250ZW50IE1vcmUgRGVlcGx5KioNCiAgIC0gKipXaHkqKjogTWFueSBuZXcgaW52ZXN0b3JzIHdhbnQgdG8gbGVhcm4gYmVmb3JlIGFjdGluZy4NCiAgICAgLSAqKuKchSBUaWUgY29udGVudCByZWNvbW1lbmRhdGlvbnMgZGlyZWN0bHkgdG8gdXNlciBwb3J0Zm9saW9zIG9yIG1pc3NlZCBvcHBvcnR1bml0aWVzLioqDQogICAgIC0gKipGb3IgZXhhbXBsZSoqOiDigJxZb3XigJlyZSB1bmRlcmludmVzdGVkIGluIGludGVybmF0aW9uYWwgc3RvY2tzIOKAlCBoZXJl4oCZcyBhIDMtbWludXRlIHJlYWQgZXhwbGFpbmluZyB0aGUgYmVuZWZpdHMu4oCdDQoNCjcuICoqTGV2ZXJhZ2UgTW9iaWxlIEJlaGF2aW9yIGZvciBJbi1BcHAgTWljcm8tUmVjb21tZW5kYXRpb25zKioNCiAgIC0gKipXaHkqKjogTWFueSB1c2VycyBjaGVjayBpbnZlc3RtZW50cyBicmllZmx5IG9uIG1vYmlsZSDigJQgc21hbGwsIHRpbWVseSB0aXBzIGNhbiBib29zdCBlbmdhZ2VtZW50Lg0KICAgICAtICoq4pyFIFNob3cgcXVpY2sgcmVjb21tZW5kYXRpb25zIGxpa2U6IOKAnENvbnNpZGVyIHJlYmFsYW5jaW5nIOKAlCB5b3VyIHRlY2ggZXhwb3N1cmUgcm9zZSAxMiUu4oCdKioNCiAgICAgLSAqKuKchSBFbmFibGUg4oCcU3dpcGUgdG8gU2F2ZeKAnSBvciDigJxSZW1pbmQgTWUgTGF0ZXLigJ0gYWN0aW9ucyBmb3IgbG93LWZyaWN0aW9uIGVuZ2FnZW1lbnQuKioNCg0KLS0tDQoNCg==