[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"summary-build-restaurant-db-erd-sql-tables-queries-for-por-summary":3,"summaries-facets-categories":99,"summary-related-build-restaurant-db-erd-sql-tables-queries-for-por-summary":4504},{"id":4,"title":5,"ai":6,"body":13,"categories":61,"created_at":63,"date_modified":63,"description":55,"extension":64,"faq":63,"featured":65,"kicker_label":63,"meta":66,"navigation":82,"path":83,"published_at":84,"question":63,"scraped_at":85,"seo":86,"sitemap":87,"source_id":88,"source_name":89,"source_type":90,"source_url":91,"stem":92,"tags":93,"thumbnail_url":63,"tldr":96,"tweet":63,"unknown_tags":97,"__hash__":98},"summaries\u002Fsummaries\u002Fbuild-restaurant-db-erd-sql-tables-queries-for-por-summary.md","Build Restaurant DB: ERD, SQL Tables, Queries for Portfolio",{"provider":7,"model":8,"input_tokens":9,"output_tokens":10,"processing_time_ms":11,"cost_usd":12},"openrouter","x-ai\u002Fgrok-4.1-fast",9225,1852,16333,0.0027485,{"type":14,"value":15,"toc":54},"minimark",[16,21,25,28,31,35,38,41,45,48,51],[17,18,20],"h2",{"id":19},"supertype-subtype-erd-design-handles-transaction-variants-efficiently","Supertype-Subtype ERD Design Handles Transaction Variants Efficiently",[22,23,24],"p",{},"Model restaurant operations by identifying core entities—Customer, Staff, Menu, Table, TransactionHeader, TransactionDetail, Reservation, Takeaway—then map relationships with Crow's foot notation: straight lines for connections, crow's feet for 'many', single bars for 'one', dashed for optional. Mandate relationships like 'transaction must have customer' via labels ('must have' vs 'may have').",[22,26,27],{},"Key insight: Use supertype-subtype pattern for TransactionHeader as supertype (shared ID, date, customer, staff) with Reservation (adds table ID, reservation date, people count) and Takeaway (adds queue number, pickup notes) as subtypes. This avoids data duplication since all are transactions but with specialized attributes, enabling flexible growth without separate tables.",[22,29,30],{},"Translate conceptual ERD to physical schema defining datatypes (VARCHAR2 for names\u002Femails, NUMBER for IDs\u002Fprices\u002Fquantities, DATE for dates), primary keys (e.g., Customer_ID), foreign keys (e.g., TransactionHeader.Customer_ID REFERENCES Customer(Customer_ID)), and constraints: NOT NULL for essentials (names, gender), CHECK for validation (email contains '@', phone 10-15 numeric digits, price >=0, quantity >0). Separate TransactionHeader (one row per order) from TransactionDetail (multiple items per order) to normalize multi-item transactions.",[17,32,34],{"id":33},"table-implementation-ensures-data-integrity-and-traceability","Table Implementation Ensures Data Integrity and Traceability",[22,36,37],{},"Customer table stores ID (PK), first\u002Flast name, gender (NOT NULL), optional phone\u002Femail\u002Faddress\u002FDOB; links to transactions\u002Freservations\u002Ftakeaways for traceability. Staff adds salary\u002Fposition. Table tracks ID (PK) and availability status. Menu has ID (PK), name\u002Fdescription (NOT NULL), price (>=0). TransactionHeader links staff\u002Fcustomer IDs (FKs), date, payment (Cash\u002FQRIS\u002FDebit, NOT NULL). Reservation\u002FTakeaway reference TransactionHeader_ID (PK\u002FFK), customer\u002Ftable IDs (FKs), people count\u002Fdate\u002Fqueue. TransactionDetail ties Header_ID (PK\u002FFK), Menu_ID (FK), quantity (>0).",[22,39,40],{},"Populate via INSERT INTO with sample data (e.g., 5-10 rows per table shown in images), ensuring FK values exist to prevent errors. This setup centralizes data, reduces redundancy via normalization, and supports scalability by rejecting invalid inputs upfront (e.g., no duplicate IDs, valid formats).",[17,42,44],{"id":43},"queries-views-and-indexes-deliver-operational-insights-and-speed","Queries, Views, and Indexes Deliver Operational Insights and Speed",[22,46,47],{},"JOIN multiple tables for breakdowns: e.g., SELECT th.ID, customer name (concat first||' '||last), menu name, quantity, price, total (quantity*price) FROM TransactionHeader th JOIN Customer c ON th.Customer_ID=c.Customer_ID JOIN TransactionDetail td ON th.ID=td.Header_ID JOIN Menu m ON td.Menu_ID=m.Menu_ID reconstructs bills. Aggregate popularity: SELECT m.Name, SUM(td.Quantity) AS Total_Sold FROM TransactionDetail td JOIN Menu m ON td.Menu_ID=m.Menu_ID GROUP BY m.Name ORDER BY Total_Sold DESC identifies top items (e.g., Nasi Goreng leads).",[22,49,50],{},"Simple views (single-table SELECT, updatable) like simple_staff_view (staff_id, name, salary, etc.) act as shortcuts; INSERT into view updates base table if no JOIN\u002FGROUP\u002Fagg\u002FDISTINCT. Complex views pre-join for reports: e.g., transaction summary (Header + Staff + Customer) or detailed orders (Header + Detail + Menu + Customer) for analysis without rewriting queries.",[22,52,53],{},"Add indexes on frequent filters like Customer_ID or TransactionDate (CREATE INDEX idx_customer ON Customer(Customer_ID)) to accelerate lookups as data grows, like a book's table of contents. Scenarios prove utility: cashier SELECTs customer info; manager views headers or queues (ORDER BY QueueNumber); kitchen sees details—transforming manual ops into efficient, data-driven decisions.",{"title":55,"searchDepth":56,"depth":56,"links":57},"",2,[58,59,60],{"id":19,"depth":56,"text":20},{"id":33,"depth":56,"text":34},{"id":43,"depth":56,"text":44},[62],"Software Engineering",null,"md",false,{"content_references":67,"triage":77},[68,72,74],{"type":69,"title":70,"context":71},"tool","Oracle SQL Developer Data Modeler","mentioned",{"type":69,"title":73,"context":71},"Oracle APEX",{"type":75,"title":76,"context":71},"other","Fresh Graduate Academy (Digital Talent Scholarship) program 2024",{"relevance":78,"novelty":56,"quality":79,"actionability":78,"composite":80,"reasoning":81},3,4,3.05,"Category: Software Engineering. The article provides a detailed approach to designing a relational database, which is relevant for software engineers building data-driven applications. While it offers practical insights into database design, the concepts presented are fairly standard and do not introduce significantly new perspectives.",true,"\u002Fsummaries\u002Fbuild-restaurant-db-erd-sql-tables-queries-for-por-summary","2026-04-22 21:32:19","2026-04-26 17:22:32",{"title":5,"description":55},{"loc":83},"bebe4b3297258cca","Learning Data","article","https:\u002F\u002Fmedium.com\u002Flearning-data\u002Fcooked-with-sql-designing-a-restaurant-data-system-f226162ea359?source=rss----eec44e936bf1---4","summaries\u002Fbuild-restaurant-db-erd-sql-tables-queries-for-por-summary",[94,95],"coding","software-engineering","Design a relational restaurant database using supertype-subtype for transactions, enforce integrity with PK\u002FFK\u002Fcheck constraints, query insights via JOINs\u002FGROUP BY, simplify with views, and speed up with indexes—turns operations into queryable data for real efficiency.",[95],"4ohw-hhZowUhYOZ7iLmOujkR9RjKVQu7kgBWkCSpLm8",[100,103,105,108,110,113,116,119,121,123,125,127,129,131,133,135,138,140,142,144,146,148,150,153,155,157,159,161,163,165,167,169,171,173,175,177,179,181,183,185,187,189,191,193,195,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,382,384,386,388,390,392,394,396,398,400,402,404,406,408,410,412,414,416,418,420,422,424,426,428,430,432,434,436,438,440,442,444,446,448,450,452,454,456,458,460,463,465,467,469,471,473,475,477,479,481,483,485,487,489,491,493,495,497,499,501,503,505,507,509,511,513,515,517,519,521,523,525,527,529,531,533,535,537,539,541,543,545,547,550,552,554,556,558,560,562,564,566,568,570,572,574,576,578,580,582,584,586,588,590,592,594,596,598,600,602,604,606,608,610,612,614,616,618,620,622,624,626,628,630,632,634,636,638,640,642,644,646,648,650,652,654,656,658,660,662,664,666,668,670,672,674,676,678,680,682,684,686,688,690,692,694,696,698,700,702,704,706,708,710,712,714,716,718,720,722,724,726,728,730,732,734,736,738,740,742,744,746,748,750,752,754,756,758,760,762,764,766,768,770,772,774,776,778,780,782,784,786,788,790,792,794,796,798,800,802,804,806,808,810,812,814,816,818,820,822,824,826,828,830,832,834,836,838,840,842,844,846,848,850,852,854,856,858,860,862,864,866,868,870,872,874,876,878,880,882,884,886,888,890,892,894,896,898,900,902,904,906,908,910,912,914,916,918,920,922,924,926,928,930,932,934,936,938,940,942,944,946,948,950,952,954,956,958,960,962,964,966,968,970,972,974,976,978,980,982,984,986,988,990,992,994,996,998,1000,1002,1004,1006,1008,1010,1012,1014,1016,1018,1020,1022,1024,1026,1028,1030,1032,1034,1036,1038,1040,1042,1044,1046,1048,1050,1052,1054,1056,1058,1060,1062,1064,1066,1068,1070,1072,1074,1076,1078,1080,1082,1084,1086,1088,1090,1092,1094,1096,1098,1100,1102,1104,1106,1108,1110,1112,1114,1116,1118,1120,1122,1124,1126,1128,1130,1132,1134,1136,1138,1140,1142,1144,1146,1148,1150,1152,1154,1156,1158,1160,1162,1164,1166,1168,1170,1172,1174,1176,1178,1180,1182,1184,1186,1188,1190,1192,1194,1196,1198,1200,1202,1204,1206,1208,1210,1212,1214,1216,1218,1220,1222,1224,1226,1228,1230,1232,1234,1236,1238,1240,1242,1244,1246,1248,1250,1252,1254,1256,1258,1260,1262,1264,1266,1268,1270,1272,1274,1276,1278,1280,1282,1284,1286,1288,1290,1292,1294,1296,1298,1300,1302,1304,1306,1308,1310,1312,1314,1316,1318,1320,1322,1324,1326,1328,1330,1332,1334,1336,1338,1340,1342,1344,1346,1348,1350,1352,1354,1356,1358,1360,1362,1364,1366,1368,1370,1372,1374,1376,1378,1380,1382,1384,1386,1388,1390,1392,1394,1396,1398,1400,1402,1404,1406,1408,1410,1412,1414,1416,1418,1420,1422,1424,1426,1428,1430,1432,1434,1436,1438,1440,1442,1444,1446,1448,1450,1452,1454,1456,1458,1460,1462,1464,1466,1468,1470,1472,1474,1476,1478,1480,1482,1484,1486,1488,1490,1492,1494,1496,1498,1500,1502,1504,1506,1508,1510,1512,1514,1516,1518,1520,1522,1524,1526,1528,1530,1532,1534,1536,1538,1540,1542,1544,1546,1548,1550,1552,1554,1556,1558,1560,1562,1564,1566,1568,1570,1572,1574,1576,1578,1580,1582,1584,1586,1588,1590,1592,1594,1596,1598,1600,1602,1604,1606,1608,1610,1612,1614,1616,1618,1620,1622,1624,1626,1628,1630,1632,1634,1636,1638,1640,1642,1644,1646,1648,1650,1652,1654,1656,1658,1660,1662,1664,1666,1668,1670,1672,1674,1676,1678,1680,1682,1684,1686,1688,1690,1692,1694,1696,1698,1700,1702,1704,1706,1708,1710,1712,1714,1716,1718,1720,1722,1724,1726,1728,1730,1732,1734,1736,1738,1740,1742,1744,1746,1748,1750,1752,1754,1756,1758,1760,1762,1764,1766,1768,1770,1772,1774,1776,1778,1780,1782,1784,1786,1788,1790,1792,1794,1796,1798,1800,1802,1804,1806,1808,1810,1812,1814,1816,1818,1820,1822,1824,1826,1828,1830,1832,1834,1836,1838,1840,1842,1844,1846,1848,1850,1852,1854,1856,1858,1860,1862,1864,1866,1868,1870,1872,1874,1876,1878,1880,1882,1884,1886,1888,1890,1892,1894,1896,1898,1900,1902,1904,1906,1908,1910,1912,1914,1916,1918,1920,1922,1924,1926,1928,1930,1932,1934,1936,1938,1940,1942,1944,1946,1948,1950,1952,1954,1956,1958,1960,1962,1964,1966,1968,1970,1972,1974,1976,1978,1980,1982,1984,1986,1988,1990,1992,1994,1996,1998,2000,2002,2004,2006,2008,2010,2012,2014,2016,2018,2020,2022,2024,2026,2028,2030,2032,2034,2036,2038,2040,2042,2044,2046,2048,2050,2052,2054,2056,2058,2060,2062,2064,2066,2068,2070,2072,2074,2076,2078,2080,2082,2084,2086,2088,2090,2092,2094,2096,2098,2100,2102,2104,2106,2108,2110,2112,2114,2116,2118,2120,2122,2124,2126,2128,2130,2132,2134,2136,2138,2140,2142,2144,2146,2148,2150,2152,2154,2156,2158,2160,2162,2164,2166,2168,2170,2172,2174,2176,2178,2180,2182,2184,2186,2188,2190,2192,2194,2196,2198,2200,2202,2204,2206,2208,2210,2212,2214,2216,2218,2220,2222,2224,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2254,2256,2258,2260,2262,2264,2266,2268,2270,2272,2274,2276,2278,2280,2282,2284,2286,2288,2290,2292,2294,2296,2298,2300,2302,2304,2306,2308,2310,2312,2314,2316,2318,2320,2322,2324,2326,2328,2330,2332,2334,2336,2338,2340,2342,2344,2346,2348,2350,2352,2354,2356,2358,2360,2362,2364,2366,2368,2370,2372,2374,2376,2378,2380,2382,2384,2386,2388,2390,2392,2394,2396,2398,2400,2402,2404,2406,2408,2410,2412,2414,2416,2418,2420,2422,2424,2426,2428,2430,2432,2434,2436,2438,2440,2442,2444,2446,2448,2450,2452,2454,2456,2458,2460,2462,2464,2466,2468,2470,2472,2474,2476,2478,2480,2482,2484,2486,2488,2490,2492,2494,2496,2498,2500,2502,2504,2506,2508,2510,2512,2514,2516,2518,2520,2522,2524,2526,2528,2530,2532,2534,2536,2538,2540,2542,2544,2546,2548,2550,2552,2554,2556,2558,2560,2562,2564,2566,2568,2570,2572,2574,2576,2578,2580,2582,2584,2586,2588,2590,2592,2594,2596,2598,2600,2602,2604,2606,2608,2610,2612,2614,2616,2618,2620,2622,2624,2626,2628,2630,2632,2634,2636,2638,2640,2642,2644,2646,2648,2650,2652,2654,2656,2658,2660,2662,2664,2666,2668,2670,2672,2674,2676,2678,2680,2682,2684,2686,2688,2690,2692,2694,2696,2698,2700,2702,2704,2706,2708,2710,2712,2714,2716,2718,2720,2722,2724,2726,2728,2730,2732,2734,2736,2738,2740,2742,2744,2746,2748,2750,2752,2754,2756,2758,2760,2762,2764,2766,2768,2770,2772,2774,2776,2778,2780,2782,2784,2786,2788,2790,2792,2794,2796,2798,2800,2802,2804,2806,2808,2810,2812,2814,2816,2818,2820,2822,2824,2826,2828,2830,2832,2834,2836,2838,2840,2842,2844,2846,2848,2850,2852,2854,2856,2858,2860,2862,2864,2866,2868,2870,2872,2874,2876,2878,2880,2882,2884,2886,2888,2890,2892,2894,2896,2898,2900,2902,2904,2906,2908,2910,2912,2914,2916,2918,2920,2922,2924,2926,2928,2930,2932,2934,2936,2938,2940,2942,2944,2946,2948,2950,2952,2954,2956,2958,2960,2962,2964,2966,2968,2970,2972,2974,2976,2978,2980,2982,2984,2986,2988,2990,2992,2994,2996,2998,3000,3002,3004,3006,3008,3010,3012,3014,3016,3018,3020,3022,3024,3026,3028,3030,3032,3034,3036,3038,3040,3042,3044,3046,3048,3050,3052,3054,3056,3058,3060,3062,3064,3066,3068,3070,3072,3074,3076,3078,3080,3082,3084,3086,3088,3090,3092,3094,3096,3098,3100,3102,3104,3106,3108,3110,3112,3114,3116,3118,3120,3122,3124,3126,3128,3130,3132,3134,3136,3138,3140,3142,3144,3146,3148,3150,3152,3154,3156,3158,3160,3162,3164,3166,3168,3170,3172,3174,3176,3178,3180,3182,3184,3186,3188,3190,3192,3194,3196,3198,3200,3202,3204,3206,3208,3210,3212,3214,3216,3218,3220,3222,3224,3226,3228,3230,3232,3234,3236,3238,3240,3242,3244,3246,3248,3250,3252,3254,3256,3258,3260,3262,3264,3266,3268,3270,3272,3274,3276,3278,3280,3282,3284,3286,3288,3290,3292,3294,3296,3298,3300,3302,3304,3306,3308,3310,3312,3314,3316,3318,3320,3322,3324,3326,3328,3330,3332,3334,3336,3338,3340,3342,3344,3346,3348,3350,3352,3354,3356,3358,3360,3362,3364,3366,3368,3370,3372,3374,3376,3378,3380,3382,3384,3386,3388,3390,3392,3394,3396,3398,3400,3402,3404,3406,3408,3410,3412,3414,3416,3418,3420,3422,3424,3426,3428,3430,3432,3434,3436,3438,3440,3442,3444,3446,3448,3450,3452,3454,3456,3458,3460,3462,3464,3466,3468,3470,3472,3474,3476,3478,3480,3482,3484,3486,3488,3490,3492,3494,3496,3498,3500,3502,3504,3506,3508,3510,3512,3514,3516,3518,3520,3522,3524,3526,3528,3530,3532,3534,3536,3538,3540,3542,3544,3546,3548,3550,3552,3554,3556,3558,3560,3562,3564,3566,3568,3570,3572,3574,3576,3578,3580,3582,3584,3586,3588,3590,3592,3594,3596,3598,3600,3602,3604,3606,3608,3610,3612,3614,3616,3618,3620,3622,3624,3626,3628,3630,3632,3634,3636,3638,3640,3642,3644,3646,3648,3650,3652,3654,3656,3658,3660,3662,3664,3666,3668,3670,3672,3674,3676,3678,3680,3682,3684,3686,3688,3690,3692,3694,3696,3698,3700,3702,3704,3706,3708,3710,3712,3714,3716,3718,3720,3722,3724,3726,3728,3730,3732,3734,3736,3738,3740,3742,3744,3746,3748,3750,3752,3754,3756,3758,3760,3762,3764,3766,3768,3770,3772,3774,3776,3778,3780,3782,3784,3786,3788,3790,3792,3794,3796,3798,3800,3802,3804,3806,3808,3810,3812,3814,3816,3818,3820,3822,3824,3826,3828,3830,3832,3834,3836,3838,3840,3842,3844,3846,3848,3850,3852,3854,3856,3858,3860,3862,3864,3866,3868,3870,3872,3874,3876,3878,3880,3882,3884,3886,3888,3890,3892,3894,3896,3898,3900,3902,3904,3906,3908,3910,3912,3914,3916,3918,3920,3922,3924,3926,3928,3930,3932,3934,3936,3938,3940,3942,3944,3946,3948,3950,3952,3954,3956,3958,3960,3962,3964,3966,3968,3970,3972,3974,3976,3978,3980,3982,3984,3986,3988,3990,3992,3994,3996,3998,4000,4002,4004,4006,4008,4010,4012,4014,4016,4018,4020,4022,4024,4026,4028,4030,4032,4034,4036,4038,4040,4042,4044,4046,4048,4050,4052,4054,4056,4058,4060,4062,4064,4066,4068,4070,4072,4074,4076,4078,4080,4082,4084,4086,4088,4090,4092,4094,4096,4098,4100,4102,4104,4106,4108,4110,4112,4114,4116,4118,4120,4122,4124,4126,4128,4130,4132,4134,4136,4138,4140,4142,4144,4146,4148,4150,4152,4154,4156,4158,4160,4162,4164,4166,4168,4170,4172,4174,4176,4178,4180,4182,4184,4186,4188,4190,4192,4194,4196,4198,4200,4202,4204,4206,4208,4210,4212,4214,4216,4218,4220,4222,4224,4226,4228,4230,4232,4234,4236,4238,4240,4242,4244,4246,4248,4250,4252,4254,4256,4258,4260,4262,4264,4266,4268,4270,4272,4274,4276,4278,4280,4282,4284,4286,4288,4290,4292,4294,4296,4298,4300,4302,4304,4306,4308,4310,4312,4314,4316,4318,4320,4322,4324,4326,4328,4330,4332,4334,4336,4338,4340,4342,4344,4346,4348,4350,4352,4354,4356,4358,4360,4362,4364,4366,4368,4370,4372,4374,4376,4378,4380,4382,4384,4386,4388,4390,4392,4394,4396,4398,4400,4402,4404,4406,4408,4410,4412,4414,4416,4418,4420,4422,4424,4426,4428,4430,4432,4434,4436,4438,4440,4442,4444,4446,4448,4450,4452,4454,4456,4458,4460,4462,4464,4466,4468,4470,4472,4474,4476,4478,4480,4482,4484,4486,4488,4490,4492,4494,4496,4498,4500,4502],{"categories":101},[102],"Business & SaaS",{"categories":104},[102],{"categories":106},[107],"AI News & Trends",{"categories":109},[],{"categories":111},[112],"AI Automation",{"categories":114},[115],"Marketing & Growth",{"categories":117},[118],"Design & Frontend",{"categories":120},[62],{"categories":122},[112],{"categories":124},[],{"categories":126},[118],{"categories":128},[118],{"categories":130},[112],{"categories":132},[118],{"categories":134},[118],{"categories":136},[137],"AI & LLMs",{"categories":139},[118],{"categories":141},[118],{"categories":143},[],{"categories":145},[118],{"categories":147},[118],{"categories":149},[137],{"categories":151},[152],"Developer Productivity",{"categories":154},[137],{"categories":156},[137],{"categories":158},[137],{"categories":160},[107],{"categories":162},[137],{"categories":164},[112],{"categories":166},[102],{"categories":168},[107],{"categories":170},[115],{"categories":172},[],{"categories":174},[],{"categories":176},[112],{"categories":178},[112],{"categories":180},[112],{"categories":182},[115],{"categories":184},[137],{"categories":186},[152],{"categories":188},[107],{"categories":190},[],{"categories":192},[],{"categories":194},[],{"categories":196},[197],"Data Science & Visualization",{"categories":199},[],{"categories":201},[112],{"categories":203},[62],{"categories":205},[112],{"categories":207},[112],{"categories":209},[137],{"categories":211},[115],{"categories":213},[112],{"categories":215},[],{"categories":217},[],{"categories":219},[],{"categories":221},[118],{"categories":223},[118],{"categories":225},[112],{"categories":227},[115],{"categories":229},[152],{"categories":231},[118],{"categories":233},[137],{"categories":235},[62],{"categories":237},[137],{"categories":239},[],{"categories":241},[112],{"categories":243},[137],{"categories":245},[152],{"categories":247},[152],{"categories":249},[],{"categories":251},[115],{"categories":253},[102],{"categories":255},[137],{"categories":257},[102],{"categories":259},[102],{"categories":261},[112],{"categories":263},[115],{"categories":265},[112],{"categories":267},[102],{"categories":269},[112],{"categories":271},[118],{"categories":273},[137],{"categories":275},[118],{"categories":277},[137],{"categories":279},[102],{"categories":281},[137],{"categories":283},[115],{"categories":285},[],{"categories":287},[137],{"categories":289},[102],{"categories":291},[],{"categories":293},[107],{"categories":295},[62],{"categories":297},[],{"categories":299},[137],{"categories":301},[118],{"categories":303},[137],{"categories":305},[118],{"categories":307},[],{"categories":309},[112],{"categories":311},[],{"categories":313},[],{"categories":315},[],{"categories":317},[137],{"categories":319},[],{"categories":321},[137],{"categories":323},[137],{"categories":325},[118],{"categories":327},[137],{"categories":329},[152],{"categories":331},[112],{"categories":333},[115],{"categories":335},[152],{"categories":337},[152],{"categories":339},[152],{"categories":341},[115],{"categories":343},[115],{"categories":345},[137],{"categories":347},[137],{"categories":349},[118],{"categories":351},[102],{"categories":353},[118],{"categories":355},[62],{"categories":357},[102],{"categories":359},[102],{"categories":361},[102],{"categories":363},[118],{"categories":365},[],{"categories":367},[],{"categories":369},[137],{"categories":371},[137],{"categories":373},[62],{"categories":375},[137],{"categories":377},[137],{"categories":379},[],{"categories":381},[137],{"categories":383},[137],{"categories":385},[],{"categories":387},[137],{"categories":389},[107],{"categories":391},[107],{"categories":393},[],{"categories":395},[],{"categories":397},[115],{"categories":399},[115],{"categories":401},[62],{"categories":403},[137],{"categories":405},[],{"categories":407},[],{"categories":409},[112],{"categories":411},[137],{"categories":413},[137],{"categories":415},[],{"categories":417},[137,102],{"categories":419},[137],{"categories":421},[],{"categories":423},[137],{"categories":425},[137],{"categories":427},[],{"categories":429},[],{"categories":431},[112],{"categories":433},[137],{"categories":435},[137],{"categories":437},[112],{"categories":439},[137],{"categories":441},[],{"categories":443},[],{"categories":445},[137],{"categories":447},[],{"categories":449},[137],{"categories":451},[137],{"categories":453},[],{"categories":455},[112],{"categories":457},[118],{"categories":459},[],{"categories":461},[112,462],"DevOps & Cloud",{"categories":464},[137],{"categories":466},[112],{"categories":468},[137],{"categories":470},[],{"categories":472},[],{"categories":474},[],{"categories":476},[],{"categories":478},[137],{"categories":480},[112],{"categories":482},[],{"categories":484},[112],{"categories":486},[],{"categories":488},[137],{"categories":490},[],{"categories":492},[],{"categories":494},[],{"categories":496},[],{"categories":498},[112],{"categories":500},[118],{"categories":502},[137],{"categories":504},[115],{"categories":506},[107],{"categories":508},[102],{"categories":510},[152],{"categories":512},[],{"categories":514},[112],{"categories":516},[112],{"categories":518},[137],{"categories":520},[],{"categories":522},[],{"categories":524},[],{"categories":526},[112],{"categories":528},[],{"categories":530},[112],{"categories":532},[112],{"categories":534},[107],{"categories":536},[112],{"categories":538},[137],{"categories":540},[],{"categories":542},[137],{"categories":544},[],{"categories":546},[107],{"categories":548},[112,549],"Product Strategy",{"categories":551},[62],{"categories":553},[462],{"categories":555},[549],{"categories":557},[137],{"categories":559},[112],{"categories":561},[],{"categories":563},[107],{"categories":565},[107],{"categories":567},[112],{"categories":569},[],{"categories":571},[112],{"categories":573},[137],{"categories":575},[137],{"categories":577},[152],{"categories":579},[137],{"categories":581},[],{"categories":583},[137,62],{"categories":585},[107],{"categories":587},[137],{"categories":589},[107],{"categories":591},[112],{"categories":593},[107],{"categories":595},[],{"categories":597},[62],{"categories":599},[102],{"categories":601},[],{"categories":603},[112],{"categories":605},[112],{"categories":607},[112],{"categories":609},[112],{"categories":611},[102],{"categories":613},[118],{"categories":615},[115],{"categories":617},[],{"categories":619},[112],{"categories":621},[],{"categories":623},[107],{"categories":625},[107],{"categories":627},[107],{"categories":629},[112],{"categories":631},[107],{"categories":633},[137],{"categories":635},[152],{"categories":637},[137],{"categories":639},[62],{"categories":641},[137,152],{"categories":643},[152],{"categories":645},[152],{"categories":647},[152],{"categories":649},[152],{"categories":651},[137],{"categories":653},[],{"categories":655},[],{"categories":657},[115],{"categories":659},[],{"categories":661},[137],{"categories":663},[152],{"categories":665},[137],{"categories":667},[118],{"categories":669},[62],{"categories":671},[],{"categories":673},[137],{"categories":675},[152],{"categories":677},[115],{"categories":679},[107],{"categories":681},[62],{"categories":683},[137],{"categories":685},[],{"categories":687},[62],{"categories":689},[118],{"categories":691},[102],{"categories":693},[102],{"categories":695},[],{"categories":697},[118],{"categories":699},[102],{"categories":701},[107],{"categories":703},[152],{"categories":705},[112],{"categories":707},[112],{"categories":709},[137],{"categories":711},[137],{"categories":713},[107],{"categories":715},[107],{"categories":717},[152],{"categories":719},[107],{"categories":721},[],{"categories":723},[549],{"categories":725},[112],{"categories":727},[107],{"categories":729},[107],{"categories":731},[107],{"categories":733},[137],{"categories":735},[112],{"categories":737},[112],{"categories":739},[102],{"categories":741},[102],{"categories":743},[137],{"categories":745},[107],{"categories":747},[],{"categories":749},[137],{"categories":751},[102],{"categories":753},[112],{"categories":755},[112],{"categories":757},[112],{"categories":759},[118],{"categories":761},[112],{"categories":763},[152],{"categories":765},[107],{"categories":767},[107],{"categories":769},[107],{"categories":771},[107],{"categories":773},[107],{"categories":775},[],{"categories":777},[],{"categories":779},[152],{"categories":781},[107],{"categories":783},[107],{"categories":785},[107],{"categories":787},[],{"categories":789},[137],{"categories":791},[],{"categories":793},[],{"categories":795},[118],{"categories":797},[102],{"categories":799},[],{"categories":801},[107],{"categories":803},[112],{"categories":805},[112],{"categories":807},[112],{"categories":809},[115],{"categories":811},[112],{"categories":813},[],{"categories":815},[107],{"categories":817},[107],{"categories":819},[137],{"categories":821},[],{"categories":823},[115],{"categories":825},[115],{"categories":827},[137],{"categories":829},[107],{"categories":831},[102],{"categories":833},[62],{"categories":835},[137],{"categories":837},[],{"categories":839},[137],{"categories":841},[137],{"categories":843},[62],{"categories":845},[137],{"categories":847},[137],{"categories":849},[137],{"categories":851},[115],{"categories":853},[107],{"categories":855},[137],{"categories":857},[137],{"categories":859},[107],{"categories":861},[112],{"categories":863},[152],{"categories":865},[102],{"categories":867},[137],{"categories":869},[152],{"categories":871},[152],{"categories":873},[],{"categories":875},[115],{"categories":877},[107],{"categories":879},[107],{"categories":881},[152],{"categories":883},[112],{"categories":885},[112],{"categories":887},[112],{"categories":889},[112],{"categories":891},[118],{"categories":893},[137],{"categories":895},[137],{"categories":897},[549],{"categories":899},[137],{"categories":901},[137],{"categories":903},[112],{"categories":905},[102],{"categories":907},[115],{"categories":909},[],{"categories":911},[102],{"categories":913},[102],{"categories":915},[],{"categories":917},[118],{"categories":919},[137],{"categories":921},[],{"categories":923},[],{"categories":925},[107],{"categories":927},[107],{"categories":929},[107],{"categories":931},[107],{"categories":933},[],{"categories":935},[107],{"categories":937},[137],{"categories":939},[137],{"categories":941},[],{"categories":943},[107],{"categories":945},[107],{"categories":947},[102],{"categories":949},[137],{"categories":951},[],{"categories":953},[],{"categories":955},[107],{"categories":957},[107],{"categories":959},[107],{"categories":961},[137],{"categories":963},[107],{"categories":965},[107],{"categories":967},[107],{"categories":969},[107],{"categories":971},[107],{"categories":973},[],{"categories":975},[112],{"categories":977},[137],{"categories":979},[115],{"categories":981},[102],{"categories":983},[112],{"categories":985},[137],{"categories":987},[],{"categories":989},[115],{"categories":991},[107],{"categories":993},[107],{"categories":995},[107],{"categories":997},[107],{"categories":999},[152],{"categories":1001},[62],{"categories":1003},[],{"categories":1005},[137],{"categories":1007},[112],{"categories":1009},[112],{"categories":1011},[112],{"categories":1013},[462],{"categories":1015},[112],{"categories":1017},[137],{"categories":1019},[137],{"categories":1021},[62],{"categories":1023},[462],{"categories":1025},[197],{"categories":1027},[137],{"categories":1029},[197],{"categories":1031},[],{"categories":1033},[115],{"categories":1035},[115],{"categories":1037},[118],{"categories":1039},[462],{"categories":1041},[112],{"categories":1043},[137],{"categories":1045},[137],{"categories":1047},[112],{"categories":1049},[112],{"categories":1051},[112],{"categories":1053},[152],{"categories":1055},[152],{"categories":1057},[112],{"categories":1059},[112],{"categories":1061},[],{"categories":1063},[112],{"categories":1065},[112],{"categories":1067},[137],{"categories":1069},[197],{"categories":1071},[112],{"categories":1073},[112],{"categories":1075},[112],{"categories":1077},[112],{"categories":1079},[102],{"categories":1081},[118],{"categories":1083},[107],{"categories":1085},[62],{"categories":1087},[462],{"categories":1089},[62],{"categories":1091},[197],{"categories":1093},[],{"categories":1095},[62],{"categories":1097},[],{"categories":1099},[],{"categories":1101},[62],{"categories":1103},[137],{"categories":1105},[],{"categories":1107},[],{"categories":1109},[],{"categories":1111},[102],{"categories":1113},[],{"categories":1115},[],{"categories":1117},[197],{"categories":1119},[137],{"categories":1121},[462],{"categories":1123},[137],{"categories":1125},[],{"categories":1127},[112],{"categories":1129},[152],{"categories":1131},[152],{"categories":1133},[115],{"categories":1135},[115],{"categories":1137},[115],{"categories":1139},[462],{"categories":1141},[62],{"categories":1143},[112],{"categories":1145},[102],{"categories":1147},[102],{"categories":1149},[62],{"categories":1151},[118],{"categories":1153},[197],{"categories":1155},[118],{"categories":1157},[],{"categories":1159},[137],{"categories":1161},[112],{"categories":1163},[112],{"categories":1165},[152],{"categories":1167},[112],{"categories":1169},[112],{"categories":1171},[118],{"categories":1173},[118],{"categories":1175},[112],{"categories":1177},[462],{"categories":1179},[137],{"categories":1181},[],{"categories":1183},[115],{"categories":1185},[112],{"categories":1187},[102],{"categories":1189},[112],{"categories":1191},[112],{"categories":1193},[],{"categories":1195},[137],{"categories":1197},[112],{"categories":1199},[112],{"categories":1201},[152],{"categories":1203},[112],{"categories":1205},[137],{"categories":1207},[],{"categories":1209},[112],{"categories":1211},[],{"categories":1213},[118],{"categories":1215},[152],{"categories":1217},[137],{"categories":1219},[62],{"categories":1221},[118],{"categories":1223},[152],{"categories":1225},[197],{"categories":1227},[152],{"categories":1229},[],{"categories":1231},[137],{"categories":1233},[137],{"categories":1235},[549],{"categories":1237},[62],{"categories":1239},[137,112],{"categories":1241},[112],{"categories":1243},[137],{"categories":1245},[112],{"categories":1247},[112,62],{"categories":1249},[112],{"categories":1251},[137],{"categories":1253},[],{"categories":1255},[152],{"categories":1257},[137],{"categories":1259},[112],{"categories":1261},[137],{"categories":1263},[],{"categories":1265},[62],{"categories":1267},[102],{"categories":1269},[112],{"categories":1271},[],{"categories":1273},[197],{"categories":1275},[62],{"categories":1277},[112],{"categories":1279},[62],{"categories":1281},[],{"categories":1283},[112],{"categories":1285},[],{"categories":1287},[112],{"categories":1289},[],{"categories":1291},[],{"categories":1293},[118],{"categories":1295},[152],{"categories":1297},[137],{"categories":1299},[112],{"categories":1301},[],{"categories":1303},[112],{"categories":1305},[62],{"categories":1307},[137],{"categories":1309},[137],{"categories":1311},[62],{"categories":1313},[62],{"categories":1315},[152],{"categories":1317},[102],{"categories":1319},[],{"categories":1321},[137],{"categories":1323},[137],{"categories":1325},[137],{"categories":1327},[112],{"categories":1329},[137],{"categories":1331},[],{"categories":1333},[118],{"categories":1335},[137],{"categories":1337},[112],{"categories":1339},[],{"categories":1341},[137],{"categories":1343},[],{"categories":1345},[137],{"categories":1347},[],{"categories":1349},[],{"categories":1351},[],{"categories":1353},[137],{"categories":1355},[137],{"categories":1357},[137],{"categories":1359},[137],{"categories":1361},[],{"categories":1363},[137],{"categories":1365},[137],{"categories":1367},[137],{"categories":1369},[],{"categories":1371},[137],{"categories":1373},[],{"categories":1375},[115],{"categories":1377},[137],{"categories":1379},[],{"categories":1381},[],{"categories":1383},[],{"categories":1385},[137],{"categories":1387},[107],{"categories":1389},[107],{"categories":1391},[],{"categories":1393},[112],{"categories":1395},[137],{"categories":1397},[],{"categories":1399},[137],{"categories":1401},[137],{"categories":1403},[107],{"categories":1405},[],{"categories":1407},[137],{"categories":1409},[107],{"categories":1411},[112],{"categories":1413},[137],{"categories":1415},[],{"categories":1417},[],{"categories":1419},[],{"categories":1421},[112],{"categories":1423},[112],{"categories":1425},[112],{"categories":1427},[112],{"categories":1429},[137],{"categories":1431},[118],{"categories":1433},[118],{"categories":1435},[112],{"categories":1437},[112],{"categories":1439},[152],{"categories":1441},[549],{"categories":1443},[152],{"categories":1445},[152],{"categories":1447},[137],{"categories":1449},[112],{"categories":1451},[137],{"categories":1453},[152],{"categories":1455},[137],{"categories":1457},[112],{"categories":1459},[112],{"categories":1461},[112],{"categories":1463},[112],{"categories":1465},[112],{"categories":1467},[137],{"categories":1469},[152],{"categories":1471},[152],{"categories":1473},[115],{"categories":1475},[112],{"categories":1477},[],{"categories":1479},[112],{"categories":1481},[],{"categories":1483},[107],{"categories":1485},[137],{"categories":1487},[],{"categories":1489},[102],{"categories":1491},[118],{"categories":1493},[118],{"categories":1495},[112],{"categories":1497},[112],{"categories":1499},[137],{"categories":1501},[137],{"categories":1503},[107],{"categories":1505},[107],{"categories":1507},[462],{"categories":1509},[112],{"categories":1511},[107],{"categories":1513},[],{"categories":1515},[137],{"categories":1517},[112],{"categories":1519},[112],{"categories":1521},[112],{"categories":1523},[112],{"categories":1525},[137],{"categories":1527},[137],{"categories":1529},[137],{"categories":1531},[137],{"categories":1533},[112],{"categories":1535},[112],{"categories":1537},[112],{"categories":1539},[112],{"categories":1541},[],{"categories":1543},[118],{"categories":1545},[137],{"categories":1547},[137],{"categories":1549},[137],{"categories":1551},[],{"categories":1553},[115],{"categories":1555},[],{"categories":1557},[152],{"categories":1559},[],{"categories":1561},[112],{"categories":1563},[152],{"categories":1565},[118],{"categories":1567},[152],{"categories":1569},[],{"categories":1571},[152],{"categories":1573},[152],{"categories":1575},[],{"categories":1577},[118],{"categories":1579},[112],{"categories":1581},[112],{"categories":1583},[152],{"categories":1585},[137],{"categories":1587},[137],{"categories":1589},[],{"categories":1591},[107],{"categories":1593},[],{"categories":1595},[115],{"categories":1597},[],{"categories":1599},[118],{"categories":1601},[107],{"categories":1603},[118],{"categories":1605},[118],{"categories":1607},[118],{"categories":1609},[118],{"categories":1611},[118],{"categories":1613},[118],{"categories":1615},[118],{"categories":1617},[118],{"categories":1619},[118],{"categories":1621},[118],{"categories":1623},[],{"categories":1625},[112],{"categories":1627},[118],{"categories":1629},[137],{"categories":1631},[137],{"categories":1633},[118],{"categories":1635},[118],{"categories":1637},[118],{"categories":1639},[118],{"categories":1641},[118],{"categories":1643},[118],{"categories":1645},[118],{"categories":1647},[137,118],{"categories":1649},[118],{"categories":1651},[118],{"categories":1653},[118],{"categories":1655},[118],{"categories":1657},[],{"categories":1659},[118],{"categories":1661},[118],{"categories":1663},[118],{"categories":1665},[118],{"categories":1667},[118],{"categories":1669},[118],{"categories":1671},[118],{"categories":1673},[118],{"categories":1675},[118],{"categories":1677},[118,137],{"categories":1679},[118],{"categories":1681},[118],{"categories":1683},[],{"categories":1685},[107],{"categories":1687},[],{"categories":1689},[137],{"categories":1691},[],{"categories":1693},[112],{"categories":1695},[462],{"categories":1697},[549],{"categories":1699},[112],{"categories":1701},[112],{"categories":1703},[],{"categories":1705},[112],{"categories":1707},[],{"categories":1709},[112],{"categories":1711},[],{"categories":1713},[],{"categories":1715},[137],{"categories":1717},[137],{"categories":1719},[137],{"categories":1721},[107],{"categories":1723},[107],{"categories":1725},[107],{"categories":1727},[107],{"categories":1729},[],{"categories":1731},[107],{"categories":1733},[],{"categories":1735},[107],{"categories":1737},[137],{"categories":1739},[107],{"categories":1741},[107],{"categories":1743},[107],{"categories":1745},[107],{"categories":1747},[137],{"categories":1749},[107],{"categories":1751},[112],{"categories":1753},[],{"categories":1755},[112],{"categories":1757},[107],{"categories":1759},[137],{"categories":1761},[107],{"categories":1763},[107],{"categories":1765},[107],{"categories":1767},[137],{"categories":1769},[137],{"categories":1771},[137],{"categories":1773},[],{"categories":1775},[],{"categories":1777},[137],{"categories":1779},[107],{"categories":1781},[],{"categories":1783},[137],{"categories":1785},[112],{"categories":1787},[137],{"categories":1789},[112],{"categories":1791},[112],{"categories":1793},[137],{"categories":1795},[],{"categories":1797},[],{"categories":1799},[112],{"categories":1801},[112],{"categories":1803},[112],{"categories":1805},[112],{"categories":1807},[112],{"categories":1809},[112],{"categories":1811},[112],{"categories":1813},[112],{"categories":1815},[],{"categories":1817},[112],{"categories":1819},[112],{"categories":1821},[112],{"categories":1823},[137],{"categories":1825},[137],{"categories":1827},[137],{"categories":1829},[107],{"categories":1831},[137],{"categories":1833},[137],{"categories":1835},[137],{"categories":1837},[112],{"categories":1839},[115],{"categories":1841},[115],{"categories":1843},[115],{"categories":1845},[112],{"categories":1847},[],{"categories":1849},[137],{"categories":1851},[],{"categories":1853},[],{"categories":1855},[137],{"categories":1857},[],{"categories":1859},[112],{"categories":1861},[118],{"categories":1863},[152],{"categories":1865},[197],{"categories":1867},[137],{"categories":1869},[112],{"categories":1871},[118],{"categories":1873},[],{"categories":1875},[112],{"categories":1877},[115,102],{"categories":1879},[112],{"categories":1881},[112],{"categories":1883},[462],{"categories":1885},[62],{"categories":1887},[115],{"categories":1889},[152],{"categories":1891},[137],{"categories":1893},[],{"categories":1895},[137],{"categories":1897},[],{"categories":1899},[137],{"categories":1901},[137],{"categories":1903},[112],{"categories":1905},[],{"categories":1907},[137],{"categories":1909},[112],{"categories":1911},[137],{"categories":1913},[152],{"categories":1915},[112],{"categories":1917},[137],{"categories":1919},[137,152],{"categories":1921},[152],{"categories":1923},[],{"categories":1925},[137],{"categories":1927},[137],{"categories":1929},[137],{"categories":1931},[],{"categories":1933},[],{"categories":1935},[112],{"categories":1937},[115],{"categories":1939},[107],{"categories":1941},[112],{"categories":1943},[137],{"categories":1945},[107],{"categories":1947},[],{"categories":1949},[152],{"categories":1951},[107],{"categories":1953},[],{"categories":1955},[197],{"categories":1957},[115],{"categories":1959},[102],{"categories":1961},[107],{"categories":1963},[137],{"categories":1965},[112],{"categories":1967},[137],{"categories":1969},[112],{"categories":1971},[112],{"categories":1973},[107],{"categories":1975},[152],{"categories":1977},[118],{"categories":1979},[102],{"categories":1981},[137],{"categories":1983},[137],{"categories":1985},[],{"categories":1987},[],{"categories":1989},[137],{"categories":1991},[],{"categories":1993},[137],{"categories":1995},[107],{"categories":1997},[],{"categories":1999},[112],{"categories":2001},[152],{"categories":2003},[107],{"categories":2005},[152],{"categories":2007},[112],{"categories":2009},[137],{"categories":2011},[],{"categories":2013},[112],{"categories":2015},[112],{"categories":2017},[118],{"categories":2019},[112],{"categories":2021},[118],{"categories":2023},[112],{"categories":2025},[112],{"categories":2027},[118],{"categories":2029},[],{"categories":2031},[],{"categories":2033},[118],{"categories":2035},[118],{"categories":2037},[118],{"categories":2039},[62],{"categories":2041},[152],{"categories":2043},[152],{"categories":2045},[112],{"categories":2047},[107],{"categories":2049},[152],{"categories":2051},[152],{"categories":2053},[115],{"categories":2055},[118],{"categories":2057},[112],{"categories":2059},[112],{"categories":2061},[137],{"categories":2063},[152],{"categories":2065},[137],{"categories":2067},[],{"categories":2069},[462],{"categories":2071},[549],{"categories":2073},[],{"categories":2075},[],{"categories":2077},[112],{"categories":2079},[107],{"categories":2081},[115],{"categories":2083},[115],{"categories":2085},[197],{"categories":2087},[118],{"categories":2089},[197],{"categories":2091},[197],{"categories":2093},[112],{"categories":2095},[],{"categories":2097},[],{"categories":2099},[197],{"categories":2101},[62],{"categories":2103},[137],{"categories":2105},[62],{"categories":2107},[197],{"categories":2109},[62],{"categories":2111},[197],{"categories":2113},[102],{"categories":2115},[62],{"categories":2117},[152],{"categories":2119},[137],{"categories":2121},[],{"categories":2123},[197],{"categories":2125},[462],{"categories":2127},[],{"categories":2129},[137],{"categories":2131},[137],{"categories":2133},[],{"categories":2135},[],{"categories":2137},[137],{"categories":2139},[137],{"categories":2141},[107],{"categories":2143},[137],{"categories":2145},[],{"categories":2147},[107],{"categories":2149},[],{"categories":2151},[],{"categories":2153},[107],{"categories":2155},[107],{"categories":2157},[137],{"categories":2159},[137],{"categories":2161},[137],{"categories":2163},[137],{"categories":2165},[137],{"categories":2167},[137],{"categories":2169},[115],{"categories":2171},[],{"categories":2173},[137],{"categories":2175},[],{"categories":2177},[],{"categories":2179},[112],{"categories":2181},[152],{"categories":2183},[],{"categories":2185},[462],{"categories":2187},[137,462],{"categories":2189},[137],{"categories":2191},[],{"categories":2193},[118],{"categories":2195},[118],{"categories":2197},[118],{"categories":2199},[118],{"categories":2201},[118],{"categories":2203},[],{"categories":2205},[],{"categories":2207},[],{"categories":2209},[62],{"categories":2211},[112],{"categories":2213},[102],{"categories":2215},[62],{"categories":2217},[152],{"categories":2219},[118],{"categories":2221},[],{"categories":2223},[115],{"categories":2225},[549],{"categories":2227},[197],{"categories":2229},[197],{"categories":2231},[197],{"categories":2233},[152],{"categories":2235},[549],{"categories":2237},[152],{"categories":2239},[],{"categories":2241},[102],{"categories":2243},[62],{"categories":2245},[137],{"categories":2247},[118],{"categories":2249},[115],{"categories":2251},[62],{"categories":2253},[115],{"categories":2255},[137],{"categories":2257},[118],{"categories":2259},[62],{"categories":2261},[462],{"categories":2263},[137],{"categories":2265},[107],{"categories":2267},[62],{"categories":2269},[],{"categories":2271},[137],{"categories":2273},[62],{"categories":2275},[62],{"categories":2277},[112],{"categories":2279},[],{"categories":2281},[115],{"categories":2283},[115],{"categories":2285},[115],{"categories":2287},[112],{"categories":2289},[137],{"categories":2291},[],{"categories":2293},[102],{"categories":2295},[152],{"categories":2297},[152],{"categories":2299},[197],{"categories":2301},[102],{"categories":2303},[107],{"categories":2305},[197],{"categories":2307},[],{"categories":2309},[107],{"categories":2311},[107],{"categories":2313},[107],{"categories":2315},[137],{"categories":2317},[102],{"categories":2319},[137],{"categories":2321},[],{"categories":2323},[],{"categories":2325},[],{"categories":2327},[62],{"categories":2329},[112],{"categories":2331},[],{"categories":2333},[152],{"categories":2335},[118],{"categories":2337},[],{"categories":2339},[115],{"categories":2341},[],{"categories":2343},[118],{"categories":2345},[137],{"categories":2347},[152],{"categories":2349},[102],{"categories":2351},[],{"categories":2353},[118],{"categories":2355},[118],{"categories":2357},[137],{"categories":2359},[],{"categories":2361},[],{"categories":2363},[62],{"categories":2365},[137],{"categories":2367},[],{"categories":2369},[112],{"categories":2371},[137],{"categories":2373},[],{"categories":2375},[62],{"categories":2377},[112],{"categories":2379},[137],{"categories":2381},[197],{"categories":2383},[137],{"categories":2385},[],{"categories":2387},[197],{"categories":2389},[137],{"categories":2391},[62],{"categories":2393},[137],{"categories":2395},[197],{"categories":2397},[112],{"categories":2399},[137],{"categories":2401},[137],{"categories":2403},[137,112],{"categories":2405},[112],{"categories":2407},[112],{"categories":2409},[112],{"categories":2411},[118],{"categories":2413},[152],{"categories":2415},[137],{"categories":2417},[152],{"categories":2419},[118],{"categories":2421},[137],{"categories":2423},[],{"categories":2425},[],{"categories":2427},[137],{"categories":2429},[137],{"categories":2431},[137],{"categories":2433},[112],{"categories":2435},[137],{"categories":2437},[],{"categories":2439},[137],{"categories":2441},[137],{"categories":2443},[112],{"categories":2445},[112],{"categories":2447},[137],{"categories":2449},[137],{"categories":2451},[],{"categories":2453},[137],{"categories":2455},[],{"categories":2457},[137],{"categories":2459},[137],{"categories":2461},[137],{"categories":2463},[137],{"categories":2465},[137],{"categories":2467},[137],{"categories":2469},[137],{"categories":2471},[],{"categories":2473},[137],{"categories":2475},[107],{"categories":2477},[107],{"categories":2479},[],{"categories":2481},[],{"categories":2483},[137],{"categories":2485},[],{"categories":2487},[137],{"categories":2489},[137,462],{"categories":2491},[],{"categories":2493},[107],{"categories":2495},[],{"categories":2497},[137],{"categories":2499},[],{"categories":2501},[],{"categories":2503},[],{"categories":2505},[137],{"categories":2507},[],{"categories":2509},[137],{"categories":2511},[],{"categories":2513},[137],{"categories":2515},[137],{"categories":2517},[],{"categories":2519},[],{"categories":2521},[137,462],{"categories":2523},[462,137],{"categories":2525},[107],{"categories":2527},[],{"categories":2529},[137],{"categories":2531},[],{"categories":2533},[137],{"categories":2535},[137],{"categories":2537},[],{"categories":2539},[107],{"categories":2541},[137,102],{"categories":2543},[107],{"categories":2545},[62],{"categories":2547},[],{"categories":2549},[112],{"categories":2551},[137],{"categories":2553},[115],{"categories":2555},[137],{"categories":2557},[152],{"categories":2559},[152],{"categories":2561},[462],{"categories":2563},[107],{"categories":2565},[137],{"categories":2567},[462],{"categories":2569},[62],{"categories":2571},[137],{"categories":2573},[152],{"categories":2575},[],{"categories":2577},[137],{"categories":2579},[],{"categories":2581},[],{"categories":2583},[137],{"categories":2585},[],{"categories":2587},[137],{"categories":2589},[62],{"categories":2591},[102],{"categories":2593},[152],{"categories":2595},[115],{"categories":2597},[112],{"categories":2599},[152],{"categories":2601},[],{"categories":2603},[115],{"categories":2605},[],{"categories":2607},[],{"categories":2609},[137],{"categories":2611},[107],{"categories":2613},[115],{"categories":2615},[],{"categories":2617},[137],{"categories":2619},[107],{"categories":2621},[107],{"categories":2623},[115],{"categories":2625},[107],{"categories":2627},[137],{"categories":2629},[107],{"categories":2631},[137],{"categories":2633},[],{"categories":2635},[137],{"categories":2637},[137],{"categories":2639},[137],{"categories":2641},[107],{"categories":2643},[],{"categories":2645},[],{"categories":2647},[118],{"categories":2649},[107],{"categories":2651},[],{"categories":2653},[137],{"categories":2655},[137],{"categories":2657},[137],{"categories":2659},[137],{"categories":2661},[137],{"categories":2663},[137],{"categories":2665},[137],{"categories":2667},[137],{"categories":2669},[137],{"categories":2671},[115],{"categories":2673},[137,118],{"categories":2675},[107],{"categories":2677},[107],{"categories":2679},[137],{"categories":2681},[62],{"categories":2683},[197],{"categories":2685},[137],{"categories":2687},[137],{"categories":2689},[],{"categories":2691},[],{"categories":2693},[137],{"categories":2695},[137],{"categories":2697},[],{"categories":2699},[118],{"categories":2701},[118],{"categories":2703},[152],{"categories":2705},[137],{"categories":2707},[152],{"categories":2709},[137],{"categories":2711},[137],{"categories":2713},[],{"categories":2715},[137],{"categories":2717},[],{"categories":2719},[],{"categories":2721},[137],{"categories":2723},[],{"categories":2725},[],{"categories":2727},[107],{"categories":2729},[],{"categories":2731},[137],{"categories":2733},[137],{"categories":2735},[137],{"categories":2737},[],{"categories":2739},[137],{"categories":2741},[107],{"categories":2743},[549],{"categories":2745},[112],{"categories":2747},[137],{"categories":2749},[],{"categories":2751},[112],{"categories":2753},[137],{"categories":2755},[],{"categories":2757},[137],{"categories":2759},[],{"categories":2761},[112],{"categories":2763},[],{"categories":2765},[],{"categories":2767},[112],{"categories":2769},[112],{"categories":2771},[112],{"categories":2773},[137],{"categories":2775},[],{"categories":2777},[112],{"categories":2779},[112],{"categories":2781},[],{"categories":2783},[],{"categories":2785},[112],{"categories":2787},[137],{"categories":2789},[107],{"categories":2791},[549],{"categories":2793},[115],{"categories":2795},[],{"categories":2797},[118],{"categories":2799},[137],{"categories":2801},[137],{"categories":2803},[102],{"categories":2805},[107],{"categories":2807},[107],{"categories":2809},[107],{"categories":2811},[107],{"categories":2813},[],{"categories":2815},[112],{"categories":2817},[112],{"categories":2819},[112],{"categories":2821},[112],{"categories":2823},[152],{"categories":2825},[137],{"categories":2827},[102],{"categories":2829},[],{"categories":2831},[152],{"categories":2833},[112],{"categories":2835},[118],{"categories":2837},[118],{"categories":2839},[118],{"categories":2841},[118],{"categories":2843},[118],{"categories":2845},[118],{"categories":2847},[137,102],{"categories":2849},[112],{"categories":2851},[102],{"categories":2853},[107],{"categories":2855},[107],{"categories":2857},[152],{"categories":2859},[],{"categories":2861},[],{"categories":2863},[115],{"categories":2865},[],{"categories":2867},[137],{"categories":2869},[115],{"categories":2871},[137],{"categories":2873},[62],{"categories":2875},[112],{"categories":2877},[102],{"categories":2879},[112],{"categories":2881},[62],{"categories":2883},[152],{"categories":2885},[112],{"categories":2887},[],{"categories":2889},[152],{"categories":2891},[],{"categories":2893},[],{"categories":2895},[112],{"categories":2897},[112],{"categories":2899},[112],{"categories":2901},[137],{"categories":2903},[137],{"categories":2905},[137],{"categories":2907},[137],{"categories":2909},[137],{"categories":2911},[],{"categories":2913},[462],{"categories":2915},[137],{"categories":2917},[],{"categories":2919},[],{"categories":2921},[],{"categories":2923},[152],{"categories":2925},[],{"categories":2927},[137],{"categories":2929},[],{"categories":2931},[107],{"categories":2933},[137],{"categories":2935},[107],{"categories":2937},[137],{"categories":2939},[112],{"categories":2941},[],{"categories":2943},[137],{"categories":2945},[137],{"categories":2947},[],{"categories":2949},[197],{"categories":2951},[197],{"categories":2953},[62],{"categories":2955},[118],{"categories":2957},[],{"categories":2959},[137],{"categories":2961},[112],{"categories":2963},[],{"categories":2965},[],{"categories":2967},[137],{"categories":2969},[62],{"categories":2971},[112],{"categories":2973},[102],{"categories":2975},[152,62],{"categories":2977},[62],{"categories":2979},[137],{"categories":2981},[112],{"categories":2983},[],{"categories":2985},[],{"categories":2987},[],{"categories":2989},[],{"categories":2991},[],{"categories":2993},[],{"categories":2995},[137],{"categories":2997},[],{"categories":2999},[],{"categories":3001},[137],{"categories":3003},[],{"categories":3005},[],{"categories":3007},[],{"categories":3009},[137],{"categories":3011},[107],{"categories":3013},[],{"categories":3015},[],{"categories":3017},[],{"categories":3019},[137],{"categories":3021},[],{"categories":3023},[137],{"categories":3025},[137],{"categories":3027},[],{"categories":3029},[137],{"categories":3031},[62],{"categories":3033},[],{"categories":3035},[152],{"categories":3037},[152],{"categories":3039},[],{"categories":3041},[115],{"categories":3043},[],{"categories":3045},[],{"categories":3047},[],{"categories":3049},[118],{"categories":3051},[107],{"categories":3053},[112],{"categories":3055},[137],{"categories":3057},[102],{"categories":3059},[137],{"categories":3061},[],{"categories":3063},[],{"categories":3065},[102],{"categories":3067},[115],{"categories":3069},[112],{"categories":3071},[],{"categories":3073},[462],{"categories":3075},[],{"categories":3077},[115],{"categories":3079},[137],{"categories":3081},[137],{"categories":3083},[115],{"categories":3085},[137],{"categories":3087},[118],{"categories":3089},[112],{"categories":3091},[137],{"categories":3093},[112],{"categories":3095},[137],{"categories":3097},[112],{"categories":3099},[152],{"categories":3101},[152],{"categories":3103},[118],{"categories":3105},[],{"categories":3107},[137],{"categories":3109},[137],{"categories":3111},[115],{"categories":3113},[549],{"categories":3115},[152],{"categories":3117},[107],{"categories":3119},[137],{"categories":3121},[107],{"categories":3123},[137],{"categories":3125},[137],{"categories":3127},[],{"categories":3129},[137],{"categories":3131},[],{"categories":3133},[137],{"categories":3135},[115],{"categories":3137},[137],{"categories":3139},[137],{"categories":3141},[137],{"categories":3143},[],{"categories":3145},[137],{"categories":3147},[137],{"categories":3149},[549],{"categories":3151},[],{"categories":3153},[107],{"categories":3155},[462],{"categories":3157},[62],{"categories":3159},[],{"categories":3161},[197],{"categories":3163},[],{"categories":3165},[],{"categories":3167},[107],{"categories":3169},[137],{"categories":3171},[],{"categories":3173},[137],{"categories":3175},[137],{"categories":3177},[112],{"categories":3179},[137],{"categories":3181},[107],{"categories":3183},[107],{"categories":3185},[118],{"categories":3187},[118],{"categories":3189},[118],{"categories":3191},[137],{"categories":3193},[197],{"categories":3195},[107],{"categories":3197},[152],{"categories":3199},[],{"categories":3201},[118],{"categories":3203},[118],{"categories":3205},[462],{"categories":3207},[118],{"categories":3209},[118],{"categories":3211},[112],{"categories":3213},[107],{"categories":3215},[462],{"categories":3217},[137],{"categories":3219},[137],{"categories":3221},[137],{"categories":3223},[137],{"categories":3225},[],{"categories":3227},[112],{"categories":3229},[137],{"categories":3231},[118],{"categories":3233},[],{"categories":3235},[],{"categories":3237},[107],{"categories":3239},[],{"categories":3241},[112],{"categories":3243},[112],{"categories":3245},[112],{"categories":3247},[112],{"categories":3249},[112],{"categories":3251},[112],{"categories":3253},[112],{"categories":3255},[112],{"categories":3257},[],{"categories":3259},[],{"categories":3261},[137],{"categories":3263},[],{"categories":3265},[112],{"categories":3267},[152],{"categories":3269},[152],{"categories":3271},[197],{"categories":3273},[102],{"categories":3275},[],{"categories":3277},[],{"categories":3279},[],{"categories":3281},[118],{"categories":3283},[137],{"categories":3285},[],{"categories":3287},[102],{"categories":3289},[102],{"categories":3291},[118],{"categories":3293},[152],{"categories":3295},[197],{"categories":3297},[118],{"categories":3299},[118],{"categories":3301},[],{"categories":3303},[112],{"categories":3305},[102],{"categories":3307},[102],{"categories":3309},[137],{"categories":3311},[112],{"categories":3313},[62],{"categories":3315},[118],{"categories":3317},[],{"categories":3319},[115],{"categories":3321},[197],{"categories":3323},[107],{"categories":3325},[107],{"categories":3327},[107],{"categories":3329},[462],{"categories":3331},[],{"categories":3333},[112],{"categories":3335},[],{"categories":3337},[112],{"categories":3339},[112],{"categories":3341},[137],{"categories":3343},[137],{"categories":3345},[62],{"categories":3347},[112],{"categories":3349},[62],{"categories":3351},[],{"categories":3353},[112],{"categories":3355},[118],{"categories":3357},[118],{"categories":3359},[118],{"categories":3361},[137],{"categories":3363},[112],{"categories":3365},[137],{"categories":3367},[102],{"categories":3369},[107],{"categories":3371},[118],{"categories":3373},[107],{"categories":3375},[137],{"categories":3377},[],{"categories":3379},[107],{"categories":3381},[112],{"categories":3383},[107],{"categories":3385},[107],{"categories":3387},[107],{"categories":3389},[107],{"categories":3391},[],{"categories":3393},[],{"categories":3395},[107],{"categories":3397},[107],{"categories":3399},[],{"categories":3401},[107],{"categories":3403},[107],{"categories":3405},[137],{"categories":3407},[137],{"categories":3409},[107],{"categories":3411},[107],{"categories":3413},[137],{"categories":3415},[],{"categories":3417},[137],{"categories":3419},[112],{"categories":3421},[137],{"categories":3423},[137],{"categories":3425},[],{"categories":3427},[137],{"categories":3429},[137],{"categories":3431},[137],{"categories":3433},[107],{"categories":3435},[],{"categories":3437},[],{"categories":3439},[],{"categories":3441},[],{"categories":3443},[137],{"categories":3445},[137],{"categories":3447},[],{"categories":3449},[115],{"categories":3451},[107],{"categories":3453},[],{"categories":3455},[],{"categories":3457},[],{"categories":3459},[],{"categories":3461},[],{"categories":3463},[137],{"categories":3465},[],{"categories":3467},[],{"categories":3469},[137],{"categories":3471},[],{"categories":3473},[112],{"categories":3475},[112],{"categories":3477},[112],{"categories":3479},[102],{"categories":3481},[],{"categories":3483},[115],{"categories":3485},[62],{"categories":3487},[62],{"categories":3489},[462],{"categories":3491},[107],{"categories":3493},[],{"categories":3495},[137],{"categories":3497},[137],{"categories":3499},[102],{"categories":3501},[],{"categories":3503},[102],{"categories":3505},[],{"categories":3507},[],{"categories":3509},[],{"categories":3511},[62],{"categories":3513},[112],{"categories":3515},[112],{"categories":3517},[112],{"categories":3519},[112],{"categories":3521},[112],{"categories":3523},[],{"categories":3525},[107],{"categories":3527},[137],{"categories":3529},[137],{"categories":3531},[137],{"categories":3533},[],{"categories":3535},[102],{"categories":3537},[],{"categories":3539},[118],{"categories":3541},[197],{"categories":3543},[118],{"categories":3545},[],{"categories":3547},[],{"categories":3549},[137],{"categories":3551},[112],{"categories":3553},[],{"categories":3555},[137],{"categories":3557},[137],{"categories":3559},[137],{"categories":3561},[112],{"categories":3563},[112],{"categories":3565},[137],{"categories":3567},[197],{"categories":3569},[112],{"categories":3571},[],{"categories":3573},[137],{"categories":3575},[],{"categories":3577},[549],{"categories":3579},[62],{"categories":3581},[197],{"categories":3583},[62],{"categories":3585},[462],{"categories":3587},[137],{"categories":3589},[62],{"categories":3591},[107],{"categories":3593},[462],{"categories":3595},[62],{"categories":3597},[118],{"categories":3599},[118],{"categories":3601},[],{"categories":3603},[62],{"categories":3605},[],{"categories":3607},[152],{"categories":3609},[62],{"categories":3611},[],{"categories":3613},[197],{"categories":3615},[197],{"categories":3617},[549],{"categories":3619},[],{"categories":3621},[137],{"categories":3623},[62],{"categories":3625},[462],{"categories":3627},[112],{"categories":3629},[112],{"categories":3631},[197],{"categories":3633},[137],{"categories":3635},[152],{"categories":3637},[137],{"categories":3639},[],{"categories":3641},[],{"categories":3643},[],{"categories":3645},[115],{"categories":3647},[137],{"categories":3649},[118],{"categories":3651},[62],{"categories":3653},[62],{"categories":3655},[137],{"categories":3657},[115],{"categories":3659},[152],{"categories":3661},[137],{"categories":3663},[62],{"categories":3665},[137],{"categories":3667},[62],{"categories":3669},[152],{"categories":3671},[152],{"categories":3673},[112],{"categories":3675},[152],{"categories":3677},[62],{"categories":3679},[102],{"categories":3681},[62],{"categories":3683},[62],{"categories":3685},[62],{"categories":3687},[62],{"categories":3689},[],{"categories":3691},[107],{"categories":3693},[],{"categories":3695},[197],{"categories":3697},[137],{"categories":3699},[137],{"categories":3701},[],{"categories":3703},[],{"categories":3705},[],{"categories":3707},[137],{"categories":3709},[107],{"categories":3711},[137],{"categories":3713},[137],{"categories":3715},[],{"categories":3717},[137],{"categories":3719},[118],{"categories":3721},[137],{"categories":3723},[137],{"categories":3725},[137],{"categories":3727},[],{"categories":3729},[],{"categories":3731},[],{"categories":3733},[462],{"categories":3735},[462],{"categories":3737},[102],{"categories":3739},[112],{"categories":3741},[102,115],{"categories":3743},[137],{"categories":3745},[107],{"categories":3747},[],{"categories":3749},[118],{"categories":3751},[197],{"categories":3753},[137],{"categories":3755},[62],{"categories":3757},[137],{"categories":3759},[],{"categories":3761},[197],{"categories":3763},[462],{"categories":3765},[112],{"categories":3767},[102],{"categories":3769},[462],{"categories":3771},[112],{"categories":3773},[152],{"categories":3775},[112],{"categories":3777},[152],{"categories":3779},[137],{"categories":3781},[152],{"categories":3783},[152],{"categories":3785},[62],{"categories":3787},[197],{"categories":3789},[137],{"categories":3791},[115],{"categories":3793},[],{"categories":3795},[137],{"categories":3797},[118],{"categories":3799},[197],{"categories":3801},[102],{"categories":3803},[137],{"categories":3805},[197],{"categories":3807},[152],{"categories":3809},[137],{"categories":3811},[137],{"categories":3813},[197],{"categories":3815},[137],{"categories":3817},[152],{"categories":3819},[137],{"categories":3821},[],{"categories":3823},[137],{"categories":3825},[137],{"categories":3827},[137],{"categories":3829},[137],{"categories":3831},[],{"categories":3833},[112],{"categories":3835},[462],{"categories":3837},[],{"categories":3839},[],{"categories":3841},[137],{"categories":3843},[102],{"categories":3845},[115],{"categories":3847},[102],{"categories":3849},[102],{"categories":3851},[112],{"categories":3853},[],{"categories":3855},[137],{"categories":3857},[107],{"categories":3859},[137],{"categories":3861},[137],{"categories":3863},[],{"categories":3865},[112],{"categories":3867},[107],{"categories":3869},[137,462],{"categories":3871},[112,462],{"categories":3873},[462],{"categories":3875},[137],{"categories":3877},[112],{"categories":3879},[112],{"categories":3881},[62],{"categories":3883},[62],{"categories":3885},[62],{"categories":3887},[137],{"categories":3889},[118],{"categories":3891},[112],{"categories":3893},[],{"categories":3895},[462],{"categories":3897},[],{"categories":3899},[462],{"categories":3901},[462],{"categories":3903},[102],{"categories":3905},[112],{"categories":3907},[],{"categories":3909},[462],{"categories":3911},[137],{"categories":3913},[107],{"categories":3915},[137],{"categories":3917},[118],{"categories":3919},[62],{"categories":3921},[62],{"categories":3923},[62],{"categories":3925},[462],{"categories":3927},[],{"categories":3929},[],{"categories":3931},[],{"categories":3933},[137],{"categories":3935},[62],{"categories":3937},[137],{"categories":3939},[62],{"categories":3941},[462],{"categories":3943},[462],{"categories":3945},[137],{"categories":3947},[112],{"categories":3949},[],{"categories":3951},[137],{"categories":3953},[137],{"categories":3955},[137],{"categories":3957},[],{"categories":3959},[],{"categories":3961},[462],{"categories":3963},[462],{"categories":3965},[137,462],{"categories":3967},[112],{"categories":3969},[112],{"categories":3971},[112],{"categories":3973},[112],{"categories":3975},[112],{"categories":3977},[112],{"categories":3979},[],{"categories":3981},[62],{"categories":3983},[137],{"categories":3985},[62],{"categories":3987},[115],{"categories":3989},[137],{"categories":3991},[549],{"categories":3993},[549],{"categories":3995},[112],{"categories":3997},[62],{"categories":3999},[],{"categories":4001},[112],{"categories":4003},[137],{"categories":4005},[],{"categories":4007},[118],{"categories":4009},[],{"categories":4011},[137],{"categories":4013},[112],{"categories":4015},[107],{"categories":4017},[137],{"categories":4019},[],{"categories":4021},[],{"categories":4023},[118],{"categories":4025},[118],{"categories":4027},[152],{"categories":4029},[118],{"categories":4031},[112],{"categories":4033},[],{"categories":4035},[112],{"categories":4037},[107],{"categories":4039},[137],{"categories":4041},[137],{"categories":4043},[],{"categories":4045},[137],{"categories":4047},[152],{"categories":4049},[137],{"categories":4051},[],{"categories":4053},[197],{"categories":4055},[62],{"categories":4057},[62],{"categories":4059},[102],{"categories":4061},[102],{"categories":4063},[102],{"categories":4065},[112],{"categories":4067},[102],{"categories":4069},[112],{"categories":4071},[462],{"categories":4073},[549],{"categories":4075},[107],{"categories":4077},[107],{"categories":4079},[107],{"categories":4081},[462],{"categories":4083},[107,102],{"categories":4085},[197],{"categories":4087},[112],{"categories":4089},[],{"categories":4091},[137],{"categories":4093},[],{"categories":4095},[62],{"categories":4097},[197],{"categories":4099},[118],{"categories":4101},[62],{"categories":4103},[152],{"categories":4105},[],{"categories":4107},[112],{"categories":4109},[],{"categories":4111},[549],{"categories":4113},[],{"categories":4115},[118],{"categories":4117},[118],{"categories":4119},[197],{"categories":4121},[],{"categories":4123},[137],{"categories":4125},[197],{"categories":4127},[],{"categories":4129},[137],{"categories":4131},[137],{"categories":4133},[],{"categories":4135},[152],{"categories":4137},[137],{"categories":4139},[],{"categories":4141},[137],{"categories":4143},[],{"categories":4145},[],{"categories":4147},[112],{"categories":4149},[112],{"categories":4151},[],{"categories":4153},[62],{"categories":4155},[62],{"categories":4157},[62],{"categories":4159},[137,112],{"categories":4161},[112],{"categories":4163},[112],{"categories":4165},[112],{"categories":4167},[197],{"categories":4169},[197],{"categories":4171},[],{"categories":4173},[107],{"categories":4175},[137],{"categories":4177},[197],{"categories":4179},[197],{"categories":4181},[107],{"categories":4183},[102],{"categories":4185},[112],{"categories":4187},[62],{"categories":4189},[137],{"categories":4191},[137],{"categories":4193},[112],{"categories":4195},[62],{"categories":4197},[112],{"categories":4199},[137],{"categories":4201},[115],{"categories":4203},[],{"categories":4205},[137],{"categories":4207},[],{"categories":4209},[137],{"categories":4211},[137],{"categories":4213},[62],{"categories":4215},[],{"categories":4217},[197],{"categories":4219},[137],{"categories":4221},[112],{"categories":4223},[112],{"categories":4225},[62],{"categories":4227},[152],{"categories":4229},[152],{"categories":4231},[107],{"categories":4233},[137],{"categories":4235},[112],{"categories":4237},[],{"categories":4239},[112],{"categories":4241},[137],{"categories":4243},[107],{"categories":4245},[137],{"categories":4247},[137],{"categories":4249},[137],{"categories":4251},[112],{"categories":4253},[197],{"categories":4255},[137],{"categories":4257},[118],{"categories":4259},[137],{"categories":4261},[137],{"categories":4263},[137],{"categories":4265},[137],{"categories":4267},[],{"categories":4269},[137],{"categories":4271},[197],{"categories":4273},[118],{"categories":4275},[137],{"categories":4277},[118],{"categories":4279},[],{"categories":4281},[],{"categories":4283},[],{"categories":4285},[137],{"categories":4287},[],{"categories":4289},[],{"categories":4291},[],{"categories":4293},[],{"categories":4295},[112],{"categories":4297},[152],{"categories":4299},[112],{"categories":4301},[112],{"categories":4303},[62],{"categories":4305},[102],{"categories":4307},[137],{"categories":4309},[137],{"categories":4311},[137],{"categories":4313},[102],{"categories":4315},[152],{"categories":4317},[],{"categories":4319},[197],{"categories":4321},[115],{"categories":4323},[137],{"categories":4325},[118],{"categories":4327},[152],{"categories":4329},[152],{"categories":4331},[549],{"categories":4333},[112],{"categories":4335},[137],{"categories":4337},[137],{"categories":4339},[152],{"categories":4341},[137],{"categories":4343},[],{"categories":4345},[],{"categories":4347},[462],{"categories":4349},[118],{"categories":4351},[152],{"categories":4353},[137],{"categories":4355},[107],{"categories":4357},[152],{"categories":4359},[102],{"categories":4361},[112],{"categories":4363},[112],{"categories":4365},[107],{"categories":4367},[137],{"categories":4369},[],{"categories":4371},[],{"categories":4373},[],{"categories":4375},[137],{"categories":4377},[],{"categories":4379},[107],{"categories":4381},[],{"categories":4383},[137],{"categories":4385},[],{"categories":4387},[107],{"categories":4389},[112],{"categories":4391},[137],{"categories":4393},[462],{"categories":4395},[137],{"categories":4397},[152],{"categories":4399},[137],{"categories":4401},[152],{"categories":4403},[152],{"categories":4405},[],{"categories":4407},[],{"categories":4409},[152],{"categories":4411},[152],{"categories":4413},[152],{"categories":4415},[],{"categories":4417},[152],{"categories":4419},[112],{"categories":4421},[112],{"categories":4423},[],{"categories":4425},[137],{"categories":4427},[115],{"categories":4429},[197],{"categories":4431},[137],{"categories":4433},[],{"categories":4435},[152],{"categories":4437},[137],{"categories":4439},[549],{"categories":4441},[152],{"categories":4443},[152],{"categories":4445},[115],{"categories":4447},[62],{"categories":4449},[62],{"categories":4451},[],{"categories":4453},[62],{"categories":4455},[137],{"categories":4457},[],{"categories":4459},[],{"categories":4461},[112],{"categories":4463},[],{"categories":4465},[112],{"categories":4467},[112],{"categories":4469},[107],{"categories":4471},[137],{"categories":4473},[107],{"categories":4475},[152],{"categories":4477},[107],{"categories":4479},[62],{"categories":4481},[62],{"categories":4483},[62],{"categories":4485},[107],{"categories":4487},[137],{"categories":4489},[112],{"categories":4491},[462],{"categories":4493},[102],{"categories":4495},[462],{"categories":4497},[462],{"categories":4499},[62],{"categories":4501},[462],{"categories":4503},[462],[4505,4768,5263,5329],{"id":4506,"title":4507,"ai":4508,"body":4513,"categories":4749,"created_at":63,"date_modified":63,"description":55,"extension":64,"faq":63,"featured":65,"kicker_label":63,"meta":4750,"navigation":82,"path":4755,"published_at":4756,"question":63,"scraped_at":4757,"seo":4758,"sitemap":4759,"source_id":4760,"source_name":4761,"source_type":90,"source_url":4762,"stem":4763,"tags":4764,"thumbnail_url":63,"tldr":4765,"tweet":63,"unknown_tags":4766,"__hash__":4767},"summaries\u002Fsummaries\u002Fpython-variables-sticky-notes-on-shared-objects-summary.md","Python Variables: Sticky Notes on Shared Objects",{"provider":7,"model":8,"input_tokens":4509,"output_tokens":4510,"processing_time_ms":4511,"cost_usd":4512},5293,1238,13529,0.0016551,{"type":14,"value":4514,"toc":4744},[4515,4519,4531,4534,4540,4583,4588,4622,4625,4629,4644,4649,4689,4696,4700,4707,4735,4740],[17,4516,4518],{"id":4517},"names-bind-to-objects-not-values","Names Bind to Objects, Not Values",[22,4520,4521,4522,4526,4527,4530],{},"Python lacks variables as fixed memory boxes like in C or Java. Instead, everything is an object in memory, and variables are labels (sticky notes) pointing to those objects. Assigning ",[4523,4524,4525],"code",{},"x = [1, 2, 3]"," creates a list object (e.g., at address 0x1234) and binds the name ",[4523,4528,4529],{},"x"," to it. Passing to a function creates a new local label bound to the same object—no copy occurs.",[22,4532,4533],{},"This 'call by sharing' means mutations to mutable objects (lists, dicts) affect all bound names, but rebinding a local name inside a function doesn't alter the caller's object.",[22,4535,4536],{},[4537,4538,4539],"strong",{},"mutate example:",[4541,4542,4546],"pre",{"className":4543,"code":4544,"language":4545,"meta":55,"style":55},"language-python shiki shiki-themes github-light github-dark","def mutate(lst):\n    lst.append(99)  # Mutates shared object\n\nx = [10, 20]\nmutate(x)\n# x now [10, 20, 99]—original object changed\n","python",[4523,4547,4548,4556,4561,4566,4571,4577],{"__ignoreMap":55},[4549,4550,4553],"span",{"class":4551,"line":4552},"line",1,[4549,4554,4555],{},"def mutate(lst):\n",[4549,4557,4558],{"class":4551,"line":56},[4549,4559,4560],{},"    lst.append(99)  # Mutates shared object\n",[4549,4562,4563],{"class":4551,"line":78},[4549,4564,4565],{"emptyLinePlaceholder":82},"\n",[4549,4567,4568],{"class":4551,"line":79},[4549,4569,4570],{},"x = [10, 20]\n",[4549,4572,4574],{"class":4551,"line":4573},5,[4549,4575,4576],{},"mutate(x)\n",[4549,4578,4580],{"class":4551,"line":4579},6,[4549,4581,4582],{},"# x now [10, 20, 99]—original object changed\n",[22,4584,4585],{},[4537,4586,4587],{},"rebind example:",[4541,4589,4591],{"className":4543,"code":4590,"language":4545,"meta":55,"style":55},"def rebind(lst):\n    lst = [1, 2, 3]  # Local label now points to new object\n\nx = [10, 20, 99]\nrebind(x)\n# x unchanged—original object untouched\n",[4523,4592,4593,4598,4603,4607,4612,4617],{"__ignoreMap":55},[4549,4594,4595],{"class":4551,"line":4552},[4549,4596,4597],{},"def rebind(lst):\n",[4549,4599,4600],{"class":4551,"line":56},[4549,4601,4602],{},"    lst = [1, 2, 3]  # Local label now points to new object\n",[4549,4604,4605],{"class":4551,"line":78},[4549,4606,4565],{"emptyLinePlaceholder":82},[4549,4608,4609],{"class":4551,"line":79},[4549,4610,4611],{},"x = [10, 20, 99]\n",[4549,4613,4614],{"class":4551,"line":4573},[4549,4615,4616],{},"rebind(x)\n",[4549,4618,4619],{"class":4551,"line":4579},[4549,4620,4621],{},"# x unchanged—original object untouched\n",[22,4623,4624],{},"Rebinding peels the local label off the shared object and attaches it to a new one, leaving external references intact.",[17,4626,4628],{"id":4627},"mutable-defaults-create-permanent-shared-state","Mutable Defaults Create Permanent Shared State",[22,4630,4631,4632,4635,4636,4639,4640,4643],{},"Functions are objects with defaults evaluated ",[4537,4633,4634],{},"once at definition time",", stored in ",[4523,4637,4638],{},".__defaults__",". A mutable default like ",[4523,4641,4642],{},"items=[]"," creates one list object bound to the function forever—GC can't reclaim it while the function lives.",[22,4645,4646],{},[4537,4647,4648],{},"Buggy example:",[4541,4650,4652],{"className":4543,"code":4651,"language":4545,"meta":55,"style":55},"def add_item(item, items=[]):\n    items.append(item)\n    return items\n\nprint(add_item(1))      # [1]—mutates function's default\nprint(add_item(2, []))  # [2]—uses new list\nprint(add_item(\"a\"))   # [1, 'a']—reuses mutated default\n",[4523,4653,4654,4659,4664,4669,4673,4678,4683],{"__ignoreMap":55},[4549,4655,4656],{"class":4551,"line":4552},[4549,4657,4658],{},"def add_item(item, items=[]):\n",[4549,4660,4661],{"class":4551,"line":56},[4549,4662,4663],{},"    items.append(item)\n",[4549,4665,4666],{"class":4551,"line":78},[4549,4667,4668],{},"    return items\n",[4549,4670,4671],{"class":4551,"line":79},[4549,4672,4565],{"emptyLinePlaceholder":82},[4549,4674,4675],{"class":4551,"line":4573},[4549,4676,4677],{},"print(add_item(1))      # [1]—mutates function's default\n",[4549,4679,4680],{"class":4551,"line":4579},[4549,4681,4682],{},"print(add_item(2, []))  # [2]—uses new list\n",[4549,4684,4686],{"class":4551,"line":4685},7,[4549,4687,4688],{},"print(add_item(\"a\"))   # [1, 'a']—reuses mutated default\n",[22,4690,4691,4692,4695],{},"First call mutates the shared default list. Later calls without ",[4523,4693,4694],{},"items"," reuse it, accumulating data across invocations. In servers or workers, this leaks state between requests\u002Fjobs, manifesting as ghost bugs like User B seeing User A's data.",[17,4697,4699],{"id":4698},"defensive-fix-none-instantiation-prevents-shared-state","Defensive Fix: None + Instantiation Prevents Shared State",[22,4701,4702,4703,4706],{},"Replace mutable defaults with ",[4523,4704,4705],{},"None",", then create fresh objects inside the function at call time:",[4541,4708,4710],{"className":4543,"code":4709,"language":4545,"meta":55,"style":55},"def add_item(item, items=None):\n    if items is None:\n        items = []  # New list per call\n    items.append(item)\n    return items\n",[4523,4711,4712,4717,4722,4727,4731],{"__ignoreMap":55},[4549,4713,4714],{"class":4551,"line":4552},[4549,4715,4716],{},"def add_item(item, items=None):\n",[4549,4718,4719],{"class":4551,"line":56},[4549,4720,4721],{},"    if items is None:\n",[4549,4723,4724],{"class":4551,"line":78},[4549,4725,4726],{},"        items = []  # New list per call\n",[4549,4728,4729],{"class":4551,"line":79},[4549,4730,4663],{},[4549,4732,4733],{"class":4551,"line":4573},[4549,4734,4668],{},[22,4736,4737,4739],{},[4523,4738,4705],{}," is immutable\u002Fsafe. Instantiation happens on the heap each run, ensuring no shared state. Enforce via linters like Flake8's B006 banning mutable defaults. This model resolves 90% of Python's 'weirdness' for production code.",[4741,4742,4743],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":55,"searchDepth":56,"depth":56,"links":4745},[4746,4747,4748],{"id":4517,"depth":56,"text":4518},{"id":4627,"depth":56,"text":4628},{"id":4698,"depth":56,"text":4699},[62],{"content_references":4751,"triage":4752},[],{"relevance":79,"novelty":78,"quality":79,"actionability":79,"composite":4753,"reasoning":4754},3.8,"Category: Software Engineering. The article provides a deep dive into Python's variable handling, addressing a common pain point for developers regarding mutable defaults and shared state. It offers practical solutions to avoid bugs, making it actionable for developers looking to improve their code quality.","\u002Fsummaries\u002Fpython-variables-sticky-notes-on-shared-objects-summary","2026-05-05 09:11:46","2026-05-05 16:09:35",{"title":4507,"description":55},{"loc":4755},"565cd461d5e56e35","Data and Beyond","https:\u002F\u002Fmedium.com\u002Fdata-and-beyond\u002Fpythons-silent-production-killer-why-pass-by-reference-is-a-lie-b7f1f5ce7930?source=rss----b680b860beb1---4","summaries\u002Fpython-variables-sticky-notes-on-shared-objects-summary",[4545,94,95],"Forget 'pass-by-reference'—Python variables are labels binding to objects via 'call by sharing'. Mutable defaults like [] create shared state across calls, causing ghost bugs; fix by using None and instantiating inside functions.",[95],"MwK9u2vDTvBxo38AoHlSlMgR11futZ32lvvQII-4OP8",{"id":4769,"title":4770,"ai":4771,"body":4776,"categories":5244,"created_at":63,"date_modified":63,"description":55,"extension":64,"faq":63,"featured":65,"kicker_label":63,"meta":5245,"navigation":82,"path":5249,"published_at":5250,"question":63,"scraped_at":5251,"seo":5252,"sitemap":5253,"source_id":5254,"source_name":5255,"source_type":90,"source_url":5256,"stem":5257,"tags":5258,"thumbnail_url":63,"tldr":5260,"tweet":63,"unknown_tags":5261,"__hash__":5262},"summaries\u002Fsummaries\u002Fscale-compose-nav-with-nested-graphs-and-state-lay-summary.md","Scale Compose Nav with Nested Graphs and State Layers",{"provider":7,"model":8,"input_tokens":4772,"output_tokens":4773,"processing_time_ms":4774,"cost_usd":4775},6768,1765,14725,0.00221345,{"type":14,"value":4777,"toc":5238},[4778,4782,4785,4788,4854,4857,4933,4936,4939,4972,4976,4979,4982,5006,5035,5047,5050,5054,5061,5117,5120,5149,5152,5156,5179,5218,5236],[17,4779,4781],{"id":4780},"nested-graphs-isolate-features-and-simplify-reasoning","Nested Graphs Isolate Features and Simplify Reasoning",[22,4783,4784],{},"Flat NavHosts with dozens of composables become unmaintainable—files bloat, flows interfere, back stacks confuse, and refactors risk breakage. Instead, centralize ownership in one root NavHost that only defines major app flows (e.g., auth, main), then nest separate graphs per feature.",[22,4786,4787],{},"Root setup:",[4541,4789,4793],{"className":4790,"code":4791,"language":4792,"meta":55,"style":55},"language-kotlin shiki shiki-themes github-light github-dark","@Composable\nfun AppNavHost(navController: NavHostController) {\n    NavHost(\n        navController = navController,\n        startDestination = Graph.AUTH,\n        route = Graph.ROOT\n    ) {\n        authNavGraph(navController)\n        mainNavGraph(navController)\n    }\n}\n","kotlin",[4523,4794,4795,4800,4805,4810,4815,4820,4825,4830,4836,4842,4848],{"__ignoreMap":55},[4549,4796,4797],{"class":4551,"line":4552},[4549,4798,4799],{},"@Composable\n",[4549,4801,4802],{"class":4551,"line":56},[4549,4803,4804],{},"fun AppNavHost(navController: NavHostController) {\n",[4549,4806,4807],{"class":4551,"line":78},[4549,4808,4809],{},"    NavHost(\n",[4549,4811,4812],{"class":4551,"line":79},[4549,4813,4814],{},"        navController = navController,\n",[4549,4816,4817],{"class":4551,"line":4573},[4549,4818,4819],{},"        startDestination = Graph.AUTH,\n",[4549,4821,4822],{"class":4551,"line":4579},[4549,4823,4824],{},"        route = Graph.ROOT\n",[4549,4826,4827],{"class":4551,"line":4685},[4549,4828,4829],{},"    ) {\n",[4549,4831,4833],{"class":4551,"line":4832},8,[4549,4834,4835],{},"        authNavGraph(navController)\n",[4549,4837,4839],{"class":4551,"line":4838},9,[4549,4840,4841],{},"        mainNavGraph(navController)\n",[4549,4843,4845],{"class":4551,"line":4844},10,[4549,4846,4847],{},"    }\n",[4549,4849,4851],{"class":4551,"line":4850},11,[4549,4852,4853],{},"}\n",[22,4855,4856],{},"Feature graphs group related screens:",[4541,4858,4860],{"className":4790,"code":4859,"language":4792,"meta":55,"style":55},"fun NavGraphBuilder.authNavGraph(navController: NavHostController) {\n    navigation(startDestination = \"login\", route = Graph.AUTH) {\n        composable(\"login\") {\n            LoginScreen(\n                onLoginSuccess = {\n                    navController.navigate(Graph.MAIN) {\n                        popUpTo(Graph.AUTH) { inclusive = true }\n                    }\n                }\n            )\n        }\n        \u002F\u002F signup composable...\n    }\n}\n",[4523,4861,4862,4867,4872,4877,4882,4887,4892,4897,4902,4907,4912,4917,4923,4928],{"__ignoreMap":55},[4549,4863,4864],{"class":4551,"line":4552},[4549,4865,4866],{},"fun NavGraphBuilder.authNavGraph(navController: NavHostController) {\n",[4549,4868,4869],{"class":4551,"line":56},[4549,4870,4871],{},"    navigation(startDestination = \"login\", route = Graph.AUTH) {\n",[4549,4873,4874],{"class":4551,"line":78},[4549,4875,4876],{},"        composable(\"login\") {\n",[4549,4878,4879],{"class":4551,"line":79},[4549,4880,4881],{},"            LoginScreen(\n",[4549,4883,4884],{"class":4551,"line":4573},[4549,4885,4886],{},"                onLoginSuccess = {\n",[4549,4888,4889],{"class":4551,"line":4579},[4549,4890,4891],{},"                    navController.navigate(Graph.MAIN) {\n",[4549,4893,4894],{"class":4551,"line":4685},[4549,4895,4896],{},"                        popUpTo(Graph.AUTH) { inclusive = true }\n",[4549,4898,4899],{"class":4551,"line":4832},[4549,4900,4901],{},"                    }\n",[4549,4903,4904],{"class":4551,"line":4838},[4549,4905,4906],{},"                }\n",[4549,4908,4909],{"class":4551,"line":4844},[4549,4910,4911],{},"            )\n",[4549,4913,4914],{"class":4551,"line":4850},[4549,4915,4916],{},"        }\n",[4549,4918,4920],{"class":4551,"line":4919},12,[4549,4921,4922],{},"        \u002F\u002F signup composable...\n",[4549,4924,4926],{"class":4551,"line":4925},13,[4549,4927,4847],{},[4549,4929,4931],{"class":4551,"line":4930},14,[4549,4932,4853],{},[22,4934,4935],{},"This keeps graphs small, prevents cross-flow pollution, and makes back stack behavior predictable—e.g., clear auth stack on login success.",[22,4937,4938],{},"Centralize routes with sealed classes to avoid string typos:",[4541,4940,4942],{"className":4790,"code":4941,"language":4792,"meta":55,"style":55},"sealed class AppScreen(val route: String) {\n    data object Home : AppScreen(\"home\")\n    data object UserDetails : AppScreen(\"user\u002F{userId}\") {\n        fun createRoute(userId: Long) = \"user\u002F$userId\"\n    }\n}\n",[4523,4943,4944,4949,4954,4959,4964,4968],{"__ignoreMap":55},[4549,4945,4946],{"class":4551,"line":4552},[4549,4947,4948],{},"sealed class AppScreen(val route: String) {\n",[4549,4950,4951],{"class":4551,"line":56},[4549,4952,4953],{},"    data object Home : AppScreen(\"home\")\n",[4549,4955,4956],{"class":4551,"line":78},[4549,4957,4958],{},"    data object UserDetails : AppScreen(\"user\u002F{userId}\") {\n",[4549,4960,4961],{"class":4551,"line":79},[4549,4962,4963],{},"        fun createRoute(userId: Long) = \"user\u002F$userId\"\n",[4549,4965,4966],{"class":4551,"line":4573},[4549,4967,4847],{},[4549,4969,4970],{"class":4551,"line":4579},[4549,4971,4853],{},[17,4973,4975],{"id":4974},"layered-state-keeps-navigation-stable","Layered State Keeps Navigation Stable",[22,4977,4978],{},"Navigation only handles movement and small primitives (IDs, filters, flags)—never full objects, which fail serialization and stale quickly. Load data in destinations.",[22,4980,4981],{},"Three layers:",[4983,4984,4985,4996],"ol",{},[4986,4987,4988,4991,4992,4995],"li",{},[4537,4989,4990],{},"Nav args",": Primitives only, e.g., ",[4523,4993,4994],{},"navController.navigate(UserDetails.createRoute(42L))",".",[4986,4997,4998,5001,5002,5005],{},[4537,4999,5000],{},"ViewModels",": Screen\u002Fbusiness state with API calls, loading\u002Ferrors. Extract args via ",[4523,5003,5004],{},"SavedStateHandle",":",[4541,5007,5009],{"className":4790,"code":5008,"language":4792,"meta":55,"style":55},"class UserDetailsViewModel(savedStateHandle: SavedStateHandle) : ViewModel() {\n    private val userId: Long = checkNotNull(savedStateHandle[\"userId\"])\n    val uiState = MutableStateFlow(UserDetailsUiState())\n    \u002F\u002F Load data in init...\n}\n",[4523,5010,5011,5016,5021,5026,5031],{"__ignoreMap":55},[4549,5012,5013],{"class":4551,"line":4552},[4549,5014,5015],{},"class UserDetailsViewModel(savedStateHandle: SavedStateHandle) : ViewModel() {\n",[4549,5017,5018],{"class":4551,"line":56},[4549,5019,5020],{},"    private val userId: Long = checkNotNull(savedStateHandle[\"userId\"])\n",[4549,5022,5023],{"class":4551,"line":78},[4549,5024,5025],{},"    val uiState = MutableStateFlow(UserDetailsUiState())\n",[4549,5027,5028],{"class":4551,"line":79},[4549,5029,5030],{},"    \u002F\u002F Load data in init...\n",[4549,5032,5033],{"class":4551,"line":4573},[4549,5034,4853],{},[4983,5036,5037],{"start":78},[4986,5038,5039,5042,5043,5046],{},[4537,5040,5041],{},"Composable state",": UI-only like ",[4523,5044,5045],{},"rememberSaveable { mutableStateOf(\"\") }"," for inputs\u002Ftoggles.",[22,5048,5049],{},"This separation makes nav robust: pass ID, fetch fresh data, avoid fragile deep passing.",[17,5051,5053],{"id":5052},"route-level-wiring-and-tab-polish","Route-Level Wiring and Tab Polish",[22,5055,5056,5057,5060],{},"Avoid scattering ",[4523,5058,5059],{},"NavController"," in leaf UI—pass lambdas from route composables for reusable, testable screens:",[4541,5062,5064],{"className":4790,"code":5063,"language":4792,"meta":55,"style":55},"@Composable\nfun HomeRoute(navController: NavHostController) {\n    HomeScreen(\n        onOpenSettings = { navController.navigate(\"settings\") },\n        onOpenUser = { id -> navController.navigate(\"user\u002F$id\") }\n    )\n}\n@Composable\nfun HomeScreen(onOpenSettings: () -> Unit, onOpenUser: (Long) -> Unit) {\n    \u002F\u002F Buttons call lambdas\n}\n",[4523,5065,5066,5070,5075,5080,5085,5090,5095,5099,5103,5108,5113],{"__ignoreMap":55},[4549,5067,5068],{"class":4551,"line":4552},[4549,5069,4799],{},[4549,5071,5072],{"class":4551,"line":56},[4549,5073,5074],{},"fun HomeRoute(navController: NavHostController) {\n",[4549,5076,5077],{"class":4551,"line":78},[4549,5078,5079],{},"    HomeScreen(\n",[4549,5081,5082],{"class":4551,"line":79},[4549,5083,5084],{},"        onOpenSettings = { navController.navigate(\"settings\") },\n",[4549,5086,5087],{"class":4551,"line":4573},[4549,5088,5089],{},"        onOpenUser = { id -> navController.navigate(\"user\u002F$id\") }\n",[4549,5091,5092],{"class":4551,"line":4579},[4549,5093,5094],{},"    )\n",[4549,5096,5097],{"class":4551,"line":4685},[4549,5098,4853],{},[4549,5100,5101],{"class":4551,"line":4832},[4549,5102,4799],{},[4549,5104,5105],{"class":4551,"line":4838},[4549,5106,5107],{},"fun HomeScreen(onOpenSettings: () -> Unit, onOpenUser: (Long) -> Unit) {\n",[4549,5109,5110],{"class":4551,"line":4844},[4549,5111,5112],{},"    \u002F\u002F Buttons call lambdas\n",[4549,5114,5115],{"class":4551,"line":4850},[4549,5116,4853],{},[22,5118,5119],{},"For bottom tabs, use this nav spec to avoid duplicates, save\u002Frestore state:",[4541,5121,5123],{"className":4790,"code":5122,"language":4792,"meta":55,"style":55},"navController.navigate(route) {\n    popUpTo(navController.graph.startDestinationId) { saveState = true }\n    launchSingleTop = true\n    restoreState = true\n}\n",[4523,5124,5125,5130,5135,5140,5145],{"__ignoreMap":55},[4549,5126,5127],{"class":4551,"line":4552},[4549,5128,5129],{},"navController.navigate(route) {\n",[4549,5131,5132],{"class":4551,"line":56},[4549,5133,5134],{},"    popUpTo(navController.graph.startDestinationId) { saveState = true }\n",[4549,5136,5137],{"class":4551,"line":78},[4549,5138,5139],{},"    launchSingleTop = true\n",[4549,5141,5142],{"class":4551,"line":79},[4549,5143,5144],{},"    restoreState = true\n",[4549,5146,5147],{"class":4551,"line":4573},[4549,5148,4853],{},[22,5150,5151],{},"This preserves tab state across switches, polishing UX.",[17,5153,5155],{"id":5154},"full-stack-ties-it-together","Full Stack Ties It Together",[22,5157,5158,5159,5162,5163,5166,5167,5170,5171,5174,5175,5178],{},"Thin ",[4523,5160,5161],{},"MainActivity"," sets ",[4523,5164,5165],{},"App()"," with ",[4523,5168,5169],{},"rememberNavController()",". ",[4523,5172,5173],{},"AppNavHost"," wires root. Graphs use route sealed interfaces (e.g., ",[4523,5176,5177],{},"AuthDest.Login.route","). UserDetails handles args:",[4541,5180,5182],{"className":4790,"code":5181,"language":4792,"meta":55,"style":55},"composable(\n    route = MainDest.UserDetails.route,\n    arguments = listOf(navArgument(MainDest.UserDetails.ARG) { type = NavType.LongType })\n) { entry ->\n    val userId = entry.arguments?.getLong(MainDest.UserDetails.ARG) ?: return@composable\n    UserDetailsRoute(userId)\n}\n",[4523,5183,5184,5189,5194,5199,5204,5209,5214],{"__ignoreMap":55},[4549,5185,5186],{"class":4551,"line":4552},[4549,5187,5188],{},"composable(\n",[4549,5190,5191],{"class":4551,"line":56},[4549,5192,5193],{},"    route = MainDest.UserDetails.route,\n",[4549,5195,5196],{"class":4551,"line":78},[4549,5197,5198],{},"    arguments = listOf(navArgument(MainDest.UserDetails.ARG) { type = NavType.LongType })\n",[4549,5200,5201],{"class":4551,"line":79},[4549,5202,5203],{},") { entry ->\n",[4549,5205,5206],{"class":4551,"line":4573},[4549,5207,5208],{},"    val userId = entry.arguments?.getLong(MainDest.UserDetails.ARG) ?: return@composable\n",[4549,5210,5211],{"class":4551,"line":4579},[4549,5212,5213],{},"    UserDetailsRoute(userId)\n",[4549,5215,5216],{"class":4551,"line":4685},[4549,5217,4853],{},[22,5219,5220,5223,5224,5227,5228,5231,5232,5235],{},[4523,5221,5222],{},"UserDetailsRoute"," injects ",[4523,5225,5226],{},"viewModel()",", collects ",[4523,5229,5230],{},"uiState",", passes to pure ",[4523,5233,5234],{},"UserDetailsScreen",". Add screens freely without central chaos.",[4741,5237,4743],{},{"title":55,"searchDepth":56,"depth":56,"links":5239},[5240,5241,5242,5243],{"id":4780,"depth":56,"text":4781},{"id":4974,"depth":56,"text":4975},{"id":5052,"depth":56,"text":5053},{"id":5154,"depth":56,"text":5155},[62],{"content_references":5246,"triage":5247},[],{"relevance":79,"novelty":78,"quality":79,"actionability":79,"composite":4753,"reasoning":5248},"Category: Software Engineering. The article provides a practical approach to scaling navigation in Jetpack Compose, addressing a common pain point for developers managing complex app architectures. It includes specific code examples and a structured method for implementing nested graphs and layered state, making it actionable for developers looking to improve their navigation systems.","\u002Fsummaries\u002Fscale-compose-nav-with-nested-graphs-and-state-lay-summary","2026-05-01 20:30:17","2026-05-03 17:00:35",{"title":4770,"description":55},{"loc":5249},"8d5558e87957c77a","Level Up Coding","https:\u002F\u002Flevelup.gitconnected.com\u002Fscaling-navigation-in-jetpack-compose-from-simple-apps-to-real-world-architecture-c6cf897f5a58?source=rss----5517fd7b58a6---4","summaries\u002Fscale-compose-nav-with-nested-graphs-and-state-lay-summary",[94,95,5259],"dev-productivity","For apps with 20-50 screens, use one root NavHost with nested feature graphs, centralized route objects, and layered state (nav args for IDs, ViewModels for data, composables for UI) to prevent navigation fragility.",[95,5259],"CoQb8TCPP-CYo--uyqTWtT_0cvw4T-VgKjS2HCWABR4",{"id":5264,"title":5265,"ai":5266,"body":5271,"categories":5312,"created_at":63,"date_modified":63,"description":55,"extension":64,"faq":63,"featured":65,"kicker_label":63,"meta":5313,"navigation":82,"path":5317,"published_at":5318,"question":63,"scraped_at":5319,"seo":5320,"sitemap":5321,"source_id":5322,"source_name":5255,"source_type":90,"source_url":5323,"stem":5324,"tags":5325,"thumbnail_url":63,"tldr":5326,"tweet":63,"unknown_tags":5327,"__hash__":5328},"summaries\u002Fsummaries\u002Fsecond-frameworks-reveal-timeless-software-problem-summary.md","Second Frameworks Reveal Timeless Software Problems",{"provider":7,"model":8,"input_tokens":5267,"output_tokens":5268,"processing_time_ms":5269,"cost_usd":5270},3897,1110,12769,0.00082755,{"type":14,"value":5272,"toc":5307},[5273,5277,5289,5293,5300,5304],[17,5274,5276],{"id":5275},"framework-mastery-creates-false-security","Framework Mastery Creates False Security",[22,5278,5279,5280,5284,5285,5288],{},"Deep expertise in a single stack like React + Node.js delivers patterns (useState, useEffect, component composition) and ecosystem knowledge (Promises, async\u002Fawait, Express middleware). But this comfort hides a risk: knowledge ties too closely to the tool. If React vanished, you'd rebuild from near-zero because you know ",[5281,5282,5283],"em",{},"how"," React solves problems, not ",[5281,5286,5287],{},"what"," core problems it addresses. The author's React proficiency let them build anything needed—yet sparked doubt: \"Am I learning tools, or learning to build software?\"",[17,5290,5292],{"id":5291},"switching-stacks-uncovers-invariants","Switching Stacks Uncovers Invariants",[22,5294,5295,5296,5299],{},"To break free, deliberately build with unfamiliar tools: Golang backend + Svelte frontend. This wasn't about mastering Go\u002FSvelte syntax—those are secondary. The real gain: reframing questions from \"How does React do this?\" to \"What problem is React solving?\" A second framework forces recognition of ",[4537,5297,5298],{},"invariant problems","—challenges like state management, side effects, async flows, and composition that persist across languages and frameworks. Evidence from the switch: prior React knowledge didn't evaporate but illuminated universals, making new tools click faster.",[17,5301,5303],{"id":5302},"actionable-shift-prioritize-problems-over-tools","Actionable Shift: Prioritize Problems Over Tools",[22,5305,5306],{},"Target invariant understanding to future-proof skills. Don't chase endless frameworks; use a second (or third) to map how they tackle the same fundamentals differently. Outcome: transferable expertise where any stack becomes a means to solve enduring problems, not an end. This approach turns framework-hopping into leveraged learning, avoiding the trap of siloed knowledge.",{"title":55,"searchDepth":56,"depth":56,"links":5308},[5309,5310,5311],{"id":5275,"depth":56,"text":5276},{"id":5291,"depth":56,"text":5292},{"id":5302,"depth":56,"text":5303},[62],{"content_references":5314,"triage":5315},[],{"relevance":79,"novelty":78,"quality":79,"actionability":79,"composite":4753,"reasoning":5316},"Category: Software Engineering. The article discusses the importance of understanding invariant problems across different frameworks, which directly addresses a pain point for developers who may feel limited by their knowledge of a single stack. It provides actionable advice on prioritizing problem-solving over tool mastery, making it relevant and practical for the target audience.","\u002Fsummaries\u002Fsecond-frameworks-reveal-timeless-software-problem-summary","2026-04-25 00:19:15","2026-04-26 17:22:13",{"title":5265,"description":55},{"loc":5317},"e645f16bb1455d6a","https:\u002F\u002Flevelup.gitconnected.com\u002Fyour-second-framework-teaches-you-more-than-your-first-da5c63f2c99f?source=rss----5517fd7b58a6---4","summaries\u002Fsecond-frameworks-reveal-timeless-software-problem-summary",[94,95,5259],"Mastering one framework teaches tools; a second exposes invariant problems that every stack solves, building transferable software skills.",[95,5259],"kRqvTmecWfnCdYjjwR0KFkUdDRkDGbgBBhmnkdOsTwk",{"id":5330,"title":5331,"ai":5332,"body":5337,"categories":5439,"created_at":63,"date_modified":63,"description":55,"extension":64,"faq":63,"featured":65,"kicker_label":63,"meta":5440,"navigation":82,"path":5451,"published_at":5452,"question":63,"scraped_at":5453,"seo":5454,"sitemap":5455,"source_id":5456,"source_name":5457,"source_type":90,"source_url":5458,"stem":5459,"tags":5460,"thumbnail_url":63,"tldr":5462,"tweet":63,"unknown_tags":5463,"__hash__":5464},"summaries\u002Fsummaries\u002Ftanstack-server-components-opt-in-granularity-beat-summary.md","TanStack Server Components: Opt-In Granularity Beats Next.js",{"provider":7,"model":8,"input_tokens":5333,"output_tokens":5334,"processing_time_ms":5335,"cost_usd":5336},7116,1537,11991,0.00216905,{"type":14,"value":5338,"toc":5434},[5339,5343,5358,5365,5369,5380,5383,5387,5390,5431],[17,5340,5342],{"id":5341},"opt-in-server-rendering-via-server-functions","Opt-In Server Rendering via Server Functions",[22,5344,5345,5346,5349,5350,5353,5354,5357],{},"Render React components on the server explicitly by wrapping them in ",[4523,5347,5348],{},"renderServerComponent"," inside a server function, then fetch like JSON data. This runs server-only code (e.g., ",[4523,5351,5352],{},"os.hostname()",", env vars) without changing your client-first app structure. Pass computed values as props to keep components pure and reusable on client or server. In a TanStack Start route loader, await the server function and use ",[4523,5355,5356],{},"loaderData"," to render: the boundary stays clear since server logic lives solely in the function. Replace server components with JSON fetches seamlessly—no framework overhaul required, unlike Next.js's server-first tree where 'use client' opts out interactivity.",[22,5359,5360,5361,5364],{},"For multiple components, use ",[4523,5362,5363],{},"Promise.all"," in one server function or return promises directly for streaming. Client-side, wrap in Suspense for skeletons: slow components load independently without blocking the page.",[17,5366,5368],{"id":5367},"composite-components-eliminate-server-controlled-client-trees","Composite Components Eliminate Server-Controlled Client Trees",[22,5370,5371,5372,5375,5376,5379],{},"Avoid nesting 'use client' components inside server renders, which muddies boundaries (e.g., tracing counter logic requires jumping files). Instead, return ",[4523,5373,5374],{},"createCompositeComponent"," from server functions, defining slots for client content. Fetch the source in loaders, then render with ",[4523,5377,5378],{},"\u003CComposite source={greetingSource}>","—server defines structure and data passthrough, but clients fill slots.",[22,5381,5382],{},"This keeps all client decisions in client code: server sees opaque slots, executes no client functions. Integrates with TanStack Query for caching\u002FCDN simplicity. Result: explicit server\u002Fclient separation, no 'use client' needed for slots.",[17,5384,5386],{"id":5385},"slot-patterns-for-flexible-client-integration","Slot Patterns for Flexible Client Integration",[22,5388,5389],{},"Use three slot types to inject client components without server knowledge of their identity:",[5391,5392,5393,5403,5413],"ul",{},[4986,5394,5395,5398,5399,5402],{},[4537,5396,5397],{},"Children slots",": Pass ",[4523,5400,5401],{},"{children}"," prop; server forwards anything provided (e.g., counter under greeting).",[4986,5404,5405,5408,5409,5412],{},[4537,5406,5407],{},"Render props",": Define function props (e.g., ",[4523,5410,5411],{},"renderActions?: (postId: string, authorId: string) => ReactNode","). Server calls optionally with data (e.g., above post title); client provides function returning component. Opaque to server—runs client-side, avoids double-fetches (author data passes directly).",[4986,5414,5415,5418,5419,5422,5423,5426,5427,5430],{},[4537,5416,5417],{},"Component props",": Pass component directly (e.g., ",[4523,5420,5421],{},"PostActions: Component\u003C{postId: string, authorId: string}>","). Server renders ",[4523,5424,5425],{},"\u003CPostActions {...data} \u002F>"," as placeholder. Swap implementations client-side (e.g., ",[4523,5428,5429],{},"FakePostActions"," works identically). Prefer render props if needing data transforms; component props for direct passthrough.",[22,5432,5433],{},"These solve real issues: targeted actions (like\u002Ffollow) without children dumping at bottom, data sharing without client refetching. Server provides data\u002Fslots; client handles rendering—reverses Next.js logic for better DX and modularity.",{"title":55,"searchDepth":56,"depth":56,"links":5435},[5436,5437,5438],{"id":5341,"depth":56,"text":5342},{"id":5367,"depth":56,"text":5368},{"id":5385,"depth":56,"text":5386},[62],{"content_references":5441,"triage":5449},[5442,5445],{"type":69,"title":5443,"url":5444,"context":71},"TanStack Start Server Components Docs","https:\u002F\u002Ftanstack.com\u002Fstart\u002Flatest\u002Fdocs\u002Fframework\u002Freact\u002Fguide\u002Fserver-components",{"type":75,"title":5446,"url":5447,"context":5448},"TanStack React Server Components Announcement","https:\u002F\u002Ftanstack.com\u002Fblog\u002Freact-server-components","cited",{"relevance":79,"novelty":78,"quality":79,"actionability":79,"composite":4753,"reasoning":5450},"Category: Design & Frontend. The article discusses practical techniques for rendering React components on the server, addressing a specific pain point for developers looking to optimize their frontend architecture. It provides actionable insights on using `renderServerComponent` and `createCompositeComponent`, which can be directly applied in building AI-powered products.","\u002Fsummaries\u002Ftanstack-server-components-opt-in-granularity-beat-summary","2026-04-20 22:30:20","2026-04-21 15:16:40",{"title":5331,"description":55},{"loc":5451},"44549f7a250bdc2f","Better Stack","https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=pWxRvFFUHcY","summaries\u002Ftanstack-server-components-opt-in-granularity-beat-summary",[5461,94,95],"frontend","Use renderServerComponent in server functions to render React components on the server granularly, like fetching JSON. Composite components with slots keep client boundaries clean without 'use client' directives.",[95],"X10wCE_1fnC49TzpDDfJxN4_hs1zEWqKG3gNzTcRtbU"]